1 2022-11-08 David Faust <david.faust@oracle.com>
3 * config/bpf/bpf.cc (struct core_walk_data): Add field `which'...
4 (bpf_resolve_overloaded_builtin): ... set it here. Use values of enum
5 bpf_builtins for error checks.
6 (bpf_core_walk): Use values of enum bpf_builtins.
7 (bpf_core_newdecl): Likewise.
8 (bpf_expand_builtin): Likewise.
10 2022-11-08 Aldy Hernandez <aldyh@redhat.com>
12 PR tree-optimization/24021
13 * range-op-float.cc (propagate_nans): New.
14 (frange_nextafter): New.
15 (frange_arithmetic): New.
16 (class foperator_plus): New.
17 (floating_op_table::floating_op_table): Add PLUS_EXPR entry.
19 2022-11-08 Aldy Hernandez <aldyh@redhat.com>
21 * real.cc (real_isdenormal): New.
22 (encode_ieee_single): Call real_isdenormal.
23 (encode_ieee_double): Same.
24 (encode_ieee_extended): Same.
25 (encode_ieee_quad): Same.
26 (encode_ieee_half): Same.
27 (encode_arm_bfloat_half): Same.
28 * real.h (real_isdenormal): Add mode argument. Rewrite for
30 * value-range.cc (frange::flush_denormals_to_zero): Pass mode to
33 2022-11-08 Richard Biener <rguenther@suse.de>
35 PR tree-optimization/107389
36 * gimple-low.cc (lower_builtin_assume_aligned): New.
37 (lower_stmt): Call it.
39 2022-11-08 Aldy Hernandez <aldyh@redhat.com>
41 * range-op.cc (operator_div::fold_range): Call
43 * tree-ssa-ccp.cc (bit_value_binop): Handle divisions by powers of
46 2022-11-08 Kwok Cheung Yeung <kcy@codesourcery.com>
48 * config/gcn/gcn.cc (gcn_expand_builtin_1): Expand first argument
49 of GCN_BUILTIN_LDEXPV to V64DFmode.
51 2022-11-08 Kwok Cheung Yeung <kcy@codesourcery.com>
53 * config/gcn/gcn-builtins.def (FABSV, FLOORVF, FLOORV): New builtins.
54 * config/gcn/gcn.cc (gcn_expand_builtin_1): Expand GCN_BUILTIN_FABSV,
55 GCN_BUILTIN_FLOORVF and GCN_BUILTIN_FLOORV.
57 2022-11-08 Aldy Hernandez <aldyh@redhat.com>
59 * range-op.cc (irange_to_masked_value): New.
60 (update_known_bitmask): New.
61 (operator_mult::fold_range): Call update_known_bitmask.
63 2022-11-08 Jakub Jelinek <jakub@redhat.com>
65 PR tree-optimization/107547
66 * tree-call-cdce.cc (get_no_error_domain): Handle CASE_FLT_FN_FLOATN_NX
67 of BUILT_IN_{ACOS,ASIN,ACOSH,ATANH,LOG,LOG2,LOG10,LOG1P}. Handle
68 BUILT_IN_{COSH,SINH,EXP,EXPM1,EXP2}F{16,32,64,128}.
70 2022-11-08 Jakub Jelinek <jakub@redhat.com>
73 * config/i386/predicates.md (vector_or_const_vector_operand): New
75 * config/i386/sse.md (vec_cmp<mode><sseintvecmodelower>,
76 vec_cmpv2div2di, vec_cmpu<mode><sseintvecmodelower>,
77 vec_cmpuv2div2di): Use nonimmediate_or_const_vector_operand
78 predicate instead of nonimmediate_operand and
79 vector_or_const_vector_operand instead of vector_operand.
80 * config/i386/i386-expand.cc (ix86_expand_int_sse_cmp): For
81 LE/LEU or GE/GEU with CONST_VECTOR cop1 try to transform those
82 into LE/LEU or GT/GTU with larger or smaller by one cop1 if
83 there is no wrap-around. Force CONST_VECTOR cop0 or cop1 into
86 2022-11-08 Max Filippov <jcmvbkbc@gmail.com>
88 PR rtl-optimization/107482
89 * ira-color.cc (assign_hard_reg): Only call
90 update_costs_from_copies when retry_p is false.
92 2022-11-08 konglin1 <lingling.kong@intel.com>
95 2022-11-07 konglin1 <lingling.kong@intel.com>
97 * config/i386/i386.opt:Add -mprefer-remote-atomic.
98 * config/i386/sync.md (atomic_<plus_logic><mode>):
100 (atomic_add<mode>): Rename to below one.
101 (atomic_add<mode>_1): To this.
102 (atomic_<logic><mode>): Ditto.
103 (atomic_<logic><mode>_1): Ditto.
104 * doc/invoke.texi: Add -mprefer-remote-atomic.
106 2022-11-08 Haochen Jiang <haochen.jiang@intel.com>
108 * config/i386/i386-options.cc (m_CORE_ATOM): New.
109 * config/i386/x86-tune.def
110 (X86_TUNE_SCHEDULE): Initial tune for CORE_ATOM.
111 (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto.
112 (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Ditto.
113 (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Ditto.
114 (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Ditto.
115 (X86_TUNE_DEST_FALSE_DEP_FOR_GLC): Ditto.
116 (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto.
117 (X86_TUNE_USE_LEAVE): Ditto.
118 (X86_TUNE_PUSH_MEMORY): Ditto.
119 (X86_TUNE_USE_INCDEC): Ditto.
120 (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto.
121 (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): Ditto.
122 (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Ditto.
123 (X86_TUNE_USE_SAHF): Ditto.
124 (X86_TUNE_USE_BT): Ditto.
125 (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Ditto.
126 (X86_TUNE_ONE_IF_CONV_INSN): Ditto.
127 (X86_TUNE_AVOID_MFENCE): Ditto.
128 (X86_TUNE_USE_SIMODE_FIOP): Ditto.
129 (X86_TUNE_EXT_80387_CONSTANTS): Ditto.
130 (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Ditto.
131 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto.
132 (X86_TUNE_SSE_TYPELESS_STORES): Ditto.
133 (X86_TUNE_SSE_LOAD0_BY_PXOR): Ditto.
134 (X86_TUNE_AVOID_4BYTE_PREFIXES): Ditto.
135 (X86_TUNE_USE_GATHER_2PARTS): Ditto.
136 (X86_TUNE_USE_GATHER_4PARTS): Ditto.
137 (X86_TUNE_USE_GATHER): Ditto.
139 2022-11-08 Andrew MacLeod <amacleod@redhat.com>
141 PR tree-optimization/104530
142 * gimple-range-cache.cc (ranger_cache::register_inferred_value):
144 (ranger_cache::apply_inferred_ranges): Move setting cache to
146 * gimple-range-cache.h (register_inferred_value): New prototype.
147 * gimple-range-infer.cc (infer_range_manager::has_range_p): New.
148 * gimple-range-infer.h (has_range_p): New prototype.
149 * gimple-range.cc (register_transitive_inferred_ranges): New.
150 * gimple-range.h (register_transitive_inferred_ranges): New proto.
151 * tree-vrp.cc (rvrp_folder::fold_stmt): Check for transitive inferred
152 ranges at the end of the block before folding final stmt.
154 2022-11-07 David Faust <david.faust@oracle.com>
156 * config/bpf/bpf.cc (handle_attr_preserve): Use maybe_make_core_relo().
158 2022-11-07 Aldy Hernandez <aldyh@redhat.com>
160 PR tree-optimization/55157
161 * range-op.cc (operator_mult::wi_fold): Optimize multiplications
164 2022-11-07 H.J. Lu <hjl.tools@gmail.com>
167 * tree-ssa-ccp.cc (optimize_atomic_bit_test_and): Also handle
168 if (_5 < 0) and if (_5 >= 0).
170 2022-11-07 Richard Purdie <richard.purdie@linuxfoundation.org>
172 * file-prefix-map.cc (remap_filename): Handle NULL filenames.
174 2022-11-07 Alexander Monakov <amonakov@ispras.ru>
176 PR tree-optimization/107505
177 * tree-ssa-sink.cc (statement_sink_location): Additionally
178 reject ECF_RETURNS_TWICE calls.
180 2022-11-07 Aldy Hernandez <aldyh@redhat.com>
182 PR tree-optimization/107541
183 * range-op.cc (operator_div::fold_range): Restrict power of 2
184 optimization to positive numbers.
186 2022-11-07 Richard Biener <rguenther@suse.de>
188 * tree-ssa-loop-unswitch.cc (unswitch_predicate::count): New.
189 (unswitch_predicate::unswitch_predicate): Initialize count.
190 (init_loop_unswitch_info): First collect candidates and
191 determine the outermost loop to unswitch.
192 (tree_ssa_unswitch_loops): First perform all guard hoisting,
193 then perform unswitching on innermost loop predicates.
194 (find_unswitching_predicates_for_bb): Keep track of the
195 most profitable predicate to unswitch on.
196 (tree_unswitch_single_loop): Unswitch given predicate if
199 2022-11-07 Martin Liska <mliska@suse.cz>
200 Gerald Pfeifer <gerald@pfeifer.com>
202 * doc/invoke.texi: Improve wording.
204 2022-11-07 Martin Liska <mliska@suse.cz>
206 * range-op.cc: Add final override keywords.
208 2022-11-07 Kewen Lin <linkw@linux.ibm.com>
210 PR tree-optimization/107412
211 * gimple-fold.cc (gimple_fold_mask_load_store_mem_ref): Rename to ...
212 (gimple_fold_partial_load_store_mem_ref): ... this, add one parameter
213 mask_p indicating it's for mask or length, and add some handlings for
214 IFN LEN_{LOAD,STORE}.
215 (gimple_fold_mask_load): Rename to ...
216 (gimple_fold_partial_load): ... this, add one parameter mask_p.
217 (gimple_fold_mask_store): Rename to ...
218 (gimple_fold_partial_store): ... this, add one parameter mask_p.
219 (gimple_fold_call): Add the handlings for IFN LEN_{LOAD,STORE},
220 and adjust calls on gimple_fold_mask_load_store_mem_ref to
221 gimple_fold_partial_load_store_mem_ref.
223 2022-11-07 Hu, Lin1 <lin1.hu@intel.com>
225 * common/config/i386/cpuinfo.h
226 (get_intel_cpu): Handle Grand Ridge.
227 * common/config/i386/i386-common.cc
228 (processor_names): Add grandridge.
229 (processor_alias_table): Ditto.
230 * common/config/i386/i386-cpuinfo.h:
231 (enum processor_types): Add INTEL_GRANDRIDGE.
232 * config.gcc: Add -march=grandridge.
233 * config/i386/driver-i386.cc (host_detect_local_cpu):
235 * config/i386/i386-c.cc (ix86_target_macros_internal):
237 * config/i386/i386-options.cc (m_GRANDRIDGE): New define.
238 (processor_cost_table): Add grandridge.
239 * config/i386/i386.h (enum processor_type):
240 Add PROCESSOR_GRANDRIDGE.
241 (PTA_GRANDRIDGE): Ditto.
242 * doc/extend.texi: Add grandridge.
243 * doc/invoke.texi: Ditto.
245 2022-11-07 konglin1 <lingling.kong@intel.com>
247 * config/i386/i386.opt:Add -mprefer-remote-atomic.
248 * config/i386/sync.md (atomic_<plus_logic><mode>):
250 (atomic_add<mode>): Rename to below one.
251 (atomic_add<mode>_1): To this.
252 (atomic_<logic><mode>): Ditto.
253 (atomic_<logic><mode>_1): Ditto.
254 * doc/invoke.texi: Add -mprefer-remote-atomic.
256 2022-11-07 konglin1 <lingling.kong@intel.com>
258 * common/config/i386/cpuinfo.h (get_available_features):
260 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_RAOINT_SET,
261 OPTION_MASK_ISA2_RAOINT_UNSET): New.
262 (ix86_handle_option): Handle -mraoint.
263 * common/config/i386/i386-cpuinfo.h (enum processor_features):
265 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
267 * config.gcc: Add raointintrin.h
268 * config/i386/cpuid.h (bit_RAOINT): New.
269 * config/i386/i386-builtin.def (BDESC): Add new builtins.
270 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
272 * config/i386/i386-isa.def (RAOINT): Add DEF_PTA(RAOINT).
273 * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
275 * config/i386/sync.md (rao_a<raointop><mode>): New define insn.
276 * config/i386/i386.opt: Add option -mraoint.
277 * config/i386/x86gprintrin.h: Include raointintrin.h.
278 * doc/extend.texi: Document raoint.
279 * doc/invoke.texi: Document -mraoint.
280 * doc/sourcebuild.texi: Document target raoint.
281 * config/i386/raointintrin.h: New file.
283 2022-11-07 Haochen Jiang <haochen.jiang@intel.com>
285 * common/config/i386/cpuinfo.h
286 (get_intel_cpu): Handle Granite Rapids.
287 * common/config/i386/i386-common.cc:
288 (processor_names): Add graniterapids.
289 (processor_alias_table): Ditto.
290 * common/config/i386/i386-cpuinfo.h
291 (enum processor_subtypes): Add INTEL_GRANTIERAPIDS.
292 * config.gcc: Add -march=graniterapids.
293 * config/i386/driver-i386.cc (host_detect_local_cpu):
294 Handle graniterapids.
295 * config/i386/i386-c.cc (ix86_target_macros_internal):
297 * config/i386/i386-options.cc (m_GRANITERAPIDS): New.
298 (processor_cost_table): Add graniterapids.
299 * config/i386/i386.h (enum processor_type):
300 Add PROCESSOR_GRANITERAPIDS.
301 (PTA_GRANITERAPIDS): Ditto.
302 * doc/extend.texi: Add graniterapids.
303 * doc/invoke.texi: Ditto.
305 2022-11-07 Haochen Jiang <haochen.jiang@intel.com>
306 Hongtao Liu <hongtao.liu@intel.com>
308 * common/config/i386/cpuinfo.h (get_available_features):
310 * common/config/i386/i386-common.cc
311 (OPTION_MASK_ISA2_PREFETCHI_SET,
312 OPTION_MASK_ISA2_PREFETCHI_UNSET): New.
313 (ix86_handle_option): Handle -mprefetchi.
314 * common/config/i386/i386-cpuinfo.h
315 (enum processor_features): Add FEATURE_PREFETCHI.
316 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY
318 * config.gcc: Add prfchiintrin.h.
319 * config/i386/cpuid.h (bit_PREFETCHI): New.
320 * config/i386/i386-builtin-types.def:
321 Add DEF_FUNCTION_TYPE (VOID, PCVOID, INT)
322 and DEF_FUNCTION_TYPE (VOID, PCVOID, INT, INT, INT).
323 * config/i386/i386-builtin.def (BDESC): Add new builtins.
324 * config/i386/i386-c.cc (ix86_target_macros_internal):
325 Define __PREFETCHI__.
326 * config/i386/i386-expand.cc: Handle new builtins.
327 * config/i386/i386-isa.def (PREFETCHI):
328 Add DEF_PTA(PREFETCHI).
329 * config/i386/i386-options.cc
330 (ix86_valid_target_attribute_inner_p): Handle prefetchi.
331 * config/i386/i386.md (prefetchi): New define_insn.
332 * config/i386/i386.opt: Add option -mprefetchi.
333 * config/i386/predicates.md (local_func_symbolic_operand):
335 * config/i386/x86gprintrin.h: Include prfchiintrin.h.
336 * config/i386/xmmintrin.h (enum _mm_hint): New enum for
338 (_mm_prefetch): Handle the highest bit of enum.
339 * doc/extend.texi: Document prefetchi.
340 * doc/invoke.texi: Document -mprefetchi.
341 * doc/sourcebuild.texi: Document target prefetchi.
342 * config/i386/prfchiintrin.h: New file.
344 2022-11-06 Uroš Bizjak <ubizjak@gmail.com>
346 * optabs.cc (can_vec_set_var_idx_p): Use operand[2]
347 mode when checking vec_set_optab.
349 2022-11-06 Xi Ruoyao <xry111@xry111.site>
351 * config/loongarch/loongarch.md (UNSPEC_FCOPYSIGN): New unspec.
352 (type): Add fcopysign.
353 (copysign<mode>3): New instruction template.
355 2022-11-06 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
357 * multiple_target.cc (expand_target_clones): Free memory.
359 2022-11-06 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
361 * cgraph.cc (cgraph_node::make_local): Remove redundant set_section.
362 * multiple_target.cc (create_dispatcher_calls): Likewise.
364 2022-11-05 Jonathan Wakely <jwakely@redhat.com>
367 * doc/cppopts.texi: Document -fwide-exec-charset defaults
370 2022-11-05 Alexandre Oliva <oliva@adacore.com>
372 * common.opt (fmultiflags): New.
373 * doc/invoke.texi: Document it.
374 * gcc.cc (driver_self_specs): Discard it.
375 * opts.cc (common_handle_option): Ignore it in the driver.
377 2022-11-04 Jeff Chapman II <jchapman@lock3software.com>
378 Jason Merrill <jason@redhat.com>
380 * input.cc (get_source_text_between): New fn.
381 * input.h (get_source_text_between): Declare.
383 2022-11-04 Aldy Hernandez <aldyh@redhat.com>
385 PR tree-optimization/107342
386 * range-op.cc (operator_mult::fold_range): New.
387 (operator_div::fold_range): New.
389 2022-11-04 Eric Botcazou <ebotcazou@adacore.com>
391 * fold-const.cc (operand_compare::operand_equal_p) <COMPONENT_REF>:
392 Do not take into account operand 2.
393 (operand_compare::hash_operand) <COMPONENT_REF>: Likewise.
395 2022-11-04 Eric Botcazou <ebotcazou@adacore.com>
397 * expr.cc (emit_group_store): Do not use subword paradoxical subregs
399 2022-11-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
401 * config/aarch64/aarch64-sve2.md: Fix typo in Cryptographic
404 2022-11-04 Thomas Schwinge <thomas@codesourcery.com>
406 * config.gcc [target *-intelmic-* | *-intelmicemul-*]: Remove.
407 * config/i386/i386-options.cc (ix86_omp_device_kind_arch_isa)
408 [ACCEL_COMPILER]: Remove.
409 * config/i386/intelmic-mkoffload.cc: Remove.
410 * config/i386/intelmic-offload.h: Likewise.
411 * config/i386/t-intelmic: Likewise.
412 * config/i386/t-omp-device: Likewise.
413 * configure.ac [target *-intelmic-* | *-intelmicemul-*]: Remove.
414 * configure: Regenerate.
415 * doc/install.texi (--enable-offload-targets=[...]): Update.
416 * doc/sourcebuild.texi: Remove 'liboffloadmic' documentation.
418 2022-11-04 Thomas Schwinge <thomas@codesourcery.com>
420 * Makefile.in (OBJS): Remove 'dbxout.o'.
421 * config/nvptx/nvptx.cc: Don't '#include "dbxout.h"'.
423 * dbxout.h: Likewise.
424 * target-def.h (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR):
425 Default to 'default_asm_out_constructor',
426 'default_asm_out_destructor'.
427 * targhooks.cc (default_asm_out_constructor)
428 (default_asm_out_destructor): New.
429 * targhooks.h (default_asm_out_constructor)
430 (default_asm_out_destructor): Declare.
432 2022-11-04 Thomas Schwinge <thomas@codesourcery.com>
434 * Makefile.in (OBJS): Add 'dbxout.o'.
435 * config/nvptx/nvptx.cc: '#include "dbxout.h"'.
437 * dbxout.h: Likewise.
438 * target-def.h (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR):
439 Default to 'default_stabs_asm_out_constructor',
440 'default_stabs_asm_out_destructor'.
442 2022-11-04 Hongyu Wang <hongyu.wang@intel.com>
443 Haochen Jiang <haochen.jiang@intel.com>
445 * common/config/i386/cpuinfo.h (get_available_features): Detect
447 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AMX_FP16_SET,
448 OPTION_MASK_ISA2_AMX_FP16_UNSET): New macros.
449 (ix86_handle_option): Handle -mamx-fp16.
450 * common/config/i386/i386-cpuinfo.h (enum processor_features):
451 Add FEATURE_AMX_FP16.
452 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
454 * config.gcc: Add amxfp16intrin.h.
455 * config/i386/cpuid.h (bit_AMX_FP16): New.
456 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
458 * config/i386/i386-isa.def: Add DEF_PTA for AMX_FP16.
459 * config/i386/i386-options.cc (isa2_opts): Add -mamx-fp16.
460 (ix86_valid_target_attribute_inner_p): Add new ATTR.
461 (ix86_option_override_internal): Handle AMX-FP16.
462 * config/i386/i386.opt: Add -mamx-fp16.
463 * config/i386/immintrin.h: Include amxfp16intrin.h.
464 * doc/extend.texi: Document -mamx-fp16.
465 * doc/invoke.texi: Document amx-fp16.
466 * doc/sourcebuild.texi: Document amx_fp16.
467 * config/i386/amxfp16intrin.h: New file.
469 2022-11-04 Haochen Jiang <haochen.jiang@intel.com>
471 * common/config/i386/cpuinfo.h (get_intel_cpu):
473 * common/config/i386/i386-common.cc
474 (processor_names): Add Sierra Forest.
475 (processor_alias_table): Ditto.
476 * common/config/i386/i386-cpuinfo.h
477 (enum processor_types): Add INTEL_SIERRAFOREST.
478 * config.gcc: Add -march=sierraforest.
479 * config/i386/driver-i386.cc (host_detect_local_cpu):
480 Handle Sierra Forest.
481 * config/i386/i386-c.cc (ix86_target_macros_internal):
483 * config/i386/i386-options.cc (m_SIERRAFOREST): New define.
484 (processor_cost_table): Add sierra forest.
485 * config/i386/i386.h (enum processor_type):
486 Add PROCESSOR_SIERRA_FOREST.
487 (PTA_SIERRAFOREST): Ditto.
488 * doc/extend.texi: Add sierra forest.
489 * doc/invoke.texi: Ditto.
491 2022-11-04 Haochen Jiang <haochen.jiang@intel.com>
493 * common/config/i386/cpuinfo.h (get_available_features):
495 * common/config/i386/i386-common.cc
496 (OPTION_MASK_ISA2_CMPCCXADD_SET,
497 OPTION_MASK_ISA2_CMPCCXADD_UNSET): New.
498 (ix86_handle_option): Handle -mcmpccxadd.
499 * common/config/i386/i386-cpuinfo.h (enum processor_features):
500 Add FEATURE_CMPCCXADD.
501 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
503 * config.gcc: Add cmpccxaddintrin.h.
504 * config/i386/cpuid.h (bit_CMPCCXADD): New.
505 * config/i386/i386-builtin-types.def:
506 Add DEF_FUNCTION_TYPE(INT, PINT, INT, INT, INT)
507 and DEF_FUNCTION_TYPE(LONGLONG, PLONGLONG, LONGLONG, LONGLONG, INT).
508 * config/i386/i386-builtin.def (BDESC): Add new builtins.
509 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
511 * config/i386/i386-expand.cc (ix86_expand_special_args_builtin):
512 Add new parameter to indicate constant position.
513 Handle INT_FTYPE_PINT_INT_INT_INT
514 and LONGLONG_FTYPE_PLONGLONG_LONGLONG_LONGLONG_INT.
515 * config/i386/i386-isa.def (CMPCCXADD): Add DEF_PTA(CMPCCXADD).
516 * config/i386/i386-options.cc (isa2_opts): Add -mcmpccxadd.
517 (ix86_valid_target_attribute_inner_p): Handle cmpccxadd.
518 * config/i386/i386.opt: Add option -mcmpccxadd.
519 * config/i386/sync.md (cmpccxadd_<mode>): New define insn.
520 * config/i386/x86gprintrin.h: Include cmpccxaddintrin.h.
521 * doc/extend.texi: Document cmpccxadd.
522 * doc/invoke.texi: Document -mcmpccxadd.
523 * doc/sourcebuild.texi: Document target cmpccxadd.
524 * config/i386/cmpccxaddintrin.h: New file.
526 2022-11-03 Jason Merrill <jason@redhat.com>
528 * doc/invoke.texi: -fconcepts no longer implies
529 -fconcepts-ts before C++20.
531 2022-11-03 Kwok Cheung Yeung <kcy@codesourcery.com>
533 * config/gcn/gcn-valu.md (math_unop_insn): New attribute.
534 (<math_unop><mode>2, <math_unop><mode>2<exec>, <math_unop><mode>2,
535 <math_unop><mode>2<exec>, *<math_unop><mode>2_insn,
536 *<math_unop><mode>2<exec>_insn): Use math_unop_insn to generate
539 2022-11-03 Andrew MacLeod <amacleod@redhat.com>
541 * gimple-range.cc (gimple_ranger::update_stmt): New.
542 * gimple-range.h (gimple_ranger::update_stmt): New prototype.
543 * tree-ssa-operands.cc (update_stmt_operands): Notify range
544 query that stmt has changed.
545 * value-query.h (range_query::update_stmt): New.
547 2022-11-03 David Malcolm <dmalcolm@redhat.com>
549 * make-unique.h: New file.
551 2022-11-03 Uroš Bizjak <ubizjak@gmail.com>
554 * config/i386/i386.md (eliminate reg-reg move by inverting the
555 condition of a cmove #2 peephole2): Check if eliminated move
556 initialized a register, used in the moved instruction.
558 2022-11-03 Andrew Stubbs <ams@codesourcery.com>
561 * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Remove duplicate
562 UNSPEC_SMIN_DPP_SHR conditionals.
564 2022-11-02 Christoph Müllner <christoph.muellner@vrull.eu>
566 * common/config/riscv/riscv-common.cc: Add zawrs extension.
567 * config/riscv/riscv-opts.h (MASK_ZAWRS): New.
569 * config/riscv/riscv.opt: New.
571 2022-11-02 Rasmus Villemoes <rv@rasmusvillemoes.dk>
574 * gcc.cc (ASM_MAP): Honour -ffile-prefix-map.
576 2022-11-02 Aldy Hernandez <aldyh@redhat.com>
578 * value-range.cc (frange::contains_p): Fix signed zero handling.
579 (range_tests_signed_zeros): New test.
581 2022-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
583 * builtins.cc (mathfn_built_in_2): #undef HUGE_VAL, NAN.
585 2022-11-02 Xionghu Luo <xionghuluo@tencent.com>
588 * config/rs6000/altivec.md: (*altivec_vrl<VI_char>): Named to...
589 (altivec_vrl<VI_char>): ...this.
590 * config/rs6000/vsx.md (revb_<mode>): Call vspltish and vrlh when
591 target is Power8 and mode is V8HI.
593 2022-11-01 David Seifert <soap@gentoo.org>
595 * configure.ac: Add AC_CACHE_CHECK(..., gcc_cv_sys_sdt_h).
596 * configure: Regenerate.
598 2022-11-01 Richard Purdie <richard.purdie@linuxfoundation.org>
600 * file-prefix-map.cc (remap_filename): Allow remapping of relative paths.
602 2022-11-01 Aldy Hernandez <aldyh@redhat.com>
604 PR tree-optimization/107490
605 * range-op-float.cc (foperator_unordered_lt::op1_range): Handle
607 (foperator_unordered_lt::op2_range): Same.
608 (foperator_unordered_le::op1_range): Same.
609 (foperator_unordered_le::op2_range): Same.
610 (foperator_unordered_gt::op1_range): Same.
611 (foperator_unordered_gt::op2_range): Same.
612 (foperator_unordered_ge::op1_range): Same.
613 (foperator_unordered_ge::op2_range): Same.
615 2022-11-01 Andrew MacLeod <amacleod@redhat.com>
617 PR tree-optimization/107497
618 * tree-vrp.cc (remove_unreachable::remove_and_update_globals):
619 Check that ssa-name still exists before accessing it.
621 2022-11-01 Andrew MacLeod <amacleod@redhat.com>
623 * params.opt (param_vrp1_mode): Make ranger default.
625 2022-11-01 Andrew MacLeod <amacleod@redhat.com>
627 * tree-vrp.cc (class remove_unreachable): New.
628 (remove_unreachable::maybe_register_block): New.
629 (remove_unreachable::remove_and_update_globals): New.
630 (rvrp_folder::rvrp_folder): Initialize m_unreachable.
631 (rvrp_folder::post_fold_bb): Maybe register unreachable block.
632 (rvrp_folder::m_unreachable): New member.
633 (execute_ranger_vrp): Add final_pass flag, remove unreachables.
635 2022-11-01 Andrew MacLeod <amacleod@redhat.com>
637 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Allow
638 exit block to be specified.
639 (ranger_cache::range_from_dom): If exit block is specified, use
640 the immediate predecessor instead of the dominator to start.
641 * gimple-range.cc (gimple_ranger::range_on_exit): Allow query
644 2022-11-01 Andrew MacLeod <amacleod@redhat.com>
646 * value-range.cc (irange::intersect_nonzero_bits): If new
647 non-zero mask is the same as original, flag no change.
649 2022-11-01 Alexander Monakov <amonakov@ispras.ru>
652 * config/i386/znver.md (znver1_idiv): New automaton.
653 (znver1-idiv): New unit.
654 (znver1_idiv_DI): Correct unit and cycles in the reservation.
655 (znver1_idiv_SI): Ditto.
656 (znver1_idiv_HI): Ditto.
657 (znver1_idiv_QI): Ditto.
658 (znver1_idiv_mem_DI): Ditto.
659 (znver1_idiv_mem_SI): Ditto.
660 (znver1_idiv_mem_HI): Ditto.
661 (znver1_idiv_mem_QI): Ditto.
662 (znver3_idiv_DI): Ditto.
663 (znver3_idiv_SI): Ditto.
664 (znver3_idiv_HI): Ditto.
665 (znver3_idiv_QI): Ditto.
666 (znver3_idiv_mem_DI): Ditto.
667 (znver3_idiv_mem_SI): Ditto.
668 (znver3_idiv_mem_HI): Ditto.
669 (znver3_idiv_mem_QI): Ditto.
671 2022-11-01 liuhongt <hongtao.liu@intel.com>
674 * config/i386/sse.md (*vec_interleave_highv2df): Remove
676 (*vec_interleave_lowv2df): Ditto.
677 (vec_concatv2df): Ditto.
678 (*avx512f_unpcklpd512<mask_name>): Ditto and renamed to ..
679 (avx512f_unpcklpd512<mask_name>): .. this.
680 (avx512f_movddup512<mask_name>): Change to define_insn.
681 (avx_movddup256<mask_name>): Ditto.
682 (*avx_unpcklpd256<mask_name>): Remove constraint 1 and renamed
684 (avx_unpcklpd256<mask_name>): .. this.
685 * config/i386/i386.cc (ix86_vec_interleave_v2df_operator_ok):
686 Disallow MEM_P (op1) && MEM_P (op2).
688 2022-11-01 liuhongt <hongtao.liu@intel.com>
691 * config/i386/i386.md (*x86_64_shld_1): Rename to ..
692 (x86_64_shld_1): .. this.
693 (*x86_shld_1): Rename to ..
694 (x86_shld_1): .. this.
695 (*x86_64_shrd_1): Rename to ..
696 (x86_64_shrd_1): .. this.
697 (*x86_shrd_1): Rename to ..
698 (x86_shrd_1): .. this.
699 (*x86_64_shld_shrd_1_nozext): New pre_reload splitter.
700 (*x86_shld_shrd_1_nozext): Ditto.
701 (*x86_64_shrd_shld_1_nozext): Ditto.
702 (*x86_shrd_shld_1_nozext): Ditto.
704 2022-11-01 Cui,Lili <lili.cui@intel.com>
706 * ipa-inline-analysis.cc (do_estimate_edge_time): Add function attribute
707 judgement for INLINE_HINT_known_hot hint.
709 2022-10-31 Guillermo E. Martinez <guillermo.e.martinez@oracle.com>
711 * btfout.cc (btf_calc_num_vbytes): Compute enumeration size depending of
712 enumerator type btf_enum{,64}.
713 (btf_asm_type): Update btf_kflag according to enumeration type sign
714 using dtd_enum_unsigned field for both: BTF_KIND_ENUM{,64}.
715 (btf_asm_enum_const): New argument to represent the size of
716 the BTF enum type, writing the enumerator constant value for
717 32 bits, if it's 64 bits then explicitly writes lower 32-bits
718 value and higher 32-bits value.
719 (output_asm_btf_enum_list): Add enumeration size argument.
720 * ctfc.cc (ctf_add_enum): New argument to represent CTF enum
722 (ctf_add_generic): Use of ei_{name. size, unsigned} to build the
723 dtd structure containing enumeration information.
724 (ctf_add_enumerator): Update comment mention support for BTF
725 enumeration in 64-bits.
726 * dwarf2ctf.cc (gen_ctf_enumeration_type): Extract signedness
727 for enumeration type and use it in ctf_add_enum.
728 * ctfc.h (ctf_dmdef): Update dmd_value to HOST_WIDE_INT to allow
729 use 32/64 bits enumerators.
731 (ctf_dtdef): New field to describe enum signedness.
733 2022-10-31 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
735 * config/riscv/riscv-vector-builtins-bases.cc: Change constexpr back to CONSTEXPR.
736 * config/riscv/riscv-vector-builtins-shapes.cc (SHAPE): Ditto.
737 * config/riscv/riscv-vector-builtins.cc (struct registered_function_hasher): Ditto.
738 * config/riscv/riscv-vector-builtins.h (struct rvv_arg_type_info): Ditto.
740 2022-10-31 Andrew Stubbs <ams@codesourcery.com>
742 * config/gcn/gcn-valu.md (fminmaxop): New iterator.
743 (<fexpander><mode>3): New define_expand.
744 (<fexpander><mode>3<exec>): Likewise.
745 (reduc_<fexpander>_scal_<mode>): Likewise.
746 * config/gcn/gcn.md (fexpander): New attribute.
748 2022-10-31 Andrew Stubbs <ams@codesourcery.com>
750 * config/gcn/gcn-valu.md (V64_SI): Delete iterator.
752 (V64_1REG): Likewise.
753 (V64_INT_1REG): Likewise.
754 (V64_2REG): Likewise.
757 (reduc_<reduc_op>_scal_<mode>): Use V_ALL. Use gen_vec_extract.
758 (fold_left_plus_<mode>): Use V_FP.
759 (*<reduc_op>_dpp_shr_<mode>): Use V_1REG.
760 (*<reduc_op>_dpp_shr_<mode>): Use V_DI.
761 (*plus_carry_dpp_shr_<mode>): Use V_INT_1REG.
762 (*plus_carry_in_dpp_shr_<mode>): Use V_SI.
763 (*plus_carry_dpp_shr_<mode>): Use V_DI.
764 (mov_from_lane63_<mode>): Delete.
765 (mov_from_lane63_<mode>): Delete.
766 * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Support partial vectors.
767 * config/gcn/gcn.md (unspec): Remove UNSPEC_MOV_FROM_LANE63.
769 2022-10-31 Andrew Stubbs <ams@codesourcery.com>
771 * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen):
772 Set base_type as ARG_UNUSED.
774 2022-10-31 Jakub Jelinek <jakub@redhat.com>
776 * builtin-types.def (BT_COMPLEX_FLOAT16, BT_COMPLEX_FLOAT32,
777 BT_COMPLEX_FLOAT64, BT_COMPLEX_FLOAT128, BT_COMPLEX_FLOAT32X,
778 BT_COMPLEX_FLOAT64X, BT_COMPLEX_FLOAT128X,
779 BT_FN_COMPLEX_FLOAT16_COMPLEX_FLOAT16,
780 BT_FN_COMPLEX_FLOAT32_COMPLEX_FLOAT32,
781 BT_FN_COMPLEX_FLOAT64_COMPLEX_FLOAT64,
782 BT_FN_COMPLEX_FLOAT128_COMPLEX_FLOAT128,
783 BT_FN_COMPLEX_FLOAT32X_COMPLEX_FLOAT32X,
784 BT_FN_COMPLEX_FLOAT64X_COMPLEX_FLOAT64X,
785 BT_FN_COMPLEX_FLOAT128X_COMPLEX_FLOAT128X,
786 BT_FN_FLOAT16_COMPLEX_FLOAT16, BT_FN_FLOAT32_COMPLEX_FLOAT32,
787 BT_FN_FLOAT64_COMPLEX_FLOAT64, BT_FN_FLOAT128_COMPLEX_FLOAT128,
788 BT_FN_FLOAT32X_COMPLEX_FLOAT32X, BT_FN_FLOAT64X_COMPLEX_FLOAT64X,
789 BT_FN_FLOAT128X_COMPLEX_FLOAT128X,
790 BT_FN_COMPLEX_FLOAT16_COMPLEX_FLOAT16_COMPLEX_FLOAT16,
791 BT_FN_COMPLEX_FLOAT32_COMPLEX_FLOAT32_COMPLEX_FLOAT32,
792 BT_FN_COMPLEX_FLOAT64_COMPLEX_FLOAT64_COMPLEX_FLOAT64,
793 BT_FN_COMPLEX_FLOAT128_COMPLEX_FLOAT128_COMPLEX_FLOAT128,
794 BT_FN_COMPLEX_FLOAT32X_COMPLEX_FLOAT32X_COMPLEX_FLOAT32X,
795 BT_FN_COMPLEX_FLOAT64X_COMPLEX_FLOAT64X_COMPLEX_FLOAT64X,
796 BT_FN_COMPLEX_FLOAT128X_COMPLEX_FLOAT128X_COMPLEX_FLOAT128X): New.
797 * builtins.def (CABS_TYPE, CACOSH_TYPE, CARG_TYPE, CASINH_TYPE,
798 CPOW_TYPE, CPROJ_TYPE): Define and undefine later.
799 (BUILT_IN_CABS, BUILT_IN_CACOSH, BUILT_IN_CACOS, BUILT_IN_CARG,
800 BUILT_IN_CASINH, BUILT_IN_CASIN, BUILT_IN_CATANH, BUILT_IN_CATAN,
801 BUILT_IN_CCOSH, BUILT_IN_CCOS, BUILT_IN_CEXP, BUILT_IN_CLOG,
802 BUILT_IN_CPOW, BUILT_IN_CPROJ, BUILT_IN_CSINH, BUILT_IN_CSIN,
803 BUILT_IN_CSQRT, BUILT_IN_CTANH, BUILT_IN_CTAN): Add
804 DEF_EXT_LIB_FLOATN_NX_BUILTINS.
805 * fold-const-call.cc (fold_const_call_sc, fold_const_call_cc,
806 fold_const_call_ccc): Add various CASE_CFN_*_FN: cases when
807 CASE_CFN_* is present.
808 * gimple-ssa-backprop.cc (backprop::process_builtin_call_use):
810 * builtins.cc (expand_builtin, fold_builtin_1): Likewise.
811 * fold-const.cc (negate_mathfn_p, tree_expr_finite_p,
812 tree_expr_maybe_signaling_nan_p, tree_expr_maybe_nan_p,
813 tree_expr_maybe_real_minus_zero_p, tree_call_nonnegative_warnv_p):
816 2022-10-31 Jakub Jelinek <jakub@redhat.com>
818 * builtin-types.def (BT_FN_BFLOAT16_BFLOAT16_BFLOAT16): New.
819 * builtins.def (BUILT_IN_NEXTAFTERF16B): New builtin.
820 * fold-const-call.cc (fold_const_call_sss): Handle
821 CFN_BUILT_IN_NEXTAFTERF16B.
823 2022-10-31 Jakub Jelinek <jakub@redhat.com>
825 * builtin-types.def (BT_FLOAT16_PTR, BT_FLOAT32_PTR, BT_FLOAT64_PTR,
826 BT_FLOAT128_PTR, BT_FLOAT32X_PTR, BT_FLOAT64X_PTR, BT_FLOAT128X_PTR):
827 New DEF_PRIMITIVE_TYPE.
828 (BT_FN_INT_FLOAT16, BT_FN_INT_FLOAT32, BT_FN_INT_FLOAT64,
829 BT_FN_INT_FLOAT128, BT_FN_INT_FLOAT32X, BT_FN_INT_FLOAT64X,
830 BT_FN_INT_FLOAT128X, BT_FN_LONG_FLOAT16, BT_FN_LONG_FLOAT32,
831 BT_FN_LONG_FLOAT64, BT_FN_LONG_FLOAT128, BT_FN_LONG_FLOAT32X,
832 BT_FN_LONG_FLOAT64X, BT_FN_LONG_FLOAT128X, BT_FN_LONGLONG_FLOAT16,
833 BT_FN_LONGLONG_FLOAT32, BT_FN_LONGLONG_FLOAT64,
834 BT_FN_LONGLONG_FLOAT128, BT_FN_LONGLONG_FLOAT32X,
835 BT_FN_LONGLONG_FLOAT64X, BT_FN_LONGLONG_FLOAT128X): New
837 (BT_FN_FLOAT16_FLOAT16_FLOAT16PTR, BT_FN_FLOAT32_FLOAT32_FLOAT32PTR,
838 BT_FN_FLOAT64_FLOAT64_FLOAT64PTR, BT_FN_FLOAT128_FLOAT128_FLOAT128PTR,
839 BT_FN_FLOAT32X_FLOAT32X_FLOAT32XPTR,
840 BT_FN_FLOAT64X_FLOAT64X_FLOAT64XPTR,
841 BT_FN_FLOAT128X_FLOAT128X_FLOAT128XPTR, BT_FN_FLOAT16_FLOAT16_INT,
842 BT_FN_FLOAT32_FLOAT32_INT, BT_FN_FLOAT64_FLOAT64_INT,
843 BT_FN_FLOAT128_FLOAT128_INT, BT_FN_FLOAT32X_FLOAT32X_INT,
844 BT_FN_FLOAT64X_FLOAT64X_INT, BT_FN_FLOAT128X_FLOAT128X_INT,
845 BT_FN_FLOAT16_FLOAT16_INTPTR, BT_FN_FLOAT32_FLOAT32_INTPTR,
846 BT_FN_FLOAT64_FLOAT64_INTPTR, BT_FN_FLOAT128_FLOAT128_INTPTR,
847 BT_FN_FLOAT32X_FLOAT32X_INTPTR, BT_FN_FLOAT64X_FLOAT64X_INTPTR,
848 BT_FN_FLOAT128X_FLOAT128X_INTPTR, BT_FN_FLOAT16_FLOAT16_LONG,
849 BT_FN_FLOAT32_FLOAT32_LONG, BT_FN_FLOAT64_FLOAT64_LONG,
850 BT_FN_FLOAT128_FLOAT128_LONG, BT_FN_FLOAT32X_FLOAT32X_LONG,
851 BT_FN_FLOAT64X_FLOAT64X_LONG, BT_FN_FLOAT128X_FLOAT128X_LONG): New
853 (BT_FN_FLOAT16_FLOAT16_FLOAT16_INTPTR,
854 BT_FN_FLOAT32_FLOAT32_FLOAT32_INTPTR,
855 BT_FN_FLOAT64_FLOAT64_FLOAT64_INTPTR,
856 BT_FN_FLOAT128_FLOAT128_FLOAT128_INTPTR,
857 BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_INTPTR,
858 BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_INTPTR,
859 BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_INTPTR): New DEF_FUNCTION_TYPE_3.
860 * builtins.def (ACOSH_TYPE, ATAN2_TYPE, ATANH_TYPE, COSH_TYPE,
861 FDIM_TYPE, HUGE_VAL_TYPE, HYPOT_TYPE, ILOGB_TYPE, LDEXP_TYPE,
862 LGAMMA_TYPE, LLRINT_TYPE, LOG10_TYPE, LRINT_TYPE, MODF_TYPE,
863 NEXTAFTER_TYPE, REMQUO_TYPE, SCALBLN_TYPE, SCALBN_TYPE, SINH_TYPE):
864 Define and undefine later.
865 (FMIN_TYPE, SQRT_TYPE): Undefine at a later line.
866 (INF_TYPE): Define at a later line.
867 (BUILT_IN_ACOSH, BUILT_IN_ACOS, BUILT_IN_ASINH, BUILT_IN_ASIN,
868 BUILT_IN_ATAN2, BUILT_IN_ATANH, BUILT_IN_ATAN, BUILT_IN_CBRT,
869 BUILT_IN_COSH, BUILT_IN_COS, BUILT_IN_ERFC, BUILT_IN_ERF,
870 BUILT_IN_EXP2, BUILT_IN_EXP, BUILT_IN_EXPM1, BUILT_IN_FDIM,
871 BUILT_IN_FMOD, BUILT_IN_FREXP, BUILT_IN_HYPOT, BUILT_IN_ILOGB,
872 BUILT_IN_LDEXP, BUILT_IN_LGAMMA, BUILT_IN_LLRINT, BUILT_IN_LLROUND,
873 BUILT_IN_LOG10, BUILT_IN_LOG1P, BUILT_IN_LOG2, BUILT_IN_LOGB,
874 BUILT_IN_LOG, BUILT_IN_LRINT, BUILT_IN_LROUND, BUILT_IN_MODF,
875 BUILT_IN_NEXTAFTER, BUILT_IN_POW, BUILT_IN_REMAINDER, BUILT_IN_REMQUO,
876 BUILT_IN_SCALBLN, BUILT_IN_SCALBN, BUILT_IN_SINH, BUILT_IN_SIN,
877 BUILT_IN_TANH, BUILT_IN_TAN, BUILT_IN_TGAMMA): Add
878 DEF_EXT_LIB_FLOATN_NX_BUILTINS.
879 (BUILT_IN_HUGE_VAL): Use HUGE_VAL_TYPE instead of INF_TYPE in
880 DEF_GCC_FLOATN_NX_BUILTINS.
881 * fold-const-call.cc (fold_const_call_ss): Add various CASE_CFN_*_FN:
882 cases when CASE_CFN_* is present.
883 (fold_const_call_sss): Likewise.
884 * builtins.cc (mathfn_built_in_2): Use CASE_MATHFN_FLOATN instead of
885 CASE_MATHFN for various builtins in SEQ_OF_CASE_MATHFN macro.
886 (builtin_with_linkage_p): Add CASE_FLT_FN_FLOATN_NX for various
887 builtins next to CASE_FLT_FN.
888 * fold-const.cc (tree_call_nonnegative_warnv_p): Add CASE_CFN_*_FN:
889 next to CASE_CFN_*: for various builtins.
890 * tree-call-cdce.cc (can_test_argument_range): Add
891 CASE_FLT_FN_FLOATN_NX next to CASE_FLT_FN for various builtins.
892 (edom_only_function): Likewise.
894 2022-10-31 konglin1 <lingling.kong@intel.com>
896 * common/config/i386/i386-common.cc
897 (OPTION_MASK_ISA2_AVXNECONVERT_SET,
898 OPTION_MASK_ISA2_AVXNECONVERT_UNSET): New.
899 (ix86_handle_option): Handle -mavxneconvert, unset
900 avxneconvert when avx2 is disabled.
901 * common/config/i386/i386-cpuinfo.h (processor_types): Add
902 FEATURE_AVXNECONVERT.
903 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
905 * common/config/i386/cpuinfo.h (get_available_features):
907 * config.gcc: Add avxneconvertintrin.h
908 * config/i386/avxneconvertintrin.h: New.
909 * config/i386/avx512bf16vlintrin.h (_mm256_cvtneps_pbh):
910 Unified builtin with avxneconvert.
911 (_mm_cvtneps_pbh): Ditto.
912 * config/i386/cpuid.h (bit_AVXNECONVERT): New.
913 * config/i386/i386-builtin-types.def: Add
914 DEF_POINTER_TYPE (PCV8HF, V8HF, CONST),
915 DEF_POINTER_TYPE (PCV8BF, V8BF, CONST),
916 DEF_POINTER_TYPE (PCV16HF, V16HF, CONST),
917 DEF_POINTER_TYPE (PCV16BF, V16BF, CONST),
918 DEF_FUNCTION_TYPE (V4SF, PCBFLOAT16),
919 DEF_FUNCTION_TYPE (V4SF, PCFLOAT16),
920 DEF_FUNCTION_TYPE (V8SF, PCBFLOAT16),
921 DEF_FUNCTION_TYPE (V8SF, PCFLOAT16),
922 DEF_FUNCTION_TYPE (V4SF, PCV8BF),
923 DEF_FUNCTION_TYPE (V4SF, PCV8HF),
924 DEF_FUNCTION_TYPE (V8SF, PCV16HF),
925 DEF_FUNCTION_TYPE (V8SF, PCV16BF),
926 * config/i386/i386-builtin.def: Add new builtins.
927 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
929 * config/i386/i386-expand.cc (ix86_expand_special_args_builtin):
930 Handle V4SF_FTYPE_PCBFLOAT16,V8SF_FTYPE_PCBFLOAT16, V4SF_FTYPE_PCFLOAT16,
931 V8SF_FTYPE_PCFLOAT16,V4SF_FTYPE_PCV8BF,
932 V4SF_FTYPE_PCV8HF,V8SF_FTYPE_PCV16BF,V8SF_FTYPE_PCV16HF.
933 * config/i386/i386-isa.def : Add DEF_PTA(AVXNECONVERT) New.
934 * config/i386/i386-options.cc (isa2_opts): Add -mavxneconvert.
935 (ix86_valid_target_attribute_inner_p): Handle avxneconvert.
936 * config/i386/i386.md: Add attr avx512bf16vl and avxneconvert.
937 * config/i386/i386.opt: Add option -mavxneconvert.
938 * config/i386/immintrin.h: Inculde avxneconvertintrin.h.
939 * config/i386/sse.md (vbcstnebf162ps_<mode>): New define_insn.
940 (vbcstnesh2ps_<mode>): Ditto.
941 (vcvtnee<bf16_ph>2ps_<mode>):Ditto.
942 (vcvtneo<bf16_ph>2ps_<mode>):Ditto.
943 (vcvtneps2bf16_v4sf): Ditto.
944 (*vcvtneps2bf16_v4sf): Ditto.
945 (vcvtneps2bf16_v8sf): Ditto.
946 * doc/invoke.texi: Document -mavxneconvert.
947 * doc/extend.texi: Document avxneconvert.
948 * doc/sourcebuild.texi: Document target avxneconvert.
950 2022-10-31 konglin1 <lingling.kong@intel.com>
952 * config/i386/avx512bf16intrin.h (__attribute__): Change short to bf16.
953 (_mm_cvtsbh_ss): Ditto.
954 (_mm512_cvtne2ps_pbh): Ditto.
955 (_mm512_mask_cvtne2ps_pbh): Ditto.
956 (_mm512_maskz_cvtne2ps_pbh): Ditto.
957 * config/i386/avx512bf16vlintrin.h (__attribute__): Ditto.
958 (_mm256_cvtne2ps_pbh): Ditto.
959 (_mm256_mask_cvtne2ps_pbh): Ditto.
960 (_mm256_maskz_cvtne2ps_pbh): Ditto.
961 (_mm_cvtne2ps_pbh): Ditto.
962 (_mm_mask_cvtne2ps_pbh): Ditto.
963 (_mm_maskz_cvtne2ps_pbh): Ditto.
964 (_mm_cvtness_sbh): Ditto.
965 * config/i386/i386-builtin-types.def (V8BF): Add new
966 DEF_VECTOR_TYPE for BFmode.
969 * config/i386/i386-builtin.def (BDESC): Fixed builtins.
970 * config/i386/i386-expand.cc (ix86_expand_args_builtin): Changed
971 avx512bf16 ix86_builtin_func_type included HI to BF.
972 * config/i386/immintrin.h: Add SSE2 depend for avx512bf16.
973 * config/i386/sse.md (TARGET_AVX512VL): Changed HI vector to BF
975 (avx512f_cvtneps2bf16_v4sf): New define_expand.
976 (*avx512f_cvtneps2bf16_v4sf): New define_insn.
977 (avx512f_cvtneps2bf16_v4sf_maskz):Ditto.
978 (avx512f_cvtneps2bf16_v4sf_mask): Ditto.
979 (avx512f_cvtneps2bf16_v4sf_mask_1): Ditto.
981 2022-10-31 liuhongt <hongtao.liu@intel.com>
984 * config/i386/i386-modes.def (VECTOR_MODE): Support V2BFmode.
985 * config/i386/i386.cc (classify_argument): Handle V4BFmode and
987 (ix86_convert_const_vector_to_integer): Ditto.
988 * config/i386/i386.h (VALID_AVX512FP16_REG_MODE): Remove
990 (VALID_SSE2_REG_MODE): Add V4BFmode and V2BFmode.
991 (VALID_MMX_REG_MODE): Add V4BFmode.
992 * config/i386/i386.md (mode): Add V4BF and V2BF.
994 * config/i386/mmx.md (MMXMODE) Add V4BF.
996 (V_16_32_64): Add V4BF and V2BF.
997 (mmxinsnmode): Add V4BF and V2BF.
998 (*mov<mode>_internal): Hanlde V4BFmode and V2BFmode.
1000 2022-10-29 Eric Botcazou <ebotcazou@adacore.com>
1002 * configure.ac (sjlj-exceptions): Restore dropped line.
1003 * configure: Regenerate.
1005 2022-10-29 Eric Botcazou <ebotcazou@adacore.com>
1007 * alias.cc (init_alias_analysis): Do not record sets to the hard
1008 frame pointer if the frame pointer has not been eliminated.
1010 2022-10-29 Iain Buclaw <ibuclaw@gdcproject.org>
1012 * config/darwin-d.cc (TARGET_D_MINFO_START_NAME): Rename to ...
1013 (TARGET_D_MINFO_SECTION_START): ...this.
1014 (TARGET_D_MINFO_END_NAME): Rename to ...
1015 (TARGET_D_MINFO_SECTION_END): ... this.
1016 * config/elfos.h (TARGET_D_MINFO_SECTION): Remove.
1017 (TARGET_D_MINFO_START_NAME): Remove.
1018 (TARGET_D_MINFO_END_NAME): Remove.
1019 * config/i386/cygwin-d.cc (TARGET_D_MINFO_SECTION): Remove.
1020 (TARGET_D_MINFO_START_NAME): Remove.
1021 (TARGET_D_MINFO_END_NAME): Remove.
1022 * config/i386/winnt-d.cc (TARGET_D_MINFO_SECTION): Remove.
1023 (TARGET_D_MINFO_START_NAME): Remove.
1024 (TARGET_D_MINFO_END_NAME): Remove.
1025 * doc/tm.texi: Regenerate.
1026 * doc/tm.texi.in (TARGET_D_MINFO_START_NAME): Rename to ...
1027 (TARGET_D_MINFO_SECTION_START): ...this.
1028 (TARGET_D_MINFO_END_NAME): Rename to ...
1029 (TARGET_D_MINFO_SECTION_END): ...this.
1031 2022-10-29 Iain Buclaw <ibuclaw@gdcproject.org>
1033 * config.gcc: Split out glibc-d.o into linux-d.o, kfreebsd-d.o,
1034 kopensolaris-d.o, and gnu-d.o. Split out cygwin-d.o from winnt-d.o.
1035 * config/arm/linux-eabi.h (EXTRA_TARGET_D_OS_VERSIONS): Remove.
1036 * config/gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Remove.
1037 * config/i386/cygwin.h (EXTRA_TARGET_D_OS_VERSIONS): Remove.
1038 * config/i386/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Remove.
1039 * config/i386/mingw32.h (EXTRA_TARGET_D_OS_VERSIONS): Remove.
1040 * config/i386/t-cygming: Add cygwin-d.o.
1041 * config/i386/winnt-d.cc (winnt_d_os_builtins): Only add
1042 MinGW-specific version condition.
1043 * config/kfreebsd-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Remove.
1044 * config/kopensolaris-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Remove.
1045 * config/linux-android.h (ANDROID_TARGET_D_OS_VERSIONS): Remove.
1046 * config/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Remove.
1047 * config/mips/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Remove.
1048 * config/t-glibc: Remove glibc-d.o, add gnu-d.o, kfreebsd-d.o,
1050 * config/t-linux: Add linux-d.o.
1051 * config/glibc-d.cc: Remove file.
1052 * config/gnu-d.cc: New file.
1053 * config/i386/cygwin-d.cc: New file.
1054 * config/kfreebsd-d.cc: New file.
1055 * config/kopensolaris-d.cc: New file.
1056 * config/linux-d.cc: New file.
1058 2022-10-29 Jeff Law <jeffreyalaw@gmail.com>
1060 * config/h8300/h8300.cc (pre_incdec_with_reg): Make reg argument
1062 * config/h8300/h8300-protos.h (pre_incdec_with_reg): Adjust prototype.
1064 2022-10-28 Joseph Myers <joseph@codesourcery.com>
1066 * config/aarch64/aarch64.cc (aarch64_setup_incoming_varargs):
1067 Check TYPE_NO_NAMED_ARGS_STDARG_P.
1068 * config/alpha/alpha.cc (alpha_setup_incoming_varargs): Likewise.
1069 * config/arc/arc.cc (arc_setup_incoming_varargs): Likewise.
1070 * config/arm/arm.cc (arm_setup_incoming_varargs): Likewise.
1071 * config/csky/csky.cc (csky_setup_incoming_varargs): Likewise.
1072 * config/epiphany/epiphany.cc (epiphany_setup_incoming_varargs):
1074 * config/fr30/fr30.cc (fr30_setup_incoming_varargs): Likewise.
1075 * config/frv/frv.cc (frv_setup_incoming_varargs): Likewise.
1076 * config/ft32/ft32.cc (ft32_setup_incoming_varargs): Likewise.
1077 * config/i386/i386.cc (ix86_setup_incoming_varargs): Likewise.
1078 * config/ia64/ia64.cc (ia64_setup_incoming_varargs): Likewise.
1079 * config/loongarch/loongarch.cc
1080 (loongarch_setup_incoming_varargs): Likewise.
1081 * config/m32r/m32r.cc (m32r_setup_incoming_varargs): Likewise.
1082 * config/mcore/mcore.cc (mcore_setup_incoming_varargs): Likewise.
1083 * config/mips/mips.cc (mips_setup_incoming_varargs): Likewise.
1084 * config/mmix/mmix.cc (mmix_setup_incoming_varargs): Likewise.
1085 * config/nds32/nds32.cc (nds32_setup_incoming_varargs): Likewise.
1086 * config/nios2/nios2.cc (nios2_setup_incoming_varargs): Likewise.
1087 * config/riscv/riscv.cc (riscv_setup_incoming_varargs): Likewise.
1088 * config/rs6000/rs6000-call.cc (setup_incoming_varargs): Likewise.
1089 * config/sh/sh.cc (sh_setup_incoming_varargs): Likewise.
1090 * config/visium/visium.cc (visium_setup_incoming_varargs):
1092 * config/vms/vms-c.cc (vms_c_common_override_options): Do not set
1093 flag_allow_parameterless_variadic_functions.
1094 * doc/invoke.texi (-fallow-parameterless-variadic-functions): Do
1095 not document option.
1096 * function.cc (assign_parms): Call assign_parms_setup_varargs for
1097 TYPE_NO_NAMED_ARGS_STDARG_P case.
1098 * ginclude/stdarg.h [__STDC_VERSION__ > 201710L] (va_start): Make
1099 variadic macro. Pass second argument of 0 to __builtin_va_start.
1100 * target.def (setup_incoming_varargs): Update documentation.
1101 * doc/tm.texi: Regenerate.
1102 * tree-core.h (struct tree_type_common): Add
1103 no_named_args_stdarg_p.
1104 * tree-streamer-in.cc (unpack_ts_type_common_value_fields): Unpack
1105 TYPE_NO_NAMED_ARGS_STDARG_P.
1106 * tree-streamer-out.cc (pack_ts_type_common_value_fields): Pack
1107 TYPE_NO_NAMED_ARGS_STDARG_P.
1108 * tree.cc (type_cache_hasher::equal): Compare
1109 TYPE_NO_NAMED_ARGS_STDARG_P.
1110 (build_function_type): Add argument no_named_args_stdarg_p.
1111 (build_function_type_list_1, build_function_type_array_1)
1112 (reconstruct_complex_type): Update calls to build_function_type.
1113 (stdarg_p, prototype_p): Return true for (...) functions.
1114 (gimple_canonical_types_compatible_p): Compare
1115 TYPE_NO_NAMED_ARGS_STDARG_P.
1116 * tree.h (TYPE_NO_NAMED_ARGS_STDARG_P): New.
1117 (build_function_type): Update prototype.
1119 2022-10-28 Andre Vieira <andre.simoesdiasvieira@arm.com>
1121 PR tree-optimization/107346
1122 * tree-vect-data-refs.cc (vect_check_gather_scatter): Reject offsets
1123 that aren't multiples of BITS_PER_UNIT.
1125 2022-10-28 Richard Biener <rguenther@suse.de>
1127 PR tree-optimization/107407
1128 * tree-ssa-dse.cc (dse_classify_store): Perform backedge
1129 varying index check when collecting PHI uses rather than
1130 after optimizing processing of the candidate defs.
1132 2022-10-28 Richard Biener <rguenther@suse.de>
1134 PR tree-optimization/107447
1135 * tree-ssa-loop-im.cc (determine_max_movement): Do not
1136 hoist returns-twice calls.
1138 2022-10-28 Richard Biener <rguenther@suse.de>
1140 PR tree-optimization/107435
1141 * tree-vect-loop.cc (vectorizable_recurr): Convert initial
1142 value to vector component type.
1144 2022-10-28 Julian Brown <julian@codesourcery.com>
1145 Thomas Schwinge <thomas@codesourcery.com>
1148 * omp-low.cc (oacc_privatization_candidate_p): Artificial vars are not
1149 privatization candidates.
1151 2022-10-28 Martin Liska <mliska@suse.cz>
1154 * doc/invoke.texi: Document sanitizers can trigger warnings.
1156 2022-10-28 Thomas Schwinge <thomas@codesourcery.com>
1158 * doc/makefile.texi (Makefile Targets): Document
1159 'distclean-stage[N]'.
1161 2022-10-28 Aldy Hernandez <aldyh@redhat.com>
1163 * value-range.cc (range_tests_floats): Use HONOR_INFINITIES.
1165 2022-10-27 Eric Botcazou <ebotcazou@adacore.com>
1167 * config/aarch64/aarch64.h (DONT_USE_BUILTIN_SETJMP): Delete.
1169 2022-10-27 H.J. Lu <hjl.tools@gmail.com>
1172 * config/i386/i386.md (UNSPEC_CC_NE): New.
1173 Replace ne:CCC/ne:CCO with UNSPEC_CC_NE in neg patterns.
1175 2022-10-27 Andrew Pinski <apinski@marvell.com>
1177 * tree-ssa-phiopt.cc: Include tree-ssa-dce.h
1178 (replace_phi_edge_with_variable):
1179 New argument, dce_ssa_names. Call simple_dce_from_worklist.
1180 (match_simplify_replacement): If we inserted a sequence,
1181 mark the lhs of the new sequence to be possible dce.
1182 Always move the statement and mark the lhs (if it is a name)
1183 as possible to remove.
1185 2022-10-27 Richard Sandiford <richard.sandiford@arm.com>
1187 * config/aarch64/aarch64-protos.h: Replace constexpr with
1189 * config/aarch64/aarch64-sve-builtins-base.cc: Likewise.
1190 * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
1191 * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
1192 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
1193 * config/aarch64/aarch64-sve-builtins.cc: Likewise.
1194 * config/aarch64/aarch64.cc: Likewise.
1195 * config/aarch64/driver-aarch64.cc: Likewise
1197 2022-10-27 Aldy Hernandez <aldyh@redhat.com>
1199 PR tree-optimization/107394
1200 * value-range-storage.cc (frange_storage_slot::get_frange): Use
1203 2022-10-27 Thomas Schwinge <thomas@codesourcery.com>
1205 * optc-save-gen.awk: Clarify 'Init' option property usage for
1206 streaming optimization.
1208 2022-10-27 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
1209 Yvan ROUX <yvan.roux@foss.st.com>
1211 * ira.cc: Resize array after reg number increased.
1213 2022-10-27 Jiawei <jiawei@iscas.ac.cn>
1214 Sinan Lin <sinan@isrc.iscas.ac.cn>
1216 * config/riscv/constraints.md (TARGET_ZFINX ? GR_REGS): Set GPRS
1217 use while Zfinx is enable.
1218 * config/riscv/riscv.cc (riscv_hard_regno_mode_ok): Limit odd
1219 registers use when Zdinx enable in RV32 cases.
1220 (riscv_option_override): New target enable MASK_FDIV.
1221 (riscv_libgcc_floating_mode_supported_p): New error info when
1222 use incompatible arch&abi.
1223 (riscv_excess_precision): New target enable FLOAT16.
1225 2022-10-27 Jiawei <jiawei@iscas.ac.cn>
1227 * config/riscv/iterators.md (TARGET_ZFINX):New target.
1228 (TARGET_ZDINX): Ditto.
1229 (TARGET_ZHINX): Ditto.
1230 * config/riscv/riscv-builtins.cc (AVAIL): Ditto.
1231 (riscv_atomic_assign_expand_fenv): Ditto.
1232 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Ditto.
1233 * config/riscv/riscv.md: Ditto.
1235 2022-10-27 Jiawei <jiawei@iscas.ac.cn>
1236 Sinan Lin <sinan@isrc.iscas.ac.cn>
1238 * common/config/riscv/riscv-common.cc: New extensions.
1239 * config/riscv/arch-canonicalize: New imply relations.
1240 * config/riscv/riscv-opts.h (MASK_ZFINX): New mask.
1241 (MASK_ZDINX): Ditto.
1242 (MASK_ZHINX): Ditto.
1243 (MASK_ZHINXMIN): Ditto.
1244 (TARGET_ZFINX): New target.
1245 (TARGET_ZDINX): Ditto.
1246 (TARGET_ZHINX): Ditto.
1247 (TARGET_ZHINXMIN): Ditto.
1248 * config/riscv/riscv.opt: New target variable.
1250 2022-10-26 David Faust <david.faust@oracle.com>
1252 * config/bpf/bpf.cc: Support __builtin_preserve_field_info.
1253 (enum bpf_builtins): Add new builtin.
1254 (bpf_init_builtins): Likewise.
1255 (bpf_core_field_info): New function.
1256 (bpf_expand_builtin): Accomodate new builtin. Refactor adding new
1258 (maybe_make_core_relo): ... here. New function.
1259 (bpf_resolve_overloaded_builtin): Accomodate new builtin.
1260 (bpf_core_newdecl): Likewise.
1261 (bpf_core_walk): Likewise.
1262 (bpf_core_is_maybe_aggregate_access): Improve logic.
1263 (struct core_walk_data): New.
1264 * config/bpf/coreout.cc (bpf_core_reloc_add): Allow adding different
1266 * config/bpf/coreout.h: Analogous change.
1267 * doc/extend.texi: Document BPF __builtin_preserve_field_info.
1269 2022-10-26 Marek Polacek <polacek@redhat.com>
1272 * doc/invoke.texi: Document -Wdangling-reference.
1274 2022-10-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1276 * config/xtensa/xtensa.md (movdi):
1277 Copy operands[0...1] to ops[0...3] and then use the latter before
1278 calling xtensa_split_DI_reg_imm() and emitting insns.
1280 2022-10-26 Alexander Monakov <amonakov@ispras.ru>
1283 * ipa-visibility.cc (function_and_variable_visibility):
1284 Conditionally upgrade TLS model instead of asserting.
1286 2022-10-26 Andrew MacLeod <amacleod@redhat.com>
1288 * gimple-range-fold.cc (fold_using_range::fold_stmt): Check if
1289 stmt is non-negative and adjust the range.
1291 2022-10-26 Martin Liska <mliska@suse.cz>
1293 * common/config/i386/cpuinfo.h (has_cpu_feature): Add comment.
1294 (reset_cpu_feature): New.
1295 (get_zhaoxin_cpu): Use reset_cpu_feature.
1297 2022-10-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1299 * config/riscv/riscv.cc (riscv_expand_epilogue): Fix statement.
1301 2022-10-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1304 * config/riscv/riscv-modes.def (VECTOR_BOOL_MODE): Set to minimum size.
1305 (ADJUST_NUNITS): Adjust according to -march.
1306 (ADJUST_BYTESIZE): Ditto.
1307 * config/riscv/riscv-protos.h (riscv_v_ext_enabled_vector_mode_p):
1309 (riscv_v_ext_vector_mode_p): Change function implementation.
1310 * config/riscv/riscv-vector-builtins.cc (rvv_switcher::rvv_switcher):
1311 Change to riscv_v_ext_vector_mode_p.
1312 (register_builtin_type): Ditto.
1313 * config/riscv/riscv.cc (riscv_v_ext_vector_mode_p): Change to enabled
1316 (riscv_v_ext_enabled_vector_mode_p): Remove.
1317 (riscv_v_adjust_nunits): New function.
1318 (riscv_vector_mode_supported_p): Use riscv_v_ext_vector_mode_p instead.
1319 * config/riscv/riscv.h (riscv_v_adjust_nunits): New function.
1321 2022-10-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1323 * config.gcc (riscv*): Add riscv-v.o to extra_objs.
1324 * config/riscv/constraints.md (vu): New constraint.
1328 * config/riscv/predicates.md (vector_length_operand): New.
1329 (reg_or_mem_operand): Ditto.
1330 (vector_move_operand): Ditto.
1331 (vector_mask_operand): Ditto.
1332 (vector_merge_operand): Ditto.
1333 * config/riscv/riscv-protos.h (riscv_regmode_natural_size) New.
1334 (riscv_vector::const_vec_all_same_in_range_p): Ditto.
1335 (riscv_vector::legitimize_move): Ditto.
1336 (tail_policy): Ditto.
1337 (mask_policy): Ditto.
1338 * config/riscv/riscv-v.cc: New.
1339 * config/riscv/riscv-vector-builtins-bases.cc
1340 (vsetvl::expand): Refactor how LMUL encoding.
1341 * config/riscv/riscv.cc (riscv_print_operand): Update how LMUL
1342 print and mask operand print.
1343 (riscv_regmode_natural_size): New.
1344 * config/riscv/riscv.h (REGMODE_NATURAL_SIZE): New.
1345 * config/riscv/riscv.md (mode): Add vector modes.
1346 * config/riscv/t-riscv (riscv-v.o) New.
1347 * config/riscv/vector-iterators.md: New.
1348 * config/riscv/vector.md (vundefined<mode>): New.
1351 (@vsetvl<mode>_no_side_effects): New.
1352 (@pred_mov<mode>): New.
1354 2022-10-26 Monk Chiang <monk.chiang@sifive.com>
1356 * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
1357 Add svinval and svnapot extension.
1358 (riscv_ext_flag_table): Ditto.
1359 * config/riscv/riscv-opts.h (MASK_SVINVAL): New.
1360 (MASK_SVNAPOT): Ditto.
1361 (TARGET_SVINVAL): Ditto.
1362 (TARGET_SVNAPOT): Ditto.
1363 * config/riscv/riscv.opt (riscv_sv_subext): New.
1365 2022-10-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1367 * config/riscv/riscv-modes.def: Adjust table indentation in commnet.
1369 2022-10-26 Martin Liska <mliska@suse.cz>
1371 * configure: Regenerate.
1373 2022-10-26 Aldy Hernandez <aldyh@redhat.com>
1375 * value-range.cc (frange::set): Use HONOR_*.
1376 (frange::verify_range): Same.
1377 * value-range.h (frange_val_min): Same.
1378 (frange_val_max): Same.
1380 2022-10-26 Jiufu Guo <guojiufu@linux.ibm.com>
1383 * config/rs6000/rs6000.cc (rs6000_cannot_force_const_mem): Return true
1386 2022-10-26 Kito Cheng <kito.cheng@sifive.com>
1388 * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
1390 (riscv_supported_std_ext): Ditto.
1391 (multi_letter_subset_rank): Remove `h`.
1392 (riscv_subset_list::parse_std_ext): Handle `h` as single letter
1394 (riscv_subset_list::parse): Ditto.
1396 2022-10-25 Eugene Rozenfeld <erozen@microsoft.com>
1398 * auto-profile.cc (get_combined_location): Include discriminator in the
1399 returned combined location.
1400 (read_function_instance): Read discriminators from profiles.
1402 2022-10-25 H.J. Lu <hjl.tools@gmail.com>
1405 * expr.cc (get_inner_reference): Always use TYPE_MODE for vector
1406 field with vector raw mode.
1408 2022-10-25 Segher Boessenkool <segher@kernel.crashing.org>
1410 * config/rs6000/rs6000.md (CCEITHER): Delete.
1413 (isel_<un>signed_<GPR:mode>): Rename to...
1414 (isel_<CCANY:mode>_<GPR:mode>): ... this. Adjust.
1415 (*isel_reversed_<un>signed_<GPR:mode>): Rename to...
1416 (*isel_reversed_<CCANY:mode>_<GPR:mode>): ... this. Adjust.
1417 (setbc_<un>signed_<GPR:mode>): Rename to...
1418 (setbc_<CCANY:mode>_<GPR:mode>C): ... this. Adjust."
1419 (*setbcr_<un>signed_<GPR:mode>): Rename to ...
1420 (*setbcr_<CCANY:mode>_<GPR:mode>): ... this. Adjust.
1421 (*setnbc_<un>signed_<GPR:mode>): Rename to ...
1422 (*setnbc_<CCANY:mode>_<GPR:mode>): ... this. Adjust.
1423 (*setnbcr_<un>signed_<GPR:mode>): Rename to ...
1424 (*setnbcr_<CCANY:mode>_<GPR:mode>): ... this. Adjust.
1425 (eq<mode>3 for GPR): Adjust.
1426 (ne<mode>3 for GPR): Adjust.
1427 * config/rs6000/rs6000-string.cc (do_isel): Adjust.
1428 * config/rs6000/rs6000.cc (rs6000_emit_int_cmove): Adjust.
1430 2022-10-25 Richard Biener <rguenther@suse.de>
1432 PR tree-optimization/107176
1433 PR tree-optimization/66375
1434 PR tree-optimization/42512
1435 * tree-scalar-evolution.cc (follow_ssa_edge_expr): Revert
1436 the PR66375 fix, do not not associate PLUS_EXPR to be able
1437 to use tail-recursion.
1438 (follow_ssa_edge_binary): Likewise.
1439 (interpret_loop_phi): Revert PR42512 fix, do not throw
1440 away analyze_evolution_in_loop result after the fact.
1441 (follow_ssa_edge_expr): When reaching halting_phi initalize
1442 the evolution to the symbolic value of the PHI result.
1443 (add_to_evolution_1): When adding the first evolution verify
1444 we can handle the expression wrapping the symbolic evolution
1445 and replace that in full using the initial condition.
1446 (class scev_dfs): New, contains ...
1447 (follow_ssa_edge_expr, follow_ssa_edge_binary,
1448 follow_ssa_edge_in_condition_phi_branch,
1449 follow_ssa_edge_in_condition_phi,
1450 follow_ssa_edge_inner_loop_phi,
1451 add_to_evolution, add_to_evolution_1): ... these with
1452 loop and halting_phi arguments in class data.
1453 (scev_dfs::get_ev): New toplevel DFS entry, start with
1454 a chrec_dont_know evolution.
1455 (analyze_evolution_in_loop): Use scev_dfs.
1457 2022-10-25 Eric Botcazou <ebotcazou@adacore.com>
1459 * profile.cc (branch_prob): Be prepared for ignored functions with
1460 DECL_SOURCE_LOCATION set to UNKNOWN_LOCATION.
1462 2022-10-25 Richard Biener <rguenther@suse.de>
1464 * tree-scalar-evolution.cc (follow_ssa_edge_expr): Move
1465 STRIP_USELESS_TYPE_CONVERSIONS to where it matters.
1467 2022-10-25 Tejas Joshi <TejasSanjay.Joshi@amd.com>
1469 * common/config/i386/i386-common.cc (processor_alias_table): Use
1470 CPU_ZNVER3 for znver4.
1471 * config/i386/znver.md: Remove znver4 reservations.
1473 2022-10-25 Jakub Jelinek <jakub@redhat.com>
1475 * gimplify.cc (gimple_boolify): Fix comment typos, prduce -> produce
1478 2022-10-25 Jakub Jelinek <jakub@redhat.com>
1480 PR tree-optimization/107368
1481 * gimplify.cc (gimplify_call_expr): For complex IFN_ASSUME
1482 conditions call gimple_boolify on the condition.
1484 2022-10-25 YunQiang Su <yunqiang.su@cipunited.com>
1486 * config.gcc: add -with-compact-branches=policy build option.
1487 * doc/install.texi: Likewise.
1488 * config/mips/mips.h: Likewise.
1490 2022-10-25 YunQiang Su <yunqiang.su@cipunited.com>
1492 * config/mips/mips.cc (mips_option_override): not trigger error
1493 for compact-branches=always for pre-R6.
1494 * config/mips/mips.h (TARGET_RTP_PIC): not trigger error for
1495 compact-branches=always for pre-R6.
1496 (TARGET_CB_NEVER): Likewise.
1497 (TARGET_CB_ALWAYS): Likewise.
1498 (struct mips_cpu_info): define macros for compact branch policy.
1499 * doc/invoke.texi: Document "always" with pre-R6.
1501 2022-10-25 Jakub Jelinek <jakub@redhat.com>
1503 PR tree-optimization/107369
1504 * gimplify.cc (gimplify_call_expr): If seen_error, handle complex
1505 IFN_ASSUME the same as for -O0.
1507 2022-10-25 YunQiang Su <yunqiang.su@cipunited.com>
1509 * configure.ac: AC_DEFINE(ENABLE_MULTIARCH, 1)
1510 * configure: Regenerated.
1511 * config.in: Regenerated.
1512 * config/mips/mips.h: don't define STANDARD_STARTFILE_PREFIX_1
1513 if ENABLE_MULTIARCH is defined.
1514 * config/mips/t-linux64: define correct multiarch path when
1515 multiarch is enabled.
1517 2022-10-25 Richard Biener <rguenther@suse.de>
1519 PR tree-optimization/100756
1520 * tree-ssa-loop-niter.cc (expand_simple_operations): Also
1521 expand multiplications by invariants.
1523 2022-10-25 Kewen Lin <linkw@linux.ibm.com>
1525 PR tree-optimization/107338
1526 * tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern): Move
1527 shfit_n calculation before the adjustments for widening loads.
1529 2022-10-25 Martin Liska <mliska@suse.cz>
1531 * common/config/riscv/riscv-common.cc
1532 (riscv_get_valid_option_values): Get out of ifdef.
1534 2022-10-25 Martin Liska <mliska@suse.cz>
1537 * common/config/i386/i386-cpuinfo.h (enum processor_vendor):
1538 Fix pedantic warning.
1540 2022-10-24 Martin Liska <mliska@suse.cz>
1543 * diagnostic-format-sarif.cc
1544 (sarif_builder::maybe_make_physical_location_object): Gracefully
1545 reject locations with NULL filename.
1547 2022-10-24 David Malcolm <dmalcolm@redhat.com>
1550 * doc/invoke.texi (Static Analyzer Options): Add "pipe" and
1551 "pipe2" to the list of functions the analyzer has hardcoded
1554 2022-10-24 Jason Merrill <jason@redhat.com>
1556 * tree.h (build_string_literal): New one-argument overloads that
1557 take tree (identifier) and const char *.
1558 * builtins.cc (fold_builtin_FILE)
1559 (fold_builtin_FUNCTION)
1560 * gimplify.cc (gimple_add_init_for_auto_var)
1561 * vtable-verify.cc (verify_bb_vtables): Simplify calls.
1563 2022-10-24 Martin Liska <mliska@suse.cz>
1566 * common/config/i386/i386-cpuinfo.h (enum processor_vendor):
1567 Reorder enum values as BUILTIN_VENDOR_MAX should not point
1568 in the middle of the valid enum values.
1570 2022-10-24 Marek Polacek <polacek@redhat.com>
1573 * tree.cc (maybe_wrap_with_location): Don't create a location wrapper
1574 when the type is erroneous.
1576 2022-10-24 Wilco Dijkstra <wdijkstr@arm.com>
1579 * config/aarch64/aarch64.cc (aarch64_internal_mov_immediate)
1580 Add support for a bitmask immediate with 2 MOVKs.
1581 (aarch64_check_bitmask): New function after refactorization.
1582 (aarch64_bitmask_imm): Simplify replication of small modes.
1583 Split function into 64-bit only version for efficiency.
1584 (aarch64_move_imm): Move near other immediate functions.
1585 (aarch64_uimm12_shift): Likewise.
1586 (aarch64_clamp_to_uimm12_shift): Likewise.
1587 (aarch64_movk_shift): Likewise.
1588 (aarch64_replicate_bitmask_imm): Likewise.
1589 (aarch64_and_split_imm1): Likewise.
1590 (aarch64_and_split_imm2): Likewise.
1591 (aarch64_and_bitmask_imm): Likewise.
1592 (aarch64_movw_imm): Likewise.
1594 2022-10-24 Aldy Hernandez <aldyh@redhat.com>
1596 PR tree-optimization/107355
1597 * range-op-float.cc (foperator_abs::op1_range): Handle NAN.
1599 2022-10-24 Tobias Burnus <tobias@codesourcery.com>
1601 PR middle-end/107236
1602 * omp-expand.cc (expand_omp_target): Set calls_declare_variant_alt
1603 in DECL_CONTEXT and not to cfun->decl.
1604 * cgraphclones.cc (cgraph_node::create_clone): Copy also the
1605 node's calls_declare_variant_alt value.
1607 2022-10-24 Kito Cheng <kito.cheng@sifive.com>
1609 * common/config/riscv/riscv-common.cc (riscv_tunes): New.
1610 (riscv_get_valid_option_values): New.
1611 (TARGET_GET_VALID_OPTION_VALUES): New.
1612 * config/riscv/riscv-cores.def (RISCV_TUNE): New, define options
1614 (RISCV_CORE): Fix comment.
1615 * config/riscv/riscv.cc (riscv_tune_info_table): Move definition to
1618 2022-10-24 Aldy Hernandez <aldyh@redhat.com>
1620 PR tree-optimization/107365
1621 * value-range.cc (frange::verify_range): Predicate NAN check in
1622 VARYING range on HONOR_NANS instead of flag_finite_math_only.
1623 (range_tests_floats): Same.
1624 (range_tests_floats_various): New.
1625 (range_tests): Call range_tests_floats_various.
1627 2022-10-24 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
1628 Yvan ROUX <yvan.roux@foss.st.com>
1630 * lto-wrapper.cc: Quote paths in makefile.
1632 2022-10-24 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1634 * config/riscv/riscv.cc (riscv_legitimize_move): Support (set (mem) (const_poly_int)).
1636 2022-10-24 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1638 * config/riscv/riscv-vector-builtins-bases.cc: Replace CONSTEXPR
1639 with constexpr throughout.
1640 * config/riscv/riscv-vector-builtins-shapes.cc (SHAPE): Likewise.
1641 * config/riscv/riscv-vector-builtins.cc
1642 (struct registered_function_hasher): Likewise.
1643 * config/riscv/riscv-vector-builtins.h (struct rvv_arg_type_info):
1646 2022-10-24 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1648 * config/riscv/riscv-vector-switch.def (ENTRY): Remove unused TI/TF vector modes.
1650 2022-10-24 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1652 * config/riscv/riscv.h (REG_CLASS_CONTENTS): Fix ALL_REGS.
1654 2022-10-22 Michael Eager <eager@eagercon.com>
1656 * config/microblaze/microblaze.cc
1657 (microblaze_legitimize_address): Initialize 'reg' to NULL, check for NULL.
1658 (microblaze_address_insns): Replace abort() with gcc_unreachable().
1659 (print_operand_address): Same.
1660 (microblaze_expand_move): Initialize 'p1' to NULL, check for NULL.
1661 (get_branch_target): Replace abort() with gcc_unreachable().
1663 2022-10-22 Aldy Hernandez <aldyh@redhat.com>
1665 * value-range.cc (range_tests_floats): Predicate [-Inf, +Inf] test
1666 with !flag_finite_math_only.
1668 2022-10-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1670 * config/xtensa/xtensa.cc (xtensa_conditional_register_usage):
1671 Remove register A0 from FIXED_REGS if the CALL0 ABI.
1672 (xtensa_expand_epilogue): Change to emit '(use (reg:SI A0_REG))'
1673 unconditionally after restoring callee-saved registers for
1674 sibling-call functions, in order to prevent misleading that
1675 register A0 is free to use.
1677 2022-10-21 Jakub Jelinek <jakub@redhat.com>
1680 * config/i386/i386-expand.cc (ix86_prepare_fp_compare_args): For
1681 BFmode comparisons promote arguments to SFmode and recurse.
1682 (ix86_expand_int_movcc, ix86_expand_fp_movcc): Return false early
1683 if comparison operands are BFmode and operands[1] is not
1684 ix86_fp_comparison_operator.
1686 2022-10-21 Tejas Joshi <TejasSanjay.Joshi@amd.com>
1688 * common/config/i386/cpuinfo.h (get_amd_cpu): Recognize znver4.
1689 * common/config/i386/i386-common.cc (processor_names): Add znver4.
1690 (processor_alias_table): Add znver4 and modularize old znvers.
1691 * common/config/i386/i386-cpuinfo.h (processor_subtypes):
1693 * config.gcc (x86_64-*-* |...): Likewise.
1694 * config/i386/driver-i386.cc (host_detect_local_cpu): Let
1695 -march=native recognize znver4 cpus.
1696 * config/i386/i386-c.cc (ix86_target_macros_internal): Add znver4.
1697 * config/i386/i386-options.cc (m_ZNVER4): New definition.
1698 (m_ZNVER): Include m_ZNVER4.
1699 (processor_cost_table): Add znver4.
1700 * config/i386/i386.cc (ix86_reassociation_width): Likewise.
1701 * config/i386/i386.h (processor_type): Add PROCESSOR_ZNVER4.
1702 (PTA_ZNVER1): New definition.
1703 (PTA_ZNVER2): Likewise.
1704 (PTA_ZNVER3): Likewise.
1705 (PTA_ZNVER4): Likewise.
1706 * config/i386/i386.md (define_attr "cpu"): Add znver4 and rename
1708 * config/i386/x86-tune-costs.h (znver4_cost): New definition.
1709 * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add znver4.
1710 (ix86_adjust_cost): Likewise.
1711 * config/i386/znver1.md: Rename to znver.md.
1712 * config/i386/znver.md: Add new reservations for znver4.
1713 * doc/extend.texi: Add details about znver4.
1714 * doc/invoke.texi: Likewise.
1716 2022-10-21 Richard Biener <rguenther@suse.de>
1718 PR tree-optimization/107323
1719 * tree-loop-distribution.cc (pg_unmark_merged_alias_ddrs):
1721 (loop_distribution::break_alias_scc_partitions): Revert
1722 postorder save/restore from the PR94125 fix. Instead
1723 make sure to not ignore edges from SCCs we are going to
1726 2022-10-21 Monk Chiang <monk.chiang@sifive.com>
1728 * config/riscv/riscv.md: Add atomic type attribute.
1729 * config/riscv/sync.md: Add atomic type for atomic instructions.
1731 2022-10-21 Jakub Jelinek <jakub@redhat.com>
1733 PR tree-optimization/54346
1734 * match.pd ((vec_perm (vec_perm@0 @1 @2 VECTOR_CST) @0 VECTOR_CST)):
1735 Optimize nested VEC_PERM_EXPRs even if target can't handle the
1736 new one provided we don't increase number of VEC_PERM_EXPRs the
1737 target can't handle.
1739 2022-10-21 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1741 * config.gcc: Add riscv-vector-builtins-bases.o and riscv-vector-builtins-shapes.o
1742 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_I_OPS): New macro.
1743 (DEF_RVV_FUNCTION): Ditto.
1744 (handle_pragma_vector): Add intrinsic framework.
1745 * config/riscv/riscv.cc (riscv_print_operand): Add operand print for vsetvl/vsetvlmax.
1746 * config/riscv/riscv.md: include vector.md.
1747 * config/riscv/t-riscv: Add riscv-vector-builtins-bases.o and riscv-vector-builtins-shapes.o
1748 * config/riscv/riscv-vector-builtins-bases.cc: New file.
1749 * config/riscv/riscv-vector-builtins-bases.h: New file.
1750 * config/riscv/riscv-vector-builtins-functions.def: New file.
1751 * config/riscv/riscv-vector-builtins-shapes.cc: New file.
1752 * config/riscv/riscv-vector-builtins-shapes.h: New file.
1753 * config/riscv/riscv-vector-builtins-types.def: New file.
1754 * config/riscv/vector.md: New file.
1756 2022-10-21 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1758 * config.gcc: Add gt files since function_instance is GTY ((user)).
1759 * config/riscv/riscv-builtins.cc (riscv_init_builtins): Add RVV intrinsic framework.
1760 (riscv_builtin_decl): Ditto.
1761 (riscv_expand_builtin): Ditto.
1762 * config/riscv/riscv-protos.h (builtin_decl): New function.
1763 (expand_builtin): Ditto.
1764 (enum riscv_builtin_class): New enum to classify RVV intrinsic and RISC-V general built-in.
1765 * config/riscv/riscv-vector-builtins.cc (class GTY): New declaration.
1766 (struct registered_function_hasher): New struct.
1767 (DEF_RVV_OP_TYPE): New macro.
1768 (DEF_RVV_TYPE): Ditto.
1769 (DEF_RVV_PRED_TYPE): Ditto.
1770 (GTY): New declaration.
1771 (add_attribute): New function.
1772 (check_required_extensions): Ditto.
1773 (rvv_arg_type_info::get_tree_type): Ditto.
1774 (function_instance::function_instance): Ditto.
1775 (function_instance::operator==): Ditto.
1776 (function_instance::any_type_float_p): Ditto.
1777 (function_instance::get_return_type): Ditto.
1778 (function_instance::get_arg_type): Ditto.
1779 (function_instance::hash): Ditto.
1780 (function_instance::call_properties): Ditto.
1781 (function_instance::reads_global_state_p): Ditto.
1782 (function_instance::modifies_global_state_p): Ditto.
1783 (function_instance::could_trap_p): Ditto.
1784 (function_builder::function_builder): Ditto.
1785 (function_builder::~function_builder): Ditto.
1786 (function_builder::allocate_argument_types): Ditto.
1787 (function_builder::register_function_group): Ditto.
1788 (function_builder::append_name): Ditto.
1789 (function_builder::finish_name): Ditto.
1790 (function_builder::get_attributes): Ditto.
1791 (function_builder::add_function): Ditto.
1792 (function_builder::add_unique_function): Ditto.
1793 (function_call_info::function_call_info): Ditto.
1794 (function_expander::function_expander): Ditto.
1795 (function_expander::add_input_operand): Ditto.
1796 (function_expander::generate_insn): Ditto.
1797 (registered_function_hasher::hash): Ditto.
1798 (registered_function_hasher::equal): Ditto.
1799 (builtin_decl): Ditto.
1800 (expand_builtin): Ditto.
1801 (gt_ggc_mx): Define for using GCC garbage collect.
1802 (gt_pch_nx): Define for using GCC garbage collect.
1803 * config/riscv/riscv-vector-builtins.def (DEF_RVV_OP_TYPE): New macro.
1804 (DEF_RVV_PRED_TYPE): Ditto.
1805 (vbool64_t): Add suffix.
1812 (vint8mf8_t): Ditto.
1813 (vuint8mf8_t): Ditto.
1814 (vint8mf4_t): Ditto.
1815 (vuint8mf4_t): Ditto.
1816 (vint8mf2_t): Ditto.
1817 (vuint8mf2_t): Ditto.
1819 (vuint8m1_t): Ditto.
1821 (vuint8m2_t): Ditto.
1823 (vuint8m4_t): Ditto.
1825 (vuint8m8_t): Ditto.
1826 (vint16mf4_t): Ditto.
1827 (vuint16mf4_t): Ditto.
1828 (vint16mf2_t): Ditto.
1829 (vuint16mf2_t): Ditto.
1830 (vint16m1_t): Ditto.
1831 (vuint16m1_t): Ditto.
1832 (vint16m2_t): Ditto.
1833 (vuint16m2_t): Ditto.
1834 (vint16m4_t): Ditto.
1835 (vuint16m4_t): Ditto.
1836 (vint16m8_t): Ditto.
1837 (vuint16m8_t): Ditto.
1838 (vint32mf2_t): Ditto.
1839 (vuint32mf2_t): Ditto.
1840 (vint32m1_t): Ditto.
1841 (vuint32m1_t): Ditto.
1842 (vint32m2_t): Ditto.
1843 (vuint32m2_t): Ditto.
1844 (vint32m4_t): Ditto.
1845 (vuint32m4_t): Ditto.
1846 (vint32m8_t): Ditto.
1847 (vuint32m8_t): Ditto.
1848 (vint64m1_t): Ditto.
1849 (vuint64m1_t): Ditto.
1850 (vint64m2_t): Ditto.
1851 (vuint64m2_t): Ditto.
1852 (vint64m4_t): Ditto.
1853 (vuint64m4_t): Ditto.
1854 (vint64m8_t): Ditto.
1855 (vuint64m8_t): Ditto.
1856 (vfloat32mf2_t): Ditto.
1857 (vfloat32m1_t): Ditto.
1858 (vfloat32m2_t): Ditto.
1859 (vfloat32m4_t): Ditto.
1860 (vfloat32m8_t): Ditto.
1861 (vfloat64m1_t): Ditto.
1862 (vfloat64m2_t): Ditto.
1863 (vfloat64m4_t): Ditto.
1864 (vfloat64m8_t): Ditto.
1897 * config/riscv/riscv-vector-builtins.h (GCC_RISCV_VECTOR_BUILTINS_H): New macro.
1898 (RVV_REQUIRE_RV64BIT): Ditto.
1899 (RVV_REQUIRE_ZVE64): Ditto.
1900 (RVV_REQUIRE_ELEN_FP_32): Ditto.
1901 (RVV_REQUIRE_ELEN_FP_64): Ditto.
1902 (enum operand_type_index): New enum.
1903 (DEF_RVV_OP_TYPE): New macro.
1904 (enum predication_type_index): New enum.
1905 (DEF_RVV_PRED_TYPE): New macro.
1906 (enum rvv_base_type): New enum.
1907 (struct rvv_builtin_suffixes): New struct.
1908 (struct rvv_arg_type_info): Ditto.
1909 (struct rvv_type_info): Ditto.
1910 (struct rvv_op_info): Ditto.
1911 (class registered_function): New class.
1912 (class function_base): Ditto.
1913 (class function_shape): Ditto.
1914 (struct function_group_info): New struct.
1915 (class GTY): New class.
1916 (class function_builder): Ditto.
1917 (class function_call_info): Ditto.
1918 (function_call_info::function_returns_void_p): New function.
1919 (class function_expander): New class.
1920 (function_instance::operator!=): New function.
1921 (function_expander::expand): Ditto.
1922 (function_expander::add_input_operand): Ditto.
1923 (function_base::call_properties): Ditto.
1925 2022-10-21 Haochen Jiang <haochen.jiang@intel.com>
1927 * config/i386/sse.md (ssedvecmode): Rename from VI1SI.
1928 (ssedvecmodelower): Rename from vi1si.
1929 (sdot_prod<mode>): New define_expand.
1930 (udot_prod<mode>): Ditto.
1932 2022-10-21 Kong Lingling <lingling.kong@intel.com>
1933 Hongyu Wang <hongyu.wang@intel.com>
1934 Haochen Jiang <haochen.jiang@intel.com>
1936 * common/config/i386/cpuinfo.h (get_available_features): Detect
1938 * common/config/i386/i386-common.cc
1939 (OPTION_MASK_ISA2_AVXVNNIINT8_SET): New.
1940 (OPTION_MASK_ISA2_AVXVNNIINT8_UNSET): Ditto.
1941 (ix86_handle_option): Handle -mavxvnniint8.
1942 * common/config/i386/i386-cpuinfo.h (enum processor_features):
1943 Add FEATURE_AVXVNNIINT8.
1944 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
1946 * config.gcc: Add avxvnniint8intrin.h.
1947 * config/i386/avxvnniint8intrin.h: New file.
1948 * config/i386/cpuid.h (bit_AVXVNNIINT8): New.
1949 * config/i386/i386-builtin.def: Add new builtins.
1950 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
1952 * config/i386/i386-options.cc (isa2_opts): Add -mavxvnniint8.
1953 (ix86_valid_target_attribute_inner_p): Handle avxvnniint8.
1954 * config/i386/i386-isa.def: Add DEF_PTA(AVXVNNIINT8) New..
1955 * config/i386/i386.opt: Add option -mavxvnniint8.
1956 * config/i386/immintrin.h: Include avxvnniint8intrin.h.
1957 * config/i386/sse.md (UNSPEC_VPMADDUBSWACCD
1958 UNSPEC_VPMADDUBSWACCSSD,UNSPEC_VPMADDWDACCD,
1959 UNSPEC_VPMADDWDACCSSD): Rename according to new style.
1960 (vpdp<vpdotprodtype>_<mode>): New define_insn.
1961 * doc/extend.texi: Document avxvnniint8.
1962 * doc/invoke.texi: Document -mavxvnniint8.
1963 * doc/sourcebuild.texi: Document target avxvnniint8.
1965 2022-10-21 Hongyu Wang <hongyu.wang@intel.com>
1967 * common/config/i386/i386-common.cc
1968 (OPTION_MASK_ISA_AVXIFMA_SET, OPTION_MASK_ISA2_AVXIFMA_UNSET,
1969 OPTION_MASK_ISA2_AVX2_UNSET): New macro.
1970 (ix86_handle_option): Handle -mavxifma.
1971 * common/config/i386/i386-cpuinfo.h (processor_types): Add
1973 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
1975 * common/config/i386/cpuinfo.h (get_available_features):
1977 * config.gcc: Add avxifmaintrin.h
1978 * config/i386/avx512ifmavlintrin.h: (_mm_madd52lo_epu64): Change
1980 (_mm_madd52hi_epu64): Likewise.
1981 (_mm256_madd52lo_epu64): Likewise.
1982 (_mm256_madd52hi_epu64): Likewise.
1983 * config/i386/avxifmaintrin.h: New header.
1984 * config/i386/cpuid.h (bit_AVXIFMA): New.
1985 * config/i386/i386-builtin.def: Add new builtins, and correct
1986 pattern names for AVX512IFMA.
1987 * config/i386/i386-builtins.cc (def_builtin): Handle AVX-IFMA
1988 builtins like AVX-VNNI.
1989 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
1991 * config/i386/i386-expand.cc (ix86_check_builtin_isa_match):
1992 Relax ISA masks for AVXIFMA.
1993 * config/i386/i386-isa.def: Add AVXIFMA.
1994 * config/i386/i386-options.cc (isa2_opts): Add -mavxifma.
1995 (ix86_valid_target_attribute_inner_p): Handle avxifma.
1996 * config/i386/i386.md (isa): Add attr avxifma and avxifmavl.
1997 * config/i386/i386.opt: Add option -mavxifma.
1998 * config/i386/immintrin.h: Inculde avxifmaintrin.h.
1999 * config/i386/sse.md (avx_vpmadd52<vpmadd52type>_<mode>):
2001 (vpamdd52<vpmadd52type><mode><sd_maskz_name>): Remove.
2002 (vpamdd52huq<mode>_maskz): Rename to ...
2003 (vpmadd52huq<mode>_maskz): ... this.
2004 (vpamdd52luq<mode>_maskz): Rename to ...
2005 (vpmadd52luq<mode>_maskz): ... this.
2006 (vpmadd52<vpmadd52type><mode>): New define_insn.
2007 (vpmadd52<vpmadd52type>v8di): Likewise.
2008 (vpmadd52<vpmadd52type><mode>_maskz_1): Likewise.
2009 (vpamdd52<vpmadd52type><mode>_mask): Rename to ...
2010 (vpmadd52<vpmadd52type><mode>_mask): ... this.
2011 * doc/invoke.texi: Document -mavxifma.
2012 * doc/extend.texi: Document avxifma.
2013 * doc/sourcebuild.texi: Document target avxifma.
2015 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
2018 * value-query.cc (get_range_global): Handle non integer ranges for
2019 default def SSA names.
2021 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
2023 * range-op-float.cc (foperator_unordered_lt::op1_range): New.
2024 (foperator_unordered_lt::op2_range): New.
2026 2022-10-20 Artem Klimov <jakmobius@gmail.com>
2027 Alexander Monakov <amonakov@gcc.gnu.org>
2030 * ipa-visibility.cc (function_and_variable_visibility): Promote
2031 TLS access model afer visibility optimizations.
2032 * varasm.cc (have_optimized_refs): New helper.
2033 (optimize_dyn_tls_for_decl_p): New helper. Use it ...
2034 (decl_default_tls_model): ... here in place of 'optimize' check.
2036 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
2038 * range-op-float.cc (foperator_unordered_le::op1_range): Adjust
2039 false side with a NAN operand.
2040 (foperator_unordered_le::op2_range): Same.
2041 (foperator_unordered_gt::op1_range): Same.
2042 (foperator_unordered_gt::op2_range): Same.
2043 (foperator_unordered_ge::op1_range): Same.
2044 (foperator_unordered_ge::op2_range): Same.
2045 (foperator_unordered_equal::op1_range): Same.
2047 2022-10-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
2049 PR tree-optimization/107326
2050 * tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern): Change
2051 vectype when widening container.
2053 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
2055 * value-range.h (frange::set_varying): Do not set NAN flags for
2057 * value-range.cc (frange::normalize_kind): Adjust for no NAN when
2059 (frange::verify_range): Same.
2060 * range-op-float.cc (maybe_isnan): Remove flag_finite_math_only check.
2062 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
2064 * range-op-float.cc (finite_operand_p): Remove.
2065 (finite_operands_p): Rename to...
2066 (maybe_isnan): ...this.
2067 (frelop_early_resolve): Use maybe_isnan instead of finite_operands_p.
2068 (foperator_equal::fold_range): Same.
2069 (foperator_equal::op1_range): Same.
2070 (foperator_not_equal::fold_range): Same.
2071 (foperator_lt::fold_range): Same.
2072 (foperator_le::fold_range): Same.
2073 (foperator_gt::fold_range): Same.
2074 (foperator_ge::fold_range): Same.
2076 2022-10-20 Jakub Jelinek <jakub@redhat.com>
2078 * passes.cc (pass_manager::register_pass): Fix a comment
2079 typo - copmilation -> compilation.
2081 2022-10-20 Richard Biener <rguenther@suse.de>
2083 * tree-vect-loop.cc (vect_phi_first_order_recurrence_p):
2084 Disallow latch PHI defs.
2085 (vectorizable_recurr): Revert previous change.
2087 2022-10-20 Julian Brown <julian@codesourcery.com>
2090 * config/gcn/gcn.cc (gcn_detect_incoming_pointer_arg): Any pointer
2091 argument forces FLAT addressing mode, not just
2092 pointer-to-non-aggregate.
2094 2022-10-20 Thomas Schwinge <thomas@codesourcery.com>
2096 * configure.ac (AC_CONFIG_MACRO_DIRS): Instantiate.
2097 * configure: Regenerate.
2099 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
2101 * config/aarch64/aarch64-sve-builtins.h
2102 (gimple_folder::fold_to_cstu): New member function.
2103 * config/aarch64/aarch64-sve-builtins.cc
2104 (gimple_folder::fold_to_cstu): Define.
2105 * config/aarch64/aarch64-sve-builtins-base.cc
2106 (svcnt_bhwd_impl::fold): Use it.
2108 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
2110 * config/aarch64/aarch64-sve-builtins-functions.h (quiet)
2111 (rtx_code_function, rtx_code_function_rotated, unspec_based_function)
2112 (unspec_based_function_rotated, unspec_based_function_exact_insn)
2113 (unspec_based_fused_function, unspec_based_fused_lane_function):
2114 Replace constructors with using directives.
2115 * config/aarch64/aarch64-sve-builtins-base.cc (svcnt_bhwd_pat_impl)
2116 (svcreate_impl, svdotprod_lane_impl, svget_impl, svld1_extend_impl)
2117 (svld1_gather_extend_impl, svld234_impl, svldff1_gather_extend)
2118 (svset_impl, svst1_scatter_truncate_impl, svst1_truncate_impl)
2119 (svst234_impl, svundef_impl): Likewise.
2120 * config/aarch64/aarch64-sve-builtins-sve2.cc
2121 (svldnt1_gather_extend_impl, svmovl_lb_impl): Likewise.
2122 (svstnt1_scatter_truncate_impl): Likewise.
2124 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
2126 * config/aarch64/aarch64-sve-builtins-base.cc: Replace CONSTEXPR
2127 with constexpr throughout.
2128 * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
2129 * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
2130 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
2131 * config/aarch64/aarch64-sve-builtins.cc: Likewise.
2133 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
2135 * config/aarch64/aarch64-sve.md (*aarch64_brk<brk_op>_cc): Remove
2136 merging alternative.
2137 (*aarch64_brk<brk_op>_ptest): Likewise.
2139 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
2141 * config/aarch64/iterators.md (SVE_BRKP): New iterator.
2142 * config/aarch64/aarch64-sve.md (*aarch64_brkn_cc): New pattern.
2143 (*aarch64_brkn_ptest): Likewise.
2144 (*aarch64_brk<brk_op>_cc): Restrict to SVE_BRKP.
2145 (*aarch64_brk<brk_op>_ptest): Likewise.
2147 2022-10-20 Richard Biener <rguenther@suse.de>
2151 * tree-cfg.h (verify_gimple_in_seq): Add parameter to
2152 indicate whether to emit an ICE. Add return value.
2153 (verify_gimple_in_cfg): Likewise.
2154 * tree-cfg.cc (verify_gimple_in_seq): Likewise.
2155 (verify_gimple_in_cfg): Likewise.
2157 2022-10-20 Richard Biener <rguenther@suse.de>
2159 PR tree-optimization/107240
2160 * tree-vect-patterns.cc (vect_recog_bit_insert_pattern): Attempt to
2161 simplify shifted value first.
2163 2022-10-20 Andrew MacLeod <amacleod@redhat.com>
2165 * gimple-range-gori.h (compute_operand_range): Make public.
2166 * gimple-range-infer.cc (gimple_infer_range::check_assume_func): New.
2167 (gimple_infer_range::gimple_infer_range): Check for assume calls.
2168 * gimple-range-infer.h (check_assume_func): Add prototype.
2169 * gimple-range.cc (assume_query::assume_range_p): New.
2170 (assume_query::range_of_expr): New.
2171 (assume_query::assume_query): New.
2172 (assume_query::calculate_op): New.
2173 (assume_query::calculate_phi): New.
2174 (assume_query::check_taken_edge): New.
2175 (assume_query::calculate_stmt): New.
2176 (assume_query::dump): New.
2177 * gimple-range.h (class assume_query): New.
2178 * tree-vrp.cc (pass_assumptions::execute): Add processing.
2180 2022-10-19 Aldy Hernandez <aldyh@redhat.com>
2182 * range-op-float.cc (build_le): Document result.
2185 (foperator_ge::op2_range): Check result of build_*.
2186 (foperator_unordered_le::op1_range): Same.
2187 (foperator_unordered_le::op2_range): Same.
2188 (foperator_unordered_gt::op1_range): Same.
2189 (foperator_unordered_gt::op2_range): Same.
2190 (foperator_unordered_ge::op1_range): Same.
2191 (foperator_unordered_ge::op2_range): Same.
2193 2022-10-19 Marek Polacek <polacek@redhat.com>
2196 * doc/invoke.texi: Update documentation of -Wuseless-cast.
2198 2022-10-19 Andrew MacLeod <amacleod@redhat.com>
2200 * gimple-range-cache.cc (ranger_cache::range_from_dom): Use
2201 Value_Range not int_range_max.
2203 2022-10-19 Aldy Hernandez <aldyh@redhat.com>
2205 PR tree-optimization/107312
2206 * range.h (range_true_and_false): Special case 1-bit signed types.
2207 * value-range.cc (range_tests_misc): New test.
2209 2022-10-19 LIU Hao <lh_mouse@126.com>
2211 * config/i386/mingw-mcfgthread.h: New file
2212 * config/i386/mingw32.h: Add builtin macro and default libraries
2213 for mcfgthread when thread model is `mcf`
2214 * config.gcc: Include 'i386/mingw-mcfgthread.h' when thread model
2216 * configure.ac: Recognize `mcf` as a valid thread model
2217 * config.in: Regenerate
2218 * configure: Regenerate
2220 2022-10-19 Lewis Hyatt <lhyatt@gmail.com>
2222 * gengtype.cc (output_escaped_param): Add missing const.
2223 (get_string_option): Add missing check for option type.
2224 (walk_type): Support new "string_length" GTY option.
2225 (write_types_process_field): Likewise.
2226 * ggc-common.cc (gt_pch_note_object): Add optional length argument.
2227 * ggc.h (gt_pch_note_object): Adjust prototype for new argument.
2228 (gt_pch_n_S2): Declare...
2229 * stringpool.cc (gt_pch_n_S2): ...new function.
2230 * doc/gty.texi: Document new GTY((string_length)) option.
2232 2022-10-19 Martin Liska <mliska@suse.cz>
2234 * doc/extend.texi: Remove useless @tie{} directives.
2236 2022-10-19 Martin Jambor <mjambor@suse.cz>
2238 PR tree-optimization/107206
2239 * tree-sra.cc (struct access): New field grp_result_of_prop_from_lhs.
2240 (analyze_access_subtree): Do not create replacements for accesses with
2241 this flag when not toally scalarizing.
2242 (propagate_subaccesses_from_lhs): Set the new flag.
2244 2022-10-19 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
2247 * config/s390/s390.cc (s390_call_saved_register_used): For a
2248 parameter with BLKmode fix determining number of consecutive
2251 2022-10-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2253 * config/xtensa/xtensa-protos.h
2254 (xtensa_split1_finished_p, xtensa_split_DI_reg_imm): New prototypes.
2255 * config/xtensa/xtensa.cc
2256 (xtensa_split1_finished_p, xtensa_split_DI_reg_imm, xtensa_lra_p):
2258 (TARGET_LRA_P): Replace the dummy hook with xtensa_lra_p.
2259 (xt_true_regnum): Rework.
2260 * config/xtensa/xtensa.h (CALL_REALLY_USED_REGISTERS):
2261 Switch from CALL_USED_REGISTERS, and revise the comment.
2262 * config/xtensa/constraints.md (Y):
2263 Use !xtensa_split1_finished_p() instead of can_create_pseudo_p().
2264 * config/xtensa/predicates.md (move_operand): Ditto.
2265 * config/xtensa/xtensa.md: Add two new split patterns:
2266 - splits DImode immediate load into two SImode ones
2267 - puts out-of-constraint SImode constants into the constant pool
2268 * config/xtensa/xtensa.opt (-mlra): New target-specific option
2269 for testing purpose.
2271 2022-10-19 Robin Dapp <rdapp@linux.ibm.com>
2273 * config/s390/s390.md: Move reload_completed and check operands for REG_P.
2275 2022-10-19 Jakub Jelinek <jakub@redhat.com>
2277 PR middle-end/107262
2278 * expr.cc (convert_mode_scalar): For BFmode -> SFmode conversions
2279 of constants, use simplify_unary_operation if fromi has VOIDmode
2280 instead of recursive convert_mode_scalar.
2282 2022-10-19 Jakub Jelinek <jakub@redhat.com>
2284 PR tree-optimization/106990
2285 * match.pd ((~X - ~Y) -> Y - X, -x & 1 -> x & 1): Guard with
2286 !TYPE_OVERFLOW_SANITIZED (type).
2288 2022-10-19 Jakub Jelinek <jakub@redhat.com>
2290 * config/i386/i386-builtins.cc (ix86_bf16_ptr_type_node): Remove.
2291 (ix86_bf16_type_node): New variable.
2292 (ix86_register_bf16_builtin_type): If bfloat16_type_node is NULL
2293 from generic code, set only ix86_bf16_type_node to a new REAL_TYPE
2294 rather than bfloat16_type_node, otherwise set ix86_bf16_type_node
2295 to bfloat16_type_node. Register __bf16 on ix86_bf16_type_node
2296 rather than bfloat16_type_node. Don't initialize unused
2297 ix86_bf16_ptr_type_node.
2298 * config/i386/i386-builtin-types.def (BFLOAT16): Use
2299 ix86_bf16_type_node rather than bfloat16_type_node.
2301 2022-10-19 Richard Biener <rguenther@suse.de>
2303 PR tree-optimization/106781
2304 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Copy
2305 LHS removal from fixup_noreturn_call.
2307 2022-10-19 liuhongt <hongtao.liu@intel.com>
2310 * config/i386/i386-expand.cc (ix86_vec_perm_index_canon): New.
2311 (expand_vec_perm_shufps_shufps): Call
2312 ix86_vec_perm_index_canon
2314 2022-10-18 Martin Jambor <mjambor@suse.cz>
2316 * ipa-prop.h (ipa_agg_value): Remove type.
2317 (ipa_agg_value_set): Likewise.
2318 (ipa_copy_agg_values): Remove function.
2319 (ipa_release_agg_values): Likewise.
2320 (ipa_auto_call_arg_values) Add a forward declaration.
2321 (ipa_call_arg_values): Likewise.
2322 (class ipa_argagg_value_list): New constructors, added member function
2324 (class ipa_auto_call_arg_values): Removed the destructor and member
2325 function safe_aggval_at. Use ipa_argagg_values for m_known_aggs.
2326 (class ipa_call_arg_values): Removed member function safe_aggval_at.
2327 Use ipa_argagg_values for m_known_aggs.
2328 (ipa_get_indirect_edge_target): Removed declaration.
2329 (ipa_find_agg_cst_for_param): Likewise.
2330 (ipa_find_agg_cst_from_init): New declaration.
2331 (ipa_agg_value_from_jfunc): Likewise.
2332 (ipa_agg_value_set_from_jfunc): Removed declaration.
2333 (ipa_push_agg_values_from_jfunc): New declaration.
2334 * ipa-cp.cc (ipa_agg_value_from_node): Renamed to
2335 ipa_agg_value_from_jfunc, made public.
2336 (ipa_agg_value_set_from_jfunc): Removed.
2337 (ipa_push_agg_values_from_jfunc): New function.
2338 (ipa_get_indirect_edge_target_1): Removed known_aggs parameter, use
2339 avs for this purpose too.
2340 (ipa_get_indirect_edge_target): Removed the overload working on
2341 ipa_auto_call_arg_values, use ipa_argagg_value_list in the remaining
2343 (devirtualization_time_bonus): Use ipa_argagg_value_list and
2344 ipa_get_indirect_edge_target_1 instead of
2345 ipa_get_indirect_edge_target.
2346 (context_independent_aggregate_values): Removed function.
2347 (gather_context_independent_values): Work on ipa_argagg_value_list.
2348 (estimate_local_effects): Likewise, define some iterator variables
2349 only in the construct where necessary.
2350 (ipcp_discover_new_direct_edges): Adjust the call to
2351 ipa_get_indirect_edge_target_1.
2352 (push_agg_values_for_index_from_edge): Adjust the call
2353 ipa_agg_value_from_node which has been renamed to
2354 ipa_agg_value_from_jfunc.
2355 * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Work on
2356 ipa_argagg_value_list.
2357 (evaluate_properties_for_edge): Replace manual filling in aggregate
2358 values with call to ipa_push_agg_values_from_jfunc.
2359 (estimate_calls_size_and_time): Work on ipa_argagg_value_list.
2360 (ipa_cached_call_context::duplicate_from): Likewise.
2361 (ipa_cached_call_context::release): Likewise.
2362 (ipa_call_context::equal_to): Likewise.
2363 * ipa-prop.cc (ipa_find_agg_cst_from_init): Make public.
2364 (ipa_find_agg_cst_for_param): Removed function.
2365 (ipa_find_agg_cst_from_jfunc_items): New function.
2366 (try_make_edge_direct_simple_call): Replace calls to
2367 ipa_agg_value_set_from_jfunc and ipa_find_agg_cst_for_param with
2368 ipa_find_agg_cst_from_init and ipa_find_agg_cst_from_jfunc_items.
2369 (try_make_edge_direct_virtual_call): Replace calls to
2370 ipa_agg_value_set_from_jfunc and ipa_find_agg_cst_for_param with
2371 simple query of constant jump function and a call to
2372 ipa_find_agg_cst_from_jfunc_items.
2373 (ipa_auto_call_arg_values::~ipa_auto_call_arg_values): Removed.
2375 2022-10-18 Martin Jambor <mjambor@suse.cz>
2377 * ipa-prop.h (IPA_PROP_ARG_INDEX_LIMIT_BITS): New.
2378 (ipcp_transformation): Added forward declaration.
2379 (ipa_argagg_value): New type.
2380 (ipa_argagg_value_list): New type.
2381 (ipa_agg_replacement_value): Removed type.
2382 (ipcp_transformation): Switch from using ipa_agg_replacement_value
2383 to ipa_argagg_value_list.
2384 (ipa_get_agg_replacements_for_node): Removed.
2385 (ipa_dump_agg_replacement_values): Removed declaration.
2386 * ipa-cp.cc: Define INCLUDE_ALGORITHM.
2387 (values_equal_for_ipcp_p): Moved up in the file.
2388 (ipa_argagg_value_list::dump): New function.
2389 (ipa_argagg_value_list::debug): Likewise.
2390 (ipa_argagg_value_list::get_elt): Likewise.
2391 (ipa_argagg_value_list::get_elt_for_index): Likewise.
2392 (ipa_argagg_value_list::get_value): New overloaded functions.
2393 (ipa_argagg_value_list::superset_of_p): New function.
2394 (new ipa_argagg_value_list::push_adjusted_values): Likewise.
2395 (push_agg_values_from_plats): Likewise.
2396 (intersect_argaggs_with): Likewise.
2397 (get_clone_agg_value): Removed.
2398 (ipa_agg_value_from_node): Make last parameter const, use
2399 ipa_argagg_value_list to search values coming from clones.
2400 (ipa_get_indirect_edge_target_1): Use ipa_argagg_value_list to search
2401 values coming from clones.
2402 (ipcp_discover_new_direct_edges): Pass around a vector of
2403 ipa_argagg_values rather than a link list of replacement values.
2404 (cgraph_edge_brings_value_p): Use ipa_argagg_value_list to search
2405 values coming from clones.
2406 (create_specialized_node): Work with a vector of ipa_argagg_values
2407 rather than a link list of replacement values.
2408 (self_recursive_agg_pass_through_p): Make the pointer parameters
2410 (copy_plats_to_inter): Removed.
2411 (intersect_with_plats): Likewise.
2412 (agg_replacements_to_vector): Likewise.
2413 (intersect_with_agg_replacements): Likewise.
2414 (intersect_aggregates_with_edge): Likewise.
2415 (push_agg_values_for_index_from_edge): Likewise.
2416 (push_agg_values_from_edge): Likewise.
2417 (find_aggregate_values_for_callers_subset): Rewrite.
2418 (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
2419 (ipcp_val_agg_replacement_ok_p): Use ipa_argagg_value_list to search
2421 (decide_about_value): Work with a vector of ipa_argagg_values rather
2422 than a link list of replacement values.
2423 (decide_whether_version_node): Likewise.
2424 (ipa_analyze_node): Check number of parameters, assert that there
2425 are no descriptors when bailing out.
2426 * ipa-prop.cc (ipa_set_node_agg_value_chain): Switch to a vector of
2428 (ipa_node_params_t::duplicate): Removed superfluous handling of
2429 ipa_agg_replacement_values. Name of src parameter removed because
2430 it is no longer used.
2431 (ipcp_transformation_t::duplicate): Replaced duplication of
2432 ipa_agg_replacement_values with copying vector m_agg_values.
2433 (ipa_dump_agg_replacement_values): Removed.
2434 (write_ipcp_transformation_info): Stream the new data-structure
2436 (read_ipcp_transformation_info): Likewise.
2437 (adjust_agg_replacement_values): Work with ipa_argagg_values instead
2438 of linked lists of ipa_agg_replacement_values, copy the items and
2439 truncate the vector as necessary to keep it sorted instead of marking
2440 items as invalid. Return one bool if CFG should be updated.
2441 (ipcp_modif_dom_walker): Store ipcp_transformation instead of
2442 linked list of ipa_agg_replacement_values.
2443 (ipcp_modif_dom_walker::before_dom_children): Use
2444 ipa_argagg_value_list instead of walking a list of
2445 ipa_agg_replacement_values.
2446 (ipcp_transform_function): Switch to the new data structure, adjust
2449 2022-10-18 Richard Biener <rguenther@suse.de>
2451 PR tree-optimization/107302
2452 * tree-vect-loop.cc (vectorizable_recurrence): Fix vec_perm
2453 placement for a PHI latch def.
2455 2022-10-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
2457 PR tree-optimization/107275
2458 * tree-if-conv.cc (if_convertible_loop_p_1): Move
2459 find_data_references_in_loop call from here...
2460 (if_convertible_loop_p): And move data-reference vector initialization
2462 (tree_if_conversion):... to here.
2464 2022-10-18 Jakub Jelinek <jakub@redhat.com>
2467 * gimple.def (GIMPLE_ASSUME): New statement kind.
2468 * gimple.h (struct gimple_statement_assume): New type.
2469 (is_a_helper <gimple_statement_assume *>::test,
2470 is_a_helper <const gimple_statement_assume *>::test): New.
2471 (gimple_build_assume): Declare.
2472 (gimple_has_substatements): Return true for GIMPLE_ASSUME.
2473 (gimple_assume_guard, gimple_assume_set_guard,
2474 gimple_assume_guard_ptr, gimple_assume_body_ptr, gimple_assume_body):
2475 New inline functions.
2476 * gsstruct.def (GSS_ASSUME): New.
2477 * gimple.cc (gimple_build_assume): New function.
2478 (gimple_copy): Handle GIMPLE_ASSUME.
2479 * gimple-pretty-print.cc (dump_gimple_assume): New function.
2480 (pp_gimple_stmt_1): Handle GIMPLE_ASSUME.
2481 * gimple-walk.cc (walk_gimple_op): Handle GIMPLE_ASSUME.
2482 * omp-low.cc (WALK_SUBSTMTS): Likewise.
2483 (lower_omp_1): Likewise.
2484 * omp-oacc-kernels-decompose.cc (adjust_region_code_walk_stmt_fn):
2486 * tree-cfg.cc (verify_gimple_stmt, verify_gimple_in_seq_2): Likewise.
2487 * function.h (struct function): Add assume_function bitfield.
2488 * gimplify.cc (gimplify_call_expr): If the assumption isn't
2489 simple enough, expand it into GIMPLE_ASSUME wrapped block or
2491 * gimple-low.cc: Include attribs.h.
2492 (create_assumption_fn): New function.
2493 (struct lower_assumption_data): New type.
2494 (find_assumption_locals_r, assumption_copy_decl,
2495 adjust_assumption_stmt_r, adjust_assumption_stmt_op,
2496 lower_assumption): New functions.
2497 (lower_stmt): Handle GIMPLE_ASSUME.
2498 * tree-ssa-ccp.cc (pass_fold_builtins::execute): Remove
2500 * lto-streamer-out.cc (output_struct_function_base): Pack
2501 assume_function bit.
2502 * lto-streamer-in.cc (input_struct_function_base): And unpack it.
2503 * cgraphunit.cc (cgraph_node::expand): Don't verify assume_function
2504 has TREE_ASM_WRITTEN set and don't release its body.
2505 (symbol_table::compile): Allow assume functions not to have released
2507 * internal-fn.cc (expand_ASSUME): Remove gcc_unreachable.
2508 * passes.cc (execute_one_pass): For TODO_discard_function don't
2509 release body of assume functions.
2510 * cgraph.cc (cgraph_node::verify_node): Don't verify cgraph nodes
2511 of PROP_assumptions_done functions.
2512 * tree-pass.h (PROP_assumptions_done): Define.
2513 (TODO_discard_function): Adjust comment.
2514 (make_pass_assumptions): Declare.
2515 * passes.def (pass_assumptions): Add.
2516 * timevar.def (TV_TREE_ASSUMPTIONS): New.
2517 * tree-inline.cc (remap_gimple_stmt): Handle GIMPLE_ASSUME.
2518 * tree-vrp.cc (pass_data_assumptions): New variable.
2519 (pass_assumptions): New class.
2520 (make_pass_assumptions): New function.
2522 2022-10-18 Richard Biener <rguenther@suse.de>
2524 PR tree-optimization/107301
2525 * gimple-ssa-isolate-paths.cc (handle_return_addr_local_phi_arg):
2526 Check whether we can duplicate the block.
2527 (find_implicit_erroneous_behavior): Likewise.
2529 2022-10-18 Andrew MacLeod <amacleod@redhat.com>
2531 PR tree-optimization/107273
2532 * value-relation.cc (equiv_oracle::add_partial_equiv): Merge
2533 instead of copying precison of each member.
2535 2022-10-17 Jeff Law <jeffreyalaw@gmail.com>
2538 * config/h8300/combiner.md: Replace '<' preincment constraint with
2539 ZA/Z1..ZH/Z7 combinations.
2540 * config/h8300/movepush.md: Similarly
2542 2022-10-17 Jeff Law <jeffreyalaw@gmail.com>
2544 * config/h8300/constraints.md (Za..Zh): New constraints for
2545 autoinc addresses using a specific register.
2546 * config/h8300/h8300.cc (pre_incdec_with_reg): New function.
2547 * config/h8300/h8300-protos.h (pre_incdec_with_reg): Add prototype.
2549 2022-10-17 Jeff Law <jlaw@ventanamicro.com>
2551 * config/i386/cet.c: Remove accidental commit.
2552 * config/i386/driver-mingw32.c: Likewise.
2553 * config/i386/i386-builtins.c: Likewise.
2554 * config/i386/i386-d.c: Likewise.
2555 * config/i386/i386-expand.c: Likewise.
2556 * config/i386/i386-features.c: Likewise.
2557 * config/i386/i386-options.c: Likewise.
2558 * config/i386/t-cet: Likewise.
2559 * config/i386/x86-tune-sched-atom.c: Likewise.
2560 * config/i386/x86-tune-sched-bd.c: Likewise.
2561 * config/i386/x86-tune-sched-core.c: Likewise.
2562 * config/i386/x86-tune-sched.c: Likewise.
2564 2022-10-17 Jeff Law <jeffreyalaw@gmail.com>
2566 * common/config/h8300/h8300-common.cc (h8300_option_optimization_table):
2567 Enable redundant extension elimination at -O2 and above.
2568 * config/i386/cet.c: New file.
2569 * config/i386/driver-mingw32.c: New file.
2570 * config/i386/i386-builtins.c: New file.
2571 * config/i386/i386-d.c: New file.
2572 * config/i386/i386-expand.c: New file.
2573 * config/i386/i386-features.c: New file.
2574 * config/i386/i386-options.c: New file.
2575 * config/i386/t-cet: New file.
2576 * config/i386/x86-tune-sched-atom.c: New file.
2577 * config/i386/x86-tune-sched-bd.c: New file.
2578 * config/i386/x86-tune-sched-core.c: New file.
2579 * config/i386/x86-tune-sched.c: New file.
2581 2022-10-17 Jeff Law <jeffreyalaw@gmail.com>
2583 * config/h8300/extensions.md (CCZN setting zero extended load): Add
2586 2022-10-17 Aldy Hernandez <aldyh@redhat.com>
2588 PR tree-optimization/107293
2590 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges):
2591 Check that condition post-dominates the definition point.
2593 2022-10-17 Aldy Hernandez <aldyh@redhat.com>
2595 PR tree-optimization/107286
2596 * value-range.cc (range_tests_floats): Do not test for -Inf when
2597 flag_finite_math_only.
2599 2022-10-17 Andrew MacLeod <amacleod@redhat.com>
2601 * gimple-range-fold.cc (fold_using_range::range_of_range_op):
2602 Provide relation_trio class.
2603 * gimple-range-gori.cc (gori_compute::refine_using_relation):
2604 Provide relation_trio class.
2605 (gori_compute::refine_using_relation): Ditto.
2606 (gori_compute::compute_operand1_range): Provide lhs_op2 and
2607 op1_op2 relations via relation_trio class.
2608 (gori_compute::compute_operand2_range): Ditto.
2609 * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Use
2610 relation_trio instead of relation_kind.
2611 (gimple_range_op_handler::calc_op2): Ditto.
2612 (*::fold_range): Ditto.
2613 * gimple-range-op.h (gimple_range_op::calc_op1): Adjust prototypes.
2614 (gimple_range_op::calc_op2): Adjust prototypes.
2615 * range-op-float.cc (*::fold_range): Use relation_trio instead of
2617 (*::op1_range): Ditto.
2618 (*::op2_range): Ditto.
2619 * range-op.cc (*::fold_range): Use relation_trio instead of
2621 (*::op1_range): Ditto.
2622 (*::op2_range): Ditto.
2623 * range-op.h (class range_operator): Adjust prototypes.
2624 (class range_operator_float): Ditto.
2625 (class range_op_handler): Adjust prototypes.
2626 (relop_early_resolve): Pickup op1_op2 relation from relation_trio.
2627 * value-relation.cc (VREL_LAST): Adjust use to be one past the end of
2629 (relation_oracle::validate_relation): Use relation_trio in call
2631 * value-relation.h (enum relation_kind_t): Add VREL_LAST as
2633 (class relation_trio): New.
2634 (TRIO_VARYING, TRIO_SHIFT, TRIO_MASK): New.
2636 2022-10-17 Andrew MacLeod <amacleod@redhat.com>
2638 * range-op-float.cc (foperator_not_equal::op1_range): Check for
2639 VREL_EQ after singleton.
2640 (foperator_unordered::op1_range): Set VARYING before calling
2642 (foperator_ordered::op1_range): Set rather than clear NAN if both
2643 operands are the same.
2645 2022-10-17 Andrew MacLeod <amacleod@redhat.com>
2647 * value-relation.cc (value_relation::dump): Change message.
2648 * value-relation.h (value_relation::set_relation): If op1 is the
2649 same as op2 do not create a relation.
2651 2022-10-17 Thomas Schwinge <thomas@codesourcery.com>
2653 * config/gcn/gcn.cc (VnMODE): Use 'case E_QImode:' instead of
2654 'case QImode:', etc.
2656 2022-10-17 Thomas Schwinge <thomas@codesourcery.com>
2658 * gimple-expr.cc (mark_addressable_2): Tag as 'static'.
2660 2022-10-17 Richard Biener <rguenther@suse.de>
2661 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2663 PR tree-optimization/99409
2664 PR tree-optimization/99394
2665 * tree-vectorizer.h (vect_def_type::vect_first_order_recurrence): Add.
2666 (stmt_vec_info_type::recurr_info_type): Likewise.
2667 (vectorizable_recurr): New function.
2668 * tree-vect-loop.cc (vect_phi_first_order_recurrence_p): New
2670 (vect_analyze_scalar_cycles_1): Look for first order
2672 (vect_analyze_loop_operations): Handle them.
2673 (vect_transform_loop): Likewise.
2674 (vectorizable_recurr): New function.
2675 (maybe_set_vectorized_backedge_value): Handle the backedge value
2676 setting in the first order recurrence PHI and the permutes.
2677 * tree-vect-stmts.cc (vect_analyze_stmt): Handle first order
2679 (vect_transform_stmt): Likewise.
2680 (vect_is_simple_use): Likewise.
2681 (vect_is_simple_use): Likewise.
2682 * tree-vect-slp.cc (vect_get_and_check_slp_defs): Likewise.
2683 (vect_build_slp_tree_2): Likewise.
2684 (vect_schedule_scc): Handle the backedge value setting in the
2685 first order recurrence PHI and the permutes.
2687 2022-10-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2689 * config/riscv/t-riscv: Change Tab into 2 space.
2691 2022-10-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2693 * config/riscv/riscv-vector-builtins.cc (mangle_builtin_type): Move down the function.
2695 2022-10-17 Arsen Arsenovic <arsen@aarsen.me>
2697 * config.gcc: --target=*-elf --without-{newlib,headers} should
2700 2022-10-17 Hu, Lin1 <lin1.hu@intel.com>
2702 * common/config/i386/cpuinfo.h:
2703 (get_intel_cpu): Handle Meteorlake.
2704 * common/config/i386/i386-common.cc:
2705 (processor_alias_table): Add Meteorlake.
2707 2022-10-17 Haochen Jiang <haochen.jiang@intel.com>
2709 * common/config/i386/cpuinfo.h:
2710 (get_intel_cpu): Handle Raptorlake.
2711 * common/config/i386/i386-common.cc:
2712 (processor_alias_table): Add Raptorlake.
2714 2022-10-16 Jeff Law <jeffreyalaw@gmail.com>
2716 * config/h8300/constraints.md (Z0..Z7): New register
2718 * config/h8300/h8300.h (reg_class): Add new classes.
2719 (REG_CLASS_NAMES): Similarly.
2720 (REG_CLASS_CONTENTS): Similarly.
2722 2022-10-16 Jeff Law <jeffreyalaw@gmail.com>
2724 * config/h8300/constraints.md (Zz constraint): Renamed
2726 * config/h8300/movepush.md (movqi_h8sx, movhi_h8sx): Adjust
2727 constraint to use Zz instead of Z.
2729 2022-10-16 Jeff Law <jeffreyalaw@gmail.com>
2731 * config/h8300/h8300.cc (h8300_register_move_cost): Fix typo.
2733 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
2735 * value-range.cc (frange::set): Implement distinction between
2736 HONOR_SIGNED_ZEROS and MODE_HAS_SIGNED_ZEROS.
2738 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
2740 * gimple-range-op.cc (class cfn_copysign): New.
2741 (gimple_range_op_handler::maybe_builtin_call): Add
2742 CFN_BUILT_IN_COPYSIGN*.
2744 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
2746 * real.h (real_isdenormal): Check rvc_normal.
2747 * value-range.cc (range_tests_floats): New test.
2749 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
2751 * gimple-range-op.cc
2752 (gimple_range_op_handler::maybe_builtin_call): Replace
2753 CFN_BUILTIN_SIGNBIT* cases with CASE_FLT_FN.
2755 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
2757 * value-range.cc (frange::set): Normalize ranges for both bounds.
2759 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
2761 * value-range.cc (frange::set): Drop -0.0 for !HONOR_SIGNED_ZEROS.
2763 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
2765 * gimple-range-op.cc
2766 (gimple_range_op_handler::maybe_builtin_call): Add
2767 CFN_BUILT_IN_SIGNBIT[FL]* entries.
2769 2022-10-14 Richard Biener <rguenther@suse.de>
2771 PR tree-optimization/107254
2772 * tree-vect-slp.cc (vect_slp_analyze_node_operations_1):
2773 For permutes also analyze live lanes.
2774 (vect_schedule_slp_node): For permutes also code generate
2777 2022-10-14 Eric Botcazou <ebotcazou@adacore.com>
2780 * config/sparc/sparc.cc (sparc_expand_prologue): Emit a frame
2781 blockage for leaf functions.
2782 (sparc_flat_expand_prologue): Emit frame instead of full blockage.
2783 (sparc_expand_epilogue): Emit a frame blockage for leaf functions.
2784 (sparc_flat_expand_epilogue): Emit frame instead of full blockage.
2786 2022-10-14 Jakub Jelinek <jakub@redhat.com>
2788 * tree-core.h (enum tree_index): Add TI_BFLOAT16_TYPE.
2789 * tree.h (bfloat16_type_node): Define.
2790 * tree.cc (excess_precision_type): Promote bfloat16_type_mode
2791 like float16_type_mode.
2792 (build_common_tree_nodes): Initialize bfloat16_type_node if
2793 BFmode is supported.
2794 * expmed.h (maybe_expand_shift): Declare.
2795 * expmed.cc (maybe_expand_shift): No longer static.
2796 * expr.cc (convert_mode_scalar): Don't ICE on BF -> HF or HF -> BF
2797 conversions. If there is no optab, handle BF -> {DF,XF,TF,HF}
2798 conversions as separate BF -> SF -> {DF,XF,TF,HF} conversions, add
2799 -ffast-math generic implementation for BF -> SF and SF -> BF
2801 * builtin-types.def (BT_BFLOAT16, BT_FN_BFLOAT16_CONST_STRING): New.
2802 * builtins.def (BUILT_IN_NANSF16B): New builtin.
2803 * fold-const-call.cc (fold_const_call): Handle CFN_BUILT_IN_NANSF16B.
2804 * config/i386/i386.cc (classify_argument): Handle E_BCmode.
2805 (ix86_libgcc_floating_mode_supported_p): Also return true for BFmode
2807 (ix86_mangle_type): Mangle BFmode as DF16b.
2808 (ix86_invalid_conversion, ix86_invalid_unary_op,
2809 ix86_invalid_binary_op): Remove.
2810 (TARGET_INVALID_CONVERSION, TARGET_INVALID_UNARY_OP,
2811 TARGET_INVALID_BINARY_OP): Don't redefine.
2812 * config/i386/i386-builtins.cc (ix86_bf16_type_node): Remove.
2813 (ix86_register_bf16_builtin_type): Use bfloat16_type_node rather than
2814 ix86_bf16_type_node, only create it if still NULL.
2815 * config/i386/i386-builtin-types.def (BFLOAT16): Likewise.
2816 * config/i386/i386.md (cbranchbf4, cstorebf4): New expanders.
2818 2022-10-14 Jakub Jelinek <jakub@redhat.com>
2822 * doc/invoke.texi (-fexcess-precision=standard): Mention that the
2823 option now also works in C++.
2825 2022-10-13 Eric Botcazou <ebotcazou@adacore.com>
2827 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Return
2828 early for calls made from thunks.
2830 2022-10-13 Eric Botcazou <ebotcazou@adacore.com>
2832 * expr.cc (emit_group_stote): Fix handling of modes of different
2833 sizes for big-endian targets in latest change and add commentary.
2835 2022-10-13 Martin Liska <mliska@suse.cz>
2837 * output.h (assemble_vtv_preinit_initializer): Remove.
2838 * varasm.cc (assemble_vtv_preinit_initializer): Remove.
2840 2022-10-13 Andrew MacLeod <amacleod@redhat.com>
2842 PR tree-optimization/102540
2843 PR tree-optimization/102872
2844 * gimple-range-cache.cc (ranger_cache::fill_block_cache):
2845 Handle partial equivs.
2846 (ranger_cache::range_from_dom): Cleanup dump output.
2848 2022-10-13 Andrew MacLeod <amacleod@redhat.com>
2850 * range-op.cc (operator_cast::lhs_op1_relation): New.
2851 (operator_bitwise_and::lhs_op1_relation): New.
2853 2022-10-13 Andrew MacLeod <amacleod@redhat.com>
2855 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Use
2858 (equiv_relation_iterator::equiv_relation_iterator): New.
2859 (equiv_relation_iterator::next): New.
2860 (equiv_relation_iterator::get_name): New.
2861 * value-relation.h (class relation_oracle): Privatize some methods.
2862 (class equiv_relation_iterator): New.
2863 (FOR_EACH_EQUIVALENCE): New.
2864 (FOR_EACH_PARTIAL_EQUIV): New.
2865 (FOR_EACH_PARTIAL_AND_FULL_EQUIV): New.
2867 2022-10-13 Andrew MacLeod <amacleod@redhat.com>
2869 * value-relation.cc (equiv_chain::dump): Don't print empty
2871 (equiv_oracle::equiv_oracle): Allocate a partial equiv table.
2872 (equiv_oracle::~equiv_oracle): Release the partial equiv table.
2873 (equiv_oracle::add_partial_equiv): New.
2874 (equiv_oracle::partial_equiv_set): New.
2875 (equiv_oracle::partial_equiv): New.
2876 (equiv_oracle::query_relation): Check for partial equivs too.
2877 (equiv_oracle::dump): Also dump partial equivs.
2878 (dom_oracle::register_relation): Handle partial equivs.
2879 (dom_oracle::query_relation): Check for partial equivs.
2880 * value-relation.h (enum relation_kind_t): Add partial equivs.
2881 (relation_partial_equiv_p): New.
2882 (relation_equiv_p): New.
2883 (class pe_slice): New.
2884 (class equiv_oracle): Add prototypes.
2889 2022-10-13 Richard Biener <rguenther@suse.de>
2891 PR tree-optimization/107247
2892 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
2893 Reduce multi vector SLP reduction accumulators. Check
2894 the adjusted number of accumulator vectors against
2895 one for the re-use in the epilogue.
2897 2022-10-13 Jakub Jelinek <jakub@redhat.com>
2899 * genmodes.cc (emit_mode_wider): Emit previous content of
2900 mode_wider array into mode_next array and for mode_wider
2901 emit always VOIDmode for !CLASS_HAS_WIDER_MODES_P classes,
2902 otherwise skip through modes with the same precision.
2903 * machmode.h (mode_next): Declare.
2904 (GET_MODE_NEXT_MODE): New inline function.
2905 (mode_iterator::get_next, mode_iterator::get_known_next): New
2907 (FOR_EACH_MODE_IN_CLASS): Use get_next instead of get_wider.
2908 (FOR_EACH_MODE): Use get_known_next instead of get_known_wider.
2909 (FOR_EACH_MODE_FROM): Use get_next instead of get_wider.
2910 (FOR_EACH_WIDER_MODE_FROM): Define.
2911 (FOR_EACH_NEXT_MODE): Define.
2912 * expmed.cc (emit_store_flag_1): Use FOR_EACH_WIDER_MODE_FROM
2913 instead of FOR_EACH_MODE_FROM.
2914 * optabs.cc (prepare_cmp_insn): Likewise. Remove redundant
2915 !CLASS_HAS_WIDER_MODES_P check.
2916 (prepare_float_lib_cmp): Use FOR_EACH_WIDER_MODE_FROM instead of
2918 * config/i386/i386-expand.cc (get_mode_wider_vector): Use
2919 GET_MODE_NEXT_MODE instead of GET_MODE_WIDER_MODE.
2921 2022-10-13 Wilco Dijkstra <wdijkstr@arm.com>
2924 * config/aarch64/aarch64.cc (aarch64_select_cc_mode): Allow
2925 GT/LE for merging compare with zero into AND.
2926 (aarch64_get_condition_code_1): Add CC_NZVmode support.
2927 * config/aarch64/aarch64-modes.def: Add CC_NZV.
2928 * config/aarch64/aarch64.md: Use CC_NZV in cmp+and patterns.
2930 2022-10-13 Richard Biener <rguenther@suse.de>
2932 PR tree-optimization/107160
2933 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
2934 Do not register accumulator if we failed to reduce it
2937 2022-10-13 Aldy Hernandez <aldyh@redhat.com>
2939 * range-op-float.cc (range_operator_float::op1_op2_relation): New.
2940 (class foperator_equal): Add using.
2941 (class foperator_not_equal): Same.
2942 (class foperator_lt): Same.
2943 (class foperator_le): Same.
2944 (class foperator_gt): Same.
2945 (class foperator_ge): Same.
2946 * range-op.cc (range_op_handler::op1_op2_relation): New.
2947 * range-op.h (range_operator_float::op1_op2_relation): New.
2949 2022-10-13 Richard Biener <rguenther@suse.de>
2951 * genmatch.cc (parser::parse_c_expr): Diagnose 'return'.
2952 * match.pd: Replace 'return' statements in with expressions
2953 with appropriate variants.
2955 2022-10-13 Andre Vieira <andre.simoesdiasvieira@arm.com>
2957 PR tree-optimization/107229
2958 * tree-if-conv.cc (get_bitfield_rep): Fix bitposition calculation.
2960 2022-10-13 Andre Vieira <andre.simoesdiasvieira@arm.com>
2962 PR tree-optimization/107226
2963 * tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern): Reject
2964 BITFIELD_REF's with non integral typed first operands.
2966 2022-10-13 Joseph Myers <joseph@codesourcery.com>
2968 * ginclude/float.h (FLT_IS_IEC_60559, DBL_IS_IEC_60559)
2969 (LDBL_IS_IEC_60559): Update comment.
2971 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
2973 * range-op-float.cc (class foperator_negate): New.
2974 (floating_op_table::floating_op_table): Add NEGATE_EXPR
2975 (range_op_float_tests): Add negate tests.
2977 2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2979 * config/riscv/riscv-vector-builtins.h: Remove unused macro.
2981 2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2983 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Apply
2985 (add_vector_type_attribute): Ditto.
2986 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Apply
2988 * config/riscv/riscv-vector-builtins.h (DEF_RVV_TYPE): Apply
2991 2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2993 * config/riscv/riscv-vector-builtins.cc (builtin_types): Redefine
2995 (build_const_pointer): New function.
2996 (register_builtin_type): Ditto.
2997 (DEF_RVV_TYPE): Simplify macro.
2998 (register_vector_type): Refine implementation.
2999 * config/riscv/riscv-vector-builtins.h (rvv_builtin_types_t): New.
3001 2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3003 * config/riscv/riscv-vector-builtins.h (class rvv_switcher): Move to
3005 * config/riscv/riscv-vector-builtins.cc (class rvv_switcher):
3008 2022-10-12 Cui,Lili <lili.cui@intel.com>
3010 * config/i386/driver-i386.cc (host_detect_local_cpu):
3011 Move sapphirerapids out of AVX512_VP2INTERSECT.
3012 * config/i386/i386.h: Remove AVX512_VP2INTERSECT from PTA_SAPPHIRERAPIDS
3013 * doc/invoke.texi: Remove AVX512_VP2INTERSECT from SAPPHIRERAPIDS
3015 2022-10-12 Martin Liska <mliska@suse.cz>
3017 * gcov-io.cc (gcov_write_summary): Rename to ...
3018 (gcov_write_object_summary): ... this.
3019 * gcov-io.h (GCOV_TAG_OBJECT_SUMMARY_LENGTH): Rename from ...
3020 (GCOV_TAG_SUMMARY_LENGTH): ... this.
3022 2022-10-12 Martin Liska <mliska@suse.cz>
3024 * configure: Regenerate.
3026 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
3028 * range-op-float.cc (frange_float): New.
3029 (range_op_float_tests): New.
3030 * range-op.cc (range_op_tests): Call range_op_float_tests.
3032 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
3034 * value-range.h (frange::nan_signbit_p): New.
3036 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
3038 * value-range.cc (frange::set_nonnegative): Pass bool to
3040 * value-range.h: Disallow conversion to bool in update_nan().
3042 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
3044 * value-range.h (frange::frange): Add constructor taking type.
3046 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
3048 * range-op-float.cc: Add relation_kind = VREL_VARYING to all
3051 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
3053 * gimple-range-gori.cc (gori_compute::logical_combine): Avoid
3054 calling tracer.trailer().
3056 2022-10-11 Jakub Jelinek <jakub@redhat.com>
3059 * config/i386/i386.md (*notxor<mode>_1): Use MASK_REG_P (x) instead of
3060 MASK_REGNO_P (REGNO (x)).
3062 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
3064 * range-op-float.cc (class foperator_abs): New.
3065 (floating_op_table::floating_op_table): Add ABS_EXPR entry.
3067 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
3069 * range-op-float.cc (foperator_unordered_le::op1_range): New.
3070 (foperator_unordered_le::op2_range): New.
3071 (foperator_unordered_gt::op1_range): New.
3072 (foperator_unordered_gt::op2_range): New.
3073 (foperator_unordered_ge::op1_range): New.
3074 (foperator_unordered_ge::op2_range): New.
3075 (foperator_unordered_equal::op1_range): New.
3077 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
3079 * range-op-float.cc (class foperator_unordered_lt): New.
3080 (class foperator_relop_unknown): Remove
3081 (class foperator_unordered_le): New.
3082 (class foperator_unordered_gt): New.
3083 (class foperator_unordered_ge): New.
3084 (class foperator_unordered_equal): New.
3085 (floating_op_table::floating_op_table): Replace all UN_EXPR
3086 entries with their appropriate fop_unordered_* counterpart.
3088 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
3090 * range-op.cc (operator_equal::op1_range): Move BRS_TRUE case up.
3091 (operator_lt::op2_range): Same.
3092 (operator_le::op2_range): Same.
3093 (operator_gt::op2_range): Same.
3094 (operator_ge::op2_range): Same.
3096 2022-10-11 Richard Biener <rguenther@suse.de>
3098 PR tree-optimization/107212
3099 * tree-vect-loop.cc (vectorizable_reduction): Make sure to
3100 set STMT_VINFO_REDUC_DEF for all live lanes in a SLP
3102 (vectorizable_live_operation): Do not pun to the SLP
3103 node representative for reduction epilogue generation.
3105 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
3107 * config/gcn/gcn-valu.md (neg<mode>2): New define_expand.
3109 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
3111 * config/gcn/gcn-valu.md (vec_init<V_ALL:mode><V_ALL_ALT:mode>): New.
3112 * config/gcn/gcn.cc (GEN_VN): Add andvNsi3, subvNsi3.
3113 (GEN_VNM): Add gathervNm_expr.
3114 (GEN_VN_NOEXEC): Add vec_seriesvNsi.
3115 (gcn_expand_vector_init): Add initialization of vectors from smaller
3118 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
3120 * config/gcn/gcn-protos.h (get_exec): Add prototypes for two variants.
3121 * config/gcn/gcn-valu.md
3122 (vec_extract<V_ALL:mode><V_ALL_ALT:mode>): New define_expand.
3123 * config/gcn/gcn.cc (get_exec): Export the existing function. Add a
3124 new overload variant.
3126 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
3128 * config/gcn/gcn-valu.md
3129 (<cvt_name><VCVT_MODE:mode><VCVT_FMODE:mode>2<exec>): Use MODE_VF.
3130 (<cvt_name><VCVT_FMODE:mode><VCVT_IMODE:mode>2<exec>): Likewise.
3131 * config/gcn/gcn.h (MODE_VF): New macro.
3133 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
3135 * config/gcn/gcn-modes.def (VECTOR_MODE): Add new modes
3136 V32QI, V32HI, V32SI, V32DI, V32TI, V32HF, V32SF, V32DF,
3137 V16QI, V16HI, V16SI, V16DI, V16TI, V16HF, V16SF, V16DF,
3138 V8QI, V8HI, V8SI, V8DI, V8TI, V8HF, V8SF, V8DF,
3139 V4QI, V4HI, V4SI, V4DI, V4TI, V4HF, V4SF, V4DF,
3140 V2QI, V2HI, V2SI, V2DI, V2TI, V2HF, V2SF, V2DF.
3141 (ADJUST_ALIGNMENT): Likewise.
3142 * config/gcn/gcn-protos.h (gcn_full_exec): Delete.
3143 (gcn_full_exec_reg): Delete.
3144 (gcn_scalar_exec): Delete.
3145 (gcn_scalar_exec_reg): Delete.
3146 (vgpr_1reg_mode_p): Use inner mode to identify vector registers.
3147 (vgpr_2reg_mode_p): Likewise.
3148 (vgpr_vector_mode_p): Use VECTOR_MODE_P.
3149 * config/gcn/gcn-valu.md (V_QI, V_HI, V_HF, V_SI, V_SF, V_DI, V_DF,
3150 V_QIHI, V_1REG, V_INT_1REG, V_INT_1REG_ALT, V_FP_1REG, V_2REG, V_noQI,
3151 V_noHI, V_INT_noQI, V_INT_noHI, V_ALL, V_ALL_ALT, V_INT, V_FP):
3152 Add additional vector modes.
3153 (V64_SI, V64_DI, V64_ALL, V64_FP): New iterators.
3154 (scalar_mode, SCALAR_MODE, vnsi, VnSI, vndi, VnDI, sdwa):
3155 Add additional vector mode mappings.
3156 (mov<mode>): Implement vector length conversions.
3157 (ldexp<mode>3<exec>): Use VnSI.
3158 (frexp<mode>_exp2<exec>): Likewise.
3159 (VCVT_MODE, VCVT_FMODE, VCVT_IMODE): Add additional vector modes.
3160 (reduc_<reduc_op>_scal_<mode>): Use V64_ALL.
3161 (fold_left_plus_<mode>): Use V64_FP.
3162 (*<reduc_op>_dpp_shr_<mode>): Use V64_1REG.
3163 (*<reduc_op>_dpp_shr_<mode>): Use V64_DI.
3164 (*plus_carry_dpp_shr_<mode>): Use V64_INT_1REG.
3165 (*plus_carry_in_dpp_shr_<mode>): Use V64_SI.
3166 (*plus_carry_dpp_shr_<mode>): Use V64_DI.
3167 (mov_from_lane63_<mode>): Use V64_2REG.
3168 * config/gcn/gcn.cc (VnMODE): New function.
3169 (gcn_can_change_mode_class): Support multiple vector sizes.
3170 (gcn_modes_tieable_p): Likewise.
3171 (gcn_operand_part): Likewise.
3172 (gcn_scalar_exec): Delete function.
3173 (gcn_scalar_exec_reg): Delete function.
3174 (gcn_full_exec): Delete function.
3175 (gcn_full_exec_reg): Delete function.
3176 (gcn_inline_fp_constant_p): Support multiple vector sizes.
3177 (gcn_fp_constant_p): Likewise.
3179 (GEN_VN_NOEXEC): New macro.
3180 (GEN_VNM_NOEXEC): New macro.
3181 (GEN_VN): New macro.
3182 (GEN_VNM): New macro.
3183 (GET_VN_FN): New macro.
3184 (CODE_FOR): New macro.
3185 (CODE_FOR_OP): New macro.
3186 (gen_mov_with_exec): Delete function.
3187 (gen_duplicate_load): Delete function.
3188 (gcn_expand_vector_init): Support multiple vector sizes.
3189 (strided_constant): Likewise.
3190 (gcn_addr_space_legitimize_address): Likewise.
3191 (gcn_expand_scalar_to_vector_address): Likewise.
3192 (gcn_expand_scaled_offsets): Likewise.
3193 (gcn_secondary_reload): Likewise.
3194 (gcn_valid_cvt_p): Likewise.
3195 (gcn_expand_builtin_1): Likewise.
3196 (gcn_make_vec_perm_address): Likewise.
3197 (gcn_vectorize_vec_perm_const): Likewise.
3198 (gcn_vector_mode_supported_p): Likewise.
3199 (gcn_autovectorize_vector_modes): New hook.
3200 (gcn_related_vector_mode): Support multiple vector sizes.
3201 (gcn_expand_dpp_shr_insn): Add FIXME comment.
3202 (gcn_md_reorg): Support multiple vector sizes.
3203 (print_reg): Likewise.
3204 (print_operand): Likewise.
3205 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): New hook.
3207 2022-10-11 Andre Vieira <andre.simoesdiasvieira@arm.com>
3209 * tree-if-conv.cc (if_convertible_loop_p_1): Move ordering of loop bb's from
3211 (tree_if_conversion): ... to here. Also call bitfield lowering when
3213 (version_loop_for_if_conversion): Adapt to enable loop versioning when we only
3214 need to lower bitfields.
3215 (ifcvt_split_critical_edges): Relax condition of expected loop form as this is
3217 (get_bitfield_rep): New function.
3218 (lower_bitfield): Likewise.
3219 (bitfields_to_lower_p): Likewise.
3220 (need_to_lower_bitfields): New global boolean.
3221 (need_to_ifcvt): Likewise.
3222 * tree-vect-data-refs.cc (vect_find_stmt_data_reference): Improve diagnostic
3224 * tree-vect-patterns.cc (vect_recog_temp_ssa_var): Add default value for last
3226 (vect_recog_bitfield_ref_pattern): New.
3227 (vect_recog_bit_insert_pattern): New.
3229 2022-10-11 liuhongt <hongtao.liu@intel.com>
3232 * config/i386/i386.md (*notxor<mode>_1): New post_reload
3233 define_insn_and_split.
3234 (*notxorqi_1): Ditto.
3236 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
3238 PR tree-optimization/107195
3239 * value-range.cc (irange::set_range_from_nonzero_bits): Set range
3240 to [0,0] when nonzero mask is 0.
3242 2022-10-11 Olivier Hainque <hainque@adacore.com>
3243 Olivier Hainque <hainque@adacore.com>
3245 * configure: Regenerate.
3247 2022-10-11 Olivier Hainque <hainque@adacore.com>
3249 * config.gcc (*vxworks*): Add t-slibgcc fragment
3252 2022-10-11 Olivier Hainque <hainque@adacore.com>
3254 * config/vxworks.h (VX_LGCC_EH_SO0, VX_LGCC_EH_SO1): New
3256 (VXWORKS_LIBGCC_SPEC): Use them and document.
3258 2022-10-11 Martin Liska <mliska@suse.cz>
3260 * gimple-range-op.cc: Add override keyword.
3262 2022-10-11 Eugene Rozenfeld <erozen@microsoft.com>
3265 * tree-cfg.cc (assign_discriminators): Move declaration of cur_locus_e
3268 2022-10-11 Liwei Xu <liwei.xu@intel.com>
3269 liuhongt <hongtao.liu@intel.com>
3271 PR tree-optimization/54346
3272 * match.pd: Merge the index of VCST then generates the new vec_perm.
3274 2022-10-11 Jeff Law <jeffreyalaw@gmail.com>
3276 PR rtl-optimization/107182
3277 * cfgrtl.cc (fixup_reorder_chain): When optimizing a jump to a
3278 return, clear EDGE_CROSSING on the appropriate edge.
3280 2022-10-11 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3282 * config/riscv/riscv-vector-builtins.cc (struct vector_type_info): Move
3283 from config/riscv/riscv-vector-builtins.h.
3284 (DEF_RVV_TYPE): Change USER_NAME to NAME.
3285 (register_vector_type): Change user_name to name.
3286 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Change
3288 * config/riscv/riscv-vector-builtins.h (struct vector_type_info): Move
3289 to riscv-vector-builtins.cc.
3290 (DEF_RVV_TYPE): Change USER_NAME to NAME.
3292 2022-10-11 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3294 * config/riscv/riscv.md: Add vsetvl instruction type.
3296 2022-10-10 Nathan Sidwell <nathan@acm.org>
3298 * common.opt (-fabi-version=): Document 18.
3299 * doc/invoke.texi (-fabi-version): Document 18.
3301 2022-10-10 Andrea Corallo <andrea.corallo@arm.com>
3304 * toplev.cc (toplev::main): Don't run self tests in case of
3307 2022-10-10 Kito Cheng <kito.cheng@sifive.com>
3309 * config/riscv/riscv-c.cc: Add newline to the end of file.
3311 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
3313 * range-op-float.cc (class foperator_identity): Make members public.
3314 (class foperator_equal): Same.
3315 (class foperator_not_equal): Same.
3316 (class foperator_lt): Same.
3317 (class foperator_le): Same.
3318 (class foperator_gt): Same.
3319 (class foperator_ge): Same.
3320 (class foperator_unordered): Same.
3321 (class foperator_ordered): Same.
3323 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
3325 * value-range.h (frange::maybe_isnan): New.
3327 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
3329 * range-op-float.cc (foperator_not_equal::op1_range): Set NAN on
3330 TRUE side for x != x.
3332 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
3334 * range-op-float.cc (foperator_unordered::op1_range): Set NAN when
3335 operands are equal and result is TRUE.
3337 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
3339 * range.h (range_true): Return int_range<2>.
3340 (range_false): Same.
3341 (range_true_and_false): Same.
3343 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
3345 * gimple-range-op.cc: Add op1_range entry for __builtin_signbit.
3347 2022-10-10 liuhongt <hongtao.liu@intel.com>
3350 * config/i386/i386.md (lrint<MODEF:mode><SWI48:mode>2): Swap
3351 predicate of operands[0] and operands[1].
3353 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
3355 * common/config/arc/arc-common.cc (arc_option_optimization_table):
3356 Remove Rcq and Rcw options.
3357 * config/arc/arc.opt (mRcq): Ignore option, preserve it for
3358 backwards compatibility.
3360 * doc/invoke.texi (mRcw, mRcq): Update document.
3362 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
3364 * config/arc/arc.cc (arc_check_short_reg_p): New function.
3365 (arc_address_cost): Replace satisfies_constraint_Rcq with the
3367 (arc_output_addsi): Likewise.
3368 (split_addsi): Likewise.
3369 (split_subsi): Likewise.
3370 * config/arc/arc.md (movqi_insn): Remove Rcq constraint.
3371 (movhi_insn): Likewise.
3372 (movsi_insn): Likewise.
3373 (tst_movb): Likewise.
3375 (tst_bitfield): Likewise.
3377 (addsi3_mixed): Likewise.
3378 (mulhisi3_reg): Likewise.
3379 (umulhisi3_reg): Likewise.
3380 (mulsi_600): Likewise.
3382 (subsi3_insn): Likewise.
3383 (bicsi3_insn): Likewise.
3386 (one_cmplsi2): Likewise.
3387 (lshrsi3_insn): Likewise.
3388 (cmpsi_cc_insn_mixed): Likewise.
3389 (cmpsi_cc_zn_insn): Likewise.
3391 (cmpsi_cc_z_insn): Likewise.
3392 (cmpsi_cc_c_insn): Likewise.
3393 (indirect_jump): Likewise.
3394 (casesi_jump): Likewise.
3396 (call_value_i): Likewise.
3399 (ashlsi2_cnt1): Likewise.
3400 (lshrsi3_cnt1): Likewise.
3401 (ashrsi3_cnt1): Likewise.
3402 * config/arc/constraints.md (Rcq): Remove.
3404 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
3406 * config/arc/arc.md (smaxsi3): Remove Rcw.
3407 (sminsi3): Likewise.
3408 (addsi3_mixed): Likewise.
3409 (add_f_2): Likewise.
3410 (subsi3_insn): Likewise.
3416 (bset_insn): Likewise.
3417 (bxor_insn): Likewise.
3418 (bclr_insn): Likewise.
3419 (bmsk_insn): Likewise.
3420 (bicsi3_insn): Likewise.
3423 (lshrsi3_insn): Likewise.
3426 * config/arc/constraints.md(Rcw): Remove it.
3428 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
3430 * config/arc/arc.md(mulsi3_700): Remove Rcr.
3431 (mulsi3_highpart): Likewise.
3432 (umulsi3_highpart_i): Likewise.
3433 (umulsi3_highpart_int): Likewise.
3436 * config/arc/constraints.md (Rcr): Remove it.
3438 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
3440 * config/arc/arc.cc (arc_save_callee_enter): Use negative offsets.
3442 2022-10-09 Dimitar Dimitrov <dimitar@dinux.eu>
3445 * config/pru/pru-protos.h (pru_noteq_condition): New
3446 function declaration.
3447 * config/pru/pru.cc (pru_noteq_condition): New function.
3448 * config/pru/pru.md (cbranchdi4): Define new pattern.
3450 2022-10-09 Dimitar Dimitrov <dimitar@dinux.eu>
3452 * config/pru/pru.md (lshrdi3): New expand pattern.
3455 2022-10-09 YunQiang Su <yunqiang.su@cipunited.com>
3457 * config.gcc: set with_arch to default_mips_arch if no defined.
3458 * config/mips/driver-native.cc (host_detect_local_cpu):
3459 try getauxval(AT_BASE_PLATFORM) and _MIPS_ARCH, too.
3460 pass -mnan=2008 if __mips_nan2008__ is defined.
3461 * config.in: define HAVE_SYS_AUXV_H and HAVE_GETAUXVAL.
3462 * configure.ac: detect sys/auxv.h and getauxval.
3463 * configure: regenerated.
3465 2022-10-07 Eugene Rozenfeld <erozen@microsoft.com>
3467 * tree-cfg.cc (assign_discriminators): Set discriminators for call stmts
3468 on the same line within the same basic block.
3470 2022-10-07 Qing Zhao <qing.zhao@oracle.com>
3472 PR tree-optimization/101836
3473 * tree-object-size.cc (addr_object_size): Use array_at_struct_end_p
3474 to determine a flexible array member reference.
3476 2022-10-07 Qing Zhao <qing.zhao@oracle.com>
3478 * doc/extend.texi: Document strict_flex_array attribute.
3479 * doc/invoke.texi: Document -fstrict-flex-arrays[=n] option.
3480 * print-tree.cc (print_node): Print new bit decl_not_flexarray.
3481 * tree-core.h (struct tree_decl_common): New bit field
3483 * tree-streamer-in.cc (unpack_ts_decl_common_value_fields): Stream
3484 in new bit decl_not_flexarray.
3485 * tree-streamer-out.cc (pack_ts_decl_common_value_fields): Stream
3486 out new bit decl_not_flexarray.
3487 * tree.cc (array_at_struct_end_p): Update it with the new bit field
3489 * tree.h (DECL_NOT_FLEXARRAY): New flag.
3491 2022-10-07 Olivier Hainque <hainque@adacore.com>
3493 * config/vxworks/_vxworks-versions.h: Use OS specific
3494 paths in #include of version.h.
3496 2022-10-07 Martin Liska <mliska@suse.cz>
3498 * opts.cc (finish_options): Print sorry message only
3499 for -flive-patching=inline-only-static.
3501 2022-10-07 Jason Merrill <jason@redhat.com>
3503 * gimplify.cc (gimplify_modify_expr_rhs): Don't optimize
3504 x = *(A*)&<expr> to x = <expr> for a TREE_ADDRESSABLE type.
3506 2022-10-07 Richard Biener <rguenther@suse.de>
3508 PR tree-optimization/107153
3509 * tree-cfg.cc (gimple_duplicate_sese_tail): Do not update
3511 * tree-parloops.cc (gen_parallel_loop): Update SSA form
3512 after to-exit-first transform, no PHI insertion is necessary.
3513 (pass_parallelize_loops::execute): Force re-write of the
3514 virtual operand SSA web.
3516 2022-10-07 Jonathan Wakely <jwakely@redhat.com>
3518 * value-range.cc (irange::irange_contains_p): Fix comment typo.
3520 2022-10-07 Eric Botcazou <ebotcazou@adacore.com>
3522 * function.cc (thread_prologue_and_epilogue_insns): Update only
3523 entry and exit blocks when not optimizing. Remove dead statement.
3525 2022-10-07 Aldy Hernandez <aldyh@redhat.com>
3527 * value-range.cc (irange::irange_set): Convert nonzero mask to
3529 (irange::irange_set_anti_range): Same.
3530 (irange::set): Same.
3531 (irange::verify_range): Same.
3532 (irange::contains_p): Same.
3533 (irange::invert): Same.
3534 (irange::set_range_from_nonzero_bits): Same.
3535 (irange::set_nonzero_bits): Same.
3537 (irange::intersect_nonzero_bits): Same.
3538 (irange::union_nonzero_bits): Same.
3539 * value-range.h (irange::varying_compatible_p): Same.
3542 (irange::set_undefined): Same.
3543 (irange::set_varying): Same.
3545 2022-10-07 Martin Liska <mliska@suse.cz>
3547 * config/i386/i386-protos.h (ix86_binary_operator_ok): Add array
3548 size to function parameter.
3549 (ix86_unary_operator_ok): Likewise.
3551 2022-10-07 Martin Liska <mliska@suse.cz>
3553 * auto-profile.cc (get_inline_stack): Remove unused variable.
3555 2022-10-07 Jakub Jelinek <jakub@redhat.com>
3557 * ipa-prop.h (ipa_constant_data): Fix comment typo.
3558 * value-range.cc (irange::irange_contains_p): Likewise.
3559 * value-relation.cc (dom_oracle::set_one_relation): Likewise.
3560 * gimple-predicate-analysis.cc (predicate::simplify_4): Likewise.
3561 * tree-inline.cc (remap_ssa_name): Likewise.
3563 2022-10-07 Jakub Jelinek <jakub@redhat.com>
3565 * attribs.h (is_attribute_namespace_p): New inline function.
3566 (lookup_attribute): Document meaning of ATTR_NS equal to "".
3567 * attribs.cc (remove_attribute): Use is_attribute_namespace_p.
3568 (private_lookup_attribute): For ATTR_NS "" match either standard
3569 attribute or "gnu" namespace one.
3571 2022-10-07 Olivier Hainque <hainque@adacore.com>
3573 * config/vxworks.h (DWARF_VERSION_DEFAULT): Adjust from
3574 4 to 3 for VxWorks >= 7.
3576 2022-10-07 Olivier Hainque <hainque@adacore.com>
3578 * defaults.h (DWARF_DEFAULT_VERSION): Define if not
3580 * common.opt (gdwarf-): Use it.
3581 * doc/tm.texi.in (DWARF_DEFAULT_VERSION): Document.
3582 * doc/tm.texi: Update accordingly.
3583 * config/vxworks.h (DWARF_DEFAULT_VERSION): Redefine.
3584 * config/vxworks.cc: Remove code setting dwarf_version, now
3585 handled by the DWARF_DEFAULT_VERSION redefinition.
3587 2022-10-07 Olivier Hainque <hainque@adacore.com>
3589 * ginclude/stddef.h: #undef offsetof before #define.
3591 2022-10-06 Aldy Hernandez <aldyh@redhat.com>
3593 PR tree-optimization/107170
3594 * vr-values.cc (vr_values::range_of_expr): Do not die on
3597 2022-10-06 Joseph Myers <joseph@codesourcery.com>
3599 * doc/invoke.texi (-fno-asm): Update description of effects on
3602 2022-10-06 Eric Botcazou <ebotcazou@adacore.com>
3604 * gimple-loop-jam.cc (tree_loop_unroll_and_jam): Bail out for a self
3605 dependency that is a write-after-write if the access function is not
3608 2022-10-06 Eric Botcazou <ebotcazou@adacore.com>
3610 * df-scan.cc (df_ref_create_structure): Minor cleanup.
3612 2022-10-06 Richard Biener <rguenther@suse.de>
3614 PR middle-end/107115
3615 * expr.cc (store_expr): Check mems_same_for_tbaa_p before
3616 eliding a seemingly redundant store.
3618 2022-10-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3620 * config/aarch64/atomics.md (*atomic_load<ALLX:mode>_zext<SD_HSDI:mode>):
3623 2022-10-06 Philipp Tomsich <philipp.tomsich@vrull.eu>
3625 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Update
3626 Ampere-1 core entry.
3628 2022-10-06 Philipp Tomsich <philipp.tomsich@vrull.eu>
3630 * config/aarch64/driver-aarch64.cc (readline): Fix off-by-one.
3632 2022-10-06 Richard Biener <rguenther@suse.de>
3634 PR tree-optimization/107107
3635 * tree-ssa-sccvn.cc (visit_reference_op_store): Do not
3636 affect value-numbering when doing the tail merging
3639 2022-10-06 Claudiu Zissulescu <claziss@synopsys.com>
3641 * config/arc/linux.h (LINK_SPEC): Remove max-page-size and
3644 2022-10-06 Jakub Jelinek <jakub@redhat.com>
3647 * internal-fn.def (ASSUME): New internal function.
3648 * internal-fn.h (expand_ASSUME): Declare.
3649 * internal-fn.cc (expand_ASSUME): Define.
3650 * gimplify.cc (gimplify_call_expr): Gimplify IFN_ASSUME.
3651 * fold-const.h (simple_condition_p): Declare.
3652 * fold-const.cc (simple_operand_p_2): Rename to ...
3653 (simple_condition_p): ... this. Remove forward declaration.
3654 No longer static. Adjust function comment and fix a typo in it.
3655 Adjust recursive call.
3656 (simple_operand_p): Adjust function comment.
3657 (fold_truth_andor): Adjust simple_operand_p_2 callers to call
3659 * doc/extend.texi: Document assume attribute. Move fallthrough
3660 attribute example to its section.
3662 2022-10-06 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
3664 PR rtl-optimization/107088
3665 * cselib.cc (new_cselib_val): Skip BImode while keeping track of
3668 2022-10-06 Aldy Hernandez <aldyh@redhat.com>
3670 * value-range.cc (frange::set): Call set_nan unconditionally.
3671 (range_tests_nan): Adjust tests.
3672 (range_tests_signed_zeros): Same.
3673 (range_tests_floats): Same.
3674 * value-range.h (frange::update_nan): Guard with HONOR_NANS.
3675 (frange::set_nan): Set undefined if !HONOR_NANS.
3677 2022-10-06 Aldy Hernandez <aldyh@redhat.com>
3679 * range-op-float.cc (foperator_lt::fold_range): Remove extra check
3680 to finite_operands_p.
3681 (foperator_le::fold_range): Same.
3682 (foperator_gt::fold_range): Same.
3683 (foperator_ge::fold_range): Same.
3685 2022-10-06 Aldy Hernandez <aldyh@redhat.com>
3687 * value-range-pretty-print.cc (vrange_printer::print_real_value):
3688 Avoid printing INF and NAN twice.
3690 2022-10-05 Segher Boessenkool <segher@kernel.crashing.org>
3692 * config/rs6000/constraints.md (wD): Delete.
3693 * doc/md.texi (Machine Constraints): Adjust.
3695 2022-10-05 Segher Boessenkool <segher@kernel.crashing.org>
3697 * config/rs6000/vsx.md (vsx_extract_<mode>): Replace define_insn by a
3698 define_expand. Split the contents to...
3699 (*vsx_extract_<mode>_0): ... this. Rewrite.
3700 (*vsx_extract_<mode>_1): ... and this. Rewrite.
3702 2022-10-05 Segher Boessenkool <segher@kernel.crashing.org>
3704 * config/rs6000/vsx.md (*vsx_extract_<mode>_store): Use "n" instead of
3707 2022-10-05 David Malcolm <dmalcolm@redhat.com>
3710 * doc/analyzer.texi (__analyzer_get_unknown_ptr): Document.
3712 2022-10-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3714 * config.gcc: Add riscv_vector.h.
3715 * config/riscv/riscv-builtins.cc: Add RVV builtin types support.
3716 * config/riscv/riscv-c.cc (riscv_pragma_intrinsic): New function.
3717 (riscv_register_pragmas): Ditto.
3718 * config/riscv/riscv-protos.h (riscv_register_pragmas): Ditto.
3719 (init_builtins): Move declaration from riscv-vector-builtins.h to riscv-protos.h.
3720 (mangle_builtin_type): Ditto.
3721 (verify_type_context): Ditto.
3722 (handle_pragma_vector): New function.
3723 * config/riscv/riscv-vector-builtins.cc (GTY): New variable.
3724 (register_vector_type): New function.
3725 (init_builtins): Add RVV builtin types support.
3726 (handle_pragma_vector): New function.
3727 * config/riscv/riscv-vector-builtins.h (GCC_RISCV_V_BUILTINS_H): Change
3728 name according to file name.
3729 (GCC_RISCV_VECTOR_BUILTINS_H): Ditto.
3730 (init_builtins): Remove declaration in riscv-vector-builtins.h.
3731 (mangle_builtin_type): Ditto.
3732 (verify_type_context): Ditto.
3733 * config/riscv/riscv.cc: Adjust for RVV builtin types support.
3734 * config/riscv/riscv.h (REGISTER_TARGET_PRAGMAS): New macro.
3735 * config/riscv/t-riscv: Remove redundant file including.
3736 * config/riscv/riscv_vector.h: New file.
3738 2022-10-05 Aldy Hernandez <aldyh@redhat.com>
3740 * range-op.cc (operator_cast::fold_range): Handle truncating casts
3743 2022-10-05 Martin Liska <mliska@suse.cz>
3746 * attribs.h (lookup_attribute_by_prefix): Support the attribute
3747 starting with underscore (_Noreturn).
3749 2022-10-05 Aldy Hernandez <aldyh@redhat.com>
3751 PR tree-optimization/107052
3752 * gimple-range-op.cc (cfn_popcount::fold_range): Take into account
3755 2022-10-05 Aldy Hernandez <aldyh@redhat.com>
3757 PR tree-optimization/107052
3758 * range-op.cc (operator_cast::fold_range): Set nonzero mask.
3760 2022-10-05 Eric Botcazou <ebotcazou@adacore.com>
3762 PR tree-optimization/106698
3763 * pointer-query.cc (handle_array_ref): Fix handling of low bound.
3765 2022-10-05 Vineet Gupta <vineetg@rivosinc.com>
3767 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
3768 Remove __riscv_cmodel_pic, that deprecated in last version.
3770 2022-10-05 David Malcolm <dmalcolm@redhat.com>
3773 * Makefile.in (ANALYZER_OBJS): Add analyzer/call-summary.o.
3775 2022-10-04 Jakub Jelinek <jakub@redhat.com>
3777 * attribs.h (remove_attribute): Declare overload with additional
3779 (private_lookup_attribute): Declare overload with additional
3780 attr_ns and attr_ns_len arguments.
3781 (lookup_attribute): New overload with additional attr_ns argument.
3782 * attribs.cc (remove_attribute): New overload with additional
3784 (private_lookup_attribute): New overload with additional
3785 attr_ns and attr_ns_len arguments.
3787 2022-10-04 Jakub Jelinek <jakub@redhat.com>
3789 * attribs.cc (handle_ignored_attributes_option, decl_attributes,
3790 common_function_versions): Use auto_diagnostic_group.
3792 2022-10-04 Aldy Hernandez <aldyh@redhat.com>
3794 * value-range.cc (irange::set_nonzero_bits): Remove assert.
3796 2022-10-04 Richard Sandiford <richard.sandiford@arm.com>
3798 * config/aarch64/aarch64.h (AARCH64_ISA_RCPC): New macro.
3799 * config/aarch64/aarch64-arches.def (armv8.3-a): Include RCPC.
3800 * config/aarch64/aarch64-cores.def (thunderx3t110, zeus, neoverse-v1)
3801 (neoverse-512tvb, saphira): Remove RCPC from these Armv8.3-A+ cores.
3802 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define
3803 __ARM_FEATURE_RCPC when appropriate.
3805 2022-10-04 Tobias Burnus <tobias@codesourcery.com>
3807 * doc/invoke.texi (-fopenmp): Mention C++ attribut syntax.
3808 (-fopenmp-simd): Likewise; update permitted directives.
3810 2022-10-04 Tobias Burnus <tobias@codesourcery.com>
3812 * doc/install.texi (Specific): Add missing items to bullet list.
3813 (amdgcn): Update LLVM requirements, use version not date for newlib.
3814 (nvptx): Use version not git hash for newlib.
3816 2022-10-04 Aldy Hernandez <aldyh@redhat.com>
3818 * value-range-storage.cc (irange_storage_slot::set_irange): Remove
3820 * value-range.cc (irange::irange_set): Adjust for nonzero mask
3822 (irange::irange_set_anti_range): Same.
3823 (irange::set): Same.
3824 (irange::verify_range): Same.
3825 (irange::legacy_equal_p): Same.
3826 (irange::operator==): Same.
3827 (irange::contains_p): Same.
3828 (irange::legacy_intersect): Same.
3829 (irange::legacy_union): Same.
3830 (irange::irange_single_pair_union): Call union_nonzero_bits.
3831 (irange::irange_union): Same.
3832 (irange::irange_intersect): Call intersect_nonzero_bits.
3833 (irange::intersect): Adjust for nonzero mask being a wide int.
3834 (irange::invert): Same.
3835 (irange::set_nonzero_bits): Same.
3836 (irange::get_nonzero_bits_from_range): New.
3837 (irange::set_range_from_nonzero_bits): New.
3838 (irange::get_nonzero_bits): Adjust for nonzero mask being a wide
3840 (irange::intersect_nonzero_bits): Same.
3841 (irange::union_nonzero_bits): Same.
3842 (range_tests_nonzero_bits): Remove test.
3843 * value-range.h (irange::varying_compatible_p): Adjust for nonzero
3844 mask being a wide int.
3847 (irange::set_undefined): Same.
3848 (irange::set_varying): Same.
3849 (irange::normalize_kind): Same.
3851 2022-10-04 Aldy Hernandez <aldyh@redhat.com>
3853 PR tree-optimization/107130
3854 * gimple-range-op.cc (class cfn_popcount): Call op_cfn_ffs.
3855 (class cfn_ffs): New.
3856 (gimple_range_op_handler::maybe_builtin_call): Separate out
3857 CASE_CFN_FFS into its own case.
3859 2022-10-03 Sergei Trofimovich <siarheit@google.com>
3861 * config/i386/t-i386: Add build-time dependencies against
3862 i386-builtin-types.inc to i386-builtins.o, i386-expand.o,
3865 2022-10-03 Andrew Stubbs <ams@codesourcery.com>
3867 * config/gcn/gcn-valu.md (while_ultsidi): Limit mask length using
3869 * doc/md.texi (while_ult): Document new operand 3 usage.
3870 * internal-fn.cc (expand_while_optab_fn): Set operand 3 when lhs_type
3871 maps to a non-vector mode.
3873 2022-10-03 Andrew MacLeod <amacleod@redhat.com>
3875 PR tree-optimization/107109
3876 * range-op.cc (adjust_op1_for_overflow): Don't process undefined.
3878 2022-10-03 Christophe Lyon <christophe.lyon@arm.com>
3880 * config/arm/mve.md (mve_vrev64q_m_<supf><mode>): Add early
3882 (mve_vrev64q_m_f<mode>): Likewise.
3884 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
3886 * value-range.cc (irange::set_nonzero_bits): Do not pessimize range.
3887 (range_tests_nonzero_bits): New test.
3889 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
3891 * value-range.cc (irange::operator==): Early bail on m_num_ranges
3894 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
3896 * value-range.cc (irange::legacy_equal_p): Remove nonozero mask
3897 check when comparing VR_VARYING ranges.
3899 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
3901 * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Do not compare
3902 incompatible ranges in ipa-prop.
3904 2022-10-02 Jakub Jelinek <jakub@redhat.com>
3906 PR tree-optimization/107121
3907 * tree-cfg.cc (verify_gimple_call): Fix a typo in diagnostics,
3908 DEFFERED_INIT -> DEFERRED_INIT.
3910 2022-10-02 Marc Poulhiès <poulhies@adacore.com>
3912 * config/vxworks-driver.cc: New.
3913 * config.gcc (*vxworks*): Add vxworks-driver.o in extra_gcc_objs.
3914 * config/t-vxworks: Add vxworks-driver.o.
3915 * config/vxworks.h (GCC_DRIVER_HOST_INITIALIZATION): New.
3917 2022-10-02 Olivier Hainque <hainque@adacore.com>
3919 * config/vxworks.h (VX_CRTBEGIN_SPEC, VX_CRTEND_SPEC): If
3920 HAVE_INITFINI_ARRAY_SUPPORT, pick crtstuff objects regardless
3921 of ENABLE_SHARED_LIBGCC.
3923 2022-10-01 Stafford Horne <shorne@gmail.com>
3925 * config/or1k/or1k.cc (TARGET_HAVE_TLS): Only define if
3926 HAVE_AS_TLS is defined.
3928 2022-10-01 Julian Brown <julian@codesourcery.com>
3930 * gimplify.cc (omp_group_base): Fix IF_PRESENT (no_create)
3933 2022-10-01 Jeff Law <jeffreyalaw@gmail.com>
3935 * config/h8300/h8300.md (HSI2): New iterator.
3936 (eqne_invert): Similarly.
3937 * config/h8300/testcompare.md (testhi_upper_z): New pattern.
3938 (cmpqi_z, cmphi_z, cmpsi_z): Likewise.
3939 (store_z_qi, store_z_i_qi, store_z_hi, store_z_hi_sb): New
3940 define_insn_and_splits and/or define_insns.
3941 (store_z_hi_neg, store_z_hi_and, store_z_<mode>): Likewise.
3942 (store_z_<mode>_neg, store_z_<mode>_and, store_z): Likewise.
3944 2022-10-01 Jeff Law <jeffreyalaw@gmail.com>
3946 * tree-ssa-dom.cc (record_edge_info): Install correct version of
3949 2022-10-01 Eugene Rozenfeld <erozen@microsoft.com>
3951 * dwarf2out.cc (add_call_src_coords_attributes): Emit discriminators for inlined call sites.
3953 2022-09-30 Jeff Law <jeffreyalaw@gmail.com>
3955 * tree-ssa-dom.cc (single_block_loop_p): New function.
3956 (record_edge_info): Also record equivalences for the outgoing
3957 edge of a single block loop where the condition is an invariant.
3959 2022-09-30 Jeff Law <jeffreyalaw@gmail.com>
3961 * tree-ssa-dom.cc (free_dom_edge_info): Clear e->aux too.
3962 (free_all_edge_infos): Do not clear e->aux here.
3964 2022-09-30 H.J. Lu <hjl.tools@gmail.com>
3966 * target.def (TARGET_C_EXCESS_PRECISION): Document
3967 -fexcess-precision=16.
3969 2022-09-30 Palmer Dabbelt <palmer@rivosinc.com>
3971 * doc/tm.texi (TARGET_C_EXCESS_PRECISION): Add 16.
3973 2022-09-30 Palmer Dabbelt <palmer@rivosinc.com>
3976 * config/riscv/riscv.cc (riscv_excess_precision): Add support
3977 for EXCESS_PRECISION_TYPE_FLOAT16.
3979 2022-09-30 Jakub Jelinek <jakub@redhat.com>
3982 * config/arm/arm.cc (arm_mangle_type): Mangle just __fp16 as Dh
3983 and _Float16 as DF16_.
3984 * config/csky/csky.cc (csky_init_builtins): Fix a comment typo.
3985 (csky_mangle_type): Mangle __fp16 as Dh and _Float16 as DF16_
3986 rather than mangling __fp16 as __fp16.
3988 2022-09-30 Lewis Hyatt <lhyatt@gmail.com>
3990 PR preprocessor/69543
3991 * tree-ssa-uninit.cc (warn_uninit): Stop stripping macro tracking
3992 information away from the diagnostic location.
3993 (maybe_warn_read_write_only): Likewise.
3994 (maybe_warn_operand): Likewise.
3996 2022-09-30 Jakub Jelinek <jakub@redhat.com>
3999 * config/aarch64/aarch64.cc (aarch64_mangle_type): Mangle just __fp16
4000 as Dh and _Float16 as DF16_.
4002 2022-09-30 Jakub Jelinek <jakub@redhat.com>
4005 * config/i386/i386.cc (ix86_mangle_type): Always return NULL
4006 for float128_type_node or float64x_type_node, don't check
4007 float128t_type_node later on.
4008 * config/ia64/ia64.cc (ia64_mangle_type): Always return NULL
4009 for float128_type_node or float64x_type_node.
4010 * config/rs6000/rs6000.cc (rs6000_mangle_type): Likewise.
4011 Don't check float128_type_node later on.
4012 * config/s390/s390.cc (s390_mangle_type): Don't use
4013 TYPE_MAIN_VARIANT on type which was set to TYPE_MAIN_VARIANT
4014 a few lines earlier.
4016 2022-09-30 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
4017 Yvan ROUX <yvan.roux@foss.st.com>
4019 * doc/sourcebuild.texi: Document new vma_equals_lma effective
4022 2022-09-30 Jiawei <jiawei@iscas.ac.cn>
4024 * config/riscv/riscv.cc (riscv_file_start): New .option.
4025 * config/riscv/riscv.opt: New options.
4026 * doc/invoke.texi: New definations.
4028 2022-09-30 Kewen Lin <linkw@linux.ibm.com>
4032 * doc/invoke.texi (option -fpatchable-function-entry): Adjust the
4033 documentation for PowerPC ELFv2 ABI dual entry points.
4034 * config/rs6000/rs6000-internal.h
4035 (rs6000_print_patchable_function_entry): New function declaration.
4036 * config/rs6000/rs6000-logue.cc (rs6000_output_function_prologue):
4037 Support patchable-function-entry by emitting nops before and after
4038 local entry for the function that needs global entry.
4039 * config/rs6000/rs6000.cc (rs6000_print_patchable_function_entry): Skip
4040 the function that needs global entry till global entry has been
4042 * config/rs6000/rs6000.h (struct machine_function): New bool member
4043 global_entry_emitted.
4045 2022-09-30 Richard Biener <rguenther@suse.de>
4047 PR tree-optimization/107095
4048 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Use data arg
4049 for .MASK_STORE size.
4051 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
4053 * range-op.cc (plus_minus_ranges): New.
4054 (adjust_op1_for_overflow): New.
4055 (operator_plus::op1_range): Use new adjustment.
4056 (operator_plus::op2_range): Ditto.
4057 (operator_minus::op1_range): Ditto.
4058 * value-relation.h (relation_lt_le_gt_ge_p): New.
4060 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
4062 * gimple-range-gori.cc (gori_compute::refine_using_relation): New.
4063 (gori_compute::compute_operand1_range): Invoke
4064 refine_using_relation when applicable.
4065 (gori_compute::compute_operand2_range): Ditto.
4066 * gimple-range-gori.h (class gori_compute): Adjust prototypes.
4068 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
4070 * gimple-range-gori.cc (ori_compute::compute_operand_range):
4071 Create a relation record and pass it along when possible.
4072 (gori_compute::compute_operand1_range): Pass relation along.
4073 (gori_compute::compute_operand2_range): Ditto.
4074 (gori_compute::compute_operand1_and_operand2_range): Ditto.
4075 * gimple-range-gori.h (class gori_compute): Adjust prototypes.
4076 * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Pass
4077 relation to op1_range call.
4078 (gimple_range_op_handler::calc_op2): Pass relation to op2_range call.
4079 * gimple-range-op.h (class gimple_range_op_handler): Adjust
4082 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
4084 * value-relation.cc (class value_relation): Move to .h file.
4085 (value_relation::set_relation): Ditto.
4086 (value_relation::value_relation): ditto.
4087 * value-relation.h (class value_relation): Move from .cc file.
4088 (value_relation::set_relation): Ditto
4089 (value_relation::value_relation): Ditto.
4091 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
4093 * range-op.cc (operator_minus::op2_range): Check for undefined.
4094 (operator_mult::op1_range): Ditto.
4095 (operator_exact_divide::op1_range): Ditto.
4096 (operator_lshift::op1_range): Ditto.
4097 (operator_rshift::op1_range): Ditto.
4098 (operator_cast::op1_range): Ditto.
4099 (operator_bitwise_and::op1_range): Ditto.
4100 (operator_bitwise_or::op1_range): Ditto.
4101 (operator_trunc_mod::op1_range): Ditto.
4102 (operator_trunc_mod::op2_range): Ditto.
4103 (operator_bitwise_not::op1_range): Ditto.
4104 (pointer_or_operator::op1_range): Ditto.
4105 (range_op_handler::op1_range): Ditto.
4106 (range_op_handler::op2_range): Ditto.
4108 2022-09-29 Andrew Stubbs <ams@codesourcery.com>
4110 * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen):
4111 Remove unused elt_bits variable.
4113 2022-09-29 Olivier Hainque <hainque@adacore.com>
4115 * config/vxworks.h: Add comment on our use of
4116 HAVE_INITFINI_ARRAY_SUPPORT.
4118 2022-09-29 Olivier Hainque <hainque@adacore.com>
4120 * config/aarch64/t-aarch64-vxworks: Request multilib
4121 variants for mcmodel=large.
4123 2022-09-29 Olivier Hainque <hainque@adacore.com>
4125 * config/rs6000/vxworks.h (TARGET_FLOAT128_ENABLE_TYPE): Remove
4128 2022-09-29 Olivier Hainque <hainque@adacore.com>
4130 * config/vx-common.h (DWARF2_UNWIND_INFO): #define to 0
4131 when ARM_UNWIND_INFO is set.
4133 2022-09-29 Julian Brown <julian@codesourcery.com>
4135 PR middle-end/107028
4136 * gimplify.cc (omp_check_mapping_compatibility,
4137 oacc_resolve_clause_dependencies): New functions.
4138 (omp_accumulate_sibling_list): Remove redundant duplicate clause
4139 detection for OpenACC.
4140 (build_struct_sibling_lists): Skip deleted groups. Don't build sibling
4141 list for struct variables that are fully mapped on the same directive
4143 (gimplify_scan_omp_clauses): Call oacc_resolve_clause_dependencies.
4145 2022-09-29 Jose E. Marchesi <jose.marchesi@oracle.com>
4148 * varasm.cc (categorize_decl_for_section): Place `const volatile'
4149 objects in read-only sections.
4150 (default_select_section): Likewise.
4152 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
4154 * tree-data-ref.cc (dr_may_alias_p): Use to_poly_widest instead
4157 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
4159 * config/aarch64/aarch64.h (TARGET_CRYPTO, TARGET_SHA3, TARGET_SM4)
4160 (TARGET_DOTPROD): Don't depend on TARGET_SIMD.
4161 (TARGET_AES, TARGET_SHA2): Likewise. Remove TARGET_CRYPTO test.
4162 (TARGET_FP_F16INST): Don't depend on TARGET_FLOAT.
4163 (TARGET_SVE2, TARGET_SVE_F32MM, TARGET_SVE_F64MM): Don't depend
4165 (TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3)
4166 (TARGET_SVE2_SM4): Don't depend on TARGET_SVE2.
4167 (TARGET_F32MM, TARGET_F64MM): Delete.
4168 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Guard
4169 float macros with just TARGET_FLOAT rather than TARGET_FLOAT
4171 * config/aarch64/aarch64-simd.md (copysign<mode>3): Depend
4172 only on TARGET_SIMD, rather than TARGET_FLOAT && TARGET_SIMD.
4173 (aarch64_crypto_aes<aes_op>v16qi): Depend only on TARGET_AES,
4174 rather than TARGET_SIMD && TARGET_AES.
4175 (aarch64_crypto_aes<aesmc_op>v16qi): Likewise.
4176 (*aarch64_crypto_aese_fused): Likewise.
4177 (*aarch64_crypto_aesd_fused): Likewise.
4178 (aarch64_crypto_pmulldi): Likewise.
4179 (aarch64_crypto_pmullv2di): Likewise.
4180 (aarch64_crypto_sha1hsi): Likewise TARGET_SHA2.
4181 (aarch64_crypto_sha1hv4si): Likewise.
4182 (aarch64_be_crypto_sha1hv4si): Likewise.
4183 (aarch64_crypto_sha1su1v4si): Likewise.
4184 (aarch64_crypto_sha1<sha1_op>v4si): Likewise.
4185 (aarch64_crypto_sha1su0v4si): Likewise.
4186 (aarch64_crypto_sha256h<sha256_op>v4si): Likewise.
4187 (aarch64_crypto_sha256su0v4si): Likewise.
4188 (aarch64_crypto_sha256su1v4si): Likewise.
4189 (aarch64_crypto_sha512h<sha512_op>qv2di): Likewise TARGET_SHA3.
4190 (aarch64_crypto_sha512su0qv2di): Likewise.
4191 (aarch64_crypto_sha512su1qv2di, eor3q<mode>4): Likewise.
4192 (aarch64_rax1qv2di, aarch64_xarqv2di, bcaxq<mode>4): Likewise.
4193 (aarch64_sm3ss1qv4si): Likewise TARGET_SM4.
4194 (aarch64_sm3tt<sm3tt_op>qv4si): Likewise.
4195 (aarch64_sm3partw<sm3part_op>qv4si): Likewise.
4196 (aarch64_sm4eqv4si, aarch64_sm4ekeyqv4si): Likewise.
4197 * config/aarch64/aarch64.md (<FLOATUORS:optab>dihf2)
4198 (copysign<GPF:mode>3, copysign<GPF:mode>3_insn)
4199 (xorsign<mode>3): Remove redundant TARGET_FLOAT condition.
4201 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
4203 * config/aarch64/aarch64.opt (aarch64_asm_isa_flags): New variable.
4204 * config/aarch64/aarch64.h (aarch64_asm_isa_flags)
4205 (aarch64_isa_flags): Redefine as read-only macros.
4206 (TARGET_SIMD, TARGET_FLOAT, TARGET_SVE): Don't depend on
4207 !TARGET_GENERAL_REGS_ONLY.
4208 * common/config/aarch64/aarch64-common.cc
4209 (aarch64_set_asm_isa_flags): New function.
4210 (aarch64_handle_option): Call it when updating -mgeneral-regs.
4211 * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): Replace
4212 m_old_isa_flags with m_old_asm_isa_flags.
4213 (aarch64_set_asm_isa_flags): Declare.
4214 * config/aarch64/aarch64-builtins.cc
4215 (aarch64_simd_switcher::aarch64_simd_switcher)
4216 (aarch64_simd_switcher::~aarch64_simd_switcher): Save and restore
4217 aarch64_asm_isa_flags instead of aarch64_isa_flags.
4218 * config/aarch64/aarch64-sve-builtins.cc
4219 (check_required_extensions): Use aarch64_asm_isa_flags instead
4220 of aarch64_isa_flags.
4221 * config/aarch64/aarch64.cc (aarch64_set_asm_isa_flags): New function.
4222 (aarch64_override_options, aarch64_handle_attr_arch)
4223 (aarch64_handle_attr_cpu, aarch64_handle_attr_isa_flags): Use
4224 aarch64_set_asm_isa_flags to set the ISA flags.
4225 (aarch64_option_print, aarch64_declare_function_name)
4226 (aarch64_start_file): Use aarch64_asm_isa_flags instead
4227 of aarch64_isa_flags.
4228 (aarch64_can_inline_p): Check aarch64_asm_isa_flags as well as
4231 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
4233 * common/config/aarch64/aarch64-common.cc (all_extensions):
4234 Include the feature flag in flags_on and flags_off.
4235 (aarch64_parse_extension): Update accordingly.
4236 (aarch64_get_extension_string_for_isa_flags): Likewise.
4238 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
4240 * common/config/aarch64/aarch64-common.cc: Use aarch64_feature_flags
4241 for feature flags throughout.
4242 * config/aarch64/aarch64-protos.h: Likewise.
4243 * config/aarch64/aarch64-sve-builtins.h: Likewise.
4244 * config/aarch64/aarch64-sve-builtins.cc: Likewise.
4245 * config/aarch64/aarch64.cc: Likewise.
4246 * config/aarch64/aarch64.opt: Likewise.
4247 * config/aarch64/driver-aarch64.cc: Likewise.
4249 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
4251 * common/config/aarch64/aarch64-common.cc (aarch64_option_extension)
4252 (processor_name_to_arch, arch_to_arch_name): Remove const from
4254 (all_extensions, all_cores, all_architectures): Make a constexpr.
4255 * config/aarch64/aarch64.cc (processor): Remove const from
4257 (all_architectures): Make a constexpr.
4258 * config/aarch64/driver-aarch64.cc (aarch64_core_data)
4259 (aarch64_arch_driver_info): Remove const from member variables.
4260 (aarch64_cpu_data, aarch64_arches): Make a constexpr.
4261 (get_arch_from_id): Return a pointer to const.
4262 (host_detect_local_cpu): Update accordingly.
4264 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
4266 * common/config/aarch64/aarch64-common.cc (processor_name_to_arch)
4267 (arch_to_arch_name): Use const char * instead of std::string.
4269 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
4271 * common/config/aarch64/aarch64-common.cc
4272 (TARGET_OPTION_INIT_STRUCT): Delete.
4273 (aarch64_option_extension): Remove is_synthetic_flag.
4274 (all_extensions): Update accordingly.
4275 (all_extensions_by_on, opt_ext, opt_ext_cmp): Delete.
4276 (aarch64_option_init_struct, aarch64_contains_opt): Delete.
4277 (aarch64_get_extension_string_for_isa_flags): Rewrite to use
4278 all_extensions instead of all_extensions_on.
4280 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
4282 * config/aarch64/aarch64-option-extensions.def: Switch to a new format.
4283 * config/aarch64/aarch64-cores.def: Use the same format to specify
4285 * config/aarch64/aarch64-arches.def: Likewise, moving that information
4287 * config/aarch64/aarch64-opts.h (aarch64_feature_flags): New typedef.
4288 * config/aarch64/aarch64.h (aarch64_feature): New class enum.
4289 Turn AARCH64_FL_* macros into constexprs, getting the definitions
4290 from aarch64-option-extensions.def. Remove AARCH64_FL_FOR_* macros.
4291 * common/config/aarch64/aarch64-common.cc: Include
4292 aarch64-feature-deps.h.
4293 (all_extensions): Update for new .def format.
4294 (all_extensions_by_on, all_cores, all_architectures): Likewise.
4295 * config/aarch64/driver-aarch64.cc: Include aarch64-feature-deps.h.
4296 (aarch64_extensions): Update for new .def format.
4297 (aarch64_cpu_data, aarch64_arches): Likewise.
4298 * config/aarch64/aarch64.cc: Include aarch64-feature-deps.h.
4299 (all_architectures, all_cores): Update for new .def format.
4300 * config/aarch64/aarch64-sve-builtins.cc
4301 (check_required_extensions): Likewise.
4302 * config/aarch64/aarch64-feature-deps.h: New file.
4304 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
4306 * config/aarch64/aarch64-option-extensions.def: Move crypto
4309 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
4311 * config/aarch64/aarch64-option-extensions.def (dotprod): Depend
4312 on fp as well as simd.
4314 (aes): Likewise. Make +noaes disable crypto.
4315 (sha2): Likewise +nosha2. Also make +nosha2 disable sha3 and
4317 (sve2-sha3): Depend on sha2 as well as sha3.
4319 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
4322 * config/aarch64/aarch64.h (oAARCH64_FL_RCPC8_4): Delete.
4323 (AARCH64_FL_FOR_V8_4A): Update accordingly.
4324 (AARCH64_ISA_RCPC8_4): Use AARCH64_FL_V8_4A directly.
4325 * config/aarch64/aarch64-cores.def (thunderx3t110): Remove
4328 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
4330 * config/aarch64/aarch64-cores.def: Remove AARCH64_FL_FOR_<ARCH>
4331 from the flags field.
4332 * common/config/aarch64/aarch64-common.cc (all_cores): Add it
4334 * config/aarch64/aarch64.cc (all_cores): Likewise.
4335 * config/aarch64/driver-aarch64.cc (all_cores): Likewise.
4337 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
4339 * config.gcc: Remove dead aarch64-option-extensions.def code.
4340 * config/aarch64/aarch64-arches.def: Update comment.
4342 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
4344 * config/aarch64/aarch64-arches.def: Add a leading "V" to the
4346 * config/aarch64/aarch64-cores.def: Update accordingly.
4347 * common/config/aarch64/aarch64-common.cc (all_cores): Likewise.
4348 * config/aarch64/aarch64.cc (all_cores): Likewise.
4349 * config/aarch64/driver-aarch64.cc (aarch64_arches): Skip the
4352 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
4354 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8): Rename to...
4355 (AARCH64_FL_FOR_V8A): ...this.
4356 (AARCH64_FL_FOR_ARCH8_1): Rename to...
4357 (AARCH64_FL_FOR_V8_1A): ...this.
4358 (AARCH64_FL_FOR_ARCH8_2): Rename to...
4359 (AARCH64_FL_FOR_V8_2A): ...this.
4360 (AARCH64_FL_FOR_ARCH8_3): Rename to...
4361 (AARCH64_FL_FOR_V8_3A): ...this.
4362 (AARCH64_FL_FOR_ARCH8_4): Rename to...
4363 (AARCH64_FL_FOR_V8_4A): ...this.
4364 (AARCH64_FL_FOR_ARCH8_5): Rename to...
4365 (AARCH64_FL_FOR_V8_5A): ...this.
4366 (AARCH64_FL_FOR_ARCH8_6): Rename to...
4367 (AARCH64_FL_FOR_V8_6A): ...this.
4368 (AARCH64_FL_FOR_ARCH8_7): Rename to...
4369 (AARCH64_FL_FOR_V8_7A): ...this.
4370 (AARCH64_FL_FOR_ARCH8_8): Rename to...
4371 (AARCH64_FL_FOR_V8_8A): ...this.
4372 (AARCH64_FL_FOR_ARCH8_R): Rename to...
4373 (AARCH64_FL_FOR_V8R): ...this.
4374 (AARCH64_FL_FOR_ARCH9): Rename to...
4375 (AARCH64_FL_FOR_V9A): ...this.
4376 (AARCH64_FL_FOR_ARCH9_1): Rename to...
4377 (AARCH64_FL_FOR_V9_1A): ...this.
4378 (AARCH64_FL_FOR_ARCH9_2): Rename to...
4379 (AARCH64_FL_FOR_V9_2A): ...this.
4380 (AARCH64_FL_FOR_ARCH9_3): Rename to...
4381 (AARCH64_FL_FOR_V9_3A): ...this.
4382 * common/config/aarch64/aarch64-common.cc (all_cores): Update
4384 * config/aarch64/aarch64-arches.def: Likewise.
4385 * config/aarch64/aarch64-cores.def: Likewise.
4386 * config/aarch64/aarch64.cc (all_cores): Likewise.
4388 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
4390 * config/aarch64/aarch64.h (AARCH64_FL_V8_1, AARCH64_FL_V8_2)
4391 (AARCH64_FL_V8_3, AARCH64_FL_V8_4, AARCH64_FL_V8_5, AARCH64_FL_V8_6)
4392 (AARCH64_FL_V9, AARCH64_FL_V8_7, AARCH64_FL_V8_8, AARCH64_FL_V9_1)
4393 (AARCH64_FL_V9_2, AARCH64_FL_V9_3): Add "A" to the end of the name.
4394 (AARCH64_FL_V8_R): Rename to AARCH64_FL_V8R.
4395 (AARCH64_FL_FOR_ARCH8_1, AARCH64_FL_FOR_ARCH8_2): Update accordingly.
4396 (AARCH64_FL_FOR_ARCH8_3, AARCH64_FL_FOR_ARCH8_4): Likewise.
4397 (AARCH64_FL_FOR_ARCH8_5, AARCH64_FL_FOR_ARCH8_6): Likewise.
4398 (AARCH64_FL_FOR_ARCH8_7, AARCH64_FL_FOR_ARCH8_8): Likewise.
4399 (AARCH64_FL_FOR_ARCH8_R, AARCH64_FL_FOR_ARCH9): Likewise.
4400 (AARCH64_FL_FOR_ARCH9_1, AARCH64_FL_FOR_ARCH9_2): Likewise.
4401 (AARCH64_FL_FOR_ARCH9_3, AARCH64_ISA_V8_2A, AARCH64_ISA_V8_3A)
4402 (AARCH64_ISA_V8_4A, AARCH64_ISA_V8_5A, AARCH64_ISA_V8_6A): Likewise.
4403 (AARCH64_ISA_V8R, AARCH64_ISA_V9A, AARCH64_ISA_V9_1A): Likewise.
4404 (AARCH64_ISA_V9_2A, AARCH64_ISA_V9_3A): Likewise.
4406 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
4408 * config/aarch64/aarch64.h (AARCH64_ISA_V8_2, AARCH64_ISA_V8_3)
4409 (AARCH64_ISA_V8_4, AARCH64_ISA_V8_5, AARCH64_ISA_V8_6)
4410 (AARCH64_ISA_V9, AARCH64_ISA_V9_1, AARCH64_ISA_V9_2)
4411 (AARCH64_ISA_V9_3): Add "A" to the end of the name.
4412 (AARCH64_ISA_V8_R): Rename to AARCH64_ISA_V8R.
4413 (TARGET_ARMV8_3, TARGET_JSCVT, TARGET_FRINT, TARGET_MEMTAG): Update
4415 * common/config/aarch64/aarch64-common.cc
4416 (aarch64_get_extension_string_for_isa_flags): Likewise.
4417 * config/aarch64/aarch64-c.cc
4418 (aarch64_define_unconditional_macros): Likewise.
4420 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
4422 * Makefile.in (GTFILES): Add OPTIONS_H_EXTRA.
4424 2022-09-29 Jakub Jelinek <jakub@redhat.com>
4427 * cppdefault.cc (cpp_include_defaults): If SYSROOT_HEADERS_SUFFIX_SPEC
4428 isn't defined, add FIXED_INCLUDE_DIR entry with multilib flag 2
4429 before FIXED_INCLUDE_DIR entry with multilib flag 0.
4430 * gcc.cc (do_spec_1): If multiarch_dir, add
4431 include-fixed/multiarch_dir paths before include-fixed paths.
4433 2022-09-29 Martin Liska <mliska@suse.cz>
4436 * common.opt: Add -gz=zstd value.
4437 * configure.ac: Detect --compress-debug-sections=zstd
4438 for both linker and assembler.
4439 * configure: Regenerate.
4440 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Handle -gz=zstd.
4441 (ASM_COMPRESS_DEBUG_SPEC): Likewise.
4443 2022-09-29 Richard Biener <rguenther@suse.de>
4445 PR tree-optimization/105646
4446 * tree-ssa-uninit.cc (warn_uninitialized_vars): Pre-compute
4447 the set of fallthru reachable blocks from function entry
4448 and use that to determine wlims.always_executed.
4450 2022-09-29 liuhongt <hongtao.liu@intel.com>
4452 PR tree-optimization/107055
4453 * tree-vect-loop-manip.cc (vect_can_advance_ivs_p): Check for
4454 nonlinear induction variables.
4455 * tree-vect-loop.cc (vect_can_peel_nonlinear_iv_p): New
4457 (vectorizable_nonlinear_induction): Put part codes into
4458 vect_can_peel_nonlinear_iv_p.
4459 * tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Declare.
4461 2022-09-28 Eugene Rozenfeld <erozen@microsoft.com>
4463 * basic-block.h: Remove discriminator from basic blocks.
4464 * cfghooks.cc (split_block_1): Remove discriminator from basic blocks.
4465 * final.cc (final_start_function_1): Switch from per-bb to per statement
4467 (final_scan_insn_1): Don't keep track of basic block discriminators.
4468 (compute_discriminator): Switch from basic block discriminators to
4469 instruction discriminators.
4470 (insn_discriminator): New function to return instruction discriminator.
4471 (notice_source_line): Use insn_discriminator.
4472 * gimple-pretty-print.cc (dump_gimple_bb_header): Remove dumping of
4473 basic block discriminators.
4474 * gimple-streamer-in.cc (input_bb): Remove reading of basic block
4476 * gimple-streamer-out.cc (output_bb): Remove writing of basic block
4478 * input.cc (make_location): Pass 0 discriminator to COMBINE_LOCATION_DATA.
4479 (location_with_discriminator): New function to combine locus with
4481 (has_discriminator): New function to check if a location has a discriminator.
4482 (get_discriminator_from_loc): New function to get the discriminator
4484 * input.h: Declarations of new functions.
4485 * lto-streamer-in.cc (cmp_loc): Use discriminators in location comparison.
4486 (apply_location_cache): Keep track of current discriminator.
4487 (input_location_and_block): Read discriminator from stream.
4488 * lto-streamer-out.cc (clear_line_info): Set current discriminator to
4490 (lto_output_location_1): Write discriminator to stream.
4491 * lto-streamer.h: Add discriminator to cached_location.
4492 Add current_discr to lto_location_cache.
4493 Add current_discr to output_block.
4494 * print-rtl.cc (print_rtx_operand_code_i): Print discriminator.
4495 * rtl.h: Add extern declaration of insn_discriminator.
4496 * tree-cfg.cc (assign_discriminator): New function to assign a unique
4497 discriminator value to all statements in a basic block that have the given
4499 (assign_discriminators): Assign discriminators to statement locations.
4500 * tree-pretty-print.cc (dump_location): Dump discriminators.
4501 * tree.cc (set_block): Preserve discriminator when setting block.
4502 (set_source_range): Preserve discriminator when setting source range.
4504 2022-09-28 H.J. Lu <hjl.tools@gmail.com>
4507 * config/i386/predicates.md (encodekey128_operation): Check
4508 XMM4-XMM6 as clobbered.
4509 (encodekey256_operation): Likewise.
4510 * config/i386/sse.md (encodekey128u32): Clobber XMM4-XMM6.
4511 (encodekey256u32): Likewise.
4513 2022-09-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4515 * config.gcc: Add riscv-vector-builtins.o.
4516 * config/riscv/riscv-builtins.cc (riscv_init_builtins): Add RVV builtin function.
4517 * config/riscv/riscv-protos.h (riscv_v_ext_enabled_vector_mode_p): New function.
4518 * config/riscv/riscv.cc (ENTRY): New macro.
4519 (riscv_v_ext_enabled_vector_mode_p): New function.
4520 (riscv_mangle_type): Add RVV mangle.
4521 (riscv_vector_mode_supported_p): Adjust RVV machine mode.
4522 (riscv_verify_type_context): Add context check for RVV.
4523 (riscv_vector_alignment): Add RVV alignment target hook support.
4524 (TARGET_VECTOR_MODE_SUPPORTED_P): New target hook support.
4525 (TARGET_VERIFY_TYPE_CONTEXT): Ditto.
4526 (TARGET_VECTOR_ALIGNMENT): Ditto.
4527 * config/riscv/t-riscv: Add riscv-vector-builtins.o
4528 * config/riscv/riscv-vector-builtins.cc: New file.
4529 * config/riscv/riscv-vector-builtins.def: New file.
4530 * config/riscv/riscv-vector-builtins.h: New file.
4531 * config/riscv/riscv-vector-switch.def: New file.
4533 2022-09-28 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
4535 * var-tracking.cc (vt_add_function_parameter): Add entry values
4536 up to maximal register mode.
4538 2022-09-28 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
4540 * cselib.cc (new_cselib_val): Keep track of further subvalue
4543 2022-09-28 Andrea Corallo <andrea.corallo@arm.com>
4545 * config/arm/arm-c.cc (arm_cpu_builtins): Define
4546 __ARM_FEATURE_AES and __ARM_FEATURE_SHA2.
4548 2022-09-28 Xi Ruoyao <xry111@xry111.site>
4550 PR tree-optimization/105414
4551 * config/loongarch/loongarch.md (UNSPEC_FMAX): New unspec.
4552 (UNSPEC_FMIN): Likewise.
4553 (fmax<mode>3): Use UNSPEC_FMAX instead of smax.
4554 (fmin<mode>3): Use UNSPEC_FMIN instead of smin.
4556 2022-09-28 Lulu Cheng <chenglulu@loongson.cn>
4558 * config/loongarch/loongarch.cc (loongarch_asan_shadow_offset):
4559 Fixed typo in "asan_mapping.h".
4561 2022-09-28 H.J. Lu <hjl.tools@gmail.com>
4564 * calls.cc: Include "tree-eh.h".
4565 (expand_call): Check stack canary before throwing exception.
4567 2022-09-27 Eugene Rozenfeld <erozen@microsoft.com>
4569 * ipa-cp.cc (good_cloning_opportunity_p): Fix profile count comparison.
4571 2022-09-27 Kim Kuparinen <kim.kuparinen@rightware.com>
4573 * doc/invoke.texi: Update ABI version info.
4575 2022-09-27 Aldy Hernandez <aldyh@redhat.com>
4577 * gimple-range-op.cc (cfn_popcount): Calculate the popcount of a
4580 2022-09-27 Aldy Hernandez <aldyh@redhat.com>
4582 * value-range.cc (irange::set_nonzero_bits): Set range when known.
4584 2022-09-27 Aldy Hernandez <aldyh@redhat.com>
4586 * value-range.h (irange::set): New version taking wide_int_ref.
4588 2022-09-27 Jakub Jelinek <jakub@redhat.com>
4590 PR tree-optimization/107029
4591 * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): Treat
4592 OFFSET_TYPE like POINTER_TYPE, except that OFFSET_TYPE may be
4593 signed and so can trigger even the (b % 4) == 3 case.
4595 2022-09-27 Jeff Law <jeffreyalaw@gmail.com>
4597 * cfgrtl.cc (fixup_reorder_chain): Verify that simple_return
4598 and return are available before trying to use them.
4600 2022-09-27 Jakub Jelinek <jakub@redhat.com>
4604 * tree-core.h (enum tree_index): Add TI_FLOAT128T_TYPE
4606 * tree.h (float128t_type_node): Define.
4607 * tree.cc (build_common_tree_nodes): Initialize float128t_type_node.
4608 * builtins.def (DEF_FLOATN_BUILTIN): Adjust comment now that
4609 _Float<N> is supported in C++ too.
4610 * config/i386/i386.cc (ix86_mangle_type): Only mangle as "g"
4611 float128t_type_node.
4612 * config/i386/i386-builtins.cc (ix86_init_builtin_types): Use
4613 float128t_type_node for __float128 instead of float128_type_node
4614 and create it if NULL.
4615 * config/i386/avx512fp16intrin.h (_mm_setzero_ph, _mm256_setzero_ph,
4616 _mm512_setzero_ph, _mm_set_sh, _mm_load_sh): Use 0.0f16 instead of
4618 * config/ia64/ia64.cc (ia64_init_builtins): Use
4619 float128t_type_node for __float128 instead of float128_type_node
4620 and create it if NULL.
4621 * config/rs6000/rs6000-c.cc (is_float128_p): Also return true
4622 for float128t_type_node if non-NULL.
4623 * config/rs6000/rs6000.cc (rs6000_mangle_type): Don't mangle
4624 float128_type_node as "u9__ieee128".
4625 * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Use
4626 float128t_type_node for __float128 instead of float128_type_node
4627 and create it if NULL.
4629 2022-09-26 Martin Liska <mliska@suse.cz>
4631 * doc/invoke.texi: Add missing dash for
4632 Wanalyzer-exposure-through-uninit-copy.
4634 2022-09-26 Aldy Hernandez <aldyh@redhat.com>
4636 PR tree-optimization/107009
4637 * range-op.cc (operator_bitwise_and::op1_range): Optimize 0 = x & MASK.
4638 (range_op_bitwise_and_tests): New test.
4640 2022-09-26 Aldy Hernandez <aldyh@redhat.com>
4642 PR tree-optimization/107009
4644 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges):
4645 Iterate over exports.
4647 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
4649 * config.gcc (with_arch) [nvptx]: Allow '--with-arch' to override
4651 * config/nvptx/gen-multilib-matches.sh: New.
4652 * config/nvptx/t-nvptx (MULTILIB_OPTIONS, MULTILIB_MATCHES)
4653 (MULTILIB_EXCEPTIONS): Handle this.
4654 * doc/install.texi (Specific) <nvptx-*-none>: Document this.
4655 * doc/invoke.texi (Nvidia PTX Options): Likewise.
4657 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
4659 * config.gcc (TM_MULTILIB_CONFIG) [nvptx]: Set to '$with_arch'.
4660 * config/nvptx/t-nvptx (MULTILIB_OPTIONS, MULTILIB_MATCHES)
4661 (MULTILIB_EXCEPTIONS): Handle it.
4663 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
4665 * config.gcc (with_arch) [nvptx]: Set to 'sm_30'.
4666 * config/nvptx/nvptx.cc (nvptx_option_override): Assert that
4668 * config/nvptx/nvptx.h (OPTION_DEFAULT_SPECS): Define.
4669 * config/nvptx/nvptx.opt (misa=): Remove 'Init'.
4671 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
4673 * config/nvptx/nvptx.h (ASM_SPEC): Define.
4675 2022-09-26 Jeff Law <jeffreyalaw@gmail.com>
4677 * cfgcleanup.cc (bb_is_just_return): No longer static.
4678 * cfgcleanup.h (bb_is_just_return): Add prototype.
4679 * cfgrtl.cc (fixup_reorder_chain): Do not create an
4680 unconditional jump to a return block. Conditionally
4681 remove unreachable blocks.
4683 2022-09-26 Tobias Burnus <tobias@codesourcery.com>
4685 PR middle-end/106982
4686 * omp-low.cc (lower_oacc_reductions): Add some unshare_expr.
4688 2022-09-26 Martin Liska <mliska@suse.cz>
4690 * config/s390/s390.cc (s390_rtx_costs): Remove dest variable
4693 2022-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4695 * config/aarch64/aarch64-arches.def (armv9.1-a): Define.
4696 (armv9.2-a): Likewise.
4697 (armv9.3-a): Likewise.
4698 * config/aarch64/aarch64.h (AARCH64_FL_V9_1): Likewise.
4699 (AARCH64_FL_V9_2): Likewise.
4700 (AARCH64_FL_V9_3): Likewise.
4701 (AARCH64_FL_FOR_ARCH9_1): Likewise.
4702 (AARCH64_FL_FOR_ARCH9_2): Likewise.
4703 (AARCH64_FL_FOR_ARCH9_3): Likewise.
4704 (AARCH64_ISA_V9_1): Likewise.
4705 (AARCH64_ISA_V9_2): Likewise.
4706 (AARCH64_ISA_V9_3): Likewise.
4707 * doc/invoke.texi (AArch64 Options): Document armv9.1-a, armv9.2-a,
4708 armv9.3-a values to -march.
4710 2022-09-26 Martin Liska <mliska@suse.cz>
4712 * value-range.cc (tree_compare): Remove unused function.
4714 2022-09-26 Kewen Lin <linkw@linux.ibm.com>
4717 * config/rs6000/rs6000-logue.cc (rs6000_emit_epilogue): Update the
4718 condition for adding REG_CFA_DEF_CFA reg note with
4719 frame_pointer_needed_indeed.
4721 2022-09-26 Kewen Lin <linkw@linux.ibm.com>
4724 * config/rs6000/vector.md (vec_shr_<mode>): Replace condition
4725 TARGET_ALTIVEC with VECTOR_UNIT_ALTIVEC_OR_VSX_P.
4727 2022-09-26 Hongtao Liu <hongtao.liu@intel.com>
4728 Liwei Xu <liwei.xu@intel.com>
4731 * config/i386/i386-expand.cc (expand_vec_perm_shufps_shufps):
4733 (ix86_expand_vec_perm_const_1): Insert
4734 expand_vec_perm_shufps_shufps at the end of 2-instruction
4737 2022-09-25 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
4739 * doc/sourcebuild.texi: Fix chapter level.
4741 2022-09-24 Jakub Jelinek <jakub@redhat.com>
4744 * omp-low.cc (lower_omp_taskgroup): Don't add GOMP_RETURN statement
4746 * omp-expand.cc (build_omp_regions_1): Clarify GF_OMP_TARGET_KIND_DATA
4747 is not stand-alone directive. For GIMPLE_OMP_TASKGROUP, also don't
4749 (omp_make_gimple_edges) <case GIMPLE_OMP_TASKGROUP>: Reset
4750 cur_region back after new_omp_region.
4752 2022-09-23 Vineet Gupta <vineetg@rivosinc.com>
4754 * config/riscv/riscv.h (LOCAL_SYM_P): New.
4755 (USE_LOAD_ADDRESS_MACRO): Simplify by calling LOCAL_SYM_P.
4757 2022-09-23 zhongjuzhe <juzhe.zhong@rivai.ai>
4759 * config/riscv/riscv-modes.def (VECTOR_BOOL_MODE): Add RVV mask modes.
4760 (ADJUST_NUNITS): Adjust nunits using riscv_vector_chunks.
4761 (ADJUST_ALIGNMENT): Adjust alignment.
4762 (ADJUST_BYTESIZE): Adjust bytesize using riscv_vector_chunks.
4763 (RVV_MODES): New macro.
4764 (VECTOR_MODE_WITH_PREFIX): Add RVV vector modes.
4765 (VECTOR_MODES_WITH_PREFIX): Add RVV vector modes.
4767 2022-09-23 zhongjuzhe <juzhe.zhong@rivai.ai>
4769 * common/config/riscv/riscv-common.cc: Change "static void" to "void".
4770 * config.gcc: Add riscv-selftests.o
4771 * config/riscv/predicates.md: Allow const_poly_int.
4772 * config/riscv/riscv-protos.h (riscv_reinit): New function.
4773 (riscv_parse_arch_string): change as exten function.
4774 (riscv_run_selftests): New function.
4775 * config/riscv/riscv.cc (riscv_cannot_force_const_mem): Don't allow poly
4777 (riscv_report_v_required): New function.
4778 (riscv_expand_op): New function.
4779 (riscv_expand_mult_with_const_int): New function.
4780 (riscv_legitimize_poly_move): Ditto.
4781 (riscv_legitimize_move): New function.
4782 (riscv_hard_regno_mode_ok): Add VL/VTYPE register allocation and fix
4784 (riscv_convert_vector_bits): Fix riscv_vector_chunks configuration for
4786 (riscv_reinit): New function.
4787 (TARGET_RUN_TARGET_SELFTESTS): New target hook support.
4788 * config/riscv/t-riscv: Add riscv-selftests.o.
4789 * config/riscv/riscv-selftests.cc: New file.
4791 2022-09-23 Richard Biener <rguenther@suse.de>
4793 PR tree-optimization/106922
4794 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Allow
4795 an arbitrary number of same valued skipped stores.
4797 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
4799 * value-range.cc (frange::set): Swap setters such that the one
4800 accepting REAL_VALUE_TYPE does all the work.
4802 2022-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4804 * config/aarch64/aarch64-cores.def (neoverse-v2): New entry.
4805 (demeter): Update tunings to neoversev2.
4806 * config/aarch64/aarch64-tune.md: Regenerate.
4807 * config/aarch64/aarch64.cc (demeter_addrcost_table): Rename to
4808 neoversev2_addrcost_table.
4809 (demeter_regmove_cost): Rename to neoversev2_addrcost_table.
4810 (demeter_advsimd_vector_cost): Rename to neoversev2_advsimd_vector_cost.
4811 (demeter_sve_vector_cost): Rename to neoversev2_sve_vector_cost.
4812 (demeter_scalar_issue_info): Rename to neoversev2_scalar_issue_info.
4813 (demeter_advsimd_issue_info): Rename to neoversev2_advsimd_issue_info.
4814 (demeter_sve_issue_info): Rename to neoversev2_sve_issue_info.
4815 (demeter_vec_issue_info): Rename to neoversev2_vec_issue_info.
4816 Update references to above.
4817 (demeter_vector_cost): Rename to neoversev2_vector_cost.
4818 (demeter_tunings): Rename to neoversev2_tunings.
4819 (aarch64_vec_op_count::rename_cycles_per_iter): Use
4820 neoversev2_sve_issue_info instead of demeter_sve_issue_info.
4821 * doc/invoke.texi (AArch64 Options): Document neoverse-v2.
4823 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
4825 * range-op-float.cc (build_le): Use vrp_val_*.
4829 * value-range.cc (frange::set): Chop ranges outside of the
4830 representable numbers for -ffinite-math-only.
4831 (frange::normalize_kind): Use vrp_val*.
4832 (frange::verify_range): Same.
4833 (frange::set_nonnegative): Same.
4834 (range_tests_floats): Remove tests that depend on -INF and +INF.
4835 * value-range.h (real_max_representable): Add prototype.
4836 (real_min_representable): Same.
4837 (vrp_val_max): Set max representable number for
4839 (vrp_val_min): Same but for min.
4840 (frange::set_varying): Use vrp_val*.
4842 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
4844 * real.cc (debug): New.
4846 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
4848 * value-range-pretty-print.cc (vrange_printer::print_real_value): New.
4849 (vrange_printer::visit): Call print_real_value.
4850 * value-range-pretty-print.h: New print_real_value.
4852 2022-09-23 Martin Liska <mliska@suse.cz>
4854 * common.opt: Update -flto-compression-level documentation.
4855 * opts.cc (print_filtered_help): Do not append range to an
4856 option that uses \t syntax.
4858 2022-09-23 Jakub Jelinek <jakub@redhat.com>
4860 * attribs.cc (decl_attributes): Improve diagnostics, instead of
4861 saying expected between 1 and 1, found 2 just say expected 1, found 2.
4863 2022-09-23 Hu, Lin1 <lin1.hu@intel.com>
4866 * config/i386/constraints.md (BH): New define_constraint.
4867 * config/i386/i386.cc (standard_sse_constant_p): Add return
4868 3/4 when operand matches new predicate.
4869 (standard_sse_constant_opcode): Add new alternative branch to
4871 * config/i386/predicates.md
4872 (vector_all_ones_zero_extend_half_operand): New define_predicate.
4873 (vector_all_ones_zero_extend_quarter_operand): Ditto.
4874 * config/i386/sse.md: Add constraint to insn "mov<mode>_internal".
4876 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4878 * gimple-range-fold.cc (range_of_range_op): Handle no operands.
4879 (range_of_call): Do not check for builtins.
4880 (fold_using_range::range_of_builtin_call): Delete.
4881 (fold_using_range::range_of_builtin_int_call): Delete.
4882 * gimple-range-fold.h: Adjust prototypes.
4883 * gimple-range-op.cc (class cfn_parity): New.
4884 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
4886 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4888 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
4889 for CFN_GOACC_DIM_*.
4890 * gimple-range-op.cc (class cfn_goacc_dim): New.
4891 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
4893 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4895 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
4896 for CFN_BUILT_IN_STRLEN.
4897 * gimple-range-op.cc (class cfn_strlen): New.
4898 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
4900 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4902 * gimple-range-fold.cc (range_of_builtin_ubsan_call): Delete.
4903 (range_of_builtin_int_call): Remove cases for
4904 CFN_BUILT_IN_UBSAN_CHECK.
4905 * gimple-range-op.cc (class cfn_ubsan): New.
4906 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
4908 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4910 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
4911 for CFN_BUILT_IN_CLRSB.
4912 * gimple-range-op.cc (class cfn_clrsb): New.
4913 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
4915 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4917 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
4919 * gimple-range-op.cc (class cfn_ctz): New.
4920 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
4922 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4924 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
4926 * gimple-range-op.cc (class cfn_clz): New.
4927 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
4929 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4931 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
4932 for CFN_FFS and CFN_POPCOUNT.
4933 * gimple-range-op.cc (class cfn_pocount): New.
4934 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
4936 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4938 * gimple-range-fold.cc (get_letter_range): Move to new class.
4939 (range_of_builtin_int_call): Remove case for CFN_BUILT_IN_TOUPPER
4940 and CFN_BUILT_IN_TOLOWER.
4941 * gimple-range-op.cc (class cfn_toupper_tolower): New.
4942 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
4944 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4946 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
4947 for CFN_BUILT_IN_SIGNBIT.
4948 * gimple-range-op.cc (class cfn_signbit): New.
4949 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
4951 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4953 * gimple-range-fold.cc
4954 (fold_using_range::range_of_builtin_int_call): Remove case for
4955 CFN_BUILT_IN_CONSTANT_P.
4956 * gimple-range-op.cc (gimple_range_op_handler::supported_p):
4957 Check if a call also creates a range-op object.
4958 (gimple_range_op_handler): Also check builtin calls.
4959 (class cfn_constant_float_p): New. Float CFN_BUILT_IN_CONSTANT_P.
4960 (class cfn_constant_p): New. Integral CFN_BUILT_IN_CONSTANT_P.
4961 (gimple_range_op_handler::maybe_builtin_call): Set arguments and
4962 handler for supported built-in calls.
4963 * gimple-range-op.h (maybe_builtin_call): New prototype.
4965 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4967 * gimple-range-fold.cc (range_of_range_op): Set result to
4968 VARYING if the call to fold_range fails.
4969 * tree-data-ref.cc (compute_distributive_range): Ditto.
4970 * tree-vrp.cc (range_fold_binary_expr): Ditto.
4971 (range_fold_unary_expr): Ditto.
4972 * value-query.cc (range_query::get_tree_range): Ditto.
4974 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4976 * range-op-float.cc (range_operator_float::fold_range): New base
4977 method for "int = float op int".
4978 * range-op.cc (range_op_handler::fold_range): New case.
4979 * range-op.h: Update prototypes.
4981 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4983 * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Use
4984 operand 1 for second range if there is no operand 2.
4986 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4988 * Makefile.in (OBJS): Add gimple-range-op.o.
4989 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Use
4990 gimple_range_op_handler.
4991 * gimple-range-fold.cc (gimple_range_base_of_assignment): Move
4992 to a method in gimple_range_op_handler.
4993 (gimple_range_operand1): Ditto.
4994 (gimple_range_operand2): Ditto.
4995 (fold_using_range::fold_stmt): Use gimple_range_op_handler.
4996 (fold_using_range::range_of_range_op): Ditto.
4997 (fold_using_range::relation_fold_and_or): Ditto.
4998 (fur_source::register_outgoing_edges): Ditto.
4999 (gimple_range_ssa_names): Relocate to gimple-range-op.cc.
5000 * gimple-range-fold.h: Adjust prototypes.
5001 * gimple-range-gori.cc (gimple_range_calc_op1): Move
5002 to a method in gimple_range_op_handler.
5003 (gimple_range_calc_op2): Ditto.
5004 (gori_compute::compute_operand_range): Use
5005 gimple_range_op_handler.
5006 (gori_compute::compute_logical_operands): Ditto.
5007 (compute_operand1_range): Ditto.
5008 (gori_compute::compute_operand2_range): Ditto.
5009 (gori_compute::compute_operand1_and_operand2_range): Ditto.
5010 * gimple-range-gori.h: Adjust protoypes.
5011 * gimple-range-op.cc: New. Supply gimple_range_op_handler methods.
5012 * gimple-range-op.h: New. Supply gimple_range_op_handler class.
5013 * gimple-range.cc (gimple_ranger::prefill_name): Use
5014 gimple_range_op_handler.
5015 (gimple_ranger::prefill_stmt_dependencies): Ditto.
5016 * gimple-range.h: Include gimple-range-op.h.
5017 * range-op.cc (range_op_handler::range_op_handler): Adjust and
5018 remove gimple * parameter option.
5019 * range-op.h: Adjust prototypes.
5021 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
5023 * range-op.cc (range_op_handler::set_op_handler): Set new fields.
5024 (ange_op_handler::range_op_handler): Likewise.
5025 (range_op_handler::operator bool): Remove.
5026 (range_op_handler::fold_range): Use appropriate handler.
5027 (range_op_handler::op1_range): Likewise.
5028 (range_op_handler::op2_range): Likewise.
5029 (range_op_handler::lhs_op1_relation): Likewise.
5030 (range_op_handler::lhs_op2_relation): Likewise.
5031 (range_op_handler::op1_op2_relation): Likewise.
5032 * range-op.h (class range_op_handler): Store handler pointers.
5033 (range_op_handler:: operator bool): Inline.
5035 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
5037 * tree-ssa-threadbackward.cc
5038 (back_threader::find_paths_to_names): Replace sequence with
5039 a call to gimple_range_ssa_names.
5041 2022-09-22 Martin Liska <mliska@suse.cz>
5042 Fangrui Song <i@maskray.me>
5044 * configure: Regenerate.
5045 * configure.ac: Simplify to gcc_cv_ld_compress_debug={0,1}
5046 and gcc_cv_as_compress_debug={0,1}.
5047 * doc/invoke.texi: Document the removal.
5048 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Simplify and ignore
5050 (ASM_COMPRESS_DEBUG_SPEC): Likewise.
5052 2022-09-22 Richard Biener <rguenther@suse.de>
5054 PR tree-optimization/106922
5055 * tree-ssa-sccvn.cc (vn_walk_cb_data::same_val): New member.
5056 (vn_walk_cb_data::finish): Perform delayed verification of
5057 a skipped may-alias.
5058 (vn_reference_lookup_pieces): Likewise.
5059 (vn_reference_lookup): Likewise.
5060 (vn_reference_lookup_3): When skipping stores of the same
5061 value also handle constant stores that are more than a
5062 single VDEF away by delaying the verification.
5064 2022-09-22 Max Filippov <jcmvbkbc@gmail.com>
5066 * config/xtensa/xtensa.cc (TARGET_MAX_ANCHOR_OFFSET): New
5069 2022-09-22 Max Filippov <jcmvbkbc@gmail.com>
5071 * config/xtensa/xtensa.cc (xtensa_can_output_mi_thunk)
5072 (xtensa_output_mi_thunk): New functions.
5073 (TARGET_ASM_CAN_OUTPUT_MI_THUNK)
5074 (TARGET_ASM_OUTPUT_MI_THUNK): New macro definitions.
5075 (xtensa_prepare_expand_call): Use fixed register a8 as temporary
5076 when called with reload_completed set to 1.
5078 2022-09-22 Richard Biener <rguenther@suse.de>
5080 PR tree-optimization/99407
5081 * tree-ssa-dse.cc (dse_stmt_to_dr_map): New global.
5082 (dse_classify_store): Use data-ref analysis to disambiguate more uses.
5083 (pass_dse::use_dr_analysis_p): New pass parameter.
5084 (pass_dse::set_pass_param): Implement.
5085 (pass_dse::execute): Allocate and deallocate dse_stmt_to_dr_map.
5086 * passes.def: Allow DR analysis for the DSE pass before loop.
5088 2022-09-22 Richard Biener <rguenther@suse.de>
5090 * tree-ssa-sccvn.cc (can_track_predicate_on_edge): New
5091 function split out from ...
5092 (vn_nary_op_insert_pieces_predicated): ... here.
5094 2022-09-22 liuhongt <hongtao.liu@intel.com>
5097 * config/i386/mmx.md (floorv2sf2): Fix typo, use
5098 register_operand instead of vector_operand for operands[1].
5100 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
5102 PR tree-optimization/106967
5103 * value-range.cc (frange::set): Set known NANs to undefined for
5104 flag_finite_math_only.
5106 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
5108 * value-range.cc (frange::combine_zeros): Call set_undefined.
5109 (frange::intersect_nans): Same.
5110 (frange::intersect): Same.
5111 (frange::verify_range): Undefined ranges do not have a type.
5112 * value-range.h (frange::set_undefined): Clear NAN flags and type.
5114 2022-09-21 Richard Biener <rguenther@suse.de>
5116 PR tree-optimization/106984
5117 * tsan.cc (instrument_builtin_call): Build the COND_EXPR condition in
5118 a separate statement.
5120 2022-09-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5122 * config/aarch64/aarch64.h (HAVE_LOCAL_CPU_DETECT,
5123 EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS): Move definitions up before
5124 OPTION_DEFAULT_SPECS.
5125 (MCPU_MTUNE_NATIVE_SPECS): Pass "cpu" to
5126 local_cpu_detect when rewriting -march=native and no -mcpu or -mtune
5128 (CONFIG_TUNE_SPEC): Define.
5129 (OPTION_DEFAULT_SPECS): Use CONFIG_TUNE_SPEC for "tune".
5131 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
5133 PR tree-optimization/106967
5134 * range-op-float.cc (foperator_equal::fold_range): Adjust for NAN.
5135 (foperator_equal::op1_range): Same.
5136 (foperator_not_equal::fold_range): Same.
5137 (foperator_not_equal::op1_range): Same.
5138 (foperator_lt::fold_range): Same.
5139 (foperator_lt::op1_range): Same.
5140 (foperator_lt::op2_range): Same.
5141 (foperator_le::fold_range): Same.
5142 (foperator_le::op1_range): Same.
5143 (foperator_le::op2_range): Same.
5144 (foperator_gt::fold_range): Same.
5145 (foperator_gt::op1_range): Same.
5146 (foperator_gt::op2_range): Same.
5147 (foperator_ge::fold_range): Same.
5148 (foperator_ge::op1_range): Same.
5149 (foperator_ge::op2_range): Same.
5150 (foperator_unordered::op1_range): Same.
5151 (foperator_ordered::fold_range): Same.
5152 (foperator_ordered::op1_range): Same.
5153 (build_le): Assert that we don't have a NAN.
5158 2022-09-21 liuhongt <hongtao.liu@intel.com>
5160 PR tree-optimization/106963
5161 * tree-vect-loop.cc (vect_create_nonlinear_iv_init): Use
5162 vec_gen_perm_mask_any instead of vec_gen_perm_mask_check.
5164 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
5166 * value-range.h (frange::maybe_isnan): Return false for
5169 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
5171 * value-range.cc (frange::set_nonnegative): Set +NAN.
5172 (range_tests_signed_zeros): New test.
5173 * value-range.h (frange::update_nan): New overload to set NAN sign.
5175 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
5178 * config/aarch64/aarch64-sve-builtins.cc (scalar_types)
5179 (acle_vector_types, acle_svpattern, acle_svprfop): Add GTY
5180 markup to (new) extern declarations instead of to the main
5183 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
5185 PR tree-optimization/106794
5186 PR tree-optimization/106914
5187 * tree-vect-slp.cc (vect_optimize_slp_pass::internal_node_cost):
5188 Only consider loads that already have a permutation.
5189 (vect_optimize_slp_pass::start_choosing_layouts): Assert that
5190 loads with permutations are leaf nodes. Prevent any kind of grouped
5191 access from changing layout if it doesn't have a load permutation.
5193 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
5195 * tree-vect-data-refs.cc (vect_check_gather_scatter): Restrict
5196 early-out optimisation to SSA_NAMEs.
5198 2022-09-20 Martin Liska <mliska@suse.cz>
5200 * ctfc.cc (ctf_add_string): Replace "the the" with "the".
5201 * doc/md.texi: Likewise.
5202 * gimple-range-infer.cc (non_null_loadstore): Likewise.
5204 2022-09-20 liuhongt <hongtao.liu@intel.com>
5207 * config/i386/mmx.md (nearbyintv2sf2): New expander.
5210 (lceilv2sfv2si2): Ditto.
5211 (floorv2sf2): Ditto.
5212 (lfloorv2sfv2si2): Ditto.
5213 (btruncv2sf2): Ditto.
5214 (lrintv2sfv2si2): Ditto.
5215 (roundv2sf2): Ditto.
5216 (lroundv2sfv2si2): Ditto.
5217 (*mmx_roundv2sf2): New define_insn.
5219 2022-09-20 konglin1 <lingling.kong@intel.com>
5221 PR middle-end/105735
5222 * tree-scalar-evolution.cc
5223 (analyze_and_compute_bitop_with_inv_effect): New function.
5224 (final_value_replacement_loop): Enhanced to handle bitop
5227 2022-09-20 Xi Ruoyao <xry111@xry111.site>
5229 * config/loongarch/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): For
5230 -static-pie, pass -static -pie --no-dynamic-linker -z text to
5231 the linker, and do not pass --dynamic-linker.
5233 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
5235 * value-range.cc (frange::flush_denormals_to_zero): New.
5236 (frange::set): Call flush_denormals_to_zero.
5237 * value-range.h (class frange): Add flush_denormals_to_zero.
5239 2022-09-20 liuhongt <hongtao.liu@intel.com>
5241 * config/i386/x86-tune-sched.cc (ix86_issue_rate): Adjust for
5242 latest Intel processors.
5244 2022-09-20 konglin1 <lingling.kong@intel.com>
5247 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
5248 Fixed V16BF mode case.
5250 2022-09-19 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
5252 * targhooks.cc (default_zero_call_used_regs): Improve sorry
5255 2022-09-18 Julian Brown <julian@codesourcery.com>
5257 * gimplify.cc (omp_segregate_mapping_groups): Update comment.
5258 (gimplify_adjust_omp_clauses): Move ATTACH and
5259 ATTACH_ZERO_LENGTH_ARRAY_SECTION nodes to the end of the clause list
5260 for offloaded OpenMP regions.
5262 2022-09-18 Jakub Jelinek <jakub@redhat.com>
5264 PR middle-end/106831
5265 * value-range.cc (frange::singleton_p): Avoid propagating long
5266 doubles that may have multiple representations.
5268 2022-09-18 Aldy Hernandez <aldyh@redhat.com>
5270 * range-op-float.cc (frange_add_zeros): Replace set_signbit with
5272 * value-query.cc (range_query::get_tree_range): Remove set_signbit
5274 * value-range-pretty-print.cc (vrange_printer::print_frange_prop):
5276 (vrange_printer::print_frange_nan): New.
5277 * value-range-pretty-print.h (print_frange_prop): Remove.
5278 (print_frange_nan): New.
5279 * value-range-storage.cc (frange_storage_slot::set_frange): Set
5280 kind and NAN fields.
5281 (frange_storage_slot::get_frange): Restore kind and NAN fields.
5282 * value-range-storage.h (class frange_storage_slot): Add kind and
5284 * value-range.cc (frange::update_nan): Remove.
5285 (frange::set_signbit): Remove.
5286 (frange::set): Adjust for NAN fields.
5287 (frange::normalize_kind): Remove m_props.
5288 (frange::combine_zeros): New.
5289 (frange::union_nans): New.
5290 (frange::union_): Handle new NAN fields.
5291 (frange::intersect_nans): New.
5292 (frange::intersect): Handle new NAN fields.
5293 (frange::operator=): Same.
5294 (frange::operator==): Same.
5295 (frange::contains_p): Same.
5296 (frange::singleton_p): Remove special case for signed zeros.
5297 (frange::verify_range): Adjust for new NAN fields.
5298 (frange::set_zero): Handle signed zeros.
5299 (frange::set_nonnegative): Same.
5300 (range_tests_nan): Adjust tests.
5301 (range_tests_signed_zeros): Same.
5302 (range_tests_signbit): Same.
5303 (range_tests_floats): Same.
5304 * value-range.h (class fp_prop): Remove.
5305 (FP_PROP_ACCESSOR): Remove.
5306 (class frange_props): Remove
5307 (frange::lower_bound): NANs don't have endpoints.
5308 (frange::upper_bound): Same.
5309 (frange_props::operator==): Remove.
5310 (frange_props::union_): Remove.
5311 (frange_props::intersect): Remove.
5312 (frange::update_nan): New.
5313 (frange::clear_nan): New.
5314 (frange::undefined_p): New.
5315 (frange::set_nan): New.
5316 (frange::known_finite): Adjust for new NAN representation.
5317 (frange::maybe_isnan): Same.
5318 (frange::known_isnan): Same.
5319 (frange::signbit_p): Same.
5320 * gimple-range-fold.cc (range_of_builtin_int_call): Rename
5321 known_signbit_p into signbit_p.
5323 2022-09-17 Jan-Benedict Glaw <jbglaw@lug-owl.de>
5325 * config/csky/csky.h (FUNCTION_ARG_REGNO_P): Cast REGNO to (int)
5328 2022-09-17 Jakub Jelinek <jakub@redhat.com>
5330 PR tree-optimization/106958
5331 * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): If
5332 id >= l, cast op to type1, otherwise to pointer_sized_int_node.
5333 If type has pointer type, cast exp to pointer_sized_int_node
5336 2022-09-16 liuhongt <hongtao.liu@intel.com>
5339 * config/i386/i386-builtins.cc
5340 (ix86_builtin_vectorized_function): Modernized with
5341 corresponding expanders.
5342 * config/i386/sse.md (lrint<mode><sseintvecmodelower>2): New
5344 (floor<mode>2): Ditto.
5345 (lfloor<mode><sseintvecmodelower>2): Ditto.
5346 (ceil<mode>2): Ditto.
5347 (lceil<mode><sseintvecmodelower>2): Ditto.
5348 (btrunc<mode>2): Ditto.
5349 (lround<mode><sseintvecmodelower>2): Ditto.
5350 (exp2<mode>2): Ditto.
5352 2022-09-15 Joseph Myers <joseph@codesourcery.com>
5354 * ginclude/float.h (INFINITY): Define only if
5355 [__FLT_HAS_INFINITY__].
5357 2022-09-15 Richard Biener <rguenther@suse.de>
5359 PR tree-optimization/106922
5360 * tree-ssa-pre.cc (translate_vuse_through_block): Only
5361 keep the VUSE if its def dominates PHIBLOCK.
5362 (prune_clobbered_mems): Rewrite logic so we check whether
5363 a value dies in a block when the VUSE def doesn't dominate it.
5365 2022-09-15 Richard Biener <rguenther@suse.de>
5367 * tree.cc (build_common_tree_nodes): Initialize void_list_node
5370 2022-09-15 Jiufu Guo <guojiufu@linux.ibm.com>
5373 * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Use pli.
5375 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
5377 * range-op-float.cc (frange_add_zeros): New.
5378 (build_le): Call frange_add_zeros.
5380 (foperator_equal::op1_range): Same.
5381 (foperator_not_equal::op1_range): Same.
5383 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
5385 * range-op-float.cc (build_le): Accept frange instead of number.
5389 (foperator_lt::op1_range): Pass full range to build_*.
5390 (foperator_lt::op2_range): Same.
5391 (foperator_le::op1_range): Same.
5392 (foperator_le::op2_range): Same.
5393 (foperator_gt::op1_range): Same.
5394 (foperator_gt::op2_range): Same.
5395 (foperator_ge::op1_range): Same.
5396 (foperator_ge::op2_range): Same.
5398 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
5400 * value-range.cc (frange::set): Use set_nan.
5401 * value-range.h (frange::set_nan): Inline code originally in
5404 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
5406 * range-op-float.cc (frange_set_nan): Remove.
5407 (build_lt): Use set_nan, update_nan, clear_nan.
5409 (foperator_equal::op1_range): Same.
5410 (foperator_not_equal::op1_range): Same.
5411 (foperator_lt::op1_range): Same.
5412 (foperator_lt::op2_range): Same.
5413 (foperator_le::op1_range): Same.
5414 (foperator_le::op2_range): Same.
5415 (foperator_gt::op1_range): Same.
5416 (foperator_gt::op2_range): Same.
5417 (foperator_ge::op1_range): Same.
5418 (foperator_ge::op2_range): Same.
5419 (foperator_unordered::op1_range): Same.
5420 (foperator_ordered::op1_range): Same.
5421 * value-query.cc (range_query::get_tree_range): Same.
5422 * value-range.cc (frange::set_nan): Same.
5423 (frange::update_nan): Same.
5424 (frange::union_): Same.
5425 (frange::intersect): Same.
5426 (range_tests_nan): Same.
5427 (range_tests_signed_zeros): Same.
5428 (range_tests_signbit): Same.
5429 (range_tests_floats): Same.
5430 * value-range.h (class frange): Add update_nan and clear_nan.
5431 (frange::set_nan): New.
5433 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
5435 * value-query.cc (range_query::get_tree_range): Remove check for overflow.
5436 * value-range-pretty-print.cc (vrange_printer::visit): Move read
5437 of type until after undefined_p is checked.
5438 * value-range.cc (frange::set): Remove asserts for REAL_CST.
5439 (frange::contains_p): Tidy up.
5440 (range_tests_nan): Add comment.
5441 * value-range.h (frange::type): Check for undefined_p.
5442 (frange::set_undefined): Remove set of endpoints.
5444 2022-09-14 Julian Brown <julian@codesourcery.com>
5446 * gimplify.cc (omp_group_last): Allow GOMP_MAP_ATTACH_DETACH after
5447 GOMP_MAP_STRUCT (for reindexing).
5448 (omp_gather_mapping_groups): Reimplement using...
5449 (omp_gather_mapping_groups_1): This new function. Stop processing at
5451 (omp_group_base): Allow GOMP_MAP_TO_PSET without any following node.
5452 (omp_index_mapping_groups): Reimplement using...
5453 (omp_index_mapping_groups_1): This new function. Handle
5455 (omp_reindex_mapping_groups, omp_mapped_by_containing_struct): New
5457 (omp_tsort_mapping_groups_1): Adjust handling of base group being the
5458 same as current group. Use omp_mapped_by_containing_struct.
5459 (omp_build_struct_sibling_lists): Use omp_mapped_by_containing_struct
5460 and omp_reindex_mapping_groups. Robustify group deletion for reordered
5462 (gimplify_scan_omp_clauses): Update calls to
5463 omp_build_struct_sibling_lists.
5465 2022-09-14 Julian Brown <julian@codesourcery.com>
5467 * gimplify.cc (gimplify_omp_var_data): Remove GOVD_MAP_HAS_ATTACHMENTS.
5468 (GOMP_FIRSTPRIVATE_IMPLICIT): Renumber.
5469 (insert_struct_comp_map): Refactor function into...
5470 (build_omp_struct_comp_nodes): This new function. Remove list handling
5471 and improve self-documentation.
5472 (extract_base_bit_offset): Remove BASE_REF, OFFSETP parameters. Move
5473 code to strip outer parts of address out of function, but strip no-op
5475 (omp_mapping_group): Add DELETED field for use during reindexing.
5476 (omp_strip_components_and_deref, omp_strip_indirections): New functions.
5477 (omp_group_last, omp_group_base): Add GOMP_MAP_STRUCT handling.
5478 (omp_gather_mapping_groups): Initialise DELETED field for new groups.
5479 (omp_index_mapping_groups): Notice DELETED groups when (re)indexing.
5480 (omp_siblist_insert_node_after, omp_siblist_move_node_after,
5481 omp_siblist_move_nodes_after, omp_siblist_move_concat_nodes_after): New
5483 (omp_accumulate_sibling_list): New function to build up GOMP_MAP_STRUCT
5484 node groups for sibling lists. Outlined from gimplify_scan_omp_clauses.
5485 (omp_build_struct_sibling_lists): New function.
5486 (gimplify_scan_omp_clauses): Remove struct_map_to_clause,
5487 struct_seen_clause, struct_deref_set. Call
5488 omp_build_struct_sibling_lists as pre-pass instead of handling sibling
5489 lists in the function's main processing loop.
5490 (gimplify_adjust_omp_clauses_1): Remove GOVD_MAP_HAS_ATTACHMENTS
5491 handling, unused now.
5492 * omp-low.cc (scan_sharing_clauses): Handle pointer-type indirect
5493 struct references, and references to pointers to structs also.
5495 2022-09-14 Richard Biener <rguenther@suse.de>
5497 PR tree-optimization/106938
5498 * tree-cfg.cc (execute_fixup_cfg): Purge dead abnormal
5499 edges for all last stmts in a block. Do EH cleanup
5500 only on the last stmt in a block.
5502 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
5504 PR tree-optimization/106936
5505 * value-query.cc (range_query::get_value_range): Remove assert.
5507 2022-09-14 Jan-Benedict Glaw <jbglaw@lug-owl.de>
5509 * config/mips/mips.cc (mips_option_override): Drop unused variable.
5511 2022-09-14 Julian Brown <julian@codesourcery.com>
5513 * gimplify.cc (is_or_contains_p, omp_target_reorder_clauses): Delete
5515 (omp_tsort_mark): Add enum.
5516 (omp_mapping_group): Add struct.
5517 (debug_mapping_group, omp_get_base_pointer, omp_get_attachment,
5518 omp_group_last, omp_gather_mapping_groups, omp_group_base,
5519 omp_index_mapping_groups, omp_containing_struct,
5520 omp_tsort_mapping_groups_1, omp_tsort_mapping_groups,
5521 omp_segregate_mapping_groups, omp_reorder_mapping_groups): New
5523 (gimplify_scan_omp_clauses): Call above functions instead of
5524 omp_target_reorder_clauses, unless we've seen an error.
5525 * omp-low.cc (scan_sharing_clauses): Avoid strict test if we haven't
5526 sorted mapping groups.
5528 2022-09-14 Jakub Jelinek <jakub@redhat.com>
5530 PR tree-optimization/106878
5531 * tree-cfg.cc (verify_gimple_assign_binary): Disallow pointer,
5532 reference or OFFSET_TYPE BIT_IOR_EXPR, BIT_XOR_EXPR or, unless
5533 the second argument is INTEGER_CST, BIT_AND_EXPR.
5534 * match.pd ((type) X op CST -> (type) (X op ((type-x) CST)),
5535 (type) (((type2) X) op Y) -> (X op (type) Y)): Punt for
5536 POINTER_TYPE_P or OFFSET_TYPE.
5537 * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): For
5538 pointers cast them to pointer sized integers first.
5540 2022-09-14 Richard Biener <rguenther@suse.de>
5542 PR tree-optimization/106934
5543 * tree-ssa.cc (non_rewritable_mem_ref_base): Avoid BIT_FIELD_REFs
5545 (maybe_rewrite_mem_ref_base): Likewise.
5547 2022-09-14 liuhongt <hongtao.liu@intel.com>
5549 PR tree-optimization/106905
5550 * tree-vect-loop.cc (vectorizable_nonlinear_induction): Return
5551 false when !vect_use_loop_mask_for_alignment_p (loop_vinfo) &&
5552 LOOP_VINFO_PEELING_FOR_ALIGNMENT (loop_vinfo) < 0.
5554 2022-09-13 Roger Sayle <roger@nextmovesoftware.com>
5557 * reg-stack.cc (move_for_stack_reg): Check for any_malformed_asm
5560 2022-09-13 Max Filippov <jcmvbkbc@gmail.com>
5563 2022-09-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5565 * config/xtensa/xtensa.cc (TARGET_CONSTANT_OK_FOR_CPROP_P):
5566 New macro definition.
5567 (xtensa_constant_ok_for_cprop_p):
5568 Implement the hook as mentioned above.
5570 2022-09-13 Kewen Lin <linkw@linux.ibm.com>
5573 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin): Fix
5574 the equality check for argument number, and move this hunk ahead.
5576 2022-09-13 Kewen.Lin <linkw@gcc.gnu.org>
5579 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Add
5580 the handling for unresolved overloaded builtin function.
5581 (rs6000_expand_builtin): Likewise.
5583 2022-09-13 Kewen Lin <linkw@linux.ibm.com>
5585 * config/rs6000/rs6000.cc (class rs6000_cost_data): Add new members
5586 m_nstores, m_reduc_factor, m_gather_load and member function
5587 determine_suggested_unroll_factor.
5588 (rs6000_cost_data::update_target_cost_per_stmt): Update for m_nstores,
5589 m_reduc_factor and m_gather_load.
5590 (rs6000_cost_data::determine_suggested_unroll_factor): New function.
5591 (rs6000_cost_data::finish_cost): Use determine_suggested_unroll_factor.
5592 * config/rs6000/rs6000.opt (rs6000-vect-unroll-limit): New parameter.
5593 (rs6000-vect-unroll-issue): Likewise.
5594 (rs6000-vect-unroll-reduc-threshold): Likewise.
5595 * doc/invoke.texi (rs6000-vect-unroll-limit): Document new parameter.
5597 2022-09-13 Richard Biener <rguenther@suse.de>
5599 PR middle-end/106909
5600 * gimple-fold.cc (gimple_fold_call): Clear the ctrl-altering
5601 flag of a unreachable call.
5603 2022-09-13 Richard Biener <rguenther@suse.de>
5605 PR tree-optimization/106913
5606 * tree-ssa-uninit.cc (warn_uninitialized_vars): Do not set
5607 ft_reachable on EXIT_BLOCK.
5609 2022-09-13 Richard Sandiford <richard.sandiford@arm.com>
5611 * config/aarch64/aarch64.cc (aarch64_classify_vector_mode): Use
5612 TARGET_FLOAT instead of TARGET_SIMD.
5613 (aarch64_vectorize_related_mode): Restrict ADVSIMD handling to
5615 (aarch64_hard_regno_mode_ok): Don't allow tuples of 2 64-bit vectors
5617 (aarch64_classify_address): Treat little-endian structure moves
5618 like big-endian for TARGET_FLOAT && !TARGET_SIMD.
5619 (aarch64_secondary_memory_needed): New function.
5620 (aarch64_secondary_reload): Handle 128-bit Advanced SIMD vectors
5621 in the same way as TF, TI and TD.
5622 (aarch64_rtx_mult_cost): Restrict ADVSIMD handling to TARGET_SIMD.
5623 (aarch64_rtx_costs): Likewise.
5624 (aarch64_register_move_cost): Treat a pair of 64-bit vectors
5625 separately from a single 128-bit vector. Handle the cost implied
5626 by aarch64_secondary_memory_needed.
5627 (aarch64_simd_valid_immediate): Restrict ADVSIMD handling to
5629 (aarch64_expand_vec_perm_const_1): Likewise.
5630 (TARGET_SECONDARY_MEMORY_NEEDED): New macro.
5631 * config/aarch64/iterators.md (VTX): New iterator.
5632 * config/aarch64/aarch64.md (arches): Add fp_q as a synonym of simd.
5633 (arch_enabled): Adjust accordingly.
5634 (@aarch64_reload_mov<TX:mode>): Extend to...
5635 (@aarch64_reload_mov<VTX:mode>): ...this.
5636 * config/aarch64/aarch64-simd.md (mov<mode>): Require TARGET_FLOAT
5637 rather than TARGET_SIMD.
5638 (movmisalign<mode>): Likewise.
5639 (load_pair<DREG:mode><DREG2:mode>): Likewise.
5640 (vec_store_pair<DREG:mode><DREG2:mode>): Likewise.
5641 (load_pair<VQ:mode><VQ2:mode>): Likewise.
5642 (vec_store_pair<VQ:mode><VQ2:mode>): Likewise.
5643 (@aarch64_split_simd_mov<mode>): Likewise.
5644 (aarch64_get_low<mode>): Likewise.
5645 (aarch64_get_high<mode>): Likewise.
5646 (aarch64_get_half<mode>): Likewise. Canonicalize to a move for
5648 (*aarch64_simd_mov<VDMOV:mode>): Require TARGET_FLOAT rather than
5649 TARGET_SIMD. Use different w<-w and r<-w instructions for
5650 !TARGET_SIMD. Disable immediate moves for !TARGET_SIMD but
5651 add an alternative specifically for w<-Z.
5652 (*aarch64_simd_mov<VQMOV:mode>): Require TARGET_FLOAT rather than
5653 TARGET_SIMD. Likewise for the associated define_splits. Disable
5654 FPR moves and immediate moves for !TARGET_SIMD but add an alternative
5655 specifically for w<-Z.
5656 (aarch64_simd_mov_from_<mode>high): Require TARGET_FLOAT rather than
5657 TARGET_SIMD. Restrict the existing alternatives to TARGET_SIMD
5658 but add a new r<-w one for !TARGET_SIMD.
5659 (*aarch64_get_high<mode>): New pattern.
5660 (load_pair_lanes<mode>): Require TARGET_FLOAT rather than TARGET_SIMD.
5661 (store_pair_lanes<mode>): Likewise.
5662 (*aarch64_combine_internal<mode>): Likewise. Restrict existing
5663 w<-w, w<-r and w<-m alternatives to TARGET_SIMD but add a new w<-r
5664 alternative for !TARGET_SIMD.
5665 (*aarch64_combine_internal_be<mode>): Likewise.
5666 (aarch64_combinez<mode>): Require TARGET_FLOAT rather than TARGET_SIMD.
5667 Remove bogus arch attribute.
5668 (*aarch64_combinez_be<mode>): Likewise.
5669 (@aarch64_vec_concat<mode>): Require TARGET_FLOAT rather than
5671 (aarch64_combine<mode>): Likewise.
5672 (aarch64_rev_reglist<mode>): Likewise.
5673 (mov<mode>): Likewise.
5674 (*aarch64_be_mov<VSTRUCT_2D:mode>): Extend to TARGET_FLOAT &&
5675 !TARGET_SIMD, regardless of endianness. Extend associated
5676 define_splits in the same way, both for this pattern and the
5678 (*aarch64_be_mov<VSTRUCT_2Qmode>): Likewise. Restrict w<-w
5679 alternative to TARGET_SIMD.
5680 (*aarch64_be_movoi): Likewise.
5681 (*aarch64_be_movci): Likewise.
5682 (*aarch64_be_movxi): Likewise.
5683 (*aarch64_be_mov<VSTRUCT_4QD:mode>): Extend to TARGET_FLOAT
5684 && !TARGET_SIMD, regardless of endianness. Restrict w<-w alternative
5685 to TARGET_SIMD for tuples of 128-bit vectors.
5686 (*aarch64_be_mov<VSTRUCT_4QD:mode>): Likewise.
5687 * config/aarch64/aarch64-ldpstp.md: Remove TARGET_SIMD condition
5688 from DREG STP peephole. Change TARGET_SIMD to TARGET_FLOAT in
5689 the VQ and VP_2E LDP and STP peepholes.
5691 2022-09-13 Richard Sandiford <richard.sandiford@arm.com>
5693 * config/aarch64/aarch64-simd.md (movv8di): Remove TARGET_SIMD
5694 condition. Likewise for the related define_split. Tweak formatting.
5696 2022-09-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5698 * config/xtensa/xtensa.cc (TARGET_CONSTANT_OK_FOR_CPROP_P):
5699 New macro definition.
5700 (xtensa_constant_ok_for_cprop_p):
5701 Implement the hook as mentioned above.
5703 2022-09-12 Joseph Myers <joseph@codesourcery.com>
5705 * ginclude/stdatomic.h [defined __STDC_VERSION__ &&
5706 __STDC_VERSION__ > 201710L] (ATOMIC_VAR_INIT): Do not define.
5708 2022-09-12 Tobias Burnus <tobias@codesourcery.com>
5710 * config/nvptx/mkoffload.cc (process): Replace a fatal_error by
5711 a warning + not enabling offloading if -misa=sm_30 prevents
5713 (main): Use tool_name as progname for diagnostic.
5714 * config/gcn/mkoffload.cc (main): Likewise.
5716 2022-09-12 Aldy Hernandez <aldyh@redhat.com>
5718 * value-range.cc (frange::set_signbit): Avoid changing sign when
5719 already in the correct sign.
5721 2022-09-12 Max Filippov <jcmvbkbc@gmail.com>
5723 * config/xtensa/xtensa.cc (xtensa_function_value_regno_p):
5724 Recognize all 4 return registers.
5725 * config/xtensa/xtensa.h (GP_RETURN_REG_COUNT): New definition.
5726 * config/xtensa/xtensa.md (untyped_call): New pattern.
5728 2022-09-12 Jonathan Wakely <jwakely@redhat.com>
5730 * doc/extend.texi (Floating Types): Fix "_float128" typo.
5732 2022-09-10 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5734 * config/xtensa/xtensa.cc (xtensa_constantsynth):
5735 Add new pattern for the abovementioned case.
5737 2022-09-10 Akari Takahashi <akaritakahashioss@gmail.com>
5738 Segher Boessenkool <segher@kernel.crashing.org>
5740 * config/rs6000/rs6000.cc (get_memref_parts): Regularize some code.
5742 2022-09-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5744 * config/xtensa/xtensa.md: Rewrite the split pattern that performs
5745 the abovementioned process so that insns that overwrite clobbered
5746 register no longer need to be contiguous.
5747 (DSC): Remove as no longer needed.
5749 2022-09-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5751 * config/xtensa/xtensa.cc (machine_function): New boolean member as
5752 a flag that controls whether to emit the insns for stack pointer
5753 adjustment inside of the pro/epilogue.
5754 (xtensa_emit_adjust_stack_ptr): New function to share the common
5755 codes and to emit insns if not inhibited.
5756 (xtensa_expand_epilogue): Change to use the function mentioned
5757 above when using the CALL0 ABI.
5758 (xtensa_expand_prologue): Ditto.
5759 And also change to set the inhibit flag used by
5760 xtensa_emit_adjust_stack_ptr() to true if the stack pointer is only
5761 used for its own adjustment.
5763 2022-09-09 David Malcolm <dmalcolm@redhat.com>
5765 * doc/invoke.texi (Static Analyzer Options): Add
5766 -Wanalyzer-exposure-through-uninit-copy.
5768 2022-09-09 David Malcolm <dmalcolm@redhat.com>
5770 * Makefile.in (ANALYZER_OBJS): Add
5771 analyzer/known-function-manager.o.
5773 2022-09-09 Tobias Burnus <tobias@codesourcery.com>
5775 * config/nvptx/mkoffload.cc (struct id_map): Add 'dim' member.
5776 (record_id): Store func name without quotes, store dim separately.
5777 (process): For GOMP_REQUIRES_REVERSE_OFFLOAD, check that -march is
5778 at least sm_35, create '$offload_func_table' global array and init
5779 with reverse-offload function addresses.
5780 * config/nvptx/nvptx.cc (write_fn_proto_1, write_fn_proto): New
5781 force_public attribute to force .visible.
5782 (nvptx_declare_function_name): For "omp target
5783 device_ancestor_nohost" attribut, force .visible/TREE_PUBLIC.
5785 2022-09-09 Tobias Burnus <tobias@codesourcery.com>
5787 * config/gcn/mkoffload.cc (process_asm): Create .offload_func_table,
5788 similar to pre-existing .offload_var_table.
5790 2022-09-09 Joseph Myers <joseph@codesourcery.com>
5792 * ginclude/stddef.h [__STDC_VERSION__ > 201710L] (unreachable):
5795 2022-09-09 Kewen Lin <linkw@linux.ibm.com>
5797 PR middle-end/106833
5798 * tree.cc (verify_opaque_type): New function.
5799 (verify_type): Call verify_opaque_type for OPAQUE_TYPE.
5801 2022-09-09 Kwok Cheung Yeung <kcy@codesourcery.com>
5803 * config/gcn/gcn-builtins.def (FABSVF, LDEXPVF, LDEXPV, FREXPVF_EXP,
5804 FREXPVF_MANT, FREXPV_EXP, FREXPV_MANT): Add new builtins.
5805 * config/gcn/gcn-protos.h (gcn_dconst1over2pi): New prototype.
5806 * config/gcn/gcn-valu.md (MATH_UNOP_1OR2REG, MATH_UNOP_1REG,
5807 MATH_UNOP_TRIG): New iterators.
5808 (math_unop): New attributes.
5809 (<math_unop><mode>2, <math_unop><mode>2<exec>,
5810 <math_unop><mode>2, <math_unop><mode>2<exec>,
5811 *<math_unop><mode>2_insn, *<math_unop><mode>2<exec>_insn,
5812 ldexp<mode>3, ldexp<mode>3<exec>,
5813 frexp<mode>_exp2, frexp<mode>_mant2,
5814 frexp<mode>_exp2<exec>, frexp<mode>_mant2<exec>): New instructions.
5815 (<math_unop><mode>2, <math_unop><mode>2<exec>): New expanders.
5816 * config/gcn/gcn.cc (init_ext_gcn_constants): Update definition of
5818 (gcn_dconst1over2pi): New.
5819 (gcn_builtin_type_index): Add entry for v64df type.
5820 (v64df_type_node): New.
5821 (gcn_init_builtin_types): Initialize v64df_type_node.
5822 (gcn_expand_builtin_1): Expand new builtins to instructions.
5823 (print_operand): Fix assembler output for 1/(2*PI) constant.
5824 * config/gcn/gcn.md (unspec): Add new entries.
5826 2022-09-09 Richard Biener <rguenther@suse.de>
5828 PR tree-optimization/106722
5829 * tree-predcom.cc (ref_at_iteration): Do not associate the
5830 constant part of the offset into the MEM_REF offset
5831 operand, across a non-zero offset.
5833 2022-09-09 Kito Cheng <kito.cheng@sifive.com>
5835 * common/config/riscv/riscv-common.cc (RISCV_USE_CUSTOMISED_MULTI_LIB):
5836 Move forward for cover all all necessary functions for suppress
5837 unused function warnings.
5838 (riscv_multi_lib_check): Move forward, and tweak message to suppress
5839 -Werror=format-diag warning.
5841 2022-09-09 Richard Biener <rguenther@suse.de>
5843 PR tree-optimization/106881
5844 * gimple-predicate-analysis.cc (simple_control_dep_chain):
5845 Add only non-fallthru edges and avoid the same set of edges
5846 as compute_control_dep_chain_pdom does.
5848 2022-09-09 Jan-Benedict Glaw <jbglaw@lug-owl.de>
5850 * doc/tm.texi.in (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Document requirement
5851 of TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT being defined as well.
5852 * doc/tm.texi: Regenerate.
5854 2022-09-09 Martin Liska <mliska@suse.cz>
5856 * optc-save-gen.awk: Always compare array option values with memcmp.
5858 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
5861 * doc/extend.texi (Type Traits): Fix requirements. Document
5862 __is_aggregate and __is_final.
5864 2022-09-08 Tim Lange <mail@tim-lange.me>
5868 State that the checker also reasons about symbolic values.
5870 2022-09-08 Richard Sandiford <richard.sandiford@arm.com>
5872 PR tree-optimization/106886
5873 * tree-vect-slp.cc (vect_optimize_slp_pass::get_result_with_layout):
5874 Fix copying of scalar stmts.
5876 2022-09-08 Chung-Lin Tang <cltang@codesourcery.com>
5878 * config/nios2/linux.h (MUSL_DYNAMIC_LINKER): Add #undef before #define.
5880 2022-09-08 Richard Biener <rguenther@suse.de>
5882 PR middle-end/106870
5883 * gimple-harden-conditionals.cc (insert_check_and_trap):
5884 Set the control-altering flag on the built IFN_TRAP.
5885 * gimple.cc (gimple_build_builtin_unreachable): Likewise.
5886 * tree-cfg.cc (handle_abnormal_edges): Set the control-altering
5887 flag on the .ABNORMAL_DISPATCHER call.
5888 * tree-cfgcleanup.cc (cleanup_call_ctrl_altering_flag): Avoid
5889 resetting the control altering flag for ECF_NORETURN calls.
5890 (cleanup_control_flow_bb): Set the control altering flag on
5891 discovered noreturn calls.
5892 * symtab-thunks.cc (expand_thunk): Set the control altering
5893 flag for the noreturn tailcall case.
5894 * tree-eh.cc (lower_resx): Likewisw for trap and unwind_resume
5897 2022-09-08 Jakub Jelinek <jakub@redhat.com>
5899 * omp-expand.cc (expand_omp_ordered_sink): Add CONT_BB argument.
5900 Add doacross(sink:omp_cur_iteration-1) support.
5901 (expand_omp_ordered_source_sink): Clear counts[fd->ordered + 1].
5902 Adjust expand_omp_ordered_sink caller.
5903 (expand_omp_for_ordered_loops): If counts[fd->ordered + 1] is
5904 non-NULL, set that variable to true at the start of outermost
5905 non-collapsed loop and set it to false at the end of innermost
5907 (expand_omp_for_generic): If fd->ordered, allocate
5908 1 + (fd->ordered - fd->collapse) further elements in counts array.
5909 Copy to counts + 2 + fd->ordered the counts of fd->collapse ..
5910 fd->ordered - 1 loop if any.
5912 2022-09-08 Richard Biener <rguenther@suse.de>
5914 PR tree-optimization/106881
5915 * gimple-predicate-analysis.cc (compute_control_dep_chain_pdom):
5916 Add only non-fallthru edges and avoid the same set of edges
5919 2022-09-08 Aldy Hernandez <aldyh@redhat.com>
5921 * gimple-range-fold.cc
5922 (fold_using_range::range_of_builtin_int_call): Use fpclassify like API.
5923 * range-op-float.cc (finite_operand_p): Same.
5924 (finite_operands_p): Same.
5925 (foperator_lt::fold_range): Same.
5926 (foperator_le::fold_range): Same.
5927 (foperator_gt::fold_range): Same.
5928 (foperator_ge::fold_range): Same.
5929 (foperator_unordered::fold_range): Same.
5930 (foperator_unordered::op1_range): Same.
5931 (foperator_ordered::fold_range): Same.
5932 * value-range.cc (frange::set_nan): Same.
5933 (frange::set_signbit): Same.
5934 (frange::union_): Same.
5935 (frange::intersect): Same.
5936 (frange::operator==): Same.
5937 (frange::singleton_p): Same.
5938 (frange::verify_range): Same.
5939 (range_tests_nan): Same.
5940 (range_tests_floats): Same.
5941 * value-range.h(frange::known_finite): New.
5942 (frange::maybe_inf): New.
5943 (frange::known_inf): New.
5944 (frange::maybe_nan): New.
5945 (frange::known_nan): New.
5946 (frange::known_signbit): New.
5948 2022-09-08 Iain Buclaw <ibuclaw@gdcproject.org>
5950 * config/darwin-d.cc: Include tm.h.
5951 * config/dragonfly-d.cc: Likewise.
5952 * config/freebsd-d.cc: Remove memmodel.h.
5953 * config/glibc-d.cc: Likewise.
5954 * config/netbsd-d.cc: Include tm.h.
5955 * config/openbsd-d.cc: Likewise.
5956 * config/sol2-d.cc: Likewise.
5958 2022-09-08 Christophe Lyon <christophe.lyon@arm.com>
5960 * config/arm/mve.md (mve_vqshluq_n_s<mode>): Use
5961 MVE_pred/MVE_constraint instead of mve_imm_7/Ra.
5962 (mve_vqshluq_m_n_s<mode>): Likewise.
5963 (mve_vqrshrnbq_n_<supf><mode>): Use MVE_pred3/MVE_constraint3
5964 instead of mve_imm_8/Rb.
5965 (mve_vqrshrunbq_n_s<mode>): Likewise.
5966 (mve_vqrshrntq_n_<supf><mode>): Likewise.
5967 (mve_vqrshruntq_n_s<mode>): Likewise.
5968 (mve_vrshrnbq_n_<supf><mode>): Likewise.
5969 (mve_vrshrntq_n_<supf><mode>): Likewise.
5970 (mve_vqrshrnbq_m_n_<supf><mode>): Likewise.
5971 (mve_vqrshrntq_m_n_<supf><mode>): Likewise.
5972 (mve_vrshrnbq_m_n_<supf><mode>): Likewise.
5973 (mve_vrshrntq_m_n_<supf><mode>): Likewise.
5974 (mve_vqrshrunbq_m_n_s<mode>): Likewise.
5975 (mve_vsriq_n_<supf><mode): Use MVE_pred2/MVE_constraint2 instead
5976 of mve_imm_selective_upto_8/Rg.
5977 (mve_vsriq_m_n_<supf><mode>): Likewise.
5979 2022-09-08 Jiufu Guo <guojiufu@linux.ibm.com>
5981 * config/rs6000/rs6000.md (splitter for set to and_mask constants):
5982 Use int_reg_operand (instead of int_reg_operand_not_pseudo).
5983 (splitter for multi-insn constant loads): Ditto.
5985 2022-09-08 Sebastian Huber <sebastian.huber@embedded-brains.de>
5987 * config/rs6000/rtems.h (CPP_OS_DEFAULT_SPEC): Define __PPC_VRSAVE__ if
5988 -mvrsave is present.
5989 * config/rs6000/t-rtems: Add -mvrsave multilib variants for
5992 2022-09-07 Martin Liska <mliska@suse.cz>
5994 * configure.ac: Restore detection of HAVE_XCOFF_DWARF_EXTRAS.
5995 * config/rs6000/rs6000.cc (HAVE_XCOFF_DWARF_EXTRAS): Reset it.
5996 * configure: Regenerate.
5997 * config.in: Regenerate.
5999 2022-09-07 Surya Kumari Jangala <jskumari@linux.ibm.com>
6001 PR rtl-optimization/105586
6002 * sched-rgn.cc (save_state_for_fallthru_edge): New function.
6003 (schedule_region): Use it for all blocks.
6005 2022-09-07 Joseph Myers <joseph@codesourcery.com>
6007 * ginclude/stdalign.h [defined __STDC_VERSION__ &&
6008 __STDC_VERSION__ > 201710L]: Disable all content.
6009 * ginclude/stdbool.h [defined __STDC_VERSION__ && __STDC_VERSION__
6010 > 201710L] (bool, true, false): Do not define.
6012 2022-09-07 Martin Liska <mliska@suse.cz>
6015 * collect2.cc (scan_prog_file): Restore if XCOFF_DEBUGGING_INFO.
6016 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
6017 Restore usage of XCOFF_DEBUGGING_INFO.
6018 * config/rs6000/xcoff.h (XCOFF_DEBUGGING_INFO): Restore.
6019 * dwarf2asm.cc (XCOFF_DEBUGGING_INFO): Restore support for
6020 XCOFF_DEBUGGING_INFO.
6021 (dw2_asm_output_nstring): Likewise.
6022 (USE_LINKONCE_INDIRECT): Likewise.
6023 * dwarf2out.cc (XCOFF_DEBUGGING_INFO): Likewise.
6024 (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
6025 (output_fde): Likewise.
6026 (output_call_frame_info): Likewise.
6027 (have_macinfo): Likewise.
6028 (add_AT_loc_list): Likewise.
6029 (add_AT_view_list): Likewise.
6030 (output_compilation_unit_header): Likewise.
6031 (output_pubnames): Likewise.
6032 (output_aranges): Likewise.
6033 (output_line_info): Likewise.
6034 (output_macinfo): Likewise.
6035 (dwarf2out_finish): Likewise.
6036 (dwarf2out_early_finish): Likewise.
6038 2022-09-07 Richard Biener <rguenther@suse.de>
6040 PR tree-optimization/106866
6041 * tree-ssa-dce.cc (eliminate_unnecessary_stmts): When
6042 we changed cfun->calls_setjmp make sure to purge all
6043 abnormal call edges.
6045 2022-09-07 Xianmiao Qu <cooper.qu@linux.alibaba.com>
6047 * config/csky/csky.cc (csky_emit_compare_float): Fix the expanding of
6048 float LE comparing with zero for fpuv3.
6049 * config/csky/csky.h (TARGET_SUPPORT_FPV2): New, true if any fpuv2
6050 features are enabled.
6052 2022-09-07 Richard Biener <rguenther@suse.de>
6054 PR tree-optimization/106860
6055 * tree-ssa-loop-split.cc (split_loop): Find the exit to
6056 latch edge from the loop exit edge instead of from the
6057 latch. Verify we're going to find it.
6059 2022-09-07 Richard Biener <rguenther@suse.de>
6061 * gimple-predicate-analysis.cc (dfs_mark_dominating_region):
6062 Adjust to take the region exit source as argument.
6063 (uninit_analysis::init_from_phi_def): Adjust.
6064 (uninit_analysis::init_use_preds): Mark the dominating region
6065 before computing control dependences.
6067 2022-09-07 Richard Sandiford <richard.sandiford@arm.com>
6069 * config/aarch64/aarch64.md (*mov<SHORT:mode>_aarch64): Extend
6070 w<-w, r<-w and w<-r alternatives to !simd, using 32-bit moves
6071 in that case. Extend w<-r to w<-Z.
6072 (*mov<HFBF:mode>_aarch64): Likewise, but with Y instead of Z.
6073 (*movti_aarch64): Use an FMOV from XZR for w<-Z if MOVI is not
6075 (define_split): Do not apply the floating-point immediate-to-register
6076 split to zeros, even if MOVI is not available.
6078 2022-09-07 Richard Sandiford <richard.sandiford@arm.com>
6080 * config/aarch64/aarch64.cc (aarch64_conditional_register_usage):
6081 Disallow use of FPRs in register asms for !TARGET_FLOAT.
6083 2022-09-07 Lulu Cheng <chenglulu@loongson.cn>
6086 * config/loongarch/loongarch.cc (loongarch_asan_shadow_offset): New.
6087 (TARGET_ASAN_SHADOW_OFFSET): New.
6089 2022-09-07 Jakub Jelinek <jakub@redhat.com>
6091 * doc/invoke.texi (-Wno-unicode): Document.
6093 2022-09-07 Jiufu Guo <guojiufu@linux.ibm.com>
6095 * config/rs6000/rs6000.md (const_scalar_int splitter): Remove.
6097 2022-09-07 Jiufu Guo <guojiufu@linux.ibm.com>
6099 * config/rs6000/rs6000.md: (constant splitters): Use "(pc)" as the
6102 2022-09-07 liuhongt <hongtao.liu@intel.com>
6104 PR tree-optimization/103144
6105 * tree-vect-loop.cc (vect_is_nonlinear_iv_evolution): New function.
6106 (vect_analyze_scalar_cycles_1): Detect nonlinear iv by upper function.
6107 (vect_create_nonlinear_iv_init): New function.
6108 (vect_peel_nonlinear_iv_init): Ditto.
6109 (vect_create_nonlinear_iv_step): Ditto
6110 (vect_create_nonlinear_iv_vec_step): Ditto
6111 (vect_update_nonlinear_iv): Ditto
6112 (vectorizable_nonlinear_induction): Ditto.
6113 (vectorizable_induction): Call
6114 vectorizable_nonlinear_induction when induction_type is not
6116 * tree-vect-loop-manip.cc (vect_update_ivs_after_vectorizer):
6117 Update nonlinear iv for epilogue loop.
6118 * tree-vectorizer.h (enum vect_induction_op_type): New enum.
6119 (STMT_VINFO_LOOP_PHI_EVOLUTION_TYPE): New Macro.
6121 2022-09-06 Richard Biener <rguenther@suse.de>
6123 PR tree-optimization/106754
6124 * gimple-predicate-analysis.cc (compute_control_dep_chain_pdom):
6125 New function, split out from compute_control_dep_chain. Handle
6126 loop-exit like conditions here by pushing to the control vector.
6127 (compute_control_dep_chain): Adjust and streamline dumping.
6128 In the wrapper perform a post-dominator walk as well.
6129 (uninit_analysis::init_use_preds): Remove premature early exit.
6131 2022-09-06 Max Filippov <jcmvbkbc@gmail.com>
6133 * config/xtensa/linux.h (LINK_SPEC): Add static-pie.
6135 2022-09-06 Aldy Hernandez <aldyh@redhat.com>
6137 * range-op-float.cc (build_le): Handle NANs and going past infinity.
6141 (foperator_lt::op1_range): Avoid adjustments to range if build_*
6143 (foperator_lt::op2_range): Same.
6144 (foperator_le::op1_range): Same.
6145 (foperator_le::op2_range): Same.
6146 (foperator_gt::op1_range): Same.
6147 (foperator_gt::op2_range): Same.
6149 2022-09-06 Richard Biener <rguenther@suse.de>
6151 * gimple-predicate-analysis.cc (compute_control_dep_chain):
6152 Add output flag to indicate whether we possibly have dropped
6153 any chains. Return whether the info is complete from the
6155 (uninit_analysis::init_use_preds): Adjust accordingly, with
6156 a workaround for PR106754.
6157 (uninit_analysis::init_from_phi_def): Properly guard the
6158 case where we complete an empty chain.
6160 2022-09-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6162 * config/msp430/msp430.cc (msp430_single_op_cost): Document unused argument.
6164 2022-09-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6166 * tree-ssa-forwprop.cc (simplify_permutation): Set res_type to a vector
6167 type with same element type as arg0, and length as op2.
6169 2022-09-06 Richard Biener <rguenther@suse.de>
6171 PR tree-optimization/106844
6172 * gimple-predicate-analysis.cc (compute_control_dep_chain):
6173 Return whether we found a chain.
6175 2022-09-06 Richard Biener <rguenther@suse.de>
6177 PR tree-optimization/106841
6178 * tree-vect-slp.cc (vect_detect_hybrid_slp): Also process
6179 scatter/gather offset.
6181 2022-09-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6183 * config/bpf/bpf.h (REGNO_REG_CLASS): Reference arguments as (void).
6185 2022-09-06 Jakub Jelinek <jakub@redhat.com>
6187 * gimple.h (enum gf_mask): Add GF_OMP_ORDERED_STANDALONE enumerator.
6188 (gimple_omp_subcode): Use GIMPLE_OMP_ORDERED instead of
6189 GIMPLE_OMP_TEAMS as upper bound.
6190 (gimple_omp_ordered_standalone_p, gimple_omp_ordered_standalone): New
6192 * gimplify.cc (find_standalone_omp_ordered): Look for OMP_ORDERED with
6193 NULL OMP_ORDERED_BODY rather than with OMP_DOACROSS clause.
6194 (gimplify_expr): Call gimple_omp_ordered_standalone for OMP_ORDERED
6195 with NULL OMP_ORDERED_BODY.
6196 * omp-low.cc (check_omp_nesting_restrictions): Use
6197 gimple_omp_ordered_standalone_p test instead of
6198 omp_find_clause (..., OMP_CLAUSE_DOACROSS).
6199 (lower_omp_ordered): Likewise.
6200 * omp-expand.cc (expand_omp, build_omp_regions_1,
6201 omp_make_gimple_edges): Likewise.
6203 2022-09-06 Xianmiao Qu <cooper.qu@linux.alibaba.com>
6205 * config/csky/csky.md (cskyv2_addcc): Fix missing operand.
6206 (cskyv2_addcc_invert): Likewise.
6208 2022-09-06 Jose E. Marchesi <jose.marchesi@oracle.com>
6210 * config/bpf/bpf.cc (bpf_expand_prologue): Remove unused automatic
6212 (bpf_expand_epilogue): Likewise.
6214 2022-09-06 liuhongt <hongtao.liu@intel.com>
6216 * config/i386/i386-builtin.def (IX86_BUILTIN_CVTPS2PH512):
6217 Map to CODE_FOR_avx512f_vcvtps2ph512_mask_sae.
6218 * config/i386/sse.md (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Extend to ..
6219 (<mask_codefor>avx512f_vcvtps2ph512<mask_name><round_saeonly_name>): .. this.
6220 (avx512f_vcvtps2ph512_mask_sae): New expander
6222 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
6224 * gimple-range-fold.cc
6225 (fold_using_range::range_of_builtin_int_call): Ignore sign bit
6226 when there's the possibility of a NAN.
6228 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
6230 * gimple-range-fold.cc
6231 (fold_using_range::range_of_builtin_int_call): Fold a set signbit
6232 in __builtin_signbit to nonzero.
6234 2022-09-05 Alexander Monakov <amonakov@ispras.ru>
6237 * config/i386/i386.md (sse4_2_crc32di): Model that only low 32
6238 bits of operand 0 are consumed, and the result is zero-extended
6241 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
6243 PR middle-end/106831
6244 * value-range.h (frange::supports_p): Disable decimal floats.
6245 * range-op-float.cc (frange_drop_inf): Remove DECIMAL_FLOAT_MODE_P
6247 (frange_drop_ninf): Same.
6249 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
6251 PR middle-end/106824
6252 * value-range.cc (frange::set_nan): Set undefined when updating a
6255 2022-09-05 Kito Cheng <kito.cheng@sifive.com>
6257 * config/riscv/riscv.cc (riscv_option_override): Fix wrong
6258 condition for MASK_DIV and simplify incompatible checking.
6259 * config/riscv/riscv.md (muldi3): Adding parentheses.
6261 2022-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6263 * config/aarch64/aarch64.cc (aarch64_validate_march): Check if invalid arch
6264 string is a valid -mcpu string and emit hint.
6266 2022-09-05 LiaoShihua <shihua@iscas.ac.cn>
6268 * common/config/riscv/riscv-common.cc: Add Zmmul.
6269 * config/riscv/riscv-opts.h (MASK_ZMMUL): New.
6270 (TARGET_ZMMUL): Ditto.
6271 * config/riscv/riscv.cc (riscv_option_override):Ditto.
6272 * config/riscv/riscv.md: Add Zmmul
6273 * config/riscv/riscv.opt: Ditto.
6275 2022-09-05 Richard Biener <rguenther@suse.de>
6277 * tree-cfg.h (get_cases_for_edge): Declare.
6278 * tree-cfg.cc (get_cases_for_edge): Export.
6279 * tree-ssa-uninit.cc (execute_late_warn_uninitialized):
6280 Start and end recording case labels.
6281 * gimple-predicate-analysis.cc (MAX_SWITCH_CASES): Remove.
6282 (predicate::init_from_control_deps): Use get_cases_for_edge.
6284 2022-09-05 Richard Biener <rguenther@suse.de>
6286 * gimple-predicate-analysis.cc (MAX_POSTDOM_CHECK): Remove.
6287 (compute_control_dep_chain): Move uninit-control-dep-attempts
6288 checking where it also counts the post-dominator check
6291 2022-09-05 Richard Biener <rguenther@suse.de>
6293 * gimple-predicate-analysis.h (predicate::debug): New.
6294 (predicate::dump): Add FILE * argument, add base overload.
6295 * gimple-predicate-analysis.cc (debug): New.
6296 (dump_pred_info): Add FILE * argument.
6297 (dump_pred_chain): Likewise.
6298 (predicate::dump): Split out preamble into overload. Add
6300 (predicate::debug): New.
6301 (predicate::simplify): Adjust.
6302 (predicate::normalize): Likewise.
6303 (predicate::init_from_control_deps): Likewise.
6305 2022-09-05 Richard Sandiford <richard.sandiford@arm.com>
6307 * config/aarch64/aarch64-protos.h
6308 (aarch64_init_simd_builtins): Remove prototype.
6309 * config/aarch64/aarch64-builtins.cc
6310 (aarch64_simd_builtins_initialized_p): Delete.
6311 (aarch64_init_simd_builtins): Make static. Remove protection
6312 against multiple calls.
6313 * config/aarch64/aarch64-c.cc (aarch64_pragma_target_parse): Remove
6314 lazy SIMD builtin initialization.
6315 * config/aarch64/aarch64.cc
6316 (aarch64_option_valid_attribute_p): Likewise.
6318 2022-09-05 Xi Ruoyao <xry111@xry111.site>
6320 * config/loongarch/genopts/loongarch.opt.in: Add
6321 -mdirect-extern-access option.
6322 * config/loongarch/loongarch.opt: Regenerate.
6323 * config/loongarch/loongarch.cc
6324 (loongarch_symbol_binds_local_p): Return true if
6325 TARGET_DIRECT_EXTERN_ACCESS.
6326 (loongarch_option_override_internal): Complain if
6327 -mdirect-extern-access is used with -fPIC or -fpic.
6328 * doc/invoke.texi: Document -mdirect-extern-access for
6331 2022-09-05 Martin Liska <mliska@suse.cz>
6333 * doc/tm.texi.in: Rename DEBUGGER_REGISTER_NUMBER to
6335 * doc/tm.texi: Regenerate.
6337 2022-09-05 Martin Liska <mliska@suse.cz>
6339 * config/aarch64/aarch64-protos.h (aarch64_dbx_regno):
6340 Rename DBX_REGISTER_NUMBER to DEBUGGER_REGNO.
6341 (aarch64_debugger_regno): Likewise.
6342 * config/aarch64/aarch64.cc (aarch64_dbx_regno): Likewise.
6343 (aarch64_debugger_regno): Likewise.
6344 * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise.
6345 (DEBUGGER_REGNO): Likewise.
6346 (DWARF_FRAME_REGNUM): Likewise.
6347 * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Likewise.
6348 * config/arc/arc.cc (arc_init_reg_tables): Likewise.
6349 * config/arc/arc.h (DBX_REGISTER_NUMBER): Likewise.
6350 (DEBUGGER_REGNO): Likewise.
6351 * config/arm/arm-protos.h (arm_dbx_regno): Likewise.
6352 (arm_debugger_regno): Likewise.
6353 * config/arm/arm.cc (arm_dbx_regno): Likewise.
6354 (arm_debugger_regno): Likewise.
6355 * config/arm/arm.h (DBX_REGISTER_NUMBER): Likewise.
6356 (DEBUGGER_REGNO): Likewise.
6357 * config/bfin/bfin.h (DBX_REGISTER_NUMBER): Likewise.
6358 (DEBUGGER_REGNO): Likewise.
6359 * config/c6x/c6x.cc: Likewise.
6360 * config/c6x/c6x.h (DBX_REGISTER_NUMBER): Likewise.
6361 (DEBUGGER_REGNO): Likewise.
6362 * config/cris/cris.h (enum reg_class): Likewise.
6363 (DBX_REGISTER_NUMBER): Likewise.
6364 (DEBUGGER_REGNO): Likewise.
6365 * config/csky/csky.cc (enum reg_class): Likewise.
6366 * config/csky/csky.h (DWARF_FRAME_REGNUM): Likewise.
6367 (DBX_REGISTER_NUMBER): Likewise.
6368 (DEBUGGER_REGNO): Likewise.
6369 * config/frv/frv.h (DBX_REGISTER_NUMBER): Likewise.
6370 (DEBUGGER_REGNO): Likewise.
6371 * config/gcn/gcn-hsa.h (DBX_REGISTER_NUMBER): Likewise.
6372 (DEBUGGER_REGNO): Likewise.
6373 * config/gcn/gcn.cc (print_operand): Likewise.
6374 * config/i386/bsd.h (ASM_QUAD): Likewise.
6375 * config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise.
6376 (DEBUGGER_REGNO): Likewise.
6377 (DWARF_FRAME_REGNUM): Likewise.
6378 * config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise.
6379 (DEBUGGER_REGNO): Likewise.
6380 * config/i386/djgpp.h (DBX_REGISTER_NUMBER): Likewise.
6381 (DEBUGGER_REGNO): Likewise.
6382 * config/i386/dragonfly.h (DBX_REGISTER_NUMBER): Likewise.
6383 (DEBUGGER_REGNO): Likewise.
6384 * config/i386/freebsd.h (DBX_REGISTER_NUMBER): Likewise.
6385 (DEBUGGER_REGNO): Likewise.
6386 * config/i386/gas.h: Likewise.
6387 * config/i386/gnu-user.h (DBX_REGISTER_NUMBER): Likewise.
6388 (DEBUGGER_REGNO): Likewise.
6389 * config/i386/i386.cc (enum reg_class): Likewise.
6390 * config/i386/i386.h (DBX_REGISTER_NUMBER): Likewise.
6391 (DEBUGGER_REGNO): Likewise.
6392 * config/i386/i386elf.h (DBX_REGISTER_NUMBER): Likewise.
6393 (DEBUGGER_REGNO): Likewise.
6394 * config/i386/iamcu.h (DBX_REGISTER_NUMBER): Likewise.
6395 (DEBUGGER_REGNO): Likewise.
6396 * config/i386/lynx.h (DBX_REGISTER_NUMBER): Likewise.
6397 (DEBUGGER_REGNO): Likewise.
6398 * config/i386/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
6399 (DEBUGGER_REGNO): Likewise.
6400 * config/i386/nto.h (DBX_REGISTER_NUMBER): Likewise.
6401 (DEBUGGER_REGNO): Likewise.
6402 * config/i386/openbsdelf.h (DBX_REGISTER_NUMBER): Likewise.
6403 (DEBUGGER_REGNO): Likewise.
6404 * config/i386/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
6405 (DEBUGGER_REGNO): Likewise.
6406 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Likewise.
6407 (DEBUGGER_REGNO): Likewise.
6408 * config/i386/x86-64.h (DBX_REGISTER_NUMBER): Likewise.
6409 (DEBUGGER_REGNO): Likewise.
6410 * config/ia64/ia64-protos.h (ia64_dbx_regno): Likewise.
6411 (ia64_debugger_regno): Likewise.
6412 * config/ia64/ia64.cc (ia64_output_function_prologue): Likewise.
6413 (ia64_dbx_regno): Likewise.
6414 (ia64_debugger_regno): Likewise.
6415 (process_cfa_adjust_cfa): Likewise.
6416 (process_cfa_register): Likewise.
6417 (ia64_asm_unwind_emit): Likewise.
6418 * config/ia64/ia64.h: Likewise.
6419 * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
6420 (DEBUGGER_REGNO): Likewise.
6421 * config/lm32/lm32.h (DBX_REGISTER_NUMBER): Likewise.
6422 (DEBUGGER_REGNO): Likewise.
6423 * config/m32c/m32c.cc (m32c_eh_return_stackadj_rtx): Likewise.
6424 * config/m32c/m32c.h (DBX_REGISTER_NUMBER): Likewise.
6425 (DEBUGGER_REGNO): Likewise.
6426 * config/m68k/linux.h (DBX_REGISTER_NUMBER): Likewise.
6427 (DEBUGGER_REGNO): Likewise.
6428 * config/m68k/m68k.h (DBX_REGISTER_NUMBER): Likewise.
6429 (DEBUGGER_REGNO): Likewise.
6430 (__transfer_from_trampoline): Likewise.
6431 * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Likewise.
6432 (DEBUGGER_REGNO): Likewise.
6433 * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
6434 (DBX_REGISTER_NUMBER): Likewise.
6435 (DEBUGGER_REGNO): Likewise.
6436 * config/microblaze/microblaze.cc (microblaze_option_override): Likewise.
6437 * config/microblaze/microblaze.h (DBX_REGISTER_NUMBER): Likewise.
6438 (DEBUGGER_REGNO): Likewise.
6439 (GP_DBX_FIRST): Likewise.
6440 (GP_DEBUGGER_FIRST): Likewise.
6441 * config/mips/vxworks.h (DBX_REGISTER_NUMBER): Likewise.
6442 (DEBUGGER_REGNO): Likewise.
6443 * config/mmix/mmix-protos.h (mmix_dbx_regno): Likewise.
6444 (mmix_debugger_regno): Likewise.
6445 * config/mmix/mmix.cc (mmix_dbx_regno): Likewise.
6446 (mmix_debugger_regno): Likewise.
6447 * config/mmix/mmix.h (DBX_REGISTER_NUMBER): Likewise.
6448 (DEBUGGER_REGNO): Likewise.
6449 * config/nds32/nds32-protos.h (nds32_dbx_regno): Likewise.
6450 (nds32_debugger_regno): Likewise.
6451 * config/nds32/nds32.cc (nds32_dbx_regno): Likewise.
6452 (nds32_debugger_regno): Likewise.
6453 (nds32_use_blocks_for_constant_p): Likewise.
6454 * config/nds32/nds32.h (DBX_REGISTER_NUMBER): Likewise.
6455 (DEBUGGER_REGNO): Likewise.
6456 * config/nvptx/nvptx.h (DBX_REGISTER_NUMBER): Likewise.
6457 (DEBUGGER_REGNO): Likewise.
6458 * config/or1k/or1k.h (DBX_REGISTER_NUMBER): Likewise.
6459 (DEBUGGER_REGNO): Likewise.
6460 * config/pa/pa32-regs.h (DBX_REGISTER_NUMBER): Likewise.
6461 (DEBUGGER_REGNO): Likewise.
6462 * config/pa/pa64-regs.h (DBX_REGISTER_NUMBER): Likewise.
6463 (DEBUGGER_REGNO): Likewise.
6464 * config/rs6000/rs6000-protos.h (rs6000_dbx_regno): Likewise.
6465 (rs6000_debugger_regno): Likewise.
6466 * config/rs6000/rs6000.cc (rs6000_dbx_regno): Likewise.
6467 (rs6000_debugger_regno): Likewise.
6468 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Likewise.
6469 (DEBUGGER_REGNO): Likewise.
6470 (DWARF2_FRAME_REG_OUT): Likewise.
6471 * config/s390/s390.h (DBX_REGISTER_NUMBER): Likewise.
6472 (DEBUGGER_REGNO): Likewise.
6473 * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
6474 (DEBUGGER_REGNO): Likewise.
6475 * config/sh/linux.h (DBX_REGISTER_NUMBER): Likewise.
6476 (DEBUGGER_REGNO): Likewise.
6477 * config/sh/sh.h (DBX_REGISTER_NUMBER): Likewise.
6478 (DEBUGGER_REGNO): Likewise.
6479 (SH_DBX_REGISTER_NUMBER): Likewise.
6480 (SH_DEBUGGER_REGNO): Likewise.
6481 * config/visium/visium.h (DBX_REGISTER_NUMBER): Likewise.
6482 (DEBUGGER_REGNO): Likewise.
6483 * config/xtensa/elf.h (DBX_REGISTER_NUMBER): Likewise.
6484 (DEBUGGER_REGNO): Likewise.
6485 * config/xtensa/linux.h (DBX_REGISTER_NUMBER): Likewise.
6486 (DEBUGGER_REGNO): Likewise.
6487 * config/xtensa/uclinux.h (DBX_REGISTER_NUMBER): Likewise.
6488 (DEBUGGER_REGNO): Likewise.
6489 * config/xtensa/xtensa-protos.h (xtensa_dbx_regno): Likewise.
6490 (xtensa_debugger_regno): Likewise.
6491 * config/xtensa/xtensa.cc (xtensa_dbx_regno): Likewise.
6492 (xtensa_debugger_regno): Likewise.
6493 * config/xtensa/xtensa.h (DBX_REGISTER_NUMBER): Likewise.
6494 (DEBUGGER_REGNO): Likewise.
6495 * defaults.h (DBX_REGISTER_NUMBER): Likewise.
6496 (DEBUGGER_REGNO): Likewise.
6497 (DWARF_FRAME_REGNUM): Likewise.
6498 * doc/tm.texi: Likewise.
6499 * doc/tm.texi.in: Likewise.
6500 * dwarf2out.cc (dbx_reg_number): Likewise.
6501 (debugger_reg_number): Likewise.
6502 (reg_loc_descriptor): Likewise.
6503 (multiple_reg_loc_descriptor): Likewise.
6504 (mem_loc_descriptor): Likewise.
6505 * except.cc: Likewise.
6507 2022-09-05 konglin1 <lingling.kong@intel.com>
6510 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
6512 (expand_vec_perm_broadcast_1): Ditto.
6513 * config/i386/sse.md (avx512fmaskhalfmode): Add BF vector mode.
6514 (vec_set<mode>_0): Add @ to it.
6515 (@vec_set<mode>_0): Ditto.
6516 (vec_interleave_high<mode><mask_name>): Ditto.
6517 (@vec_interleave_high<mode><mask_name>): Ditto.
6518 (vec_interleave_low<mode><mask_name>): Ditto.
6519 (@vec_interleave_low<mode><mask_name>): Ditto.
6520 * config/i386/subst.md (SUBST_V): Add BF vector mode.
6522 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
6524 * value-range.cc (early_nan_resolve): Remove.
6525 (frange::intersect): Handle NANs.
6527 2022-09-04 Aldy Hernandez <aldyh@redhat.com>
6529 * value-range.cc (frange::union_): Do not drop properties when
6530 unioning a NAN with something else.
6531 (range_tests_signed_zeros): Add tests.
6533 2022-09-04 Aldy Hernandez <aldyh@redhat.com>
6535 * real.cc (encode_ieee_single): Use real_isdenormal.
6536 (encode_ieee_double): Same.
6537 (encode_ieee_extended): Same.
6538 (encode_ieee_quad): Same.
6539 (encode_ieee_half): Same.
6540 (encode_arm_bfloat_half): Same.
6541 * real.h (real_isdenormal): New.
6543 2022-09-03 Aldy Hernandez <aldyh@redhat.com>
6545 * value-range.cc (frange::singleton_p): Move NAN check to the top.
6547 2022-09-03 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6549 * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): Reference macro arguments.
6551 2022-09-03 Jakub Jelinek <jakub@redhat.com>
6553 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DOACROSS.
6554 (enum omp_clause_depend_kind): Remove OMP_CLAUSE_DEPEND_SOURCE
6555 and OMP_CLAUSE_DEPEND_SINK, add OMP_CLAUSE_DEPEND_INVALID.
6556 (enum omp_clause_doacross_kind): New type.
6557 (struct tree_omp_clause): Add subcode.doacross_kind member.
6558 * tree.h (OMP_CLAUSE_DEPEND_SINK_NEGATIVE): Remove.
6559 (OMP_CLAUSE_DOACROSS_KIND): Define.
6560 (OMP_CLAUSE_DOACROSS_SINK_NEGATIVE): Define.
6561 (OMP_CLAUSE_DOACROSS_DEPEND): Define.
6562 (OMP_CLAUSE_ORDERED_DOACROSS): Define.
6563 * tree.cc (omp_clause_num_ops, omp_clause_code_name): Add
6564 OMP_CLAUSE_DOACROSS entries.
6565 * tree-nested.cc (convert_nonlocal_omp_clauses,
6566 convert_local_omp_clauses): Handle OMP_CLAUSE_DOACROSS.
6567 * tree-pretty-print.cc (dump_omp_clause): Don't handle
6568 OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK. Handle
6569 OMP_CLAUSE_DOACROSS.
6570 * gimplify.cc (gimplify_omp_depend): Don't handle
6571 OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK.
6572 (gimplify_scan_omp_clauses): Likewise. Handle OMP_CLAUSE_DOACROSS.
6573 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_DOACROSS.
6574 (find_standalone_omp_ordered): New function.
6575 (gimplify_omp_for): When OMP_CLAUSE_ORDERED is present, search
6576 body for OMP_ORDERED with OMP_CLAUSE_DOACROSS and if found,
6577 set OMP_CLAUSE_ORDERED_DOACROSS.
6578 (gimplify_omp_ordered): Don't handle OMP_CLAUSE_DEPEND_SINK or
6579 OMP_CLAUSE_DEPEND_SOURCE, instead check OMP_CLAUSE_DOACROSS, adjust
6580 diagnostics that presence or absence of ordered clause parameter
6581 is irrelevant. Handle doacross(sink:omp_cur_iteration-1). Use
6582 actual user name of the clause - doacross or depend - in diagnostics.
6583 * omp-general.cc (omp_extract_for_data): Don't set fd->ordered
6584 if !OMP_CLAUSE_ORDERED_DOACROSS (t). If
6585 OMP_CLAUSE_ORDERED_DOACROSS (t) but !OMP_CLAUSE_ORDERED_EXPR (t),
6586 set fd->ordered to -1 and set it after the loop in that case to
6588 * omp-low.cc (check_omp_nesting_restrictions): Don't handle
6589 OMP_CLAUSE_DEPEND_SOURCE nor OMP_CLAUSE_DEPEND_SINK, instead check
6590 OMP_CLAUSE_DOACROSS. Use actual user name of the clause - doacross
6591 or depend - in diagnostics. Diagnose mixing of stand-alone and
6592 block associated ordered constructs binding to the same loop.
6593 (lower_omp_ordered_clauses): Don't handle OMP_CLAUSE_DEPEND_SINK,
6594 instead handle OMP_CLAUSE_DOACROSS.
6595 (lower_omp_ordered): Look for OMP_CLAUSE_DOACROSS instead of
6597 (lower_depend_clauses): Don't handle OMP_CLAUSE_DEPEND_SOURCE and
6598 OMP_CLAUSE_DEPEND_SINK.
6599 * omp-expand.cc (expand_omp_ordered_sink): Emit a sorry for
6600 doacross(sink:omp_cur_iteration-1).
6601 (expand_omp_ordered_source_sink): Use
6602 OMP_CLAUSE_DOACROSS_SINK_NEGATIVE instead of
6603 OMP_CLAUSE_DEPEND_SINK_NEGATIVE. Use actual user name of the clause
6604 - doacross or depend - in diagnostics.
6605 (expand_omp): Look for OMP_CLAUSE_DOACROSS clause instead of
6607 (build_omp_regions_1): Likewise.
6608 (omp_make_gimple_edges): Likewise.
6609 * lto-streamer-out.cc (hash_tree): Handle OMP_CLAUSE_DOACROSS.
6610 * tree-streamer-in.cc (unpack_ts_omp_clause_value_fields): Likewise.
6611 * tree-streamer-out.cc (pack_ts_omp_clause_value_fields): Likewise.
6613 2022-09-02 David Malcolm <dmalcolm@redhat.com>
6616 * doc/invoke.texi (Warning Options): Add -Wxor-used-as-pow.
6618 2022-09-02 Iain Buclaw <ibuclaw@gdcproject.org>
6621 * config.gcc: Set tm_d_file to ${cpu_type}/${cpu_type}-d.h.
6622 * config/aarch64/aarch64-d.cc: Include tm_d.h.
6623 * config/aarch64/aarch64-protos.h (aarch64_d_target_versions): Move to
6624 config/aarch64/aarch64-d.h.
6625 (aarch64_d_register_target_info): Likewise.
6626 * config/aarch64/aarch64.h (TARGET_D_CPU_VERSIONS): Likewise.
6627 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
6628 * config/arm/arm-d.cc: Include tm_d.h and arm-protos.h instead of
6630 * config/arm/arm-protos.h (arm_d_target_versions): Move to
6632 (arm_d_register_target_info): Likewise.
6633 * config/arm/arm.h (TARGET_D_CPU_VERSIONS): Likewise.
6634 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
6635 * config/default-d.cc: Remove memmodel.h include.
6636 * config/freebsd-d.cc: Include tm_d.h instead of tm_p.h.
6637 * config/glibc-d.cc: Likewise.
6638 * config/i386/i386-d.cc: Include tm_d.h.
6639 * config/i386/i386-protos.h (ix86_d_target_versions): Move to
6640 config/i386/i386-d.h.
6641 (ix86_d_register_target_info): Likewise.
6642 (ix86_d_has_stdcall_convention): Likewise.
6643 * config/i386/i386.h (TARGET_D_CPU_VERSIONS): Likewise.
6644 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
6645 (TARGET_D_HAS_STDCALL_CONVENTION): Likewise.
6646 * config/i386/winnt-d.cc: Include tm_d.h instead of tm_p.h.
6647 * config/mips/mips-d.cc: Include tm_d.h.
6648 * config/mips/mips-protos.h (mips_d_target_versions): Move to
6649 config/mips/mips-d.h.
6650 (mips_d_register_target_info): Likewise.
6651 * config/mips/mips.h (TARGET_D_CPU_VERSIONS): Likewise.
6652 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
6653 * config/netbsd-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
6654 * config/openbsd-d.cc: Likewise.
6655 * config/pa/pa-d.cc: Include tm_d.h.
6656 * config/pa/pa-protos.h (pa_d_target_versions): Move to
6658 (pa_d_register_target_info): Likewise.
6659 * config/pa/pa.h (TARGET_D_CPU_VERSIONS): Likewise.
6660 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
6661 * config/riscv/riscv-d.cc: Include tm_d.h.
6662 * config/riscv/riscv-protos.h (riscv_d_target_versions): Move to
6663 config/riscv/riscv-d.h.
6664 (riscv_d_register_target_info): Likewise.
6665 * config/riscv/riscv.h (TARGET_D_CPU_VERSIONS): Likewise.
6666 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
6667 * config/rs6000/rs6000-d.cc: Include tm_d.h.
6668 * config/rs6000/rs6000-protos.h (rs6000_d_target_versions): Move to
6669 config/rs6000/rs6000-d.h.
6670 (rs6000_d_register_target_info): Likewise.
6671 * config/rs6000/rs6000.h (TARGET_D_CPU_VERSIONS) Likewise.:
6672 (TARGET_D_REGISTER_CPU_TARGET_INFO) Likewise.:
6673 * config/s390/s390-d.cc: Include tm_d.h.
6674 * config/s390/s390-protos.h (s390_d_target_versions): Move to
6675 config/s390/s390-d.h.
6676 (s390_d_register_target_info): Likewise.
6677 * config/s390/s390.h (TARGET_D_CPU_VERSIONS): Likewise.
6678 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
6679 * config/sol2-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
6680 * config/sparc/sparc-d.cc: Include tm_d.h.
6681 * config/sparc/sparc-protos.h (sparc_d_target_versions): Move to
6682 config/sparc/sparc-d.h.
6683 (sparc_d_register_target_info): Likewise.
6684 * config/sparc/sparc.h (TARGET_D_CPU_VERSIONS): Likewise.
6685 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
6686 * configure: Regenerate.
6687 * configure.ac (tm_d_file): Remove defaults.h.
6688 (tm_d_include_list): Remove options.h and insn-constants.h.
6689 * config/aarch64/aarch64-d.h: New file.
6690 * config/arm/arm-d.h: New file.
6691 * config/i386/i386-d.h: New file.
6692 * config/mips/mips-d.h: New file.
6693 * config/pa/pa-d.h: New file.
6694 * config/riscv/riscv-d.h: New file.
6695 * config/rs6000/rs6000-d.h: New file.
6696 * config/s390/s390-d.h: New file.
6697 * config/sparc/sparc-d.h: New file.
6699 2022-09-02 Aldy Hernandez <aldyh@redhat.com>
6701 * builtins.cc (fold_builtin_inf): Convert use of real_info to dconstinf.
6702 (fold_builtin_fpclassify): Same.
6703 * fold-const-call.cc (fold_const_call_cc): Same.
6705 * omp-low.cc (omp_reduction_init_op): Same.
6706 * realmpfr.cc (real_from_mpfr): Same.
6707 * tree.cc (build_complex_inf): Same.
6709 2022-09-02 Peter Bergner <bergner@linux.ibm.com>
6711 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin): Use
6712 NOP_EXPR for MMA pointer casting.
6714 2022-09-02 Richard Sandiford <richard.sandiford@arm.com>
6716 * tree-vect-slp.cc (vect_optimize_slp_pass::internal_node_cost):
6717 Reduce the fallback cost to 1. Only use it if the number of
6718 input lanes is equal to the number of output lanes.
6720 2022-09-02 Richard Sandiford <richard.sandiford@arm.com>
6722 PR tree-optimization/106787
6723 * tree-vect-slp.cc (vect_map_to_instance): New function, split out
6725 (vect_bb_partition_graph_r): ...here. Replace the visited set
6726 with a map from nodes to instances. Ensure that a node only
6727 appears in one partition.
6728 (vect_bb_partition_graph): Update accordingly.
6730 2022-09-02 Richard Biener <rguenther@suse.de>
6732 * timevar.def (TV_TREE_RPO_VN): New.
6733 * tree-ssa-sccvn.h (do_rpo_vn): Remove one overload.
6734 * tree-ssa-sccvn.cc (do_rpo_vn_1): Rename the worker.
6735 (do_rpo_vn): Unify the public API, track with TV_TREE_RPO_VN.
6736 (pass_fre::execute): Adjust.
6737 * tree-ssa-uninit.cc (execute_early_warn_uninitialized): Adjust.
6739 2022-09-02 Richard Biener <rguenther@suse.de>
6741 PR tree-optimization/106809
6742 * tree-ssa-sccvn.cc (dominaged_by_p_w_unex): Check we have
6743 more than one successor before doing extra work.
6745 2022-09-02 Kito Cheng <kito.cheng@sifive.com>
6747 * common/config/riscv/riscv-common.cc: Include <vector>.
6748 (struct riscv_multi_lib_info_t): New.
6749 (riscv_subset_list::match_score): Ditto.
6750 (find_last_appear_switch): Ditto.
6751 (prefixed_with): Ditto.
6752 (struct multi_lib_info_t): Ditto.
6753 (riscv_current_arch_str): Ditto.
6754 (riscv_current_abi_str): Ditto.
6755 (riscv_multi_lib_info_t::parse): Ditto.
6756 (riscv_check_cond): Ditto.
6757 (riscv_check_conds): Ditto.
6758 (riscv_compute_multilib): Ditto.
6759 (TARGET_COMPUTE_MULTILIB): Defined.
6760 * config/riscv/elf.h (LIB_SPEC): Call riscv_multi_lib_check if
6762 (RISCV_USE_CUSTOMISED_MULTI_LIB): New.
6763 * config/riscv/riscv.h (riscv_multi_lib_check): New.
6764 (EXTRA_SPEC_FUNCTIONS): Add riscv_multi_lib_check.
6765 * config/riscv/riscv-subset.h (riscv_subset_list::match_score): New.
6767 2022-09-02 Kito Cheng <kito.cheng@sifive.com>
6769 * common/common-target.def (compute_multilib): New.
6770 * common/common-targhooks.h (default_compute_multilib): New.
6771 * common/common-targhooks.cc (default_compute_multilib): New.
6772 * doc/tm.texi.in (TARGET_COMPUTE_MULTILIB): New.
6773 * doc/tm.texi: Regen.
6774 * gcc.cc: Include common/common-target.h.
6775 (set_multilib_dir) Call targetm_common.compute_multilib.
6776 (SWITCH_LIVE): Move to opts.h.
6777 (SWITCH_FALSE): Ditto.
6778 (SWITCH_IGNORE): Ditto.
6779 (SWITCH_IGNORE_PERMANENTLY): Ditto.
6780 (SWITCH_KEEP_FOR_GCC): Ditto.
6781 (struct switchstr): Ditto.
6782 * opts.h (SWITCH_LIVE): Move from gcc.c.
6783 (SWITCH_FALSE): Ditto.
6784 (SWITCH_IGNORE): Ditto.
6785 (SWITCH_IGNORE_PERMANENTLY): Ditto.
6786 (SWITCH_KEEP_FOR_GCC): Ditto.
6787 (struct switchstr): Ditto.
6789 2022-09-02 Martin Liska <mliska@suse.cz>
6791 * config/pdp11/pdp11.h (PREFERRED_DEBUGGING_TYPE): Disable
6794 2022-09-02 Martin Liska <mliska@suse.cz>
6796 * Makefile.in: Remove -gstabs option support, DBX-related
6797 macros and DBX debugging info support.
6798 * collect2.cc (scan_prog_file): Likewise.
6799 * common.opt: Likewise.
6800 * config.gcc: Likewise.
6801 * config.in: Likewise.
6802 * config/aarch64/aarch64-elf.h (DBX_DEBUGGING_INFO): Likewise.
6803 * config/alpha/alpha.cc: Likewise.
6804 * config/alpha/elf.h (ASM_SPEC): Likewise.
6805 * config/arc/arc.h (DBX_DEBUGGING_INFO): Likewise.
6806 (DBX_CONTIN_LENGTH): Likewise.
6807 * config/arm/aout.h (DBX_DEBUGGING_INFO): Likewise.
6808 (DBX_CONTIN_LENGTH): Likewise.
6809 * config/arm/netbsd-elf.h (DBX_CONTIN_LENGTH): Likewise.
6810 * config/darwin.h (DSYMUTIL_SPEC): Likewise.
6811 (ASM_DEBUG_SPEC): Likewise.
6812 (DBX_DEBUGGING_INFO): Likewise.
6813 (DBX_USE_BINCL): Likewise.
6814 (DBX_CONTIN_LENGTH): Likewise.
6815 (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
6816 * config/epiphany/epiphany.h (DBX_DEBUGGING_INFO): Likewise.
6817 (DBX_CONTIN_LENGTH): Likewise.
6818 * config/i386/bsd.h (DBX_NO_XREFS): Likewise.
6819 (DBX_CONTIN_LENGTH): Likewise.
6820 * config/i386/gas.h (DBX_NO_XREFS): Likewise.
6821 (DBX_CONTIN_LENGTH): Likewise.
6822 * config/ia64/ia64.h: Likewise.
6823 * config/ia64/sysv4.h (DBX_DEBUGGING_INFO): Likewise.
6824 * config/m68k/linux.h (DBX_CONTIN_LENGTH): Likewise.
6825 * config/m68k/openbsd.h (DBX_DEBUGGING_INFO): Likewise.
6826 (DBX_CONTIN_LENGTH): Likewise.
6827 (DBX_CONTIN_CHAR): Likewise.
6828 * config/mips/mips.cc (mips_output_filename): Likewise.
6829 (mips_option_override): Likewise.
6830 * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Likewise.
6831 (DBX_DEBUGGING_INFO): Likewise.
6832 (DBX_CONTIN_LENGTH): Likewise.
6833 (DBX_REGISTER_NUMBER): Likewise.
6834 (GP_DBX_FIRST): Likewise.
6835 (FP_DBX_FIRST): Likewise.
6836 (MD_DBX_FIRST): Likewise.
6837 * config/nvptx/nvptx.cc: Likewise.
6838 * config/openbsd.h (DBX_NO_XREFS): Likewise.
6839 * config/pa/pa-64.h (DBX_DEBUGGING_INFO): Likewise.
6840 * config/pa/pa.h (ASSEMBLER_DIALECT): Likewise.
6841 (DBX_CONTIN_LENGTH): Likewise.
6842 * config/pa/som.h (PREFERRED_DEBUGGING_TYPE): Likewise.
6843 (DBX_USE_BINCL): Likewise.
6844 (DBX_LINES_FUNCTION_RELATIVE): Likewise.
6845 (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
6846 * config/pdp11/pdp11.cc: Likewise.
6847 * config/pdp11/pdp11.h (DBX_DEBUGGING_INFO): Likewise.
6848 (PREFERRED_DEBUGGING_TYPE): Likewise.
6849 (DBX_CONTIN_LENGTH): Likewise.
6850 * config/rs6000/rs6000-builtin.cc: Likewise.
6851 * config/rs6000/rs6000-call.cc: Likewise.
6852 * config/rs6000/rs6000-logue.cc (defined): Likewise.
6853 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
6854 (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
6855 (rs6000_xcoff_declare_function_name): Likewise.
6856 * config/rs6000/sysv4.h (DBX_DEBUGGING_INFO): Likewise.
6857 (DBX_FUNCTION_FIRST): Likewise.
6858 * config/rs6000/xcoff.h (XCOFF_DEBUGGING_INFO): Likewise.
6859 * config/rx/rx.h (DBX_DEBUGGING_INFO): Likewise.
6860 * config/sh/elf.h (DBX_LINES_FUNCTION_RELATIVE): Likewise.
6861 (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
6862 * config/sol2.h (NO_DBX_BNSYM_ENSYM): Likewise.
6863 * config/sparc/freebsd.h (DBX_CONTIN_CHAR): Likewise.
6864 * config/sparc/netbsd-elf.h (DBX_CONTIN_CHAR): Likewise.
6865 * config/sparc/sparc.h (DBX_CONTIN_LENGTH): Likewise.
6866 * config/vax/vax.cc (vax_file_start): Likewise.
6867 * config/vax/vax.h (DBX_DEBUGGING_INFO): Likewise.
6868 (DBX_CONTIN_LENGTH): Likewise.
6869 (DBX_CONTIN_CHAR): Likewise.
6870 (DBX_NO_XREFS): Likewise.
6871 (DBX_STATIC_STAB_DATA_SECTION): Likewise.
6872 * config/vx-common.h (DBX_DEBUGGING_INFO): Likewise.
6873 (XCOFF_DEBUGGING_INFO): Likewise.
6874 * configure: Regenerate. Likewise.
6875 * configure.ac: Likewise.
6876 * debug.h: Likewise.
6877 * doc/install.texi: Likewise.
6878 * doc/invoke.texi: Likewise.
6879 * doc/passes.texi: Likewise.
6880 * doc/tm.texi: Likewise.
6881 * doc/tm.texi.in: Likewise.
6882 * dwarf2asm.cc (XCOFF_DEBUGGING_INFO): Likewise.
6883 (dw2_asm_output_nstring): Likewise.
6884 (USE_LINKONCE_INDIRECT): Likewise.
6885 * dwarf2out.cc (XCOFF_DEBUGGING_INFO): Likewise.
6886 (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
6887 (output_fde): Likewise.
6888 (output_call_frame_info): Likewise.
6889 (have_macinfo): Likewise.
6890 (add_AT_loc_list): Likewise.
6891 (add_AT_view_list): Likewise.
6892 (output_compilation_unit_header): Likewise.
6893 (output_pubnames): Likewise.
6894 (output_aranges): Likewise.
6895 (output_line_info): Likewise.
6896 (output_macinfo): Likewise.
6897 (dwarf2out_finish): Likewise.
6898 (dwarf2out_early_finish): Likewise.
6899 * final.cc (final_scan_insn_1): Likewise.
6900 (rest_of_handle_final): Likewise.
6901 * flag-types.h (enum debug_info_type): Likewise.
6902 (DBX_DEBUG): Likewise.
6903 (XCOFF_DEBUG): Likewise.
6904 * function.cc (defined): Likewise.
6905 * gcc.cc (defined): Likewise.
6906 (ASM_DEBUG_SPEC): Likewise.
6907 (ASM_DEBUG_OPTION_SPEC): Likewise.
6908 * opts.cc (common_handle_option): Likewise.
6909 (set_debug_level): Likewise.
6910 * system.h (fancy_abort): Likewise.
6911 * target-def.h (TARGET_ASM_CONSTRUCTOR): Likewise.
6912 (TARGET_ASM_DESTRUCTOR): Likewise.
6913 * toplev.cc (defined): Likewise.
6914 * varasm.cc: Likewise.
6915 * config/dbxcoff.h: Removed.
6916 * config/dbxelf.h: Removed.
6917 * dbxout.cc: Removed.
6918 * dbxout.h: Removed.
6920 * stab.def: Removed.
6921 * xcoffout.cc: Removed.
6922 * xcoffout.h: Removed.
6924 2022-09-02 Simon Rainer <gcc.gnu@vvalter.com>
6927 * config/i386/i386-features.cc (ix86_get_function_versions_dispatcher):
6928 Set TREE_NOTHROW correctly for dispatcher declaration.
6929 * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
6932 2022-09-01 Tamar Christina <tamar.christina@arm.com>
6935 * config/aarch64/aarch64.cc
6936 (aarch64_vector_costs::prefer_unrolled_loop): Replace %u with
6937 HOST_WIDE_INT_PRINT_UNSIGNED.
6939 2022-09-01 Richard Sandiford <richard.sandiford@arm.com>
6941 * tree-vect-slp.cc (vect_build_slp_tree_2): When building a
6942 VEC_PERM_EXPR of an existing vector, set the SLP_TREE_LANES
6943 to the number of vector elements, if that's a known constant.
6944 (vect_optimize_slp_pass::is_compatible_layout): Remove associated
6945 comment about zero SLP_TREE_LANES.
6946 (vect_optimize_slp_pass::start_choosing_layouts): Iterate over
6947 all partition members when looking for potential layouts.
6948 Handle existing permutes of fixed-length vectors.
6950 2022-09-01 Uroš Bizjak <ubizjak@gmail.com>
6953 * config/i386/i386.md (moves to/from AX_REG into xchg peephole2):
6954 Do not convert a move pattern where both operands are AX_REG.
6956 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
6958 * range-op-float.cc (build_le): Convert to dconst*inf.
6960 * value-range.cc (frange::set_signbit): Same.
6961 (frange::normalize_kind): Same.
6962 (range_tests_floats): Same.
6963 * value-range.h (vrp_val_max): Same.
6964 (vrp_val_min): Same.
6965 (frange::set_varying): Same.
6967 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
6969 * emit-rtl.cc (init_emit_once): Initialize dconstinf and
6971 * real.h: Add dconstinf and dconstninf.
6973 2022-09-01 Richard Biener <rguenther@suse.de>
6975 * gimple-predicate-analysis.cc (compute_control_dep_chain):
6976 Remove cycle detection, instead avoid walking backedges.
6978 2022-09-01 Richard Biener <rguenther@suse.de>
6980 * gimple-predicate-analysis.cc (compute_control_dep_chain):
6981 New wrapping overload.
6982 (uninit_analysis::init_use_preds): Simplify.
6983 (uninit_analysis::init_from_phi_def): Likewise.
6985 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
6987 * gimple-range-fold.cc
6988 (fold_using_range::range_of_builtin_int_call): Add case for
6989 CFN_BUILT_IN_SIGNBIT.
6991 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
6993 * range-op-float.cc (foperator_equal::op1_range): Do not copy sign
6995 (foperator_not_equal::op1_range): Same.
6996 * value-query.cc (range_query::get_tree_range): Set sign bit.
6997 * value-range-pretty-print.cc (vrange_printer::visit): Dump sign bit.
6998 * value-range.cc (frange::set_signbit): New.
6999 (frange::set): Adjust for sign bit.
7000 (frange::normalize_kind): Same.
7001 (frange::union_): Remove useless comment.
7002 (frange::intersect): Same.
7003 (frange::contains_p): Adjust for sign bit.
7004 (frange::singleton_p): Same.
7005 (frange::verify_range): Same.
7006 (range_tests_signbit): New tests.
7007 (range_tests_floats): Call range_tests_signbit.
7008 * value-range.h (class frange_props): Add signbit
7009 (class frange): Same.
7011 2022-09-01 Jakub Jelinek <jakub@redhat.com>
7014 * dumpfile.h (dump_printf_loc): Use ATTRIBUTE_GCC_DUMP_PRINTF (3, 4)
7015 instead of ATTRIBUTE_GCC_DUMP_PRINTF (3, 0).
7016 * tree-parloops.cc (parloops_is_slp_reduction): Cast pointers to
7017 derived types of gimple to gimple * to avoid -Wformat warnings.
7018 * tree-vect-loop-manip.cc (vect_set_loop_condition,
7019 vect_update_ivs_after_vectorizer): Likewise.
7020 * tree-vect-stmts.cc (vectorizable_load): Likewise.
7021 * tree-vect-patterns.cc (vect_split_statement,
7022 vect_recog_mulhs_pattern, vect_recog_average_pattern,
7023 vect_determine_precisions_from_range,
7024 vect_determine_precisions_from_users): Likewise.
7025 * gimple-loop-versioning.cc
7026 (loop_versioning::analyze_term_using_scevs): Likewise.
7027 * tree-vect-slp.cc (vect_build_slp_tree_1): Likewise.
7028 (vect_build_slp_tree): Cast slp_tree to void * to avoid
7030 (optimize_load_redistribution_1, vect_match_slp_patterns,
7031 vect_build_slp_instance, vect_optimize_slp_pass::materialize,
7032 vect_optimize_slp_pass::dump, vect_slp_convert_to_external,
7033 vect_slp_analyze_node_operations, vect_bb_partition_graph): Likewise.
7034 (vect_print_slp_tree): Likewise. Also use
7035 HOST_WIDE_INT_PRINT_UNSIGNED instead of %u.
7036 * tree-vect-loop.cc (vect_determine_vectorization_factor,
7037 vect_analyze_scalar_cycles_1, vect_analyze_loop_operations,
7038 vectorizable_induction, vect_transform_loop): Cast pointers to derived
7039 types of gimple to gimple * to avoid -Wformat warnings.
7040 (vect_analyze_loop_2): Cast slp_tree to void * to avoid
7042 (vect_estimate_min_profitable_iters): Use HOST_WIDE_INT_PRINT_UNSIGNED
7044 * tree-vect-slp-patterns.cc (vect_pattern_validate_optab): Use %G
7045 instead of %T and STMT_VINFO_STMT (SLP_TREE_REPRESENTATIVE (node))
7046 instead of SLP_TREE_DEF_TYPE (node).
7048 2022-09-01 Jakub Jelinek <jakub@redhat.com>
7051 * doc/invoke.texi (-Winvalid-utf8): Document it.
7053 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
7055 PR tree-optimization/106785
7056 * value-range.cc (range_tests_nan): Adjust tests for !HONOR_NANS.
7057 (range_tests_floats): Same.
7059 2022-09-01 konglin1 <lingling.kong@intel.com>
7061 * tree-if-conv.cc (is_cond_scalar_reduction): Add MULT_EXPR
7064 2022-09-01 Peter Bergner <bergner@linux.ibm.com>
7067 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin):
7068 Enforce the use of a valid MMA pointer type.
7070 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
7072 * config/riscv/riscv.cc (riscv_conditional_register_usage): Add vector
7075 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
7077 * config/riscv/riscv.cc (riscv_const_insns): Add cost of poly_int.
7078 (riscv_output_move): Add csrr vlenb assembly.
7079 * config/riscv/riscv.md (move_type): Add csrr vlenb type.
7080 (ext): New attribute.
7081 (ext_enabled): Ditto.
7084 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
7086 * config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): Add
7088 (TARGET_VECTOR ? VD_REGS : NO_REGS): Add "vd" constraint.
7089 (TARGET_VECTOR ? VM_REGS : NO_REGS): Add "vm" constraint.
7090 (vp): Add poly constraint.
7092 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
7094 * config/riscv/riscv.h (enum reg_class): Change vype to vtype.
7096 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
7098 * config/riscv/riscv.cc (riscv_convert_vector_bits): Change
7099 configuration according to TARGET_MIN_VLEN.
7100 * config/riscv/riscv.h (UNITS_PER_FP_REG): Fix comment.
7102 2022-08-31 Martin Liska <mliska@suse.cz>
7104 * config.build: Remove deprecated ports.
7105 * config.gcc: Likewise.
7106 * config.host: Likewise.
7107 * configure.ac: Likewise.
7108 * configure: Regenerate.
7109 * config/pa/pa-hpux10.h: Removed.
7110 * config/pa/pa-hpux10.opt: Removed.
7111 * config/pa/t-dce-thr: Removed.
7113 2022-08-31 Martin Liska <mliska@suse.cz>
7115 * Makefile.in: Always install limits.h and syslimits.h to
7117 * configure.ac: Assign STMP_FIXINC blank if
7118 --disable-fixincludes is used.
7119 * configure: Regenerate.
7121 2022-08-31 Richard Biener <rguenther@suse.de>
7123 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
7124 Assert the guard_bb isn't empty and has more than one successor.
7125 Drop appropriate parts of the predicate when an edge fails to
7126 register a predicate.
7127 (predicate::dump): Dump empty predicate as TRUE.
7129 2022-08-31 Richard Biener <rguenther@suse.de>
7131 PR tree-optimization/90994
7132 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
7133 Ignore exceptional control flow and skip the edge for the purpose of
7134 predicate generation also for non-calls.
7136 2022-08-31 Aldy Hernandez <aldyh@redhat.com>
7138 * value-range-storage.cc (frange_storage_slot::set_frange): Save
7140 (frange_storage_slot::get_frange): Restore endpoints.
7141 * value-range-storage.h (class frange_storage_slot): Add endpoint
7144 2022-08-31 Martin Liska <mliska@suse.cz>
7146 PR tree-optimization/106789
7147 * range-op-float.cc (default_frelop_fold_range): Remove the
7150 2022-08-31 Martin Liska <mliska@suse.cz>
7152 * value-range.h: Add more override keywords.
7154 2022-08-31 Martin Liska <mliska@suse.cz>
7156 * value-range.h: Add override.
7158 2022-08-31 Richard Biener <rguenther@suse.de>
7160 PR tree-optimization/65244
7161 * gimple-predicate-analysis.h (predicate::init_from_control_deps):
7162 Add argument to specify whether the predicate is for the USE.
7163 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
7164 Also include predicates effective fallthru control edges when
7165 the predicate is for the USE.
7167 2022-08-31 Richard Biener <rguenther@suse.de>
7169 PR tree-optimization/73550
7170 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
7171 Sanitize debug dumping. Handle case labels with a CASE_HIGH.
7172 (predicate::dump): Adjust for better readability.
7174 2022-08-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7175 Jakub Jelinek <jakub@redhat.com>
7177 * omp-simd-clone.cc (simd_clone_adjust_return_type,
7178 simd_clone_adjust_argument_types): Use known_eq (veclen, 0U)
7179 instead of known_eq (veclen, 0) to avoid -Wsign-compare warnings.
7181 2022-08-31 Richard Sandiford <richard.sandiford@arm.com>
7183 * tree-vect-slp.cc (vect_optimize_slp_pass::dump): Remove bogus
7186 2022-08-31 zhongjuzhe <juzhe.zhong@rivai.ai>
7188 * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Simply
7189 initialize const_vf to 0.
7191 2022-08-31 Martin Liska <mliska@suse.cz>
7193 * config.gcc: Remove cr16.
7195 2022-08-30 Martin Jambor <mjambor@suse.cz>
7197 * vec.h (array_slice): Add constructors for non-const reference to
7198 heap vector and pointers to heap vectors.
7200 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
7202 * value-range.cc (early_nan_resolve): Change comment.
7203 (frange::union_): Handle union when one side is a NAN.
7204 (range_tests_nan): Add tests for NAN union.
7206 2022-08-30 Andrew Stubbs <ams@codesourcery.com>
7208 * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen): New.
7209 (gcn_simd_clone_adjust): New.
7210 (gcn_simd_clone_usable): New.
7211 (TARGET_SIMD_CLONE_ADJUST): New.
7212 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New.
7213 (TARGET_SIMD_CLONE_USABLE): New.
7215 2022-08-30 Andrew Stubbs <ams@codesourcery.com>
7217 * doc/tm.texi: Regenerate.
7218 * omp-simd-clone.cc (simd_clone_adjust_return_type): Allow zero
7220 (simd_clone_adjust_argument_types): Likewise.
7221 * target.def (compute_vecsize_and_simdlen): Document the new
7222 vecsize_int and vecsize_float semantics.
7224 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
7226 * expmed.cc (store_bit_field_1): Fix byte offset calculation
7227 for undefined structures.
7229 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
7231 * params.opt (-param=vect-max-layout-candidates=): New parameter.
7232 * doc/invoke.texi (vect-max-layout-candidates): Document it.
7233 * tree-vectorizer.h (auto_lane_permutation_t): New typedef.
7234 (auto_load_permutation_t): Likewise.
7235 * tree-vect-slp.cc (vect_slp_node_weight): New function.
7236 (slpg_layout_cost): New class.
7237 (slpg_vertex): Replace perm_in and perm_out with partition,
7238 out_degree, weight and out_weight.
7239 (slpg_partition_info, slpg_partition_layout_costs): New classes.
7240 (vect_optimize_slp_pass): Likewise, cannibalizing some part of
7241 the previous vect_optimize_slp.
7242 (vect_optimize_slp): Use it.
7244 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
7246 * hash-traits.h (vec_hash_base): New class.
7247 (vec_free_hash_base): Likewise.
7249 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
7251 * hash-traits.h (int_hash_base): New struct, split out from...
7252 (int_hash): ...this class, which now inherits from int_hash_base.
7253 * hash-map-traits.h (unbounded_hashmap_traits): Take a template
7254 parameter for the key that provides hash and equality functions.
7255 (unbounded_int_hashmap_traits): Turn into a type alias of
7256 unbounded_hashmap_traits.
7258 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
7260 * graphds.cc (graphds_scc): Add a pass-back parameter for the
7262 * graphds.h (graphds_scc): Update prototype accordingly.
7264 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
7266 * tree-vect-slp.cc (vect_transform_slp_perm_load_1): Split out from...
7267 (vect_transform_slp_perm_load): ...here. Use SLP_TREE_VECTYPE instead
7268 of STMT_VINFO_VECTYPE.
7270 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
7272 * tree-vect-slp.cc (vectorizable_slp_permutation_1): Split out from...
7273 (vectorizable_slp_permutation): ...here.
7275 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
7277 * tree-vect-stmts.cc (get_related_vectype_for_scalar_type): Check
7278 that the requested number of units is interoperable with the requested
7281 2022-08-30 Martin Liska <mliska@suse.cz>
7283 * config.gcc: Remove the port.
7284 * config/m32c/rtems.h: Removed.
7286 2022-08-30 Richard Biener <rguenther@suse.de>
7288 PR tree-optimization/73550
7289 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
7290 Do not apply MAX_NUM_CHAINS again.
7292 2022-08-30 Richard Biener <rguenther@suse.de>
7294 * gimple-predicate-analysis.cc (format_edge_vec): Dump
7295 both source and destination.
7296 (dump_dep_chains): Remove.
7297 (uninit_analysis::init_use_preds): Remove redundant
7300 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
7302 * value-range-storage.cc (frange_storage_slot::get_frange): Use
7304 * value-range.cc (frange::set_nan): New.
7305 (frange_nan): Move to header file.
7306 (range_tests_nan): Adjust frange_nan callers to pass type.
7308 * value-range.h (FRANGE_PROP_ACCESSOR): Remove.
7311 2022-08-30 Richard Biener <rguenther@suse.de>
7313 PR tree-optimization/67196
7314 * gimple-predicate-analysis.cc (uninit_analysis::is_use_guarded):
7315 Simplify and normalize use prediates before first use.
7317 2022-08-30 Richard Biener <rguenther@suse.de>
7319 * gimple-predicate-analysis.cc (dump_pred_chain): Fix
7320 parentizing and AND prepending.
7321 (predicate::dump): Do not dump the GENERIC expanded
7322 predicate, properly parentize and prepend ORs to the
7323 piecewise predicate dump.
7324 (build_pred_expr): Remove.
7326 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
7328 * range-op-float.cc (finite_operand_p): New.
7333 (foperator_equal::fold_range): New implementation with endpoints.
7334 (foperator_equal::op1_range): Same.
7335 (foperator_not_equal::fold_range): Same.
7336 (foperator_not_equal::op1_range): Same.
7337 (foperator_lt::fold_range): Same.
7338 (foperator_lt::op1_range): Same.
7339 (foperator_lt::op2_range): Same.
7340 (foperator_le::fold_range): Same.
7341 (foperator_le::op1_range): Same.
7342 (foperator_le::op2_range): Same.
7343 (foperator_gt::fold_range): Same.
7344 (foperator_gt::op1_range): Same.
7345 (foperator_gt::op2_range): Same.
7346 (foperator_ge::fold_range): Same.
7347 (foperator_ge::op1_range): Same.
7348 (foperator_ge::op2_range): Same.
7350 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
7352 * range-op-float.cc (frange_set_nan): New.
7353 (frange_drop_inf): New.
7354 (frange_drop_ninf): New.
7355 (foperator_equal::op1_range): Adjust for endpoints.
7356 (foperator_lt::op1_range): Same.
7357 (foperator_lt::op2_range): Same.
7358 (foperator_gt::op1_range): Same.
7359 (foperator_gt::op2_range): Same.
7360 (foperator_unordered::op1_range): Same.
7361 * value-query.cc (range_query::get_tree_range): Same.
7362 * value-range-pretty-print.cc (vrange_printer::visit): Same.
7363 * value-range-storage.cc (frange_storage_slot::get_frange): Same.
7364 * value-range.cc (frange::set): Same.
7365 (frange::normalize_kind): Same.
7366 (frange::union_): Same.
7367 (frange::intersect): Same.
7368 (frange::operator=): Same.
7369 (early_nan_resolve): New.
7370 (frange::contains_p): New.
7371 (frange::singleton_p): New.
7372 (frange::set_nonzero): New.
7373 (frange::nonzero_p): New.
7374 (frange::set_zero): New.
7375 (frange::zero_p): New.
7376 (frange::set_nonnegative): New.
7377 (frange_float): New.
7379 (range_tests_nan): New.
7380 (range_tests_signed_zeros): New.
7381 (range_tests_floats): New.
7383 * value-range.h (frange::lower_bound): New.
7384 (frange::upper_bound): New.
7385 (vrp_val_min): Use real_inf with a sign instead of negating inf.
7386 (frange::frange): New.
7387 (frange::set_varying): Adjust for endpoints.
7388 (real_max_representable): New.
7389 (real_min_representable): New.
7391 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
7393 * match.pd ((cmp @0 zerop) real_zerop (negate@1 @0)): Add variant
7396 2022-08-30 Martin Liska <mliska@suse.cz>
7398 * config/s390/s390.cc (s390_rtx_costs): Use proper type as
7401 2022-08-30 Richard Biener <rguenther@suse.de>
7403 * tree-ssa-uninit.cc (warn_uninitialized_vars): Pre-compute
7404 the set of fallthru reachable blocks from function entry
7405 and use that to determine wlims.always_executed.
7407 2022-08-30 Richard Biener <rguenther@suse.de>
7409 PR tree-optimization/56654
7410 * tree-ssa-uninit.cc (cand_cmp): New.
7411 (find_uninit_use): First process all PHIs and collect candidate
7412 stmts, then sort those after RPO.
7413 (warn_uninitialized_phi): Pass on bb_to_rpo.
7414 (execute_late_warn_uninitialized): Compute and pass on
7415 reverse lookup of RPO number from basic block index.
7417 2022-08-30 Richard Biener <rguenther@suse.de>
7419 * gimple-predicate-analysis.h (uninit_analysis::operator()):
7421 * gimple-predicate-analysis.cc
7422 (uninit_analysis::collect_phi_def_edges): Use phi_arg_set,
7424 * tree-ssa-uninit.cc (defined_args): New global.
7425 (compute_uninit_opnds_pos): Mask with the recorded set
7426 of guarded maybe-uninitialized uses.
7427 (uninit_undef_val_t::operator()): Remove.
7428 (find_uninit_use): Process all PHI uses, recording the
7429 guarded ones and marking the PHI result as uninitialized
7431 (warn_uninitialized_phi): Adjust.
7432 (execute_late_warn_uninitialized): Get rid of the PHI worklist
7433 and instead walk the function in RPO order.
7434 * spellcheck.h (best_match::m_best_candidate_len): Initialize.
7436 2022-08-30 Tamar Christina <tamar.christina@arm.com>
7438 PR tree-optimization/106744
7439 * tree-ssa-phiopt.cc (minmax_replacement): Correct arguments.
7441 2022-08-30 Tamar Christina <tamar.christina@arm.com>
7443 * expmed.cc (store_bit_field_1): Initialize regnum to 0.
7445 2022-08-29 David Faust <david.faust@oracle.com>
7448 * config/bpf/coreout.cc (bpf_core_get_sou_member_index): Fix
7449 computation of index for anonymous members.
7451 2022-08-29 Jose E. Marchesi <jose.marchesi@oracle.com>
7453 * config/bpf/bpf.cc (bpf_target_macros): Define __bpf__ as a
7456 2022-08-29 H.J. Lu <hjl.tools@gmail.com>
7459 * config/i386/i386-expand.cc
7460 (ix86_avx256_split_vector_move_misalign): Handle E_V16BFmode.
7461 * config/i386/sse.md (V_256H): Add V16BF.
7463 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
7465 * config/s390/s390.cc (s390_address_cost): Declare.
7466 (s390_hard_regno_nregs): Declare.
7467 (s390_rtx_costs): Add handling for REG and MEM in SET.
7469 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
7471 * config/s390/s390.cc (expand_perm_with_vpdi): Recognize swap pattern.
7472 (is_reverse_perm_mask): New function.
7473 (expand_perm_with_rot): Recognize reverse pattern.
7474 (expand_perm_with_vstbrq): New function.
7475 (expand_perm_with_vster): Use vler/vster for element reversal on z15.
7476 (vectorize_vec_perm_const_1): Use.
7477 (s390_vectorize_vec_perm_const): Add expand functions.
7478 * config/s390/vx-builtins.md: Prefer vster over vler.
7480 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
7482 * config/s390/s390.md: Remove UNSPEC_VEC_EXTRACT.
7483 * config/s390/vector.md: Rewrite patterns to use vec_select.
7484 * config/s390/vx-builtins.md (vec_scatter_element<V_HW_2:mode>_SI):
7487 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
7490 * config/s390/vector.md (@vpdi4_2<mode>): New pattern.
7491 (rotl<mode>3_di): New pattern.
7492 * config/s390/vx-builtins.md: Use vpdi and verll for reversing
7495 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
7497 * config/s390/s390.cc (s390_issue_rate): Add z15.
7499 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
7501 * common/config/s390/s390-common.cc: Enable -funroll-loops and
7502 -munroll-only-small-loops for OPT_LEVELS_2_PLUS_SPEED_ONLY.
7503 * config/s390/s390.cc (s390_loop_unroll_adjust): Do not unroll
7504 loops larger than 12 instructions.
7505 (s390_override_options_after_change): Set unroll options.
7506 (s390_option_override_internal): Likewise.
7507 * config/s390/s390.opt: Document munroll-only-small-loops.
7509 2022-08-29 Richard Biener <rguenther@suse.de>
7511 * gimple-predicate-analysis.cc (is_loop_exit,
7512 find_control_equiv_block): Inline into single caller ...
7513 (uninit_analysis::init_use_preds): ... here and refactor.
7515 2022-08-29 Richard Biener <rguenther@suse.de>
7517 * gimple-predicate-analysis.cc (compute_control_dep_chain):
7518 Inline is_loop_exit and refactor, add comment about
7521 2022-08-29 Kito Cheng <kito.cheng@sifive.com>
7523 * config/riscv/riscv.cc (riscv_frame_info): Introduce `reset(void)`;
7524 (riscv_frame_info::reset(void)): New.
7525 (riscv_compute_frame_info): Use riscv_frame_info::reset instead
7526 of memset when clean frame.
7528 2022-08-29 zhongjuzhe <juzhe.zhong@rivai.ai>
7530 * config/riscv/riscv.cc (riscv_v_ext_vector_mode_p): New function.
7531 (riscv_classify_address): Disallow PLUS/LO_SUM/CONST_INT address types for RVV.
7532 (riscv_address_insns): Add RVV modes condition.
7533 (riscv_binary_cost): Ditto.
7534 (riscv_rtx_costs): Adjust cost for RVV.
7535 (riscv_secondary_memory_needed): Add RVV modes condition.
7536 (riscv_hard_regno_nregs): Add RVV register allocation.
7537 (riscv_hard_regno_mode_ok): Add RVV register allocation.
7538 (riscv_class_max_nregs): Add RVV register allocation.
7539 * config/riscv/riscv.h (DWARF_FRAME_REGNUM): Add VL/VTYPE and vector registers in Dwarf.
7540 (UNITS_PER_V_REG): New macro.
7541 (FIRST_PSEUDO_REGISTER): Adjust first pseudo num for RVV.
7542 (V_REG_FIRST): New macro.
7543 (V_REG_LAST): Ditto.
7547 (VTYPE_REG_P): Ditto.
7548 (RISCV_DWARF_VL): Ditto.
7549 (RISCV_DWARF_VTYPE): Ditto.
7550 (enum reg_class): Add RVV register types.
7551 (REG_CLASS_CONTENTS): Add RVV register types.
7552 * config/riscv/riscv.md: Add VL/VTYPE register number constants.
7554 2022-08-29 zhongjuzhe <juzhe.zhong@rivai.ai>
7556 * config/riscv/riscv.md: Add new type for vector instructions.
7558 2022-08-28 Peter Bergner <bergner@linux.ibm.com>
7561 * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Remove handling
7562 of MMA pointer conversions.
7564 2022-08-27 Xi Ruoyao <xry111@xry111.site>
7566 * config/i386/gcc-auto-profile: Regenerate.
7568 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
7570 * real.cc (real_iszero): New.
7571 * real.h (real_iszero): New.
7573 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
7575 * real.cc (real_isinf): New overload.
7576 (real_inf): Add sign argument.
7577 * real.h (real_isinf): New overload.
7578 (real_inf): Add sign argument.
7580 2022-08-26 Marek Polacek <polacek@redhat.com>
7583 * doc/invoke.texi: Document -Wself-move.
7585 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
7587 * value-range.cc (vrange::set): Set varying.
7588 (vrange::set_nonzero): Same.
7589 (vrange::set_zero): Same.
7590 (vrange::set_nonnegative): Same.
7592 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
7594 * range-op-float.cc (foperator_equal::op1_range): Do not blindly
7595 copy op2 range when honoring signed zeros.
7597 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
7599 * tree-ssa-threadbackward.cc (possibly_profitable_path_p): Always
7601 (profitable_path_p): Same.
7603 2022-08-26 Richard Biener <rguenther@suse.de>
7605 * gimple-predicate-analysis.h
7606 (uninit_analysis::use_cannot_happen): Remove.
7607 * gimple-predicate-analysis.cc (can_be_invalidated_p): Remove.
7608 (uninit_analysis::use_cannot_happen): Likewise.
7609 (uninit_analysis::is_use_guarded): Do not call
7611 (dump_predicates): Remove.
7612 (simple_control_dep_chain): Remove edge overload.
7614 2022-08-26 Tobias Burnus <tobias@codesourcery.com>
7616 * internal-fn.cc (expand_GOMP_TARGET_REV): New.
7617 * internal-fn.def (GOMP_TARGET_REV): New.
7618 * lto-cgraph.cc (lto_output_node, verify_node_partition): Mark
7619 'omp target device_ancestor_host' as in_other_partition and don't
7621 * omp-low.cc (create_omp_child_function): Mark as 'noclone'.
7622 * omp-expand.cc (expand_omp_target): For reverse offload, remove
7623 sorry, use device = GOMP_DEVICE_HOST_FALLBACK and create
7624 empty-body nohost function.
7625 * omp-offload.cc (execute_omp_device_lower): Handle
7626 IFN_GOMP_TARGET_REV.
7627 (pass_omp_target_link::execute): For ACCEL_COMPILER, don't
7628 nullify fn argument for reverse offload
7630 2022-08-26 Jakub Jelinek <jakub@redhat.com>
7632 * builtins.def (BUILT_IN_ISSIGNALING): New built-in.
7633 * builtins.cc (expand_builtin_issignaling): New function.
7634 (expand_builtin_signbit): Don't overwrite target.
7635 (expand_builtin): Handle BUILT_IN_ISSIGNALING.
7636 (fold_builtin_classify): Likewise.
7637 (fold_builtin_1): Likewise.
7638 * optabs.def (issignaling_optab): New.
7639 * fold-const-call.cc (fold_const_call_ss): Handle
7640 BUILT_IN_ISSIGNALING.
7641 * config/i386/i386.md (issignalingxf2): New expander.
7642 * doc/extend.texi (__builtin_issignaling): Document.
7643 (__builtin_isinf, __builtin_isnan): Clarify behavior with
7645 * doc/md.texi (issignaling<mode>2): Likewise.
7647 2022-08-26 Jakub Jelinek <jakub@redhat.com>
7649 PR tree-optimization/106099
7650 * internal-fn.def (TRAP): Add ECF_LOOPING_CONST_OR_PURE flag.
7651 * tree-cfg.cc (execute_fixup_cfg): Add IFN_TRAP instead of
7652 __builtin_trap to avoid the need of vops.
7654 2022-08-26 Richard Biener <rguenther@suse.de>
7656 * gimple-predicate-analysis.cc (dfs_mark_dominating_region):
7658 (compute_control_dep_chain): Adjust to honor marked region
7660 (uninit_analysis::init_from_phi_def): Pre-mark the dominating
7661 region to improve compute_control_dep_chain walking.
7662 * vec.h (vec<T, va_heap, vl_ptr>::allocated): Add forwarder.
7664 2022-08-26 Richard Biener <rguenther@suse.de>
7666 * gimple-predicate-analysis.cc
7667 (uninit_analysis::collect_phi_def_edges): Only expand a
7668 PHI def edge when it is possibly undefined.
7670 2022-08-26 Martin Liska <mliska@suse.cz>
7672 * doc/extend.texi: Remove cr16 related stuff.
7673 * doc/install.texi: Likewise.
7674 * doc/invoke.texi: Likewise.
7675 * doc/md.texi: Likewise.
7676 * function-tests.cc (test_expansion_to_rtl): Likewise.
7677 * common/config/cr16/cr16-common.cc: Removed.
7678 * config/cr16/constraints.md: Removed.
7679 * config/cr16/cr16-protos.h: Removed.
7680 * config/cr16/cr16.cc: Removed.
7681 * config/cr16/cr16.h: Removed.
7682 * config/cr16/cr16.md: Removed.
7683 * config/cr16/cr16.opt: Removed.
7684 * config/cr16/predicates.md: Removed.
7685 * config/cr16/t-cr16: Removed.
7687 2022-08-26 liuhongt <hongtao.liu@intel.com>
7690 * config/i386/i386-builtin.def (BDESC): Add
7691 CODE_FOR_avx_blendvpd256/CODE_FOR_avx_blendvps256 to
7692 corresponding builtins.
7693 * config/i386/i386.cc (ix86_gimple_fold_builtin):
7694 Don't fold IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_BLENDVPS256,
7695 IX86_BUILTIN_BLENDVPD256 w/o TARGET_AVX2.
7697 2022-08-25 Marek Polacek <polacek@redhat.com>
7699 * ginclude/stddef.h: Define nullptr_t.
7701 2022-08-25 Joseph Myers <joseph@codesourcery.com>
7703 * gimplify.cc (gimplify_modify_expr): Convert initialization from
7704 a variable-size CONSTRUCTOR to memset before call to
7705 gimplify_modify_expr_rhs.
7707 2022-08-25 Jason Merrill <jason@redhat.com>
7709 * dwarf2out.cc (base_type_die): Also use DW_ATE_UTF for char8_t.
7711 2022-08-25 Andreas Krebbel <krebbel@linux.ibm.com>
7714 * config/s390/predicates.md (subreg_register_operand): New
7716 * config/s390/s390-protos.h (s390_gen_lowpart_subreg): New
7718 * config/s390/s390.cc (s390_gen_lowpart_subreg): New function.
7719 (s390_expand_insv): Use s390_gen_lowpart_subreg instead of
7721 * config/s390/s390.md ("*get_tp_64", "*zero_extendhisi2_31")
7722 ("*zero_extendqisi2_31", "*zero_extendqihi2_31"): Likewise.
7723 ("movstrictqi", "movstricthi", "movstrictsi"): Use the
7724 subreg_register_operand predicate instead of register_operand.
7726 2022-08-25 Xi Ruoyao <xry111@xry111.site>
7728 * config/loongarch/loongarch-protos.h (loongarch_symbol_type):
7729 Add SYMBOL_PCREL64 and change the description for SYMBOL_PCREL.
7730 * config/loongarch/loongarch.cc (loongarch_attribute_table):
7731 New attribute table.
7732 (TARGET_ATTRIBUTE_TABLE): Define the target hook.
7733 (loongarch_handle_model_attribute): New static function.
7734 (loongarch_classify_symbol): Take TARGET_CMODEL_EXTREME and the
7735 model attribute of SYMBOL_REF_DECL into account returning
7736 SYMBOL_PCREL or SYMBOL_PCREL64.
7737 (loongarch_use_anchors_for_symbol_p): New static function.
7738 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define the target hook.
7739 (loongarch_symbol_extreme_p): New static function.
7740 (loongarch_symbolic_constant_p): Handle SYMBOL_PCREL64.
7741 (loongarch_symbol_insns): Likewise.
7742 (loongarch_split_symbol_type): Likewise.
7743 (loongarch_split_symbol): Check SYMBOL_PCREL64 instead of
7744 TARGET_CMODEL_EXTREME for PC-relative addressing.
7745 (loongarch_print_operand_reloc): Likewise.
7746 * doc/extend.texi (Variable Attributes): Document new
7747 LoongArch specific attribute.
7749 2022-08-25 Xi Ruoyao <xry111@xry111.site>
7751 * config/loongarch/loongarch.cc (loongarch_classify_symbol):
7752 Return early if the rtx is not SYMBOL_REF.
7754 2022-08-25 Richard Biener <rguenther@suse.de>
7756 PR tree-optimization/106737
7757 * tree-parloops.cc (transform_to_exit_first_loop_alt): Do not
7760 2022-08-25 Chenghua Xu <xuchenghua@loongson.cn>
7763 * config/loongarch/loongarch.cc (loongarch_build_integer):
7765 * config/loongarch/loongarch.h (IMM_REACH): Likewise.
7766 (HWIT_1U): New Defined.
7767 (LU12I_OPERAND): Use HOST_WIDE_INT.
7768 (LU32I_OPERAND): Likewise.
7769 (LU52I_OPERAND): Likewise.
7770 (HWIT_UC_0xFFF): Likwise.
7772 2022-08-24 Andrew Pinski <apinski@marvell.com>
7776 * config/riscv/bitmanip.md (*shNadduw): Use n constraint
7778 (*slliuw): Likewise.
7779 (*bexti): Likewise. Also add a check for operands[2] to be less
7780 than the mode bitsize.
7782 2022-08-24 Andrew Pinski <apinski@marvell.com>
7784 * config/riscv/constraints.md (DbS): New constraint.
7785 (DnS): New constraint.
7786 * config/riscv/bitmanip.md (*bset<mode>_1_mask): Use new constraint.
7787 (*bclr<mode>): Likewise.
7788 (*binvi<mode>): Likewise.
7790 2022-08-24 Andrew Pinski <apinski@marvell.com>
7793 * config/riscv/predicates.md (single_bit_mask_operand):
7794 Use SINGLE_BIT_MASK_OPERAND instead of directly calling pow2p_hwi.
7795 (not_single_bit_mask_operand): Likewise.
7796 * config/riscv/riscv.cc (riscv_build_integer_1): Don't special case
7797 1<<31 for 32bits as it is already handled.
7798 Call trunc_int_for_mode on the upper part after the subtraction.
7799 (riscv_move_integer): Call trunc_int_for_mode before generating
7800 the integer just make sure the constant has been sign extended
7802 (riscv_emit_int_compare): Call trunc_int_for_mode after doing the
7803 addition for the new rhs.
7804 * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): If !TARGET64BIT,
7805 then mask off the upper 32bits of the HWI as it will be sign extended.
7807 2022-08-24 Andrew Pinski <apinski@marvell.com>
7809 * config/riscv/constraints.md (DsS): New constraint.
7810 (DsD): New constraint.
7811 * config/riscv/iterators.md (shiftm1c): New iterator.
7812 * config/riscv/bitmanip.md (*bset<mode>_mask):
7814 (*bset<mode>_1_mask): Likewise.
7816 2022-08-24 Andrew Pinski <apinski@marvell.com>
7818 * config/riscv/constraints.md (Ds3): New constraint.
7819 * config/riscv/predicates.md (imm123_operand): New predicate.
7820 * config/riscv/bitmanip.md (*shNadd): Use Ds3 and imm123_operand.
7821 (*shNadduw): Likewise.
7823 2022-08-24 Andrew Pinski <apinski@marvell.com>
7825 * config/riscv/riscv.cc (riscv_print_operand):
7827 (riscv_print_operand_punct_valid_p): New function
7828 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
7829 * config/riscv/bitmanip.md (<bitmanip_optab>si2/clz_ctz_pcnt):
7830 Use %~ instead of conditional the pattern on TARGET_64BIT.
7831 (rotrsi3): Likewise.
7832 (rotlsi3): Likewise.
7833 * config/riscv/riscv.md: Add ~ to the list of modifiers.
7834 (addsi3): Use %~ instead of conditional the pattern on TARGET_64BIT.
7838 (optab>si3/any_div): Likewise.
7839 (*add<mode>hi3): Likewise.
7840 (<optab>si3/any_shift): Likewise.
7842 2022-08-24 Andrew Pinski <apinski@marvell.com>
7844 * config/riscv/riscv.cc (riscv_print_operand): Make a mention to
7845 keep the list in riscv.md in sync with this list.
7846 * config/riscv/riscv.md: Add list of modifiers as comments.
7848 2022-08-24 Andrew Pinski <apinski@marvell.com>
7850 * config/riscv/sync.md (any_atomic, atomic_optab): Move to ...
7851 * config/riscv/iterators.md: Here.
7853 2022-08-24 Andrew Pinski <apinski@marvell.com>
7855 * config/riscv/bitmanip.md
7856 (bitmanip_bitwise, bitmanip_minmax, clz_ctz_pcna,
7857 tbitmanip_optab, bitmanip_insn, shiftm1): Move to ...
7858 * config/riscv/iterators.md: Here.
7860 2022-08-24 Andrew Pinski <apinski@marvell.com>
7862 * config/riscv/riscv.md (GPR): Move to new file.
7863 (P, X, BR): Likewise.
7864 (MOVE32, MOVE64, SHORT): Likewise.
7865 (HISI, SUPERQI, SUBX): Likewise.
7866 (ANYI, ANYF, SOFTF): Likewise.
7867 (size, load, default_load): Likewise.
7868 (softload, store, softstore): Likewise.
7869 (reg, fmt, ifmt, amo): Likewise.
7870 (UNITMODE, HALFMODE): Likewise.
7871 (RINT, rint_pattern, rint_rm): Likewise.
7872 (QUIET_COMPARISON, quiet_pattern, QUIET_PATTERN): Likewise.
7873 (any_extend, any_shiftrt, any_shift): Likewise.
7874 (any_bitwise): Likewise.
7875 (any_div, any_mod): Likewise.
7876 (any_gt, any_ge, any_lt, any_le): Likewise.
7878 (optab, insn): Likewise.
7879 * config/riscv/iterators.md: New file.
7881 2022-08-24 Andrew Pinski <apinski@marvell.com>
7884 * config/riscv/bitmanip.md (bswaphi2): New pattern.
7886 2022-08-24 Andrew Pinski <apinski@marvell.com>
7889 * config/riscv/bitmanip.md (bswap<mode>2): Remove
7890 condition on TARGET_64BIT as X is already conditional there.
7892 2022-08-24 Joseph Myers <joseph@codesourcery.com>
7894 * tree.cc (build_real): Give DFP dconst0 the minimum quantum
7895 exponent for the type.
7897 2022-08-24 Jose E. Marchesi <jose.marchesi@oracle.com>
7900 * config/bpf/bpf.cc (bpf_legitimate_address_p): Recognize integer
7901 constants as legitimate addresses for functions.
7902 (bpf_small_register_classes_for_mode_p): Define target hook.
7904 2022-08-24 Richard Biener <rguenther@suse.de>
7906 * gimple-predicate-analysis.cc: Move predicate normalization
7907 after the comment documenting it.
7909 2022-08-24 Richard Biener <rguenther@suse.de>
7911 * gimple-predicate-analysis.h (predicate): Split out
7912 non-predicate related functionality into ..
7913 (uninit_analysis): .. this new class.
7914 * gimple-predicate-analysis.cc: Refactor into two classes.
7915 * tree-ssa-uninit.cc (find_uninit_use): Use uninit_analysis.
7917 2022-08-24 Richard Biener <rguenther@suse.de>
7919 * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
7920 Do simple_control_dep_chain only up to cd_root, add the PHI
7921 operand edge to the chains like init_from_phi_def does.
7922 (predicate::is_use_guarded): Speedup early out, avoid half-way
7923 initializing the PHI def predicate.
7925 2022-08-24 Jakub Jelinek <jakub@redhat.com>
7928 * config/i386/sse.md (shuffletype): Add V32BF, V16BF and V8BF entries.
7929 Change V32HF, V16HF and V8HF entries from "f" to "i".
7930 (iptr): Add V32BF, V16BF, V8BF and BF entries.
7931 (i128vldq): Add V16HF and V16BF entries.
7932 (avx512er_vmrcp28<mode><mask_name><round_saeonly_name>): Fix typo,
7933 mask_opernad3 -> mask_operand3.
7935 2022-08-24 Martin Liska <mliska@suse.cz>
7936 Jørgen Kvalsvik <j@lambda.is>
7938 * gcov.cc (add_line_counts): Add group functions to coverage
7940 (accumulate_line_counts): Similarly for files.
7942 2022-08-24 Lulu Cheng <chenglulu@loongson.cn>
7944 * config/loongarch/genopts/loongarch-strings: Support code model medium.
7945 * config/loongarch/genopts/loongarch.opt.in: Likewise.
7946 * config/loongarch/loongarch-def.c: Likewise.
7947 * config/loongarch/loongarch-def.h (CMODEL_LARGE): Likewise.
7948 (CMODEL_EXTREME): Likewise.
7949 (N_CMODEL_TYPES): Likewise.
7950 (CMODEL_MEDIUM): Likewise.
7951 * config/loongarch/loongarch-opts.cc: Likewise.
7952 * config/loongarch/loongarch-opts.h (TARGET_CMODEL_MEDIUM): Likewise.
7953 * config/loongarch/loongarch-str.h (STR_CMODEL_MEDIUM): Likewise.
7954 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
7955 Tls symbol Loading support medium mode.
7956 (loongarch_legitimize_call_address): When medium mode, make a symbolic
7957 jump with two instructions.
7958 (loongarch_option_override_internal): Support medium.
7959 * config/loongarch/loongarch.md (@pcalau12i<mode>): New template.
7960 (@sibcall_internal_1<mode>): New function call templates added to support
7962 (@sibcall_value_internal_1<mode>): Likewise.
7963 (@sibcall_value_multiple_internal_1<mode>): Likewise.
7964 (@call_internal_1<mode>): Likewise.
7965 (@call_value_internal_1<mode>): Likewise.
7966 (@call_value_multiple_internal_1<mode>): Likewise.
7967 * config/loongarch/loongarch.opt: Support medium.
7968 * config/loongarch/predicates.md: Add processing about medium mode.
7969 * doc/invoke.texi: Document for '-mcmodel=medium'.
7971 2022-08-24 Richard Biener <rguenther@suse.de>
7973 * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
7974 Start the compute_control_dep_chain walk from the immediate
7975 dominator of the PHI.
7977 2022-08-23 H.J. Lu <hjl.tools@gmail.com>
7980 * config/i386/amxtileintrin.h (_tile_loadd_internal): Cast to
7982 (_tile_stream_loadd_internal): Likewise.
7983 (_tile_stored_internal): Likewise.
7985 2022-08-23 Richard Biener <rguenther@suse.de>
7987 PR tree-optimization/106722
7988 * gimple-predicate-analysis.h (MAX_NUM_CHAINS, MAX_CHAIN_LEN,
7989 MAX_POSTDOM_CHECK, MAX_SWITCH_CASES): Move ...
7990 * gimple-predicate-analysis.cc: ... here and document.
7991 (simple_control_dep_chain): New function, factored from
7992 predicate::use_cannot_happen.
7993 (predicate::use_cannot_happen): Adjust.
7994 (predicate::predicate): Use simple_control_dep_chain as fallback.
7996 2022-08-23 Aldy Hernandez <aldyh@redhat.com>
7998 * range-op-float.cc (foperator_equal::op1_range): Set range to
8001 2022-08-23 Richard Biener <rguenther@suse.de>
8003 * gimple-predicate-analysis.cc (is_loop_exit): Split out
8005 (is_non_loop_exit_postdominating): ... here. Remove after
8007 (find_control_equiv_block): ... here.
8008 (compute_control_dep_chain): ... and here.
8009 (predicate::is_use_guarded): Do not excempt loop exits
8010 from short-cutting the case of the use post-dominating the
8013 2022-08-23 Andrew MacLeod <amacleod@redhat.com>
8015 PR tree-optimization/106687
8016 * range-op.cc (operator_minus::lhs_op1_relation): Return VREL_LE
8017 for the VREL_GT case as well.
8019 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
8021 * config/pru/pru.md (pru_<code>di3): New alternative for
8022 two operands but without earlyclobber.
8024 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
8026 * config/pru/pru.md (prumov<mode>, mov<mode>): Add
8027 variants for loading -1 consts.
8029 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
8032 * config/pru/constraints.md (Um): New constraint for -1.
8033 (Uf): New constraint for IOR fill-bytes constants.
8034 (Uz): New constraint for AND zero-bytes constants.
8035 * config/pru/predicates.md (const_fillbytes_operand): New
8036 predicate for IOR fill-bytes constants.
8037 (const_zerobytes_operand): New predicate for AND zero-bytes
8039 * config/pru/pru-protos.h (pru_output_sign_extend): Remove.
8040 (struct pru_byterange): New struct to describe a byte range.
8041 (pru_calc_byterange): New declaration.
8042 * config/pru/pru.cc (pru_rtx_costs): Add penalty for
8044 (pru_output_sign_extend): Remove.
8045 (pru_calc_byterange): New helper function to extract byte
8046 range info from a constant.
8047 (pru_print_operand): Remove 'y' and 'z' print modifiers.
8048 * config/pru/pru.md (zero_extendqidi2): New pattern.
8049 (zero_extendhidi2): New pattern.
8050 (zero_extendsidi2): New pattern.
8051 (extend<EQS0:mode><EQD:mode>2): Rewrite as an expand.
8052 (@pru_ior_fillbytes<mode>): New pattern.
8053 (@pru_and_zerobytes<mode>): New pattern.
8054 (<code>di3): Rewrite as an expand and handle ZERO and FILL
8056 (pru_<code>di3): New name for <code>di3.
8057 (@cbranch_qbbx_const_<BIT_TEST:code><HIDI:mode>): New pattern to
8058 handle bit-test for 64-bit registers.
8060 2022-08-22 Richard Biener <rguenther@suse.de>
8062 * gimple-predicate-analysis.h (predicate::m_use_expr): Remove.
8063 (predicate::def_expr): Likewise.
8064 (predicate::use_expr): Likewise.
8065 (predicate::expr): Likewise.
8066 * gimple-predicate-analysis.cc (predicate::def_expr): Remove.
8067 (predicate::use_expr): Likewise.
8068 (predicate::expr): Likewise.
8069 (predicate::is_use_guarded): Do not build m_use_expr.
8071 2022-08-22 Martin Liska <mliska@suse.cz>
8074 * configure.ac: Detect O_NONBLOCK flag for open.
8075 * config.in: Regenerate.
8076 * configure: Regenerate.
8077 * opts-common.cc (jobserver_info::connect): Set is_connected
8078 properly based on O_NONBLOCK.
8079 * opts-jobserver.h (struct jobserver_info): Add is_connected
8082 2022-08-22 zhongjuzhe <juzhe.zhong@rivai.ai>
8084 * simplify-rtx.cc (test_vector_subregs_fore_back): Make first value
8085 and repeat value different.
8087 2022-08-22 Tobias Burnus <tobias@codesourcery.com>
8090 * lto-wrapper.cc (free_array_of_ptrs): Move before tool_cleanup.
8091 (tool_cleanup): Unlink offload_names.
8092 (compile_offload_image): Take filename argument to set it early.
8093 (compile_images_for_offload_targets): Update call; set
8094 offload_names to NULL after freeing the array.
8096 2022-08-22 Richard Biener <rguenther@suse.de>
8098 PR tree-optimization/105937
8099 * tree-ssa-uninit.cc (find_uninit_use): Do not queue PHIs
8101 (execute_late_warn_uninitialized): Mark backedges.
8103 2022-08-22 Richard Biener <rguenther@suse.de>
8105 * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
8106 If the use is guarded with multiple predicate paths compute
8107 the predicates intersection before going forward. When
8108 compute_control_dep_chain wasn't able to come up with at
8109 least one path from function entry to the PHI edge compute
8110 a conservative sparse path instead.
8112 2022-08-20 Lulu Cheng <chenglulu@loongson.cn>
8114 * config/loongarch/loongarch-opts.cc: Allow cmodel to be extreme.
8115 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
8116 Add extreme support for TLS GD and LD types.
8117 (loongarch_legitimize_tls_address): Add extreme support for TLS LE
8119 (loongarch_split_symbol): When compiling with -mcmodel=extreme,
8120 the symbol address will be obtained through five instructions.
8121 (loongarch_print_operand_reloc): Add support.
8122 (loongarch_print_operand): Add support.
8123 (loongarch_print_operand_address): Add support.
8124 (loongarch_option_override_internal): Set '-mcmodel=extreme' option
8125 incompatible with '-mno-explicit-relocs'.
8126 * config/loongarch/loongarch.md (@lui_l_hi20<mode>):
8127 Loads bits 12-31 of data into registers.
8128 (lui_h_lo20): Load bits 32-51 of the data and spell bits 0-31 of
8129 the source register.
8130 (lui_h_hi12): Load bits 52-63 of the data and spell bits 0-51 of
8131 the source register.
8132 * config/loongarch/predicates.md: Symbols need to be decomposed
8133 when defining the macro TARGET_CMODEL_EXTREME
8134 * doc/invoke.texi: Modify the description information of cmodel in the document.
8135 Document -W[no-]extreme-plt.
8137 2022-08-19 Tobias Burnus <tobias@codesourcery.com>
8139 * config/gcn/mkoffload.cc (main): Add omp_requires_file and dbgobj to
8141 * config/i386/intelmic-mkoffload.cc (prepare_target_image): Add
8142 omp_requires_file to temp_files.
8143 * config/nvptx/mkoffload.cc (omp_requires_file): New global static var.
8144 (main): Remove local omp_requires_file var.
8145 (tool_cleanup): Handle omp_requires_file.
8147 2022-08-19 Aldy Hernandez <aldyh@redhat.com>
8149 * gimple-range-path.cc (path_range_query::path_range_query):
8150 Remove constructor that takes edge.
8151 * gimple-range-path.h (class path_range_query): Same.
8152 * tree-ssa-loop-ch.cc (edge_range_query): New.
8153 (entry_loop_condition_is_static): Call edge_range_query.
8155 2022-08-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8157 * config/xtensa/xtensa.h
8158 (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
8159 Add new register class "ISC_REGS".
8160 * config/xtensa/constraints.md (c): Add new register constraint.
8161 * config/xtensa/xtensa.md (define_constants): Remove "A11_REG".
8162 (sibcall_internal, sibcall_value_internal):
8163 Change to use the new register constraint, and remove two split
8164 patterns for fixups that are no longer needed.
8166 2022-08-18 Maciej W. Rozycki <macro@embecosm.com>
8168 * config/riscv/riscv.md (*mov<GPR:mode><X:mode>cc): Fix output
8171 2022-08-18 Tim Lange <mail@tim-lange.me>
8174 * doc/invoke.texi: Add Wanalyzer-imprecise-fp-arithmetic.
8176 2022-08-18 Aldy Hernandez <aldyh@redhat.com>
8178 * gimple-range-path.cc (path_range_query::path_range_query): Add
8179 various constructors to take a path.
8180 (path_range_query::~path_range_query): Remove m_alloced_ranger.
8181 (path_range_query::range_on_path_entry): Adjust for m_ranger being
8183 (path_range_query::set_path): Rename to...
8184 (path_range_query::reset_path): ...this and call compute_ranges.
8185 (path_range_query::ssa_range_in_phi): Adjust for m_ranger
8187 (path_range_query::range_defined_in_block): Same.
8188 (path_range_query::compute_ranges_in_block): Same.
8189 (path_range_query::adjust_for_non_null_uses): Same.
8190 (path_range_query::compute_exit_dependencies): Use m_path instead
8192 (path_range_query::compute_ranges): Remove path argument.
8193 (path_range_query::range_of_stmt): Adjust for m_ranger reference.
8194 (path_range_query::compute_outgoing_relations): Same.
8195 * gimple-range-path.h (class path_range_query): Add various
8197 Make compute_ranges and compute_exit_dependencies private.
8198 Rename set_path to reset_path.
8199 Make m_ranger a reference.
8200 Remove m_alloced_ranger.
8201 * tree-ssa-dom.cc (pass_dominator::execute): Adjust constructor to
8203 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Take a
8204 ranger and instantiate a new path_range_query every time.
8205 (ch_base::copy_headers): Pass ranger instead of path_range_query.
8206 * tree-ssa-threadbackward.cc (class back_threader): Remove m_solver.
8207 (back_threader::~back_threader): Remove m_solver.
8208 (back_threader::find_taken_edge_switch): Adjust for m_ranger
8210 (back_threader::find_taken_edge_cond): Same.
8211 (back_threader::dump): Remove m_solver.
8212 (back_threader::back_threader): Move verify_marked_backedges
8213 here from the path_range_query constructor.
8214 * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Move
8215 some code from compute_ranges_from_state here.
8216 (hybrid_jt_simplifier::compute_ranges_from_state): Rename...
8217 (hybrid_jt_simplifier::compute_exit_dependencies): ...to this.
8218 * tree-ssa-threadedge.h (class hybrid_jt_simplifier): Rename
8219 compute_ranges_from_state to compute_exit_dependencies.
8222 2022-08-18 Richard Biener <rguenther@suse.de>
8224 PR middle-end/106617
8225 * match.pd ((a ? b : c) > d -> a ? (b > d) : (c > d)): Fix
8226 guard, disable on GENERIC to not cause quadratic behavior
8227 with the fold-const.cc implementation and the use of !
8229 2022-08-18 Andrew Pinski <apinski@marvell.com>
8231 PR gcov-profile/106659
8232 * gcov-dump.cc (INCLUDE_VECTOR): Include vector.h with
8235 2022-08-18 konglin1 <lingling.kong@intel.com>
8237 * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Handle vector
8239 (ix86_expand_vector_init_duplicate): Support vector BFmode.
8240 (ix86_expand_vector_init_one_nonzero): Ditto.
8241 (ix86_expand_vector_init_one_var): Ditto.
8242 (ix86_expand_vector_init_concat): Ditto.
8243 (ix86_expand_vector_init_interleave): Ditto.
8244 (ix86_expand_vector_init_general): Ditto.
8245 (ix86_expand_vector_init): Ditto.
8246 (ix86_expand_vector_set_var): Ditto.
8247 (ix86_expand_vector_set): Ditto.
8248 (ix86_expand_vector_extract): Ditto.
8249 * config/i386/i386.cc (classify_argument): Add BF vector modes.
8250 (function_arg_64): Ditto.
8251 (ix86_gimplify_va_arg): Ditto.
8252 (ix86_get_ssemov): Ditto.
8253 * config/i386/i386.h (VALID_AVX256_REG_MODE): Add BF vector modes.
8254 (VALID_AVX512F_REG_MODE): Ditto.
8255 (host_detect_local_cpu): Ditto.
8256 (VALID_SSE2_REG_MODE): Ditto.
8257 * config/i386/i386.md: Add BF vector modes.
8259 (ssemodesuffix): Add bf suffix for BF vector modes.
8260 (ssevecmode): Ditto.
8261 * config/i386/sse.md (VMOVE): Adjust for BF vector modes.
8262 (VI12HFBF_AVX512VL): Ditto.
8264 (VF_AVX512HFBF16): Ditto.
8265 (VF_AVX512BWHFBF16): Ditto.
8268 (VIHFBF_256): Ditto.
8269 (VIHFBF_AVX512BW): Ditto.
8270 (VI2F_256_512):Ditto.
8274 (sseinsnmode): Ditto.
8275 (sseconstm1): Ditto.
8276 (sseintmodesuffix): New mode_attr.
8277 (avx512fmaskmode): Ditto.
8278 (avx512fmaskmodelower): Ditto.
8279 (ssedoublevecmode): Ditto.
8280 (ssehalfvecmode): Ditto.
8281 (ssehalfvecmodelower): Ditto.
8282 (ssescalarmode): Add vector BFmode mapping.
8283 (ssescalarmodelower): Ditto.
8284 (ssexmmmode): Ditto.
8285 (ternlogsuffix): Ditto.
8286 (ssescalarsize): Ditto.
8287 (sseintprefix): Ditto.
8290 (bcstscalarsuff): Ditto.
8291 (<avx512>_blendm<mode>): New define_insn for BFmode.
8292 (<avx512>_store<mode>_mask): Ditto.
8293 (vcond_mask_<mode><avx512fmaskmodelower>): Ditto.
8294 (vec_set<mode>_0): New define_insn for BF vector set.
8295 (V8BFH_128): New mode_iterator for BFmode.
8296 (avx512fp16_mov<mode>): Ditto.
8297 (vec_set<mode>): New define_insn for BF vector set.
8298 (@vec_extract_hi_<mode>): Ditto.
8299 (@vec_extract_lo_<mode>): Ditto.
8300 (vec_set_hi_<mode>): Ditto.
8301 (vec_set_lo_<mode>): Ditto.
8302 (*vec_extract<mode>_0): New define_insn_and_split for BF
8304 (*vec_extract<mode>): New define_insn.
8305 (VEC_EXTRACT_MODE): Add BF vector modes.
8306 (PINSR_MODE): Add V8BF.
8308 (pinsr_evex_isa): Ditto.
8309 (<sse2p4_1>_pinsr<ssemodesuffix>): Adjust to support
8310 insert for V8BFmode.
8311 (pbroadcast_evex_isa): Add BF vector modes.
8312 (AVX2_VEC_DUP_MODE): Ditto.
8313 (VEC_INIT_MODE): Ditto.
8314 (VEC_INIT_HALF_MODE): Ditto.
8315 (avx2_pbroadcast<mode>): Adjust to support BF vector mode
8317 (avx2_pbroadcast<mode>_1): Ditto.
8318 (<avx512>_vec_dup<mode>_1): Ditto.
8319 (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>):
8322 2022-08-18 Martin Liska <mliska@suse.cz>
8324 * configure: Regenerate.
8326 2022-08-18 Haochen Gui <guihaoc@gcc.gnu.org>
8329 * config/rs6000/rs6000.md (<u>maddditi4): New pattern for multiply-add.
8330 (<u>madddi4_highpart): New.
8331 (<u>madddi4_highpart_le): New.
8333 2022-08-18 Aldy Hernandez <aldyh@redhat.com>
8335 * gimple-range-path.cc
8336 (path_range_query::compute_exit_dependencies): Use
8337 gimple_range_ssa_names.
8339 2022-08-18 zhongjuzhe <juzhe.zhong@rivai.ai>
8341 * config/riscv/predicates.md: Adjust runtime invariant.
8342 * config/riscv/riscv-modes.def (MAX_BITSIZE_MODE_ANY_MODE): New.
8343 (NUM_POLY_INT_COEFFS): New.
8344 * config/riscv/riscv-protos.h (riscv_initial_elimination_offset):Adjust
8346 * config/riscv/riscv-sr.cc (riscv_remove_unneeded_save_restore_calls):
8347 Adjust runtime invariant.
8348 * config/riscv/riscv.cc (struct riscv_frame_info): Adjust runtime
8350 (enum riscv_microarchitecture_type): Ditto.
8351 (riscv_valid_offset_p): Ditto.
8352 (riscv_valid_lo_sum_p): Ditto.
8353 (riscv_address_insns): Ditto.
8354 (riscv_load_store_insns): Ditto.
8355 (riscv_legitimize_move): Ditto.
8356 (riscv_binary_cost): Ditto.
8357 (riscv_rtx_costs): Ditto.
8358 (riscv_output_move): Ditto.
8359 (riscv_extend_comparands): Ditto.
8360 (riscv_flatten_aggregate_field): Ditto.
8361 (riscv_get_arg_info): Ditto.
8362 (riscv_pass_by_reference): Ditto.
8363 (riscv_elf_select_rtx_section): Ditto.
8364 (riscv_stack_align): Ditto.
8365 (riscv_compute_frame_info): Ditto.
8366 (riscv_initial_elimination_offset): Ditto.
8367 (riscv_set_return_address): Ditto.
8368 (riscv_for_each_saved_reg): Ditto.
8369 (riscv_first_stack_step): Ditto.
8370 (riscv_expand_prologue): Ditto.
8371 (riscv_expand_epilogue): Ditto.
8372 (riscv_can_use_return_insn): Ditto.
8373 (riscv_secondary_memory_needed): Ditto.
8374 (riscv_hard_regno_nregs): Ditto.
8375 (riscv_convert_vector_bits): New.
8376 (riscv_option_override): Adjust runtime invariant.
8377 (riscv_promote_function_mode): Ditto.
8378 * config/riscv/riscv.h (POLY_SMALL_OPERAND_P): New.
8379 (BITS_PER_RISCV_VECTOR): New.
8380 (BYTES_PER_RISCV_VECTOR): New.
8381 * config/riscv/riscv.md: Adjust runtime invariant.
8383 2022-08-18 Lulu Cheng <chenglulu@loongson.cn>
8385 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
8386 Get __tls_get_addr address through got table when disable plt.
8388 2022-08-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8390 * config/xtensa/xtensa.cc (xtensa_expand_prologue):
8391 Use an "addmi" machine instruction for updating the stack pointer
8392 rather than addition/subtraction via hard register A9, if the amount
8393 of change satisfies the literal value conditions of that instruction
8394 when the CALL0 ABI is used.
8395 (xtensa_expand_epilogue): Ditto.
8396 And also inhibit the stack pointer addition of constant zero.
8398 2022-08-17 Roger Sayle <roger@nextmovesoftware.com>
8401 * config/i386/i386-features.cc
8402 (timde_scalar_chain::compute_convert_gain): Replace incorrect use
8403 of XINT with INTVAL (XEXP (src, 1)).
8405 2022-08-17 Aldy Hernandez <aldyh@redhat.com>
8407 * gimple-range-path.cc
8408 (path_range_query::compute_ranges_in_block): Remove
8409 set_root_oracle call.
8410 (path_range_query::compute_ranges): Pass ranger oracle to
8412 * value-relation.cc (path_oracle::reset_path): Set root oracle.
8413 * value-relation.h (path_oracle::reset_path): Add root oracle
8416 2022-08-17 Marek Polacek <polacek@redhat.com>
8419 * diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): Handle
8420 OPT_Wpessimizing_move and OPT_Wredundant_move.
8421 * diagnostic-spec.h (nowarn_spec_t): Add NW_REDUNDANT enumerator.
8423 2022-08-17 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
8424 Jakub Jelinek <jakub@redhat.com>
8427 * common.opt (static-libquadmath): New option.
8428 * gcc.cc (driver_handle_option): Always accept -static-libquadmath.
8429 * config/darwin.h (LINK_SPEC): Handle -static-libquadmath.
8431 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
8433 * lto-cgraph.cc (input_offload_tables): Improve requires diagnostic
8434 when filenames come out identically.
8436 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
8438 PR middle-end/106548
8439 * omp-low.cc (lower_rec_input_clauses): Use build_outer_var_ref
8440 for 'simd' linear-step values that are variable.
8442 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
8443 Chung-Lin Tang <cltang@codesourcery.com>
8446 * gimplify.cc (omp_notice_variable): Call omp_mappable_type
8447 instead of removed langhook.
8448 * omp-general.h (omp_mappable_type): New prototype.
8449 * omp-general.cc (omp_mappable_type): New; moved from ...
8450 * langhooks.cc (lhd_omp_mappable_type): ... here.
8451 * langhooks-def.h (lhd_omp_mappable_type,
8452 LANG_HOOKS_OMP_MAPPABLE_TYPE): Remove.
8453 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remote the latter.
8454 * langhooks.h (struct lang_hooks_for_types): Remove
8457 2022-08-17 Christophe Lyon <christophe.lyon@arm.com>
8459 * config.gcc (arm): Define with_float to hard if target name ends
8462 2022-08-17 Richard Biener <rguenther@suse.de>
8464 * tree-ssa-threadbackward.cc
8465 (back_threader_profitability): Split profitable_path_p
8466 into possibly_profitable_path_p and itself, keep state
8468 (back_threader::m_profit): Remove.
8469 (back_threader::find_paths): Likewise.
8470 (back_threader::maybe_register_path): Take profitability
8471 instance as parameter.
8472 (back_threader::find_paths_to_names): Likewise. Use
8473 possibly_profitable_path_p and avoid the path range query
8474 when the path is currently too large.
8475 (back_threader::find_paths): Fold into ...
8476 (back_threader::maybe_thread_block): ... this.
8477 (get_gimple_control_stmt): Remove.
8478 (back_threader_profitability::possibly_profitable_path_p):
8479 Split out from profitable_path_p, do early profitability
8481 (back_threader_profitability::profitable_path_p): Do final
8482 profitability path after the taken edge has been determined.
8484 2022-08-17 Xi Ruoyao <xry111@xry111.site>
8486 * config/loongarch/loongarch.md (fmax<mode>3): New RTL pattern.
8487 (fmin<mode>3): Likewise.
8489 2022-08-17 Andrew MacLeod <amacleod@redhat.com>
8491 * gimple-range-fold.cc (gimple_range_ssa_names): New.
8492 * gimple-range-fold.h (gimple_range_ssa_names): New prototype.
8493 * gimple-range-gori.cc (range_def_chain::get_def_chain): Move
8494 code to new routine.
8496 2022-08-16 Martin Liska <mliska@suse.cz>
8499 * doc/install.texi: Remove link to www.bullfreeware.com
8501 2022-08-16 Kito Cheng <kito.cheng@sifive.com>
8503 * common/config/riscv/riscv-common.cc (riscv_implied_info): Add
8505 (riscv_ext_version_table): Ditto.
8506 (riscv_ext_flag_table): Ditto.
8507 * config/riscv/riscv-opts.h (MASK_ZFHMIN): New.
8509 (TARGET_ZFHMIN): Ditto.
8510 (TARGET_ZFH): Ditto.
8511 * config/riscv/riscv.cc (riscv_output_move): Handle HFmode move
8513 (riscv_emit_float_compare): Handle HFmode.
8514 * config/riscv/riscv.md (ANYF): Add HF.
8519 (truncdfhf2): Ditto.
8520 (extendhfsf2): Ditto.
8521 (extendhfdf2): Ditto.
8522 (*movhf_hardfloat): Ditto.
8523 (*movhf_softfloat): Make sure not ZFHMIN.
8524 * config/riscv/riscv.opt (riscv_zf_subext): New.
8526 2022-08-16 Kito Cheng <kito.cheng@sifive.com>
8528 * config/riscv/riscv-builtins.cc: include stringpool.h
8529 (riscv_float16_type_node): New.
8530 (riscv_init_builtin_types): Ditto.
8531 (riscv_init_builtins): Call riscv_init_builtin_types.
8532 * config/riscv/riscv-modes.def (HF): New.
8533 * config/riscv/riscv.cc (riscv_output_move): Handle HFmode.
8534 (riscv_mangle_type): New.
8535 (riscv_scalar_mode_supported_p): Ditto.
8536 (riscv_libgcc_floating_mode_supported_p): Ditto.
8537 (riscv_excess_precision): Ditto.
8538 (riscv_floatn_mode): Ditto.
8539 (riscv_init_libfuncs): Ditto.
8540 (TARGET_MANGLE_TYPE): Ditto.
8541 (TARGET_SCALAR_MODE_SUPPORTED_P): Ditto.
8542 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Ditto.
8543 (TARGET_INIT_LIBFUNCS): Ditto.
8544 (TARGET_C_EXCESS_PRECISION): Ditto.
8545 (TARGET_FLOATN_MODE): Ditto.
8546 * config/riscv/riscv.md (mode): Add HF.
8552 (*movhf_softfloat): New.
8554 2022-08-16 Richard Biener <rguenther@suse.de>
8556 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
8557 Do not walk further if we are leaving the current loop.
8559 2022-08-16 Sergei Trofimovich <siarheit@google.com>
8562 * gcc.cc (driver::detect_jobserver): Allocate storage xputenv()
8563 argument using xstrdup().
8565 2022-08-16 Aldy Hernandez <aldyh@redhat.com>
8567 * gimple-range-path.cc (path_range_query::import_p): Rename to...
8568 (path_range_query::exit_dependency_p): ...this.
8569 (path_range_query::dump): Rename imports to exit dependencies.
8570 (path_range_query::compute_ranges_in_phis): Same.
8571 (path_range_query::compute_ranges_in_block): Same.
8572 (path_range_query::adjust_for_non_null_uses): Same.
8573 (path_range_query::compute_ranges): Same.
8574 (path_range_query::compute_phi_relations): Same.
8575 (path_range_query::add_to_imports): Rename to...
8576 (path_range_query::add_to_exit_dependencies): ...this.
8577 (path_range_query::compute_imports): Rename to...
8578 (path_range_query::compute_exit_dependencies): ...this.
8579 * gimple-range-path.h (class path_range_query): Rename imports to
8582 2022-08-16 Martin Liska <mliska@suse.cz>
8584 * value-range-storage.h (class obstack_vrange_allocator): Mark
8586 (class ggc_vrange_allocator): Likewise.
8588 2022-08-16 Martin Liska <mliska@suse.cz>
8590 * value-range-equiv.h (class value_range_equiv): Add virtual
8592 * value-range.h: Likewise.
8594 2022-08-16 Richard Biener <rguenther@suse.de>
8596 PR middle-end/106630
8597 * match.pd ((T)(x * CST) -> (T)x * CST): Restrict to
8598 narrowing conversions.
8600 2022-08-16 Martin Liska <mliska@suse.cz>
8602 * value-range-equiv.h (class value_range_equiv):
8604 2022-08-16 Martin Liska <mliska@suse.cz>
8606 * config/i386/i386-features.h (class general_scalar_chain): Add
8607 final override for a method.
8608 (class timode_scalar_chain): Likewise.
8610 2022-08-16 Richard Biener <rguenther@suse.de>
8612 * doc/invoke.texi (max-jump-thread-paths): Adjust.
8614 2022-08-16 Martin Liska <mliska@suse.cz>
8616 * opts-common.cc (jobserver_info::connect): Open fifo
8617 in non-blocking mode.
8619 2022-08-16 Kewen.Lin <linkw@gcc.gnu.org>
8622 * config/rs6000/mma.md (define_expand movoo): Move TARGET_MMA condition
8623 check to preparation statements and add handlings for !TARGET_MMA.
8624 (define_expand movxo): Likewise.
8626 2022-08-16 Kewen Lin <linkw@linux.ibm.com>
8628 PR tree-optimization/106322
8629 * tree-vect-stmts.cc (vectorizable_call): Don't allow
8630 vect_emulated_vector_p type for both vectype_in and vectype_out.
8632 2022-08-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8634 * common/config/xtensa/xtensa-common.cc
8635 (xtensa_option_optimization_table): Add OPT_fsplit_wide_types_early
8636 for OPT_LEVELS_ALL in order to restore pre-GCC10 behavior.
8638 2022-08-15 Andrew MacLeod <amacleod@redhat.com>
8640 PR tree-optimization/106621
8641 * value-range.cc (irange::set): Check for POLY_INT_CST early.
8643 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
8645 * config/i386/i386-features.cc
8646 (timode_scalar_chain::compute_convert_gain): Provide costs for
8648 (timode_scalar_chain::convert_insn): Handle ASHIFTRT, ROTATERT
8649 and ROTATE just like existing ASHIFT and LSHIFTRT cases.
8650 (timode_scalar_to_vector_candidate_p): Handle all shifts and
8651 rotates by integer constants between 0 and 127.
8653 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
8655 * config/i386/i386-features.cc
8656 (timode_scalar_chain::compute_convert_gain): Provide gains for
8657 comparisons against 0/-1, including "*testti" patterns.
8659 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
8661 PR tree-optimization/64992
8662 PR tree-optimization/98956
8663 * match.pd (ne (lshift @0 @1) 0): Simplify (X << C) != 0 to X
8664 when X is zero_one_valued_p and the shift constant C is valid.
8665 (eq (lshift @0 @1) 0): Likewise, simplify (X << C) == 0 to !X
8666 when X is zero_one_valued_p and the shift constant C is valid.
8668 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
8669 Richard Biener <rguenther@suse.de>
8671 PR tree-optimization/71343
8672 * match.pd (op (lshift @0 @1) (lshift @2 @1)): Optimize the
8673 expression (X<<C) + (Y<<C) to (X+Y)<<C for multiple operators.
8674 (op (rshift @0 @1) (rshift @2 @1)): Likewise, simplify (X>>C)^(Y>>C)
8675 to (X^Y)>>C for binary logical operators, AND, IOR and XOR.
8677 2022-08-15 Richard Biener <rguenther@suse.de>
8679 * gimple-range-path.cc (range_on_path_entry): Just
8680 call range_on_entry.
8682 2022-08-15 Jakub Jelinek <jakub@redhat.com>
8684 PR rtl-optimization/106590
8685 * ifcvt.cc (check_for_cc_cmp_clobbers): New function.
8686 (noce_convert_multiple_sets_1): If SEQ sets or clobbers any regs
8687 mentioned in cc_cmp or rev_cc_cmp, don't consider seq2 for any
8688 further conditional moves.
8690 2022-08-15 konglin1 <lingling.kong@intel.com>
8692 * config/i386/i386-builtin-types.def (BFLOAT16): New primitive type.
8693 * config/i386/i386-builtins.cc : Support __bf16 type for i386 backend.
8694 (ix86_register_bf16_builtin_type): New function.
8695 (ix86_bf16_type_node): New.
8696 (ix86_bf16_ptr_type_node): Ditto.
8697 (ix86_init_builtin_types): Add ix86_register_bf16_builtin_type function call.
8698 * config/i386/i386-modes.def (FLOAT_MODE): Add BFmode.
8699 (ADJUST_FLOAT_FORMAT): Ditto.
8700 * config/i386/i386.cc (classify_argument): Handle BFmode.
8701 (construct_container): Ditto.
8702 (function_value_32): Return __bf16 by %xmm0.
8703 (function_value_64): Return __bf16 by SSE register.
8704 (ix86_output_ssemov): Handle BFmode.
8705 (ix86_legitimate_constant_p): Disable BFmode constant double.
8706 (ix86_secondary_reload): Require gpr as intermediate register
8707 to store __bf16 from sse register when sse4 is not available.
8708 (ix86_scalar_mode_supported_p): Enable __bf16 under sse2.
8709 (ix86_mangle_type): Add manlging for __bf16 type.
8710 (ix86_invalid_conversion): New function for target hook.
8711 (ix86_invalid_unary_op): Ditto.
8712 (ix86_invalid_binary_op): Ditto.
8713 (TARGET_INVALID_CONVERSION): New define for target hook.
8714 (TARGET_INVALID_UNARY_OP): Ditto.
8715 (TARGET_INVALID_BINARY_OP): Ditto.
8716 * config/i386/i386.h (host_detect_local_cpu): Add BFmode.
8717 * config/i386/i386.md ("mode"): Add BFmode.
8720 (HFBF): Add new define_mode_iterator.
8721 (*pushhf_rex64): Change for BFmode.
8722 (*push<mode>_rex64): Ditto.
8724 (*push<mode>): Ditto.
8726 (hfbfconstf): Add new define_mode_attr.
8727 (*mov<mode>_internal): Add BFmode.
8729 2022-08-13 Roger Sayle <roger@nextmovesoftware.com>
8730 Uroš Bizjak <ubizjak@gmail.com>
8732 * config/i386/predicates.md (const_0_to_255_not_mul_8_operand):
8733 New predicate for values between 0/1 and 255, not multiples of 8.
8734 * config/i386/sse.md (ashlv1ti3): Delay lowering of logical left
8735 shifts by constant bit counts.
8736 (*ashlvti3_internal): New define_insn_and_split that lowers
8737 logical left shifts by constant bit counts, that aren't multiples
8738 of 8, before reload.
8739 (lshrv1ti3): Delay lowering of logical right shifts by constant.
8740 (*lshrv1ti3_internal): New define_insn_and_split that lowers
8741 logical right shifts by constant bit counts, that aren't multiples
8742 of 8, before reload.
8743 (ashrv1ti3):: Delay lowering of arithmetic right shifts by
8744 constant bit counts.
8745 (*ashrv1ti3_internal): New define_insn_and_split that lowers
8746 arithmetic right shifts by constant bit counts before reload.
8747 (rotlv1ti3): Delay lowering of rotate left by constant.
8748 (*rotlv1ti3_internal): New define_insn_and_split that lowers
8749 rotate left by constant bits counts before reload.
8750 (rotrv1ti3): Delay lowering of rotate right by constant.
8751 (*rotrv1ti3_internal): New define_insn_and_split that lowers
8752 rotate right by constant bits counts before reload.
8754 2022-08-12 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
8756 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m55 options.
8758 2022-08-12 Jan Hubicka <hubicka@ucw.cz>
8760 PR middle-end/106057
8761 * ipa-devirt.cc (type_or_derived_type_possibly_instantiated_p): New
8763 (possible_polymorphic_call_targets): Use it.
8765 2022-08-12 Andrew Carlotti <andrew.carlotti@arm.com>
8767 * tree-ssa-loop.h: Improve comment
8769 2022-08-12 Jakub Jelinek <jakub@redhat.com>
8771 PR tree-optimization/106506
8772 * tree-ssa-phiopt.cc (spaceship_replacement): Don't punt for
8773 is_cast or orig_use_lhs cases if phi_bb has 3 predecessors.
8775 2022-08-12 Richard Biener <rguenther@suse.de>
8777 PR tree-optimization/106593
8778 * tree-ssa-threadbackward.cc (back_threader::find_paths):
8779 If the imports from the conditional do not satisfy
8780 gimple_range_ssa_p don't try to thread anything.
8782 2022-08-12 Tamar Christina <tamar.christina@arm.com>
8785 * config/aarch64/aarch64-sve.md (*fcmuo<mode>_nor_combine,
8786 *fcmuo<mode>_bic_combine): Don't accept comparisons against zero.
8788 2022-08-12 Tim Lange <mail@tim-lange.me>
8791 * doc/invoke.texi: Add Wanalyzer-out-of-bounds.
8793 2022-08-12 Andrew Pinski <apinski@marvell.com>
8795 * config/aarch64/aarch64.md: Remove comment
8796 about MD_INCLUDES as it is out of date and not needed.
8798 2022-08-11 Richard Biener <rguenther@suse.de>
8800 * gimple-range-path.cc (path_range_query::compute_imports):
8801 Restrict walking SSA defs to blocks inside the path. Track
8802 the same operands as range_def_chain::get_def_chain does.
8804 2022-08-11 Richard Biener <rguenther@suse.de>
8806 PR tree-optimization/106514
8807 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
8808 Compute and unwind both m_imports and interesting on the fly during
8810 (back_threader::find_paths): Compute the original m_imports
8811 from just the SSA uses of the exit conditional. Drop
8812 handling single_succ_to_potentially_threadable_block.
8813 * gimple-range-path.cc (path_range_query::ssa_range_in_phi): Handle
8814 constant PHI arguments without crashing. Use PHI_ARG_DEF_FROM_EDGE.
8816 2022-08-11 Richard Biener <rguenther@suse.de>
8818 * gimple-range-path.h (path_range_query::compute_imports):
8819 Take path as argument, not the exit block.
8820 * gimple-range-path.cc (path_range_query::compute_imports):
8821 Likewise, and adjust, avoiding possibly stale m_path.
8822 (path_range_query::compute_outgoing_relations): Register
8823 relations for all conditionals.
8824 * tree-ssa-threadbackward.cc (back_threader::find_paths):
8827 2022-08-11 Kewen Lin <linkw@linux.ibm.com>
8829 * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Fix the
8830 oversight on ENB_CELL by simplifying with rs6000_builtin_is_supported.
8831 (rs6000_expand_builtin): Simplify with rs6000_builtin_is_supported.
8833 2022-08-11 Kewen Lin <linkw@linux.ibm.com>
8835 * config/rs6000/rs6000-internal.h (rs6000_global_entry_point_needed_p):
8836 Remove function declaration.
8838 2022-08-10 Richard Biener <rguenther@suse.de>
8840 PR tree-optimization/106513
8841 * gimple-ssa-store-merging.cc (do_shift_rotate): Use uint64_t
8844 2022-08-10 Martin Liska <mliska@suse.cz>
8847 * opts-jobserver.h (struct jobserver_info): Add pipefd.
8848 (jobserver_info::connect): New.
8849 (jobserver_info::disconnect): Likewise.
8850 (jobserver_info::get_token): Likewise.
8851 (jobserver_info::return_token): Likewise.
8852 * opts-common.cc: Implement the new functions.
8854 2022-08-10 Martin Liska <mliska@suse.cz>
8856 * opts-jobserver.h: Add one member.
8857 * opts-common.cc (jobserver_info::jobserver_info): Parse FIFO
8858 format of --jobserver-auth.
8860 2022-08-10 Martin Liska <mliska@suse.cz>
8862 * gcc.cc (driver::detect_jobserver): Remove and move to
8864 * lto-wrapper.cc (jobserver_active_p): Likewise.
8865 (run_gcc): Likewise.
8866 * opts-jobserver.h: New file.
8867 * opts-common.cc (jobserver_info::jobserver_info): New function.
8869 2022-08-09 Roger Sayle <roger@nextmovesoftware.com>
8871 * config/i386/i386-features.cc (scalar_chain::convert_compare):
8872 Create new pseudos only when/if needed. Add support for TEST,
8873 i.e. (COMPARE (AND x y) (const_int 0)), using UNSPEC_PTEST.
8874 When broadcasting V2DImode and V4SImode use new pseudo register.
8875 (timode_scalar_chain::convert_op): Do nothing if operand is
8876 already V1TImode. Avoid generating useless SUBREG conversions,
8877 i.e. (SUBREG:V1TImode (REG:V1TImode) 0). Handle CONST_WIDE_INT
8878 in addition to CONST_INT by using CONST_SCALAR_INT_P.
8879 (convertible_comparison_p): Use CONST_SCALAR_INT_P to match both
8880 CONST_WIDE_INT and CONST_INT. Recognize new *testti_doubleword
8881 pattern as an STV candidate.
8882 (timode_scalar_to_vector_candidate_p): Allow CONST_SCALAR_INT_P
8883 operands in binary logic operations.
8884 * config/i386/i386.cc (ix86_rtx_costs) <case UNSPEC>: Add costs
8885 for UNSPEC_PTEST; a PTEST that performs an AND has the same cost
8886 as regular PTEST, i.e. cost->sse_op.
8887 * config/i386/i386.md (*testti_doubleword): New pre-reload
8888 define_insn_and_split that recognizes comparison of TI mode AND
8890 * config/i386/sse.md (*ptest<mode>_and): New pre-reload
8891 define_insn_and_split that recognizes UNSPEC_PTEST of identical
8894 2022-08-09 Roger Sayle <roger@nextmovesoftware.com>
8895 Richard Biener <rguenther@suse.de>
8898 PR tree-optimization/98954
8899 * fold-const.cc (fold_binary_loc): Remove optimizations to
8900 optimize ((X >> C1) & C2) ==/!= 0.
8901 * match.pd (cmp (bit_and (lshift @0 @1) @2) @3): Remove wi::ctz
8902 check, and handle all values of INTEGER_CSTs @2 and @3.
8903 (cmp (bit_and (rshift @0 @1) @2) @3): Likewise, remove wi::clz
8904 checks, and handle all values of INTEGER_CSTs @2 and @3.
8906 2022-08-09 David Malcolm <dmalcolm@redhat.com>
8908 * doc/invoke.texi (Static Analyzer Options): Add notes on which
8909 functions the analyzer has hardcoded knowledge of.
8911 2022-08-09 Andrew Stubbs <ams@codesourcery.com>
8913 * config/gcn/gcn.cc (gcn_function_value): Allow vector return values.
8914 (num_arg_regs): Allow vector arguments.
8915 (gcn_function_arg): Likewise.
8916 (gcn_function_arg_advance): Likewise.
8917 (gcn_arg_partial_bytes): Likewise.
8918 (gcn_return_in_memory): Likewise.
8919 (gcn_expand_epilogue): Get return value from v8.
8920 * config/gcn/gcn.h (RETURN_VALUE_REG): Set to v8.
8921 (FIRST_PARM_REG): USE FIRST_SGPR_REG for clarity.
8922 (FIRST_VPARM_REG): New.
8923 (FUNCTION_ARG_REGNO_P): Allow vector parameters.
8924 (struct gcn_args): Add vnum field.
8925 (LIBCALL_VALUE): All vector return values.
8926 * config/gcn/gcn.md (gcn_call_value): Add vector constraints.
8927 (gcn_call_value_indirect): Likewise.
8929 2022-08-09 Richard Biener <rguenther@suse.de>
8931 * omp-expand.cc (expand_omp_atomic_load): Emit GIMPLE
8932 directly. Avoid update_ssa when in SSA form.
8933 (expand_omp_atomic_store): Likewise.
8934 (expand_omp_atomic_fetch_op): Avoid update_ssa when in SSA
8936 (expand_omp_atomic_pipeline): Likewise.
8937 (expand_omp_atomic_mutex): Likewise.
8938 * tree-parloops.cc (gen_parallel_loop): Use
8939 TODO_update_ssa_no_phi after loop_version.
8941 2022-08-09 Richard Biener <rguenther@suse.de>
8943 * doc/invoke.texi (max-fsm-thread-length): Remove.
8944 * params.opt (max-fsm-thread-length): Likewise.
8945 * tree-ssa-threadbackward.cc
8946 (back_threader_profitability::profitable_path_p): Do not
8947 check max-fsm-thread-length.
8949 2022-08-09 Richard Biener <rguenther@suse.de>
8951 PR tree-optimization/106514
8952 * params.opt (max-jump-thread-paths): New.
8953 * doc/invoke.texi (max-jump-thread-paths): Document.
8954 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
8955 Honor max-jump-thread-paths, take overall_path argument.
8956 (back_threader::find_paths): Pass 1 as initial overall_path.
8958 2022-08-09 Tobias Burnus <tobias@codesourcery.com>
8960 PR middle-end/106492
8961 * omp-low.cc (lower_rec_input_clauses): Add missing folding
8962 to data type of linear-clause list item.
8964 2022-08-08 Andrew MacLeod <amacleod@redhat.com>
8966 PR tree-optimization/106556
8967 * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use the
8968 type of the cond_expr operands being evaluted.
8970 2022-08-08 Tom Honermann <tom@honermann.net>
8972 * ginclude/stdatomic.h (atomic_char8_t,
8973 ATOMIC_CHAR8_T_LOCK_FREE): New typedef and macro.
8975 2022-08-08 Andrew Pinski <apinski@marvell.com>
8977 PR middle-end/103645
8978 * gimplify.cc (gimplify_init_constructor): Don't build/add
8979 gimple assignment of an empty type.
8981 2022-08-08 Richard Biener <rguenther@suse.de>
8985 * dwarf2out.cc (dwarf2out_register_external_die): Restore
8987 * lto-streamer-in.cc (lto_read_tree_1): Use lto_input_tree_1
8988 to input DECL_INITIAL, avoiding to commit drefs.
8990 2022-08-07 Roger Sayle <roger@nextmovesoftware.com>
8992 * config/i386/i386.md (*cmp<dwi>_doubleword): Change predicate
8993 for x86_64_hilo_general_operand to general operand. Call
8994 force_reg on parts that are not x86_64_immediate_operand.
8996 2022-08-05 David Malcolm <dmalcolm@redhat.com>
8999 * doc/invoke.texi: Add -Wanalyzer-jump-through-null.
9001 2022-08-05 Roger Sayle <roger@nextmovesoftware.com>
9003 * expmed.cc (emit_store_flag_1): Move code to expand double word
9004 equality and inequality against zero or -1, using word operations,
9005 to after trying to use the backend's cstore<mode>4 optab/expander.
9007 2022-08-05 Tamar Christina <tamar.christina@arm.com>
9009 PR middle-end/106534
9010 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Guard the
9011 value_replacement and store_elim from diamonds.
9013 2022-08-05 Richard Biener <rguenther@suse.de>
9015 * tree-ssa-threadbackward.cc (back_threader::maybe_register_path):
9016 Check whether the registry register_path rejected the path.
9017 (back_threader_registry::register_path): Return whether
9018 register_jump_thread succeeded.
9020 2022-08-05 Aldy Hernandez <aldyh@redhat.com>
9022 PR tree-optimization/106514
9023 * value-range.cc (unsupported_range::unsupported_range): Move...
9024 * value-range.h (unsupported_range::unsupported_range): ...here.
9025 (unsupported_range::set_undefined): New.
9027 2022-08-05 Richard Biener <rguenther@suse.de>
9029 PR tree-optimization/106533
9030 * tree-loop-distribution.cc (loop_distribution::execute): Continue
9031 analyzing the inner loops when find_seed_stmts_for_distribution
9034 2022-08-05 Andrew Pinski <apinski@marvell.com>
9036 * config/riscv/predicates.md (splittable_const_int_operand):
9037 Remove the check for TARGET_64BIT for single bit const values.
9039 2022-08-04 Andrew MacLeod <amacleod@redhat.com>
9041 PR tree-optimization/106514
9042 * gimple-range-path.cc (path_range_query::compute_ranges_in_block):
9043 Use EXECUTE_IF_AND_IN_BITMAP to loop over 2 bitmaps.
9045 2022-08-04 Tamar Christina <tamar.christina@arm.com>
9047 * match.pd: New bit_not rule.
9049 2022-08-04 Tamar Christina <tamar.christina@arm.com>
9051 PR middle-end/106519
9052 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Check final phi edge for
9055 2022-08-04 Sam Feifer <sfeifer@redhat.com>
9057 PR tree-optimization/106243
9058 * match.pd (-x & 1): New simplification.
9060 2022-08-04 Richard Biener <rguenther@suse.de>
9062 PR tree-optimization/106521
9063 * gimple-loop-jam.cc (tree_loop_unroll_and_jam): Perform
9064 CFG cleanup manually before rewriting into LC SSA.
9066 2022-08-04 Richard Biener <rguenther@suse.de>
9068 * tree-ssa-threadbackward.cc (populate_worklist): Remove.
9069 (back_threader::resolve_phi): Likewise.
9070 (back_threader::find_paths_to_names): Rewrite greedy search.
9072 2022-08-04 Ilya Leoshkevich <iii@linux.ibm.com>
9074 * config/s390/vector.md (V_HW_FT): New iterator.
9075 * config/s390/vx-builtins.md (vsel<mode>): Use V_HW_FT instead
9078 2022-08-03 Michael Meissner <meissner@linux.ibm.com>
9080 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove code
9081 setting -mblock-ops-vector-pair.
9083 2022-08-03 Andrew MacLeod <amacleod@redhat.com>
9085 PR tree-optimization/106514
9086 * value-relation.cc (path_oracle::killing_def) Do not walk the
9087 equivalence set clearing bits.
9089 2022-08-03 Tamar Christina <tamar.christina@arm.com>
9091 * tree-ssa-phiopt.cc (minmax_replacement): Optionally search for the phi
9092 sequence of a three-way conditional.
9093 (replace_phi_edge_with_variable): Support diamonds.
9094 (tree_ssa_phiopt_worker): Detect diamond phi structure for three-way
9096 (strip_bit_not, invert_minmax_code): New.
9098 2022-08-03 Richard Earnshaw <rearnsha@arm.com>
9100 PR rtl-optimization/106187
9101 * alias.h (mems_same_for_tbaa_p): Declare.
9102 * alias.cc (mems_same_for_tbaa_p): New function.
9103 * dse.cc (record_store): Use it instead of open-coding
9105 * cselib.h (cselib_redundant_set_p): Declare.
9106 * cselib.cc: Include alias.h
9107 (cselib_redundant_set_p): New function.
9108 * cfgcleanup.cc: (mark_effect): Use cselib_redundant_set_p instead
9109 of rtx_equal_for_cselib_p.
9110 * postreload.cc (reload_cse_simplify): Use cselib_redundant_set_p.
9111 (reload_cse_noop_set_p): Delete.
9113 2022-08-03 Martin Liska <mliska@suse.cz>
9115 * doc/gcov-dump.texi: Document the new option.
9116 * gcov-dump.cc (main): Parse the new option.
9117 (print_usage): Show the option.
9118 (tag_counters): Sort key:value pairs of TOP N counter.
9120 2022-08-03 Martin Liska <mliska@suse.cz>
9122 * profile.cc (compute_branch_probabilities): Do not collect
9123 stats unless TDF_DETAILS.
9125 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
9126 Uroš Bizjak <ubizjak@gmail.com>
9129 * config/i386/i386.md (peephole2): New peephole2 to convert
9130 SWI48 moves to/from %rax/%eax where the src is dead to xchg,
9131 when optimizing for minimal size with -Oz.
9133 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
9135 * config/i386/i386.md (*cmp<dwi>_doubleword): Add a special case
9136 to split comparisons against -1 using AND and CMP -1 instructions.
9138 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
9140 * config/i386/i386-features.cc (compute_convert_gain): Add gain
9141 for converting suitable TImode shift to a V1TImode shift.
9142 (timode_scalar_chain::convert_insn): Add support for converting
9143 suitable ASHIFT and LSHIFTRT.
9144 (timode_scalar_to_vector_candidate_p): Consider logical shifts
9145 by integer constants that are multiples of 8 to be candidates.
9147 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
9148 Segher Boessenkool <segher@kernel.crashing.org>
9149 Richard Sandiford <richard.sandiford@arm.com>
9151 * simplify-rtx.cc (simplify_unary_operation_1) <ABS>: Add
9152 optimizations for CLRSB, PARITY, POPCOUNT, SS_ABS and LSHIFTRT
9153 that are all positive to complement the existing FFS and
9154 idempotent ABS simplifications.
9155 <SIGN_EXTEND>: Canonicalize SIGN_EXTEND to ZERO_EXTEND when
9156 val_signbit_known_clear_p is true of the operand.
9157 Simplify sign extensions of SUBREG truncations of operands
9158 that are already suitably (zero) extended.
9159 <ZERO_EXTEND>: Simplify zero extensions of SUBREG truncations
9160 of operands that are already suitably zero extended.
9162 2022-08-02 Andrew MacLeod <amacleod@redhat.com>
9164 PR tree-optimization/106510
9165 * gimple-range-fold.cc (fur_source::register_outgoing_edges):
9166 Check for unsupported statements early.
9168 2022-08-02 Andrew MacLeod <amacleod@redhat.com>
9170 PR tree-optimization/106474
9171 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Query
9172 range of equivalences that may contribute to the range.
9174 2022-08-02 Jose E. Marchesi <jose.marchesi@oracle.com>
9176 * btfout.cc (output_asm_btf_vlen_bytes): Do not use the CHAR
9177 encoding bit in BTF.
9179 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
9181 * gimple-range-fold.cc (fold_using_range::range_of_phi): Remove
9183 (tree_lower_bound): New.
9184 (tree_upper_bound): New.
9185 (fold_using_range::range_of_ssa_name_with_loop_info): Convert to
9187 * gimple-range-fold.h (range_of_ssa_name_with_loop_info): Change
9190 2022-08-02 Richard Biener <rguenther@suse.de>
9192 * tree-ssa-threadbackward.cc
9193 (back_threader_profitability::profitable_path_p): Apply
9194 size constraints to all paths again.
9196 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
9198 * range-op-float.cc (finite_operands_p): New.
9199 (frelop_early_resolve): New.
9200 (default_frelop_fold_range): New.
9201 (class foperator_equal): New.
9202 (class foperator_not_equal): New.
9203 (class foperator_lt): New.
9204 (class foperator_le): New.
9205 (class foperator_gt): New.
9206 (class foperator_ge): New.
9207 (class foperator_unordered): New.
9208 (class foperator_ordered): New.
9209 (class foperator_relop_unknown): New.
9210 (floating_op_table::floating_op_table): Add above classes to
9212 * value-range.h (frange::supports_p): Enable.
9214 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
9216 * tree-core.h (struct tree_ssa_name): Add frange_info and
9218 * value-range-storage.cc (vrange_storage::alloc_slot): Add case
9220 (vrange_storage::set_vrange): Same.
9221 (vrange_storage::get_vrange): Same.
9222 (vrange_storage::fits_p): Same.
9223 (frange_storage_slot::alloc_slot): New.
9224 (frange_storage_slot::set_frange): New.
9225 (frange_storage_slot::get_frange): New.
9226 (frange_storage_slot::fits_p): New.
9227 * value-range-storage.h (class frange_storage_slot): New.
9229 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
9231 * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Limit ranger
9234 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
9236 * value-range.cc (frange::set): Initialize m_props and cleanup.
9238 2022-08-02 Richard Biener <rguenther@suse.de>
9240 PR tree-optimization/106497
9241 * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg):
9242 Also verify we can copy EDGE_COPY_SRC_JOINER_BLOCK.
9244 2022-08-02 Martin Liska <mliska@suse.cz>
9246 * profile.cc (compute_branch_probabilities): Dump details only
9248 * symtab.cc (symtab_node::dump_base): Do not dump pointer unless
9249 TDF_ADDRESS is used, it makes comparison harder.
9251 2022-08-02 Richard Biener <rguenther@suse.de>
9253 PR tree-optimization/106498
9254 * omp-expand.cc (expand_omp_taskreg): Do not perform virtual
9256 (expand_omp_for): Or here.
9257 (execute_expand_omp): Instead schedule it here together
9258 with CFG cleanup via TODO.
9260 2022-08-02 Richard Biener <rguenther@suse.de>
9263 * dwarf2out.cc (dwarf2out_register_external_die): Adjust
9266 2022-08-02 Richard Biener <rguenther@suse.de>
9268 PR tree-optimization/106495
9269 * tree-ssa-threadbackward.cc
9270 (back_threader_profitability::profitable_path_p): If known_edge
9271 is probably never executed avoid threading.
9273 2022-08-01 David Malcolm <dmalcolm@redhat.com>
9275 * doc/invoke.texi (-Wanalyzer-putenv-of-auto-var): Fix copy&paste
9278 2022-08-01 Roger Sayle <roger@nextmovesoftware.com>
9279 Uroš Bizjak <ubizjak@gmail.com>
9282 * config/i386/i386-features.cc (timode_scalar_chain::convert_insn):
9283 Convert a CONST_SCALAR_INT_P in a REG_EQUAL note into a V1TImode
9286 2022-08-01 H.J. Lu <hjl.tools@gmail.com>
9289 * config/i386/i386.cc (ix86_ifunc_ref_local_ok): New.
9290 (TARGET_IFUNC_REF_LOCAL_OK): Use it.
9292 2022-08-01 Jose E. Marchesi <jose.marchesi@oracle.com>
9295 * ctfc.h (struct ctf_dtdef): Add field linkage.
9296 * ctfc.cc (ctf_add_function): Set ctti_linkage.
9297 * dwarf2ctf.cc (gen_ctf_function_type): Pass a linkage for
9298 function types and subprograms.
9299 * btfout.cc (btf_asm_func_type): Emit linkage information for the
9301 (btf_dtd_emit_preprocess_cb): Propagate the linkage information
9304 2022-08-01 Andrew Stubbs <ams@codesourcery.com>
9305 Jakub Jelinek <jakub@redhat.com>
9307 * omp-simd-clone.cc (simd_clone_adjust): Convert shift_cnt to match
9310 2022-08-01 Sam Feifer <sfeifer@redhat.com>
9312 PR tree-optimization/104992
9313 * match.pd (x / y * y == x): New simplification.
9315 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
9317 * value-range.cc (tree_compare): New.
9318 (frange::set): Make more general.
9319 (frange::normalize_kind): Cleanup and return bool.
9320 (frange::union_): Use normalize_kind return value.
9321 (frange::intersect): Same.
9322 (frange::verify_range): Remove unnecessary else.
9323 * value-range.h (vrp_val_max): Move before frange class.
9324 (vrp_val_min): Same.
9325 (frange::frange): Remove set to m_type.
9327 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
9329 * value-range.cc (vrange::supports_type_p): Use const_tree.
9330 (irange::supports_type_p): Same.
9331 (frange::supports_type_p): Same.
9332 * value-range.h (Value_Range::supports_type_p): Same.
9333 (irange::supports_p): Same.
9335 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
9337 * gimple-range-fold.cc (fold_using_range::range_of_phi): Only
9338 query SCEV for integers.
9339 (fold_using_range::range_of_ssa_name_with_loop_info): Remove
9342 2022-07-31 Roger Sayle <roger@nextmovesoftware.com>
9344 * config/i386/i386.md (define_expand <any_rotate>ti3): For
9345 rotations by 64 bits use new rot[lr]64ti2_doubleword pattern.
9346 (rot[lr]64ti2_doubleword): New post-reload splitter.
9348 2022-07-31 Roger Sayle <roger@nextmovesoftware.com>
9349 H.J. Lu <hjl.tools@gmail.com>
9352 * config/i386/i386-features.cc (timode_check_non_convertible_regs):
9353 Do nothing if REGNO is set in the REGS bitmap, or is a hard reg.
9354 (timode_remove_non_convertible_regs): Update comment.
9355 Call timode_check_non_convertible_reg on all TImode register
9356 DEFs and USEs in each instruction.
9358 2022-07-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
9360 * config/xtensa/xtensa.md: Change hard register number used in
9361 the split patterns for indirect sibling call fixups from 10 to 11,
9362 the last free one for the CALL0 ABI.
9364 2022-07-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
9366 * config/xtensa/xtensa.cc (xtensa_rtx_costs):
9367 Add new case for IF_THEN_ELSE.
9369 2022-07-29 Andrew Stubbs <ams@codesourcery.com>
9371 * config/gcn/gcn-valu.md (V_INT_noHI): New iterator.
9372 (<expander><mode>3<exec>): Use V_INT_noHI.
9373 (v<expander><mode>3<exec>): Likewise.
9375 2022-07-29 Andrew Stubbs <ams@codesourcery.com>
9377 * config/gcn/gcn.md (one_cmpldi2): New.
9379 2022-07-29 Richard Biener <rguenther@suse.de>
9381 PR tree-optimization/105679
9382 * tree-ssa-threadbackward.cc
9383 (back_threader_profitability::profitable_path_p): Avoid threading
9384 when the entry edge is probably never executed.
9386 2022-07-29 Richard Biener <rguenther@suse.de>
9388 PR tree-optimization/106422
9389 * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg):
9390 Check whether we can copy thread blocks and cancel the thread if not.
9392 2022-07-29 Jakub Jelinek <jakub@redhat.com>
9394 PR middle-end/106449
9395 * omp-expand.cc (expand_omp_simd): Fix up handling of pointer
9396 iterators in non-rectangular simd loops. Unshare fd->loops[i].n2
9397 or n2 before regimplifying it inside of a condition.
9399 2022-07-29 Jakub Jelinek <jakub@redhat.com>
9401 * omp-expand.cc (expand_omp_for_init_counts, expand_omp_for_init_vars,
9402 extract_omp_for_update_vars, expand_omp_for_ordered_loops,
9403 expand_omp_simd): Don't fold_convert second argument to
9404 fold_build_pointer_plus to sizetype.
9406 2022-07-29 Lulu Cheng <chenglulu@loongson.cn>
9408 * config.in: Regenerate.
9409 * config/loongarch/loongarch.h (ASM_PREFERRED_EH_DATA_FORMAT):
9410 Select the value of the macro definition according to whether
9411 HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT is defined.
9412 * configure: Regenerate.
9413 * configure.ac: Reinstate HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT test.
9415 2022-07-29 Richard Biener <rguenther@suse.de>
9417 * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
9418 Use CONVERT_EXPR_CODE_P.
9420 2022-07-29 Richard Biener <rguenther@suse.de>
9422 * tree-vect-patterns.cc (vect_recog_bool_pattern): Use
9423 get_vectype_for_scalar_type instead of
9424 vect_get_vector_types_for_stmt.
9426 2022-07-28 David Malcolm <dmalcolm@redhat.com>
9429 * doc/invoke.texi: Add -Wanalyzer-putenv-of-auto-var.
9431 2022-07-28 David Malcolm <dmalcolm@redhat.com>
9433 * doc/invoke.texi (-fdiagnostics-show-cwe): Use uref rather than
9435 (Static Analyzer Options): Likewise. Add urefs for all of the
9436 warnings that have associated CWE identifiers.
9438 2022-07-28 Maciej W. Rozycki <macro@embecosm.com>
9440 * doc/implement-c.texi (Floating point implementation): Mention
9441 `-fno-trapping-math' in the context of FENV_ACCESS pragma.
9442 * doc/invoke.texi (Optimize Options): Clarify FENV_ACCESS pragma
9443 implication in the descriptions of `-fno-trapping-math' and
9446 2022-07-28 Maciej W. Rozycki <macro@embecosm.com>
9448 * config/riscv/riscv.md (UNSPECV_FSNVSNAN): New constant.
9449 (QUIET_PATTERN): New int attribute.
9450 (f<quiet_pattern>_quiet<ANYF:mode><X:mode>4): Emit the intended
9451 RTL insns entirely within the preparation statements.
9452 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
9453 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Remove
9455 (*riscv_fsnvsnan<mode>2): New insn.
9457 2022-07-28 Richard Biener <rguenther@suse.de>
9459 PR middle-end/106457
9460 * tree.cc (array_at_struct_end_p): Handle array objects
9463 2022-07-28 Jakub Jelinek <jakub@redhat.com>
9465 PR tree-optimization/106099
9466 * internal-fn.def (TRAP): New internal fn.
9467 * internal-fn.h (expand_TRAP): Declare.
9468 * internal-fn.cc (expand_TRAP): Define.
9469 * gimple.cc (gimple_build_builtin_unreachable): For BUILT_IN_TRAP,
9470 use internal fn rather than builtin.
9472 2022-07-27 Andrew Carlotti <andrew.carlotti@arm.com>
9474 * doc/loop.texi: Refer to LOOPS_HAVE_RECORDED_EXITS instead.
9476 2022-07-27 WANG Xuerui <i@xen0n.name>
9478 * doc/invoke.texi: Document -m[no-]explicit-relocs for
9481 2022-07-27 Maciej W. Rozycki <macro@embecosm.com>
9483 * config/riscv/riscv.md (stack_protect_set_<mode>): Remove
9484 duplicate backslashes.
9486 2022-07-27 Maciej W. Rozycki <macro@embecosm.com>
9488 * config/riscv/riscv.cc (riscv_rtx_costs) <IF_THEN_ELSE>: New
9491 2022-07-27 Jakub Jelinek <jakub@redhat.com>
9494 * cgraphunit.cc (cgraph_node::assemble_thunks_and_aliases): Don't
9495 output asm thunks for -dx.
9497 2022-07-27 Jakub Jelinek <jakub@redhat.com>
9499 PR middle-end/106332
9500 * opts-common.cc (candidates_list_and_hint): Add gcc_assert
9501 that candidates is not an empty vector.
9503 2022-07-27 Xi Ruoyao <xry111@xry111.site>
9505 * configure.ac (HAVE_AS_EXPLICIT_RELOCS): Define to 1 if the
9506 assembler supports explicit relocation for LoongArch.
9507 * configure: Regenerate.
9508 * config/loongarch/loongarch-opts.h (HAVE_AS_EXPLICIT_RELOCS):
9509 Define to 0 if not defined.
9510 * config/loongarch/genopts/loongarch.opt.in
9511 (TARGET_EXPLICIT_RELOCS): Default to HAVE_AS_EXPLICIT_RELOCS.
9512 * config/loongarch/loongarch.opt: Regenerate.
9514 2022-07-26 Peter Bergner <bergner@linux.ibm.com>
9517 * expr.cc (count_type_elements): Handle OPAQUE_TYPE.
9519 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
9521 * config/loongarch/loongarch-opts.cc: Modify the output message string
9524 2022-07-26 Martin Liska <mliska@suse.cz>
9526 * doc/tm.texi.in: Fix placement of defmac.
9527 * doc/tm.texi: Copy.
9529 2022-07-26 Martin Liska <mliska@suse.cz>
9531 * doc/tm.texi.in: Fix cross @defmac and @hook.
9532 * doc/tm.texi: Copy.
9534 2022-07-26 Aldy Hernandez <aldyh@redhat.com>
9536 PR tree-optimization/106444
9537 * value-range-pretty-print.cc (vrange_printer::visit): Handle
9539 (vrange_printer::print_irange_bound): Work on wide_int's.
9540 * value-range-pretty-print.h (print_irange_bound): Same.
9541 * value-range.cc (irange::get_nonzero_bits): Handle legacy ranges.
9543 2022-07-26 Richard Biener <rguenther@suse.de>
9545 * tree-ssa-alias.cc (ptr_derefs_may_alias_p): If ptr1
9546 points to a constant continue checking ptr2.
9548 2022-07-26 Andrew Carlotti <Andrew.Carlotti@arm.com>
9550 * config/aarch64/aarch64-builtins.cc
9551 (MODE_d_bf16, MODE_d_f16, MODE_d_f32, MODE_d_f64, MODE_d_s8)
9552 (MODE_d_s16, MODE_d_s32, MODE_d_s64, MODE_d_u8, MODE_d_u16)
9553 (MODE_d_u32, MODE_d_u64, MODE_d_p8, MODE_d_p16, MODE_d_p64)
9554 (MODE_q_bf16, MODE_q_f16, MODE_q_f32, MODE_q_f64, MODE_q_s8)
9555 (MODE_q_s16, MODE_q_s32, MODE_q_s64, MODE_q_u8, MODE_q_u16)
9556 (MODE_q_u32, MODE_q_u64, MODE_q_p8, MODE_q_p16, MODE_q_p64)
9557 (MODE_q_p128): Define macro to map to corresponding mode name.
9558 (QUAL_bf16, QUAL_f16, QUAL_f32, QUAL_f64, QUAL_s8, QUAL_s16)
9559 (QUAL_s32, QUAL_s64, QUAL_u8, QUAL_u16, QUAL_u32, QUAL_u64)
9560 (QUAL_p8, QUAL_p16, QUAL_p64, QUAL_p128): Define macro to map to
9561 corresponding qualifier name.
9562 (LENGTH_d, LENGTH_q): Define macro to map to "" or "q" suffix.
9563 (SIMD_INTR_MODE, SIMD_INTR_QUAL, SIMD_INTR_LENGTH_CHAR): Macro
9564 functions for the above mappings
9565 (VREINTERPRET_BUILTIN2, VREINTERPRET_BUILTINS1, VREINTERPRET_BUILTINS)
9566 (VREINTERPRETQ_BUILTIN2, VREINTERPRETQ_BUILTINS1)
9567 (VREINTERPRETQ_BUILTINS, VREINTERPRET_BUILTIN)
9568 (AARCH64_SIMD_VREINTERPRET_BUILTINS): New macros to create definitions
9569 for all vreinterpret intrinsics
9570 (enum aarch64_builtins): Add vreinterpret function codes
9571 (aarch64_init_simd_intrinsics): New
9572 (handle_arm_neon_h): Improved comment.
9573 (aarch64_general_fold_builtin): Fold vreinterpret calls
9574 * config/aarch64/arm_neon.h
9575 (vreinterpret_p8_f16, vreinterpret_p8_f64, vreinterpret_p8_s8)
9576 (vreinterpret_p8_s16, vreinterpret_p8_s32, vreinterpret_p8_s64)
9577 (vreinterpret_p8_f32, vreinterpret_p8_u8, vreinterpret_p8_u16)
9578 (vreinterpret_p8_u32, vreinterpret_p8_u64, vreinterpret_p8_p16)
9579 (vreinterpret_p8_p64, vreinterpretq_p8_f64, vreinterpretq_p8_s8)
9580 (vreinterpretq_p8_s16, vreinterpretq_p8_s32, vreinterpretq_p8_s64)
9581 (vreinterpretq_p8_f16, vreinterpretq_p8_f32, vreinterpretq_p8_u8)
9582 (vreinterpretq_p8_u16, vreinterpretq_p8_u32, vreinterpretq_p8_u64)
9583 (vreinterpretq_p8_p16, vreinterpretq_p8_p64, vreinterpretq_p8_p128)
9584 (vreinterpret_p16_f16, vreinterpret_p16_f64, vreinterpret_p16_s8)
9585 (vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_s64)
9586 (vreinterpret_p16_f32, vreinterpret_p16_u8, vreinterpret_p16_u16)
9587 (vreinterpret_p16_u32, vreinterpret_p16_u64, vreinterpret_p16_p8)
9588 (vreinterpret_p16_p64, vreinterpretq_p16_f64, vreinterpretq_p16_s8)
9589 (vreinterpretq_p16_s16, vreinterpretq_p16_s32, vreinterpretq_p16_s64)
9590 (vreinterpretq_p16_f16, vreinterpretq_p16_f32, vreinterpretq_p16_u8)
9591 (vreinterpretq_p16_u16, vreinterpretq_p16_u32, vreinterpretq_p16_u64)
9592 (vreinterpretq_p16_p8, vreinterpretq_p16_p64, vreinterpretq_p16_p128)
9593 (vreinterpret_p64_f16, vreinterpret_p64_f64, vreinterpret_p64_s8)
9594 (vreinterpret_p64_s16, vreinterpret_p64_s32, vreinterpret_p64_s64)
9595 (vreinterpret_p64_f32, vreinterpret_p64_u8, vreinterpret_p64_u16)
9596 (vreinterpret_p64_u32, vreinterpret_p64_u64, vreinterpret_p64_p8)
9597 (vreinterpret_p64_p16, vreinterpretq_p64_f64, vreinterpretq_p64_s8)
9598 (vreinterpretq_p64_s16, vreinterpretq_p64_s32, vreinterpretq_p64_s64)
9599 (vreinterpretq_p64_f16, vreinterpretq_p64_f32, vreinterpretq_p64_p128)
9600 (vreinterpretq_p64_u8, vreinterpretq_p64_u16, vreinterpretq_p64_p16)
9601 (vreinterpretq_p64_u32, vreinterpretq_p64_u64, vreinterpretq_p64_p8)
9602 (vreinterpretq_p128_p8, vreinterpretq_p128_p16, vreinterpretq_p128_f16)
9603 (vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64)
9604 (vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16)
9605 (vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16)
9606 (vreinterpretq_p128_u32, vreinterpret_f16_f64, vreinterpret_f16_s8)
9607 (vreinterpret_f16_s16, vreinterpret_f16_s32, vreinterpret_f16_s64)
9608 (vreinterpret_f16_f32, vreinterpret_f16_u8, vreinterpret_f16_u16)
9609 (vreinterpret_f16_u32, vreinterpret_f16_u64, vreinterpret_f16_p8)
9610 (vreinterpret_f16_p16, vreinterpret_f16_p64, vreinterpretq_f16_f64)
9611 (vreinterpretq_f16_s8, vreinterpretq_f16_s16, vreinterpretq_f16_s32)
9612 (vreinterpretq_f16_s64, vreinterpretq_f16_f32, vreinterpretq_f16_u8)
9613 (vreinterpretq_f16_u16, vreinterpretq_f16_u32, vreinterpretq_f16_u64)
9614 (vreinterpretq_f16_p8, vreinterpretq_f16_p128, vreinterpretq_f16_p16)
9615 (vreinterpretq_f16_p64, vreinterpret_f32_f16, vreinterpret_f32_f64)
9616 (vreinterpret_f32_s8, vreinterpret_f32_s16, vreinterpret_f32_s32)
9617 (vreinterpret_f32_s64, vreinterpret_f32_u8, vreinterpret_f32_u16)
9618 (vreinterpret_f32_u32, vreinterpret_f32_u64, vreinterpret_f32_p8)
9619 (vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpretq_f32_f16)
9620 (vreinterpretq_f32_f64, vreinterpretq_f32_s8, vreinterpretq_f32_s16)
9621 (vreinterpretq_f32_s32, vreinterpretq_f32_s64, vreinterpretq_f32_u8)
9622 (vreinterpretq_f32_u16, vreinterpretq_f32_u32, vreinterpretq_f32_u64)
9623 (vreinterpretq_f32_p8, vreinterpretq_f32_p16, vreinterpretq_f32_p64)
9624 (vreinterpretq_f32_p128, vreinterpret_f64_f16, vreinterpret_f64_f32)
9625 (vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_p64)
9626 (vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32)
9627 (vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16)
9628 (vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpretq_f64_f16)
9629 (vreinterpretq_f64_f32, vreinterpretq_f64_p8, vreinterpretq_f64_p16)
9630 (vreinterpretq_f64_p64, vreinterpretq_f64_s8, vreinterpretq_f64_s16)
9631 (vreinterpretq_f64_s32, vreinterpretq_f64_s64, vreinterpretq_f64_u8)
9632 (vreinterpretq_f64_u16, vreinterpretq_f64_u32, vreinterpretq_f64_u64)
9633 (vreinterpret_s64_f16, vreinterpret_s64_f64, vreinterpret_s64_s8)
9634 (vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_f32)
9635 (vreinterpret_s64_u8, vreinterpret_s64_u16, vreinterpret_s64_u32)
9636 (vreinterpret_s64_u64, vreinterpret_s64_p8, vreinterpret_s64_p16)
9637 (vreinterpret_s64_p64, vreinterpretq_s64_f64, vreinterpretq_s64_s8)
9638 (vreinterpretq_s64_s16, vreinterpretq_s64_s32, vreinterpretq_s64_f16)
9639 (vreinterpretq_s64_f32, vreinterpretq_s64_u8, vreinterpretq_s64_u16)
9640 (vreinterpretq_s64_u32, vreinterpretq_s64_u64, vreinterpretq_s64_p8)
9641 (vreinterpretq_s64_p16, vreinterpretq_s64_p64, vreinterpretq_s64_p128)
9642 (vreinterpret_u64_f16, vreinterpret_u64_f64, vreinterpret_u64_s8)
9643 (vreinterpret_u64_s16, vreinterpret_u64_s32, vreinterpret_u64_s64)
9644 (vreinterpret_u64_f32, vreinterpret_u64_u8, vreinterpret_u64_u16)
9645 (vreinterpret_u64_u32, vreinterpret_u64_p8, vreinterpret_u64_p16)
9646 (vreinterpret_u64_p64, vreinterpretq_u64_f64, vreinterpretq_u64_s8)
9647 (vreinterpretq_u64_s16, vreinterpretq_u64_s32, vreinterpretq_u64_s64)
9648 (vreinterpretq_u64_f16, vreinterpretq_u64_f32, vreinterpretq_u64_u8)
9649 (vreinterpretq_u64_u16, vreinterpretq_u64_u32, vreinterpretq_u64_p8)
9650 (vreinterpretq_u64_p16, vreinterpretq_u64_p64, vreinterpretq_u64_p128)
9651 (vreinterpret_s8_f16, vreinterpret_s8_f64, vreinterpret_s8_s16)
9652 (vreinterpret_s8_s32, vreinterpret_s8_s64, vreinterpret_s8_f32)
9653 (vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32)
9654 (vreinterpret_s8_u64, vreinterpret_s8_p8, vreinterpret_s8_p16)
9655 (vreinterpret_s8_p64, vreinterpretq_s8_f64, vreinterpretq_s8_s16)
9656 (vreinterpretq_s8_s32, vreinterpretq_s8_s64, vreinterpretq_s8_f16)
9657 (vreinterpretq_s8_f32, vreinterpretq_s8_u8, vreinterpretq_s8_u16)
9658 (vreinterpretq_s8_u32, vreinterpretq_s8_u64, vreinterpretq_s8_p8)
9659 (vreinterpretq_s8_p16, vreinterpretq_s8_p64, vreinterpretq_s8_p128)
9660 (vreinterpret_s16_f16, vreinterpret_s16_f64, vreinterpret_s16_s8)
9661 (vreinterpret_s16_s32, vreinterpret_s16_s64, vreinterpret_s16_f32)
9662 (vreinterpret_s16_u8, vreinterpret_s16_u16, vreinterpret_s16_u32)
9663 (vreinterpret_s16_u64, vreinterpret_s16_p8, vreinterpret_s16_p16)
9664 (vreinterpret_s16_p64, vreinterpretq_s16_f64, vreinterpretq_s16_s8)
9665 (vreinterpretq_s16_s32, vreinterpretq_s16_s64, vreinterpretq_s16_f16)
9666 (vreinterpretq_s16_f32, vreinterpretq_s16_u8, vreinterpretq_s16_u16)
9667 (vreinterpretq_s16_u32, vreinterpretq_s16_u64, vreinterpretq_s16_p8)
9668 (vreinterpretq_s16_p16, vreinterpretq_s16_p64, vreinterpretq_s16_p128)
9669 (vreinterpret_s32_f16, vreinterpret_s32_f64, vreinterpret_s32_s8)
9670 (vreinterpret_s32_s16, vreinterpret_s32_s64, vreinterpret_s32_f32)
9671 (vreinterpret_s32_u8, vreinterpret_s32_u16, vreinterpret_s32_u32)
9672 (vreinterpret_s32_u64, vreinterpret_s32_p8, vreinterpret_s32_p16)
9673 (vreinterpret_s32_p64, vreinterpretq_s32_f64, vreinterpretq_s32_s8)
9674 (vreinterpretq_s32_s16, vreinterpretq_s32_s64, vreinterpretq_s32_f16)
9675 (vreinterpretq_s32_f32, vreinterpretq_s32_u8, vreinterpretq_s32_u16)
9676 (vreinterpretq_s32_u32, vreinterpretq_s32_u64, vreinterpretq_s32_p8)
9677 (vreinterpretq_s32_p16, vreinterpretq_s32_p64, vreinterpretq_s32_p128)
9678 (vreinterpret_u8_f16, vreinterpret_u8_f64, vreinterpret_u8_s8)
9679 (vreinterpret_u8_s16, vreinterpret_u8_s32, vreinterpret_u8_s64)
9680 (vreinterpret_u8_f32, vreinterpret_u8_u16, vreinterpret_u8_u32)
9681 (vreinterpret_u8_u64, vreinterpret_u8_p8, vreinterpret_u8_p16)
9682 (vreinterpret_u8_p64, vreinterpretq_u8_f64, vreinterpretq_u8_s8)
9683 (vreinterpretq_u8_s16, vreinterpretq_u8_s32, vreinterpretq_u8_s64)
9684 (vreinterpretq_u8_f16, vreinterpretq_u8_f32, vreinterpretq_u8_u16)
9685 (vreinterpretq_u8_u32, vreinterpretq_u8_u64, vreinterpretq_u8_p8)
9686 (vreinterpretq_u8_p16, vreinterpretq_u8_p64, vreinterpretq_u8_p128)
9687 (vreinterpret_u16_f16, vreinterpret_u16_f64, vreinterpret_u16_s8)
9688 (vreinterpret_u16_s16, vreinterpret_u16_s32, vreinterpret_u16_s64)
9689 (vreinterpret_u16_f32, vreinterpret_u16_u8, vreinterpret_u16_u32)
9690 (vreinterpret_u16_u64, vreinterpret_u16_p8, vreinterpret_u16_p16)
9691 (vreinterpret_u16_p64, vreinterpretq_u16_f64, vreinterpretq_u16_s8)
9692 (vreinterpretq_u16_s16, vreinterpretq_u16_s32, vreinterpretq_u16_s64)
9693 (vreinterpretq_u16_f16, vreinterpretq_u16_f32, vreinterpretq_u16_u8)
9694 (vreinterpretq_u16_u32, vreinterpretq_u16_u64, vreinterpretq_u16_p8)
9695 (vreinterpretq_u16_p16, vreinterpretq_u16_p64, vreinterpretq_u16_p128)
9696 (vreinterpret_u32_f16, vreinterpret_u32_f64, vreinterpret_u32_s8)
9697 (vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_s64)
9698 (vreinterpret_u32_f32, vreinterpret_u32_u8, vreinterpret_u32_u16)
9699 (vreinterpret_u32_u64, vreinterpret_u32_p8, vreinterpret_u32_p16)
9700 (vreinterpret_u32_p64, vreinterpretq_u32_f64, vreinterpretq_u32_s8)
9701 (vreinterpretq_u32_s16, vreinterpretq_u32_s32, vreinterpretq_u32_s64)
9702 (vreinterpretq_u32_f16, vreinterpretq_u32_f32, vreinterpretq_u32_u8)
9703 (vreinterpretq_u32_u16, vreinterpretq_u32_u64, vreinterpretq_u32_p8)
9704 (vreinterpretq_u32_p16, vreinterpretq_u32_p64, vreinterpretq_u32_p128)
9705 (vreinterpretq_f64_p128, vreinterpretq_p128_f64, vreinterpret_bf16_u8)
9706 (vreinterpret_bf16_u16, vreinterpret_bf16_u32, vreinterpret_bf16_u64)
9707 (vreinterpret_bf16_s8, vreinterpret_bf16_s16, vreinterpret_bf16_s32)
9708 (vreinterpret_bf16_s64, vreinterpret_bf16_p8, vreinterpret_bf16_p16)
9709 (vreinterpret_bf16_p64, vreinterpret_bf16_f16, vreinterpret_bf16_f32)
9710 (vreinterpret_bf16_f64, vreinterpretq_bf16_u8, vreinterpretq_bf16_u16)
9711 (vreinterpretq_bf16_u32, vreinterpretq_bf16_u64, vreinterpretq_bf16_s8)
9712 (vreinterpretq_bf16_s16, vreinterpretq_bf16_s32, vreinterpretq_bf16_s64)
9713 (vreinterpretq_bf16_p8, vreinterpretq_bf16_p16, vreinterpretq_bf16_p64)
9714 (vreinterpretq_bf16_p128, vreinterpretq_bf16_f16)
9715 (vreinterpretq_bf16_f32, vreinterpretq_bf16_f64, vreinterpret_s8_bf16)
9716 (vreinterpret_s16_bf16, vreinterpret_s32_bf16, vreinterpret_s64_bf16)
9717 (vreinterpret_u8_bf16, vreinterpret_u16_bf16, vreinterpret_u32_bf16)
9718 (vreinterpret_u64_bf16, vreinterpret_f16_bf16, vreinterpret_f32_bf16)
9719 (vreinterpret_f64_bf16, vreinterpret_p8_bf16, vreinterpret_p16_bf16)
9720 (vreinterpret_p64_bf16, vreinterpretq_s8_bf16, vreinterpretq_s16_bf16)
9721 (vreinterpretq_s32_bf16, vreinterpretq_s64_bf16, vreinterpretq_u8_bf16)
9722 (vreinterpretq_u16_bf16, vreinterpretq_u32_bf16, vreinterpretq_u64_bf16)
9723 (vreinterpretq_f16_bf16, vreinterpretq_f32_bf16, vreinterpretq_f64_bf16)
9724 (vreinterpretq_p8_bf16, vreinterpretq_p16_bf16, vreinterpretq_p64_bf16)
9725 (vreinterpretq_p128_bf16): Delete
9727 2022-07-26 Andrew Carlotti <andrew.carlotti@arm.com>
9729 * config/aarch64/aarch64-builtins.cc
9730 (aarch64_simd_builtin_std_type): Rename to...
9731 (aarch64_int_or_fp_type): ...this, and allow irrelevant qualifiers.
9732 (aarch64_lookup_simd_builtin_type): Rename to...
9733 (aarch64_simd_builtin_type): ...this. Add const/pointer
9734 support, and extract table lookup to...
9735 (aarch64_lookup_simd_type_in_table): ...this function.
9736 (aarch64_init_crc32_builtins): Update to use aarch64_simd_builtin_type.
9737 (aarch64_init_fcmla_laneq_builtins): Ditto.
9738 (aarch64_init_simd_builtin_functions): Ditto.
9740 2022-07-26 Andrew Carlotti <andrew.carlotti@arm.com>
9742 * config/aarch64/aarch64-builtins.cc
9743 (aarch64_general_gimple_fold_builtin): Add combine.
9745 2022-07-26 Richard Biener <rguenther@suse.de>
9747 PR tree-optimization/106189
9748 * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
9749 Divide using offset_ints.
9751 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
9753 * common/config/loongarch/loongarch-common.cc:
9754 Enable '-fsection-anchors' when O1 and more advanced optimization.
9755 * config/loongarch/genopts/loongarch.opt.in: Add new option
9756 '-mexplicit-relocs', and enable by default.
9757 * config/loongarch/loongarch-protos.h (loongarch_split_move_insn_p):
9758 Delete function declaration.
9759 (loongarch_split_move_insn): Delete function declaration.
9760 (loongarch_split_symbol_type): Add function declaration.
9761 * config/loongarch/loongarch.cc (enum loongarch_address_type):
9762 Add new address type 'ADDRESS_LO_SUM'.
9763 (loongarch_classify_symbolic_expression): New function definitions.
9764 Classify the base of symbolic expression X, given that X appears in
9766 (loongarch_symbol_insns): Add a judgment condition TARGET_EXPLICIT_RELOCS.
9767 (loongarch_split_symbol_type): New function definitions.
9768 Determines whether the symbol load should be split into two instructions.
9769 (loongarch_valid_lo_sum_p): New function definitions.
9770 Return true if a LO_SUM can address a value of mode MODE when the LO_SUM
9771 symbol has type SYMBOL_TYPE.
9772 (loongarch_classify_address): Add handling of 'LO_SUM'.
9773 (loongarch_address_insns): Add handling of 'ADDRESS_LO_SUM'.
9774 (loongarch_signed_immediate_p): Sort code.
9775 (loongarch_12bit_offset_address_p): Return true if address type is ADDRESS_LO_SUM.
9776 (loongarch_const_insns): Add handling of 'HIGH'.
9777 (loongarch_split_move_insn_p): Add the static attribute to the function.
9778 (loongarch_emit_set): New function definitions.
9779 (loongarch_call_tls_get_addr): Add symbol handling when defining TARGET_EXPLICIT_RELOCS.
9780 (loongarch_legitimize_tls_address): Add symbol handling when defining the
9781 TARGET_EXPLICIT_RELOCS macro.
9782 (loongarch_split_symbol): New function definitions. Split symbol.
9783 (loongarch_legitimize_address): Add codes see if the address can split into a high part
9785 (loongarch_legitimize_const_move): Add codes split moves of symbolic constants into
9787 (loongarch_split_move_insn): Delete function definitions.
9788 (loongarch_output_move): Add support for HIGH and LO_SUM.
9789 (loongarch_print_operand_reloc): New function definitions.
9790 Print symbolic operand OP, which is part of a HIGH or LO_SUM in context CONTEXT.
9791 (loongarch_memmodel_needs_release_fence): Sort code.
9792 (loongarch_print_operand): Rearrange alphabetical order and add H and L to support HIGH
9794 (loongarch_print_operand_address): Add handling of 'ADDRESS_LO_SUM'.
9795 (TARGET_MIN_ANCHOR_OFFSET): Define macro to -IMM_REACH/2.
9796 (TARGET_MAX_ANCHOR_OFFSET): Define macro to IMM_REACH/2-1.
9797 * config/loongarch/loongarch.md (movti): Delete the template.
9798 (*movti): Delete the template.
9799 (movtf): Delete the template.
9800 (*movtf): Delete the template.
9801 (*low<mode>): New template of normal symbol low address.
9802 (@tls_low<mode>): New template of tls symbol low address.
9803 (@ld_from_got<mode>): New template load address from got table.
9804 (@ori_l_lo12<mode>): New template.
9805 * config/loongarch/loongarch.opt: Update from loongarch.opt.in.
9806 * config/loongarch/predicates.md: Add support for symbol_type HIGH.
9808 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
9810 * config/loongarch/constraints.md (a): Delete the constraint.
9811 (b): A constant call not local address.
9812 (h): Delete the constraint.
9813 (t): Delete the constraint.
9814 * config/loongarch/loongarch-opts.cc (loongarch_config_target):
9815 Remove cModel type support other than normal.
9816 * config/loongarch/loongarch-protos.h (enum loongarch_symbol_type):
9817 Add new symbol type 'SYMBOL_PCREL', 'SYMBOL_TLS_IE' and 'SYMBOL_TLS_LE'.
9818 (loongarch_split_symbol): Delete useless function declarations.
9819 (loongarch_split_symbol_type): Delete useless function declarations.
9820 * config/loongarch/loongarch.cc (enum loongarch_address_type):
9821 Delete unnecessary comment information.
9822 (loongarch_symbol_binds_local_p): Modified the judgment order of label
9824 (loongarch_classify_symbol): Return symbol type. If symbol is a label,
9825 or symbol is a local symbol return SYMBOL_PCREL. If is a tls symbol,
9826 return SYMBOL_TLS. If is a not local symbol return SYMBOL_GOT_DISP.
9827 (loongarch_symbolic_constant_p): Add handling of 'SYMBOL_TLS_IE'
9828 'SYMBOL_TLS_LE' and 'SYMBOL_PCREL'.
9829 (loongarch_symbol_insns): Add handling of 'SYMBOL_TLS_IE' 'SYMBOL_TLS_LE'
9831 (loongarch_address_insns): Sort code.
9832 (loongarch_12bit_offset_address_p): Sort code.
9833 (loongarch_14bit_shifted_offset_address_p): Sort code.
9834 (loongarch_call_tls_get_addr): Sort code.
9835 (loongarch_legitimize_tls_address): Sort code.
9836 (loongarch_output_move): Remove schema support for cmodel other than normal.
9837 (loongarch_memmodel_needs_release_fence): Sort code.
9838 (loongarch_print_operand): Sort code.
9839 * config/loongarch/loongarch.h (LARCH_U12BIT_OFFSET_P):
9840 Rename to LARCH_12BIT_OFFSET_P.
9841 (LARCH_12BIT_OFFSET_P): New macro.
9842 * config/loongarch/loongarch.md: Reimplement the function call. Remove schema
9843 support for cmodel other than normal.
9844 * config/loongarch/predicates.md (is_const_call_weak_symbol): Delete this predicate.
9845 (is_const_call_plt_symbol): Delete this predicate.
9846 (is_const_call_global_noplt_symbol): Delete this predicate.
9847 (is_const_call_no_local_symbol): New predicate, determines whether it is a local
9850 2022-07-26 Kewen Lin <linkw@linux.ibm.com>
9853 * config/rs6000/rs6000-p8swap.cc (replace_swapped_aligned_store): Copy
9854 REG_EH_REGION when replacing one store insn having it.
9855 (replace_swapped_aligned_load): Likewise.
9857 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
9859 * Makefile.in (OBJS): Add range-op-float.o.
9860 * range-op.cc (get_float_handler): New.
9861 (range_op_handler::range_op_handler): Save code and type for
9863 (range_op_handler::oeprator bool): Move from header file, and
9864 add support for floats.
9865 (range_op_handler::fold_range): Add support for floats.
9866 (range_op_handler::op1_range): Same.
9867 (range_op_handler::op2_range): Same.
9868 (range_op_handler::lhs_op1_relation): Same.
9869 (range_op_handler::lhs_op2_relation): Same.
9870 (range_op_handler::op1_op2_relation): Same.
9871 * range-op.h (class range_operator_float): New.
9872 (class floating_op_table): New.
9873 * value-query.cc (range_query::get_tree_range): Add case for
9875 * range-op-float.cc: New file.
9877 2022-07-25 Roger Sayle <roger@nextmovesoftware.com>
9878 Uroš Bizjak <ubizjak@gmail.com>
9881 * config/i386/i386-expand.cc (split_double_concat): A new helper
9882 function for setting a double word value from two word values.
9883 * config/i386/i386-protos.h (split_double_concat): Prototype here.
9884 * config/i386/i386.md (zero_extendditi2): New define_insn_and_split.
9885 (*add<dwi>3_doubleword_zext): New define_insn_and_split.
9886 (*sub<dwi>3_doubleword_zext): New define_insn_and_split.
9887 (*concat<mode><dwi>3_1): New define_insn_and_split replacing
9888 previous define_split for implementing DST = (HI<<32)|LO as
9889 pair of move instructions, setting lopart and hipart.
9890 (*concat<mode><dwi>3_2): Likewise.
9891 (*concat<mode><dwi>3_3): Likewise, where HI is zero_extended.
9892 (*concat<mode><dwi>3_4): Likewise, where HI is zero_extended.
9894 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
9896 PR middle-end/106432
9897 * gimple-range.cc (gimple_ranger::range_on_edge): Return false
9898 when the result range type is unsupported.
9900 2022-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
9902 * config/rs6000/rtems.h (CPLUSPLUS_CPP_SPEC): Undef.
9904 2022-07-25 Richard Biener <rguenther@suse.de>
9906 PR middle-end/106414
9907 * match.pd (~(x ^ y) -> x == y): Restrict to single bit
9910 2022-07-25 Andre Vieira <andre.simoesdiasvieira@arm.com>
9912 * config/aarch64/aarch64.md (rbit<mode>2): Rename this ...
9913 (@aarch64_rbit<mode>): ... to this and change it in...
9914 (ffs<mode>2,ctz<mode>2): ... here.
9915 (@aarch64_rev16<mode>): New.
9916 * config/aarch64/aarch64-builtins.cc: (aarch64_builtins):
9917 Define the following enum AARCH64_REV16, AARCH64_REV16L,
9918 AARCH64_REV16LL, AARCH64_RBIT, AARCH64_RBITL, AARCH64_RBITLL.
9919 (aarch64_init_data_intrinsics): New.
9920 (aarch64_general_init_builtins): Add call to
9921 aarch64_init_data_intrinsics.
9922 (aarch64_expand_builtin_data_intrinsic): New.
9923 (aarch64_general_expand_builtin): Add call to
9924 aarch64_expand_builtin_data_intrinsic.
9925 * config/aarch64/arm_acle.h (__clz, __clzl, __clzll, __cls, __clsl,
9926 __clsll, __rbit, __rbitl, __rbitll, __rev, __revl, __revll, __rev16,
9927 __rev16l, __rev16ll, __ror, __rorl, __rorll, __revsh): New.
9929 2022-07-25 Martin Liska <mliska@suse.cz>
9931 * doc/extend.texi: Remove trailing whitespaces.
9932 * doc/invoke.texi: Likewise.
9934 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
9936 * value-range-pretty-print.cc (vrange_printer::visit): New.
9937 (vrange_printer::print_frange_prop): New.
9938 * value-range-pretty-print.h (class vrange_printer): Add visit and
9940 * value-range-storage.h (vrange_allocator::alloc_vrange): Handle frange.
9941 (vrange_allocator::alloc_frange): New.
9942 * value-range.cc (vrange::operator=): Handle frange.
9943 (vrange::operator==): Same.
9944 (frange::accept): New.
9946 (frange::normalize_kind): New.
9947 (frange::union_): New.
9948 (frange::intersect): New.
9949 (frange::operator=): New.
9950 (frange::operator==): New.
9951 (frange::supports_type_p): New.
9952 (frange::verify_range): New.
9953 * value-range.h (enum value_range_discriminator): Handle frange.
9954 (class fp_prop): New.
9955 (FP_PROP_ACCESSOR): New.
9956 (class frange_props): New.
9957 (FRANGE_PROP_ACCESSOR): New.
9958 (class frange): New.
9959 (Value_Range::init): Handle frange.
9960 (Value_Range::operator=): Same.
9961 (Value_Range::supports_type_p): Same.
9962 (frange_props::operator==): New.
9963 (frange_props::union_): New.
9964 (frange_props::intersect): New
9965 (frange::frange): New.
9966 (frange::type): New.
9967 (frange::set_varying): New.
9968 (frange::set_undefined): New.
9970 2022-07-25 Peter Bergner <bergner@linux.ibm.com>
9971 Kewen Lin <linkw@linux.ibm.com>
9974 * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Adjust -mdejagnu-cpu
9975 to filter out all -mtune options.
9977 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
9979 * value-query.cc (range_query::get_value_range): Add assert.
9980 * vr-values.cc (vr_values::range_of_expr): Make sure we don't ICE
9981 on unsupported types in vr_values.
9982 (simplify_using_ranges::simplify): Same.
9984 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
9986 * tree-ssanames.cc (get_nonzero_bits): Return -1 for unsupported
9988 * value-query.cc (get_ssa_name_range_info): Remove precision check.
9990 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
9992 * value-relation.cc (value_relation::set_relation): Remove assert.
9993 (path_oracle::register_relation): Exit when trying to register
9994 same SSA name relations.
9996 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
9998 * gimple-range-cache.cc (ranger_cache::edge_range): Convert to vrange.
9999 (ranger_cache::range_from_dom): Same.
10001 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): Same.
10003 2022-07-24 Roger Sayle <roger@nextmovesoftware.com>
10004 H.J. Lu <hjl.tools@gmail.com>
10008 * config/i386/i386-features.cc (make_vector_copies): Move from
10009 general_scalar_chain to scalar_chain.
10010 (convert_reg): Likewise.
10011 (convert_insn_common): New scalar_chain method split out from
10012 general_scalar_chain convert_insn.
10013 (convert_registers): Move from general_scalar_chain to
10015 (scalar_chain::convert): Call convert_insn_common before calling
10017 (timode_remove_non_convertible_regs): Iterate until there are
10018 no further changes to the candidates.
10019 * config/i386/i386-features.h (scalar_chain::hash_map): Move
10020 from general_scalar_chain.
10021 (scalar_chain::convert_reg): Likewise.
10022 (scalar_chain::convert_insn_common): New shared method.
10023 (scalar_chain::make_vector_copies): Move from general_scalar_chain.
10024 (scalar_chain::convert_registers): Likewise. No longer virtual.
10025 (general_scalar_chain::hash_map): Delete. Moved to scalar_chain.
10026 (general_scalar_chain::convert_reg): Likewise.
10027 (general_scalar_chain::make_vector_copies): Likewise.
10028 (general_scalar_chain::convert_registers): Delete virtual method.
10029 (timode_scalar_chain::convert_registers): Likewise.
10031 2022-07-23 Immad Mir <mirimmad@outlook.com>
10033 * doc/extend.texi: Add fd_arg, fd_arg_read and fd_arg_write under
10034 "Common Function Attributes" section.
10035 * doc/invoke.texi: Add docs to -Wanalyzer-fd-access-mode-mismatch,
10036 -Wanalyzer-use-after-close, -Wanalyzer-fd-use-without-check that these
10037 warnings may be emitted through usage of three function attributes used
10038 for static analysis of file descriptors namely fd_arg, fd_arg_read and
10041 2022-07-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10043 * config/xtensa/xtensa.md (*masktrue_const_bitcmpl):
10044 Add a new insn_and_split pattern, and a few split patterns for
10047 2022-07-22 Richard Sandiford <richard.sandiford@arm.com>
10049 * graphds.cc (graphds_scc): Fix algorithm attribution.
10051 2022-07-22 Richard Biener <rguenther@suse.de>
10053 PR tree-optimization/106403
10054 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Move stored
10055 value valueization after check for IFN_MASKED_STORE or
10058 2022-07-22 Richard Biener <rguenther@suse.de>
10060 PR tree-optimization/106397
10061 * tree-ssa-loop-prefetch.cc (emit_mfence_after_loop): Do
10062 not update SSA form here.
10063 (mark_nontemporal_stores): Return whether we marked any
10064 non-temporal stores and inserted mfence.
10065 (loop_prefetch_arrays): Note when we need to update SSA.
10066 (tree_ssa_prefetch_arrays): Perform required (LC) SSA update
10067 at the end of the pass.
10069 2022-07-22 Richard Biener <rguenther@suse.de>
10071 PR tree-optimization/106387
10072 * tree-vect-stmts.cc (vectorizable_load): Use make_ssa_name
10073 if ptr is not an SSA name.
10075 2022-07-22 liuhongt <hongtao.liu@intel.com>
10078 * config/i386/mmx.md (<code><mode>3): New define_expand, it's
10079 original "<code><mode>3".
10080 (*<code><mode>3): New define_insn, it's original
10081 "<code><mode>3" be extended to handle memory and immediate
10082 operand with ix86_binary_operator_ok. Also adjust define_split
10084 (mmxinsnmode): New mode attribute.
10085 (*mov<mode>_imm): Refactor with mmxinsnmode.
10086 * config/i386/predicates.md
10087 (register_or_x86_64_const_vector_operand): New predicate.
10089 2022-07-22 Will Schmidt <will_schmidt@vnet.ibm.com>
10091 * config/rs6000/altivec.md:
10092 (vstrir_code_<mode>): Rename to...
10093 (vstrir_direct_<mode>): ... this.
10094 (vstrir_p_code_<mode>): Rename to...
10095 (vstrir_p_direct_<mode>): ... this.
10096 (vstril_code_<mode>): Rename to...
10097 (vstril_direct_<mode>): ... this.
10098 (vstril_p_code_<mode>): Rename to...
10099 (vstril_p_direct_<mode>): ... this.
10101 2022-07-22 Will Schmidt <will_schmidt@vnet.ibm.com>
10103 * config/rs6000/rs6000-c.cc: Update comments.
10104 (rs6000_target_modify_macros): Remove bu_mask references.
10105 (rs6000_define_or_undefine_macro): Replace bu_mask reference
10106 with a rs6000_cpu value check.
10107 (rs6000_cpu_cpp_builtins): Remove rs6000_builtin_mask_calculate()
10108 parameter from call to rs6000_target_modify_macros.
10109 * config/rs6000/rs6000-protos.h (rs6000_target_modify_macros,
10110 rs6000_target_modify_macros_ptr): Remove parameter from extern
10112 * config/rs6000/rs6000.cc (rs6000_target_modify_macros_ptr): Remove
10113 parameter from prototype, update calls to this function.
10114 (rs6000_print_builtin_options): Remove prototype, call and function.
10115 (rs6000_builtin_mask_calculate): Remove function.
10116 (rs6000_debug_reg_global): Remove call to rs6000_print_builtin_options.
10117 (rs6000_option_override_internal): Remove rs6000_builtin_mask var
10118 and builtin_mask debug output.
10119 (rs6000_builtin_mask_names): Remove.
10120 (rs6000_pragma_target_parse): Remove prev_bumask, cur_bumask,
10121 diff_bumask references; Update calls to rs6000_target_modify_ptr.
10122 * config/rs6000/rs6000.opt (rs6000_builtin_mask): Remove.
10124 2022-07-21 Sam Feifer <sfeifer@redhat.com>
10126 PR tree-optimization/94920
10127 * match.pd (x >= 0 ? x : 0) + (x <= 0 ? -x : 0): New simplification.
10128 (x <= 0 ? -x : 0): New simplification.
10130 2022-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10133 2022-07-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10135 * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
10136 instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
10138 2022-07-21 Richard Biener <rguenther@suse.de>
10140 PR tree-optimization/106379
10141 * match.pd (~(a ^ b) -> a == b): New pattern.
10143 2022-07-21 Richard Biener <rguenther@suse.de>
10145 PR tree-optimization/106378
10146 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Handle
10147 LEN_STORE, add mode to initialize a may-def and handle
10148 MASK_STORE that way.
10149 (dse_optimize_stmt): Query may-defs. Handle internal
10150 functions LEN_STORE and MASK_STORE similar to how
10151 we handle memory builtins but without byte tracking.
10153 2022-07-21 Richard Biener <rguenther@suse.de>
10155 PR tree-optimization/106365
10156 * tree-ssa-sccvn.cc (pd_data::rhs_off): New field determining
10157 the offset to start encoding of RHS from.
10158 (vn_walk_cb_data::vn_walk_cb_data): Initialize it.
10159 (vn_walk_cb_data::push_partial_def): Allow the first partial
10160 definition to be fully providing the def. Offset RHS
10161 before encoding if requested.
10162 (vn_reference_lookup_3): Initialize def_rhs everywhere.
10163 Add support for .MASK_STORE and .LEN_STORE (partial) definitions.
10165 2022-07-21 Richard Biener <rguenther@suse.de>
10167 * tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): Special-case
10168 store internal functions and IFN_MASK_LOAD, IFN_LEN_LOAD
10169 and IFN_MASK_LOAD_LANES.
10170 (call_may_clobber_ref_p_1): Special-case IFN_MASK_STORE,
10171 IFN_LEN_STORE and IFN_MASK_STORE_LANES.
10173 2022-07-20 Alexander Monakov <amonakov@ispras.ru>
10175 PR rtl-optimization/101347
10176 * builtins.cc (expand_builtin) [BUILT_IN_SETJMP_SETUP]: Move
10177 population of nonlocal_goto_handler_labels from here ...
10178 (expand_builtin) [BUILT_IN_SETJMP_RECEIVER]: ... to here.
10179 * rtlanal.cc (remove_node_from_insn_list): Verify that a
10180 duplicate is not present in the remainder of the list.
10182 2022-07-20 Alexander Monakov <amonakov@ispras.ru>
10184 * rtl.h (remove_node_from_expr_list): Remove declaration.
10185 * rtlanal.cc (remove_node_from_expr_list): Remove (no uses).
10187 2022-07-20 Richard Biener <rguenther@suse.de>
10189 * tree-vect-data-refs.cc (bump_vector_ptr): Return an
10190 invariant updated address when the input was invariant.
10192 2022-07-20 liuhongt <hongtao.liu@intel.com>
10194 * passes.def: (Split pass_cse_sincos to pass_expand_powcabs
10195 and pass_cse_sincos, and move pass_cse_sincos after vectorizer).
10196 * timevar.def (TV_TREE_POWCABS): New timevar.
10197 * tree-pass.h (make_pass_expand_powcabs): Split from pass_cse_sincos.
10198 * tree-ssa-math-opts.cc (gimple_expand_builtin_cabs): Ditto.
10199 (class pass_expand_powcabs): Ditto.
10200 (pass_expand_powcabs::execute): Ditto.
10201 (make_pass_expand_powcabs): Ditto.
10202 (pass_cse_sincos::execute): Remove pow/cabs expand part.
10203 (make_pass_cse_sincos): Ditto.
10205 2022-07-20 Richard Biener <richard.guenther@gmail.com>
10206 Hongtao Liu <hongtao.liu@intel.com>
10208 PR tree-optimization/106010
10209 * tree-complex.cc (init_dont_simulate_again): Lower complex
10211 (expand_complex_move): Also expand COMPLEX_CST for rhs.
10213 2022-07-19 Andrew MacLeod <amacleod@redhat.com>
10215 * gimple-range-cache.cc (ranger_cache::range_from_dom): Check
10216 for incoming ranges on join nodes and add to worklist.
10218 2022-07-19 Andrew MacLeod <amacleod@redhat.com>
10220 * gimple-range-cache.cc (ranger_cache::resolve_dom): New.
10221 (ranger_cache::range_from_dom): Put all nodes to be calculated
10222 in the worklist and resolve after the dom walk.
10223 * gimple-range-cache.h (resolve_dom): New prototype.
10225 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
10227 * tree-cfg.cc (gimple_verify_flow_info): Check placement of
10228 returns_twice calls.
10230 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
10232 * cfghooks.cc (duplicate_block): Expand comment.
10233 * tree-cfg.cc (gimple_can_duplicate_bb_p): Reject blocks with
10234 calls that may return twice.
10236 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
10238 * tree-ssa-sink.cc (select_best_block): Punt if selected block
10239 has incoming abnormal edges.
10241 2022-07-19 Martin Liska <mliska@suse.cz>
10243 * doc/extend.texi: Remove trailing :.
10245 2022-07-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10247 * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
10248 instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
10250 2022-07-19 Richard Biener <rguenther@suse.de>
10252 PR middle-end/106331
10253 * builtins.cc (get_memory_rtx): Compute alignment from
10254 the original address and set MEM_OFFSET to unknown when
10255 we create a MEM_EXPR from the base object of the address.
10257 2022-07-19 Richard Biener <rguenther@suse.de>
10260 * dwarf2out.cc (dwarf2out_register_external_die): Allow
10261 map entry re-use during WPA.
10263 2022-07-19 Roger Sayle <roger@nextmovesoftware.com>
10264 Richard Biener <rguenther@suse.de>
10267 * builtins.cc (fold_builtin_frexp): Call suppress_warning on
10268 COMPOUND_EXPR to silence spurious warning if result isn't used.
10269 (fold_builtin_modf): Likewise.
10270 (do_mpfr_remquo): Likewise.
10272 2022-07-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10274 * config/xtensa/xtensa.cc (xtensa_rtx_costs):
10275 Change the relative cost of '(set (reg) (const_int N))' where
10276 N fits into signed 12-bit from 4 to 0 if optimizing for size.
10277 And use the appropriate macro instead of the bare number 4.
10279 2022-07-18 Andrew MacLeod <amacleod@redhat.com>
10281 PR tree-optimization/106280
10282 * value-relation.cc (dom_oracle::register_relation): Register
10283 transitives only when it is possible for there to be one.
10284 (dom_oracle::set_one_relation): Return NULL if this is an
10287 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
10289 * doc/invoke.texi (RISC-V Options): Add index references for
10290 `mrelax' and `mriscv-attribute'.
10292 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
10294 * doc/invoke.texi (Option Summary): Add missing second space
10295 around `-mstack-protector-guard-reg='.
10297 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
10299 * doc/invoke.texi (Option Summary): Fix `-mno-riscv-attribute'.
10300 (RISC-V Options): Likewise, and `-mriscv-attribute'.
10302 2022-07-18 Claudiu Zissulescu <claziss@gmail.com>
10304 * config/arc/arc-arch.h (arc_tune_attr): Add
10305 ARC_TUNE_ARCHS4X_REL31A variant.
10306 * config/arc/arc.cc (arc_override_options): Tune options for
10308 (arc_sched_issue_rate): Use correct enum.
10309 (arc600_corereg_hazard): Textual change.
10310 (arc_hazard): Add release 310a tunning.
10311 * config/arc/arc.md (tune): Update and take into consideration new
10313 (tune_dspmpy): Likewise.
10314 (tune_store): New attribute.
10315 * config/arc/arc.opt (mtune): New tune option.
10316 * config/arc/arcHS4x.md (hs4x_brcc0, hs4x_brcc1): New cpu units.
10317 (hs4x_brcc_op): New instruction rezervation.
10318 (hs4x_data_store_1_op): Likewise.
10319 * config/arc/arc-cpus.def (hs4x_rel31): New cpu variant.
10320 * config/arc/arc-tables.opt: Regenerate.
10321 * config/arc/t-multilib: Likewise.
10322 * doc/invoke.texi (ARC): Update mcpu and tune sections.
10324 2022-07-18 Richard Biener <rguenther@suse.de>
10326 * tree-loop-distribution.cc (loop_distribution::distribute_loop):
10327 When computing cost-based merging do not disregard builtin
10328 classified partitions in some cases.
10330 2022-07-18 Richard Sandiford <richard.sandiford@arm.com>
10333 * config/arm/arm-builtins.cc (arm_builtin_vectorized_function):
10335 * config/arm/arm-protos.h (arm_builtin_vectorized_function): Delete.
10336 * config/arm/arm.cc (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
10338 * config/arm/arm_neon_builtins.def (copysignf): Delete.
10339 * config/arm/iterators.md (nvrint_pattern): New attribute.
10340 * config/arm/neon.md (<NEON_VRINT:nvrint_pattern><VCVTF:mode>2):
10342 (l<NEON_VCVT:nvrint_pattern><su_optab><VCVTF:mode><v_cmp_result>2):
10344 (neon_copysignf<mode>): Rename to...
10345 (copysign<mode>3): ...this.
10347 2022-07-18 Claudiu Zissulescu <claziss@gmail.com>
10349 * config/arc/arc.cc (arc_expand_epilogue): Adjust the frame
10350 pointer first when in interrupts.
10352 2022-07-18 Richard Biener <rguenther@suse.de>
10354 * tree-loop-distribution.cc (copy_loop_before): Add
10355 the ability to replace the original LC PHI defs.
10356 (generate_loops_for_partition): Pass through a flag
10357 whether to redirect original LC PHI defs.
10358 (generate_code_for_partition): Likewise.
10359 (loop_distribution::distribute_loop): Compute the partition
10360 that should provide the LC PHI defs for common reductions
10361 and pass that down.
10363 2022-07-18 Richard Ball <richard.ball@arm.com>
10365 * config/aarch64/aarch64.cc (aarch64_evpc_trn): Use std:swap.
10366 (aarch64_evpc_uzp): Likewise.
10367 (aarch64_evpc_zip): Likewise.
10369 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
10372 * config/i386/i386.md (*ctzsidi2_<s>ext): New insn_and_split
10373 to recognize any_extend:DI of ctz:SI which is implicitly extended.
10374 (*ctzsidi2_<s>ext_falsedep): New define_insn to model a DImode
10375 extended ctz:SI that has preceding xor to break false dependency.
10377 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
10379 * config/i386/predicates.md (x86_64_const_vector_operand):
10380 Check the operand's mode matches the specified mode argument.
10382 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
10384 * config/i386/sse.md (kunpckhi): Add UNSPEC_MASKOP unspec.
10385 (kunpcksi): Likewise, add UNSPEC_MASKOP unspec.
10386 (kunpckdi): Likewise, add UNSPEC_MASKOP unspec.
10387 (vec_pack_trunc_qi): Update to specify the now required
10388 UNSPEC_MASKOP unspec.
10389 (vec_pack_trunc_<mode>): Likewise.
10391 2022-07-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10393 * config/xtensa/xtensa.md
10394 (*masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
10395 *masktrue_const_shifted_mask): If the immediate for bitwise AND is
10396 represented as '-(1 << N)', decrease the lower bound of N from 12
10397 to 1. And the other immediate for conditional branch is now no
10398 longer limited to zero, but also one of some positive integers.
10399 Finally, remove the checks of some conditions, because the comparison
10400 expressions that don't satisfy such checks are determined as
10401 compile-time constants and thus will be optimized away before
10404 2022-07-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10406 * config/xtensa/xtensa.cc (xtensa_emit_constantsynth): Remove.
10407 (xtensa_constantsynth_2insn): Change to try all three synthetic
10408 methods and to use the one that fits the immediate value of
10409 the seed into a Narrow Move Immediate instruction "MOVI.N"
10410 when the Code Density Option is configured.
10412 2022-07-15 H.J. Lu <hjl.tools@gmail.com>
10415 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
10416 false if callee has indirect_return attribute and caller
10419 2022-07-15 Roger Sayle <roger@nextmovesoftware.com>
10422 * config/i386/i386.md (*andn<dwi>3_doubleword_bmi): Update the
10423 constraints to reflect the output is earlyclobber, unless it is
10424 the same register (pair) as one of the operands.
10426 2022-07-15 David Malcolm <dmalcolm@redhat.com>
10428 * doc/invoke.texi (Static Analyzer Options): Add the new fd
10429 warnings to the initial gccoptlist, and to the list of those
10430 disabled by -fanalyzer-checker=taint.
10432 2022-07-15 Andrew Carlotti <andrew.carlotti@arm.com>
10434 * config/aarch64/aarch64-builtins.cc
10435 (enum aarch64_type_qualifiers): Remove qualifier_internal.
10436 (aarch64_init_simd_builtin_functions): Remove qualifier_internal check.
10438 2022-07-15 Andrew Carlotti <andrew.carlotti@arm.com>
10440 * config/aarch64/aarch64-builtins.cc
10441 (v1di_UP): Add V1DI mode to _UP macros.
10442 * config/aarch64/aarch64-modes.def (VECTOR_MODE): Add V1DI mode.
10443 * config/aarch64/aarch64-simd-builtin-types.def: Use V1DI mode.
10444 * config/aarch64/aarch64-simd.md
10445 (vec_extractv2dfv1df): Replace with...
10446 (vec_extract<mode><V1half>): ...this.
10447 * config/aarch64/aarch64.cc
10448 (aarch64_classify_vector_mode): Add V1DI mode.
10449 * config/aarch64/iterators.md
10450 (VQ_2E, V1HALF, V1half): New.
10451 (nunits): Add V1DI mode.
10453 2022-07-15 Roger Sayle <roger@nextmovesoftware.com>
10456 * config/i386/i386-features.cc (general_scalar_chain::convert_insn):
10457 Fix indentation whitespace.
10458 (timode_scalar_chain::fix_debug_reg_uses): Likewise.
10459 (timode_scalar_chain::convert_insn): Delete dead code.
10460 Update TImode REG_EQUAL_NOTE even if the SET_DEST is already V1TI.
10461 Fix indentation whitespace.
10462 (convertible_comparison_p): Likewise.
10463 (timode_scalar_to_vector_candidate_p): Likewise.
10465 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
10467 * gimple-pretty-print.cc (dump_ssaname_info): Use pp_vrange.
10469 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
10471 * Makefile.in (OBJS): Add value-range-pretty-print.o.
10472 * pretty-print.h (pp_vrange): New.
10473 * value-range.cc (vrange::dump): Call pp version.
10474 (unsupported_range::dump): Move to its own file.
10475 (dump_bound_with_infinite_markers): Same.
10476 (irange::dump): Same.
10477 (irange::dump_bitmasks): Same.
10478 (vrange::debug): Remove.
10479 * value-range.h: Remove virtual designation for dump methods.
10480 Remove dump_bitmasks method.
10481 * value-range-pretty-print.cc: New file.
10482 * value-range-pretty-print.h: New file.
10484 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
10486 * value-range.cc (irange::accept): New.
10487 (unsupported_range::accept): New.
10488 * value-range.h (class vrange_visitor): New.
10489 (class vrange): Add accept method.
10490 (class unsupported_range): Same.
10491 (class Value_Range): Same.
10493 2022-07-15 Jonathan Wakely <jwakely@redhat.com>
10495 * diagnostic-format-json.cc (json_from_location_range): Adjust
10496 to new label_text API.
10497 * diagnostic-format-sarif.cc (sarif_builder::make_location_object):
10499 * diagnostic-show-locus.cc (struct pod_label_text): Likewise.
10500 (layout::print_any_labels): Likewise.
10501 * tree-diagnostic-path.cc (class path_label): Likewise.
10502 (struct event_range): Likewise.
10503 (default_tree_diagnostic_path_printer): Likewise.
10504 (default_tree_make_json_for_path): Likewise.
10506 2022-07-15 konglin1 <lingling.kong@intel.com>
10509 * config/i386/i386-builtin.def (BDESC): Fix [u]comi{ss,sd}
10510 comparison due to intrinsics changed over time.
10511 * config/i386/i386-expand.cc (ix86_ssecom_setcc):
10512 Add unordered check and mode for sse comi codegen.
10513 (ix86_expand_sse_comi): Add unordered check and check a different
10515 (ix86_expand_sse_comi_round):Extract unordered check and mode part
10516 in ix86_ssecom_setcc.
10518 2022-07-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10520 * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Use
10521 op_mode instead of vmode in calls to force_reg for op0 and op1.
10523 2022-07-14 H.J. Lu <hjl.tools@gmail.com>
10525 PR tree-optimization/103798
10526 * tree-ssa-forwprop.cc: Include "tree-ssa-strlen.h".
10527 (simplify_builtin_call): Inline memchr with constant strings of
10528 no more than the bytes of a word.
10529 * tree-ssa-strlen.cc (use_in_zero_equality): Make it global.
10530 * tree-ssa-strlen.h (use_in_zero_equality): New.
10532 2022-07-14 Eric Botcazou <ebotcazou@adacore.com>
10534 * gimplify.cc (lookup_tmp_var): Add NOT_GIMPLE_REG boolean parameter
10535 and set DECL_NOT_GIMPLE_REG_P on the variable according to it.
10536 (internal_get_tmp_var): Add NOT_GIMPLE_REG boolean parameter and
10537 pass it in the call to lookup_tmp_var.
10538 (get_formal_tmp_var): Pass false in the call to lookup_tmp_var.
10539 (get_initialized_tmp_var): Likewise.
10540 (prepare_gimple_addressable): Call internal_get_tmp_var instead of
10541 get_initialized_tmp_var with NOT_GIMPLE_REG set to true.
10543 2022-07-14 Martin Liska <mliska@suse.cz>
10545 * doc/gimple.texi: Close properly a deftypefn.
10547 2022-07-14 Martin Liska <mliska@suse.cz>
10549 * doc/gimple.texi: Close properly a deftypefn.
10551 2022-07-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10553 * config/xtensa/xtensa.md:
10554 In FP constant synthesis split pattern, subcontract to
10555 avoid_constant_pool_reference() as in the case of integer,
10556 because it can handle well too. And cast to int32_t before
10557 calling xtensa_constantsynth() in order to ignore upper 32-bit.
10559 2022-07-13 Aldy Hernandez <aldyh@redhat.com>
10561 * range-op.cc (operator_lt::fold_range): Use nonzero bits.
10563 2022-07-13 Aldy Hernandez <aldyh@redhat.com>
10565 * value-range.cc (irange::copy_to_legacy): Set nonzero mask.
10566 (irange::legacy_intersect): Clear nonzero mask.
10567 (irange::legacy_union): Same.
10568 (irange::invert): Same.
10570 2022-07-13 Richard Biener <rguenther@suse.de>
10572 * tree-ssa-dom.h (record_temporary_equivalences): Remove.
10573 * tree-ssa-dom.cc (dom_jt_state::m_blocks_on_stack): New.
10574 (dom_jt_state::get_blocks_on_stack): Likewise.
10575 (dom_opt_dom_walker::dom_opt_dom_walker): Take dom_jt_state.
10576 (back_propagate_equivalences): Remove dominator bitmap
10577 compute and instead use passed in m_blocks_on_stack.
10578 (record_temporary_equivalences): Likewise.
10579 (record_equivalences_from_incoming_edge): Likewise.
10580 (dom_opt_dom_walker::before_dom_children): Maintain and
10581 pass down blocks on stack.
10582 (dom_opt_dom_walker::after_dom_children): Likewise.
10584 2022-07-13 Andrew Carlotti <andrew.carlotti@arm.com>
10586 * config/aarch64/aarch64-builtins.cc
10587 (aarch64_general_gimple_fold_builtin): Add fixup for invalid GIMPLE.
10589 2022-07-13 Richard Biener <rguenther@suse.de>
10591 PR tree-optimization/106249
10592 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop):
10593 Only verify LC SSA of the new_loop if we created it.
10594 Use TODO_update_ssa_nophi for the SSA update after versioning
10597 2022-07-12 Aldy Hernandez <aldyh@redhat.com>
10599 * range-op.cc (unsigned_singleton_p): Remove.
10600 (operator_bitwise_and::remove_impossible_ranges): Remove.
10601 (operator_bitwise_and::fold_range): Set nonzero bits. *
10602 * value-range.cc (irange::get_nonzero_bits): Remove
10603 legacy_mode_p assert.
10604 (irange::dump_bitmasks): Remove legacy_mode_p check.
10606 2022-07-12 Richard Sandiford <richard.sandiford@arm.com>
10609 * predict.h (insn_optimization_type): Declare.
10610 * predict.cc (insn_optimization_type): New function.
10611 * internal-fn.def (IFN_ICEIL, IFN_IFLOOR, IFN_IRINT, IFN_IROUND)
10612 (IFN_LCEIL, IFN_LFLOOR, IFN_LRINT, IFN_LROUND, IFN_LLCEIL)
10613 (IFN_LLFLOOR, IFN_LLRINT, IFN_LLROUND): New internal functions.
10614 * internal-fn.cc (unary_convert_direct): New macro.
10615 (expand_convert_optab_fn): New function.
10616 (expand_unary_convert_optab_fn): New macro.
10617 (direct_unary_convert_optab_supported_p): Likewise.
10618 * optabs.cc (expand_sfix_optab): Pass insn_optimization_type to
10619 convert_optab_handler.
10620 * config/aarch64/aarch64-protos.h
10621 (aarch64_builtin_vectorized_function): Delete.
10622 * config/aarch64/aarch64-builtins.cc
10623 (aarch64_builtin_vectorized_function): Delete.
10624 * config/aarch64/aarch64.cc
10625 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Delete.
10626 * config/i386/i386.cc (ix86_optab_supported_p): Handle lround_optab.
10627 * config/i386/i386.md (lround<X87MODEF:mode><SWI248x:mode>2): Remove
10628 optimize_insn_for_size_p test.
10630 2022-07-12 Richard Biener <rguenther@suse.de>
10632 * tree-vect-loop-manip.cc (create_lcssa_for_virtual_phi):
10634 (vect_do_peeling): Do not call it, adjust comment.
10636 2022-07-12 Richard Sandiford <richard.sandiford@arm.com>
10638 * config/aarch64/aarch64-builtins.cc
10639 (aarch64_builtin_vectorized_function): Remove handling of
10640 floor, ceil, trunc, round, nearbyint, sqrt, clz and ctz.
10642 2022-07-11 Andrew MacLeod <amacleod@redhat.com>
10644 PR tree-optimization/106234
10645 * gimple-range-cache.cc (ranger_cache::range_from_dom): Check dominator
10646 cache value before recursively resolving it.
10648 2022-07-11 Roger Sayle <roger@nextmovesoftware.com>
10650 * config/i386/i386-features.h (scalar_chain): Add fields
10651 insns_conv, n_sse_to_integer and n_integer_to_sse to this
10652 parent class, moved from general_scalar_chain.
10653 (scalar_chain::convert_compare): Protected method moved
10654 from general_scalar_chain.
10655 (mark_dual_mode_def): Make protected, not private virtual.
10656 (scalar_chain:convert_op): New private virtual method.
10657 (general_scalar_chain::general_scalar_chain): Simplify constructor.
10658 (general_scalar_chain::~general_scalar_chain): Delete destructor.
10659 (general_scalar_chain): Move insns_conv, n_sse_to_integer and
10660 n_integer_to_sse fields to parent class, scalar_chain.
10661 (general_scalar_chain::mark_dual_mode_def): Delete prototype.
10662 (general_scalar_chain::convert_compare): Delete prototype.
10663 (timode_scalar_chain::compute_convert_gain): Remove simplistic
10664 implementation, convert to a method prototype.
10665 (timode_scalar_chain::mark_dual_mode_def): Delete prototype.
10666 (timode_scalar_chain::convert_op): Prototype new virtual method.
10667 * config/i386/i386-features.cc (scalar_chain::scalar_chain):
10668 Allocate insns_conv and initialize n_sse_to_integer and
10669 n_integer_to_sse fields in constructor.
10670 (scalar_chain::scalar_chain): Free insns_conv in destructor.
10671 (general_scalar_chain::general_scalar_chain): Delete
10672 constructor, now defined in the class declaration.
10673 (general_scalar_chain::~general_scalar_chain): Delete destructor.
10674 (scalar_chain::mark_dual_mode_def): Renamed from
10675 general_scalar_chain::mark_dual_mode_def.
10676 (timode_scalar_chain::mark_dual_mode_def): Delete.
10677 (scalar_chain::convert_compare): Renamed from
10678 general_scalar_chain::convert_compare.
10679 (timode_scalar_chain::compute_convert_gain): New method to
10680 determine the gain from converting a TImode chain to V1TImode.
10681 (timode_scalar_chain::convert_op): New method to convert an
10682 operand from TImode to V1TImode.
10683 (timode_scalar_chain::convert_insn) <case REG>: Only PUT_MODE
10684 on REG_EQUAL notes that were originally TImode (not CONST_INT).
10685 Handle AND, ANDN, XOR, IOR, NOT and COMPARE.
10686 (timode_mem_p): Helper predicate to check where operand is
10687 memory reference with sufficient alignment for TImode STV.
10688 (timode_scalar_to_vector_candidate_p): Use convertible_comparison_p
10689 to check whether COMPARE is convertible. Handle SET_DESTs that
10690 that are REG_P or MEM_P and SET_SRCs that are REG, CONST_INT,
10691 CONST_WIDE_INT, MEM, AND, ANDN, IOR, XOR or NOT.
10693 2022-07-11 Richard Sandiford <richard.sandiford@arm.com>
10695 PR tree-optimization/106250
10696 * tree-vect-loop.cc (vectorizable_reduction): Reinstate final
10697 argument to directly_supported_p.
10699 2022-07-11 Richard Biener <rguenther@suse.de>
10701 * tree-into-ssa.cc (update_ssa): Do not forcefully
10702 re-compute dominance fast queries for TODO_update_ssa_no_phi.
10704 2022-07-11 Richard Biener <rguenther@suse.de>
10706 PR tree-optimization/106228
10707 * tree-vect-data-refs.cc (vect_setup_realignment): Adjust
10708 VUSE compute for the non-loop case.
10710 2022-07-11 Richard Biener <rguenther@suse.de>
10712 * tree-into-ssa.cc (rewrite_mode::REWRITE_UPDATE_REGION): New.
10713 (rewrite_update_dom_walker::rewrite_update_dom_walker): Update.
10714 (rewrite_update_dom_walker::m_in_region_flag): New.
10715 (rewrite_update_dom_walker::before_dom_children): If the region
10716 to update is marked, STOP at exits.
10717 (rewrite_blocks): For REWRITE_UPDATE_REGION mark the region
10719 (dump_update_ssa): Use bitmap_empty_p.
10720 (update_ssa): Likewise. Use REWRITE_UPDATE_REGION when
10721 TODO_update_ssa_no_phi.
10722 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Account
10723 pending update_ssa to the caller.
10725 2022-07-11 Richard Biener <rguenthert@suse.de>
10728 * config/i386/i386-options.cc (ix86_set_current_function):
10729 Rebuild the target optimization node whenever necessary,
10730 not only when the optimization node didn't change.
10732 2022-07-11 Richard Biener <rguenther@suse.de>
10734 PR tree-optimization/106228
10735 * tree-vect-data-refs.cc (vect_setup_realignment): Properly
10736 set a VUSE operand on the emitted load.
10738 2022-07-11 Aldy Hernandez <aldyh@redhat.com>
10740 * gimple-range.cc (gimple_ranger::export_global_ranges): Remove
10741 verification against legacy value_range.
10742 (gimple_ranger::register_inferred_ranges): Same.
10743 (gimple_ranger::export_global_ranges): Rename update_global_range
10745 * tree-core.h (struct range_info_def): Remove.
10746 (struct irange_storage_slot): New.
10747 (struct tree_base): Remove SSA_NAME_ANTI_RANGE_P documentation.
10748 (struct tree_ssa_name): Add vrange_storage support.
10749 * tree-ssanames.cc (range_info_p): New.
10750 (range_info_fits_p): New.
10751 (range_info_alloc): New.
10752 (range_info_free): New.
10753 (range_info_get_range): New.
10754 (range_info_set_range): New.
10755 (set_range_info_raw): Remove.
10756 (set_range_info): Adjust to use vrange_storage.
10757 (set_nonzero_bits): Same.
10758 (get_nonzero_bits): Same.
10759 (duplicate_ssa_name_range_info): Remove overload taking
10761 Rewrite tree overload to use vrange_storage.
10762 (duplicate_ssa_name_fn): Adjust to use vrange_storage.
10763 * tree-ssanames.h (struct range_info_def): Remove.
10764 (set_range_info): Adjust prototype to take vrange.
10765 * tree-vrp.cc (vrp_asserts::remove_range_assertions): Call
10766 duplicate_ssa_name_range_info.
10767 * tree.h (SSA_NAME_ANTI_RANGE_P): Remove.
10768 (SSA_NAME_RANGE_TYPE): Remove.
10769 * value-query.cc (get_ssa_name_range_info): Adjust to use
10771 (update_global_range): Remove.
10772 (get_range_global): Remove as_a<irange>.
10773 * value-query.h (update_global_range): Remove.
10774 * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges):
10775 Rename update_global_range to set_range_info.
10776 * value-range-storage.cc (vrange_storage::alloc_slot): Remove
10779 2022-07-10 Aldy Hernandez <aldyh@redhat.com>
10781 * value-range.cc (irange::operator=): Call verify_range.
10782 (irange::irange_set): Normalize kind after everything else has
10784 (irange::irange_set_anti_range): Same.
10785 (irange::set): Same.
10786 (irange::verify_range): Disallow nonzero masks for VARYING.
10787 (irange::irange_union): Call verify_range.
10788 Handle nonzero masks better.
10789 (irange::irange_intersect): Same.
10790 (irange::set_nonzero_bits): Calculate mask if either range has an
10792 (irange::intersect_nonzero_bits): Same.
10793 (irange::union_nonzero_bits): Same.
10794 (range_tests_nonzero_bits): New.
10795 (range_tests): Call range_tests_nonzero_bits.
10796 * value-range.h (class irange): Remove set_nonzero_bits method
10798 (irange::varying_compatible_p): Set nonzero mask.
10800 2022-07-10 Xi Ruoyao <xry111@xry111.site>
10802 * config/loongarch/loongarch.md (<any_div>di3_fake): Describe
10803 the sign-extend of result in the RTL template.
10804 (<any_div><mode>3): Adjust for <any_div>di3_fake change.
10806 2022-07-10 Xi Ruoyao <xry111@xry111.site>
10808 * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
10809 Remove static, for use in the machine description file.
10810 * config/loongarch/loongarch-protos.h:
10811 (loongarch_check_zero_div_p): Add prototype.
10812 * config/loongarch/loongarch.md (enabled): New attr.
10813 (*<optab><mode>3): Add (=r,r,r) and (=&r,0,r) alternatives for
10814 idiv. Conditionally enable the alternatives using
10815 loongarch_check_zero_div_p.
10816 (<optab>di3_fake): Likewise.
10818 2022-07-10 Xi Ruoyao <xry111@xry111.site>
10820 * config/loongarch/loongarch.md (mulsidi3_64bit): Use mulw.d.w
10823 2022-07-09 Aldy Hernandez <aldyh@redhat.com>
10825 * value-range.cc (irange::irange_single_pair_union): Set
10826 VR_VARYING when appropriate.
10828 2022-07-09 Vit Kabele <vit.kabele@sysgo.com>
10830 * stor-layout.cc (finalize_record_size): Extend warning message.
10832 2022-07-09 Sam Feifer <sfeifer@redhat.com>
10834 PR tree-optimization/98304
10835 * match.pd (n - (((n > C1) ? n : C1) & -C2)): New simplification.
10837 2022-07-09 Jeff Law <jeffreyalaw@gmail.com>
10839 * expr.cc (store_expr): Identify trailing NULs in a STRING_CST
10840 initializer and use clear_storage rather than copying the
10841 NULs to the destination array.
10843 2022-07-09 Roger Sayle <roger@nextmovesoftware.com>
10845 * config/i386/i386.md (define_peephole2): Use match_operand of
10846 flags_reg_operand to capture and preserve the mode of FLAGS_REG.
10847 (define_peephole2): Likewise.
10848 (define_peephole2): Likewise...
10850 2022-07-09 Roger Sayle <roger@nextmovesoftware.com>
10852 * config/i386/i386-features.cc (convert_compare): Add support
10853 for *testdi_not_doubleword pattern, "(compare (and (not ...)))"
10854 by generating a pandn followed by ptest.
10855 (convertible_comparison_p): Recognize both *cmpdi_doubleword and
10856 recent *testdi_not_doubleword comparison patterns.
10858 2022-07-09 Tamar Christina <tamar.christina@arm.com>
10860 * config/s390/s390.cc (s390_expand_atomic): Pass false to store_bit_field to
10861 indicate that the value is not undefined.
10863 2022-07-09 Andrew Pinski <apinski@marvell.com>
10865 PR tree-optimization/106087
10866 * tree-ssa-dce.cc (simple_dce_from_worklist): Check
10867 to make sure the statement is only defining one operand.
10869 2022-07-08 Lewis Hyatt <lhyatt@gmail.com>
10871 PR preprocessor/91733
10872 * input.cc (find_end_of_line): New helper function.
10873 (file_cache_slot::get_next_line): Recognize \r as a line ending.
10874 * diagnostic-show-locus.cc (test_escaping_bytes_1): Adapt selftest
10875 since \r will now be interpreted as a line-ending.
10877 2022-07-08 Martin Liska <mliska@suse.cz>
10879 PR sanitizer/106132
10880 * opts.cc (finish_options): Use 2 calls to
10881 report_conflicting_sanitizer_options.
10883 2022-07-08 Richard Biener <rguenther@suse.de>
10885 PR tree-optimization/106226
10886 * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
10887 no SSA update is needed. Move virtual SSA update ...
10888 * tree-vectorizer.cc (pass_vectorize::execute): ... here,
10889 via forced virtual renaming when TODO_update_ssa_only_virtuals
10891 (vect_transform_loops): Return TODO_update_ssa_only_virtuals
10892 when virtual SSA update is required.
10893 (try_vectorize_loop_1): Adjust.
10894 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Allow
10895 virtual renaming if the ABI forces an aggregate return
10896 but the original call did not have a virtual definition.
10898 2022-07-08 Martin Liska <mliska@suse.cz>
10900 * toplev.cc (init_asm_output): Do not init asm_out_file.
10902 2022-07-08 Tamar Christina <tamar.christina@arm.com>
10904 PR tree-optimization/106063
10905 * match.pd: Do not apply pattern after veclower is not supported.
10907 2022-07-08 Thomas Schwinge <thomas@codesourcery.com>
10909 * lto-cgraph.cc (input_offload_tables) <LTO_symtab_edge>: Correct
10912 2022-07-08 Tamar Christina <tamar.christina@arm.com>
10914 * expmed.cc (store_bit_field_1): Add parameter that indicates if value is
10915 still undefined and if so emit a subreg move instead.
10916 (store_integral_bit_field): Likewise.
10917 (store_bit_field): Likewise.
10918 * expr.h (write_complex_part): Likewise.
10919 * expmed.h (store_bit_field): Add new parameter.
10920 * builtins.cc (expand_ifn_atomic_compare_exchange_into_call): Use new
10922 (expand_ifn_atomic_compare_exchange): Likewise.
10923 * calls.cc (store_unaligned_arguments_into_pseudos): Likewise.
10924 * emit-rtl.cc (validate_subreg): Likewise.
10925 * expr.cc (emit_group_store): Likewise.
10926 (copy_blkmode_from_reg): Likewise.
10927 (copy_blkmode_to_reg): Likewise.
10928 (clear_storage_hints): Likewise.
10929 (write_complex_part): Likewise.
10930 (emit_move_complex_parts): Likewise.
10931 (expand_assignment): Likewise.
10932 (store_expr): Likewise.
10933 (store_field): Likewise.
10934 (expand_expr_real_2): Likewise.
10935 * ifcvt.cc (noce_emit_move_insn): Likewise.
10936 * internal-fn.cc (expand_arith_set_overflow): Likewise.
10937 (expand_arith_overflow_result_store): Likewise.
10938 (expand_addsub_overflow): Likewise.
10939 (expand_neg_overflow): Likewise.
10940 (expand_mul_overflow): Likewise.
10941 (expand_arith_overflow): Likewise.
10943 2022-07-08 Haochen Jiang <haochen.jiang@intel.com>
10946 * config/i386/sse.md (sse2_cvtps2pd<mask_name>_1):
10947 Rename from *sse2_cvtps2pd<mask_name>_1.
10948 (vec_unpacks_lo_v4sf): Add handler for memory operand.
10950 2022-07-08 Lulu Cheng <chenglulu@loongson.cn>
10952 * config/loongarch/loongarch.cc (loongarch_compute_frame_info):
10953 Modify fp_sp_offset and gp_sp_offset's calculation method,
10954 when frame->mask or frame->fmask is zero, don't minus UNITS_PER_WORD
10955 or UNITS_PER_FP_REG.
10957 2022-07-07 David Malcolm <dmalcolm@redhat.com>
10959 * diagnostic-format-json.cc (json_from_location_range): Update for
10960 removal of label_text::maybe_free in favor of automatic memory
10962 * diagnostic-format-sarif.cc
10963 (sarif_builder::make_location_object): Likewise.
10964 * diagnostic-show-locus.cc (struct pod_label_text): New.
10965 (class line_label): Convert m_text from label_text to pod_label_text.
10966 (layout::print_any_labels): Move "text" to the line_label.
10967 * tree-diagnostic-path.cc (path_label::get_text): Update for
10968 removal of label_text::maybe_free in favor of automatic memory
10970 (event_range::print): Likewise.
10971 (default_tree_diagnostic_path_printer): Likewise.
10972 (default_tree_make_json_for_path): Likewise.
10974 2022-07-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10976 * statistics.cc (get_function_name): Add check to see if fn is not NULL.
10978 2022-07-07 Richard Biener <rguenther@suse.de>
10980 * tree-into-ssa.cc (iterating_old_ssa_names): New.
10981 (add_new_name_mapping): Grow {new,old}_ssa_names separately
10982 and only when actually needed. Assert we are not growing
10983 the old_ssa_names set when iterating over it.
10984 (update_ssa): Remove old_ssa_names copying and empty_p
10985 query, note we are iterating over it and expect no set changes.
10987 2022-07-07 Thomas Schwinge <thomas@codesourcery.com>
10989 * config/i386/intelmic-mkoffload.cc (generate_host_descr_file)
10990 (prepare_target_image, main): Handle OpenMP 'requires'.
10991 (generate_host_descr_file): Switch to 'GOMP_offload_register_ver',
10992 'GOMP_offload_unregister_ver'.
10994 2022-07-07 Richard Biener <rguenther@suse.de>
10997 * config/i386/i386-builtins.cc (ix86_add_new_builtins): Properly
11000 2022-07-07 Richard Biener <rguenther@suse.de>
11002 * tree-ssa-loop-manip.cc (add_exit_phis_var): Return the
11003 number of LC PHIs inserted.
11004 (add_exit_phis): Return whether any variable required
11005 multiple LC PHI nodes.
11006 (rewrite_into_loop_closed_ssa_1): Use TODO_update_ssa_no_phi
11009 2022-07-07 Richard Biener <rguenther@suse.de>
11011 * tree-ssa-loop-manip.cc (compute_live_loop_exits): Take
11012 the def loop exit block bitmap as argument instead of
11013 re-computing it here.
11014 (add_exit_phis_var): Adjust.
11015 (loop_name_cmp): New function.
11016 (add_exit_phis): Sort variables to insert LC PHI nodes
11017 after definition loop, for each definition loop compute
11018 the exit block bitmap once.
11019 (get_loops_exit): Remove.
11020 (rewrite_into_loop_closed_ssa_1): Do not pre-record
11021 all loop exit blocks into bitmaps. Record loop exits
11024 2022-07-07 Dimitrije Milosevic <Dimitrije.Milosevic@Syrmia.com>
11026 * config/mips/mips.cc (mips_asan_shadow_offset): Reformat
11027 to handle the N32 ABI.
11028 * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Remove
11029 the macro, as it is not needed anymore.
11031 2022-07-06 Thomas Schwinge <thomas@codesourcery.com>
11033 * config/gcn/mkoffload.cc (process_obj): Clarify 'target_data' ->
11035 * config/nvptx/mkoffload.cc (process): Likewise.
11037 2022-07-06 Thomas Schwinge <thomas@codesourcery.com>
11039 * omp-general.h (enum omp_requires): Use 'GOMP_REQUIRES_[...]'.
11041 2022-07-05 Andrew MacLeod <amacleod@redhat.com>
11043 * value-relation.cc (relation_to_code): New vector.
11044 (relation_oracle::validate_relation): New.
11045 (set_relation): Allow ssa1 == ssa2 to be registered.
11046 * value-relation.h (validate_relation): New prototype.
11047 (query_relation): Make internal variant protected.
11049 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
11051 * config/i386/i386.cc (ix86_rtx_costs) <COMPARE>: Provide costs
11052 for double word comparisons and tests (comparisons against zero).
11053 * config/i386/i386.md (*test<mode>_not_doubleword): Split DWI
11054 and;cmp into andn;cmp $0 as a pre-reload splitter.
11055 (*andn<dwi>3_doubleword_bmi): Use <dwi> instead of <mode> in name.
11056 (*<any_or><dwi>3_doubleword): Likewise.
11058 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
11059 Hongtao Liu <hongtao.liu@intel.com>
11061 * config/i386/i386-builtin.def (__builtin_ia32_palignr128): Change
11062 CODE_FOR_ssse3_palignrti to CODE_FOR_ssse3_palignrv1ti.
11063 * config/i386/i386-expand.cc (expand_vec_perm_palignr): Use V1TImode
11064 and gen_ssse3_palignv1ti instead of TImode.
11065 * config/i386/sse.md (SSESCALARMODE): Delete.
11066 (define_mode_attr ssse3_avx2): Handle V1TImode instead of TImode.
11067 (<ssse3_avx2>_palignr<mode>): Use VIMAX_AVX2_AVX512BW as a mode
11068 iterator instead of SSESCALARMODE.
11069 (ssse3_palignrdi): Optimize cases where operands[3] is 0 or 64,
11070 using a single move instruction (if required).
11072 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
11073 Uroš Bizjak <ubizjak@gmail.com>
11075 PR rtl-optimization/96692
11076 * config/i386/i386.md (define_split): Split ((A | B) ^ C) ^ D
11077 as (X & ~Y) ^ Z on target BMI when either C or D is A or B.
11079 2022-07-05 Richard Biener <rguenther@suse.de>
11081 PR tree-optimization/106198
11082 * tree-cfgcleanup.cc (repair_loop_structures): Always do a
11083 full LC SSA rewrite but only if any blocks changed loop
11086 2022-07-05 Richard Biener <rguenther@suse.de>
11088 * tree-ssa-loop-manip.cc (find_uses_to_rename_def): Remove.
11089 (find_uses_to_rename_in_loop): Likewise.
11090 (rewrite_into_loop_closed_ssa_1): Remove loop parameter and
11092 (rewrite_into_loop_closed_ssa): Adjust.
11094 2022-07-05 Richard Biener <rguenther@suse.de>
11096 PR tree-optimization/106186
11097 * tree-ssa-propagate.cc (clean_up_loop_closed_phi):
11098 Properly handle virtual PHI nodes.
11100 2022-07-05 Richard Biener <rguenther@suse.de>
11102 PR tree-optimization/106196
11103 * tree-vect-stmts.cc (vect_finish_stmt_generation): Properly
11104 handle aggregate returns of calls for VDEF updates.
11106 2022-07-05 Richard Biener <rguenther@suse.de>
11108 * tree-vect-loop-manip.cc (vect_set_loop_condition_normal):
11111 2022-07-05 Richard Sandiford <richard.sandiford@arm.com>
11113 * tree-vect-patterns.cc (vect_convert_input): Expect the input
11114 type to be signed for optab_vector_mixed_sign. Update the vectype
11115 at the same time as type.
11116 (vect_recog_dot_prod_pattern): Update accordingly. If usdot isn't
11117 available, try sdot instead.
11118 * tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): New function.
11119 (vect_model_reduction_cost): Model the cost of implementing usdot
11121 (vectorizable_reduction): Likewise. Skip target support test
11122 for lane reductions.
11123 (vect_emulate_mixed_dot_prod): New function.
11124 (vect_transform_reduction): Use it to emulate usdot via sdot.
11126 2022-07-05 Richard Biener <rguenther@suse.de>
11128 PR tree-optimization/106182
11129 * loop-init.cc (fix_loop_structure): Return the number
11130 of newly discovered plus the number of deleted loops.
11131 * tree-cfgcleanup.cc (repair_loop_structures): Adjust
11134 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
11136 * gimple-range-fold.cc
11137 (fold_using_range::range_of_ssa_name_with_loop_info): Restrict the
11138 call to SCEV for irange supported types.
11139 (fold_using_range::range_of_builtin_int_call): Convert to vrange.
11140 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Same.
11141 * tree-ssa-dom.cc (cprop_operand): Same.
11143 2022-07-04 Roger Sayle <roger@nextmovesoftware.com>
11146 * calls.cc (precompute_register_parameters): Allow promotion
11147 of floating point values to be passed in wider integer modes
11148 by calling new convert_float_to_wider_int.
11149 (expand_call): Allow floating point results to be returned in
11150 wider integer modes by calling new convert wider_int_to_float.
11151 * cfgexpand.cc (expand_value_return): Allow backends to promote
11152 a scalar floating point return value to a wider integer mode
11153 by calling new convert_float_to_wider_int.
11154 * expr.cc (convert_float_to_wider_int): New function.
11155 (convert_wider_int_to_float): Likewise.
11156 (expand_expr_real_1) <expand_decl_rtl>: Allow backends to promote
11157 scalar FP PARM_DECLs to wider integer modes, by calling new
11158 convert_wider_int_to_float.
11159 * expr.h (convert_modes): Name arguments for improved documentation.
11160 (convert_float_to_wider_int): Prototype new function here.
11161 (convert_wider_int_to_float): Likewise.
11162 * function.cc (assign_parm_setup_stack): Allow floating point
11163 values to be passed on the stack as wider integer modes by
11164 calling new convert_wider_int_to_float.
11166 2022-07-04 Martin Jambor <mjambor@suse.cz>
11168 PR tree-optimization/105860
11169 * tree-sra.cc (build_reconstructed_reference): Start expr
11170 traversal only just below the outermost union.
11172 2022-07-04 Richard Biener <rguenther@suse.de>
11174 * tree-vect-loop-manip.cc (vect_do_peeling): Revert assert
11175 and update virtual SSA form again. Assert we do so for
11176 a known set of transforms only.
11177 * tree-vectorizer.h (vec_info::any_known_not_updated_vssa): New.
11178 * tree-vect-stmts.cc (vectorizable_load): When vectorizing
11179 using load-lanes allow virtual SSA update.
11181 2022-07-04 Tobias Burnus <tobias@codesourcery.com>
11182 Chung-Lin Tang <cltang@codesourcery.com>
11183 Thomas Schwinge <thomas@codesourcery.com>
11185 * config/gcn/mkoffload.cc (process_asm): Write '#include <stdint.h>'.
11186 (process_obj): Pass omp_requires_mask to GOMP_offload_register_ver.
11187 (main): Ask lto1 to obtain omp_requires_mask and pass it on.
11188 * config/nvptx/mkoffload.cc (process, main): Likewise.
11189 * lto-cgraph.cc (omp_requires_to_name): New.
11190 (input_offload_tables): Save omp_requires_mask.
11191 (output_offload_tables): Read it, check for consistency,
11192 save value for mkoffload.
11193 * omp-low.cc (lower_omp_target): Force output_offloadtables
11194 call for OMP_REQUIRES_TARGET_USED.
11196 2022-07-04 Richard Biener <rguenther@suse.de>
11198 * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
11199 no SSA update is needed instead of updating virtual SSA
11201 * tree-vect-stmts.cc (vectorizable_load): For hoisted
11202 invariant load use the loop entry virtual use.
11203 For emulated gather loads use the virtual use of the
11204 original stmt like vect_finish_stmt_generation would do.
11206 2022-07-04 Eric Botcazou <ebotcazou@adacore.com>
11208 * tree-pretty-print.cc (dump_generic_node) <ARRAY_TYPE>: Add guard
11209 for direct circularity.
11211 2022-07-04 Eric Botcazou <ebotcazou@adacore.com>
11213 * dwarf2out.cc (gen_array_type_die): Use the default lower bound of
11214 the language for vector types.
11216 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
11218 * value-range-storage.cc (irange_storage_slot::set_irange): Set
11219 nonzero bits in irange.
11220 (irange_storage_slot::get_irange): Get nonzero bits from irange.
11221 * value-range.cc (irange::operator=): Set nonzero bits.
11222 (irange::irange_set): Same.
11223 (irange::irange_set_anti_range): Same.
11224 (irange::set): Same.
11225 (irange::verify_range): Same.
11226 (irange::legacy_equal_p): Check nonzero bits.
11227 (irange::equal_p): Same.
11228 (irange::contains_p): Handle nonzero bits.
11229 (irange::irange_union): Same.
11230 (irange::irange_intersect): Same.
11231 (irange::dump): Same.
11232 (irange::set_nonzero_bits): New.
11233 (irange::get_nonzero_bits): New.
11234 (irange::intersect_nonzero_bits): New.
11235 (irange::union_nonzero_bits): New.
11236 (irange::dump_bitmasks): New.
11237 * value-range.h (class irange): Add m_nonzero_mask.
11238 (gt_ggc_mx): Handle nonzero bits.
11240 (irange::set_undefined): Set nonzero bits.
11241 (irange::set_varying): Same.
11242 (irange::normalize_kind): Call set_undefined.
11244 2022-07-04 Richard Biener <rguenther@suse.de>
11246 * tree-ssa-loop-manip.h
11247 (rewrite_virtuals_into_loop_closed_ssa): Remove.
11248 (rewrite_into_loop_closed_ssa_1): Likewise.
11249 * tree-ssa-loop-manip.cc (rewrite_into_loop_closed_ssa_1):
11251 (rewrite_into_loop_closed_ssa): Remove loop overload,
11252 always rewrite virtuals into LC SSA.
11253 (check_loop_closed_ssa_bb): Also check virtuals.
11254 * tree-ssa-dce.cc (remove_dead_phis): Preserve virtual
11255 LC PHIs when in LC SSA.
11256 * gimple-loop-jam.cc (fuse_loops): Do not rewrite into
11257 loop-closed SSA here, but ...
11258 (tree_loop_unroll_and_jam): ... here once.
11259 * tree-if-conv.cc (version_loop_for_if_conversion): Use
11260 the cheaper TODO_update_ssa_no_phi.
11261 * tree-loop-distribution.cc (version_loop_by_alias_check):
11263 * tree-ssa-loop-unswitch.cc (tree_unswitch_single_loop):
11265 * tree-vect-loop-manip.cc (vect_loop_versioning): Likewise.
11266 (tree_unswitch_outer_loop): Do not rewrite virtuals into
11268 * tree-parloops.cc (transform_to_exit_first_loop_alt):
11270 (pass_parallelize_loops::execute): After finishing rewrite
11271 into LC SSA again because we do not maintain it properly.
11273 2022-07-04 Richard Biener <rguenther@suse.de>
11275 PR tree-optimization/106055
11276 * graphite.cc (canonicalize_loop_closed_ssa): Check whether
11279 2022-07-04 Haochen Jiang <haochen.jiang@intel.com>
11282 * config/i386/sse.md (extendv2sfv2df2): New define_expand.
11283 (sse2_cvtps2pd_<mask_name>): Change constraint of operands[1].
11284 (*sse2_cvtps2pd_<mask_name>_1): Rename from extendvsdfv2df2.
11286 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
11288 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use operator!=.
11289 * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same.
11290 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Use set
11291 with two arguments.
11292 (find_unswitching_predicates_for_bb): Same.
11293 * tree-vrp.cc (range_fold_unary_symbolics_p): Same.
11294 * value-range-equiv.cc (value_range_equiv::equal_p): Use operator==.
11295 * value-range.cc (irange::equal_p): Rename to...
11296 (irange::operator==): ...this.
11297 * value-range.h (irange::set): Remove.
11298 (irange::operator==): Remove.
11299 (irange::set_zero): Use set with two arguments.
11300 * vr-values.cc (vr_values::extract_range_from_binary_expr): Same.
11301 (vr_values::extract_range_from_unary_expr): Same.
11302 (check_for_binary_op_overflow): Same.
11303 (bounds_of_var_in_loop): Same.
11305 2022-07-03 H.J. Lu <hjl.tools@gmail.com>
11308 * config/i386/i386-protos.h (ix86_convert_const_vector_to_integer):
11310 * config/i386/i386.cc (ix86_convert_const_vector_to_integer):
11312 * config/i386/mmx.md (V_16_32_64): New.
11313 (*mov<mode>_imm): New patterns for stores with 16-bit, 32-bit
11314 and 64-bit constant vector.
11315 * config/i386/predicates.md (x86_64_const_vector_operand): New.
11317 2022-07-03 Aldy Hernandez <aldyh@redhat.com>
11319 * gimple-range-cache.cc: Include value-range-storage.h.
11320 * gimple-range-cache.h (class block_range_cache): Add "class" to
11322 * gimple-range-edge.cc
11323 (gimple_outgoing_range::gimple_outgoing_range): Allocate allocator.
11324 (gimple_outgoing_range::~gimple_outgoing_range): Free allocator.
11325 (gimple_outgoing_range::calc_switch_ranges): Dereference allocator.
11326 * gimple-range-edge.h: Add "class" to m_range_allocator.
11327 * gimple-range-infer.cc
11328 (infer_range_manager::infer_range_manager): Allocate allocator.
11329 (infer_range_manager::~infer_range_manager): Free allocator.
11330 (infer_range_manager::get_nonzero): Dereference allocator.
11331 (infer_range_manager::add_range): Same.
11332 * gimple-range-infer.h (class vrange_allocator): Add "class" to
11334 * value-range-storage.h (class vrange_allocator): Move from
11336 (class obstack_vrange_allocator): Same.
11337 (class ggc_vrange_allocator): Same.
11338 (vrange_allocator::alloc_vrange): Same.
11339 (vrange_allocator::alloc_irange): Same.
11340 * value-range.h (class vrange_allocator): Move to value-range-storage.h.
11341 (class obstack_vrange_allocator): Same.
11342 (class ggc_vrange_allocator): Same.
11344 2022-07-03 Aldy Hernandez <aldyh@redhat.com>
11346 * Makefile.in (OBJS): Add value-range-storage.o.
11347 (GTFILES): Add value-range-storage.h.
11348 * gengtype.cc (open_base_files): Add value-range-storage.h.
11349 * value-range-storage.cc: New file.
11350 * value-range-storage.h: New file.
11352 2022-07-03 Xi Ruoyao <xry111@xry111.site>
11353 Lulu Cheng <chenglulu@loongson.cn>
11355 * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
11356 New static function.
11357 (loongarch_idiv_insns): Use loongarch_check_zero_div_p instead
11358 of TARGET_CHECK_ZERO_DIV.
11359 (loongarch_output_division): Likewise.
11360 * common/config/loongarch/loongarch-common.cc
11361 (TARGET_DEFAULT_TARGET_FLAGS): Remove unneeded hook.
11362 * doc/invoke.texi: Update to match the new behavior.
11364 2022-07-03 Ian Lance Taylor <iant@golang.org>
11366 * tree-ssa-dse.cc (dse_optimize_stmt): Only delete a trapping
11367 statement if -fdelete-dead-exceptions.
11369 2022-07-02 Tim Lange <mail@tim-lange.me>
11372 * doc/invoke.texi: Added Wanalyzer-allocation-size.
11374 2022-07-02 Immad Mir <mirimmad17@gmail.com>
11377 * Makefile.in (ANALYZER_OBJS): Add sm-fd.o.
11378 * doc/invoke.texi: Add -Wanalyzer-fd-double-close, -Wanalyzer-fd-leak,
11379 -Wanalyzer-fd-access-mode-mismatch, -Wanalyzer-fd-use-without-check,
11380 -Wanalyzer-fd-use-after-close.
11382 2022-07-01 Aldy Hernandez <aldyh@redhat.com>
11384 * wide-int.h (struct trailing_wide_ints): Add m_num_elements.
11385 (trailing_wide_ints::set_precision): Add num_elements argument.
11386 (trailing_wide_ints::extra_size): Same.
11388 2022-07-01 Uroš Bizjak <ubizjak@gmail.com>
11390 * config/i386/i386.md (*andn<mode>3_doubleword_bmi):
11391 Use "r" constraint for operand 1.
11393 2022-07-01 Richard Biener <rguenther@suse.de>
11395 * tree-into-ssa.cc (rewrite_update_dom_walker::before_dom_children):
11396 Do not look at interesting_blocks which is a copy of
11398 (update_ssa): Do not initialize it.
11399 (pass_build_ssa::execute): Set interesting_blocks to NULL
11400 after releasing it.
11402 2022-07-01 Richard Biener <rguenther@suse.de>
11404 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Revert
11405 back to using maybe_ne (off, -1).
11407 2022-07-01 Richard Biener <rguenther@suse.de>
11409 * tree-ssa-sccvn.cc (vn_nary_op_insert_into): Make
11410 checking dominance check conditional on flag_checking.
11412 2022-07-01 Tobias Burnus <tobias@codesourcery.com>
11414 * config/gcn/gcn-protos.h (print_operand_address): Remove register
11415 keyword on 'rtx addr' argument.
11417 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
11418 Uroš Bizjak <ubizjak@gmail.com>
11420 * config/i386/i386.md (*andn<mode>3_doubleword_bmi): Add constraints
11421 to post-reload define_insn_and_split.
11423 2022-07-01 Jakub Jelinek <jakub@redhat.com>
11425 PR middle-end/106144
11426 * wide-int.cc (wi::shifted_mask): If end >= prec, return right after
11427 emitting element for shift or if shift is 0 first element after start.
11428 (wide_int_cc_tests): Add tests for equivalency of wi::mask and
11429 wi::shifted_mask with 0 start.
11431 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
11434 * config/i386/i386.md (peephole2): Avoid generating pop %esp
11435 when optimizing for size.
11437 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
11438 Uroš Bizjak <ubizjak@gmail.com>
11440 * config/i386/i386.md (general_szext_operand): Add TImode
11441 support using x86_64_hilo_general_operand predicate.
11442 (*cmp<dwi>_doubleword): Use x86_64_hilo_general_operand predicate.
11443 (*add<dwi>3_doubleword): Improved optimization of zero addition.
11444 (and<mode>3): Use SDWIM mode iterator to add support for double
11445 word bit-wise AND in TImode. Use force_reg when double word
11446 immediate operand isn't x86_64_hilo_general_operand.
11447 (and<dwi>3_doubleword): Generalized from anddi3_doubleword and
11448 converted into a post-reload splitter.
11449 (*andndi3_doubleword): Previous define_insn deleted.
11450 (*andn<mode>3_doubleword_bmi): New define_insn_and_split for
11451 TARGET_BMI that splits post-reload.
11452 (*andn<mode>3_doubleword): New define_insn_and_split for
11453 !TARGET_BMI, that lowers/splits before reload.
11454 (<any_or><mode>3): Use SDWIM mode iterator to add suppport for
11455 double word bit-wise XOR and bit-wise IOR in TImode. Use
11456 force_reg when double word immediate operand isn't
11457 x86_64_hilo_general_operand.
11458 (*<any_or>di3_doubleword): Generalized from <any_or>di3_doubleword.
11459 (one_cmpl<mode>2): Use SDWIM mode iterator to add support for
11460 double word bit-wise NOT in TImode.
11461 (one_cmpl<dwi>2_doubleword): Generalize from one_cmpldi2_doubleword
11462 and converted into a post-reload splitter.
11464 2022-07-01 Eric Botcazou <ebotcazou@adacore.com>
11466 PR middle-end/105874
11467 * expr.cc (expand_expr_real_1) <normal_inner_ref>: Force
11468 EXPAND_MEMORY for the expansion of the inner reference only
11469 in the usual cases where a memory reference is required.
11471 2022-07-01 Richard Biener <rguenther@suse.de>
11473 PR tree-optimization/106131
11474 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Force alias-set
11475 zero when offsetting the read looking through an aggregate
11478 2022-07-01 Martin Liska <mliska@suse.cz>
11480 PR tree-optimization/106126
11481 * gimple-if-to-switch.cc (struct condition_info): Save
11483 (find_conditions): Parse all BBs.
11484 (pass_if_to_switch::execute): Allow only side effects for first
11487 2022-07-01 Haochen Jiang <haochen.jiang@intel.com>
11489 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AVX512F_UNSET):
11490 Add OPTION_MASK_ISA2_AVX512BW_UNSET, remove
11491 OPTION_MASK_ISA2_AVX512BF16_UNSET and
11492 OPTION_MASK_ISA2_AVX512FP16_UNSET.
11494 2022-06-30 Joseph Myers <joseph@codesourcery.com>
11497 * lto-wrapper.cc (find_option): Add argument start.
11498 (merge_and_complain): Loop over existing_opt_index and
11499 existing_opt2_index for Xassembler check. Update calls to
11501 (find_and_merge_options): Add argument first to determine whether
11502 to merge options with those passed in *opts.
11503 (run_gcc): Update calls to find_and_merge_options.
11505 2022-06-30 Aldy Hernandez <aldyh@redhat.com>
11507 * gimple-range-cache.cc (block_range_cache::block_range_cache):
11508 Rename vrange_allocator to obstack_vrange_allocator.
11509 (ssa_global_cache::ssa_global_cache): Same.
11510 * gimple-range-edge.h (class gimple_outgoing_range): Same.
11511 * gimple-range-infer.h (class infer_range_manager): Same.
11512 * value-range.h (class vrange_allocator): Make abstract.
11513 (class obstack_vrange_allocator): Inherit from vrange_allocator.
11514 (class ggc_vrange_allocator): New.
11516 2022-06-30 Roger Sayle <roger@nextmovesoftware.com>
11517 Uroš Bizjak <ubizjak@gmail.com>
11519 * config/i386/i386.md (swap_mode): Rename from *swap<mode> to
11520 provide gen_swapsi.
11521 (<any_rotate>di3): Handle !TARGET_64BIT rotations by 32 bits
11522 via new gen_<insn>32di2_doubleword below.
11523 (<anyrotate>32di2_doubleword): New define_insn_and_split
11524 that splits after reload as either a pair of move instructions
11525 or an xchgl (using gen_swapsi).
11527 2022-06-30 Richard Biener <rguenther@suse.de>
11529 * domwalk.h (dom_walker::dom_walker): Update comment to
11530 reflect reality and new special argument value for
11532 * domwalk.cc (dom_walker::dom_walker): Recognize -1
11535 (rewrite_update_dom_walker::rewrite_update_dom_walker): Tell
11536 dom_walker to not use RPO.
11538 2022-06-30 Martin Liska <mliska@suse.cz>
11540 * tree-ssa-dom.cc (pass_dominator::execute): Remove m_ranger as
11543 2022-06-30 Andrew MacLeod <amacleod@redhat.com>
11545 PR tree-optimization/106114
11546 * gimple-range-fold.cc (fold_using_range::relation_fold_and_or): Check
11547 statement operands instead of GORI cache.
11549 2022-06-30 Antoni Boucher <bouanto@zoho.com>
11552 * config/i386/sse.md: Fix asm generation.
11554 2022-06-29 Sergei Trofimovich <siarheit@google.com>
11557 * system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
11559 2022-06-29 Joseph Myers <joseph@codesourcery.com>
11561 * config/nios2/nios2.cc (nios2_load_pic_address): Use gen_rtx_MEM
11562 not gen_const_mem for UNSPEC_PIC_CALL_SYM.
11564 2022-06-29 Richard Biener <rguenther@suse.de>
11566 PR rtl-optimization/106082
11567 * combine.cc (distribute_notes): Preserve notes when
11568 they indicate a call doesn't perform a non-local goto.
11570 2022-06-29 Richard Biener <rguenther@suse.de>
11572 PR tree-optimization/106112
11573 * tree-ssa-sccvn.cc (valueized_wider_op): Properly extend
11574 a constant operand according to its type.
11576 2022-06-29 Martin Liska <mliska@suse.cz>
11578 * doc/invoke.texi: Remove removed evrp-mode.
11580 2022-06-29 Lulu Cheng <chenglulu@loongson.cn>
11583 * config/loongarch/loongarch.cc (loongarch_build_integer):
11584 Remove undefined behavior from code.
11586 2022-06-28 Dimitar Dimitrov <dimitar@dinux.eu>
11588 * doc/sourcebuild.texi: Document new no_alignment_constraints
11589 effective target check.
11591 2022-06-28 Aldy Hernandez <aldyh@redhat.com>
11593 * Makefile.in: Remove gimple-ssa-evrp.o and gimple-ssa-evrp-analyze.o.
11594 * flag-types.h (enum evrp_mode): Remove.
11595 * params.opt: Remove --param=evrp-mode.
11596 * tree-vrp.cc (make_pass_early_vrp): New.
11597 (pass_vrp::execute): Call early VRP instance.
11598 * gimple-ssa-evrp-analyze.cc: Removed.
11599 * gimple-ssa-evrp-analyze.h: Removed.
11600 * gimple-ssa-evrp.cc: Removed.
11602 2022-06-28 Alexandre Oliva <oliva@adacore.com>
11604 * Makefile.in (TFLAGS): New.
11605 (GCC_FOR_TARGET): Add TFLAGS.
11606 (FLAGS_TO_PASS): Pass TFLAGS down.
11608 2022-06-28 Richard Biener <rguenther@suse.de>
11610 * tree-ssa-loop-split.cc (fix_loop_bb_probability): Do not
11613 2022-06-28 Richard Biener <rguenther@suse.de>
11615 * tree-into-ssa.cc (insert_updated_phi_nodes_for): Use
11616 mark_block_for_update.
11617 (update_ssa): Adjust.
11619 2022-06-28 Xi Ruoyao <xry111@xry111.site>
11622 * config/loongarch/loongarch.h (REG_CLASS_CONTENTS): Exclude
11623 $r13 from SIBCALL_REGS.
11624 * config/loongarch/loongarch.cc (loongarch_regno_to_class):
11625 Change $r13 to JIRL_REGS.
11627 2022-06-28 Aldy Hernandez <aldyh@redhat.com>
11629 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Remove
11630 irange::supports_p.
11632 2022-06-28 Richard Biener <rguenther@suse.de>
11634 PR middle-end/106053
11635 * match.pd ((T)a == (T)b): Avoid folding away sign
11636 changes in a comparison if we'd truncate to a boolean.
11638 2022-06-28 Kewen Lin <linkw@linux.ibm.com>
11640 * config/rs6000/rs6000.md (*rotl<mode>3_insert_4): Replace mode
11641 iterator GPR with SImode, adjust the condition and output template,
11643 (*rotlsi3_insert_4): ... this.
11645 2022-06-27 David Malcolm <dmalcolm@redhat.com>
11647 * genmatch.cc: Add "final" and "override" to various vfunc
11648 implementations, removing redundant "virtual" as appropriate.
11649 * gensupport.cc: Likewise.
11650 * gimple-range-cache.h: Likewise.
11651 * ipa-icf-gimple.h: Likewise.
11652 * ipa-icf.h: Likewise.
11653 * read-md.h: Likewise.
11654 * read-rtl-function.cc: Likewise.
11655 * tree-ssa-loop-ch.cc: Likewise.
11656 * tree-ssa-sccvn.cc: Likewise.
11658 2022-06-27 David Malcolm <dmalcolm@redhat.com>
11660 * config/i386/i386-features.h: Add "final" and "override" to
11661 scalar_chain vfunc implementations as appropriate.
11663 2022-06-27 David Malcolm <dmalcolm@redhat.com>
11665 * tree-switch-conversion.h: Add "final" and "override" to cluster
11666 vfunc implementations as appropriate.
11668 2022-06-27 David Malcolm <dmalcolm@redhat.com>
11670 * expr.cc: Add "final" and "override" to op_by_pieces_d vfunc
11671 implementations as appropriate.
11673 2022-06-27 David Malcolm <dmalcolm@redhat.com>
11675 * compare-elim.cc: Add "final" and "override" to dom_walker vfunc
11676 implementations, removing redundant "virtual" as appropriate.
11677 * gimple-ssa-strength-reduction.cc: Likewise.
11678 * ipa-prop.cc: Likewise.
11679 * rtl-ssa/blocks.cc: Likewise.
11680 * tree-into-ssa.cc: Likewise.
11681 * tree-ssa-dom.cc: Likewise.
11682 * tree-ssa-math-opts.cc: Likewise.
11683 * tree-ssa-phiopt.cc: Likewise.
11684 * tree-ssa-propagate.cc: Likewise.
11685 * tree-ssa-sccvn.cc: Likewise.
11686 * tree-ssa-strlen.cc: Likewise.
11687 * tree-ssa-uncprop.cc: Likewise.
11689 2022-06-27 David Malcolm <dmalcolm@redhat.com>
11691 * adjust-alignment.cc: Add "final" and "override" to opt_pass
11692 vfunc implementations, removing redundant "virtual" as
11694 * asan.cc: Likewise.
11695 * auto-inc-dec.cc: Likewise.
11696 * auto-profile.cc: Likewise.
11697 * bb-reorder.cc: Likewise.
11698 * cfgcleanup.cc: Likewise.
11699 * cfgexpand.cc: Likewise.
11700 * cfgrtl.cc: Likewise.
11701 * cgraphbuild.cc: Likewise.
11702 * combine-stack-adj.cc: Likewise.
11703 * combine.cc: Likewise.
11704 * compare-elim.cc: Likewise.
11705 * config/i386/i386-features.cc: Likewise.
11706 * coroutine-passes.cc: Likewise.
11707 * cprop.cc: Likewise.
11708 * cse.cc: Likewise.
11709 * dce.cc: Likewise.
11710 * df-core.cc: Likewise.
11711 * dse.cc: Likewise.
11712 * dwarf2cfi.cc: Likewise.
11713 * early-remat.cc: Likewise.
11714 * except.cc: Likewise.
11715 * final.cc: Likewise.
11716 * function.cc: Likewise.
11717 * fwprop.cc: Likewise.
11718 * gcse.cc: Likewise.
11719 * gimple-harden-conditionals.cc: Likewise.
11720 * gimple-if-to-switch.cc: Likewise.
11721 * gimple-isel.cc: Likewise.
11722 * gimple-laddress.cc: Likewise.
11723 * gimple-loop-interchange.cc: Likewise.
11724 * gimple-loop-jam.cc: Likewise.
11725 * gimple-loop-versioning.cc: Likewise.
11726 * gimple-low.cc: Likewise.
11727 * gimple-ssa-backprop.cc: Likewise.
11728 * gimple-ssa-evrp.cc: Likewise.
11729 * gimple-ssa-isolate-paths.cc: Likewise.
11730 * gimple-ssa-nonnull-compare.cc: Likewise.
11731 * gimple-ssa-split-paths.cc: Likewise.
11732 * gimple-ssa-store-merging.cc: Likewise.
11733 * gimple-ssa-strength-reduction.cc: Likewise.
11734 * gimple-ssa-warn-access.cc: Likewise.
11735 * gimple-ssa-warn-alloca.cc: Likewise.
11736 * gimple-ssa-warn-restrict.cc: Likewise.
11737 * gimple-warn-recursion.cc: Likewise.
11738 * graphite.cc: Likewise.
11739 * ifcvt.cc: Likewise.
11740 * init-regs.cc: Likewise.
11741 * ipa-comdats.cc: Likewise.
11742 * ipa-cp.cc: Likewise.
11743 * ipa-devirt.cc: Likewise.
11744 * ipa-fnsummary.cc: Likewise.
11745 * ipa-free-lang-data.cc: Likewise.
11746 * ipa-icf.cc: Likewise.
11747 * ipa-inline.cc: Likewise.
11748 * ipa-modref.cc: Likewise.
11749 * ipa-profile.cc: Likewise.
11750 * ipa-pure-const.cc: Likewise.
11751 * ipa-reference.cc: Likewise.
11752 * ipa-split.cc: Likewise.
11753 * ipa-sra.cc: Likewise.
11754 * ipa-visibility.cc: Likewise.
11755 * ipa.cc: Likewise.
11756 * ira.cc: Likewise.
11757 * jump.cc: Likewise.
11758 * loop-init.cc: Likewise.
11759 * lower-subreg.cc: Likewise.
11760 * mode-switching.cc: Likewise.
11761 * modulo-sched.cc: Likewise.
11762 * multiple_target.cc: Likewise.
11763 * omp-expand.cc: Likewise.
11764 * omp-low.cc: Likewise.
11765 * omp-oacc-kernels-decompose.cc: Likewise.
11766 * omp-oacc-neuter-broadcast.cc: Likewise.
11767 * omp-offload.cc: Likewise.
11768 * omp-simd-clone.cc: Likewise.
11769 * passes.cc: Likewise.
11770 * postreload-gcse.cc: Likewise.
11771 * postreload.cc: Likewise.
11772 * predict.cc: Likewise.
11773 * recog.cc: Likewise.
11774 * ree.cc: Likewise.
11775 * reg-stack.cc: Likewise.
11776 * regcprop.cc: Likewise.
11777 * reginfo.cc: Likewise.
11778 * regrename.cc: Likewise.
11779 * reorg.cc: Likewise.
11780 * sancov.cc: Likewise.
11781 * sanopt.cc: Likewise.
11782 * sched-rgn.cc: Likewise.
11783 * stack-ptr-mod.cc: Likewise.
11784 * store-motion.cc: Likewise.
11785 * tracer.cc: Likewise.
11786 * trans-mem.cc: Likewise.
11787 * tree-call-cdce.cc: Likewise.
11788 * tree-cfg.cc: Likewise.
11789 * tree-cfgcleanup.cc: Likewise.
11790 * tree-complex.cc: Likewise.
11791 * tree-eh.cc: Likewise.
11792 * tree-emutls.cc: Likewise.
11793 * tree-if-conv.cc: Likewise.
11794 * tree-into-ssa.cc: Likewise.
11795 * tree-loop-distribution.cc: Likewise.
11796 * tree-nrv.cc: Likewise.
11797 * tree-object-size.cc: Likewise.
11798 * tree-parloops.cc: Likewise.
11799 * tree-predcom.cc: Likewise.
11800 * tree-profile.cc: Likewise.
11801 * tree-sra.cc: Likewise.
11802 * tree-ssa-ccp.cc: Likewise.
11803 * tree-ssa-copy.cc: Likewise.
11804 * tree-ssa-dce.cc: Likewise.
11805 * tree-ssa-dom.cc: Likewise.
11806 * tree-ssa-dse.cc: Likewise.
11807 * tree-ssa-forwprop.cc: Likewise.
11808 * tree-ssa-ifcombine.cc: Likewise.
11809 * tree-ssa-loop-ch.cc: Likewise.
11810 * tree-ssa-loop-im.cc: Likewise.
11811 * tree-ssa-loop-ivcanon.cc: Likewise.
11812 * tree-ssa-loop-prefetch.cc: Likewise.
11813 * tree-ssa-loop-split.cc: Likewise.
11814 * tree-ssa-loop-unswitch.cc: Likewise.
11815 * tree-ssa-loop.cc: Likewise.
11816 * tree-ssa-math-opts.cc: Likewise.
11817 * tree-ssa-phiopt.cc: Likewise.
11818 * tree-ssa-phiprop.cc: Likewise.
11819 * tree-ssa-pre.cc: Likewise.
11820 * tree-ssa-reassoc.cc: Likewise.
11821 * tree-ssa-sccvn.cc: Likewise.
11822 * tree-ssa-sink.cc: Likewise.
11823 * tree-ssa-strlen.cc: Likewise.
11824 * tree-ssa-structalias.cc: Likewise.
11825 * tree-ssa-uncprop.cc: Likewise.
11826 * tree-ssa-uninit.cc: Likewise.
11827 * tree-ssanames.cc: Likewise.
11828 * tree-stdarg.cc: Likewise.
11829 * tree-switch-conversion.cc: Likewise.
11830 * tree-tailcall.cc: Likewise.
11831 * tree-vect-generic.cc: Likewise.
11832 * tree-vectorizer.cc: Likewise.
11833 * tree-vrp.cc: Likewise.
11834 * tsan.cc: Likewise.
11835 * ubsan.cc: Likewise.
11836 * var-tracking.cc: Likewise.
11837 * vtable-verify.cc: Likewise.
11838 * web.cc: Likewise.
11840 2022-06-27 Andrew Stubbs <ams@codesourcery.com>
11842 * config/gcn/gcn.md (*movbi): Remove assembler bug workarounds.
11844 (movdi_symbol_save_scc): Likewise.
11846 2022-06-27 Roger Sayle <roger@nextmovesoftware.com>
11848 PR rtl-optimization/7061
11849 * config/i386/i386.md (*highpartdisi2): New define_insn_and_split.
11851 2022-06-27 Roger Sayle <roger@nextmovesoftware.com>
11853 PR tree-optimization/94026
11854 * match.pd (((X << C1) & C2) eq/ne C3): New simplification.
11855 (((X >> C1) & C2) eq/ne C3): Likewise.
11857 2022-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
11859 * statistics.cc: Include tree.h.
11860 (get_function_name): New function.
11861 (statistics_fini_pass_2): Call get_function_name instead of
11862 current_function_name.
11863 (statistics_counter_event): Call get_function_name instead of
11865 (statistics_histogram_event): Likewise.
11867 2022-06-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
11869 * config/xtensa/xtensa.md:
11870 Suppress unnecessary emitting nop insn in the split patterns for
11871 integer/FP constant synthesis, and add new peephole2 pattern that
11872 folds such synthesized additions.
11874 2022-06-25 Aldy Hernandez <aldyh@redhat.com>
11876 * tree-ssa-dom.cc (dom_jt_state): Pass ranger to constructor
11878 (dom_jt_state::push): Remove m_evrp.
11879 (dom_jt_state::pop): Same.
11880 (dom_jt_state::record_ranges_from_stmt): Remove.
11881 (dom_jt_state::register_equiv): Remove updating of evrp ranges.
11882 (class dom_jt_simplifier): Pass ranger to constructor.
11883 Inherit from hybrid_jt_simplifier.
11884 (dom_jt_simplifier::simplify): Convert to ranger.
11885 (pass_dominator::execute): Same.
11886 (all_uses_feed_or_dominated_by_stmt): New.
11887 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): New.
11888 (dom_opt_dom_walker::before_dom_children): Call
11889 set_global_ranges_from_unreachable_edges.
11890 Do not call record_ranges_from_stmt.
11891 (dom_opt_dom_walker::after_dom_children): Remove evrp use.
11892 (cprop_operand): Use int_range<> instead of value_range.
11893 (dom_opt_dom_walker::fold_cond): New.
11894 (dom_opt_dom_walker::optimize_stmt): Pass ranger to
11896 Use fold_cond() instead of vrp_visit_cond_stmt().
11897 * tree-ssa-threadedge.cc (jt_state::register_equivs_stmt): Do not
11898 pass state to simplifier.
11899 * vr-values.h (class vr_values): Make fold_cond public.
11901 2022-06-25 Jeff Law <jeffreyalaw@gmail.com>
11903 * common/config/tilegx/tilegx-common.cc: Removed.
11904 * common/config/tilepro/tilepro-common.cc: Removed.
11905 * config.gcc: Remove tilegx and tilepro entries.
11906 * config/tilegx/constraints.md: Removed.
11907 * config/tilegx/feedback.h: Removed.
11908 * config/tilegx/linux.h: Removed.
11909 * config/tilegx/mul-tables.cc: Removed.
11910 * config/tilegx/predicates.md: Removed.
11911 * config/tilegx/sync.md: Removed.
11912 * config/tilegx/t-tilegx: Removed.
11913 * config/tilegx/tilegx-builtins.h: Removed.
11914 * config/tilegx/tilegx-c.cc: Removed.
11915 * config/tilegx/tilegx-generic.md: Removed.
11916 * config/tilegx/tilegx-modes.def: Removed.
11917 * config/tilegx/tilegx-multiply.h: Removed.
11918 * config/tilegx/tilegx-opts.h: Removed.
11919 * config/tilegx/tilegx-protos.h: Removed.
11920 * config/tilegx/tilegx.cc: Removed.
11921 * config/tilegx/tilegx.h: Removed.
11922 * config/tilegx/tilegx.md: Removed.
11923 * config/tilegx/tilegx.opt: Removed.
11924 * config/tilepro/constraints.md: Removed.
11925 * config/tilepro/feedback.h: Removed.
11926 * config/tilepro/gen-mul-tables.cc: Removed.
11927 * config/tilepro/linux.h: Removed.
11928 * config/tilepro/mul-tables.cc: Removed.
11929 * config/tilepro/predicates.md: Removed.
11930 * config/tilepro/t-tilepro: Removed.
11931 * config/tilepro/tilepro-builtins.h: Removed.
11932 * config/tilepro/tilepro-c.cc: Removed.
11933 * config/tilepro/tilepro-generic.md: Removed.
11934 * config/tilepro/tilepro-modes.def: Removed.
11935 * config/tilepro/tilepro-multiply.h: Removed.
11936 * config/tilepro/tilepro-protos.h: Removed.
11937 * config/tilepro/tilepro.cc: Removed.
11938 * config/tilepro/tilepro.h: Removed.
11939 * config/tilepro/tilepro.md: Removed.
11940 * config/tilepro/tilepro.opt: Removed.
11941 * configure.ac: Remove tilegx and tilepro entries.
11942 * configure: Rebuilt.
11943 * doc/extend.texi: Remove tilegx and tilepro entries.
11944 * doc/install.texi: Remove tilegx and tilepro entries.
11945 * doc/invoke.texi: Remove tilegx and tilepro entries.
11946 * doc/md.texi: Remove tilegx and tilepro entries.
11948 2022-06-25 Roger Sayle <roger@nextmovesoftware.com>
11949 Richard Biener <rguenther@suse.de>
11951 * regcprop.cc (pass_cprop_hardreg::execute): Perform a third
11952 iteration over each basic block that was updated by the second
11955 2022-06-24 Jason Merrill <jason@redhat.com>
11959 * doc/invoke.texi: Document changes.
11961 2022-06-24 Iain Buclaw <ibuclaw@gdcproject.org>
11963 * config/tilepro/gen-mul-tables.cc (tilegx_emit): Adjust loop
11964 condition to avoid overflow.
11966 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
11968 * config/rs6000/aix71.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
11969 OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
11970 * config/rs6000/darwin.h (MASK_PPC_GFXOPT): Replace with
11971 OPTION_MASK_PPC_GFXOPT.
11972 * config/rs6000/darwin64-biarch.h (MASK_PPC_GFXOPT): Same.
11973 * config/rs6000/default64.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
11974 OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
11975 * config/rs6000/rs6000-c.cc: Update comment.
11976 * config/rs6000/rs6000-cpus.def: Update RS6000_CPU macro calls.
11977 * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
11978 MASK_PPC_GPOPT with OPTION_MASK_PPC_GPOPT.
11979 (rs6000_builtin_mask_names): Replace MASK_PPC_GFXOPT, MASK_POPCNTB
11980 with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_POPCNTB.
11981 * config/rs6000/rs6000.h: (MASK_P8_VECTOR, MASK_P9_VECTOR,
11982 MASK_P9_MISC, MASK_POPCNTB, MASK_POPCNTD, MASK_PPC_GFXOPT,
11983 MASK_PPC_GPOPT, MASK_RECIP_PRECISION, MASK_SOFT_FLOAT,
11984 MASK_VSX, MASK_POWER10, MASK_P10_FUSION): Delete.
11986 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
11988 * config/rs6000/aix71.h (TARGET_DEFAULT): Replace MASK_MFCRF with
11990 * config/rs6000/darwin.h (TARGET_DEFAULT): Replace MASK_MULTIPLE with
11991 OPTION_MASK_MULTIPLE.
11992 * config/rs6000/darwin64-biarch.h (TARGET_DEFAULT): Same.
11993 * config/rs6000/default64.h (TARGET_DEFAULT): Replace MASK_MFCRF with
11995 * config/rs6000/eabi.h (TARGET_DEFAULT): Replace MASK_EABI with
11997 * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Same.
11998 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Replace
11999 MASK_ALTIVEC with OPTION_MASK_ALTIVEC.
12000 * config/rs6000/rs6000-cpus.def (MASK_ALTIVEC, MASK_CMPB,
12001 MASK_CRYPTO, MASK_DFP, MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI,
12002 MASK_FLOAT128_KEYWORD, MASK_FLOAT128_HW, MASK_FPRND,
12003 MASK_P8_FUSION, MASK_HARD_FLOAT, MASK_HTM, MASK_ISEL, MASK_MFCRF,
12004 MASK_MMA, MASK_MULHW, MASK_MULTIPLE, MASK_NO_UPDATE):
12006 OPTION_MASK_ALTIVEC, OPTION_MASK_CMPB, OPTION_MASK_CRYPTO,
12007 OPTION_MASK_DFP, OPTION_MASK_DIRECT_MOVE, OPTION_MASK_DLMZB,
12008 OPTION_MASK_EABI, OPTION_MASK_FLOAT128_KEYWORD,
12009 OPTION_MASK_FLOAT128_HW, OPTION_MASK_FPRND, OPTION_MASK_P8_FUSION,
12010 OPTION_MASK_HARD_FLOAT, OPTION_MASK_HTM, OPTION_MASK_ISEL,
12011 OPTION_MASK_MFCRF, OPTION_MASK_MMA, OPTION_MASK_MULHW,
12012 OPTION_MASK_MULTIPLE, OPTION_MASK_NO_UPDATE.
12013 * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
12014 MASK_MFCRF, MASK_ALTIVEC with OPTION_MASK_MFCRF, OPTION_MASK_ALTIVEC.
12015 * config/rs6000/rs6000.h (TARGET_DEFAULT): Replace MASK_MULTIPLE
12016 with OPTION_MASK_MULTIPLE.
12017 (MASK_ALTIVEC, MASK_CMPB, MASK_CRYPTO, MASK_DFP,
12018 MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI, MASK_FLOAT128_KEYWORD,
12019 MASK_FLOAT128_HW, MASK_FPRND, MASK_P8_FUSION, MASK_HARD_FLOAT,
12020 MASK_HTM, MASK_ISEL, MASK_MFCRF, MASK_MMA, MASK_MULHW,
12021 MASK_MULTIPLE, MASK_NO_UPDATE): Delete.
12022 * config/rs6000/vxworks.h (TARGET_DEFAULT): Replace MASK_EABI
12023 with OPTION_MASK_EABI.
12025 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
12027 * config/rs6000/rs6000.cc (RS6000_BTM_ALTIVEC, RS6000_BTM_CMPB,
12028 RS6000_BTM_VSX, RS6000_BTM_FRE, RS6000_BTM_P8_VECTOR,
12029 RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_MODULO,
12030 RS6000_BTM_CRYPTO, RS6000_BTM_HTM): Replace with OPTION_MASK_ALTIVEC,
12031 OPTION_MASK_CMPB, OPTION_MASK_VSX, OPTION_MASK_POPCNTB,
12032 OPTION_MASK_P8_VECTOR, OPTION_MASK_P9_VECTOR, OPTION_MASK_P9_MISC,
12033 OPTION_MASK_MODULO, OPTION_MASK_CRYPTO, OPTION_MASK_HTM.
12034 * config/rs6000/rs6000.h (RS6000_BTM_MODULO, RS6000_BTM_ALTIVEC,
12035 RS6000_BTM_CMPB, RS6000_BTM_VSX, RS6000_BTM_P8_VECTOR,
12036 RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_CRYPTO,
12037 RS6000_BTM_HTM, RS6000_BTM_FRE): Remove.
12039 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
12041 * config/rs6000/rs6000-c.cc: Update comments.
12042 * config/rs6000/rs6000.cc (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
12043 RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
12044 RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_DFP,
12045 RS6000_BTM_HARD_FLOAT,RS6000_BTM_LDBL128, RS6000_BTM_FLOAT128,
12046 RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Replace
12047 with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_PPC_GFXOPT,
12048 OPTION_MASK_POPCNTB, OPTION_MASK_POPCNTD,
12049 OPTION_MASK_FPRND, MASK_64BIT, MASK_POWERPC64,
12050 OPTION_MASK_DFP, OPTION_MASK_SOFT_FLOAT, OPTION_MASK_MULTIPLE,
12051 OPTION_MASK_FLOAT128_KEYWORD, OPTION_MASK_FLOAT128_HW,
12052 OPTION_MASK_MMA, OPTION_MASK_POWER10.
12053 * config/rs6000/rs6000.h (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
12054 RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
12055 RS6000_BTM_DFP, RS6000_BTM_HARD_FLOAT, RS6000_BTM_LDBL128,
12056 RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_FLOAT128,
12057 RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Delete.
12059 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
12061 * config/rs6000/rs6000.h (RS6000_BTM_COMMON, RS6000_BTM_ALWAYS,
12062 MASK_REGNAMES, OPTION_MASK_REGNAMES, MASK_PROTOTYPE,
12063 OPTION_MASK_PROTOTYPE, MASK_UPDATE, OPTION_MASK_UPDATE): Remove.
12065 2022-06-24 Richard Biener <rguenther@suse.de>
12067 PR middle-end/106070
12068 * match.pd (a != b ? a : b): Fix translation of
12069 operand_equal_for_comparison_p.
12071 2022-06-24 Jan Hubicka <jh@suse.cz>
12074 * tree-ssa-alias.cc (stmt_kills_ref_p): Check for external throw.
12076 2022-06-24 Martin Liska <mliska@suse.cz>
12078 PR middle-end/106059
12079 * profile-count.h: *= and /= operators need to modify this
12082 2022-06-24 Roger Sayle <roger@nextmovesoftware.com>
12083 Uroš Bizjak <ubizjak@gmail.com>
12086 * config/i386/i386.md (*<any_or>di3_doubleword): Split after
12087 reload. Use rtx_equal_p to avoid creating memory-to-memory moves,
12088 and emit NOTE_INSN_DELETED if operand[2] is zero (i.e. with -O0).
12090 2022-06-24 Alexandre Oliva <oliva@adacore.com>
12092 * common.opt (nostdlib++): New.
12093 * doc/invoke.texi (-nostdlib++): Document it.
12095 2022-06-24 Alexandre Oliva <oliva@adacore.com>
12097 * doc/sourcebuild.texi (Environment attributes): Document
12100 2022-06-23 David Malcolm <dmalcolm@redhat.com>
12102 * common.opt (fdiagnostics-show-rules): New option.
12103 * diagnostic-format-json.cc (diagnostic_output_format_init_json):
12104 Fix up context->show_rules.
12105 * diagnostic-format-sarif.cc
12106 (diagnostic_output_format_init_sarif): Likewise.
12107 * diagnostic-metadata.h (diagnostic_metadata::rule): New class.
12108 (diagnostic_metadata::precanned_rule): New class.
12109 (diagnostic_metadata::add_rule): New.
12110 (diagnostic_metadata::get_num_rules): New.
12111 (diagnostic_metadata::get_rule): New.
12112 (diagnostic_metadata::m_rules): New field.
12113 * diagnostic.cc (diagnostic_initialize): Initialize show_rules.
12114 (print_any_rules): New.
12115 (diagnostic_report_diagnostic): Call it.
12116 * diagnostic.h (diagnostic_context::show_rules): New field.
12117 * doc/invoke.texi (-fno-diagnostics-show-rules): New option.
12118 * opts.cc (common_handle_option): Handle
12119 OPT_fdiagnostics_show_rules.
12120 * toplev.cc (general_init): Set up global_dc->show_rules.
12122 2022-06-23 Martin Liska <mliska@suse.cz>
12125 * ubsan.cc (sanitize_unreachable_fn): Change order of calls
12126 in order to initialize UBSAN built-ins.
12128 2022-06-23 Martin Liska <mliska@suse.cz>
12131 * ipa-icf.cc (sem_item_optimizer::filter_removed_items):
12132 Skip variables with body_removed.
12134 2022-06-23 liuhongt <hongtao.liu@intel.com>
12136 * config/i386/sse.md:(sse4_2_pcmpestr): Replace REGNO with
12138 (sse4_2_pcmpistr): Ditto.
12140 2022-06-23 Xionghu Luo <xionghuluo@tencent.com>
12142 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Fix
12144 * tree-ssa-loop-ivopts.cc (struct iv_cand): Likewise.
12145 * tree-switch-conversion.h: Likewise.
12147 2022-06-22 Jason Merrill <jason@redhat.com>
12150 * common.opt: Add -funreachable-traps.
12151 * doc/invoke.texi (-funreachable-traps): Document it.
12152 * opts.cc (finish_options): Enable at -O0 or -Og.
12153 * tree.cc (build_common_builtin_nodes): Add __builtin_trap.
12154 (builtin_decl_unreachable, build_builtin_unreachable): New.
12155 * tree.h: Declare them.
12156 * ubsan.cc (sanitize_unreachable_fn): Factor out.
12157 (ubsan_instrument_unreachable): Use
12158 gimple_build_builtin_unreachable.
12159 * ubsan.h (sanitize_unreachable_fn): Declare.
12160 * gimple.cc (gimple_build_builtin_unreachable): New.
12161 * gimple.h: Declare it.
12162 * builtins.cc (expand_builtin_unreachable): Add assert.
12163 (fold_builtin_0): Call build_builtin_unreachable.
12164 * sanopt.cc: Don't run for just SANITIZE_RETURN
12165 or SANITIZE_UNREACHABLE when trapping.
12166 * cgraphunit.cc (walk_polymorphic_call_targets): Use new
12167 unreachable functions.
12168 * gimple-fold.cc (gimple_fold_call)
12169 (gimple_get_virt_method_for_vtable)
12170 * ipa-fnsummary.cc (redirect_to_unreachable)
12171 * ipa-prop.cc (ipa_make_edge_direct_to_target)
12172 (ipa_impossible_devirt_target)
12173 * ipa.cc (walk_polymorphic_call_targets)
12174 * tree-cfg.cc (pass_warn_function_return::execute)
12175 (execute_fixup_cfg)
12176 * tree-ssa-loop-ivcanon.cc (remove_exits_and_undefined_stmts)
12178 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
12181 2022-06-22 Richard Sandiford <richard.sandiford@arm.com>
12183 PR tree-optimization/106019
12184 * tree-data-ref.cc (dr_may_alias_p): Try using the
12185 innermost_loop_behavior to disambiguate non-loop queries.
12187 2022-06-22 Palmer Dabbelt <palmer@rivosinc.com>
12189 * doc/invoke.texi (RISC-V): Document -mtune=thead-c906.
12191 2022-06-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12193 * config/xtensa/xtensa.md (bswapsi2_internal):
12194 Enlarge the buffer that is obviously smaller than the template
12195 string given to sprintf().
12197 2022-06-21 Roger Sayle <roger@nextmovesoftware.com>
12198 Marek Polacek <polacek@redhat.com>
12199 Segher Boessenkool <segher@kernel.crashing.org>
12200 Kewen Lin <linkw@linux.ibm.com>
12203 * config/rs6000/rs6000.md (rotl<mode>3_insert_3): Check that
12204 exact_log2 doesn't return -1 (or zero).
12205 (plus_xor): New code iterator.
12206 (*rotl<mode>3_insert_3_<code>): New define_insn_and_split.
12208 2022-06-21 Nathan Sidwell <nathan@acm.org>
12210 * doc/invoke.texi (C++ Modules): Remove language-linkage
12211 as missing feature.
12213 2022-06-21 Arjun Shankar <arjun@redhat.com>
12215 PR tree-optimization/94899
12216 * match.pd (X + C < Y + C -> (signed) X < (signed) Y, if C is
12217 0x80000000): New simplification.
12219 2022-06-21 Jakub Jelinek <jakub@redhat.com>
12221 PR rtl-optimization/106032
12222 * ifcvt.cc (noce_try_sign_mask): Punt if !t_unconditional, and
12223 t may_trap_or_fault_p, even if it is cheap.
12225 2022-06-21 Jakub Jelinek <jakub@redhat.com>
12227 PR middle-end/106030
12228 * expr.cc (expand_cond_expr_using_cmove): Pass NULL_RTX instead of
12229 temp to expand_operands if mode has been promoted.
12231 2022-06-21 Xionghu Luo <xionghuluo@tencent.com>
12234 * gimple-if-to-switch.cc (find_conditions): Don't skip the first
12237 2022-06-21 Siddhesh Poyarekar <siddhesh@gotplt.org>
12239 PR tree-optimization/105736
12240 * tree-object-size.cc (addr_object_size): Return size_unknown
12241 when object offset computation returns an error.
12243 2022-06-20 H.J. Lu <hjl.tools@gmail.com>
12246 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
12247 false if PIC register is used when calling ifunc functions.
12249 2022-06-20 Richard Biener <rguenther@suse.de>
12251 PR middle-end/106027
12252 * fold-const.cc (fold_to_nonsharp_ineq_using_bound): Use the
12253 type of the prevailing comparison for the new comparison type.
12254 (fold_binary_loc): Use proper types for the A < X && A + 1 > Y
12255 to A < X && A >= Y folding.
12257 2022-06-20 Kewen Lin <linkw@linux.ibm.com>
12259 PR tree-optimization/105940
12260 * tree-vect-loop.cc (vect_analyze_loop_2): Add new parameter
12261 slp_done_for_suggested_uf and adjust with it accordingly.
12262 (vect_analyze_loop_1): Add new variable slp_done_for_suggested_uf,
12263 pass it down to vect_analyze_loop_2 for the initial analysis and
12264 applying suggested unroll factor.
12265 (vect_is_simple_reduction): Add parameter slp and adjust with it.
12266 (vect_analyze_scalar_cycles_1): Add parameter slp and pass down.
12267 (vect_analyze_scalar_cycles): Likewise.
12269 2022-06-20 Martin Liska <mliska@suse.cz>
12271 * bb-reorder.cc (find_traces_1_round): Add operators / and * and
12273 (better_edge_p): Likewise.
12274 * cfgloop.cc (find_subloop_latch_edge_by_profile): Likewise.
12275 * cfgloopmanip.cc (scale_loop_profile): Likewise.
12276 * cfgrtl.cc (force_nonfallthru_and_redirect): Likewise.
12277 * cgraph.cc (cgraph_edge::maybe_hot_p): Likewise.
12278 * config/sh/sh.cc (expand_cbranchdi4): Likewise.
12279 * dojump.cc (do_compare_rtx_and_jump): Likewise.
12280 * final.cc (compute_alignments): Likewise.
12281 * ipa-cp.cc (update_counts_for_self_gen_clones): Likewise.
12282 (decide_about_value): Likewise.
12283 * ipa-inline-analysis.cc (do_estimate_edge_time): Likewise.
12284 * loop-unroll.cc (unroll_loop_runtime_iterations): Likewise.
12285 * modulo-sched.cc (sms_schedule): Likewise.
12286 * omp-expand.cc (extract_omp_for_update_vars): Likewise.
12287 (expand_omp_ordered_sink): Likewise.
12288 (expand_omp_for_ordered_loops): Likewise.
12289 (expand_omp_for_static_nochunk): Likewise.
12290 * predict.cc (maybe_hot_count_p): Likewise.
12291 (probably_never_executed): Likewise.
12292 (set_even_probabilities): Likewise.
12293 (handle_missing_profiles): Likewise.
12294 (expensive_function_p): Likewise.
12295 * profile-count.h: Likewise.
12296 * profile.cc (compute_branch_probabilities): Likewise.
12297 * stmt.cc (emit_case_dispatch_table): Likewise.
12298 * symtab-thunks.cc (expand_thunk): Likewise.
12299 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop): Likewise.
12300 * tree-ssa-sink.cc (select_best_block): Likewise.
12301 * tree-switch-conversion.cc (switch_decision_tree::analyze_switch_statement): Likewise.
12302 (switch_decision_tree::balance_case_nodes): Likewise.
12303 (switch_decision_tree::emit_case_nodes): Likewise.
12304 * tree-vect-loop.cc (scale_profile_for_vect_loop): Likewise.
12306 2022-06-20 yulong <shiyulong@iscas.ac.cn>
12308 * config/riscv/riscv-builtins.cc (RISCV_ATYPE_VOID_PTR): New.
12309 * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Changed the FUNCTION_TYPE
12311 * config/riscv/riscv-ftypes.def (0): Remove unused.
12314 2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12316 * config/xtensa/xtensa.cc (xtensa_is_insn_L32R_p):
12317 Consider relaxed MOVI instructions as L32R.
12319 2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12321 * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
12322 Use can_create_pseudo_p(), instead of using individual
12323 reload_in_progress and reload_completed.
12324 (xtensa_expand_block_set_small_loop): Use xtensa_simm8x256(),
12325 the existing predicate function.
12326 (xtensa_is_insn_L32R_p, gen_int_relational, xtensa_emit_sibcall):
12327 Use the standard RTX code predicate macros such as MEM_P,
12328 SYMBOL_REF_P and/or CONST_INT_P.
12329 * config/xtensa/xtensa.md: Avoid using numeric literals to determine
12330 if callee-saved register, at the split patterns for indirect sibcall
12333 2022-06-18 Jakub Jelinek <jakub@redhat.com>
12335 * common.opt (flag_sanitize_trap): New variable.
12336 (fsanitize-trap=, fsanitize-trap): New options.
12337 (fsanitize-undefined-trap-on-error): Change into deprecated alias
12338 for -fsanitize-trap=all.
12339 * opts.h (struct sanitizer_opts_s): Add can_trap member.
12340 * opts.cc (finish_options): Complain about unsupported
12341 -fsanitize-trap= options.
12342 (sanitizer_opts): Add can_trap values to all entries.
12343 (get_closest_sanitizer_option): Ignore -fsanitize-trap=
12344 options which have can_trap false.
12345 (parse_sanitizer_options): Add support for -fsanitize-trap=.
12346 For -fsanitize-trap=all, enable
12347 SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT. Disallow
12348 -fsanitize-trap=vptr here.
12349 (common_handle_option): Handle OPT_fsanitize_trap_ and
12350 OPT_fsanitize_trap.
12351 * sanopt.cc (maybe_optimize_ubsan_null_ifn): Check
12352 flag_sanitize_trap & SANITIZE_{NULL,ALIGNMENT} instead of
12353 flag_sanitize_undefined_trap_on_error.
12354 * gcc.cc (sanitize_spec_function): Use
12355 flag_sanitize & ~flag_sanitize_trap instead of flag_sanitize
12356 and drop use of flag_sanitize_undefined_trap_on_error in
12357 "undefined" handling.
12358 * ubsan.cc (ubsan_instrument_unreachable): Use
12359 flag_sanitize_trap & SANITIZE_??? instead of
12360 flag_sanitize_undefined_trap_on_error.
12361 (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
12362 ubsan_expand_objsize_ifn, ubsan_expand_ptr_ifn,
12363 ubsan_build_overflow_builtin, instrument_bool_enum_load,
12364 ubsan_instrument_float_cast, instrument_nonnull_arg,
12365 instrument_nonnull_return, instrument_builtin): Likewise.
12366 * doc/invoke.texi (-fsanitize-trap=, -fsanitize-trap): Document.
12367 (-fsanitize-undefined-trap-on-error): Document as deprecated
12368 alias of -fsanitize-trap.
12370 2022-06-18 Jakub Jelinek <jakub@redhat.com>
12372 PR middle-end/105998
12373 * varasm.cc (narrowing_initializer_constant_valid_p): Check
12374 SCALAR_INT_MODE_P instead of INTEGRAL_MODE_P, also break on
12375 ! INTEGRAL_TYPE_P and do the same check also on op{0,1}'s type.
12377 2022-06-18 Roger Sayle <roger@nextmovesoftware.com>
12379 PR tree-optimization/105835
12380 * match.pd (convert (mult zero_one_valued_p@1 INTEGER_CST@2)):
12381 Narrow integer multiplication by a zero_one_valued_p operand.
12382 (convert (cond @1 INTEGER_CST@2 INTEGER_CST@3)): Push integer
12383 conversions inside COND_EXPR where both data operands are
12386 2022-06-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12388 * config/xtensa/constraints.md (Y):
12389 Change to include integer constants until reload begins.
12390 * config/xtensa/predicates.md (move_operand): Ditto.
12391 * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
12392 Change to allow storing integer constants into litpool only after
12395 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
12398 * config/alpha/alpha-protos.h (alpha_store_data_bypass_p): New.
12399 * config/alpha/alpha.cc (alpha_store_data_bypass_p): New function.
12400 (alpha_store_data_bypass_p_1): Ditto.
12401 * config/alpha/ev4.md: Use alpha_store_data_bypass_p instead
12402 of generic store_data_bypass_p.
12403 (ev4_ist_c): Remove insn reservation.
12405 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
12408 * config/i386/i386.cc (ix86_function_arg): Assert that
12409 the mode of pointer argumet is equal to ptr_mode, not Pmode.
12411 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
12414 * config/i386/sse.md (vpmov splitter): Use (match_dup ...)
12415 instead of REGNO comparisons in combine splitter.
12417 2022-06-17 Segher Boessenkool <segher@kernel.crashing.org>
12419 * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Correct some
12422 2022-06-17 Kito Cheng <kito.cheng@sifive.com>
12424 * config/riscv/bitmanip.md: Supress warning.
12426 2022-06-17 Richard Earnshaw <rearnsha@arm.com>
12429 * config/arm/arm.cc (arm_print_operand, case 'V'): Use UINTVAL.
12430 Clear bits in the mask above bit 31.
12432 2022-06-17 Richard Earnshaw <rearnsha@arm.com>
12434 * config/arm/mve.md (*mve_mov<mode>): Re-order constraints
12435 to avoid spilling trivial literals to the constant pool.
12437 2022-06-16 David Malcolm <dmalcolm@redhat.com>
12439 * gimple-ssa-warn-access.cc (warn_string_no_nul): Add
12440 auto_diagnostic_group to group any warning with its note.
12441 (maybe_warn_for_bound): Likewise.
12442 (check_access): Likewise.
12443 (warn_dealloc_offset): Likewise.
12444 (pass_waccess::maybe_warn_memmodel): Likewise.
12445 (pass_waccess::maybe_check_dealloc_call): Likewise.
12446 (pass_waccess::warn_invalid_pointer): Likewise.
12447 (pass_waccess::check_dangling_stores): Likewise.
12449 2022-06-16 Jason Merrill <jason@redhat.com>
12451 * opts.cc (common_handle_option) [OPT_fsanitize_]: Set
12452 opts_set->x_flag_sanitize.
12454 2022-06-16 Jason Merrill <jason@redhat.com>
12456 * flags.h (issue_strict_overflow_warning): Comment #endif.
12458 2022-06-16 Andrew MacLeod <amacleod@redhat.com>
12460 * gimple-range-cache.cc (ranger_cache::apply_inferred_ranges): If name
12461 was invaraint before, clear the invariant bit.
12462 * gimple-range-gori.cc (gori_map::set_range_invariant): Add a flag.
12463 * gimple-range-gori.h (gori_map::set_range_invariant): Adjust prototype.
12465 2022-06-16 Andrew MacLeod <amacleod@redhat.com>
12467 * tree-ssa-propagate.cc (before_dom_children): Call value_of_stmt.
12469 2022-06-16 Jakub Jelinek <jakub@redhat.com>
12471 PR tree-optimization/105983
12472 * match.pd (y == XXX_MIN || x < y -> x <= y - 1,
12473 y != XXX_MIN && x >= y -> x > y - 1): Use :cs instead of :s
12474 on non-equality comparisons.
12476 2022-06-16 Jakub Jelinek <jakub@redhat.com>
12478 PR tree-optimization/105984
12479 * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
12480 x > stype_max / cst || x < stype_min / cst): fold_convert @1
12481 to TREE_TYPE (@0) just once and test for negative divisor
12482 also on that folded constant instead of on @1.
12484 2022-06-16 Jakub Jelinek <jakub@redhat.com>
12486 PR middle-end/105951
12487 * tree-ssa-ccp.cc (optimize_atomic_bit_test_and,
12488 optimize_atomic_op_fetch_cmp_0): Remember gimple_call_fn (call)
12489 as last argument to the internal functions.
12490 * builtins.cc (expand_ifn_atomic_bit_test_and): Adjust for the
12491 extra call argument to ifns. If expand_atomic_fetch_op fails for the
12492 lhs == NULL_TREE case, fall through into the optab code with
12493 gen_reg_rtx (mode) as target. If second expand_atomic_fetch_op
12494 fails, construct a CALL_EXPR and expand that.
12495 (expand_ifn_atomic_op_fetch_cmp_0): Adjust for the extra call argument
12496 to ifns. If expand_atomic_fetch_op fails, construct a CALL_EXPR and
12499 2022-06-16 Haochen Gui <guihaoc@gcc.gnu.org>
12502 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Enable
12503 gimple folding for RS6000_BIF_VCMPEQUT, RS6000_BIF_VCMPNET,
12504 RS6000_BIF_CMPGE_1TI, RS6000_BIF_CMPGE_U1TI, RS6000_BIF_VCMPGTUT,
12505 RS6000_BIF_VCMPGTST, RS6000_BIF_CMPLE_1TI, RS6000_BIF_CMPLE_U1TI.
12506 * config/rs6000/vector.md (VEC_IC): New mode iterator. Add support
12507 for new Power10 V1TI instructions.
12508 (vec_cmp<mode><mode>): Set mode iterator to VEC_IC.
12509 (vec_cmpu<mode><mode>): Likewise.
12510 (vector_nlt<mode>): Set mode iterator to VEC_IC.
12511 (vector_nltv1ti): Remove.
12512 (vector_gtu<mode>): Set mode iterator to VEC_IC.
12513 (vector_gtuv1ti): Remove.
12514 (vector_nltu<mode>): Set mode iterator to VEC_IC.
12515 (vector_nltuv1ti): Remove.
12516 (vector_geu<mode>): Set mode iterator to VEC_IC.
12517 (vector_ngt<mode>): Likewise.
12518 (vector_ngtv1ti): Remove.
12519 (vector_ngtu<mode>): Set mode iterator to VEC_IC.
12520 (vector_ngtuv1ti): Remove.
12521 (vector_gtu_<mode>_p): Set mode iterator to VEC_IC.
12522 (vector_gtu_v1ti_p): Remove.
12523 (vrotl<mode>3): Set mode iterator to VEC_IC. Emit insns for V1TI.
12524 (vrotlv1ti3): Remove.
12525 (vashr<mode>3): Set mode iterator to VEC_IC. Emit insns for V1TI.
12526 (vashrv1ti3): Remove.
12528 2022-06-16 Martin Liska <mliska@suse.cz>
12530 * gengtype-state.cc (read_a_state_token): Do not skip extra
12531 character after escaped sequence.
12533 2022-06-16 Martin Liska <mliska@suse.cz>
12536 * spellcheck.cc (test_find_closest_string): Add new test.
12537 * spellcheck.h (class best_match): Prefer a difference in
12538 trailing sign symbol.
12540 2022-06-16 liuhongt <hongtao.liu@intel.com>
12542 PR tree-optimization/53533
12543 * match.pd: Simplify (B * v + C) * D -> BD * v + CD and
12544 (v + B) * C + D -> C * v + BCD when B,C,D are all INTEGER_CST,
12545 and there's no overflow or !TYPE_OVERFLOW_UNDEFINED.
12547 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12549 * config/xtensa/xtensa.md (DSC): New split pattern and mode iterator.
12551 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12553 * config/xtensa/predicates.md (reload_operand):
12555 * config/xtensa/xtensa.md: New peephole2 pattern.
12557 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12559 * config/xtensa/xtensa.md (*round_up_to_even):
12560 New insn-and-split pattern.
12561 (*signed_ge_zero): Ditto.
12563 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12565 * config/xtensa/xtensa-protos.h (xtensa_prepare_expand_call,
12566 xtensa_emit_sibcall): New prototypes.
12567 (xtensa_expand_epilogue): Add new argument that specifies whether
12568 or not sibling call.
12569 * config/xtensa/xtensa.cc (TARGET_FUNCTION_OK_FOR_SIBCALL):
12570 New macro definition.
12571 (xtensa_prepare_expand_call): New function in order to share
12573 (xtensa_emit_sibcall, xtensa_function_ok_for_sibcall):
12575 (xtensa_expand_epilogue): Add new argument sibcall_p and use it
12576 for sibling call handling.
12577 * config/xtensa/xtensa.md (call, call_value):
12578 Use xtensa_prepare_expand_call.
12579 (call_internal, call_value_internal):
12580 Add the condition in order to be disabled if sibling call.
12581 (sibcall, sibcall_value, sibcall_epilogue): New expansions.
12582 (sibcall_internal, sibcall_value_internal): New insn patterns,
12583 and split ones in order to take care of the indirect sibcalls.
12585 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12587 * doc/invoke.texi: Document -mextra-l32r-costs= option.
12589 2022-06-15 David Malcolm <dmalcolm@redhat.com>
12592 * doc/invoke.texi: Add -fno-analyzer-undo-inlining.
12593 * tree-diagnostic-path.cc (default_tree_diagnostic_path_printer):
12594 Extend -fdiagnostics-path-format=separate-events so that with
12595 -fdiagnostics-show-path-depths it prints fndecls as well as stack
12598 2022-06-15 David Malcolm <dmalcolm@redhat.com>
12600 * value-relation.h: Add "final" and "override" to relation_oracle
12601 vfunc implementations as appropriate.
12603 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
12605 PR middle-end/105975
12606 Revert everything apart from the expand_fn_using_insn and
12607 expand_direct_optab_fn changes from:
12608 * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
12609 (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
12610 (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
12611 (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
12612 * internal-fn.h (direct_internal_fn_info::directly_mapped): New
12614 (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
12615 (direct_internal_fn_p): Also return true for internal functions
12616 that map directly to instructions defined target-insns.def.
12617 (direct_internal_fn): Adjust comment accordingly.
12618 * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
12619 (vectorizable_optab2): New local macros.
12620 (not_direct): Initialize directly_mapped.
12621 (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
12622 (gather_load_direct, len_load_direct, mask_store_direct)
12623 (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
12624 (vec_cond_direct, scatter_store_direct, len_store_direct)
12625 (vec_set_direct, unary_direct, binary_direct, ternary_direct)
12626 (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
12627 (while_direct, fold_extract_direct, fold_left_direct)
12628 (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
12629 (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
12630 (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
12631 (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
12632 (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
12633 (direct_internal_fn_types): Handle functions that map to instructions
12634 defined in target-insns.def.
12635 (direct_internal_fn_types): Likewise.
12636 (direct_internal_fn_supported_p): Likewise.
12637 (internal_fn_expanders): Likewise.
12638 (expand_fn_using_insn): New function,
12639 split out and adapted from...
12640 (expand_direct_optab_fn): ...here.
12641 (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
12642 (expand_GOMP_SIMT_EXIT): Likewise.
12643 (expand_GOMP_SIMT_LANE): Likewise.
12644 (expand_GOMP_SIMT_LAST_LANE): Likewise.
12645 (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
12646 (expand_GOMP_SIMT_VOTE_ANY): Likewise.
12647 (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
12648 (expand_GOMP_SIMT_XCHG_IDX): Likewise.
12650 2022-06-15 Richard Earnshaw <rearnsha@arm.com>
12653 * config/arm/arm.cc (gen_cpymem_ldrd_strd): Rename low_reg and hi_reg
12654 to first_reg and second_reg respectively. Initialize them correctly
12655 when generating big-endian code.
12657 2022-06-15 Richard Earnshaw <rearnsha@arm.com>
12660 * config/arm/arm.cc (arm_bfi_1_p): Use UINTVAL instead of XUINT.
12662 2022-06-15 Richard Biener <rguenther@suse.de>
12664 PR tree-optimization/105971
12665 * tree-ssa-alias.cc (refs_may_alias_p_2): Put bail-out for
12666 FUNCTION_DECL and LABEL_DECL refs after decl-decl disambiguation
12667 to leak less surprising alias results.
12669 2022-06-15 Richard Biener <rguenther@suse.de>
12671 PR tree-optimization/105969
12672 * gimple-ssa-sprintf.cc (get_origin_and_offset_r): Avoid division
12673 by zero in overflow check.
12675 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
12677 PR tree-optimization/105254
12678 PR tree-optimization/105940
12680 * config/aarch64/aarch64.cc
12681 (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
12682 loop_vec_info as argument. Restrict the unroll factor to values
12683 that divide the VF.
12684 (aarch64_vector_costs::finish_cost): Update call accordingly.
12686 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
12688 * read-rtl.cc (find_int): Substitute symbolic constants
12689 before converting the string to an integer.
12691 2022-06-15 Roger Sayle <roger@nextmovesoftware.com>
12692 Richard Biener <rguenther@suse.de>
12694 * match.pd (convert (lshift @1 INTEGER_CST@2)): Narrow integer
12695 left shifts by a constant when the result is truncated, and the
12696 shift constant is well-defined.
12697 * tree-vect-patterns.cc (vect_recog_rotate_pattern): Add
12698 support for rotations of signed integer types, by lowering
12699 using unsigned vector shifts.
12701 2022-06-15 liuhongt <hongtao.liu@intel.com>
12704 * config/i386/sse.md (*avx_cmp<mode>3_ltint_not): Force_reg
12707 2022-06-14 Surya Kumari Jangala <jskumari@linux.ibm.com>
12709 PR rtl-optimization/105041
12710 * regrename.cc (check_new_reg_p): Use nregs value from du chain.
12712 2022-06-14 Segher Boessenkool <segher@kernel.crashing.org>
12714 * config/rs6000/vsx.md (VS_scalar): Delete.
12715 (rest of file): Adjust.
12717 2022-06-14 Jan Hubicka <hubicka@ucw.cz>
12720 * ipa-prop.cc (ipa_load_from_parm_agg): Punt on volatile loads.
12722 2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu>
12724 * config/riscv/bitmanip.md: Add split to handle opportunities
12725 for slli + sh[123]add.uw
12727 2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu>
12729 * config/riscv/predicates.md (consecutive_bits_operand):
12730 Implement new predicate.
12732 2022-06-14 Richard Biener <rguenther@suse.de>
12734 PR tree-optimization/105946
12735 * tree-ssa-uninit.cc (maybe_warn_pass_by_reference):
12736 Do not look at arguments not specified in the function call.
12738 2022-06-14 Richard Biener <rguenther@suse.de>
12740 PR middle-end/105965
12741 * match.pd (view_convert CONSTRUCTOR): Handle single-element
12744 2022-06-14 Eric Botcazou <ebotcazou@adacore.com>
12746 * warning-control.cc (copy_warning) [generic version]: Do not erase
12747 the warning data of the destination location when the no-warning
12748 bit is not set on the source.
12749 (copy_warning) [tree version]: Return early if TO is equal to FROM.
12750 (copy_warning) [gimple version]: Likewise.
12752 2022-06-14 Kewen Lin <linkw@linux.ibm.com>
12754 PR tree-optimization/105940
12755 * tree-vect-loop.cc (vect_analyze_loop_2): Move the place of
12756 applying suggested_unroll_factor after start_over.
12758 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12760 * config/xtensa/predicates.md (shifted_mask_operand):
12762 * config/xtensa/xtensa.md (*andsi3_const_pow2_minus_one):
12763 New insn-and-split pattern.
12764 (*andsi3_const_negative_pow2, *andsi3_const_shifted_mask,
12765 *masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
12766 *masktrue_const_shifted_mask): Ditto.
12768 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12770 * config/xtensa/xtensa.md (*masktrue_bitcmpl): New insn pattern.
12772 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12774 * config/xtensa/xtensa-protos.h (xtensa_emit_branch):
12775 Remove the first argument.
12776 (xtensa_emit_bit_branch): Remove it because now called only from the
12777 output statement of *bittrue insn pattern.
12778 * config/xtensa/xtensa.cc (gen_int_relational): Remove the last
12779 argument 'p_invert', and make so that the condition is reversed by
12781 (xtensa_expand_conditional_branch): Share the common path, and remove
12782 condition inversion code.
12783 (xtensa_emit_branch, xtensa_emit_movcc): Simplify by removing the
12784 "false side" pattern.
12785 (xtensa_emit_bit_branch): Remove it because of the abovementioned
12786 reason, and move the function body to *bittrue insn pattern.
12787 * config/xtensa/xtensa.md (*bittrue): Transplant the output
12788 statement from removed xtensa_emit_bit_branch().
12789 (*bfalse, *ubfalse, *bitfalse, *maskfalse): Remove the "false side"
12792 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12794 * config/xtensa/predicates.md (logical_shift_operator,
12795 xtensa_shift_per_byte_operator): New predicates.
12796 * config/xtensa/xtensa-protos.h (xtensa_shlrd_which_direction):
12798 * config/xtensa/xtensa.cc (xtensa_shlrd_which_direction):
12799 New helper function for funnel shift patterns.
12800 * config/xtensa/xtensa.md (ior_op): New code iterator.
12801 (*ashlsi3_1): Replace with new split pattern.
12802 (*shift_per_byte): Unify *ashlsi3_3x, *ashrsi3_3x and *lshrsi3_3x.
12803 (*shift_per_byte_omit_AND_0, *shift_per_byte_omit_AND_1):
12804 New insn-and-split patterns that redirect to *xtensa_shift_per_byte,
12805 in order to omit unnecessary bitwise AND operation.
12806 (*shlrd_reg_<code>, *shlrd_const_<code>, *shlrd_per_byte_<code>,
12807 *shlrd_per_byte_<code>_omit_AND):
12808 New insn patterns for funnel shifts.
12810 2022-06-13 Jason Merrill <jason@redhat.com>
12812 * tree-cfg.cc (pass_warn_function_return::execute): Also check
12815 2022-06-13 Maciej W. Rozycki <macro@embecosm.com>
12817 * config/riscv/riscv.md (length): Remove the explicit setting
12820 2022-06-13 H.J. Lu <hjl.tools@gmail.com>
12822 * common/config/i386/cpuinfo.h (get_available_features): Require
12823 AVX for F16C and VAES.
12825 2022-06-13 Uroš Bizjak <ubizjak@gmail.com>
12828 * config/i386/predicates.md (register_no_elim_operand):
12829 Return true for subreg of a memory operand.
12831 2022-06-13 Richard Sandiford <richard.sandiford@arm.com>
12833 * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
12834 (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
12835 (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
12836 (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
12837 * internal-fn.h (direct_internal_fn_info::directly_mapped): New
12839 (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
12840 (direct_internal_fn_p): Also return true for internal functions
12841 that map directly to instructions defined target-insns.def.
12842 (direct_internal_fn): Adjust comment accordingly.
12843 * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
12844 (vectorizable_optab2): New local macros.
12845 (not_direct): Initialize directly_mapped.
12846 (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
12847 (gather_load_direct, len_load_direct, mask_store_direct)
12848 (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
12849 (vec_cond_direct, scatter_store_direct, len_store_direct)
12850 (vec_set_direct, unary_direct, binary_direct, ternary_direct)
12851 (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
12852 (while_direct, fold_extract_direct, fold_left_direct)
12853 (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
12854 (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
12855 (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
12856 (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
12857 (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
12858 (direct_internal_fn_types): Handle functions that map to instructions
12859 defined in target-insns.def.
12860 (direct_internal_fn_types): Likewise.
12861 (direct_internal_fn_supported_p): Likewise.
12862 (internal_fn_expanders): Likewise.
12864 2022-06-13 Richard Sandiford <richard.sandiford@arm.com>
12866 * internal-fn.cc (expand_fn_using_insn): New function,
12867 split out and adapted from...
12868 (expand_direct_optab_fn): ...here.
12869 (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
12870 (expand_GOMP_SIMT_EXIT): Likewise.
12871 (expand_GOMP_SIMT_LANE): Likewise.
12872 (expand_GOMP_SIMT_LAST_LANE): Likewise.
12873 (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
12874 (expand_GOMP_SIMT_VOTE_ANY): Likewise.
12875 (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
12876 (expand_GOMP_SIMT_XCHG_IDX): Likewise.
12878 2022-06-13 Jakub Jelinek <jakub@redhat.com>
12880 * omp-expand.cc (expand_omp_target): Remap user provided
12881 device clause arguments, -1 to -2 and -2 to -3, either
12882 at compile time if constant, or at runtime.
12884 2022-06-13 Eric Botcazou <ebotcazou@adacore.com>
12886 * common.opt (finstrument-functions): Set explicit value.
12887 (-finstrument-functions-once): New option.
12888 * doc/invoke.texi (Program Instrumentation Options): Document it.
12889 * gimplify.cc (build_instrumentation_call): New static function.
12890 (gimplify_function_tree): Call it to emit the instrumentation calls
12891 if -finstrument-functions[-once] is specified.
12893 2022-06-13 Eric Botcazou <ebotcazou@adacore.com>
12895 * dwarf2out.cc (output_one_line_info_table): Initialize prev_addr.
12896 * gimple.h (gimple_set_location): Do not copy warning data from
12897 the previous location when it is UNKNOWN_LOCATION.
12898 * optabs.cc (expand_widen_pattern_expr): Always set oprnd{1,2}.
12900 2022-06-13 Jakub Jelinek <jakub@redhat.com>
12903 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
12904 *<insn><dwi>3_doubleword_mask): Use operands[3] masked with
12905 (<MODE_SIZE> * BITS_PER_UNIT) - 1 as AND operand instead of
12906 operands[3] unmodified.
12908 2022-06-12 Simon Wright <simon@pushface.org>
12911 * config/darwin-driver.cc (darwin_find_version_from_kernel): If the OS
12912 version is darwin20 (macOS 11) or greater, truncate the version to the
12915 2022-06-12 Mark Mentovai <mark@mentovai.com>
12917 * config/darwin-c.cc: Make -mmacosx-version-min more future-proof.
12919 2022-06-12 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12922 * config/aarch64/aarch64-sve-builtins-base.cc: Include ssa.h.
12923 (svld1rq_impl::fold): Define.
12924 * config/aarch64/aarch64.cc (expand_vec_perm_d): Define new members
12925 op_mode and op_vec_flags.
12926 (aarch64_evpc_reencode): Initialize newd.op_mode and
12928 (aarch64_evpc_sve_dup): New function.
12929 (aarch64_expand_vec_perm_const_1): Gate existing calls to
12930 aarch64_evpc_* functions under d->vmode == d->op_mode,
12931 and call aarch64_evpc_sve_dup.
12932 (aarch64_vectorize_vec_perm_const): Remove assert
12933 d->vmode != d->op_mode, and initialize d.op_mode and d.op_vec_flags.
12934 * tree-cfg.cc (verify_gimple_assign_ternary): Allow different
12935 vector types for lhs and rhs in VEC_PERM_EXPR if rhs3 is
12938 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12940 * config/xtensa/xtensa-protos.h (xtensa_constantsynth):
12942 * config/xtensa/xtensa.cc (xtensa_emit_constantsynth,
12943 xtensa_constantsynth_2insn, xtensa_constantsynth_rtx_SLLI,
12944 xtensa_constantsynth_rtx_ADDSUBX, xtensa_constantsynth):
12945 New backend functions that process the abovementioned logic.
12946 (xtensa_emit_move_sequence): Revert the previous changes.
12947 * config/xtensa/xtensa.md: New split patterns for integer
12948 and floating-point, as the frontend part.
12950 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12952 * config/xtensa/xtensa.cc (xtensa_rtx_costs): Correct wrong case
12953 for ABS and NEG, add missing case for BSWAP and CLRSB, and
12954 double the costs for integer divisions using libfuncs if
12955 optimizing for speed, in order to take advantage of fast constant
12956 division by multiplication.
12957 (TARGET_INSN_COST): New macro definition.
12958 (xtensa_is_insn_L32R_p, xtensa_insn_cost): New functions for
12959 calculating relative costs of a RTL insns, for both of speed and
12961 * config/xtensa/xtensa.md (return, nop, trap): Correct values of
12962 the attribute "length" that depends on TARGET_DENSITY.
12963 (define_asm_attributes, blockage, frame_blockage): Add missing
12965 * config/xtensa/xtensa.opt (-mextra-l32r-costs=): New machine-
12966 dependent option, however, preparatory work for now.
12968 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12970 * config/xtensa/xtensa.cc (xtensa_expand_block_set_small_loop):
12971 Pass through the block length / loop count conditions if
12972 zero-overhead looping is configured and active,
12974 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12976 * config/xtensa/xtensa.md (mulsidi3, umulsidi3):
12977 Split into individual signedness, in order to use libcall
12978 "__umulsidi3" but not the other.
12979 (<u>mulhisi3): Merge into one by using code iterator.
12980 (<u>mulsidi3, mulhisi3, umulhisi3): Remove.
12982 2022-06-11 Michael Meissner <meissner@linux.ibm.com>
12984 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Do
12985 not generate block copies with vector pair instructions if we are
12986 tuning for power10.
12988 2022-06-10 Roger Sayle <roger@nextmovesoftware.com>
12990 PR rtl-optimization/7061
12991 * expr.cc (emit_group_store): For groups that consist of a single
12992 scalar integer register that hold a complex mode value, use
12993 gen_lowpart to generate a SUBREG to "view_convert" to the complex
12994 mode. For modes of different sizes, first convert to an integer
12995 mode of the appropriate size.
12997 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12999 * config/xtensa/xtensa.md (clrsbsi2): New insn pattern.
13001 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
13003 * config/xtensa/xtensa.md (*andsi3_bitcmpl):
13004 New insn_and_split pattern.
13006 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
13008 * config/xtensa/xtensa.md (one_cmplsi2):
13009 Rearrange as an insn_and_split pattern.
13011 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
13013 * config/xtensa/xtensa.md (bswaphi2): New insn pattern.
13015 2022-06-09 Segher Boessenkool <segher@kernel.crashing.org>
13017 * config/rs6000/rs6000.md (FP_ISA3): Delete.
13018 (float<QHI:mode><FP_ISA3:mode>2): Rename to...
13019 (float<QHI:mode><SFDF:mode>2): ... this. Adjust.
13020 (*float<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
13021 (*float<QHI:mode><SFDF:mode>2_internal): ... this. Adjust.
13022 (floatuns<QHI:mode><FP_ISA3:mode>2): Rename to...
13023 (floatuns<QHI:mode><SFDF:mode>2): ... this. Adjust.
13024 (*floatuns<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
13025 (*floatuns<QHI:mode><SFDF:mode>2_internal): ... this. Adjust.
13027 2022-06-09 Maciej W. Rozycki <macro@embecosm.com>
13029 * config/riscv/riscv.md
13030 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
13031 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Emit a tab
13032 rather than space with FSFLAGS.
13034 2022-06-09 Tobias Burnus <tobias@codesourcery.com>
13036 * omp-offload.cc (omp_discover_declare_target_tgt_fn_r,
13037 omp_discover_declare_target_fn_r): Don't walk reverse-offload
13040 2022-06-09 Jakub Jelinek <jakub@redhat.com>
13042 * doc/invoke.texi (-Waddress): Fix a typo in small example.
13043 Fix typos inptr_t -> intptr_t and uinptr_t -> uintptr_t.
13045 2022-06-09 Cui,Lili <lili.cui@intel.com>
13048 * config/i386/x86-tune-costs.h (skylake_cost): Raise the gpr load cost
13049 from 4 to 6 and gpr store cost from 6 to 8. Change SSE loads and
13050 unaligned loads cost from {6, 6, 6, 10, 20} to {8, 8, 8, 8, 16}.
13051 (icelake_cost): Ditto.
13052 (alderlake_cost): Raise the gpr store cost from 6 to 8 and SSE loads,
13053 stores and unaligned stores cost from {6, 6, 6, 10, 15} to
13056 2022-06-09 Haochen Gui <guihaoc@gcc.gnu.org>
13058 * config/rs6000/rs6000.md (define_split for bswapdi load): Merge shift
13059 and ior insns to one rotate and mask insn.
13060 (define_split for bswapdi register): Likewise.
13062 2022-06-08 Roger Sayle <roger@nextmovesoftware.com>
13064 PR middle-end/105874
13065 * expr.cc (expand_expr_real_1) <normal_inner_ref>: New local
13066 variable tem_modifier for calculating the expand_modifier enum to
13067 use for expanding tem. If tem is a VAR_DECL, use EXPAND_MEMORY.
13069 2022-06-08 Max Filippov <jcmvbkbc@gmail.com>
13072 * config/xtensa/xtensa.md (movdi): Rename 'first' and 'second'
13073 to 'lowpart' and 'highpart' so that they match 'gen_lowpart' and
13074 'gen_highpart' bitwise semantics and fix order of highpart and
13075 lowpart depending on target endianness.
13077 2022-06-08 Chung-Ju Wu <jasonwucj@gmail.com>
13079 * config/arm/arm-cpus.in (star-mc1): New cpu.
13080 * config/arm/arm-tables.opt: Regenerate.
13081 * config/arm/arm-tune.md: Regenerate.
13082 * doc/invoke.texi: Update docs.
13084 2022-06-08 liuhongt <hongtao.liu@intel.com>
13088 * config/i386/i386.md (*movsi_internal): Change alternative
13090 (*movdi_internal): Ditto.
13091 * config/i386/sse.md (vec_set<mode>_0): Change alternative *r
13093 (*vec_extractv4sf_mem): Ditto.
13094 (*vec_extracthf): Ditto.
13096 2022-06-07 Richard Earnshaw <rearnsha@arm.com>
13099 * config/arm/arm.cc (arm_bfi_1_p): New function.
13100 (arm_bfi_p): New function.
13101 (arm_rtx_costs_internal): Add costs for BFI idioms.
13102 (arm_print_operand [case 'V']): Format output for BFI/BFC masks.
13103 * config/arm/constraints.md (Dj): New constraint.
13104 * config/arm/arm.md (arm_andsi3_insn): Add alternative to use BFC.
13105 (insv_zero): Convert to an insn with a split.
13106 (*bfi, *bfi_alt1, *bfi_alt2, *bfi_alt3): New patterns.
13108 2022-06-07 liuhongt <hongtao.liu@intel.com>
13111 * config/i386/sse.md (ssse3_palignrdi): Change alternative 2
13114 2022-06-07 Roger Sayle <roger@nextmovesoftware.com>
13116 PR middle-end/105853
13118 * calls.cc (load_register_parameters): Call store_constructor
13119 and int_expr_size directly instead of expanding via expand_expr.
13120 * expr.cc (static void store_constructor): Don't prototype here.
13121 (static HOST_WIDE_INT int_expr_size): Likewise.
13122 (store_constructor): No longer static.
13123 (int_expr_size): Likewise, no longer static.
13124 * expr.h (store_constructor): Prototype here.
13125 (int_expr_size): Prototype here.
13127 2022-06-07 Jan Beulich <jbeulich@suse.com>
13130 2022-06-03 Jan Beulich <jbeulich@suse.com>
13132 * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
13133 * configure.ac: Check for objcopy, producing
13134 ORIGINAL_OBJCOPY_FOR_TARGET.
13135 * configure: Update accordingly.
13136 * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
13139 2022-06-07 Jakub Jelinek <jakub@redhat.com>
13141 * tree.h (OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER): Define.
13142 * tree-pretty-print.cc (dump_omp_clause) <case OMP_CLAUSE_LINEAR>:
13143 Adjust clause printing style depending on
13144 OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER.
13146 2022-06-07 Jan Beulich <jbeulich@suse.com>
13148 * config/i386/i386-builtin.def (__builtin_ia32_psadbw256):
13150 * config/i386/i386-builtin-types.def: New function type
13151 (V4DI, V32QI, V32QI).
13152 * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle
13153 V4DI_FTYPE_V32QI_V32QI.
13155 2022-06-07 Jan Beulich <jbeulich@suse.com>
13157 * config/i386/i386.cc (ix86_attr_length_vex_default): Take REX.B
13158 into account for reg-only insns.
13160 2022-06-07 Roger Sayle <roger@nextmovesoftware.com>
13162 * config/i386/i386.cc (ix86_rtx_costs): Add a new case for
13163 IF_THEN_ELSE, and provide costs for TARGET_XOP's vpcmov and
13164 TARGET_CMOVE's (scalar integer) conditional moves.
13165 * config/i386/sse.md (define_split): Recognize XOP's vpcmov
13166 from its equivalent (canonical) pxor;pand;pxor sequence.
13168 2022-06-07 Kewen Lin <linkw@linux.ibm.com>
13170 * machmode.def (VECTOR_MODES_WITH_PREFIX): Update document for
13173 2022-06-06 Andrew Stubbs <ams@codesourcery.com>
13175 * config.in: Regenerate.
13176 * configure: Regenerate.
13177 * configure.ac: Reinstate HAVE_GAS_ARM_EXTENDED_ARCH test.
13179 2022-06-04 Roger Sayle <roger@nextmovesoftware.com>
13181 PR middle-end/95126
13182 * calls.cc (load_register_parameters): When loading a suitable
13183 immediate_const_ctor_p VAR_DECL into a single word_mode register,
13184 construct it directly in a pseudo rather than read it (by parts)
13186 * expr.cc (int_expr_size): Make tree argument a const_tree.
13187 (immediate_const_ctor_p): Helper predicate. Return true for
13188 simple constructors that may be materialized in a register.
13189 (expand_expr_real_1) [VAR_DECL]: When expanding a constant
13190 VAR_DECL with a suitable immediate_const_ctor_p constructor
13191 use store_constructor to materialize it directly in a pseudo.
13192 * expr.h (immediate_const_ctor_p): Prototype here.
13193 * varasm.cc (initializer_constant_valid_for_bitfield_p): Change
13194 VALUE argument from tree to const_tree.
13195 * varasm.h (initializer_constant_valid_for_bitfield_p): Update
13198 2022-06-04 Jakub Jelinek <jakub@redhat.com>
13201 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
13202 *<insn><dwi>3_doubleword_mask): If top bit of mask is clear, but lower
13203 bits of mask aren't all set, use operands[2] mode for the AND
13204 operation instead of always SImode.
13206 2022-06-03 Jakub Jelinek <jakub@redhat.com>
13208 PR middle-end/30314
13209 PR middle-end/105777
13210 * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
13211 x > stype_max / cst || x < stype_min / cst): New simplification.
13213 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
13215 * gimple-range-cache.cc (ranger_cache::range_from_dom): Use
13217 * gimple-range.cc (gimple_ranger::register_inferred_ranges): Same.
13218 * value-range.h (Value_Range::Value_Range): Implement copy
13219 constructor for Value_Range.
13221 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
13223 * value-range.h (struct vrange_traits): Remove.
13224 (is_a): Rewrite without vrange_traits.
13227 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
13229 * value-range.cc (vrange::contains_p): Implement.
13230 (vrange::type): Return void.
13231 (vrange::supports_type_p): Implement.
13232 (irange::fits_p): Same.
13233 (vrange::set_undefined): Same.
13234 (irange::set_nonnegative): Same.
13235 (vrange::set_varying): Same.
13236 (vrange::union_): Same.
13237 (unsupported_range::set): Move to vrange.
13238 (unsupported_range::type): Move to vrange.
13239 (vrange::intersect): Implement for varying and undefined.
13240 (vrange::zero_p): Implement.
13241 (unsupported_range::supports_type_p): Move to vrange.
13242 (vrange::nonzero_p): Implement.
13243 (unsupported_range::set_undefined): Move to vrange.
13244 (unsupported_range::set_varying): Same.
13245 (unsupported_range::dump): Same.
13246 (unsupported_range::union_): Same. Implement for varying and
13248 (unsupported_range::intersect): Move to vrange.
13249 (unsupported_range::zero_p): Same.
13250 (unsupported_range::nonzero_p): Same.
13251 (unsupported_range::set_nonzero): Same.
13252 (unsupported_range::set_zero): Same.
13253 (unsupported_range::set_nonnegative): Same.
13254 (unsupported_range::fits_p): Same.
13255 * value-range.h (class vrange): Remove abstract markers for most
13257 (class unsupported_range): Remove most methods as they will now be
13258 inherited from vrange.
13260 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
13262 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
13263 an object level supports_type_p for irange and a static
13264 Value_Range::supports_type_p.
13265 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Same.
13266 (fold_using_range::range_of_address): Same.
13267 (fold_using_range::range_of_builtin_call): Same.
13268 * gimple-range-fold.h (gimple_range_type): Same.
13269 (gimple_range_ssa_p): Same.
13270 * gimple-range-path.cc (path_range_query::internal_range_of_expr):
13272 (path_range_query::range_of_stmt): Same.
13273 (path_range_query::add_to_imports): Same.
13274 * gimple-range.cc (gimple_ranger::range_on_edge): Same.
13275 (gimple_ranger::export_global_ranges): Same.
13276 * gimple-ssa-evrp-analyze.cc
13277 (evrp_range_analyzer::record_ranges_from_phis): Same.
13278 * range-op.cc (range_operator::wi_fold): Same.
13279 (range_operator::fold_range): Same.
13280 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Same.
13281 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Same.
13282 (evaluate_control_stmt_using_entry_checks): Same.
13283 * tree-ssa-threadedge.cc
13284 (hybrid_jt_simplifier::compute_ranges_from_state): Same.
13285 * tree-vrp.cc (supported_types_p): Same.
13286 * value-query.cc (range_query::value_of_expr): Same.
13287 (range_query::value_on_edge): Same.
13288 (range_query::value_of_stmt): Same.
13289 (range_query::get_tree_range): Same.
13290 (get_range_global): Same.
13291 (global_range_query::range_of_expr): Same.
13292 * value-range-equiv.h (class value_range_equiv): Same.
13293 * value-range.cc (irange::supports_type_p): Same.
13294 (unsupported_range::supports_type_p): Same.
13295 * value-range.h (enum value_range_discriminator): Same.
13296 (Value_Range::init): Same.
13297 (Value_Range::supports_type_p): Same.
13298 (irange::supports_type_p): Same.
13299 (irange::supports_p): Same.
13300 (vrange::supports_type_p): Same.
13301 (vrange_allocator::alloc_vrange): Same.
13303 2022-06-03 Jan Beulich <jbeulich@suse.com>
13305 * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
13306 * configure.ac: Check for objcopy, producing
13307 ORIGINAL_OBJCOPY_FOR_TARGET.
13308 * configure: Update accordingly.
13309 * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
13312 2022-06-03 Jan Beulich <jbeulich@suse.com>
13314 * config/i386/mmx.md (mmx_psadbw): Convert to expander.
13315 (*mmx_psadbw): New. Mark as commutative.
13316 * config/i386/sse.md (<sse2_avx2>_psadbw): Convert to expander.
13317 (*<sse2_avx2>_psadbw): New. Mark as commutative.
13319 2022-06-03 Alexandre Oliva <oliva@adacore.com>
13321 PR tree-optimization/105665
13322 PR tree-optimization/100810
13323 * tree-ssa-loop-ivopts.cc
13324 (ssa_name_maybe_undef_p, ssa_name_set_maybe_undef): New.
13325 (ssa_name_any_use_dominates_bb_p, mark_ssa_maybe_undefs): New.
13326 (find_ssa_undef): Check precomputed flag and intervening uses.
13327 (tree_ssa_iv_optimize): Call mark_ssa_maybe_undefs.
13329 2022-06-02 David Malcolm <dmalcolm@redhat.com>
13331 * Makefile.in (OBJS): Add tree-diagnostic-client-data-hooks.o and
13332 tree-logical-location.o.
13333 (OBJS-libcommon): Add diagnostic-format-sarif.o; reorder.
13334 (CFLAGS-tree-diagnostic-client-data-hooks.o): Add TARGET_NAME.
13335 * common.opt (fdiagnostics-format=): Add sarif-stderr and sarif-file.
13336 (sarif-stderr, sarif-file): New enum values.
13337 * diagnostic-client-data-hooks.h: New file.
13338 * diagnostic-format-sarif.cc: New file.
13339 * diagnostic-path.h (enum diagnostic_event::verb): New enum.
13340 (enum diagnostic_event::noun): New enum.
13341 (enum diagnostic_event::property): New enum.
13342 (struct diagnostic_event::meaning): New struct.
13343 (diagnostic_event::get_logical_location): New vfunc.
13344 (diagnostic_event::get_meaning): New vfunc.
13345 (simple_diagnostic_event::get_logical_location): New vfunc impl.
13346 (simple_diagnostic_event::get_meaning): New vfunc impl.
13347 * diagnostic.cc: Include "diagnostic-client-data-hooks.h".
13348 (diagnostic_initialize): Initialize m_client_data_hooks.
13349 (diagnostic_finish): Clean up m_client_data_hooks.
13350 (diagnostic_event::meaning::dump_to_pp): New.
13351 (diagnostic_event::meaning::maybe_get_verb_str): New.
13352 (diagnostic_event::meaning::maybe_get_noun_str): New.
13353 (diagnostic_event::meaning::maybe_get_property_str): New.
13354 (get_cwe_url): Make non-static.
13355 (diagnostic_output_format_init): Handle
13356 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
13357 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
13358 * diagnostic.h (enum diagnostics_output_format): Add
13359 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
13360 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
13361 (class diagnostic_client_data_hooks): New forward decl.
13362 (class logical_location): New forward decl.
13363 (diagnostic_context::m_client_data_hooks): New field.
13364 (diagnostic_output_format_init_sarif_stderr): New decl.
13365 (diagnostic_output_format_init_sarif_file): New decl.
13366 (get_cwe_url): New decl.
13367 * doc/invoke.texi (-fdiagnostics-format=): Add sarif-stderr and
13369 * doc/sourcebuild.texi (Scan a particular file): Add
13370 scan-sarif-file and scan-sarif-file-not.
13371 * langhooks-def.h (lhd_get_sarif_source_language): New decl.
13372 (LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE): New macro.
13373 (LANG_HOOKS_INITIALIZER): Add
13374 LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE.
13375 * langhooks.cc (lhd_get_sarif_source_language): New.
13376 * langhooks.h (lang_hooks::get_sarif_source_language): New field.
13377 * logical-location.h: New file.
13378 * plugin.cc (struct for_each_plugin_closure): New.
13379 (for_each_plugin_cb): New.
13380 (for_each_plugin): New.
13381 * plugin.h (for_each_plugin): New decl.
13382 * tree-diagnostic-client-data-hooks.cc: New file.
13383 * tree-diagnostic.cc: Include "diagnostic-client-data-hooks.h".
13384 (tree_diagnostics_defaults): Populate m_client_data_hooks.
13385 * tree-logical-location.cc: New file.
13386 * tree-logical-location.h: New file.
13388 2022-06-02 David Malcolm <dmalcolm@redhat.com>
13390 * common.opt (fdiagnostics-format=): Add json-stderr and json-file
13392 (DIAGNOSTICS_OUTPUT_FORMAT_JSON): Rename to...
13393 (DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR): ...this.
13394 (diagnostics_output_format): Add json-stderr and json-file.
13395 * diagnostic-format-json.cc (json_flush_to_file): New.
13396 (json_final_cb): Convert to...
13397 (json_flush_to_file): ...this, ...
13398 (json_stderr_final_cb): ...this, and...
13399 (json_file_final_cb): ...this.
13400 (diagnostic_output_format_init): Move to diagnostic.cc.
13401 (json_output_base_file_name): New.
13402 (diagnostic_output_format_init_json): New.
13403 (diagnostic_output_format_init_json_stderr): New.
13404 (diagnostic_output_format_init_json_file): New.
13405 * diagnostic.cc (diagnostic_output_format_init): Move here from
13406 diagnostic-format-json.cc; update for changes to enum.
13407 * diagnostic.h (enum diagnostics_output_format): Rename
13408 DIAGNOSTICS_OUTPUT_FORMAT_JSON to
13409 DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR, and add
13410 DIAGNOSTICS_OUTPUT_FORMAT_JSON_FILE.
13411 (diagnostic_output_format_init): Add base_file_name param.
13412 (diagnostic_output_format_init_json_stderr): New decl.
13413 (diagnostic_output_format_init_json_file): New dec.
13414 * doc/invoke.texi (-fdiagnostics-format=): Add "json-stderr" and
13415 "json-file". Rewrite so that the existing "json" is a synonym of
13417 * gcc.cc (driver_handle_option): Pass dump_base_name to
13418 diagnostic_output_format_init.
13419 * opts.cc (common_handle_option): Likewise.
13421 2022-06-02 David Malcolm <dmalcolm@redhat.com>
13423 * json.cc (string::print): Fix escaping of '\'.
13425 2022-06-02 Philipp Tomsich <philipp.tomsich@vrull.eu>
13427 * config/riscv/riscv.cc (riscv_build_integer_1): Rewrite value as
13428 (-1 << 31) for the single-bit case, when operating on (1 << 31)
13430 * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): Allow for
13431 any single-bit value, moving the special case for (1 << 31) to
13432 riscv_build_integer_1 (in riscv.c).
13434 2022-06-02 Roger Sayle <roger@nextmovesoftware.com>
13437 * config/i386/sse.md (V_128_256):Add V1TI and V2TI.
13438 (define_mode_attr avxsizesuffix): Add support for V1TI and V2TI.
13440 2022-06-02 Jakub Jelinek <jakub@redhat.com>
13443 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask): Remove :SI
13444 from AND and its operands and just verify operands[2] has HImode,
13445 SImode or for TARGET_64BIT DImode. Allow operands[3] to be a mask
13446 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
13447 just throw away the masking. Use force_reg before calling
13449 (*ashl<dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
13450 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
13451 just throw away the masking.
13452 (*ashl<mode>3_doubleword): Rename to ...
13453 (ashl<mode>3_doubleword): ... this.
13454 (*ashl<mode>3_mask): Remove :SI from AND and its operands and just
13455 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
13456 Use force_reg before calling gen_lowpart.
13457 (*<insn><mode>3_mask): Likewise.
13458 (*<insn><dwi>3_doubleword_mask): Likewise. Allow operands[3] to be
13459 a mask with all low 6 (64-bit) or 5 (32-bit) bits set and in that
13460 case just throw away the masking. Use force_reg before calling
13462 (*<insn><dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
13463 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case just
13464 throw away the masking.
13465 (*<insn><mode>3_doubleword): Rename to ...
13466 (<insn><mode>3_doubleword): ... this.
13467 (*<insn><mode>3_mask): Remove :SI from AND and its operands and just
13468 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
13469 Use force_reg before calling gen_lowpart.
13470 (splitter after it): Remove :SI from AND and its operands and just
13471 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
13472 (*<btsc><mode>_mask, *<btsc><mode>_mask): Remove :SI from AND and its
13473 operands and just verify operands[1] has HImode, SImode or for
13474 TARGET_64BIT DImode. Use force_reg before calling gen_lowpart.
13475 (*jcc_bt<mode>_mask_1): New define_insn_and_split pattern.
13476 * config/i386/i386.cc (ix86_rtx_costs): For ZERO_EXTRACT with
13477 ZERO_EXTEND QI->SI in last operand ignore the cost of the ZERO_EXTEND.
13479 2022-06-02 Richard Biener <rguenther@suse.de>
13481 PR tree-optimization/101668
13482 * tree-vect-slp.cc (vect_build_slp_tree_1): Allow BIT_FIELD_REFs
13483 for vector types with compatible lane types.
13484 (vect_build_slp_tree_2): Deal with this.
13485 (vect_add_slp_permutation): Adjust. Emit lowpart/concat
13486 special cases without VEC_PERM.
13487 (vectorizable_slp_permutation): Select the operand vector
13488 type and relax requirements. Handle identity permutes
13489 with mismatching operand types.
13490 * optabs-query.cc (can_vec_perm_const_p): Only allow variable
13491 permutes for op_mode == mode.
13493 2022-06-02 Richard Biener <rguenther@suse.de>
13495 PR tree-optimization/105802
13496 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
13497 Make sure to also compute the range in the type of the switch index.
13499 2022-06-01 David Seifert <soap@gentoo.org>
13502 * configure: Regenerate.
13504 2022-06-01 H.J. Lu <hjl.tools@gmail.com>
13506 PR rtl-optimization/105638
13507 * df-core.cc (df_find_single_def_src): Moved and renamed from
13508 find_single_def_src in loop-iv.cc. Change the argument to rtx
13509 and use rtx_equal_p. Return null for partial or conditional
13511 * df.h (df_find_single_def_src): New prototype.
13512 * dse.cc (record_store): Use the constant source if the source
13513 register is set only once.
13514 * loop-iv.cc (find_single_def_src): Moved to df-core.cc.
13515 (replace_single_def_regs): Replace find_single_def_src with
13516 df_find_single_def_src.
13518 2022-06-01 Wilco Dijkstra <wilco.dijkstra@arm.com>
13520 * config/aarch64/aarch64.opt (explicit_tune_core): Rename to
13522 (explicit_arch): Rename to selected_arch.
13523 (x_aarch64_override_tune_string): Remove.
13524 (aarch64_ra_sign_key): Add as TargetVariable so it gets saved/restored.
13525 (aarch64_override_tune_string): Add Save so it gets saved/restored.
13526 * config/aarch64/aarch64.h (aarch64_architecture_version): Remove.
13527 * config/aarch64/aarch64.cc (aarch64_architecture_version): Remove.
13528 (processor): Remove archtecture_version field.
13529 (selected_arch): Remove global.
13530 (selected_cpu): Remove global.
13531 (selected_tune): Remove global.
13532 (aarch64_ra_sign_key): Move global to aarch64.opt so it is saved.
13533 (aarch64_override_options_internal): Use aarch64_get_tune_cpu.
13534 (aarch64_override_options): Further simplify code to only set
13535 selected_arch and selected_tune globals.
13536 (aarch64_option_save): Remove now that target options are saved.
13537 (aarch64_option_restore): Remove redundant target option restores.
13538 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Use
13540 * config/aarch64/aarch64-opts.h (aarch64_key_type): Add, moved from...
13541 * config/aarch64/aarch64-protos.h (aarch64_key_type): Remove.
13542 (aarch64_ra_sign_key): Remove.
13544 2022-06-01 Jakub Jelinek <jakub@redhat.com>
13546 PR middle-end/30314
13547 * match.pd (__builtin_mul_overflow_p (x, cst, (utype) 0) ->
13548 x > ~(utype)0 / cst): New simplification.
13550 2022-06-01 Richard Biener <rguenther@suse.de>
13552 PR tree-optimization/105786
13553 * tree-loop-distribution.cc
13554 (loop_distribution::transform_reduction_loop): Only do strlen
13555 replacement for integer type reductions.
13557 2022-06-01 Jakub Jelinek <jakub@redhat.com>
13559 PR tree-optimization/105770
13560 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb): Cast
13561 CASE_LOW and CASE_HIGH to TREE_TYPE (idx) before comparisons with idx.
13563 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
13565 * gimple-range-cache.cc (ssa_block_ranges::dump): Convert to vrange.
13566 (sbr_vector::sbr_vector): Same.
13567 (sbr_vector::grow): Same.
13568 (sbr_vector::set_bb_range): Same.
13569 (sbr_vector::get_bb_range): Same.
13570 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
13571 (sbr_sparse_bitmap::set_bb_range): Same.
13572 (sbr_sparse_bitmap::get_bb_range): Same.
13573 (block_range_cache::set_bb_range): Same.
13574 (block_range_cache::get_bb_range): Same.
13575 (block_range_cache::dump): Same.
13576 (ssa_global_cache::get_global_range): Same.
13577 (ssa_global_cache::set_global_range): Same.
13578 (ssa_global_cache::clear): Same.
13579 (ssa_global_cache::dump): Same.
13580 (ranger_cache::get_global_range): Same.
13581 (ranger_cache::set_global_range): Same.
13582 (ranger_cache::range_of_def): Same.
13583 (ranger_cache::entry_range): Same.
13584 (ranger_cache::exit_range): Same.
13585 (ranger_cache::edge_range): Same.
13586 (ranger_cache::range_of_expr): Same.
13587 (ranger_cache::range_on_edge): Same.
13588 (ranger_cache::block_range): Same.
13589 (ranger_cache::propagate_cache): Same.
13590 (ranger_cache::fill_block_cache): Same.
13591 (ranger_cache::range_from_dom): Same.
13592 * gimple-range-cache.h: Same.
13593 * gimple-range-edge.cc (gimple_outgoing_range::get_edge_range):
13595 (gimple_outgoing_range::switch_edge_range): Same.
13596 (gimple_outgoing_range::edge_range_p): Same.
13597 * gimple-range-edge.h: Same.
13598 * gimple-range-fold.cc (fur_source::get_operand): Same.
13599 (fur_source::get_phi_operand): Same.
13600 (fur_edge::get_operand): Same.
13601 (fur_edge::get_phi_operand): Same.
13602 (fur_stmt::get_operand): Same.
13603 (fur_stmt::get_phi_operand): Same.
13604 (fur_list::fur_list): Same.
13605 (fur_list::get_operand): Same.
13606 (fur_list::get_phi_operand): Same.
13607 (fold_range): Same.
13608 (adjust_imagpart_expr): Same.
13609 (adjust_realpart_expr): Same.
13610 (gimple_range_adjustment): Same.
13611 (fold_using_range::fold_stmt): Same.
13612 (fold_using_range::range_of_range_op): Same.
13613 (fold_using_range::range_of_address): Same.
13614 (fold_using_range::range_of_phi): Same.
13615 (fold_using_range::range_of_call): Same.
13616 (fold_using_range::range_of_builtin_call): Same.
13617 (fold_using_range::range_of_builtin_int_call): Same.
13618 (fold_using_range::range_of_cond_expr): Same.
13619 (fur_source::register_outgoing_edges): Same.
13620 * gimple-range-fold.h (fold_range): Same.
13621 (gimple_range_type): Same.
13622 (gimple_range_ssa_p): Same.
13623 * gimple-range-gori.cc (gimple_range_calc_op1): Same.
13624 (gimple_range_calc_op2): Same.
13625 (gori_compute::compute_operand_range_switch): Same.
13626 (gori_compute::compute_operand_range): Same.
13627 (gori_compute::logical_combine): Same.
13628 (gori_compute::compute_logical_operands): Same.
13629 (gori_compute::compute_operand1_range): Same.
13630 (gori_compute::compute_operand2_range): Same.
13631 (gori_compute::compute_operand1_and_operand2_range): Same.
13632 (gori_compute::outgoing_edge_range_p): Same.
13633 (gori_compute::condexpr_adjust): Same.
13634 * gimple-range-gori.h (gimple_range_calc_op1): Same.
13635 (gimple_range_calc_op2): Same.
13636 * gimple-range-path.cc (path_range_query::get_cache): Same.
13637 (path_range_query::set_cache): Same.
13638 (path_range_query::range_on_path_entry): Same.
13639 (path_range_query::internal_range_of_expr): Same.
13640 (path_range_query::range_of_expr): Same.
13641 (path_range_query::ssa_range_in_phi): Same.
13642 (path_range_query::range_defined_in_block): Same.
13643 (path_range_query::compute_ranges_in_phis): Same.
13644 (path_range_query::compute_ranges_in_block): Same.
13645 (path_range_query::add_to_imports): Same.
13646 (path_range_query::range_of_stmt): Same.
13647 * gimple-range-path.h: Same.
13648 * gimple-range-infer.cc (gimple_infer_range::add_range): Same.
13649 (gimple_infer_range::~side_effect_manager): Same.
13650 (gimple_infer_range::get_nonzero): Same.
13651 (gimple_infer_range::maybe_adjust_range): Same.
13652 (gimple_infer_range::add_range): Same.
13653 * gimple-range-infer.h: Same.
13654 * gimple-range-tests.cc: Same.
13655 * gimple-range-trace.cc (range_tracer::trailer): Same.
13656 (debug_seed_ranger): Same.
13657 * gimple-range-trace.h: Same.
13658 * gimple-range.cc (gimple_ranger::range_of_expr): Same.
13659 (gimple_ranger::range_on_entry): Same.
13660 (gimple_ranger::range_on_exit): Same.
13661 (gimple_ranger::range_on_edge): Same.
13662 (gimple_ranger::fold_range_internal): Same.
13663 (gimple_ranger::range_of_stmt): Same.
13664 (gimple_ranger::prefill_name): Same.
13665 (gimple_ranger::prefill_stmt_dependencies): Same.
13666 (gimple_ranger::export_global_ranges): Same.
13667 (gimple_ranger::dump_bb): Same.
13668 * gimple-range.h: Same.
13669 * gimple-ssa-warn-access.cc (check_nul_terminated_array): Same.
13670 (memmodel_to_uhwi): Same.
13671 * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Same.
13672 (determine_value_range): Same.
13673 (record_nonwrapping_iv): Same.
13674 (infer_loop_bounds_from_signedness): Same.
13675 (scev_var_range_cant_overflow): Same.
13676 * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Same.
13677 * value-query.cc (range_query::range_on_edge): Same.
13678 (range_query::range_of_stmt): Same.
13679 (range_query::value_of_expr): Same.
13680 (range_query::value_on_edge): Same.
13681 (range_query::value_of_stmt): Same.
13682 (range_query::get_tree_range): Same.
13683 (update_global_range): Same.
13684 (get_range_global): Same.
13685 (gimple_range_global): Same.
13686 (global_range_query::range_of_expr): Same.
13687 (range_query::query_relation): Same.
13688 * value-query.h (gimple_range_global): Same.
13689 (update_global_range): Same.
13690 * vr-values.cc (vr_values::range_of_expr): Same.
13691 (bounds_of_var_in_loop): Same.
13692 (simplify_using_ranges::vrp_visit_cond_stmt): Same.
13693 * vr-values.h (class vr_values): Same.
13694 * tree-ssa-loop-unswitch.cc (unswitch_predicate): Same.
13696 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
13698 * gimple-range-cache.cc (sbr_vector::sbr_vector): Adjust for
13700 (sbr_vector::grow): Same.
13701 (sbr_vector::set_bb_range): Same.
13702 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
13703 (sbr_sparse_bitmap::set_bb_range): Same.
13704 (block_range_cache::~block_range_cache): Same.
13705 (block_range_cache::set_bb_range): Same.
13706 (ssa_global_cache::ssa_global_cache): Same.
13707 (ssa_global_cache::~ssa_global_cache): Same.
13708 (ssa_global_cache::set_global_range): Same.
13709 * gimple-range-cache.h (block_range_cache): Same.
13710 (ssa_global_cache): Same.
13711 * gimple-range-edge.cc
13712 (gimple_outgoing_range::calc_switch_ranges): Same.
13713 * gimple-range-edge.h (gimple_outgoing_range): Same.
13714 * gimple-range-infer.cc (infer_range_manager::get_nonzero):
13716 (infer_range_manager::add_range): Same.
13717 * gimple-range-infer.h (class infer_range_manager): Same.
13718 * value-range.h (class irange_allocator): Rename to...
13719 (class vrange_allocator): ...this.
13720 (irange_allocator::irange_allocator): New.
13721 (vrange_allocator::vrange_allocator): New.
13722 (irange_allocator::~irange_allocator): New.
13723 (vrange_allocator::~vrange_allocator): New.
13724 (irange_allocator::get_memory): Rename to...
13725 (vrange_allocator::alloc): ...this.
13726 (vrange_allocator::alloc_vrange): Rename from...
13727 (irange_allocator::allocate): ...this.
13728 (vrange_allocator::alloc_irange): New.
13730 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
13732 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
13733 vrange and convert range_op_handler function calls to use the
13734 identically named object.
13735 * gimple-range-fold.cc (gimple_range_operand1): Same.
13736 (gimple_range_operand2): Same.
13737 (fold_using_range::fold_stmt): Same.
13738 (fold_using_range::range_of_range_op): Same.
13739 (fold_using_range::range_of_builtin_ubsan_call): Same.
13740 (fold_using_range::relation_fold_and_or): Same.
13741 (fur_source::register_outgoing_edges): Same.
13742 * gimple-range-fold.h (gimple_range_handler): Remove.
13743 * gimple-range-gori.cc (gimple_range_calc_op1): Adjust for vrange.
13744 (gimple_range_calc_op2): Same.
13745 (range_def_chain::get_def_chain): Same.
13746 (gori_compute::compute_operand_range): Same.
13747 (gori_compute::condexpr_adjust): Same.
13748 * gimple-range.cc (gimple_ranger::prefill_name): Same.
13749 (gimple_ranger::prefill_stmt_dependencies): Same.
13750 * range-op.cc (get_bool_state): Same.
13751 (class operator_equal): Add using clause.
13752 (class operator_not_equal): Same.
13753 (class operator_lt): Same.
13754 (class operator_le): Same.
13755 (class operator_gt): Same.
13756 (class operator_ge): Same.
13757 (class operator_plus): Same.
13758 (class operator_minus): Same.
13759 (class operator_mult): Same.
13760 (class operator_exact_divide): Same.
13761 (class operator_lshift): Same.
13762 (class operator_rshift): Same.
13763 (class operator_cast): Same.
13764 (class operator_logical_and): Same.
13765 (class operator_bitwise_and): Same.
13766 (class operator_logical_or): Same.
13767 (class operator_bitwise_or): Same.
13768 (class operator_bitwise_xor): Same.
13769 (class operator_trunc_mod): Same.
13770 (class operator_logical_not): Same.
13771 (class operator_bitwise_not): Same.
13772 (class operator_cst): Same.
13773 (class operator_identity): Same.
13774 (class operator_unknown): Same.
13775 (class operator_abs): Same.
13776 (class operator_negate): Same.
13777 (class operator_addr_expr): Same.
13778 (class pointer_or_operator): Same.
13779 (operator_plus::op1_range): Adjust for vrange.
13780 (operator_minus::op1_range): Same.
13781 (operator_mult::op1_range): Same.
13782 (operator_cast::op1_range): Same.
13783 (operator_bitwise_not::fold_range): Same.
13784 (operator_negate::fold_range): Same.
13785 (range_op_handler): Rename to...
13786 (get_handler): ...this.
13787 (range_op_handler::range_op_handler): New.
13788 (range_op_handler::fold_range): New.
13789 (range_op_handler::op1_range): New.
13790 (range_op_handler::op2_range): New.
13791 (range_op_handler::lhs_op1_relation): New.
13792 (range_op_handler::lhs_op2_relation): New.
13793 (range_op_handler::op1_op2_relation): New.
13794 (range_cast): Adjust for vrange.
13795 * range-op.h (range_op_handler): Remove function.
13796 (range_cast): Adjust for vrange.
13797 (class range_op_handler): New.
13798 (get_bool_state): Adjust for vrange.
13799 (empty_range_varying): Same.
13800 (relop_early_resolve): Same.
13801 * tree-data-ref.cc (compute_distributive_range): Same.
13802 * tree-vrp.cc (get_range_op_handler): Remove.
13803 (range_fold_binary_symbolics_p): Use range_op_handler class
13804 instead of get_range_op_handler.
13805 (range_fold_unary_symbolics_p): Same.
13806 (range_fold_binary_expr): Same.
13807 (range_fold_unary_expr): Same.
13808 * value-query.cc (range_query::get_tree_range): Adjust for vrange.
13810 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
13812 * gimple-range-fold.h (gimple_range_type): Check type before
13813 calling supports_type_p.
13814 * gimple-range-path.cc (path_range_query::range_of_stmt): Same.
13815 * value-query.cc (range_query::get_tree_range): Same.
13816 * value-range.cc (Value_Range::lower_bound): New.
13817 (Value_Range::upper_bound): New.
13818 (Value_Range::dump): New.
13819 * value-range.h (class Value_Range): New.
13820 (irange::supports_type_p): Do not check if type is non-zero.
13822 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
13824 * value-range-equiv.cc (value_range_equiv::set): New.
13825 * value-range-equiv.h (class value_range_equiv): Make set method
13827 Remove default bitmap argument from set method.
13828 * value-range.cc (vrange::contains_p): New.
13829 (vrange::singleton_p): New.
13830 (vrange::operator=): New.
13831 (vrange::operator==): New.
13832 (irange::fits_p): Move to .cc file.
13833 (irange::set_nonnegative): New.
13834 (unsupported_range::unsupported_range): New.
13835 (unsupported_range::set): New.
13836 (unsupported_range::type): New.
13837 (unsupported_range::set_undefined): New.
13838 (unsupported_range::set_varying): New.
13839 (unsupported_range::dump): New.
13840 (unsupported_range::union_): New.
13841 (unsupported_range::intersect): New.
13842 (unsupported_range::zero_p): New.
13843 (unsupported_range::nonzero_p): New.
13844 (unsupported_range::set_nonzero): New.
13845 (unsupported_range::set_zero): New.
13846 (unsupported_range::set_nonnegative): New.
13847 (unsupported_range::fits_p): New.
13848 (irange::set): Call irange::set_undefined.
13849 (irange::verify_range): Check discriminator field.
13850 (irange::dump): Dump [irange] marker.
13851 (irange::debug): Move to...
13852 (vrange::debug): ...here.
13853 (dump_value_range): Accept vrange.
13855 * value-range.h (enum value_range_discriminator): New.
13856 (class vrange): New.
13857 (class unsupported_range): New.
13858 (struct vrange_traits): New.
13861 (class irange): Inherit from vrange.
13862 (dump_value_range): Adjust for vrange.
13863 (irange::kind): Rename to...
13864 (vrange::kind): ...this.
13865 (irange::varying_p): Rename to...
13866 (vrange::varying_p): ...this.
13867 (irange::undefined_p): Rename to...
13868 (vrange::undefined_p): ...this.
13869 (irange::irange): Set discriminator.
13870 (irange::union_): Convert to irange before passing to irange
13872 (irange::intersect): Same.
13873 (vrange::supports_type_p): New.
13874 * vr-values.cc (vr_values::extract_range_from_binary_expr): Pass
13875 NULL bitmap argument to value_range_equiv::set.
13876 (vr_values::extract_range_basic): Same.
13878 2022-06-01 Richard Biener <rguenther@suse.de>
13880 PR tree-optimization/105763
13881 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
13882 Check gimple_range_ssa_p.
13884 2022-05-31 Jason Merrill <jason@redhat.com>
13886 * Makefile.in (TAGS): Look at libcpp/*.cc.
13888 2022-05-31 Christophe Lyon <christophe.lyon@arm.com>
13890 * config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr):
13891 Prefix mode names with E_.
13893 2022-05-31 Alan Modra <amodra@gmail.com>
13895 * dwarf2out.cc (gen_namelist_decl): Adjust to suit correct
13896 spelling of DW_AT_namelist_item.
13898 2022-05-31 Jakub Jelinek <jakub@redhat.com>
13900 * omp-low.cc (build_outer_var_ref): For code == OMP_CLAUSE_ALLOCATE
13901 allow var to be private in the outer context.
13902 (lower_private_allocate): Pass OMP_CLAUSE_ALLOCATE as last argument
13903 to build_outer_var_ref.
13905 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
13907 * config/i386/i386.cc (ix86_modes_tieable_p): Allow SCmode to be
13908 tieable with DImode on TARGET_64BIT, and SCmode tieable with
13909 V2SFmode, and DCmode with V2DFmode.
13911 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
13913 PR rtl-optimization/101617
13914 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Add a
13915 special case (indicated by negate_cc_compare_p) to generate a
13916 -1/0 mask using neg;sbb.
13917 * config/i386/i386.md (x86_neg<mode>_ccc): New define_expand
13918 to generate an *x86_neg<mode>_ccc instruction.
13919 (x86_mov<mode>cc_0_m1_neg): Likewise, a new define_expand to
13920 generate a *x86_mov<mode>cc_0_m1_neg instruction.
13922 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
13924 * rtlanal.cc (rtx_cost) <MULT>: Treat FMA, SS_MULT, US_MULT,
13925 SMUL_HIGHPART and UMUL_HIGHPART as having the same cost as MULT.
13926 <DIV>: Likewise, SS_DIV and US_DIV have the same default as DIV.
13928 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
13931 * config/i386/i386-expand.cc (ix86_expand_branch): Don't decompose
13932 DI mode equality/inequality using XOR here. Instead generate a
13933 COMPARE for doubleword modes (DImode on !TARGET_64BIT or TImode).
13934 * config/i386/i386-features.cc (gen_gpr_to_xmm_move_src): Use
13935 gen_rtx_SUBREG when NUNITS is 1, i.e. for TImode to V1TImode.
13936 (general_scalar_chain::convert_compare): New function to convert
13937 scalar equality/inequality comparison into vector operations.
13938 (general_scalar_chain::convert_insn) [COMPARE]: Refactor. Call
13939 new convert_compare helper method.
13940 (convertible_comparion_p): Update to match doubleword COMPARE
13941 of two register, memory or integer constant operands.
13942 * config/i386/i386-features.h (general_scalar_chain::convert_compare):
13943 Prototype/declare member function here.
13944 * config/i386/i386.md (cstore<mode>4): Change mode to SDWIM, but
13945 only allow new doubleword modes for EQ and NE operators.
13946 (*cmp<dwi>_doubleword): New define_insn_and_split, to split a
13947 doubleword comparison into a pair of XORs followed by an IOR to
13948 set the (zero) flags register, optimizing the XORs if possible.
13949 * config/i386/sse.md (V_AVX): Include V1TI and V2TI in mode
13950 iterator; V_AVX is (currently) only used by ptest.
13951 (sse4_1 mode attribute): Update to support V1TI and V2TI.
13953 2022-05-30 Uroš Bizjak <ubizjak@gmail.com>
13955 * config/i386/i386.md: Remove constraints when used with
13956 const_int_operand, const0_operand, const_1_operand, constm1_operand,
13957 const8_operand, const128_operand, const248_operand, const123_operand,
13958 const2367_operand, const1248_operand, const359_operand,
13959 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
13960 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
13961 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
13962 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
13963 const_0_to_255_mul_8_operand, const_1_to_31_operand,
13964 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
13965 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
13966 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
13967 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
13968 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
13969 const_24_to_27_operand and const_28_to_31_operand.
13970 * config/i386/mmx.md: Ditto.
13971 * config/i386/sse.md: Ditto.
13972 * config/i386/subst.md: Ditto.
13973 * config/i386/sync.md: Ditto.
13975 2022-05-30 Jan Beulich <jbeulich@suse.com>
13977 * config/i386/i386.md (bmi2_umul<mode><dwi>3_1): Correct MEM_P()
13980 2022-05-30 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13982 * config/arm/arm.cc (arm_vectorize_vec_perm_const): Adjust prototype.
13984 2022-05-29 Iain Sandoe <iain@sandoe.co.uk>
13987 * config/darwin.h: Move versions-specific handling of multiply_defined
13988 from SUBTARGET_DRIVER_SELF_SPECS to LINK_SPEC.
13990 2022-05-29 Eric Gallager <egallager@gcc.gnu.org>
13993 * doc/sourcebuild.texi: Add entries for the c++tools,
13994 gotools, libbacktrace, libcc1, libcody, liboffloadmic,
13995 and libsanitizer directories. Remove entry for boehm-gc.
13996 Fix alphabetization for libquadmath.
13998 2022-05-28 Joel Holdsworth <jholdsworth@nvidia.com>
14000 * config/avr/avr-mcus.def: Add device definitions.
14001 * doc/avr-mmcu.texi: Corresponding changes.
14002 * config/avr/gen-avr-mmcu-texi.cc: Added support for avr
14004 * config/avr/gen-avr-mmcu-specs.cc: Prevent -mmcu=avr* flags
14005 from leaking into cc1.
14007 2022-05-28 Vladimir Makarov <vmakarov@gcc.gnu.org>
14010 * config/sh/sh.cc (sh_register_move_cost): Avoid cost "2" (which
14011 is special) for various scenarios.
14013 2022-05-28 Iain Sandoe <iain@sandoe.co.uk>
14015 * config/darwin.h (REAL_LIBGCC_SPEC): Update the comment block
14016 describing this macro.
14018 2022-05-27 Richard Biener <rguenther@suse.de>
14020 * tree-dfa.cc (get_ref_base_and_extent): Avoid shift.
14022 2022-05-27 Martin Jambor <mjambor@suse.cz>
14025 * ipa-prop.cc (propagate_controlled_uses): Check type of the
14026 constant before adding a LOAD reference.
14028 2022-05-27 Jakub Jelinek <jakub@redhat.com>
14030 * tree-core.h (enum omp_clause_code): Rename OMP_CLAUSE_TO_DECLARE
14031 to OMP_CLAUSE_ENTER.
14032 * tree.h (OMP_CLAUSE_ENTER_TO): Define.
14033 * tree.cc (omp_clause_num_ops, omp_clause_code_name): Rename
14034 OMP_CLAUSE_TO_DECLARE to OMP_CLAUSE_ENTER.
14035 * tree-pretty-print.cc (dump_omp_clause): Handle OMP_CLAUSE_ENTER
14036 instead of OMP_CLAUSE_TO_DECLARE, if OMP_CLAUSE_ENTER_TO, print
14037 "to" instead of "enter".
14038 * tree-nested.cc (convert_nonlocal_omp_clauses,
14039 convert_local_omp_clauses): Handle OMP_CLAUSE_ENTER instead of
14040 OMP_CLAUSE_TO_DECLARE.
14042 2022-05-27 Richard Biener <rguenther@suse.de>
14044 PR tree-optimization/105726
14045 * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
14046 Constrain array-of-flexarray case more.
14048 2022-05-27 Jakub Jelinek <jakub@redhat.com>
14050 PR sanitizer/105729
14051 * fold-const.cc (fold_unary_loc): Don't optimize (X &) ((Y *) z + w)
14052 to (X &) z + w if -fsanitize=null during GENERIC folding.
14054 2022-05-27 Roger Sayle <roger@nextmovesoftware.com>
14056 * match.pd (match_zero_one_valued_p): New predicate.
14057 (mult @0 @1): Use zero_one_valued_p for optimization to the
14058 expression "bit_and @0 @1".
14059 (bit_and (negate zero_one_valued_p@0) @1): Optimize to MULT_EXPR.
14060 (plus @0 (mult (minus @1 @0) zero_one_valued_p@2)): New transform.
14061 (minus @0 (mult (minus @0 @1) zero_one_valued_p@2)): Likewise.
14062 (bit_xor @0 (mult (bit_xor @0 @1) zero_one_valued_p@2)): Likewise.
14063 Remove three redundant transforms obsoleted by the three above.
14065 2022-05-27 Roger Sayle <roger@nextmovesoftware.com>
14067 * config/i386/i386.md (*test<mode>_not): New define_insn_and_split
14068 to split a combined "and;cmp" sequence into "not;test".
14070 2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
14072 * config/xtensa/xtensa.md (bswapsi2): New expansion pattern.
14073 (bswapsi2_internal): Revise the template and condition, and add
14074 detection code for preceding the same insn in order to omit a
14075 "SSAI 8" instruction of the latter.
14076 (bswapdi2): Suppress built-in insn expansion with the corresponding
14077 library call when optimizing for size.
14079 2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
14081 * config/xtensa/xtensa-protos.h
14082 (xtensa_expand_block_set_unrolled_loop,
14083 xtensa_expand_block_set_small_loop): New prototypes.
14084 * config/xtensa/xtensa.cc (xtensa_sizeof_MOVI,
14085 xtensa_expand_block_set_unrolled_loop,
14086 xtensa_expand_block_set_small_loop): New functions.
14087 * config/xtensa/xtensa.md (setmemsi): New expansion pattern.
14088 * config/xtensa/xtensa.opt (mlongcalls): Add target mask.
14090 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
14092 * config/xtensa/xtensa.cc (xtensa_expand_block_move):
14093 Make instruction counting more accurate, and simplify emitting insns.
14095 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
14097 * config/xtensa/constraints.md (M, O): Use the macro.
14098 * config/xtensa/predicates.md (addsubx_operand, extui_fldsz_operand,
14099 sext_fldsz_operand): Ditto.
14100 * config/xtensa/xtensa.cc (xtensa_simm8, xtensa_simm8x256,
14101 xtensa_simm12b, xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4,
14102 xtensa_mask_immediate, smalloffset_mem_p, printx, xtensa_call_save_reg,
14103 xtensa_expand_prologue): Ditto.
14104 * config/xtensa/xtensa.h (FUNCTION_ARG_REGNO_P): Ditto.
14106 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
14108 * config/xtensa/predicates.md (extui_fldsz_operand): Simplify.
14109 * config/xtensa/xtensa.cc (xtensa_mask_immediate, print_operand):
14112 2022-05-25 Andrew MacLeod <amacleod@redhat.com>
14114 * gimple-range-cache.cc: Adjust comments.
14115 * gimple-range-infer.cc: Adjust comments.
14116 * gimple-range-infer.h: Adjust comments.
14117 * gimple-range.cc: Adjust comments.
14119 2022-05-25 Andrew MacLeod <amacleod@redhat.com>
14121 * Makefile.in (OBJS): Use gimple-range-infer.o.
14122 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Change msg.
14123 (ranger_cache::range_from_dom): Rename var side_effect to infer.
14124 (ranger_cache::apply_inferred_ranges): Rename from apply_side_effects.
14125 * gimple-range-cache.h: Include gimple-range-infer.h.
14126 (class ranger_cache): Adjust prototypes, use infer_range_manager.
14127 * gimple-range-infer.cc: Rename from gimple-range-side-effects.cc.
14128 (gimple_infer_range::*): Rename from stmt_side_effects.
14129 (infer_range_manager::*): Rename from side_effect_manager.
14130 * gimple-range-side-effect.cc: Rename.
14131 * gimple-range-side-effect.h: Rename.
14132 * gimple-range-infer.h: Rename from gimple-range-side-effects.h.
14133 (class gimple_infer_range): Rename from stmt_side_effects.
14134 (class infer_range_manager): Rename from side_effect_manager.
14135 * gimple-range.cc (gimple_ranger::register_inferred_ranges): Rename
14136 from register_side_effects.
14137 * gimple-range.h (register_inferred_ranges): Adjust prototype.
14138 * range-op.h: Adjust comment.
14139 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Use register_inferred_ranges.
14140 (rvrp_folder::post_fold_bb): Use register_inferred_ranges.
14142 2022-05-25 Simon Cook <simon.cook@embecosm.com>
14144 * config/riscv/arch-canonicalize: Only add mafd extension if
14145 base was rv32/rv64g.
14147 2022-05-25 Tobias Burnus <tobias@codesourcery.com>
14149 * doc/invoke.texi (AMD GCN Options): Add gfx908/gfx90a.
14151 2022-05-25 Jakub Jelinek <jakub@redhat.com>
14153 PR sanitizer/105714
14154 * asan.cc (has_stmt_been_instrumented_p): For assignments which
14155 are both stores and loads, return true only if both destination
14156 and source have been instrumented.
14158 2022-05-25 Martin Liska <mliska@suse.cz>
14159 Richard Biener <rguenther@suse.de>
14161 * dbgcnt.def (DEBUG_COUNTER): Add loop_unswitch counter.
14162 * params.opt (max-unswitch-level): Remove.
14163 * doc/invoke.texi (max-unswitch-level): Likewise.
14164 * tree-cfg.cc (gimple_lv_add_condition_to_bb): Support not
14165 gimplified expressions.
14166 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): New.
14167 (tree_may_unswitch_on): Rename to ...
14168 (find_unswitching_predicates_for_bb): ... this and handle
14170 (get_predicates_for_bb): Likewise.
14171 (set_predicates_for_bb): Likewise.
14172 (init_loop_unswitch_info): Likewise.
14173 (tree_ssa_unswitch_loops): Prepare stuff before calling
14174 tree_unswitch_single_loop.
14175 (tree_unswitch_single_loop): Rework the function using
14176 pre-computed predicates and with a per original loop cost model.
14178 (add_predicate_to_path): Likewise.
14179 (find_range_for_lhs): Likewise.
14180 (simplify_using_entry_checks): Rename to ...
14181 (evaluate_control_stmt_using_entry_checks): ... this, handle
14182 switch statements and improve simplifications using ranger.
14183 (simplify_loop_version): Rework using
14184 evaluate_control_stmt_using_entry_checks.
14185 (evaluate_bbs): New.
14186 (evaluate_loop_insns_for_predicate): Likewise.
14187 (tree_unswitch_loop): Adjust to allow switch statements and
14188 pass in the edge to unswitch.
14189 (clean_up_after_unswitching): New.
14190 (pass_tree_unswitch::execute): Pass down fun.
14192 2022-05-24 Eugene Rozenfeld <erozen@microsoft.com>
14194 * tree-vect-loop-manip.cc (vect_do_peeling): Save/restore profile
14195 counts for the epilog loop.
14197 2022-05-24 Martin Sebor <msebor@redhat.com>
14198 Richard Biener <rguenther@suse.de>
14200 PR middle-end/105604
14201 * gimple-ssa-sprintf.cc (set_aggregate_size_and_offset): Add comments.
14202 (get_origin_and_offset_r): Remove null handling. Handle variable array
14204 (get_origin_and_offset): Handle null argument here. Simplify.
14205 (alias_offset): Update comment.
14206 * pointer-query.cc (field_at_offset): Update comment. Handle members
14207 of variable-length types.
14209 2022-05-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
14211 * target.def (vec_perm_const): Define new parameter op_mode and
14213 * doc/tm.texi: Regenerate.
14214 * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Adjust
14215 vec_perm_const hook to add new parameter op_mode and return false
14216 if result and operand modes do not match.
14217 * config/arm/arm.cc (arm_vectorize_vec_perm_const): Likewise.
14218 * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Likewise.
14219 * config/ia64/ia64.cc (ia64_vectorize_vec_perm_const): Likewise.
14220 * config/mips/mips.cc (mips_vectorize_vec_perm_const): Likewise.
14221 * config/rs6000/rs6000.cc (rs6000_vectorize_vec_perm_const): Likewise
14222 * config/s390/s390.cc (s390_vectorize_vec_perm_const): Likewise.
14223 * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Likewise.
14224 * config/i386/i386-expand.cc (ix86_vectorize_vec_perm_const): Likewise.
14225 * config/i386/i386-expand.h (ix86_vectorize_vec_perm_const): Adjust
14227 * config/i386/sse.md (ashrv4di3): Adjust call to vec_perm_const hook.
14228 (ashrv2di3): Likewise.
14229 * optabs.cc (expand_vec_perm_const): Likewise.
14230 * optabs-query.h (can_vec_perm_const_p): Adjust prototype.
14231 * optabs-query.cc (can_vec_perm_const_p): Define new parameter
14232 op_mode and pass it to vec_perm_const hook.
14233 (can_mult_highpart_p): Adjust call to can_vec_perm_const_p.
14234 * match.pd (vec_perm X Y CST): Likewise.
14235 * tree-ssa-forwprop.cc (simplify_vector_constructor): Likewise.
14236 * tree-vect-data-refs.cc (vect_grouped_store_supported): Likewise.
14237 (vect_grouped_load_supported): Likewise.
14238 (vect_shift_permute_load_chain): Likewise.
14239 * tree-vect-generic.cc (lower_vec_perm): Likewise.
14240 * tree-vect-loop-manip.cc (interleave_supported_p): Likewise.
14241 * tree-vect-loop.cc (have_whole_vector_shift): Likewise.
14242 * tree-vect-patterns.cc (vect_recog_rotate_pattern): Likewise.
14243 * tree-vect-slp.cc (can_duplicate_and_interleave_p): Likewise.
14244 (vect_transform_slp_perm_load): Likewise.
14245 (vectorizable_slp_permutation): Likewise.
14246 * tree-vect-stmts.cc (perm_mask_for_reverse): Likewise.
14247 (vectorizable_bswap): Likewise.
14248 (scan_store_can_perm_p): Likewise.
14249 (vect_gen_perm_mask_checked): Likewise.
14251 2022-05-24 H.J. Lu <hjl.tools@gmail.com>
14254 * config/i386/i386.opt: Remove Undocumented.
14255 * doc/invoke.texi: Document -mcet-switch.
14257 2022-05-24 Andrew Stubbs <ams@codesourcery.com>
14259 * config.gcc (amdgcn): Accept --with-arch=gfx908 and gfx90a.
14260 * config/gcn/gcn-opts.h (enum gcn_isa): New.
14261 (TARGET_GCN3): Use enum gcn_isa.
14262 (TARGET_GCN3_PLUS): Likewise.
14263 (TARGET_GCN5): Likewise.
14264 (TARGET_GCN5_PLUS): Likewise.
14265 (TARGET_CDNA1): New.
14266 (TARGET_CDNA1_PLUS): New.
14267 (TARGET_CDNA2): New.
14268 (TARGET_CDNA2_PLUS): New.
14269 (TARGET_M0_LDS_LIMIT): New.
14270 (TARGET_PACKED_WORK_ITEMS): New.
14271 * config/gcn/gcn.cc (gcn_isa): Change to enum gcn_isa.
14272 (gcn_option_override): Recognise CDNA ISA variants.
14273 (gcn_omp_device_kind_arch_isa): Support gfx90a.
14274 (gcn_expand_prologue): Make m0 init optional.
14275 Add support for packed work items.
14276 (output_file_start): Support gfx90a.
14277 (gcn_hsa_declare_function_name): Support gfx90a metadata.
14278 * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS):Add __CDNA1__ and
14280 * config/gcn/gcn.md (<su>mulsi3_highpart): Use TARGET_GCN5_PLUS.
14281 (<su>mulsi3_highpart_imm): Likewise.
14282 (<su>mulsidi3): Likewise.
14283 (<su>mulsidi3_imm): Likewise.
14284 * config/gcn/gcn.opt (gpu_type): Add gfx90a.
14285 * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX90a): New.
14286 (main): Support gfx90a.
14287 * config/gcn/t-gcn-hsa: Add gfx90a multilib.
14288 * config/gcn/t-omp-device: Add gfx90a isa.
14290 2022-05-24 Andrew Stubbs <ams@codesourcery.com>
14292 * config.in: Regenerate.
14293 * config/gcn/gcn-hsa.h (X_FIJI): Delete.
14301 (NO_XNACK): New macro.
14302 (NO_SRAM_ECC): New macro.
14303 (SRAMOPT): Keep only v4 variant.
14304 (HSACO3_SELECT_OPT): Delete.
14305 (DRIVER_SELF_SPECS): Delete.
14306 (ASM_SPEC): Remove LLVM 9 support.
14307 * config/gcn/gcn-valu.md
14308 (gather<mode>_insn_2offsets<exec>): Remove assembler bug workaround.
14309 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
14310 * config/gcn/gcn.cc (output_file_start): Remove LLVM 9 support.
14311 (print_operand_address): Remove assembler bug workaround.
14312 * config/gcn/mkoffload.cc (EF_AMDGPU_XNACK_V3): Delete.
14313 (EF_AMDGPU_SRAM_ECC_V3): Delete.
14314 (SET_XNACK_ON): Delete v3 variants.
14315 (SET_XNACK_OFF): Delete v3 variants.
14316 (TEST_XNACK): Delete v3 variants.
14317 (SET_SRAM_ECC_ON): Delete v3 variants.
14318 (SET_SRAM_ECC_ANY): Delete v3 variants.
14319 (SET_SRAM_ECC_OFF): Delete v3 variants.
14320 (SET_SRAM_ECC_UNSUPPORTED): Delete v3 variants.
14321 (TEST_SRAM_ECC_ANY): Delete v3 variants.
14322 (TEST_SRAM_ECC_ON): Delete v3 variants.
14323 (copy_early_debug_info): Remove v3 support.
14324 (main): Remove v3 support.
14325 * configure: Regenerate.
14326 * configure.ac: Replace all GCN feature checks with a version check.
14328 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
14330 * config/i386/i386.md (peephole2): Convert xor;neg;adc;neg,
14331 i.e. a double word negation of a zero extended operand, to
14334 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
14336 PR tree-optimization/105668
14337 * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Support
14338 V1TImode, just like V2DImode.
14339 * config/i386/sse.md (vcond_mask_<mode><sseintvecmodelower>):
14340 Use VI_128 mode iterator instead of VI124_128 to include V2DI.
14341 (vcond_mask_v2div2di): Delete.
14342 (vcond_mask_v1tiv1ti): New define_expand.
14344 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
14346 * genpreds.cc (write_lookup_constraint_1): Avoid generating a call
14347 to strncmp for strings of length one.
14349 2022-05-24 ShiYulong <shiyulong@iscas.ac.cn>
14351 * config/riscv/predicates.md (imm5_operand): Add a new operand type for
14352 prefetch instructions.
14353 * config/riscv/riscv-builtins.cc (AVAIL): Add new AVAILs for CMO ISA
14355 (RISCV_ATYPE_SI): New.
14356 (RISCV_ATYPE_DI): New.
14357 * config/riscv/riscv-ftypes.def (0): New.
14359 * config/riscv/riscv.md (riscv_clean_<mode>): New.
14360 (riscv_flush_<mode>): New.
14361 (riscv_inval_<mode>): New.
14362 (riscv_zero_<mode>): New.
14364 (riscv_prefetchi_<mode>): New.
14365 * config/riscv/riscv-cmo.def: New file.
14367 2022-05-24 ShiYulong <shiyulong@iscas.ac.cn>
14369 * common/config/riscv/riscv-common.cc: Add zicbom, zicboz, zicbop extensions.
14370 * config/riscv/riscv-opts.h (MASK_ZICBOZ): New.
14371 (MASK_ZICBOM): New.
14372 (MASK_ZICBOP): New.
14373 (TARGET_ZICBOZ): New.
14374 (TARGET_ZICBOM): New.
14375 (TARGET_ZICBOP): New.
14376 * config/riscv/riscv.opt (riscv_zicmo_subext): New.
14378 2022-05-24 David Malcolm <dmalcolm@redhat.com>
14380 * tree-vect-slp-patterns.cc: Add "final" and "override" to
14381 vect_pattern::build impls as appropriate.
14383 2022-05-24 David Malcolm <dmalcolm@redhat.com>
14385 * ipa-cp.cc: Add "final" and "override" to call_summary_base vfunc
14386 implementations, removing redundant "virtual" as appropriate.
14387 * ipa-fnsummary.h: Likewise.
14388 * ipa-modref.cc: Likewise.
14389 * ipa-param-manipulation.cc: Likewise.
14390 * ipa-profile.cc: Likewise.
14391 * ipa-prop.h: Likewise.
14392 * ipa-pure-const.cc: Likewise.
14393 * ipa-reference.cc: Likewise.
14394 * ipa-sra.cc: Likewise.
14395 * symbol-summary.h: Likewise.
14396 * symtab-thunks.cc: Likewise.
14398 2022-05-24 Martin Liska <mliska@suse.cz>
14401 2022-05-24 Martin Liska <mliska@suse.cz>
14403 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
14406 2022-05-24 Martin Liska <mliska@suse.cz>
14408 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
14411 2022-05-24 Bruno Haible <bruno@clisp.org>
14414 * doc/install.texi (Configuration): Add more details about --with-zstd.
14415 Document --with-zstd-include and --with-zstd-lib
14417 2022-05-24 Richard Biener <rguenther@suse.de>
14419 PR middle-end/105711
14420 * expmed.cc (extract_bit_field_as_subreg): Add op0_mode parameter
14422 (extract_bit_field_1): Pass down the mode of op0 to
14423 extract_bit_field_as_subreg.
14425 2022-05-24 Vineet Gupta <vineetg@rivosinc.com>
14427 * config/riscv/riscv.cc: (struct riscv_tune_param): Add
14429 (rocket_tune_info): Add default fmv_cost 8.
14430 (sifive_7_tune_info): Ditto.
14431 (thead_c906_tune_info): Ditto.
14432 (optimize_size_tune_info): Ditto.
14433 (riscv_register_move_cost): Use fmv_cost for int<->fp moves.
14435 2022-05-24 Jakub Jelinek <jakub@redhat.com>
14438 * omp-builtins.def (BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT): New
14440 * gimplify.cc (gimplify_omp_task): Diagnose taskwait with nowait
14441 clause but no depend clauses.
14442 * omp-expand.cc (expand_taskwait_call): Use
14443 BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT rather than
14444 BUILT_IN_GOMP_TASKWAIT_DEPEND if nowait clause is present.
14446 2022-05-24 Richard Biener <rguenther@suse.de>
14448 PR tree-optimization/100221
14449 * tree-ssa-dse.cc (contains_phi_arg): New function.
14450 (dse_classify_store): Postpone PHI defs that feed another PHI in defs.
14452 2022-05-24 Richard Biener <rguenther@suse.de>
14454 PR tree-optimization/105629
14455 * tree-ssa-phiopt.cc (spaceship_replacement): Allow
14456 a sign-extending conversion.
14458 2022-05-24 Kewen Lin <linkw@linux.ibm.com>
14461 * config/rs6000/rs6000-p8swap.cc (union_defs): Assert def_insn can't
14463 (union_uses): Skip debug use_insn.
14465 2022-05-23 Vineet Gupta <vineetg@rivosinc.com>
14467 * config/riscv/predicates.md (const_0_operand): Remove
14469 * config/riscv/riscv.cc (riscv_rtx_costs): Add check for
14471 * config/riscv/riscv.h (TARGET_SUPPORTS_WIDE_INT): New define.
14473 2022-05-23 Mayshao <mayshao-oc@zhaoxin.com>
14475 * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Detect
14476 the specific type of Zhaoxin CPU, and return Zhaoxin CPU name.
14477 (cpu_indicator_init): Handle Zhaoxin processors.
14478 * common/config/i386/i386-common.cc: Add lujiazui.
14479 * common/config/i386/i386-cpuinfo.h (enum processor_vendor): Add
14481 (enum processor_types): Add ZHAOXIN_FAM7H.
14482 (enum processor_subtypes): Add ZHAOXIN_FAM7H_LUJIAZUI.
14483 * config.gcc: Add lujiazui.
14484 * config/i386/cpuid.h (signature_SHANGHAI_ebx): Add
14485 Signatures for zhaoxin
14486 (signature_SHANGHAI_ecx): Ditto.
14487 (signature_SHANGHAI_edx): Ditto.
14488 * config/i386/driver-i386.cc (host_detect_local_cpu): Let
14489 -march=native recognize lujiazui processors.
14490 * config/i386/i386-c.cc (ix86_target_macros_internal): Add lujiazui.
14491 * config/i386/i386-options.cc (m_LUJIAZUI): New_definition.
14492 * config/i386/i386.h (enum processor_type): Ditto.
14493 * config/i386/i386.md: Add lujiazui.
14494 * config/i386/x86-tune-costs.h (struct processor_costs): Add
14496 * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add lujiazui.
14497 (ix86_adjust_cost): Ditto.
14498 * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Add lujiazui Tunnings.
14499 (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto.
14500 (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Ditto.
14501 (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Ditto.
14502 (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Ditto.
14503 (X86_TUNE_MOVX): Ditto.
14504 (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto.
14505 (X86_TUNE_FUSE_CMP_AND_BRANCH_32): Ditto.
14506 (X86_TUNE_FUSE_CMP_AND_BRANCH_64): Ditto.
14507 (X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS): Ditto.
14508 (X86_TUNE_FUSE_ALU_AND_BRANCH): Ditto.
14509 (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Ditto.
14510 (X86_TUNE_USE_LEAVE): Ditto.
14511 (X86_TUNE_PUSH_MEMORY): Ditto.
14512 (X86_TUNE_LCP_STALL): Ditto.
14513 (X86_TUNE_USE_INCDEC): Ditto.
14514 (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto.
14515 (X86_TUNE_OPT_AGU): Ditto.
14516 (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): Ditto.
14517 (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Ditto.
14518 (X86_TUNE_USE_SAHF): Ditto.
14519 (X86_TUNE_USE_BT): Ditto.
14520 (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Ditto.
14521 (X86_TUNE_ONE_IF_CONV_INSN): Ditto.
14522 (X86_TUNE_AVOID_MFENCE): Ditto.
14523 (X86_TUNE_EXPAND_ABS): Ditto.
14524 (X86_TUNE_USE_SIMODE_FIOP): Ditto.
14525 (X86_TUNE_USE_FFREEP): Ditto.
14526 (X86_TUNE_EXT_80387_CONSTANTS): Ditto.
14527 (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Ditto.
14528 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto.
14529 (X86_TUNE_SSE_TYPELESS_STORES): Ditto.
14530 (X86_TUNE_SSE_LOAD0_BY_PXOR): Ditto.
14531 * doc/extend.texi: Add details about lujiazui.
14532 * doc/invoke.texi: Add details about lujiazui.
14533 * config/i386/lujiazui.md: Introduce lujiazui cpu and include new md file.
14535 2022-05-23 Martin Liska <mliska@suse.cz>
14537 * config/tilepro/gen-mul-tables.cc (ARRAY_SIZE): Add new macro.
14539 2022-05-23 Richard Biener <rguenther@suse.de>
14541 * tree-ssa-forwprop.cc (forward_propagate_into_cond): Remove.
14542 (pass_forwprop::execute): Do not propagate into COND_EXPR conditions.
14544 2022-05-23 Richard Biener <rguenther@suse.de>
14546 * gimple-expr.cc (is_gimple_condexpr): Remove.
14547 * gimple-expr.h (is_gimple_condexpr): Likewise.
14548 * gimplify.cc (gimplify_expr): Remove is_gimple_condexpr usage.
14549 * tree-if-conv.cc (set_bb_predicate): Likewie.
14550 (add_to_predicate_list): Likewise.
14551 (gen_phi_arg_condition): Likewise.
14552 (predicate_scalar_phi): Likewise.
14553 (predicate_statements): Likewise.
14555 2022-05-23 Richard Biener <rguenther@suse.de>
14557 * gimple-expr.cc (is_gimple_condexpr): Equate to is_gimple_val.
14558 * gimplify.cc (gimplify_pure_cond_expr): Gimplify the condition
14560 * gimple-fold.cc (valid_gimple_rhs_p): Simplify.
14561 * tree-cfg.cc (verify_gimple_assign_ternary): Likewise.
14562 * gimple-loop-interchange.cc (loop_cand::undo_simple_reduction):
14563 Build the condition of the COND_EXPR separately.
14564 * tree-ssa-loop-im.cc (move_computations_worker): Likewise.
14565 * tree-vect-generic.cc (expand_vector_condition): Likewise.
14566 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
14568 * vr-values.cc (simplify_using_ranges::simplify): Likewise.
14569 * tree-vect-patterns.cc: Add comment indicating we are
14570 building invalid COND_EXPRs and why.
14571 * omp-expand.cc (expand_omp_simd): Gimplify the condition
14572 to the COND_EXPR separately.
14573 (expand_omp_atomic_cas): Note part that should be unreachable
14575 * tree-ssa-forwprop.cc (forward_propagate_into_cond): Adjust
14576 condition for valid replacements.
14577 * tree-if-conv.cc (predicate_bbs): Simulate previous
14578 re-folding of the condition in folded COND_EXPRs which
14579 is necessary because of unfolded GIMPLE_CONDs in the IL
14580 as in for example gcc.dg/fold-bopcond-1.c.
14581 * gimple-range-gori.cc (gori_compute::condexpr_adjust):
14582 Handle that the comparison is now in the def stmt of
14583 the select operand. Required by gcc.dg/pr104526.c.
14585 2022-05-23 Tobias Burnus <tobias@codesourcery.com>
14588 * langhooks-def.h (lhd_omp_array_size): New.
14589 (LANG_HOOKS_OMP_ARRAY_SIZE): Define.
14590 (LANG_HOOKS_DECLS): Add it.
14591 * langhooks.cc (lhd_omp_array_size): New.
14592 * langhooks.h (struct lang_hooks_for_decls): Add hook.
14593 * omp-low.cc (scan_sharing_clauses, lower_omp_target):
14594 Handle GOMP_MAP_FIRSTPRIVATE for array descriptors.
14596 2022-05-23 Roger Sayle <roger@nextmovesoftware.com>
14598 * config/i386/i386.cc (ix86_rtx_costs) <case AND>: Split from
14599 XOR/IOR case. Account for two instructions for double-word
14600 operations. In case of vector pandn, account for single
14601 instruction. Likewise for integer andn with TARGET_BMI.
14602 <case NOT>: Vector NOT requires more than 1 instruction (pxor).
14603 <case NEG>: Double-word negation requires 3 instructions.
14605 2022-05-23 Tsukasa OI <research_trasio@irq.a4lg.com>
14607 * common/config/riscv/riscv-common.cc (riscv_supported_std_ext):
14608 Fix "K" extension prefix to be placed before "J".
14609 * config/riscv/arch-canonicalize: Likewise.
14611 2022-05-23 liuhongt <hongtao.liu@intel.com>
14613 * config/i386/x86-tune-costs.h (skylake_cost): Increase gpr
14614 <-> mask cost from 5 to 6.
14615 (icelake_cost): Ditto.
14617 2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com>
14619 * config/aarch64/aarch64.md
14620 (and_<SHIFT:optab><mode>3_compare0): Support rotate left.
14621 (and_<SHIFT:optab>si3_compare0_uxtw): Likewise.
14622 (<LOGICAL:optab>_<SHIFT:optab><mode>3): Likewise.
14623 (<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): Likewise.
14624 (one_cmpl_<optab><mode>2): Likewise.
14625 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Likewise.
14626 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab>sidi_uxtw): New pattern.
14627 (eor_one_cmpl_<SHIFT:optab><mode>3_alt): Support rotate left.
14628 (eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
14629 (and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
14630 (and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
14631 (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse): Likewise.
14632 (and_<SHIFT:optab><mode>3nr_compare0): Likewise.
14633 (*<optab>si3_insn_uxtw): Use SHIFT_no_rotate.
14634 (rolsi3_insn_uxtw): New pattern.
14635 * config/aarch64/iterators.md (SHIFT): Add rotate left.
14636 (SHIFT_no_rotate): Add new iterator.
14637 (SHIFT:shift): Print rotate left as ror.
14638 (is_rotl): Add test for left rotate.
14640 2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com>
14642 * config.gcc (aarch64*-*-*): Simplify --with-cpu and --with-arch
14643 processing. Add support for architectural extensions.
14644 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Remove
14645 AARCH64_CPU_DEFAULT_FLAGS.
14646 (TARGET_CPU_NBITS): Remove.
14647 (TARGET_CPU_MASK): Remove.
14648 * config/aarch64/aarch64.cc (AARCH64_CPU_DEFAULT_FLAGS): Remove define.
14649 (get_tune_cpu): Assert CPU is always valid.
14650 (get_arch): Assert architecture is always valid.
14651 (aarch64_override_options): Cleanup CPU selection code and simplify logic.
14652 (aarch64_option_restore): Remove unnecessary checks on tune.
14654 2022-05-20 David Malcolm <dmalcolm@redhat.com>
14656 * config/aarch64/aarch64-sve-builtins-base.cc: Replace uses of
14657 "FINAL" and "OVERRIDE" with "final" and "override".
14658 * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
14659 * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
14660 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
14661 * diagnostic-path.h: Likewise.
14662 * digraph.cc: Likewise.
14663 * gcc-rich-location.h: Likewise.
14664 * gimple-array-bounds.cc: Likewise.
14665 * gimple-loop-versioning.cc: Likewise.
14666 * gimple-range-cache.cc: Likewise.
14667 * gimple-range-cache.h: Likewise.
14668 * gimple-range-fold.cc: Likewise.
14669 * gimple-range-fold.h: Likewise.
14670 * gimple-range-tests.cc: Likewise.
14671 * gimple-range.h: Likewise.
14672 * gimple-ssa-evrp.cc: Likewise.
14673 * input.cc: Likewise.
14674 * json.h: Likewise.
14675 * read-rtl-function.cc: Likewise.
14676 * tree-complex.cc: Likewise.
14677 * tree-diagnostic-path.cc: Likewise.
14678 * tree-ssa-ccp.cc: Likewise.
14679 * tree-ssa-copy.cc: Likewise.
14680 * tree-vrp.cc: Likewise.
14681 * value-query.h: Likewise.
14682 * vr-values.h: Likewise.
14684 2022-05-20 Marcel Vollweiler <marcel@codesourcery.com>
14686 * omp-low.cc (omp_runtime_api_call): Added target_memcpy_async and
14687 target_memcpy_rect_async to omp_runtime_apis array.
14689 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
14691 * doc/sourcebuild.texi (Decimal floating point attributes): Document
14692 dfp_bid effective-target.
14694 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
14696 * config/aarch64/aarch64.cc
14697 (aarch64_split_128bit_move): Handle DFP modes.
14698 (aarch64_mode_valid_for_sched_fusion_p): Likewise.
14699 (aarch64_classify_address): Likewise.
14700 (aarch64_legitimize_address_displacement): Likewise.
14701 (aarch64_reinterpret_float_as_int): Likewise.
14702 (aarch64_float_const_zero_rtx_p): Likewise.
14703 (aarch64_can_const_movi_rtx_p): Likewise.
14704 (aarch64_anchor_offset): Likewise.
14705 (aarch64_secondary_reload): Likewise.
14706 (aarch64_rtx_costs): Likewise.
14707 (aarch64_legitimate_constant_p): Likewise.
14708 (aarch64_gimplify_va_arg_expr): Likewise.
14709 (aapcs_vfp_sub_candidate): Likewise.
14710 (aarch64_vfp_is_call_or_return_candidate): Likewise.
14711 (aarch64_output_scalar_simd_mov_immediate): Likewise.
14712 (aarch64_gen_adjusted_ldpstp): Likewise.
14713 (aarch64_scalar_mode_supported_p): Accept DFP modes if enabled.
14714 * config/aarch64/aarch64.md
14715 (movsf_aarch64): Use SFD iterator and rename into
14717 (movdf_aarch64): Use DFD iterator and rename into
14719 (movtf_aarch64): Use TFD iterator and rename into
14721 (split pattern for move TF mode): Use TFD iterator.
14722 * config/aarch64/iterators.md
14723 (GPF_TF_F16_MOV): Add DFP modes.
14724 (SFD, DFD, TFD): New iterators.
14725 (GPF_TF): Add DFP modes.
14726 (TX, DX, DX2): Likewise.
14728 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
14730 * configure: Regenerate.
14732 2022-05-19 Roger Sayle <roger@nextmovesoftware.com>
14734 PR middle-end/98865
14735 * expr.cc (expand_expr_real_2) [MULT_EXPR]: Expand X*Y as X&Y
14736 when both X and Y are [0, 1], X*Y as X&-Y when Y is [0,1] and
14737 likewise X*Y as -X&Y when X is [0,1] using tree_nonzero_bits.
14739 2022-05-19 Will Schmidt <will_schmidt@vnet.ibm.com>
14741 * config/rs6000/rs6000-builtins.def: Rephrase
14742 to remove RS6000_BTC_SPECIAL from comment.
14743 * config/rs6000/rs6000.h (RS6000_BTC_UNARY, RS6000_BTC_BINARY,
14744 RS6000_BTC_TERNARY, RS6000_BTC_QUATERNARY,
14745 RS6000_BTC_QUINARY, RS6000_BTC_SENARY, RS6000_BTC_OPND_MASK,
14746 RS6000_BTC_SPECIAL, RS6000_BTC_PREDICATE, RS6000_BTC_ABS,
14747 RS6000_BTC_DST, RS6000_BTC_TYPE_MASK, RS6000_BTC_MISC,
14748 RS6000_BTC_CONST, RS6000_BTC_PURE, RS6000_BTC_FP,
14749 RS6000_BTC_QUAD, RS6000_BTC_PAIR, RS6000_BTC_QUADPAIR,
14750 RS6000_BTC_ATTR_MASK, RS6000_BTC_SPR, RS6000_BTC_VOID,
14751 RS6000_BTC_CR, RS6000_BTC_OVERLOADED, RS6000_BTC_GIMPLE,
14752 RS6000_BTC_MISC_MASK, RS6000_BTC_MEM, RS6000_BTC_SAT,
14753 RS6000_BTM_ALWAYS): Delete.
14755 2022-05-19 Richard Biener <rguenther@suse.de>
14757 * omp-expand.cc (expand_omp_atomic_cas): Do not short-cut
14758 computation of the new value.
14760 2022-05-19 Richard Biener <rguenther@suse.de>
14762 * tree-ssa-pre.cc (get_or_alloc_expression_id): Remove.
14763 (add_to_value): Use get_expression_id.
14764 (bitmap_insert_into_set): Likewise.
14765 (bitmap_value_insert_into_set): Likewise.
14767 2022-05-19 David Malcolm <dmalcolm@redhat.com>
14769 * doc/invoke.texi (-fanalyzer-checker=): Add
14770 -Wanalyzer-va-list-leak and -Wanalyzer-va-list-use-after-va-end to
14771 the list of analyzer warnings disabled by
14772 -fanalyzer-checker=taint.
14774 2022-05-19 Jakub Jelinek <jakub@redhat.com>
14777 * cfgexpand.cc (expand_debug_expr): For VAR_DECL, punt for
14778 global vars without symtab node even when they have DECL_RTL
14781 2022-05-19 Jakub Jelinek <jakub@redhat.com>
14784 * pointer-query.cc (gimple_parm_array_size): Return NULL if var
14785 doesn't have pointer or reference type.
14787 2022-05-18 Marek Polacek <polacek@redhat.com>
14790 * doc/invoke.texi: Document -Wenum-int-mismatch.
14792 2022-05-18 Uros Bizjak <ubizjak@gmail.com>
14794 * config/i386/gnu-user-common.h (defined): Only define
14795 TARGET_CAN_SPLIT_STACK for glibc targets.
14796 * config/i386/gnu.h (defined): Ditto.
14798 2022-05-18 Roger Sayle <roger@nextmovesoftware.com>
14800 * config/i386/i386.cc (ix86_rtx_costs) [MULT]: When mode size
14801 is wider than word_mode, a multiplication costs three word_mode
14802 multiplications and two word_mode additions.
14804 2022-05-18 Roger Sayle <roger@nextmovesoftware.com>
14806 * config/i386/i386.md (define_split): Split *andsi_1
14807 and *andn_si_ccno after reload with -Oz.
14809 2022-05-18 Frederik Harwath <frederik@codesourcery.com>
14811 * graphite-scop-detection.cc (scop_detection::can_represent_loop):
14812 Output reason for failure to dump file.
14813 (scop_detection::harmful_loop_in_region): Likewise.
14814 (scop_detection::graphite_can_represent_expr): Likewise.
14815 (scop_detection::stmt_has_simple_data_refs_p): Likewise.
14816 (scop_detection::stmt_simple_for_scop_p): Likewise.
14817 (print_sese_loop_numbers): New function.
14818 (scop_detection::add_scop): Use from here.
14820 2022-05-18 liuhongt <hongtao.liu@intel.com>
14822 PR middle-end/103462
14823 * match.pd (bitwise_induction_p): New match.
14824 * tree-scalar-evolution.cc (gimple_bitwise_induction_p):
14826 (analyze_and_compute_bitwise_induction_effect): New function.
14827 (enum bit_op_kind): New enum.
14828 (final_value_replacement_loop): Enhanced to handle bitwise
14831 2022-05-18 Haochen Gui <guihaoc@gcc.gnu.org>
14834 * config/rs6000/rs6000.md (*subfsi3_carry_in_xx_64): New.
14836 2022-05-18 liuhongt <hongtao.liu@intel.com>
14839 * config/i386/i386.md (*bmi2_bzhi_zero_extendsidi_4): New
14842 2022-05-18 liuhongt <hongtao.liu@intel.com>
14845 * config/i386/i386-expand.cc (ix86_expand_branch): Use ptest
14846 for QImode when code is EQ or NE.
14847 * config/i386/i386.md (cbranchoi4): New expander.
14849 2022-05-18 Peter Bergner <bergner@linux.ibm.com>
14850 Segher Boessenkool <segher@kernel.crashing.org>
14853 * config/rs6000/mma.md (mma_<vv>, mma_<avv>, mma_<pv>, mma_<apv>,
14854 mma_<vvi4i4i8>, mma_<avvi4i4i8>, mma_<vvi4i4i2>, mma_<avvi4i4i2>,
14855 mma_<vvi4i4>, mma_<avvi4i4>, mma_<pvi4i2>, mma_<apvi4i2>,
14856 mma_<vvi4i4i4>, mma_<avvi4i4i4>): Replace "wa" constraints with "v,?wa".
14857 Update other operands accordingly.
14859 2022-05-17 Marek Polacek <polacek@redhat.com>
14861 * godump.cc (go_output_typedef): Use the DECL_INITIAL of the TREE_VALUE.
14863 2022-05-17 Pat Haugen <pthaugen@linux.ibm.com>
14866 * config/rs6000/rs6000-call.cc (rs6000_function_arg_advance_1): Bump
14867 register count when not splitting IEEE 128-bit Complex.
14869 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
14871 * omp-low.cc (check_omp_nesting_restrictions): Skip warning for
14872 target inside target if inner is reverse offload.
14874 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
14876 * config/gcn/mkoffload.cc (process_obj): Revert: Use ARRAY_SIZE.
14877 * config/nvptx/mkoffload.cc (process): Likewise.
14879 2022-05-17 Andrew MacLeod <amacleod@redhat.com>
14881 * Makefile.in (OBJS): Add gimple-range-side-effect.o.
14882 * gimple-range-cache.cc (non_null_ref::non_null_ref): Delete.
14883 (non_null_ref::~non_null_ref): Delete.
14884 (non_null_ref::set_nonnull): Delete.
14885 (non_null_ref::non_null_deref_p): Delete.
14886 (non_null_ref::process_name): Delete.
14887 (ranger_cache::ranger_cache): Initialize m_exit object.
14888 (ranger_cache::fill_block_cache): Use m_exit object intead of nonnull.
14889 (ranger_cache::range_from_dom): Use side_effect class and m_exit object.
14890 (ranger_cache::update_to_nonnull): Delete.
14891 (non_null_loadstore): Delete.
14892 (ranger_cache::block_apply_nonnull): Delete.
14893 (ranger_cache::apply_side_effects): New.
14894 * gimple-range-cache.h (class non_null_ref): Delete.
14895 (non_null_ref::adjust_range): Delete.
14896 (class ranger_cache): Adjust prototypes, add side effect manager.
14897 * gimple-range-path.cc (path_range_query::range_defined_in_block): Use
14898 side effect manager for queries.
14899 (path_range_query::adjust_for_non_null_uses): Ditto.
14900 * gimple-range-path.h (class path_range_query): Delete non_null_ref.
14901 * gimple-range-side-effect.cc: New.
14902 * gimple-range-side-effect.h: New.
14903 * gimple-range.cc (gimple_ranger::gimple_ranger): Update contructor.
14904 (gimple_ranger::range_of_expr): Check def block for override value.
14905 (gimple_ranger::range_on_entry): Don't scan dominators for non-null.
14906 (gimple_ranger::range_on_edge): Check for outgoing side-effects.
14907 (gimple_ranger::register_side_effects): Call apply_side_effects.
14908 (enable_ranger): Update contructor.
14909 * gimple-range.h (class gimple_ranger): Update prototype.
14910 (enable_ranger): Update prototype.
14911 * tree-vrp.cc (execute_ranger_vrp): Invoke without immediate-use flag.
14913 2022-05-17 Giuliano Belinassi <gbelinassi@suse.de>
14916 * targhooks.cc (default_print_patchable_function_entry_1): Handle COMDAT case.
14917 * varasm.cc (switch_to_comdat_section): New
14918 (handle_vtv_comdat_section): Call switch_to_comdat_section.
14919 * varasm.h: Declare switch_to_comdat_section.
14921 2022-05-17 Richard Biener <rguenther@suse.de>
14923 * cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Do
14924 not clear bb->aux of the copied blocks.
14926 2022-05-17 Andrew MacLeod <amacleod@redhat.com>
14928 PR tree-optimization/105458
14929 * value-relation.cc (path_oracle::register_relation): Merge, then check
14932 2022-05-17 Uroš Bizjak <ubizjak@gmail.com>
14936 * config/i386/i386.md: Remove constraints when used with
14937 const_int_operand, const0_operand, const_1_operand, constm1_operand,
14938 const8_operand, const128_operand, const248_operand, const123_operand,
14939 const2367_operand, const1248_operand, const359_operand,
14940 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
14941 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
14942 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
14943 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
14944 const_0_to_255_mul_8_operand, const_1_to_31_operand,
14945 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
14946 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
14947 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
14948 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
14949 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
14950 const_24_to_27_operand and const_28_to_31_operand.
14951 * config/i386/mmx.md: Ditto.
14952 * config/i386/sse.md: Ditto.
14953 * config/i386/subst.md: Ditto.
14954 * config/i386/sync.md: Ditto.
14956 2022-05-17 Thomas Schwinge <thomas@codesourcery.com>
14958 * diagnostic.cc: Don't advise to call 'abort' instead of
14960 * system.h: Advise to call 'internal_error' instead of 'abort' or
14963 2022-05-17 Frederik Harwath <frederik@codesourcery.com>
14965 * graphite-sese-to-poly.cc (build_poly_sr_1): Fix a typo and
14966 a reference to a variable which does not exist.
14967 * graphite-isl-ast-to-gimple.cc (gsi_insert_earliest): Fix typo
14970 2022-05-17 Frederik Harwath <frederik@codesourcery.com>
14972 * graphite-sese-to-poly.cc (isl_id_for_ssa_name): Rename to ...
14973 (isl_id_for_parameter): ... this new function name.
14974 (build_scop_context): Adjust function use.
14976 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
14979 * config/gcn/t-omp-device (arch): Add 'amdgcn' besides existing 'gcn'.
14980 * config/gcn/gcn.cc (gcn_omp_device_kind_arch_isa): Likewise.
14982 2022-05-17 Jakub Jelinek <jakub@redhat.com>
14984 * tree-core.h (enum omp_clause_depend_kind): Add
14985 OMP_CLAUSE_DEPEND_INOUTSET.
14986 * tree-pretty-print.cc (dump_omp_clause): Handle
14987 OMP_CLAUSE_DEPEND_INOUTSET.
14988 * gimplify.cc (gimplify_omp_depend): Likewise.
14989 * omp-low.cc (lower_depend_clauses): Likewise.
14991 2022-05-17 Jakub Jelinek <jakub@redhat.com>
14994 * config/i386/sse.md (vec_cmpeqv2div2di, vec_cmpeqv1tiv1ti): Use
14995 andv4si3 only for EQ, for NE use iorv4si3 instead.
14997 2022-05-17 Richard Biener <rguenther@suse.de>
14999 PR tree-optimization/105618
15000 * tree-ssa-sink.cc (statement_sink_location): For virtual
15001 PHI uses ignore those defining the used virtual operand.
15003 2022-05-17 Jakub Jelinek <jakub@redhat.com>
15005 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Spelling fix:
15006 hanlde -> handle. Fix up comment formatting.
15008 2022-05-17 liuhongt <hongtao.liu@intel.com>
15011 * config/i386/sse.md (*vec_concatv4si): Extend to ..
15012 (*vec_concat<mode>): .. V16QI and V8HImode.
15013 (*vec_concatv16qi_permt2): New pre_reload define_insn_and_split.
15014 (*vec_concatv8hi_permt2): Ditto.
15016 2022-05-17 liuhongt <hongtao.liu@intel.com>
15018 PR tree-optimization/105591
15019 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Clamp
15020 vec_perm_expr index.
15022 2022-05-16 Jason Merrill <jason@redhat.com>
15025 * attribs.cc (decl_attributes): Fix broken typedefs here.
15027 2022-05-16 David Malcolm <dmalcolm@redhat.com>
15030 * Makefile.in (ANALYZER_OBJS): Add analyzer/varargs.o.
15031 * doc/invoke.texi: Add -Wanalyzer-va-arg-type-mismatch,
15032 -Wanalyzer-va-list-exhausted, -Wanalyzer-va-list-leak, and
15033 -Wanalyzer-va-list-use-after-va-end.
15035 2022-05-16 Richard Biener <rguenther@suse.de>
15037 * gimple-match.h (gimple_build): Move code_helper overloads ...
15038 * gimple-fold.h (gimple_build): ... here.
15039 (gimple_build): Transition to new worker API. Provide
15040 overloads from sequence-based API.
15041 (gimple_convert): Likewise.
15042 (gimple_convert_to_ptrofftype): Likewise.
15043 (gimple_build_vector_from_val): Likewise.
15044 (gimple_build_vector): Likewise.
15045 (gimple_build_round_up): Likewise.
15046 * gimple-fold.cc (gimple_build_insert_seq): New helper.
15047 (gimple_build): Use it. Transition combined_fn and code_helper
15049 (gimple_convert): Transition to new worker API.
15050 (gimple_convert_to_ptrofftype): Likewise.
15051 (gimple_build_vector_from_val): Likewise.
15052 (gimple_build_vector): Likewise.
15053 (gimple_build_round_up): Likewise.
15055 2022-05-16 Richard Biener <rguenther@suse.de>
15057 * gimple-match.h (code_helper): Move class ...
15058 * tree.h (code_helper): ... here.
15060 2022-05-16 Martin Liska <mliska@suse.cz>
15062 * opts-global.cc (write_langs): Add comment.
15064 2022-05-16 Eric Botcazou <ebotcazou@adacore.com>
15066 * dwarf2out.cc (loc_list_from_tree_1) <TRUTH_NOT_EXPR>: Do a logical
15067 instead of a bitwise negation.
15068 <COND_EXPR>: Swap the operands if the condition is TRUTH_NOT_EXPR.
15070 2022-05-16 Martin Liska <mliska@suse.cz>
15072 * attribs.cc (diag_attr_exclusions): Use ARRAY_SIZE.
15073 (decls_mismatched_attributes): Likewise.
15074 * builtins.cc (c_strlen): Likewise.
15075 * cfg.cc (DEF_BASIC_BLOCK_FLAG): Likewise.
15076 * common/config/aarch64/aarch64-common.cc (aarch64_option_init_struct): Likewise.
15077 * config/aarch64/aarch64-builtins.cc (aarch64_lookup_simd_builtin_type): Likewise.
15078 (aarch64_init_simd_builtin_types): Likewise.
15079 (aarch64_init_builtin_rsqrt): Likewise.
15080 * config/aarch64/aarch64.cc (is_madd_op): Likewise.
15081 * config/arm/arm-builtins.cc (arm_lookup_simd_builtin_type): Likewise.
15082 (arm_init_simd_builtin_types): Likewise.
15083 * config/avr/gen-avr-mmcu-texi.cc (mcus[ARRAY_SIZE): Likewise.
15084 (c_prefix): Likewise.
15086 * config/c6x/c6x.cc (N_SAVE_ORDER): Likewise.
15087 * config/darwin-c.cc (darwin_register_frameworks): Likewise.
15088 * config/gcn/mkoffload.cc (process_obj): Likewise.
15089 * config/i386/i386-builtins.cc (get_builtin_code_for_version): Likewise.
15090 (fold_builtin_cpu): Likewise.
15091 * config/m32c/m32c.cc (PUSHM_N): Likewise.
15092 * config/nvptx/mkoffload.cc (process): Likewise.
15093 * config/rs6000/driver-rs6000.cc (host_detect_local_cpu): Likewise.
15094 * config/s390/s390.cc (NR_C_MODES): Likewise.
15095 * config/tilepro/gen-mul-tables.cc (find_sequences): Likewise.
15096 (create_insn_code_compression_table): Likewise.
15097 * config/vms/vms.cc (NBR_CRTL_NAMES): Likewise.
15098 * diagnostic-format-json.cc (json_from_expanded_location): Likewise.
15099 * dwarf2out.cc (ARRAY_SIZE): Likewise.
15100 * genhooks.cc (emit_documentation): Likewise.
15101 (emit_init_macros): Likewise.
15102 * gimple-ssa-sprintf.cc (format_floating): Likewise.
15103 * gimple-ssa-warn-access.cc (memmodel_name): Likewise.
15104 * godump.cc (keyword_hash_init): Likewise.
15105 * hash-table.cc (hash_table_higher_prime_index): Likewise.
15106 * input.cc (for_each_line_table_case): Likewise.
15107 * ipa-free-lang-data.cc (free_lang_data): Likewise.
15108 * ipa-inline.cc (sanitize_attrs_match_for_inline_p): Likewise.
15109 * optc-save-gen.awk: Likewise.
15110 * spellcheck.cc (test_metric_conditions): Likewise.
15111 * tree-vect-slp-patterns.cc (sizeof): Likewise.
15112 (ARRAY_SIZE): Likewise.
15113 * tree.cc (build_common_tree_nodes): Likewise.
15115 2022-05-16 Martin Liska <mliska@suse.cz>
15117 * opts-global.cc (write_langs): Allocate at least one byte.
15119 2022-05-16 Richard Biener <rguenther@suse.de>
15121 * match.pd (A cmp B ? A : B -> min/max): New patterns
15122 carried over from fold_cond_expr_with_comparison.
15124 2022-05-16 liuhongt <hongtao.liu@intel.com>
15127 * config/i386/i386-expand.cc
15128 (expand_vec_perm_pslldq_psrldq_por): Fail when (d->perm[i] ==
15129 d->perm[i-1] + 1) && d->perm[i] == nelt && start != -1.
15131 2022-05-15 Uroš Bizjak <ubizjak@gmail.com>
15133 * config/i386/i386.md: Remove constraints when used with
15134 const_int_operand, const0_operand, const_1_operand, constm1_operand,
15135 const8_operand, const128_operand, const248_operand, const123_operand,
15136 const2367_operand, const1248_operand, const359_operand,
15137 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
15138 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
15139 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
15140 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
15141 const_0_to_255_mul_8_operand, const_1_to_31_operand,
15142 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
15143 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
15144 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
15145 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
15146 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
15147 const_24_to_27_operand and const_28_to_31_operand.
15148 * config/i386/mmx.md: Ditto.
15149 * config/i386/sse.md: Ditto.
15150 * config/i386/subst.md: Ditto.
15151 * config/i386/sync.md: Ditto.
15153 2022-05-13 Roger Sayle <roger@nextmovesoftware.com>
15154 Uroš Bizjak <ubizjak@gmail.com>
15156 * config/i386/sse.md (vec_cmpeqv2div2di): Enable for TARGET_SSE2.
15157 For !TARGET_SSE4_1, expand as a V4SI vector comparison, followed
15158 by a pshufd and pand.
15159 (vec_cmpeqv1tiv1ti): New define_expand implementing V1TImode
15160 vector equality as a V2DImode vector comparison (see above),
15161 followed by a pshufd and pand.
15163 2022-05-13 Roger Sayle <roger@nextmovesoftware.com>
15165 PR tree-optimization/83907
15166 * tree-ssa-strlen.cc (handle_builtin_memset): Record a strinfo
15167 for memset with an constant char value.
15168 (handle_store): Improved handling of stores with a first byte
15169 of zero, but not storing_all_zeros_p.
15171 2022-05-13 Philipp Tomsich <philipp.tomsich@vrull.eu>
15172 Manolis Tsamis <manolis.tsamis@vrull.eu>
15174 * config/riscv/riscv.h (CLZ_DEFINED_VALUE_AT_ZERO): Implement.
15175 (CTZ_DEFINED_VALUE_AT_ZERO): Same.
15176 * doc/sourcebuild.texi: add documentation for RISC-V specific
15177 test target keywords
15179 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
15181 PR tree-optimization/105597
15182 * range-op.cc (operator_minus::lhs_op1_relation): Use op1 instead
15183 of the lhs and make sure it is not undefined.
15185 2022-05-13 Sebastian Pop <spop@amazon.com>
15188 * config/aarch64/aarch64-protos.h (atomic_ool_names): Increase dimension
15190 * config/aarch64/aarch64.cc (aarch64_atomic_ool_func): Call
15191 memmodel_from_int and handle MEMMODEL_SYNC_*.
15192 (DEF0): Add __aarch64_*_sync functions.
15194 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
15196 * gimple-range-fold.cc (fold_using_range::range_of_phi): Use new VREL_*
15198 * gimple-range-path.cc (maybe_register_phi_relation): Ditto.
15199 * range-op.cc (*::lhs_op1_relation): Return relation_kind, and use
15200 new VREL enumerated values.
15201 (*::lhs_op2_relation): Ditto.
15202 (*::op1_op2_relation): Ditto.
15203 (*::fold_range): Use new VREL enumerated values.
15204 (minus_op1_op2_relation_effect): Ditto.
15205 (range_relational_tests): Ditto.
15206 * range-op.h (fold_range, op1_range, op2_range): Use VREL_VARYING.
15207 (lhs_op1_relation, lhs_op2_relation, op1_op2_relation): Return
15209 (*_op1_op2_relation): Return relation_kind.
15210 (relop_early_resolve): Use VREL_UNDEFINED.
15211 * value-query.cc (range_query::query_relation): Use VREL_VARYING.
15212 * value-relation.cc (VREL_LAST): Change enumerated value.
15213 (vrel_range_assert): Delete.
15214 (print_relation): Remove range assert.
15215 (rr_negate_table): Adjust table to use new enumerated values..
15216 (relation_negate): Remove range assert.
15217 (rr_swap_table): Adjust.
15218 (relation_swap): Remove range assert.
15219 (rr_intersect_table): Adjust.
15220 (relation_intersect): Remove range assert.
15221 (rr_union_table): Adjust.
15222 (relation_union): Remove range assert.
15223 (rr_transitive_table): Adjust.
15224 (relation_transitive): Remove range assert.
15225 (equiv_oracle::query_relation): Use new VREL enumerated values.
15226 (equiv_oracle::register_relation): Ditto.
15227 (relation_oracle::register_stmt): Ditto.
15228 (dom_oracle::set_one_relation): Ditto.
15229 (dom_oracle::register_transitives): Ditto.
15230 (dom_oracle::query_relation): Ditto.
15231 (path_oracle::register_relation): Ditto.
15232 (path_oracle::query_relation): Ditto.
15233 * value-relation.h (enum relation_kind_t): New relation_kind.
15234 (*_op1_op2_relation): Adjust prototypes.
15236 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
15238 * gimple-range-edge.cc (calc_switch_ranges): Check union return value.
15239 * value-range.cc (irange::legacy_verbose_union_): Add return value.
15240 (irange::irange_single_pair_union): New.
15241 (irange::irange_union): Add return value.
15242 * value-range.h (class irange): Adjust prototypes.
15244 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
15246 * value-range.cc (irange::legacy_verbose_intersect): Add return value.
15247 (irange::irange_contains_p): New.
15248 (irange::irange_intersect): Add return value.
15249 * value-range.h (class irange): Adjust prototypes.
15251 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
15253 * gimple-range-cache.cc (ranger_cache::get_global_range): Return the
15254 had_global value instead.
15256 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
15258 PR tree-optimization/104547
15259 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Add
15260 the op1/op2 relation to the relation call.
15261 * range-op.cc (*::lhs_op1_relation): Add param.
15262 (*::lhs_op2_relation): Ditto.
15263 (operator_minus::lhs_op1_relation): New.
15264 (range_relational_tests): Add relation param.
15265 * range-op.h (lhs_op1_relation, lhs_op2_relation): Adjust prototype.
15267 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
15269 * gimple-range.cc (gimple_ranger::register_side_effects): First check
15270 if the DEF should be exported as a global.
15271 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Process PHI side effects,
15272 which will export globals.
15273 (execute_ranger_vrp): Remove call to export_global_ranges.
15275 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
15277 * value-relation.cc (path_oracle::reset_path): Clear killing_defs.
15279 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
15281 * gimple-range-cache.cc (ranger_cache::ranger_cache): Start with
15283 (ranger_cache::entry_range): Add rfd_mode parameter.
15284 (ranger_cache::exit_range): Ditto.
15285 (ranger_cache::edge_range): New. Incorporate from range_on_edge.
15286 (ranger_cache::range_of_expr): Adjust call to entry_range.
15287 (ranger_cache::range_on_edge): Split to edge_range and call.
15288 (ranger_cache::fill_block_cache): Always invoke range_from_dom.
15289 (ranger_cache::range_from_dom): Make reentrant, add search mode, handle
15290 mutiple predecessors.
15291 (ranger_cache::update_to_nonnull): Adjust call to exit_range.
15292 * gimple-range-cache.h (ranger_cache): Add enum rfd_mode. Adjust
15295 2022-05-13 Alexandre Oliva <oliva@adacore.com>
15297 * gimple-harden-conditionals.cc: Include sbitmap.h.
15298 (pass_harden_conditional_branches::execute): Skip new blocks.
15299 (pass_harden_compares::execute): Likewise.
15301 2022-05-13 Richard Earnshaw <rearnsha@arm.com>
15304 * config/arm/mve.md (*movmisalign<mode>_mve_store): Use
15305 mve_memory_operand.
15306 (*movmisalign<mode>_mve_load): Likewise.
15307 * config/arm/vec-common.md (movmisalign<mode>): Convert to generator
15309 (@movmisalign<mode>): ... thus. Use generic predicates and then
15310 rework operands if they are not valid. For MVE rework to a
15311 narrower element size if the alignment is not high enough.
15313 2022-05-13 Richard Earnshaw <rearnsha@arm.com>
15315 * config/arm/arm.cc (mve_vector_mem_operand): Allow SP_REGNUM
15316 when there is no write-back. Fix use when strict is true.
15318 2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
15320 * config/xtensa/xtensa.h (TARGET_HAS_NO_HW_DIVIDE): New macro
15323 2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
15325 * config/xtensa/xtensa.md (extvsi, extvsi_internal, extzvsi,
15326 extzvsi_internal): Rename from extv, extv_internal, extzv and
15327 extzv_internal, respectively.
15329 2022-05-13 Eric Botcazou <ebotcazou@adacore.com>
15331 * tree-sra.cc (sra_modify_assign): Check that scalar storage order
15332 is the same on the LHS and RHS before rewriting one with the model
15335 2022-05-13 Richard Biener <rguenther@suse.de>
15337 * gimple-fold.cc (gimple_build): Adjust for new
15339 * gimple-fold.h (gimple_build): New main APIs with
15340 iterator, insert direction and iterator update.
15341 (gimple_build): New forwarder template.
15342 (clear_padding_type_may_have_padding_p): Remove.
15343 (clear_type_padding_in_mask): Likewise.
15344 (arith_overflowed_p): Likewise.
15345 * fold-const.h (clear_padding_type_may_have_padding_p): Declare.
15346 (clear_type_padding_in_mask): Likewise.
15347 (arith_overflowed_p): Likewise.
15348 * tree-vect-generic.cc (gimplify_build3): Use main gimple_build API.
15349 (gimplify_build2): Likewise.
15350 (gimplify_build1): Likewise.
15351 * ubsan.cc (ubsan_expand_ptr_ifn): Likewise, avoid extra
15353 * gengtype.cc (open_base_files): Re-order includes.
15354 * builtins.cc: Re-order gimple-fold.h include.
15355 * calls.cc: Likewise.
15356 * cgraphbuild.cc: Likewise.
15357 * cgraphunit.cc: Likewise.
15358 * config/rs6000/rs6000-builtin.cc: Likewise.
15359 * config/rs6000/rs6000-call.cc: Likewise.
15360 * config/rs6000/rs6000.cc: Likewise.
15361 * config/s390/s390.cc: Likewise.
15362 * expr.cc: Likewise.
15363 * fold-const.cc: Likewise.
15364 * function-tests.cc: Likewise.
15365 * gimple-match-head.cc: Likewise.
15366 * gimple-range-fold.cc: Likewise.
15367 * gimple-ssa-evrp-analyze.cc: Likewise.
15368 * gimple-ssa-evrp.cc: Likewise.
15369 * gimple-ssa-sprintf.cc: Likewise.
15370 * gimple-ssa-warn-access.cc: Likewise.
15371 * gimplify.cc: Likewise.
15372 * graphite-isl-ast-to-gimple.cc: Likewise.
15373 * ipa-cp.cc: Likewise.
15374 * ipa-devirt.cc: Likewise.
15375 * ipa-prop.cc: Likewise.
15376 * omp-low.cc: Likewise.
15377 * pointer-query.cc: Likewise.
15378 * range-op.cc: Likewise.
15379 * tree-cfg.cc: Likewise.
15380 * tree-if-conv.cc: Likewise.
15381 * tree-inline.cc: Likewise.
15382 * tree-object-size.cc: Likewise.
15383 * tree-ssa-ccp.cc: Likewise.
15384 * tree-ssa-dom.cc: Likewise.
15385 * tree-ssa-forwprop.cc: Likewise.
15386 * tree-ssa-ifcombine.cc: Likewise.
15387 * tree-ssa-loop-ivcanon.cc: Likewise.
15388 * tree-ssa-math-opts.cc: Likewise.
15389 * tree-ssa-pre.cc: Likewise.
15390 * tree-ssa-propagate.cc: Likewise.
15391 * tree-ssa-reassoc.cc: Likewise.
15392 * tree-ssa-sccvn.cc: Likewise.
15393 * tree-ssa-strlen.cc: Likewise.
15394 * tree-ssa.cc: Likewise.
15395 * value-pointer-equiv.cc: Likewise.
15396 * vr-values.cc: Likewise.
15398 2022-05-13 Alexandre Oliva <oliva@adacore.com>
15400 PR rtl-optimization/105455
15401 * gimple-harden-conditionals.cc (insert_check_and_trap): Set
15402 probabilities for newly-conditional edges.
15404 2022-05-13 liuhongt <hongtao.liu@intel.com>
15406 PR tree-optimization/102583
15407 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Extended to a
15408 contiguous stride in the VEC_PERM_EXPR.
15410 2022-05-12 Richard Biener <rguenther@suse.de>
15412 PR rtl-optimization/105577
15413 * dse.cc (rest_of_handle_dse): Make sure to purge dead EH
15414 edges before running fast DCE via df_analyze.
15416 2022-05-12 Richard Biener <rguenther@suse.de>
15418 PR tree-optimization/105562
15419 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Disambiguate
15420 against all CLOBBER defs if there's not an obvious must-alias
15421 and we are not doing redundant store elimination.
15422 (vn_walk_cb_data::redundant_store_removal_p): New field.
15423 (vn_reference_lookup_pieces): Initialize it.
15424 (vn_reference_lookup): Add argument to specify if we are
15425 doing redundant store removal.
15426 (eliminate_dom_walker::eliminate_stmt): Specify we do.
15427 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust.
15429 2022-05-12 Haochen Jiang <haochen.jiang@intel.com>
15432 * config/i386/sse.md (vi1avx2const): New define_mode_attr.
15433 (pxor/pcmpeqb/pmovmskb/cmp 0xffff to ptest splitter):
15434 New define_split pattern.
15436 2022-05-12 Jakub Jelinek <jakub@redhat.com>
15438 * gimplify.cc (gimplify_omp_depend): Don't build_fold_addr_expr
15439 if null_pointer_node.
15440 (gimplify_scan_omp_clauses): Likewise.
15441 * tree-pretty-print.cc (dump_omp_clause): Print null_pointer_node
15444 2022-05-11 Patrick Palka <ppalka@redhat.com>
15446 * tree.h (TREE_VEC_BEGIN): Define.
15447 (TREE_VEC_END): Correct 'length' member access.
15448 (class tree_vec_range): Define.
15450 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
15452 * config/rs6000/rs6000.md: Use wa instead of <Fv>.
15454 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
15456 * config/rs6000/rs6000.md: Use d instead of <Ff>.
15458 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
15460 * config/rs6000/constraints.md (register_constraint "f"): Use
15461 RS6000_CONSTRAINT_d.
15462 * config/rs6000/rs6000.cc (rs6000_debug_reg_global): Do not handle
15463 RS6000_CONSTRAINT_f.
15464 (rs6000_init_hard_regno_mode_ok): Ditto. Reorder and simplify a bit.
15465 * config/rs6000/rs6000.h (r6000_reg_class_enum): Delete
15466 RS6000_CONSTRAINT_d.
15468 2022-05-11 Richard Biener <rguenther@suse.de>
15470 * gimple-fold.h (gimple_build): Use variadic template
15471 functions for the gimple_build API forwarders without
15472 location_t argument.
15474 2022-05-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
15476 PR middle-end/70090
15477 * asan.cc (initialize_sanitizer_builtins): Register
15478 __builtin_dynamic_object_size if necessary.
15480 2022-05-11 Richard Biener <rguenther@suse.de>
15482 PR rtl-optimization/105559
15483 * cfgrtl.cc (delete_insn_and_edges): Only perform search to BB_END
15484 for non-debug insns.
15486 2022-05-11 Richard Biener <rguenther@suse.de>
15488 * generic-match-head.cc: Include tree-eh.h.
15489 * match.pd ((cond ...) cmp X): New simplification inspired
15490 by fold_binary_op_with_conditional_arg.
15491 (eq/ne (cmp ...) true/false): Likewise.
15493 2022-05-11 Thomas Schwinge <thomas@codesourcery.com>
15495 * doc/install.texi: Don't document '--with-hsa-runtime',
15496 '--with-hsa-runtime-include', '--with-hsa-runtime-lib'.
15498 2022-05-11 Martin Liska <mliska@suse.cz>
15501 * doc/install.texi: Document the configure option --with-zstd.
15503 2022-05-11 Martin Liska <mliska@suse.cz>
15505 * common/config/i386/cpuinfo.h (has_cpu_feature): Directly
15506 compute index in cpu_features2.
15507 (set_cpu_feature): Likewise.
15508 * config/i386/i386-builtins.cc (fold_builtin_cpu): Also remove
15509 loop for cpu_features2 and use NOP_EXPRs.
15511 2022-05-11 Richard Biener <rguenther@suse.de>
15513 PR bootstrap/105551
15514 * opts.cc (finish_options): Also disable var-tracking if
15515 !DWARF2_DEBUGGING_INFO.
15517 2022-05-11 liuhongt <hongtao.liu@intel.com>
15520 * config/i386/sse.md (*vec_set<mode>_0_zero_extendhi): New
15521 pre_reload define_insn_and_split.
15522 (*vec_setv2di_0_zero_extendhi_1): Ditto.
15523 (*vec_set<mode>_0_zero_extendsi): Ditto.
15524 (*vec_setv2di_0_zero_extendsi_1): Ditto.
15525 (ssewvecmode): New mode attr.
15526 (ssewvecmodelower): Ditto.
15527 (ssepackmodelower): Ditto.
15529 2022-05-11 Kewen Lin <linkw@linux.ibm.com>
15531 * config/rs6000/constraints.md (register constraint v): Use
15532 rs6000_constraints[RS6000_CONSTRAINT_v] instead of ALTIVEC_REGS.
15534 2022-05-11 Martin Liska <mliska@suse.cz>
15537 * config/riscv/riscv.opt: Remove Separate from
15538 -msmall-data-limit=.
15539 * optc-gen.awk: Report error for the described situation.
15540 * gcc.cc: Use Separate syntax.
15541 * opts.cc (gen_command_line_string): Change option name.
15543 2022-05-11 Haochen Gui <guihaoc@gcc.gnu.org>
15546 * match.pd (minmax): Skip constant folding for fmin/fmax when both
15547 arguments are sNaN or one is sNaN and another is NaN.
15549 2022-05-10 Jakub Jelinek <jakub@redhat.com>
15551 PR tree-optimization/105528
15552 * gimple-isel.cc (gimple_expand_vec_set_expr): After gsi_remove
15553 set *gsi to gsi_for_stmt (ass_stmt). Fix up function comment.
15555 2022-05-10 Segher Boessenkool <segher@kernel.crashing.org>
15557 * doc/md.texi (Defining Mode Iterators): Correct example replacement
15560 2022-05-10 Maciej W. Rozycki <macro@embecosm.com>
15562 * config/riscv/riscv.md (UNSPEC_FMIN, UNSPEC_FMAX): New
15564 (fmin<mode>3, fmax<mode>3): New insns.
15566 2022-05-10 Richard Biener <rguenther@suse.de>
15568 * tree-if-conv.cc (fold_build_cond_expr): Use
15569 match-and-simplify to simplify the condition.
15570 (ifcvt_follow_ssa_use_edges): Remove.
15571 (predicate_scalar_phi): Use follow_all_ssa_edges.
15573 2022-05-10 Thomas Schwinge <thomas@codesourcery.com>
15575 PR middle-end/100400
15576 * omp-oacc-kernels-decompose.cc
15577 (visit_loops_in_gang_single_region) <GIMPLE_OMP_FOR>: Explicitly
15578 call 'internal_error'.
15580 2022-05-10 Richard Biener <rguenther@suse.de>
15582 PR middle-end/105537
15583 * toplev.cc (process_options): Move flag_var_tracking
15585 * opts.cc (finish_options): ... here.
15587 2022-05-10 Martin Liska <mliska@suse.cz>
15589 * basic-block.h (struct basic_block_d): Use void *
15591 * cfgloop.h: Likewise.
15592 * cgraph.h: Likewise.
15593 * gengtype-state.cc (state_ident_by_name): Likewise.
15594 (record_type): Likewise.
15595 (read_state_already_seen_type): Likewise.
15596 * gengtype.cc (dump_type): Likewise.
15597 (input_file_by_name): Likewise.
15599 * ggc-common.cc (ggc_cleared_alloc_ptr_array_two_args): Likewise.
15600 * ipa-utils.h (struct ipa_dfs_info): Likewise.
15601 * plugin.cc (htab_hash_plugin): Likewise.
15603 2022-05-10 Richard Biener <rguenther@suse.de>
15605 * flags.h (dwarf_debuginfo_p): Add opts argument, guard
15606 API with !GENERATOR_FILE.
15607 * opts.cc (global_options): Poison.
15608 (global_options_set): Likewise.
15609 (finish_options): Refer to options via opts.
15611 2022-05-10 Uroš Bizjak <ubizjak@gmail.com>
15612 Roger Sayle <roger@nextmovesoftware.com>
15614 * config/i386/i386.md (*testqi_1_maybe_si): Prefer shorter SImode
15615 alternative when optimizing for size and the immediate operand is
15616 const_0_to_127_operand.
15617 (*andqi_2_maybe_si): Likewise.
15618 * config/i386/predicates.md (const_0_to_127_operand): New predicate.
15620 2022-05-10 Roger Sayle <roger@nextmovesoftware.com>
15622 * tree-chrec.cc (chrec_apply): Attempt to fold the linear chrec
15623 "{a, +, a} (x-1)" as "a*x", as the number of loop iterations, x-1,
15626 2022-05-10 Eric Botcazou <ebotcazou@adacore.com>
15629 * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Return
15630 true only for 8-byte vector modes.
15632 2022-05-10 Siddhesh Poyarekar <siddhesh@gotplt.org>
15634 PR middle-end/70090
15635 * ubsan.cc (ubsan_expand_objsize_ifn): Allow non-constant SIZE.
15636 (instrument_object_size): Get dynamic object size expression.
15638 2022-05-10 Jiufu Guo <guojiufu@linux.ibm.com>
15640 PR preprocessor/101168
15641 * config/rs6000/rs6000-c.cc (rs6000_macro_to_expand):
15642 Avoid empty identifier.
15644 2022-05-09 Qing Zhao <qing.zhao@oracle.com>
15647 * config/i386/i386.cc (zero_call_used_regno_mode): use V2SImode
15648 as a generic MMX mode instead of V4HImode.
15649 (zero_all_mm_registers): Use SET to zero instead of MOV for
15650 zeroing scratch registers.
15651 (ix86_zero_call_used_regs): Likewise.
15653 2022-05-09 liuhongt <hongtao.liu@intel.com>
15656 * config/i386/i386-expand.cc
15657 (expand_vec_perm_pslldq_psrldq_por): New function.
15658 (ix86_expand_vec_perm_const_1): Try
15659 expand_vec_perm_pslldq_psrldq_por for both 3-instruction and
15660 4/5-instruction sequence.
15662 2022-05-09 Martin Liška <mliska@suse.cz>
15664 * basic-block.h (STATIC_ASSERT): Use normal STATIC_ASSERT.
15665 * system.h (STATIC_ASSERT): Define as static_assert for C++
15666 and fallback to array index in C.
15668 2022-05-09 Richard Biener <rguenther@suse.de>
15670 PR tree-optimization/105517
15671 * tree-ssa-sccvn.cc (vn_reference_lookup): Make sure the accumulated
15672 offset can be represented in the POINTER_PLUS_EXPR IL.
15673 (vn_reference_insert): Likewise.
15674 * poly-int.h (sext_hwi): Add poly version of sext_hwi.
15676 2022-05-09 Richard Biener <rguenther@suse.de>
15678 * match.pd: Remove #if GIMPLE guards around ! using patterns.
15680 2022-05-09 liuhongt <hongtao.liu@intel.com>
15683 * config/i386/sse.md (*sse4_1_<code>v2qiv2di2<mask_name>_1):
15685 (*sse4_1_zero_extendv2qiv2di2_2): New pre_reload
15686 define_insn_and_split.
15688 2022-05-09 Alex Coplan <alex.coplan@arm.com>
15690 * cgraph.cc (cgraph_node::get_create): Don't dump if the current
15691 symtab state is PARSING.
15693 2022-05-09 Martin Liska <mliska@suse.cz>
15695 * system.h (LIKELY): Define.
15696 (UNLIKELY): Likewise.
15697 * domwalk.cc (sort_bbs_postorder): Use {,UN}LIKELY
15699 * dse.cc (set_position_unneeded): Likewise.
15700 (set_all_positions_unneeded): Likewise.
15701 (any_positions_needed_p): Likewise.
15702 (all_positions_needed_p): Likewise.
15703 * expmed.cc (flip_storage_order): Likewise.
15704 * genmatch.cc (dt_simplify::gen_1): Likewise.
15705 * ggc-common.cc (gt_pch_save): Likewise.
15706 * print-rtl.cc: Likewise.
15707 * rtl-iter.h (T>::array_type::~array_type): Likewise.
15708 (T>::next): Likewise.
15709 * rtl-ssa/internals.inl: Likewise.
15710 * rtl-ssa/member-fns.inl: Likewise.
15711 * rtlanal.cc (T>::add_subrtxes_to_queue): Likewise.
15712 (rtx_properties::try_to_add_dest): Likewise.
15713 * rtlanal.h (growing_rtx_properties::repeat): Likewise.
15714 (vec_rtx_properties_base::~vec_rtx_properties_base): Likewise.
15715 * simplify-rtx.cc (simplify_replace_fn_rtx): Likewise.
15716 * sort.cc (likely): Likewise.
15717 (mergesort): Likewise.
15718 * wide-int.h (wi::eq_p): Likewise.
15719 (wi::ltu_p): Likewise.
15720 (wi::cmpu): Likewise.
15721 (wi::bit_and): Likewise.
15722 (wi::bit_and_not): Likewise.
15723 (wi::bit_or): Likewise.
15724 (wi::bit_or_not): Likewise.
15725 (wi::bit_xor): Likewise.
15726 (wi::add): Likewise.
15727 (wi::sub): Likewise.
15729 2022-05-09 Kito Cheng <kito.cheng@sifive.com>
15731 * config/riscv/arch-canonicalize: Handle g correctly.
15733 2022-05-07 Marek Polacek <polacek@redhat.com>
15737 * tree-core.h (struct attribute_spec): Update comment for HANDLER.
15739 2022-05-06 Jason Merrill <jason@redhat.com>
15741 * diagnostic-color.cc: Add fnname and targs color entries.
15742 * doc/invoke.texi: Document them.
15744 2022-05-06 Jason Merrill <jason@redhat.com>
15746 * vec.h (vec::iterate): Fix comment.
15748 2022-05-06 Michael Meissner <meissner@linux.ibm.com>
15751 * config/rs6000/rs6000.cc (rs6000_can_inline_p): Ignore -mpower8-fusion
15752 and -mpower10-fusion options for inlining purposes.
15754 2022-05-06 Christophe Lyon <christophe.lyon@arm.com>
15756 * config/aarch64/iterators.md (GPF_TF_F16): Delete.
15758 2022-05-06 Marcel Vollweiler <marcel@codesourcery.com>
15760 * omp-low.cc (omp_runtime_api_call): Added target_is_accessible to
15761 omp_runtime_apis array.
15763 2022-05-06 Hafiz Abid Qadeer <abidh@codesourcery.com>
15765 * omp-low.cc (omp_maybe_offloaded_ctx): New prototype.
15766 (scan_sharing_clauses): Check a restriction on allocate clause.
15768 2022-05-05 Sandra Loosemore <sandra@codesourcery.com>
15770 * gimplify.cc (gimplify_omp_for): Update messages for SCHEDULED
15771 and ORDERED clause conflict errors. Add check for GRAINSIZE and
15772 NUM_TASKS on TASKLOOP.
15774 2022-05-05 Martin Liska <mliska@suse.cz>
15776 * genautomata.cc (create_composed_state): Remove dead code.
15777 * graphite-poly.cc (print_pdrs): Likewise.
15778 * lto-wrapper.cc (run_gcc): Likewise.
15779 * tree-switch-conversion.cc (switch_decision_tree::balance_case_nodes):
15782 2022-05-05 Martin Liska <mliska@suse.cz>
15784 * tree-profile.cc (gimple_gen_ic_profiler): Prefix names with
15786 (gimple_gen_time_profiler): Likewise.
15788 2022-05-05 Martin Liska <mliska@suse.cz>
15790 * value-prof.cc (stream_out_histogram_value): Remove sanity
15793 2022-05-05 Richard Biener <rguenther@suse.de>
15795 PR tree-optimization/104162
15796 * tree-ssa-sccvn.cc (vn_reference_lookup): Handle
15797 &MEM[_1 + 5].a[i] like a POINTER_PLUS_EXPR if the offset
15799 (vn_reference_insert): Likewise.
15801 2022-05-05 Richard Biener <rguenther@suse.de>
15803 * tree-core.h (tree_real_cst::real_cst_ptr): Remove pointer
15804 to real_value field.
15805 (tree_real_cst::value): Add real_value field.
15806 * tree.h (TREE_REAL_CST_PTR): Adjust.
15807 * tree.cc (build_real): Remove separate allocation.
15808 * tree-streamer-in.cc (unpack_ts_real_cst_value_fields):
15811 2022-05-05 Richard Biener <rguenther@suse.de>
15813 * tree-ssa-ifcombine.cc (bb_no_side_effects_p): Avoid executing
15814 divisions with undefined overflow unconditionally.
15815 (pass_tree_ifcombine::execute): Rewrite stmts with undefined
15816 overflow to defined.
15818 2022-05-05 Richard Biener <rguenther@suse.de>
15820 PR tree-optimization/105484
15821 * gimple-isel.cc (gimple_expand_vec_set_expr): Clean EH, return
15822 whether the CFG changed.
15823 (gimple_expand_vec_exprs): When the CFG changed, clean it up.
15825 2022-05-05 Richard Biener <rguenther@suse.de>
15827 PR tree-optimization/104595
15828 * tree-vect-patterns.cc (vect_recog_bool_pattern): For
15829 COND_EXPR do not fail if check_bool_pattern returns false.
15831 2022-05-04 Tobias Burnus <tobias@codesourcery.com>
15833 * omp-low.cc (lower_omp_target): Fix use_device_{addr,ptr} with list
15834 item that is in an outer data-sharing clause.
15836 2022-05-04 Richard Biener <rguenther@suse.de>
15838 PR tree-optimization/104658
15839 * tree-vect-slp.cc (vect_slp_convert_to_external): Do not
15840 create VECTOR_BOOLEAN_TYPE_P extern defs. Reset the vector
15841 type on nodes we promote.
15842 (vectorizable_bb_reduc_epilogue): Deal with externalized
15844 * tree-vect-stmts.cc (vect_maybe_update_slp_op_vectype): Do
15845 not allow VECTOR_BOOLEAN_TYPE_P extern defs.
15847 2022-05-04 Richard Biener <rguenther@suse.de>
15849 PR tree-optimization/103116
15850 * tree-vect-stmts.cc (get_group_load_store_type): Handle the
15851 case we need peeling for gaps even though GROUP_GAP is zero.
15853 2022-05-04 Martin Liska <mliska@suse.cz>
15855 * gengtype-state.cc (read_a_state_token): Remove dead code.
15856 * ipa-profile.cc (ipa_profile_read_summary_section): Likewise.
15858 2022-05-04 Richard Biener <rguenther@suse.de>
15860 * gimplify.cc (gimplify_init_constructor): First gimplify,
15861 then simplify the result to a VECTOR_CST.
15863 2022-05-04 Jakub Jelinek <jakub@redhat.com>
15865 * genconditions.cc (write_conditions): Append a { nullptr, -1 }
15866 element at the end of insn_conditions.
15867 (write_writer): Use ARRAY_SIZE (insn_conditions) - 1 instead of
15868 ARRAY_SIZE (insn_conditions).
15870 2022-05-04 Christophe Lyon <christophe.lyon@arm.com>
15873 * config/arm/arm.cc (simd_valid_immediate): Exit when input is a
15874 vector of booleans and MVE is not enabled.
15876 2022-05-04 Richard Biener <rguenther@suse.de>
15879 * tree-cfgcleanup.cc (move_debug_stmts_from_forwarder):
15880 Move debug stmts to the predecessor if moving to the
15881 destination is not possible.
15882 (remove_forwarder_block): Adjust.
15883 (remove_forwarder_block_with_phi): Likewise.
15885 2022-05-03 Roger Sayle <roger@nextmovesoftware.com>
15887 PR tree-optimization/102950
15888 * range-op.cc (wi_optimize_signed_bitwise_op): New function to
15889 determine bounds of bitwise operations on signed types.
15890 (operator_bitwise_and::wi_fold): Call the above function.
15891 (operator_bitwise_or::wi_fold): Likewise.
15892 (operator_bitwise_xor::wi_fold): Likewise. Additionally, the
15893 result can't be zero if the operands can't be equal.
15895 2022-05-03 Iain Sandoe <iain@sandoe.co.uk>
15897 * config/darwin.cc (darwin_label_is_anonymous_local_objc_name): Make
15898 protocol class methods linker-visible.
15900 2022-05-03 Uroš Bizjak <ubizjak@gmail.com>
15903 * config/i386/sse.md (*vec_extract<mode>_0_mem): New pre-reload
15904 define_insn_and_split pattern.
15906 2022-05-03 Richard Biener <rguenther@suse.de>
15908 PR middle-end/105083
15909 * tree-scalar-evolution.cc (scev_initialize): Verify we
15910 have appropriate loop state.
15911 * tree-ssa-dce.cc (perform_tree_ssa_dce): Re-order SCEV and
15912 loop init and finalization.
15914 2022-05-03 Richard Biener <rguenther@suse.de>
15916 PR middle-end/105461
15917 * opts.cc (finish_options): Match the condition to
15918 disable flag_var_tracking to that of process_options.
15920 2022-05-03 Richard Biener <rguenther@suse.de>
15922 * opts.cc: #undef OPTIONS_SET_P.
15923 (finish_options): Use opts_set instead of OPTIONS_SET_P.
15925 2022-05-03 Richard Biener <rguenther@suse.de>
15927 PR tree-optimization/105394
15928 * tree-vect-generic.cc (expand_vector_condition): Adjust
15929 comp_width for non-integer mode masks as well.
15931 2022-05-03 Marcel Vollweiler <marcel@codesourcery.com>
15933 * omp-low.cc (omp_runtime_api_call): Added get_mapped_ptr to
15934 omp_runtime_apis array.
15936 2022-05-02 Richard Biener <rguenther@suse.de>
15938 * tree-scalar-evolution.cc (expression_expensive_p):
15939 Never consider mismatched calls as cheap.
15941 2022-05-02 Richard Biener <rguenther@suse.de>
15943 PR tree-optimization/104240
15944 * tree-vect-slp.cc (op1_op0_map): New.
15945 (vect_get_operand_map): Handle compares.
15946 (vect_build_slp_tree_1): Support swapped operands for
15949 2022-05-02 Jakub Jelinek <jakub@redhat.com>
15952 * cfgexpand.cc (expand_debug_expr): Don't make_decl_rtl_for_debug
15953 if there is no symtab node for the VAR_DECL.
15955 2022-05-02 Sebastian Huber <sebastian.huber@embedded-brains.de>
15957 * gcov-io.cc (gcov_rewrite): Clear the file error status.
15959 2022-05-02 Richard Biener <rguenther@suse.de>
15961 PR tree-optimization/105437
15962 * tree-vect-slp.cc (vect_schedule_slp_node): Handle the
15963 case where last_stmt alters control flow.
15965 2022-05-02 Richard Biener <rguenther@suse.de>
15967 * dojump.cc (do_jump): Use CASE_CONVERT.
15968 * tree-ssa-dom.cc (edge_info::derive_equivalences): Likewise.
15970 2022-05-02 Jakub Jelinek <jakub@redhat.com>
15972 * system.h: Include initializer_list.
15974 2022-05-01 Segher Boessenkool <segher@kernel.crashing.org>
15976 * config/rs6000/constraints.md (Y constraint): Fix comment.
15978 2022-05-01 Aldy Hernandez <aldyh@redhat.com>
15980 * tree-ssanames.cc (set_range_info): Denormalize VR_VARYING to
15981 VR_RANGE before passing a piecewise range to set_range_info_raw.
15983 2022-04-30 Patrick Palka <ppalka@redhat.com>
15985 * gengtype.cc (adjust_field_tree_exp): Remove.
15986 (adjust_field_type): Don't handle the "tree_exp" special attribute.
15987 * tree-core.h (struct tree_exp): Remove "special" and "desc"
15988 attributes. Add "length" attribute.
15990 2022-04-29 Martin Jambor <mjambor@suse.cz>
15993 * cgraph.cc (cgraph_node::remove): Release body of the node this
15994 is clone_of if appropriate.
15996 2022-04-29 Uroš Bizjak <ubizjak@gmail.com>
15999 * config/i386/i386.md (adcl/neg -> sbb peephole): New peephole2.
16001 2022-04-29 Richard Biener <rguenther@suse.de>
16003 * gimple-expr.cc (is_gimple_condexpr): Adjust comment.
16004 (canonicalize_cond_expr_cond): Move here from gimple.cc,
16005 allow both COND_EXPR and GIMPLE_COND forms.
16006 * gimple-expr.h (canonicalize_cond_expr_cond): Declare.
16007 * gimple.cc (canonicalize_cond_expr_cond): Remove here.
16008 * gimple.h (canonicalize_cond_expr_cond): Likewise.
16009 * gimple-loop-versioning.cc (loop_versioning::version_loop):
16010 Use is_gimple_condexpr_for_cond.
16011 * tree-parloops.cc (gen_parallel_loop): Likewise.
16012 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Check for
16013 a proper cond expr after canonicalize_cond_expr_cond.
16014 Use is_gimple_condexpr_for_cond where appropriate.
16015 * tree-ssa-loop-manip.cc (determine_exit_conditions): Likewise.
16016 * tree-vect-loop-manip.cc (slpeel_add_loop_guard): Likewise.
16018 2022-04-29 Richard Biener <rguenther@suse.de>
16020 * gimple-iterator.h (gsi_after_labels): Add overload for
16022 (gsi_start_1): Rename to gsi_start and take a reference.
16023 (gsi_last_1): Likewise.
16024 * gimple-iterator.cc (gsi_for_stmt): Use gsi_start.
16025 * omp-low.cc (lower_rec_input_clauses): Likewise.
16026 (lower_omp_scan): Likewise.
16028 2022-04-29 Richard Biener <rguenther@suse.de>
16030 PR tree-optimization/105431
16031 * tree-ssa-math-opts.cc (powi_as_mults_1): Make n unsigned.
16032 (powi_as_mults): Use absu_hwi.
16033 (gimple_expand_builtin_powi): Remove now pointless n != -n
16036 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
16038 * range-op.cc (empty_range_varying): Move to range-op.h.
16039 (range_true): Move to range.h.
16040 (range_false): Same.
16041 (range_true_and_false): Same.
16042 (enum bool_range_state): Move to range-op.h.
16043 (relop_early_resolve): Same.
16044 (operator_equal::op1_op2_relation): Abstract code to...
16045 (equal_op1_op2_relation): ...here.
16046 (operator_not_equal::op1_op2_relation): Abstract code to...
16047 (not_equal_op1_op2_relation): ...here.
16048 (operator_lt::op1_op2_relation): Abstract code to...
16049 (lt_op1_op2_relation): ...here.
16050 (operator_le::op1_op2_relation): Abstract code to...
16051 (le_op1_op2_relation): ...here.
16052 (operator_gt::op1_op2_relation): Abstract code to...
16053 (gt_op1_op2_relation): ...here.
16054 (operator_ge::op1_op2_relation): Abstract code to...
16055 (ge_op1_op2_relation): ...here.
16056 (class range_op_table): Move to range-op.h.
16057 * range-op.h (equal_op1_op2_relation): Moved from range-op.cc.
16058 (not_equal_op1_op2_relation): Same.
16059 (lt_op1_op2_relation): Same.
16060 (le_op1_op2_relation): Same.
16061 (gt_op1_op2_relation): Same.
16062 (ge_op1_op2_relation): Same.
16063 (enum bool_range_state): Same.
16064 (get_bool_state): Same.
16065 (empty_range_varying): Same.
16066 (relop_early_resolve): Same.
16067 (class range_op_table): Same.
16068 * range.h (range_true): Same.
16069 (range_false): Same.
16070 (range_true_and_false): Same.
16072 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
16074 * gimple-fold.cc (size_must_be_zero_p): Use reference
16076 * gimple-ssa-evrp-analyze.cc
16077 (evrp_range_analyzer::record_ranges_from_incoming_edge): Rename
16078 intersect to legacy_verbose_intersect.
16079 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use reference instead
16081 * tree-ssa-dom.cc (dom_jt_simplifier::simplify): Use value_range
16082 instead of value_range_equiv.
16083 * tree-vrp.cc (extract_range_from_plus_minus_expr): Use reference
16084 instead of pointer.
16085 (find_case_label_range): Same.
16086 * value-range-equiv.cc (value_range_equiv::intersect): Rename to...
16087 (value_range_equiv::legacy_verbose_intersect): ...this.
16088 (value_range_equiv::union_): Rename to...
16089 (value_range_equiv::legacy_verbose_union_): ...this.
16090 * value-range-equiv.h (class value_range_equiv): Rename union and
16091 intersect to legacy_verbose_{intersect,union}.
16092 * value-range.cc (irange::union_): Rename to...
16093 (irange::legacy_verbose_union_): ...this.
16094 (irange::intersect): Rename to...
16095 (irange::legacy_verbose_intersect): ...this.
16096 * value-range.h (irange::union_): Rename union_ to
16097 legacy_verbose_union.
16098 (irange::intersect): Rename intersect to legacy_verbose_intersect.
16099 * vr-values.cc (vr_values::update_value_range): Same.
16100 (vr_values::extract_range_for_var_from_comparison_expr): Same.
16101 (vr_values::extract_range_from_cond_expr): Rename union_ to
16102 legacy_verbose_union.
16103 (vr_values::extract_range_from_phi_node): Same.
16105 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
16107 * gimple-ssa-evrp-analyze.cc
16108 (evrp_range_analyzer::set_ssa_range_info): Use *range_info methods
16110 * gimple-ssa-sprintf.cc (try_substitute_return_value): Same.
16111 * ipa-prop.cc (ipcp_update_vr): Same.
16112 * tree-inline.cc (remap_ssa_name): Same.
16113 * tree-ssa-copy.cc (fini_copy_prop): Same.
16114 * tree-ssa-math-opts.cc (optimize_spaceship): Same.
16115 * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Same.
16116 * tree-ssa-pre.cc (insert_into_preds_of_block): Same.
16117 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Same.
16118 * tree-ssa-strlen.cc (set_strlen_range): Same.
16119 (strlen_pass::handle_builtin_string_cmp): Same.
16120 * tree-ssanames.cc (set_range_info): Make static.
16121 (duplicate_ssa_name_range_info): Make static and add a new variant
16122 calling the static.
16123 * tree-ssanames.h (set_range_info): Remove version taking wide ints.
16124 (duplicate_ssa_name_range_info): Remove version taking a
16125 range_info_def and replace with a version taking SSA names.
16126 * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Use *range_info methods
16128 (vect_do_peeling): Same.
16129 * tree-vrp.cc (vrp_asserts::remove_range_assertions): Same.
16130 * vr-values.cc (simplify_truth_ops_using_ranges): Same.
16132 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
16134 * value-range.h (irange::irange): Use set_undefined.
16136 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
16138 * gimple-range-cache.h (non_null_ref::adjust_range): Do not use
16139 irange::intersect (wide_int, wide_int).
16140 * gimple-range-fold.cc (adjust_pointer_diff_expr): Same.
16141 (adjust_imagpart_expr): Same.
16142 * value-range.h (irange::intersect (wide_int, wide_int)): Make
16145 2022-04-29 Richard Biener <rguenther@suse.de>
16147 PR tree-optimization/104322
16148 * tree-vect-loop.cc (vectorizable_reduction): Remove dead code.
16150 2022-04-29 Richard Biener <rguenther@suse.de>
16152 PR middle-end/105376
16153 * tree.cc (build_real): Special case dconst* arguments
16154 for decimal floating point types.
16156 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
16158 * doc/gcov.texi (Profiling and Test Coverage in Freestanding
16159 Environments): New section.
16161 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
16163 * doc/gcov-tool.texi: Document merge-stream subcommand.
16164 * doc/invoke.texi (fprofile-info-section): Mention merge-stream
16165 subcommand of gcov-tool.
16166 * gcov-tool.cc (gcov_profile_merge_stream): Declare.
16167 (print_merge_stream_usage_message): New.
16168 (merge_stream_usage): Likewise.
16169 (do_merge_stream): Likewise.
16170 (print_usage): Call print_merge_stream_usage_message().
16171 (main): Call do_merge_stream() to execute merge-stream subcommand.
16173 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
16175 * gcov-io.cc (gcov_file_error): New enum.
16176 (gcov_var): Use gcov_file_error enum for the error member.
16177 (gcov_open): Use GCOV_FILE_NO_ERROR.
16178 (gcov_close): Use GCOV_FILE_WRITE_ERROR.
16179 (gcov_write): Likewise.
16180 (gcov_write_unsigned): Likewise.
16181 (gcov_write_string): Likewise.
16182 (gcov_read_bytes): Set error code if EOF is reached.
16183 (gcov_read_counter): Use GCOV_FILE_COUNTER_OVERFLOW.
16185 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
16187 * gcov-io.cc (GCOV_MODE_STDIN): Define.
16188 (gcov_position): For gcov-tool, return calculated position if file is
16190 (gcov_open): For gcov-tool, use stdin if filename is NULL.
16191 (gcov_close): For gcov-tool, do not close stdin.
16192 (gcov_read_bytes): For gcov-tool, update position if file is stdin.
16193 (gcov_sync): For gcov-tool, discard input if file is stdin.
16195 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
16197 * doc/invoke.texi (fprofile-info-section): Mention
16198 __gcov_filename_to_gcfn(). Use "freestanding" to match with C11
16199 standard language. Fix minor example code issues.
16200 * gcov-io.h (GCOV_FILENAME_MAGIC): Define and document.
16202 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
16204 * gcov-io.cc (gcov_seek): Make it static.
16205 * gcov-io.h (struct gcov_summary): Do not mention gcov_seek().
16207 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
16209 * gcov-tool.cc (gcov_do_dump): Add mode parameter.
16210 (gcov_output_files): Open files for reading and writing.
16212 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
16214 * gcov-io.cc (gcov_open): Always use the mode parameter.
16215 * gcov-io.h (gcov_open): Declare it unconditionally.
16217 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
16219 * gcov-tool.cc (gcov_profile_merge): Adjust return type.
16220 (profile_merge): Allow merging of directories which contain no profile
16223 2022-04-28 David Malcolm <dmalcolm@redhat.com>
16225 * doc/invoke.texi (-fdump-analyzer-feasibility): Mention the
16228 2022-04-28 Jakub Jelinek <jakub@redhat.com>
16230 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Create a
16231 temporary only if out overlaps compare_op, not when it overlaps
16234 2022-04-28 Jakub Jelinek <jakub@redhat.com>
16237 * cgraph.cc (cgraph_node::verify_node): Don't verify
16238 semantic_interposition flag against
16239 opt_for_fn (decl, flag_semantic_interposition) for aliases in lto1.
16241 2022-04-28 Jakub Jelinek <jakub@redhat.com>
16244 * config/i386/i386.cc (ix86_gimplify_va_arg): Mark va_arg_tmp
16245 temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR
16248 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
16250 * doc/install.texi (Configuration): Remove misleading text
16251 around LE PowerPC Linux multilibs.
16253 2022-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16256 * doc/install.texi (Tools/packages necessary for building GCC)
16257 (GDC): Document libphobos requirement.
16258 (Host/target specific installation notes for GCC, *-*-solaris2*):
16259 Document libphobos and GDC specifics.
16261 2022-04-28 Richard Biener <rguenther@suse.de>
16263 PR tree-optimization/105219
16264 * tree-vect-loop.cc (vect_transform_loop): Disable
16265 special code narrowing the vectorized epilogue max
16266 iterations when peeling for alignment or gaps was in effect.
16268 2022-04-28 Xi Ruoyao <xry111@mengyan1223.wang>
16270 * config/loongarch/loongarch.cc
16271 (loongarch_flatten_aggregate_field): Ignore empty fields for
16274 2022-04-27 Lulu Cheng <chenglulu@loongson.cn>
16276 * config/loongarch/loongarch.md: Add fdiv define_expand template,
16277 then generate floating-point division and floating-point reciprocal
16280 2022-04-27 Lulu Cheng <chenglulu@loongson.cn>
16282 * config/loongarch/loongarch.md: Add '(clobber (mem:BLK (scratch)))'
16283 to PLV instruction templates.
16285 2022-04-27 Richard Biener <rguenther@suse.de>
16287 PR middle-end/104492
16288 * gimple-ssa-warn-access.cc
16289 (pass_waccess::warn_invalid_pointer): Exclude equality compare
16290 diagnostics for all kind of invalidations.
16291 (pass_waccess::check_dangling_uses): Fix post-dominator query.
16292 (pass_waccess::check_pointer_uses): Likewise.
16294 2022-04-27 Andreas Krebbel <krebbel@linux.ibm.com>
16297 * config/s390/s390-protos.h (s390_function_arg_vector): Remove
16299 * config/s390/s390.cc (s390_single_field_struct_p): New function.
16300 (s390_function_arg_vector): Invoke s390_single_field_struct_p.
16301 (s390_function_arg_float): Likewise.
16303 2022-04-27 Jakub Jelinek <jakub@redhat.com>
16305 PR sanitizer/105396
16306 * asan.cc (asan_redzone_buffer::emit_redzone_byte): Handle the case
16307 where offset is bigger than off but smaller than m_prev_offset + 32
16308 bits by pushing one or more 0 bytes. Sink the
16309 m_shadow_bytes.safe_push (value); flush_if_full (); statements from
16310 all cases to the end of the function.
16312 2022-04-27 Kewen Lin <linkw@linux.ibm.com>
16315 * config/rs6000/rs6000-builtins.def (NEG_V2DI): Move to [power8-vector]
16318 2022-04-26 Thomas Schwinge <thomas@codesourcery.com>
16320 * config/gcn/gcn.cc (gcn_print_lds_decl): Make "gang-private
16321 data-share memory exhausted" error more verbose.
16323 2022-04-26 Martin Liska <mliska@suse.cz>
16326 * lto-wrapper.cc (print_lto_docs_link): Use global_dc.
16327 (run_gcc): Parse OPT_fdiagnostics_urls_.
16328 (main): Initialize global_dc.
16330 2022-04-26 Jakub Jelinek <jakub@redhat.com>
16332 PR rtl-optimization/105314
16333 * ifcvt.cc (noce_try_store_flag_mask): Don't require that the non-zero
16334 operand is equal to if_info->x, instead use the non-zero operand
16335 as one of the operands of AND with if_info->x as target.
16337 2022-04-26 Jakub Jelinek <jakub@redhat.com>
16339 PR tree-optimization/105374
16340 * tree-ssa-reassoc.cc (eliminate_redundant_comparison): Punt if
16341 !fold_convertible_p rather than assuming fold_convert must succeed.
16343 2022-04-26 Jakub Jelinek <jakub@redhat.com>
16346 * config/i386/i386.cc (ix86_veclibabi_svml, ix86_veclibabi_acml): Pass
16347 el_mode == DFmode ? double_type_node : float_type_node instead of
16348 TREE_TYPE (type_in) as first arguments to mathfn_built_in.
16350 2022-04-25 David Malcolm <dmalcolm@redhat.com>
16353 * gimple-fold.cc (gimple_fold_builtin_memory_op): Explicitly set
16354 the location of new_stmt in all places that don't already set it,
16355 whether explicitly, or via a call to gsi_replace.
16357 2022-04-25 Paul A. Clarke <pc@us.ibm.com>
16359 * doc/extend.texi (Other Builtins): Correct reference to 'modff'.
16361 2022-04-25 Andrew MacLeod <amacleod@redhat.com>
16363 PR tree-optimization/105276
16364 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Include
16365 existing global range with calculated value.
16367 2022-04-25 Richard Biener <rguenther@suse.de>
16369 PR tree-optimization/105368
16370 * tree-ssa-math-opts.cc (powi_cost): Use absu_hwi.
16372 2022-04-25 Richard Biener <rguenther@suse.de>
16374 PR tree-optimization/100810
16375 * tree-ssa-loop-ivopts.cc (struct iv_cand): Add involves_undefs flag.
16376 (find_ssa_undef): New function.
16377 (add_candidate_1): Avoid adding derived candidates with
16378 undefined SSA names and mark the original ones.
16379 (determine_group_iv_cost_generic): Reject rewriting
16380 uses with a different IV when that involves undefined SSA names.
16382 2022-04-25 Steven G. Kargl <kargl@gcc.gnu.org>
16385 * config/freebsd.h: Define TARGET_LIBC_HAS_FUNCTION to be
16386 bsd_libc_has_function.
16387 * targhooks.cc (bsd_libc_has_function): New function.
16388 Expand the supported math functions to inclue C99 libm.
16389 * targhooks.h (bsd_libc_has_function): New Prototype.
16391 2022-04-25 Richard Biener <rguenther@suse.de>
16393 PR rtl-optimization/105231
16394 * combine.cc (distribute_notes): Assert that a REG_EH_REGION
16395 with landing pad > 0 is from i3. Put any REG_EH_REGION note
16396 on i3 or drop it if the insn can not trap.
16397 (try_combine): Ensure that we can merge REG_EH_REGION notes
16398 with non-call exceptions. Ensure we are not splitting a
16399 trapping part of an insn with non-call exceptions when there
16400 is any REG_EH_REGION note to preserve.
16402 2022-04-25 Hongyu Wang <hongyu.wang@intel.com>
16405 * config/i386/avx512fintrin.h (_mm512_scalef_round_pd):
16406 Add parentheses for parameters and djust format.
16407 (_mm512_mask_scalef_round_pd): Ditto.
16408 (_mm512_maskz_scalef_round_pd): Ditto.
16409 (_mm512_scalef_round_ps): Ditto.
16410 (_mm512_mask_scalef_round_ps): Ditto.
16411 (_mm512_maskz_scalef_round_ps): Ditto.
16412 (_mm_scalef_round_sd): Use _mm_undefined_pd.
16413 (_mm_scalef_round_ss): Use _mm_undefined_ps.
16414 (_mm_mask_scalef_round_sd): New macro.
16415 (_mm_mask_scalef_round_ss): Ditto.
16416 (_mm_maskz_scalef_round_sd): Ditto.
16417 (_mm_maskz_scalef_round_ss): Ditto.
16419 2022-04-23 Jakub Jelinek <jakub@redhat.com>
16422 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Handle
16423 op0 == cst1 ? op0 : op3 like op0 == cst1 ? cst1 : op3 for the non-cmov
16426 2022-04-22 Segher Boessenkool <segher@kernel.crashing.org>
16429 * config/rs6000/rs6000.md (pack<mode> for FMOVE128): New expander.
16430 (pack<mode> for FMOVE128): Rename and split the insn_and_split to...
16431 (pack<mode>_hard for FMOVE128): ... this...
16432 (pack<mode>_soft for FMOVE128): ... and this.
16434 2022-04-22 Paul A. Clarke <pc@us.ibm.com>
16436 * doc/extend.texi: Correct "This" to "These".
16438 2022-04-22 Jakub Jelinek <jakub@redhat.com>
16440 PR rtl-optimization/105333
16441 * rtlanal.cc (replace_rtx): Use simplify_subreg or
16442 simplify_unary_operation if CONST_SCALAR_INT_P rather than just
16445 2022-04-21 Segher Boessenkool <segher@kernel.crashing.org>
16449 * config/rs6000/rs6000.md (zero_extendqi<mode>2 for EXTQI): Disparage
16450 the "Z" alternatives in {l,st}{f,xs}iwzx.
16451 (zero_extendhi<mode>2 for EXTHI): Ditto.
16452 (zero_extendsi<mode>2 for EXTSI): Ditto.
16453 (*movsi_internal1): Ditto.
16454 (*mov<mode>_internal1 for QHI): Ditto.
16455 (movsd_hardfloat): Ditto.
16457 2022-04-21 Martin Liska <mliska@suse.cz>
16459 * configure.ac: Enable compressed debug sections for mold
16461 * configure: Regenerate.
16463 2022-04-21 Jakub Jelinek <jakub@redhat.com>
16466 * emit-rtl.cc (emit_copy_of_insn_after): Don't call mark_jump_label
16469 2022-04-20 Richard Biener <rguenther@suse.de>
16471 PR tree-optimization/104912
16472 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
16473 the cost model check to a separate BB to make sure it is
16474 checked first and not combined with other version checks.
16476 2022-04-20 Richard Biener <rguenther@suse.de>
16478 PR tree-optimization/105312
16479 * gimple-isel.cc (gimple_expand_vec_cond_expr): Query both
16480 VCOND and VCONDU for EQ and NE.
16482 2022-04-20 Jan Hubicka <hubicka@ucw.cz>
16485 * ipa-modref-tree.cc (modref_access_node::closer_pair_p): Use
16486 poly_offset_int to avoid overflow.
16487 (modref_access_node::update2): likewise.
16489 2022-04-20 Jakub Jelinek <jakub@redhat.com>
16492 * cgraph.cc (cgraph_node::create): Set node->semantic_interposition
16493 to opt_for_fn (decl, flag_semantic_interposition).
16494 * cgraphclones.cc (cgraph_node::create_clone): Copy over
16495 semantic_interposition flag.
16497 2022-04-19 Sergei Trofimovich <siarheit@google.com>
16499 PR gcov-profile/105282
16500 * value-prof.cc (stream_out_histogram_value): Allow negative counts
16501 on HIST_TYPE_INDIR_CALL.
16503 2022-04-19 Jakub Jelinek <jakub@redhat.com>
16506 * config/sparc/sparc.cc (epilogue_renumber): If ORIGINAL_REGNO,
16507 use gen_raw_REG instead of gen_rtx_REG and copy over also
16508 ORIGINAL_REGNO. Use return 0; instead of /* fallthrough */.
16510 2022-04-19 Richard Biener <rguenther@suse.de>
16512 PR tree-optimization/104010
16513 PR tree-optimization/103941
16514 * tree-vect-slp.cc (vect_bb_slp_scalar_cost): When
16515 we run into stmts in patterns continue walking those
16516 for uses outside of the vectorized region instead of
16517 marking the lane live.
16519 2022-04-18 Hans-Peter Nilsson <hp@axis.com>
16521 * doc/install.texi <CRIS>: Remove references to removed websites and
16522 adjust for cris-*-elf being the only remaining toolchain.
16524 2022-04-18 Hans-Peter Nilsson <hp@axis.com>
16526 * doc/invoke.texi <CRIS>: Remove references to options for removed
16527 subtarget cris-axis-linux-gnu and tweak wording accordingly.
16529 2022-04-16 Gerald Pfeifer <gerald@pfeifer.com>
16531 * doc/install.texi (Specific): Adjust mingw-w64 download link.
16533 2022-04-15 Hongyu Wang <hongyu.wang@intel.com>
16535 * config/i386/smmintrin.h: Correct target pragma from sse4.1
16536 and sse4.2 to crc32 for crc32 intrinsics.
16538 2022-04-14 Indu Bhagat <indu.bhagat@oracle.com>
16541 * ctfc.cc (ctf_dvd_ignore_insert): New function.
16542 (ctf_dvd_ignore_lookup): Likewise.
16543 (ctf_add_variable): Keep track of non-defining decl DIEs.
16544 (new_ctf_container): Initialize the new hash-table.
16545 (ctfc_delete_container): Empty hash-table.
16546 * ctfc.h (struct ctf_container): Add new hash-table.
16547 (ctf_dvd_ignore_lookup): New declaration.
16548 (ctf_add_variable): Add additional argument.
16549 * ctfout.cc (ctf_dvd_preprocess_cb): Skip adding CTF variable
16550 record for non-defining decl for which a defining decl exists
16552 (ctf_preprocess): Defer updating the number of global objts
16554 (output_ctf_header): Use ctfc_vars_list_count as some CTF
16555 variables may not make it to the final output.
16556 (output_ctf_vars): Likewise.
16557 * dwarf2ctf.cc (gen_ctf_variable): Skip generating CTF variable
16558 if this is known to be a non-defining decl DIE.
16560 2022-04-14 Indu Bhagat <indu.bhagat@oracle.com>
16562 * ctfc.h (struct ctf_container): Introduce a new member.
16563 * ctfout.cc (ctf_list_add_ctf_vars): Use it instead of static
16566 2022-04-14 Jakub Jelinek <jakub@redhat.com>
16569 * simplify-rtx.cc (simplify_const_binary_operation): For shifts
16570 or rotates by VOIDmode constant integer shift count use word_mode
16571 for the operand if int_mode is narrower than word.
16573 2022-04-14 Robin Dapp <rdapp@linux.ibm.com>
16575 * config/s390/s390.cc (s390_get_sched_attrmask): Add z16.
16576 (s390_get_unit_mask): Likewise.
16577 (s390_is_fpd): Likewise.
16578 (s390_is_fxd): Likewise.
16579 * config/s390/s390.h (s390_tune_attr): Set max tune level to z16.
16580 * config/s390/s390.md (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15):
16582 (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15,z16):
16584 * config/s390/3931.md: New file.
16586 2022-04-13 Richard Sandiford <richard.sandiford@arm.com>
16588 PR tree-optimization/105254
16589 * config/aarch64/aarch64.cc
16590 (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
16591 loop_vec_info as argument. Restrict the unroll factor to values
16592 that divide the VF.
16593 (aarch64_vector_costs::finish_cost): Update call accordingly.
16595 2022-04-13 Richard Biener <rguenther@suse.de>
16597 PR tree-optimization/105263
16598 * tree-ssa-reassoc.cc (try_special_add_to_ops): Do not consume
16599 negates in multiplication chains with DFP.
16601 2022-04-13 Jakub Jelinek <jakub@redhat.com>
16603 PR middle-end/105253
16604 * tree.cc (tree_builtin_call_types_compatible_p): If PROP_gimple,
16605 use useless_type_conversion_p checks instead of TYPE_MAIN_VARIANT
16606 comparisons or tree_nop_conversion_p checks.
16608 2022-04-13 Hongyu Wang <hongyu.wang@intel.com>
16611 * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop):
16612 Add missing set to target_val at pause label.
16614 2022-04-13 Jakub Jelinek <jakub@redhat.com>
16617 * attribs.cc (decl_attributes): Don't set
16618 DECL_FUNCTION_SPECIFIC_TARGET if target_option_default_node is
16621 2022-04-13 Richard Biener <rguenther@suse.de>
16623 PR tree-optimization/105250
16624 * fold-const.cc (fold_convertible_p): Revert
16625 r12-7979-geaaf77dd85c333, instead check for size equality
16626 of the vector types involved.
16628 2022-04-13 Richard Biener <rguenther@suse.de>
16631 2022-04-13 Richard Biener <rguenther@suse.de>
16633 PR tree-optimization/104912
16634 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
16635 the cost model check to a separate BB to make sure it is
16636 checked first and not combined with other version checks.
16638 2022-04-13 Richard Biener <rguenther@suse.de>
16640 PR tree-optimization/104912
16641 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
16642 the cost model check to a separate BB to make sure it is
16643 checked first and not combined with other version checks.
16645 2022-04-13 Jakub Jelinek <jakub@redhat.com>
16647 * tree-scalar-evolution.cc (expression_expensive_p): Fix a comment typo.
16649 2022-04-12 Antoni Boucher <bouanto@zoho.com>
16652 * reginfo.cc: New functions (clear_global_regs_cache,
16653 reginfo_cc_finalize) to avoid an issue where compiling the same
16654 code multiple times gives an error about assigning the same
16655 register to 2 global variables.
16656 * rtl.h: New function (reginfo_cc_finalize).
16657 * toplev.cc: Call it.
16659 2022-04-12 Antoni Boucher <bouanto@zoho.com>
16662 * toplev.cc: Call the new function tree_cc_finalize in
16664 * tree.cc: New functions (clear_nonstandard_integer_type_cache
16665 and tree_cc_finalize) to clear the cache of non-standard integer
16666 types to avoid having issues with some optimizations of
16667 bitcast where the SSA_NAME will have a size of a cached
16668 integer type that should have been invalidated, causing a
16669 comparison of integer constant to fail.
16670 * tree.h: New function (tree_cc_finalize).
16672 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
16675 * config/nvptx/nvptx.h (ASM_SPEC): Don't set.
16676 * config/nvptx/nvptx.opt (misa): Adjust comment.
16678 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
16681 2022-03-03 Tom de Vries <tdevries@suse.de>
16683 * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
16685 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
16688 2022-03-31 Tom de Vries <tdevries@suse.de>
16690 * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
16692 2022-04-12 Richard Biener <rguenther@suse.de>
16695 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Do not
16696 include local escaped memory as obviously necessary stores.
16698 2022-04-12 Richard Biener <rguenther@suse.de>
16700 PR tree-optimization/105235
16701 * tree-ssa-math-opts.cc (execute_cse_conv_1): Clean EH and
16702 return whether the CFG changed.
16703 (execute_cse_sincos_1): Adjust.
16705 2022-04-12 Przemyslaw Wirkus <Przemyslaw.Wirkus@arm.com>
16708 * config/arm/t-aprofile (MULTI_ARCH_OPTS_A): Remove Armv9-a options.
16709 (MULTI_ARCH_DIRS_A): Remove Armv9-a diretories.
16710 (MULTILIB_REQUIRED): Don't require Armv9-a libraries.
16711 (MULTILIB_MATCHES): Treat Armv9-a as equivalent to Armv8-a.
16712 (MULTILIB_REUSE): Remove remap rules for Armv9-a.
16713 * config/arm/t-multilib (v9_a_nosimd_variants): Delete.
16714 (MULTILIB_MATCHES): Remove mappings for v9_a_nosimd_variants.
16716 2022-04-12 Richard Biener <rguenther@suse.de>
16718 PR tree-optimization/105232
16719 * tree.cc (component_ref_size): Bail out for too large
16720 or non-constant sizes.
16722 2022-04-12 Richard Biener <rguenther@suse.de>
16724 PR tree-optimization/105226
16725 * tree-vect-loop-manip.cc (vect_loop_versioning): Verify
16726 we can split the exit of an outer loop we choose to version.
16728 2022-04-12 Jakub Jelinek <jakub@redhat.com>
16730 * config/i386/i386-expand.cc (ix86_emit_i387_sinh, ix86_emit_i387_cosh,
16731 ix86_emit_i387_tanh, ix86_emit_i387_asinh, ix86_emit_i387_acosh,
16732 ix86_emit_i387_atanh, ix86_emit_i387_log1p, ix86_emit_i387_round,
16733 ix86_emit_swdivsf, ix86_emit_swsqrtsf,
16734 ix86_expand_atomic_fetch_op_loop, ix86_expand_cmpxchg_loop):
16736 * config/i386/i386.cc (warn_once_call_ms2sysv_xlogues): Likewise.
16738 2022-04-12 Jakub Jelinek <jakub@redhat.com>
16741 * config/i386/i386-expand.cc (ix86_emit_i387_log1p): Call
16742 do_pending_stack_adjust.
16744 2022-04-12 Jakub Jelinek <jakub@redhat.com>
16746 PR rtl-optimization/105211
16747 * builtins.cc (expand_builtin_int_roundingfn_2): If mathfn_built_in_1
16748 fails for TREE_TYPE (arg), retry it with
16749 TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl))) and if even that
16750 fails, emit call normally.
16752 2022-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
16754 * common/config/s390/s390-common.cc: Rename PF_ARCH14 to PF_Z16.
16755 * config.gcc: Add z16 as march/mtune switch.
16756 * config/s390/driver-native.cc (s390_host_detect_local_cpu):
16757 Recognize z16 with -march=native.
16758 * config/s390/s390-opts.h (enum processor_type): Rename
16759 PROCESSOR_ARCH14 to PROCESSOR_3931_Z16.
16760 * config/s390/s390.cc (PROCESSOR_ARCH14): Rename to ...
16761 (PROCESSOR_3931_Z16): ... throughout the file.
16762 (s390_processor processor_table): Add z16 as cpu string.
16763 * config/s390/s390.h (enum processor_flags): Rename PF_ARCH14 to
16765 (TARGET_CPU_ARCH14): Rename to ...
16766 (TARGET_CPU_Z16): ... this.
16767 (TARGET_CPU_ARCH14_P): Rename to ...
16768 (TARGET_CPU_Z16_P): ... this.
16769 (TARGET_ARCH14): Rename to ...
16770 (TARGET_Z16): ... this.
16771 (TARGET_ARCH14_P): Rename to ...
16772 (TARGET_Z16_P): ... this.
16773 * config/s390/s390.md (cpu_facility): Rename arch14 to z16 and
16774 check TARGET_Z16 instead of TARGET_ARCH14.
16775 * config/s390/s390.opt: Add z16 to processor_type.
16776 * doc/invoke.texi: Document z16 and arch14.
16778 2022-04-12 chenglulu <chenglulu@loongson.cn>
16780 * config/loongarch/loongarch.cc: Fix bug for
16781 tmpdir-g++.dg-struct-layout-1/t033.
16783 2022-04-11 Peter Bergner <bergner@linux.ibm.com>
16786 * config/rs6000/rs6000.cc (rs6000_sibcall_aix): Handle pcrel sibcalls
16787 to longcall functions.
16789 2022-04-11 Jason Merrill <jason@redhat.com>
16791 * ipa-free-lang-data.cc (free_lang_data_in_decl): Fix typos.
16793 2022-04-11 Segher Boessenkool <segher@kernel.crashing.org>
16797 * config/rs6000/rs6000.md (unpack<mode>_nodm): Add m,r,i alternative.
16799 2022-04-11 Jakub Jelinek <jakub@redhat.com>
16801 PR tree-optimization/105218
16802 * tree-ssa-phiopt.cc (value_replacement): If middle_bb has
16803 more than one predecessor or phi's bb more than 2 predecessors,
16804 reset phi result uses instead of adding a debug temp.
16806 2022-04-11 Kito Cheng <kito.cheng@sifive.com>
16809 * config.gcc: Pass -misa-spec to arch-canonicalize and
16810 multilib-generator.
16811 * config/riscv/arch-canonicalize: Adding -misa-spec option.
16812 (SUPPORTED_ISA_SPEC): New.
16813 (arch_canonicalize): New argument `isa_spec`.
16814 Handle multiple ISA spec versions.
16815 * config/riscv/multilib-generator: Adding -misa-spec option.
16817 2022-04-11 Kito Cheng <kito.cheng@sifive.com>
16819 * config/riscv/arch-canonicalize: Add TODO item.
16820 (IMPLIED_EXT): Sync.
16821 (arch_canonicalize): Checking until no change.
16823 2022-04-11 Tamar Christina <tamar.christina@arm.com>
16826 * tree-vect-stmts.cc (vectorizable_condition): Prevent cond swap when
16829 2022-04-11 Jason Merrill <jason@redhat.com>
16832 * pointer-query.cc (compute_objsize_r) [POINTER_PLUS_EXPR]: Require
16835 2022-04-11 Jakub Jelinek <jakub@redhat.com>
16837 PR tree-optimization/104639
16838 * tree-ssa-phiopt.cc: Include tree-ssa-propagate.h.
16839 (value_replacement): Optimize (x != cst1 ? x : cst2) != cst3
16842 2022-04-11 Jeff Law <jeffreyalaw@gmail.com>
16844 * config/bfin/bfin.md (rol_one): Fix pattern to indicate the
16845 sign bit of the source ends up in CC.
16847 2022-04-09 Jan Hubicka <hubicka@ucw.cz>
16850 * cgraphunit.cc (cgraph_node::analyze): update semantic_interposition
16853 2022-04-09 Jan Hubicka <hubicka@ucw.cz>
16855 * ipa-modref.cc (ipa_merge_modref_summary_after_inlining): Propagate
16856 nondeterministic and side_effects flags.
16858 2022-04-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
16861 * config.gcc: Shift ext_mask by TARGET_CPU_NBITS.
16862 * config/aarch64/aarch64.h (TARGET_CPU_NBITS): New macro.
16863 (TARGET_CPU_MASK): Likewise.
16864 (TARGET_CPU_DEFAULT): Use TARGET_CPU_NBITS.
16865 * config/aarch64/aarch64.cc (aarch64_get_tune_cpu): Use TARGET_CPU_MASK.
16866 (aarch64_get_arch): Likewise.
16867 (aarch64_override_options): Use TARGET_CPU_NBITS.
16869 2022-04-08 Richard Biener <rguenther@suse.de>
16871 PR tree-optimization/105198
16872 * tree-predcom.cc (find_looparound_phi): Check whether
16873 the found memory location of the entry value is clobbered
16874 inbetween the value we want to use and loop entry.
16876 2022-04-08 Jakub Jelinek <jakub@redhat.com>
16878 PR tree-optimization/105189
16879 * fold-const.cc (make_range_step): Fix up handling of
16880 (unsigned) x +[low, -] ranges for signed x if low fits into
16883 2022-04-08 Richard Biener <rguenther@suse.de>
16885 PR tree-optimization/105175
16886 * tree-vect-stmts.cc (vectorizable_operation): Suppress
16887 -Wvector-operation-performance if using emulated vectors.
16888 * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
16889 -Wvector-operation-performance when suppressed.
16890 (expand_vector_parallel): Likewise.
16891 (expand_vector_comparison): Likewise.
16892 (expand_vector_condition): Likewise.
16893 (lower_vec_perm): Likewise.
16894 (expand_vector_conversion): Likewise.
16896 2022-04-07 Tamar Christina <tamar.christina@arm.com>
16899 * config/aarch64/aarch64-builtins.cc (handle_arm_acle_h): New.
16900 (aarch64_general_init_builtins): Move LS64 code.
16901 * config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64): Support
16903 * config/aarch64/aarch64-protos.h (handle_arm_acle_h): New.
16904 * config/aarch64/arm_acle.h: Add pragma GCC aarch64 "arm_acle.h".
16906 2022-04-07 Richard Biener <rguenther@suse.de>
16907 Jan Hubicka <hubicka@ucw.cz>
16910 * tree-ssa-alias.h (ptr_deref_may_alias_global_p,
16911 ref_may_alias_global_p, ref_may_alias_global_p,
16912 stmt_may_clobber_global_p, pt_solution_includes_global): Add
16913 bool parameters indicating whether escaped locals should be
16915 * tree-ssa-structalias.cc (pt_solution_includes_global):
16916 When the new escaped_nonlocal_p flag is true also consider
16917 pt->vars_contains_escaped.
16918 * tree-ssa-alias.cc (ptr_deref_may_alias_global_p):
16919 Pass down new escaped_nonlocal_p flag.
16920 (ref_may_alias_global_p): Likewise.
16921 (stmt_may_clobber_global_p): Likewise.
16922 (ref_may_alias_global_p_1): Likewise. For decls also
16923 query the escaped solution if true.
16924 (ref_may_access_global_memory_p): Remove.
16925 (modref_may_conflict): Use ref_may_alias_global_p with
16926 escaped locals considered global.
16927 (ref_maybe_used_by_stmt_p): Adjust.
16928 * ipa-fnsummary.cc (points_to_local_or_readonly_memory_p):
16930 * tree-ssa-dse.cc (dse_classify_store): Likewise.
16931 * trans-mem.cc (thread_private_new_memory): Likewise, but
16932 consider escaped locals global.
16933 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Likewise.
16935 2022-04-07 Richard Biener <rguenther@suse.de>
16937 PR tree-optimization/105185
16938 * tree-ssa-sccvn.cc (visit_reference_op_call): Simplify
16939 modref query again.
16941 2022-04-07 Tamar Christina <tamar.christina@arm.com>
16944 * config/aarch64/aarch64-simd.md
16945 (aarch64_reduc_plus_internal<mode>): Fix RTL and rename to...
16946 (reduc_plus_scal_<mode>): ... This.
16947 (reduc_plus_scal_v4sf): Moved.
16948 (aarch64_reduc_plus_internalv2si): Fix RTL and rename to...
16949 (reduc_plus_scal_v2si): ... This.
16951 2022-04-07 Jakub Jelinek <jakub@redhat.com>
16953 PR tree-optimization/102586
16954 * langhooks.h (struct lang_hooks_for_types): Add classtype_as_base
16956 * langhooks-def.h (LANG_HOOKS_CLASSTYPE_AS_BASE): Define.
16957 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
16958 * gimple-fold.cc (clear_padding_type): Use ftype instead of
16959 TREE_TYPE (field) some more. For artificial FIELD_DECLs without
16960 name try the lang_hooks.types.classtype_as_base langhook and
16961 if it returns non-NULL, use that instead of ftype for recursive call.
16963 2022-04-07 Jakub Jelinek <jakub@redhat.com>
16965 PR tree-optimization/105150
16966 * tree.cc (tree_builtin_call_types_compatible_p): New function.
16967 (get_call_combined_fn): Use it.
16969 2022-04-07 Richard Biener <rguenther@suse.de>
16971 PR middle-end/105165
16972 * tree-complex.cc (expand_complex_asm): Sorry for asm goto
16975 2022-04-07 liuhongt <hongtao.liu@intel.com>
16977 * config/i386/sse.md (<sse2_avx2>_andnot<mode>3_mask):
16979 (<sse>_andnot<mode>3<mask_name>): Disable V*HFmode patterns
16981 (<code><mode>3<mask_name>): Ditto.
16982 (*<code><mode>3<mask_name>): Ditto.
16983 (VFB_128_256): Adjust condition of V8HF/V16HFmode according to
16988 2022-04-06 Jakub Jelinek <jakub@redhat.com>
16990 PR rtl-optimization/104985
16991 * combine.cc (struct undo): Add where.regno member.
16992 (do_SUBST_MODE): Rename to ...
16993 (subst_mode): ... this. Change first argument from rtx * into int,
16994 operate on regno_reg_rtx[regno] and save regno into where.regno.
16995 (SUBST_MODE): Remove.
16996 (try_combine): Use subst_mode instead of SUBST_MODE, change first
16997 argument from regno_reg_rtx[whatever] to whatever. For UNDO_MODE, use
16998 regno_reg_rtx[undo->where.regno] instead of *undo->where.r.
16999 (undo_to_marker): For UNDO_MODE, use regno_reg_rtx[undo->where.regno]
17000 instead of *undo->where.r.
17001 (simplify_set): Use subst_mode instead of SUBST_MODE, change first
17002 argument from regno_reg_rtx[whatever] to whatever.
17004 2022-04-06 Jakub Jelinek <jakub@redhat.com>
17007 * config/sh/sh.opt (mdiv=): Add Save.
17009 2022-04-06 Martin Liska <mliska@suse.cz>
17012 * common.opt: Document properly based on what it does.
17013 * gcc.cc (display_help): Unify with what we have in common.opt.
17014 * opts.cc (common_handle_option): Do not print undocumented
17017 2022-04-06 Xi Ruoyao <xry111@mengyan1223.wang>
17019 * config/mips/mips.cc (mips_fpr_return_fields): Ignore
17020 cxx17_empty_base_field_p fields and set an indicator.
17021 (mips_return_in_msb): Adjust for mips_fpr_return_fields change.
17022 (mips_function_value_1): Inform psABI change about C++17 empty
17025 2022-04-06 Jakub Jelinek <jakub@redhat.com>
17027 PR tree-optimization/105150
17028 * gimple.cc (gimple_builtin_call_types_compatible_p): Use
17029 builtin_decl_explicit here...
17030 (gimple_call_builtin_p, gimple_call_combined_fn): ... rather than
17033 2022-04-06 Richard Biener <rguenther@suse.de>
17035 PR tree-optimization/105173
17036 * tree-ssa-reassoc.cc (find_insert_point): Get extra
17037 insert_before output argument and compute it.
17038 (insert_stmt_before_use): Adjust.
17039 (rewrite_expr_tree): Likewise.
17041 2022-04-06 Richard Biener <rguenther@suse.de>
17044 * ipa-modref-tree.cc (modref_access_node::get_ao_ref ): Bail
17045 out for non-pointer arguments.
17047 2022-04-06 Richard Biener <rguenther@suse.de>
17049 PR tree-optimization/105163
17050 * tree-ssa-reassoc.cc (repropagate_negates): Avoid propagating
17053 2022-04-06 Jakub Jelinek <jakub@redhat.com>
17055 PR tree-optimization/105150
17056 * gimple.cc (gimple_call_builtin_p, gimple_call_combined_fn):
17057 For BUILT_IN_NORMAL calls, call gimple_builtin_call_types_compatible_p
17058 preferrably on builtin_decl_explicit decl rather than fndecl.
17059 * tree-ssa-strlen.cc (valid_builtin_call): Don't call
17060 gimple_builtin_call_types_compatible_p here.
17062 2022-04-06 Richard Sandiford <richard.sandiford@arm.com>
17064 PR tree-optimization/103761
17065 * tree-vect-stmts.cc (check_load_store_for_partial_vectors): Replace
17066 the ncopies parameter with an slp_node parameter. Calculate the
17067 number of vectors based on it and vectype. Rename lambda to
17068 group_memory_nvectors.
17069 (vectorizable_store, vectorizable_load): Update calls accordingly.
17071 2022-04-06 Martin Liska <mliska@suse.cz>
17073 * doc/invoke.texi: Document it.
17075 2022-04-06 Richard Biener <rguenther@suse.de>
17077 PR tree-optimization/105148
17078 * tree-ssa-loop-ivopts.cc (idx_record_use): Walk raw operands
17079 2 and 3 of ARRAY_REFs.
17081 2022-04-06 Roger Sayle <roger@nextmovesoftware.com>
17083 * config/i386/sse.md (ANDNOT_MODE): New mode iterator for TF and V1TI.
17084 (*andnottf3): Replace with...
17085 (*andnot<mode>3): New define_insn using ANDNOT_MODE.
17087 2022-04-06 Richard Biener <rguenther@suse.de>
17089 PR tree-optimization/105142
17090 * gimple-fold.h (maybe_fold_and_comparisons): Add defaulted
17091 basic-block parameter.
17092 (maybe_fold_or_comparisons): Likewise.
17093 * gimple-fold.cc (follow_outer_ssa_edges): New.
17094 (maybe_fold_comparisons_from_match_pd): Use follow_outer_ssa_edges
17095 when an outer condition basic-block is specified.
17096 (and_comparisons_1, and_var_with_comparison,
17097 and_var_with_comparison_1, or_comparisons_1,
17098 or_var_with_comparison, or_var_with_comparison_1): Receive and pass
17099 down the outer condition basic-block.
17100 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Pass down the
17101 basic-block of the outer condition.
17103 2022-04-06 Kewen Lin <linkw@linux.ibm.com>
17106 * config/rs6000/rs6000.cc (rs6000_maybe_emit_maxc_minc): Support more
17107 comparison codes UNLT/UNLE/UNGT/UNGE.
17109 2022-04-05 David Malcolm <dmalcolm@redhat.com>
17111 * doc/extend.texi (Common Function Attributes): Document that
17112 'access' does not imply 'nonnull'.
17114 2022-04-05 Uroš Bizjak <ubizjak@gmail.com>
17117 * config/i386/mmx.md (*movv2qi_internal):
17118 Change insn mode of alternative 5 to HF for TARGET_AVX512FP16.
17120 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
17122 * config/aarch64/aarch64.md (aarch64_cpymemdi): Turn into a
17123 define_expand and turn operands 0 and 1 from REGs to MEMs.
17124 (*aarch64_cpymemdi): New pattern.
17125 (aarch64_setmemdi): Turn into a define_expand and turn operand 0
17126 from a REG to a MEM.
17127 (*aarch64_setmemdi): New pattern.
17128 * config/aarch64/aarch64.cc (aarch64_expand_cpymem_mops): Use
17129 copy_to_mode_reg on all three registers. Replace the original
17130 MEM addresses rather than creating wild reads and writes.
17131 (aarch64_expand_setmem_mops): Likewise for the size and for the
17132 destination memory and address.
17134 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
17137 * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): New class.
17138 * config/aarch64/aarch64-sve-builtins.h (sve_switcher): Inherit
17139 from aarch64_simd_switcher.
17140 * config/aarch64/aarch64-builtins.cc (aarch64_simd_tuple_modes):
17142 (aarch64_lookup_simd_builtin_type): Use it instead of TYPE_MODE.
17143 (register_tuple_type): Add more asserts. Expect the alignment
17144 of the structure to be subject to flag_pack_struct and
17145 maximum_field_alignment. Set aarch64_simd_tuple_modes.
17146 (aarch64_simd_switcher::aarch64_simd_switcher): New function.
17147 (aarch64_simd_switcher::~aarch64_simd_switcher): Likewise.
17148 (handle_arm_neon_h): Hold an aarch64_simd_switcher throughout.
17149 (aarch64_general_init_builtins): Hold an aarch64_simd_switcher
17150 while calling aarch64_init_simd_builtins.
17151 * config/aarch64/aarch64-sve-builtins.cc (sve_switcher::sve_switcher)
17152 (sve_switcher::~sve_switcher): Remove code now performed by
17153 aarch64_simd_switcher.
17155 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
17158 * config/aarch64/aarch64-sve-builtins.cc
17159 (function_resolver::infer_vector_or_tuple_type): Use error_n
17160 for "%d vectors" messages.
17162 2022-04-05 Chung-Lin Tang <cltang@codesourcery.com>
17164 * omp-low.cc (lower_omp_target): Use outer context looked-up 'var' as
17165 argument to lang_hooks.decls.omp_array_data, instead of 'ovar' from
17168 2022-04-05 Richard Biener <rguenther@suse.de>
17171 * passes.def (pass_walloca): Move early instance into
17172 pass_build_ssa_passes to make SSA form available.
17174 2022-04-05 liuhongt <hongtao.liu@intel.com>
17177 * config/i386/i386.cc (ix86_split_stlf_stall_load): New
17179 (ix86_reorg): Call ix86_split_stlf_stall_load.
17180 * config/i386/i386.opt (-param=x86-stlf-window-ninsns=): New
17183 2022-04-05 Alexandre Oliva <oliva@adacore.com>
17185 * targhooks.cc (default_zero_call_used_regs): Attempt to group
17186 regs that the target refuses to use in their natural modes.
17187 (zcur_select_mode_rtx): New.
17188 * regs.h (struct target_regs): Add x_hard_regno_max_nregs.
17189 (hard_regno_max_nregs): Define.
17190 * reginfo.cc (init_reg_modes_target): Set hard_regno_max_nregs.
17192 2022-04-04 Alex Coplan <alex.coplan@arm.com>
17194 * doc/match-and-simplify.texi: Fix typos.
17196 2022-04-04 Jakub Jelinek <jakub@redhat.com>
17199 * config/aarch64/t-aarch64 (s-aarch64-tune-md): Do move-if-change
17200 only if configured with --enable-maintainer-mode, otherwise compare
17201 tmp-aarch64-tune.md with $(srcdir)/config/aarch64/aarch64-tune.md and
17202 if they differ, emit a message and fail.
17204 2022-04-04 Jakub Jelinek <jakub@redhat.com>
17207 * config/aarch64/t-aarch64 (s-mddeps): Depend on s-aarch64-tune-md.
17208 * config/aarch64/aarch64-tune.md: Regenerated.
17210 2022-04-04 Richard Biener <rguenther@suse.de>
17212 PR tree-optimization/105132
17213 * tree-vect-stmts.cc (vectorizable_operation): Check that
17214 the input vectors have the same number of elements.
17216 2022-04-04 Richard Biener <rguenther@suse.de>
17218 PR middle-end/105140
17219 * fold-const.cc (fold_convertible_p): Allow a TYPE_P arg.
17221 2022-04-03 Jeff Law <jeffreyalaw@gmail.com>
17224 * config/iq2000/iq2000.md (bbi): New attribute, default to no.
17225 (delay slot descripts): Use different delay slot description when
17226 the insn as the "bbi" attribute.
17227 (bbi, bbin patterns): Set the bbi attribute to yes.
17229 2022-04-03 Jakub Jelinek <jakub@redhat.com>
17232 * config/i386/i386-expand.cc (ix86_expand_vector_init_general): Avoid
17233 using word as target for expand_simple_binop when doing ASHIFT and
17236 2022-04-02 Xi Ruoyao <xry111@mengyan1223.wang>
17238 * config/mips/mips.cc (mips_function_arg): Check if DECL_SIZE is
17239 NULL before dereferencing it.
17241 2022-04-01 Qing Zhao <qing.zhao@oracle.com>
17243 * config/i386/i386.cc (zero_all_st_registers): Return the value of
17245 (ix86_zero_call_used_regs): Update zeroed_hardregs set according to
17246 the return value of zero_all_st_registers.
17247 * doc/tm.texi: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
17248 * function.cc (gen_call_used_regs_seq): Add an assertion.
17249 * target.def: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
17251 2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang>
17254 * config/mips/mips.cc (mips_function_arg): Ignore zero-width
17255 fields, and inform if it causes a psABI change.
17257 2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang>
17260 * config/mips/mips.cc (mips_fpr_return_fields): Detect C++
17261 zero-width bit-fields and set up an indicator.
17262 (mips_return_in_msb): Adapt for mips_fpr_return_fields change.
17263 (mips_function_value_1): Diagnose when the presense of a C++
17264 zero-width bit-field changes function returning in GCC 12.
17266 2022-04-01 Jakub Jelinek <jakub@redhat.com>
17268 PR tree-optimization/104645
17269 * tree-ssa-phiopt.cc (value_replacement): If assign has
17270 CONVERT_EXPR_CODE_P rhs_code, treat it like a preparation
17271 statement with constant evaluation.
17273 2022-04-01 YunQiang Su <yunqiang.su@cipunited.com>
17275 * config/mips/mips.cc (mips_expand_prologue):
17276 IPL is 8bit for MCU ASE.
17278 2022-03-31 Bill Schmidt <wschmidt@linux.ibm.com>
17281 * config/rs6000/rs6000-builtins.def (MFFSL): Mark nosoft.
17282 (MTFSB0): Likewise.
17283 (MTFSB1): Likewise.
17284 (SET_FPSCR_RN): Likewise.
17285 (SET_FPSCR_DRN): Mark nosoft and no32bit.
17287 2022-03-31 Thomas Schwinge <thomas@codesourcery.com>
17289 * doc/options.texi (Option file format): Clarifications around
17290 option definition records' help texts.
17292 2022-03-31 Thomas Schwinge <thomas@codesourcery.com>
17294 * optc-gen.awk <END>: Fix "Multiple different help strings" error
17297 2022-03-31 Andre Vieira <andre.simoesdiasvieira@arm.com>
17299 * config/aarch64/aarch64.cc (aarch64_vector_costs): Define
17300 determine_suggested_unroll_factor and m_has_avg.
17301 (determine_suggested_unroll_factor): New function.
17302 (aarch64_vector_costs::add_stmt_cost): Check for a qualifying pattern
17303 to set m_nosve_pattern.
17304 (aarch64_vector_costs::finish_costs): Use
17305 determine_suggested_unroll_factor.
17306 * config/aarch64/aarch64.opt (aarch64-vect-unroll-limit): New.
17307 * doc/invoke.texi: (aarch64-vect-unroll-limit): Document new option.
17309 2022-03-31 Martin Jambor <mjambor@suse.cz>
17312 * ipa-prop.h (ipa_ancestor_jf_data): New flag keep_null;
17313 (ipa_get_jf_ancestor_keep_null): New function.
17314 * ipa-prop.cc (ipa_set_ancestor_jf): Initialize keep_null field of the
17316 (compute_complex_assign_jump_func): Pass false to keep_null
17317 parameter of ipa_set_ancestor_jf.
17318 (compute_complex_ancestor_jump_func): Pass true to keep_null
17319 parameter of ipa_set_ancestor_jf.
17320 (update_jump_functions_after_inlining): Carry over keep_null from the
17321 original ancestor jump-function or merge them.
17322 (ipa_write_jump_function): Stream keep_null flag.
17323 (ipa_read_jump_function): Likewise.
17324 (ipa_print_node_jump_functions_for_edge): Print the new flag.
17325 * ipa-cp.cc (class ipcp_bits_lattice): Make various getters const. New
17326 member function known_nonzero_p.
17327 (ipcp_bits_lattice::known_nonzero_p): New.
17328 (ipcp_bits_lattice::meet_with_1): New parameter drop_all_ones,
17330 (ipcp_bits_lattice::meet_with): Likewise.
17331 (propagate_bits_across_jump_function): Simplify. Pass true in
17332 drop_all_ones when it is necessary.
17333 (propagate_aggs_across_jump_function): Take care of keep_null
17335 (ipa_get_jf_ancestor_result): Propagate NULL accross keep_null
17338 2022-03-31 Martin Jambor <mjambor@suse.cz>
17341 * ipa-cp.cc (decide_whether_version_node): Skip scalar values
17342 which do not fit the known value_range.
17344 2022-03-31 Martin Jambor <mjambor@suse.cz>
17347 * ipa-prop.cc (propagate_controlled_uses): Add a LOAD reference
17348 always when an ADDR_EXPR constant is known to reach a load because
17349 of inlining, not just when removing an ADDR reference.
17351 2022-03-31 Richard Biener <rguenther@suse.de>
17353 PR tree-optimization/105109
17354 * tree-ssa.cc (execute_update_addresses_taken): Suppress
17355 diagnostics on the load of the other complex component.
17357 2022-03-31 Tom de Vries <tdevries@suse.de>
17359 * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
17361 2022-03-31 Richard Biener <rguenther@suse.de>
17363 PR rtl-optimization/105091
17364 * gimple-expr.cc (mark_addressable): Handle TARGET_MEM_REF
17367 2022-03-31 Richard Biener <rguenther@suse.de>
17370 2021-09-13 Richard Earnshaw <rearnsha@arm.com>
17373 * gimple-fold.c (gimple_fold_builtin_memory_op): Allow folding
17374 memcpy if the size is not more than MOVE_MAX * MOVE_RATIO.
17376 2022-03-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
17378 * gcov-io.cc (gcov_read_string): Reword documentation comment.
17380 2022-03-30 Bill Schmidt <wschmidt@linux.ibm.com>
17382 * config/rs6000/rs6000-builtins.def (NEG_V16QI): Move to [altivec]
17384 (NEG_V4SF): Likewise.
17385 (NEG_V4SI): Likewise.
17386 (NEG_V8HI): Likewise.
17387 (NEG_V2DF): Move to [vsx] stanza.
17388 (NEG_V2DI): Likewise.
17390 2022-03-30 Vladimir N. Makarov <vmakarov@redhat.com>
17392 PR middle-end/105032
17393 * lra-assigns.cc (find_reload_regno_insns): Modify loop condition.
17395 2022-03-30 Tom de Vries <tdevries@suse.de>
17396 Tobias Burnus <tobias@codesourcery.com>
17398 * doc/invoke.texi (march): Document __PTX_SM__.
17399 (mptx): Document __PTX_ISA_VERSION_MAJOR__ and
17400 __PTX_ISA_VERSION_MINOR__.
17402 2022-03-30 Jakub Jelinek <jakub@redhat.com>
17404 PR sanitizer/105093
17405 * ubsan.cc (instrument_object_size): If t is equal to inner and
17406 is a decl other than global var, punt. When emitting call to
17407 UBSAN_OBJECT_SIZE ifn, make sure base is addressable.
17409 2022-03-30 Jakub Jelinek <jakub@redhat.com>
17411 PR tree-optimization/105094
17412 * gimple-ssa-store-merging.cc (mem_valid_for_store_merging): Punt if
17413 bitsize <= 0 rather than just == 0.
17415 2022-03-30 Tom de Vries <tdevries@suse.de>
17417 * doc/invoke.texi (misa, mptx): Update.
17418 (march, march-map): Add.
17420 2022-03-30 Thomas Schwinge <thomas@codesourcery.com>
17422 * opt-functions.awk (n_args): New function.
17423 (lang_enabled_by): Merge function into...
17424 * optc-gen.awk <END>: ... sole user here.
17425 Improve diagnostics.
17427 2022-03-29 Marek Polacek <polacek@redhat.com>
17428 Jakub Jelinek <jakub@redhat.com>
17430 PR middle-end/103597
17431 * gimplify.cc (collect_fallthrough_labels): Don't push UNUSED_LABEL_Ps
17432 into labels. Maybe set prev to the statement preceding UNUSED_LABEL_P.
17433 (gimplify_cond_expr): Set UNUSED_LABEL_P.
17434 * tree.h (UNUSED_LABEL_P): New.
17436 2022-03-29 Michael Meissner <meissner@linux.ibm.com>
17438 * config/rs6000/vsx.md (vsx_extract_<mode>): Allow destination to
17439 be any VSX register.
17441 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
17444 * config/aarch64/aarch64.cc (aapcs_vfp_sub_candidate): Handle
17445 zero-sized bit-fields. Detect cases where a warning may be needed.
17446 (aarch64_vfp_is_call_or_return_candidate): Emit a note if a
17447 zero-sized bit-field has caused parameter passing to change.
17449 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
17452 * config/arm/arm.cc (aapcs_vfp_sub_candidate): Handle zero-sized
17453 bit-fields. Detect cases where a warning may be needed.
17454 (aapcs_vfp_is_call_or_return_candidate): Emit a note if
17455 a zero-sized bit-field has caused parameter passing to change.
17457 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
17460 * config/arm/arm.cc (arm_get_pcs_model): Disable selection of
17461 ARM_PCS_AAPCS_LOCAL.
17463 2022-03-29 Tom de Vries <tdevries@suse.de>
17466 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Emit
17467 __PTX_ISA_VERSION_MAJOR__ and __PTX_ISA_VERSION_MINOR__.
17468 * config/nvptx/nvptx.cc (ptx_version_to_number): New function.
17469 * config/nvptx/nvptx-protos.h (ptx_version_to_number): Declare.
17471 2022-03-29 Tom de Vries <tdevries@suse.de>
17473 * config/nvptx/nvptx.opt (m64): Update help text to reflect that it
17476 2022-03-29 Tom de Vries <tdevries@suse.de>
17479 * config/nvptx/nvptx.opt (march-map=*): Add aliases.
17481 2022-03-29 Jan Hubicka <hubicka@ucw.cz>
17483 * config/i386/i386-builtins.cc (ix86_vectorize_builtin_gather): Test
17484 TARGET_USE_GATHER_2PARTS and TARGET_USE_GATHER_4PARTS.
17485 * config/i386/i386.h (TARGET_USE_GATHER_2PARTS): New macro.
17486 (TARGET_USE_GATHER_4PARTS): New macro.
17487 * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): New tune
17488 (X86_TUNE_USE_GATHER_4PARTS): New tune
17490 2022-03-29 Tom de Vries <tdevries@suse.de>
17492 * config/nvptx/nvptx.opt (march): Add alias of misa.
17494 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
17495 Lulu Cheng <chenglulu@loongson.cn>
17497 * doc/install.texi: Add LoongArch options section.
17498 * doc/invoke.texi: Add LoongArch options section.
17499 * doc/md.texi: Add LoongArch options section.
17501 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
17502 Lulu Cheng <chenglulu@loongson.cn>
17504 * config/loongarch/loongarch-c.cc
17506 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
17507 Lulu Cheng <chenglulu@loongson.cn>
17509 * config/loongarch/larchintrin.h: New file.
17510 * config/loongarch/loongarch-builtins.cc: New file.
17512 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
17513 Lulu Cheng <chenglulu@loongson.cn>
17515 * config/host-linux.cc: Add LoongArch support.
17516 * config/loongarch/loongarch-protos.h: New file.
17517 * config/loongarch/loongarch-tune.h: Likewise.
17518 * config/loongarch/loongarch.cc: Likewise.
17519 * config/loongarch/loongarch.h: Likewise.
17521 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
17522 Lulu Cheng <chenglulu@loongson.cn>
17524 * config/loongarch/constraints.md: New file.
17525 * config/loongarch/generic.md: New file.
17526 * config/loongarch/la464.md: New file.
17527 * config/loongarch/loongarch-ftypes.def: New file.
17528 * config/loongarch/loongarch-modes.def: New file.
17529 * config/loongarch/loongarch.md: New file.
17530 * config/loongarch/predicates.md: New file.
17531 * config/loongarch/sync.md: New file.
17533 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
17534 Lulu Cheng <chenglulu@loongson.cn>
17536 * configure: Regenerate file.
17538 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
17539 Lulu Cheng <chenglulu@loongson.cn>
17541 * common/config/loongarch/loongarch-common.cc: New file.
17542 * config/loongarch/genopts/genstr.sh: New file.
17543 * config/loongarch/genopts/loongarch-strings: New file.
17544 * config/loongarch/genopts/loongarch.opt.in: New file.
17545 * config/loongarch/loongarch-str.h: New file.
17546 * config/loongarch/gnu-user.h: New file.
17547 * config/loongarch/linux.h: New file.
17548 * config/loongarch/loongarch-cpu.cc: New file.
17549 * config/loongarch/loongarch-cpu.h: New file.
17550 * config/loongarch/loongarch-def.c: New file.
17551 * config/loongarch/loongarch-def.h: New file.
17552 * config/loongarch/loongarch-driver.cc: New file.
17553 * config/loongarch/loongarch-driver.h: New file.
17554 * config/loongarch/loongarch-opts.cc: New file.
17555 * config/loongarch/loongarch-opts.h: New file.
17556 * config/loongarch/loongarch.opt: New file.
17557 * config/loongarch/t-linux: New file.
17558 * config/loongarch/t-loongarch: New file.
17559 * config.gcc: Add LoongArch support.
17560 * configure.ac: Add LoongArch support.
17562 2022-03-29 Thomas Schwinge <thomas@codesourcery.com>
17564 * opt-functions.awk (lang_enabled_by): Fix 'enabledby_negargs'
17567 2022-03-29 Richard Biener <rguenther@suse.de>
17569 PR tree-optimization/105080
17570 * tree-ssa-strlen.cc (printf_strlen_execute): Always init
17573 2022-03-28 Indu Bhagat <indu.bhagat@oracle.com>
17575 * ctfout.cc (ctf_preprocess): Use ctfc_get_num_ctf_vars instead.
17576 (output_ctf_vars): Likewise.
17578 2022-03-28 Jason Merrill <jason@redhat.com>
17581 * doc/extend.texi: Refer to __is_trivial instead of __is_pod.
17583 2022-03-28 H.J. Lu <hjl.tools@gmail.com>
17586 * config/i386/sse.md (*ssse3_pshufbv8qi3): Also replace "Yv" with
17589 2022-03-28 Tom de Vries <tdevries@suse.de>
17592 * config/nvptx/gen-opt.sh (ptx_isa): Improve help text.
17593 * config/nvptx/nvptx-gen.opt: Regenerate.
17594 * config/nvptx/nvptx.opt (misa, mptx, ptx_version): Improve help text.
17595 * config/nvptx/t-nvptx (s-nvptx-gen-opt): Add missing dependency on
17598 2022-03-28 David Malcolm <dmalcolm@redhat.com>
17601 * gimple-fold.cc (gimple_fold_builtin_memory_op): When optimizing
17602 to loads then stores, set the location of the new load stmt.
17604 2022-03-28 Richard Biener <rguenther@suse.de>
17606 PR tree-optimization/105070
17607 * tree-switch-conversion.h
17608 (bit_test_cluster::hoist_edge_and_branch_if_true): Add location
17610 * tree-switch-conversion.cc
17611 (bit_test_cluster::hoist_edge_and_branch_if_true): Annotate
17612 cond with location.
17613 (bit_test_cluster::emit): Annotate all generated expressions
17616 2022-03-28 Andre Vieira <andre.simoesdiasvieira@arm.com>
17618 * config/aarch64/aarch64-cores.def: Update Neoverse N2 core entry.
17620 2022-03-28 liuhongt <hongtao.liu@intel.com>
17623 * config/i386/sse.md (vec_set<mode>_0): Change attr "isa" of
17624 alternative 4 from sse4_noavx to noavx.
17626 2022-03-28 Jakub Jelinek <jakub@redhat.com>
17628 PR tree-optimization/105056
17629 * tree-predcom.cc (component::component): Initialize also comp_step.
17631 2022-03-27 H.J. Lu <hjl.tools@gmail.com>
17634 * config/i386/sse.md (*ssse3_pshufbv8qi3): Replace "Yv" with
17637 2022-03-26 Roger Sayle <roger@nextmovesoftware.com>
17639 PR middle-end/104885
17640 * calls.cc (mark_stack_region_used): Check that the region
17641 is within the allocated size of stack_usage_map.
17643 2022-03-26 Jakub Jelinek <jakub@redhat.com>
17645 PR rtl-optimization/103775
17646 * recog.cc (check_invalid_inc_dec): New function.
17647 (insn_invalid_p): Return 1 if REG_INC operand overlaps
17650 2022-03-26 H.J. Lu <hjl.tools@gmail.com>
17653 * config/i386/sse.md (loadiwkey): Replace "v" with "x".
17654 (aes<aesklvariant>u8): Likewise.
17656 2022-03-26 H.J. Lu <hjl.tools@gmail.com>
17659 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
17660 Replace "Yv" with "x".
17661 (ssse3_ph<plusminus_mnemonic>dv2si3): Likewise.
17662 (ssse3_psign<mode>3): Likewise.
17664 2022-03-26 Hans-Peter Nilsson <hp@axis.com>
17666 * reload.cc (find_reloads): Align comment with code where
17667 considering the intersection of register classes then tweaking the
17668 regclass for the current alternative or rejecting it.
17670 2022-03-25 Christophe Lyon <christohe.lyon@arm.com>
17674 2021-06-11 Christophe Lyon <christophe.lyon@linaro.org>
17676 * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): Delete.
17677 (mve_vec_unpack<US>_hi_<mode>): Delete.
17678 (@mve_vec_pack_trunc_lo_<mode>): Delete.
17679 (mve_vmovntq_<supf><mode>): Remove '@' prefix.
17680 * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move back
17681 from vec-common.md.
17682 (vec_unpack<US>_lo_<mode>): Likewise.
17683 (vec_pack_trunc_<mode>): Rename from
17684 neon_quad_vec_pack_trunc_<mode>.
17685 * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): Delete.
17686 (vec_unpack<US>_lo_<mode>): Delete.
17687 (vec_pack_trunc_<mode>): Delete.
17689 2022-03-25 Vladimir N. Makarov <vmakarov@redhat.com>
17691 PR middle-end/104971
17692 * lra-lives.cc (process_bb_lives): Check hard_regs_live for hard
17693 regs to clear remove_p flag.
17695 2022-03-25 Richard Biener <rguenther@suse.de>
17697 PR tree-optimization/105053
17698 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Pick
17699 the correct live-out stmt for a reduction chain.
17701 2022-03-25 Richard Biener <rguenther@suse.de>
17703 PR middle-end/105049
17704 * tree.cc (uniform_vector_p): Recurse for VECTOR_CST or
17705 CONSTRUCTOR first elements.
17707 2022-03-25 Tobias Burnus <tobias@codesourcery.com>
17710 * doc/invoke.texi (Static Analyzer Options): Move
17711 @ignore block after @gccoptlist's '}' for 'make pdf'.
17713 2022-03-25 David Malcolm <dmalcolm@redhat.com>
17716 * doc/invoke.texi (Static Analyzer Options): Add
17717 -fdump-analyzer-untracked.
17719 2022-03-25 Avinash Sonawane <rootkea@gmail.com>
17722 * doc/invoke.texi: Document that enabling taint analyzer
17723 checker disables some warnings from `-fanalyzer`.
17725 2022-03-24 Alexandre Oliva <oliva@adacore.com>
17728 * gimple-harden-conditionals.cc (detach_value): Keep temps
17731 2022-03-24 Alexandre Oliva <oliva@adacore.com>
17733 PR middle-end/104975
17734 * gimple-harden-conditionals.cc
17735 (pass_harden_compares::execute): Force split in case of
17738 2022-03-24 Jakub Jelinek <jakub@redhat.com>
17741 * fold-const.cc (operand_equal_p) <case COMPONENT_REF>: If either
17742 field0 or field1 is not a FIELD_DECL, return false.
17744 2022-03-24 Richard Biener <rguenther@suse.de>
17746 * tree-predcom.cc (chain::chain): Add CTOR.
17747 (component::component): Likewise.
17748 (pcom_worker::release_chain): Use delete.
17749 (release_components): Likewise.
17750 (pcom_worker::filter_suitable_components): Likewise.
17751 (pcom_worker::split_data_refs_to_components): Use new.
17752 (make_invariant_chain): Likewise.
17753 (make_rooted_chain): Likewise.
17754 (pcom_worker::combine_chains): Likewise.
17755 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
17756 Make sure to release previously constructed scalar_results.
17757 * tree-vect-stmts.cc (vectorizable_load): Use auto_vec
17759 * vr-values.cc (simplify_using_ranges::~simplify_using_ranges):
17760 Release m_flag_set_edges.
17762 2022-03-24 Siddhesh Poyarekar <siddhesh@gotplt.org>
17764 PR tree-optimization/104970
17765 * tree-object-size.cc (parm_object_size): Restrict size
17766 computation scenarios to explicit access attributes.
17768 2022-03-24 Kewen Lin <linkw@linux.ibm.com>
17771 * config/rs6000/rs6000-c.cc (find_instance): Skip instances with null
17774 2022-03-23 Richard Biener <rguenther@suse.de>
17777 * gimple-fold.cc (gimple_fold_builtin_memory_op): Allow the
17778 use of movmisalign when either the source or destination
17779 decl is properly aligned.
17781 2022-03-23 Richard Biener <rguenther@suse.de>
17783 PR rtl-optimization/105028
17784 * ira-color.cc (form_threads_from_copies): Remove unnecessary
17785 copying of the sorted_copies tail.
17787 2022-03-23 Martin Liska <mliska@suse.cz>
17789 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
17791 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
17792 Reword the error message.
17794 2022-03-23 liuhongt <hongtao.liu@intel.com>
17797 * config/i386/sse.md (ssePSmodelower): New.
17798 (*avx_cmp<mode>3_ltint_not): Force_reg operand before
17799 lowpart_subreg to avoid NULL_RTX.
17800 (<avx512>_fmaddc_<mode>_mask1<round_expand_name>,
17801 <avx512>_fcmaddc_<mode>_mask1<round_expand_name>,
17802 fma_<mode>_fmaddc_bcst, fma_<mode>_fcmaddc_bcst,
17803 <avx512>_<complexopname>_<mode>_mask<round_name>,
17804 avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name>,
17805 avx512fp16_fcmaddcsh_v8hf_mask3<round_expand_name>,
17806 avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
17807 avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
17808 float<floatunssuffix><mode>v4hf2,
17809 float<floatunssuffix>v2div2hf2,
17810 fix<fixunssuffix>_truncv4hf<mode>2,
17811 fix<fixunssuffix>_truncv2hfv2di2, extendv4hf<mode>2,
17813 trunc<mode>v4hf2,truncv2dfv2hf2,
17814 *avx512bw_permvar_truncv16siv16hi_1,
17815 *avx512bw_permvar_truncv16siv16hi_1_hf,
17816 *avx512f_permvar_truncv8siv8hi_1,
17817 *avx512f_permvar_truncv8siv8hi_1_hf,
17818 *avx512f_vpermvar_truncv8div8si_1,
17819 *avx512f_permvar_truncv32hiv32qi_1,
17820 *avx512f_permvar_truncv16hiv16qi_1,
17821 *avx512f_permvar_truncv4div4si_1,
17822 *avx512f_pshufb_truncv8hiv8qi_1,
17823 *avx512f_pshufb_truncv4siv4hi_1,
17824 *avx512f_pshufd_truncv2div2si_1,
17825 sdot_prod<mode>, avx2_pblend<ssemodesuffix>_1,
17826 ashrv2di3,ashrv2di3,usdot_prod<mode>): Ditto.
17828 2022-03-22 Tom de Vries <tdevries@suse.de>
17831 * config/nvptx/nvptx.md (define_insn "nvptx_uniform_warp_check"):
17832 Use % as register prefix.
17834 2022-03-22 Tom de Vries <tdevries@suse.de>
17836 * config/nvptx/nvptx.cc (nvptx_scalar_mode_supported_p)
17837 (nvptx_libgcc_floating_mode_supported_p): Only enable HFmode for
17840 2022-03-22 Tom de Vries <tdevries@suse.de>
17842 * config/nvptx/nvptx.opt (mexperimental): New option.
17844 2022-03-22 Tom de Vries <tdevries@suse.de>
17847 * config/nvptx/nvptx-protos.h (nvptx_asm_output_def_from_decls): Declare.
17848 * config/nvptx/nvptx.cc (write_fn_proto_1): Don't add function marker
17850 (SET_ASM_OP, NVPTX_ASM_OUTPUT_DEF): New macro def.
17851 (nvptx_asm_output_def_from_decls): New function.
17852 * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): New macro def, define to
17853 gcc_unreachable ().
17854 (ASM_OUTPUT_DEF_FROM_DECLS): New macro def, define to
17855 nvptx_asm_output_def_from_decls.
17856 * config/nvptx/nvptx.opt (malias): New opt.
17858 2022-03-22 Tom de Vries <tdevries@suse.de>
17862 * config/nvptx/nvptx.md (define_expand "omp_simt_exit"): Emit warp
17863 sync (or uniform warp check for mptx < 6.0).
17865 2022-03-22 Richard Biener <rguenther@suse.de>
17867 PR tree-optimization/105012
17868 * tree-if-conv.cc (ifcvt_local_dce): Only call
17869 dse_classify_store when we have a VDEF.
17871 2022-03-22 Martin Liska <mliska@suse.cz>
17874 * config/nvptx/nvptx.cc (handle_ptx_version_option):
17875 Fix option wrapping in an error message.
17877 2022-03-22 Martin Liska <mliska@suse.cz>
17880 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
17881 Wrap const keyword.
17883 2022-03-22 Martin Liska <mliska@suse.cz>
17885 * config/v850/v850-c.cc (pop_data_area): Fix typo in pragma
17888 2022-03-22 Martin Liska <mliska@suse.cz>
17891 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
17892 Use %qs instead of (%qs).
17894 2022-03-22 Martin Liska <mliska@suse.cz>
17897 * config/i386/i386-options.cc (ix86_option_override_internal):
17898 Use '%qs' instead of '(%qs)'.
17900 2022-03-22 Martin Liska <mliska@suse.cz>
17903 * config/aarch64/aarch64.cc (aarch64_handle_attr_arch):
17904 Use 'qs' and remove usage '(%qs)'.
17905 (aarch64_handle_attr_cpu): Likewise.
17906 (aarch64_handle_attr_tune): Likewise.
17907 (aarch64_handle_attr_isa_flags): Likewise.
17909 2022-03-22 Tamar Christina <tamar.christina@arm.com>
17910 Andre Vieira <andre.simoesdiasvieira@arm.com>
17912 * config/aarch64/aarch64.cc (neoversev1_regmove_cost): New tuning
17914 (neoversev1_tunings): Use neoversev1_regmove_cost and update store_int
17916 (neoverse512tvb_tunings): Likewise.
17918 2022-03-22 Tamar Christina <tamar.christina@arm.com>
17919 Andre Vieira <andre.simoesdiasvieira@arm.com>
17921 * config/aarch64/aarch64.cc (demeter_addrcost_table,
17922 demeter_regmove_cost, demeter_advsimd_vector_cost,
17923 demeter_sve_vector_cost, demeter_scalar_issue_info,
17924 demeter_advsimd_issue_info, demeter_sve_issue_info,
17925 demeter_vec_issue_info, demeter_vector_cost,
17926 demeter_tunings): New tuning structs.
17927 (aarch64_ve_op_count::rename_cycles_per_iter): Enable for demeter
17929 * config/aarch64/aarch64-cores.def: Add entry for demeter.
17930 * config/aarch64/aarch64-tune.md (tune): Add demeter to list.
17932 2022-03-22 Tamar Christina <tamar.christina@arm.com>
17933 Andre Vieira <andre.simoesdiasvieira@arm.com>
17935 * config/aarch64/aarch64-protos.h (struct cpu_memmov_cost): New struct.
17936 (struct tune_params): Change type of memmov_cost to use cpu_memmov_cost.
17937 * config/aarch64/aarch64.cc (aarch64_memory_move_cost): Update all
17938 tunings to use cpu_memmov_cost struct.
17940 2022-03-22 Tamar Christina <tamar.christina@arm.com>
17941 Andre Vieira <andre.simoesdiasvieira@arm.com>
17943 * config/aarch64/aarch64.cc (neoversen2_addrcost_table,
17944 neoversen2_regmove_cost, neoversen2_advsimd_vector_cost,
17945 neoversen2_sve_vector_cost, neoversen2_scalar_issue_info,
17946 neoversen2_advsimd_issue_info, neoversen2_sve_issue_info,
17947 neoversen2_vec_issue_info, neoversen2_tunings): New structs.
17948 (neoversen2_tunings): Use new structs and update tuning flags.
17949 (aarch64_vec_op_count::rename_cycles_per_iter): Enable for neoversen2
17952 2022-03-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
17954 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH9): Add FP16 feature
17957 2022-03-22 liuhongt <hongtao.liu@intel.com>
17960 * config/i386/i386.md (*jcc_bt<mode>_mask): Extend the
17961 following splitter to reversed condition.
17963 2022-03-22 Jakub Jelinek <jakub@redhat.com>
17965 PR rtl-optimization/104989
17966 * calls.cc (expand_call): Don't set ECF_NORETURN in flags after
17967 sorry for passing too large argument, instead set sibcall_failure
17968 for pass == 0, or a new normal_failure flag otherwise. If
17969 normal_failure is set, don't assert all stack has been deallocated
17970 at the end and throw away the whole insn sequence.
17972 2022-03-22 Qian Jianhua <qianjh@cn.fujitsu.com>
17974 * print-tree.cc: Change array length
17976 2022-03-22 Hongyu Wang <hongyu.wang@intel.com>
17979 * config/i386/sse.md
17980 (avx512fp16_fmaddcsh_v8hf_mask1<round_expand_name):
17981 Use avx512f_movsf_mask instead of vmovaps or vblend, and
17982 force_reg before lowpart_subreg.
17983 (avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name): Likewise.
17985 2022-03-21 H.J. Lu <hjl.tools@gmail.com>
17988 * common/config/i386/i386-common.cc
17989 (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Replace
17990 OPTION_MASK_ISA2_AVX512F_UNSET with OPTION_MASK_ISA2_SSE_UNSET.
17992 2022-03-21 H.J. Lu <hjl.tools@gmail.com>
17995 * common/config/i386/cpuinfo.h (get_available_features): Pass
17996 0x19 to __cpuid for bit_AESKLE. Enable FEATURE_AESKLE only if
17999 2022-03-21 Richard Sandiford <richard.sandiford@arm.com>
18001 PR middle-end/104869
18002 * rtl-ssa/accesses.h (clobber_group::prev_clobber): Declare.
18003 (clobber_group::next_clobber): Likewise.
18004 (def_lookup::prev_def): Rename to...
18005 (def_lookup::last_def_of_prev_group): ...this.
18006 (def_lookup::next_def): Rename to...
18007 (def_lookup::first_def_of_next_group): ...this.
18008 (def_lookup::matching_or_prev_def): Rename to...
18009 (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
18010 (def_lookup::matching_or_next_def): Rename to...
18011 (def_lookup::matching_set_or_first_def_of_next_group): ...this.
18012 (def_lookup::prev_def): New function, taking the lookup insn as
18014 (def_lookup::next_def): Likewise.
18015 * rtl-ssa/member-fns.inl (def_lookup::prev_def): Rename to...
18016 (def_lookup::last_def_of_prev_group): ...this.
18017 (def_lookup::next_def): Rename to...
18018 (def_lookup::first_def_of_next_group): ...this.
18019 (def_lookup::matching_or_prev_def): Rename to...
18020 (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
18021 (def_lookup::matching_or_next_def): Rename to...
18022 (def_lookup::matching_set_or_first_def_of_next_group): ...this.
18023 * rtl-ssa/movement.h (restrict_movement_for_dead_range): Update after
18025 * rtl-ssa/accesses.cc (clobber_group::prev_clobber): New function.
18026 (clobber_group::next_clobber): Likewise.
18027 (def_lookup::prev_def): Likewise.
18028 (def_lookup::next_def): Likewise.
18029 (function_info::make_use_available): Pass the lookup insn to
18030 def_lookup::prev_def and def_lookup::next_def.
18032 2022-03-21 Martin Liska <mliska@suse.cz>
18034 * doc/invoke.texi: Document min-pagesize parameter.
18036 2022-03-21 Richard Biener <rguenther@suse.de>
18038 * tree-ssa-loop-niter.cc (estimate_numbers_of_iterations): Dump
18039 we are estimating niter of loop.
18041 2022-03-21 Kito Cheng <kito.cheng@sifive.com>
18043 * common/config/riscv/riscv-common.cc (riscv_ext_flag_table):
18044 Update flag name and mask name.
18045 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Define
18046 misc macro for vector extensions.
18047 * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): Rename to ...
18048 (MASK_VECTOR_ELEN_32): ... this.
18049 (MASK_VECTOR_EEW_64): Rename to ...
18050 (MASK_VECTOR_ELEN_64): ... this.
18051 (MASK_VECTOR_EEW_FP_32): Rename to ...
18052 (MASK_VECTOR_ELEN_FP_32): ... this.
18053 (MASK_VECTOR_EEW_FP_64): Rename to ...
18054 (MASK_VECTOR_ELEN_FP_64): ... this.
18055 (TARGET_VECTOR_ELEN_32): New.
18056 (TARGET_VECTOR_ELEN_64): Ditto.
18057 (TARGET_VECTOR_ELEN_FP_32): Ditto.
18058 (TARGET_VECTOR_ELEN_FP_64): Ditto.
18059 (TARGET_MIN_VLEN): Ditto.
18060 * config/riscv/riscv.opt (riscv_vector_eew_flags): Rename to ...
18061 (riscv_vector_elen_flags): ... this.
18063 2022-03-21 Hongyu Wang <hongyu.wang@intel.com>
18066 * config/i386/sse.md
18067 (avx512fp16_fma<complexopname>sh_v8hf<mask_scalarcz_name><round_scalarcz_name>):
18068 Correct round operand for intel dialect.
18070 2022-03-19 Arthur Cohen <arthur.cohen@embecosm.com>
18072 * diagnostic.cc (diagnostic_cc_tests): Rename to...
18073 (c_diagnostic_cc_tests): ...this.
18074 * opt-problem.cc (opt_problem_cc_tests): Rename to...
18075 (c_opt_problem_cc_tests): ...this.
18076 * selftest-run-tests.cc (selftest::run_tests): No longer run
18077 opt_problem_cc_tests or diagnostic_cc_tests.
18078 * selftest.h (diagnostic_cc_tests): Remove declaration.
18079 (opt_problem_cc_tests): Likewise.
18081 2022-03-19 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
18084 * hash-traits.h (struct typed_const_free_remove): New.
18085 (struct free_string_hash): New.
18086 * pass_manager.h: Use free_string_hash.
18087 * passes.cc (pass_manager::register_pass_name): Use free_string_hash.
18088 (pass_manager::~pass_manager): Delete allocated m_name_to_pass_map.
18090 2022-03-19 Jakub Jelinek <jakub@redhat.com>
18092 PR middle-end/104971
18093 * config/i386/i386-expand.cc
18094 (ix86_expand_builtin) <case IX86_BUILTIN_READ_FLAGS>: If ignore,
18095 don't push/pop anything and just return const0_rtx.
18097 2022-03-18 Vladimir N. Makarov <vmakarov@redhat.com>
18099 PR rtl-optimization/104961
18100 * lra-assigns.cc (find_reload_regno_insns): Process reload pseudo clobber.
18102 2022-03-18 Jason Merrill <jason@redhat.com>
18104 * tree.h (IDENTIFIER_LENGTH): Add comment.
18106 2022-03-18 Jakub Jelinek <jakub@redhat.com>
18108 PR middle-end/99578
18109 PR middle-end/100680
18110 PR tree-optimization/100834
18111 * params.opt (--param=min-pagesize=): New parameter.
18113 (compute_objsize_r) <case ARRAY_REF>: Formatting fix.
18114 (compute_objsize_r) <case INTEGER_CST>: Use maximum object size instead
18115 of zero for pointer constants equal or larger than min-pagesize.
18117 2022-03-18 Tom de Vries <tdevries@suse.de>
18119 * gimplify.cc (gimplify_omp_for): Set location using 'input_location'.
18120 Set gfor location only when dealing with a OMP_TASKLOOP.
18122 2022-03-18 Tom de Vries <tdevries@suse.de>
18124 * gimplify.cc (gimplify_omp_for): Set taskloop location.
18126 2022-03-18 Tom de Vries <tdevries@suse.de>
18129 * omp-low.cc (lower_rec_input_clauses): Make sure GOMP_SIMT_XCHG_BFLY
18130 is executed unconditionally.
18132 2022-03-18 liuhongt <hongtao.liu@intel.com>
18135 * config/i386/i386.md (*movhi_internal): Set attr type from HI
18136 to HF for alternative 12 under TARGET_AVX512FP16.
18138 2022-03-18 Cui,Lili <lili.cui@intel.com>
18141 * config/i386/i386.h (PTA_SAPPHIRERAPIDS): change it to base on ICX.
18142 * doc/invoke.texi: Update documents for Intel sapphirerapids.
18144 2022-03-17 Roger Sayle <roger@nextmovesoftware.com>
18147 PR tree-optimization/90356
18148 * config/i386/i386.md (*movtf_internal): Don't guard
18149 standard_sse_constant_p clause by optimize_function_for_size_p.
18150 (*movdf_internal): Likewise.
18151 (*movsf_internal): Likewise.
18153 2022-03-17 Andrew MacLeod <amacleod@redhat.com>
18155 PR tree-optimization/102943
18156 * gimple-range-cache.cc (ranger_cache::range_from_dom): Find range via
18157 dominators and apply intermediary outgoing edge ranges.
18159 2022-03-17 Richard Biener <rguenther@suse.de>
18161 PR tree-optimization/104960
18162 * passes.def: Add pass parameter to pass_sink_code, mark
18163 last one to unsplit edges.
18164 * tree-ssa-sink.cc (pass_sink_code::set_pass_param): New.
18165 (pass_sink_code::execute): Always execute TODO_cleanup_cfg
18166 when we need to unsplit edges.
18168 2022-03-17 Jakub Jelinek <jakub@redhat.com>
18170 PR middle-end/103984
18171 * gimplify.cc (gimplify_target_expr): Gimplify type sizes and
18172 TARGET_EXPR_INITIAL into a temporary sequence, then push clobbers
18173 and asan unpoisioning, then append the temporary sequence and
18174 finally the TARGET_EXPR_CLEANUP clobbers.
18176 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
18178 * config/i386/sse.md: Delete corrupt character/typo.
18180 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
18183 * config/i386/sse.md (sse2_movq128): New define_expand to
18184 preserve previous named instruction.
18185 (*sse2_movq128_<mode>): Renamed from sse2_movq128, and
18186 generalized to VI8F_128 (both V2DI and V2DF).
18188 2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
18190 PR tree-optimization/104941
18191 * tree-object-size.cc (size_for_offset): Make useless conversion
18192 check lighter and assign result of fold_convert to OFFSET.
18194 2022-03-16 H.J. Lu <hjl.tools@gmail.com>
18197 * config/i386/x86gprintrin.h: Also check _SOFT_FLOAT before
18198 pushing target("general-regs-only").
18200 2022-03-16 Kito Cheng <kito.cheng@sifive.com>
18202 * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
18203 Add version info for zk, zks and zkn.
18205 2022-03-16 LiaoShihua <shihua@iscas.ac.cn>
18207 * common/config/riscv/riscv-common.cc
18208 (riscv_combine_info): New.
18209 (riscv_subset_list::handle_combine_ext): Combine back into zk to
18210 maintain the canonical order in isa strings.
18211 (riscv_subset_list::parse): Ditto.
18212 * config/riscv/riscv-subset.h (handle_combine_ext): New.
18214 2022-03-16 Richard Biener <rguenther@suse.de>
18216 PR tree-optimization/102008
18217 * passes.def: Move the added code sinking pass before the
18218 preceeding phiopt pass.
18220 2022-03-16 Patrick Palka <ppalka@redhat.com>
18223 * doc/invoke.texi (C++ Dialect Options): Document
18224 -ffold-simple-inlines.
18226 2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
18228 PR tree-optimization/104942
18229 * tree-object-size.cc (alloc_object_size): Remove STRIP_NOPS.
18231 2022-03-16 Jakub Jelinek <jakub@redhat.com>
18234 * config/aarch64/aarch64.cc (aarch64_load_symref_appropriately): Copy
18237 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
18238 Richard Biener <rguenther@suse.de>
18240 * gimple-match-head.cc (single_use): Implement inline using a
18243 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
18245 * match.pd (X CMP X -> true): Test tree_expr_maybe_nan_p
18246 instead of HONOR_NANS.
18247 (X LTGT X -> false): Enable if X is not tree_expr_maybe_nan_p, as
18248 this can't trap/signal.
18250 2022-03-16 liuhongt <hongtao.liu@intel.com>
18253 * config/i386/i386-builtin.def (BDESC): Add
18254 CODE_FOR_sse4_1_blendvpd for IX86_BUILTIN_BLENDVPD.
18255 * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
18256 __builtin_ia32_blendvpd w/o sse4.2
18258 2022-03-15 Peter Bergner <bergner@linux.ibm.com>
18261 * config/rs6000/predicates.md (mma_disassemble_output_operand): Restrict
18262 acceptable MEM addresses.
18264 2022-03-15 Jakub Jelinek <jakub@redhat.com>
18267 * config/riscv/riscv.cc (riscv_pass_aggregate_in_fpr_pair_p,
18268 riscv_pass_aggregate_in_fpr_and_gpr_p): Pass OPT_Wpsabi instead of 0
18271 2022-03-15 Jakub Jelinek <jakub@redhat.com>
18274 * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Use no-mmx,no-sse
18275 instead of general-regs-only.
18277 2022-03-15 Roger Sayle <roger@nextmovesoftware.com>
18278 Marc Glisse <marc.glisse@inria.fr>
18279 Richard Biener <rguenther@suse.de>
18281 PR tree-optimization/101895
18282 * match.pd (vec_same_elem_p): Handle CONSTRUCTOR_EXPR def.
18283 (plus (vec_perm (mult ...) ...) ...): New reordering simplification.
18285 2022-03-15 Jakub Jelinek <jakub@redhat.com>
18287 PR rtl-optimization/104814
18288 * ifcvt.cc (find_if_case_1, find_if_case_2): Punt if test_bb doesn't
18289 end with onlyjump_p. Assume BB_END (test_bb) is always non-NULL.
18291 2022-03-15 Martin Sebor <msebor@redhat.com>
18293 PR middle-end/104436
18294 * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
18295 Check for warning suppression. Avoid by-value arguments transformed
18296 into by-transparent-reference.
18298 2022-03-14 Roger Sayle <roger@nextmovesoftware.com>
18299 Uroš Bizjak <ubizjak@gmail.com>
18301 * config/i386/i386.md (peephole2 xorl;movb -> movzbl): Disable
18302 transformation when *zero_extend<mode>si2 is not available.
18304 2022-03-14 Xi Ruoyao <xry111@mengyan1223.wang>
18306 * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Define.
18307 * config/mips/mips.cc (mips_option_override): Make
18308 -fsanitize=address imply -fasynchronous-unwind-tables. This is
18309 needed by libasan for stack backtrace on MIPS.
18310 (mips_asan_shadow_offset): Return SUBTARGET_SHADOW_OFFSET.
18312 2022-03-14 Jakub Jelinek <jakub@redhat.com>
18315 * lra.cc (lra_substitute_pseudo): For debug_p mode, simplify
18316 SUBREG, ZERO_EXTEND, SIGN_EXTEND, FLOAT or UNSIGNED_FLOAT if recursive
18317 call simplified the first operand into VOIDmode constant.
18319 2022-03-14 Jakub Jelinek <jakub@redhat.com>
18321 PR tree-optimization/102586
18322 * doc/extend.texi (__builtin_clear_padding): Clearify that for C++
18323 argument type should be pointer to trivially-copyable type unless it
18324 is address of a variable or parameter.
18326 2022-03-14 Jakub Jelinek <jakub@redhat.com>
18329 * config/i386/emmintrin.h (_mm_loadu_si32): Put loaded value into
18330 first rather than last element of the vector, use __m32_u to do
18331 a really unaligned load, use just 0 instead of (int)0.
18332 (_mm_loadu_si16): Put loaded value into first rather than last
18333 element of the vector, use __m16_u to do a really unaligned load,
18334 use just 0 instead of (short)0.
18336 2022-03-14 Jakub Jelinek <jakub@redhat.com>
18339 * config/bfin/bfin.cc (bfin_handle_longcall_attribute): Fix a typo
18340 in diagnostic message - cannott -> cannot. Use %< and %> around
18341 names of attribute. Avoid too long line.
18342 * range-op.cc (operator_logical_and::op1_range): Fix up a typo
18343 in comment - cannott -> cannot. Use 2 spaces after . instead of one.
18345 2022-03-14 liuhongt <hongtao.liu@intel.com>
18348 * config/i386/i386-expand.cc
18349 (ix86_check_builtin_isa_match): New func.
18350 (ix86_expand_builtin): Move code to
18351 ix86_check_builtin_isa_match and call it.
18352 * config/i386/i386-protos.h
18353 (ix86_check_builtin_isa_match): Declare.
18354 * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
18355 builtin into gimple when isa mismatches.
18357 2022-03-13 Tobias Burnus <tobias@codesourcery.com>
18359 * doc/invoke.texi: Fix typos.
18360 * doc/tm.texi.in: Remove duplicated word.
18361 * doc/tm.texi: Regenerate.
18363 2022-03-12 Segher Boessenkool <segher@kernel.crashing.org>
18366 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Don't output
18367 "ppc" and "ppc64" based on rs6000_cpu.
18369 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
18371 PR middle-end/100280
18372 PR middle-end/104892
18373 * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
18374 Remove special handling of 'GOMP_MAP_FORCE_TOFROM'.
18376 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
18378 PR middle-end/100280
18379 PR middle-end/104086
18380 * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
18381 Mark variables used in 'present' clauses as addressable.
18382 * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Gracefully
18383 handle duplicate 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
18385 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
18388 * tree-core.h (user_omp_claus_code_name): Declare function.
18389 * tree.cc (user_omp_clause_code_name): New function.
18391 2022-03-12 Roger Sayle <roger@nextmovesoftware.com>
18393 PR middle-end/98420
18394 * match.pd (minus @0 @0): Additional checks for -fno-rounding-math
18395 (the defaut) or -fno-signed-zeros.
18397 2022-03-12 Michael Meissner <meissner@linux.ibm.com>
18400 * config/rs6000/vsx.md (extendditi2): Use a 'b' constraint when
18401 moving from a GPR register to an Altivec register.
18403 2022-03-11 Roger Sayle <roger@nextmovesoftware.com>
18405 PR tree-optimization/98335
18406 * config/i386/i386.md (peephole2): Eliminate redundant insv.
18407 Combine movl followed by movb. Transform xorl followed by
18408 a suitable movb or movw into the equivalent movz[bw]l.
18410 2022-03-11 Roger Sayle <roger@nextmovesoftware.com>
18411 Richard Biener <rguenther@suse.de>
18413 PR tree-optimization/98335
18414 * builtins.cc (get_object_alignment_2): Export.
18415 * builtins.h (get_object_alignment_2): Likewise.
18416 * tree-ssa-alias.cc (ao_ref_alignment): New.
18417 * tree-ssa-alias.h (ao_ref_alignment): Declare.
18418 * tree-ssa-dse.cc (compute_trims): Improve logic deciding whether
18419 to align head/tail, writing more bytes but using fewer store insns.
18421 2022-03-11 Richard Biener <rguenther@suse.de>
18423 PR tree-optimization/104880
18424 * tree-ssa.cc (execute_update_address_taken): Remember if we
18425 optimistically made something not addressable and
18426 prepare to undo it.
18428 2022-03-11 Richard Biener <rguenther@suse.de>
18431 * config/i386/i386.cc (ix86_builtin_vectorization_cost): Do not
18432 cost the first lane of SSE pieces as inserts for vec_construct.
18434 2022-03-10 Roger Sayle <roger@nextmovesoftware.com>
18437 * calls.cc (expand_call): Ignore stack adjustments after sorry.
18439 2022-03-10 Vladimir N. Makarov <vmakarov@redhat.com>
18442 * lra-constraints.cc (split_reg): Set up
18443 check_and_force_assignment_correctness_p when splitting hard
18444 register live range.
18446 2022-03-10 Martin Jambor <mjambor@suse.cz>
18449 * ipa-cp.cc (create_specialized_node): Move removal of
18450 self-recursive calls from callers vector before refrence
18453 2022-03-10 Richard Biener <rguenther@suse.de>
18455 PR tree-optimization/102943
18456 * gimple-range-cache.cc (sbr_sparse_bitmap::bitvec):
18457 Make a bitmap_head.
18458 (sbr_sparse_bitmap::sbr_sparse_bitmap): Adjust and switch
18460 (sbr_sparse_bitmap::set_bb_range): Adjust.
18461 (sbr_sparse_bitmap::get_bb_range): Likewise.
18463 2022-03-10 Richard Biener <rguenther@suse.de>
18465 PR tree-optimization/102943
18466 * tree-ssa-dom.cc (back_propagate_equivalences): Only
18467 populate the dominance bitmap if fast queries are not
18468 available. Use a tree view bitmap.
18469 (record_temporary_equivalences): Cache the dominance bitmap
18470 across all equivalences on the edge.
18472 2022-03-10 Tom de Vries <tdevries@suse.de>
18475 * config/nvptx/nvptx.md (define_attr "predicable"): Use no,yes instead
18478 2022-03-10 Tom de Vries <tdevries@suse.de>
18481 * config/nvptx/nvptx.cc (nvptx_init_unisimt_predicate)
18482 (nvptx_output_unisimt_switch): Handle unisimt_outside_simt_predicate.
18483 (nvptx_get_unisimt_outside_simt_predicate): New function.
18484 (predicate_insn): New function, factored out of ...
18485 (nvptx_reorg_uniform_simt): ... here. Predicate all emitted insns.
18486 * config/nvptx/nvptx.h (struct machine_function): Add
18487 unisimt_outside_simt_predicate field.
18488 * config/nvptx/nvptx.md (define_insn "nvptx_warpsync")
18489 (define_insn "nvptx_uniform_warp_check"): Make predicable.
18491 2022-03-10 Tom de Vries <tdevries@suse.de>
18493 * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Handle unused
18496 2022-03-10 Tom de Vries <tdevries@suse.de>
18499 * config/nvptx/nvptx.cc (nvptx_print_operand): Handle 'x' operand
18501 * config/nvptx/nvptx.md: Use %x0 destination operand in atom insns.
18503 2022-03-10 Tom de Vries <tdevries@suse.de>
18505 * config/nvptx/nvptx.md (define_insn "atomic_fetch_<logic><mode>"):
18506 Emit atom.and.b64 instead of atom.b64.and.
18508 2022-03-10 Tom de Vries <tdevries@suse.de>
18510 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Move mptx=3.1 ...
18511 (MULTILIB_OPTIONS): ... here.
18513 2022-03-10 Tom de Vries <tdevries@suse.de>
18516 * config/nvptx/nvptx.opt (misa): Set default to sm_30.
18517 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Remove misa=sm_30.
18519 2022-03-10 Thomas Schwinge <thomas@codesourcery.com>
18521 PR middle-end/90115
18522 PR middle-end/102330
18523 PR middle-end/104774
18524 * omp-low.cc (oacc_privatization_candidate_p)
18525 (oacc_privatization_scan_clause_chain)
18526 (oacc_privatization_scan_decl_chain, lower_oacc_private_marker):
18527 Analyze 'lookup_decl'-translated DECL.
18529 2022-03-10 Jakub Jelinek <jakub@redhat.com>
18532 * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Remove
18533 RS6000_BTI_ptr_ieee128_float and RS6000_BTI_ptr_ibm128_float.
18534 (ptr_ieee128_float_type_node, ptr_ibm128_float_type_node): Remove.
18535 * config/rs6000/rs6000-builtin.cc (rs6000_type_string): Return
18536 "**NULL**" if type_node is NULL first. Handle
18537 ieee128_float_type_node.
18538 (rs6000_init_builtins): Don't initialize ptr_ieee128_float_type_node
18539 and ptr_ibm128_float_type_node. Set ibm128_float_type_node and
18540 ieee128_float_type_node to NULL rather than long_double_type_node if
18541 they aren't supported. Do support __ibm128 even if
18542 !TARGET_FLOAT128_TYPE when long double is double double.
18543 (rs6000_expand_builtin): Error if bif_is_ibm128 and
18544 !ibm128_float_type_node. Remap RS6000_BIF_{,UN}PACK_IF to
18545 RS6000_BIF_{,UN}PACK_TF much earlier and only use bif_is_ibm128 check
18547 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Define
18548 __SIZEOF_FLOAT128__ here and only iff __float128 macro is defined.
18549 (rs6000_cpu_cpp_builtins): Don't define __SIZEOF_FLOAT128__ here.
18550 Define __SIZEOF_IBM128__=16 if ieee128_float_type_node is non-NULL.
18552 * config/rs6000/rs6000-gen-builtins.cc: Document ibm128 attribute.
18553 (struct attrinfo): Add isibm128 member.
18554 (TYPE_MAP_SIZE): Remove.
18555 (type_map): Use [] instead of [TYPE_MAP_SIZE]. For "if" use
18556 ibm128_float_type_node only if it is non-NULL, otherwise fall back
18557 to long_double_type_node. Remove "pif" entry.
18558 (parse_bif_attrs): Handle ibm128 attribute and print it for debugging.
18559 (write_decls): Output bif_ibm128_bit and bif_is_ibm128.
18560 (write_type_node): Use sizeof type_map / sizeof type_map[0]
18561 instead of TYPE_MAP_SIZE.
18562 (write_bif_static_init): Handle isibm128.
18563 * config/rs6000/rs6000-builtins.def: Document ibm128 attribute.
18564 (__builtin_pack_ibm128, __builtin_unpack_ibm128): Add ibm128
18567 2022-03-09 Richard Biener <rguenther@suse.de>
18569 * cfgexpand.cc (expand_gimple_asm): Special-case MEM_REF
18570 with non-decl operand, avoiding a copy.
18572 2022-03-09 Jakub Jelinek <jakub@redhat.com>
18575 * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Define for ia32.
18577 2022-03-09 Richard Biener <rguenther@suse.de>
18579 PR middle-end/104786
18580 * cfgexpand.cc (expand_asm_stmt): Do not generate a copy
18581 for VLAs without an upper size bound.
18583 2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang>
18585 PR tree-optimization/104851
18586 * optabs-query.cc (supports_vec_convert_optab_p): Fix off-by-one
18589 2022-03-09 Jakub Jelinek <jakub@redhat.com>
18592 * doc/invoke.texi (-Wextra): Document that -Wshift-negative-value
18593 is enabled by it only for C++11 to C++17 rather than for C++03 or
18595 (-Wshift-negative-value): Similarly (except here we stated
18596 that it is enabled for C++11 or later).
18598 2022-03-09 Jakub Jelinek <jakub@redhat.com>
18600 PR rtl-optimization/104839
18601 * simplify-rtx.cc (simplify_unary_operation_1) <case SIGN_EXTEND>:
18602 Use SRP_SIGNED instead of incorrect 1 in SUBREG_PROMOTED_SET.
18603 (simplify_unary_operation_1) <case ZERO_EXTEND>: Use SRP_UNSIGNED
18604 instead of incorrect 0 in SUBREG_PROMOTED_SET.
18606 2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang>
18609 * config/mips/mips.h (LUI_OPERAND): Cast the input to an unsigned
18610 value before adding an offset.
18612 2022-03-08 Christophe Lyon <christophe.lyon@arm.com>
18614 * config/arm/arm-builtins.cc
18615 (arm_binop_none_none_unone_qualifiers): Delete.
18616 (BINOP_NONE_NONE_UNONE_QUALIFIERS): Delete.
18618 2022-03-08 Iain Sandoe <iain@sandoe.co.uk>
18620 PR translation/104552
18621 * config/host-darwin.cc (darwin_gt_pch_get_address): Amend
18622 the PCH out of memory error message punctuation and wording.
18624 2022-03-08 Marek Polacek <polacek@redhat.com>
18626 PR rtl-optimization/104777
18627 * rtl.cc (classify_insn): For ASM_OPERANDS, return JUMP_INSN only if
18628 ASM_OPERANDS_LABEL_VEC has at least one element.
18630 2022-03-08 H.J. Lu <hjl.tools@gmail.com>
18633 * config/i386/i386.cc (ix86_expand_epilogue): Sorry if there is
18634 stack realignment or regparm nested function with EH return.
18636 2022-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
18639 * config/arm/arm.h (MVE_STN_LDW_MODE): New MACRO.
18640 * config/arm/arm.cc (mve_vector_mem_operand): Relax constraint on base
18641 register for non widening loads or narrowing stores.
18643 2022-03-08 Eric Gallager <egallager@gcc.gnu.org>
18645 PR translation/104552
18646 * params.opt: Fix typo.
18648 2022-03-08 Richard Biener <rguenther@suse.de>
18650 PR tree-optimization/84201
18651 * params.opt (-param=vect-induction-float): Add.
18652 * doc/invoke.texi (vect-induction-float): Document.
18653 * tree-vect-loop.cc (vectorizable_induction): Honor
18654 param_vect_induction_float.
18656 2022-03-08 Martin Jambor <mjambor@suse.cz>
18658 PR translation/104552
18659 * params.opt (ipa-cp-recursive-freq-factor): Remove repeated word
18660 "that" in the description.
18662 2022-03-08 Richard Biener <rguenther@suse.de>
18664 PR tree-optimization/104825
18665 * tree-ssa-sccvn.cc (visit_reference_op_call): Properly
18666 guard modref get_ao_ref on a pointer typed argument.
18668 2022-03-08 liuhongt <hongtao.liu@intel.com>
18670 * config/i386/sse.md (*vec_dupv4si): Disable memory operand
18671 for !TARGET_INTER_UNIT_MOVES_TO_VEC when prefer_for_speed.
18673 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
18675 * doc/invoke.texi (C++ Modules): Remove anachronism.
18677 2022-03-07 Martin Liska <mliska@suse.cz>
18679 PR middle-end/104381
18680 * opts.cc (finish_options): If debug info is disabled
18681 (debug_info_level) and -fvar-tracking is unset, disable it.
18683 2022-03-07 Jakub Jelinek <jakub@redhat.com>
18685 * tree-ssa-propagate.cc: Fix up duplicated word issue in a comment.
18686 * config/riscv/riscv.cc: Likewise.
18687 * config/darwin.h: Likewise.
18688 * config/i386/i386.cc: Likewise.
18689 * config/aarch64/thunderx3t110.md: Likewise.
18690 * config/aarch64/fractional-cost.h: Likewise.
18691 * config/vax/vax.cc: Likewise.
18692 * config/rs6000/pcrel-opt.md: Likewise.
18693 * config/rs6000/predicates.md: Likewise.
18694 * ctfc.h: Likewise.
18695 * tree-ssa-uninit.cc: Likewise.
18696 * value-relation.h: Likewise.
18697 * gimple-range-gori.cc: Likewise.
18698 * ipa-polymorphic-call.cc: Likewise.
18699 * pointer-query.cc: Likewise.
18700 * ipa-sra.cc: Likewise.
18701 * internal-fn.cc: Likewise.
18702 * varasm.cc: Likewise.
18703 * gimple-ssa-warn-access.cc: Likewise.
18705 2022-03-07 Martin Liska <mliska@suse.cz>
18708 * config/arm/arm.cc (arm_option_override_internal): Add missing
18711 2022-03-07 Richard Biener <rguenther@suse.de>
18713 PR tree-optimization/104782
18714 * tree-vect-slp.cc (vectorize_slp_instance_root_stmt):
18715 Re-instantiate r10-5979 fix, add comment.
18717 2022-03-07 Martin Liska <mliska@suse.cz>
18720 * config/msp430/msp430.cc (msp430_expand_delay_cycles): Remove
18721 parenthesis from built-in name.
18723 2022-03-07 Martin Liska <mliska@suse.cz>
18726 * config/arm/arm.cc (arm_option_override_internal): Fix quoting
18727 of options in error messages.
18728 (arm_option_reconfigure_globals): Likewise.
18730 2022-03-07 Martin Liska <mliska@suse.cz>
18733 * config/arm/arm-builtins.cc (arm_expand_builtin): Reuse error
18734 message. Fix ARM_BUILTIN_WRORHI and ARM_BUILTIN_WRORH that can
18735 have only range [0,32].
18737 2022-03-07 Jakub Jelinek <jakub@redhat.com>
18740 * config/s390/s390.md (*cmp_and_trap_unsigned_int<mode>): Use
18741 S constraint instead of T in the last alternative.
18743 2022-03-07 Martin Liska <mliska@suse.cz>
18745 * plugin.cc (default_plugin_dir_name): Remove <dir> from error
18748 2022-03-07 Martin Liska <mliska@suse.cz>
18750 PR translation/90148
18751 * config/rs6000/rs6000.cc (rs6000_linux64_override_options): Put
18752 quote to a proper place.
18753 * plugin.cc (default_plugin_dir_name): Likewise.
18755 2022-03-07 Martin Liska <mliska@suse.cz>
18758 * config/rx/rx.cc (rx_expand_builtin_mvtc): Fix translation
18761 2022-03-07 Jakub Jelinek <jakub@redhat.com>
18764 * config/i386/sse.md (avx512dq_mul<mode>3<mask_name>): New
18765 define_expand pattern. Rename define_insn to ...
18766 (*avx512dq_mul<mode>3<mask_name>): ... this.
18767 (<code><mode>3_mask): New any_logic define_expand pattern.
18768 (<mask_codefor><code><mode>3<mask_name>): Rename to ...
18769 (*<code><mode>3<mask_name>): ... this.
18771 2022-03-05 Jakub Jelinek <jakub@redhat.com>
18773 * gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p): Remove
18774 visited bitmap and its use. Also punt on EDGE_ABNORMAL edges.
18776 2022-03-05 Roger Sayle <roger@nextmovesoftware.com>
18777 Uroš Bizjak <ubizjak@gmail.com>
18779 PR testsuite/104732
18780 * config/i386/i386.md (SWIM1248x): Renamed from SWIM1248s.
18781 Include DI mode unconditionally.
18782 (*anddi3_doubleword): Remove && TARGET_STV && TARGET_SSE2 condition,
18783 i.e. always split on !TARGET_64BIT.
18784 (*<any_or>di3_doubleword): Likewise.
18785 (*one_cmpldi2_doubleword): Likewise.
18786 (and<mode>3 expander): Update to use SWIM1248x from SWIM1248s.
18787 (<any_or><mode>3 expander): Likewise.
18788 (one_cmpl<mode>2 expander): Likewise.
18790 2022-03-05 Michael Meissner <meissner@linux.ibm.com>
18793 * config/rs6000/vsx.md (UNSPEC_MTVSRD_DITI_W1): Delete.
18794 (mtvsrdd_diti_w1): Delete.
18795 (extendditi2): Convert from define_expand to
18796 define_insn_and_split. Replace with code to deal with both GPR
18797 registers and with altivec registers.
18799 2022-03-04 Segher Boessenkool <segher@kernel.crashing.org>
18801 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Restructure a
18802 bit. Handle most older CPUs.
18804 2022-03-04 Iain Sandoe <iain@sandoe.co.uk>
18806 * config/darwin.cc (darwin_fold_builtin): Make fcode an int to
18807 avoid a mismatch with DECL_MD_FUNCTION_CODE().
18809 2022-03-04 Iain Sandoe <iain@sandoe.co.uk>
18812 * config/rs6000/darwin.md (@machopic_high_<mode>): New.
18813 (@machopic_low_<mode>): New.
18814 * config/rs6000/predicates.md (macho_pic_address): New.
18815 * config/rs6000/rs6000.cc (rs6000_legitimize_address): Do not
18816 apply the TLS processing to Darwin.
18817 * lra-constraints.cc (process_address_1): Revert the changes
18820 2022-03-04 Peter Bergner <bergner@linux.ibm.com>
18824 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make the
18825 ISA 2.06 requirement for -mabi=ieeelongdouble conditional on
18827 Move the -mabi=ieeelongdouble and -mabi=ibmlongdouble error checking
18829 * common/config/rs6000/rs6000-common.cc (rs6000_handle_option):
18832 2022-03-04 Jakub Jelinek <jakub@redhat.com>
18834 PR middle-end/104529
18835 * gimplify.cc (gimplify_init_constructor): Clear TREE_READONLY
18836 on automatic objects which will be runtime initialized.
18838 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
18840 PR middle-end/100280
18841 PR middle-end/104132
18842 PR middle-end/104133
18843 * omp-low.cc (task_shared_vars): Rename to
18844 'make_addressable_vars'. Adjust all users.
18845 (scan_sharing_clauses) <OMP_CLAUSE_MAP> Use it for
18846 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' DECLs, too.
18848 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
18850 PR middle-end/100280
18851 * tree.h (OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE): New.
18852 * tree-core.h: Document it.
18853 * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Handle
18854 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
18855 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
18856 Set 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' instead of
18857 'TREE_ADDRESSABLE'.
18859 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
18861 PR middle-end/100280
18862 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
18863 Add diagnostic: "note: OpenACC 'kernels' decomposition: variable
18864 '[...]' declared in block made addressable".
18866 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
18868 PR middle-end/100400
18869 PR middle-end/103836
18870 PR middle-end/104061
18871 * omp-oacc-kernels-decompose.cc (decompose_kernels_region_body):
18872 Catch 'GIMPLE_DEBUG'.
18874 2022-03-04 Jakub Jelinek <jakub@redhat.com>
18877 * tree.cc (warn_deprecated_use): For types prefer to use node
18878 and only use TYPE_MAIN_VARIANT (node) if TYPE_STUB_DECL (node) is
18881 2022-03-04 H.J. Lu <hjl.tools@gmail.com>
18884 * config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Always return
18887 2022-03-03 Martin Sebor <msebor@redhat.com>
18889 PR middle-end/104761
18890 * gimple-ssa-warn-access.cc (pass_waccess::execute): Call
18891 mark_dfs_back_edges.
18893 2022-03-03 Martin Liska <mliska@suse.cz>
18895 * configure.ac: Use linker plug-in by default.
18896 * configure: Regenerate.
18898 2022-03-03 Martin Liska <mliska@suse.cz>
18900 * configure.ac: Now ld.mold support LTO plugin API, use it.
18901 * configure: Regenerate.
18903 2022-03-03 Tom de Vries <tdevries@suse.de>
18905 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add mptx=3.1.
18907 2022-03-03 Tom de Vries <tdevries@suse.de>
18910 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add misa=sm_30.
18912 2022-03-03 Tom de Vries <tdevries@suse.de>
18914 * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
18916 2022-03-03 Jakub Jelinek <jakub@redhat.com>
18918 PR middle-end/104757
18919 * gimplify.cc (gimplify_omp_loop): Call gimplify_expr rather than
18921 (gimplify_expr) <case OMP_SIMD>: Temporarily disable
18922 gimplify_ctxp->into_ssa around call to gimplify_omp_for.
18924 2022-03-03 Jakub Jelinek <jakub@redhat.com>
18926 PR middle-end/104558
18927 * calls.cc (store_one_arg): When not calling emit_push_insn
18928 because size_rtx is const0_rtx, call at least anti_adjust_stack
18929 on arg->locate.alignment_pad if !argblock and the alignment might
18932 2022-03-02 Alexandre Oliva <oliva@adacore.com>
18934 * lra-constraints.cc (undo_optional_reloads): Recognize and
18935 drop insns of multi-word move sequences, tolerate removal
18936 iteration on an already-removed clobber, and refuse to
18937 substitute original pseudos into clobbers.
18939 2022-03-02 Qing Zhao <qing.zhao@oracle.com>
18941 PR middle-end/102276
18942 * common.opt (-Wtrivial-auto-var-init): New option.
18943 * doc/invoke.texi (-Wtrivial-auto-var-init): Document new option.
18944 (-ftrivial-auto-var-init): Update option;
18945 * gimplify.cc (emit_warn_switch_unreachable): New function.
18946 (warn_switch_unreachable_r): Rename to ...
18947 (warn_switch_unreachable_and_auto_init_r): This.
18948 (maybe_warn_switch_unreachable): Rename to ...
18949 (maybe_warn_switch_unreachable_and_auto_init): This.
18950 (gimplify_switch_expr): Update calls to renamed function.
18952 2022-03-02 Richard Biener <rguenther@suse.de>
18954 PR rtl-optimization/104686
18955 * ira-color.cc (object_conflicts_with_allocno_p): New function
18956 using a bitvector test instead of iterating when possible.
18957 (allocnos_conflict_p): Choose the best allocno to iterate over
18959 (update_conflict_hard_regno_costs): Do allocnos_conflict_p test
18962 2022-03-02 Jakub Jelinek <jakub@redhat.com>
18964 * cfg.cc (dump_edge_info): Dump goto_locus if present.
18966 2022-03-02 Jakub Jelinek <jakub@redhat.com>
18968 PR rtl-optimization/104589
18969 * cfgrtl.cc (fixup_reorder_chain): Use loc_equal instead of direct
18970 INSN_LOCATION comparison with goto_locus.
18972 2022-03-02 Jakub Jelinek <jakub@redhat.com>
18974 * tree-ssa-strlen.cc (strlen_pass::handle_assign,
18975 strlen_pass::before_dom_children): Comment spelling fixes.
18977 2022-03-02 Jakub Jelinek <jakub@redhat.com>
18979 * ipa-modref-tree.cc (modref_access_node::contains,
18980 modref_access_node::closer_pair_p, modref_access_node::insert,
18981 modref_access_node::insert_kill): Comment spelling fixes.
18982 * ipa-modref.cc: Likewise.
18983 (modref_summary::finalize, ignore_nondeterminism_p,
18984 class modref_access_analysis,
18985 modref_access_analysis::set_side_effects,
18986 modref_access_analysis::set_nondeterministic,
18987 modref_access_analysis::record_global_memory_load,
18988 modref_access_analysis::propagate, modref_access_analysis::analyze,
18989 struct escape_point, class modref_lattice, modref_lattice::merge,
18990 modref_lattice::merge_deref, class modref_eaf_analysis,
18991 modref_eaf_analysis::merge_call_lhs_flags,
18992 modref_eaf_analysis::analyze_ssa_name, modref_eaf_analysis::propagate,
18993 modref_eaf_analysis::record_escape_points, remap_kills,
18994 update_escape_summary, remove_useless_summaries,
18995 ipa_merge_modref_summary_after_inlining, pass_ipa_modref::execute):
18997 * ipa-modref.h (struct modref_summary, interposable_eaf_flags):
18999 * ipa-modref-tree.h (enum modref_special_parms,
19000 struct modref_access_node): Likewise.
19002 2022-03-01 Jakub Jelinek <jakub@redhat.com>
19004 PR tree-optimization/104715
19005 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Don't
19006 unnecessarily test if ptr is a SSA_NAME, it has to be. Only push lhs
19007 of a call if gimple_call_return_arg is equal to ptr, not just when it
19010 2022-03-01 Jakub Jelinek <jakub@redhat.com>
19012 * gimple-ssa-warn-access.cc (warn_string_no_nul,
19013 maybe_warn_nonstring_arg, fndecl_alloc_p, new_delete_mismatch_p,
19014 matching_alloc_calls_p, maybe_warn_alloc_args_overflow,
19015 pass_waccess::check_alloca, pass_waccess::check_strcat,
19016 memmodel_to_uhwi, fntype_argno_type,
19017 pass_waccess::maybe_check_access_sizes,
19018 pass_waccess::check_call_access,
19019 pass_waccess::maybe_check_dealloc_call, pass_waccess::check_stmt):
19020 Comment spelling fixes.
19022 2022-03-01 Richard Biener <rguenther@suse.de>
19024 PR tree-optimization/104716
19025 * tree-loop-distribution.cc (find_seed_stmts_for_distribution):
19026 Check if we can copy the loop.
19028 2022-03-01 H.J. Lu <hjl.tools@gmail.com>
19030 PR middle-end/104721
19031 * cfgexpand.cc (expand_gimple_basic_block): Clear
19032 currently_expanding_gimple_stmt when returning inside the loop.
19034 2022-03-01 Martin Liska <mliska@suse.cz>
19037 * multiple_target.cc (get_attr_len): Move to tree.c.
19038 (expand_target_clones): Remove single value checking.
19039 * tree.cc (get_target_clone_attr_len): New fn.
19040 * tree.h (get_target_clone_attr_len): Likewise.
19042 2022-03-01 Martin Liska <mliska@suse.cz>
19044 PR gcov-profile/104677
19045 * doc/invoke.texi: Document more .gcda file name generation.
19047 2022-03-01 Tom de Vries <tdevries@suse.de>
19050 * config/nvptx/nvptx.cc (nvptx_gen_shuffle): Handle DCmode and CDImode.
19051 * config/nvptx/nvptx.md
19052 (define_predicate "nvptx_register_or_complex_di_df_register_operand"):
19054 (define_expand "omp_simt_xchg_bfly", define_expand "omp_simt_xchg_idx"):
19055 Use nvptx_register_or_complex_di_df_register_operand.
19057 2022-03-01 Tom de Vries <tdevries@suse.de>
19059 * config.gcc (nvptx*-*-*): Add nvptx/nvptx-gen.opt to extra_options.
19060 * config/nvptx/gen-copyright.sh: New file.
19061 * config/nvptx/gen-h.sh: New file.
19062 * config/nvptx/gen-opt.sh: New file.
19063 * config/nvptx/nvptx.h (TARGET_SM35, TARGET_SM53, TARGET_SM70)
19064 (TARGET_SM75, TARGET_SM80): Move ...
19065 * config/nvptx/nvptx-gen.h: ... here. New file, generate.
19066 * config/nvptx/nvptx.opt (Enum ptx_isa): Move ...
19067 * config/nvptx/nvptx-gen.opt: ... here. New file, generate.
19068 * config/nvptx/t-nvptx ($(srcdir)/config/nvptx/nvptx-gen.h)
19069 ($(srcdir)/config/nvptx/nvptx-gen.opt): New make target.
19071 2022-03-01 Tom de Vries <tdevries@suse.de>
19073 * config/nvptx/gen-omp-device-properties.sh: New file.
19074 * config/nvptx/t-omp-device: Use gen-omp-device-properties.sh.
19076 2022-03-01 Tom de Vries <tdevries@suse.de>
19078 * config/nvptx/nvptx-sm.def: New file.
19079 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Use nvptx-sm.def.
19080 * config/nvptx/nvptx-opts.h (enum ptx_isa): Same.
19081 * config/nvptx/nvptx.cc (sm_version_to_string)
19082 (nvptx_omp_device_kind_arch_isa): Same.
19084 2022-03-01 Robin Dapp <rdapp@linux.ibm.com>
19086 PR rtl-optimization/104154
19087 * config/arc/arc.cc (gen_compare_reg): Return the CC-mode
19088 comparison ifcvt passed us.
19090 2022-03-01 Hongyu Wang <hongyu.wang@intel.com>
19093 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
19094 Use vec_setv8hf_0 for HF to V8HFmode move instead of subreg.
19096 2022-02-28 Roger Sayle <roger@nextmovesoftware.com>
19098 PR tree-optimization/91384
19099 * config/i386/i386.md (peephole2): Eliminate final testl insn
19100 from the sequence *movsi_internal, *negsi_1, *cmpsi_ccno_1 by
19101 transforming using *negsi_2 for the negation.
19103 2022-02-28 Roger Sayle <roger@nextmovesoftware.com>
19104 Eric Botcazou <ebotcazou@adacore.com>
19106 PR middle-end/80270
19107 * expmed.cc (extract_integral_bit_field): If OP0 is a hard
19108 register, copy it to a pseudo before calling simplify_gen_subreg.
19110 2022-02-28 Vladimir N. Makarov <vmakarov@redhat.com>
19112 PR rtl-optimization/104637
19113 * lra-assigns.cc (lra_split_hard_reg_for): Split hard regs as many
19114 as possible on one subpass.
19116 2022-02-28 Qing Zhao <qing.zhao@oracle.com>
19118 PR middle-end/104550
19119 * gimple-fold.cc (clear_padding_flush): Suppress warnings for new
19122 2022-02-28 Martin Liska <mliska@suse.cz>
19125 * main.cc (main): Use flag_checking instead of CHECKING_P
19126 and run toplev::finalize only if there is not error seen.
19128 2022-02-28 Richard Biener <rguenther@suse.de>
19130 * tree-ssa-pre.cc (compute_avail): Revert part of last change.
19132 2022-02-28 Richard Biener <rguenther@suse.de>
19134 PR tree-optimization/104700
19135 * tree-ssa-pre.cc (get_or_alloc_expr_for): Remove and inline
19137 (find_or_generate_expression): ... here, simplifying code.
19139 2022-02-28 Tom de Vries <tdevries@suse.de>
19141 * config/nvptx/nvptx-opts.h (enum ptx_version): Add
19142 PTX_VERSION_default.
19143 * config/nvptx/nvptx.cc (handle_ptx_version_option): Handle
19144 PTX_VERSION_default.
19145 * config/nvptx/nvptx.opt: Add EnumValue "_" / PTX_VERSION_default.
19147 2022-02-28 Richard Biener <rguenther@suse.de>
19149 PR rtl-optimization/104686
19150 * ira-int.h (minmax_set_iter_cond): Use ctz_hwi to elide loop
19151 skipping bits that are zero.
19152 (ira_object_conflict_iter_cond): Likewise.
19154 2022-02-28 Hongyu Wang <hongyu.wang@intel.com>
19156 * config/i386/avx512fintrin.h (_MM_TERNLOG_ENUM): New enum.
19157 (_mm512_ternarylogic_epi64): Truncate imm to unsigned
19158 char to avoid error when using ~enum as parameter.
19159 (_mm512_mask_ternarylogic_epi64): Likewise.
19160 (_mm512_maskz_ternarylogic_epi64): Likewise.
19161 (_mm512_ternarylogic_epi32): Likewise.
19162 (_mm512_mask_ternarylogic_epi32): Likewise.
19163 (_mm512_maskz_ternarylogic_epi32): Likewise.
19164 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64):
19165 Adjust imm param type to unsigned char.
19166 (_mm256_mask_ternarylogic_epi64): Likewise.
19167 (_mm256_maskz_ternarylogic_epi64): Likewise.
19168 (_mm256_ternarylogic_epi32): Likewise.
19169 (_mm256_mask_ternarylogic_epi32): Likewise.
19170 (_mm256_maskz_ternarylogic_epi32): Likewise.
19171 (_mm_ternarylogic_epi64): Likewise.
19172 (_mm_mask_ternarylogic_epi64): Likewise.
19173 (_mm_maskz_ternarylogic_epi64): Likewise.
19174 (_mm_ternarylogic_epi32): Likewise.
19175 (_mm_mask_ternarylogic_epi32): Likewise.
19176 (_mm_maskz_ternarylogic_epi32): Likewise.
19178 2022-02-25 Jakub Jelinek <jakub@redhat.com>
19179 Marc Glisse <marc.glisse@inria.fr>
19181 PR tree-optimization/104675
19182 * match.pd (t * 2U / 2 -> t & (~0 / 2), t / 2U * 2 -> t & ~1):
19183 Restrict simplifications to INTEGRAL_TYPE_P.
19185 2022-02-25 Jakub Jelinek <jakub@redhat.com>
19188 * config/rs6000/vector.md (movmisalign<mode>): Use rs6000_emit_move.
19190 2022-02-25 Claudiu Zissulescu <claziss@synopsys.com>
19192 * config/arc/arc.cc (gen_compare_reg): Return NULL_RTX if the
19193 comparison is not valid.
19194 * config/arc/arc.md (movsicc): Fail if comparison is not valid.
19195 (movdicc): Likewise.
19196 (movsfcc): Likewise.
19197 (movdfcc): Likewise.
19199 2022-02-25 Richard Biener <rguenther@suse.de>
19201 PR tree-optimization/103037
19202 * tree-ssa-sccvn.h (alloc_vn_nary_op_noinit): Declare.
19203 (vn_nary_length_from_stmt): Likewise.
19204 (init_vn_nary_op_from_stmt): Likewise.
19205 (vn_nary_op_compute_hash): Likewise.
19206 * tree-ssa-sccvn.cc (alloc_vn_nary_op_noinit): Export.
19207 (vn_nary_length_from_stmt): Likewise.
19208 (init_vn_nary_op_from_stmt): Likewise.
19209 (vn_nary_op_compute_hash): Likewise.
19210 * tree-ssa-pre.cc (pre_expr_obstack): New obstack.
19211 (get_or_alloc_expr_for_nary): Pass in the value-id to use,
19212 (re-)compute the hash value and if the expression is not
19213 found allocate it from pre_expr_obstack.
19214 (phi_translate_1): Do not insert the NARY found in the
19215 VN tables but build a PRE expression from the valueized
19216 NARY with the value-id we eventually found.
19217 (find_or_generate_expression): Assert we have an entry
19218 for constant values.
19219 (compute_avail): Insert not valueized expressions into
19220 EXP_GEN using the value-id from the VN tables.
19221 (init_pre): Allocate pre_expr_obstack.
19222 (fini_pre): Free pre_expr_obstack.
19224 2022-02-25 Jakub Jelinek <jakub@redhat.com>
19227 * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_FLOATxFDI_387.
19228 * config/i386/i386.md (splitter to floatdi<mode>2_i387_with_xmm): Use
19229 SLOT_FLOATxFDI_387 rather than SLOT_TEMP.
19231 2022-02-25 Jakub Jelinek <jakub@redhat.com>
19233 * warning-control.cc (get_nowarn_spec): Comment spelling fix.
19235 2022-02-25 Jakub Jelinek <jakub@redhat.com>
19237 PR middle-end/104679
19238 * internal-fn.cc (expand_SPACESHIP): Call do_pending_stack_adjust.
19240 2022-02-25 Jakub Jelinek <jakub@redhat.com>
19242 PR tree-optimization/104675
19243 * match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for
19246 2022-02-25 Alexandre Oliva <oliva@adacore.com>
19250 * expr.cc (emit_move_multi_word): Restore clobbers during LRA.
19252 2022-02-25 Alexandre Oliva <oliva@adacore.com>
19254 PR middle-end/104540
19255 * dwarf2cfi.cc (cfi_oprnd_equal_p): Cope with NULL
19258 2022-02-25 Alexandre Oliva <oliva@adacore.com>
19260 PR tree-optimization/103856
19261 * gimple-harden-conditionals.cc (non_eh_succ_edge): Enable the
19262 eh edge to be requested through an extra parameter.
19263 (pass_harden_compares::execute): Copy PHI args in the EH dest
19264 block for the new EH edge added for the inverted compare.
19266 2022-02-24 Palmer Dabbelt <palmer@rivosinc.com>
19268 * doc/invoke.texi (RISC-V -mcmodel=medany): Document the degree
19269 of position independence that -mcmodel=medany affords.
19271 2022-02-24 Jose E. Marchesi <jose.marchesi@oracle.com>
19274 * configure.ac: --disable-gcov if targetting bpf-*.
19275 * configure: Regenerate.
19277 2022-02-24 Richard Biener <rguenther@suse.de>
19279 PR tree-optimization/104676
19280 * tree-loop-distribution.cc (loop_distribution::execute):
19281 Do a full scev_reset.
19283 2022-02-24 Jakub Jelinek <jakub@redhat.com>
19285 PR tree-optimization/104601
19286 * tree-ssa-sccvn.cc (visit_reference_op_call): For calls with
19287 non-SSA_NAME lhs value number vdef to itself instead of e.g. the
19290 2022-02-24 Tom de Vries <tdevries@suse.de>
19291 Tobias Burnus <tobias@codesourcery.com>
19293 * config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Handle
19294 sm_70, sm_75 and sm_80.
19295 * config/nvptx/t-omp-device: Add sm_53, sm_70, sm_75 and sm_80.
19297 2022-02-24 Tom de Vries <tdevries@suse.de>
19299 * config/nvptx/nvptx.md (define_insn "rotlsi3", define_insn
19300 "rotrsi3"): New define_insn.
19302 2022-02-24 Tom de Vries <tdevries@suse.de>
19304 * config/nvptx/nvptx.cc (gen_comment): Use
19305 DECL_SOURCE_LOCATION (cfun->decl) instead of cfun->function_start_locus.
19307 2022-02-24 liuhongt <hongtao.liu@intel.com>
19309 * config/i386/sse.md (<code>v1ti3): Add suffix and replace
19310 isa attr of alternative 2 from avx to avx512vl.
19312 2022-02-23 Richard Biener <rguenther@suse.de>
19313 Jakub Jelinek <jakub@redhat.com>
19315 PR tree-optimization/104644
19316 * doc/match-and-simplify.texi: Amend ! documentation.
19317 * genmatch.cc (expr::gen_transform): Code-generate ! support
19319 (parser::parse_expr): Allow ! for GENERIC.
19320 * match.pd (cmp (bswap @0) INTEGER_CST@1): Use ! modifier on
19323 2022-02-23 Richard Biener <rguenther@suse.de>
19325 PR tree-optimization/101636
19326 * tree-vect-slp.cc (vect_print_slp_tree): Dump the
19327 vector type of the node.
19328 (vect_slp_analyze_operations): Make sure the CTOR
19329 is vectorized with an expected type.
19330 (vectorize_slp_instance_root_stmt): Revert r10-5979 fix.
19332 2022-02-23 Jakub Jelinek <jakub@redhat.com>
19335 * gimple-warn-recursion.cc (pass_warn_recursion::find_function_exit):
19336 Don't warn about calls to corresponding builtin from extern inline
19337 gnu_inline wrappers.
19339 2022-02-23 Roger Sayle <roger@nextmovesoftware.com>
19342 * config/nvptx/nvptx.md (*movhf_insn): Add subregs_ok attribute.
19344 2022-02-23 Christophe Lyon <christophe.lyon@arm.com>
19348 * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Fix
19351 2022-02-23 Cui,Lili <lili.cui@intel.com>
19353 * doc/invoke.texi: Update documents for Intel architectures.
19355 2022-02-22 Roger Sayle <roger@nextmovesoftware.com>
19357 * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop): Restore
19360 2022-02-22 Thomas Schwinge <thomas@codesourcery.com>
19362 * omp-low.cc (omp_build_component_ref): Move function...
19363 * omp-general.cc (omp_build_component_ref): ... here. Remove
19365 * omp-general.h (omp_build_component_ref): Declare function.
19366 * omp-oacc-neuter-broadcast.cc (oacc_build_component_ref): Remove
19368 (build_receiver_ref, build_sender_ref): Call
19369 'omp_build_component_ref' instead.
19371 2022-02-22 Thomas Schwinge <thomas@codesourcery.com>
19373 * omp-oacc-neuter-broadcast.cc (record_field_map_t): Further
19374 simplify. Adjust all users.
19376 2022-02-22 Segher Boessenkool <segher@kernel.crashing.org>
19379 * config/rs6000/rs6000.cc (atomic_hold_decl, atomic_clear_decl,
19380 atomic_update_decl): Add GTY markup.
19382 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
19384 * config/arm/arm.h (REG_CLASS_CONTENTS): Add VPR_REG to ALL_REGS.
19386 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
19390 * config/arm/arm-builtins.cc (CX_UNARY_UNONE_QUALIFIERS): Use
19392 (CX_BINARY_UNONE_QUALIFIERS): Likewise.
19393 (CX_TERNARY_UNONE_QUALIFIERS): Likewise.
19394 (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
19395 (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
19396 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Delete.
19397 * config/arm/arm_mve_builtins.def: Use predicated qualifiers.
19398 * config/arm/mve.md: Use VxBI instead of HI.
19400 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
19404 * config/arm/arm-builtins.cc (STRSBS_P_QUALIFIERS): Use predicate
19406 (STRSBU_P_QUALIFIERS): Likewise.
19407 (LDRGBS_Z_QUALIFIERS): Likewise.
19408 (LDRGBU_Z_QUALIFIERS): Likewise.
19409 (LDRGBWBXU_Z_QUALIFIERS): Likewise.
19410 (LDRGBWBS_Z_QUALIFIERS): Likewise.
19411 (LDRGBWBU_Z_QUALIFIERS): Likewise.
19412 (STRSBWBS_P_QUALIFIERS): Likewise.
19413 (STRSBWBU_P_QUALIFIERS): Likewise.
19414 * config/arm/mve.md: Use VxBI instead of HI.
19416 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
19420 * config/arm/arm-builtins.cc (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
19421 (TERNOP_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
19422 (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
19423 (TERNOP_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
19424 (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
19425 (TERNOP_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
19426 (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Change to ...
19427 (TERNOP_NONE_NONE_UNONE_PRED_QUALIFIERS): ... this.
19428 (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
19429 (QUADOP_UNONE_UNONE_NONE_NONE_PRED_QUALIFIERS): ... this.
19430 (QUADOP_NONE_NONE_NONE_NONE_PRED_QUALIFIERS): New.
19431 (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
19432 (QUADOP_NONE_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
19433 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
19434 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
19435 (QUADOP_UNONE_UNONE_NONE_IMM_PRED_QUALIFIERS): ... this.
19436 (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
19437 (QUADOP_NONE_NONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
19438 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
19439 (QUADOP_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
19440 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
19441 (QUADOP_UNONE_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
19442 (STRS_P_QUALIFIERS): Use predicate qualifier.
19443 (STRU_P_QUALIFIERS): Likewise.
19444 (STRSU_P_QUALIFIERS): Likewise.
19445 (STRSS_P_QUALIFIERS): Likewise.
19446 (LDRGS_Z_QUALIFIERS): Likewise.
19447 (LDRGU_Z_QUALIFIERS): Likewise.
19448 (LDRS_Z_QUALIFIERS): Likewise.
19449 (LDRU_Z_QUALIFIERS): Likewise.
19450 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
19451 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
19452 (BINOP_NONE_NONE_PRED_QUALIFIERS): New.
19453 (BINOP_UNONE_UNONE_PRED_QUALIFIERS): New.
19454 * config/arm/arm_mve_builtins.def: Use new predicated qualifiers.
19455 * config/arm/mve.md: Use MVE_VPRED instead of HI.
19457 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
19461 * config/arm/arm-builtins.cc (BINOP_UNONE_NONE_NONE_QUALIFIERS):
19463 (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
19464 (TERNOP_PRED_NONE_NONE_PRED_QUALIFIERS): ... this.
19465 (TERNOP_PRED_UNONE_UNONE_PRED_QUALIFIERS): New.
19466 * config/arm/arm_mve_builtins.def (vcmp*q_n_, vcmp*q_m_f): Use new
19467 predicated qualifiers.
19468 * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_n_<mode>)
19469 (mve_vcmp*q_m_f<mode>): Use MVE_VPRED instead of HI.
19471 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
19474 * config/arm/arm-protos.h (arm_get_mask_mode): New prototype.
19475 (arm_expand_vector_compare): Update prototype.
19476 * config/arm/arm.cc (TARGET_VECTORIZE_GET_MASK_MODE): New.
19477 (arm_vector_mode_supported_p): Add support for VxBI modes.
19478 (arm_expand_vector_compare): Remove useless generation of vpsel.
19479 (arm_expand_vcond): Fix select operands.
19480 (arm_get_mask_mode): New.
19481 * config/arm/mve.md (vec_cmp<mode><MVE_vpred>): New.
19482 (vec_cmpu<mode><MVE_vpred>): New.
19483 (vcond_mask_<mode><MVE_vpred>): New.
19484 * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>)
19485 (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): Move to ...
19486 * config/arm/neon.md (vec_cmp<mode><v_cmp_result>)
19487 (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): ... here
19488 and disable for MVE.
19489 * doc/sourcebuild.texi (arm_mve): Document new effective-target.
19491 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
19495 * config/arm/arm-builtins.cc (BINOP_PRED_UNONE_UNONE_QUALIFIERS)
19496 (BINOP_PRED_NONE_NONE_QUALIFIERS)
19497 (TERNOP_NONE_NONE_NONE_PRED_QUALIFIERS)
19498 (TERNOP_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
19499 * config/arm/arm-protos.h (mve_bool_vec_to_const): New.
19500 * config/arm/arm.cc (arm_hard_regno_mode_ok): Handle new VxBI
19502 (arm_mode_to_pred_mode): New.
19503 (arm_expand_vector_compare): Use the right VxBI mode instead of
19505 (arm_expand_vcond): Likewise.
19506 (simd_valid_immediate): Handle MODE_VECTOR_BOOL.
19507 (mve_bool_vec_to_const): New.
19508 (neon_make_constant): Call mve_bool_vec_to_const when needed.
19509 * config/arm/arm_mve_builtins.def (vcmpneq_, vcmphiq_, vcmpcsq_)
19510 (vcmpltq_, vcmpleq_, vcmpgtq_, vcmpgeq_, vcmpeqq_, vcmpneq_f)
19511 (vcmpltq_f, vcmpleq_f, vcmpgtq_f, vcmpgeq_f, vcmpeqq_f, vpselq_u)
19512 (vpselq_s, vpselq_f): Use new predicated qualifiers.
19513 * config/arm/constraints.md (DB): New.
19514 * config/arm/iterators.md (MVE_7, MVE_7_HI): New mode iterators.
19515 (MVE_VPRED, MVE_vpred): New attribute iterators.
19516 * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>)
19517 (@mve_vcmp<mve_cmp_op>q_f<mode>, @mve_vpselq_<supf><mode>)
19518 (@mve_vpselq_f<mode>): Use MVE_VPRED instead of HI.
19519 (@mve_vpselq_<supf>v2di): Define separately.
19520 (mov<mode>): New expander for VxBI modes.
19521 * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Use
19522 MVE_7_HI iterator and add support for DB constraint.
19524 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
19525 Richard Sandiford <richard.sandiford@arm.com>
19529 * config/aarch64/aarch64-modes.def (VNx16BI, VNx8BI, VNx4BI,
19530 VNx2BI): Update definition.
19531 * config/arm/arm-builtins.cc (arm_init_simd_builtin_types): Add new
19533 (arm_init_builtin): Map predicate vectors arguments to HImode.
19534 (arm_expand_builtin_args): Move HImode predicate arguments to VxBI
19535 rtx. Move return value to HImode rtx.
19536 * config/arm/arm-builtins.h (arm_type_qualifiers): Add qualifier_predicate.
19537 * config/arm/arm-modes.def (B2I, B4I, V16BI, V8BI, V4BI): New modes.
19538 * config/arm/arm-simd-builtin-types.def (Pred1x16_t,
19539 Pred2x8_t,Pred4x4_t): New.
19540 * emit-rtl.cc (init_emit_once): Handle all boolean modes.
19541 * genmodes.cc (mode_data): Add boolean field.
19542 (blank_mode): Initialize it.
19543 (make_complex_modes): Fix handling of boolean modes.
19544 (make_vector_modes): Likewise.
19545 (VECTOR_BOOL_MODE): Use new COMPONENT parameter.
19546 (make_vector_bool_mode): Likewise.
19548 (make_bool_mode): New.
19549 (emit_insn_modes_h): Fix generation of boolean modes.
19550 (emit_class_narrowest_mode): Likewise.
19551 * machmode.def: (VECTOR_BOOL_MODE): Document new COMPONENT
19552 parameter. Use new BOOL_MODE instead of FRACTIONAL_INT_MODE to
19554 * rtx-vector-builder.cc (rtx_vector_builder::find_cached_value):
19555 Fix handling of constm1_rtx for VECTOR_BOOL.
19556 * simplify-rtx.cc (native_encode_rtx): Fix support for VECTOR_BOOL.
19557 (native_decode_vector_rtx): Likewise.
19558 (test_vector_ops_duplicate): Skip vec_merge test
19559 with vectors of booleans.
19560 * varasm.cc (output_constant_pool_2): Likewise.
19562 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
19564 * config/arm/mve.md (mve_vmvnq_n_<supf><mode>): Use V_elem mode
19567 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
19569 * config/arm/arm.cc (arm_class_likely_spilled_p): Handle VPR_REG.
19571 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
19573 * config/arm/arm.h (reg_class): Add GENERAL_AND_VPR_REGS.
19574 (REG_CLASS_NAMES): Likewise.
19575 (REG_CLASS_CONTENTS): Likewise.
19576 (CLASS_MAX_NREGS): Handle VPR.
19577 * config/arm/arm.cc (arm_hard_regno_nregs): Handle VPR.
19579 2022-02-22 Tobias Burnus <tobias@codesourcery.com>
19580 Tom de Vries <tdevries@suse.de>
19582 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Handle SM70.
19583 * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm):
19585 * config/nvptx/nvptx.opt (misa): Add sm_70 alias PTX_ISA_SM70.
19587 2022-02-22 Tobias Burnus <tobias@codesourcery.com>
19588 Tom de Vries <tdevries@suse.de>
19590 * config/nvptx/nvptx.opt (mptx): Add 6.0 alias PTX_VERSION_6_0.
19591 * doc/invoke.texi (-mptx): Update for new values and defaults.
19593 2022-02-22 Tom de Vries <tdevries@suse.de>
19595 * config/nvptx/nvptx.cc (gen_comment): New function.
19596 (workaround_uninit_method_1, workaround_uninit_method_2)
19597 (workaround_uninit_method_3): : Use gen_comment.
19598 * config/nvptx/nvptx.opt (mptx-comment): New option.
19600 2022-02-22 Richard Biener <rguenther@suse.de>
19602 * tree-vect-slp.cc (vect_build_slp_tree_2): Dump the def used
19605 2022-02-22 Roger Sayle <roger@nextmovesoftware.com>
19606 Richard Biener <rguenther@suse.de>
19608 * fold-const.cc (ctor_single_nonzero_element): New function to
19609 return the single non-zero element of a (vector) constructor.
19610 * fold-const.h (ctor_single_nonzero_element): Prototype here.
19611 * match.pd (reduc (constructor@0)): Simplify reductions of a
19612 constructor containing a single non-zero element.
19613 (reduc (@0 op VECTOR_CST) -> (reduc @0) op CONST): Simplify
19614 reductions of vector operations of the same operator with
19615 constant vector operands.
19617 2022-02-22 Jakub Jelinek <jakub@redhat.com>
19619 PR tree-optimization/104604
19620 * gimple-range-fold.cc (adjust_imagpart_expr, adjust_realpart_expr):
19621 Only check if gimple_assign_rhs1 is COMPLEX_CST if
19622 gimple_assign_rhs_code is COMPLEX_CST.
19624 2022-02-22 Jakub Jelinek <jakub@redhat.com>
19627 * config/i386/i386-expand.cc (ix86_expand_copysign): Call force_reg
19628 on input operands before calling lowpart_subreg on it. For output
19629 operand, use a vmode pseudo as destination and then move its lowpart
19630 subreg into operands[0] if lowpart_subreg fails on dest.
19631 (ix86_expand_xorsign): Likewise.
19633 2022-02-22 Richard Biener <rguenther@suse.de>
19635 PR tree-optimization/104582
19637 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
19638 Cost GPR to vector register moves for integer vector construction.
19640 2022-02-22 Richard Biener <rguenther@suse.de>
19642 PR tree-optimization/104582
19643 * tree-vectorizer.h (stmt_info_for_cost::node): New field.
19644 (vector_costs::add_stmt_cost): Add SLP node parameter.
19645 (dump_stmt_cost): Likewise.
19646 (add_stmt_cost): Likewise, new overload and adjust.
19647 (add_stmt_costs): Adjust.
19648 (record_stmt_cost): New overload.
19649 * tree-vectorizer.cc (dump_stmt_cost): Dump the SLP node.
19650 (vector_costs::add_stmt_cost): Adjust.
19651 * tree-vect-loop.cc (vect_estimate_min_profitable_iters):
19653 * tree-vect-slp.cc (vect_prologue_cost_for_slp): Record
19654 the SLP node for costing.
19655 (vectorizable_slp_permutation): Likewise.
19656 * tree-vect-stmts.cc (record_stmt_cost): Adjust and add
19658 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
19660 * config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost):
19662 * config/rs6000/rs6000.cc (rs6000_vector_costs::add_stmt_cost):
19664 (rs6000_cost_data::adjust_vect_cost_per_loop): Likewise.
19666 2022-02-22 Richard Biener <rguenther@suse.de>
19668 PR tree-optimization/104582
19669 * tree-vectorizer.h (add_stmt_cost): New overload.
19670 (record_stmt_cost): Likewise.
19671 * tree-vect-loop.cc (vect_compute_single_scalar_iteration_cost):
19672 Use add_stmt_costs.
19673 (vect_get_known_peeling_cost): Use new overloads.
19674 (vect_estimate_min_profitable_iters): Likewise. Consistently
19675 use scalar_stmt for costing versioning checks.
19676 * tree-vect-stmts.cc (record_stmt_cost): New overload.
19678 2022-02-22 Hongyu Wang <hongyu.wang@intel.com>
19681 * config/i386/i386-expand.cc (ix86_expand_atomic_fetch_op_loop):
19682 Split atomic fetch and loop part.
19683 (ix86_expand_cmpxchg_loop): New expander for cmpxchg loop.
19684 * config/i386/i386-protos.h (ix86_expand_cmpxchg_loop): New
19686 * config/i386/sync.md (atomic_compare_and_swap<mode>): Call new
19687 expander under TARGET_RELAX_CMPXCHG_LOOP.
19688 (atomic_compare_and_swap<mode>): Likewise for doubleword modes.
19690 2022-02-21 Dan Li <ashimida@linux.alibaba.com>
19692 * config/aarch64/aarch64.cc (SLOT_REQUIRED):
19693 Change wb_candidate[12] to wb_push_candidate[12].
19694 (aarch64_layout_frame): Likewise, and
19695 change callee_adjust when scs is enabled.
19696 (aarch64_save_callee_saves):
19697 Change wb_candidate[12] to wb_push_candidate[12].
19698 (aarch64_restore_callee_saves):
19699 Change wb_candidate[12] to wb_pop_candidate[12].
19700 (aarch64_get_separate_components):
19701 Change wb_candidate[12] to wb_push_candidate[12].
19702 (aarch64_expand_prologue): Push x30 onto SCS before it's
19704 (aarch64_expand_epilogue): Pop x30 frome SCS, while
19705 preventing it from being popped from the regular stack again.
19706 (aarch64_override_options_internal): Add SCS compile option check.
19707 (TARGET_HAVE_SHADOW_CALL_STACK): New hook.
19708 * config/aarch64/aarch64.h (struct GTY): Add is_scs_enabled,
19709 wb_pop_candidate[12], and rename wb_candidate[12] to
19710 wb_push_candidate[12].
19711 * config/aarch64/aarch64.md (scs_push): New template.
19712 (scs_pop): Likewise.
19713 * doc/invoke.texi: Document -fsanitize=shadow-call-stack.
19714 * doc/tm.texi: Regenerate.
19715 * doc/tm.texi.in: Add hook have_shadow_call_stack.
19716 * flag-types.h (enum sanitize_code):
19717 Add SANITIZE_SHADOW_CALL_STACK.
19718 * opts.cc (parse_sanitizer_options): Add shadow-call-stack
19719 and exclude SANITIZE_SHADOW_CALL_STACK.
19720 * target.def: New hook.
19721 * toplev.cc (process_options): Add SCS compile option check.
19722 * ubsan.cc (ubsan_expand_null_ifn): Enum type conversion.
19724 2022-02-21 Tom de Vries <tdevries@suse.de>
19727 * config/nvptx/nvptx.cc (workaround_uninit_method_1)
19728 (workaround_uninit_method_2, workaround_uninit_method_3)
19729 (workaround_uninit): New function.
19730 (nvptx_reorg): Use workaround_uninit.
19731 * config/nvptx/nvptx.opt (minit-regs): New option.
19733 2022-02-21 Andre Vieira <andre.simoesdiasvieira@arm.com>
19735 PR rtl-optimization/104498
19736 * alias.cc (compare_base_symbol_refs): Correct distance computation
19737 when swapping x and y.
19739 2022-02-21 Andrew Pinski <apinski@marvell.com>
19742 * tree-ssa.cc (tree_ssa_useless_type_conversion):
19743 Check the inner type before calling useless_type_conversion_p.
19745 2022-02-19 Tom de Vries <tdevries@suse.de>
19747 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle SET insn.
19748 * config/nvptx/nvptx.md
19749 (define_insn "nvptx_atomic_store<mode>"): Rename to ...
19750 (define_insn "nvptx_atomic_store_sm70<mode>"): This.
19751 (define_insn "nvptx_atomic_store<mode>"): New define_insn.
19752 (define_expand "atomic_store<mode>"): Handle rename. Use
19753 nvptx_atomic_store instead of atomic_exchange.
19755 2022-02-19 Tom de Vries <tdevries@suse.de>
19757 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle all
19758 insns with atomic attribute. Assert that all handled insns are
19760 * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"):
19761 Set atomic attribute to false.
19763 2022-02-19 Tom de Vries <tdevries@suse.de>
19765 * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Change return
19767 (nvptx_reorg_uniform_simt): Insert nvptx_uniform_warp_check or
19768 nvptx_warpsync, if necessary.
19770 2022-02-19 Jakub Jelinek <jakub@redhat.com>
19772 PR sanitizer/102656
19773 * asan.cc (instrument_derefs): If inner is a RESULT_DECL and access is
19774 known to be within bounds, treat it like automatic variables.
19775 If instrumenting access and inner is {VAR,PARM,RESULT}_DECL from
19776 current function and !TREE_STATIC which is not TREE_ADDRESSABLE, mark
19779 2022-02-18 Pat Haugen <pthaugen@linux.ibm.com>
19781 * config/rs6000/rs6000.opt (mpower10-fusion): Mark Undocumented.
19782 (mpower10-fusion-ld-cmpi, mpower10-fusion-2logical,
19783 mpower10-fusion-logical-add, mpower10-fusion-add-logical,
19784 mpower10-fusion-2add, mpower10-fusion-2store): Remove.
19785 * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER,
19786 OTHER_P9_VECTOR_MASKS): Remove Power10 fusion sub-options.
19787 * config/rs6000/rs6000.cc (rs6000_option_override_internal,
19788 power10_sched_reorder): Likewise.
19789 * config/rs6000/genfusion.pl (gen_ld_cmpi_p10, gen_logical_addsubf,
19790 gen_addadd): Likewise
19791 * config/rs6000/fusion.md: Regenerate.
19793 2022-02-18 Jakub Jelinek <jakub@redhat.com>
19797 * config/rs6000/mm_malloc.h (_mm_malloc): Call posix_memalign
19798 rather than __posix_memalign.
19800 2022-02-18 Richard Biener <rguenther@suse.de>
19803 * config/i386/i386.cc (ix86_avx_u128_mode_source): Remove.
19804 (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY instead
19805 of calling ix86_avx_u128_mode_source which would eventually
19806 have returned AVX_U128_ANY in some very special case.
19808 2022-02-18 Richard Biener <rguenther@suse.de>
19810 PR tree-optimization/96881
19811 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Comment
19813 (control_parents_preserved_p): New function.
19814 (eliminate_unnecessary_stmts): Check that we preserved control
19815 parents before retaining a CLOBBER.
19816 (perform_tree_ssa_dce): Pass down aggressive flag
19817 to eliminate_unnecessary_stmts.
19819 2022-02-17 Jason Merrill <jason@redhat.com>
19821 * tree.cc (warn_deprecated_use): Look for TYPE_STUB_DECL
19822 on TYPE_MAIN_VARIANT.
19824 2022-02-17 Paul A. Clarke <pc@us.ibm.com>
19827 * config/rs6000/bmi2intrin.h: Uglify local variables.
19828 * config/rs6000/emmintrin.h: Likewise.
19829 * config/rs6000/mm_malloc.h: Likewise.
19830 * config/rs6000/mmintrin.h: Likewise.
19831 * config/rs6000/pmmintrin.h: Likewise.
19832 * config/rs6000/smmintrin.h: Likewise.
19833 * config/rs6000/tmmintrin.h: Likewise.
19834 * config/rs6000/xmmintrin.h: Likewise.
19836 2022-02-17 Robin Dapp <rdapp@linux.ibm.com>
19839 * config/rs6000/rs6000.cc (rs6000_emit_int_cmove): Return false
19840 if the expected comparison's first operand is of mode MODE_CC.
19842 2022-02-17 Vladimir N. Makarov <vmakarov@redhat.com>
19844 PR rtl-optimization/104447
19845 * lra-constraints.cc (spill_hard_reg_in_range): Initiate ignore
19846 hard reg set by lra_no_alloc_regs.
19848 2022-02-17 liuhongt <hongtao.liu@intel.com>
19850 PR tree-optimization/104551
19851 PR tree-optimization/103771
19852 * match.pd (cond_expr_convert_p): Add types_match check when
19853 convert is extension.
19854 * tree-vect-patterns.cc
19855 (gimple_cond_expr_convert_p): Adjust comments.
19856 (vect_recog_cond_expr_convert_pattern): Ditto.
19858 2022-02-17 Jakub Jelinek <jakub@redhat.com>
19861 * valtrack.cc (debug_lowpart_subreg): Don't call gen_rtx_raw_SUBREG
19862 if expr has VOIDmode.
19864 2022-02-17 liuhongt <hongtao.liu@intel.com>
19866 * config/i386/cpuid.h (bit_MPX): Removed.
19867 (bit_BNDREGS): Ditto.
19868 (bit_BNDCSR): Ditto.
19870 2022-02-17 Michael Meissner <meissner@the-meissners.org>
19873 * config/rs6000/rs6000-c.cc (rs6000_cpu_cpp_builtins): Define
19874 __SIZEOF_IBM128__ if the IBM 128-bit long double type is created.
19875 Define __SIZEOF_FLOAT128__ if the IEEE 128-bit floating point type
19878 2022-02-16 Andrew MacLeod <amacleod@redhat.com>
19880 * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use
19881 range_compatible_p instead of direct type comparison.
19883 2022-02-16 Jakub Jelinek <jakub@redhat.com>
19885 PR rtl-optimization/104544
19886 * combine.cc (try_combine): When looking for insn whose links
19887 should be updated from i3 to i2, don't stop on debug insns, instead
19890 2022-02-16 Richard Sandiford <richard.sandiford@arm.com>
19893 * config/aarch64/iterators.md (LOGICAL_OR_PLUS): New iterator.
19894 * config/aarch64/aarch64.md: Extend the PR100056 patterns
19895 to handle plus in the same way as ior, if the operands have
19896 no set bits in common.
19898 2022-02-15 Andrew MacLeod <amacleod@redhat.com>
19900 PR tree-optimization/104526
19901 * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Call
19903 * gimple-range-gori.cc (range_def_chain::get_def_chain): Force a build
19904 of dependency chain if there isn't one.
19905 (gori_compute::condexpr_adjust): New.
19906 * gimple-range-gori.h (class gori_compute): New prototype.
19908 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
19911 * config/aarch64/aarch64-protos.h (aarch64_maxmin_plus_const):
19913 * config/aarch64/aarch64.cc (aarch64_maxmin_plus_const): New function.
19914 * config/aarch64/aarch64.md (*aarch64_minmax_plus): New pattern.
19916 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
19918 * tree-vectorizer.h (vect_scalar_ops_slice): New struct.
19919 (vect_scalar_ops_slice_hash): Likewise.
19920 (vect_scalar_ops_slice::op): New function.
19921 * tree-vect-slp.cc (vect_scalar_ops_slice::all_same_p): New function.
19922 (vect_scalar_ops_slice_hash::hash): Likewise.
19923 (vect_scalar_ops_slice_hash::equal): Likewise.
19924 (vect_prologue_cost_for_slp): Check for duplicate vectors.
19925 * config/aarch64/aarch64.cc
19926 (aarch64_vector_costs::m_stp_sequence_cost): New member variable.
19927 (aarch64_aligned_constant_offset_p): New function.
19928 (aarch64_stp_sequence_cost): Likewise.
19929 (aarch64_vector_costs::add_stmt_cost): Handle new STP heuristic.
19930 (aarch64_vector_costs::finish_cost): Likewise.
19932 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
19934 * tree-vect-slp.cc (vect_bb_vectorization_profitable_p): Fix
19937 2022-02-15 Richard Biener <rguenther@suse.de>
19939 PR tree-optimization/104543
19940 * gimple-loop-jam.cc (unroll_jam_possible_p): Check outer loop exits
19941 come after the inner loop.
19943 2022-02-15 Jakub Jelinek <jakub@redhat.com>
19946 * config/i386/host-cygwin.cc (cygwin_gt_pch_get_address): Use
19947 cannot instead of can%'t in diagnostics. Formatting fixes.
19949 2022-02-15 Jakub Jelinek <jakub@redhat.com>
19951 PR middle-end/104522
19952 * fold-const.h (native_interpret_real): Declare.
19953 * fold-const.cc (native_interpret_real): No longer static. Don't
19954 perform MODE_COMPOSITE_P verification here.
19955 (native_interpret_expr) <case REAL_TYPE>: But perform it here instead
19957 * gimple-fold.cc (clear_padding_type): Call native_interpret_real
19958 instead of native_interpret_expr.
19959 * simplify-rtx.cc (simplify_immed_subreg): Perform the native_encode_rtx
19960 and comparison verification for all FLOAT_MODE_P modes, not just
19963 2022-02-15 Richard Biener <rguenther@suse.de>
19965 PR tree-optimization/104519
19966 * fold-const.cc (multiple_of_p): Remove never true condition.
19967 * tree-ssa-loop-niter.cc (number_of_iterations_ne): Use
19968 the appropriate types for determining whether the difference
19969 of final and base is a multiple of the step.
19971 2022-02-15 Jakub Jelinek <jakub@redhat.com>
19974 * omp-low.cc (task_cpyfns): New variable.
19975 (delete_omp_context): Don't call finalize_task_copyfn from here.
19976 (create_task_copyfn): Push task_stmt into task_cpyfns.
19977 (execute_lower_omp): Call finalize_task_copyfn here on entries from
19978 task_cpyfns vector and release the vector.
19980 2022-02-14 Martin Sebor <msebor@redhat.com>
19982 PR middle-end/104355
19983 * doc/invoke.texi (-Warray-bounds): Update documentation.
19985 2022-02-14 Michael Meissner <meissner@the-meissners.org>
19988 * config/rs6000/rs6000.cc (init_float128_ibm): Update the
19989 conversion functions used to convert IFmode types.
19991 2022-02-14 Andrew Stubbs <ams@codesourcery.com>
19993 * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Use force_reg.
19995 2022-02-14 Richard Biener <rguenther@suse.de>
19997 PR tree-optimization/104528
19998 * tree-ssa.h (find_released_ssa_name): Declare.
19999 * tree-ssa.cc (find_released_ssa_name): Export.
20000 * cfgloop.cc (verify_loop_structure): Look for released
20001 SSA names in loops nb_iterations.
20002 * tree-ssa-dse.cc (pass_dse::execute): Release number of iteration
20005 2022-02-14 Richard Biener <rguenther@suse.de>
20007 PR tree-optimization/104511
20008 * tree-ssa-forwprop.cc (simplify_vector_constructor): Avoid
20009 touching DFP <-> FP conversions.
20011 2022-02-14 Richard Biener <rguenther@suse.de>
20013 PR middle-end/104497
20014 * gimplify.cc (gimplify_compound_lval): Make sure the
20015 base is a non-register if needed and possible.
20017 2022-02-13 liuhongt <hongtao.liu@intel.com>
20020 * match.pd (cond_expr_convert_p): New match.
20021 * tree-vect-patterns.cc (gimple_cond_expr_convert_p): Declare.
20022 (vect_recog_cond_expr_convert_pattern): New.
20024 2022-02-12 Jakub Jelinek <jakub@redhat.com>
20026 PR sanitizer/104449
20027 * asan.cc: Include tree-eh.h.
20028 (handle_builtin_alloca): Handle the case when __builtin_alloca or
20029 __builtin_alloca_with_align can throw.
20031 2022-02-12 Jakub Jelinek <jakub@redhat.com>
20034 * config/i386/i386.md (cvtsd2ss splitter): If operands[1] is xmm16+
20035 and AVX512VL isn't available, move operands[1] to operands[0] first.
20037 2022-02-12 Uroš Bizjak <ubizjak@gmail.com>
20040 * config/i386/i386.cc (type_natural_mode):
20041 Skip decimal float vector modes.
20043 2022-02-11 Iain Sandoe <iain@sandoe.co.uk>
20044 Vladimir Makarov <vmakarov@redhat.com>
20047 * config/rs6000/rs6000.cc (darwin_rs6000_legitimate_lo_sum_const_p):
20048 Check for UNSPEC_MACHOPIC_OFFSET wrappers on symbolic addresses when
20050 (legitimate_lo_sum_address_p): Likewise.
20051 * lra-constraints.cc (process_address_1): Do not attempt to emit a reg
20052 load from an invalid lo_sum address.
20054 2022-02-11 Jakub Jelinek <jakub@redhat.com>
20056 PR tree-optimization/104499
20057 * match.pd ((X & Y) CMP 0 -> X CMP2 ~Y): Use view_convert instead
20060 2022-02-11 Jakub Jelinek <jakub@redhat.com>
20062 * tree.cc (build_common_builtin_nodes): Fix up formatting in
20063 __builtin_clear_padding decl creation.
20064 * gimplify.cc (gimple_add_padding_init_for_auto_var): Encode
20065 for_auto_init in the value of 2nd BUILT_IN_CLEAR_PADDING
20066 argument rather than in 3rd argument.
20067 (gimplify_call_expr): Likewise. Fix up comment formatting.
20068 * gimple-fold.cc (gimple_fold_builtin_clear_padding): Expect
20069 2 arguments instead of 3, take for_auto_init from the value
20072 2022-02-11 Vladimir N. Makarov <vmakarov@redhat.com>
20074 PR rtl-optimization/104400
20075 * lra-constraints.cc (process_alt_operands): Don't make union of
20076 this_alternative_exclude_start_hard_regs when reg class in insn
20077 alternative covers other reg classes in the same alternative.
20079 2022-02-11 Jakub Jelinek <jakub@redhat.com>
20081 PR middle-end/104446
20082 * combine.cc (subst): Don't substitute CONST_INTs into RTX_AUTOINC
20085 2022-02-11 Richard Biener <rguenther@suse.de>
20087 PR middle-end/104496
20088 * internal-fn.cc (vectorized_internal_fn_supported_p):
20089 Bail out for integer mode vector types.
20091 2022-02-11 Jakub Jelinek <jakub@redhat.com>
20093 PR rtl-optimization/104459
20094 * df-scan.cc (df_insn_change_bb): Don't call df_set_bb_dirty when
20095 moving DEBUG_INSNs between bbs.
20097 2022-02-11 liuhongt <hongtao.liu@intel.com>
20099 PR tree-optimization/104479
20100 * match.pd (uncond_op + vec_cond -> cond_op): Add single_use
20101 for the dest of uncond_op.
20103 2022-02-11 Tom de Vries <tdevries@suse.de>
20106 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle asm
20109 2022-02-10 Qing Zhao <qing.zhao@oracle.com>
20111 PR middle-end/100775
20112 * function.cc (gen_call_used_regs_seq): Call
20113 df_update_exit_block_uses when updating df.
20115 2022-02-10 Uroš Bizjak <ubizjak@gmail.com>
20118 * config/i386/sse.md (vec_unpacks_float_lo_v4si):
20119 Change operand 1 constraint to register_operand.
20121 2022-02-10 Richard Biener <rguenther@suse.de>
20123 PR tree-optimization/104373
20124 * tree-ssa-sccvn.h (do_rpo_vn): New export exposing the
20126 * tree-ssa-sccvn.cc (do_rpo_vn): Export, get the default
20127 walk kind as argument.
20128 (run_rpo_vn): Adjust.
20129 (pass_fre::execute): Likewise.
20130 * tree-ssa-uninit.cc (warn_uninitialized_vars): Skip
20131 blocks not reachable.
20132 (execute_late_warn_uninitialized): Mark all edges as
20134 (execute_early_warn_uninitialized): Use VN to compute
20136 (pass_data_early_warn_uninitialized): Enable a dump file,
20137 change dump name to warn_uninit.
20139 2022-02-10 Richard Biener <rguenther@suse.de>
20141 PR middle-end/104467
20142 * match.pd (vector extract simplification): Multiply the
20143 number of CTOR elements with the number of element elements.
20145 2022-02-10 Richard Biener <rguenther@suse.de>
20147 PR tree-optimization/104466
20148 * tree-ssa-alias.cc (refs_may_alias_p_2): Use rbase1/rbase2
20149 for the MR_DEPENDENCE checks as intended.
20151 2022-02-10 Tom de Vries <tdevries@suse.de>
20153 * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"): New
20155 (define_expand "atomic_store<mode>"): Use nvptx_atomic_store<mode> for
20157 (define_c_enum "unspecv"): Add UNSPECV_ST.
20159 2022-02-10 Tom de Vries <tdevries@suse.de>
20161 * config/nvptx/nvptx-protos.h (nvptx_mem_maybe_shared_p): Declare.
20162 * config/nvptx/nvptx.cc (nvptx_mem_data_area): New static function.
20163 (nvptx_mem_maybe_shared_p): New function.
20164 * config/nvptx/nvptx.md (define_expand "atomic_store<mode>"): New
20167 2022-02-10 Tom de Vries <tdevries@suse.de>
20170 * config/nvptx/nvptx.md (define_insn "sub<mode>3"): Workaround
20171 driver JIT bug by using sub.s16 instead of sub.u16.
20173 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
20175 * config/nvptx/nvptx.md (copysign<mode>3): Allow immediate
20176 floating point constants as operands 1 and/or 2.
20178 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
20181 * config/nvptx/nvptx.md (sel_true<mode>): Fix indentation.
20182 (sel_false<mode>): Likewise.
20183 (define_code_iterator eqne): New code iterator for EQ and NE.
20184 (*selp<mode>_neg_<code>): New define_insn_and_split to optimize
20185 the negation of a selp instruction.
20186 (*selp<mode>_not_<code>): New define_insn_and_split to optimize
20187 the bitwise not of a selp instruction.
20188 (*setcc_int<mode>): Use set instruction for neg:SI of a selp.
20190 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
20192 * config/nvptx/nvptx.md (any_logic): Move code iterator earlier
20193 in machine description.
20194 (logic): Move code attribute earlier in machine description.
20195 (ilogic): New code attribute, like logic but "ior" for IOR.
20196 (and<mode>3, ior<mode>3, xor<mode>3): Delete. Replace with...
20197 (<ilogic><mode>3): New define_insn for HSDIM logic operations.
20198 (<ilogic>bi3): New define_insn for BI mode logic operations.
20199 (define_split): Lower logic operations from integer modes to
20200 BI mode predicate operations.
20202 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
20204 * config/nvptx/nvptx.md (UNSPEC_ISINF): New UNSPEC.
20205 (one_cmplbi2): New define_insn for not.pred.
20206 (mulditi3): New define_expand for signed widening multiply.
20207 (umulditi3): New define_expand for unsigned widening multiply.
20208 (smul<mode>3_highpart): New define_insn for signed highpart mult.
20209 (umul<mode>3_highpart): New define_insn for unsigned highpart mult.
20210 (*smulhi3_highpart_2): Renamed from smulhi3_highpart.
20211 (*smulsi3_highpart_2): Renamed from smulsi3_highpart.
20212 (*umulhi3_highpart_2): Renamed from umulhi3_highpart.
20213 (*umulsi3_highpart_2): Renamed from umulsi3_highpart.
20214 (*setcc<mode>_from_not_bi): New define_insn.
20215 (*setcc_isinf<mode>): New define_insn for testp.infinite.
20216 (isinf<mode>2): New define_expand.
20218 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
20220 * config/nvptx/nvptx.md (cmp<mode>): Renamed from *cmp<mode>.
20221 (setcc<mode>_from_bi): Additionally support QImode.
20222 (extendbi<mode>2): Additionally support QImode.
20223 (zero_extendbi<mode>2): Additionally support QImode.
20224 (any_sbinary, any_ubinary, any_sunary, any_uunary): New code
20225 iterators for signed and unsigned, binary and unary operations.
20226 (<sbinary>qi3, <ubinary>qi3, <sunary>qi2, <uunary>qi2): New
20227 expanders to perform QImode operations using SImode instructions.
20228 (cstoreqi4): New define_expand.
20229 (*ext_truncsi2_qi): New define_insn.
20230 (*zext_truncsi2_qi): New define_insn.
20232 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
20234 * config/nvptx/nvptx.md (*cmpf): New define_insn.
20235 (cstorehf4): New define_expand.
20236 (fmahf4): New define_insn.
20237 (neghf2): New define_insn.
20238 (abshf2): New define_insn.
20240 2022-02-10 Gerald Pfeifer <gerald@pfeifer.com>
20242 * doc/install.texi (Specific): Change the www.bitwizard.nl
20243 reference to use https.
20245 2022-02-10 Marcel Vollweiler <marcel@codesourcery.com>
20247 * gimplify.cc (gimplify_scan_omp_clauses): Added cases for
20248 OMP_CLAUSE_HAS_DEVICE_ADDR
20249 and handle array sections.
20250 (gimplify_adjust_omp_clauses): Added OMP_CLAUSE_HAS_DEVICE_ADDR case.
20251 * omp-low.cc (scan_sharing_clauses): Handle OMP_CLAUSE_HAS_DEVICE_ADDR.
20252 (lower_omp_target): Same.
20253 * tree-core.h (enum omp_clause_code): Same.
20254 * tree-nested.cc (convert_nonlocal_omp_clauses): Same.
20255 (convert_local_omp_clauses): Same.
20256 * tree-pretty-print.cc (dump_omp_clause): Same.
20259 2022-02-10 Eugene Rozenfeld <erozen@microsoft.com>
20261 * auto-profile.cc (afdo_indirect_call): Don't attempt to promote indirect calls
20262 that will result in direct recursive calls.
20264 2022-02-10 Andrew Pinski <apinski@marvell.com>
20267 * config/aarch64/aarch64.cc
20268 (aarch64_sve_expand_vector_init_handle_trailing_constants):
20269 Use CONST0_RTX instead of const0_rtx for the non-constant elements.
20271 2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
20274 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_XSAVE_UNSET):
20275 Also include OPTION_MASK_ISA2_AVX2_UNSET.
20277 2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
20280 * config/i386/i386-expand.cc (ix86_split_idivmod):
20281 Force operands[2] and operands[3] into a register..
20283 2022-02-09 Jeff Law <jeffreyalaw@gmail.com>
20286 * config/v850/v850.md (*v850_fnmasf4): Renamed from fnmasf4.
20287 (*v850_fnmssf4): Renamed from fnmssf4
20289 2022-02-09 Ian Lance Taylor <iant@golang.org>
20291 * godump.cc (go_force_record_alignment): Really name the alignment
20292 field "_" (complete 2021-12-29 change).
20294 2022-02-09 Bill Schmidt <wschmidt@linux.ibm.com>
20296 * config/rs6000/rs6000-builtins.def (VREPLACE_UN_UV2DI): Change
20297 function prototype.
20298 (VREPLACE_UN_UV4SI): Likewise.
20299 (VREPLACE_UN_V2DF): Likewise.
20300 (VREPLACE_UN_V2DI): Likewise.
20301 (VREPLACE_UN_V4SF): Likewise.
20302 (VREPLACE_UN_V4SI): Likewise.
20303 * config/rs6000/rs6000-overload.def (VEC_REPLACE_UN): Change all
20304 function prototypes.
20305 * config/rs6000/vsx.md (vreplace_un_<mode>): Remove define_expand.
20306 (vreplace_un_<mode>): New define_insn.
20308 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
20310 * config/aarch64/iterators.md (VDCSIF): New mode iterator.
20312 (single_wx, single_type, single_dtype, dblq): New mode attributes.
20313 * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Extend
20314 from VDC to VDCSIF.
20315 (store_pair_lanes<mode>): Likewise.
20316 (*aarch64_combine_internal<mode>): Likewise.
20317 (*aarch64_combine_internal_be<mode>): Likewise.
20318 (*aarch64_combinez<mode>): Likewise.
20319 (*aarch64_combinez_be<mode>): Likewise.
20320 * config/aarch64/aarch64.cc (aarch64_classify_address): Handle
20321 8-byte modes for ADDR_QUERY_LDP_STP_N.
20322 (aarch64_print_operand): Likewise for %y.
20324 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
20326 * config/aarch64/aarch64-simd.md (@aarch64_split_simd_mov<mode>):
20327 Use aarch64_combine instead of move_lo/hi_quad. Tabify.
20328 (move_lo_quad_<mode>, aarch64_simd_move_hi_quad_<mode>): Delete.
20329 (aarch64_simd_move_hi_quad_be_<mode>, move_hi_quad_<mode>): Delete.
20330 (vec_pack_trunc_<mode>): Take general_operand elements and use
20331 aarch64_combine rather than move_lo/hi_quad to combine them.
20332 (vec_pack_trunc_df): Likewise.
20334 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
20336 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine):
20338 * config/aarch64/aarch64-simd.md (@aarch64_combinez<mode>): Rename
20340 (*aarch64_combinez<mode>): ...this.
20341 (@aarch64_combinez_be<mode>): Rename to...
20342 (*aarch64_combinez_be<mode>): ...this.
20343 (@aarch64_vec_concat<mode>): New expander.
20344 (aarch64_combine<mode>): Use it.
20345 (@aarch64_simd_combine<mode>): Delete.
20346 * config/aarch64/aarch64.cc (aarch64_split_simd_combine): Delete.
20347 (aarch64_expand_vector_init): Use aarch64_vec_concat.
20349 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
20351 * config/aarch64/predicates.md (aarch64_reg_or_mem_pair_operand):
20353 * config/aarch64/aarch64-simd.md (*aarch64_combine_internal<mode>)
20354 (*aarch64_combine_internal_be<mode>): New patterns.
20356 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
20358 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>)
20359 (move_lo_quad_internal_be_<mode>): Delete.
20360 (move_lo_quad_<mode>): Use aarch64_combine<Vhalf> instead of the above.
20362 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
20364 * config/aarch64/aarch64-protos.h (aarch64_mergeable_load_pair_p):
20366 * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Use
20367 aarch64_mergeable_load_pair_p instead of inline check.
20368 * config/aarch64/aarch64.cc (aarch64_expand_vector_init): Likewise.
20369 (aarch64_check_consecutive_mems): Allow the reversed parameter
20371 (aarch64_mergeable_load_pair_p): New function.
20373 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
20375 * config/aarch64/aarch64-simd.md (vec_set<mode>): Allow the
20376 element to be an aarch64_simd_nonimmediate_operand.
20378 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
20380 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
20381 aarch64_simd_nonimmediate_operand instead of
20382 aarch64_simd_general_operand.
20383 (@aarch64_combinez<mode>): Use nonimmediate_operand instead of
20385 (@aarch64_combinez_be<mode>): Likewise.
20387 2022-02-09 Richard Biener <rguenther@suse.de>
20389 PR middle-end/104464
20390 * gimple-isel.cc (gimple_expand_vec_cond_expr): Postpone
20391 throwing check to after unproblematic replacement.
20393 2022-02-09 Roger Sayle <roger@nextmovesoftware.com>
20395 PR tree-optimization/104420
20396 * match.pd (mult @0 real_zerop): Tweak conditions for constant
20397 folding X*0.0 (or X*-0.0) to HONOR_SIGNED_ZEROS when appropriate.
20399 2022-02-09 Jakub Jelinek <jakub@redhat.com>
20402 * dwarf2out.cc (mangle_referenced_decls): New function.
20403 (tree_add_const_value_attribute): Don't call rtl_for_decl_init if
20404 early_dwarf. Instead walk the initializer and try to mangle vars or
20405 functions referenced from it.
20407 2022-02-09 Andrew MacLeod <amacleod@redhat.com>
20409 PR tree-optimization/104288
20410 * gimple-range-cache.cc (non_null_ref::set_nonnull): New.
20411 (non_null_ref::adjust_range): Move to header.
20412 (ranger_cache::range_of_def): Don't check non-null.
20413 (ranger_cache::entry_range): Don't check non-null.
20414 (ranger_cache::range_on_edge): Check for nonnull on normal edges.
20415 (ranger_cache::update_to_nonnull): New.
20416 (non_null_loadstore): New.
20417 (ranger_cache::block_apply_nonnull): New.
20418 * gimple-range-cache.h (class non_null_ref): Update prototypes.
20419 (non_null_ref::adjust_range): Move to here and inline.
20420 (class ranger_cache): Update prototypes.
20421 * gimple-range-path.cc (path_range_query::range_defined_in_block): Do
20422 not search dominators.
20423 (path_range_query::adjust_for_non_null_uses): Ditto.
20424 * gimple-range.cc (gimple_ranger::range_of_expr): Check on-entry for
20425 def overrides. Do not check nonnull.
20426 (gimple_ranger::range_on_entry): Check dominators for nonnull.
20427 (gimple_ranger::range_on_edge): Check for nonnull on normal edges..
20428 (gimple_ranger::register_side_effects): New.
20429 * gimple-range.h (gimple_ranger::register_side_effects): New.
20430 * tree-vrp.cc (rvrp_folder::fold_stmt): Call register_side_effects.
20432 2022-02-09 Richard Biener <rguenther@suse.de>
20434 PR tree-optimization/104445
20435 PR tree-optimization/102832
20436 * optabs-query.h (can_vec_extract): New.
20437 * optabs-query.cc (can_vec_extract): Likewise.
20438 * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
20439 we can extract a hi/lo part from the larger vector, rework
20440 check iteration from larger to smaller sizes.
20442 2022-02-09 H.J. Lu <hjl.tools@gmail.com>
20446 * config/i386/gnu-property.cc: Include "i386-protos.h".
20447 (file_end_indicate_exec_stack_and_gnu_property): Generate
20448 a GNU_PROPERTY_1_NEEDED note for -mno-direct-extern-access or
20449 nodirect_extern_access attribute.
20450 * config/i386/i386-options.cc
20451 (handle_nodirect_extern_access_attribute): New function.
20452 (ix86_attribute_table): Add nodirect_extern_access attribute.
20453 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): Add a
20455 (ix86_has_no_direct_extern_access): New.
20456 * config/i386/i386.cc (ix86_has_no_direct_extern_access): New.
20457 (ix86_force_load_from_GOT_p): Add a bool argument to indicate
20458 call operand. Force non-call load from GOT for
20459 -mno-direct-extern-access or nodirect_extern_access attribute.
20460 (legitimate_pic_address_disp_p): Avoid copy relocation in PIE
20461 for -mno-direct-extern-access or nodirect_extern_access attribute.
20462 (ix86_print_operand): Pass true to ix86_force_load_from_GOT_p
20464 (asm_preferred_eh_data_format): Use PC-relative format for
20465 -mno-direct-extern-access to avoid copy relocation. Check
20466 ptr_mode instead of TARGET_64BIT when selecting DW_EH_PE_sdata4.
20467 (ix86_binds_local_p): Set ix86_has_no_direct_extern_access to
20468 true for -mno-direct-extern-access or nodirect_extern_access
20469 attribute. Don't treat protected data as extern and avoid copy
20470 relocation on common symbol with -mno-direct-extern-access or
20471 nodirect_extern_access attribute.
20472 (ix86_reloc_rw_mask): New to avoid copy relocation for
20473 -mno-direct-extern-access.
20474 (TARGET_ASM_RELOC_RW_MASK): New.
20475 * config/i386/i386.opt: Add -mdirect-extern-access.
20476 * doc/extend.texi: Document nodirect_extern_access attribute.
20477 * doc/invoke.texi: Document -m[no-]direct-extern-access.
20479 2022-02-09 H.J. Lu <hjl.tools@gmail.com>
20482 * config/i386/i386.cc (ix86_avx_u128_mode_source): New function.
20483 (ix86_avx_u128_mode_needed): Return AVX_U128_ANY for debug INSN.
20484 Call ix86_avx_u128_mode_source to check mode for each component
20487 2022-02-09 liuhongt <hongtao.liu@intel.com>
20490 * config/i386/sse.md (<insn><mode>3): lowpart_subreg
20491 operands[2] from SImode to QImode.
20493 2022-02-09 Richard Biener <rguenther@suse.de>
20495 PR middle-end/104450
20496 * gimple-isel.cc: Pass cfun around.
20497 (+gimple_expand_vec_cond_expr): Do not combine a throwing
20498 comparison with the select.
20500 2022-02-09 Richard Biener <rguenther@suse.de>
20503 * config/i386/i386.cc (ix86_gimple_fold_builtin): Guard shift
20504 folding for NULL LHS.
20506 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
20508 PR rtl-optimization/104198
20509 PR rtl-optimization/104153
20510 * ifcvt.cc (noce_convert_multiple_sets_1): Copy rtx instead of
20511 using it directly. Rework comparison handling and always
20512 perform a second pass.
20514 2022-02-08 Jakub Jelinek <jakub@redhat.com>
20517 * config/rs6000/rs6000.cc (vspltis_shifted): Return false also if
20518 split1 pass has finished already.
20520 2022-02-08 Bill Schmidt <wschmidt@linux.ibm.com>
20522 * config/rs6000/rs6000-builtins.def (VMSUMCUD): New.
20523 * config/rs6000/rs6000-overload.def (VEC_MSUMC): New.
20524 * config/rs6000/vsx.md (UNSPEC_VMSUMCUD): New constant.
20525 (vmsumcud): New define_insn.
20527 2022-02-08 Tom de Vries <tdevries@suse.de>
20529 * config/nvptx/nvptx-opts.h (enum ptx_isa): Add PTX_ISA_SM70.
20530 * config/nvptx/nvptx.h (TARGET_SM70): Define.
20532 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
20534 * config/s390/s390.cc (s390_rtx_costs): Increase costs for load
20536 * config/s390/s390.md: Use paradoxical subreg.
20538 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
20540 * combine.cc (reg_subword_p): Check for paradoxical subreg.
20542 2022-02-08 Tom de Vries <tdevries@suse.de>
20545 * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_3_0
20546 and PTX_VERSION_4_2.
20547 * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm)
20548 (default_ptx_version_option, ptx_version_to_string)
20549 (sm_version_to_string, handle_ptx_version_option): New function.
20550 (nvptx_option_override): Call handle_ptx_version_option.
20551 (nvptx_file_start): Use ptx_version_to_string and sm_version_to_string.
20552 * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>")
20553 (define_insn "nvptx_vote_ballot"): Use TARGET_PTX_6_0.
20554 * config/nvptx/nvptx.opt (mptx): Remove 'Init'.
20556 2022-02-08 Maciej W. Rozycki <macro@embecosm.com>
20558 * doc/install.texi (Configuration): Document `--with-isa-spec='
20560 * doc/invoke.texi (Option Summary): List `-misa-spec=' RISC-V
20562 (RISC-V Options): Document it.
20564 2022-02-08 Maciej W. Rozycki <macro@embecosm.com>
20566 * config/riscv/t-riscv (riscv-sr.o): Add $(TM_H) dependency.
20568 2022-02-08 Tom de Vries <tdevries@suse.de>
20570 * config/nvptx/nvptx.cc (write_fn_proto_1): Handle 'main (int)'.
20572 2022-02-08 Tom de Vries <tdevries@suse.de>
20575 * config/nvptx/nvptx-protos.h (nvptx_mem_local_p): Declare.
20576 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Assert that
20577 change is validated.
20578 (nvptx_mem_local_p): New function.
20579 * config/nvptx/nvptx.md: Use nvptx_mem_local_p.
20580 (define_c_enum "unspecv"): Add UNSPECV_CAS_LOCAL.
20581 (define_insn "atomic_compare_and_swap<mode>_1_local"): New
20582 non-atomic, non-predicable define_insn, factored out of ...
20583 (define_insn "atomic_compare_and_swap<mode>_1"): ... here.
20584 Make predicable again.
20585 (define_expand "atomic_compare_and_swap<mode>"): Use
20586 atomic_compare_and_swap<mode>_1_local.
20588 2022-02-08 liuhongt <hongtao.liu@intel.com>
20590 PR rtl-optimization/104059
20591 * regcprop.cc (copyprop_hardreg_forward_1): Don't propagate
20592 for a more expensive reg-reg move.
20594 2022-02-07 Tamar Christina <tamar.christina@arm.com>
20596 * config/arm/arm_neon.h (vusdotq_s32, vusdot_laneq_s32,
20597 vusdotq_laneq_s32, vsudot_laneq_s32, vsudotq_laneq_s32): New
20598 * config/arm/arm_neon_builtins.def (usdot): Add V16QI.
20599 (usdot_laneq, sudot_laneq): New.
20600 * config/arm/neon.md (neon_<sup>dot_laneq<vsi2qi>): New.
20601 (neon_<sup>dot_lane<vsi2qi>): Remote unneeded code.
20603 2022-02-07 Tamar Christina <tamar.christina@arm.com>
20605 * config/arm/arm_neon.h (vdot_laneq_u32, vdotq_laneq_u32,
20606 vdot_laneq_s32, vdotq_laneq_s32): New.
20607 * config/arm/arm_neon_builtins.def (sdot_laneq, udot_laneq): New.
20608 * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
20609 (<sup>dot_prod<vsi2qi>): Re-order rtl.
20610 (neon_<sup>dot_lane<vsi2qi>): Fix rtl order and endiannes.
20611 (neon_<sup>dot_laneq<vsi2qi>): New.
20613 2022-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
20616 * config/s390/s390.cc (s390_can_inline_p): Accept a few more flags
20617 if always_inline is set. Don't inline when tune differs without
20620 2022-02-07 Richard Biener <rguenther@suse.de>
20622 PR middle-end/104402
20623 * gimple-expr.cc (is_gimple_condexpr): _Complex typed
20624 compares are not valid.
20625 * tree-cfg.cc (verify_gimple_assign_ternary): For COND_EXPR
20626 check is_gimple_condexpr.
20628 2022-02-07 Kewen Lin <linkw@linux.ibm.com>
20631 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Move the
20632 hunk affecting VSX and ALTIVEC to appropriate place.
20634 2022-02-07 Kewen Lin <linkw@linux.ibm.com>
20637 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Disable
20638 MMA if !TARGET_VSX.
20640 2022-02-06 Jakub Jelinek <jakub@redhat.com>
20644 * fold-const.h (folding_initializer): Adjust comment.
20645 (folding_cxx_constexpr): Declare.
20646 * fold-const.cc (folding_initializer): Adjust comment.
20647 (folding_cxx_constexpr): New variable.
20648 (address_compare): Restrict the decl vs. STRING_CST
20649 or vice versa or STRING_CST vs. STRING_CST or
20650 is_global_var != is_global_var optimizations to !folding_cxx_constexpr.
20651 Punt for FUNCTION_DECLs with non-zero offsets. If folding_initializer,
20652 assume non-aliased functions have non-zero size and have different
20653 addresses. For folding_cxx_constexpr, punt on comparisons of start
20654 of some object and end of another one, regardless whether it is a decl
20655 or string literal. Also punt for folding_cxx_constexpr on
20656 STRING_CST vs. STRING_CST comparisons if the two literals could be
20659 2022-02-05 Jakub Jelinek <jakub@redhat.com>
20661 PR tree-optimization/104389
20662 * match.pd (x * 0 -> 0): Punt if x maybe infinite and NaNs are
20665 2022-02-05 Kito Cheng <kito.cheng@sifive.com>
20667 * configure.ac: Fix detection for zifencei support.
20668 * configure: Regenerate.
20670 2022-02-05 Kito Cheng <kito.cheng@sifive.com>
20673 * config.gcc (riscv*-*-*): Normalize the with_isa_spec value.
20674 (all_defaults): Add isa_spec.
20675 * config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Add isa_spec.
20677 2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com>
20679 * config/rs6000/rs6000-c.cc (resolve_vec_mul): Accept args and types
20680 parameters instead of arglist and nargs. Simplify accordingly. Remove
20681 unnecessary test for argument count mismatch.
20682 (resolve_vec_cmpne): Likewise.
20683 (resolve_vec_adde_sube): Likewise.
20684 (resolve_vec_addec_subec): Likewise.
20685 (altivec_resolve_overloaded_builtin): Move overload special handling
20686 after the gathering of arguments into args[] and types[] and the test
20687 for correct number of arguments. Don't perform the test for correct
20688 number of arguments for certain special cases. Call the other special
20689 cases with args and types instead of arglist and nargs.
20691 2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com>
20694 * doc/extend.texi (Basic PowerPC Built-in Functions Available on ISA
20695 3.1): Provide consistent type names. Remove unnecessary semicolons.
20696 Fix bad line breaks.
20698 2022-02-04 Jakub Jelinek <jakub@redhat.com>
20701 * config/rs6000/rs6000.cc (rs6000_mangle_decl_assembler_name): Also
20702 adjust mangling of __builtin*printf_chk.
20704 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
20706 * doc/cpp.texi (Variadic Macros): Replace C++2a with C++20.
20708 2022-02-04 Richard Biener <rguenther@suse.de>
20709 Bin Cheng <bin.cheng@linux.alibaba.com>
20711 PR tree-optimization/100499
20712 * fold-const.h (multiple_of_p): Add nowrap parameter, defaulted
20714 * fold-const.cc (multiple_of_p): Likewise. Honor it for
20715 MULT_EXPR, PLUS_EXPR and MINUS_EXPR and pass it along,
20716 switching to false for conversions.
20717 * tree-ssa-loop-niter.cc (number_of_iterations_ne): Do not
20718 claim the outermost expression does not wrap when calling
20719 multiple_of_p. Refactor the check done to check the
20720 original IV, avoiding a bias that might wrap.
20722 2022-02-04 Richard Biener <rguenther@suse.de>
20724 * fold-const.cc (multiple_of_p): Re-write and move LSHIFT_EXPR
20727 2022-02-04 Eric Botcazou <ebotcazou@adacore.com>
20730 * dwarf2out.cc (dwarf2out_finish): Empty base_types.
20731 (dwarf2out_early_finish): Likewise.
20733 2022-02-04 Eric Botcazou <ebotcazou@adacore.com>
20735 PR tree-optimization/104356
20736 * match.pd (X / bool_range_Y is X): Add guard.
20737 (X / X is one): Likewise.
20738 (X / abs (X) is X < 0 ? -1 : 1): Likewise.
20739 (X / -X is -1): Likewise.
20740 (1 / X -> X == 1): Likewise.
20742 2022-02-04 Richard Biener <rguenther@suse.de>
20744 PR tree-optimization/103641
20745 * tree-vect-patterns.cc (vect_synth_mult_by_constant):
20746 Pass the vector mode to choose_mult_variant.
20748 2022-02-04 Roger Sayle <roger@nextmovesoftware.com>
20750 PR rtl-optimization/101885
20751 * combine.cc (try_combine): When splitting a parallel into two
20752 sequential sets, check not only that the first doesn't clobber
20753 the second but also that the second doesn't clobber the first.
20755 2022-02-04 Richard Biener <rguenther@suse.de>
20757 PR middle-end/90348
20758 PR middle-end/104092
20759 * tree-core.h (clobber_kind): New enum.
20760 (tree_base::u::bits::address_space): Document use in CONSTRUCTORs.
20761 * tree.h (CLOBBER_KIND): Add.
20762 (build_clobber): Add clobber kind argument, defaulted to
20764 * tree.cc (build_clobber): Likewise.
20765 * gimple.h (gimple_clobber_p): New overload with specified kind.
20766 * tree-streamer-in.cc (streamer_read_tree_bitfields): Stream
20768 * tree-streamer-out.cc (streamer_write_tree_bitfields):
20770 * tree-pretty-print.cc (dump_generic_node): Mark EOL CLOBBERs.
20771 * gimplify.cc (gimplify_bind_expr): Build storage end-of-life clobbers
20773 (gimplify_target_expr): Likewise.
20774 * tree-inline.cc (expand_call_inline): Likewise.
20775 * tree-ssa-ccp.cc (insert_clobber_before_stack_restore): Likewise.
20776 * gimple-ssa-warn-access.cc (pass_waccess::check_stmt): Only treat
20777 CLOBBER_EOL clobbers as ending lifetime of storage.
20779 2022-02-04 Martin Sebor <msebor@redhat.com>
20781 * pointer-query.h (pointer_query::cache_type): Use auto_vec for auto
20784 2022-02-03 Martin Sebor <msebor@redhat.com>
20786 PR middle-end/104260
20787 * passes.def (pass_warn_access): Adjust pass placement.
20789 2022-02-03 Uroš Bizjak <ubizjak@gmail.com>
20792 * config/i386/i386.cc (find_drap_reg): For 32bit targets
20793 return DI_REG if function uses __builtin_eh_return.
20795 2022-02-03 Martin Sebor <msebor@redhat.com>
20797 * gimple-ssa-warn-restrict.cc (class pass_wrestrict): Outline ctor.
20798 (pass_wrestrict::m_ptr_qry): New member.
20799 (wrestrict_walk): Rename...
20800 (pass_wrestrict::check_block): ...to this.
20801 (pass_wrestrict::execute): Set up and tear down pointer_query and
20803 (builtin_memref::builtin_memref): Change ctor argument. Simplify.
20804 (builtin_access::builtin_access): Same.
20805 (builtin_access::m_ptr_qry): New member.
20806 (check_call): Rename...
20807 (pass_wrestrict::check_call): ...to this.
20808 (check_bounds_or_overlap): Change argument.
20809 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Same.
20811 2022-02-03 Martin Sebor <msebor@redhat.com>
20813 * gimple-array-bounds.cc (array_bounds_checker::array_bounds_checker):
20815 (array_bounds_checker::get_value_range): Use new member.
20816 (array_bounds_checker::check_mem_ref): Same.
20817 * gimple-array-bounds.h (array_bounds_checker::array_bounds_checker):
20819 (array_bounds_checker::m_ptr_query): New member.
20821 2022-02-03 Martin Sebor <msebor@redhat.com>
20823 * gimple-ssa-warn-access.cc (pass_waccess::pass_waccess): Remove
20824 pointer_query cache.
20825 * pointer-query.cc (pointer_query::pointer_query): Remove cache
20826 argument. Zero-initialize new cache member.
20827 (pointer_query::get_ref): Replace cache pointer with direct access.
20828 (pointer_query::put_ref): Same.
20829 (pointer_query::flush_cache): Same.
20830 (pointer_query::dump): Same.
20831 * pointer-query.h (class pointer_query): Remove cache argument from
20832 ctor. Change cache pointer to cache subobject member.
20833 * tree-ssa-strlen.cc: Remove pointer_query cache.
20835 2022-02-03 Martin Sebor <msebor@redhat.com>
20837 PR tree-optimization/104119
20838 * gimple-ssa-sprintf.cc (struct directive): Change argument type.
20839 (format_none): Same.
20840 (format_percent): Same.
20841 (format_integer): Same.
20842 (format_floating): Same.
20843 (get_string_length): Same.
20844 (format_character): Same.
20845 (format_string): Same.
20846 (format_plain): Same.
20847 (format_directive): Same.
20848 (compute_format_length): Same.
20849 (handle_printf_call): Same.
20850 * tree-ssa-strlen.cc (get_range_strlen_dynamic): Same. Call
20852 (get_range_strlen_phi): Same.
20853 (get_maxbound): New function.
20854 (strlen_pass::get_len_or_size): Adjust to parameter change.
20855 * tree-ssa-strlen.h (get_range_strlen_dynamic): Change argument type.
20857 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
20860 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Remove
20861 test for !rs6000_fold_gimple.
20862 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
20863 * config/rs6000/rs6000.opt (mfold-gimple): Remove.
20865 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
20868 * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Handle
20869 endianness for vclzlsbb and vctzlsbb.
20870 * config/rs6000/rs6000-builtins.def (VCLZLSBB_V16QI): Change
20871 default pattern and indicate a different pattern will be used for
20873 (VCLZLSBB_V4SI): Likewise.
20874 (VCLZLSBB_V8HI): Likewise.
20875 (VCTZLSBB_V16QI): Likewise.
20876 (VCTZLSBB_V4SI): Likewise.
20877 (VCTZLSBB_V8HI): Likewise.
20879 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
20881 * config.gcc (powerpc*-*-*): Add rs6000-builtin.o to extra_objs.
20882 * config/rs6000/rs6000-builtin.cc: New file, containing code moved
20884 * config/rs6000/rs6000-call.cc (cpu_is_info): Move to
20886 (cpu_supports_info): Likewise.
20887 (rs6000_type_string): Likewise.
20888 (altivec_expand_predicate_builtin): Likewise.
20889 (rs6000_htm_spr_icode): Likewise.
20890 (altivec_expand_vec_init_builtin): Likewise.
20891 (get_element_number): Likewise.
20892 (altivec_expand_vec_set_builtin): Likewise.
20893 (altivec_expand_vec_ext_builtin): Likewise.
20894 (rs6000_invalid_builtin): Likewise.
20895 (rs6000_fold_builtin): Likewise.
20896 (fold_build_vec_cmp): Likewise.
20897 (fold_compare_helper): Likewise.
20898 (map_to_integral_tree_type): Likewise.
20899 (fold_mergehl_helper): Likewise.
20900 (fold_mergeeo_helper): Likewise.
20901 (rs6000_builtin_valid_without_lhs): Likewise.
20902 (rs6000_builtin_is_supported): Likewise.
20903 (rs6000_gimple_fold_mma_builtin): Likewise.
20904 (rs6000_gimple_fold_builtin): Likewise.
20905 (rs6000_expand_ldst_mask): Likewise.
20906 (cpu_expand_builtin): Likewise.
20907 (elemrev_icode): Likewise.
20908 (ldv_expand_builtin): Likewise.
20909 (lxvrse_expand_builtin): Likewise.
20910 (lxvrze_expand_builtin): Likewise.
20911 (stv_expand_builtin): Likewise.
20912 (mma_expand_builtin): Likewise.
20913 (htm_spr_num): Likewise.
20914 (htm_expand_builtin): Likewise.
20915 (rs6000_expand_builtin): Likewise.
20916 (rs6000_vector_type): Likewise.
20917 (rs6000_init_builtins): Likewise. Remove initialization of
20918 builtin_mode_to_type entries.
20919 (rs6000_builtin_decl): Move to rs6000-builtin.cc.
20920 * config/rs6000/rs6000.cc (rs6000_builtin_mask_for_load): New
20921 external declaration.
20922 (rs6000_builtin_md_vectorized_function): Likewise.
20923 (rs6000_builtin_reciprocal): Likewise.
20924 (altivec_builtin_mask_for_load): Move to rs6000-builtin.cc.
20925 (rs6000_builtin_types): Likewise.
20926 (builtin_mode_to_type): Remove.
20927 (rs6000_builtin_mask_for_load): Move to rs6000-builtin.cc. Remove
20929 (rs6000_builtin_md_vectorized_function): Likewise.
20930 (rs6000_builtin_reciprocal): Likewise.
20931 * config/rs6000/rs6000.h (builtin_mode_to_type): Remove.
20932 * config/rs6000/t-rs6000 (rs6000-builtin.o): New target.
20934 2022-02-03 Richard Biener <rguenther@suse.de>
20937 * tree-nrv.cc (pass_nrv::execute): Remove tieing result and found
20938 together via DECL_ABSTRACT_ORIGIN.
20940 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
20942 * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Revise error
20943 message for RES_BITS case.
20945 2022-02-03 Aldy Hernandez <aldyh@redhat.com>
20947 * gimple-range-fold.cc (fur_list::fur_list): Set m_local[1] correctly.
20949 2022-02-03 Jakub Jelinek <jakub@redhat.com>
20951 * config/arm/arm.opt (mfix-cortex-a57-aes-1742098,
20952 mfix-cortex-a72-aes-1655431): Ensure description ends with full stop.
20954 2022-02-03 Aldy Hernandez <aldyh@redhat.com>
20956 * cfganal.cc (verify_marked_backedges): New.
20957 * cfganal.h (verify_marked_backedges): New.
20958 * gimple-range-path.cc (path_range_query::path_range_query):
20959 Verify freshness of back edges.
20960 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
20961 mark_dfs_back_edges.
20962 * tree-ssa-threadbackward.cc (back_threader::back_threader): Move
20963 path_range_query construction after backedges have been
20966 2022-02-03 Richard Sandiford <richard.sandiford@arm.com>
20968 * config/aarch64/aarch64-simd.md (movmisalign<mode>): Extend from
20971 2022-02-03 Richard Sandiford <richard.sandiford@arm.com>
20973 * config/aarch64/iterators.md (VALL_F16MOV): Delete.
20974 * config/aarch64/aarch64-simd.md (mov<mode>): Use VALL_F16 instead
20977 2022-02-03 Martin Liska <mliska@suse.cz>
20979 * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
20980 Change subject and object in the error message.
20981 * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
20984 2022-02-03 Martin Liska <mliska@suse.cz>
20986 * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
20987 Use the error message for i386 target.
20989 2022-02-03 Jakub Jelinek <jakub@redhat.com>
20991 PR tree-optimization/104334
20992 * range-op.cc (range_operator::wi_fold_in_parts): Change lh_range
20993 and rh_range type to widest_int and subtract in widest_int. Remove
20994 ov_rh, ov_lh and sign vars, always perform comparisons as signed
20995 and use >, < and == operators for it.
20997 2022-02-03 Martin Sebor <msebor@redhat.com>
20999 * common.opt (-Wuse-after-free): Correct typos.
21001 2022-02-02 David Malcolm <dmalcolm@redhat.com>
21004 * doc/invoke.texi (-ftrivial-auto-var-init=): Add reference to
21005 -Wanalyzer-use-of-uninitialized-value to paragraph documenting that
21006 -ftrivial-auto-var-init= doesn't suppress warnings.
21008 2022-02-02 Martin Liska <mliska@suse.cz>
21010 * dwarf2out.cc (TEXT_SECTION_NAME): Remove unused macro.
21012 2022-02-02 Bernd Kuhls <bernd.kuhls@t-online.de>
21015 * config/or1k/linux.h (CPP_SPEC): Define.
21017 2022-02-02 Tamar Christina <tamar.christina@arm.com>
21019 PR tree-optimization/102819
21020 PR tree-optimization/103169
21021 * config/arm/vec-common.md (cml<fcmac1><conj_op><mode>4): Use
21024 2022-02-02 Tamar Christina <tamar.christina@arm.com>
21026 PR tree-optimization/102819
21027 PR tree-optimization/103169
21028 * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4): Use
21030 * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4): Likewise.
21032 2022-02-02 Tamar Christina <tamar.christina@arm.com>
21034 PR tree-optimization/102819
21035 PR tree-optimization/103169
21036 * doc/md.texi: Update docs for cfms, cfma.
21037 * tree-data-ref.h (same_data_refs): Accept optional offset.
21038 * tree-vect-slp-patterns.cc (is_linear_load_p): Fix issue with repeating
21040 (vect_normalize_conj_loc): Remove.
21041 (is_eq_or_top): Change to take two nodes.
21042 (enum _conj_status, compatible_complex_nodes_p,
21043 vect_validate_multiplication): New.
21044 (class complex_add_pattern, complex_add_pattern::matches,
21045 complex_add_pattern::recognize, class complex_mul_pattern,
21046 complex_mul_pattern::recognize, class complex_fms_pattern,
21047 complex_fms_pattern::recognize, class complex_operations_pattern,
21048 complex_operations_pattern::recognize, addsub_pattern::recognize): Pass
21050 (complex_fms_pattern::matches, complex_mul_pattern::matches): Pass new
21051 cache and use new validation code.
21052 * tree-vect-slp.cc (vect_match_slp_patterns_2, vect_match_slp_patterns,
21053 vect_analyze_slp): Pass along cache.
21054 (compatible_calls_p): Expose.
21055 * tree-vectorizer.h (compatible_calls_p, slp_node_hash,
21056 slp_compat_nodes_map_t): New.
21057 (class vect_pattern): Update signatures include new cache.
21059 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
21061 * config/cris/cris.cc (cris_preferred_reload_class): Reject
21062 "eliminated" registers and small-enough constants unless
21063 reloaded into a class that is a subset of GENERAL_REGS.
21064 * config/cris/cris.md (attribute "cpu_variant"): New.
21065 (attribute "enabled"): Conditionalize on a matching attribute
21066 cpu_variant, if specified.
21067 ("*movsi_internal<setcc><setnz><setnzvc>"): For moves to and from
21068 memory, add cpu-variant-enabled variants for "r" alternatives on
21069 the far side of the "x" alternatives, preferring the "x" ones
21070 only for variants where MOF is present (in addition to SRP).
21072 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
21074 * config/cris/cris.cc (cris_register_move_cost): Remove special pre-ira
21075 extra cost for ALL_REGS.
21077 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
21079 * config/cris/constraints.md (define_register_constraint "b"): Now
21081 * config/cris/cris.md (CRIS_ACR_REGNUM): Remove.
21082 * config/cris/cris.h: (reg_class, REG_CLASS_NAMES)
21083 (REG_CLASS_CONTENTS): Remove ACR_REGS, SPEC_ACR_REGS, GENNONACR_REGS,
21084 and SPEC_GENNONACR_REGS.
21085 * config/cris/cris.cc (cris_preferred_reload_class): Don't mention
21086 ACR_REGS and return GENERAL_REGS instead of GENNONACR_REGS.
21088 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
21090 * config/cris/cris.md ("*movsi_internal<setcc><setnz><setnzvc>"):
21091 Conditionalize on (sub-)register operands or operand 1 being 0.
21093 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
21095 * config/cris/cris.h (TARGET_DEFAULT): Don't include MASK_MUL_BUG.
21096 (MUL_BUG_ASM_DEFAULT): New macro.
21097 (MAYBE_AS_NO_MUL_BUG_ABORT): Define in terms of MUL_BUG_ASM_DEFAULT.
21098 * doc/invoke.texi (CRIS Options, -mmul-bug-workaround): Adjust
21101 2022-02-01 Eugene Rozenfeld <erozen@microsoft.com>
21103 * opts.cc (common_handle_option): Don't set param_early_inliner_max_iterations
21106 2022-02-01 Eugene Rozenfeld <erozen@microsoft.com>
21108 * auto-profile.cc (auto_profile): Hard-code the number of iterations (10).
21110 2022-02-01 Andrew Pinski <apinski@marvell.com>
21112 * doc/install.texi:
21114 2022-02-01 Ilya Leoshkevich <iii@linux.ibm.com>
21116 * config/s390/s390.cc (s390_code_end): Do not switch back to
21119 2022-02-01 Jakub Jelinek <jakub@redhat.com>
21122 * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Append rs6000-builtins.h
21123 rather than $(srcdir)/config/rs6000/rs6000-builtins.def.
21124 * config/rs6000/rs6000-gen-builtins.cc (write_decls): Don't use
21125 GTY((user)) for struct bifdata and struct ovlddata. Instead add
21126 GTY((skip(""))) to members with pointer and enum types that don't need
21127 to be tracked. Add GTY(()) to rs6000_builtin_info and rs6000_instance_info
21128 declarations. Don't emit gt_ggc_mx and gt_pch_nx declarations.
21129 (write_extern_fntype, write_fntype): Remove.
21130 (write_fntype_init): Emit the fntype vars as automatic vars instead
21131 of file scope ones.
21132 (write_header_file): Don't iterate with write_extern_fntype.
21133 (write_init_file): Don't iterate with write_fntype. Don't emit
21134 gt_ggc_mx and gt_pch_nx definitions.
21136 2022-02-01 Jason Merrill <jason@redhat.com>
21138 * tree.h (struct tree_vec_map_cache_hasher): Move from...
21139 * tree.cc (struct tree_vec_map_cache_hasher): ...here.
21141 2022-02-01 Tom de Vries <tdevries@suse.de>
21143 * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_uniform_warp_check.
21144 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
21145 UNSPECV_UNIFORM_WARP_CHECK.
21146 (define_insn "nvptx_uniform_warp_check"): New define_insn.
21148 2022-02-01 Tom de Vries <tdevries@suse.de>
21150 * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_warpsync.
21151 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
21153 (define_insn "nvptx_warpsync"): New define_insn.
21155 2022-02-01 Tom de Vries <tdevries@suse.de>
21157 * config/nvptx/nvptx.opt (mptx): Set to PTX_VERSION_6_3 by default.
21159 2022-02-01 Tom de Vries <tdevries@suse.de>
21161 * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_6_0.
21162 * config/nvptx/nvptx.h (TARGET_PTX_6_0): New macro.
21163 * config/nvptx/nvptx.md (define_insn "nvptx_barsync"): Use barrier
21164 insn for TARGET_PTX_6_0.
21166 2022-02-01 Tom de Vries <tdevries@suse.de>
21169 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle nop
21172 2022-02-01 Tom de Vries <tdevries@suse.de>
21174 * config/nvptx/nvptx.md (define_insn "atomic_compare_and_swap<mode>_1")
21175 (define_insn "atomic_exchange<mode>")
21176 (define_insn "atomic_fetch_add<mode>")
21177 (define_insn "atomic_fetch_addsf")
21178 (define_insn "atomic_fetch_<logic><mode>"): Output non-atomic version
21179 if memory operands is frame-relative.
21181 2022-02-01 Tom de Vries <tdevries@suse.de>
21183 * config/nvptx/nvptx.cc (enum nvptx_builtins): Add
21184 NVPTX_BUILTIN_MEMBAR_GL and NVPTX_BUILTIN_MEMBAR_CTA.
21186 (nvptx_init_builtins): Add MEMBAR_GL and MEMBAR_CTA.
21187 (nvptx_expand_builtin): Handle NVPTX_BUILTIN_MEMBAR_GL and
21188 NVPTX_BUILTIN_MEMBAR_CTA.
21189 (nvptx_lockfull_update): Add level parameter. Emit barriers.
21190 (nvptx_reduction_update, nvptx_goacc_reduction_fini): Update call to
21191 nvptx_lockfull_update.
21192 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
21194 (define_expand "nvptx_membar_gl"): New expand.
21195 (define_insn "*nvptx_membar_gl"): New insn.
21197 2022-02-01 Martin Liska <mliska@suse.cz>
21199 * doc/install.texi: Remove option for GCC < 4.8.
21201 2022-02-01 Jakub Jelinek <jakub@redhat.com>
21203 PR middle-end/104307
21204 * tree-vect-generic.cc (expand_vector_comparison): Don't push debug
21205 stmts to uses vector, just set vec_cond_expr_only to false for
21206 non-VEC_COND_EXPRs instead of pushing them into uses. Treat
21207 VEC_COND_EXPRs that use lhs not just in rhs1, but rhs2 or rhs3 too
21208 like non-VEC_COND_EXPRs.
21210 2022-02-01 Bill Schmidt <wschmidt@linux.ibm.com>
21212 * config/rs6000/rs6000-overload.def (VEC_ABSD): Remove #ifdef token.
21213 (VEC_BLENDV): Likewise.
21214 (VEC_BPERM): Likewise.
21215 (VEC_CFUGE): Likewise.
21216 (VEC_CIPHER_BE): Likewise.
21217 (VEC_CIPHERLAST_BE): Likewise.
21218 (VEC_CLRL): Likewise.
21219 (VEC_CLRR): Likewise.
21220 (VEC_CMPNEZ): Likewise.
21221 (VEC_CNTLZ): Likewise.
21222 (VEC_CNTLZM): Likewise.
21223 (VEC_CNTTZM): Likewise.
21224 (VEC_CNTLZ_LSBB): Likewise.
21225 (VEC_CNTM): Likewise.
21226 (VEC_CNTTZ): Likewise.
21227 (VEC_CNTTZ_LSBB): Likewise.
21228 (VEC_CONVERT_4F32_8F16): Likewise.
21229 (VEC_DIV): Likewise.
21230 (VEC_DIVE): Likewise.
21231 (VEC_EQV): Likewise.
21232 (VEC_EXPANDM): Likewise.
21233 (VEC_EXTRACT_FP_FROM_SHORTH): Likewise.
21234 (VEC_EXTRACT_FP_FROM_SHORTL): Likewise.
21235 (VEC_EXTRACTH): Likewise.
21236 (VEC_EXTRACTL): Likewise.
21237 (VEC_EXTRACTM): Likewise.
21238 (VEC_EXTRACT4B): Likewise.
21239 (VEC_EXTULX): Likewise.
21240 (VEC_EXTURX): Likewise.
21241 (VEC_FIRSTMATCHINDEX): Likewise.
21242 (VEC_FIRSTMACHOREOSINDEX): Likewise.
21243 (VEC_FIRSTMISMATCHINDEX): Likewise.
21244 (VEC_FIRSTMISMATCHOREOSINDEX): Likewise.
21245 (VEC_GB): Likewise.
21246 (VEC_GENBM): Likewise.
21247 (VEC_GENHM): Likewise.
21248 (VEC_GENWM): Likewise.
21249 (VEC_GENDM): Likewise.
21250 (VEC_GENQM): Likewise.
21251 (VEC_GENPCVM): Likewise.
21252 (VEC_GNB): Likewise.
21253 (VEC_INSERTH): Likewise.
21254 (VEC_INSERTL): Likewise.
21255 (VEC_INSERT4B): Likewise.
21256 (VEC_LXVL): Likewise.
21257 (VEC_MERGEE): Likewise.
21258 (VEC_MERGEO): Likewise.
21259 (VEC_MOD): Likewise.
21260 (VEC_MSUB): Likewise.
21261 (VEC_MULH): Likewise.
21262 (VEC_NAND): Likewise.
21263 (VEC_NCIPHER_BE): Likewise.
21264 (VEC_NCIPHERLAST_BE): Likewise.
21265 (VEC_NEARBYINT): Likewise.
21266 (VEC_NMADD): Likewise.
21267 (VEC_ORC): Likewise.
21268 (VEC_PDEP): Likewise.
21269 (VEC_PERMX): Likewise.
21270 (VEC_PEXT): Likewise.
21271 (VEC_POPCNT): Likewise.
21272 (VEC_PARITY_LSBB): Likewise.
21273 (VEC_REPLACE_ELT): Likewise.
21274 (VEC_REPLACE_UN): Likewise.
21275 (VEC_REVB): Likewise.
21276 (VEC_RINT): Likewise.
21277 (VEC_RLMI): Likewise.
21278 (VEC_RLNM): Likewise.
21279 (VEC_SBOX_BE): Likewise.
21280 (VEC_SIGNEXTI): Likewise.
21281 (VEC_SIGNEXTLL): Likewise.
21282 (VEC_SIGNEXTQ): Likewise.
21283 (VEC_SLDB): Likewise.
21284 (VEC_SLV): Likewise.
21285 (VEC_SPLATI): Likewise.
21286 (VEC_SPLATID): Likewise.
21287 (VEC_SPLATI_INS): Likewise.
21288 (VEC_SQRT): Likewise.
21289 (VEC_SRDB): Likewise.
21290 (VEC_SRV): Likewise.
21291 (VEC_STRIL): Likewise.
21292 (VEC_STRIL_P): Likewise.
21293 (VEC_STRIR): Likewise.
21294 (VEC_STRIR_P): Likewise.
21295 (VEC_STXVL): Likewise.
21296 (VEC_TERNARYLOGIC): Likewise.
21297 (VEC_TEST_LSBB_ALL_ONES): Likewise.
21298 (VEC_TEST_LSBB_ALL_ZEROS): Likewise.
21299 (VEC_VEE): Likewise.
21300 (VEC_VES): Likewise.
21301 (VEC_VIE): Likewise.
21302 (VEC_VPRTYB): Likewise.
21303 (VEC_VSCEEQ): Likewise.
21304 (VEC_VSCEGT): Likewise.
21305 (VEC_VSCELT): Likewise.
21306 (VEC_VSCEUO): Likewise.
21307 (VEC_VSEE): Likewise.
21308 (VEC_VSES): Likewise.
21309 (VEC_VSIE): Likewise.
21310 (VEC_VSTDC): Likewise.
21311 (VEC_VSTDCN): Likewise.
21312 (VEC_VTDC): Likewise.
21313 (VEC_XL): Likewise.
21314 (VEC_XL_BE): Likewise.
21315 (VEC_XL_LEN_R): Likewise.
21316 (VEC_XL_SEXT): Likewise.
21317 (VEC_XL_ZEXT): Likewise.
21318 (VEC_XST): Likewise.
21319 (VEC_XST_BE): Likewise.
21320 (VEC_XST_LEN_R): Likewise.
21321 (VEC_XST_TRUNC): Likewise.
21322 (VEC_XXPERMDI): Likewise.
21323 (VEC_XXSLDWI): Likewise.
21324 (VEC_TSTSFI_EQ_DD): Likewise.
21325 (VEC_TSTSFI_EQ_TD): Likewise.
21326 (VEC_TSTSFI_GT_DD): Likewise.
21327 (VEC_TSTSFI_GT_TD): Likewise.
21328 (VEC_TSTSFI_LT_DD): Likewise.
21329 (VEC_TSTSFI_LT_TD): Likewise.
21330 (VEC_TSTSFI_OV_DD): Likewise.
21331 (VEC_TSTSFI_OV_TD): Likewise.
21332 (VEC_VADDCUQ): Likewise.
21333 (VEC_VADDECUQ): Likewise.
21334 (VEC_VADDEUQM): Likewise.
21335 (VEC_VADDUDM): Likewise.
21336 (VEC_VADDUQM): Likewise.
21337 (VEC_VBPERMQ): Likewise.
21338 (VEC_VCLZB): Likewise.
21339 (VEC_VCLZD): Likewise.
21340 (VEC_VCLZH): Likewise.
21341 (VEC_VCLZW): Likewise.
21342 (VEC_VCTZB): Likewise.
21343 (VEC_VCTZD): Likewise.
21344 (VEC_VCTZH): Likewise.
21345 (VEC_VCTZW): Likewise.
21346 (VEC_VEEDP): Likewise.
21347 (VEC_VEESP): Likewise.
21348 (VEC_VESDP): Likewise.
21349 (VEC_VESSP): Likewise.
21350 (VEC_VIEDP): Likewise.
21351 (VEC_VIESP): Likewise.
21352 (VEC_VPKSDSS): Likewise.
21353 (VEC_VPKSDUS): Likewise.
21354 (VEC_VPKUDUM): Likewise.
21355 (VEC_VPKUDUS): Likewise.
21356 (VEC_VPOPCNT): Likewise.
21357 (VEC_VPOPCNTB): Likewise.
21358 (VEC_VPOPCNTD): Likewise.
21359 (VEC_VPOPCNTH): Likewise.
21360 (VEC_VPOPCNTW): Likewise.
21361 (VEC_VPRTYBD): Likewise.
21362 (VEC_VPRTYBQ): Likewise.
21363 (VEC_VPRTYBW): Likewise.
21364 (VEC_VRLD): Likewise.
21365 (VEC_VSLD): Likewise.
21366 (VEC_VSRAD): Likewise.
21367 (VEC_VSRD): Likewise.
21368 (VEC_VSTDCDP): Likewise.
21369 (VEC_VSTDCNDP): Likewise.
21370 (VEC_VSTDCNQP): Likewise.
21371 (VEC_VSTDCNSP): Likewise.
21372 (VEC_VSTDCQP): Likewise.
21373 (VEC_VSTDCSP): Likewise.
21374 (VEC_VSUBECUQ): Likewise.
21375 (VEC_VSUBEUQM): Likewise.
21376 (VEC_VSUBUDM): Likewise.
21377 (VEC_VSUBUQM): Likewise.
21378 (VEC_VTDCDP): Likewise.
21379 (VEC_VTDCSP): Likewise.
21380 (VEC_VUPKHSW): Likewise.
21381 (VEC_VUPKLSW): Likewise.
21383 2022-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
21385 PR rtl-optimization/101260
21386 * regcprop.cc (maybe_mode_change): Invoke mode_change_ok also for
21389 2022-02-01 Xi Ruoyao <xry111@mengyan1223.wang>
21391 PR middle-end/95115
21392 * fold-const.cc (const_binop): Do not fold NaN result from
21395 2022-02-01 Tom de Vries <tdevries@suse.de>
21397 * tree-loop-distribution.cc (generate_reduction_builtin_1): Check for
21398 -ftree-loop-distribute-patterns.
21399 (loop_distribution::execute): Don't call transform_reduction_loop for
21400 -fno-tree-loop-distribute-patterns.
21402 2022-01-31 Andrew Pinski <apinski@marvell.com>
21404 * fold-const.h (operand_compare::operand_equal_p):
21405 Fix comment about OEP_* flags.
21407 2022-01-31 Jakub Jelinek <jakub@redhat.com>
21410 * config/rs6000/aix.h (OPTION_GLIBC): Remove.
21411 * config/rs6000/darwin.h (OPTION_GLIBC): Likewise.
21412 * config/rs6000/option-defaults.h (OPTION_GLIBC): Define to 0
21413 if not already defined.
21415 2022-01-31 Martin Sebor <msebor@redhat.com>
21417 PR middle-end/104232
21418 * gimple-ssa-warn-access.cc (pointers_related_p): Add argument.
21419 Handle PHIs. Add a synonymous overload.
21420 (pass_waccess::check_pointer_uses): Call pointers_related_p.
21422 2022-01-31 Richard Biener <rguenther@suse.de>
21424 PR tree-optimization/100499
21425 * fold-const.cc (multiple_of_p): Pass the correct type of
21426 the expression to the recursive invocation of multiple_of_p
21427 for conversions and use CASE_CONVERT.
21429 2022-01-31 Eric Botcazou <ebotcazou@adacore.com>
21432 * config/sparc/linux64.h (TARGET_DEFAULT): Add MASK_V8PLUS.
21434 2022-01-31 Richard Biener <rguenther@suse.de>
21436 PR tree-optimization/100499
21437 * tree-cfg.cc (verify_gimple_assign_ternary): Use multiple_p
21438 on poly-ints instead of multiple_of_p.
21439 * tree-ssa.cc (maybe_rewrite_mem_ref_base): Likewise.
21440 (non_rewritable_mem_ref_base): Likewise.
21441 (non_rewritable_lvalue_p): Likewise.
21442 (execute_update_addresses_taken): Likewise.
21444 2022-01-29 Jakub Jelinek <jakub@redhat.com>
21445 Andrew Pinski <apinski@marvell.com>
21447 PR tree-optimization/104279
21448 PR tree-optimization/104280
21449 PR tree-optimization/104281
21450 * match.pd (1 / X -> X == 1 for unsigned X): Build eq with
21451 boolean_type_node and convert to type. Formatting fixes.
21453 2022-01-28 Yoshinori Sato <yo-satoh@sios.com>
21455 * config/sh/t-linux (MULTILIB_EXCEPTIONS): Add m1, mb/m1 and m2a.
21457 2022-01-28 Navid Rahimi <navidrahimi@microsoft.com>
21459 PR tree-optimization/103514
21460 * match.pd (a & b) ^ (a == b) -> !(a | b): New optimization.
21461 (a & b) == (a ^ b) -> !(a | b): New optimization.
21463 2022-01-28 Marek Polacek <polacek@redhat.com>
21465 * doc/invoke.texi: Update -Wbidi-chars documentation.
21467 2022-01-28 Iain Sandoe <iain@sandoe.co.uk>
21469 * config/rs6000/darwin.h (OPTION_GLIBC): Define to 0.
21471 2022-01-28 Zhao Wei Liew <zhaoweiliew@gmail.com>
21473 PR tree-optimization/95424
21474 * match.pd: Simplify 1 / X where X is an integer.
21476 2022-01-28 Jakub Jelinek <jakub@redhat.com>
21478 PR tree-optimization/104263
21479 * gimple-ssa-store-merging.cc (get_status_for_store_merging): For
21480 cfun->can_throw_non_call_exceptions && cfun->eh test whether
21481 last non-debug stmt in the bb is store_valid_for_store_merging_p
21482 rather than last stmt.
21484 2022-01-28 Martin Liska <mliska@suse.cz>
21486 * diagnostic.cc (diagnostic_action_after_output): Remove extra
21489 2022-01-28 Martin Liska <mliska@suse.cz>
21491 * config/rs6000/host-darwin.cc (segv_crash_handler):
21492 Do not use leading capital letter.
21493 (segv_handler): Likewise.
21494 * ipa-sra.cc (verify_splitting_accesses): Likewise.
21495 * varasm.cc (get_section): Likewise.
21497 2022-01-28 Richard Biener <rguenther@suse.de>
21499 PR tree-optimization/104267
21500 * tree-vect-stmts.cc (vectorizable_call): Properly use the
21501 per-argument determined vector type for externals and
21504 2022-01-28 Richard Biener <rguenther@suse.de>
21506 PR tree-optimization/104263
21507 * tree-cfg.cc (gimple_purge_dead_abnormal_call_edges):
21508 Purge edges also when !cfun->has_nonlocal_label
21509 and !cfun->calls_setjmp.
21511 2022-01-28 Maciej W. Rozycki <macro@embecosm.com>
21513 * config/riscv/riscv.md: Document `auipc' and `bitmanip' `type'
21516 2022-01-28 Jakub Jelinek <jakub@redhat.com>
21519 * cfgrtl.cc (loc_equal): New function.
21520 (unique_locus_on_edge_between_p): Use it.
21522 2022-01-28 Richard Biener <rguenther@suse.de>
21524 * cfganal.h (mark_dfs_back_edges): Provide API with struct
21526 * cfganal.cc (mark_dfs_back_edges): Take a struct function
21527 to work on, add a wrapper passing cfun.
21528 * graph.cc (draw_cfg_nodes_no_loops): Replace stray cfun
21529 uses with fun which is already passed.
21530 (draw_cfg_edges): Likewise.
21531 (draw_cfg_nodes_for_loop): Do not use draw_cfg_nodes_for_loop
21534 2022-01-27 Patrick Palka <ppalka@redhat.com>
21537 * tree.cc (build_call_vec): Add const to second parameter.
21538 * tree.h (build_call_vec): Likewise.
21540 2022-01-27 Martin Liska <mliska@suse.cz>
21543 * diagnostic.cc (diagnostic_initialize):
21544 Initialize report_bug flag.
21545 (diagnostic_action_after_output):
21546 Explain that -freport-bug option can be used for pre-processed
21547 file creation. Make the message shorter.
21548 (error_recursion): Rename Internal to internal.
21549 * diagnostic.h (struct diagnostic_context): New field.
21550 * opts.cc (common_handle_option): Init the field here.
21552 2022-01-27 Kewen Lin <linkw@linux.ibm.com>
21555 * config/rs6000/rs6000.cc
21556 (rs6000_cost_data::update_target_cost_per_stmt): Fix one wrong
21557 assertion with early return.
21559 2022-01-27 Chung-Lin Tang <cltang@codesourcery.com>
21561 PR middle-end/103642
21562 * gimplify.cc (gimplify_scan_omp_clauses): Do not do indir_p handling
21563 for non-pointer or non-reference-to-pointer cases.
21565 2022-01-27 Jakub Jelinek <jakub@redhat.com>
21567 PR tree-optimization/104196
21568 * gimple-fold.h (rewrite_to_defined_overflow): Add IN_PLACE argument.
21569 * gimple-fold.cc (rewrite_to_defined_overflow): Likewise. If true,
21570 return NULL and emit needed stmts before and after stmt.
21571 * tree-ssa-reassoc.cc (update_range_test): For inter-bb range opt
21572 pick as operand_entry that will hold the merged test the one feeding
21573 earliest condition, ensure that by swapping range->idx with some
21574 other range's idx if needed. If seq is non-NULL, don't actually swap
21575 it but instead rewrite stmts with undefined overflow in between
21577 (maybe_optimize_range_tests): Set ops[]->id to bb->index with the
21578 corresponding condition even if they have non-NULL ops[]->op.
21581 2022-01-26 Jakub Jelinek <jakub@redhat.com>
21584 * config/rs6000/emmintrin.h (_mm_sad_epu8): Use __asm__ instead of
21586 * config/rs6000/smmintrin.h (_mm_minpos_epu16): Declare iterator
21587 before for loop instead of for init clause.
21588 * config/rs6000/bmi2intrin.h (_pext_u64): Likewise.
21590 2022-01-26 Jakub Jelinek <jakub@redhat.com>
21593 * config/rs6000/bmiintrin.h: Test _X86GPRINTRIN_H_INCLUDED instead of
21594 _X86INTRIN_H_INCLUDED and adjust #error wording.
21595 * config/rs6000/bmi2intrin.h: Likewise.
21597 2022-01-26 Jakub Jelinek <jakub@redhat.com>
21600 * dwarf2out.cc (long_double_as_float128): New function.
21601 (modified_type_die): For powerpc64le IEEE 754 quad long double
21602 and complex long double emit those as DW_TAG_typedef to
21603 _Float128 or complex _Float128 base type.
21605 2022-01-26 Marek Polacek <polacek@redhat.com>
21608 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer): Don't
21609 warn when the SSA_NAME_VAR of REF has supressed -Wuse-after-free.
21611 2022-01-26 Martin Liska <mliska@suse.cz>
21613 * ipa-modref-tree.cc (modref_access_node::update):
21614 Remove "--param param=foo" with "--param foo".
21615 (modref_access_node::insert): Likewise.
21616 (modref_access_node::insert_kill): Likewise.
21617 * ipa-modref-tree.h (struct modref_ref_node): Likewise.
21618 (struct modref_base_node): Likewise.
21619 (struct modref_tree): Likewise.
21621 2022-01-26 Raoni Fassina Firmino <raoni@linux.ibm.com>
21624 * builtins.cc (expand_builtin_feclear_feraise_except): Add op0
21627 2022-01-25 Martin Sebor <msebor@redhat.com>
21629 PR tree-optimization/104203
21630 * gimple-ssa-warn-access.cc (pass_data pass_data_waccess): Use
21632 * pointer-query.cc (access_ref::merge_ref): Change return type.
21633 Convert failure to a conservative success.
21634 (access_ref::get_ref): Adjust to the change above. Short-circuit
21635 PHI evaluation after first failure turned into conservative success.
21636 * pointer-query.h (access_ref::merge_ref): Change return type.
21637 * timevar.def (TV_WARN_ACCESS): New timer variable.
21639 2022-01-25 David Edelsohn <dje.gcc@gmail.com>
21641 * config/rs6000/aix.h (OPTION_GLIBC): Define as 0.
21643 2022-01-25 Richard Biener <rguenther@suse.de>
21645 PR tree-optimization/104214
21646 * tree-ssa-loop-niter.cc (number_of_iterations_cond): Use
21647 stronger guarantees for relational pointer compares when
21648 rewriting BASE0 + STEP0 cmp BASE1 + STEP1 as
21649 BASE0 + STEP0 - STEP1 cmp BASE1.
21651 2022-01-25 Jakub Jelinek <jakub@redhat.com>
21654 * config/rs6000/rs6000-internal.h (rs6000_passes_ieee128): Don't
21656 * config/rs6000/rs6000.cc (rs6000_passes_ieee128,
21657 ieee128_mangling_gcc_8_1): Remove.
21658 (TARGET_ASM_GLOBALIZE_DECL_NAME): Don't redefine.
21659 (rs6000_mangle_type): Return "u9__ieee128" instead of
21660 ieee128_mangling_gcc_8_1 ? "U10__float128" : "u9__ieee128".
21661 (rs6000_globalize_decl_name): Remove.
21662 * config/rs6000/rs6000-call.cc (init_cumulative_args,
21663 rs6000_function_arg_advance_1): Don't set rs6000_passes_ieee128.
21665 2022-01-24 Martin Sebor <msebor@redhat.com>
21667 * pointer-query.cc (pointer_query::dump): Remove duplicate
21670 2022-01-24 Marek Polacek <polacek@redhat.com>
21672 PR preprocessor/104030
21673 * doc/invoke.texi: Update documentation for -Wbidi-chars.
21675 2022-01-24 Raoni Fassina Firmino <raoni@linux.ibm.com>
21678 * builtins.cc (expand_builtin_fegetround): New function.
21679 (expand_builtin_feclear_feraise_except): New function.
21680 (expand_builtin): Add cases for BUILT_IN_FEGETROUND,
21681 BUILT_IN_FECLEAREXCEPT and BUILT_IN_FERAISEEXCEPT.
21682 * config/rs6000/rs6000.md (fegetroundsi): New pattern.
21683 (feclearexceptsi): New Pattern.
21684 (feraiseexceptsi): New Pattern.
21685 * doc/extend.texi: Add a new introductory paragraph about the
21687 * doc/md.texi: (fegetround@var{m}): Document new optab.
21688 (feclearexcept@var{m}): Document new optab.
21689 (feraiseexcept@var{m}): Document new optab.
21690 * optabs.def (fegetround_optab): New optab.
21691 (feclearexcept_optab): New optab.
21692 (feraiseexcept_optab): New optab.
21694 2022-01-24 Richard Biener <rguenther@suse.de>
21695 Jiufu Guo <guojiufu@linux.ibm.com>
21697 PR tree-optimization/100740
21698 PR tree-optimization/101508
21699 PR tree-optimization/101972
21700 PR tree-optimization/102131
21701 * tree-ssa-loop-niter.cc (number_of_iterations_cond): Properly
21702 constrain BASE0 + STEP0 cmp BASE1 + STEP1 to
21703 BASE0 + STEP0 - STEP1 cmp BASE1 transform.
21705 2022-01-24 Jakub Jelinek <jakub@redhat.com>
21707 PR sanitizer/104158
21708 * opt-functions.awk (var_set): Handle EnumBitSet property.
21709 * optc-gen.awk: Don't disallow RejectNegative if EnumBitSet is
21711 * opts.h (enum cl_enum_var_value): New type.
21712 * opts-common.cc (decode_cmdline_option): Use CLEV_* values.
21713 Handle CLEV_BITSET.
21714 (cmdline_handle_error): Handle CLEV_BITSET.
21715 * opts.cc (test_enum_sets): Also test EnumBitSet requirements.
21716 * doc/options.texi (EnumBitSet): Document.
21717 * common.opt (fsanitize-coverage=): Use EnumBitSet instead of
21719 (trace-pc, trace-cmp): Drop Set properties.
21721 2022-01-24 Jakub Jelinek <jakub@redhat.com>
21723 PR sanitizer/104158
21724 * common.opt (flag_sanitize_coverage): Remove Variable entry.
21725 (fsanitize-coverage=): Remove RejectNegative property, add
21726 Var(flag_sanitize_coverage) and EnumSet properties.
21727 (trace-pc): Add Set(1) property.
21728 (trace-cmp): Add Set(2) property.
21729 * opts.cc (common_handle_option): Don't handle
21730 OPT_fsanitize_coverage_.
21732 2022-01-24 Jakub Jelinek <jakub@redhat.com>
21734 PR sanitizer/104158
21735 * opt-functions.awk (var_set): Handle EnumSet property.
21736 * optc-gen.awk: Don't disallow RejectNegative if EnumSet is
21738 * opt-read.awk: Handle Set property.
21739 * opts.h (CL_ENUM_SET_SHIFT, CL_ERR_ENUM_SET_ARG): Define.
21740 (struct cl_decoded_option): Mention enum in value description.
21742 (set_option): Add mask argument defaulted to 0.
21743 * opts.cc (test_enum_sets): New function.
21744 (opts_cc_tests): Call it.
21745 * opts-common.cc (enum_arg_to_value): Change return argument
21746 from bool to int, on success return index into the cl_enum_arg
21747 array, on failure -1. Add len argument, if non-0, use strncmp
21749 (opt_enum_arg_to_value): Adjust caller.
21750 (decode_cmdline_option): Handle EnumSet represented as
21751 CLVC_ENUM with non-zero var_value. Initialize decoded->mask.
21752 (decode_cmdline_options_to_array): CLear opt_array[0].mask.
21753 (handle_option): Pass decoded->mask to set_options last argument.
21754 (generate_option): Clear decoded->mask.
21755 (generate_option_input_file): Likewise.
21756 (cmdline_handle_error): Handle CL_ERR_ENUM_SET_ARG.
21757 (set_option): Add mask argument, use it for CLVC_ENUM.
21758 (control_warning_option): Adjust enum_arg_to_value caller.
21759 * doc/options.texi: Document Set and EnumSet properties.
21761 2022-01-24 Jakub Jelinek <jakub@redhat.com>
21763 PR bootstrap/104170
21764 * config/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
21765 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
21766 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
21767 using OPTION_*_P macros.
21768 * config/alpha/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
21769 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
21770 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
21771 using OPTION_*_P macros.
21772 * config/rs6000/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
21773 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
21774 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
21775 using OPTION_*_P macros.
21776 * config/rs6000/linux64.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
21777 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
21778 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
21779 using OPTION_*_P macros.
21780 * config/fuchsia.h (OPTION_MUSL_P): Redefine.
21781 * config/glibc-stdint.h (OPTION_MUSL_P): Define if not defined.
21782 * common/config/s390/s390-common.cc (s390_supports_split_stack): Re-add
21783 ATTRIBUTE_UNUSED to opts parameter. If OPTION_GLIBC_P is defined, use
21784 OPTION_GLIBC_P (opts) as condition, otherwise assume if (false).
21785 * common/config/i386/i386-common.cc (ix86_supports_split_stack): If
21786 OPTION_GLIBC_P is defined use !OPTION_GLIBC_P (opts) as condition,
21787 otherwise assume if (true).
21789 2022-01-24 Kito Cheng <kito.cheng@sifive.com>
21791 * common/config/riscv/riscv-common.cc (riscv_subset_list::to_string):
21792 Skip zicsr and zifencei if I-ext is 2.0.
21794 2022-01-24 Jia-Wei Chen <jiawei@iscas.ac.cn>
21796 * config.gcc: Modify default isa_spec version.
21798 2022-01-24 Jiufu Guo <guojiufu@linux.ibm.com>
21800 PR tree-optimization/102087
21801 * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
21802 Correct PLUS result type.
21804 2022-01-24 H.J. Lu <hjl.tools@gmail.com>
21807 * config/i386/predicates.md (bcst_mem_operand): Also check mode
21808 of memory broadcast.
21810 2022-01-23 Andrew Pinski <apinski@marvell.com>
21813 * config/aarch64/aarch64-builtins.cc
21814 (aarch64_general_gimple_fold_builtin): Handle
21815 __builtin_aarch64_sqrt* and simplify into SQRT internal
21818 2022-01-22 Jakub Jelinek <jakub@redhat.com>
21821 * opts-global.cc (handle_common_deferred_options): Quote
21822 --enable-plugin in diagnostics to avoid -Werror=format-diag.
21824 2022-01-21 Michael Meissner <meissner@the-meissners.org>
21827 * config/rs6000/rs6000-protos.h (prefixed_xxsplti_p): Delete.
21828 * config/rs6000/rs6000.cc (prefixed_xxsplti_p): Delete.
21829 * config/rs6000/rs6000.md (prefixed attribute): Delete section
21830 that sets the prefixed attribute for xxspltiw, xxspltidp, and
21831 xxsplti32dx instructions.
21832 (movsf_hardfloat): Explicitly set the prefixed attribute
21833 when xxspltiw and xxspltidp instructions are generated.
21834 (mov<mode>_hardfloat32): Likewise.
21835 (mov<mode>_hardfloat64): Likewise.
21836 * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Explicitly set the
21837 prefixed attribute for xxspltiw and xxspltidp instructions.
21838 (vsx_mov<mode>_32bit): Likewise.
21840 2022-01-21 H.J. Lu <hjl.tools@gmail.com>
21842 PR bootstrap/104170
21843 * common/config/i386/i386-common.cc (ix86_supports_split_stack):
21844 Return true only on glibc.
21845 * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN):
21846 Revert commit c163647ffbc.
21847 * config/i386/gnu.h (TARGET_LIBC_PROVIDES_SSP): Likewise.
21849 2022-01-21 Sören Tempel <soeren@soeren-tempel.net>
21851 * common/config/s390/s390-common.cc (s390_supports_split_stack):
21852 Only support split-stack on glibc targets.
21853 * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN): Ditto.
21854 * config/i386/gnu.h (defined): Ditto.
21856 2022-01-21 Bill Schmidt <wschmidt@linux.ibm.com>
21858 * config/rs6000/rs6000-overload.def (VEC_SLDW): Add instances for
21859 vector float and vector double.
21861 2022-01-21 Bill Seurer <seurer@gcc.gnu.org>
21863 * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
21864 Fix mention of ifunc in string.
21866 2022-01-21 Roger Sayle <roger@nextmovesoftware.com>
21868 PR middle-end/104140
21869 * tree-ssa-math-opts.cc (convert_mult_to_highpart): Check that the
21870 operands of the widening multiplication are either both signed or
21871 both unsigned, and abort the conversion if mismatched.
21872 * doc/generic.texi (WIDEN_MULT_EXPR): Describe expression node.
21873 (MULT_HIGHPART_EXPR): Clarify that operands must have the same
21875 * tree.def (MULT_HIGHPART_EXPR): Document both operands must have
21876 integer types with the same precision and signedness.
21877 (WIDEN_MULT_EXPR): Document that operands must have integer types
21878 with the same precision, but possibly differing signedness.
21879 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Defend against
21880 riscv_current_subset_list returning a NULL pointer (empty list).
21882 2022-01-21 Vladimir N. Makarov <vmakarov@redhat.com>
21885 * ira.h (struct target_ira): Add member
21886 x_ira_exclude_class_mode_regs.
21887 (ira_exclude_class_mode_regs): New macro.
21888 * lra.h (lra_create_new_reg): Add arg exclude_start_hard_regs and
21890 * lra-int.h: ... to here.
21891 (lra_create_new_reg_with_unique_value): Add arg
21892 exclude_start_hard_regs.
21893 (class lra_reg): Add member exclude_start_hard_regs.
21894 * lra-assigns.cc (find_hard_regno_for_1): Setup
21895 impossible_start_hard_regs from exclude_start_hard_regs.
21896 * lra-constraints.cc (get_reload_reg): Add arg exclude_start_hard_regs and pass
21897 it lra_create_new_reg[_with_unique_value].
21898 (match_reload): Ditto.
21899 (check_and_process_move): Pass NULL
21900 exclude_start_hard_regs to lra_create_new_reg_with_unique_value.
21901 (goal_alt_exclude_start_hard_regs): New static variable.
21902 (process_addr_reg, simplify_operand_subreg): Pass NULL
21903 exclude_start_hard_regs to lra_create_new_reg_with_unique_value
21904 and get_reload_reg.
21905 (process_alt_operands): Setup goal_alt_exclude_start_hard_regs.
21906 Use this_alternative_exclude_start_hard_regs additionally to find
21907 winning operand alternative.
21908 (base_to_reg, base_plus_disp_to_reg, index_part_to_reg): Pass NULL
21909 exclude_start_hard_regs to lra_create_new_reg.
21910 (process_address_1, emit_inc): Ditto.
21911 (curr_insn_transform): Pass exclude_start_hard_regs value to
21912 lra_create_new_reg, get_reload_reg, match_reload.
21913 (inherit_reload_reg, split_reg): Pass NULL exclude_start_hard_regs
21914 to lra_create_new_reg.
21915 (process_invariant_for_inheritance): Ditto.
21916 * lra-remat.cc (update_scratch_ops): Ditto.
21917 * lra.cc (lra_create_new_reg_with_unique_value): Add arg
21918 exclude_start_hard_regs. Setup the corresponding member of
21920 (lra_create_new_reg): Add arg exclude_start_hard_regs and pass it
21921 to lra_create_new_reg_with_unique_value.
21922 (initialize_lra_reg_info_element): Initialize member
21923 exclude_start_hard_regs.
21924 (get_scratch_reg): Pass NULL to lra_create_new_reg.
21925 * ira.cc (setup_prohibited_class_mode_regs): Rename to
21926 setup_prohibited_and_exclude_class_mode_regs and calculate
21927 ira_exclude_class_mode_regs.
21929 2022-01-21 Martin Liska <mliska@suse.cz>
21931 * configure.ac: Detect ld_is_mold and use it for
21932 comdat_group=yes and gcc_cv_ld_hidden=yes.
21933 * configure: Regenerate.
21935 2022-01-21 Richard Biener <rguenther@suse.de>
21937 PR tree-optimization/100089
21938 * tree-vect-slp.cc (vect_slp_region): Reject BB vectorization
21939 of if-converted loops with unvectorized COND_EXPRs for
21940 all but the unlimited cost models.
21942 2022-01-21 Ard Biesheuvel <ardb@kernel.org>
21944 * config/arm/arm-opts.h (enum stack_protector_guard): New.
21945 * config/arm/arm-protos.h (arm_stack_protect_tls_canary_mem):
21947 * config/arm/arm.cc (TARGET_STACK_PROTECT_GUARD): Define.
21948 (arm_option_override_internal): Handle and put in error checks.
21949 for stack protector guard options.
21950 (arm_option_reconfigure_globals): Likewise.
21951 (arm_stack_protect_tls_canary_mem): New.
21952 (arm_stack_protect_guard): New.
21953 * config/arm/arm.md (stack_protect_set): New.
21954 (stack_protect_set_tls): Likewise.
21955 (stack_protect_test): Likewise.
21956 (stack_protect_test_tls): Likewise.
21957 (reload_tp_hard): Likewise.
21958 * config/arm/arm.opt (-mstack-protector-guard): New
21959 (-mstack-protector-guard-offset): New.
21960 * doc/invoke.texi: Document new options.
21962 2022-01-21 Richard Biener <rguenther@suse.de>
21964 PR tree-optimization/104156
21965 * tree-ssa-loop-unswitch.cc (tree_unswitch_outer_loop):
21966 Collect and reset debug stmts with out-of-loop uses when
21968 (find_loop_guard): Adjust.
21969 (empty_bb_without_guard_p): Likewise. Ignore debug stmts.
21970 (used_outside_loop_p): Push debug uses to a vector of
21971 debug stmts to reset.
21972 (hoist_guard): Adjust -fopt-info category.
21974 2022-01-21 Richard Biener <rguenther@suse.de>
21976 PR tree-optimization/104152
21977 * tree-vect-slp.cc (vect_build_slp_tree_2): Add missing
21978 can_duplicate_and_interleave_p check.
21980 2022-01-21 Jakub Jelinek <jakub@redhat.com>
21982 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
21983 Avoid passing var to warning_at when the format string doesn't
21986 2022-01-21 Aldy Hernandez <aldyh@redhat.com>
21988 PR tree-optimization/103721
21989 * gimple-range-path.cc
21990 (path_range_query::relations_may_be_invalidated): New.
21991 (path_range_query::compute_ranges_in_block): Reset relations if
21992 they may be invalidated.
21993 (path_range_query::maybe_register_phi_relation): Exit if relations
21994 may be invalidated on incoming edge.
21995 (path_range_query::compute_phi_relations): Pass incoming PHI edge
21996 to maybe_register_phi_relation.
21997 * gimple-range-path.h (relations_may_be_invalidated): New.
21998 (maybe_register_phi_relation): Pass edge instead of tree.
21999 * tree-ssa-threadbackward.cc (back_threader::back_threader):
22001 * value-relation.cc (path_oracle::path_oracle): Call
22002 mark_dfs_back_edges.
22003 (path_oracle::register_relation): Add SSA names to m_registered
22005 (path_oracle::reset_path): Clear m_registered bitmap.
22006 * value-relation.h (path_oracle::set_root_oracle): New.
22008 2022-01-21 Jakub Jelinek <jakub@redhat.com>
22010 PR rtl-optimization/102478
22011 * optabs.cc (prepare_cmp_insn): If !can_create_pseudo_p (), don't
22012 force_reg constants and for -fnon-call-exceptions fail if copy_to_reg
22015 2022-01-20 Richard Biener <rguenther@suse.de>
22017 PR middle-end/100786
22018 * gimple-fold.cc (get_symbol_constant_value): Only return
22019 values of compatible type to the symbol.
22021 2022-01-20 Andrew MacLeod <amacleod@redhat.com>
22023 * value-relation.cc (relation_oracle::valid_equivs): Query and add
22024 if valid members of a set.
22025 (equiv_oracle::register_equiv): Call valid_equivs rather than
22026 bitmap direct operations.
22027 (path_oracle::register_equiv): Ditto.
22028 * value-relation.h (relation_oracle::valid_equivs): New prototype.
22030 2022-01-20 Richard Biener <rguenther@suse.de>
22033 * config/i386/i386.cc (ix86_gimple_fold_builtin): Check for
22034 LHS before folding __builtin_ia32_shufpd and friends.
22036 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
22038 * config/arm/crypto.md (aes_op_protect): Allow moves from core
22039 registers and from memory.
22040 (aes_op_protect_misalign_load): New pattern.
22041 (aes_op_protect_neon_vld1v16qi): New pattern.
22043 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
22045 * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>_protected):
22047 (aarch32_crypto_aese_fused_protected): Likewise.
22048 (aarch32_crypto_aesd_fused_protected): Likewise.
22050 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
22052 * config/arm/crypto.md (crypto_<CRYPTO_AES:crypto_pattern>): Convert
22053 to define_expand. Add mitigation for the Cortex-A AES erratum
22055 (*crypto_<CRYPTO_AES:crypto_pattern>_insn): New pattern, based
22056 on original crypto_<CRYPTO_AES:crypto_pattern> insn.
22057 (aes_op_protect): New pattern.
22058 * config/arm/unspecs.md (unspec): Add UNSPEC_AES_PROTECT.
22060 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
22062 * config/arm/arm-cpus.in (quirk_aes_1742098): New quirk feature
22063 (ALL_QUIRKS): Add it.
22064 (cortex-a57, cortex-a72): Enable it.
22065 (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
22066 * config/arm/arm.opt (mfix-cortex-a57-aes-1742098): New command-line
22068 (mfix-cortex-a72-aes-1655431): New option alias.
22069 * config/arm/arm.cc (arm_option_override): Handle default settings
22070 for AES erratum switch.
22071 * doc/invoke.texi (Arm Options): Document new options.
22073 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
22075 * config/arm/crypto.md (crypto_<CYRPTO_AES:crypto_pattern>): Use
22076 <crypto_mode> rather than hard-coding the mode.
22077 (crypto_<CRYPTO_AESMC:crypto_pattern>): Fix white space.
22078 (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
22079 (*aarch32_crypto_aese_fused): Likewise.
22080 (*aarch32_crypto_aesd_fused): Likewise.
22081 (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
22082 (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
22083 (crypto_sha1h_lb): Likewise.
22084 (crypto_vmullp64): Likewise.
22085 (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
22086 (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
22088 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
22090 * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>): Add
22091 iterator to pattern name to disambiguate.
22092 (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
22093 (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
22094 (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
22095 (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
22096 (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
22098 2022-01-20 Martin Liska <mliska@suse.cz>
22100 PR bootstrap/104135
22101 * emit-rtl.cc (make_insn_raw): Fix -Wformat-diag warnings.
22102 * rtl.cc: Partially disable -Wformat-diag for RTL checking
22105 2022-01-20 Jakub Jelinek <jakub@redhat.com>
22108 * dwarf2out.cc (index_rnglists): For !HAVE_AS_LEB128 and
22109 block_num > 0, index entry even if !have_multiple_function_sections.
22111 2022-01-20 liuhongt <hongtao.liu@intel.com>
22114 * tree-vect-stmts.cc (supportable_narrowing_operation): Enhance
22115 integral mode mask pack by multi steps which takes
22116 vec_pack_sbool_trunc_optab as start when elements number is
22117 less than BITS_PER_UNITS.
22119 2022-01-20 Richard Biener <rguenther@suse.de>
22121 PR tree-optimization/104114
22122 * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
22123 single element vector decomposition.
22125 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
22127 * ifcvt.cc (noce_convert_multiple_sets_1): New function.
22128 (noce_convert_multiple_sets): Call function a second time if we can
22129 improve the first try.
22131 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
22133 * ifcvt.cc (cond_exec_get_condition): New parameter to allow getting the
22134 reversed comparison.
22135 (try_emit_cmove_seq): New function to facilitate creating a cmov
22137 (noce_convert_multiple_sets): Create two sequences and use the less
22140 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
22142 * rtl.h (struct rtx_comparison): New struct that holds an rtx
22144 * config/rs6000/rs6000.cc (rs6000_emit_minmax): Use struct instead of
22146 (rs6000_emit_swsqrt): Likewise.
22147 * expmed.cc (expand_sdiv_pow2): Likewise.
22148 (emit_store_flag): Likewise.
22149 * expr.cc (expand_cond_expr_using_cmove): Likewise.
22150 (expand_expr_real_2): Likewise.
22151 * ifcvt.cc (noce_emit_cmove): Add compare and reversed compare
22153 * optabs.cc (emit_conditional_move_1): New function.
22154 (expand_doubleword_shift_condmove): Use struct.
22155 (emit_conditional_move): Use struct and allow to call directly
22156 without going through preparation steps.
22157 * optabs.h (emit_conditional_move): Use struct.
22159 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
22161 * ifcvt.cc (bb_ok_for_noce_convert_multiple_sets): Estimate insns costs.
22162 (noce_process_if_block): Use potential costs.
22164 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
22166 * ifcvt.cc (noce_convert_multiple_sets): Allow constants.
22167 (bb_ok_for_noce_convert_multiple_sets): Likewise.
22169 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
22171 * ifcvt.cc (need_cmov_or_rewire): New function.
22172 (noce_convert_multiple_sets): Call it.
22174 2022-01-19 David Malcolm <dmalcolm@redhat.com>
22176 * attribs.cc (attribute_c_tests): Rename to...
22177 (attribs_cc_tests): ...this.
22178 * bitmap.cc (bitmap_c_tests): Rename to...
22179 (bitmap_cc_tests): ...this.
22180 * cgraph.cc (cgraph_c_finalize): Rename to...
22181 (cgraph_cc_finalize): ...this.
22182 (cgraph_c_tests): Rename to...
22183 (cgraph_cc_tests): ...this.
22184 * cgraph.h (cgraph_c_finalize): Rename to...
22185 (cgraph_cc_finalize): ...this.
22186 (cgraphunit_c_finalize): Rename to...
22187 (cgraphunit_cc_finalize): ...this.
22188 * cgraphunit.cc (cgraphunit_c_finalize): Rename to...
22189 (cgraphunit_cc_finalize): ...this.
22190 * convert.cc (convert_c_tests): Rename to...
22191 (convert_cc_tests): ...this.
22192 * dbgcnt.cc (dbgcnt_c_tests): Rename to...
22193 (dbgcnt_cc_tests): ...this.
22194 * diagnostic-show-locus.cc (diagnostic_show_locus_c_tests): Rename to...
22195 (diagnostic_show_locus_cc_tests): ...this.
22196 * diagnostic.cc (diagnostic_c_tests): Rename to...
22197 (diagnostic_cc_tests): ...this.
22198 * dumpfile.cc (dumpfile_c_tests): Rename to...
22199 (dumpfile_cc_tests): ...this.
22200 * dwarf2out.cc (dwarf2out_c_finalize): Rename to...
22201 (dwarf2out_cc_finalize): ...this.
22202 * dwarf2out.h (dwarf2out_c_finalize): Rename to...
22203 (dwarf2out_cc_finalize): ...this.
22204 * edit-context.cc (edit_context_c_tests): Rename to...
22205 (edit_context_cc_tests): ...this.
22206 * et-forest.cc (et_forest_c_tests): Rename to...
22207 (et_forest_cc_tests): ...this.
22208 * fibonacci_heap.cc (fibonacci_heap_c_tests): Rename to...
22209 (fibonacci_heap_cc_tests): ...this.
22210 * fold-const.cc (fold_const_c_tests): Rename to...
22211 (fold_const_cc_tests): ...this.
22212 * function-tests.cc (function_tests_c_tests): Rename to...
22213 (function_tests_cc_tests): ...this.
22214 * gcse.cc (gcse_c_finalize): Rename to...
22215 (gcse_cc_finalize): ...this.
22216 * gcse.h (gcse_c_finalize): Rename to...
22217 (gcse_cc_finalize): ...this.
22218 * ggc-tests.cc (ggc_tests_c_tests): Rename to...
22219 (ggc_tests_cc_tests): ...this.
22220 * gimple-ssa-store-merging.cc (store_merging_c_tests): Rename to...
22221 (store_merging_cc_tests): ...this.
22222 * gimple.cc (gimple_c_tests): Rename to...
22223 (gimple_cc_tests): ...this.
22224 * hash-map-tests.cc (hash_map_tests_c_tests): Rename to...
22225 (hash_map_tests_cc_tests): ...this.
22226 * hash-set-tests.cc (hash_set_tests_c_tests): Rename to...
22227 (hash_set_tests_cc_tests): ...this.
22228 * input.cc (input_c_tests): Rename to...
22229 (input_cc_tests): ...this.
22230 * ipa-cp.cc (ipa_cp_c_finalize): Rename to...
22231 (ipa_cp_cc_finalize): ...this.
22232 * ipa-fnsummary.cc (ipa_fnsummary_c_finalize): Rename to...
22233 (ipa_fnsummary_cc_finalize): ...this.
22234 * ipa-fnsummary.h (ipa_fnsummary_c_finalize): Rename to...
22235 (ipa_fnsummary_cc_finalize): ...this.
22236 * ipa-modref-tree.cc (ipa_modref_tree_c_tests): Rename to...
22237 (ipa_modref_tree_cc_tests): ...this.
22238 * ipa-modref-tree.h (modref_c_tests): Delete bogus decl.
22239 * ipa-modref.cc (ipa_modref_c_finalize): Rename to...
22240 (ipa_modref_cc_finalize): ...this.
22241 * ipa-modref.h (ipa_modref_c_finalize): Rename to...
22242 (ipa_modref_cc_finalize): ...this.
22243 * ipa-prop.h (ipa_cp_c_finalize): Rename to...
22244 (ipa_cp_cc_finalize): ...this.
22245 * ipa-reference.cc (ipa_reference_c_finalize): Rename to...
22246 (ipa_reference_cc_finalize): ...this.
22247 * ipa-reference.h (ipa_reference_c_finalize): Rename to...
22248 (ipa_reference_cc_finalize): ...this.
22249 * ira-costs.cc (ira_costs_c_finalize): Rename to...
22250 (ira_costs_cc_finalize): ...this.
22251 * ira.h (ira_costs_c_finalize): Rename to...
22252 (ira_costs_cc_finalize): ...this.
22253 * opt-suggestions.cc (opt_proposer_c_tests): Rename to...
22254 (opt_suggestions_cc_tests): ...this.
22255 * opts.cc (opts_c_tests): Rename to...
22256 (opts_cc_tests): ...this.
22257 * predict.cc (predict_c_tests): Rename to...
22258 (predict_cc_tests): ...this.
22259 * pretty-print.cc (pretty_print_c_tests): Rename to...
22260 (pretty_print_cc_tests): ...this.
22261 * read-rtl-function.cc (read_rtl_function_c_tests): Rename to...
22262 (read_rtl_function_cc_tests): ...this.
22263 * rtl-tests.cc (rtl_tests_c_tests): Rename to...
22264 (rtl_tests_cc_tests): ...this.
22265 * sbitmap.cc (sbitmap_c_tests): Rename to...
22266 (sbitmap_cc_tests): ...this.
22267 * selftest-run-tests.cc (selftest::run_tests): Update calls for
22268 _c_ to _cc_ function renamings; fix names of attribs and
22269 opt-suggestions tests.
22270 * selftest.cc (selftest_c_tests): Rename to...
22271 (selftest_cc_tests): ...this.
22272 * selftest.h (attribute_c_tests): Rename to...
22273 (attribs_cc_tests): ...this.
22274 (bitmap_c_tests): Rename to...
22275 (bitmap_cc_tests): ...this.
22276 (cgraph_c_tests): Rename to...
22277 (cgraph_cc_tests): ...this.
22278 (convert_c_tests): Rename to...
22279 (convert_cc_tests): ...this.
22280 (diagnostic_c_tests): Rename to...
22281 (diagnostic_cc_tests): ...this.
22282 (diagnostic_show_locus_c_tests): Rename to...
22283 (diagnostic_show_locus_cc_tests): ...this.
22284 (dumpfile_c_tests): Rename to...
22285 (dumpfile_cc_tests): ...this.
22286 (edit_context_c_tests): Rename to...
22287 (edit_context_cc_tests): ...this.
22288 (et_forest_c_tests): Rename to...
22289 (et_forest_cc_tests): ...this.
22290 (fibonacci_heap_c_tests): Rename to...
22291 (fibonacci_heap_cc_tests): ...this.
22292 (fold_const_c_tests): Rename to...
22293 (fold_const_cc_tests): ...this.
22294 (function_tests_c_tests): Rename to...
22295 (function_tests_cc_tests): ...this.
22296 (ggc_tests_c_tests): Rename to...
22297 (ggc_tests_cc_tests): ...this.
22298 (gimple_c_tests): Rename to...
22299 (gimple_cc_tests): ...this.
22300 (hash_map_tests_c_tests): Rename to...
22301 (hash_map_tests_cc_tests): ...this.
22302 (hash_set_tests_c_tests): Rename to...
22303 (hash_set_tests_cc_tests): ...this.
22304 (input_c_tests): Rename to...
22305 (input_cc_tests): ...this.
22306 (opts_c_tests): Rename to...
22307 (opts_cc_tests): ...this.
22308 (predict_c_tests): Rename to...
22309 (predict_cc_tests): ...this.
22310 (pretty_print_c_tests): Rename to...
22311 (pretty_print_cc_tests): ...this.
22312 (read_rtl_function_c_tests): Rename to...
22313 (read_rtl_function_cc_tests): ...this.
22314 (rtl_tests_c_tests): Rename to...
22315 (rtl_tests_cc_tests): ...this.
22316 (sbitmap_c_tests): Rename to...
22317 (sbitmap_cc_tests): ...this.
22318 (selftest_c_tests): Rename to...
22319 (selftest_cc_tests): ...this.
22320 (simplify_rtx_c_tests): Rename to...
22321 (simplify_rtx_cc_tests): ...this.
22322 (spellcheck_c_tests): Rename to...
22323 (spellcheck_cc_tests): ...this.
22324 (spellcheck_tree_c_tests): Rename to...
22325 (spellcheck_tree_cc_tests): ...this.
22326 (sreal_c_tests): Rename to...
22327 (sreal_cc_tests): ...this.
22328 (store_merging_c_tests): Rename to...
22329 (store_merging_cc_tests): ...this.
22330 (tree_c_tests): Rename to...
22331 (tree_cc_tests): ...this.
22332 (tree_cfg_c_tests): Rename to...
22333 (tree_cfg_cc_tests): ...this.
22334 (typed_splay_tree_c_tests): Rename to...
22335 (typed_splay_tree_cc_tests): ...this.
22336 (vec_c_tests): Rename to...
22337 (vec_cc_tests): ...this.
22338 (vec_perm_indices_c_tests): Rename to...
22339 (vec_perm_indices_cc_tests): ..this.
22340 (opt_proposer_c_tests): Rename to...
22341 (opt_suggestions_cc_tests): ...this.
22342 (dbgcnt_c_tests): Rename to...
22343 (dbgcnt_cc_tests): ...this.
22344 (ipa_modref_tree_c_tests): Rename to...
22345 (ipa_modref_tree_cc_tests): ...this.
22346 * simplify-rtx.cc (simplify_rtx_c_tests): Rename to...
22347 (simplify_rtx_cc_tests): ...this.
22348 * spellcheck-tree.cc (spellcheck_tree_c_tests): Rename to...
22349 (spellcheck_tree_cc_tests): ...this.
22350 * spellcheck.cc (spellcheck_c_tests): Rename to...
22351 (spellcheck_cc_tests): ...this.
22352 * sreal.cc (sreal_c_tests): Rename to...
22353 (sreal_cc_tests): ...this.
22354 * toplev.cc (toplev::finalize): Update calls for _c_ to _cc_
22355 function renamings.
22356 * tree-cfg.cc (tree_cfg_c_tests): Rename to...
22357 (tree_cfg_cc_tests): ...this.
22358 * tree.cc (tree_c_tests): Rename to...
22359 (tree_cc_tests): ...this.
22360 * typed-splay-tree.cc (typed_splay_tree_c_tests): Rename to...
22361 (typed_splay_tree_cc_tests): ...this.
22362 * vec-perm-indices.cc (vec_perm_indices_c_tests): Rename to...
22363 (vec_perm_indices_cc_tests): ...this.
22364 * vec.cc (vec_c_tests): Rename to...
22365 (vec_cc_tests): ...this.
22367 2022-01-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
22369 PR tree-optimization/103997
22370 * tree-vect-loop.cc (vect_analyze_loop): Fix mode skipping for epilogue
22373 2022-01-19 Jakub Jelinek <jakub@redhat.com>
22375 PR middle-end/102860
22376 * match.pd (x %[fl] y -> x % y): New simplification for
22377 unsigned integral types.
22378 * optabs-tree.cc (optab_for_tree_code): Return unknown_optab
22379 for {CEIL,FLOOR,ROUND}_{DIV,MOD}_EXPR with VECTOR_TYPE.
22381 2022-01-19 Richard Biener <rguenther@suse.de>
22383 PR tree-optimization/104112
22384 * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
22385 for required intermediate vector types.
22387 2022-01-19 Jakub Jelinek <jakub@redhat.com>
22389 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Add default:.
22391 2022-01-19 Martin Liska <mliska@suse.cz>
22393 * configure.ac: Remove -Wno-error=format-diag.
22394 * configure: Regenerate.
22396 2022-01-19 Martin Liska <mliska@suse.cz>
22398 * config/riscv/riscv.cc (riscv_handle_type_attribute):
22399 Update one -Wformat-diag string in warning message.
22401 2022-01-19 Jakub Jelinek <jakub@redhat.com>
22403 PR middle-end/104103
22404 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Don't check
22407 2022-01-19 Jakub Jelinek <jakub@redhat.com>
22410 * fold-const.cc (address_compare): Consider different STRING_CSTs
22411 with the same lengths that memcmp the same as equal, not different.
22413 2022-01-19 Jakub Jelinek <jakub@redhat.com>
22415 * config/i386/sse.md (*aes<aeswideklvariant>u*): Use %0 instead of
22418 2022-01-19 Martin Liska <mliska@suse.cz>
22419 Thomas Schwinge <thomas@codesourcery.com>
22421 * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Update
22424 2022-01-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
22427 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Use also
22430 2022-01-19 Jakub Jelinek <jakub@redhat.com>
22433 * config/i386/sse.md
22434 (<avx512>_<complexopname>_<mode><maskc_name><round_name>,
22435 avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>,
22436 avx512dq_mul<mode>3<mask_name>, <avx2_avx512>_permvar<mode><mask_name>,
22437 avx2_perm<mode>_1<mask_name>, avx512f_perm<mode>_1<mask_name>,
22438 avx512dq_rangep<mode><mask_name><round_saeonly_name>,
22439 avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>,
22440 <avx512>_getmant<mode><mask_name><round_saeonly_name>,
22441 avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
22442 Use vxorps\t%x0, %x0, %x0 instead of vxorps\t{%x0, %x0, %x0}.
22444 2022-01-19 Martin Sebor <msebor@redhat.com>
22446 PR middle-end/104069
22447 * gimple-ssa-warn-access.cc (pointers_related_p): Return false for
22448 an unknown result as documented.
22450 2022-01-18 Andrew Pinski <apinski@marvell.com>
22452 * ipa-split.cc (visit_bb): Fix comment before the
22453 warning/error attribute checking code.
22455 2022-01-18 David Faust <david.faust@oracle.com>
22457 * config/bpf/coreout.cc (bpf_core_reloc_add): Do not account
22458 for base strtab offset yet as it may change.
22459 (output_asm_btfext_core_reloc): Do so here instead.
22460 (output_btfext_core_sections): Likewise.
22462 2022-01-18 David Faust <david.faust@oracle.com>
22464 * config/bpf/coreout.cc (output_btfext_header): Account for
22465 4-byte record size in core_relo_len.
22466 (output_btfext_core_sections): Only write record size once.
22467 * config/bpf/coreout.h (btf_ext_section_header): Delete unused
22470 2022-01-18 Maciej W. Rozycki <macro@embecosm.com>
22472 * common/config/riscv/riscv-common.cc
22473 (riscv_subset_list::parse_multiletter_ext): Move pointer
22474 arithmetic ahead of `free'.
22476 2022-01-18 Jason Merrill <jason@redhat.com>
22479 * gimplify.cc (gimple_push_cleanup): Handle eh_only in conditional
22482 2022-01-18 Sandra Loosemore <sandra@codesourcery.com>
22484 PR middle-end/103163
22485 * emit-rtl.cc (init_emit_regs): Initialize stack_limit_rtx here...
22486 (init_emit_once): ...not here.
22488 2022-01-18 Martin Liska <mliska@suse.cz>
22490 * collect2.cc (scan_libraries): Fix -Wformat-diag issues.
22491 * config/aarch64/aarch64-builtins.cc (aarch64_simd_expand_builtin): Likewise.
22492 * config/arc/arc.md: Likewise.
22493 * config/avr/avr.cc (avr_section_type_flags): Likewise.
22494 * config/bfin/bfin.cc (bfin_option_override): Likewise.
22495 (bfin_handle_longcall_attribute): Likewise.
22496 * config/cris/cris.h (FUNCTION_PROFILER): Likewise.
22497 * config/frv/frv.cc (frv_expand_builtin): Likewise.
22498 * config/ia64/ia64-c.cc (ia64_hpux_handle_builtin_pragma): Likewise.
22499 * config/iq2000/iq2000.cc (save_restore_insns): Likewise.
22500 (iq2000_print_operand_address): Likewise.
22501 (iq2000_print_operand): Likewise.
22502 * config/m32c/m32c-pragma.cc (m32c_pragma_memregs): Likewise.
22503 (m32c_pragma_address): Likewise.
22504 * config/m68k/m68k.cc (m68k_handle_fndecl_attribute): Likewise.
22505 * config/mips/mips.cc (mips_handle_interrupt_attr): Likewise.
22506 (mips_set_compression_mode): Likewise.
22507 * config/mmix/mmix.cc (mmix_function_profiler): Likewise.
22508 (mmix_print_operand): Likewise.
22509 (mmix_output_shiftvalue_op_from_str): Likewise.
22510 (mmix_output_shifted_value): Likewise.
22511 * config/msp430/driver-msp430.cc (msp430_select_hwmult_lib): Likewise.
22512 * config/msp430/msp430.cc (msp430_option_override): Likewise.
22513 (msp430_attr): Likewise.
22514 (msp430_expand_delay_cycles): Likewise.
22515 (msp430_expand_builtin): Likewise.
22516 * config/rs6000/aix73.h: Likewise.
22517 * config/rs6000/rtems.h (INVALID_64BIT): Likewise.
22518 * config/rx/rx.cc (rx_expand_builtin_mvtc): Likewise.
22519 (valid_psw_flag): Likewise.
22520 * config/sh/sh.cc (parse_validate_atomic_model_option): Likewise.
22521 * config/stormy16/stormy16.cc (xstormy16_function_profiler): Likewise.
22522 (xstormy16_expand_builtin_va_start): Likewise.
22523 (xstormy16_handle_below100_attribute): Likewise.
22525 2022-01-18 Martin Liska <mliska@suse.cz>
22527 * config/vms/vms-c.cc (vms_pragma_nostandard): Fix -Wformat-diag
22529 (vms_pragma_standard): Likewise.
22530 (vms_pragma_extern_prefix): Likewise.
22532 2022-01-18 Martin Liska <mliska@suse.cz>
22534 * config/xtensa/xtensa.cc (print_operand): Fix warnings.
22535 (print_operand_address): Likewise.
22536 (xtensa_multibss_section_type_flags): Likewise.
22538 2022-01-18 Martin Liska <mliska@suse.cz>
22540 * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Change
22541 wording of an error message.
22543 2022-01-18 Martin Liska <mliska@suse.cz>
22545 * config/v850/v850-c.cc (pop_data_area): Fix -Wformat-diag
22547 (ghs_pragma_section): Likewise.
22548 (ghs_pragma_interrupt): Likewise.
22549 (ghs_pragma_starttda): Likewise.
22550 (ghs_pragma_startsda): Likewise.
22551 (ghs_pragma_startzda): Likewise.
22552 (ghs_pragma_endtda): Likewise.
22553 (ghs_pragma_endsda): Likewise.
22554 (ghs_pragma_endzda): Likewise.
22556 2022-01-18 Martin Liska <mliska@suse.cz>
22558 * config/nds32/nds32-intrinsic.cc (nds32_expand_builtin_impl):
22560 * config/nds32/nds32-intrinsic.md: Likewise.
22561 * config/nds32/nds32-isr.cc (nds32_check_isr_attrs_conflict): Likewise.
22562 * config/nds32/nds32.cc (nds32_print_operand): Likewise.
22563 (nds32_insert_attributes): Likewise.
22565 2022-01-18 Martin Liska <mliska@suse.cz>
22567 * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Wrap
22569 * config/nvptx/nvptx.md: Remove trailing dot.
22571 2022-01-18 Martin Liska <mliska@suse.cz>
22573 * common/config/riscv/riscv-common.cc (riscv_subset_list::add):
22574 Wrap keywords with quotes and remove trailing dots.
22575 (riscv_subset_list::parsing_subset_version): Likewise.
22576 (riscv_subset_list::parse_std_ext): Likewise.
22577 (riscv_subset_list::parse_multiletter_ext): Likewise.
22578 * config/riscv/riscv.cc (riscv_handle_type_attribute): Likewise.
22580 2022-01-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
22582 * tree-vect-loop.cc (vect_estimate_min_profitable_iters): Pass new
22583 argument suggested_unroll_factor.
22584 (vect_analyze_loop_costing): Likewise.
22585 (_loop_vec_info::_loop_vec_info): Initialize new member
22586 suggested_unroll_factor.
22587 (vect_determine_partial_vectors_and_peeling): Make epilogue of unrolled
22588 main loop use partial vectors.
22589 (vect_analyze_loop_2): Pass and use new argument
22590 suggested_unroll_factor.
22591 (vect_analyze_loop_1): Change to intialize local
22592 suggested_unroll_factor and use it.
22593 (vectorizable_reduction): Don't use single_defuse_cycle when unrolling.
22594 * tree-vectorizer.h (_loop_vec_info::_loop_vec_info): Add new member
22595 suggested_unroll_factor.
22596 (vector_costs::vector_costs): Add new member m_suggested_unroll_factor.
22597 (vector_costs::suggested_unroll_factor): New getter function.
22598 (finish_cost): Set return argument suggested_unroll_factor.
22600 2022-01-18 Andrew MacLeod <amacleod@redhat.com>
22602 PR tree-optimization/104038
22603 * doc/invoke.texi (relation-block-limit): New.
22604 * params.opt (relation-block-limit): New.
22605 * value-relation.cc (dom_oracle::register_relation): Check for NULL
22606 record before invoking transitive registery.
22607 (dom_oracle::set_one_relation): Check limit before creating record.
22608 (dom_oracle::register_transitives): Stop when no record created.
22609 * value-relation.h (relation_chain_head::m_num_relations): New.
22611 2022-01-18 Richard Biener <rguenther@suse.de>
22614 * ipa-inline.cc (inline_small_functions): Do not enqueue call
22615 edges originating in functions compiled with -Og.
22617 2022-01-18 Richard Biener <rguenther@suse.de>
22620 * passes.def (pass_all_optimizations_g): Remove pass_modref
22621 and pass_local_pure_const.
22623 2022-01-18 Martin Liska <mliska@suse.cz>
22625 * config/s390/s390.cc: Fix -Wformat-diag warnings.
22627 2022-01-18 Martin Liska <mliska@suse.cz>
22629 * config/s390/s390-c.cc (s390_expand_overloaded_builtin): Wrap
22631 (s390_resolve_overloaded_builtin): Remove trailing dot.
22632 * config/s390/s390.cc (s390_const_operand_ok): Use - for range.
22633 (s390_expand_builtin): Remove trailing dot.
22634 (s390_emit_prologue): Likewise, use semicolon.
22635 (s390_option_override_internal): Update keyword.
22636 * varasm.cc (do_assemble_alias): Wrap keyword in quotes.
22638 2022-01-18 Martin Liska <mliska@suse.cz>
22640 * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Wrap
22641 keywords and use %qs instead of %<%s%>.
22643 2022-01-18 Richard Biener <rguenther@suse.de>
22645 PR tree-optimization/103987
22646 * tree-ssa-dse.cc (dse_optimize_call): Properly guard modref
22647 query with a pointer check.
22649 2022-01-18 Richard Sandiford <richard.sandiford@arm.com>
22652 * config/aarch64/aarch64.cc (aarch64_check_consecutive_mems):
22653 When using MEM_EXPR, require the base to be a decl.
22655 2022-01-18 Richard Biener <rguenther@suse.de>
22657 * cgraph.h (struct cgraph_simd_clone_arg): Re-arrange fields to
22659 * function.h (struct function): Likewise.
22661 2022-01-18 Arnaud Charlet <charlet@adacore.com>
22663 * doc/install.texi: Update prerequisites for GNAT
22665 2022-01-18 Andrew Pinski <apinski@marvell.com>
22667 PR tree-optimization/101941
22668 * ipa-split.cc (visit_bb): Disallow function calls where
22669 the function has either error or warning attribute.
22671 2022-01-18 Richard Biener <rguenther@suse.de>
22673 PR tree-optimization/104064
22674 * tree-vect-data-refs.cc (vect_analyze_data_ref_accesses): Check
22675 DR_INIT fits in a signed HWI, represent the difference from the
22676 first DR in unsigned.
22678 2022-01-17 Martin Liska <mliska@suse.cz>
22680 * Makefile.in: Rename .c names to .cc.
22681 * config.gcc: Likewise.
22682 * configure: Regenerate. Likewise.
22683 * configure.ac: Likewise.
22684 * gengtype.cc (set_gc_used): Likewise.
22685 (source_dot_c_frul): Likewise.
22686 (source_dot_cc_frul): Likewise.
22687 (struct file_rule_st): Likewise.
22688 (close_output_files): Likewise.
22689 * config/avr/t-avr: Use CXXFLAGS_* and CXX_FOR_BUILD.
22691 2022-01-17 Martin Liska <mliska@suse.cz>
22693 * Makefile.in: Rename .c names to .cc.
22694 * alias.h: Likewise.
22695 * asan.cc: Likewise.
22696 * auto-profile.h: Likewise.
22697 * basic-block.h (struct basic_block_d): Likewise.
22698 * btfout.cc: Likewise.
22699 * builtins.cc (expand_builtin_longjmp): Likewise.
22700 (validate_arg): Likewise.
22701 (access_ref::offset_bounded): Likewise.
22702 * caller-save.cc (reg_restore_code): Likewise.
22703 (setup_save_areas): Likewise.
22704 * calls.cc (initialize_argument_information): Likewise.
22705 (expand_call): Likewise.
22706 (emit_library_call_value_1): Likewise.
22707 * cfg-flags.def (RTL): Likewise.
22708 (SIBCALL): Likewise.
22709 (CAN_FALLTHRU): Likewise.
22710 * cfganal.cc (post_order_compute): Likewise.
22711 * cfgcleanup.cc (try_simplify_condjump): Likewise.
22712 (merge_blocks_move_predecessor_nojumps): Likewise.
22713 (merge_blocks_move_successor_nojumps): Likewise.
22714 (merge_blocks_move): Likewise.
22715 (old_insns_match_p): Likewise.
22716 (try_crossjump_bb): Likewise.
22717 * cfgexpand.cc (expand_gimple_stmt): Likewise.
22718 * cfghooks.cc (split_block_before_cond_jump): Likewise.
22719 (profile_record_check_consistency): Likewise.
22720 * cfghooks.h: Likewise.
22721 * cfgrtl.cc (pass_free_cfg::execute): Likewise.
22722 (rtl_can_merge_blocks): Likewise.
22723 (try_redirect_by_replacing_jump): Likewise.
22724 (make_pass_outof_cfg_layout_mode): Likewise.
22725 (cfg_layout_can_merge_blocks_p): Likewise.
22726 * cgraph.cc (release_function_body): Likewise.
22727 (cgraph_node::get_fun): Likewise.
22728 * cgraph.h (struct cgraph_node): Likewise.
22729 (asmname_hasher::equal): Likewise.
22730 (cgraph_inline_failed_type): Likewise.
22731 (thunk_adjust): Likewise.
22732 (dump_callgraph_transformation): Likewise.
22733 (record_references_in_initializer): Likewise.
22734 (ipa_discover_variable_flags): Likewise.
22735 * cgraphclones.cc (GTY): Likewise.
22736 * cgraphunit.cc (symbol_table::finalize_compilation_unit): Likewise.
22737 * collect-utils.h (GCC_COLLECT_UTILS_H): Likewise.
22738 * collect2-aix.h (GCC_COLLECT2_AIX_H): Likewise.
22739 * collect2.cc (maybe_run_lto_and_relink): Likewise.
22740 * combine-stack-adj.cc: Likewise.
22741 * combine.cc (setup_incoming_promotions): Likewise.
22742 (combine_simplify_rtx): Likewise.
22743 (count_rtxs): Likewise.
22744 * common.opt: Likewise.
22745 * common/config/aarch64/aarch64-common.cc: Likewise.
22746 * common/config/arm/arm-common.cc (arm_asm_auto_mfpu): Likewise.
22747 * common/config/avr/avr-common.cc: Likewise.
22748 * common/config/i386/i386-isas.h (struct _isa_names_table): Likewise.
22749 * conditions.h: Likewise.
22750 * config.gcc: Likewise.
22751 * config/aarch64/aarch64-builtins.cc (aarch64_resolve_overloaded_memtag): Likewise.
22752 * config/aarch64/aarch64-protos.h (aarch64_classify_address): Likewise.
22753 (aarch64_get_extension_string_for_isa_flags): Likewise.
22754 * config/aarch64/aarch64-sve-builtins.cc (function_builder::add_function): Likewise.
22755 * config/aarch64/aarch64.cc (aarch64_regmode_natural_size): Likewise.
22756 (aarch64_sched_first_cycle_multipass_dfa_lookahead): Likewise.
22757 (aarch64_option_valid_attribute_p): Likewise.
22758 (aarch64_short_vector_p): Likewise.
22759 (aarch64_float_const_representable_p): Likewise.
22760 * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise.
22761 (ASM_OUTPUT_POOL_EPILOGUE): Likewise.
22763 * config/aarch64/cortex-a57-fma-steering.cc: Likewise.
22764 * config/aarch64/driver-aarch64.cc (contains_core_p): Likewise.
22765 * config/aarch64/t-aarch64: Likewise.
22766 * config/aarch64/x-aarch64: Likewise.
22767 * config/aarch64/x-darwin: Likewise.
22768 * config/alpha/alpha-protos.h: Likewise.
22769 * config/alpha/alpha.cc (alpha_scalar_mode_supported_p): Likewise.
22770 * config/alpha/alpha.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
22771 (enum reg_class): Likewise.
22772 * config/alpha/alpha.md: Likewise.
22773 * config/alpha/driver-alpha.cc (AMASK_LOCKPFTCHOK): Likewise.
22774 * config/alpha/x-alpha: Likewise.
22775 * config/arc/arc-protos.h (arc_eh_uses): Likewise.
22776 * config/arc/arc.cc (ARC_OPT): Likewise.
22777 (arc_ccfsm_advance): Likewise.
22778 (arc_arg_partial_bytes): Likewise.
22779 (conditionalize_nonjump): Likewise.
22780 * config/arc/arc.md: Likewise.
22781 * config/arc/builtins.def: Likewise.
22782 * config/arc/t-arc: Likewise.
22783 * config/arm/arm-c.cc (arm_resolve_overloaded_builtin): Likewise.
22784 (arm_pragma_target_parse): Likewise.
22785 * config/arm/arm-protos.h (save_restore_target_globals): Likewise.
22786 (arm_cpu_cpp_builtins): Likewise.
22787 * config/arm/arm.cc (vfp3_const_double_index): Likewise.
22788 (shift_op): Likewise.
22789 (thumb2_final_prescan_insn): Likewise.
22790 (arm_final_prescan_insn): Likewise.
22791 (arm_asm_output_labelref): Likewise.
22792 (arm_small_register_classes_for_mode_p): Likewise.
22793 * config/arm/arm.h: Likewise.
22794 * config/arm/arm.md: Likewise.
22795 * config/arm/driver-arm.cc: Likewise.
22796 * config/arm/symbian.h: Likewise.
22797 * config/arm/t-arm: Likewise.
22798 * config/arm/thumb1.md: Likewise.
22799 * config/arm/x-arm: Likewise.
22800 * config/avr/avr-c.cc (avr_register_target_pragmas): Likewise.
22801 * config/avr/avr-fixed.md: Likewise.
22802 * config/avr/avr-log.cc (avr_log_vadump): Likewise.
22803 * config/avr/avr-mcus.def: Likewise.
22804 * config/avr/avr-modes.def (FRACTIONAL_INT_MODE): Likewise.
22805 * config/avr/avr-passes.def (INSERT_PASS_BEFORE): Likewise.
22806 * config/avr/avr-protos.h (make_avr_pass_casesi): Likewise.
22807 * config/avr/avr.cc (avr_option_override): Likewise.
22808 (avr_build_builtin_va_list): Likewise.
22809 (avr_mode_dependent_address_p): Likewise.
22810 (avr_function_arg_advance): Likewise.
22811 (avr_asm_output_aligned_decl_common): Likewise.
22812 * config/avr/avr.h (RETURN_ADDR_RTX): Likewise.
22813 (SUPPORTS_INIT_PRIORITY): Likewise.
22814 * config/avr/avr.md: Likewise.
22815 * config/avr/builtins.def: Likewise.
22816 * config/avr/gen-avr-mmcu-specs.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
22817 * config/avr/gen-avr-mmcu-texi.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
22819 * config/avr/t-avr: Likewise.
22820 * config/bfin/bfin.cc (frame_related_constant_load): Likewise.
22821 * config/bpf/bpf-protos.h (GCC_BPF_PROTOS_H): Likewise.
22822 * config/bpf/bpf.h (enum reg_class): Likewise.
22823 * config/bpf/t-bpf: Likewise.
22824 * config/c6x/c6x-protos.h (GCC_C6X_PROTOS_H): Likewise.
22825 * config/cr16/cr16-protos.h: Likewise.
22826 * config/cris/cris.cc (cris_address_cost): Likewise.
22827 (cris_side_effect_mode_ok): Likewise.
22828 (cris_init_machine_status): Likewise.
22829 (cris_emit_movem_store): Likewise.
22830 * config/cris/cris.h (INDEX_REG_CLASS): Likewise.
22831 (enum reg_class): Likewise.
22832 (struct cum_args): Likewise.
22833 * config/cris/cris.opt: Likewise.
22834 * config/cris/sync.md: Likewise.
22835 * config/csky/csky.cc (csky_expand_prologue): Likewise.
22836 * config/darwin-c.cc: Likewise.
22837 * config/darwin-f.cc: Likewise.
22838 * config/darwin-sections.def (zobj_const_section): Likewise.
22839 * config/darwin.cc (output_objc_section_asm_op): Likewise.
22840 (fprintf): Likewise.
22841 * config/darwin.h (GTY): Likewise.
22842 * config/elfos.h: Likewise.
22843 * config/epiphany/epiphany-sched.md: Likewise.
22844 * config/epiphany/epiphany.cc (epiphany_function_value): Likewise.
22845 * config/epiphany/epiphany.h (GTY): Likewise.
22846 (NO_FUNCTION_CSE): Likewise.
22847 * config/epiphany/mode-switch-use.cc: Likewise.
22848 * config/epiphany/predicates.md: Likewise.
22849 * config/epiphany/t-epiphany: Likewise.
22850 * config/fr30/fr30-protos.h: Likewise.
22851 * config/frv/frv-protos.h: Likewise.
22852 * config/frv/frv.cc (TLS_BIAS): Likewise.
22853 * config/frv/frv.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
22854 * config/ft32/ft32-protos.h: Likewise.
22855 * config/gcn/gcn-hsa.h (ASM_APP_OFF): Likewise.
22856 * config/gcn/gcn.cc (gcn_init_libfuncs): Likewise.
22857 * config/gcn/mkoffload.cc (copy_early_debug_info): Likewise.
22858 * config/gcn/t-gcn-hsa: Likewise.
22859 * config/gcn/t-omp-device: Likewise.
22860 * config/h8300/h8300-protos.h (GCC_H8300_PROTOS_H): Likewise.
22861 (same_cmp_following_p): Likewise.
22862 * config/h8300/h8300.cc (F): Likewise.
22863 * config/h8300/h8300.h (struct cum_arg): Likewise.
22864 (BRANCH_COST): Likewise.
22865 * config/i386/cygming.h (DEFAULT_PCC_STRUCT_RETURN): Likewise.
22866 * config/i386/djgpp.h (TARGET_ASM_LTO_END): Likewise.
22867 * config/i386/dragonfly.h (NO_PROFILE_COUNTERS): Likewise.
22868 * config/i386/driver-i386.cc (detect_caches_intel): Likewise.
22869 * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise.
22870 * config/i386/i386-c.cc (ix86_target_macros): Likewise.
22871 * config/i386/i386-expand.cc (get_mode_wider_vector): Likewise.
22872 * config/i386/i386-options.cc (ix86_set_func_type): Likewise.
22873 * config/i386/i386-protos.h (ix86_extract_perm_from_pool_constant): Likewise.
22874 (ix86_register_pragmas): Likewise.
22875 (ix86_d_has_stdcall_convention): Likewise.
22876 (i386_pe_seh_init_sections): Likewise.
22877 * config/i386/i386.cc (ix86_function_arg_regno_p): Likewise.
22878 (ix86_function_value_regno_p): Likewise.
22879 (ix86_compute_frame_layout): Likewise.
22880 (legitimize_pe_coff_symbol): Likewise.
22881 (output_pic_addr_const): Likewise.
22882 * config/i386/i386.h (defined): Likewise.
22883 (host_detect_local_cpu): Likewise.
22884 (CONSTANT_ADDRESS_P): Likewise.
22885 (DEFAULT_LARGE_SECTION_THRESHOLD): Likewise.
22886 (struct machine_frame_state): Likewise.
22887 * config/i386/i386.md: Likewise.
22888 * config/i386/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
22889 * config/i386/mmx.md: Likewise.
22890 * config/i386/sse.md: Likewise.
22891 * config/i386/t-cygming: Likewise.
22892 * config/i386/t-djgpp: Likewise.
22893 * config/i386/t-gnu-property: Likewise.
22894 * config/i386/t-i386: Likewise.
22895 * config/i386/t-intelmic: Likewise.
22896 * config/i386/t-omp-device: Likewise.
22897 * config/i386/winnt-cxx.cc (i386_pe_type_dllimport_p): Likewise.
22898 (i386_pe_adjust_class_at_definition): Likewise.
22899 * config/i386/winnt.cc (gen_stdcall_or_fastcall_suffix): Likewise.
22900 (i386_pe_mangle_decl_assembler_name): Likewise.
22901 (i386_pe_encode_section_info): Likewise.
22902 * config/i386/x-cygwin: Likewise.
22903 * config/i386/x-darwin: Likewise.
22904 * config/i386/x-i386: Likewise.
22905 * config/i386/x-mingw32: Likewise.
22906 * config/i386/x86-tune-sched-core.cc: Likewise.
22907 * config/i386/x86-tune.def: Likewise.
22908 * config/i386/xm-djgpp.h (STANDARD_STARTFILE_PREFIX_1): Likewise.
22909 * config/ia64/freebsd.h: Likewise.
22910 * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Likewise.
22911 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Likewise.
22912 * config/ia64/ia64.cc (ia64_function_value_regno_p): Likewise.
22913 (ia64_secondary_reload_class): Likewise.
22914 (bundling): Likewise.
22915 * config/ia64/ia64.h: Likewise.
22916 * config/ia64/ia64.md: Likewise.
22917 * config/ia64/predicates.md: Likewise.
22918 * config/ia64/sysv4.h: Likewise.
22919 * config/ia64/t-ia64: Likewise.
22920 * config/iq2000/iq2000.h (FUNCTION_MODE): Likewise.
22921 * config/iq2000/iq2000.md: Likewise.
22922 * config/linux.h (TARGET_HAS_BIONIC): Likewise.
22924 * config/m32c/m32c.cc (m32c_function_needs_enter): Likewise.
22925 * config/m32c/m32c.h (MAX_REGS_PER_ADDRESS): Likewise.
22926 * config/m32c/t-m32c: Likewise.
22927 * config/m32r/m32r-protos.h: Likewise.
22928 * config/m32r/m32r.cc (m32r_print_operand): Likewise.
22929 * config/m32r/m32r.h: Likewise.
22930 * config/m32r/m32r.md: Likewise.
22931 * config/m68k/m68k-isas.def: Likewise.
22932 * config/m68k/m68k-microarchs.def: Likewise.
22933 * config/m68k/m68k-protos.h (strict_low_part_peephole_ok): Likewise.
22934 (m68k_epilogue_uses): Likewise.
22935 * config/m68k/m68k.cc (m68k_call_tls_get_addr): Likewise.
22936 (m68k_sched_adjust_cost): Likewise.
22937 (m68k_sched_md_init): Likewise.
22938 * config/m68k/m68k.h (__transfer_from_trampoline): Likewise.
22939 (enum m68k_function_kind): Likewise.
22940 * config/m68k/m68k.md: Likewise.
22941 * config/m68k/m68kemb.h: Likewise.
22942 * config/m68k/uclinux.h (ENDFILE_SPEC): Likewise.
22943 * config/mcore/mcore-protos.h: Likewise.
22944 * config/mcore/mcore.cc (mcore_expand_insv): Likewise.
22945 (mcore_expand_prolog): Likewise.
22946 * config/mcore/mcore.h (TARGET_MCORE): Likewise.
22947 * config/mcore/mcore.md: Likewise.
22948 * config/microblaze/microblaze-protos.h: Likewise.
22949 * config/microblaze/microblaze.cc (microblaze_legitimate_pic_operand): Likewise.
22950 (microblaze_function_prologue): Likewise.
22951 (microblaze_function_epilogue): Likewise.
22952 (microblaze_select_section): Likewise.
22953 (microblaze_asm_output_mi_thunk): Likewise.
22954 (microblaze_eh_return): Likewise.
22955 * config/microblaze/microblaze.h: Likewise.
22956 * config/microblaze/microblaze.md: Likewise.
22957 * config/microblaze/t-microblaze: Likewise.
22958 * config/mips/driver-native.cc: Likewise.
22959 * config/mips/loongson2ef.md: Likewise.
22960 * config/mips/mips-protos.h (mips_expand_vec_cmp_expr): Likewise.
22961 * config/mips/mips.cc (mips_rtx_costs): Likewise.
22962 (mips_output_filename): Likewise.
22963 (mips_output_function_prologue): Likewise.
22964 (mips_output_function_epilogue): Likewise.
22965 (mips_output_mi_thunk): Likewise.
22966 * config/mips/mips.h: Likewise.
22967 * config/mips/mips.md: Likewise.
22968 * config/mips/t-mips: Likewise.
22969 * config/mips/x-native: Likewise.
22970 * config/mmix/mmix-protos.h: Likewise.
22971 * config/mmix/mmix.cc (mmix_option_override): Likewise.
22972 (mmix_dbx_register_number): Likewise.
22973 (mmix_expand_prologue): Likewise.
22974 * config/mmix/mmix.h: Likewise.
22975 * config/mmix/mmix.md: Likewise.
22976 * config/mmix/predicates.md: Likewise.
22977 * config/mn10300/mn10300.cc (mn10300_symbolic_operand): Likewise.
22978 (mn10300_legitimate_pic_operand_p): Likewise.
22979 * config/mn10300/mn10300.h (enum reg_class): Likewise.
22980 (NO_FUNCTION_CSE): Likewise.
22981 * config/moxie/moxie-protos.h: Likewise.
22982 * config/moxie/uclinux.h (TARGET_LIBC_HAS_FUNCTION): Likewise.
22983 * config/msp430/msp430-devices.cc (extract_devices_dir_from_exec_prefix): Likewise.
22984 * config/msp430/msp430.cc (msp430_gimplify_va_arg_expr): Likewise.
22985 (msp430_incoming_return_addr_rtx): Likewise.
22986 * config/msp430/msp430.h (msp430_get_linker_devices_include_path): Likewise.
22987 * config/msp430/t-msp430: Likewise.
22988 * config/nds32/nds32-cost.cc (nds32_rtx_costs_speed_prefer): Likewise.
22989 (nds32_rtx_costs_size_prefer): Likewise.
22990 (nds32_init_rtx_costs): Likewise.
22991 * config/nds32/nds32-doubleword.md: Likewise.
22992 * config/nds32/nds32.cc (nds32_memory_move_cost): Likewise.
22993 (nds32_builtin_decl): Likewise.
22994 * config/nds32/nds32.h (enum nds32_16bit_address_type): Likewise.
22995 (enum nds32_isr_nested_type): Likewise.
22996 (enum reg_class): Likewise.
22997 * config/nds32/predicates.md: Likewise.
22998 * config/nds32/t-nds32: Likewise.
22999 * config/nios2/nios2.cc (nios2_pragma_target_parse): Likewise.
23000 * config/nvptx/nvptx-protos.h: Likewise.
23001 * config/nvptx/nvptx.cc (nvptx_goacc_expand_var_decl): Likewise.
23002 * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Likewise.
23003 * config/nvptx/t-nvptx: Likewise.
23004 * config/nvptx/t-omp-device: Likewise.
23005 * config/pa/elf.h: Likewise.
23006 * config/pa/pa-linux.h (GLOBAL_ASM_OP): Likewise.
23007 * config/pa/pa-netbsd.h (GLOBAL_ASM_OP): Likewise.
23008 * config/pa/pa-openbsd.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
23009 * config/pa/pa-protos.h (pa_eh_return_handler_rtx): Likewise.
23010 (pa_legitimize_reload_address): Likewise.
23011 (pa_can_use_return_insn): Likewise.
23012 * config/pa/pa.cc (mem_shadd_or_shadd_rtx_p): Likewise.
23013 (som_output_text_section_asm_op): Likewise.
23014 * config/pa/pa.h (PROFILE_BEFORE_PROLOGUE): Likewise.
23015 * config/pa/pa.md: Likewise.
23016 * config/pa/som.h: Likewise.
23017 * config/pa/t-pa: Likewise.
23018 * config/pdp11/pdp11.cc (decode_pdp11_d): Likewise.
23019 * config/pdp11/pdp11.h: Likewise.
23020 * config/pdp11/pdp11.md: Likewise.
23021 * config/pdp11/t-pdp11: Likewise.
23022 * config/pru/pru.md: Likewise.
23023 * config/pru/t-pru: Likewise.
23024 * config/riscv/riscv-protos.h (NUM_SYMBOL_TYPES): Likewise.
23025 (riscv_gpr_save_operation_p): Likewise.
23026 (riscv_d_register_target_info): Likewise.
23027 (riscv_init_builtins): Likewise.
23028 * config/riscv/riscv.cc (riscv_output_mi_thunk): Likewise.
23029 * config/riscv/riscv.h (CSW_MAX_OFFSET): Likewise.
23030 * config/riscv/t-riscv: Likewise.
23031 * config/rl78/rl78.cc (rl78_asm_ctor_dtor): Likewise.
23032 * config/rl78/t-rl78: Likewise.
23033 * config/rs6000/aix.h: Likewise.
23034 * config/rs6000/aix71.h (ASM_SPEC_COMMON): Likewise.
23035 * config/rs6000/aix72.h (ASM_SPEC_COMMON): Likewise.
23036 * config/rs6000/aix73.h (ASM_SPEC_COMMON): Likewise.
23037 * config/rs6000/darwin.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
23038 * config/rs6000/driver-rs6000.cc: Likewise.
23039 * config/rs6000/freebsd.h: Likewise.
23040 * config/rs6000/freebsd64.h: Likewise.
23041 * config/rs6000/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
23042 * config/rs6000/rbtree.cc: Likewise.
23043 * config/rs6000/rbtree.h: Likewise.
23044 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Likewise.
23045 * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Likewise.
23046 (rs6000_expand_builtin): Likewise.
23047 (rs6000_init_builtins): Likewise.
23048 * config/rs6000/rs6000-cpus.def: Likewise.
23049 * config/rs6000/rs6000-gen-builtins.cc (write_init_ovld_table): Likewise.
23050 * config/rs6000/rs6000-internal.h (ALTIVEC_REG_BIT): Likewise.
23051 (quad_address_offset_p): Likewise.
23052 * config/rs6000/rs6000-logue.cc (interesting_frame_related_regno): Likewise.
23053 (rs6000_emit_epilogue): Likewise.
23054 * config/rs6000/rs6000-overload.def: Likewise.
23055 * config/rs6000/rs6000-p8swap.cc: Likewise.
23056 * config/rs6000/rs6000-protos.h (GCC_RS6000_PROTOS_H): Likewise.
23057 (rs6000_const_f32_to_i32): Likewise.
23058 * config/rs6000/rs6000.cc (legitimate_lo_sum_address_p): Likewise.
23059 (rs6000_debug_legitimize_address): Likewise.
23060 (rs6000_mode_dependent_address): Likewise.
23061 (rs6000_adjust_priority): Likewise.
23062 (rs6000_c_mode_for_suffix): Likewise.
23063 * config/rs6000/rs6000.h (defined): Likewise.
23064 (LONG_DOUBLE_TYPE_SIZE): Likewise.
23065 * config/rs6000/rs6000.md: Likewise.
23066 * config/rs6000/sysv4.h: Likewise.
23067 * config/rs6000/t-linux: Likewise.
23068 * config/rs6000/t-linux64: Likewise.
23069 * config/rs6000/t-rs6000: Likewise.
23070 * config/rs6000/x-darwin: Likewise.
23071 * config/rs6000/x-darwin64: Likewise.
23072 * config/rs6000/x-rs6000: Likewise.
23073 * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Likewise.
23074 * config/rx/rx.cc (rx_expand_builtin): Likewise.
23075 * config/s390/constraints.md: Likewise.
23076 * config/s390/driver-native.cc: Likewise.
23077 * config/s390/htmxlintrin.h: Likewise.
23078 * config/s390/s390-builtins.def (B_DEF): Likewise.
23079 (OB_DEF_VAR): Likewise.
23080 * config/s390/s390-builtins.h: Likewise.
23081 * config/s390/s390-c.cc: Likewise.
23082 * config/s390/s390-opts.h: Likewise.
23083 * config/s390/s390-protos.h (s390_check_symref_alignment): Likewise.
23084 (s390_register_target_pragmas): Likewise.
23085 * config/s390/s390.cc (s390_init_builtins): Likewise.
23086 (s390_expand_plus_operand): Likewise.
23087 (s390_expand_atomic): Likewise.
23088 (s390_valid_target_attribute_inner_p): Likewise.
23089 * config/s390/s390.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
23090 * config/s390/s390.md: Likewise.
23091 * config/s390/t-s390: Likewise.
23092 * config/s390/vx-builtins.md: Likewise.
23093 * config/s390/x-native: Likewise.
23094 * config/sh/divtab-sh4-300.cc (main): Likewise.
23095 * config/sh/divtab-sh4.cc (main): Likewise.
23096 * config/sh/divtab.cc (main): Likewise.
23097 * config/sh/elf.h: Likewise.
23098 * config/sh/sh-protos.h (sh_fsca_int2sf): Likewise.
23099 * config/sh/sh.cc (SYMBOL_FLAG_FUNCVEC_FUNCTION): Likewise.
23100 (sh_struct_value_rtx): Likewise.
23101 (sh_remove_reg_dead_or_unused_notes): Likewise.
23102 * config/sh/sh.h (MIN_UNITS_PER_WORD): Likewise.
23103 * config/sh/t-sh: Likewise.
23104 * config/sol2-protos.h (solaris_override_options): Likewise.
23105 * config/sol2.h: Likewise.
23106 * config/sparc/driver-sparc.cc: Likewise.
23107 * config/sparc/freebsd.h: Likewise.
23108 * config/sparc/sparc-protos.h (make_pass_work_around_errata): Likewise.
23109 * config/sparc/sparc.cc (sparc_output_mi_thunk): Likewise.
23110 (sparc_asan_shadow_offset): Likewise.
23111 * config/sparc/sparc.h: Likewise.
23112 * config/sparc/sparc.md: Likewise.
23113 * config/sparc/t-sparc: Likewise.
23114 * config/sparc/x-sparc: Likewise.
23115 * config/stormy16/stormy16.cc (xstormy16_mode_dependent_address_p): Likewise.
23116 * config/t-darwin: Likewise.
23117 * config/t-dragonfly: Likewise.
23118 * config/t-freebsd: Likewise.
23119 * config/t-glibc: Likewise.
23120 * config/t-linux: Likewise.
23121 * config/t-netbsd: Likewise.
23122 * config/t-openbsd: Likewise.
23123 * config/t-pnt16-warn: Likewise.
23124 * config/t-sol2: Likewise.
23125 * config/t-vxworks: Likewise.
23126 * config/t-winnt: Likewise.
23127 * config/tilegx/t-tilegx: Likewise.
23128 * config/tilegx/tilegx-c.cc: Likewise.
23129 * config/tilegx/tilegx-protos.h (tilegx_function_profiler): Likewise.
23130 * config/tilegx/tilegx.md: Likewise.
23131 * config/tilepro/t-tilepro: Likewise.
23132 * config/tilepro/tilepro-c.cc: Likewise.
23133 * config/v850/t-v850: Likewise.
23134 * config/v850/v850-protos.h: Likewise.
23135 * config/v850/v850.cc (F): Likewise.
23136 * config/v850/v850.h (enum reg_class): Likewise.
23137 (SLOW_BYTE_ACCESS): Likewise.
23138 * config/vax/vax.cc (vax_mode_dependent_address_p): Likewise.
23139 * config/vax/vax.h (enum reg_class): Likewise.
23140 * config/vax/vax.md: Likewise.
23141 * config/visium/visium.cc (visium_legitimate_address_p): Likewise.
23142 * config/visium/visium.h: Likewise.
23143 * config/vms/t-vms: Likewise.
23144 * config/vms/vms-crtlmap.map: Likewise.
23145 * config/vms/vms-protos.h (vms_c_get_vms_ver): Likewise.
23146 * config/vx-common.h: Likewise.
23147 * config/x-darwin: Likewise.
23148 * config/x-hpux: Likewise.
23149 * config/x-linux: Likewise.
23150 * config/x-netbsd: Likewise.
23151 * config/x-openbsd: Likewise.
23152 * config/x-solaris: Likewise.
23153 * config/xtensa/xtensa-protos.h (xtensa_mem_offset): Likewise.
23154 * config/xtensa/xtensa.cc (xtensa_option_override): Likewise.
23155 * config/xtensa/xtensa.h: Likewise.
23156 * configure.ac: Likewise.
23157 * context.cc: Likewise.
23158 * convert.h: Likewise.
23159 * coretypes.h: Likewise.
23160 * coverage.cc: Likewise.
23161 * coverage.h: Likewise.
23162 * cppdefault.h (struct default_include): Likewise.
23163 * cprop.cc (local_cprop_pass): Likewise.
23164 (one_cprop_pass): Likewise.
23165 * cse.cc (hash_rtx_cb): Likewise.
23166 (fold_rtx): Likewise.
23167 * ctfc.h (ctfc_get_num_vlen_bytes): Likewise.
23168 * data-streamer.h (bp_unpack_var_len_int): Likewise.
23169 (streamer_write_widest_int): Likewise.
23170 * dbgcnt.def: Likewise.
23171 * dbxout.cc (dbxout_early_global_decl): Likewise.
23172 (dbxout_common_check): Likewise.
23173 * dbxout.h: Likewise.
23174 * debug.h (struct gcc_debug_hooks): Likewise.
23175 (dump_go_spec_init): Likewise.
23176 * df-core.cc: Likewise.
23177 * df-scan.cc (df_insn_info_delete): Likewise.
23178 (df_insn_delete): Likewise.
23179 * df.h (debug_df_chain): Likewise.
23180 (can_move_insns_across): Likewise.
23181 * dfp.cc (decimal_from_binary): Likewise.
23182 * diagnostic-color.cc: Likewise.
23183 * diagnostic-event-id.h: Likewise.
23184 * diagnostic-show-locus.cc (test_one_liner_labels): Likewise.
23185 * diagnostic.cc (bt_callback): Likewise.
23186 (num_digits): Likewise.
23187 * doc/avr-mmcu.texi: Likewise.
23188 * doc/cfg.texi: Likewise.
23189 * doc/contrib.texi: Likewise.
23190 * doc/cppinternals.texi: Likewise.
23191 * doc/extend.texi: Likewise.
23192 * doc/generic.texi: Likewise.
23193 * doc/gimple.texi: Likewise.
23194 * doc/gty.texi: Likewise.
23195 * doc/invoke.texi: Likewise.
23196 * doc/loop.texi: Likewise.
23197 * doc/lto.texi: Likewise.
23198 * doc/match-and-simplify.texi: Likewise.
23199 * doc/md.texi: Likewise.
23200 * doc/optinfo.texi: Likewise.
23201 * doc/options.texi: Likewise.
23202 * doc/passes.texi: Likewise.
23203 * doc/plugins.texi: Likewise.
23204 * doc/rtl.texi: Likewise.
23205 * doc/sourcebuild.texi: Likewise.
23206 * doc/tm.texi: Likewise.
23207 * doc/tm.texi.in: Likewise.
23208 * doc/tree-ssa.texi: Likewise.
23209 * dojump.cc (do_jump): Likewise.
23210 * dojump.h: Likewise.
23211 * dumpfile.cc (test_impl_location): Likewise.
23212 (test_capture_of_dump_calls): Likewise.
23213 * dumpfile.h (enum dump_kind): Likewise.
23214 (class dump_location_t): Likewise.
23215 (dump_enabled_p): Likewise.
23216 (enable_rtl_dump_file): Likewise.
23217 (dump_combine_total_stats): Likewise.
23218 * dwarf2asm.cc (dw2_asm_output_delta_uleb128): Likewise.
23219 * dwarf2ctf.h (ctf_debug_finish): Likewise.
23220 * dwarf2out.cc (dwarf2out_begin_prologue): Likewise.
23221 (struct loc_descr_context): Likewise.
23222 (rtl_for_decl_location): Likewise.
23223 (gen_subprogram_die): Likewise.
23224 (gen_label_die): Likewise.
23225 (is_trivial_indirect_ref): Likewise.
23226 (dwarf2out_late_global_decl): Likewise.
23227 (dwarf_file_hasher::hash): Likewise.
23228 (dwarf2out_end_source_file): Likewise.
23229 (dwarf2out_define): Likewise.
23230 (dwarf2out_early_finish): Likewise.
23231 * dwarf2out.h (struct dw_fde_node): Likewise.
23232 (struct dw_discr_list_node): Likewise.
23233 (output_loc_sequence_raw): Likewise.
23234 * emit-rtl.cc (gen_raw_REG): Likewise.
23235 (maybe_set_max_label_num): Likewise.
23236 * emit-rtl.h (struct rtl_data): Likewise.
23237 * errors.cc (internal_error): Likewise.
23238 (trim_filename): Likewise.
23239 * et-forest.cc: Likewise.
23240 * except.cc (init_eh_for_function): Likewise.
23241 * explow.cc (promote_ssa_mode): Likewise.
23242 (get_dynamic_stack_size): Likewise.
23243 * explow.h: Likewise.
23244 * expmed.h: Likewise.
23245 * expr.cc (safe_from_p): Likewise.
23246 (expand_expr_real_2): Likewise.
23247 (expand_expr_real_1): Likewise.
23248 * file-prefix-map.cc (remap_filename): Likewise.
23249 * final.cc (app_enable): Likewise.
23250 (make_pass_compute_alignments): Likewise.
23251 (final_scan_insn_1): Likewise.
23252 (final_scan_insn): Likewise.
23253 * fixed-value.h (fixed_from_string): Likewise.
23254 * flag-types.h (NO_DEBUG): Likewise.
23255 (DWARF2_DEBUG): Likewise.
23256 (VMS_DEBUG): Likewise.
23257 (BTF_DEBUG): Likewise.
23258 (enum ctf_debug_info_levels): Likewise.
23259 * fold-const.cc (const_binop): Likewise.
23260 (fold_binary_loc): Likewise.
23261 (fold_checksum_tree): Likewise.
23262 * fp-test.cc: Likewise.
23263 * function.cc (expand_function_end): Likewise.
23264 * function.h (struct function): Likewise.
23265 * fwprop.cc (should_replace_address): Likewise.
23266 * gcc-main.cc: Likewise.
23267 * gcc-rich-location.h (class gcc_rich_location): Likewise.
23268 * gcc-symtab.h: Likewise.
23269 * gcc.cc (MIN_FATAL_STATUS): Likewise.
23270 (driver_handle_option): Likewise.
23271 (quote_spec_arg): Likewise.
23272 (driver::finalize): Likewise.
23273 * gcc.h (set_input): Likewise.
23274 * gcov-dump.cc: Likewise.
23275 * gcov.cc (solve_flow_graph): Likewise.
23276 * gcse-common.cc: Likewise.
23277 * gcse.cc (make_pass_rtl_hoist): Likewise.
23278 * genattr-common.cc: Likewise.
23279 * genattrtab.cc (min_fn): Likewise.
23280 (write_const_num_delay_slots): Likewise.
23281 * genautomata.cc: Likewise.
23282 * genconditions.cc (write_one_condition): Likewise.
23283 * genconstants.cc: Likewise.
23284 * genemit.cc (gen_exp): Likewise.
23285 * generic-match-head.cc: Likewise.
23286 * genextract.cc: Likewise.
23287 * gengenrtl.cc (always_void_p): Likewise.
23288 * gengtype-parse.cc (gtymarker_opt): Likewise.
23289 * gengtype-state.cc (state_writer::state_writer): Likewise.
23290 (write_state_trailer): Likewise.
23291 (equals_type_number): Likewise.
23292 (read_state): Likewise.
23293 * gengtype.cc (open_base_files): Likewise.
23294 (struct file_rule_st): Likewise.
23295 (header_dot_h_frul): Likewise.
23296 * gengtype.h: Likewise.
23297 * genmatch.cc (main): Likewise.
23298 * genmddeps.cc: Likewise.
23299 * genmodes.cc (emit_mode_inner): Likewise.
23300 (emit_mode_unit_size): Likewise.
23301 * genpeep.cc (gen_peephole): Likewise.
23302 * genpreds.cc (write_tm_preds_h): Likewise.
23303 * genrecog.cc (validate_pattern): Likewise.
23304 (write_header): Likewise.
23306 * gensupport.cc (change_subst_attribute): Likewise.
23307 (traverse_c_tests): Likewise.
23308 (add_predicate): Likewise.
23309 (init_predicate_table): Likewise.
23310 * gensupport.h (struct optab_pattern): Likewise.
23311 (get_num_insn_codes): Likewise.
23312 (maybe_eval_c_test): Likewise.
23313 (struct pred_data): Likewise.
23314 * ggc-internal.h: Likewise.
23315 * gimple-fold.cc (maybe_fold_reference): Likewise.
23316 (get_range_strlen_tree): Likewise.
23317 * gimple-fold.h (gimple_stmt_integer_valued_real_p): Likewise.
23318 * gimple-low.cc: Likewise.
23319 * gimple-match-head.cc (directly_supported_p): Likewise.
23320 * gimple-pretty-print.h: Likewise.
23321 * gimple-ssa-sprintf.cc (format_percent): Likewise.
23322 (adjust_range_for_overflow): Likewise.
23323 * gimple-streamer.h: Likewise.
23324 * gimple.h (struct GTY): Likewise.
23325 (is_gimple_resx): Likewise.
23326 * gimplify.cc (gimplify_expr): Likewise.
23327 (gimplify_init_constructor): Likewise.
23328 (omp_construct_selector_matches): Likewise.
23329 (gimplify_omp_target_update): Likewise.
23330 (gimplify_omp_ordered): Likewise.
23331 (gimplify_va_arg_expr): Likewise.
23332 * graphite-isl-ast-to-gimple.cc (should_copy_to_new_region): Likewise.
23333 * haifa-sched.cc (increase_insn_priority): Likewise.
23334 (try_ready): Likewise.
23335 (sched_create_recovery_edges): Likewise.
23336 * ifcvt.cc (find_if_case_1): Likewise.
23337 (find_if_case_2): Likewise.
23338 * inchash.h: Likewise.
23339 * incpath.cc (add_env_var_paths): Likewise.
23340 * input.cc (dump_location_info): Likewise.
23341 (assert_loceq): Likewise.
23342 (test_lexer_string_locations_concatenation_1): Likewise.
23343 (test_lexer_string_locations_concatenation_2): Likewise.
23344 (test_lexer_string_locations_concatenation_3): Likewise.
23345 * input.h (BUILTINS_LOCATION): Likewise.
23346 (class string_concat_db): Likewise.
23347 * internal-fn.cc (expand_MUL_OVERFLOW): Likewise.
23348 (expand_LOOP_VECTORIZED): Likewise.
23349 * ipa-cp.cc (make_pass_ipa_cp): Likewise.
23350 * ipa-fnsummary.cc (remap_freqcounting_preds_after_dup): Likewise.
23351 (ipa_fn_summary_t::duplicate): Likewise.
23352 (make_pass_ipa_fn_summary): Likewise.
23353 * ipa-fnsummary.h (enum ipa_hints_vals): Likewise.
23354 * ipa-free-lang-data.cc (fld_simplified_type): Likewise.
23355 (free_lang_data_in_decl): Likewise.
23356 * ipa-inline.cc (compute_inlined_call_time): Likewise.
23357 (inline_always_inline_functions): Likewise.
23358 * ipa-inline.h (free_growth_caches): Likewise.
23359 (inline_account_function_p): Likewise.
23360 * ipa-modref.cc (modref_access_analysis::analyze_stmt): Likewise.
23361 (modref_eaf_analysis::analyze_ssa_name): Likewise.
23362 * ipa-param-manipulation.cc (ipa_param_body_adjustments::mark_dead_statements): Likewise.
23363 (ipa_param_body_adjustments::remap_with_debug_expressions): Likewise.
23364 * ipa-prop.cc (ipa_set_node_agg_value_chain): Likewise.
23365 * ipa-prop.h (IPA_UNDESCRIBED_USE): Likewise.
23366 (unadjusted_ptr_and_unit_offset): Likewise.
23367 * ipa-reference.cc (make_pass_ipa_reference): Likewise.
23368 * ipa-reference.h (GCC_IPA_REFERENCE_H): Likewise.
23369 * ipa-split.cc (consider_split): Likewise.
23370 * ipa-sra.cc (isra_read_node_info): Likewise.
23371 * ipa-utils.h (struct ipa_dfs_info): Likewise.
23372 (recursive_call_p): Likewise.
23373 (ipa_make_function_pure): Likewise.
23374 * ira-build.cc (ira_create_allocno): Likewise.
23375 (ira_flattening): Likewise.
23376 * ira-color.cc (do_coloring): Likewise.
23377 (update_curr_costs): Likewise.
23378 * ira-conflicts.cc (process_regs_for_copy): Likewise.
23379 * ira-int.h (struct ira_emit_data): Likewise.
23380 (ira_prohibited_mode_move_regs): Likewise.
23381 (ira_get_dup_out_num): Likewise.
23382 (ira_destroy): Likewise.
23383 (ira_tune_allocno_costs): Likewise.
23384 (ira_implicitly_set_insn_hard_regs): Likewise.
23385 (ira_build_conflicts): Likewise.
23386 (ira_color): Likewise.
23387 * ira-lives.cc (process_bb_node_lives): Likewise.
23388 * ira.cc (class ira_spilled_reg_stack_slot): Likewise.
23389 (setup_uniform_class_p): Likewise.
23390 (def_dominates_uses): Likewise.
23391 * ira.h (ira_nullify_asm_goto): Likewise.
23392 * langhooks.cc (lhd_post_options): Likewise.
23393 * langhooks.h (class substring_loc): Likewise.
23394 (struct lang_hooks_for_tree_inlining): Likewise.
23395 (struct lang_hooks_for_types): Likewise.
23396 (struct lang_hooks): Likewise.
23397 * libfuncs.h (synchronize_libfunc): Likewise.
23398 * loop-doloop.cc (doloop_condition_get): Likewise.
23399 * loop-init.cc (fix_loop_structure): Likewise.
23400 * loop-invariant.cc: Likewise.
23401 * lower-subreg.h: Likewise.
23402 * lra-constraints.cc (curr_insn_transform): Likewise.
23403 * lra-int.h (struct lra_insn_reg): Likewise.
23404 (lra_undo_inheritance): Likewise.
23405 (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
23406 (lra_split_hard_reg_for): Likewise.
23407 (lra_coalesce): Likewise.
23408 (lra_final_code_change): Likewise.
23409 * lra-spills.cc (lra_final_code_change): Likewise.
23410 * lra.cc (lra_process_new_insns): Likewise.
23411 * lto-compress.h (struct lto_compression_stream): Likewise.
23412 * lto-streamer-out.cc (DFS::DFS_write_tree_body): Likewise.
23413 (write_symbol): Likewise.
23414 * lto-streamer.h (enum LTO_tags): Likewise.
23415 (lto_value_range_error): Likewise.
23416 (lto_append_block): Likewise.
23417 (lto_streamer_hooks_init): Likewise.
23418 (stream_read_tree_ref): Likewise.
23419 (lto_prepare_function_for_streaming): Likewise.
23420 (select_what_to_stream): Likewise.
23421 (omp_lto_input_declare_variant_alt): Likewise.
23422 (cl_optimization_stream_in): Likewise.
23423 * lto-wrapper.cc (append_compiler_options): Likewise.
23424 * machmode.def: Likewise.
23425 * machmode.h (struct int_n_data_t): Likewise.
23426 * main.cc (main): Likewise.
23427 * match.pd: Likewise.
23428 * omp-builtins.def (BUILT_IN_GOMP_CRITICAL_NAME_END): Likewise.
23429 (BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): Likewise.
23430 * omp-expand.cc (expand_omp_atomic_fetch_op): Likewise.
23431 (make_pass_expand_omp_ssa): Likewise.
23432 * omp-low.cc (struct omp_context): Likewise.
23433 (struct omp_taskcopy_context): Likewise.
23434 (lower_omp): Likewise.
23435 * omp-oacc-neuter-broadcast.cc (omp_sese_active_worker_call): Likewise.
23436 (mask_name): Likewise.
23437 (omp_sese_dump_pars): Likewise.
23438 (worker_single_simple): Likewise.
23439 * omp-offload.cc (omp_finish_file): Likewise.
23440 (execute_oacc_loop_designation): Likewise.
23441 * optabs-query.cc (lshift_cheap_p): Likewise.
23442 * optc-gen.awk: Likewise.
23443 * optc-save-gen.awk: Likewise.
23444 * optinfo-emit-json.cc (optrecord_json_writer::optrecord_json_writer): Likewise.
23445 * opts-common.cc: Likewise.
23446 * output.h (app_enable): Likewise.
23447 (output_operand_lossage): Likewise.
23448 (insn_current_reference_address): Likewise.
23449 (get_insn_template): Likewise.
23450 (output_quoted_string): Likewise.
23451 * pass_manager.h (struct register_pass_info): Likewise.
23452 * plugin.cc: Likewise.
23453 * plugin.def (PLUGIN_ANALYZER_INIT): Likewise.
23454 * plugin.h (invoke_plugin_callbacks): Likewise.
23455 * pointer-query.cc (handle_mem_ref): Likewise.
23456 * postreload-gcse.cc (alloc_mem): Likewise.
23457 * predict.h (enum prediction): Likewise.
23458 (add_reg_br_prob_note): Likewise.
23459 * prefix.h: Likewise.
23460 * profile.h (get_working_sets): Likewise.
23461 * read-md.cc: Likewise.
23462 * read-md.h (struct mapping): Likewise.
23463 (class md_reader): Likewise.
23464 (class noop_reader): Likewise.
23465 * read-rtl-function.cc (function_reader::create_function): Likewise.
23466 (function_reader::extra_parsing_for_operand_code_0): Likewise.
23467 * read-rtl.cc (initialize_iterators): Likewise.
23468 * real.cc: Likewise.
23469 * real.h (struct real_value): Likewise.
23470 (format_helper::format_helper): Likewise.
23471 (real_hash): Likewise.
23472 (real_can_shorten_arithmetic): Likewise.
23473 * recog.cc (struct target_recog): Likewise.
23474 (offsettable_nonstrict_memref_p): Likewise.
23475 (constrain_operands): Likewise.
23476 * recog.h (MAX_RECOG_ALTERNATIVES): Likewise.
23477 (which_op_alt): Likewise.
23478 (struct insn_gen_fn): Likewise.
23479 * reg-notes.def (REG_NOTE): Likewise.
23480 * reg-stack.cc: Likewise.
23481 * regs.h (reg_is_parm_p): Likewise.
23482 * regset.h: Likewise.
23483 * reload.cc (push_reload): Likewise.
23484 (find_reloads): Likewise.
23485 (find_reloads_address_1): Likewise.
23486 (find_replacement): Likewise.
23487 (refers_to_regno_for_reload_p): Likewise.
23488 (refers_to_mem_for_reload_p): Likewise.
23489 * reload.h (push_reload): Likewise.
23490 (deallocate_reload_reg): Likewise.
23491 * reload1.cc (emit_input_reload_insns): Likewise.
23492 * reorg.cc (relax_delay_slots): Likewise.
23493 * rtl.def (UNKNOWN): Likewise.
23494 (SEQUENCE): Likewise.
23495 (BARRIER): Likewise.
23496 (ASM_OPERANDS): Likewise.
23497 (EQ_ATTR_ALT): Likewise.
23498 * rtl.h (struct GTY): Likewise.
23499 (LABEL_NAME): Likewise.
23500 (LABEL_ALT_ENTRY_P): Likewise.
23501 (SUBREG_BYTE): Likewise.
23502 (get_stack_check_protect): Likewise.
23503 (dump_rtx_statistics): Likewise.
23504 (unwrap_const_vec_duplicate): Likewise.
23505 (subreg_promoted_mode): Likewise.
23506 (gen_lowpart_common): Likewise.
23507 (operand_subword): Likewise.
23508 (immed_wide_int_const): Likewise.
23509 (decide_function_section): Likewise.
23510 (active_insn_p): Likewise.
23511 (delete_related_insns): Likewise.
23512 (try_split): Likewise.
23513 (val_signbit_known_clear_p): Likewise.
23514 (simplifiable_subregs): Likewise.
23515 (set_insn_deleted): Likewise.
23516 (subreg_get_info): Likewise.
23517 (remove_free_EXPR_LIST_node): Likewise.
23518 (finish_subregs_of_mode): Likewise.
23519 (get_mem_attrs): Likewise.
23520 (lookup_constant_def): Likewise.
23521 (rtx_to_tree_code): Likewise.
23522 (hash_rtx): Likewise.
23523 (condjump_in_parallel_p): Likewise.
23524 (validate_subreg): Likewise.
23525 (make_compound_operation): Likewise.
23526 (schedule_ebbs): Likewise.
23527 (print_inline_rtx): Likewise.
23528 (fixup_args_size_notes): Likewise.
23529 (expand_dec): Likewise.
23530 (prepare_copy_insn): Likewise.
23531 (mark_elimination): Likewise.
23532 (valid_mode_changes_for_regno): Likewise.
23533 (make_debug_expr_from_rtl): Likewise.
23534 (delete_vta_debug_insns): Likewise.
23535 (simplify_using_condition): Likewise.
23536 (set_insn_locations): Likewise.
23537 (fatal_insn_not_found): Likewise.
23538 (word_register_operation_p): Likewise.
23539 * rtlanal.cc (get_call_fndecl): Likewise.
23540 (side_effects_p): Likewise.
23541 (subreg_nregs): Likewise.
23542 (rtx_cost): Likewise.
23543 (canonicalize_condition): Likewise.
23544 * rtlanal.h (rtx_properties::try_to_add_note): Likewise.
23545 * run-rtl-passes.cc (run_rtl_passes): Likewise.
23546 * sanitizer.def (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Likewise.
23547 * sched-deps.cc (add_dependence_1): Likewise.
23548 * sched-ebb.cc (begin_move_insn): Likewise.
23549 (add_deps_for_risky_insns): Likewise.
23550 (advance_target_bb): Likewise.
23551 * sched-int.h (reemit_notes): Likewise.
23552 (struct _haifa_insn_data): Likewise.
23554 (DEP_CANCELLED): Likewise.
23555 (debug_ds): Likewise.
23556 (number_in_ready): Likewise.
23557 (schedule_ebbs_finish): Likewise.
23558 (find_modifiable_mems): Likewise.
23559 * sched-rgn.cc (debug_rgn_dependencies): Likewise.
23560 * sel-sched-dump.cc (dump_lv_set): Likewise.
23561 * sel-sched-dump.h: Likewise.
23562 * sel-sched-ir.cc (sel_insn_rtx_cost): Likewise.
23563 (setup_id_reg_sets): Likewise.
23564 (has_dependence_p): Likewise.
23565 (sel_num_cfg_preds_gt_1): Likewise.
23566 (bb_ends_ebb_p): Likewise.
23567 * sel-sched-ir.h (struct _list_node): Likewise.
23568 (struct idata_def): Likewise.
23569 (bb_next_bb): Likewise.
23570 * sel-sched.cc (vinsn_writes_one_of_regs_p): Likewise.
23571 (choose_best_pseudo_reg): Likewise.
23572 (verify_target_availability): Likewise.
23573 (can_speculate_dep_p): Likewise.
23574 (sel_rank_for_schedule): Likewise.
23575 * selftest-run-tests.cc (selftest::run_tests): Likewise.
23576 * selftest.h (class auto_fix_quotes): Likewise.
23577 * shrink-wrap.cc (handle_simple_exit): Likewise.
23578 * shrink-wrap.h: Likewise.
23579 * simplify-rtx.cc (simplify_context::simplify_associative_operation): Likewise.
23580 (simplify_context::simplify_gen_vec_select): Likewise.
23581 * spellcheck-tree.h: Likewise.
23582 * spellcheck.h: Likewise.
23583 * statistics.h (struct function): Likewise.
23584 * stmt.cc (conditional_probability): Likewise.
23585 * stmt.h: Likewise.
23586 * stor-layout.h: Likewise.
23587 * streamer-hooks.h: Likewise.
23588 * stringpool.h: Likewise.
23589 * symtab.cc (symbol_table::change_decl_assembler_name): Likewise.
23590 * target.def (HOOK_VECTOR_END): Likewise.
23592 * target.h (union cumulative_args_t): Likewise.
23593 (by_pieces_ninsns): Likewise.
23594 (class predefined_function_abi): Likewise.
23595 * targhooks.cc (default_translate_mode_attribute): Likewise.
23596 * timevar.def: Likewise.
23597 * timevar.h (class timer): Likewise.
23598 * toplev.h (enable_rtl_dump_file): Likewise.
23599 * trans-mem.cc (collect_bb2reg): Likewise.
23600 * tree-call-cdce.cc (gen_conditions_for_pow): Likewise.
23601 * tree-cfg.cc (remove_bb): Likewise.
23602 (verify_gimple_debug): Likewise.
23603 (remove_edge_and_dominated_blocks): Likewise.
23604 (push_fndecl): Likewise.
23605 * tree-cfgcleanup.h (GCC_TREE_CFGCLEANUP_H): Likewise.
23606 * tree-complex.cc (expand_complex_multiplication): Likewise.
23607 (expand_complex_div_straight): Likewise.
23608 * tree-core.h (enum tree_index): Likewise.
23609 (enum operand_equal_flag): Likewise.
23610 * tree-eh.cc (honor_protect_cleanup_actions): Likewise.
23611 * tree-if-conv.cc (if_convertible_gimple_assign_stmt_p): Likewise.
23612 * tree-inline.cc (initialize_inlined_parameters): Likewise.
23613 * tree-inline.h (force_value_to_type): Likewise.
23614 * tree-nested.cc (get_chain_decl): Likewise.
23615 (walk_all_functions): Likewise.
23616 * tree-object-size.h: Likewise.
23617 * tree-outof-ssa.cc: Likewise.
23618 * tree-parloops.cc (create_parallel_loop): Likewise.
23619 * tree-pretty-print.cc (print_generic_expr_to_str): Likewise.
23620 (dump_generic_node): Likewise.
23621 * tree-profile.cc (tree_profiling): Likewise.
23622 * tree-sra.cc (maybe_add_sra_candidate): Likewise.
23623 * tree-ssa-address.cc: Likewise.
23624 * tree-ssa-alias.cc: Likewise.
23625 * tree-ssa-alias.h (ao_ref::max_size_known_p): Likewise.
23626 (dump_alias_stats): Likewise.
23627 * tree-ssa-ccp.cc: Likewise.
23628 * tree-ssa-coalesce.h: Likewise.
23629 * tree-ssa-live.cc (remove_unused_scope_block_p): Likewise.
23630 * tree-ssa-loop-manip.cc (copy_phi_node_args): Likewise.
23631 * tree-ssa-loop-unswitch.cc: Likewise.
23632 * tree-ssa-math-opts.cc: Likewise.
23633 * tree-ssa-operands.cc (class operands_scanner): Likewise.
23634 * tree-ssa-pre.cc: Likewise.
23635 * tree-ssa-reassoc.cc (optimize_ops_list): Likewise.
23636 (debug_range_entry): Likewise.
23637 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Likewise.
23638 * tree-ssa-sccvn.h (TREE_SSA_SCCVN_H): Likewise.
23639 * tree-ssa-scopedtables.cc (add_expr_commutative): Likewise.
23640 (equal_mem_array_ref_p): Likewise.
23641 * tree-ssa-strlen.cc (is_strlen_related_p): Likewise.
23642 * tree-ssa-strlen.h (get_range_strlen_dynamic): Likewise.
23643 * tree-ssa-tail-merge.cc (stmt_local_def): Likewise.
23644 * tree-ssa-ter.h: Likewise.
23645 * tree-ssa-threadupdate.h (enum bb_dom_status): Likewise.
23646 * tree-streamer-in.cc (lto_input_ts_block_tree_pointers): Likewise.
23647 * tree-streamer-out.cc (pack_ts_block_value_fields): Likewise.
23648 (write_ts_block_tree_pointers): Likewise.
23649 * tree-streamer.h (struct streamer_tree_cache_d): Likewise.
23650 (streamer_read_tree_bitfields): Likewise.
23651 (streamer_write_integer_cst): Likewise.
23652 * tree-vect-patterns.cc (apply_binop_and_append_stmt): Likewise.
23653 (vect_synth_mult_by_constant): Likewise.
23654 * tree-vect-stmts.cc (vectorizable_operation): Likewise.
23655 * tree-vectorizer.cc: Likewise.
23656 * tree-vectorizer.h (class auto_purge_vect_location): Likewise.
23657 (vect_update_inits_of_drs): Likewise.
23658 (vect_get_mask_type_for_stmt): Likewise.
23659 (vect_rgroup_iv_might_wrap_p): Likewise.
23660 (cse_and_gimplify_to_preheader): Likewise.
23661 (vect_free_slp_tree): Likewise.
23662 (vect_pattern_recog): Likewise.
23663 (vect_stmt_dominates_stmt_p): Likewise.
23664 * tree.cc (initialize_tree_contains_struct): Likewise.
23665 (need_assembler_name_p): Likewise.
23666 (type_with_interoperable_signedness): Likewise.
23667 * tree.def (SWITCH_EXPR): Likewise.
23668 * tree.h (TYPE_SYMTAB_ADDRESS): Likewise.
23669 (poly_int_tree_p): Likewise.
23670 (inlined_function_outer_scope_p): Likewise.
23671 (tree_code_for_canonical_type_merging): Likewise.
23672 * value-prof.cc: Likewise.
23673 * value-prof.h (get_nth_most_common_value): Likewise.
23674 (find_func_by_profile_id): Likewise.
23675 * value-range.cc (vrp_operand_equal_p): Likewise.
23676 * value-range.h: Likewise.
23677 * var-tracking.cc: Likewise.
23678 * varasm.cc (default_function_section): Likewise.
23679 (function_section_1): Likewise.
23680 (assemble_variable): Likewise.
23681 (handle_vtv_comdat_section): Likewise.
23682 * vec.h (struct vec_prefix): Likewise.
23683 * vmsdbgout.cc (full_name): Likewise.
23684 * vtable-verify.cc: Likewise.
23685 * vtable-verify.h (struct vtv_graph_node): Likewise.
23686 * xcoffout.cc: Likewise.
23687 * xcoffout.h (DEBUG_SYMS_TEXT): Likewise.
23689 2022-01-17 Martin Liska <mliska@suse.cz>
23691 * adjust-alignment.c: Moved to...
23692 * adjust-alignment.cc: ...here.
23693 * alias.c: Moved to...
23694 * alias.cc: ...here.
23695 * alloc-pool.c: Moved to...
23696 * alloc-pool.cc: ...here.
23697 * asan.c: Moved to...
23698 * asan.cc: ...here.
23699 * attribs.c: Moved to...
23700 * attribs.cc: ...here.
23701 * auto-inc-dec.c: Moved to...
23702 * auto-inc-dec.cc: ...here.
23703 * auto-profile.c: Moved to...
23704 * auto-profile.cc: ...here.
23705 * bb-reorder.c: Moved to...
23706 * bb-reorder.cc: ...here.
23707 * bitmap.c: Moved to...
23708 * bitmap.cc: ...here.
23709 * btfout.c: Moved to...
23710 * btfout.cc: ...here.
23711 * builtins.c: Moved to...
23712 * builtins.cc: ...here.
23713 * caller-save.c: Moved to...
23714 * caller-save.cc: ...here.
23715 * calls.c: Moved to...
23716 * calls.cc: ...here.
23717 * ccmp.c: Moved to...
23718 * ccmp.cc: ...here.
23719 * cfg.c: Moved to...
23721 * cfganal.c: Moved to...
23722 * cfganal.cc: ...here.
23723 * cfgbuild.c: Moved to...
23724 * cfgbuild.cc: ...here.
23725 * cfgcleanup.c: Moved to...
23726 * cfgcleanup.cc: ...here.
23727 * cfgexpand.c: Moved to...
23728 * cfgexpand.cc: ...here.
23729 * cfghooks.c: Moved to...
23730 * cfghooks.cc: ...here.
23731 * cfgloop.c: Moved to...
23732 * cfgloop.cc: ...here.
23733 * cfgloopanal.c: Moved to...
23734 * cfgloopanal.cc: ...here.
23735 * cfgloopmanip.c: Moved to...
23736 * cfgloopmanip.cc: ...here.
23737 * cfgrtl.c: Moved to...
23738 * cfgrtl.cc: ...here.
23739 * cgraph.c: Moved to...
23740 * cgraph.cc: ...here.
23741 * cgraphbuild.c: Moved to...
23742 * cgraphbuild.cc: ...here.
23743 * cgraphclones.c: Moved to...
23744 * cgraphclones.cc: ...here.
23745 * cgraphunit.c: Moved to...
23746 * cgraphunit.cc: ...here.
23747 * collect-utils.c: Moved to...
23748 * collect-utils.cc: ...here.
23749 * collect2-aix.c: Moved to...
23750 * collect2-aix.cc: ...here.
23751 * collect2.c: Moved to...
23752 * collect2.cc: ...here.
23753 * combine-stack-adj.c: Moved to...
23754 * combine-stack-adj.cc: ...here.
23755 * combine.c: Moved to...
23756 * combine.cc: ...here.
23757 * common/common-targhooks.c: Moved to...
23758 * common/common-targhooks.cc: ...here.
23759 * common/config/aarch64/aarch64-common.c: Moved to...
23760 * common/config/aarch64/aarch64-common.cc: ...here.
23761 * common/config/alpha/alpha-common.c: Moved to...
23762 * common/config/alpha/alpha-common.cc: ...here.
23763 * common/config/arc/arc-common.c: Moved to...
23764 * common/config/arc/arc-common.cc: ...here.
23765 * common/config/arm/arm-common.c: Moved to...
23766 * common/config/arm/arm-common.cc: ...here.
23767 * common/config/avr/avr-common.c: Moved to...
23768 * common/config/avr/avr-common.cc: ...here.
23769 * common/config/bfin/bfin-common.c: Moved to...
23770 * common/config/bfin/bfin-common.cc: ...here.
23771 * common/config/bpf/bpf-common.c: Moved to...
23772 * common/config/bpf/bpf-common.cc: ...here.
23773 * common/config/c6x/c6x-common.c: Moved to...
23774 * common/config/c6x/c6x-common.cc: ...here.
23775 * common/config/cr16/cr16-common.c: Moved to...
23776 * common/config/cr16/cr16-common.cc: ...here.
23777 * common/config/cris/cris-common.c: Moved to...
23778 * common/config/cris/cris-common.cc: ...here.
23779 * common/config/csky/csky-common.c: Moved to...
23780 * common/config/csky/csky-common.cc: ...here.
23781 * common/config/default-common.c: Moved to...
23782 * common/config/default-common.cc: ...here.
23783 * common/config/epiphany/epiphany-common.c: Moved to...
23784 * common/config/epiphany/epiphany-common.cc: ...here.
23785 * common/config/fr30/fr30-common.c: Moved to...
23786 * common/config/fr30/fr30-common.cc: ...here.
23787 * common/config/frv/frv-common.c: Moved to...
23788 * common/config/frv/frv-common.cc: ...here.
23789 * common/config/gcn/gcn-common.c: Moved to...
23790 * common/config/gcn/gcn-common.cc: ...here.
23791 * common/config/h8300/h8300-common.c: Moved to...
23792 * common/config/h8300/h8300-common.cc: ...here.
23793 * common/config/i386/i386-common.c: Moved to...
23794 * common/config/i386/i386-common.cc: ...here.
23795 * common/config/ia64/ia64-common.c: Moved to...
23796 * common/config/ia64/ia64-common.cc: ...here.
23797 * common/config/iq2000/iq2000-common.c: Moved to...
23798 * common/config/iq2000/iq2000-common.cc: ...here.
23799 * common/config/lm32/lm32-common.c: Moved to...
23800 * common/config/lm32/lm32-common.cc: ...here.
23801 * common/config/m32r/m32r-common.c: Moved to...
23802 * common/config/m32r/m32r-common.cc: ...here.
23803 * common/config/m68k/m68k-common.c: Moved to...
23804 * common/config/m68k/m68k-common.cc: ...here.
23805 * common/config/mcore/mcore-common.c: Moved to...
23806 * common/config/mcore/mcore-common.cc: ...here.
23807 * common/config/microblaze/microblaze-common.c: Moved to...
23808 * common/config/microblaze/microblaze-common.cc: ...here.
23809 * common/config/mips/mips-common.c: Moved to...
23810 * common/config/mips/mips-common.cc: ...here.
23811 * common/config/mmix/mmix-common.c: Moved to...
23812 * common/config/mmix/mmix-common.cc: ...here.
23813 * common/config/mn10300/mn10300-common.c: Moved to...
23814 * common/config/mn10300/mn10300-common.cc: ...here.
23815 * common/config/msp430/msp430-common.c: Moved to...
23816 * common/config/msp430/msp430-common.cc: ...here.
23817 * common/config/nds32/nds32-common.c: Moved to...
23818 * common/config/nds32/nds32-common.cc: ...here.
23819 * common/config/nios2/nios2-common.c: Moved to...
23820 * common/config/nios2/nios2-common.cc: ...here.
23821 * common/config/nvptx/nvptx-common.c: Moved to...
23822 * common/config/nvptx/nvptx-common.cc: ...here.
23823 * common/config/or1k/or1k-common.c: Moved to...
23824 * common/config/or1k/or1k-common.cc: ...here.
23825 * common/config/pa/pa-common.c: Moved to...
23826 * common/config/pa/pa-common.cc: ...here.
23827 * common/config/pdp11/pdp11-common.c: Moved to...
23828 * common/config/pdp11/pdp11-common.cc: ...here.
23829 * common/config/pru/pru-common.c: Moved to...
23830 * common/config/pru/pru-common.cc: ...here.
23831 * common/config/riscv/riscv-common.c: Moved to...
23832 * common/config/riscv/riscv-common.cc: ...here.
23833 * common/config/rs6000/rs6000-common.c: Moved to...
23834 * common/config/rs6000/rs6000-common.cc: ...here.
23835 * common/config/rx/rx-common.c: Moved to...
23836 * common/config/rx/rx-common.cc: ...here.
23837 * common/config/s390/s390-common.c: Moved to...
23838 * common/config/s390/s390-common.cc: ...here.
23839 * common/config/sh/sh-common.c: Moved to...
23840 * common/config/sh/sh-common.cc: ...here.
23841 * common/config/sparc/sparc-common.c: Moved to...
23842 * common/config/sparc/sparc-common.cc: ...here.
23843 * common/config/tilegx/tilegx-common.c: Moved to...
23844 * common/config/tilegx/tilegx-common.cc: ...here.
23845 * common/config/tilepro/tilepro-common.c: Moved to...
23846 * common/config/tilepro/tilepro-common.cc: ...here.
23847 * common/config/v850/v850-common.c: Moved to...
23848 * common/config/v850/v850-common.cc: ...here.
23849 * common/config/vax/vax-common.c: Moved to...
23850 * common/config/vax/vax-common.cc: ...here.
23851 * common/config/visium/visium-common.c: Moved to...
23852 * common/config/visium/visium-common.cc: ...here.
23853 * common/config/xstormy16/xstormy16-common.c: Moved to...
23854 * common/config/xstormy16/xstormy16-common.cc: ...here.
23855 * common/config/xtensa/xtensa-common.c: Moved to...
23856 * common/config/xtensa/xtensa-common.cc: ...here.
23857 * compare-elim.c: Moved to...
23858 * compare-elim.cc: ...here.
23859 * config/aarch64/aarch64-bti-insert.c: Moved to...
23860 * config/aarch64/aarch64-bti-insert.cc: ...here.
23861 * config/aarch64/aarch64-builtins.c: Moved to...
23862 * config/aarch64/aarch64-builtins.cc: ...here.
23863 * config/aarch64/aarch64-c.c: Moved to...
23864 * config/aarch64/aarch64-c.cc: ...here.
23865 * config/aarch64/aarch64-d.c: Moved to...
23866 * config/aarch64/aarch64-d.cc: ...here.
23867 * config/aarch64/aarch64.c: Moved to...
23868 * config/aarch64/aarch64.cc: ...here.
23869 * config/aarch64/cortex-a57-fma-steering.c: Moved to...
23870 * config/aarch64/cortex-a57-fma-steering.cc: ...here.
23871 * config/aarch64/driver-aarch64.c: Moved to...
23872 * config/aarch64/driver-aarch64.cc: ...here.
23873 * config/aarch64/falkor-tag-collision-avoidance.c: Moved to...
23874 * config/aarch64/falkor-tag-collision-avoidance.cc: ...here.
23875 * config/aarch64/host-aarch64-darwin.c: Moved to...
23876 * config/aarch64/host-aarch64-darwin.cc: ...here.
23877 * config/alpha/alpha.c: Moved to...
23878 * config/alpha/alpha.cc: ...here.
23879 * config/alpha/driver-alpha.c: Moved to...
23880 * config/alpha/driver-alpha.cc: ...here.
23881 * config/arc/arc-c.c: Moved to...
23882 * config/arc/arc-c.cc: ...here.
23883 * config/arc/arc.c: Moved to...
23884 * config/arc/arc.cc: ...here.
23885 * config/arc/driver-arc.c: Moved to...
23886 * config/arc/driver-arc.cc: ...here.
23887 * config/arm/aarch-common.c: Moved to...
23888 * config/arm/aarch-common.cc: ...here.
23889 * config/arm/arm-builtins.c: Moved to...
23890 * config/arm/arm-builtins.cc: ...here.
23891 * config/arm/arm-c.c: Moved to...
23892 * config/arm/arm-c.cc: ...here.
23893 * config/arm/arm-d.c: Moved to...
23894 * config/arm/arm-d.cc: ...here.
23895 * config/arm/arm.c: Moved to...
23896 * config/arm/arm.cc: ...here.
23897 * config/arm/driver-arm.c: Moved to...
23898 * config/arm/driver-arm.cc: ...here.
23899 * config/avr/avr-c.c: Moved to...
23900 * config/avr/avr-c.cc: ...here.
23901 * config/avr/avr-devices.c: Moved to...
23902 * config/avr/avr-devices.cc: ...here.
23903 * config/avr/avr-log.c: Moved to...
23904 * config/avr/avr-log.cc: ...here.
23905 * config/avr/avr.c: Moved to...
23906 * config/avr/avr.cc: ...here.
23907 * config/avr/driver-avr.c: Moved to...
23908 * config/avr/driver-avr.cc: ...here.
23909 * config/avr/gen-avr-mmcu-specs.c: Moved to...
23910 * config/avr/gen-avr-mmcu-specs.cc: ...here.
23911 * config/avr/gen-avr-mmcu-texi.c: Moved to...
23912 * config/avr/gen-avr-mmcu-texi.cc: ...here.
23913 * config/bfin/bfin.c: Moved to...
23914 * config/bfin/bfin.cc: ...here.
23915 * config/bpf/bpf.c: Moved to...
23916 * config/bpf/bpf.cc: ...here.
23917 * config/bpf/coreout.c: Moved to...
23918 * config/bpf/coreout.cc: ...here.
23919 * config/c6x/c6x.c: Moved to...
23920 * config/c6x/c6x.cc: ...here.
23921 * config/cr16/cr16.c: Moved to...
23922 * config/cr16/cr16.cc: ...here.
23923 * config/cris/cris.c: Moved to...
23924 * config/cris/cris.cc: ...here.
23925 * config/csky/csky.c: Moved to...
23926 * config/csky/csky.cc: ...here.
23927 * config/darwin-c.c: Moved to...
23928 * config/darwin-c.cc: ...here.
23929 * config/darwin-d.c: Moved to...
23930 * config/darwin-d.cc: ...here.
23931 * config/darwin-driver.c: Moved to...
23932 * config/darwin-driver.cc: ...here.
23933 * config/darwin-f.c: Moved to...
23934 * config/darwin-f.cc: ...here.
23935 * config/darwin.c: Moved to...
23936 * config/darwin.cc: ...here.
23937 * config/default-c.c: Moved to...
23938 * config/default-c.cc: ...here.
23939 * config/default-d.c: Moved to...
23940 * config/default-d.cc: ...here.
23941 * config/dragonfly-d.c: Moved to...
23942 * config/dragonfly-d.cc: ...here.
23943 * config/epiphany/epiphany.c: Moved to...
23944 * config/epiphany/epiphany.cc: ...here.
23945 * config/epiphany/mode-switch-use.c: Moved to...
23946 * config/epiphany/mode-switch-use.cc: ...here.
23947 * config/epiphany/resolve-sw-modes.c: Moved to...
23948 * config/epiphany/resolve-sw-modes.cc: ...here.
23949 * config/fr30/fr30.c: Moved to...
23950 * config/fr30/fr30.cc: ...here.
23951 * config/freebsd-d.c: Moved to...
23952 * config/freebsd-d.cc: ...here.
23953 * config/frv/frv.c: Moved to...
23954 * config/frv/frv.cc: ...here.
23955 * config/ft32/ft32.c: Moved to...
23956 * config/ft32/ft32.cc: ...here.
23957 * config/gcn/driver-gcn.c: Moved to...
23958 * config/gcn/driver-gcn.cc: ...here.
23959 * config/gcn/gcn-run.c: Moved to...
23960 * config/gcn/gcn-run.cc: ...here.
23961 * config/gcn/gcn-tree.c: Moved to...
23962 * config/gcn/gcn-tree.cc: ...here.
23963 * config/gcn/gcn.c: Moved to...
23964 * config/gcn/gcn.cc: ...here.
23965 * config/gcn/mkoffload.c: Moved to...
23966 * config/gcn/mkoffload.cc: ...here.
23967 * config/glibc-c.c: Moved to...
23968 * config/glibc-c.cc: ...here.
23969 * config/glibc-d.c: Moved to...
23970 * config/glibc-d.cc: ...here.
23971 * config/h8300/h8300.c: Moved to...
23972 * config/h8300/h8300.cc: ...here.
23973 * config/host-darwin.c: Moved to...
23974 * config/host-darwin.cc: ...here.
23975 * config/host-hpux.c: Moved to...
23976 * config/host-hpux.cc: ...here.
23977 * config/host-linux.c: Moved to...
23978 * config/host-linux.cc: ...here.
23979 * config/host-netbsd.c: Moved to...
23980 * config/host-netbsd.cc: ...here.
23981 * config/host-openbsd.c: Moved to...
23982 * config/host-openbsd.cc: ...here.
23983 * config/host-solaris.c: Moved to...
23984 * config/host-solaris.cc: ...here.
23985 * config/i386/djgpp.c: Moved to...
23986 * config/i386/djgpp.cc: ...here.
23987 * config/i386/driver-i386.c: Moved to...
23988 * config/i386/driver-i386.cc: ...here.
23989 * config/i386/driver-mingw32.c: Moved to...
23990 * config/i386/driver-mingw32.cc: ...here.
23991 * config/i386/gnu-property.c: Moved to...
23992 * config/i386/gnu-property.cc: ...here.
23993 * config/i386/host-cygwin.c: Moved to...
23994 * config/i386/host-cygwin.cc: ...here.
23995 * config/i386/host-i386-darwin.c: Moved to...
23996 * config/i386/host-i386-darwin.cc: ...here.
23997 * config/i386/host-mingw32.c: Moved to...
23998 * config/i386/host-mingw32.cc: ...here.
23999 * config/i386/i386-builtins.c: Moved to...
24000 * config/i386/i386-builtins.cc: ...here.
24001 * config/i386/i386-c.c: Moved to...
24002 * config/i386/i386-c.cc: ...here.
24003 * config/i386/i386-d.c: Moved to...
24004 * config/i386/i386-d.cc: ...here.
24005 * config/i386/i386-expand.c: Moved to...
24006 * config/i386/i386-expand.cc: ...here.
24007 * config/i386/i386-features.c: Moved to...
24008 * config/i386/i386-features.cc: ...here.
24009 * config/i386/i386-options.c: Moved to...
24010 * config/i386/i386-options.cc: ...here.
24011 * config/i386/i386.c: Moved to...
24012 * config/i386/i386.cc: ...here.
24013 * config/i386/intelmic-mkoffload.c: Moved to...
24014 * config/i386/intelmic-mkoffload.cc: ...here.
24015 * config/i386/msformat-c.c: Moved to...
24016 * config/i386/msformat-c.cc: ...here.
24017 * config/i386/winnt-cxx.c: Moved to...
24018 * config/i386/winnt-cxx.cc: ...here.
24019 * config/i386/winnt-d.c: Moved to...
24020 * config/i386/winnt-d.cc: ...here.
24021 * config/i386/winnt-stubs.c: Moved to...
24022 * config/i386/winnt-stubs.cc: ...here.
24023 * config/i386/winnt.c: Moved to...
24024 * config/i386/winnt.cc: ...here.
24025 * config/i386/x86-tune-sched-atom.c: Moved to...
24026 * config/i386/x86-tune-sched-atom.cc: ...here.
24027 * config/i386/x86-tune-sched-bd.c: Moved to...
24028 * config/i386/x86-tune-sched-bd.cc: ...here.
24029 * config/i386/x86-tune-sched-core.c: Moved to...
24030 * config/i386/x86-tune-sched-core.cc: ...here.
24031 * config/i386/x86-tune-sched.c: Moved to...
24032 * config/i386/x86-tune-sched.cc: ...here.
24033 * config/ia64/ia64-c.c: Moved to...
24034 * config/ia64/ia64-c.cc: ...here.
24035 * config/ia64/ia64.c: Moved to...
24036 * config/ia64/ia64.cc: ...here.
24037 * config/iq2000/iq2000.c: Moved to...
24038 * config/iq2000/iq2000.cc: ...here.
24039 * config/linux.c: Moved to...
24040 * config/linux.cc: ...here.
24041 * config/lm32/lm32.c: Moved to...
24042 * config/lm32/lm32.cc: ...here.
24043 * config/m32c/m32c-pragma.c: Moved to...
24044 * config/m32c/m32c-pragma.cc: ...here.
24045 * config/m32c/m32c.c: Moved to...
24046 * config/m32c/m32c.cc: ...here.
24047 * config/m32r/m32r.c: Moved to...
24048 * config/m32r/m32r.cc: ...here.
24049 * config/m68k/m68k.c: Moved to...
24050 * config/m68k/m68k.cc: ...here.
24051 * config/mcore/mcore.c: Moved to...
24052 * config/mcore/mcore.cc: ...here.
24053 * config/microblaze/microblaze-c.c: Moved to...
24054 * config/microblaze/microblaze-c.cc: ...here.
24055 * config/microblaze/microblaze.c: Moved to...
24056 * config/microblaze/microblaze.cc: ...here.
24057 * config/mips/driver-native.c: Moved to...
24058 * config/mips/driver-native.cc: ...here.
24059 * config/mips/frame-header-opt.c: Moved to...
24060 * config/mips/frame-header-opt.cc: ...here.
24061 * config/mips/mips-d.c: Moved to...
24062 * config/mips/mips-d.cc: ...here.
24063 * config/mips/mips.c: Moved to...
24064 * config/mips/mips.cc: ...here.
24065 * config/mmix/mmix.c: Moved to...
24066 * config/mmix/mmix.cc: ...here.
24067 * config/mn10300/mn10300.c: Moved to...
24068 * config/mn10300/mn10300.cc: ...here.
24069 * config/moxie/moxie.c: Moved to...
24070 * config/moxie/moxie.cc: ...here.
24071 * config/msp430/driver-msp430.c: Moved to...
24072 * config/msp430/driver-msp430.cc: ...here.
24073 * config/msp430/msp430-c.c: Moved to...
24074 * config/msp430/msp430-c.cc: ...here.
24075 * config/msp430/msp430-devices.c: Moved to...
24076 * config/msp430/msp430-devices.cc: ...here.
24077 * config/msp430/msp430.c: Moved to...
24078 * config/msp430/msp430.cc: ...here.
24079 * config/nds32/nds32-cost.c: Moved to...
24080 * config/nds32/nds32-cost.cc: ...here.
24081 * config/nds32/nds32-fp-as-gp.c: Moved to...
24082 * config/nds32/nds32-fp-as-gp.cc: ...here.
24083 * config/nds32/nds32-intrinsic.c: Moved to...
24084 * config/nds32/nds32-intrinsic.cc: ...here.
24085 * config/nds32/nds32-isr.c: Moved to...
24086 * config/nds32/nds32-isr.cc: ...here.
24087 * config/nds32/nds32-md-auxiliary.c: Moved to...
24088 * config/nds32/nds32-md-auxiliary.cc: ...here.
24089 * config/nds32/nds32-memory-manipulation.c: Moved to...
24090 * config/nds32/nds32-memory-manipulation.cc: ...here.
24091 * config/nds32/nds32-pipelines-auxiliary.c: Moved to...
24092 * config/nds32/nds32-pipelines-auxiliary.cc: ...here.
24093 * config/nds32/nds32-predicates.c: Moved to...
24094 * config/nds32/nds32-predicates.cc: ...here.
24095 * config/nds32/nds32-relax-opt.c: Moved to...
24096 * config/nds32/nds32-relax-opt.cc: ...here.
24097 * config/nds32/nds32-utils.c: Moved to...
24098 * config/nds32/nds32-utils.cc: ...here.
24099 * config/nds32/nds32.c: Moved to...
24100 * config/nds32/nds32.cc: ...here.
24101 * config/netbsd-d.c: Moved to...
24102 * config/netbsd-d.cc: ...here.
24103 * config/netbsd.c: Moved to...
24104 * config/netbsd.cc: ...here.
24105 * config/nios2/nios2.c: Moved to...
24106 * config/nios2/nios2.cc: ...here.
24107 * config/nvptx/mkoffload.c: Moved to...
24108 * config/nvptx/mkoffload.cc: ...here.
24109 * config/nvptx/nvptx-c.c: Moved to...
24110 * config/nvptx/nvptx-c.cc: ...here.
24111 * config/nvptx/nvptx.c: Moved to...
24112 * config/nvptx/nvptx.cc: ...here.
24113 * config/openbsd-d.c: Moved to...
24114 * config/openbsd-d.cc: ...here.
24115 * config/or1k/or1k.c: Moved to...
24116 * config/or1k/or1k.cc: ...here.
24117 * config/pa/pa-d.c: Moved to...
24118 * config/pa/pa-d.cc: ...here.
24119 * config/pa/pa.c: Moved to...
24120 * config/pa/pa.cc: ...here.
24121 * config/pdp11/pdp11.c: Moved to...
24122 * config/pdp11/pdp11.cc: ...here.
24123 * config/pru/pru-passes.c: Moved to...
24124 * config/pru/pru-passes.cc: ...here.
24125 * config/pru/pru-pragma.c: Moved to...
24126 * config/pru/pru-pragma.cc: ...here.
24127 * config/pru/pru.c: Moved to...
24128 * config/pru/pru.cc: ...here.
24129 * config/riscv/riscv-builtins.c: Moved to...
24130 * config/riscv/riscv-builtins.cc: ...here.
24131 * config/riscv/riscv-c.c: Moved to...
24132 * config/riscv/riscv-c.cc: ...here.
24133 * config/riscv/riscv-d.c: Moved to...
24134 * config/riscv/riscv-d.cc: ...here.
24135 * config/riscv/riscv-shorten-memrefs.c: Moved to...
24136 * config/riscv/riscv-shorten-memrefs.cc: ...here.
24137 * config/riscv/riscv-sr.c: Moved to...
24138 * config/riscv/riscv-sr.cc: ...here.
24139 * config/riscv/riscv.c: Moved to...
24140 * config/riscv/riscv.cc: ...here.
24141 * config/rl78/rl78-c.c: Moved to...
24142 * config/rl78/rl78-c.cc: ...here.
24143 * config/rl78/rl78.c: Moved to...
24144 * config/rl78/rl78.cc: ...here.
24145 * config/rs6000/driver-rs6000.c: Moved to...
24146 * config/rs6000/driver-rs6000.cc: ...here.
24147 * config/rs6000/host-darwin.c: Moved to...
24148 * config/rs6000/host-darwin.cc: ...here.
24149 * config/rs6000/host-ppc64-darwin.c: Moved to...
24150 * config/rs6000/host-ppc64-darwin.cc: ...here.
24151 * config/rs6000/rbtree.c: Moved to...
24152 * config/rs6000/rbtree.cc: ...here.
24153 * config/rs6000/rs6000-c.c: Moved to...
24154 * config/rs6000/rs6000-c.cc: ...here.
24155 * config/rs6000/rs6000-call.c: Moved to...
24156 * config/rs6000/rs6000-call.cc: ...here.
24157 * config/rs6000/rs6000-d.c: Moved to...
24158 * config/rs6000/rs6000-d.cc: ...here.
24159 * config/rs6000/rs6000-gen-builtins.c: Moved to...
24160 * config/rs6000/rs6000-gen-builtins.cc: ...here.
24161 * config/rs6000/rs6000-linux.c: Moved to...
24162 * config/rs6000/rs6000-linux.cc: ...here.
24163 * config/rs6000/rs6000-logue.c: Moved to...
24164 * config/rs6000/rs6000-logue.cc: ...here.
24165 * config/rs6000/rs6000-p8swap.c: Moved to...
24166 * config/rs6000/rs6000-p8swap.cc: ...here.
24167 * config/rs6000/rs6000-pcrel-opt.c: Moved to...
24168 * config/rs6000/rs6000-pcrel-opt.cc: ...here.
24169 * config/rs6000/rs6000-string.c: Moved to...
24170 * config/rs6000/rs6000-string.cc: ...here.
24171 * config/rs6000/rs6000.c: Moved to...
24172 * config/rs6000/rs6000.cc: ...here.
24173 * config/rx/rx.c: Moved to...
24174 * config/rx/rx.cc: ...here.
24175 * config/s390/driver-native.c: Moved to...
24176 * config/s390/driver-native.cc: ...here.
24177 * config/s390/s390-c.c: Moved to...
24178 * config/s390/s390-c.cc: ...here.
24179 * config/s390/s390-d.c: Moved to...
24180 * config/s390/s390-d.cc: ...here.
24181 * config/s390/s390.c: Moved to...
24182 * config/s390/s390.cc: ...here.
24183 * config/sh/divtab-sh4-300.c: Moved to...
24184 * config/sh/divtab-sh4-300.cc: ...here.
24185 * config/sh/divtab-sh4.c: Moved to...
24186 * config/sh/divtab-sh4.cc: ...here.
24187 * config/sh/divtab.c: Moved to...
24188 * config/sh/divtab.cc: ...here.
24189 * config/sh/sh-c.c: Moved to...
24190 * config/sh/sh-c.cc: ...here.
24191 * config/sh/sh.c: Moved to...
24192 * config/sh/sh.cc: ...here.
24193 * config/sol2-c.c: Moved to...
24194 * config/sol2-c.cc: ...here.
24195 * config/sol2-cxx.c: Moved to...
24196 * config/sol2-cxx.cc: ...here.
24197 * config/sol2-d.c: Moved to...
24198 * config/sol2-d.cc: ...here.
24199 * config/sol2-stubs.c: Moved to...
24200 * config/sol2-stubs.cc: ...here.
24201 * config/sol2.c: Moved to...
24202 * config/sol2.cc: ...here.
24203 * config/sparc/driver-sparc.c: Moved to...
24204 * config/sparc/driver-sparc.cc: ...here.
24205 * config/sparc/sparc-c.c: Moved to...
24206 * config/sparc/sparc-c.cc: ...here.
24207 * config/sparc/sparc-d.c: Moved to...
24208 * config/sparc/sparc-d.cc: ...here.
24209 * config/sparc/sparc.c: Moved to...
24210 * config/sparc/sparc.cc: ...here.
24211 * config/stormy16/stormy16.c: Moved to...
24212 * config/stormy16/stormy16.cc: ...here.
24213 * config/tilegx/mul-tables.c: Moved to...
24214 * config/tilegx/mul-tables.cc: ...here.
24215 * config/tilegx/tilegx-c.c: Moved to...
24216 * config/tilegx/tilegx-c.cc: ...here.
24217 * config/tilegx/tilegx.c: Moved to...
24218 * config/tilegx/tilegx.cc: ...here.
24219 * config/tilepro/mul-tables.c: Moved to...
24220 * config/tilepro/mul-tables.cc: ...here.
24221 * config/tilepro/tilepro-c.c: Moved to...
24222 * config/tilepro/tilepro-c.cc: ...here.
24223 * config/tilepro/tilepro.c: Moved to...
24224 * config/tilepro/tilepro.cc: ...here.
24225 * config/v850/v850-c.c: Moved to...
24226 * config/v850/v850-c.cc: ...here.
24227 * config/v850/v850.c: Moved to...
24228 * config/v850/v850.cc: ...here.
24229 * config/vax/vax.c: Moved to...
24230 * config/vax/vax.cc: ...here.
24231 * config/visium/visium.c: Moved to...
24232 * config/visium/visium.cc: ...here.
24233 * config/vms/vms-c.c: Moved to...
24234 * config/vms/vms-c.cc: ...here.
24235 * config/vms/vms-f.c: Moved to...
24236 * config/vms/vms-f.cc: ...here.
24237 * config/vms/vms.c: Moved to...
24238 * config/vms/vms.cc: ...here.
24239 * config/vxworks-c.c: Moved to...
24240 * config/vxworks-c.cc: ...here.
24241 * config/vxworks.c: Moved to...
24242 * config/vxworks.cc: ...here.
24243 * config/winnt-c.c: Moved to...
24244 * config/winnt-c.cc: ...here.
24245 * config/xtensa/xtensa.c: Moved to...
24246 * config/xtensa/xtensa.cc: ...here.
24247 * context.c: Moved to...
24248 * context.cc: ...here.
24249 * convert.c: Moved to...
24250 * convert.cc: ...here.
24251 * coverage.c: Moved to...
24252 * coverage.cc: ...here.
24253 * cppbuiltin.c: Moved to...
24254 * cppbuiltin.cc: ...here.
24255 * cppdefault.c: Moved to...
24256 * cppdefault.cc: ...here.
24257 * cprop.c: Moved to...
24258 * cprop.cc: ...here.
24259 * cse.c: Moved to...
24261 * cselib.c: Moved to...
24262 * cselib.cc: ...here.
24263 * ctfc.c: Moved to...
24264 * ctfc.cc: ...here.
24265 * ctfout.c: Moved to...
24266 * ctfout.cc: ...here.
24267 * data-streamer-in.c: Moved to...
24268 * data-streamer-in.cc: ...here.
24269 * data-streamer-out.c: Moved to...
24270 * data-streamer-out.cc: ...here.
24271 * data-streamer.c: Moved to...
24272 * data-streamer.cc: ...here.
24273 * dbgcnt.c: Moved to...
24274 * dbgcnt.cc: ...here.
24275 * dbxout.c: Moved to...
24276 * dbxout.cc: ...here.
24277 * dce.c: Moved to...
24279 * ddg.c: Moved to...
24281 * debug.c: Moved to...
24282 * debug.cc: ...here.
24283 * df-core.c: Moved to...
24284 * df-core.cc: ...here.
24285 * df-problems.c: Moved to...
24286 * df-problems.cc: ...here.
24287 * df-scan.c: Moved to...
24288 * df-scan.cc: ...here.
24289 * dfp.c: Moved to...
24291 * diagnostic-color.c: Moved to...
24292 * diagnostic-color.cc: ...here.
24293 * diagnostic-show-locus.c: Moved to...
24294 * diagnostic-show-locus.cc: ...here.
24295 * diagnostic-spec.c: Moved to...
24296 * diagnostic-spec.cc: ...here.
24297 * diagnostic.c: Moved to...
24298 * diagnostic.cc: ...here.
24299 * dojump.c: Moved to...
24300 * dojump.cc: ...here.
24301 * dominance.c: Moved to...
24302 * dominance.cc: ...here.
24303 * domwalk.c: Moved to...
24304 * domwalk.cc: ...here.
24305 * double-int.c: Moved to...
24306 * double-int.cc: ...here.
24307 * dse.c: Moved to...
24309 * dumpfile.c: Moved to...
24310 * dumpfile.cc: ...here.
24311 * dwarf2asm.c: Moved to...
24312 * dwarf2asm.cc: ...here.
24313 * dwarf2cfi.c: Moved to...
24314 * dwarf2cfi.cc: ...here.
24315 * dwarf2ctf.c: Moved to...
24316 * dwarf2ctf.cc: ...here.
24317 * dwarf2out.c: Moved to...
24318 * dwarf2out.cc: ...here.
24319 * early-remat.c: Moved to...
24320 * early-remat.cc: ...here.
24321 * edit-context.c: Moved to...
24322 * edit-context.cc: ...here.
24323 * emit-rtl.c: Moved to...
24324 * emit-rtl.cc: ...here.
24325 * errors.c: Moved to...
24326 * errors.cc: ...here.
24327 * et-forest.c: Moved to...
24328 * et-forest.cc: ...here.
24329 * except.c: Moved to...
24330 * except.cc: ...here.
24331 * explow.c: Moved to...
24332 * explow.cc: ...here.
24333 * expmed.c: Moved to...
24334 * expmed.cc: ...here.
24335 * expr.c: Moved to...
24336 * expr.cc: ...here.
24337 * fibonacci_heap.c: Moved to...
24338 * fibonacci_heap.cc: ...here.
24339 * file-find.c: Moved to...
24340 * file-find.cc: ...here.
24341 * file-prefix-map.c: Moved to...
24342 * file-prefix-map.cc: ...here.
24343 * final.c: Moved to...
24344 * final.cc: ...here.
24345 * fixed-value.c: Moved to...
24346 * fixed-value.cc: ...here.
24347 * fold-const-call.c: Moved to...
24348 * fold-const-call.cc: ...here.
24349 * fold-const.c: Moved to...
24350 * fold-const.cc: ...here.
24351 * fp-test.c: Moved to...
24352 * fp-test.cc: ...here.
24353 * function-tests.c: Moved to...
24354 * function-tests.cc: ...here.
24355 * function.c: Moved to...
24356 * function.cc: ...here.
24357 * fwprop.c: Moved to...
24358 * fwprop.cc: ...here.
24359 * gcc-ar.c: Moved to...
24360 * gcc-ar.cc: ...here.
24361 * gcc-main.c: Moved to...
24362 * gcc-main.cc: ...here.
24363 * gcc-rich-location.c: Moved to...
24364 * gcc-rich-location.cc: ...here.
24365 * gcc.c: Moved to...
24367 * gcov-dump.c: Moved to...
24368 * gcov-dump.cc: ...here.
24369 * gcov-io.c: Moved to...
24370 * gcov-io.cc: ...here.
24371 * gcov-tool.c: Moved to...
24372 * gcov-tool.cc: ...here.
24373 * gcov.c: Moved to...
24374 * gcov.cc: ...here.
24375 * gcse-common.c: Moved to...
24376 * gcse-common.cc: ...here.
24377 * gcse.c: Moved to...
24378 * gcse.cc: ...here.
24379 * genattr-common.c: Moved to...
24380 * genattr-common.cc: ...here.
24381 * genattr.c: Moved to...
24382 * genattr.cc: ...here.
24383 * genattrtab.c: Moved to...
24384 * genattrtab.cc: ...here.
24385 * genautomata.c: Moved to...
24386 * genautomata.cc: ...here.
24387 * gencfn-macros.c: Moved to...
24388 * gencfn-macros.cc: ...here.
24389 * gencheck.c: Moved to...
24390 * gencheck.cc: ...here.
24391 * genchecksum.c: Moved to...
24392 * genchecksum.cc: ...here.
24393 * gencodes.c: Moved to...
24394 * gencodes.cc: ...here.
24395 * genconditions.c: Moved to...
24396 * genconditions.cc: ...here.
24397 * genconfig.c: Moved to...
24398 * genconfig.cc: ...here.
24399 * genconstants.c: Moved to...
24400 * genconstants.cc: ...here.
24401 * genemit.c: Moved to...
24402 * genemit.cc: ...here.
24403 * genenums.c: Moved to...
24404 * genenums.cc: ...here.
24405 * generic-match-head.c: Moved to...
24406 * generic-match-head.cc: ...here.
24407 * genextract.c: Moved to...
24408 * genextract.cc: ...here.
24409 * genflags.c: Moved to...
24410 * genflags.cc: ...here.
24411 * gengenrtl.c: Moved to...
24412 * gengenrtl.cc: ...here.
24413 * gengtype-parse.c: Moved to...
24414 * gengtype-parse.cc: ...here.
24415 * gengtype-state.c: Moved to...
24416 * gengtype-state.cc: ...here.
24417 * gengtype.c: Moved to...
24418 * gengtype.cc: ...here.
24419 * genhooks.c: Moved to...
24420 * genhooks.cc: ...here.
24421 * genmatch.c: Moved to...
24422 * genmatch.cc: ...here.
24423 * genmddeps.c: Moved to...
24424 * genmddeps.cc: ...here.
24425 * genmddump.c: Moved to...
24426 * genmddump.cc: ...here.
24427 * genmodes.c: Moved to...
24428 * genmodes.cc: ...here.
24429 * genopinit.c: Moved to...
24430 * genopinit.cc: ...here.
24431 * genoutput.c: Moved to...
24432 * genoutput.cc: ...here.
24433 * genpeep.c: Moved to...
24434 * genpeep.cc: ...here.
24435 * genpreds.c: Moved to...
24436 * genpreds.cc: ...here.
24437 * genrecog.c: Moved to...
24438 * genrecog.cc: ...here.
24439 * gensupport.c: Moved to...
24440 * gensupport.cc: ...here.
24441 * gentarget-def.c: Moved to...
24442 * gentarget-def.cc: ...here.
24443 * genversion.c: Moved to...
24444 * genversion.cc: ...here.
24445 * ggc-common.c: Moved to...
24446 * ggc-common.cc: ...here.
24447 * ggc-none.c: Moved to...
24448 * ggc-none.cc: ...here.
24449 * ggc-page.c: Moved to...
24450 * ggc-page.cc: ...here.
24451 * ggc-tests.c: Moved to...
24452 * ggc-tests.cc: ...here.
24453 * gimple-builder.c: Moved to...
24454 * gimple-builder.cc: ...here.
24455 * gimple-expr.c: Moved to...
24456 * gimple-expr.cc: ...here.
24457 * gimple-fold.c: Moved to...
24458 * gimple-fold.cc: ...here.
24459 * gimple-iterator.c: Moved to...
24460 * gimple-iterator.cc: ...here.
24461 * gimple-laddress.c: Moved to...
24462 * gimple-laddress.cc: ...here.
24463 * gimple-loop-jam.c: Moved to...
24464 * gimple-loop-jam.cc: ...here.
24465 * gimple-low.c: Moved to...
24466 * gimple-low.cc: ...here.
24467 * gimple-match-head.c: Moved to...
24468 * gimple-match-head.cc: ...here.
24469 * gimple-pretty-print.c: Moved to...
24470 * gimple-pretty-print.cc: ...here.
24471 * gimple-ssa-backprop.c: Moved to...
24472 * gimple-ssa-backprop.cc: ...here.
24473 * gimple-ssa-evrp-analyze.c: Moved to...
24474 * gimple-ssa-evrp-analyze.cc: ...here.
24475 * gimple-ssa-evrp.c: Moved to...
24476 * gimple-ssa-evrp.cc: ...here.
24477 * gimple-ssa-isolate-paths.c: Moved to...
24478 * gimple-ssa-isolate-paths.cc: ...here.
24479 * gimple-ssa-nonnull-compare.c: Moved to...
24480 * gimple-ssa-nonnull-compare.cc: ...here.
24481 * gimple-ssa-split-paths.c: Moved to...
24482 * gimple-ssa-split-paths.cc: ...here.
24483 * gimple-ssa-sprintf.c: Moved to...
24484 * gimple-ssa-sprintf.cc: ...here.
24485 * gimple-ssa-store-merging.c: Moved to...
24486 * gimple-ssa-store-merging.cc: ...here.
24487 * gimple-ssa-strength-reduction.c: Moved to...
24488 * gimple-ssa-strength-reduction.cc: ...here.
24489 * gimple-ssa-warn-alloca.c: Moved to...
24490 * gimple-ssa-warn-alloca.cc: ...here.
24491 * gimple-ssa-warn-restrict.c: Moved to...
24492 * gimple-ssa-warn-restrict.cc: ...here.
24493 * gimple-streamer-in.c: Moved to...
24494 * gimple-streamer-in.cc: ...here.
24495 * gimple-streamer-out.c: Moved to...
24496 * gimple-streamer-out.cc: ...here.
24497 * gimple-walk.c: Moved to...
24498 * gimple-walk.cc: ...here.
24499 * gimple-warn-recursion.c: Moved to...
24500 * gimple-warn-recursion.cc: ...here.
24501 * gimple.c: Moved to...
24502 * gimple.cc: ...here.
24503 * gimplify-me.c: Moved to...
24504 * gimplify-me.cc: ...here.
24505 * gimplify.c: Moved to...
24506 * gimplify.cc: ...here.
24507 * godump.c: Moved to...
24508 * godump.cc: ...here.
24509 * graph.c: Moved to...
24510 * graph.cc: ...here.
24511 * graphds.c: Moved to...
24512 * graphds.cc: ...here.
24513 * graphite-dependences.c: Moved to...
24514 * graphite-dependences.cc: ...here.
24515 * graphite-isl-ast-to-gimple.c: Moved to...
24516 * graphite-isl-ast-to-gimple.cc: ...here.
24517 * graphite-optimize-isl.c: Moved to...
24518 * graphite-optimize-isl.cc: ...here.
24519 * graphite-poly.c: Moved to...
24520 * graphite-poly.cc: ...here.
24521 * graphite-scop-detection.c: Moved to...
24522 * graphite-scop-detection.cc: ...here.
24523 * graphite-sese-to-poly.c: Moved to...
24524 * graphite-sese-to-poly.cc: ...here.
24525 * graphite.c: Moved to...
24526 * graphite.cc: ...here.
24527 * haifa-sched.c: Moved to...
24528 * haifa-sched.cc: ...here.
24529 * hash-map-tests.c: Moved to...
24530 * hash-map-tests.cc: ...here.
24531 * hash-set-tests.c: Moved to...
24532 * hash-set-tests.cc: ...here.
24533 * hash-table.c: Moved to...
24534 * hash-table.cc: ...here.
24535 * hooks.c: Moved to...
24536 * hooks.cc: ...here.
24537 * host-default.c: Moved to...
24538 * host-default.cc: ...here.
24539 * hw-doloop.c: Moved to...
24540 * hw-doloop.cc: ...here.
24541 * hwint.c: Moved to...
24542 * hwint.cc: ...here.
24543 * ifcvt.c: Moved to...
24544 * ifcvt.cc: ...here.
24545 * inchash.c: Moved to...
24546 * inchash.cc: ...here.
24547 * incpath.c: Moved to...
24548 * incpath.cc: ...here.
24549 * init-regs.c: Moved to...
24550 * init-regs.cc: ...here.
24551 * input.c: Moved to...
24552 * input.cc: ...here.
24553 * internal-fn.c: Moved to...
24554 * internal-fn.cc: ...here.
24555 * intl.c: Moved to...
24556 * intl.cc: ...here.
24557 * ipa-comdats.c: Moved to...
24558 * ipa-comdats.cc: ...here.
24559 * ipa-cp.c: Moved to...
24560 * ipa-cp.cc: ...here.
24561 * ipa-devirt.c: Moved to...
24562 * ipa-devirt.cc: ...here.
24563 * ipa-fnsummary.c: Moved to...
24564 * ipa-fnsummary.cc: ...here.
24565 * ipa-icf-gimple.c: Moved to...
24566 * ipa-icf-gimple.cc: ...here.
24567 * ipa-icf.c: Moved to...
24568 * ipa-icf.cc: ...here.
24569 * ipa-inline-analysis.c: Moved to...
24570 * ipa-inline-analysis.cc: ...here.
24571 * ipa-inline-transform.c: Moved to...
24572 * ipa-inline-transform.cc: ...here.
24573 * ipa-inline.c: Moved to...
24574 * ipa-inline.cc: ...here.
24575 * ipa-modref-tree.c: Moved to...
24576 * ipa-modref-tree.cc: ...here.
24577 * ipa-modref.c: Moved to...
24578 * ipa-modref.cc: ...here.
24579 * ipa-param-manipulation.c: Moved to...
24580 * ipa-param-manipulation.cc: ...here.
24581 * ipa-polymorphic-call.c: Moved to...
24582 * ipa-polymorphic-call.cc: ...here.
24583 * ipa-predicate.c: Moved to...
24584 * ipa-predicate.cc: ...here.
24585 * ipa-profile.c: Moved to...
24586 * ipa-profile.cc: ...here.
24587 * ipa-prop.c: Moved to...
24588 * ipa-prop.cc: ...here.
24589 * ipa-pure-const.c: Moved to...
24590 * ipa-pure-const.cc: ...here.
24591 * ipa-ref.c: Moved to...
24592 * ipa-ref.cc: ...here.
24593 * ipa-reference.c: Moved to...
24594 * ipa-reference.cc: ...here.
24595 * ipa-split.c: Moved to...
24596 * ipa-split.cc: ...here.
24597 * ipa-sra.c: Moved to...
24598 * ipa-sra.cc: ...here.
24599 * ipa-utils.c: Moved to...
24600 * ipa-utils.cc: ...here.
24601 * ipa-visibility.c: Moved to...
24602 * ipa-visibility.cc: ...here.
24603 * ipa.c: Moved to...
24605 * ira-build.c: Moved to...
24606 * ira-build.cc: ...here.
24607 * ira-color.c: Moved to...
24608 * ira-color.cc: ...here.
24609 * ira-conflicts.c: Moved to...
24610 * ira-conflicts.cc: ...here.
24611 * ira-costs.c: Moved to...
24612 * ira-costs.cc: ...here.
24613 * ira-emit.c: Moved to...
24614 * ira-emit.cc: ...here.
24615 * ira-lives.c: Moved to...
24616 * ira-lives.cc: ...here.
24617 * ira.c: Moved to...
24619 * jump.c: Moved to...
24620 * jump.cc: ...here.
24621 * langhooks.c: Moved to...
24622 * langhooks.cc: ...here.
24623 * lcm.c: Moved to...
24625 * lists.c: Moved to...
24626 * lists.cc: ...here.
24627 * loop-doloop.c: Moved to...
24628 * loop-doloop.cc: ...here.
24629 * loop-init.c: Moved to...
24630 * loop-init.cc: ...here.
24631 * loop-invariant.c: Moved to...
24632 * loop-invariant.cc: ...here.
24633 * loop-iv.c: Moved to...
24634 * loop-iv.cc: ...here.
24635 * loop-unroll.c: Moved to...
24636 * loop-unroll.cc: ...here.
24637 * lower-subreg.c: Moved to...
24638 * lower-subreg.cc: ...here.
24639 * lra-assigns.c: Moved to...
24640 * lra-assigns.cc: ...here.
24641 * lra-coalesce.c: Moved to...
24642 * lra-coalesce.cc: ...here.
24643 * lra-constraints.c: Moved to...
24644 * lra-constraints.cc: ...here.
24645 * lra-eliminations.c: Moved to...
24646 * lra-eliminations.cc: ...here.
24647 * lra-lives.c: Moved to...
24648 * lra-lives.cc: ...here.
24649 * lra-remat.c: Moved to...
24650 * lra-remat.cc: ...here.
24651 * lra-spills.c: Moved to...
24652 * lra-spills.cc: ...here.
24653 * lra.c: Moved to...
24655 * lto-cgraph.c: Moved to...
24656 * lto-cgraph.cc: ...here.
24657 * lto-compress.c: Moved to...
24658 * lto-compress.cc: ...here.
24659 * lto-opts.c: Moved to...
24660 * lto-opts.cc: ...here.
24661 * lto-section-in.c: Moved to...
24662 * lto-section-in.cc: ...here.
24663 * lto-section-out.c: Moved to...
24664 * lto-section-out.cc: ...here.
24665 * lto-streamer-in.c: Moved to...
24666 * lto-streamer-in.cc: ...here.
24667 * lto-streamer-out.c: Moved to...
24668 * lto-streamer-out.cc: ...here.
24669 * lto-streamer.c: Moved to...
24670 * lto-streamer.cc: ...here.
24671 * lto-wrapper.c: Moved to...
24672 * lto-wrapper.cc: ...here.
24673 * main.c: Moved to...
24674 * main.cc: ...here.
24675 * mcf.c: Moved to...
24677 * mode-switching.c: Moved to...
24678 * mode-switching.cc: ...here.
24679 * modulo-sched.c: Moved to...
24680 * modulo-sched.cc: ...here.
24681 * multiple_target.c: Moved to...
24682 * multiple_target.cc: ...here.
24683 * omp-expand.c: Moved to...
24684 * omp-expand.cc: ...here.
24685 * omp-general.c: Moved to...
24686 * omp-general.cc: ...here.
24687 * omp-low.c: Moved to...
24688 * omp-low.cc: ...here.
24689 * omp-offload.c: Moved to...
24690 * omp-offload.cc: ...here.
24691 * omp-simd-clone.c: Moved to...
24692 * omp-simd-clone.cc: ...here.
24693 * opt-suggestions.c: Moved to...
24694 * opt-suggestions.cc: ...here.
24695 * optabs-libfuncs.c: Moved to...
24696 * optabs-libfuncs.cc: ...here.
24697 * optabs-query.c: Moved to...
24698 * optabs-query.cc: ...here.
24699 * optabs-tree.c: Moved to...
24700 * optabs-tree.cc: ...here.
24701 * optabs.c: Moved to...
24702 * optabs.cc: ...here.
24703 * opts-common.c: Moved to...
24704 * opts-common.cc: ...here.
24705 * opts-global.c: Moved to...
24706 * opts-global.cc: ...here.
24707 * opts.c: Moved to...
24708 * opts.cc: ...here.
24709 * passes.c: Moved to...
24710 * passes.cc: ...here.
24711 * plugin.c: Moved to...
24712 * plugin.cc: ...here.
24713 * postreload-gcse.c: Moved to...
24714 * postreload-gcse.cc: ...here.
24715 * postreload.c: Moved to...
24716 * postreload.cc: ...here.
24717 * predict.c: Moved to...
24718 * predict.cc: ...here.
24719 * prefix.c: Moved to...
24720 * prefix.cc: ...here.
24721 * pretty-print.c: Moved to...
24722 * pretty-print.cc: ...here.
24723 * print-rtl-function.c: Moved to...
24724 * print-rtl-function.cc: ...here.
24725 * print-rtl.c: Moved to...
24726 * print-rtl.cc: ...here.
24727 * print-tree.c: Moved to...
24728 * print-tree.cc: ...here.
24729 * profile-count.c: Moved to...
24730 * profile-count.cc: ...here.
24731 * profile.c: Moved to...
24732 * profile.cc: ...here.
24733 * read-md.c: Moved to...
24734 * read-md.cc: ...here.
24735 * read-rtl-function.c: Moved to...
24736 * read-rtl-function.cc: ...here.
24737 * read-rtl.c: Moved to...
24738 * read-rtl.cc: ...here.
24739 * real.c: Moved to...
24740 * real.cc: ...here.
24741 * realmpfr.c: Moved to...
24742 * realmpfr.cc: ...here.
24743 * recog.c: Moved to...
24744 * recog.cc: ...here.
24745 * ree.c: Moved to...
24747 * reg-stack.c: Moved to...
24748 * reg-stack.cc: ...here.
24749 * regcprop.c: Moved to...
24750 * regcprop.cc: ...here.
24751 * reginfo.c: Moved to...
24752 * reginfo.cc: ...here.
24753 * regrename.c: Moved to...
24754 * regrename.cc: ...here.
24755 * regstat.c: Moved to...
24756 * regstat.cc: ...here.
24757 * reload.c: Moved to...
24758 * reload.cc: ...here.
24759 * reload1.c: Moved to...
24760 * reload1.cc: ...here.
24761 * reorg.c: Moved to...
24762 * reorg.cc: ...here.
24763 * resource.c: Moved to...
24764 * resource.cc: ...here.
24765 * rtl-error.c: Moved to...
24766 * rtl-error.cc: ...here.
24767 * rtl-tests.c: Moved to...
24768 * rtl-tests.cc: ...here.
24769 * rtl.c: Moved to...
24771 * rtlanal.c: Moved to...
24772 * rtlanal.cc: ...here.
24773 * rtlhash.c: Moved to...
24774 * rtlhash.cc: ...here.
24775 * rtlhooks.c: Moved to...
24776 * rtlhooks.cc: ...here.
24777 * rtx-vector-builder.c: Moved to...
24778 * rtx-vector-builder.cc: ...here.
24779 * run-rtl-passes.c: Moved to...
24780 * run-rtl-passes.cc: ...here.
24781 * sancov.c: Moved to...
24782 * sancov.cc: ...here.
24783 * sanopt.c: Moved to...
24784 * sanopt.cc: ...here.
24785 * sbitmap.c: Moved to...
24786 * sbitmap.cc: ...here.
24787 * sched-deps.c: Moved to...
24788 * sched-deps.cc: ...here.
24789 * sched-ebb.c: Moved to...
24790 * sched-ebb.cc: ...here.
24791 * sched-rgn.c: Moved to...
24792 * sched-rgn.cc: ...here.
24793 * sel-sched-dump.c: Moved to...
24794 * sel-sched-dump.cc: ...here.
24795 * sel-sched-ir.c: Moved to...
24796 * sel-sched-ir.cc: ...here.
24797 * sel-sched.c: Moved to...
24798 * sel-sched.cc: ...here.
24799 * selftest-diagnostic.c: Moved to...
24800 * selftest-diagnostic.cc: ...here.
24801 * selftest-rtl.c: Moved to...
24802 * selftest-rtl.cc: ...here.
24803 * selftest-run-tests.c: Moved to...
24804 * selftest-run-tests.cc: ...here.
24805 * selftest.c: Moved to...
24806 * selftest.cc: ...here.
24807 * sese.c: Moved to...
24808 * sese.cc: ...here.
24809 * shrink-wrap.c: Moved to...
24810 * shrink-wrap.cc: ...here.
24811 * simplify-rtx.c: Moved to...
24812 * simplify-rtx.cc: ...here.
24813 * sparseset.c: Moved to...
24814 * sparseset.cc: ...here.
24815 * spellcheck-tree.c: Moved to...
24816 * spellcheck-tree.cc: ...here.
24817 * spellcheck.c: Moved to...
24818 * spellcheck.cc: ...here.
24819 * sreal.c: Moved to...
24820 * sreal.cc: ...here.
24821 * stack-ptr-mod.c: Moved to...
24822 * stack-ptr-mod.cc: ...here.
24823 * statistics.c: Moved to...
24824 * statistics.cc: ...here.
24825 * stmt.c: Moved to...
24826 * stmt.cc: ...here.
24827 * stor-layout.c: Moved to...
24828 * stor-layout.cc: ...here.
24829 * store-motion.c: Moved to...
24830 * store-motion.cc: ...here.
24831 * streamer-hooks.c: Moved to...
24832 * streamer-hooks.cc: ...here.
24833 * stringpool.c: Moved to...
24834 * stringpool.cc: ...here.
24835 * substring-locations.c: Moved to...
24836 * substring-locations.cc: ...here.
24837 * symtab.c: Moved to...
24838 * symtab.cc: ...here.
24839 * target-globals.c: Moved to...
24840 * target-globals.cc: ...here.
24841 * targhooks.c: Moved to...
24842 * targhooks.cc: ...here.
24843 * timevar.c: Moved to...
24844 * timevar.cc: ...here.
24845 * toplev.c: Moved to...
24846 * toplev.cc: ...here.
24847 * tracer.c: Moved to...
24848 * tracer.cc: ...here.
24849 * trans-mem.c: Moved to...
24850 * trans-mem.cc: ...here.
24851 * tree-affine.c: Moved to...
24852 * tree-affine.cc: ...here.
24853 * tree-call-cdce.c: Moved to...
24854 * tree-call-cdce.cc: ...here.
24855 * tree-cfg.c: Moved to...
24856 * tree-cfg.cc: ...here.
24857 * tree-cfgcleanup.c: Moved to...
24858 * tree-cfgcleanup.cc: ...here.
24859 * tree-chrec.c: Moved to...
24860 * tree-chrec.cc: ...here.
24861 * tree-complex.c: Moved to...
24862 * tree-complex.cc: ...here.
24863 * tree-data-ref.c: Moved to...
24864 * tree-data-ref.cc: ...here.
24865 * tree-dfa.c: Moved to...
24866 * tree-dfa.cc: ...here.
24867 * tree-diagnostic.c: Moved to...
24868 * tree-diagnostic.cc: ...here.
24869 * tree-dump.c: Moved to...
24870 * tree-dump.cc: ...here.
24871 * tree-eh.c: Moved to...
24872 * tree-eh.cc: ...here.
24873 * tree-emutls.c: Moved to...
24874 * tree-emutls.cc: ...here.
24875 * tree-if-conv.c: Moved to...
24876 * tree-if-conv.cc: ...here.
24877 * tree-inline.c: Moved to...
24878 * tree-inline.cc: ...here.
24879 * tree-into-ssa.c: Moved to...
24880 * tree-into-ssa.cc: ...here.
24881 * tree-iterator.c: Moved to...
24882 * tree-iterator.cc: ...here.
24883 * tree-loop-distribution.c: Moved to...
24884 * tree-loop-distribution.cc: ...here.
24885 * tree-nested.c: Moved to...
24886 * tree-nested.cc: ...here.
24887 * tree-nrv.c: Moved to...
24888 * tree-nrv.cc: ...here.
24889 * tree-object-size.c: Moved to...
24890 * tree-object-size.cc: ...here.
24891 * tree-outof-ssa.c: Moved to...
24892 * tree-outof-ssa.cc: ...here.
24893 * tree-parloops.c: Moved to...
24894 * tree-parloops.cc: ...here.
24895 * tree-phinodes.c: Moved to...
24896 * tree-phinodes.cc: ...here.
24897 * tree-predcom.c: Moved to...
24898 * tree-predcom.cc: ...here.
24899 * tree-pretty-print.c: Moved to...
24900 * tree-pretty-print.cc: ...here.
24901 * tree-profile.c: Moved to...
24902 * tree-profile.cc: ...here.
24903 * tree-scalar-evolution.c: Moved to...
24904 * tree-scalar-evolution.cc: ...here.
24905 * tree-sra.c: Moved to...
24906 * tree-sra.cc: ...here.
24907 * tree-ssa-address.c: Moved to...
24908 * tree-ssa-address.cc: ...here.
24909 * tree-ssa-alias.c: Moved to...
24910 * tree-ssa-alias.cc: ...here.
24911 * tree-ssa-ccp.c: Moved to...
24912 * tree-ssa-ccp.cc: ...here.
24913 * tree-ssa-coalesce.c: Moved to...
24914 * tree-ssa-coalesce.cc: ...here.
24915 * tree-ssa-copy.c: Moved to...
24916 * tree-ssa-copy.cc: ...here.
24917 * tree-ssa-dce.c: Moved to...
24918 * tree-ssa-dce.cc: ...here.
24919 * tree-ssa-dom.c: Moved to...
24920 * tree-ssa-dom.cc: ...here.
24921 * tree-ssa-dse.c: Moved to...
24922 * tree-ssa-dse.cc: ...here.
24923 * tree-ssa-forwprop.c: Moved to...
24924 * tree-ssa-forwprop.cc: ...here.
24925 * tree-ssa-ifcombine.c: Moved to...
24926 * tree-ssa-ifcombine.cc: ...here.
24927 * tree-ssa-live.c: Moved to...
24928 * tree-ssa-live.cc: ...here.
24929 * tree-ssa-loop-ch.c: Moved to...
24930 * tree-ssa-loop-ch.cc: ...here.
24931 * tree-ssa-loop-im.c: Moved to...
24932 * tree-ssa-loop-im.cc: ...here.
24933 * tree-ssa-loop-ivcanon.c: Moved to...
24934 * tree-ssa-loop-ivcanon.cc: ...here.
24935 * tree-ssa-loop-ivopts.c: Moved to...
24936 * tree-ssa-loop-ivopts.cc: ...here.
24937 * tree-ssa-loop-manip.c: Moved to...
24938 * tree-ssa-loop-manip.cc: ...here.
24939 * tree-ssa-loop-niter.c: Moved to...
24940 * tree-ssa-loop-niter.cc: ...here.
24941 * tree-ssa-loop-prefetch.c: Moved to...
24942 * tree-ssa-loop-prefetch.cc: ...here.
24943 * tree-ssa-loop-split.c: Moved to...
24944 * tree-ssa-loop-split.cc: ...here.
24945 * tree-ssa-loop-unswitch.c: Moved to...
24946 * tree-ssa-loop-unswitch.cc: ...here.
24947 * tree-ssa-loop.c: Moved to...
24948 * tree-ssa-loop.cc: ...here.
24949 * tree-ssa-math-opts.c: Moved to...
24950 * tree-ssa-math-opts.cc: ...here.
24951 * tree-ssa-operands.c: Moved to...
24952 * tree-ssa-operands.cc: ...here.
24953 * tree-ssa-phiopt.c: Moved to...
24954 * tree-ssa-phiopt.cc: ...here.
24955 * tree-ssa-phiprop.c: Moved to...
24956 * tree-ssa-phiprop.cc: ...here.
24957 * tree-ssa-pre.c: Moved to...
24958 * tree-ssa-pre.cc: ...here.
24959 * tree-ssa-propagate.c: Moved to...
24960 * tree-ssa-propagate.cc: ...here.
24961 * tree-ssa-reassoc.c: Moved to...
24962 * tree-ssa-reassoc.cc: ...here.
24963 * tree-ssa-sccvn.c: Moved to...
24964 * tree-ssa-sccvn.cc: ...here.
24965 * tree-ssa-scopedtables.c: Moved to...
24966 * tree-ssa-scopedtables.cc: ...here.
24967 * tree-ssa-sink.c: Moved to...
24968 * tree-ssa-sink.cc: ...here.
24969 * tree-ssa-strlen.c: Moved to...
24970 * tree-ssa-strlen.cc: ...here.
24971 * tree-ssa-structalias.c: Moved to...
24972 * tree-ssa-structalias.cc: ...here.
24973 * tree-ssa-tail-merge.c: Moved to...
24974 * tree-ssa-tail-merge.cc: ...here.
24975 * tree-ssa-ter.c: Moved to...
24976 * tree-ssa-ter.cc: ...here.
24977 * tree-ssa-threadbackward.c: Moved to...
24978 * tree-ssa-threadbackward.cc: ...here.
24979 * tree-ssa-threadedge.c: Moved to...
24980 * tree-ssa-threadedge.cc: ...here.
24981 * tree-ssa-threadupdate.c: Moved to...
24982 * tree-ssa-threadupdate.cc: ...here.
24983 * tree-ssa-uncprop.c: Moved to...
24984 * tree-ssa-uncprop.cc: ...here.
24985 * tree-ssa-uninit.c: Moved to...
24986 * tree-ssa-uninit.cc: ...here.
24987 * tree-ssa.c: Moved to...
24988 * tree-ssa.cc: ...here.
24989 * tree-ssanames.c: Moved to...
24990 * tree-ssanames.cc: ...here.
24991 * tree-stdarg.c: Moved to...
24992 * tree-stdarg.cc: ...here.
24993 * tree-streamer-in.c: Moved to...
24994 * tree-streamer-in.cc: ...here.
24995 * tree-streamer-out.c: Moved to...
24996 * tree-streamer-out.cc: ...here.
24997 * tree-streamer.c: Moved to...
24998 * tree-streamer.cc: ...here.
24999 * tree-switch-conversion.c: Moved to...
25000 * tree-switch-conversion.cc: ...here.
25001 * tree-tailcall.c: Moved to...
25002 * tree-tailcall.cc: ...here.
25003 * tree-vect-data-refs.c: Moved to...
25004 * tree-vect-data-refs.cc: ...here.
25005 * tree-vect-generic.c: Moved to...
25006 * tree-vect-generic.cc: ...here.
25007 * tree-vect-loop-manip.c: Moved to...
25008 * tree-vect-loop-manip.cc: ...here.
25009 * tree-vect-loop.c: Moved to...
25010 * tree-vect-loop.cc: ...here.
25011 * tree-vect-patterns.c: Moved to...
25012 * tree-vect-patterns.cc: ...here.
25013 * tree-vect-slp-patterns.c: Moved to...
25014 * tree-vect-slp-patterns.cc: ...here.
25015 * tree-vect-slp.c: Moved to...
25016 * tree-vect-slp.cc: ...here.
25017 * tree-vect-stmts.c: Moved to...
25018 * tree-vect-stmts.cc: ...here.
25019 * tree-vector-builder.c: Moved to...
25020 * tree-vector-builder.cc: ...here.
25021 * tree-vectorizer.c: Moved to...
25022 * tree-vectorizer.cc: ...here.
25023 * tree-vrp.c: Moved to...
25024 * tree-vrp.cc: ...here.
25025 * tree.c: Moved to...
25026 * tree.cc: ...here.
25027 * tsan.c: Moved to...
25028 * tsan.cc: ...here.
25029 * typed-splay-tree.c: Moved to...
25030 * typed-splay-tree.cc: ...here.
25031 * ubsan.c: Moved to...
25032 * ubsan.cc: ...here.
25033 * valtrack.c: Moved to...
25034 * valtrack.cc: ...here.
25035 * value-prof.c: Moved to...
25036 * value-prof.cc: ...here.
25037 * var-tracking.c: Moved to...
25038 * var-tracking.cc: ...here.
25039 * varasm.c: Moved to...
25040 * varasm.cc: ...here.
25041 * varpool.c: Moved to...
25042 * varpool.cc: ...here.
25043 * vec-perm-indices.c: Moved to...
25044 * vec-perm-indices.cc: ...here.
25045 * vec.c: Moved to...
25047 * vmsdbgout.c: Moved to...
25048 * vmsdbgout.cc: ...here.
25049 * vr-values.c: Moved to...
25050 * vr-values.cc: ...here.
25051 * vtable-verify.c: Moved to...
25052 * vtable-verify.cc: ...here.
25053 * web.c: Moved to...
25055 * xcoffout.c: Moved to...
25056 * xcoffout.cc: ...here.
25058 2022-01-17 qing zhao <qing.zhao@oracle.com>
25060 * tree-ssa-uninit.c (warn_uninit): Delete the 4th parameter. Handle
25061 .DEFERRED_INIT call with an anonymous SSA_NAME specially.
25062 (check_defs): Handle .DEFERRED_INIT call with an anonymous SSA_NAME
25064 (warn_uninit_phi_uses): Delete the 4th actual when call warn_uninit.
25065 (warn_uninitialized_vars): Likewise.
25066 (warn_uninitialized_phi): Likewise.
25068 2022-01-17 Jason Merrill <jason@redhat.com>
25070 * diagnostic.h (struct diagnostic_context): Add includes_seen.
25071 * diagnostic.c (diagnostic_initialize): Initialize it.
25072 (diagnostic_finish): Clean it up.
25073 (includes_seen): New function.
25074 (diagnostic_report_current_module): Use it.
25076 2022-01-17 Richard Biener <rguenther@suse.de>
25078 PR middle-end/101292
25079 * diagnostic-spec.c (copy_warning): Make sure to not
25080 reference old hashtable content on possible resize.
25081 * warning-control.cc (copy_warning): Likewise.
25083 2022-01-17 Jakub Jelinek <jakub@redhat.com>
25086 * tree-cfg.h (cond_only_block_p): Declare.
25087 * tree-ssa-phiopt.c (cond_only_block_p): Move function to ...
25088 * tree-cfg.c (cond_only_block_p): ... here. No longer static.
25089 * optabs.def (spaceship_optab): New optab.
25090 * internal-fn.def (SPACESHIP): New internal function.
25091 * internal-fn.h (expand_SPACESHIP): Declare.
25092 * internal-fn.c (expand_PHI): Formatting fix.
25093 (expand_SPACESHIP): New function.
25094 * tree-ssa-math-opts.c (optimize_spaceship): New function.
25095 (math_opts_dom_walker::after_dom_children): Use it.
25096 * config/i386/i386.md (spaceship<mode>3): New define_expand.
25097 * config/i386/i386-protos.h (ix86_expand_fp_spaceship): Declare.
25098 * config/i386/i386-expand.c (ix86_expand_fp_spaceship): New function.
25099 * doc/md.texi (spaceship@var{m}3): Document.
25101 2022-01-17 Kewen Lin <linkw@linux.ibm.com>
25103 * config/rs6000/altivec.md (altivec_vreveti2): Remove.
25104 * config/rs6000/vsx.md (*vsx_extract_si, *vsx_extract_si_<uns>float_df,
25105 *vsx_extract_si_<uns>float_<mode>, *vsx_insert_extract_v4sf_p9): Use
25106 known constant values to simplify code.
25108 2022-01-17 Haochen Gui <guihaoc@gcc.gnu.org>
25111 * config/rs6000/vsx.md (split pattern for TI to V1TI move): Defined.
25113 2022-01-16 wwwhhhyyy <hongyu.wang@intel.com>
25115 * config/i386/i386.h (TARGET_DEST_FALSE_DEP_FOR_GLC): New macro.
25116 * config/i386/sse.md (<avx512>_<complexopname>_<mode><maskc_name><round_name>):
25117 Insert zero-idiom in output template when attr enabled, set new attribute to
25118 true for non-mask/maskz insn.
25119 (avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>):
25121 (avx512dq_mul<mode>3<mask_name>): Likewise.
25122 (<avx2_avx512>_permvar<mode><mask_name>): Likewise.
25123 (avx2_perm<mode>_1<mask_name>): Likewise.
25124 (avx512f_perm<mode>_1<mask_name>): Likewise.
25125 (avx512dq_rangep<mode><mask_name><round_saeonly_name>): Likewise.
25126 (avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>):
25128 (<avx512>_getmant<mode><mask_name><round_saeonly_name>): Likewise.
25129 (avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
25131 * config/i386/subst.md (mask3_dest_false_dep_for_glc_cond): New
25133 (mask4_dest_false_dep_for_glc_cond): Likewise.
25134 (mask6_dest_false_dep_for_glc_cond): Likewise.
25135 (mask10_dest_false_dep_for_glc_cond): Likewise.
25136 (maskc_dest_false_dep_for_glc_cond): Likewise.
25137 (mask_scalar4_dest_false_dep_for_glc_cond): Likewise.
25138 (mask_scalarc_dest_false_dep_for_glc_cond): Likewise.
25139 * config/i386/x86-tune.def (X86_TUNE_DEST_FALSE_DEP_FOR_GLC): New
25140 DEF_TUNE enabled for m_SAPPHIRERAPIDS and m_ALDERLAKE
25142 2022-01-15 Martin Sebor <msebor@redhat.com>
25145 * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
25146 -Wdangling-pointer.
25147 * doc/invoke.texi (-Wdangling-pointer): Document new option.
25148 * gimple-ssa-warn-access.cc (pass_waccess::clone): Set new member.
25149 (pass_waccess::check_pointer_uses): New function.
25150 (pass_waccess::gimple_call_return_arg): New function.
25151 (pass_waccess::gimple_call_return_arg_ref): New function.
25152 (pass_waccess::check_call_dangling): New function.
25153 (pass_waccess::check_dangling_uses): New function overloads.
25154 (pass_waccess::check_dangling_stores): New function.
25155 (pass_waccess::check_dangling_stores): New function.
25156 (pass_waccess::m_clobbers): New data member.
25157 (pass_waccess::m_func): New data member.
25158 (pass_waccess::m_run_number): New data member.
25159 (pass_waccess::m_check_dangling_p): New data member.
25160 (pass_waccess::check_alloca): Check m_early_checks_p.
25161 (pass_waccess::check_alloc_size_call): Same.
25162 (pass_waccess::check_strcat): Same.
25163 (pass_waccess::check_strncat): Same.
25164 (pass_waccess::check_stxcpy): Same.
25165 (pass_waccess::check_stxncpy): Same.
25166 (pass_waccess::check_strncmp): Same.
25167 (pass_waccess::check_memop_access): Same.
25168 (pass_waccess::check_read_access): Same.
25169 (pass_waccess::check_builtin): Call check_pointer_uses.
25170 (pass_waccess::warn_invalid_pointer): Add arguments.
25171 (is_auto_decl): New function.
25172 (pass_waccess::check_stmt): New function.
25173 (pass_waccess::check_block): Call check_stmt.
25174 (pass_waccess::execute): Call check_dangling_uses,
25175 check_dangling_stores. Empty m_clobbers.
25176 * passes.def (pass_warn_access): Invoke pass two more times.
25178 2022-01-15 Martin Sebor <msebor@redhat.com>
25180 PR tree-optimization/80532
25181 * common.opt (-Wuse-after-free): New options.
25182 * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
25183 OPT_Wreturn_local_addr and OPT_Wuse_after_free_.
25184 * diagnostic-spec.h (NW_DANGLING): New enumerator.
25185 * doc/invoke.texi (-Wuse-after-free): Document new option.
25186 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Rename...
25187 (pass_waccess::check_call_access): ...to this.
25188 (pass_waccess::check): Rename...
25189 (pass_waccess::check_block): ...to this.
25190 (pass_waccess::check_pointer_uses): New function.
25191 (pass_waccess::gimple_call_return_arg): New function.
25192 (pass_waccess::warn_invalid_pointer): New function.
25193 (pass_waccess::check_builtin): Handle free and realloc.
25194 (gimple_use_after_inval_p): New function.
25195 (get_realloc_lhs): New function.
25196 (maybe_warn_mismatched_realloc): New function.
25197 (pointers_related_p): New function.
25198 (pass_waccess::check_call): Call check_pointer_uses.
25199 (pass_waccess::execute): Compute and free dominance info.
25201 2022-01-15 Uroš Bizjak <ubizjak@gmail.com>
25203 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
25204 expand_simple_unop and expand_simple_binop instead of manually
25205 constructing NOT, AND and IOR RTXes. Use vector_all_ones_operand
25206 consistently. Eliminate common subexpressions and simplify code.
25207 * config/i386/sse.md (<any_logic:code><MODEF:mode>3): New expander.
25208 (<any_logic:code><MODEF:mode>3): Make public.
25210 2022-01-14 Eric Botcazou <ebotcazou@adacore.com>
25212 * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Dump
25213 reverse flag as "reverse" for the sake of consistency.
25214 * ipa-sra.c: Fix copyright year.
25215 (ipa_sra_function_summaries::duplicate): Copy the reverse flag.
25216 (dump_isra_access): Tweak dump line.
25217 (isra_write_node_summary): Write the reverse flag.
25218 (isra_read_node_info): Read it.
25219 (pull_accesses_from_callee): Test its consistency and copy it.
25221 2022-01-14 Richard Sandiford <richard.sandiford@arm.com>
25223 PR middle-end/104026
25224 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
25225 partial_load_store_bias.
25227 2022-01-14 Martin Sebor <msebor@redhat.com>
25229 PR middle-end/101475
25230 * pointer-query.cc (handle_component_ref): Use the size of
25231 the enclosing object if it's smaller than the member.
25233 2022-01-14 Martin Liska <mliska@suse.cz>
25235 * configure: Regenerate.
25237 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
25239 * config/i386/i386.md (*add<mode>_1_slp"):
25240 Mark alternative 1 output operand earlyclobbered.
25241 (*sub<mode>_1_slp): Ditto.
25242 (*and<mode>_1_slp): Ditto.
25243 (*<code><mode>_1_slp): Ditto.
25244 (*neg<mode>_1_slp): Ditto.
25245 (*one_cmpl<mode>_1_slp): Ditto.
25246 (*ashl<mode>3_1_slp): Ditto.
25247 (*<insn><mode>3_1_slp): Ditto.
25248 (*<insn><mode>3_1_slp): Ditto.
25250 2022-01-14 Kewen Lin <linkw@linux.ibm.com>
25252 PR tree-optimization/104015
25253 * tree-vect-loop.c (vect_analyze_loop): Check
25254 param_vect_partial_vector_usage for supports_partial_vectors.
25256 2022-01-14 Jakub Jelinek <jakub@redhat.com>
25259 * fold-const.c (address_compare): Punt on comparison of address of
25260 one object with address of end of another object if
25261 folding_initializer.
25263 2022-01-14 Jakub Jelinek <jakub@redhat.com>
25266 * tree-ssa-forwprop.c (simplify_builtin_call): Canonicalize
25267 __atomic_fetch_op (p, x, y) op x into __atomic_op_fetch (p, x, y)
25268 and __atomic_op_fetch (p, x, y) iop x into
25269 __atomic_fetch_op (p, x, y).
25271 2022-01-14 Claudiu Zissulescu <claziss@synopsys.com>
25273 * config/arc/arc.h (DWARF_FRAME_REGNUM): Update definition.
25274 (DWARF_FRAME_RETURN_COLUMN): Use RETURN_ADDR_REGNUM macro.
25275 (INCOMING_RETURN_ADDR_RTX): Likewise.
25276 (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
25278 2022-01-14 Claudiu Zissulescu <claziss@synopsys.com>
25280 * config/arc/arc.c (arc_compute_frame_size): Remove condition when
25281 computin checking accumulator regs.
25282 (arc_expand_prologue): Update comments.
25283 (arc_expand_epilogue): Likewise.
25285 2022-01-14 Roger Sayle <roger@nextmovesoftware.com>
25286 Uroš Bizjak <ubizjak@gmail.com>
25288 * config/i386/i386-expand.c (ix86_expand_v1ti_to_ti): Use force_reg.
25289 (ix86_expand_ti_to_v1ti): Use force_reg.
25290 (ix86_expand_v1ti_shift): Use force_reg.
25291 (ix86_expand_v1ti_rotate): Use force_reg.
25292 (ix86_expand_v1ti_ashiftrt): Provide new three operation
25293 implementations for shifts by 111..126 bits. Use force_reg.
25295 2022-01-14 Martin Liska <mliska@suse.cz>
25297 * common/config/arm/arm-common.c (arm_target_mode): Fix
25298 warning: unterminated quoting directive [-Wformat=].
25300 2022-01-14 Siddhesh Poyarekar <siddhesh@gotplt.org>
25302 PR tree-optimization/104009
25303 * tree-object-size.c (compute_builtin_object_size): Bail out on
25305 (plus_stmt_object_size): Return maximum of wholesize and minimum
25306 of 0 for negative offset.
25308 2022-01-14 liuhongt <hongtao.liu@intel.com>
25313 * config/i386/i386.md (*xor2andn): Refine predicate of
25314 operands[0] from nonimmediate_operand to
25315 register_operand, remove TARGET_AVX512BW from condition.
25317 2022-01-14 David Malcolm <dmalcolm@redhat.com>
25319 * doc/extend.texi (Function Attributes): Note that "tainted_args" can
25320 be used on field decls.
25321 (Common Function Attributes): Add entry on "tainted_args" attribute.
25323 2022-01-13 Anthony Sharp <anthonysharp15@gmail.com>
25324 Jason Merrill <jason@redhat.com>
25327 * doc/invoke.texi: Documentation for Wmissing-template-keyword.
25329 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
25332 * config/i386/i386.md (*ashlqi_ext<mode>_2): New insn pattern.
25333 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
25334 * config/i386/mmx.md (<any_shift:insn>v2qi):
25335 New insn_and_split pattern.
25337 2022-01-13 Robin Dapp <rdapp@linux.ibm.com>
25339 * internal-fn.c (expand_partial_load_optab_fn): Add bias.
25340 (expand_partial_store_optab_fn): Likewise.
25341 (internal_len_load_store_bias): New function.
25342 * internal-fn.h (VECT_PARTIAL_BIAS_UNSUPPORTED): New define.
25343 (internal_len_load_store_bias): New function.
25344 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Set bias.
25345 (vect_set_loop_condition_partial_vectors): Add header_seq parameter.
25346 * tree-vect-loop.c (vect_verify_loop_lens): Verify bias.
25347 (vect_estimate_min_profitable_iters): Account for bias.
25348 (vect_get_loop_len): Add bias-adjusted length.
25349 * tree-vect-stmts.c (vectorizable_store): Use.
25350 (vectorizable_load): Use.
25351 * tree-vectorizer.h (struct rgroup_controls): Add bias-adjusted length.
25352 (LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS): New macro.
25353 * config/rs6000/vsx.md: Use const0 bias predicate.
25354 * doc/md.texi: Document bias value.
25356 2022-01-13 Andrew MacLeod <amacleod@redhat.com>
25358 PR tree-optimization/83072
25359 PR tree-optimization/83073
25360 PR tree-optimization/97909
25361 * fold-const.c (expr_not_equal_to): Use a multi-range class.
25363 2022-01-13 Andrew MacLeod <amacleod@redhat.com>
25365 PR tree-optimization/96707
25366 * range-op.cc (operator_rshift::lhs_op1_relation): New.
25368 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
25370 * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
25371 Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
25372 (negv2qi splitters): Use lowpart_subreg instead of
25373 gen_lowpart to create subreg.
25374 (<plusminus:insn>v2qi3): Disparage GPR alternative a bit.
25375 Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
25376 (<plusminus:insn>v2qi3 splitters): Use lowpart_subreg instead of
25377 gen_lowpart to create subreg.
25378 * config/i386/i386.md (*subqi_ext<mode>_2): Move.
25380 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
25383 * config/i386/mmx.md (*xop_pcmov_<mode>): Use VI_16_32 mode iterator.
25385 2022-01-13 Martin Liska <mliska@suse.cz>
25387 * common/config/arm/arm-common.c (arm_target_mode): Wrap
25388 keywords with %<, %> and remove trailing punctuation char.
25389 (arm_canon_arch_option_1): Likewise.
25390 (arm_asm_auto_mfpu): Likewise.
25391 * config/arm/arm-builtins.c (arm_expand_builtin): Likewise.
25392 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Likewise.
25393 (use_vfp_abi): Likewise.
25394 (aapcs_vfp_is_call_or_return_candidate): Likewise.
25395 (arm_handle_cmse_nonsecure_entry): Likewise.
25396 (arm_handle_cmse_nonsecure_call): Likewise.
25397 (thumb1_md_asm_adjust): Likewise.
25399 2022-01-13 Paul A. Clarke <pc@us.ibm.com>
25401 * config/rs6000/smmintrin.h (_mm_round_pd, _mm_round_ps,
25402 _mm_round_sd, _mm_round_ss, _MM_FROUND_TO_NEAREST_INT,
25403 _MM_FROUND_TO_ZERO, _MM_FROUND_TO_POS_INF, _MM_FROUND_TO_NEG_INF,
25404 _MM_FROUND_CUR_DIRECTION, _MM_FROUND_RAISE_EXC, _MM_FROUND_NO_EXC,
25405 _MM_FROUND_NINT, _MM_FROUND_FLOOR, _MM_FROUND_CEIL, _MM_FROUND_TRUNC,
25406 _MM_FROUND_RINT, _MM_FROUND_NEARBYINT): New.
25407 (_mm_ceil_pd, _mm_ceil_ps, _mm_ceil_sd, _mm_ceil_ss, _mm_floor_pd,
25408 _mm_floor_ps, _mm_floor_sd, _mm_floor_ss): Convert from function to
25411 2022-01-13 Jakub Jelinek <jakub@redhat.com>
25413 PR tree-optimization/103989
25414 * tree-inline.c (setup_one_parameter): Don't copy parms with
25417 2022-01-13 Thomas Schwinge <thomas@codesourcery.com>
25419 * tree-streamer-out.c (pack_ts_base_value_fields): Don't pack
25420 'TYPE_ADDR_SPACE' for offloading.
25421 * tree-streamer-in.c (unpack_ts_base_value_fields): Don't unpack
25422 'TYPE_ADDR_SPACE' for offloading.
25424 2022-01-13 Julian Brown <julian@codesourcery.com>
25425 Thomas Schwinge <thomas@codesourcery.com>
25427 * omp-oacc-kernels-decompose.cc (add_wait): New function, split out
25429 (add_async_clauses_and_wait): ...here. Call new outlined function.
25430 (decompose_kernels_region_body): Add wait at the end of
25431 explicitly-asynchronous kernels regions.
25433 2022-01-13 Thomas Schwinge <thomas@codesourcery.com>
25435 PR middle-end/100280
25436 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
25437 Mark variables used in synthesized data clauses as addressable.
25439 2022-01-13 Martin Liska <mliska@suse.cz>
25441 * config/epiphany/epiphany.c (epiphany_mode_priority):
25442 Use gcc_unreachable for not handled cases.
25444 2022-01-13 Martin Liska <mliska@suse.cz>
25446 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
25447 Use %qs format specifier.
25448 (epiphany_override_options): Wrap keyword in %<, %>.
25450 2022-01-13 Haochen Jiang <haochen.jiang@intel.com>
25453 * config/i386/i386.md (*xor2andn): New define_insn_and_split.
25455 2022-01-13 Xionghu Luo <luoxhu@linux.ibm.com>
25457 * config/rs6000/altivec.md (sldoi_to_mov<mode>): New.
25459 2022-01-12 Uroš Bizjak <ubizjak@gmail.com>
25463 * config/i386/i386-expand.c (ix86_emit_vec_binop): New static function.
25464 (ix86_expand_sse_movcc): Use ix86_emit_vec_binop instead of gen_rtx_X
25465 when constructing vector logic RTXes.
25466 (expand_vec_perm_pshufb2): Ditto.
25467 * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
25468 (<plusminus:insn>v2qi3): Ditto.
25469 (vcond<mode><mode>): Re-enable for TARGET_SSE2.
25470 (vcondu<mode><mode>): Ditto.
25471 (vcond_mask_<mode><mode>): Ditto.
25472 (one_cmpl<VI_32:mode>2): Remove expander.
25473 (one_cmpl<VI_16_32:mode>2): Rename from one_cmplv2qi.
25474 Use VI_16_32 mode iterator.
25475 (one_cmpl<VI_16_32:mode>2 splitters): Use VI_16_32 mode iterator.
25476 Use lowpart_subreg instead of gen_lowpart to create subreg.
25477 (*andnot<VI_16_32:mode>3): Merge from "*andnot<VI_32:mode>" and
25478 "*andnotv2qi3" insn patterns using VI_16_32 mode iterator.
25479 Disparage GPR alternative a bit. Add CC clobber.
25480 (*andnot<VI_16_32:mode>3 splitters): Use VI_16_32 mode iterator.
25481 Use lowpart_subreg instead of gen_lowpart to create subreg.
25482 (*<any_logic:code><VI_16_32:mode>3): Merge from
25483 "*<any_logic:code><VI_32:mode>" and "*<any_logic:code>v2qi3" insn patterns
25484 using VI_16_32 mode iterator. Disparage GPR alternative a bit.
25486 (*<any_logic:code><VI_16_32:mode>3 splitters):Use VI_16_32 mode
25487 iterator. Use lowpart_subreg instead of gen_lowpart to create subreg.
25489 2022-01-12 Clément Chigot <clement.chigot@atos.net>
25491 * configure.ac: Check sizeof ino_t and dev_t.
25492 (HOST_STAT_FOR_64BIT_INODES): New AC_DEFINE to provide stat
25493 syscall being able to handle 64bit inodes.
25494 * config.in: Regenerate.
25495 * configure: Regenerate.
25496 * incpath.c (HOST_STAT_FOR_64BIT_INODES): New define.
25497 (remove_duplicates): Use it.
25499 2022-01-12 Andrew MacLeod <amacleod@redhat.com>
25501 PR tree-optimization/103551
25502 * tree-vrp.c (execute_ranger_vrp): Always set EDGE_EXECUTABLE.
25504 2022-01-12 Richard Biener <rguenther@suse.de>
25506 PR tree-optimization/103990
25507 * tree-pass.h (tail_merge_optimize): Drop unused argument.
25508 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
25509 * tree-ssa-pre.c (pass_pre::execute): Retain TODO_cleanup_cfg
25510 and adjust call to tail_merge_optimize.
25512 2022-01-12 Andre Vieira <andre.simoesdiasvieira@arm.com>
25514 * tree-vect-loop.c (vect-analyze-loop): Handle scenario where target
25515 does not add autovectorize_vector_modes.
25517 2022-01-12 Martin Liska <mliska@suse.cz>
25519 * config/aarch64/aarch64.c (aarch64_parse_boolean_options): Use
25520 %qs where possible.
25521 (aarch64_parse_sve_width_string): Likewise.
25522 (aarch64_override_options_internal): Likewise.
25523 (aarch64_print_hint_for_extensions): Likewise.
25524 (aarch64_validate_sls_mitigation): Likewise.
25525 (aarch64_handle_attr_arch): Likewise.
25526 (aarch64_handle_attr_cpu): Likewise.
25527 (aarch64_handle_attr_tune): Likewise.
25528 (aarch64_handle_attr_isa_flags): Likewise.
25530 2022-01-12 Martin Liska <mliska@suse.cz>
25532 * config.gcc: Include elfos.h before ${tm_file}.
25534 2022-01-12 Hans-Peter Nilsson <hp@axis.com>
25536 * config/cris/cris.c: Quote identifiers in parameters to error
25537 and internal_error, and remove extraneous spaces with punctuation.
25538 * config/cris/cris.h (CRIS_ASSERT): When passing on stringified
25539 expression to internal_error, pass it as a parameter instead of
25540 appending it to the format part.
25542 2022-01-12 Hans-Peter Nilsson <hp@axis.com>
25544 * config/cris/cris.c (cris_postdbr_cmpelim): Parenthesize
25547 2022-01-11 qing zhao <qing.zhao@oracle.com>
25549 * gimplify.c (gimple_add_init_for_auto_var): Delete the 3rd argument.
25550 Change the 3rd argument of function .DEFERRED_INIT to the name of the
25552 (gimplify_decl_expr): Delete the 3rd argument when call
25553 gimple_add_init_for_auto_var.
25554 * internal-fn.c (expand_DEFERRED_INIT): Update comments to reflect
25555 the 3rd argument change of function .DEFERRED_INIT.
25556 * tree-cfg.c (verify_gimple_call): Update comments and verification
25557 to reflect the 3rd argument change of function .DEFERRED_INIT.
25558 * tree-sra.c (generate_subtree_deferred_init): Delete the 3rd argument.
25559 (sra_modify_deferred_init): Change the 3rd argument of function
25560 .DEFERRED_INIT to the name of the decl.
25562 2022-01-11 Thomas Koenig <tkoenig@gcc.gnu.org>
25564 * flag-types.h (enum gfc_convert): Add flags for
25567 2022-01-11 Michael Meissner <meissner@the-meissners.org>
25569 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
25570 checks for only C/C++ front ends before allowing the long double
25571 format to change without a warning.
25573 2022-01-11 Richard Sandiford <richard.sandiford@arm.com>
25575 PR rtl-optimization/103974
25576 * ira-int.h (ira_subloop_allocnos_can_differ_p): Take an
25577 extra argument, default true, that says whether old-reload
25578 targets should be excluded.
25579 * ira-color.c (color_pass): Pass false.
25581 2022-01-11 Uroš Bizjak <ubizjak@gmail.com>
25584 * config/i386/mmx.md (vcond<mode><mode>):
25585 Use VI_16_32 mode iterator. Enable for TARGET_SSE4_1.
25586 (vcondu<mode><mode>): Ditto.
25587 (vcond_mask_<mode><mode>): Ditto.
25588 (mmx_pblendvb_v8qi): Rename from mmx_pblendvb64.
25589 (mmx_pblendvb_<mode>): Rename from mmx_pblendvb32.
25590 Use VI_16_32 mode iterator.
25591 * config/i386/i386-expand.c (ix86_expand_sse_movcc):
25592 Update for rename. Handle V2QImode.
25593 (expand_vec_perm_blend): Update for rename.
25595 2022-01-11 Jakub Jelinek <jakub@redhat.com>
25598 * tree.def (OBJ_TYPE_REF): Document type of OBJ_TYPE_REF_TOKEN.
25600 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
25602 PR middle-end/70090
25603 * tree-object-size.c (size_valid_p): New function.
25604 (size_for_offset): Remove OFFSET constness assertion.
25605 (addr_object_size): Build dynamic expressions for object
25606 sizes and use size_valid_p to decide if it is valid for the
25607 given OBJECT_SIZE_TYPE.
25608 (compute_builtin_object_size): Allow dynamic offsets when
25609 computing size at O0.
25610 (call_object_size): Call size_valid_p.
25611 (plus_stmt_object_size): Allow non-constant offset and use
25612 size_valid_p to decide if it is valid for the given
25615 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
25617 PR middle-end/70090
25618 * tree-object-size.c (alloc_object_size): Make and return
25619 non-constant size expression.
25620 (call_object_size): Return expression or unknown based on
25621 whether dynamic object size is requested.
25623 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
25625 PR middle-end/70090
25626 * tree-object-size.c: Include tree-dfa.h.
25627 (parm_object_size): New function.
25628 (collect_object_sizes_for): Call it.
25630 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
25632 PR middle-end/70090
25633 * builtins.c (fold_builtin_object_size): Adjust for dynamic size
25635 * tree-object-size.c: Include gimplify-me.h.
25636 (struct object_size_info): New member UNKNOWNS.
25637 (size_initval_p, size_usable_p, object_sizes_get_raw): New
25639 (object_sizes_get): Return suitable gimple variable for
25641 (bundle_sizes): New function.
25642 (object_sizes_set): Use it and handle dynamic object size
25644 (object_sizes_set_temp): New function.
25645 (size_for_offset): Adjust for dynamic size expressions.
25646 (emit_phi_nodes, propagate_unknowns, gimplify_size_expressions):
25648 (compute_builtin_object_size): Call gimplify_size_expressions
25650 (dynamic_object_size): New function.
25651 (cond_expr_object_size): Use it.
25652 (phi_dynamic_object_size): New function.
25653 (collect_object_sizes_for): Call it for OST_DYNAMIC. Adjust to
25654 accommodate dynamic object sizes.
25656 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
25657 Jakub Jelinek <jakub@redhat.com>
25659 PR tree-optimization/103961
25660 * tree-object-size.c (plus_stmt_object_size): Always avoid
25661 computing offset for -1 size.
25663 2022-01-11 Andrew MacLeod <amacleod@redhat.com>
25665 PR tree-optimization/103821
25666 * range-op.cc (range_operator::fold_range): Only do precise ranges
25667 when there are not too many subranges.
25669 2022-01-11 Richard Sandiford <richard.sandiford@arm.com>
25671 * ira-costs.c (ira_tune_allocno_costs): Fix missing rclass
25672 definition in IRA_HARD_REGNO_ADD_COST_MULTIPLIER code.
25674 2022-01-11 Roger Sayle <roger@nextmovesoftware.com>
25675 Richard Biener <rguenther@suse.de>
25677 * tree-ssa-math-opts.c (struct widen_mul_stats): Add a
25678 highpart_mults_inserted field.
25679 (convert_mult_to_highpart): New function to convert right shift
25680 of a widening multiply into a MULT_HIGHPART_EXPR.
25681 (math_opts_dom_walker::after_dom_children) [RSHIFT_EXPR]:
25682 Call new convert_mult_to_highpart function.
25683 (pass_optimize_widening_mul::execute): Add a statistics counter
25684 for tracking "highpart multiplications inserted" events.
25686 2022-01-11 Xionghu Luo <luoxhu@linux.ibm.com>
25689 * config/rs6000/rs6000-protos.h (rs6000_is_valid_rotate_dot_mask): New
25691 * config/rs6000/rs6000.c (rs6000_is_valid_rotate_dot_mask): New
25693 * config/rs6000/rs6000.md (*branch_anddi3_dot): New.
25695 2022-01-11 Olivier Hainque <hainque@adacore.com>
25697 * gcc.c (driver_handle_option): State --sysroot as
25700 2022-01-11 Kewen Lin <linkw@linux.ibm.com>
25702 * config/rs6000/rs6000.c (rs6000_disable_incompatible_switches): Remove
25703 useless related to option -mno-power10.
25705 2022-01-11 Haochen Jiang <haochen.jiang@intel.com>
25708 * config/i386/sse.md (*andnot<mode>3): Extend predicate of
25709 operands[1] from register_operand to vector_operand.
25711 2022-01-10 Uroš Bizjak <ubizjak@gmail.com>
25714 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
25716 * config/i386/mmx.md (<sat_plusminus:insn><mode>3):
25717 Use VI1_16_32 mode iterator.
25718 (*eq<mode>3): Ditto.
25719 (*gt<mode>3): Ditto.
25720 (*xop_maskcmp<mode>3): Ditto.
25721 (*xop_maskcmp_uns<mode>3): Ditto.
25722 (vec_cmp<mode><mode>): Ditto.
25723 (vec_cmpu<mode><mode>): Ditto.
25725 2022-01-10 Richard Biener <rguenther@suse.de>
25727 PR tree-optimization/103948
25728 * tree-vect-generic.c (expand_vector_condition): Return true if
25729 all ones vector is returned for true, all zeros vector for false
25730 and the target defines corresponding vec_cmp{,u}MN named RTX pattern.
25732 2022-01-10 Paul A. Clarke <pc@us.ibm.com>
25734 * config/rs6000/smmintrin.h (_mm_blendv_epi8): Use vec_blendv
25735 when _ARCH_PWR10. Use signed types.
25736 (_mm_blendv_ps): Use vec_blendv when _ARCH_PWR10.
25737 (_mm_blendv_pd): Likewise.
25739 2022-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
25741 * tree-vectorizer.c (better_epilogue_loop_than_p): Round factors up for
25743 * tree-vect-loop.c (vect_analyze_loop): Re-analyze all modes for
25744 epilogues, unless we are guaranteed that we can't have partial vectors.
25745 * genopinit.c: (partial_vectors_supported): Generate new function.
25747 2022-01-10 Jakub Jelinek <jakub@redhat.com>
25750 * config/i386/i386.c (classify_argument): Add zero_width_bitfields
25751 argument, when seeing DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD bitfields,
25752 always ignore them, when seeing other zero sized bitfields, either
25753 set zero_width_bitfields to 1 and ignore it or if equal to 2 process
25754 it. Pass it to recursive calls. Add wrapper
25755 with old arguments and diagnose ABI differences for C structures
25756 with zero width bitfields. Formatting fixes.
25758 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
25760 PR rtl-optimization/98782
25761 * ira-int.h (ira_soft_conflict): Declare.
25762 * ira-color.c (max_soft_conflict_loop_depth): New constant.
25763 (ira_soft_conflict): New function.
25764 (spill_soft_conflicts): Likewise.
25765 (assign_hard_reg): Use them to handle the case described by
25766 the comment above ira_soft_conflict.
25767 (improve_allocation): Likewise.
25768 * ira.c (check_allocation): Allow allocnos with "soft" conflicts
25769 to share the same register.
25771 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
25773 PR rtl-optimization/98782
25774 * ira-int.h (ira_caller_save_cost): New function.
25775 (ira_caller_save_loop_spill_p): Likewise.
25776 * ira-build.c (ira_propagate_hard_reg_costs): Test whether it is
25777 cheaper to spill a call-clobbered register throughout a loop rather
25778 than spill it around each individual call. If so, treat all
25779 call-clobbered registers as conflicts and...
25780 (propagate_allocno_info): ...do not propagate call information
25781 from the child to the parent.
25782 * ira-color.c (move_spill_restore): Update accordingly.
25783 * ira-costs.c (ira_tune_allocno_costs): Use ira_caller_save_cost.
25785 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
25787 PR rtl-optimization/98782
25788 * ira-int.h (ira_allocno::might_conflict_with_parent_p): New field.
25789 (ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P): New macro.
25790 (ira_single_region_allocno_p): New function.
25791 (ira_total_conflict_hard_regs): Likewise.
25792 * ira-build.c (ira_create_allocno): Initialize
25793 ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P.
25794 (ira_propagate_hard_reg_costs): New function.
25795 (propagate_allocno_info): Use it. Try to avoid propagating
25796 hard register conflicts to parent allocnos if we can handle
25797 the conflicts by spilling instead. Limit the propagated
25798 register costs to the cost of spilling throughout the child loop.
25799 * ira-color.c (color_pass): Use ira_single_region_allocno_p to
25800 test whether a child and parent allocno can share the same
25802 (move_spill_restore): Adjust for the new behavior of
25803 propagate_allocno_info.
25805 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
25807 PR rtl-optimization/98782
25808 * ira-int.h (ira_subloop_allocnos_can_differ_p): New function,
25810 * ira-color.c (color_pass): ...here.
25812 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
25814 PR rtl-optimization/98782
25815 * ira-color.c (color_pass): Add comments to describe the spill costs.
25816 (move_spill_restore): Likewise. Fix reversed calculation.
25818 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
25820 PR rtl-optimization/98782
25821 * ira-int.h (ira_loop_border_costs): New class.
25822 * ira-color.c (ira_loop_border_costs::ira_loop_border_costs):
25824 (calculate_allocno_spill_cost): Use ira_loop_border_costs.
25825 (color_pass): Likewise.
25826 (move_spill_restore): Likewise.
25828 2022-01-10 Eric Botcazou <ebotcazou@adacore.com>
25831 * coretypes.h (unwind_info_type): Swap UI_SEH and UI_TARGET.
25833 2022-01-10 Richard Biener <rguenther@suse.de>
25835 PR tree-optimization/100359
25836 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
25837 Allow non-growing peeling with !allow_peel and UL_ALL.
25839 2022-01-08 Roger Sayle <roger@nextmovesoftware.com>
25841 * config/i386/i386-expand.c (ix86_expand_vector_move): Add
25842 special case for TImode to V1TImode moves, going via V2DImode.
25844 2022-01-08 Jakub Jelinek <jakub@redhat.com>
25847 * match.pd ((ptr) (x p+ y) p+ z -> (ptr) (x p+ (y + z))): New GENERIC
25850 2022-01-08 David Malcolm <dmalcolm@redhat.com>
25852 * doc/analyzer.texi
25853 (Special Functions for Debugging the Analyzer): Document
25854 __analyzer_dump_escaped.
25856 2022-01-08 David Malcolm <dmalcolm@redhat.com>
25858 * doc/analyzer.texi (Other Debugging Techniques): Document
25859 region::is_named_decl_p.
25861 2022-01-07 Andrew Pinski <apinski@marvell.com>
25864 * config/arm/aarch-common.c (arm_md_asm_adjust):
25865 Use a temp if !REG_P.
25867 2022-01-07 Uroš Bizjak <ubizjak@gmail.com>
25869 * config/i386/mmx.md (*move<V_32:mode>_internal): Add isa attribute.
25870 (*movv2qi_internal): Remve sse2 requirement for alternatives 4,5.
25872 2022-01-07 liuhongt <hongtao.liu@intel.com>
25874 PR rtl-optimization/103750
25875 * fwprop.c (forward_propagate_into): Allow propagations from
25876 inner loop to outer loop.
25878 2022-01-07 Roger Sayle <roger@nextmovesoftware.com>
25880 * config/nvptx/nvptx.md (*cnot<mode>2): New define_insn.
25882 2022-01-07 Haochen Gui <guihaoc@gcc.gnu.org>
25884 * config/rs6000/rs6000.md (rs6000_mffscrni): Define.
25885 (rs6000_set_fpscr_rn): Change the type of operand[0] from DI to SI.
25886 Call gen_rs6000_mffscrni when operand[0] is a const_0_to_3_operand.
25888 2022-01-07 liuhongt <hongtao.liu@intel.com>
25890 * config/i386/sse.md
25891 (*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Extend to
25892 UNSPEC_PCMP_UNSIGNED.
25894 2022-01-07 liuhongt <hongtao.liu@intel.com>
25897 * config/i386/i386-expand.c (ix86_expand_vector_set): Not use
25898 gen_avx2_pblendph_1 when elt == 0.
25899 * config/i386/sse.md (avx2_pblendph): Rename to ..
25900 (avx2_pblend<ssemodesuffix>_1).. this, and extend to V16HI.
25901 (*avx2_pblendw): Rename to ..
25902 (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
25903 (avx2_pblendw): Rename to ..
25904 (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
25905 (blendsuf): Removed.
25906 (sse4_1_pblend<blendsuf>): Renamed to ..
25907 (sse4_1_pblend<ssemodesuffix>): .. this.
25909 2022-01-06 H.J. Lu <hjl.tools@gmail.com>
25912 * config/i386/i386.c (ix86_output_indirect_function_return):
25913 Generate INT3 after indirect jmp for -mharden-sls=indirect-jmp.
25915 2022-01-06 H.J. Lu <hjl.tools@gmail.com>
25918 * config/i386/i386-opts.h (harden_sls): Replace
25919 harden_sls_indirect_branch with harden_sls_indirect_jmp.
25920 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect):
25922 (ix86_output_indirect_jmp): Likewise.
25923 (ix86_output_call_insn): Likewise.
25924 * config/i386/i386.opt: Replace indirect-branch with
25925 indirect-jmp. Replace harden_sls_indirect_branch with
25926 harden_sls_indirect_jmp.
25927 * doc/invoke.texi (-harden-sls=): Replace indirect-branch with
25930 2022-01-06 Uroš Bizjak <ubizjak@gmail.com>
25932 * config/i386/i386.c (ix86_output_ssemov) <MODE_DI>:
25933 Add %q modifier for operands in general registers.
25934 <MODE_SI>: Add %q modifier for operands in general registers.
25935 * config/i386/i386.md (*movhi_internal): Change type attribute of
25936 xmm-gpr interunit alternatives 9,10 to ssemov and mode attribute
25937 to SImode for non-avx512fp16 targets.
25938 (*movhf_internal): Ditto for xmm-gpr interunit alternatives 6,8.
25939 * config/i386/mmx.md (*movv2qi_internal):
25940 Ditto for xmm-gpr interunit alternatives 8,9.
25942 2022-01-06 Kito Cheng <kito.cheng@sifive.com>
25944 * common/config/riscv/riscv-common.c (riscv_implied_info): Add
25946 (riscv_ext_version_table): Add version info for vector extensions.
25947 (riscv_ext_flag_table): Add option mask for vector extensions.
25948 * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): New.
25949 (MASK_VECTOR_EEW_64): New.
25950 (MASK_VECTOR_EEW_FP_32): New.
25951 (MASK_VECTOR_EEW_FP_64): New.
25952 (MASK_ZVL32B): New.
25953 (MASK_ZVL64B): New.
25954 (MASK_ZVL128B): New.
25955 (MASK_ZVL256B): New.
25956 (MASK_ZVL512B): New.
25957 (MASK_ZVL1024B): New.
25958 (MASK_ZVL2048B): New.
25959 (MASK_ZVL4096B): New.
25960 (MASK_ZVL8192B): New.
25961 (MASK_ZVL16384B): New.
25962 (MASK_ZVL32768B): New.
25963 (MASK_ZVL65536B): New.
25964 (TARGET_ZVL32B): New.
25965 (TARGET_ZVL64B): New.
25966 (TARGET_ZVL128B): New.
25967 (TARGET_ZVL256B): New.
25968 (TARGET_ZVL512B): New.
25969 (TARGET_ZVL1024B): New.
25970 (TARGET_ZVL2048B): New.
25971 (TARGET_ZVL4096B): New.
25972 (TARGET_ZVL8192B): New.
25973 (TARGET_ZVL16384B): New.
25974 (TARGET_ZVL32768B): New.
25975 (TARGET_ZVL65536B): New.
25976 * config/riscv/riscv.opt (Mask(VECTOR)): New.
25977 (riscv_vector_eew_flags): New.
25978 (riscv_zvl_flags): New.
25980 2022-01-06 Kito Cheng <kito.cheng@sifive.com>
25982 * common/config/riscv/riscv-common.c
25983 (riscv_subset_list::parse_multiletter_ext): Allow ext. name has
25986 2022-01-06 Jakub Jelinek <jakub@redhat.com>
25988 PR tree-optimization/103899
25989 * expr.c (expand_expr_real_1): Add a workaround for bogus uninit
25990 warning by moving context variable to the only spot where it is used
25991 and moving gcc_assert into if body.
25993 2022-01-06 Jakub Jelinek <jakub@redhat.com>
25995 PR rtl-optimization/103908
25996 * ifcvt.c (bb_valid_for_noce_process_p): Punt on bbs ending with
25999 2022-01-05 Bill Schmidt <wschmidt@linux.ibm.com>
26002 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
26003 Skip over instances with undefined function types.
26005 2022-01-05 Andrew Pinski <apinski@marvell.com>
26008 * config/i386/i386.h (x86_mfence): Mark with GTY.
26010 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
26013 * config/i386/mmx.md (VI_16_32): New mode iterator.
26014 (VI1_16_32): Ditto.
26015 (mmxvecsize): Handle V2QI mode.
26016 (<smaxmin:code><mode>3): Rename from <smaxmin:code>v4qi3.
26017 Use VI1_16_32 mode iterator.
26018 (<umaxmin:code><mode>3): Rename from <umaxmin:code>v4qi3.
26019 Use VI1_16_32 mode iterator.
26020 (abs<mode>2): Use VI_16_32 mode iterator.
26021 (uavgv2qi3_ceil): New insn pattern.
26023 2022-01-05 Martin Sebor <msebor@redhat.com>
26025 * gimple-ssa-warn-access.cc (pass_waccess::maybe_warn_memmodel): Use
26026 %qs to avoid -Wformat-diag.
26028 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
26031 * config/i386/mmx.md (one_cmplv2qi2): Change
26032 alternatives 1,2 type from sselog to sselog1.
26034 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
26037 * config/i386/i386-expand.c (expand_vec_perm_pshufb): Fix number of
26038 narrow mode remapped elements for !one_operand_p case.
26040 2022-01-05 Richard Biener <rguenther@suse.de>
26042 PR tree-optimization/103816
26043 * tree-vect-data-refs.c (vect_analyze_group_access_1): Also
26044 check DR_GROUP_GAP compute for overflow and representability.
26046 2022-01-05 Jakub Jelinek <jakub@redhat.com>
26049 * gimple-fold.c (fold_stmt_1): Don't call maybe_fold_reference
26050 for DEBUG stmts with ADDR_EXPR gimple_debug_bind_get_value,
26051 it can do unwanted rhs folding like &a[0] into &2.0 etc.
26053 2022-01-05 Kewen Lin <linkw@linux.ibm.com>
26056 * config/rs6000/rs6000.c (TARGET_NEED_IPA_FN_TARGET_INFO): New macro.
26057 (TARGET_UPDATE_IPA_FN_TARGET_INFO): Likewise.
26058 (rs6000_need_ipa_fn_target_info): New function.
26059 (rs6000_update_ipa_fn_target_info): Likewise.
26060 (rs6000_can_inline_p): Adjust for ipa function summary target info.
26061 * config/rs6000/rs6000.h (RS6000_FN_TARGET_INFO_HTM): New macro.
26062 * ipa-fnsummary.c (ipa_dump_fn_summary): Adjust for ipa function
26063 summary target info.
26064 (analyze_function_body): Adjust for ipa function summary target info
26065 and call hook rs6000_need_ipa_fn_target_info and
26066 rs6000_update_ipa_fn_target_info.
26067 (ipa_merge_fn_summary_after_inlining): Adjust for ipa function summary
26069 (inline_read_section): Likewise.
26070 (ipa_fn_summary_write): Likewise.
26071 * ipa-fnsummary.h (ipa_fn_summary::target_info): New member.
26072 * doc/tm.texi: Regenerate.
26073 * doc/tm.texi.in (TARGET_UPDATE_IPA_FN_TARGET_INFO): Document new hook.
26074 (TARGET_NEED_IPA_FN_TARGET_INFO): Likewise.
26075 * target.def (update_ipa_fn_target_info): New hook.
26076 (need_ipa_fn_target_info): Likewise.
26077 * targhooks.c (default_need_ipa_fn_target_info): New function.
26078 (default_update_ipa_fn_target_info): Likewise.
26079 * targhooks.h (default_update_ipa_fn_target_info): New declare.
26080 (default_need_ipa_fn_target_info): Likewise.
26082 2022-01-04 Martin Sebor <msebor@redhat.com>
26084 PR middle-end/99612
26085 * builtins.c (get_memmodel): Move warning code to
26086 gimple-ssa-warn-access.cc.
26087 (expand_builtin_atomic_compare_exchange): Same.
26088 (expand_ifn_atomic_compare_exchange): Same.
26089 (expand_builtin_atomic_load): Same.
26090 (expand_builtin_atomic_store): Same.
26091 (expand_builtin_atomic_clear): Same.
26092 * doc/extend.texi (__atomic_exchange_n): Update valid memory
26094 * gimple-ssa-warn-access.cc (memmodel_to_uhwi): New function.
26095 (struct memmodel_pair): New struct.
26096 (memmodel_name): New function.
26097 (pass_waccess::maybe_warn_memmodel): New function.
26098 (pass_waccess::check_atomic_memmodel): New function.
26099 (pass_waccess::check_atomic_builtin): Handle memory model.
26100 * input.c (expansion_point_location_if_in_system_header): Return
26101 original location if expansion location is in a system header.
26103 2022-01-04 Uroš Bizjak <ubizjak@gmail.com>
26106 * config/i386/mmx.md (one_cmplv2qi3): New insn pattern.
26107 (one_cmplv2qi3 splitters): New post-reload splitters.
26108 (*andnotv2qi3): New insn pattern.
26109 (andnotv2qi3 splitters): New post-reload splitters.
26110 (<any_logic:code>v2qi3): New insn pattern.
26111 (<any_logic:insn>v2qi3 splitters): New post-reload splitters.
26113 2022-01-04 Richard Biener <rguenther@suse.de>
26115 PR tree-optimization/103800
26116 * tree-vect-loop.c (vectorizable_phi): Remove assert and
26119 2022-01-04 Richard Biener <rguenther@suse.de>
26121 PR tree-optimization/103690
26122 * tree-pass.h (tail_merge_optimize): Adjust.
26123 * tree-ssa-tail-merge.c (tail_merge_optimize): Pass in whether
26124 to re-split critical edges, move CFG cleanup ...
26125 * tree-ssa-pre.c (pass_pre::execute): ... here, before
26126 simple_dce_from_worklist and delay freeing inserted_exprs from
26128 (fini_pre): .. here.
26130 2022-01-04 Roger Sayle <roger@nextmovesoftware.com>
26132 * config/nvptx/nvptx.h (STORE_FLAG_VALUE): Change to 1.
26133 * config/nvptx/nvptx.md (movbi): Use P1 constraint for true.
26134 (setcc_from_bi): Remove SImode specific pattern.
26135 (setcc<mode>_from_bi): Provide more general HSDIM pattern.
26136 (extendbi<mode>2, zeroextendbi<mode>2): Provide instructions
26137 for sign- and zero-extending BImode predicates to integers.
26138 (setcc_int<mode>): Remove previous (-1-based) instructions.
26139 (cstorebi4): Remove BImode to SImode specific expander.
26140 (cstore<mode>4): Fix indentation. Expand using setccsi_from_bi.
26141 (cstore<mode>4): For both integer and floating point modes.
26143 2022-01-04 Olivier Hainque <hainque@adacore.com>
26145 * gcc.c (driver_handle_option): do_save --sysroot.
26147 2022-01-04 Richard Biener <rguenther@suse.de>
26149 PR tree-optimization/103864
26150 PR tree-optimization/103544
26151 * tree-vect-slp.c (vect_analyze_slp_instance): Exclude
26152 reductions wrapped in conversions from SLP handling.
26153 (vect_analyze_slp): Revert PR103544 change.
26155 2022-01-04 Jakub Jelinek <jakub@redhat.com>
26157 PR rtl-optimization/103860
26158 * shrink-wrap.c (try_shrink_wrapping): Don't call can_get_prologue
26159 uselessly for blocks for which it has been called already.
26161 2022-01-04 Cui,Lili <lili.cui@intel.com>
26163 * common/config/i386/cpuinfo.h (get_intel_cpu): Add new model values
26164 to Alderlake and Rocketlake.
26166 2022-01-04 Chung-Lin Tang <cltang@codesourcery.com>
26168 PR middle-end/103643
26169 * gimplify.c (gimplify_omp_affinity): Adjust gimplify_expr of entire
26170 OMP_CLAUSE_DECL to use 'is_gimple_lvalue, fb_lvalue'
26172 2022-01-04 liuhongt <hongtao.liu@intel.com>
26175 * config/i386/sse.md (*bit_and_float_vector_all_ones):
26176 Force_reg operand 1 to avoid ICE.
26178 2022-01-04 Jason Merrill <jason@redhat.com>
26180 * tree-pretty-print.c (do_niy): Add spc parameter.
26182 (print_call_name): Add spc local variable.
26184 2022-01-03 Uroš Bizjak <ubizjak@gmail.com>
26187 * config/i386/mmx.md (mov<V_32:mode>): Remove TARGET_SSE2 constraint.
26188 (mov<V_32:mode>_internal): Ditto.
26189 (*push<V_32:mode>_rex64): Ditto.
26190 (movmisalign<V_32:mode>): Ditto.
26191 (*push<V_32:mode>_rex64 splitter): Enable for
26192 TARGET_64BIT && TARGET_SSE.
26193 (*push<V_32:mode>2): Remove insn pattern.
26195 2022-01-03 Andrew Pinski <apinski@marvell.com>
26198 * doc/extend.texi: Extend the documentation about Complex
26199 types for casting and also rewrite the __real__/__imag__
26200 expression portion to use tables.
26201 Move __builtin_complex to the Complex type section.
26203 2022-01-03 Jakub Jelinek <jakub@redhat.com>
26206 * internal-fn.def (ATOMIC_ADD_FETCH_CMP_0, ATOMIC_SUB_FETCH_CMP_0,
26207 ATOMIC_AND_FETCH_CMP_0, ATOMIC_OR_FETCH_CMP_0, ATOMIC_XOR_FETCH_CMP_0):
26209 * internal-fn.h (ATOMIC_OP_FETCH_CMP_0_EQ, ATOMIC_OP_FETCH_CMP_0_NE,
26210 ATOMIC_OP_FETCH_CMP_0_LT, ATOMIC_OP_FETCH_CMP_0_LE,
26211 ATOMIC_OP_FETCH_CMP_0_GT, ATOMIC_OP_FETCH_CMP_0_GE): New enumerators.
26212 * internal-fn.c (expand_ATOMIC_ADD_FETCH_CMP_0,
26213 expand_ATOMIC_SUB_FETCH_CMP_0, expand_ATOMIC_AND_FETCH_CMP_0,
26214 expand_ATOMIC_OR_FETCH_CMP_0, expand_ATOMIC_XOR_FETCH_CMP_0): New
26216 * optabs.def (atomic_add_fetch_cmp_0_optab,
26217 atomic_sub_fetch_cmp_0_optab, atomic_and_fetch_cmp_0_optab,
26218 atomic_or_fetch_cmp_0_optab, atomic_xor_fetch_cmp_0_optab): New
26220 * builtins.h (expand_ifn_atomic_op_fetch_cmp_0): Declare.
26221 * builtins.c (expand_ifn_atomic_op_fetch_cmp_0): New function.
26222 * tree-ssa-ccp.c: Include internal-fn.h.
26223 (optimize_atomic_bit_test_and): Add . before internal fn call
26224 in function comment. Change return type from void to bool and
26225 return true only if successfully replaced.
26226 (optimize_atomic_op_fetch_cmp_0): New function.
26227 (pass_fold_builtins::execute): Use optimize_atomic_op_fetch_cmp_0
26228 for BUILT_IN_ATOMIC_{ADD,SUB,AND,OR,XOR}_FETCH_{1,2,4,8,16} and
26229 BUILT_IN_SYNC_{ADD,SUB,AND,OR,XOR}_AND_FETCH_{1,2,4,8,16},
26230 for *XOR* ones only if optimize_atomic_bit_test_and failed.
26231 * config/i386/sync.md (atomic_<plusminus_mnemonic>_fetch_cmp_0<mode>,
26232 atomic_<logic>_fetch_cmp_0<mode>): New define_expand patterns.
26233 (atomic_add_fetch_cmp_0<mode>_1, atomic_sub_fetch_cmp_0<mode>_1,
26234 atomic_<logic>_fetch_cmp_0<mode>_1): New define_insn patterns.
26235 * doc/md.texi (atomic_add_fetch_cmp_0<mode>,
26236 atomic_sub_fetch_cmp_0<mode>, atomic_and_fetch_cmp_0<mode>,
26237 atomic_or_fetch_cmp_0<mode>, atomic_xor_fetch_cmp_0<mode>): Document
26238 new named patterns.
26240 2022-01-03 Richard Biener <rguenther@suse.de>
26242 PR middle-end/103851
26243 * tree-cfg.c (move_sese_region_to_fn): Always release SSA names.
26245 2022-01-03 Jakub Jelinek <jakub@redhat.com>
26248 * symtab.c: Include fold-const.h.
26249 (symtab_node::equal_address_to): If folding_initializer is true,
26250 handle it like memory_accessed. Simplify.
26252 2022-01-03 Martin Liska <mliska@suse.cz>
26254 * doc/extend.texi: Use ; for function declarations.
26256 2022-01-03 Jakub Jelinek <jakub@redhat.com>
26259 * symtab.c (symtab_node::equal_address_to): Return 0 if one of
26260 VAR_DECLs has "non overlapping" attribute and rs1 != rs2.
26262 2022-01-03 Jakub Jelinek <jakub@redhat.com>
26264 * gcc.c (process_command): Update copyright notice dates.
26265 * gcov-dump.c (print_version): Ditto.
26266 * gcov.c (print_version): Ditto.
26267 * gcov-tool.c (print_version): Ditto.
26268 * gengtype.c (create_file): Ditto.
26269 * doc/cpp.texi: Bump @copying's copyright year.
26270 * doc/cppinternals.texi: Ditto.
26271 * doc/gcc.texi: Ditto.
26272 * doc/gccint.texi: Ditto.
26273 * doc/gcov.texi: Ditto.
26274 * doc/install.texi: Ditto.
26275 * doc/invoke.texi: Ditto.
26277 2022-01-02 Uroš Bizjak <ubizjak@gmail.com>
26280 * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V2QImode.
26281 (VALID_INT_MODE_P): Ditto.
26282 * config/i386/i386.c (ix86_secondary_reload): Handle
26283 V2QImode reloads from SSE register to memory.
26284 (vector_mode_supported_p): Always return true for V2QImode.
26285 * config/i386/i386.md (*subqi_ext<mode>_2): New insn pattern.
26286 (*negqi_ext<mode>_2): Ditto.
26287 * config/i386/mmx.md (movv2qi): New expander.
26288 (movmisalignv2qi): Ditto.
26289 (*movv2qi_internal): New insn pattern.
26290 (*pushv2qi2): Ditto.
26291 (negv2qi2 and splitters): Ditto.
26292 (<plusminus:insn>v2qi3 and splitters): Ditto.
26294 2022-01-02 John David Anglin <danglin@gcc.gnu.org>
26296 * config/pa/pa.md (atomic_storeq): Use optab_libfunc to access
26297 sync_lock_test_and_set libfunc. Call convert_memory_address to
26298 convert memory address to Pmode.
26299 (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
26302 Copyright (C) 2022 Free Software Foundation, Inc.
26304 Copying and distribution of this file, with or without modification,
26305 are permitted in any medium without royalty provided the copyright
26306 notice and this notice are preserved.