1 2022-07-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3 * config/xtensa/xtensa.md (*masktrue_const_bitcmpl):
4 Add a new insn_and_split pattern, and a few split patterns for
7 2022-07-22 Richard Sandiford <richard.sandiford@arm.com>
9 * graphds.cc (graphds_scc): Fix algorithm attribution.
11 2022-07-22 Richard Biener <rguenther@suse.de>
13 PR tree-optimization/106403
14 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Move stored
15 value valueization after check for IFN_MASKED_STORE or
18 2022-07-22 Richard Biener <rguenther@suse.de>
20 PR tree-optimization/106397
21 * tree-ssa-loop-prefetch.cc (emit_mfence_after_loop): Do
22 not update SSA form here.
23 (mark_nontemporal_stores): Return whether we marked any
24 non-temporal stores and inserted mfence.
25 (loop_prefetch_arrays): Note when we need to update SSA.
26 (tree_ssa_prefetch_arrays): Perform required (LC) SSA update
27 at the end of the pass.
29 2022-07-22 Richard Biener <rguenther@suse.de>
31 PR tree-optimization/106387
32 * tree-vect-stmts.cc (vectorizable_load): Use make_ssa_name
33 if ptr is not an SSA name.
35 2022-07-22 liuhongt <hongtao.liu@intel.com>
38 * config/i386/mmx.md (<code><mode>3): New define_expand, it's
39 original "<code><mode>3".
40 (*<code><mode>3): New define_insn, it's original
41 "<code><mode>3" be extended to handle memory and immediate
42 operand with ix86_binary_operator_ok. Also adjust define_split
44 (mmxinsnmode): New mode attribute.
45 (*mov<mode>_imm): Refactor with mmxinsnmode.
46 * config/i386/predicates.md
47 (register_or_x86_64_const_vector_operand): New predicate.
49 2022-07-22 Will Schmidt <will_schmidt@vnet.ibm.com>
51 * config/rs6000/altivec.md:
52 (vstrir_code_<mode>): Rename to...
53 (vstrir_direct_<mode>): ... this.
54 (vstrir_p_code_<mode>): Rename to...
55 (vstrir_p_direct_<mode>): ... this.
56 (vstril_code_<mode>): Rename to...
57 (vstril_direct_<mode>): ... this.
58 (vstril_p_code_<mode>): Rename to...
59 (vstril_p_direct_<mode>): ... this.
61 2022-07-22 Will Schmidt <will_schmidt@vnet.ibm.com>
63 * config/rs6000/rs6000-c.cc: Update comments.
64 (rs6000_target_modify_macros): Remove bu_mask references.
65 (rs6000_define_or_undefine_macro): Replace bu_mask reference
66 with a rs6000_cpu value check.
67 (rs6000_cpu_cpp_builtins): Remove rs6000_builtin_mask_calculate()
68 parameter from call to rs6000_target_modify_macros.
69 * config/rs6000/rs6000-protos.h (rs6000_target_modify_macros,
70 rs6000_target_modify_macros_ptr): Remove parameter from extern
72 * config/rs6000/rs6000.cc (rs6000_target_modify_macros_ptr): Remove
73 parameter from prototype, update calls to this function.
74 (rs6000_print_builtin_options): Remove prototype, call and function.
75 (rs6000_builtin_mask_calculate): Remove function.
76 (rs6000_debug_reg_global): Remove call to rs6000_print_builtin_options.
77 (rs6000_option_override_internal): Remove rs6000_builtin_mask var
78 and builtin_mask debug output.
79 (rs6000_builtin_mask_names): Remove.
80 (rs6000_pragma_target_parse): Remove prev_bumask, cur_bumask,
81 diff_bumask references; Update calls to rs6000_target_modify_ptr.
82 * config/rs6000/rs6000.opt (rs6000_builtin_mask): Remove.
84 2022-07-21 Sam Feifer <sfeifer@redhat.com>
86 PR tree-optimization/94920
87 * match.pd (x >= 0 ? x : 0) + (x <= 0 ? -x : 0): New simplification.
88 (x <= 0 ? -x : 0): New simplification.
90 2022-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
93 2022-07-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
95 * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
96 instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
98 2022-07-21 Richard Biener <rguenther@suse.de>
100 PR tree-optimization/106379
101 * match.pd (~(a ^ b) -> a == b): New pattern.
103 2022-07-21 Richard Biener <rguenther@suse.de>
105 PR tree-optimization/106378
106 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Handle
107 LEN_STORE, add mode to initialize a may-def and handle
109 (dse_optimize_stmt): Query may-defs. Handle internal
110 functions LEN_STORE and MASK_STORE similar to how
111 we handle memory builtins but without byte tracking.
113 2022-07-21 Richard Biener <rguenther@suse.de>
115 PR tree-optimization/106365
116 * tree-ssa-sccvn.cc (pd_data::rhs_off): New field determining
117 the offset to start encoding of RHS from.
118 (vn_walk_cb_data::vn_walk_cb_data): Initialize it.
119 (vn_walk_cb_data::push_partial_def): Allow the first partial
120 definition to be fully providing the def. Offset RHS
121 before encoding if requested.
122 (vn_reference_lookup_3): Initialize def_rhs everywhere.
123 Add support for .MASK_STORE and .LEN_STORE (partial) definitions.
125 2022-07-21 Richard Biener <rguenther@suse.de>
127 * tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): Special-case
128 store internal functions and IFN_MASK_LOAD, IFN_LEN_LOAD
129 and IFN_MASK_LOAD_LANES.
130 (call_may_clobber_ref_p_1): Special-case IFN_MASK_STORE,
131 IFN_LEN_STORE and IFN_MASK_STORE_LANES.
133 2022-07-20 Alexander Monakov <amonakov@ispras.ru>
135 PR rtl-optimization/101347
136 * builtins.cc (expand_builtin) [BUILT_IN_SETJMP_SETUP]: Move
137 population of nonlocal_goto_handler_labels from here ...
138 (expand_builtin) [BUILT_IN_SETJMP_RECEIVER]: ... to here.
139 * rtlanal.cc (remove_node_from_insn_list): Verify that a
140 duplicate is not present in the remainder of the list.
142 2022-07-20 Alexander Monakov <amonakov@ispras.ru>
144 * rtl.h (remove_node_from_expr_list): Remove declaration.
145 * rtlanal.cc (remove_node_from_expr_list): Remove (no uses).
147 2022-07-20 Richard Biener <rguenther@suse.de>
149 * tree-vect-data-refs.cc (bump_vector_ptr): Return an
150 invariant updated address when the input was invariant.
152 2022-07-20 liuhongt <hongtao.liu@intel.com>
154 * passes.def: (Split pass_cse_sincos to pass_expand_powcabs
155 and pass_cse_sincos, and move pass_cse_sincos after vectorizer).
156 * timevar.def (TV_TREE_POWCABS): New timevar.
157 * tree-pass.h (make_pass_expand_powcabs): Split from pass_cse_sincos.
158 * tree-ssa-math-opts.cc (gimple_expand_builtin_cabs): Ditto.
159 (class pass_expand_powcabs): Ditto.
160 (pass_expand_powcabs::execute): Ditto.
161 (make_pass_expand_powcabs): Ditto.
162 (pass_cse_sincos::execute): Remove pow/cabs expand part.
163 (make_pass_cse_sincos): Ditto.
165 2022-07-20 Richard Biener <richard.guenther@gmail.com>
166 Hongtao Liu <hongtao.liu@intel.com>
168 PR tree-optimization/106010
169 * tree-complex.cc (init_dont_simulate_again): Lower complex
171 (expand_complex_move): Also expand COMPLEX_CST for rhs.
173 2022-07-19 Andrew MacLeod <amacleod@redhat.com>
175 * gimple-range-cache.cc (ranger_cache::range_from_dom): Check
176 for incoming ranges on join nodes and add to worklist.
178 2022-07-19 Andrew MacLeod <amacleod@redhat.com>
180 * gimple-range-cache.cc (ranger_cache::resolve_dom): New.
181 (ranger_cache::range_from_dom): Put all nodes to be calculated
182 in the worklist and resolve after the dom walk.
183 * gimple-range-cache.h (resolve_dom): New prototype.
185 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
187 * tree-cfg.cc (gimple_verify_flow_info): Check placement of
190 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
192 * cfghooks.cc (duplicate_block): Expand comment.
193 * tree-cfg.cc (gimple_can_duplicate_bb_p): Reject blocks with
194 calls that may return twice.
196 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
198 * tree-ssa-sink.cc (select_best_block): Punt if selected block
199 has incoming abnormal edges.
201 2022-07-19 Martin Liska <mliska@suse.cz>
203 * doc/extend.texi: Remove trailing :.
205 2022-07-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
207 * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
208 instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
210 2022-07-19 Richard Biener <rguenther@suse.de>
213 * builtins.cc (get_memory_rtx): Compute alignment from
214 the original address and set MEM_OFFSET to unknown when
215 we create a MEM_EXPR from the base object of the address.
217 2022-07-19 Richard Biener <rguenther@suse.de>
220 * dwarf2out.cc (dwarf2out_register_external_die): Allow
221 map entry re-use during WPA.
223 2022-07-19 Roger Sayle <roger@nextmovesoftware.com>
224 Richard Biener <rguenther@suse.de>
227 * builtins.cc (fold_builtin_frexp): Call suppress_warning on
228 COMPOUND_EXPR to silence spurious warning if result isn't used.
229 (fold_builtin_modf): Likewise.
230 (do_mpfr_remquo): Likewise.
232 2022-07-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
234 * config/xtensa/xtensa.cc (xtensa_rtx_costs):
235 Change the relative cost of '(set (reg) (const_int N))' where
236 N fits into signed 12-bit from 4 to 0 if optimizing for size.
237 And use the appropriate macro instead of the bare number 4.
239 2022-07-18 Andrew MacLeod <amacleod@redhat.com>
241 PR tree-optimization/106280
242 * value-relation.cc (dom_oracle::register_relation): Register
243 transitives only when it is possible for there to be one.
244 (dom_oracle::set_one_relation): Return NULL if this is an
247 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
249 * doc/invoke.texi (RISC-V Options): Add index references for
250 `mrelax' and `mriscv-attribute'.
252 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
254 * doc/invoke.texi (Option Summary): Add missing second space
255 around `-mstack-protector-guard-reg='.
257 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
259 * doc/invoke.texi (Option Summary): Fix `-mno-riscv-attribute'.
260 (RISC-V Options): Likewise, and `-mriscv-attribute'.
262 2022-07-18 Claudiu Zissulescu <claziss@gmail.com>
264 * config/arc/arc-arch.h (arc_tune_attr): Add
265 ARC_TUNE_ARCHS4X_REL31A variant.
266 * config/arc/arc.cc (arc_override_options): Tune options for
268 (arc_sched_issue_rate): Use correct enum.
269 (arc600_corereg_hazard): Textual change.
270 (arc_hazard): Add release 310a tunning.
271 * config/arc/arc.md (tune): Update and take into consideration new
273 (tune_dspmpy): Likewise.
274 (tune_store): New attribute.
275 * config/arc/arc.opt (mtune): New tune option.
276 * config/arc/arcHS4x.md (hs4x_brcc0, hs4x_brcc1): New cpu units.
277 (hs4x_brcc_op): New instruction rezervation.
278 (hs4x_data_store_1_op): Likewise.
279 * config/arc/arc-cpus.def (hs4x_rel31): New cpu variant.
280 * config/arc/arc-tables.opt: Regenerate.
281 * config/arc/t-multilib: Likewise.
282 * doc/invoke.texi (ARC): Update mcpu and tune sections.
284 2022-07-18 Richard Biener <rguenther@suse.de>
286 * tree-loop-distribution.cc (loop_distribution::distribute_loop):
287 When computing cost-based merging do not disregard builtin
288 classified partitions in some cases.
290 2022-07-18 Richard Sandiford <richard.sandiford@arm.com>
293 * config/arm/arm-builtins.cc (arm_builtin_vectorized_function):
295 * config/arm/arm-protos.h (arm_builtin_vectorized_function): Delete.
296 * config/arm/arm.cc (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
298 * config/arm/arm_neon_builtins.def (copysignf): Delete.
299 * config/arm/iterators.md (nvrint_pattern): New attribute.
300 * config/arm/neon.md (<NEON_VRINT:nvrint_pattern><VCVTF:mode>2):
302 (l<NEON_VCVT:nvrint_pattern><su_optab><VCVTF:mode><v_cmp_result>2):
304 (neon_copysignf<mode>): Rename to...
305 (copysign<mode>3): ...this.
307 2022-07-18 Claudiu Zissulescu <claziss@gmail.com>
309 * config/arc/arc.cc (arc_expand_epilogue): Adjust the frame
310 pointer first when in interrupts.
312 2022-07-18 Richard Biener <rguenther@suse.de>
314 * tree-loop-distribution.cc (copy_loop_before): Add
315 the ability to replace the original LC PHI defs.
316 (generate_loops_for_partition): Pass through a flag
317 whether to redirect original LC PHI defs.
318 (generate_code_for_partition): Likewise.
319 (loop_distribution::distribute_loop): Compute the partition
320 that should provide the LC PHI defs for common reductions
323 2022-07-18 Richard Ball <richard.ball@arm.com>
325 * config/aarch64/aarch64.cc (aarch64_evpc_trn): Use std:swap.
326 (aarch64_evpc_uzp): Likewise.
327 (aarch64_evpc_zip): Likewise.
329 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
332 * config/i386/i386.md (*ctzsidi2_<s>ext): New insn_and_split
333 to recognize any_extend:DI of ctz:SI which is implicitly extended.
334 (*ctzsidi2_<s>ext_falsedep): New define_insn to model a DImode
335 extended ctz:SI that has preceding xor to break false dependency.
337 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
339 * config/i386/predicates.md (x86_64_const_vector_operand):
340 Check the operand's mode matches the specified mode argument.
342 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
344 * config/i386/sse.md (kunpckhi): Add UNSPEC_MASKOP unspec.
345 (kunpcksi): Likewise, add UNSPEC_MASKOP unspec.
346 (kunpckdi): Likewise, add UNSPEC_MASKOP unspec.
347 (vec_pack_trunc_qi): Update to specify the now required
348 UNSPEC_MASKOP unspec.
349 (vec_pack_trunc_<mode>): Likewise.
351 2022-07-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
353 * config/xtensa/xtensa.md
354 (*masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
355 *masktrue_const_shifted_mask): If the immediate for bitwise AND is
356 represented as '-(1 << N)', decrease the lower bound of N from 12
357 to 1. And the other immediate for conditional branch is now no
358 longer limited to zero, but also one of some positive integers.
359 Finally, remove the checks of some conditions, because the comparison
360 expressions that don't satisfy such checks are determined as
361 compile-time constants and thus will be optimized away before
364 2022-07-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
366 * config/xtensa/xtensa.cc (xtensa_emit_constantsynth): Remove.
367 (xtensa_constantsynth_2insn): Change to try all three synthetic
368 methods and to use the one that fits the immediate value of
369 the seed into a Narrow Move Immediate instruction "MOVI.N"
370 when the Code Density Option is configured.
372 2022-07-15 H.J. Lu <hjl.tools@gmail.com>
375 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
376 false if callee has indirect_return attribute and caller
379 2022-07-15 Roger Sayle <roger@nextmovesoftware.com>
382 * config/i386/i386.md (*andn<dwi>3_doubleword_bmi): Update the
383 constraints to reflect the output is earlyclobber, unless it is
384 the same register (pair) as one of the operands.
386 2022-07-15 David Malcolm <dmalcolm@redhat.com>
388 * doc/invoke.texi (Static Analyzer Options): Add the new fd
389 warnings to the initial gccoptlist, and to the list of those
390 disabled by -fanalyzer-checker=taint.
392 2022-07-15 Andrew Carlotti <andrew.carlotti@arm.com>
394 * config/aarch64/aarch64-builtins.cc
395 (enum aarch64_type_qualifiers): Remove qualifier_internal.
396 (aarch64_init_simd_builtin_functions): Remove qualifier_internal check.
398 2022-07-15 Andrew Carlotti <andrew.carlotti@arm.com>
400 * config/aarch64/aarch64-builtins.cc
401 (v1di_UP): Add V1DI mode to _UP macros.
402 * config/aarch64/aarch64-modes.def (VECTOR_MODE): Add V1DI mode.
403 * config/aarch64/aarch64-simd-builtin-types.def: Use V1DI mode.
404 * config/aarch64/aarch64-simd.md
405 (vec_extractv2dfv1df): Replace with...
406 (vec_extract<mode><V1half>): ...this.
407 * config/aarch64/aarch64.cc
408 (aarch64_classify_vector_mode): Add V1DI mode.
409 * config/aarch64/iterators.md
410 (VQ_2E, V1HALF, V1half): New.
411 (nunits): Add V1DI mode.
413 2022-07-15 Roger Sayle <roger@nextmovesoftware.com>
416 * config/i386/i386-features.cc (general_scalar_chain::convert_insn):
417 Fix indentation whitespace.
418 (timode_scalar_chain::fix_debug_reg_uses): Likewise.
419 (timode_scalar_chain::convert_insn): Delete dead code.
420 Update TImode REG_EQUAL_NOTE even if the SET_DEST is already V1TI.
421 Fix indentation whitespace.
422 (convertible_comparison_p): Likewise.
423 (timode_scalar_to_vector_candidate_p): Likewise.
425 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
427 * gimple-pretty-print.cc (dump_ssaname_info): Use pp_vrange.
429 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
431 * Makefile.in (OBJS): Add value-range-pretty-print.o.
432 * pretty-print.h (pp_vrange): New.
433 * value-range.cc (vrange::dump): Call pp version.
434 (unsupported_range::dump): Move to its own file.
435 (dump_bound_with_infinite_markers): Same.
436 (irange::dump): Same.
437 (irange::dump_bitmasks): Same.
438 (vrange::debug): Remove.
439 * value-range.h: Remove virtual designation for dump methods.
440 Remove dump_bitmasks method.
441 * value-range-pretty-print.cc: New file.
442 * value-range-pretty-print.h: New file.
444 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
446 * value-range.cc (irange::accept): New.
447 (unsupported_range::accept): New.
448 * value-range.h (class vrange_visitor): New.
449 (class vrange): Add accept method.
450 (class unsupported_range): Same.
451 (class Value_Range): Same.
453 2022-07-15 Jonathan Wakely <jwakely@redhat.com>
455 * diagnostic-format-json.cc (json_from_location_range): Adjust
456 to new label_text API.
457 * diagnostic-format-sarif.cc (sarif_builder::make_location_object):
459 * diagnostic-show-locus.cc (struct pod_label_text): Likewise.
460 (layout::print_any_labels): Likewise.
461 * tree-diagnostic-path.cc (class path_label): Likewise.
462 (struct event_range): Likewise.
463 (default_tree_diagnostic_path_printer): Likewise.
464 (default_tree_make_json_for_path): Likewise.
466 2022-07-15 konglin1 <lingling.kong@intel.com>
469 * config/i386/i386-builtin.def (BDESC): Fix [u]comi{ss,sd}
470 comparison due to intrinsics changed over time.
471 * config/i386/i386-expand.cc (ix86_ssecom_setcc):
472 Add unordered check and mode for sse comi codegen.
473 (ix86_expand_sse_comi): Add unordered check and check a different
475 (ix86_expand_sse_comi_round):Extract unordered check and mode part
476 in ix86_ssecom_setcc.
478 2022-07-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
480 * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Use
481 op_mode instead of vmode in calls to force_reg for op0 and op1.
483 2022-07-14 H.J. Lu <hjl.tools@gmail.com>
485 PR tree-optimization/103798
486 * tree-ssa-forwprop.cc: Include "tree-ssa-strlen.h".
487 (simplify_builtin_call): Inline memchr with constant strings of
488 no more than the bytes of a word.
489 * tree-ssa-strlen.cc (use_in_zero_equality): Make it global.
490 * tree-ssa-strlen.h (use_in_zero_equality): New.
492 2022-07-14 Eric Botcazou <ebotcazou@adacore.com>
494 * gimplify.cc (lookup_tmp_var): Add NOT_GIMPLE_REG boolean parameter
495 and set DECL_NOT_GIMPLE_REG_P on the variable according to it.
496 (internal_get_tmp_var): Add NOT_GIMPLE_REG boolean parameter and
497 pass it in the call to lookup_tmp_var.
498 (get_formal_tmp_var): Pass false in the call to lookup_tmp_var.
499 (get_initialized_tmp_var): Likewise.
500 (prepare_gimple_addressable): Call internal_get_tmp_var instead of
501 get_initialized_tmp_var with NOT_GIMPLE_REG set to true.
503 2022-07-14 Martin Liska <mliska@suse.cz>
505 * doc/gimple.texi: Close properly a deftypefn.
507 2022-07-14 Martin Liska <mliska@suse.cz>
509 * doc/gimple.texi: Close properly a deftypefn.
511 2022-07-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
513 * config/xtensa/xtensa.md:
514 In FP constant synthesis split pattern, subcontract to
515 avoid_constant_pool_reference() as in the case of integer,
516 because it can handle well too. And cast to int32_t before
517 calling xtensa_constantsynth() in order to ignore upper 32-bit.
519 2022-07-13 Aldy Hernandez <aldyh@redhat.com>
521 * range-op.cc (operator_lt::fold_range): Use nonzero bits.
523 2022-07-13 Aldy Hernandez <aldyh@redhat.com>
525 * value-range.cc (irange::copy_to_legacy): Set nonzero mask.
526 (irange::legacy_intersect): Clear nonzero mask.
527 (irange::legacy_union): Same.
528 (irange::invert): Same.
530 2022-07-13 Richard Biener <rguenther@suse.de>
532 * tree-ssa-dom.h (record_temporary_equivalences): Remove.
533 * tree-ssa-dom.cc (dom_jt_state::m_blocks_on_stack): New.
534 (dom_jt_state::get_blocks_on_stack): Likewise.
535 (dom_opt_dom_walker::dom_opt_dom_walker): Take dom_jt_state.
536 (back_propagate_equivalences): Remove dominator bitmap
537 compute and instead use passed in m_blocks_on_stack.
538 (record_temporary_equivalences): Likewise.
539 (record_equivalences_from_incoming_edge): Likewise.
540 (dom_opt_dom_walker::before_dom_children): Maintain and
541 pass down blocks on stack.
542 (dom_opt_dom_walker::after_dom_children): Likewise.
544 2022-07-13 Andrew Carlotti <andrew.carlotti@arm.com>
546 * config/aarch64/aarch64-builtins.cc
547 (aarch64_general_gimple_fold_builtin): Add fixup for invalid GIMPLE.
549 2022-07-13 Richard Biener <rguenther@suse.de>
551 PR tree-optimization/106249
552 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop):
553 Only verify LC SSA of the new_loop if we created it.
554 Use TODO_update_ssa_nophi for the SSA update after versioning
557 2022-07-12 Aldy Hernandez <aldyh@redhat.com>
559 * range-op.cc (unsigned_singleton_p): Remove.
560 (operator_bitwise_and::remove_impossible_ranges): Remove.
561 (operator_bitwise_and::fold_range): Set nonzero bits. *
562 * value-range.cc (irange::get_nonzero_bits): Remove
563 legacy_mode_p assert.
564 (irange::dump_bitmasks): Remove legacy_mode_p check.
566 2022-07-12 Richard Sandiford <richard.sandiford@arm.com>
569 * predict.h (insn_optimization_type): Declare.
570 * predict.cc (insn_optimization_type): New function.
571 * internal-fn.def (IFN_ICEIL, IFN_IFLOOR, IFN_IRINT, IFN_IROUND)
572 (IFN_LCEIL, IFN_LFLOOR, IFN_LRINT, IFN_LROUND, IFN_LLCEIL)
573 (IFN_LLFLOOR, IFN_LLRINT, IFN_LLROUND): New internal functions.
574 * internal-fn.cc (unary_convert_direct): New macro.
575 (expand_convert_optab_fn): New function.
576 (expand_unary_convert_optab_fn): New macro.
577 (direct_unary_convert_optab_supported_p): Likewise.
578 * optabs.cc (expand_sfix_optab): Pass insn_optimization_type to
579 convert_optab_handler.
580 * config/aarch64/aarch64-protos.h
581 (aarch64_builtin_vectorized_function): Delete.
582 * config/aarch64/aarch64-builtins.cc
583 (aarch64_builtin_vectorized_function): Delete.
584 * config/aarch64/aarch64.cc
585 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Delete.
586 * config/i386/i386.cc (ix86_optab_supported_p): Handle lround_optab.
587 * config/i386/i386.md (lround<X87MODEF:mode><SWI248x:mode>2): Remove
588 optimize_insn_for_size_p test.
590 2022-07-12 Richard Biener <rguenther@suse.de>
592 * tree-vect-loop-manip.cc (create_lcssa_for_virtual_phi):
594 (vect_do_peeling): Do not call it, adjust comment.
596 2022-07-12 Richard Sandiford <richard.sandiford@arm.com>
598 * config/aarch64/aarch64-builtins.cc
599 (aarch64_builtin_vectorized_function): Remove handling of
600 floor, ceil, trunc, round, nearbyint, sqrt, clz and ctz.
602 2022-07-11 Andrew MacLeod <amacleod@redhat.com>
604 PR tree-optimization/106234
605 * gimple-range-cache.cc (ranger_cache::range_from_dom): Check dominator
606 cache value before recursively resolving it.
608 2022-07-11 Roger Sayle <roger@nextmovesoftware.com>
610 * config/i386/i386-features.h (scalar_chain): Add fields
611 insns_conv, n_sse_to_integer and n_integer_to_sse to this
612 parent class, moved from general_scalar_chain.
613 (scalar_chain::convert_compare): Protected method moved
614 from general_scalar_chain.
615 (mark_dual_mode_def): Make protected, not private virtual.
616 (scalar_chain:convert_op): New private virtual method.
617 (general_scalar_chain::general_scalar_chain): Simplify constructor.
618 (general_scalar_chain::~general_scalar_chain): Delete destructor.
619 (general_scalar_chain): Move insns_conv, n_sse_to_integer and
620 n_integer_to_sse fields to parent class, scalar_chain.
621 (general_scalar_chain::mark_dual_mode_def): Delete prototype.
622 (general_scalar_chain::convert_compare): Delete prototype.
623 (timode_scalar_chain::compute_convert_gain): Remove simplistic
624 implementation, convert to a method prototype.
625 (timode_scalar_chain::mark_dual_mode_def): Delete prototype.
626 (timode_scalar_chain::convert_op): Prototype new virtual method.
627 * config/i386/i386-features.cc (scalar_chain::scalar_chain):
628 Allocate insns_conv and initialize n_sse_to_integer and
629 n_integer_to_sse fields in constructor.
630 (scalar_chain::scalar_chain): Free insns_conv in destructor.
631 (general_scalar_chain::general_scalar_chain): Delete
632 constructor, now defined in the class declaration.
633 (general_scalar_chain::~general_scalar_chain): Delete destructor.
634 (scalar_chain::mark_dual_mode_def): Renamed from
635 general_scalar_chain::mark_dual_mode_def.
636 (timode_scalar_chain::mark_dual_mode_def): Delete.
637 (scalar_chain::convert_compare): Renamed from
638 general_scalar_chain::convert_compare.
639 (timode_scalar_chain::compute_convert_gain): New method to
640 determine the gain from converting a TImode chain to V1TImode.
641 (timode_scalar_chain::convert_op): New method to convert an
642 operand from TImode to V1TImode.
643 (timode_scalar_chain::convert_insn) <case REG>: Only PUT_MODE
644 on REG_EQUAL notes that were originally TImode (not CONST_INT).
645 Handle AND, ANDN, XOR, IOR, NOT and COMPARE.
646 (timode_mem_p): Helper predicate to check where operand is
647 memory reference with sufficient alignment for TImode STV.
648 (timode_scalar_to_vector_candidate_p): Use convertible_comparison_p
649 to check whether COMPARE is convertible. Handle SET_DESTs that
650 that are REG_P or MEM_P and SET_SRCs that are REG, CONST_INT,
651 CONST_WIDE_INT, MEM, AND, ANDN, IOR, XOR or NOT.
653 2022-07-11 Richard Sandiford <richard.sandiford@arm.com>
655 PR tree-optimization/106250
656 * tree-vect-loop.cc (vectorizable_reduction): Reinstate final
657 argument to directly_supported_p.
659 2022-07-11 Richard Biener <rguenther@suse.de>
661 * tree-into-ssa.cc (update_ssa): Do not forcefully
662 re-compute dominance fast queries for TODO_update_ssa_no_phi.
664 2022-07-11 Richard Biener <rguenther@suse.de>
666 PR tree-optimization/106228
667 * tree-vect-data-refs.cc (vect_setup_realignment): Adjust
668 VUSE compute for the non-loop case.
670 2022-07-11 Richard Biener <rguenther@suse.de>
672 * tree-into-ssa.cc (rewrite_mode::REWRITE_UPDATE_REGION): New.
673 (rewrite_update_dom_walker::rewrite_update_dom_walker): Update.
674 (rewrite_update_dom_walker::m_in_region_flag): New.
675 (rewrite_update_dom_walker::before_dom_children): If the region
676 to update is marked, STOP at exits.
677 (rewrite_blocks): For REWRITE_UPDATE_REGION mark the region
679 (dump_update_ssa): Use bitmap_empty_p.
680 (update_ssa): Likewise. Use REWRITE_UPDATE_REGION when
681 TODO_update_ssa_no_phi.
682 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Account
683 pending update_ssa to the caller.
685 2022-07-11 Richard Biener <rguenthert@suse.de>
688 * config/i386/i386-options.cc (ix86_set_current_function):
689 Rebuild the target optimization node whenever necessary,
690 not only when the optimization node didn't change.
692 2022-07-11 Richard Biener <rguenther@suse.de>
694 PR tree-optimization/106228
695 * tree-vect-data-refs.cc (vect_setup_realignment): Properly
696 set a VUSE operand on the emitted load.
698 2022-07-11 Aldy Hernandez <aldyh@redhat.com>
700 * gimple-range.cc (gimple_ranger::export_global_ranges): Remove
701 verification against legacy value_range.
702 (gimple_ranger::register_inferred_ranges): Same.
703 (gimple_ranger::export_global_ranges): Rename update_global_range
705 * tree-core.h (struct range_info_def): Remove.
706 (struct irange_storage_slot): New.
707 (struct tree_base): Remove SSA_NAME_ANTI_RANGE_P documentation.
708 (struct tree_ssa_name): Add vrange_storage support.
709 * tree-ssanames.cc (range_info_p): New.
710 (range_info_fits_p): New.
711 (range_info_alloc): New.
712 (range_info_free): New.
713 (range_info_get_range): New.
714 (range_info_set_range): New.
715 (set_range_info_raw): Remove.
716 (set_range_info): Adjust to use vrange_storage.
717 (set_nonzero_bits): Same.
718 (get_nonzero_bits): Same.
719 (duplicate_ssa_name_range_info): Remove overload taking
721 Rewrite tree overload to use vrange_storage.
722 (duplicate_ssa_name_fn): Adjust to use vrange_storage.
723 * tree-ssanames.h (struct range_info_def): Remove.
724 (set_range_info): Adjust prototype to take vrange.
725 * tree-vrp.cc (vrp_asserts::remove_range_assertions): Call
726 duplicate_ssa_name_range_info.
727 * tree.h (SSA_NAME_ANTI_RANGE_P): Remove.
728 (SSA_NAME_RANGE_TYPE): Remove.
729 * value-query.cc (get_ssa_name_range_info): Adjust to use
731 (update_global_range): Remove.
732 (get_range_global): Remove as_a<irange>.
733 * value-query.h (update_global_range): Remove.
734 * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges):
735 Rename update_global_range to set_range_info.
736 * value-range-storage.cc (vrange_storage::alloc_slot): Remove
739 2022-07-10 Aldy Hernandez <aldyh@redhat.com>
741 * value-range.cc (irange::operator=): Call verify_range.
742 (irange::irange_set): Normalize kind after everything else has
744 (irange::irange_set_anti_range): Same.
746 (irange::verify_range): Disallow nonzero masks for VARYING.
747 (irange::irange_union): Call verify_range.
748 Handle nonzero masks better.
749 (irange::irange_intersect): Same.
750 (irange::set_nonzero_bits): Calculate mask if either range has an
752 (irange::intersect_nonzero_bits): Same.
753 (irange::union_nonzero_bits): Same.
754 (range_tests_nonzero_bits): New.
755 (range_tests): Call range_tests_nonzero_bits.
756 * value-range.h (class irange): Remove set_nonzero_bits method
758 (irange::varying_compatible_p): Set nonzero mask.
760 2022-07-10 Xi Ruoyao <xry111@xry111.site>
762 * config/loongarch/loongarch.md (<any_div>di3_fake): Describe
763 the sign-extend of result in the RTL template.
764 (<any_div><mode>3): Adjust for <any_div>di3_fake change.
766 2022-07-10 Xi Ruoyao <xry111@xry111.site>
768 * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
769 Remove static, for use in the machine description file.
770 * config/loongarch/loongarch-protos.h:
771 (loongarch_check_zero_div_p): Add prototype.
772 * config/loongarch/loongarch.md (enabled): New attr.
773 (*<optab><mode>3): Add (=r,r,r) and (=&r,0,r) alternatives for
774 idiv. Conditionally enable the alternatives using
775 loongarch_check_zero_div_p.
776 (<optab>di3_fake): Likewise.
778 2022-07-10 Xi Ruoyao <xry111@xry111.site>
780 * config/loongarch/loongarch.md (mulsidi3_64bit): Use mulw.d.w
783 2022-07-09 Aldy Hernandez <aldyh@redhat.com>
785 * value-range.cc (irange::irange_single_pair_union): Set
786 VR_VARYING when appropriate.
788 2022-07-09 Vit Kabele <vit.kabele@sysgo.com>
790 * stor-layout.cc (finalize_record_size): Extend warning message.
792 2022-07-09 Sam Feifer <sfeifer@redhat.com>
794 PR tree-optimization/98304
795 * match.pd (n - (((n > C1) ? n : C1) & -C2)): New simplification.
797 2022-07-09 Jeff Law <jeffreyalaw@gmail.com>
799 * expr.cc (store_expr): Identify trailing NULs in a STRING_CST
800 initializer and use clear_storage rather than copying the
801 NULs to the destination array.
803 2022-07-09 Roger Sayle <roger@nextmovesoftware.com>
805 * config/i386/i386.md (define_peephole2): Use match_operand of
806 flags_reg_operand to capture and preserve the mode of FLAGS_REG.
807 (define_peephole2): Likewise.
808 (define_peephole2): Likewise...
810 2022-07-09 Roger Sayle <roger@nextmovesoftware.com>
812 * config/i386/i386-features.cc (convert_compare): Add support
813 for *testdi_not_doubleword pattern, "(compare (and (not ...)))"
814 by generating a pandn followed by ptest.
815 (convertible_comparison_p): Recognize both *cmpdi_doubleword and
816 recent *testdi_not_doubleword comparison patterns.
818 2022-07-09 Tamar Christina <tamar.christina@arm.com>
820 * config/s390/s390.cc (s390_expand_atomic): Pass false to store_bit_field to
821 indicate that the value is not undefined.
823 2022-07-09 Andrew Pinski <apinski@marvell.com>
825 PR tree-optimization/106087
826 * tree-ssa-dce.cc (simple_dce_from_worklist): Check
827 to make sure the statement is only defining one operand.
829 2022-07-08 Lewis Hyatt <lhyatt@gmail.com>
831 PR preprocessor/91733
832 * input.cc (find_end_of_line): New helper function.
833 (file_cache_slot::get_next_line): Recognize \r as a line ending.
834 * diagnostic-show-locus.cc (test_escaping_bytes_1): Adapt selftest
835 since \r will now be interpreted as a line-ending.
837 2022-07-08 Martin Liska <mliska@suse.cz>
840 * opts.cc (finish_options): Use 2 calls to
841 report_conflicting_sanitizer_options.
843 2022-07-08 Richard Biener <rguenther@suse.de>
845 PR tree-optimization/106226
846 * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
847 no SSA update is needed. Move virtual SSA update ...
848 * tree-vectorizer.cc (pass_vectorize::execute): ... here,
849 via forced virtual renaming when TODO_update_ssa_only_virtuals
851 (vect_transform_loops): Return TODO_update_ssa_only_virtuals
852 when virtual SSA update is required.
853 (try_vectorize_loop_1): Adjust.
854 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Allow
855 virtual renaming if the ABI forces an aggregate return
856 but the original call did not have a virtual definition.
858 2022-07-08 Martin Liska <mliska@suse.cz>
860 * toplev.cc (init_asm_output): Do not init asm_out_file.
862 2022-07-08 Tamar Christina <tamar.christina@arm.com>
864 PR tree-optimization/106063
865 * match.pd: Do not apply pattern after veclower is not supported.
867 2022-07-08 Thomas Schwinge <thomas@codesourcery.com>
869 * lto-cgraph.cc (input_offload_tables) <LTO_symtab_edge>: Correct
872 2022-07-08 Tamar Christina <tamar.christina@arm.com>
874 * expmed.cc (store_bit_field_1): Add parameter that indicates if value is
875 still undefined and if so emit a subreg move instead.
876 (store_integral_bit_field): Likewise.
877 (store_bit_field): Likewise.
878 * expr.h (write_complex_part): Likewise.
879 * expmed.h (store_bit_field): Add new parameter.
880 * builtins.cc (expand_ifn_atomic_compare_exchange_into_call): Use new
882 (expand_ifn_atomic_compare_exchange): Likewise.
883 * calls.cc (store_unaligned_arguments_into_pseudos): Likewise.
884 * emit-rtl.cc (validate_subreg): Likewise.
885 * expr.cc (emit_group_store): Likewise.
886 (copy_blkmode_from_reg): Likewise.
887 (copy_blkmode_to_reg): Likewise.
888 (clear_storage_hints): Likewise.
889 (write_complex_part): Likewise.
890 (emit_move_complex_parts): Likewise.
891 (expand_assignment): Likewise.
892 (store_expr): Likewise.
893 (store_field): Likewise.
894 (expand_expr_real_2): Likewise.
895 * ifcvt.cc (noce_emit_move_insn): Likewise.
896 * internal-fn.cc (expand_arith_set_overflow): Likewise.
897 (expand_arith_overflow_result_store): Likewise.
898 (expand_addsub_overflow): Likewise.
899 (expand_neg_overflow): Likewise.
900 (expand_mul_overflow): Likewise.
901 (expand_arith_overflow): Likewise.
903 2022-07-08 Haochen Jiang <haochen.jiang@intel.com>
906 * config/i386/sse.md (sse2_cvtps2pd<mask_name>_1):
907 Rename from *sse2_cvtps2pd<mask_name>_1.
908 (vec_unpacks_lo_v4sf): Add handler for memory operand.
910 2022-07-08 Lulu Cheng <chenglulu@loongson.cn>
912 * config/loongarch/loongarch.cc (loongarch_compute_frame_info):
913 Modify fp_sp_offset and gp_sp_offset's calculation method,
914 when frame->mask or frame->fmask is zero, don't minus UNITS_PER_WORD
917 2022-07-07 David Malcolm <dmalcolm@redhat.com>
919 * diagnostic-format-json.cc (json_from_location_range): Update for
920 removal of label_text::maybe_free in favor of automatic memory
922 * diagnostic-format-sarif.cc
923 (sarif_builder::make_location_object): Likewise.
924 * diagnostic-show-locus.cc (struct pod_label_text): New.
925 (class line_label): Convert m_text from label_text to pod_label_text.
926 (layout::print_any_labels): Move "text" to the line_label.
927 * tree-diagnostic-path.cc (path_label::get_text): Update for
928 removal of label_text::maybe_free in favor of automatic memory
930 (event_range::print): Likewise.
931 (default_tree_diagnostic_path_printer): Likewise.
932 (default_tree_make_json_for_path): Likewise.
934 2022-07-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
936 * statistics.cc (get_function_name): Add check to see if fn is not NULL.
938 2022-07-07 Richard Biener <rguenther@suse.de>
940 * tree-into-ssa.cc (iterating_old_ssa_names): New.
941 (add_new_name_mapping): Grow {new,old}_ssa_names separately
942 and only when actually needed. Assert we are not growing
943 the old_ssa_names set when iterating over it.
944 (update_ssa): Remove old_ssa_names copying and empty_p
945 query, note we are iterating over it and expect no set changes.
947 2022-07-07 Thomas Schwinge <thomas@codesourcery.com>
949 * config/i386/intelmic-mkoffload.cc (generate_host_descr_file)
950 (prepare_target_image, main): Handle OpenMP 'requires'.
951 (generate_host_descr_file): Switch to 'GOMP_offload_register_ver',
952 'GOMP_offload_unregister_ver'.
954 2022-07-07 Richard Biener <rguenther@suse.de>
957 * config/i386/i386-builtins.cc (ix86_add_new_builtins): Properly
960 2022-07-07 Richard Biener <rguenther@suse.de>
962 * tree-ssa-loop-manip.cc (add_exit_phis_var): Return the
963 number of LC PHIs inserted.
964 (add_exit_phis): Return whether any variable required
965 multiple LC PHI nodes.
966 (rewrite_into_loop_closed_ssa_1): Use TODO_update_ssa_no_phi
969 2022-07-07 Richard Biener <rguenther@suse.de>
971 * tree-ssa-loop-manip.cc (compute_live_loop_exits): Take
972 the def loop exit block bitmap as argument instead of
973 re-computing it here.
974 (add_exit_phis_var): Adjust.
975 (loop_name_cmp): New function.
976 (add_exit_phis): Sort variables to insert LC PHI nodes
977 after definition loop, for each definition loop compute
978 the exit block bitmap once.
979 (get_loops_exit): Remove.
980 (rewrite_into_loop_closed_ssa_1): Do not pre-record
981 all loop exit blocks into bitmaps. Record loop exits
984 2022-07-07 Dimitrije Milosevic <Dimitrije.Milosevic@Syrmia.com>
986 * config/mips/mips.cc (mips_asan_shadow_offset): Reformat
987 to handle the N32 ABI.
988 * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Remove
989 the macro, as it is not needed anymore.
991 2022-07-06 Thomas Schwinge <thomas@codesourcery.com>
993 * config/gcn/mkoffload.cc (process_obj): Clarify 'target_data' ->
995 * config/nvptx/mkoffload.cc (process): Likewise.
997 2022-07-06 Thomas Schwinge <thomas@codesourcery.com>
999 * omp-general.h (enum omp_requires): Use 'GOMP_REQUIRES_[...]'.
1001 2022-07-05 Andrew MacLeod <amacleod@redhat.com>
1003 * value-relation.cc (relation_to_code): New vector.
1004 (relation_oracle::validate_relation): New.
1005 (set_relation): Allow ssa1 == ssa2 to be registered.
1006 * value-relation.h (validate_relation): New prototype.
1007 (query_relation): Make internal variant protected.
1009 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
1011 * config/i386/i386.cc (ix86_rtx_costs) <COMPARE>: Provide costs
1012 for double word comparisons and tests (comparisons against zero).
1013 * config/i386/i386.md (*test<mode>_not_doubleword): Split DWI
1014 and;cmp into andn;cmp $0 as a pre-reload splitter.
1015 (*andn<dwi>3_doubleword_bmi): Use <dwi> instead of <mode> in name.
1016 (*<any_or><dwi>3_doubleword): Likewise.
1018 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
1019 Hongtao Liu <hongtao.liu@intel.com>
1021 * config/i386/i386-builtin.def (__builtin_ia32_palignr128): Change
1022 CODE_FOR_ssse3_palignrti to CODE_FOR_ssse3_palignrv1ti.
1023 * config/i386/i386-expand.cc (expand_vec_perm_palignr): Use V1TImode
1024 and gen_ssse3_palignv1ti instead of TImode.
1025 * config/i386/sse.md (SSESCALARMODE): Delete.
1026 (define_mode_attr ssse3_avx2): Handle V1TImode instead of TImode.
1027 (<ssse3_avx2>_palignr<mode>): Use VIMAX_AVX2_AVX512BW as a mode
1028 iterator instead of SSESCALARMODE.
1029 (ssse3_palignrdi): Optimize cases where operands[3] is 0 or 64,
1030 using a single move instruction (if required).
1032 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
1033 Uroš Bizjak <ubizjak@gmail.com>
1035 PR rtl-optimization/96692
1036 * config/i386/i386.md (define_split): Split ((A | B) ^ C) ^ D
1037 as (X & ~Y) ^ Z on target BMI when either C or D is A or B.
1039 2022-07-05 Richard Biener <rguenther@suse.de>
1041 PR tree-optimization/106198
1042 * tree-cfgcleanup.cc (repair_loop_structures): Always do a
1043 full LC SSA rewrite but only if any blocks changed loop
1046 2022-07-05 Richard Biener <rguenther@suse.de>
1048 * tree-ssa-loop-manip.cc (find_uses_to_rename_def): Remove.
1049 (find_uses_to_rename_in_loop): Likewise.
1050 (rewrite_into_loop_closed_ssa_1): Remove loop parameter and
1052 (rewrite_into_loop_closed_ssa): Adjust.
1054 2022-07-05 Richard Biener <rguenther@suse.de>
1056 PR tree-optimization/106186
1057 * tree-ssa-propagate.cc (clean_up_loop_closed_phi):
1058 Properly handle virtual PHI nodes.
1060 2022-07-05 Richard Biener <rguenther@suse.de>
1062 PR tree-optimization/106196
1063 * tree-vect-stmts.cc (vect_finish_stmt_generation): Properly
1064 handle aggregate returns of calls for VDEF updates.
1066 2022-07-05 Richard Biener <rguenther@suse.de>
1068 * tree-vect-loop-manip.cc (vect_set_loop_condition_normal):
1071 2022-07-05 Richard Sandiford <richard.sandiford@arm.com>
1073 * tree-vect-patterns.cc (vect_convert_input): Expect the input
1074 type to be signed for optab_vector_mixed_sign. Update the vectype
1075 at the same time as type.
1076 (vect_recog_dot_prod_pattern): Update accordingly. If usdot isn't
1077 available, try sdot instead.
1078 * tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): New function.
1079 (vect_model_reduction_cost): Model the cost of implementing usdot
1081 (vectorizable_reduction): Likewise. Skip target support test
1082 for lane reductions.
1083 (vect_emulate_mixed_dot_prod): New function.
1084 (vect_transform_reduction): Use it to emulate usdot via sdot.
1086 2022-07-05 Richard Biener <rguenther@suse.de>
1088 PR tree-optimization/106182
1089 * loop-init.cc (fix_loop_structure): Return the number
1090 of newly discovered plus the number of deleted loops.
1091 * tree-cfgcleanup.cc (repair_loop_structures): Adjust
1094 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
1096 * gimple-range-fold.cc
1097 (fold_using_range::range_of_ssa_name_with_loop_info): Restrict the
1098 call to SCEV for irange supported types.
1099 (fold_using_range::range_of_builtin_int_call): Convert to vrange.
1100 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Same.
1101 * tree-ssa-dom.cc (cprop_operand): Same.
1103 2022-07-04 Roger Sayle <roger@nextmovesoftware.com>
1106 * calls.cc (precompute_register_parameters): Allow promotion
1107 of floating point values to be passed in wider integer modes
1108 by calling new convert_float_to_wider_int.
1109 (expand_call): Allow floating point results to be returned in
1110 wider integer modes by calling new convert wider_int_to_float.
1111 * cfgexpand.cc (expand_value_return): Allow backends to promote
1112 a scalar floating point return value to a wider integer mode
1113 by calling new convert_float_to_wider_int.
1114 * expr.cc (convert_float_to_wider_int): New function.
1115 (convert_wider_int_to_float): Likewise.
1116 (expand_expr_real_1) <expand_decl_rtl>: Allow backends to promote
1117 scalar FP PARM_DECLs to wider integer modes, by calling new
1118 convert_wider_int_to_float.
1119 * expr.h (convert_modes): Name arguments for improved documentation.
1120 (convert_float_to_wider_int): Prototype new function here.
1121 (convert_wider_int_to_float): Likewise.
1122 * function.cc (assign_parm_setup_stack): Allow floating point
1123 values to be passed on the stack as wider integer modes by
1124 calling new convert_wider_int_to_float.
1126 2022-07-04 Martin Jambor <mjambor@suse.cz>
1128 PR tree-optimization/105860
1129 * tree-sra.cc (build_reconstructed_reference): Start expr
1130 traversal only just below the outermost union.
1132 2022-07-04 Richard Biener <rguenther@suse.de>
1134 * tree-vect-loop-manip.cc (vect_do_peeling): Revert assert
1135 and update virtual SSA form again. Assert we do so for
1136 a known set of transforms only.
1137 * tree-vectorizer.h (vec_info::any_known_not_updated_vssa): New.
1138 * tree-vect-stmts.cc (vectorizable_load): When vectorizing
1139 using load-lanes allow virtual SSA update.
1141 2022-07-04 Tobias Burnus <tobias@codesourcery.com>
1142 Chung-Lin Tang <cltang@codesourcery.com>
1143 Thomas Schwinge <thomas@codesourcery.com>
1145 * config/gcn/mkoffload.cc (process_asm): Write '#include <stdint.h>'.
1146 (process_obj): Pass omp_requires_mask to GOMP_offload_register_ver.
1147 (main): Ask lto1 to obtain omp_requires_mask and pass it on.
1148 * config/nvptx/mkoffload.cc (process, main): Likewise.
1149 * lto-cgraph.cc (omp_requires_to_name): New.
1150 (input_offload_tables): Save omp_requires_mask.
1151 (output_offload_tables): Read it, check for consistency,
1152 save value for mkoffload.
1153 * omp-low.cc (lower_omp_target): Force output_offloadtables
1154 call for OMP_REQUIRES_TARGET_USED.
1156 2022-07-04 Richard Biener <rguenther@suse.de>
1158 * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
1159 no SSA update is needed instead of updating virtual SSA
1161 * tree-vect-stmts.cc (vectorizable_load): For hoisted
1162 invariant load use the loop entry virtual use.
1163 For emulated gather loads use the virtual use of the
1164 original stmt like vect_finish_stmt_generation would do.
1166 2022-07-04 Eric Botcazou <ebotcazou@adacore.com>
1168 * tree-pretty-print.cc (dump_generic_node) <ARRAY_TYPE>: Add guard
1169 for direct circularity.
1171 2022-07-04 Eric Botcazou <ebotcazou@adacore.com>
1173 * dwarf2out.cc (gen_array_type_die): Use the default lower bound of
1174 the language for vector types.
1176 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
1178 * value-range-storage.cc (irange_storage_slot::set_irange): Set
1179 nonzero bits in irange.
1180 (irange_storage_slot::get_irange): Get nonzero bits from irange.
1181 * value-range.cc (irange::operator=): Set nonzero bits.
1182 (irange::irange_set): Same.
1183 (irange::irange_set_anti_range): Same.
1184 (irange::set): Same.
1185 (irange::verify_range): Same.
1186 (irange::legacy_equal_p): Check nonzero bits.
1187 (irange::equal_p): Same.
1188 (irange::contains_p): Handle nonzero bits.
1189 (irange::irange_union): Same.
1190 (irange::irange_intersect): Same.
1191 (irange::dump): Same.
1192 (irange::set_nonzero_bits): New.
1193 (irange::get_nonzero_bits): New.
1194 (irange::intersect_nonzero_bits): New.
1195 (irange::union_nonzero_bits): New.
1196 (irange::dump_bitmasks): New.
1197 * value-range.h (class irange): Add m_nonzero_mask.
1198 (gt_ggc_mx): Handle nonzero bits.
1200 (irange::set_undefined): Set nonzero bits.
1201 (irange::set_varying): Same.
1202 (irange::normalize_kind): Call set_undefined.
1204 2022-07-04 Richard Biener <rguenther@suse.de>
1206 * tree-ssa-loop-manip.h
1207 (rewrite_virtuals_into_loop_closed_ssa): Remove.
1208 (rewrite_into_loop_closed_ssa_1): Likewise.
1209 * tree-ssa-loop-manip.cc (rewrite_into_loop_closed_ssa_1):
1211 (rewrite_into_loop_closed_ssa): Remove loop overload,
1212 always rewrite virtuals into LC SSA.
1213 (check_loop_closed_ssa_bb): Also check virtuals.
1214 * tree-ssa-dce.cc (remove_dead_phis): Preserve virtual
1215 LC PHIs when in LC SSA.
1216 * gimple-loop-jam.cc (fuse_loops): Do not rewrite into
1217 loop-closed SSA here, but ...
1218 (tree_loop_unroll_and_jam): ... here once.
1219 * tree-if-conv.cc (version_loop_for_if_conversion): Use
1220 the cheaper TODO_update_ssa_no_phi.
1221 * tree-loop-distribution.cc (version_loop_by_alias_check):
1223 * tree-ssa-loop-unswitch.cc (tree_unswitch_single_loop):
1225 * tree-vect-loop-manip.cc (vect_loop_versioning): Likewise.
1226 (tree_unswitch_outer_loop): Do not rewrite virtuals into
1228 * tree-parloops.cc (transform_to_exit_first_loop_alt):
1230 (pass_parallelize_loops::execute): After finishing rewrite
1231 into LC SSA again because we do not maintain it properly.
1233 2022-07-04 Richard Biener <rguenther@suse.de>
1235 PR tree-optimization/106055
1236 * graphite.cc (canonicalize_loop_closed_ssa): Check whether
1239 2022-07-04 Haochen Jiang <haochen.jiang@intel.com>
1242 * config/i386/sse.md (extendv2sfv2df2): New define_expand.
1243 (sse2_cvtps2pd_<mask_name>): Change constraint of operands[1].
1244 (*sse2_cvtps2pd_<mask_name>_1): Rename from extendvsdfv2df2.
1246 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
1248 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use operator!=.
1249 * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same.
1250 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Use set
1252 (find_unswitching_predicates_for_bb): Same.
1253 * tree-vrp.cc (range_fold_unary_symbolics_p): Same.
1254 * value-range-equiv.cc (value_range_equiv::equal_p): Use operator==.
1255 * value-range.cc (irange::equal_p): Rename to...
1256 (irange::operator==): ...this.
1257 * value-range.h (irange::set): Remove.
1258 (irange::operator==): Remove.
1259 (irange::set_zero): Use set with two arguments.
1260 * vr-values.cc (vr_values::extract_range_from_binary_expr): Same.
1261 (vr_values::extract_range_from_unary_expr): Same.
1262 (check_for_binary_op_overflow): Same.
1263 (bounds_of_var_in_loop): Same.
1265 2022-07-03 H.J. Lu <hjl.tools@gmail.com>
1268 * config/i386/i386-protos.h (ix86_convert_const_vector_to_integer):
1270 * config/i386/i386.cc (ix86_convert_const_vector_to_integer):
1272 * config/i386/mmx.md (V_16_32_64): New.
1273 (*mov<mode>_imm): New patterns for stores with 16-bit, 32-bit
1274 and 64-bit constant vector.
1275 * config/i386/predicates.md (x86_64_const_vector_operand): New.
1277 2022-07-03 Aldy Hernandez <aldyh@redhat.com>
1279 * gimple-range-cache.cc: Include value-range-storage.h.
1280 * gimple-range-cache.h (class block_range_cache): Add "class" to
1282 * gimple-range-edge.cc
1283 (gimple_outgoing_range::gimple_outgoing_range): Allocate allocator.
1284 (gimple_outgoing_range::~gimple_outgoing_range): Free allocator.
1285 (gimple_outgoing_range::calc_switch_ranges): Dereference allocator.
1286 * gimple-range-edge.h: Add "class" to m_range_allocator.
1287 * gimple-range-infer.cc
1288 (infer_range_manager::infer_range_manager): Allocate allocator.
1289 (infer_range_manager::~infer_range_manager): Free allocator.
1290 (infer_range_manager::get_nonzero): Dereference allocator.
1291 (infer_range_manager::add_range): Same.
1292 * gimple-range-infer.h (class vrange_allocator): Add "class" to
1294 * value-range-storage.h (class vrange_allocator): Move from
1296 (class obstack_vrange_allocator): Same.
1297 (class ggc_vrange_allocator): Same.
1298 (vrange_allocator::alloc_vrange): Same.
1299 (vrange_allocator::alloc_irange): Same.
1300 * value-range.h (class vrange_allocator): Move to value-range-storage.h.
1301 (class obstack_vrange_allocator): Same.
1302 (class ggc_vrange_allocator): Same.
1304 2022-07-03 Aldy Hernandez <aldyh@redhat.com>
1306 * Makefile.in (OBJS): Add value-range-storage.o.
1307 (GTFILES): Add value-range-storage.h.
1308 * gengtype.cc (open_base_files): Add value-range-storage.h.
1309 * value-range-storage.cc: New file.
1310 * value-range-storage.h: New file.
1312 2022-07-03 Xi Ruoyao <xry111@xry111.site>
1313 Lulu Cheng <chenglulu@loongson.cn>
1315 * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
1316 New static function.
1317 (loongarch_idiv_insns): Use loongarch_check_zero_div_p instead
1318 of TARGET_CHECK_ZERO_DIV.
1319 (loongarch_output_division): Likewise.
1320 * common/config/loongarch/loongarch-common.cc
1321 (TARGET_DEFAULT_TARGET_FLAGS): Remove unneeded hook.
1322 * doc/invoke.texi: Update to match the new behavior.
1324 2022-07-03 Ian Lance Taylor <iant@golang.org>
1326 * tree-ssa-dse.cc (dse_optimize_stmt): Only delete a trapping
1327 statement if -fdelete-dead-exceptions.
1329 2022-07-02 Tim Lange <mail@tim-lange.me>
1332 * doc/invoke.texi: Added Wanalyzer-allocation-size.
1334 2022-07-02 Immad Mir <mirimmad17@gmail.com>
1337 * Makefile.in (ANALYZER_OBJS): Add sm-fd.o.
1338 * doc/invoke.texi: Add -Wanalyzer-fd-double-close, -Wanalyzer-fd-leak,
1339 -Wanalyzer-fd-access-mode-mismatch, -Wanalyzer-fd-use-without-check,
1340 -Wanalyzer-fd-use-after-close.
1342 2022-07-01 Aldy Hernandez <aldyh@redhat.com>
1344 * wide-int.h (struct trailing_wide_ints): Add m_num_elements.
1345 (trailing_wide_ints::set_precision): Add num_elements argument.
1346 (trailing_wide_ints::extra_size): Same.
1348 2022-07-01 Uroš Bizjak <ubizjak@gmail.com>
1350 * config/i386/i386.md (*andn<mode>3_doubleword_bmi):
1351 Use "r" constraint for operand 1.
1353 2022-07-01 Richard Biener <rguenther@suse.de>
1355 * tree-into-ssa.cc (rewrite_update_dom_walker::before_dom_children):
1356 Do not look at interesting_blocks which is a copy of
1358 (update_ssa): Do not initialize it.
1359 (pass_build_ssa::execute): Set interesting_blocks to NULL
1362 2022-07-01 Richard Biener <rguenther@suse.de>
1364 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Revert
1365 back to using maybe_ne (off, -1).
1367 2022-07-01 Richard Biener <rguenther@suse.de>
1369 * tree-ssa-sccvn.cc (vn_nary_op_insert_into): Make
1370 checking dominance check conditional on flag_checking.
1372 2022-07-01 Tobias Burnus <tobias@codesourcery.com>
1374 * config/gcn/gcn-protos.h (print_operand_address): Remove register
1375 keyword on 'rtx addr' argument.
1377 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
1378 Uroš Bizjak <ubizjak@gmail.com>
1380 * config/i386/i386.md (*andn<mode>3_doubleword_bmi): Add constraints
1381 to post-reload define_insn_and_split.
1383 2022-07-01 Jakub Jelinek <jakub@redhat.com>
1385 PR middle-end/106144
1386 * wide-int.cc (wi::shifted_mask): If end >= prec, return right after
1387 emitting element for shift or if shift is 0 first element after start.
1388 (wide_int_cc_tests): Add tests for equivalency of wi::mask and
1389 wi::shifted_mask with 0 start.
1391 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
1394 * config/i386/i386.md (peephole2): Avoid generating pop %esp
1395 when optimizing for size.
1397 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
1398 Uroš Bizjak <ubizjak@gmail.com>
1400 * config/i386/i386.md (general_szext_operand): Add TImode
1401 support using x86_64_hilo_general_operand predicate.
1402 (*cmp<dwi>_doubleword): Use x86_64_hilo_general_operand predicate.
1403 (*add<dwi>3_doubleword): Improved optimization of zero addition.
1404 (and<mode>3): Use SDWIM mode iterator to add support for double
1405 word bit-wise AND in TImode. Use force_reg when double word
1406 immediate operand isn't x86_64_hilo_general_operand.
1407 (and<dwi>3_doubleword): Generalized from anddi3_doubleword and
1408 converted into a post-reload splitter.
1409 (*andndi3_doubleword): Previous define_insn deleted.
1410 (*andn<mode>3_doubleword_bmi): New define_insn_and_split for
1411 TARGET_BMI that splits post-reload.
1412 (*andn<mode>3_doubleword): New define_insn_and_split for
1413 !TARGET_BMI, that lowers/splits before reload.
1414 (<any_or><mode>3): Use SDWIM mode iterator to add suppport for
1415 double word bit-wise XOR and bit-wise IOR in TImode. Use
1416 force_reg when double word immediate operand isn't
1417 x86_64_hilo_general_operand.
1418 (*<any_or>di3_doubleword): Generalized from <any_or>di3_doubleword.
1419 (one_cmpl<mode>2): Use SDWIM mode iterator to add support for
1420 double word bit-wise NOT in TImode.
1421 (one_cmpl<dwi>2_doubleword): Generalize from one_cmpldi2_doubleword
1422 and converted into a post-reload splitter.
1424 2022-07-01 Eric Botcazou <ebotcazou@adacore.com>
1426 PR middle-end/105874
1427 * expr.cc (expand_expr_real_1) <normal_inner_ref>: Force
1428 EXPAND_MEMORY for the expansion of the inner reference only
1429 in the usual cases where a memory reference is required.
1431 2022-07-01 Richard Biener <rguenther@suse.de>
1433 PR tree-optimization/106131
1434 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Force alias-set
1435 zero when offsetting the read looking through an aggregate
1438 2022-07-01 Martin Liska <mliska@suse.cz>
1440 PR tree-optimization/106126
1441 * gimple-if-to-switch.cc (struct condition_info): Save
1443 (find_conditions): Parse all BBs.
1444 (pass_if_to_switch::execute): Allow only side effects for first
1447 2022-07-01 Haochen Jiang <haochen.jiang@intel.com>
1449 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AVX512F_UNSET):
1450 Add OPTION_MASK_ISA2_AVX512BW_UNSET, remove
1451 OPTION_MASK_ISA2_AVX512BF16_UNSET and
1452 OPTION_MASK_ISA2_AVX512FP16_UNSET.
1454 2022-06-30 Joseph Myers <joseph@codesourcery.com>
1457 * lto-wrapper.cc (find_option): Add argument start.
1458 (merge_and_complain): Loop over existing_opt_index and
1459 existing_opt2_index for Xassembler check. Update calls to
1461 (find_and_merge_options): Add argument first to determine whether
1462 to merge options with those passed in *opts.
1463 (run_gcc): Update calls to find_and_merge_options.
1465 2022-06-30 Aldy Hernandez <aldyh@redhat.com>
1467 * gimple-range-cache.cc (block_range_cache::block_range_cache):
1468 Rename vrange_allocator to obstack_vrange_allocator.
1469 (ssa_global_cache::ssa_global_cache): Same.
1470 * gimple-range-edge.h (class gimple_outgoing_range): Same.
1471 * gimple-range-infer.h (class infer_range_manager): Same.
1472 * value-range.h (class vrange_allocator): Make abstract.
1473 (class obstack_vrange_allocator): Inherit from vrange_allocator.
1474 (class ggc_vrange_allocator): New.
1476 2022-06-30 Roger Sayle <roger@nextmovesoftware.com>
1477 Uroš Bizjak <ubizjak@gmail.com>
1479 * config/i386/i386.md (swap_mode): Rename from *swap<mode> to
1481 (<any_rotate>di3): Handle !TARGET_64BIT rotations by 32 bits
1482 via new gen_<insn>32di2_doubleword below.
1483 (<anyrotate>32di2_doubleword): New define_insn_and_split
1484 that splits after reload as either a pair of move instructions
1485 or an xchgl (using gen_swapsi).
1487 2022-06-30 Richard Biener <rguenther@suse.de>
1489 * domwalk.h (dom_walker::dom_walker): Update comment to
1490 reflect reality and new special argument value for
1492 * domwalk.cc (dom_walker::dom_walker): Recognize -1
1495 (rewrite_update_dom_walker::rewrite_update_dom_walker): Tell
1496 dom_walker to not use RPO.
1498 2022-06-30 Martin Liska <mliska@suse.cz>
1500 * tree-ssa-dom.cc (pass_dominator::execute): Remove m_ranger as
1503 2022-06-30 Andrew MacLeod <amacleod@redhat.com>
1505 PR tree-optimization/106114
1506 * gimple-range-fold.cc (fold_using_range::relation_fold_and_or): Check
1507 statement operands instead of GORI cache.
1509 2022-06-30 Antoni Boucher <bouanto@zoho.com>
1512 * config/i386/sse.md: Fix asm generation.
1514 2022-06-29 Sergei Trofimovich <siarheit@google.com>
1517 * system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
1519 2022-06-29 Joseph Myers <joseph@codesourcery.com>
1521 * config/nios2/nios2.cc (nios2_load_pic_address): Use gen_rtx_MEM
1522 not gen_const_mem for UNSPEC_PIC_CALL_SYM.
1524 2022-06-29 Richard Biener <rguenther@suse.de>
1526 PR rtl-optimization/106082
1527 * combine.cc (distribute_notes): Preserve notes when
1528 they indicate a call doesn't perform a non-local goto.
1530 2022-06-29 Richard Biener <rguenther@suse.de>
1532 PR tree-optimization/106112
1533 * tree-ssa-sccvn.cc (valueized_wider_op): Properly extend
1534 a constant operand according to its type.
1536 2022-06-29 Martin Liska <mliska@suse.cz>
1538 * doc/invoke.texi: Remove removed evrp-mode.
1540 2022-06-29 Lulu Cheng <chenglulu@loongson.cn>
1543 * config/loongarch/loongarch.cc (loongarch_build_integer):
1544 Remove undefined behavior from code.
1546 2022-06-28 Dimitar Dimitrov <dimitar@dinux.eu>
1548 * doc/sourcebuild.texi: Document new no_alignment_constraints
1549 effective target check.
1551 2022-06-28 Aldy Hernandez <aldyh@redhat.com>
1553 * Makefile.in: Remove gimple-ssa-evrp.o and gimple-ssa-evrp-analyze.o.
1554 * flag-types.h (enum evrp_mode): Remove.
1555 * params.opt: Remove --param=evrp-mode.
1556 * tree-vrp.cc (make_pass_early_vrp): New.
1557 (pass_vrp::execute): Call early VRP instance.
1558 * gimple-ssa-evrp-analyze.cc: Removed.
1559 * gimple-ssa-evrp-analyze.h: Removed.
1560 * gimple-ssa-evrp.cc: Removed.
1562 2022-06-28 Alexandre Oliva <oliva@adacore.com>
1564 * Makefile.in (TFLAGS): New.
1565 (GCC_FOR_TARGET): Add TFLAGS.
1566 (FLAGS_TO_PASS): Pass TFLAGS down.
1568 2022-06-28 Richard Biener <rguenther@suse.de>
1570 * tree-ssa-loop-split.cc (fix_loop_bb_probability): Do not
1573 2022-06-28 Richard Biener <rguenther@suse.de>
1575 * tree-into-ssa.cc (insert_updated_phi_nodes_for): Use
1576 mark_block_for_update.
1577 (update_ssa): Adjust.
1579 2022-06-28 Xi Ruoyao <xry111@xry111.site>
1582 * config/loongarch/loongarch.h (REG_CLASS_CONTENTS): Exclude
1583 $r13 from SIBCALL_REGS.
1584 * config/loongarch/loongarch.cc (loongarch_regno_to_class):
1585 Change $r13 to JIRL_REGS.
1587 2022-06-28 Aldy Hernandez <aldyh@redhat.com>
1589 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Remove
1592 2022-06-28 Richard Biener <rguenther@suse.de>
1594 PR middle-end/106053
1595 * match.pd ((T)a == (T)b): Avoid folding away sign
1596 changes in a comparison if we'd truncate to a boolean.
1598 2022-06-28 Kewen Lin <linkw@linux.ibm.com>
1600 * config/rs6000/rs6000.md (*rotl<mode>3_insert_4): Replace mode
1601 iterator GPR with SImode, adjust the condition and output template,
1603 (*rotlsi3_insert_4): ... this.
1605 2022-06-27 David Malcolm <dmalcolm@redhat.com>
1607 * genmatch.cc: Add "final" and "override" to various vfunc
1608 implementations, removing redundant "virtual" as appropriate.
1609 * gensupport.cc: Likewise.
1610 * gimple-range-cache.h: Likewise.
1611 * ipa-icf-gimple.h: Likewise.
1612 * ipa-icf.h: Likewise.
1613 * read-md.h: Likewise.
1614 * read-rtl-function.cc: Likewise.
1615 * tree-ssa-loop-ch.cc: Likewise.
1616 * tree-ssa-sccvn.cc: Likewise.
1618 2022-06-27 David Malcolm <dmalcolm@redhat.com>
1620 * config/i386/i386-features.h: Add "final" and "override" to
1621 scalar_chain vfunc implementations as appropriate.
1623 2022-06-27 David Malcolm <dmalcolm@redhat.com>
1625 * tree-switch-conversion.h: Add "final" and "override" to cluster
1626 vfunc implementations as appropriate.
1628 2022-06-27 David Malcolm <dmalcolm@redhat.com>
1630 * expr.cc: Add "final" and "override" to op_by_pieces_d vfunc
1631 implementations as appropriate.
1633 2022-06-27 David Malcolm <dmalcolm@redhat.com>
1635 * compare-elim.cc: Add "final" and "override" to dom_walker vfunc
1636 implementations, removing redundant "virtual" as appropriate.
1637 * gimple-ssa-strength-reduction.cc: Likewise.
1638 * ipa-prop.cc: Likewise.
1639 * rtl-ssa/blocks.cc: Likewise.
1640 * tree-into-ssa.cc: Likewise.
1641 * tree-ssa-dom.cc: Likewise.
1642 * tree-ssa-math-opts.cc: Likewise.
1643 * tree-ssa-phiopt.cc: Likewise.
1644 * tree-ssa-propagate.cc: Likewise.
1645 * tree-ssa-sccvn.cc: Likewise.
1646 * tree-ssa-strlen.cc: Likewise.
1647 * tree-ssa-uncprop.cc: Likewise.
1649 2022-06-27 David Malcolm <dmalcolm@redhat.com>
1651 * adjust-alignment.cc: Add "final" and "override" to opt_pass
1652 vfunc implementations, removing redundant "virtual" as
1654 * asan.cc: Likewise.
1655 * auto-inc-dec.cc: Likewise.
1656 * auto-profile.cc: Likewise.
1657 * bb-reorder.cc: Likewise.
1658 * cfgcleanup.cc: Likewise.
1659 * cfgexpand.cc: Likewise.
1660 * cfgrtl.cc: Likewise.
1661 * cgraphbuild.cc: Likewise.
1662 * combine-stack-adj.cc: Likewise.
1663 * combine.cc: Likewise.
1664 * compare-elim.cc: Likewise.
1665 * config/i386/i386-features.cc: Likewise.
1666 * coroutine-passes.cc: Likewise.
1667 * cprop.cc: Likewise.
1670 * df-core.cc: Likewise.
1672 * dwarf2cfi.cc: Likewise.
1673 * early-remat.cc: Likewise.
1674 * except.cc: Likewise.
1675 * final.cc: Likewise.
1676 * function.cc: Likewise.
1677 * fwprop.cc: Likewise.
1678 * gcse.cc: Likewise.
1679 * gimple-harden-conditionals.cc: Likewise.
1680 * gimple-if-to-switch.cc: Likewise.
1681 * gimple-isel.cc: Likewise.
1682 * gimple-laddress.cc: Likewise.
1683 * gimple-loop-interchange.cc: Likewise.
1684 * gimple-loop-jam.cc: Likewise.
1685 * gimple-loop-versioning.cc: Likewise.
1686 * gimple-low.cc: Likewise.
1687 * gimple-ssa-backprop.cc: Likewise.
1688 * gimple-ssa-evrp.cc: Likewise.
1689 * gimple-ssa-isolate-paths.cc: Likewise.
1690 * gimple-ssa-nonnull-compare.cc: Likewise.
1691 * gimple-ssa-split-paths.cc: Likewise.
1692 * gimple-ssa-store-merging.cc: Likewise.
1693 * gimple-ssa-strength-reduction.cc: Likewise.
1694 * gimple-ssa-warn-access.cc: Likewise.
1695 * gimple-ssa-warn-alloca.cc: Likewise.
1696 * gimple-ssa-warn-restrict.cc: Likewise.
1697 * gimple-warn-recursion.cc: Likewise.
1698 * graphite.cc: Likewise.
1699 * ifcvt.cc: Likewise.
1700 * init-regs.cc: Likewise.
1701 * ipa-comdats.cc: Likewise.
1702 * ipa-cp.cc: Likewise.
1703 * ipa-devirt.cc: Likewise.
1704 * ipa-fnsummary.cc: Likewise.
1705 * ipa-free-lang-data.cc: Likewise.
1706 * ipa-icf.cc: Likewise.
1707 * ipa-inline.cc: Likewise.
1708 * ipa-modref.cc: Likewise.
1709 * ipa-profile.cc: Likewise.
1710 * ipa-pure-const.cc: Likewise.
1711 * ipa-reference.cc: Likewise.
1712 * ipa-split.cc: Likewise.
1713 * ipa-sra.cc: Likewise.
1714 * ipa-visibility.cc: Likewise.
1717 * jump.cc: Likewise.
1718 * loop-init.cc: Likewise.
1719 * lower-subreg.cc: Likewise.
1720 * mode-switching.cc: Likewise.
1721 * modulo-sched.cc: Likewise.
1722 * multiple_target.cc: Likewise.
1723 * omp-expand.cc: Likewise.
1724 * omp-low.cc: Likewise.
1725 * omp-oacc-kernels-decompose.cc: Likewise.
1726 * omp-oacc-neuter-broadcast.cc: Likewise.
1727 * omp-offload.cc: Likewise.
1728 * omp-simd-clone.cc: Likewise.
1729 * passes.cc: Likewise.
1730 * postreload-gcse.cc: Likewise.
1731 * postreload.cc: Likewise.
1732 * predict.cc: Likewise.
1733 * recog.cc: Likewise.
1735 * reg-stack.cc: Likewise.
1736 * regcprop.cc: Likewise.
1737 * reginfo.cc: Likewise.
1738 * regrename.cc: Likewise.
1739 * reorg.cc: Likewise.
1740 * sancov.cc: Likewise.
1741 * sanopt.cc: Likewise.
1742 * sched-rgn.cc: Likewise.
1743 * stack-ptr-mod.cc: Likewise.
1744 * store-motion.cc: Likewise.
1745 * tracer.cc: Likewise.
1746 * trans-mem.cc: Likewise.
1747 * tree-call-cdce.cc: Likewise.
1748 * tree-cfg.cc: Likewise.
1749 * tree-cfgcleanup.cc: Likewise.
1750 * tree-complex.cc: Likewise.
1751 * tree-eh.cc: Likewise.
1752 * tree-emutls.cc: Likewise.
1753 * tree-if-conv.cc: Likewise.
1754 * tree-into-ssa.cc: Likewise.
1755 * tree-loop-distribution.cc: Likewise.
1756 * tree-nrv.cc: Likewise.
1757 * tree-object-size.cc: Likewise.
1758 * tree-parloops.cc: Likewise.
1759 * tree-predcom.cc: Likewise.
1760 * tree-profile.cc: Likewise.
1761 * tree-sra.cc: Likewise.
1762 * tree-ssa-ccp.cc: Likewise.
1763 * tree-ssa-copy.cc: Likewise.
1764 * tree-ssa-dce.cc: Likewise.
1765 * tree-ssa-dom.cc: Likewise.
1766 * tree-ssa-dse.cc: Likewise.
1767 * tree-ssa-forwprop.cc: Likewise.
1768 * tree-ssa-ifcombine.cc: Likewise.
1769 * tree-ssa-loop-ch.cc: Likewise.
1770 * tree-ssa-loop-im.cc: Likewise.
1771 * tree-ssa-loop-ivcanon.cc: Likewise.
1772 * tree-ssa-loop-prefetch.cc: Likewise.
1773 * tree-ssa-loop-split.cc: Likewise.
1774 * tree-ssa-loop-unswitch.cc: Likewise.
1775 * tree-ssa-loop.cc: Likewise.
1776 * tree-ssa-math-opts.cc: Likewise.
1777 * tree-ssa-phiopt.cc: Likewise.
1778 * tree-ssa-phiprop.cc: Likewise.
1779 * tree-ssa-pre.cc: Likewise.
1780 * tree-ssa-reassoc.cc: Likewise.
1781 * tree-ssa-sccvn.cc: Likewise.
1782 * tree-ssa-sink.cc: Likewise.
1783 * tree-ssa-strlen.cc: Likewise.
1784 * tree-ssa-structalias.cc: Likewise.
1785 * tree-ssa-uncprop.cc: Likewise.
1786 * tree-ssa-uninit.cc: Likewise.
1787 * tree-ssanames.cc: Likewise.
1788 * tree-stdarg.cc: Likewise.
1789 * tree-switch-conversion.cc: Likewise.
1790 * tree-tailcall.cc: Likewise.
1791 * tree-vect-generic.cc: Likewise.
1792 * tree-vectorizer.cc: Likewise.
1793 * tree-vrp.cc: Likewise.
1794 * tsan.cc: Likewise.
1795 * ubsan.cc: Likewise.
1796 * var-tracking.cc: Likewise.
1797 * vtable-verify.cc: Likewise.
1800 2022-06-27 Andrew Stubbs <ams@codesourcery.com>
1802 * config/gcn/gcn.md (*movbi): Remove assembler bug workarounds.
1804 (movdi_symbol_save_scc): Likewise.
1806 2022-06-27 Roger Sayle <roger@nextmovesoftware.com>
1808 PR rtl-optimization/7061
1809 * config/i386/i386.md (*highpartdisi2): New define_insn_and_split.
1811 2022-06-27 Roger Sayle <roger@nextmovesoftware.com>
1813 PR tree-optimization/94026
1814 * match.pd (((X << C1) & C2) eq/ne C3): New simplification.
1815 (((X >> C1) & C2) eq/ne C3): Likewise.
1817 2022-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1819 * statistics.cc: Include tree.h.
1820 (get_function_name): New function.
1821 (statistics_fini_pass_2): Call get_function_name instead of
1822 current_function_name.
1823 (statistics_counter_event): Call get_function_name instead of
1825 (statistics_histogram_event): Likewise.
1827 2022-06-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1829 * config/xtensa/xtensa.md:
1830 Suppress unnecessary emitting nop insn in the split patterns for
1831 integer/FP constant synthesis, and add new peephole2 pattern that
1832 folds such synthesized additions.
1834 2022-06-25 Aldy Hernandez <aldyh@redhat.com>
1836 * tree-ssa-dom.cc (dom_jt_state): Pass ranger to constructor
1838 (dom_jt_state::push): Remove m_evrp.
1839 (dom_jt_state::pop): Same.
1840 (dom_jt_state::record_ranges_from_stmt): Remove.
1841 (dom_jt_state::register_equiv): Remove updating of evrp ranges.
1842 (class dom_jt_simplifier): Pass ranger to constructor.
1843 Inherit from hybrid_jt_simplifier.
1844 (dom_jt_simplifier::simplify): Convert to ranger.
1845 (pass_dominator::execute): Same.
1846 (all_uses_feed_or_dominated_by_stmt): New.
1847 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): New.
1848 (dom_opt_dom_walker::before_dom_children): Call
1849 set_global_ranges_from_unreachable_edges.
1850 Do not call record_ranges_from_stmt.
1851 (dom_opt_dom_walker::after_dom_children): Remove evrp use.
1852 (cprop_operand): Use int_range<> instead of value_range.
1853 (dom_opt_dom_walker::fold_cond): New.
1854 (dom_opt_dom_walker::optimize_stmt): Pass ranger to
1856 Use fold_cond() instead of vrp_visit_cond_stmt().
1857 * tree-ssa-threadedge.cc (jt_state::register_equivs_stmt): Do not
1858 pass state to simplifier.
1859 * vr-values.h (class vr_values): Make fold_cond public.
1861 2022-06-25 Jeff Law <jeffreyalaw@gmail.com>
1863 * common/config/tilegx/tilegx-common.cc: Removed.
1864 * common/config/tilepro/tilepro-common.cc: Removed.
1865 * config.gcc: Remove tilegx and tilepro entries.
1866 * config/tilegx/constraints.md: Removed.
1867 * config/tilegx/feedback.h: Removed.
1868 * config/tilegx/linux.h: Removed.
1869 * config/tilegx/mul-tables.cc: Removed.
1870 * config/tilegx/predicates.md: Removed.
1871 * config/tilegx/sync.md: Removed.
1872 * config/tilegx/t-tilegx: Removed.
1873 * config/tilegx/tilegx-builtins.h: Removed.
1874 * config/tilegx/tilegx-c.cc: Removed.
1875 * config/tilegx/tilegx-generic.md: Removed.
1876 * config/tilegx/tilegx-modes.def: Removed.
1877 * config/tilegx/tilegx-multiply.h: Removed.
1878 * config/tilegx/tilegx-opts.h: Removed.
1879 * config/tilegx/tilegx-protos.h: Removed.
1880 * config/tilegx/tilegx.cc: Removed.
1881 * config/tilegx/tilegx.h: Removed.
1882 * config/tilegx/tilegx.md: Removed.
1883 * config/tilegx/tilegx.opt: Removed.
1884 * config/tilepro/constraints.md: Removed.
1885 * config/tilepro/feedback.h: Removed.
1886 * config/tilepro/gen-mul-tables.cc: Removed.
1887 * config/tilepro/linux.h: Removed.
1888 * config/tilepro/mul-tables.cc: Removed.
1889 * config/tilepro/predicates.md: Removed.
1890 * config/tilepro/t-tilepro: Removed.
1891 * config/tilepro/tilepro-builtins.h: Removed.
1892 * config/tilepro/tilepro-c.cc: Removed.
1893 * config/tilepro/tilepro-generic.md: Removed.
1894 * config/tilepro/tilepro-modes.def: Removed.
1895 * config/tilepro/tilepro-multiply.h: Removed.
1896 * config/tilepro/tilepro-protos.h: Removed.
1897 * config/tilepro/tilepro.cc: Removed.
1898 * config/tilepro/tilepro.h: Removed.
1899 * config/tilepro/tilepro.md: Removed.
1900 * config/tilepro/tilepro.opt: Removed.
1901 * configure.ac: Remove tilegx and tilepro entries.
1902 * configure: Rebuilt.
1903 * doc/extend.texi: Remove tilegx and tilepro entries.
1904 * doc/install.texi: Remove tilegx and tilepro entries.
1905 * doc/invoke.texi: Remove tilegx and tilepro entries.
1906 * doc/md.texi: Remove tilegx and tilepro entries.
1908 2022-06-25 Roger Sayle <roger@nextmovesoftware.com>
1909 Richard Biener <rguenther@suse.de>
1911 * regcprop.cc (pass_cprop_hardreg::execute): Perform a third
1912 iteration over each basic block that was updated by the second
1915 2022-06-24 Jason Merrill <jason@redhat.com>
1919 * doc/invoke.texi: Document changes.
1921 2022-06-24 Iain Buclaw <ibuclaw@gdcproject.org>
1923 * config/tilepro/gen-mul-tables.cc (tilegx_emit): Adjust loop
1924 condition to avoid overflow.
1926 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
1928 * config/rs6000/aix71.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
1929 OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
1930 * config/rs6000/darwin.h (MASK_PPC_GFXOPT): Replace with
1931 OPTION_MASK_PPC_GFXOPT.
1932 * config/rs6000/darwin64-biarch.h (MASK_PPC_GFXOPT): Same.
1933 * config/rs6000/default64.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
1934 OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
1935 * config/rs6000/rs6000-c.cc: Update comment.
1936 * config/rs6000/rs6000-cpus.def: Update RS6000_CPU macro calls.
1937 * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
1938 MASK_PPC_GPOPT with OPTION_MASK_PPC_GPOPT.
1939 (rs6000_builtin_mask_names): Replace MASK_PPC_GFXOPT, MASK_POPCNTB
1940 with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_POPCNTB.
1941 * config/rs6000/rs6000.h: (MASK_P8_VECTOR, MASK_P9_VECTOR,
1942 MASK_P9_MISC, MASK_POPCNTB, MASK_POPCNTD, MASK_PPC_GFXOPT,
1943 MASK_PPC_GPOPT, MASK_RECIP_PRECISION, MASK_SOFT_FLOAT,
1944 MASK_VSX, MASK_POWER10, MASK_P10_FUSION): Delete.
1946 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
1948 * config/rs6000/aix71.h (TARGET_DEFAULT): Replace MASK_MFCRF with
1950 * config/rs6000/darwin.h (TARGET_DEFAULT): Replace MASK_MULTIPLE with
1951 OPTION_MASK_MULTIPLE.
1952 * config/rs6000/darwin64-biarch.h (TARGET_DEFAULT): Same.
1953 * config/rs6000/default64.h (TARGET_DEFAULT): Replace MASK_MFCRF with
1955 * config/rs6000/eabi.h (TARGET_DEFAULT): Replace MASK_EABI with
1957 * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Same.
1958 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Replace
1959 MASK_ALTIVEC with OPTION_MASK_ALTIVEC.
1960 * config/rs6000/rs6000-cpus.def (MASK_ALTIVEC, MASK_CMPB,
1961 MASK_CRYPTO, MASK_DFP, MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI,
1962 MASK_FLOAT128_KEYWORD, MASK_FLOAT128_HW, MASK_FPRND,
1963 MASK_P8_FUSION, MASK_HARD_FLOAT, MASK_HTM, MASK_ISEL, MASK_MFCRF,
1964 MASK_MMA, MASK_MULHW, MASK_MULTIPLE, MASK_NO_UPDATE):
1966 OPTION_MASK_ALTIVEC, OPTION_MASK_CMPB, OPTION_MASK_CRYPTO,
1967 OPTION_MASK_DFP, OPTION_MASK_DIRECT_MOVE, OPTION_MASK_DLMZB,
1968 OPTION_MASK_EABI, OPTION_MASK_FLOAT128_KEYWORD,
1969 OPTION_MASK_FLOAT128_HW, OPTION_MASK_FPRND, OPTION_MASK_P8_FUSION,
1970 OPTION_MASK_HARD_FLOAT, OPTION_MASK_HTM, OPTION_MASK_ISEL,
1971 OPTION_MASK_MFCRF, OPTION_MASK_MMA, OPTION_MASK_MULHW,
1972 OPTION_MASK_MULTIPLE, OPTION_MASK_NO_UPDATE.
1973 * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
1974 MASK_MFCRF, MASK_ALTIVEC with OPTION_MASK_MFCRF, OPTION_MASK_ALTIVEC.
1975 * config/rs6000/rs6000.h (TARGET_DEFAULT): Replace MASK_MULTIPLE
1976 with OPTION_MASK_MULTIPLE.
1977 (MASK_ALTIVEC, MASK_CMPB, MASK_CRYPTO, MASK_DFP,
1978 MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI, MASK_FLOAT128_KEYWORD,
1979 MASK_FLOAT128_HW, MASK_FPRND, MASK_P8_FUSION, MASK_HARD_FLOAT,
1980 MASK_HTM, MASK_ISEL, MASK_MFCRF, MASK_MMA, MASK_MULHW,
1981 MASK_MULTIPLE, MASK_NO_UPDATE): Delete.
1982 * config/rs6000/vxworks.h (TARGET_DEFAULT): Replace MASK_EABI
1983 with OPTION_MASK_EABI.
1985 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
1987 * config/rs6000/rs6000.cc (RS6000_BTM_ALTIVEC, RS6000_BTM_CMPB,
1988 RS6000_BTM_VSX, RS6000_BTM_FRE, RS6000_BTM_P8_VECTOR,
1989 RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_MODULO,
1990 RS6000_BTM_CRYPTO, RS6000_BTM_HTM): Replace with OPTION_MASK_ALTIVEC,
1991 OPTION_MASK_CMPB, OPTION_MASK_VSX, OPTION_MASK_POPCNTB,
1992 OPTION_MASK_P8_VECTOR, OPTION_MASK_P9_VECTOR, OPTION_MASK_P9_MISC,
1993 OPTION_MASK_MODULO, OPTION_MASK_CRYPTO, OPTION_MASK_HTM.
1994 * config/rs6000/rs6000.h (RS6000_BTM_MODULO, RS6000_BTM_ALTIVEC,
1995 RS6000_BTM_CMPB, RS6000_BTM_VSX, RS6000_BTM_P8_VECTOR,
1996 RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_CRYPTO,
1997 RS6000_BTM_HTM, RS6000_BTM_FRE): Remove.
1999 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
2001 * config/rs6000/rs6000-c.cc: Update comments.
2002 * config/rs6000/rs6000.cc (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
2003 RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
2004 RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_DFP,
2005 RS6000_BTM_HARD_FLOAT,RS6000_BTM_LDBL128, RS6000_BTM_FLOAT128,
2006 RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Replace
2007 with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_PPC_GFXOPT,
2008 OPTION_MASK_POPCNTB, OPTION_MASK_POPCNTD,
2009 OPTION_MASK_FPRND, MASK_64BIT, MASK_POWERPC64,
2010 OPTION_MASK_DFP, OPTION_MASK_SOFT_FLOAT, OPTION_MASK_MULTIPLE,
2011 OPTION_MASK_FLOAT128_KEYWORD, OPTION_MASK_FLOAT128_HW,
2012 OPTION_MASK_MMA, OPTION_MASK_POWER10.
2013 * config/rs6000/rs6000.h (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
2014 RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
2015 RS6000_BTM_DFP, RS6000_BTM_HARD_FLOAT, RS6000_BTM_LDBL128,
2016 RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_FLOAT128,
2017 RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Delete.
2019 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
2021 * config/rs6000/rs6000.h (RS6000_BTM_COMMON, RS6000_BTM_ALWAYS,
2022 MASK_REGNAMES, OPTION_MASK_REGNAMES, MASK_PROTOTYPE,
2023 OPTION_MASK_PROTOTYPE, MASK_UPDATE, OPTION_MASK_UPDATE): Remove.
2025 2022-06-24 Richard Biener <rguenther@suse.de>
2027 PR middle-end/106070
2028 * match.pd (a != b ? a : b): Fix translation of
2029 operand_equal_for_comparison_p.
2031 2022-06-24 Jan Hubicka <jh@suse.cz>
2034 * tree-ssa-alias.cc (stmt_kills_ref_p): Check for external throw.
2036 2022-06-24 Martin Liska <mliska@suse.cz>
2038 PR middle-end/106059
2039 * profile-count.h: *= and /= operators need to modify this
2042 2022-06-24 Roger Sayle <roger@nextmovesoftware.com>
2043 Uroš Bizjak <ubizjak@gmail.com>
2046 * config/i386/i386.md (*<any_or>di3_doubleword): Split after
2047 reload. Use rtx_equal_p to avoid creating memory-to-memory moves,
2048 and emit NOTE_INSN_DELETED if operand[2] is zero (i.e. with -O0).
2050 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2052 * common.opt (nostdlib++): New.
2053 * doc/invoke.texi (-nostdlib++): Document it.
2055 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2057 * doc/sourcebuild.texi (Environment attributes): Document
2060 2022-06-23 David Malcolm <dmalcolm@redhat.com>
2062 * common.opt (fdiagnostics-show-rules): New option.
2063 * diagnostic-format-json.cc (diagnostic_output_format_init_json):
2064 Fix up context->show_rules.
2065 * diagnostic-format-sarif.cc
2066 (diagnostic_output_format_init_sarif): Likewise.
2067 * diagnostic-metadata.h (diagnostic_metadata::rule): New class.
2068 (diagnostic_metadata::precanned_rule): New class.
2069 (diagnostic_metadata::add_rule): New.
2070 (diagnostic_metadata::get_num_rules): New.
2071 (diagnostic_metadata::get_rule): New.
2072 (diagnostic_metadata::m_rules): New field.
2073 * diagnostic.cc (diagnostic_initialize): Initialize show_rules.
2074 (print_any_rules): New.
2075 (diagnostic_report_diagnostic): Call it.
2076 * diagnostic.h (diagnostic_context::show_rules): New field.
2077 * doc/invoke.texi (-fno-diagnostics-show-rules): New option.
2078 * opts.cc (common_handle_option): Handle
2079 OPT_fdiagnostics_show_rules.
2080 * toplev.cc (general_init): Set up global_dc->show_rules.
2082 2022-06-23 Martin Liska <mliska@suse.cz>
2085 * ubsan.cc (sanitize_unreachable_fn): Change order of calls
2086 in order to initialize UBSAN built-ins.
2088 2022-06-23 Martin Liska <mliska@suse.cz>
2091 * ipa-icf.cc (sem_item_optimizer::filter_removed_items):
2092 Skip variables with body_removed.
2094 2022-06-23 liuhongt <hongtao.liu@intel.com>
2096 * config/i386/sse.md:(sse4_2_pcmpestr): Replace REGNO with
2098 (sse4_2_pcmpistr): Ditto.
2100 2022-06-23 Xionghu Luo <xionghuluo@tencent.com>
2102 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Fix
2104 * tree-ssa-loop-ivopts.cc (struct iv_cand): Likewise.
2105 * tree-switch-conversion.h: Likewise.
2107 2022-06-22 Jason Merrill <jason@redhat.com>
2110 * common.opt: Add -funreachable-traps.
2111 * doc/invoke.texi (-funreachable-traps): Document it.
2112 * opts.cc (finish_options): Enable at -O0 or -Og.
2113 * tree.cc (build_common_builtin_nodes): Add __builtin_trap.
2114 (builtin_decl_unreachable, build_builtin_unreachable): New.
2115 * tree.h: Declare them.
2116 * ubsan.cc (sanitize_unreachable_fn): Factor out.
2117 (ubsan_instrument_unreachable): Use
2118 gimple_build_builtin_unreachable.
2119 * ubsan.h (sanitize_unreachable_fn): Declare.
2120 * gimple.cc (gimple_build_builtin_unreachable): New.
2121 * gimple.h: Declare it.
2122 * builtins.cc (expand_builtin_unreachable): Add assert.
2123 (fold_builtin_0): Call build_builtin_unreachable.
2124 * sanopt.cc: Don't run for just SANITIZE_RETURN
2125 or SANITIZE_UNREACHABLE when trapping.
2126 * cgraphunit.cc (walk_polymorphic_call_targets): Use new
2127 unreachable functions.
2128 * gimple-fold.cc (gimple_fold_call)
2129 (gimple_get_virt_method_for_vtable)
2130 * ipa-fnsummary.cc (redirect_to_unreachable)
2131 * ipa-prop.cc (ipa_make_edge_direct_to_target)
2132 (ipa_impossible_devirt_target)
2133 * ipa.cc (walk_polymorphic_call_targets)
2134 * tree-cfg.cc (pass_warn_function_return::execute)
2136 * tree-ssa-loop-ivcanon.cc (remove_exits_and_undefined_stmts)
2138 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
2141 2022-06-22 Richard Sandiford <richard.sandiford@arm.com>
2143 PR tree-optimization/106019
2144 * tree-data-ref.cc (dr_may_alias_p): Try using the
2145 innermost_loop_behavior to disambiguate non-loop queries.
2147 2022-06-22 Palmer Dabbelt <palmer@rivosinc.com>
2149 * doc/invoke.texi (RISC-V): Document -mtune=thead-c906.
2151 2022-06-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2153 * config/xtensa/xtensa.md (bswapsi2_internal):
2154 Enlarge the buffer that is obviously smaller than the template
2155 string given to sprintf().
2157 2022-06-21 Roger Sayle <roger@nextmovesoftware.com>
2158 Marek Polacek <polacek@redhat.com>
2159 Segher Boessenkool <segher@kernel.crashing.org>
2160 Kewen Lin <linkw@linux.ibm.com>
2163 * config/rs6000/rs6000.md (rotl<mode>3_insert_3): Check that
2164 exact_log2 doesn't return -1 (or zero).
2165 (plus_xor): New code iterator.
2166 (*rotl<mode>3_insert_3_<code>): New define_insn_and_split.
2168 2022-06-21 Nathan Sidwell <nathan@acm.org>
2170 * doc/invoke.texi (C++ Modules): Remove language-linkage
2173 2022-06-21 Arjun Shankar <arjun@redhat.com>
2175 PR tree-optimization/94899
2176 * match.pd (X + C < Y + C -> (signed) X < (signed) Y, if C is
2177 0x80000000): New simplification.
2179 2022-06-21 Jakub Jelinek <jakub@redhat.com>
2181 PR rtl-optimization/106032
2182 * ifcvt.cc (noce_try_sign_mask): Punt if !t_unconditional, and
2183 t may_trap_or_fault_p, even if it is cheap.
2185 2022-06-21 Jakub Jelinek <jakub@redhat.com>
2187 PR middle-end/106030
2188 * expr.cc (expand_cond_expr_using_cmove): Pass NULL_RTX instead of
2189 temp to expand_operands if mode has been promoted.
2191 2022-06-21 Xionghu Luo <xionghuluo@tencent.com>
2194 * gimple-if-to-switch.cc (find_conditions): Don't skip the first
2197 2022-06-21 Siddhesh Poyarekar <siddhesh@gotplt.org>
2199 PR tree-optimization/105736
2200 * tree-object-size.cc (addr_object_size): Return size_unknown
2201 when object offset computation returns an error.
2203 2022-06-20 H.J. Lu <hjl.tools@gmail.com>
2206 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
2207 false if PIC register is used when calling ifunc functions.
2209 2022-06-20 Richard Biener <rguenther@suse.de>
2211 PR middle-end/106027
2212 * fold-const.cc (fold_to_nonsharp_ineq_using_bound): Use the
2213 type of the prevailing comparison for the new comparison type.
2214 (fold_binary_loc): Use proper types for the A < X && A + 1 > Y
2215 to A < X && A >= Y folding.
2217 2022-06-20 Kewen Lin <linkw@linux.ibm.com>
2219 PR tree-optimization/105940
2220 * tree-vect-loop.cc (vect_analyze_loop_2): Add new parameter
2221 slp_done_for_suggested_uf and adjust with it accordingly.
2222 (vect_analyze_loop_1): Add new variable slp_done_for_suggested_uf,
2223 pass it down to vect_analyze_loop_2 for the initial analysis and
2224 applying suggested unroll factor.
2225 (vect_is_simple_reduction): Add parameter slp and adjust with it.
2226 (vect_analyze_scalar_cycles_1): Add parameter slp and pass down.
2227 (vect_analyze_scalar_cycles): Likewise.
2229 2022-06-20 Martin Liska <mliska@suse.cz>
2231 * bb-reorder.cc (find_traces_1_round): Add operators / and * and
2233 (better_edge_p): Likewise.
2234 * cfgloop.cc (find_subloop_latch_edge_by_profile): Likewise.
2235 * cfgloopmanip.cc (scale_loop_profile): Likewise.
2236 * cfgrtl.cc (force_nonfallthru_and_redirect): Likewise.
2237 * cgraph.cc (cgraph_edge::maybe_hot_p): Likewise.
2238 * config/sh/sh.cc (expand_cbranchdi4): Likewise.
2239 * dojump.cc (do_compare_rtx_and_jump): Likewise.
2240 * final.cc (compute_alignments): Likewise.
2241 * ipa-cp.cc (update_counts_for_self_gen_clones): Likewise.
2242 (decide_about_value): Likewise.
2243 * ipa-inline-analysis.cc (do_estimate_edge_time): Likewise.
2244 * loop-unroll.cc (unroll_loop_runtime_iterations): Likewise.
2245 * modulo-sched.cc (sms_schedule): Likewise.
2246 * omp-expand.cc (extract_omp_for_update_vars): Likewise.
2247 (expand_omp_ordered_sink): Likewise.
2248 (expand_omp_for_ordered_loops): Likewise.
2249 (expand_omp_for_static_nochunk): Likewise.
2250 * predict.cc (maybe_hot_count_p): Likewise.
2251 (probably_never_executed): Likewise.
2252 (set_even_probabilities): Likewise.
2253 (handle_missing_profiles): Likewise.
2254 (expensive_function_p): Likewise.
2255 * profile-count.h: Likewise.
2256 * profile.cc (compute_branch_probabilities): Likewise.
2257 * stmt.cc (emit_case_dispatch_table): Likewise.
2258 * symtab-thunks.cc (expand_thunk): Likewise.
2259 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop): Likewise.
2260 * tree-ssa-sink.cc (select_best_block): Likewise.
2261 * tree-switch-conversion.cc (switch_decision_tree::analyze_switch_statement): Likewise.
2262 (switch_decision_tree::balance_case_nodes): Likewise.
2263 (switch_decision_tree::emit_case_nodes): Likewise.
2264 * tree-vect-loop.cc (scale_profile_for_vect_loop): Likewise.
2266 2022-06-20 yulong <shiyulong@iscas.ac.cn>
2268 * config/riscv/riscv-builtins.cc (RISCV_ATYPE_VOID_PTR): New.
2269 * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Changed the FUNCTION_TYPE
2271 * config/riscv/riscv-ftypes.def (0): Remove unused.
2274 2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2276 * config/xtensa/xtensa.cc (xtensa_is_insn_L32R_p):
2277 Consider relaxed MOVI instructions as L32R.
2279 2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2281 * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
2282 Use can_create_pseudo_p(), instead of using individual
2283 reload_in_progress and reload_completed.
2284 (xtensa_expand_block_set_small_loop): Use xtensa_simm8x256(),
2285 the existing predicate function.
2286 (xtensa_is_insn_L32R_p, gen_int_relational, xtensa_emit_sibcall):
2287 Use the standard RTX code predicate macros such as MEM_P,
2288 SYMBOL_REF_P and/or CONST_INT_P.
2289 * config/xtensa/xtensa.md: Avoid using numeric literals to determine
2290 if callee-saved register, at the split patterns for indirect sibcall
2293 2022-06-18 Jakub Jelinek <jakub@redhat.com>
2295 * common.opt (flag_sanitize_trap): New variable.
2296 (fsanitize-trap=, fsanitize-trap): New options.
2297 (fsanitize-undefined-trap-on-error): Change into deprecated alias
2298 for -fsanitize-trap=all.
2299 * opts.h (struct sanitizer_opts_s): Add can_trap member.
2300 * opts.cc (finish_options): Complain about unsupported
2301 -fsanitize-trap= options.
2302 (sanitizer_opts): Add can_trap values to all entries.
2303 (get_closest_sanitizer_option): Ignore -fsanitize-trap=
2304 options which have can_trap false.
2305 (parse_sanitizer_options): Add support for -fsanitize-trap=.
2306 For -fsanitize-trap=all, enable
2307 SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT. Disallow
2308 -fsanitize-trap=vptr here.
2309 (common_handle_option): Handle OPT_fsanitize_trap_ and
2311 * sanopt.cc (maybe_optimize_ubsan_null_ifn): Check
2312 flag_sanitize_trap & SANITIZE_{NULL,ALIGNMENT} instead of
2313 flag_sanitize_undefined_trap_on_error.
2314 * gcc.cc (sanitize_spec_function): Use
2315 flag_sanitize & ~flag_sanitize_trap instead of flag_sanitize
2316 and drop use of flag_sanitize_undefined_trap_on_error in
2317 "undefined" handling.
2318 * ubsan.cc (ubsan_instrument_unreachable): Use
2319 flag_sanitize_trap & SANITIZE_??? instead of
2320 flag_sanitize_undefined_trap_on_error.
2321 (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
2322 ubsan_expand_objsize_ifn, ubsan_expand_ptr_ifn,
2323 ubsan_build_overflow_builtin, instrument_bool_enum_load,
2324 ubsan_instrument_float_cast, instrument_nonnull_arg,
2325 instrument_nonnull_return, instrument_builtin): Likewise.
2326 * doc/invoke.texi (-fsanitize-trap=, -fsanitize-trap): Document.
2327 (-fsanitize-undefined-trap-on-error): Document as deprecated
2328 alias of -fsanitize-trap.
2330 2022-06-18 Jakub Jelinek <jakub@redhat.com>
2332 PR middle-end/105998
2333 * varasm.cc (narrowing_initializer_constant_valid_p): Check
2334 SCALAR_INT_MODE_P instead of INTEGRAL_MODE_P, also break on
2335 ! INTEGRAL_TYPE_P and do the same check also on op{0,1}'s type.
2337 2022-06-18 Roger Sayle <roger@nextmovesoftware.com>
2339 PR tree-optimization/105835
2340 * match.pd (convert (mult zero_one_valued_p@1 INTEGER_CST@2)):
2341 Narrow integer multiplication by a zero_one_valued_p operand.
2342 (convert (cond @1 INTEGER_CST@2 INTEGER_CST@3)): Push integer
2343 conversions inside COND_EXPR where both data operands are
2346 2022-06-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2348 * config/xtensa/constraints.md (Y):
2349 Change to include integer constants until reload begins.
2350 * config/xtensa/predicates.md (move_operand): Ditto.
2351 * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
2352 Change to allow storing integer constants into litpool only after
2355 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
2358 * config/alpha/alpha-protos.h (alpha_store_data_bypass_p): New.
2359 * config/alpha/alpha.cc (alpha_store_data_bypass_p): New function.
2360 (alpha_store_data_bypass_p_1): Ditto.
2361 * config/alpha/ev4.md: Use alpha_store_data_bypass_p instead
2362 of generic store_data_bypass_p.
2363 (ev4_ist_c): Remove insn reservation.
2365 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
2368 * config/i386/i386.cc (ix86_function_arg): Assert that
2369 the mode of pointer argumet is equal to ptr_mode, not Pmode.
2371 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
2374 * config/i386/sse.md (vpmov splitter): Use (match_dup ...)
2375 instead of REGNO comparisons in combine splitter.
2377 2022-06-17 Segher Boessenkool <segher@kernel.crashing.org>
2379 * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Correct some
2382 2022-06-17 Kito Cheng <kito.cheng@sifive.com>
2384 * config/riscv/bitmanip.md: Supress warning.
2386 2022-06-17 Richard Earnshaw <rearnsha@arm.com>
2389 * config/arm/arm.cc (arm_print_operand, case 'V'): Use UINTVAL.
2390 Clear bits in the mask above bit 31.
2392 2022-06-17 Richard Earnshaw <rearnsha@arm.com>
2394 * config/arm/mve.md (*mve_mov<mode>): Re-order constraints
2395 to avoid spilling trivial literals to the constant pool.
2397 2022-06-16 David Malcolm <dmalcolm@redhat.com>
2399 * gimple-ssa-warn-access.cc (warn_string_no_nul): Add
2400 auto_diagnostic_group to group any warning with its note.
2401 (maybe_warn_for_bound): Likewise.
2402 (check_access): Likewise.
2403 (warn_dealloc_offset): Likewise.
2404 (pass_waccess::maybe_warn_memmodel): Likewise.
2405 (pass_waccess::maybe_check_dealloc_call): Likewise.
2406 (pass_waccess::warn_invalid_pointer): Likewise.
2407 (pass_waccess::check_dangling_stores): Likewise.
2409 2022-06-16 Jason Merrill <jason@redhat.com>
2411 * opts.cc (common_handle_option) [OPT_fsanitize_]: Set
2412 opts_set->x_flag_sanitize.
2414 2022-06-16 Jason Merrill <jason@redhat.com>
2416 * flags.h (issue_strict_overflow_warning): Comment #endif.
2418 2022-06-16 Andrew MacLeod <amacleod@redhat.com>
2420 * gimple-range-cache.cc (ranger_cache::apply_inferred_ranges): If name
2421 was invaraint before, clear the invariant bit.
2422 * gimple-range-gori.cc (gori_map::set_range_invariant): Add a flag.
2423 * gimple-range-gori.h (gori_map::set_range_invariant): Adjust prototype.
2425 2022-06-16 Andrew MacLeod <amacleod@redhat.com>
2427 * tree-ssa-propagate.cc (before_dom_children): Call value_of_stmt.
2429 2022-06-16 Jakub Jelinek <jakub@redhat.com>
2431 PR tree-optimization/105983
2432 * match.pd (y == XXX_MIN || x < y -> x <= y - 1,
2433 y != XXX_MIN && x >= y -> x > y - 1): Use :cs instead of :s
2434 on non-equality comparisons.
2436 2022-06-16 Jakub Jelinek <jakub@redhat.com>
2438 PR tree-optimization/105984
2439 * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
2440 x > stype_max / cst || x < stype_min / cst): fold_convert @1
2441 to TREE_TYPE (@0) just once and test for negative divisor
2442 also on that folded constant instead of on @1.
2444 2022-06-16 Jakub Jelinek <jakub@redhat.com>
2446 PR middle-end/105951
2447 * tree-ssa-ccp.cc (optimize_atomic_bit_test_and,
2448 optimize_atomic_op_fetch_cmp_0): Remember gimple_call_fn (call)
2449 as last argument to the internal functions.
2450 * builtins.cc (expand_ifn_atomic_bit_test_and): Adjust for the
2451 extra call argument to ifns. If expand_atomic_fetch_op fails for the
2452 lhs == NULL_TREE case, fall through into the optab code with
2453 gen_reg_rtx (mode) as target. If second expand_atomic_fetch_op
2454 fails, construct a CALL_EXPR and expand that.
2455 (expand_ifn_atomic_op_fetch_cmp_0): Adjust for the extra call argument
2456 to ifns. If expand_atomic_fetch_op fails, construct a CALL_EXPR and
2459 2022-06-16 Haochen Gui <guihaoc@gcc.gnu.org>
2462 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Enable
2463 gimple folding for RS6000_BIF_VCMPEQUT, RS6000_BIF_VCMPNET,
2464 RS6000_BIF_CMPGE_1TI, RS6000_BIF_CMPGE_U1TI, RS6000_BIF_VCMPGTUT,
2465 RS6000_BIF_VCMPGTST, RS6000_BIF_CMPLE_1TI, RS6000_BIF_CMPLE_U1TI.
2466 * config/rs6000/vector.md (VEC_IC): New mode iterator. Add support
2467 for new Power10 V1TI instructions.
2468 (vec_cmp<mode><mode>): Set mode iterator to VEC_IC.
2469 (vec_cmpu<mode><mode>): Likewise.
2470 (vector_nlt<mode>): Set mode iterator to VEC_IC.
2471 (vector_nltv1ti): Remove.
2472 (vector_gtu<mode>): Set mode iterator to VEC_IC.
2473 (vector_gtuv1ti): Remove.
2474 (vector_nltu<mode>): Set mode iterator to VEC_IC.
2475 (vector_nltuv1ti): Remove.
2476 (vector_geu<mode>): Set mode iterator to VEC_IC.
2477 (vector_ngt<mode>): Likewise.
2478 (vector_ngtv1ti): Remove.
2479 (vector_ngtu<mode>): Set mode iterator to VEC_IC.
2480 (vector_ngtuv1ti): Remove.
2481 (vector_gtu_<mode>_p): Set mode iterator to VEC_IC.
2482 (vector_gtu_v1ti_p): Remove.
2483 (vrotl<mode>3): Set mode iterator to VEC_IC. Emit insns for V1TI.
2484 (vrotlv1ti3): Remove.
2485 (vashr<mode>3): Set mode iterator to VEC_IC. Emit insns for V1TI.
2486 (vashrv1ti3): Remove.
2488 2022-06-16 Martin Liska <mliska@suse.cz>
2490 * gengtype-state.cc (read_a_state_token): Do not skip extra
2491 character after escaped sequence.
2493 2022-06-16 Martin Liska <mliska@suse.cz>
2496 * spellcheck.cc (test_find_closest_string): Add new test.
2497 * spellcheck.h (class best_match): Prefer a difference in
2498 trailing sign symbol.
2500 2022-06-16 liuhongt <hongtao.liu@intel.com>
2502 PR tree-optimization/53533
2503 * match.pd: Simplify (B * v + C) * D -> BD * v + CD and
2504 (v + B) * C + D -> C * v + BCD when B,C,D are all INTEGER_CST,
2505 and there's no overflow or !TYPE_OVERFLOW_UNDEFINED.
2507 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2509 * config/xtensa/xtensa.md (DSC): New split pattern and mode iterator.
2511 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2513 * config/xtensa/predicates.md (reload_operand):
2515 * config/xtensa/xtensa.md: New peephole2 pattern.
2517 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2519 * config/xtensa/xtensa.md (*round_up_to_even):
2520 New insn-and-split pattern.
2521 (*signed_ge_zero): Ditto.
2523 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2525 * config/xtensa/xtensa-protos.h (xtensa_prepare_expand_call,
2526 xtensa_emit_sibcall): New prototypes.
2527 (xtensa_expand_epilogue): Add new argument that specifies whether
2528 or not sibling call.
2529 * config/xtensa/xtensa.cc (TARGET_FUNCTION_OK_FOR_SIBCALL):
2530 New macro definition.
2531 (xtensa_prepare_expand_call): New function in order to share
2533 (xtensa_emit_sibcall, xtensa_function_ok_for_sibcall):
2535 (xtensa_expand_epilogue): Add new argument sibcall_p and use it
2536 for sibling call handling.
2537 * config/xtensa/xtensa.md (call, call_value):
2538 Use xtensa_prepare_expand_call.
2539 (call_internal, call_value_internal):
2540 Add the condition in order to be disabled if sibling call.
2541 (sibcall, sibcall_value, sibcall_epilogue): New expansions.
2542 (sibcall_internal, sibcall_value_internal): New insn patterns,
2543 and split ones in order to take care of the indirect sibcalls.
2545 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2547 * doc/invoke.texi: Document -mextra-l32r-costs= option.
2549 2022-06-15 David Malcolm <dmalcolm@redhat.com>
2552 * doc/invoke.texi: Add -fno-analyzer-undo-inlining.
2553 * tree-diagnostic-path.cc (default_tree_diagnostic_path_printer):
2554 Extend -fdiagnostics-path-format=separate-events so that with
2555 -fdiagnostics-show-path-depths it prints fndecls as well as stack
2558 2022-06-15 David Malcolm <dmalcolm@redhat.com>
2560 * value-relation.h: Add "final" and "override" to relation_oracle
2561 vfunc implementations as appropriate.
2563 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
2565 PR middle-end/105975
2566 Revert everything apart from the expand_fn_using_insn and
2567 expand_direct_optab_fn changes from:
2568 * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
2569 (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
2570 (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
2571 (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
2572 * internal-fn.h (direct_internal_fn_info::directly_mapped): New
2574 (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
2575 (direct_internal_fn_p): Also return true for internal functions
2576 that map directly to instructions defined target-insns.def.
2577 (direct_internal_fn): Adjust comment accordingly.
2578 * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
2579 (vectorizable_optab2): New local macros.
2580 (not_direct): Initialize directly_mapped.
2581 (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
2582 (gather_load_direct, len_load_direct, mask_store_direct)
2583 (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
2584 (vec_cond_direct, scatter_store_direct, len_store_direct)
2585 (vec_set_direct, unary_direct, binary_direct, ternary_direct)
2586 (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
2587 (while_direct, fold_extract_direct, fold_left_direct)
2588 (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
2589 (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
2590 (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
2591 (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
2592 (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
2593 (direct_internal_fn_types): Handle functions that map to instructions
2594 defined in target-insns.def.
2595 (direct_internal_fn_types): Likewise.
2596 (direct_internal_fn_supported_p): Likewise.
2597 (internal_fn_expanders): Likewise.
2598 (expand_fn_using_insn): New function,
2599 split out and adapted from...
2600 (expand_direct_optab_fn): ...here.
2601 (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
2602 (expand_GOMP_SIMT_EXIT): Likewise.
2603 (expand_GOMP_SIMT_LANE): Likewise.
2604 (expand_GOMP_SIMT_LAST_LANE): Likewise.
2605 (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
2606 (expand_GOMP_SIMT_VOTE_ANY): Likewise.
2607 (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
2608 (expand_GOMP_SIMT_XCHG_IDX): Likewise.
2610 2022-06-15 Richard Earnshaw <rearnsha@arm.com>
2613 * config/arm/arm.cc (gen_cpymem_ldrd_strd): Rename low_reg and hi_reg
2614 to first_reg and second_reg respectively. Initialize them correctly
2615 when generating big-endian code.
2617 2022-06-15 Richard Earnshaw <rearnsha@arm.com>
2620 * config/arm/arm.cc (arm_bfi_1_p): Use UINTVAL instead of XUINT.
2622 2022-06-15 Richard Biener <rguenther@suse.de>
2624 PR tree-optimization/105971
2625 * tree-ssa-alias.cc (refs_may_alias_p_2): Put bail-out for
2626 FUNCTION_DECL and LABEL_DECL refs after decl-decl disambiguation
2627 to leak less surprising alias results.
2629 2022-06-15 Richard Biener <rguenther@suse.de>
2631 PR tree-optimization/105969
2632 * gimple-ssa-sprintf.cc (get_origin_and_offset_r): Avoid division
2633 by zero in overflow check.
2635 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
2637 PR tree-optimization/105254
2638 PR tree-optimization/105940
2640 * config/aarch64/aarch64.cc
2641 (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
2642 loop_vec_info as argument. Restrict the unroll factor to values
2644 (aarch64_vector_costs::finish_cost): Update call accordingly.
2646 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
2648 * read-rtl.cc (find_int): Substitute symbolic constants
2649 before converting the string to an integer.
2651 2022-06-15 Roger Sayle <roger@nextmovesoftware.com>
2652 Richard Biener <rguenther@suse.de>
2654 * match.pd (convert (lshift @1 INTEGER_CST@2)): Narrow integer
2655 left shifts by a constant when the result is truncated, and the
2656 shift constant is well-defined.
2657 * tree-vect-patterns.cc (vect_recog_rotate_pattern): Add
2658 support for rotations of signed integer types, by lowering
2659 using unsigned vector shifts.
2661 2022-06-15 liuhongt <hongtao.liu@intel.com>
2664 * config/i386/sse.md (*avx_cmp<mode>3_ltint_not): Force_reg
2667 2022-06-14 Surya Kumari Jangala <jskumari@linux.ibm.com>
2669 PR rtl-optimization/105041
2670 * regrename.cc (check_new_reg_p): Use nregs value from du chain.
2672 2022-06-14 Segher Boessenkool <segher@kernel.crashing.org>
2674 * config/rs6000/vsx.md (VS_scalar): Delete.
2675 (rest of file): Adjust.
2677 2022-06-14 Jan Hubicka <hubicka@ucw.cz>
2680 * ipa-prop.cc (ipa_load_from_parm_agg): Punt on volatile loads.
2682 2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu>
2684 * config/riscv/bitmanip.md: Add split to handle opportunities
2685 for slli + sh[123]add.uw
2687 2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu>
2689 * config/riscv/predicates.md (consecutive_bits_operand):
2690 Implement new predicate.
2692 2022-06-14 Richard Biener <rguenther@suse.de>
2694 PR tree-optimization/105946
2695 * tree-ssa-uninit.cc (maybe_warn_pass_by_reference):
2696 Do not look at arguments not specified in the function call.
2698 2022-06-14 Richard Biener <rguenther@suse.de>
2700 PR middle-end/105965
2701 * match.pd (view_convert CONSTRUCTOR): Handle single-element
2704 2022-06-14 Eric Botcazou <ebotcazou@adacore.com>
2706 * warning-control.cc (copy_warning) [generic version]: Do not erase
2707 the warning data of the destination location when the no-warning
2708 bit is not set on the source.
2709 (copy_warning) [tree version]: Return early if TO is equal to FROM.
2710 (copy_warning) [gimple version]: Likewise.
2712 2022-06-14 Kewen Lin <linkw@linux.ibm.com>
2714 PR tree-optimization/105940
2715 * tree-vect-loop.cc (vect_analyze_loop_2): Move the place of
2716 applying suggested_unroll_factor after start_over.
2718 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2720 * config/xtensa/predicates.md (shifted_mask_operand):
2722 * config/xtensa/xtensa.md (*andsi3_const_pow2_minus_one):
2723 New insn-and-split pattern.
2724 (*andsi3_const_negative_pow2, *andsi3_const_shifted_mask,
2725 *masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
2726 *masktrue_const_shifted_mask): Ditto.
2728 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2730 * config/xtensa/xtensa.md (*masktrue_bitcmpl): New insn pattern.
2732 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2734 * config/xtensa/xtensa-protos.h (xtensa_emit_branch):
2735 Remove the first argument.
2736 (xtensa_emit_bit_branch): Remove it because now called only from the
2737 output statement of *bittrue insn pattern.
2738 * config/xtensa/xtensa.cc (gen_int_relational): Remove the last
2739 argument 'p_invert', and make so that the condition is reversed by
2741 (xtensa_expand_conditional_branch): Share the common path, and remove
2742 condition inversion code.
2743 (xtensa_emit_branch, xtensa_emit_movcc): Simplify by removing the
2744 "false side" pattern.
2745 (xtensa_emit_bit_branch): Remove it because of the abovementioned
2746 reason, and move the function body to *bittrue insn pattern.
2747 * config/xtensa/xtensa.md (*bittrue): Transplant the output
2748 statement from removed xtensa_emit_bit_branch().
2749 (*bfalse, *ubfalse, *bitfalse, *maskfalse): Remove the "false side"
2752 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2754 * config/xtensa/predicates.md (logical_shift_operator,
2755 xtensa_shift_per_byte_operator): New predicates.
2756 * config/xtensa/xtensa-protos.h (xtensa_shlrd_which_direction):
2758 * config/xtensa/xtensa.cc (xtensa_shlrd_which_direction):
2759 New helper function for funnel shift patterns.
2760 * config/xtensa/xtensa.md (ior_op): New code iterator.
2761 (*ashlsi3_1): Replace with new split pattern.
2762 (*shift_per_byte): Unify *ashlsi3_3x, *ashrsi3_3x and *lshrsi3_3x.
2763 (*shift_per_byte_omit_AND_0, *shift_per_byte_omit_AND_1):
2764 New insn-and-split patterns that redirect to *xtensa_shift_per_byte,
2765 in order to omit unnecessary bitwise AND operation.
2766 (*shlrd_reg_<code>, *shlrd_const_<code>, *shlrd_per_byte_<code>,
2767 *shlrd_per_byte_<code>_omit_AND):
2768 New insn patterns for funnel shifts.
2770 2022-06-13 Jason Merrill <jason@redhat.com>
2772 * tree-cfg.cc (pass_warn_function_return::execute): Also check
2775 2022-06-13 Maciej W. Rozycki <macro@embecosm.com>
2777 * config/riscv/riscv.md (length): Remove the explicit setting
2780 2022-06-13 H.J. Lu <hjl.tools@gmail.com>
2782 * common/config/i386/cpuinfo.h (get_available_features): Require
2783 AVX for F16C and VAES.
2785 2022-06-13 Uroš Bizjak <ubizjak@gmail.com>
2788 * config/i386/predicates.md (register_no_elim_operand):
2789 Return true for subreg of a memory operand.
2791 2022-06-13 Richard Sandiford <richard.sandiford@arm.com>
2793 * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
2794 (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
2795 (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
2796 (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
2797 * internal-fn.h (direct_internal_fn_info::directly_mapped): New
2799 (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
2800 (direct_internal_fn_p): Also return true for internal functions
2801 that map directly to instructions defined target-insns.def.
2802 (direct_internal_fn): Adjust comment accordingly.
2803 * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
2804 (vectorizable_optab2): New local macros.
2805 (not_direct): Initialize directly_mapped.
2806 (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
2807 (gather_load_direct, len_load_direct, mask_store_direct)
2808 (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
2809 (vec_cond_direct, scatter_store_direct, len_store_direct)
2810 (vec_set_direct, unary_direct, binary_direct, ternary_direct)
2811 (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
2812 (while_direct, fold_extract_direct, fold_left_direct)
2813 (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
2814 (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
2815 (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
2816 (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
2817 (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
2818 (direct_internal_fn_types): Handle functions that map to instructions
2819 defined in target-insns.def.
2820 (direct_internal_fn_types): Likewise.
2821 (direct_internal_fn_supported_p): Likewise.
2822 (internal_fn_expanders): Likewise.
2824 2022-06-13 Richard Sandiford <richard.sandiford@arm.com>
2826 * internal-fn.cc (expand_fn_using_insn): New function,
2827 split out and adapted from...
2828 (expand_direct_optab_fn): ...here.
2829 (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
2830 (expand_GOMP_SIMT_EXIT): Likewise.
2831 (expand_GOMP_SIMT_LANE): Likewise.
2832 (expand_GOMP_SIMT_LAST_LANE): Likewise.
2833 (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
2834 (expand_GOMP_SIMT_VOTE_ANY): Likewise.
2835 (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
2836 (expand_GOMP_SIMT_XCHG_IDX): Likewise.
2838 2022-06-13 Jakub Jelinek <jakub@redhat.com>
2840 * omp-expand.cc (expand_omp_target): Remap user provided
2841 device clause arguments, -1 to -2 and -2 to -3, either
2842 at compile time if constant, or at runtime.
2844 2022-06-13 Eric Botcazou <ebotcazou@adacore.com>
2846 * common.opt (finstrument-functions): Set explicit value.
2847 (-finstrument-functions-once): New option.
2848 * doc/invoke.texi (Program Instrumentation Options): Document it.
2849 * gimplify.cc (build_instrumentation_call): New static function.
2850 (gimplify_function_tree): Call it to emit the instrumentation calls
2851 if -finstrument-functions[-once] is specified.
2853 2022-06-13 Eric Botcazou <ebotcazou@adacore.com>
2855 * dwarf2out.cc (output_one_line_info_table): Initialize prev_addr.
2856 * gimple.h (gimple_set_location): Do not copy warning data from
2857 the previous location when it is UNKNOWN_LOCATION.
2858 * optabs.cc (expand_widen_pattern_expr): Always set oprnd{1,2}.
2860 2022-06-13 Jakub Jelinek <jakub@redhat.com>
2863 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
2864 *<insn><dwi>3_doubleword_mask): Use operands[3] masked with
2865 (<MODE_SIZE> * BITS_PER_UNIT) - 1 as AND operand instead of
2866 operands[3] unmodified.
2868 2022-06-12 Simon Wright <simon@pushface.org>
2871 * config/darwin-driver.cc (darwin_find_version_from_kernel): If the OS
2872 version is darwin20 (macOS 11) or greater, truncate the version to the
2875 2022-06-12 Mark Mentovai <mark@mentovai.com>
2877 * config/darwin-c.cc: Make -mmacosx-version-min more future-proof.
2879 2022-06-12 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2882 * config/aarch64/aarch64-sve-builtins-base.cc: Include ssa.h.
2883 (svld1rq_impl::fold): Define.
2884 * config/aarch64/aarch64.cc (expand_vec_perm_d): Define new members
2885 op_mode and op_vec_flags.
2886 (aarch64_evpc_reencode): Initialize newd.op_mode and
2888 (aarch64_evpc_sve_dup): New function.
2889 (aarch64_expand_vec_perm_const_1): Gate existing calls to
2890 aarch64_evpc_* functions under d->vmode == d->op_mode,
2891 and call aarch64_evpc_sve_dup.
2892 (aarch64_vectorize_vec_perm_const): Remove assert
2893 d->vmode != d->op_mode, and initialize d.op_mode and d.op_vec_flags.
2894 * tree-cfg.cc (verify_gimple_assign_ternary): Allow different
2895 vector types for lhs and rhs in VEC_PERM_EXPR if rhs3 is
2898 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2900 * config/xtensa/xtensa-protos.h (xtensa_constantsynth):
2902 * config/xtensa/xtensa.cc (xtensa_emit_constantsynth,
2903 xtensa_constantsynth_2insn, xtensa_constantsynth_rtx_SLLI,
2904 xtensa_constantsynth_rtx_ADDSUBX, xtensa_constantsynth):
2905 New backend functions that process the abovementioned logic.
2906 (xtensa_emit_move_sequence): Revert the previous changes.
2907 * config/xtensa/xtensa.md: New split patterns for integer
2908 and floating-point, as the frontend part.
2910 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2912 * config/xtensa/xtensa.cc (xtensa_rtx_costs): Correct wrong case
2913 for ABS and NEG, add missing case for BSWAP and CLRSB, and
2914 double the costs for integer divisions using libfuncs if
2915 optimizing for speed, in order to take advantage of fast constant
2916 division by multiplication.
2917 (TARGET_INSN_COST): New macro definition.
2918 (xtensa_is_insn_L32R_p, xtensa_insn_cost): New functions for
2919 calculating relative costs of a RTL insns, for both of speed and
2921 * config/xtensa/xtensa.md (return, nop, trap): Correct values of
2922 the attribute "length" that depends on TARGET_DENSITY.
2923 (define_asm_attributes, blockage, frame_blockage): Add missing
2925 * config/xtensa/xtensa.opt (-mextra-l32r-costs=): New machine-
2926 dependent option, however, preparatory work for now.
2928 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2930 * config/xtensa/xtensa.cc (xtensa_expand_block_set_small_loop):
2931 Pass through the block length / loop count conditions if
2932 zero-overhead looping is configured and active,
2934 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2936 * config/xtensa/xtensa.md (mulsidi3, umulsidi3):
2937 Split into individual signedness, in order to use libcall
2938 "__umulsidi3" but not the other.
2939 (<u>mulhisi3): Merge into one by using code iterator.
2940 (<u>mulsidi3, mulhisi3, umulhisi3): Remove.
2942 2022-06-11 Michael Meissner <meissner@linux.ibm.com>
2944 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Do
2945 not generate block copies with vector pair instructions if we are
2948 2022-06-10 Roger Sayle <roger@nextmovesoftware.com>
2950 PR rtl-optimization/7061
2951 * expr.cc (emit_group_store): For groups that consist of a single
2952 scalar integer register that hold a complex mode value, use
2953 gen_lowpart to generate a SUBREG to "view_convert" to the complex
2954 mode. For modes of different sizes, first convert to an integer
2955 mode of the appropriate size.
2957 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2959 * config/xtensa/xtensa.md (clrsbsi2): New insn pattern.
2961 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2963 * config/xtensa/xtensa.md (*andsi3_bitcmpl):
2964 New insn_and_split pattern.
2966 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2968 * config/xtensa/xtensa.md (one_cmplsi2):
2969 Rearrange as an insn_and_split pattern.
2971 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2973 * config/xtensa/xtensa.md (bswaphi2): New insn pattern.
2975 2022-06-09 Segher Boessenkool <segher@kernel.crashing.org>
2977 * config/rs6000/rs6000.md (FP_ISA3): Delete.
2978 (float<QHI:mode><FP_ISA3:mode>2): Rename to...
2979 (float<QHI:mode><SFDF:mode>2): ... this. Adjust.
2980 (*float<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
2981 (*float<QHI:mode><SFDF:mode>2_internal): ... this. Adjust.
2982 (floatuns<QHI:mode><FP_ISA3:mode>2): Rename to...
2983 (floatuns<QHI:mode><SFDF:mode>2): ... this. Adjust.
2984 (*floatuns<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
2985 (*floatuns<QHI:mode><SFDF:mode>2_internal): ... this. Adjust.
2987 2022-06-09 Maciej W. Rozycki <macro@embecosm.com>
2989 * config/riscv/riscv.md
2990 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
2991 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Emit a tab
2992 rather than space with FSFLAGS.
2994 2022-06-09 Tobias Burnus <tobias@codesourcery.com>
2996 * omp-offload.cc (omp_discover_declare_target_tgt_fn_r,
2997 omp_discover_declare_target_fn_r): Don't walk reverse-offload
3000 2022-06-09 Jakub Jelinek <jakub@redhat.com>
3002 * doc/invoke.texi (-Waddress): Fix a typo in small example.
3003 Fix typos inptr_t -> intptr_t and uinptr_t -> uintptr_t.
3005 2022-06-09 Cui,Lili <lili.cui@intel.com>
3008 * config/i386/x86-tune-costs.h (skylake_cost): Raise the gpr load cost
3009 from 4 to 6 and gpr store cost from 6 to 8. Change SSE loads and
3010 unaligned loads cost from {6, 6, 6, 10, 20} to {8, 8, 8, 8, 16}.
3011 (icelake_cost): Ditto.
3012 (alderlake_cost): Raise the gpr store cost from 6 to 8 and SSE loads,
3013 stores and unaligned stores cost from {6, 6, 6, 10, 15} to
3016 2022-06-09 Haochen Gui <guihaoc@gcc.gnu.org>
3018 * config/rs6000/rs6000.md (define_split for bswapdi load): Merge shift
3019 and ior insns to one rotate and mask insn.
3020 (define_split for bswapdi register): Likewise.
3022 2022-06-08 Roger Sayle <roger@nextmovesoftware.com>
3024 PR middle-end/105874
3025 * expr.cc (expand_expr_real_1) <normal_inner_ref>: New local
3026 variable tem_modifier for calculating the expand_modifier enum to
3027 use for expanding tem. If tem is a VAR_DECL, use EXPAND_MEMORY.
3029 2022-06-08 Max Filippov <jcmvbkbc@gmail.com>
3032 * config/xtensa/xtensa.md (movdi): Rename 'first' and 'second'
3033 to 'lowpart' and 'highpart' so that they match 'gen_lowpart' and
3034 'gen_highpart' bitwise semantics and fix order of highpart and
3035 lowpart depending on target endianness.
3037 2022-06-08 Chung-Ju Wu <jasonwucj@gmail.com>
3039 * config/arm/arm-cpus.in (star-mc1): New cpu.
3040 * config/arm/arm-tables.opt: Regenerate.
3041 * config/arm/arm-tune.md: Regenerate.
3042 * doc/invoke.texi: Update docs.
3044 2022-06-08 liuhongt <hongtao.liu@intel.com>
3048 * config/i386/i386.md (*movsi_internal): Change alternative
3050 (*movdi_internal): Ditto.
3051 * config/i386/sse.md (vec_set<mode>_0): Change alternative *r
3053 (*vec_extractv4sf_mem): Ditto.
3054 (*vec_extracthf): Ditto.
3056 2022-06-07 Richard Earnshaw <rearnsha@arm.com>
3059 * config/arm/arm.cc (arm_bfi_1_p): New function.
3060 (arm_bfi_p): New function.
3061 (arm_rtx_costs_internal): Add costs for BFI idioms.
3062 (arm_print_operand [case 'V']): Format output for BFI/BFC masks.
3063 * config/arm/constraints.md (Dj): New constraint.
3064 * config/arm/arm.md (arm_andsi3_insn): Add alternative to use BFC.
3065 (insv_zero): Convert to an insn with a split.
3066 (*bfi, *bfi_alt1, *bfi_alt2, *bfi_alt3): New patterns.
3068 2022-06-07 liuhongt <hongtao.liu@intel.com>
3071 * config/i386/sse.md (ssse3_palignrdi): Change alternative 2
3074 2022-06-07 Roger Sayle <roger@nextmovesoftware.com>
3076 PR middle-end/105853
3078 * calls.cc (load_register_parameters): Call store_constructor
3079 and int_expr_size directly instead of expanding via expand_expr.
3080 * expr.cc (static void store_constructor): Don't prototype here.
3081 (static HOST_WIDE_INT int_expr_size): Likewise.
3082 (store_constructor): No longer static.
3083 (int_expr_size): Likewise, no longer static.
3084 * expr.h (store_constructor): Prototype here.
3085 (int_expr_size): Prototype here.
3087 2022-06-07 Jan Beulich <jbeulich@suse.com>
3090 2022-06-03 Jan Beulich <jbeulich@suse.com>
3092 * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
3093 * configure.ac: Check for objcopy, producing
3094 ORIGINAL_OBJCOPY_FOR_TARGET.
3095 * configure: Update accordingly.
3096 * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
3099 2022-06-07 Jakub Jelinek <jakub@redhat.com>
3101 * tree.h (OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER): Define.
3102 * tree-pretty-print.cc (dump_omp_clause) <case OMP_CLAUSE_LINEAR>:
3103 Adjust clause printing style depending on
3104 OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER.
3106 2022-06-07 Jan Beulich <jbeulich@suse.com>
3108 * config/i386/i386-builtin.def (__builtin_ia32_psadbw256):
3110 * config/i386/i386-builtin-types.def: New function type
3111 (V4DI, V32QI, V32QI).
3112 * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle
3113 V4DI_FTYPE_V32QI_V32QI.
3115 2022-06-07 Jan Beulich <jbeulich@suse.com>
3117 * config/i386/i386.cc (ix86_attr_length_vex_default): Take REX.B
3118 into account for reg-only insns.
3120 2022-06-07 Roger Sayle <roger@nextmovesoftware.com>
3122 * config/i386/i386.cc (ix86_rtx_costs): Add a new case for
3123 IF_THEN_ELSE, and provide costs for TARGET_XOP's vpcmov and
3124 TARGET_CMOVE's (scalar integer) conditional moves.
3125 * config/i386/sse.md (define_split): Recognize XOP's vpcmov
3126 from its equivalent (canonical) pxor;pand;pxor sequence.
3128 2022-06-07 Kewen Lin <linkw@linux.ibm.com>
3130 * machmode.def (VECTOR_MODES_WITH_PREFIX): Update document for
3133 2022-06-06 Andrew Stubbs <ams@codesourcery.com>
3135 * config.in: Regenerate.
3136 * configure: Regenerate.
3137 * configure.ac: Reinstate HAVE_GAS_ARM_EXTENDED_ARCH test.
3139 2022-06-04 Roger Sayle <roger@nextmovesoftware.com>
3142 * calls.cc (load_register_parameters): When loading a suitable
3143 immediate_const_ctor_p VAR_DECL into a single word_mode register,
3144 construct it directly in a pseudo rather than read it (by parts)
3146 * expr.cc (int_expr_size): Make tree argument a const_tree.
3147 (immediate_const_ctor_p): Helper predicate. Return true for
3148 simple constructors that may be materialized in a register.
3149 (expand_expr_real_1) [VAR_DECL]: When expanding a constant
3150 VAR_DECL with a suitable immediate_const_ctor_p constructor
3151 use store_constructor to materialize it directly in a pseudo.
3152 * expr.h (immediate_const_ctor_p): Prototype here.
3153 * varasm.cc (initializer_constant_valid_for_bitfield_p): Change
3154 VALUE argument from tree to const_tree.
3155 * varasm.h (initializer_constant_valid_for_bitfield_p): Update
3158 2022-06-04 Jakub Jelinek <jakub@redhat.com>
3161 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
3162 *<insn><dwi>3_doubleword_mask): If top bit of mask is clear, but lower
3163 bits of mask aren't all set, use operands[2] mode for the AND
3164 operation instead of always SImode.
3166 2022-06-03 Jakub Jelinek <jakub@redhat.com>
3169 PR middle-end/105777
3170 * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
3171 x > stype_max / cst || x < stype_min / cst): New simplification.
3173 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
3175 * gimple-range-cache.cc (ranger_cache::range_from_dom): Use
3177 * gimple-range.cc (gimple_ranger::register_inferred_ranges): Same.
3178 * value-range.h (Value_Range::Value_Range): Implement copy
3179 constructor for Value_Range.
3181 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
3183 * value-range.h (struct vrange_traits): Remove.
3184 (is_a): Rewrite without vrange_traits.
3187 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
3189 * value-range.cc (vrange::contains_p): Implement.
3190 (vrange::type): Return void.
3191 (vrange::supports_type_p): Implement.
3192 (irange::fits_p): Same.
3193 (vrange::set_undefined): Same.
3194 (irange::set_nonnegative): Same.
3195 (vrange::set_varying): Same.
3196 (vrange::union_): Same.
3197 (unsupported_range::set): Move to vrange.
3198 (unsupported_range::type): Move to vrange.
3199 (vrange::intersect): Implement for varying and undefined.
3200 (vrange::zero_p): Implement.
3201 (unsupported_range::supports_type_p): Move to vrange.
3202 (vrange::nonzero_p): Implement.
3203 (unsupported_range::set_undefined): Move to vrange.
3204 (unsupported_range::set_varying): Same.
3205 (unsupported_range::dump): Same.
3206 (unsupported_range::union_): Same. Implement for varying and
3208 (unsupported_range::intersect): Move to vrange.
3209 (unsupported_range::zero_p): Same.
3210 (unsupported_range::nonzero_p): Same.
3211 (unsupported_range::set_nonzero): Same.
3212 (unsupported_range::set_zero): Same.
3213 (unsupported_range::set_nonnegative): Same.
3214 (unsupported_range::fits_p): Same.
3215 * value-range.h (class vrange): Remove abstract markers for most
3217 (class unsupported_range): Remove most methods as they will now be
3218 inherited from vrange.
3220 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
3222 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
3223 an object level supports_type_p for irange and a static
3224 Value_Range::supports_type_p.
3225 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Same.
3226 (fold_using_range::range_of_address): Same.
3227 (fold_using_range::range_of_builtin_call): Same.
3228 * gimple-range-fold.h (gimple_range_type): Same.
3229 (gimple_range_ssa_p): Same.
3230 * gimple-range-path.cc (path_range_query::internal_range_of_expr):
3232 (path_range_query::range_of_stmt): Same.
3233 (path_range_query::add_to_imports): Same.
3234 * gimple-range.cc (gimple_ranger::range_on_edge): Same.
3235 (gimple_ranger::export_global_ranges): Same.
3236 * gimple-ssa-evrp-analyze.cc
3237 (evrp_range_analyzer::record_ranges_from_phis): Same.
3238 * range-op.cc (range_operator::wi_fold): Same.
3239 (range_operator::fold_range): Same.
3240 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Same.
3241 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Same.
3242 (evaluate_control_stmt_using_entry_checks): Same.
3243 * tree-ssa-threadedge.cc
3244 (hybrid_jt_simplifier::compute_ranges_from_state): Same.
3245 * tree-vrp.cc (supported_types_p): Same.
3246 * value-query.cc (range_query::value_of_expr): Same.
3247 (range_query::value_on_edge): Same.
3248 (range_query::value_of_stmt): Same.
3249 (range_query::get_tree_range): Same.
3250 (get_range_global): Same.
3251 (global_range_query::range_of_expr): Same.
3252 * value-range-equiv.h (class value_range_equiv): Same.
3253 * value-range.cc (irange::supports_type_p): Same.
3254 (unsupported_range::supports_type_p): Same.
3255 * value-range.h (enum value_range_discriminator): Same.
3256 (Value_Range::init): Same.
3257 (Value_Range::supports_type_p): Same.
3258 (irange::supports_type_p): Same.
3259 (irange::supports_p): Same.
3260 (vrange::supports_type_p): Same.
3261 (vrange_allocator::alloc_vrange): Same.
3263 2022-06-03 Jan Beulich <jbeulich@suse.com>
3265 * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
3266 * configure.ac: Check for objcopy, producing
3267 ORIGINAL_OBJCOPY_FOR_TARGET.
3268 * configure: Update accordingly.
3269 * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
3272 2022-06-03 Jan Beulich <jbeulich@suse.com>
3274 * config/i386/mmx.md (mmx_psadbw): Convert to expander.
3275 (*mmx_psadbw): New. Mark as commutative.
3276 * config/i386/sse.md (<sse2_avx2>_psadbw): Convert to expander.
3277 (*<sse2_avx2>_psadbw): New. Mark as commutative.
3279 2022-06-03 Alexandre Oliva <oliva@adacore.com>
3281 PR tree-optimization/105665
3282 PR tree-optimization/100810
3283 * tree-ssa-loop-ivopts.cc
3284 (ssa_name_maybe_undef_p, ssa_name_set_maybe_undef): New.
3285 (ssa_name_any_use_dominates_bb_p, mark_ssa_maybe_undefs): New.
3286 (find_ssa_undef): Check precomputed flag and intervening uses.
3287 (tree_ssa_iv_optimize): Call mark_ssa_maybe_undefs.
3289 2022-06-02 David Malcolm <dmalcolm@redhat.com>
3291 * Makefile.in (OBJS): Add tree-diagnostic-client-data-hooks.o and
3292 tree-logical-location.o.
3293 (OBJS-libcommon): Add diagnostic-format-sarif.o; reorder.
3294 (CFLAGS-tree-diagnostic-client-data-hooks.o): Add TARGET_NAME.
3295 * common.opt (fdiagnostics-format=): Add sarif-stderr and sarif-file.
3296 (sarif-stderr, sarif-file): New enum values.
3297 * diagnostic-client-data-hooks.h: New file.
3298 * diagnostic-format-sarif.cc: New file.
3299 * diagnostic-path.h (enum diagnostic_event::verb): New enum.
3300 (enum diagnostic_event::noun): New enum.
3301 (enum diagnostic_event::property): New enum.
3302 (struct diagnostic_event::meaning): New struct.
3303 (diagnostic_event::get_logical_location): New vfunc.
3304 (diagnostic_event::get_meaning): New vfunc.
3305 (simple_diagnostic_event::get_logical_location): New vfunc impl.
3306 (simple_diagnostic_event::get_meaning): New vfunc impl.
3307 * diagnostic.cc: Include "diagnostic-client-data-hooks.h".
3308 (diagnostic_initialize): Initialize m_client_data_hooks.
3309 (diagnostic_finish): Clean up m_client_data_hooks.
3310 (diagnostic_event::meaning::dump_to_pp): New.
3311 (diagnostic_event::meaning::maybe_get_verb_str): New.
3312 (diagnostic_event::meaning::maybe_get_noun_str): New.
3313 (diagnostic_event::meaning::maybe_get_property_str): New.
3314 (get_cwe_url): Make non-static.
3315 (diagnostic_output_format_init): Handle
3316 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
3317 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
3318 * diagnostic.h (enum diagnostics_output_format): Add
3319 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
3320 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
3321 (class diagnostic_client_data_hooks): New forward decl.
3322 (class logical_location): New forward decl.
3323 (diagnostic_context::m_client_data_hooks): New field.
3324 (diagnostic_output_format_init_sarif_stderr): New decl.
3325 (diagnostic_output_format_init_sarif_file): New decl.
3326 (get_cwe_url): New decl.
3327 * doc/invoke.texi (-fdiagnostics-format=): Add sarif-stderr and
3329 * doc/sourcebuild.texi (Scan a particular file): Add
3330 scan-sarif-file and scan-sarif-file-not.
3331 * langhooks-def.h (lhd_get_sarif_source_language): New decl.
3332 (LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE): New macro.
3333 (LANG_HOOKS_INITIALIZER): Add
3334 LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE.
3335 * langhooks.cc (lhd_get_sarif_source_language): New.
3336 * langhooks.h (lang_hooks::get_sarif_source_language): New field.
3337 * logical-location.h: New file.
3338 * plugin.cc (struct for_each_plugin_closure): New.
3339 (for_each_plugin_cb): New.
3340 (for_each_plugin): New.
3341 * plugin.h (for_each_plugin): New decl.
3342 * tree-diagnostic-client-data-hooks.cc: New file.
3343 * tree-diagnostic.cc: Include "diagnostic-client-data-hooks.h".
3344 (tree_diagnostics_defaults): Populate m_client_data_hooks.
3345 * tree-logical-location.cc: New file.
3346 * tree-logical-location.h: New file.
3348 2022-06-02 David Malcolm <dmalcolm@redhat.com>
3350 * common.opt (fdiagnostics-format=): Add json-stderr and json-file
3352 (DIAGNOSTICS_OUTPUT_FORMAT_JSON): Rename to...
3353 (DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR): ...this.
3354 (diagnostics_output_format): Add json-stderr and json-file.
3355 * diagnostic-format-json.cc (json_flush_to_file): New.
3356 (json_final_cb): Convert to...
3357 (json_flush_to_file): ...this, ...
3358 (json_stderr_final_cb): ...this, and...
3359 (json_file_final_cb): ...this.
3360 (diagnostic_output_format_init): Move to diagnostic.cc.
3361 (json_output_base_file_name): New.
3362 (diagnostic_output_format_init_json): New.
3363 (diagnostic_output_format_init_json_stderr): New.
3364 (diagnostic_output_format_init_json_file): New.
3365 * diagnostic.cc (diagnostic_output_format_init): Move here from
3366 diagnostic-format-json.cc; update for changes to enum.
3367 * diagnostic.h (enum diagnostics_output_format): Rename
3368 DIAGNOSTICS_OUTPUT_FORMAT_JSON to
3369 DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR, and add
3370 DIAGNOSTICS_OUTPUT_FORMAT_JSON_FILE.
3371 (diagnostic_output_format_init): Add base_file_name param.
3372 (diagnostic_output_format_init_json_stderr): New decl.
3373 (diagnostic_output_format_init_json_file): New dec.
3374 * doc/invoke.texi (-fdiagnostics-format=): Add "json-stderr" and
3375 "json-file". Rewrite so that the existing "json" is a synonym of
3377 * gcc.cc (driver_handle_option): Pass dump_base_name to
3378 diagnostic_output_format_init.
3379 * opts.cc (common_handle_option): Likewise.
3381 2022-06-02 David Malcolm <dmalcolm@redhat.com>
3383 * json.cc (string::print): Fix escaping of '\'.
3385 2022-06-02 Philipp Tomsich <philipp.tomsich@vrull.eu>
3387 * config/riscv/riscv.cc (riscv_build_integer_1): Rewrite value as
3388 (-1 << 31) for the single-bit case, when operating on (1 << 31)
3390 * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): Allow for
3391 any single-bit value, moving the special case for (1 << 31) to
3392 riscv_build_integer_1 (in riscv.c).
3394 2022-06-02 Roger Sayle <roger@nextmovesoftware.com>
3397 * config/i386/sse.md (V_128_256):Add V1TI and V2TI.
3398 (define_mode_attr avxsizesuffix): Add support for V1TI and V2TI.
3400 2022-06-02 Jakub Jelinek <jakub@redhat.com>
3403 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask): Remove :SI
3404 from AND and its operands and just verify operands[2] has HImode,
3405 SImode or for TARGET_64BIT DImode. Allow operands[3] to be a mask
3406 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
3407 just throw away the masking. Use force_reg before calling
3409 (*ashl<dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
3410 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
3411 just throw away the masking.
3412 (*ashl<mode>3_doubleword): Rename to ...
3413 (ashl<mode>3_doubleword): ... this.
3414 (*ashl<mode>3_mask): Remove :SI from AND and its operands and just
3415 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
3416 Use force_reg before calling gen_lowpart.
3417 (*<insn><mode>3_mask): Likewise.
3418 (*<insn><dwi>3_doubleword_mask): Likewise. Allow operands[3] to be
3419 a mask with all low 6 (64-bit) or 5 (32-bit) bits set and in that
3420 case just throw away the masking. Use force_reg before calling
3422 (*<insn><dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
3423 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case just
3424 throw away the masking.
3425 (*<insn><mode>3_doubleword): Rename to ...
3426 (<insn><mode>3_doubleword): ... this.
3427 (*<insn><mode>3_mask): Remove :SI from AND and its operands and just
3428 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
3429 Use force_reg before calling gen_lowpart.
3430 (splitter after it): Remove :SI from AND and its operands and just
3431 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
3432 (*<btsc><mode>_mask, *<btsc><mode>_mask): Remove :SI from AND and its
3433 operands and just verify operands[1] has HImode, SImode or for
3434 TARGET_64BIT DImode. Use force_reg before calling gen_lowpart.
3435 (*jcc_bt<mode>_mask_1): New define_insn_and_split pattern.
3436 * config/i386/i386.cc (ix86_rtx_costs): For ZERO_EXTRACT with
3437 ZERO_EXTEND QI->SI in last operand ignore the cost of the ZERO_EXTEND.
3439 2022-06-02 Richard Biener <rguenther@suse.de>
3441 PR tree-optimization/101668
3442 * tree-vect-slp.cc (vect_build_slp_tree_1): Allow BIT_FIELD_REFs
3443 for vector types with compatible lane types.
3444 (vect_build_slp_tree_2): Deal with this.
3445 (vect_add_slp_permutation): Adjust. Emit lowpart/concat
3446 special cases without VEC_PERM.
3447 (vectorizable_slp_permutation): Select the operand vector
3448 type and relax requirements. Handle identity permutes
3449 with mismatching operand types.
3450 * optabs-query.cc (can_vec_perm_const_p): Only allow variable
3451 permutes for op_mode == mode.
3453 2022-06-02 Richard Biener <rguenther@suse.de>
3455 PR tree-optimization/105802
3456 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
3457 Make sure to also compute the range in the type of the switch index.
3459 2022-06-01 David Seifert <soap@gentoo.org>
3462 * configure: Regenerate.
3464 2022-06-01 H.J. Lu <hjl.tools@gmail.com>
3466 PR rtl-optimization/105638
3467 * df-core.cc (df_find_single_def_src): Moved and renamed from
3468 find_single_def_src in loop-iv.cc. Change the argument to rtx
3469 and use rtx_equal_p. Return null for partial or conditional
3471 * df.h (df_find_single_def_src): New prototype.
3472 * dse.cc (record_store): Use the constant source if the source
3473 register is set only once.
3474 * loop-iv.cc (find_single_def_src): Moved to df-core.cc.
3475 (replace_single_def_regs): Replace find_single_def_src with
3476 df_find_single_def_src.
3478 2022-06-01 Wilco Dijkstra <wilco.dijkstra@arm.com>
3480 * config/aarch64/aarch64.opt (explicit_tune_core): Rename to
3482 (explicit_arch): Rename to selected_arch.
3483 (x_aarch64_override_tune_string): Remove.
3484 (aarch64_ra_sign_key): Add as TargetVariable so it gets saved/restored.
3485 (aarch64_override_tune_string): Add Save so it gets saved/restored.
3486 * config/aarch64/aarch64.h (aarch64_architecture_version): Remove.
3487 * config/aarch64/aarch64.cc (aarch64_architecture_version): Remove.
3488 (processor): Remove archtecture_version field.
3489 (selected_arch): Remove global.
3490 (selected_cpu): Remove global.
3491 (selected_tune): Remove global.
3492 (aarch64_ra_sign_key): Move global to aarch64.opt so it is saved.
3493 (aarch64_override_options_internal): Use aarch64_get_tune_cpu.
3494 (aarch64_override_options): Further simplify code to only set
3495 selected_arch and selected_tune globals.
3496 (aarch64_option_save): Remove now that target options are saved.
3497 (aarch64_option_restore): Remove redundant target option restores.
3498 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Use
3500 * config/aarch64/aarch64-opts.h (aarch64_key_type): Add, moved from...
3501 * config/aarch64/aarch64-protos.h (aarch64_key_type): Remove.
3502 (aarch64_ra_sign_key): Remove.
3504 2022-06-01 Jakub Jelinek <jakub@redhat.com>
3507 * match.pd (__builtin_mul_overflow_p (x, cst, (utype) 0) ->
3508 x > ~(utype)0 / cst): New simplification.
3510 2022-06-01 Richard Biener <rguenther@suse.de>
3512 PR tree-optimization/105786
3513 * tree-loop-distribution.cc
3514 (loop_distribution::transform_reduction_loop): Only do strlen
3515 replacement for integer type reductions.
3517 2022-06-01 Jakub Jelinek <jakub@redhat.com>
3519 PR tree-optimization/105770
3520 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb): Cast
3521 CASE_LOW and CASE_HIGH to TREE_TYPE (idx) before comparisons with idx.
3523 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
3525 * gimple-range-cache.cc (ssa_block_ranges::dump): Convert to vrange.
3526 (sbr_vector::sbr_vector): Same.
3527 (sbr_vector::grow): Same.
3528 (sbr_vector::set_bb_range): Same.
3529 (sbr_vector::get_bb_range): Same.
3530 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
3531 (sbr_sparse_bitmap::set_bb_range): Same.
3532 (sbr_sparse_bitmap::get_bb_range): Same.
3533 (block_range_cache::set_bb_range): Same.
3534 (block_range_cache::get_bb_range): Same.
3535 (block_range_cache::dump): Same.
3536 (ssa_global_cache::get_global_range): Same.
3537 (ssa_global_cache::set_global_range): Same.
3538 (ssa_global_cache::clear): Same.
3539 (ssa_global_cache::dump): Same.
3540 (ranger_cache::get_global_range): Same.
3541 (ranger_cache::set_global_range): Same.
3542 (ranger_cache::range_of_def): Same.
3543 (ranger_cache::entry_range): Same.
3544 (ranger_cache::exit_range): Same.
3545 (ranger_cache::edge_range): Same.
3546 (ranger_cache::range_of_expr): Same.
3547 (ranger_cache::range_on_edge): Same.
3548 (ranger_cache::block_range): Same.
3549 (ranger_cache::propagate_cache): Same.
3550 (ranger_cache::fill_block_cache): Same.
3551 (ranger_cache::range_from_dom): Same.
3552 * gimple-range-cache.h: Same.
3553 * gimple-range-edge.cc (gimple_outgoing_range::get_edge_range):
3555 (gimple_outgoing_range::switch_edge_range): Same.
3556 (gimple_outgoing_range::edge_range_p): Same.
3557 * gimple-range-edge.h: Same.
3558 * gimple-range-fold.cc (fur_source::get_operand): Same.
3559 (fur_source::get_phi_operand): Same.
3560 (fur_edge::get_operand): Same.
3561 (fur_edge::get_phi_operand): Same.
3562 (fur_stmt::get_operand): Same.
3563 (fur_stmt::get_phi_operand): Same.
3564 (fur_list::fur_list): Same.
3565 (fur_list::get_operand): Same.
3566 (fur_list::get_phi_operand): Same.
3568 (adjust_imagpart_expr): Same.
3569 (adjust_realpart_expr): Same.
3570 (gimple_range_adjustment): Same.
3571 (fold_using_range::fold_stmt): Same.
3572 (fold_using_range::range_of_range_op): Same.
3573 (fold_using_range::range_of_address): Same.
3574 (fold_using_range::range_of_phi): Same.
3575 (fold_using_range::range_of_call): Same.
3576 (fold_using_range::range_of_builtin_call): Same.
3577 (fold_using_range::range_of_builtin_int_call): Same.
3578 (fold_using_range::range_of_cond_expr): Same.
3579 (fur_source::register_outgoing_edges): Same.
3580 * gimple-range-fold.h (fold_range): Same.
3581 (gimple_range_type): Same.
3582 (gimple_range_ssa_p): Same.
3583 * gimple-range-gori.cc (gimple_range_calc_op1): Same.
3584 (gimple_range_calc_op2): Same.
3585 (gori_compute::compute_operand_range_switch): Same.
3586 (gori_compute::compute_operand_range): Same.
3587 (gori_compute::logical_combine): Same.
3588 (gori_compute::compute_logical_operands): Same.
3589 (gori_compute::compute_operand1_range): Same.
3590 (gori_compute::compute_operand2_range): Same.
3591 (gori_compute::compute_operand1_and_operand2_range): Same.
3592 (gori_compute::outgoing_edge_range_p): Same.
3593 (gori_compute::condexpr_adjust): Same.
3594 * gimple-range-gori.h (gimple_range_calc_op1): Same.
3595 (gimple_range_calc_op2): Same.
3596 * gimple-range-path.cc (path_range_query::get_cache): Same.
3597 (path_range_query::set_cache): Same.
3598 (path_range_query::range_on_path_entry): Same.
3599 (path_range_query::internal_range_of_expr): Same.
3600 (path_range_query::range_of_expr): Same.
3601 (path_range_query::ssa_range_in_phi): Same.
3602 (path_range_query::range_defined_in_block): Same.
3603 (path_range_query::compute_ranges_in_phis): Same.
3604 (path_range_query::compute_ranges_in_block): Same.
3605 (path_range_query::add_to_imports): Same.
3606 (path_range_query::range_of_stmt): Same.
3607 * gimple-range-path.h: Same.
3608 * gimple-range-infer.cc (gimple_infer_range::add_range): Same.
3609 (gimple_infer_range::~side_effect_manager): Same.
3610 (gimple_infer_range::get_nonzero): Same.
3611 (gimple_infer_range::maybe_adjust_range): Same.
3612 (gimple_infer_range::add_range): Same.
3613 * gimple-range-infer.h: Same.
3614 * gimple-range-tests.cc: Same.
3615 * gimple-range-trace.cc (range_tracer::trailer): Same.
3616 (debug_seed_ranger): Same.
3617 * gimple-range-trace.h: Same.
3618 * gimple-range.cc (gimple_ranger::range_of_expr): Same.
3619 (gimple_ranger::range_on_entry): Same.
3620 (gimple_ranger::range_on_exit): Same.
3621 (gimple_ranger::range_on_edge): Same.
3622 (gimple_ranger::fold_range_internal): Same.
3623 (gimple_ranger::range_of_stmt): Same.
3624 (gimple_ranger::prefill_name): Same.
3625 (gimple_ranger::prefill_stmt_dependencies): Same.
3626 (gimple_ranger::export_global_ranges): Same.
3627 (gimple_ranger::dump_bb): Same.
3628 * gimple-range.h: Same.
3629 * gimple-ssa-warn-access.cc (check_nul_terminated_array): Same.
3630 (memmodel_to_uhwi): Same.
3631 * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Same.
3632 (determine_value_range): Same.
3633 (record_nonwrapping_iv): Same.
3634 (infer_loop_bounds_from_signedness): Same.
3635 (scev_var_range_cant_overflow): Same.
3636 * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Same.
3637 * value-query.cc (range_query::range_on_edge): Same.
3638 (range_query::range_of_stmt): Same.
3639 (range_query::value_of_expr): Same.
3640 (range_query::value_on_edge): Same.
3641 (range_query::value_of_stmt): Same.
3642 (range_query::get_tree_range): Same.
3643 (update_global_range): Same.
3644 (get_range_global): Same.
3645 (gimple_range_global): Same.
3646 (global_range_query::range_of_expr): Same.
3647 (range_query::query_relation): Same.
3648 * value-query.h (gimple_range_global): Same.
3649 (update_global_range): Same.
3650 * vr-values.cc (vr_values::range_of_expr): Same.
3651 (bounds_of_var_in_loop): Same.
3652 (simplify_using_ranges::vrp_visit_cond_stmt): Same.
3653 * vr-values.h (class vr_values): Same.
3654 * tree-ssa-loop-unswitch.cc (unswitch_predicate): Same.
3656 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
3658 * gimple-range-cache.cc (sbr_vector::sbr_vector): Adjust for
3660 (sbr_vector::grow): Same.
3661 (sbr_vector::set_bb_range): Same.
3662 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
3663 (sbr_sparse_bitmap::set_bb_range): Same.
3664 (block_range_cache::~block_range_cache): Same.
3665 (block_range_cache::set_bb_range): Same.
3666 (ssa_global_cache::ssa_global_cache): Same.
3667 (ssa_global_cache::~ssa_global_cache): Same.
3668 (ssa_global_cache::set_global_range): Same.
3669 * gimple-range-cache.h (block_range_cache): Same.
3670 (ssa_global_cache): Same.
3671 * gimple-range-edge.cc
3672 (gimple_outgoing_range::calc_switch_ranges): Same.
3673 * gimple-range-edge.h (gimple_outgoing_range): Same.
3674 * gimple-range-infer.cc (infer_range_manager::get_nonzero):
3676 (infer_range_manager::add_range): Same.
3677 * gimple-range-infer.h (class infer_range_manager): Same.
3678 * value-range.h (class irange_allocator): Rename to...
3679 (class vrange_allocator): ...this.
3680 (irange_allocator::irange_allocator): New.
3681 (vrange_allocator::vrange_allocator): New.
3682 (irange_allocator::~irange_allocator): New.
3683 (vrange_allocator::~vrange_allocator): New.
3684 (irange_allocator::get_memory): Rename to...
3685 (vrange_allocator::alloc): ...this.
3686 (vrange_allocator::alloc_vrange): Rename from...
3687 (irange_allocator::allocate): ...this.
3688 (vrange_allocator::alloc_irange): New.
3690 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
3692 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
3693 vrange and convert range_op_handler function calls to use the
3694 identically named object.
3695 * gimple-range-fold.cc (gimple_range_operand1): Same.
3696 (gimple_range_operand2): Same.
3697 (fold_using_range::fold_stmt): Same.
3698 (fold_using_range::range_of_range_op): Same.
3699 (fold_using_range::range_of_builtin_ubsan_call): Same.
3700 (fold_using_range::relation_fold_and_or): Same.
3701 (fur_source::register_outgoing_edges): Same.
3702 * gimple-range-fold.h (gimple_range_handler): Remove.
3703 * gimple-range-gori.cc (gimple_range_calc_op1): Adjust for vrange.
3704 (gimple_range_calc_op2): Same.
3705 (range_def_chain::get_def_chain): Same.
3706 (gori_compute::compute_operand_range): Same.
3707 (gori_compute::condexpr_adjust): Same.
3708 * gimple-range.cc (gimple_ranger::prefill_name): Same.
3709 (gimple_ranger::prefill_stmt_dependencies): Same.
3710 * range-op.cc (get_bool_state): Same.
3711 (class operator_equal): Add using clause.
3712 (class operator_not_equal): Same.
3713 (class operator_lt): Same.
3714 (class operator_le): Same.
3715 (class operator_gt): Same.
3716 (class operator_ge): Same.
3717 (class operator_plus): Same.
3718 (class operator_minus): Same.
3719 (class operator_mult): Same.
3720 (class operator_exact_divide): Same.
3721 (class operator_lshift): Same.
3722 (class operator_rshift): Same.
3723 (class operator_cast): Same.
3724 (class operator_logical_and): Same.
3725 (class operator_bitwise_and): Same.
3726 (class operator_logical_or): Same.
3727 (class operator_bitwise_or): Same.
3728 (class operator_bitwise_xor): Same.
3729 (class operator_trunc_mod): Same.
3730 (class operator_logical_not): Same.
3731 (class operator_bitwise_not): Same.
3732 (class operator_cst): Same.
3733 (class operator_identity): Same.
3734 (class operator_unknown): Same.
3735 (class operator_abs): Same.
3736 (class operator_negate): Same.
3737 (class operator_addr_expr): Same.
3738 (class pointer_or_operator): Same.
3739 (operator_plus::op1_range): Adjust for vrange.
3740 (operator_minus::op1_range): Same.
3741 (operator_mult::op1_range): Same.
3742 (operator_cast::op1_range): Same.
3743 (operator_bitwise_not::fold_range): Same.
3744 (operator_negate::fold_range): Same.
3745 (range_op_handler): Rename to...
3746 (get_handler): ...this.
3747 (range_op_handler::range_op_handler): New.
3748 (range_op_handler::fold_range): New.
3749 (range_op_handler::op1_range): New.
3750 (range_op_handler::op2_range): New.
3751 (range_op_handler::lhs_op1_relation): New.
3752 (range_op_handler::lhs_op2_relation): New.
3753 (range_op_handler::op1_op2_relation): New.
3754 (range_cast): Adjust for vrange.
3755 * range-op.h (range_op_handler): Remove function.
3756 (range_cast): Adjust for vrange.
3757 (class range_op_handler): New.
3758 (get_bool_state): Adjust for vrange.
3759 (empty_range_varying): Same.
3760 (relop_early_resolve): Same.
3761 * tree-data-ref.cc (compute_distributive_range): Same.
3762 * tree-vrp.cc (get_range_op_handler): Remove.
3763 (range_fold_binary_symbolics_p): Use range_op_handler class
3764 instead of get_range_op_handler.
3765 (range_fold_unary_symbolics_p): Same.
3766 (range_fold_binary_expr): Same.
3767 (range_fold_unary_expr): Same.
3768 * value-query.cc (range_query::get_tree_range): Adjust for vrange.
3770 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
3772 * gimple-range-fold.h (gimple_range_type): Check type before
3773 calling supports_type_p.
3774 * gimple-range-path.cc (path_range_query::range_of_stmt): Same.
3775 * value-query.cc (range_query::get_tree_range): Same.
3776 * value-range.cc (Value_Range::lower_bound): New.
3777 (Value_Range::upper_bound): New.
3778 (Value_Range::dump): New.
3779 * value-range.h (class Value_Range): New.
3780 (irange::supports_type_p): Do not check if type is non-zero.
3782 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
3784 * value-range-equiv.cc (value_range_equiv::set): New.
3785 * value-range-equiv.h (class value_range_equiv): Make set method
3787 Remove default bitmap argument from set method.
3788 * value-range.cc (vrange::contains_p): New.
3789 (vrange::singleton_p): New.
3790 (vrange::operator=): New.
3791 (vrange::operator==): New.
3792 (irange::fits_p): Move to .cc file.
3793 (irange::set_nonnegative): New.
3794 (unsupported_range::unsupported_range): New.
3795 (unsupported_range::set): New.
3796 (unsupported_range::type): New.
3797 (unsupported_range::set_undefined): New.
3798 (unsupported_range::set_varying): New.
3799 (unsupported_range::dump): New.
3800 (unsupported_range::union_): New.
3801 (unsupported_range::intersect): New.
3802 (unsupported_range::zero_p): New.
3803 (unsupported_range::nonzero_p): New.
3804 (unsupported_range::set_nonzero): New.
3805 (unsupported_range::set_zero): New.
3806 (unsupported_range::set_nonnegative): New.
3807 (unsupported_range::fits_p): New.
3808 (irange::set): Call irange::set_undefined.
3809 (irange::verify_range): Check discriminator field.
3810 (irange::dump): Dump [irange] marker.
3811 (irange::debug): Move to...
3812 (vrange::debug): ...here.
3813 (dump_value_range): Accept vrange.
3815 * value-range.h (enum value_range_discriminator): New.
3816 (class vrange): New.
3817 (class unsupported_range): New.
3818 (struct vrange_traits): New.
3821 (class irange): Inherit from vrange.
3822 (dump_value_range): Adjust for vrange.
3823 (irange::kind): Rename to...
3824 (vrange::kind): ...this.
3825 (irange::varying_p): Rename to...
3826 (vrange::varying_p): ...this.
3827 (irange::undefined_p): Rename to...
3828 (vrange::undefined_p): ...this.
3829 (irange::irange): Set discriminator.
3830 (irange::union_): Convert to irange before passing to irange
3832 (irange::intersect): Same.
3833 (vrange::supports_type_p): New.
3834 * vr-values.cc (vr_values::extract_range_from_binary_expr): Pass
3835 NULL bitmap argument to value_range_equiv::set.
3836 (vr_values::extract_range_basic): Same.
3838 2022-06-01 Richard Biener <rguenther@suse.de>
3840 PR tree-optimization/105763
3841 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
3842 Check gimple_range_ssa_p.
3844 2022-05-31 Jason Merrill <jason@redhat.com>
3846 * Makefile.in (TAGS): Look at libcpp/*.cc.
3848 2022-05-31 Christophe Lyon <christophe.lyon@arm.com>
3850 * config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr):
3851 Prefix mode names with E_.
3853 2022-05-31 Alan Modra <amodra@gmail.com>
3855 * dwarf2out.cc (gen_namelist_decl): Adjust to suit correct
3856 spelling of DW_AT_namelist_item.
3858 2022-05-31 Jakub Jelinek <jakub@redhat.com>
3860 * omp-low.cc (build_outer_var_ref): For code == OMP_CLAUSE_ALLOCATE
3861 allow var to be private in the outer context.
3862 (lower_private_allocate): Pass OMP_CLAUSE_ALLOCATE as last argument
3863 to build_outer_var_ref.
3865 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
3867 * config/i386/i386.cc (ix86_modes_tieable_p): Allow SCmode to be
3868 tieable with DImode on TARGET_64BIT, and SCmode tieable with
3869 V2SFmode, and DCmode with V2DFmode.
3871 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
3873 PR rtl-optimization/101617
3874 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Add a
3875 special case (indicated by negate_cc_compare_p) to generate a
3876 -1/0 mask using neg;sbb.
3877 * config/i386/i386.md (x86_neg<mode>_ccc): New define_expand
3878 to generate an *x86_neg<mode>_ccc instruction.
3879 (x86_mov<mode>cc_0_m1_neg): Likewise, a new define_expand to
3880 generate a *x86_mov<mode>cc_0_m1_neg instruction.
3882 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
3884 * rtlanal.cc (rtx_cost) <MULT>: Treat FMA, SS_MULT, US_MULT,
3885 SMUL_HIGHPART and UMUL_HIGHPART as having the same cost as MULT.
3886 <DIV>: Likewise, SS_DIV and US_DIV have the same default as DIV.
3888 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
3891 * config/i386/i386-expand.cc (ix86_expand_branch): Don't decompose
3892 DI mode equality/inequality using XOR here. Instead generate a
3893 COMPARE for doubleword modes (DImode on !TARGET_64BIT or TImode).
3894 * config/i386/i386-features.cc (gen_gpr_to_xmm_move_src): Use
3895 gen_rtx_SUBREG when NUNITS is 1, i.e. for TImode to V1TImode.
3896 (general_scalar_chain::convert_compare): New function to convert
3897 scalar equality/inequality comparison into vector operations.
3898 (general_scalar_chain::convert_insn) [COMPARE]: Refactor. Call
3899 new convert_compare helper method.
3900 (convertible_comparion_p): Update to match doubleword COMPARE
3901 of two register, memory or integer constant operands.
3902 * config/i386/i386-features.h (general_scalar_chain::convert_compare):
3903 Prototype/declare member function here.
3904 * config/i386/i386.md (cstore<mode>4): Change mode to SDWIM, but
3905 only allow new doubleword modes for EQ and NE operators.
3906 (*cmp<dwi>_doubleword): New define_insn_and_split, to split a
3907 doubleword comparison into a pair of XORs followed by an IOR to
3908 set the (zero) flags register, optimizing the XORs if possible.
3909 * config/i386/sse.md (V_AVX): Include V1TI and V2TI in mode
3910 iterator; V_AVX is (currently) only used by ptest.
3911 (sse4_1 mode attribute): Update to support V1TI and V2TI.
3913 2022-05-30 Uroš Bizjak <ubizjak@gmail.com>
3915 * config/i386/i386.md: Remove constraints when used with
3916 const_int_operand, const0_operand, const_1_operand, constm1_operand,
3917 const8_operand, const128_operand, const248_operand, const123_operand,
3918 const2367_operand, const1248_operand, const359_operand,
3919 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
3920 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
3921 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
3922 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
3923 const_0_to_255_mul_8_operand, const_1_to_31_operand,
3924 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
3925 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
3926 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
3927 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
3928 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
3929 const_24_to_27_operand and const_28_to_31_operand.
3930 * config/i386/mmx.md: Ditto.
3931 * config/i386/sse.md: Ditto.
3932 * config/i386/subst.md: Ditto.
3933 * config/i386/sync.md: Ditto.
3935 2022-05-30 Jan Beulich <jbeulich@suse.com>
3937 * config/i386/i386.md (bmi2_umul<mode><dwi>3_1): Correct MEM_P()
3940 2022-05-30 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3942 * config/arm/arm.cc (arm_vectorize_vec_perm_const): Adjust prototype.
3944 2022-05-29 Iain Sandoe <iain@sandoe.co.uk>
3947 * config/darwin.h: Move versions-specific handling of multiply_defined
3948 from SUBTARGET_DRIVER_SELF_SPECS to LINK_SPEC.
3950 2022-05-29 Eric Gallager <egallager@gcc.gnu.org>
3953 * doc/sourcebuild.texi: Add entries for the c++tools,
3954 gotools, libbacktrace, libcc1, libcody, liboffloadmic,
3955 and libsanitizer directories. Remove entry for boehm-gc.
3956 Fix alphabetization for libquadmath.
3958 2022-05-28 Joel Holdsworth <jholdsworth@nvidia.com>
3960 * config/avr/avr-mcus.def: Add device definitions.
3961 * doc/avr-mmcu.texi: Corresponding changes.
3962 * config/avr/gen-avr-mmcu-texi.cc: Added support for avr
3964 * config/avr/gen-avr-mmcu-specs.cc: Prevent -mmcu=avr* flags
3965 from leaking into cc1.
3967 2022-05-28 Vladimir Makarov <vmakarov@gcc.gnu.org>
3970 * config/sh/sh.cc (sh_register_move_cost): Avoid cost "2" (which
3971 is special) for various scenarios.
3973 2022-05-28 Iain Sandoe <iain@sandoe.co.uk>
3975 * config/darwin.h (REAL_LIBGCC_SPEC): Update the comment block
3976 describing this macro.
3978 2022-05-27 Richard Biener <rguenther@suse.de>
3980 * tree-dfa.cc (get_ref_base_and_extent): Avoid shift.
3982 2022-05-27 Martin Jambor <mjambor@suse.cz>
3985 * ipa-prop.cc (propagate_controlled_uses): Check type of the
3986 constant before adding a LOAD reference.
3988 2022-05-27 Jakub Jelinek <jakub@redhat.com>
3990 * tree-core.h (enum omp_clause_code): Rename OMP_CLAUSE_TO_DECLARE
3991 to OMP_CLAUSE_ENTER.
3992 * tree.h (OMP_CLAUSE_ENTER_TO): Define.
3993 * tree.cc (omp_clause_num_ops, omp_clause_code_name): Rename
3994 OMP_CLAUSE_TO_DECLARE to OMP_CLAUSE_ENTER.
3995 * tree-pretty-print.cc (dump_omp_clause): Handle OMP_CLAUSE_ENTER
3996 instead of OMP_CLAUSE_TO_DECLARE, if OMP_CLAUSE_ENTER_TO, print
3997 "to" instead of "enter".
3998 * tree-nested.cc (convert_nonlocal_omp_clauses,
3999 convert_local_omp_clauses): Handle OMP_CLAUSE_ENTER instead of
4000 OMP_CLAUSE_TO_DECLARE.
4002 2022-05-27 Richard Biener <rguenther@suse.de>
4004 PR tree-optimization/105726
4005 * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
4006 Constrain array-of-flexarray case more.
4008 2022-05-27 Jakub Jelinek <jakub@redhat.com>
4011 * fold-const.cc (fold_unary_loc): Don't optimize (X &) ((Y *) z + w)
4012 to (X &) z + w if -fsanitize=null during GENERIC folding.
4014 2022-05-27 Roger Sayle <roger@nextmovesoftware.com>
4016 * match.pd (match_zero_one_valued_p): New predicate.
4017 (mult @0 @1): Use zero_one_valued_p for optimization to the
4018 expression "bit_and @0 @1".
4019 (bit_and (negate zero_one_valued_p@0) @1): Optimize to MULT_EXPR.
4020 (plus @0 (mult (minus @1 @0) zero_one_valued_p@2)): New transform.
4021 (minus @0 (mult (minus @0 @1) zero_one_valued_p@2)): Likewise.
4022 (bit_xor @0 (mult (bit_xor @0 @1) zero_one_valued_p@2)): Likewise.
4023 Remove three redundant transforms obsoleted by the three above.
4025 2022-05-27 Roger Sayle <roger@nextmovesoftware.com>
4027 * config/i386/i386.md (*test<mode>_not): New define_insn_and_split
4028 to split a combined "and;cmp" sequence into "not;test".
4030 2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4032 * config/xtensa/xtensa.md (bswapsi2): New expansion pattern.
4033 (bswapsi2_internal): Revise the template and condition, and add
4034 detection code for preceding the same insn in order to omit a
4035 "SSAI 8" instruction of the latter.
4036 (bswapdi2): Suppress built-in insn expansion with the corresponding
4037 library call when optimizing for size.
4039 2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4041 * config/xtensa/xtensa-protos.h
4042 (xtensa_expand_block_set_unrolled_loop,
4043 xtensa_expand_block_set_small_loop): New prototypes.
4044 * config/xtensa/xtensa.cc (xtensa_sizeof_MOVI,
4045 xtensa_expand_block_set_unrolled_loop,
4046 xtensa_expand_block_set_small_loop): New functions.
4047 * config/xtensa/xtensa.md (setmemsi): New expansion pattern.
4048 * config/xtensa/xtensa.opt (mlongcalls): Add target mask.
4050 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4052 * config/xtensa/xtensa.cc (xtensa_expand_block_move):
4053 Make instruction counting more accurate, and simplify emitting insns.
4055 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4057 * config/xtensa/constraints.md (M, O): Use the macro.
4058 * config/xtensa/predicates.md (addsubx_operand, extui_fldsz_operand,
4059 sext_fldsz_operand): Ditto.
4060 * config/xtensa/xtensa.cc (xtensa_simm8, xtensa_simm8x256,
4061 xtensa_simm12b, xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4,
4062 xtensa_mask_immediate, smalloffset_mem_p, printx, xtensa_call_save_reg,
4063 xtensa_expand_prologue): Ditto.
4064 * config/xtensa/xtensa.h (FUNCTION_ARG_REGNO_P): Ditto.
4066 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4068 * config/xtensa/predicates.md (extui_fldsz_operand): Simplify.
4069 * config/xtensa/xtensa.cc (xtensa_mask_immediate, print_operand):
4072 2022-05-25 Andrew MacLeod <amacleod@redhat.com>
4074 * gimple-range-cache.cc: Adjust comments.
4075 * gimple-range-infer.cc: Adjust comments.
4076 * gimple-range-infer.h: Adjust comments.
4077 * gimple-range.cc: Adjust comments.
4079 2022-05-25 Andrew MacLeod <amacleod@redhat.com>
4081 * Makefile.in (OBJS): Use gimple-range-infer.o.
4082 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Change msg.
4083 (ranger_cache::range_from_dom): Rename var side_effect to infer.
4084 (ranger_cache::apply_inferred_ranges): Rename from apply_side_effects.
4085 * gimple-range-cache.h: Include gimple-range-infer.h.
4086 (class ranger_cache): Adjust prototypes, use infer_range_manager.
4087 * gimple-range-infer.cc: Rename from gimple-range-side-effects.cc.
4088 (gimple_infer_range::*): Rename from stmt_side_effects.
4089 (infer_range_manager::*): Rename from side_effect_manager.
4090 * gimple-range-side-effect.cc: Rename.
4091 * gimple-range-side-effect.h: Rename.
4092 * gimple-range-infer.h: Rename from gimple-range-side-effects.h.
4093 (class gimple_infer_range): Rename from stmt_side_effects.
4094 (class infer_range_manager): Rename from side_effect_manager.
4095 * gimple-range.cc (gimple_ranger::register_inferred_ranges): Rename
4096 from register_side_effects.
4097 * gimple-range.h (register_inferred_ranges): Adjust prototype.
4098 * range-op.h: Adjust comment.
4099 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Use register_inferred_ranges.
4100 (rvrp_folder::post_fold_bb): Use register_inferred_ranges.
4102 2022-05-25 Simon Cook <simon.cook@embecosm.com>
4104 * config/riscv/arch-canonicalize: Only add mafd extension if
4105 base was rv32/rv64g.
4107 2022-05-25 Tobias Burnus <tobias@codesourcery.com>
4109 * doc/invoke.texi (AMD GCN Options): Add gfx908/gfx90a.
4111 2022-05-25 Jakub Jelinek <jakub@redhat.com>
4114 * asan.cc (has_stmt_been_instrumented_p): For assignments which
4115 are both stores and loads, return true only if both destination
4116 and source have been instrumented.
4118 2022-05-25 Martin Liska <mliska@suse.cz>
4119 Richard Biener <rguenther@suse.de>
4121 * dbgcnt.def (DEBUG_COUNTER): Add loop_unswitch counter.
4122 * params.opt (max-unswitch-level): Remove.
4123 * doc/invoke.texi (max-unswitch-level): Likewise.
4124 * tree-cfg.cc (gimple_lv_add_condition_to_bb): Support not
4125 gimplified expressions.
4126 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): New.
4127 (tree_may_unswitch_on): Rename to ...
4128 (find_unswitching_predicates_for_bb): ... this and handle
4130 (get_predicates_for_bb): Likewise.
4131 (set_predicates_for_bb): Likewise.
4132 (init_loop_unswitch_info): Likewise.
4133 (tree_ssa_unswitch_loops): Prepare stuff before calling
4134 tree_unswitch_single_loop.
4135 (tree_unswitch_single_loop): Rework the function using
4136 pre-computed predicates and with a per original loop cost model.
4138 (add_predicate_to_path): Likewise.
4139 (find_range_for_lhs): Likewise.
4140 (simplify_using_entry_checks): Rename to ...
4141 (evaluate_control_stmt_using_entry_checks): ... this, handle
4142 switch statements and improve simplifications using ranger.
4143 (simplify_loop_version): Rework using
4144 evaluate_control_stmt_using_entry_checks.
4145 (evaluate_bbs): New.
4146 (evaluate_loop_insns_for_predicate): Likewise.
4147 (tree_unswitch_loop): Adjust to allow switch statements and
4148 pass in the edge to unswitch.
4149 (clean_up_after_unswitching): New.
4150 (pass_tree_unswitch::execute): Pass down fun.
4152 2022-05-24 Eugene Rozenfeld <erozen@microsoft.com>
4154 * tree-vect-loop-manip.cc (vect_do_peeling): Save/restore profile
4155 counts for the epilog loop.
4157 2022-05-24 Martin Sebor <msebor@redhat.com>
4158 Richard Biener <rguenther@suse.de>
4160 PR middle-end/105604
4161 * gimple-ssa-sprintf.cc (set_aggregate_size_and_offset): Add comments.
4162 (get_origin_and_offset_r): Remove null handling. Handle variable array
4164 (get_origin_and_offset): Handle null argument here. Simplify.
4165 (alias_offset): Update comment.
4166 * pointer-query.cc (field_at_offset): Update comment. Handle members
4167 of variable-length types.
4169 2022-05-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4171 * target.def (vec_perm_const): Define new parameter op_mode and
4173 * doc/tm.texi: Regenerate.
4174 * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Adjust
4175 vec_perm_const hook to add new parameter op_mode and return false
4176 if result and operand modes do not match.
4177 * config/arm/arm.cc (arm_vectorize_vec_perm_const): Likewise.
4178 * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Likewise.
4179 * config/ia64/ia64.cc (ia64_vectorize_vec_perm_const): Likewise.
4180 * config/mips/mips.cc (mips_vectorize_vec_perm_const): Likewise.
4181 * config/rs6000/rs6000.cc (rs6000_vectorize_vec_perm_const): Likewise
4182 * config/s390/s390.cc (s390_vectorize_vec_perm_const): Likewise.
4183 * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Likewise.
4184 * config/i386/i386-expand.cc (ix86_vectorize_vec_perm_const): Likewise.
4185 * config/i386/i386-expand.h (ix86_vectorize_vec_perm_const): Adjust
4187 * config/i386/sse.md (ashrv4di3): Adjust call to vec_perm_const hook.
4188 (ashrv2di3): Likewise.
4189 * optabs.cc (expand_vec_perm_const): Likewise.
4190 * optabs-query.h (can_vec_perm_const_p): Adjust prototype.
4191 * optabs-query.cc (can_vec_perm_const_p): Define new parameter
4192 op_mode and pass it to vec_perm_const hook.
4193 (can_mult_highpart_p): Adjust call to can_vec_perm_const_p.
4194 * match.pd (vec_perm X Y CST): Likewise.
4195 * tree-ssa-forwprop.cc (simplify_vector_constructor): Likewise.
4196 * tree-vect-data-refs.cc (vect_grouped_store_supported): Likewise.
4197 (vect_grouped_load_supported): Likewise.
4198 (vect_shift_permute_load_chain): Likewise.
4199 * tree-vect-generic.cc (lower_vec_perm): Likewise.
4200 * tree-vect-loop-manip.cc (interleave_supported_p): Likewise.
4201 * tree-vect-loop.cc (have_whole_vector_shift): Likewise.
4202 * tree-vect-patterns.cc (vect_recog_rotate_pattern): Likewise.
4203 * tree-vect-slp.cc (can_duplicate_and_interleave_p): Likewise.
4204 (vect_transform_slp_perm_load): Likewise.
4205 (vectorizable_slp_permutation): Likewise.
4206 * tree-vect-stmts.cc (perm_mask_for_reverse): Likewise.
4207 (vectorizable_bswap): Likewise.
4208 (scan_store_can_perm_p): Likewise.
4209 (vect_gen_perm_mask_checked): Likewise.
4211 2022-05-24 H.J. Lu <hjl.tools@gmail.com>
4214 * config/i386/i386.opt: Remove Undocumented.
4215 * doc/invoke.texi: Document -mcet-switch.
4217 2022-05-24 Andrew Stubbs <ams@codesourcery.com>
4219 * config.gcc (amdgcn): Accept --with-arch=gfx908 and gfx90a.
4220 * config/gcn/gcn-opts.h (enum gcn_isa): New.
4221 (TARGET_GCN3): Use enum gcn_isa.
4222 (TARGET_GCN3_PLUS): Likewise.
4223 (TARGET_GCN5): Likewise.
4224 (TARGET_GCN5_PLUS): Likewise.
4225 (TARGET_CDNA1): New.
4226 (TARGET_CDNA1_PLUS): New.
4227 (TARGET_CDNA2): New.
4228 (TARGET_CDNA2_PLUS): New.
4229 (TARGET_M0_LDS_LIMIT): New.
4230 (TARGET_PACKED_WORK_ITEMS): New.
4231 * config/gcn/gcn.cc (gcn_isa): Change to enum gcn_isa.
4232 (gcn_option_override): Recognise CDNA ISA variants.
4233 (gcn_omp_device_kind_arch_isa): Support gfx90a.
4234 (gcn_expand_prologue): Make m0 init optional.
4235 Add support for packed work items.
4236 (output_file_start): Support gfx90a.
4237 (gcn_hsa_declare_function_name): Support gfx90a metadata.
4238 * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS):Add __CDNA1__ and
4240 * config/gcn/gcn.md (<su>mulsi3_highpart): Use TARGET_GCN5_PLUS.
4241 (<su>mulsi3_highpart_imm): Likewise.
4242 (<su>mulsidi3): Likewise.
4243 (<su>mulsidi3_imm): Likewise.
4244 * config/gcn/gcn.opt (gpu_type): Add gfx90a.
4245 * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX90a): New.
4246 (main): Support gfx90a.
4247 * config/gcn/t-gcn-hsa: Add gfx90a multilib.
4248 * config/gcn/t-omp-device: Add gfx90a isa.
4250 2022-05-24 Andrew Stubbs <ams@codesourcery.com>
4252 * config.in: Regenerate.
4253 * config/gcn/gcn-hsa.h (X_FIJI): Delete.
4261 (NO_XNACK): New macro.
4262 (NO_SRAM_ECC): New macro.
4263 (SRAMOPT): Keep only v4 variant.
4264 (HSACO3_SELECT_OPT): Delete.
4265 (DRIVER_SELF_SPECS): Delete.
4266 (ASM_SPEC): Remove LLVM 9 support.
4267 * config/gcn/gcn-valu.md
4268 (gather<mode>_insn_2offsets<exec>): Remove assembler bug workaround.
4269 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
4270 * config/gcn/gcn.cc (output_file_start): Remove LLVM 9 support.
4271 (print_operand_address): Remove assembler bug workaround.
4272 * config/gcn/mkoffload.cc (EF_AMDGPU_XNACK_V3): Delete.
4273 (EF_AMDGPU_SRAM_ECC_V3): Delete.
4274 (SET_XNACK_ON): Delete v3 variants.
4275 (SET_XNACK_OFF): Delete v3 variants.
4276 (TEST_XNACK): Delete v3 variants.
4277 (SET_SRAM_ECC_ON): Delete v3 variants.
4278 (SET_SRAM_ECC_ANY): Delete v3 variants.
4279 (SET_SRAM_ECC_OFF): Delete v3 variants.
4280 (SET_SRAM_ECC_UNSUPPORTED): Delete v3 variants.
4281 (TEST_SRAM_ECC_ANY): Delete v3 variants.
4282 (TEST_SRAM_ECC_ON): Delete v3 variants.
4283 (copy_early_debug_info): Remove v3 support.
4284 (main): Remove v3 support.
4285 * configure: Regenerate.
4286 * configure.ac: Replace all GCN feature checks with a version check.
4288 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
4290 * config/i386/i386.md (peephole2): Convert xor;neg;adc;neg,
4291 i.e. a double word negation of a zero extended operand, to
4294 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
4296 PR tree-optimization/105668
4297 * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Support
4298 V1TImode, just like V2DImode.
4299 * config/i386/sse.md (vcond_mask_<mode><sseintvecmodelower>):
4300 Use VI_128 mode iterator instead of VI124_128 to include V2DI.
4301 (vcond_mask_v2div2di): Delete.
4302 (vcond_mask_v1tiv1ti): New define_expand.
4304 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
4306 * genpreds.cc (write_lookup_constraint_1): Avoid generating a call
4307 to strncmp for strings of length one.
4309 2022-05-24 ShiYulong <shiyulong@iscas.ac.cn>
4311 * config/riscv/predicates.md (imm5_operand): Add a new operand type for
4312 prefetch instructions.
4313 * config/riscv/riscv-builtins.cc (AVAIL): Add new AVAILs for CMO ISA
4315 (RISCV_ATYPE_SI): New.
4316 (RISCV_ATYPE_DI): New.
4317 * config/riscv/riscv-ftypes.def (0): New.
4319 * config/riscv/riscv.md (riscv_clean_<mode>): New.
4320 (riscv_flush_<mode>): New.
4321 (riscv_inval_<mode>): New.
4322 (riscv_zero_<mode>): New.
4324 (riscv_prefetchi_<mode>): New.
4325 * config/riscv/riscv-cmo.def: New file.
4327 2022-05-24 ShiYulong <shiyulong@iscas.ac.cn>
4329 * common/config/riscv/riscv-common.cc: Add zicbom, zicboz, zicbop extensions.
4330 * config/riscv/riscv-opts.h (MASK_ZICBOZ): New.
4333 (TARGET_ZICBOZ): New.
4334 (TARGET_ZICBOM): New.
4335 (TARGET_ZICBOP): New.
4336 * config/riscv/riscv.opt (riscv_zicmo_subext): New.
4338 2022-05-24 David Malcolm <dmalcolm@redhat.com>
4340 * tree-vect-slp-patterns.cc: Add "final" and "override" to
4341 vect_pattern::build impls as appropriate.
4343 2022-05-24 David Malcolm <dmalcolm@redhat.com>
4345 * ipa-cp.cc: Add "final" and "override" to call_summary_base vfunc
4346 implementations, removing redundant "virtual" as appropriate.
4347 * ipa-fnsummary.h: Likewise.
4348 * ipa-modref.cc: Likewise.
4349 * ipa-param-manipulation.cc: Likewise.
4350 * ipa-profile.cc: Likewise.
4351 * ipa-prop.h: Likewise.
4352 * ipa-pure-const.cc: Likewise.
4353 * ipa-reference.cc: Likewise.
4354 * ipa-sra.cc: Likewise.
4355 * symbol-summary.h: Likewise.
4356 * symtab-thunks.cc: Likewise.
4358 2022-05-24 Martin Liska <mliska@suse.cz>
4361 2022-05-24 Martin Liska <mliska@suse.cz>
4363 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
4366 2022-05-24 Martin Liska <mliska@suse.cz>
4368 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
4371 2022-05-24 Bruno Haible <bruno@clisp.org>
4374 * doc/install.texi (Configuration): Add more details about --with-zstd.
4375 Document --with-zstd-include and --with-zstd-lib
4377 2022-05-24 Richard Biener <rguenther@suse.de>
4379 PR middle-end/105711
4380 * expmed.cc (extract_bit_field_as_subreg): Add op0_mode parameter
4382 (extract_bit_field_1): Pass down the mode of op0 to
4383 extract_bit_field_as_subreg.
4385 2022-05-24 Vineet Gupta <vineetg@rivosinc.com>
4387 * config/riscv/riscv.cc: (struct riscv_tune_param): Add
4389 (rocket_tune_info): Add default fmv_cost 8.
4390 (sifive_7_tune_info): Ditto.
4391 (thead_c906_tune_info): Ditto.
4392 (optimize_size_tune_info): Ditto.
4393 (riscv_register_move_cost): Use fmv_cost for int<->fp moves.
4395 2022-05-24 Jakub Jelinek <jakub@redhat.com>
4398 * omp-builtins.def (BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT): New
4400 * gimplify.cc (gimplify_omp_task): Diagnose taskwait with nowait
4401 clause but no depend clauses.
4402 * omp-expand.cc (expand_taskwait_call): Use
4403 BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT rather than
4404 BUILT_IN_GOMP_TASKWAIT_DEPEND if nowait clause is present.
4406 2022-05-24 Richard Biener <rguenther@suse.de>
4408 PR tree-optimization/100221
4409 * tree-ssa-dse.cc (contains_phi_arg): New function.
4410 (dse_classify_store): Postpone PHI defs that feed another PHI in defs.
4412 2022-05-24 Richard Biener <rguenther@suse.de>
4414 PR tree-optimization/105629
4415 * tree-ssa-phiopt.cc (spaceship_replacement): Allow
4416 a sign-extending conversion.
4418 2022-05-24 Kewen Lin <linkw@linux.ibm.com>
4421 * config/rs6000/rs6000-p8swap.cc (union_defs): Assert def_insn can't
4423 (union_uses): Skip debug use_insn.
4425 2022-05-23 Vineet Gupta <vineetg@rivosinc.com>
4427 * config/riscv/predicates.md (const_0_operand): Remove
4429 * config/riscv/riscv.cc (riscv_rtx_costs): Add check for
4431 * config/riscv/riscv.h (TARGET_SUPPORTS_WIDE_INT): New define.
4433 2022-05-23 Mayshao <mayshao-oc@zhaoxin.com>
4435 * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Detect
4436 the specific type of Zhaoxin CPU, and return Zhaoxin CPU name.
4437 (cpu_indicator_init): Handle Zhaoxin processors.
4438 * common/config/i386/i386-common.cc: Add lujiazui.
4439 * common/config/i386/i386-cpuinfo.h (enum processor_vendor): Add
4441 (enum processor_types): Add ZHAOXIN_FAM7H.
4442 (enum processor_subtypes): Add ZHAOXIN_FAM7H_LUJIAZUI.
4443 * config.gcc: Add lujiazui.
4444 * config/i386/cpuid.h (signature_SHANGHAI_ebx): Add
4445 Signatures for zhaoxin
4446 (signature_SHANGHAI_ecx): Ditto.
4447 (signature_SHANGHAI_edx): Ditto.
4448 * config/i386/driver-i386.cc (host_detect_local_cpu): Let
4449 -march=native recognize lujiazui processors.
4450 * config/i386/i386-c.cc (ix86_target_macros_internal): Add lujiazui.
4451 * config/i386/i386-options.cc (m_LUJIAZUI): New_definition.
4452 * config/i386/i386.h (enum processor_type): Ditto.
4453 * config/i386/i386.md: Add lujiazui.
4454 * config/i386/x86-tune-costs.h (struct processor_costs): Add
4456 * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add lujiazui.
4457 (ix86_adjust_cost): Ditto.
4458 * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Add lujiazui Tunnings.
4459 (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto.
4460 (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Ditto.
4461 (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Ditto.
4462 (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Ditto.
4463 (X86_TUNE_MOVX): Ditto.
4464 (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto.
4465 (X86_TUNE_FUSE_CMP_AND_BRANCH_32): Ditto.
4466 (X86_TUNE_FUSE_CMP_AND_BRANCH_64): Ditto.
4467 (X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS): Ditto.
4468 (X86_TUNE_FUSE_ALU_AND_BRANCH): Ditto.
4469 (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Ditto.
4470 (X86_TUNE_USE_LEAVE): Ditto.
4471 (X86_TUNE_PUSH_MEMORY): Ditto.
4472 (X86_TUNE_LCP_STALL): Ditto.
4473 (X86_TUNE_USE_INCDEC): Ditto.
4474 (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto.
4475 (X86_TUNE_OPT_AGU): Ditto.
4476 (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): Ditto.
4477 (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Ditto.
4478 (X86_TUNE_USE_SAHF): Ditto.
4479 (X86_TUNE_USE_BT): Ditto.
4480 (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Ditto.
4481 (X86_TUNE_ONE_IF_CONV_INSN): Ditto.
4482 (X86_TUNE_AVOID_MFENCE): Ditto.
4483 (X86_TUNE_EXPAND_ABS): Ditto.
4484 (X86_TUNE_USE_SIMODE_FIOP): Ditto.
4485 (X86_TUNE_USE_FFREEP): Ditto.
4486 (X86_TUNE_EXT_80387_CONSTANTS): Ditto.
4487 (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Ditto.
4488 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto.
4489 (X86_TUNE_SSE_TYPELESS_STORES): Ditto.
4490 (X86_TUNE_SSE_LOAD0_BY_PXOR): Ditto.
4491 * doc/extend.texi: Add details about lujiazui.
4492 * doc/invoke.texi: Add details about lujiazui.
4493 * config/i386/lujiazui.md: Introduce lujiazui cpu and include new md file.
4495 2022-05-23 Martin Liska <mliska@suse.cz>
4497 * config/tilepro/gen-mul-tables.cc (ARRAY_SIZE): Add new macro.
4499 2022-05-23 Richard Biener <rguenther@suse.de>
4501 * tree-ssa-forwprop.cc (forward_propagate_into_cond): Remove.
4502 (pass_forwprop::execute): Do not propagate into COND_EXPR conditions.
4504 2022-05-23 Richard Biener <rguenther@suse.de>
4506 * gimple-expr.cc (is_gimple_condexpr): Remove.
4507 * gimple-expr.h (is_gimple_condexpr): Likewise.
4508 * gimplify.cc (gimplify_expr): Remove is_gimple_condexpr usage.
4509 * tree-if-conv.cc (set_bb_predicate): Likewie.
4510 (add_to_predicate_list): Likewise.
4511 (gen_phi_arg_condition): Likewise.
4512 (predicate_scalar_phi): Likewise.
4513 (predicate_statements): Likewise.
4515 2022-05-23 Richard Biener <rguenther@suse.de>
4517 * gimple-expr.cc (is_gimple_condexpr): Equate to is_gimple_val.
4518 * gimplify.cc (gimplify_pure_cond_expr): Gimplify the condition
4520 * gimple-fold.cc (valid_gimple_rhs_p): Simplify.
4521 * tree-cfg.cc (verify_gimple_assign_ternary): Likewise.
4522 * gimple-loop-interchange.cc (loop_cand::undo_simple_reduction):
4523 Build the condition of the COND_EXPR separately.
4524 * tree-ssa-loop-im.cc (move_computations_worker): Likewise.
4525 * tree-vect-generic.cc (expand_vector_condition): Likewise.
4526 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
4528 * vr-values.cc (simplify_using_ranges::simplify): Likewise.
4529 * tree-vect-patterns.cc: Add comment indicating we are
4530 building invalid COND_EXPRs and why.
4531 * omp-expand.cc (expand_omp_simd): Gimplify the condition
4532 to the COND_EXPR separately.
4533 (expand_omp_atomic_cas): Note part that should be unreachable
4535 * tree-ssa-forwprop.cc (forward_propagate_into_cond): Adjust
4536 condition for valid replacements.
4537 * tree-if-conv.cc (predicate_bbs): Simulate previous
4538 re-folding of the condition in folded COND_EXPRs which
4539 is necessary because of unfolded GIMPLE_CONDs in the IL
4540 as in for example gcc.dg/fold-bopcond-1.c.
4541 * gimple-range-gori.cc (gori_compute::condexpr_adjust):
4542 Handle that the comparison is now in the def stmt of
4543 the select operand. Required by gcc.dg/pr104526.c.
4545 2022-05-23 Tobias Burnus <tobias@codesourcery.com>
4548 * langhooks-def.h (lhd_omp_array_size): New.
4549 (LANG_HOOKS_OMP_ARRAY_SIZE): Define.
4550 (LANG_HOOKS_DECLS): Add it.
4551 * langhooks.cc (lhd_omp_array_size): New.
4552 * langhooks.h (struct lang_hooks_for_decls): Add hook.
4553 * omp-low.cc (scan_sharing_clauses, lower_omp_target):
4554 Handle GOMP_MAP_FIRSTPRIVATE for array descriptors.
4556 2022-05-23 Roger Sayle <roger@nextmovesoftware.com>
4558 * config/i386/i386.cc (ix86_rtx_costs) <case AND>: Split from
4559 XOR/IOR case. Account for two instructions for double-word
4560 operations. In case of vector pandn, account for single
4561 instruction. Likewise for integer andn with TARGET_BMI.
4562 <case NOT>: Vector NOT requires more than 1 instruction (pxor).
4563 <case NEG>: Double-word negation requires 3 instructions.
4565 2022-05-23 Tsukasa OI <research_trasio@irq.a4lg.com>
4567 * common/config/riscv/riscv-common.cc (riscv_supported_std_ext):
4568 Fix "K" extension prefix to be placed before "J".
4569 * config/riscv/arch-canonicalize: Likewise.
4571 2022-05-23 liuhongt <hongtao.liu@intel.com>
4573 * config/i386/x86-tune-costs.h (skylake_cost): Increase gpr
4574 <-> mask cost from 5 to 6.
4575 (icelake_cost): Ditto.
4577 2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com>
4579 * config/aarch64/aarch64.md
4580 (and_<SHIFT:optab><mode>3_compare0): Support rotate left.
4581 (and_<SHIFT:optab>si3_compare0_uxtw): Likewise.
4582 (<LOGICAL:optab>_<SHIFT:optab><mode>3): Likewise.
4583 (<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): Likewise.
4584 (one_cmpl_<optab><mode>2): Likewise.
4585 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Likewise.
4586 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab>sidi_uxtw): New pattern.
4587 (eor_one_cmpl_<SHIFT:optab><mode>3_alt): Support rotate left.
4588 (eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
4589 (and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
4590 (and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
4591 (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse): Likewise.
4592 (and_<SHIFT:optab><mode>3nr_compare0): Likewise.
4593 (*<optab>si3_insn_uxtw): Use SHIFT_no_rotate.
4594 (rolsi3_insn_uxtw): New pattern.
4595 * config/aarch64/iterators.md (SHIFT): Add rotate left.
4596 (SHIFT_no_rotate): Add new iterator.
4597 (SHIFT:shift): Print rotate left as ror.
4598 (is_rotl): Add test for left rotate.
4600 2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com>
4602 * config.gcc (aarch64*-*-*): Simplify --with-cpu and --with-arch
4603 processing. Add support for architectural extensions.
4604 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Remove
4605 AARCH64_CPU_DEFAULT_FLAGS.
4606 (TARGET_CPU_NBITS): Remove.
4607 (TARGET_CPU_MASK): Remove.
4608 * config/aarch64/aarch64.cc (AARCH64_CPU_DEFAULT_FLAGS): Remove define.
4609 (get_tune_cpu): Assert CPU is always valid.
4610 (get_arch): Assert architecture is always valid.
4611 (aarch64_override_options): Cleanup CPU selection code and simplify logic.
4612 (aarch64_option_restore): Remove unnecessary checks on tune.
4614 2022-05-20 David Malcolm <dmalcolm@redhat.com>
4616 * config/aarch64/aarch64-sve-builtins-base.cc: Replace uses of
4617 "FINAL" and "OVERRIDE" with "final" and "override".
4618 * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
4619 * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
4620 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
4621 * diagnostic-path.h: Likewise.
4622 * digraph.cc: Likewise.
4623 * gcc-rich-location.h: Likewise.
4624 * gimple-array-bounds.cc: Likewise.
4625 * gimple-loop-versioning.cc: Likewise.
4626 * gimple-range-cache.cc: Likewise.
4627 * gimple-range-cache.h: Likewise.
4628 * gimple-range-fold.cc: Likewise.
4629 * gimple-range-fold.h: Likewise.
4630 * gimple-range-tests.cc: Likewise.
4631 * gimple-range.h: Likewise.
4632 * gimple-ssa-evrp.cc: Likewise.
4633 * input.cc: Likewise.
4635 * read-rtl-function.cc: Likewise.
4636 * tree-complex.cc: Likewise.
4637 * tree-diagnostic-path.cc: Likewise.
4638 * tree-ssa-ccp.cc: Likewise.
4639 * tree-ssa-copy.cc: Likewise.
4640 * tree-vrp.cc: Likewise.
4641 * value-query.h: Likewise.
4642 * vr-values.h: Likewise.
4644 2022-05-20 Marcel Vollweiler <marcel@codesourcery.com>
4646 * omp-low.cc (omp_runtime_api_call): Added target_memcpy_async and
4647 target_memcpy_rect_async to omp_runtime_apis array.
4649 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
4651 * doc/sourcebuild.texi (Decimal floating point attributes): Document
4652 dfp_bid effective-target.
4654 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
4656 * config/aarch64/aarch64.cc
4657 (aarch64_split_128bit_move): Handle DFP modes.
4658 (aarch64_mode_valid_for_sched_fusion_p): Likewise.
4659 (aarch64_classify_address): Likewise.
4660 (aarch64_legitimize_address_displacement): Likewise.
4661 (aarch64_reinterpret_float_as_int): Likewise.
4662 (aarch64_float_const_zero_rtx_p): Likewise.
4663 (aarch64_can_const_movi_rtx_p): Likewise.
4664 (aarch64_anchor_offset): Likewise.
4665 (aarch64_secondary_reload): Likewise.
4666 (aarch64_rtx_costs): Likewise.
4667 (aarch64_legitimate_constant_p): Likewise.
4668 (aarch64_gimplify_va_arg_expr): Likewise.
4669 (aapcs_vfp_sub_candidate): Likewise.
4670 (aarch64_vfp_is_call_or_return_candidate): Likewise.
4671 (aarch64_output_scalar_simd_mov_immediate): Likewise.
4672 (aarch64_gen_adjusted_ldpstp): Likewise.
4673 (aarch64_scalar_mode_supported_p): Accept DFP modes if enabled.
4674 * config/aarch64/aarch64.md
4675 (movsf_aarch64): Use SFD iterator and rename into
4677 (movdf_aarch64): Use DFD iterator and rename into
4679 (movtf_aarch64): Use TFD iterator and rename into
4681 (split pattern for move TF mode): Use TFD iterator.
4682 * config/aarch64/iterators.md
4683 (GPF_TF_F16_MOV): Add DFP modes.
4684 (SFD, DFD, TFD): New iterators.
4685 (GPF_TF): Add DFP modes.
4686 (TX, DX, DX2): Likewise.
4688 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
4690 * configure: Regenerate.
4692 2022-05-19 Roger Sayle <roger@nextmovesoftware.com>
4695 * expr.cc (expand_expr_real_2) [MULT_EXPR]: Expand X*Y as X&Y
4696 when both X and Y are [0, 1], X*Y as X&-Y when Y is [0,1] and
4697 likewise X*Y as -X&Y when X is [0,1] using tree_nonzero_bits.
4699 2022-05-19 Will Schmidt <will_schmidt@vnet.ibm.com>
4701 * config/rs6000/rs6000-builtins.def: Rephrase
4702 to remove RS6000_BTC_SPECIAL from comment.
4703 * config/rs6000/rs6000.h (RS6000_BTC_UNARY, RS6000_BTC_BINARY,
4704 RS6000_BTC_TERNARY, RS6000_BTC_QUATERNARY,
4705 RS6000_BTC_QUINARY, RS6000_BTC_SENARY, RS6000_BTC_OPND_MASK,
4706 RS6000_BTC_SPECIAL, RS6000_BTC_PREDICATE, RS6000_BTC_ABS,
4707 RS6000_BTC_DST, RS6000_BTC_TYPE_MASK, RS6000_BTC_MISC,
4708 RS6000_BTC_CONST, RS6000_BTC_PURE, RS6000_BTC_FP,
4709 RS6000_BTC_QUAD, RS6000_BTC_PAIR, RS6000_BTC_QUADPAIR,
4710 RS6000_BTC_ATTR_MASK, RS6000_BTC_SPR, RS6000_BTC_VOID,
4711 RS6000_BTC_CR, RS6000_BTC_OVERLOADED, RS6000_BTC_GIMPLE,
4712 RS6000_BTC_MISC_MASK, RS6000_BTC_MEM, RS6000_BTC_SAT,
4713 RS6000_BTM_ALWAYS): Delete.
4715 2022-05-19 Richard Biener <rguenther@suse.de>
4717 * omp-expand.cc (expand_omp_atomic_cas): Do not short-cut
4718 computation of the new value.
4720 2022-05-19 Richard Biener <rguenther@suse.de>
4722 * tree-ssa-pre.cc (get_or_alloc_expression_id): Remove.
4723 (add_to_value): Use get_expression_id.
4724 (bitmap_insert_into_set): Likewise.
4725 (bitmap_value_insert_into_set): Likewise.
4727 2022-05-19 David Malcolm <dmalcolm@redhat.com>
4729 * doc/invoke.texi (-fanalyzer-checker=): Add
4730 -Wanalyzer-va-list-leak and -Wanalyzer-va-list-use-after-va-end to
4731 the list of analyzer warnings disabled by
4732 -fanalyzer-checker=taint.
4734 2022-05-19 Jakub Jelinek <jakub@redhat.com>
4737 * cfgexpand.cc (expand_debug_expr): For VAR_DECL, punt for
4738 global vars without symtab node even when they have DECL_RTL
4741 2022-05-19 Jakub Jelinek <jakub@redhat.com>
4744 * pointer-query.cc (gimple_parm_array_size): Return NULL if var
4745 doesn't have pointer or reference type.
4747 2022-05-18 Marek Polacek <polacek@redhat.com>
4750 * doc/invoke.texi: Document -Wenum-int-mismatch.
4752 2022-05-18 Uros Bizjak <ubizjak@gmail.com>
4754 * config/i386/gnu-user-common.h (defined): Only define
4755 TARGET_CAN_SPLIT_STACK for glibc targets.
4756 * config/i386/gnu.h (defined): Ditto.
4758 2022-05-18 Roger Sayle <roger@nextmovesoftware.com>
4760 * config/i386/i386.cc (ix86_rtx_costs) [MULT]: When mode size
4761 is wider than word_mode, a multiplication costs three word_mode
4762 multiplications and two word_mode additions.
4764 2022-05-18 Roger Sayle <roger@nextmovesoftware.com>
4766 * config/i386/i386.md (define_split): Split *andsi_1
4767 and *andn_si_ccno after reload with -Oz.
4769 2022-05-18 Frederik Harwath <frederik@codesourcery.com>
4771 * graphite-scop-detection.cc (scop_detection::can_represent_loop):
4772 Output reason for failure to dump file.
4773 (scop_detection::harmful_loop_in_region): Likewise.
4774 (scop_detection::graphite_can_represent_expr): Likewise.
4775 (scop_detection::stmt_has_simple_data_refs_p): Likewise.
4776 (scop_detection::stmt_simple_for_scop_p): Likewise.
4777 (print_sese_loop_numbers): New function.
4778 (scop_detection::add_scop): Use from here.
4780 2022-05-18 liuhongt <hongtao.liu@intel.com>
4782 PR middle-end/103462
4783 * match.pd (bitwise_induction_p): New match.
4784 * tree-scalar-evolution.cc (gimple_bitwise_induction_p):
4786 (analyze_and_compute_bitwise_induction_effect): New function.
4787 (enum bit_op_kind): New enum.
4788 (final_value_replacement_loop): Enhanced to handle bitwise
4791 2022-05-18 Haochen Gui <guihaoc@gcc.gnu.org>
4794 * config/rs6000/rs6000.md (*subfsi3_carry_in_xx_64): New.
4796 2022-05-18 liuhongt <hongtao.liu@intel.com>
4799 * config/i386/i386.md (*bmi2_bzhi_zero_extendsidi_4): New
4802 2022-05-18 liuhongt <hongtao.liu@intel.com>
4805 * config/i386/i386-expand.cc (ix86_expand_branch): Use ptest
4806 for QImode when code is EQ or NE.
4807 * config/i386/i386.md (cbranchoi4): New expander.
4809 2022-05-18 Peter Bergner <bergner@linux.ibm.com>
4810 Segher Boessenkool <segher@kernel.crashing.org>
4813 * config/rs6000/mma.md (mma_<vv>, mma_<avv>, mma_<pv>, mma_<apv>,
4814 mma_<vvi4i4i8>, mma_<avvi4i4i8>, mma_<vvi4i4i2>, mma_<avvi4i4i2>,
4815 mma_<vvi4i4>, mma_<avvi4i4>, mma_<pvi4i2>, mma_<apvi4i2>,
4816 mma_<vvi4i4i4>, mma_<avvi4i4i4>): Replace "wa" constraints with "v,?wa".
4817 Update other operands accordingly.
4819 2022-05-17 Marek Polacek <polacek@redhat.com>
4821 * godump.cc (go_output_typedef): Use the DECL_INITIAL of the TREE_VALUE.
4823 2022-05-17 Pat Haugen <pthaugen@linux.ibm.com>
4826 * config/rs6000/rs6000-call.cc (rs6000_function_arg_advance_1): Bump
4827 register count when not splitting IEEE 128-bit Complex.
4829 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
4831 * omp-low.cc (check_omp_nesting_restrictions): Skip warning for
4832 target inside target if inner is reverse offload.
4834 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
4836 * config/gcn/mkoffload.cc (process_obj): Revert: Use ARRAY_SIZE.
4837 * config/nvptx/mkoffload.cc (process): Likewise.
4839 2022-05-17 Andrew MacLeod <amacleod@redhat.com>
4841 * Makefile.in (OBJS): Add gimple-range-side-effect.o.
4842 * gimple-range-cache.cc (non_null_ref::non_null_ref): Delete.
4843 (non_null_ref::~non_null_ref): Delete.
4844 (non_null_ref::set_nonnull): Delete.
4845 (non_null_ref::non_null_deref_p): Delete.
4846 (non_null_ref::process_name): Delete.
4847 (ranger_cache::ranger_cache): Initialize m_exit object.
4848 (ranger_cache::fill_block_cache): Use m_exit object intead of nonnull.
4849 (ranger_cache::range_from_dom): Use side_effect class and m_exit object.
4850 (ranger_cache::update_to_nonnull): Delete.
4851 (non_null_loadstore): Delete.
4852 (ranger_cache::block_apply_nonnull): Delete.
4853 (ranger_cache::apply_side_effects): New.
4854 * gimple-range-cache.h (class non_null_ref): Delete.
4855 (non_null_ref::adjust_range): Delete.
4856 (class ranger_cache): Adjust prototypes, add side effect manager.
4857 * gimple-range-path.cc (path_range_query::range_defined_in_block): Use
4858 side effect manager for queries.
4859 (path_range_query::adjust_for_non_null_uses): Ditto.
4860 * gimple-range-path.h (class path_range_query): Delete non_null_ref.
4861 * gimple-range-side-effect.cc: New.
4862 * gimple-range-side-effect.h: New.
4863 * gimple-range.cc (gimple_ranger::gimple_ranger): Update contructor.
4864 (gimple_ranger::range_of_expr): Check def block for override value.
4865 (gimple_ranger::range_on_entry): Don't scan dominators for non-null.
4866 (gimple_ranger::range_on_edge): Check for outgoing side-effects.
4867 (gimple_ranger::register_side_effects): Call apply_side_effects.
4868 (enable_ranger): Update contructor.
4869 * gimple-range.h (class gimple_ranger): Update prototype.
4870 (enable_ranger): Update prototype.
4871 * tree-vrp.cc (execute_ranger_vrp): Invoke without immediate-use flag.
4873 2022-05-17 Giuliano Belinassi <gbelinassi@suse.de>
4876 * targhooks.cc (default_print_patchable_function_entry_1): Handle COMDAT case.
4877 * varasm.cc (switch_to_comdat_section): New
4878 (handle_vtv_comdat_section): Call switch_to_comdat_section.
4879 * varasm.h: Declare switch_to_comdat_section.
4881 2022-05-17 Richard Biener <rguenther@suse.de>
4883 * cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Do
4884 not clear bb->aux of the copied blocks.
4886 2022-05-17 Andrew MacLeod <amacleod@redhat.com>
4888 PR tree-optimization/105458
4889 * value-relation.cc (path_oracle::register_relation): Merge, then check
4892 2022-05-17 Uroš Bizjak <ubizjak@gmail.com>
4896 * config/i386/i386.md: Remove constraints when used with
4897 const_int_operand, const0_operand, const_1_operand, constm1_operand,
4898 const8_operand, const128_operand, const248_operand, const123_operand,
4899 const2367_operand, const1248_operand, const359_operand,
4900 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
4901 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
4902 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
4903 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
4904 const_0_to_255_mul_8_operand, const_1_to_31_operand,
4905 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
4906 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
4907 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
4908 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
4909 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
4910 const_24_to_27_operand and const_28_to_31_operand.
4911 * config/i386/mmx.md: Ditto.
4912 * config/i386/sse.md: Ditto.
4913 * config/i386/subst.md: Ditto.
4914 * config/i386/sync.md: Ditto.
4916 2022-05-17 Thomas Schwinge <thomas@codesourcery.com>
4918 * diagnostic.cc: Don't advise to call 'abort' instead of
4920 * system.h: Advise to call 'internal_error' instead of 'abort' or
4923 2022-05-17 Frederik Harwath <frederik@codesourcery.com>
4925 * graphite-sese-to-poly.cc (build_poly_sr_1): Fix a typo and
4926 a reference to a variable which does not exist.
4927 * graphite-isl-ast-to-gimple.cc (gsi_insert_earliest): Fix typo
4930 2022-05-17 Frederik Harwath <frederik@codesourcery.com>
4932 * graphite-sese-to-poly.cc (isl_id_for_ssa_name): Rename to ...
4933 (isl_id_for_parameter): ... this new function name.
4934 (build_scop_context): Adjust function use.
4936 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
4939 * config/gcn/t-omp-device (arch): Add 'amdgcn' besides existing 'gcn'.
4940 * config/gcn/gcn.cc (gcn_omp_device_kind_arch_isa): Likewise.
4942 2022-05-17 Jakub Jelinek <jakub@redhat.com>
4944 * tree-core.h (enum omp_clause_depend_kind): Add
4945 OMP_CLAUSE_DEPEND_INOUTSET.
4946 * tree-pretty-print.cc (dump_omp_clause): Handle
4947 OMP_CLAUSE_DEPEND_INOUTSET.
4948 * gimplify.cc (gimplify_omp_depend): Likewise.
4949 * omp-low.cc (lower_depend_clauses): Likewise.
4951 2022-05-17 Jakub Jelinek <jakub@redhat.com>
4954 * config/i386/sse.md (vec_cmpeqv2div2di, vec_cmpeqv1tiv1ti): Use
4955 andv4si3 only for EQ, for NE use iorv4si3 instead.
4957 2022-05-17 Richard Biener <rguenther@suse.de>
4959 PR tree-optimization/105618
4960 * tree-ssa-sink.cc (statement_sink_location): For virtual
4961 PHI uses ignore those defining the used virtual operand.
4963 2022-05-17 Jakub Jelinek <jakub@redhat.com>
4965 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Spelling fix:
4966 hanlde -> handle. Fix up comment formatting.
4968 2022-05-17 liuhongt <hongtao.liu@intel.com>
4971 * config/i386/sse.md (*vec_concatv4si): Extend to ..
4972 (*vec_concat<mode>): .. V16QI and V8HImode.
4973 (*vec_concatv16qi_permt2): New pre_reload define_insn_and_split.
4974 (*vec_concatv8hi_permt2): Ditto.
4976 2022-05-17 liuhongt <hongtao.liu@intel.com>
4978 PR tree-optimization/105591
4979 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Clamp
4980 vec_perm_expr index.
4982 2022-05-16 Jason Merrill <jason@redhat.com>
4985 * attribs.cc (decl_attributes): Fix broken typedefs here.
4987 2022-05-16 David Malcolm <dmalcolm@redhat.com>
4990 * Makefile.in (ANALYZER_OBJS): Add analyzer/varargs.o.
4991 * doc/invoke.texi: Add -Wanalyzer-va-arg-type-mismatch,
4992 -Wanalyzer-va-list-exhausted, -Wanalyzer-va-list-leak, and
4993 -Wanalyzer-va-list-use-after-va-end.
4995 2022-05-16 Richard Biener <rguenther@suse.de>
4997 * gimple-match.h (gimple_build): Move code_helper overloads ...
4998 * gimple-fold.h (gimple_build): ... here.
4999 (gimple_build): Transition to new worker API. Provide
5000 overloads from sequence-based API.
5001 (gimple_convert): Likewise.
5002 (gimple_convert_to_ptrofftype): Likewise.
5003 (gimple_build_vector_from_val): Likewise.
5004 (gimple_build_vector): Likewise.
5005 (gimple_build_round_up): Likewise.
5006 * gimple-fold.cc (gimple_build_insert_seq): New helper.
5007 (gimple_build): Use it. Transition combined_fn and code_helper
5009 (gimple_convert): Transition to new worker API.
5010 (gimple_convert_to_ptrofftype): Likewise.
5011 (gimple_build_vector_from_val): Likewise.
5012 (gimple_build_vector): Likewise.
5013 (gimple_build_round_up): Likewise.
5015 2022-05-16 Richard Biener <rguenther@suse.de>
5017 * gimple-match.h (code_helper): Move class ...
5018 * tree.h (code_helper): ... here.
5020 2022-05-16 Martin Liska <mliska@suse.cz>
5022 * opts-global.cc (write_langs): Add comment.
5024 2022-05-16 Eric Botcazou <ebotcazou@adacore.com>
5026 * dwarf2out.cc (loc_list_from_tree_1) <TRUTH_NOT_EXPR>: Do a logical
5027 instead of a bitwise negation.
5028 <COND_EXPR>: Swap the operands if the condition is TRUTH_NOT_EXPR.
5030 2022-05-16 Martin Liska <mliska@suse.cz>
5032 * attribs.cc (diag_attr_exclusions): Use ARRAY_SIZE.
5033 (decls_mismatched_attributes): Likewise.
5034 * builtins.cc (c_strlen): Likewise.
5035 * cfg.cc (DEF_BASIC_BLOCK_FLAG): Likewise.
5036 * common/config/aarch64/aarch64-common.cc (aarch64_option_init_struct): Likewise.
5037 * config/aarch64/aarch64-builtins.cc (aarch64_lookup_simd_builtin_type): Likewise.
5038 (aarch64_init_simd_builtin_types): Likewise.
5039 (aarch64_init_builtin_rsqrt): Likewise.
5040 * config/aarch64/aarch64.cc (is_madd_op): Likewise.
5041 * config/arm/arm-builtins.cc (arm_lookup_simd_builtin_type): Likewise.
5042 (arm_init_simd_builtin_types): Likewise.
5043 * config/avr/gen-avr-mmcu-texi.cc (mcus[ARRAY_SIZE): Likewise.
5044 (c_prefix): Likewise.
5046 * config/c6x/c6x.cc (N_SAVE_ORDER): Likewise.
5047 * config/darwin-c.cc (darwin_register_frameworks): Likewise.
5048 * config/gcn/mkoffload.cc (process_obj): Likewise.
5049 * config/i386/i386-builtins.cc (get_builtin_code_for_version): Likewise.
5050 (fold_builtin_cpu): Likewise.
5051 * config/m32c/m32c.cc (PUSHM_N): Likewise.
5052 * config/nvptx/mkoffload.cc (process): Likewise.
5053 * config/rs6000/driver-rs6000.cc (host_detect_local_cpu): Likewise.
5054 * config/s390/s390.cc (NR_C_MODES): Likewise.
5055 * config/tilepro/gen-mul-tables.cc (find_sequences): Likewise.
5056 (create_insn_code_compression_table): Likewise.
5057 * config/vms/vms.cc (NBR_CRTL_NAMES): Likewise.
5058 * diagnostic-format-json.cc (json_from_expanded_location): Likewise.
5059 * dwarf2out.cc (ARRAY_SIZE): Likewise.
5060 * genhooks.cc (emit_documentation): Likewise.
5061 (emit_init_macros): Likewise.
5062 * gimple-ssa-sprintf.cc (format_floating): Likewise.
5063 * gimple-ssa-warn-access.cc (memmodel_name): Likewise.
5064 * godump.cc (keyword_hash_init): Likewise.
5065 * hash-table.cc (hash_table_higher_prime_index): Likewise.
5066 * input.cc (for_each_line_table_case): Likewise.
5067 * ipa-free-lang-data.cc (free_lang_data): Likewise.
5068 * ipa-inline.cc (sanitize_attrs_match_for_inline_p): Likewise.
5069 * optc-save-gen.awk: Likewise.
5070 * spellcheck.cc (test_metric_conditions): Likewise.
5071 * tree-vect-slp-patterns.cc (sizeof): Likewise.
5072 (ARRAY_SIZE): Likewise.
5073 * tree.cc (build_common_tree_nodes): Likewise.
5075 2022-05-16 Martin Liska <mliska@suse.cz>
5077 * opts-global.cc (write_langs): Allocate at least one byte.
5079 2022-05-16 Richard Biener <rguenther@suse.de>
5081 * match.pd (A cmp B ? A : B -> min/max): New patterns
5082 carried over from fold_cond_expr_with_comparison.
5084 2022-05-16 liuhongt <hongtao.liu@intel.com>
5087 * config/i386/i386-expand.cc
5088 (expand_vec_perm_pslldq_psrldq_por): Fail when (d->perm[i] ==
5089 d->perm[i-1] + 1) && d->perm[i] == nelt && start != -1.
5091 2022-05-15 Uroš Bizjak <ubizjak@gmail.com>
5093 * config/i386/i386.md: Remove constraints when used with
5094 const_int_operand, const0_operand, const_1_operand, constm1_operand,
5095 const8_operand, const128_operand, const248_operand, const123_operand,
5096 const2367_operand, const1248_operand, const359_operand,
5097 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
5098 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
5099 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
5100 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
5101 const_0_to_255_mul_8_operand, const_1_to_31_operand,
5102 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
5103 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
5104 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
5105 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
5106 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
5107 const_24_to_27_operand and const_28_to_31_operand.
5108 * config/i386/mmx.md: Ditto.
5109 * config/i386/sse.md: Ditto.
5110 * config/i386/subst.md: Ditto.
5111 * config/i386/sync.md: Ditto.
5113 2022-05-13 Roger Sayle <roger@nextmovesoftware.com>
5114 Uroš Bizjak <ubizjak@gmail.com>
5116 * config/i386/sse.md (vec_cmpeqv2div2di): Enable for TARGET_SSE2.
5117 For !TARGET_SSE4_1, expand as a V4SI vector comparison, followed
5118 by a pshufd and pand.
5119 (vec_cmpeqv1tiv1ti): New define_expand implementing V1TImode
5120 vector equality as a V2DImode vector comparison (see above),
5121 followed by a pshufd and pand.
5123 2022-05-13 Roger Sayle <roger@nextmovesoftware.com>
5125 PR tree-optimization/83907
5126 * tree-ssa-strlen.cc (handle_builtin_memset): Record a strinfo
5127 for memset with an constant char value.
5128 (handle_store): Improved handling of stores with a first byte
5129 of zero, but not storing_all_zeros_p.
5131 2022-05-13 Philipp Tomsich <philipp.tomsich@vrull.eu>
5132 Manolis Tsamis <manolis.tsamis@vrull.eu>
5134 * config/riscv/riscv.h (CLZ_DEFINED_VALUE_AT_ZERO): Implement.
5135 (CTZ_DEFINED_VALUE_AT_ZERO): Same.
5136 * doc/sourcebuild.texi: add documentation for RISC-V specific
5137 test target keywords
5139 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
5141 PR tree-optimization/105597
5142 * range-op.cc (operator_minus::lhs_op1_relation): Use op1 instead
5143 of the lhs and make sure it is not undefined.
5145 2022-05-13 Sebastian Pop <spop@amazon.com>
5148 * config/aarch64/aarch64-protos.h (atomic_ool_names): Increase dimension
5150 * config/aarch64/aarch64.cc (aarch64_atomic_ool_func): Call
5151 memmodel_from_int and handle MEMMODEL_SYNC_*.
5152 (DEF0): Add __aarch64_*_sync functions.
5154 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
5156 * gimple-range-fold.cc (fold_using_range::range_of_phi): Use new VREL_*
5158 * gimple-range-path.cc (maybe_register_phi_relation): Ditto.
5159 * range-op.cc (*::lhs_op1_relation): Return relation_kind, and use
5160 new VREL enumerated values.
5161 (*::lhs_op2_relation): Ditto.
5162 (*::op1_op2_relation): Ditto.
5163 (*::fold_range): Use new VREL enumerated values.
5164 (minus_op1_op2_relation_effect): Ditto.
5165 (range_relational_tests): Ditto.
5166 * range-op.h (fold_range, op1_range, op2_range): Use VREL_VARYING.
5167 (lhs_op1_relation, lhs_op2_relation, op1_op2_relation): Return
5169 (*_op1_op2_relation): Return relation_kind.
5170 (relop_early_resolve): Use VREL_UNDEFINED.
5171 * value-query.cc (range_query::query_relation): Use VREL_VARYING.
5172 * value-relation.cc (VREL_LAST): Change enumerated value.
5173 (vrel_range_assert): Delete.
5174 (print_relation): Remove range assert.
5175 (rr_negate_table): Adjust table to use new enumerated values..
5176 (relation_negate): Remove range assert.
5177 (rr_swap_table): Adjust.
5178 (relation_swap): Remove range assert.
5179 (rr_intersect_table): Adjust.
5180 (relation_intersect): Remove range assert.
5181 (rr_union_table): Adjust.
5182 (relation_union): Remove range assert.
5183 (rr_transitive_table): Adjust.
5184 (relation_transitive): Remove range assert.
5185 (equiv_oracle::query_relation): Use new VREL enumerated values.
5186 (equiv_oracle::register_relation): Ditto.
5187 (relation_oracle::register_stmt): Ditto.
5188 (dom_oracle::set_one_relation): Ditto.
5189 (dom_oracle::register_transitives): Ditto.
5190 (dom_oracle::query_relation): Ditto.
5191 (path_oracle::register_relation): Ditto.
5192 (path_oracle::query_relation): Ditto.
5193 * value-relation.h (enum relation_kind_t): New relation_kind.
5194 (*_op1_op2_relation): Adjust prototypes.
5196 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
5198 * gimple-range-edge.cc (calc_switch_ranges): Check union return value.
5199 * value-range.cc (irange::legacy_verbose_union_): Add return value.
5200 (irange::irange_single_pair_union): New.
5201 (irange::irange_union): Add return value.
5202 * value-range.h (class irange): Adjust prototypes.
5204 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
5206 * value-range.cc (irange::legacy_verbose_intersect): Add return value.
5207 (irange::irange_contains_p): New.
5208 (irange::irange_intersect): Add return value.
5209 * value-range.h (class irange): Adjust prototypes.
5211 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
5213 * gimple-range-cache.cc (ranger_cache::get_global_range): Return the
5214 had_global value instead.
5216 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
5218 PR tree-optimization/104547
5219 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Add
5220 the op1/op2 relation to the relation call.
5221 * range-op.cc (*::lhs_op1_relation): Add param.
5222 (*::lhs_op2_relation): Ditto.
5223 (operator_minus::lhs_op1_relation): New.
5224 (range_relational_tests): Add relation param.
5225 * range-op.h (lhs_op1_relation, lhs_op2_relation): Adjust prototype.
5227 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
5229 * gimple-range.cc (gimple_ranger::register_side_effects): First check
5230 if the DEF should be exported as a global.
5231 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Process PHI side effects,
5232 which will export globals.
5233 (execute_ranger_vrp): Remove call to export_global_ranges.
5235 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
5237 * value-relation.cc (path_oracle::reset_path): Clear killing_defs.
5239 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
5241 * gimple-range-cache.cc (ranger_cache::ranger_cache): Start with
5243 (ranger_cache::entry_range): Add rfd_mode parameter.
5244 (ranger_cache::exit_range): Ditto.
5245 (ranger_cache::edge_range): New. Incorporate from range_on_edge.
5246 (ranger_cache::range_of_expr): Adjust call to entry_range.
5247 (ranger_cache::range_on_edge): Split to edge_range and call.
5248 (ranger_cache::fill_block_cache): Always invoke range_from_dom.
5249 (ranger_cache::range_from_dom): Make reentrant, add search mode, handle
5250 mutiple predecessors.
5251 (ranger_cache::update_to_nonnull): Adjust call to exit_range.
5252 * gimple-range-cache.h (ranger_cache): Add enum rfd_mode. Adjust
5255 2022-05-13 Alexandre Oliva <oliva@adacore.com>
5257 * gimple-harden-conditionals.cc: Include sbitmap.h.
5258 (pass_harden_conditional_branches::execute): Skip new blocks.
5259 (pass_harden_compares::execute): Likewise.
5261 2022-05-13 Richard Earnshaw <rearnsha@arm.com>
5264 * config/arm/mve.md (*movmisalign<mode>_mve_store): Use
5266 (*movmisalign<mode>_mve_load): Likewise.
5267 * config/arm/vec-common.md (movmisalign<mode>): Convert to generator
5269 (@movmisalign<mode>): ... thus. Use generic predicates and then
5270 rework operands if they are not valid. For MVE rework to a
5271 narrower element size if the alignment is not high enough.
5273 2022-05-13 Richard Earnshaw <rearnsha@arm.com>
5275 * config/arm/arm.cc (mve_vector_mem_operand): Allow SP_REGNUM
5276 when there is no write-back. Fix use when strict is true.
5278 2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5280 * config/xtensa/xtensa.h (TARGET_HAS_NO_HW_DIVIDE): New macro
5283 2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5285 * config/xtensa/xtensa.md (extvsi, extvsi_internal, extzvsi,
5286 extzvsi_internal): Rename from extv, extv_internal, extzv and
5287 extzv_internal, respectively.
5289 2022-05-13 Eric Botcazou <ebotcazou@adacore.com>
5291 * tree-sra.cc (sra_modify_assign): Check that scalar storage order
5292 is the same on the LHS and RHS before rewriting one with the model
5295 2022-05-13 Richard Biener <rguenther@suse.de>
5297 * gimple-fold.cc (gimple_build): Adjust for new
5299 * gimple-fold.h (gimple_build): New main APIs with
5300 iterator, insert direction and iterator update.
5301 (gimple_build): New forwarder template.
5302 (clear_padding_type_may_have_padding_p): Remove.
5303 (clear_type_padding_in_mask): Likewise.
5304 (arith_overflowed_p): Likewise.
5305 * fold-const.h (clear_padding_type_may_have_padding_p): Declare.
5306 (clear_type_padding_in_mask): Likewise.
5307 (arith_overflowed_p): Likewise.
5308 * tree-vect-generic.cc (gimplify_build3): Use main gimple_build API.
5309 (gimplify_build2): Likewise.
5310 (gimplify_build1): Likewise.
5311 * ubsan.cc (ubsan_expand_ptr_ifn): Likewise, avoid extra
5313 * gengtype.cc (open_base_files): Re-order includes.
5314 * builtins.cc: Re-order gimple-fold.h include.
5315 * calls.cc: Likewise.
5316 * cgraphbuild.cc: Likewise.
5317 * cgraphunit.cc: Likewise.
5318 * config/rs6000/rs6000-builtin.cc: Likewise.
5319 * config/rs6000/rs6000-call.cc: Likewise.
5320 * config/rs6000/rs6000.cc: Likewise.
5321 * config/s390/s390.cc: Likewise.
5322 * expr.cc: Likewise.
5323 * fold-const.cc: Likewise.
5324 * function-tests.cc: Likewise.
5325 * gimple-match-head.cc: Likewise.
5326 * gimple-range-fold.cc: Likewise.
5327 * gimple-ssa-evrp-analyze.cc: Likewise.
5328 * gimple-ssa-evrp.cc: Likewise.
5329 * gimple-ssa-sprintf.cc: Likewise.
5330 * gimple-ssa-warn-access.cc: Likewise.
5331 * gimplify.cc: Likewise.
5332 * graphite-isl-ast-to-gimple.cc: Likewise.
5333 * ipa-cp.cc: Likewise.
5334 * ipa-devirt.cc: Likewise.
5335 * ipa-prop.cc: Likewise.
5336 * omp-low.cc: Likewise.
5337 * pointer-query.cc: Likewise.
5338 * range-op.cc: Likewise.
5339 * tree-cfg.cc: Likewise.
5340 * tree-if-conv.cc: Likewise.
5341 * tree-inline.cc: Likewise.
5342 * tree-object-size.cc: Likewise.
5343 * tree-ssa-ccp.cc: Likewise.
5344 * tree-ssa-dom.cc: Likewise.
5345 * tree-ssa-forwprop.cc: Likewise.
5346 * tree-ssa-ifcombine.cc: Likewise.
5347 * tree-ssa-loop-ivcanon.cc: Likewise.
5348 * tree-ssa-math-opts.cc: Likewise.
5349 * tree-ssa-pre.cc: Likewise.
5350 * tree-ssa-propagate.cc: Likewise.
5351 * tree-ssa-reassoc.cc: Likewise.
5352 * tree-ssa-sccvn.cc: Likewise.
5353 * tree-ssa-strlen.cc: Likewise.
5354 * tree-ssa.cc: Likewise.
5355 * value-pointer-equiv.cc: Likewise.
5356 * vr-values.cc: Likewise.
5358 2022-05-13 Alexandre Oliva <oliva@adacore.com>
5360 PR rtl-optimization/105455
5361 * gimple-harden-conditionals.cc (insert_check_and_trap): Set
5362 probabilities for newly-conditional edges.
5364 2022-05-13 liuhongt <hongtao.liu@intel.com>
5366 PR tree-optimization/102583
5367 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Extended to a
5368 contiguous stride in the VEC_PERM_EXPR.
5370 2022-05-12 Richard Biener <rguenther@suse.de>
5372 PR rtl-optimization/105577
5373 * dse.cc (rest_of_handle_dse): Make sure to purge dead EH
5374 edges before running fast DCE via df_analyze.
5376 2022-05-12 Richard Biener <rguenther@suse.de>
5378 PR tree-optimization/105562
5379 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Disambiguate
5380 against all CLOBBER defs if there's not an obvious must-alias
5381 and we are not doing redundant store elimination.
5382 (vn_walk_cb_data::redundant_store_removal_p): New field.
5383 (vn_reference_lookup_pieces): Initialize it.
5384 (vn_reference_lookup): Add argument to specify if we are
5385 doing redundant store removal.
5386 (eliminate_dom_walker::eliminate_stmt): Specify we do.
5387 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust.
5389 2022-05-12 Haochen Jiang <haochen.jiang@intel.com>
5392 * config/i386/sse.md (vi1avx2const): New define_mode_attr.
5393 (pxor/pcmpeqb/pmovmskb/cmp 0xffff to ptest splitter):
5394 New define_split pattern.
5396 2022-05-12 Jakub Jelinek <jakub@redhat.com>
5398 * gimplify.cc (gimplify_omp_depend): Don't build_fold_addr_expr
5399 if null_pointer_node.
5400 (gimplify_scan_omp_clauses): Likewise.
5401 * tree-pretty-print.cc (dump_omp_clause): Print null_pointer_node
5404 2022-05-11 Patrick Palka <ppalka@redhat.com>
5406 * tree.h (TREE_VEC_BEGIN): Define.
5407 (TREE_VEC_END): Correct 'length' member access.
5408 (class tree_vec_range): Define.
5410 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
5412 * config/rs6000/rs6000.md: Use wa instead of <Fv>.
5414 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
5416 * config/rs6000/rs6000.md: Use d instead of <Ff>.
5418 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
5420 * config/rs6000/constraints.md (register_constraint "f"): Use
5421 RS6000_CONSTRAINT_d.
5422 * config/rs6000/rs6000.cc (rs6000_debug_reg_global): Do not handle
5423 RS6000_CONSTRAINT_f.
5424 (rs6000_init_hard_regno_mode_ok): Ditto. Reorder and simplify a bit.
5425 * config/rs6000/rs6000.h (r6000_reg_class_enum): Delete
5426 RS6000_CONSTRAINT_d.
5428 2022-05-11 Richard Biener <rguenther@suse.de>
5430 * gimple-fold.h (gimple_build): Use variadic template
5431 functions for the gimple_build API forwarders without
5432 location_t argument.
5434 2022-05-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
5437 * asan.cc (initialize_sanitizer_builtins): Register
5438 __builtin_dynamic_object_size if necessary.
5440 2022-05-11 Richard Biener <rguenther@suse.de>
5442 PR rtl-optimization/105559
5443 * cfgrtl.cc (delete_insn_and_edges): Only perform search to BB_END
5444 for non-debug insns.
5446 2022-05-11 Richard Biener <rguenther@suse.de>
5448 * generic-match-head.cc: Include tree-eh.h.
5449 * match.pd ((cond ...) cmp X): New simplification inspired
5450 by fold_binary_op_with_conditional_arg.
5451 (eq/ne (cmp ...) true/false): Likewise.
5453 2022-05-11 Thomas Schwinge <thomas@codesourcery.com>
5455 * doc/install.texi: Don't document '--with-hsa-runtime',
5456 '--with-hsa-runtime-include', '--with-hsa-runtime-lib'.
5458 2022-05-11 Martin Liska <mliska@suse.cz>
5461 * doc/install.texi: Document the configure option --with-zstd.
5463 2022-05-11 Martin Liska <mliska@suse.cz>
5465 * common/config/i386/cpuinfo.h (has_cpu_feature): Directly
5466 compute index in cpu_features2.
5467 (set_cpu_feature): Likewise.
5468 * config/i386/i386-builtins.cc (fold_builtin_cpu): Also remove
5469 loop for cpu_features2 and use NOP_EXPRs.
5471 2022-05-11 Richard Biener <rguenther@suse.de>
5474 * opts.cc (finish_options): Also disable var-tracking if
5475 !DWARF2_DEBUGGING_INFO.
5477 2022-05-11 liuhongt <hongtao.liu@intel.com>
5480 * config/i386/sse.md (*vec_set<mode>_0_zero_extendhi): New
5481 pre_reload define_insn_and_split.
5482 (*vec_setv2di_0_zero_extendhi_1): Ditto.
5483 (*vec_set<mode>_0_zero_extendsi): Ditto.
5484 (*vec_setv2di_0_zero_extendsi_1): Ditto.
5485 (ssewvecmode): New mode attr.
5486 (ssewvecmodelower): Ditto.
5487 (ssepackmodelower): Ditto.
5489 2022-05-11 Kewen Lin <linkw@linux.ibm.com>
5491 * config/rs6000/constraints.md (register constraint v): Use
5492 rs6000_constraints[RS6000_CONSTRAINT_v] instead of ALTIVEC_REGS.
5494 2022-05-11 Martin Liska <mliska@suse.cz>
5497 * config/riscv/riscv.opt: Remove Separate from
5498 -msmall-data-limit=.
5499 * optc-gen.awk: Report error for the described situation.
5500 * gcc.cc: Use Separate syntax.
5501 * opts.cc (gen_command_line_string): Change option name.
5503 2022-05-11 Haochen Gui <guihaoc@gcc.gnu.org>
5506 * match.pd (minmax): Skip constant folding for fmin/fmax when both
5507 arguments are sNaN or one is sNaN and another is NaN.
5509 2022-05-10 Jakub Jelinek <jakub@redhat.com>
5511 PR tree-optimization/105528
5512 * gimple-isel.cc (gimple_expand_vec_set_expr): After gsi_remove
5513 set *gsi to gsi_for_stmt (ass_stmt). Fix up function comment.
5515 2022-05-10 Segher Boessenkool <segher@kernel.crashing.org>
5517 * doc/md.texi (Defining Mode Iterators): Correct example replacement
5520 2022-05-10 Maciej W. Rozycki <macro@embecosm.com>
5522 * config/riscv/riscv.md (UNSPEC_FMIN, UNSPEC_FMAX): New
5524 (fmin<mode>3, fmax<mode>3): New insns.
5526 2022-05-10 Richard Biener <rguenther@suse.de>
5528 * tree-if-conv.cc (fold_build_cond_expr): Use
5529 match-and-simplify to simplify the condition.
5530 (ifcvt_follow_ssa_use_edges): Remove.
5531 (predicate_scalar_phi): Use follow_all_ssa_edges.
5533 2022-05-10 Thomas Schwinge <thomas@codesourcery.com>
5535 PR middle-end/100400
5536 * omp-oacc-kernels-decompose.cc
5537 (visit_loops_in_gang_single_region) <GIMPLE_OMP_FOR>: Explicitly
5538 call 'internal_error'.
5540 2022-05-10 Richard Biener <rguenther@suse.de>
5542 PR middle-end/105537
5543 * toplev.cc (process_options): Move flag_var_tracking
5545 * opts.cc (finish_options): ... here.
5547 2022-05-10 Martin Liska <mliska@suse.cz>
5549 * basic-block.h (struct basic_block_d): Use void *
5551 * cfgloop.h: Likewise.
5552 * cgraph.h: Likewise.
5553 * gengtype-state.cc (state_ident_by_name): Likewise.
5554 (record_type): Likewise.
5555 (read_state_already_seen_type): Likewise.
5556 * gengtype.cc (dump_type): Likewise.
5557 (input_file_by_name): Likewise.
5559 * ggc-common.cc (ggc_cleared_alloc_ptr_array_two_args): Likewise.
5560 * ipa-utils.h (struct ipa_dfs_info): Likewise.
5561 * plugin.cc (htab_hash_plugin): Likewise.
5563 2022-05-10 Richard Biener <rguenther@suse.de>
5565 * flags.h (dwarf_debuginfo_p): Add opts argument, guard
5566 API with !GENERATOR_FILE.
5567 * opts.cc (global_options): Poison.
5568 (global_options_set): Likewise.
5569 (finish_options): Refer to options via opts.
5571 2022-05-10 Uroš Bizjak <ubizjak@gmail.com>
5572 Roger Sayle <roger@nextmovesoftware.com>
5574 * config/i386/i386.md (*testqi_1_maybe_si): Prefer shorter SImode
5575 alternative when optimizing for size and the immediate operand is
5576 const_0_to_127_operand.
5577 (*andqi_2_maybe_si): Likewise.
5578 * config/i386/predicates.md (const_0_to_127_operand): New predicate.
5580 2022-05-10 Roger Sayle <roger@nextmovesoftware.com>
5582 * tree-chrec.cc (chrec_apply): Attempt to fold the linear chrec
5583 "{a, +, a} (x-1)" as "a*x", as the number of loop iterations, x-1,
5586 2022-05-10 Eric Botcazou <ebotcazou@adacore.com>
5589 * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Return
5590 true only for 8-byte vector modes.
5592 2022-05-10 Siddhesh Poyarekar <siddhesh@gotplt.org>
5595 * ubsan.cc (ubsan_expand_objsize_ifn): Allow non-constant SIZE.
5596 (instrument_object_size): Get dynamic object size expression.
5598 2022-05-10 Jiufu Guo <guojiufu@linux.ibm.com>
5600 PR preprocessor/101168
5601 * config/rs6000/rs6000-c.cc (rs6000_macro_to_expand):
5602 Avoid empty identifier.
5604 2022-05-09 Qing Zhao <qing.zhao@oracle.com>
5607 * config/i386/i386.cc (zero_call_used_regno_mode): use V2SImode
5608 as a generic MMX mode instead of V4HImode.
5609 (zero_all_mm_registers): Use SET to zero instead of MOV for
5610 zeroing scratch registers.
5611 (ix86_zero_call_used_regs): Likewise.
5613 2022-05-09 liuhongt <hongtao.liu@intel.com>
5616 * config/i386/i386-expand.cc
5617 (expand_vec_perm_pslldq_psrldq_por): New function.
5618 (ix86_expand_vec_perm_const_1): Try
5619 expand_vec_perm_pslldq_psrldq_por for both 3-instruction and
5620 4/5-instruction sequence.
5622 2022-05-09 Martin Liška <mliska@suse.cz>
5624 * basic-block.h (STATIC_ASSERT): Use normal STATIC_ASSERT.
5625 * system.h (STATIC_ASSERT): Define as static_assert for C++
5626 and fallback to array index in C.
5628 2022-05-09 Richard Biener <rguenther@suse.de>
5630 PR tree-optimization/105517
5631 * tree-ssa-sccvn.cc (vn_reference_lookup): Make sure the accumulated
5632 offset can be represented in the POINTER_PLUS_EXPR IL.
5633 (vn_reference_insert): Likewise.
5634 * poly-int.h (sext_hwi): Add poly version of sext_hwi.
5636 2022-05-09 Richard Biener <rguenther@suse.de>
5638 * match.pd: Remove #if GIMPLE guards around ! using patterns.
5640 2022-05-09 liuhongt <hongtao.liu@intel.com>
5643 * config/i386/sse.md (*sse4_1_<code>v2qiv2di2<mask_name>_1):
5645 (*sse4_1_zero_extendv2qiv2di2_2): New pre_reload
5646 define_insn_and_split.
5648 2022-05-09 Alex Coplan <alex.coplan@arm.com>
5650 * cgraph.cc (cgraph_node::get_create): Don't dump if the current
5651 symtab state is PARSING.
5653 2022-05-09 Martin Liska <mliska@suse.cz>
5655 * system.h (LIKELY): Define.
5656 (UNLIKELY): Likewise.
5657 * domwalk.cc (sort_bbs_postorder): Use {,UN}LIKELY
5659 * dse.cc (set_position_unneeded): Likewise.
5660 (set_all_positions_unneeded): Likewise.
5661 (any_positions_needed_p): Likewise.
5662 (all_positions_needed_p): Likewise.
5663 * expmed.cc (flip_storage_order): Likewise.
5664 * genmatch.cc (dt_simplify::gen_1): Likewise.
5665 * ggc-common.cc (gt_pch_save): Likewise.
5666 * print-rtl.cc: Likewise.
5667 * rtl-iter.h (T>::array_type::~array_type): Likewise.
5668 (T>::next): Likewise.
5669 * rtl-ssa/internals.inl: Likewise.
5670 * rtl-ssa/member-fns.inl: Likewise.
5671 * rtlanal.cc (T>::add_subrtxes_to_queue): Likewise.
5672 (rtx_properties::try_to_add_dest): Likewise.
5673 * rtlanal.h (growing_rtx_properties::repeat): Likewise.
5674 (vec_rtx_properties_base::~vec_rtx_properties_base): Likewise.
5675 * simplify-rtx.cc (simplify_replace_fn_rtx): Likewise.
5676 * sort.cc (likely): Likewise.
5677 (mergesort): Likewise.
5678 * wide-int.h (wi::eq_p): Likewise.
5679 (wi::ltu_p): Likewise.
5680 (wi::cmpu): Likewise.
5681 (wi::bit_and): Likewise.
5682 (wi::bit_and_not): Likewise.
5683 (wi::bit_or): Likewise.
5684 (wi::bit_or_not): Likewise.
5685 (wi::bit_xor): Likewise.
5686 (wi::add): Likewise.
5687 (wi::sub): Likewise.
5689 2022-05-09 Kito Cheng <kito.cheng@sifive.com>
5691 * config/riscv/arch-canonicalize: Handle g correctly.
5693 2022-05-07 Marek Polacek <polacek@redhat.com>
5697 * tree-core.h (struct attribute_spec): Update comment for HANDLER.
5699 2022-05-06 Jason Merrill <jason@redhat.com>
5701 * diagnostic-color.cc: Add fnname and targs color entries.
5702 * doc/invoke.texi: Document them.
5704 2022-05-06 Jason Merrill <jason@redhat.com>
5706 * vec.h (vec::iterate): Fix comment.
5708 2022-05-06 Michael Meissner <meissner@linux.ibm.com>
5711 * config/rs6000/rs6000.cc (rs6000_can_inline_p): Ignore -mpower8-fusion
5712 and -mpower10-fusion options for inlining purposes.
5714 2022-05-06 Christophe Lyon <christophe.lyon@arm.com>
5716 * config/aarch64/iterators.md (GPF_TF_F16): Delete.
5718 2022-05-06 Marcel Vollweiler <marcel@codesourcery.com>
5720 * omp-low.cc (omp_runtime_api_call): Added target_is_accessible to
5721 omp_runtime_apis array.
5723 2022-05-06 Hafiz Abid Qadeer <abidh@codesourcery.com>
5725 * omp-low.cc (omp_maybe_offloaded_ctx): New prototype.
5726 (scan_sharing_clauses): Check a restriction on allocate clause.
5728 2022-05-05 Sandra Loosemore <sandra@codesourcery.com>
5730 * gimplify.cc (gimplify_omp_for): Update messages for SCHEDULED
5731 and ORDERED clause conflict errors. Add check for GRAINSIZE and
5732 NUM_TASKS on TASKLOOP.
5734 2022-05-05 Martin Liska <mliska@suse.cz>
5736 * genautomata.cc (create_composed_state): Remove dead code.
5737 * graphite-poly.cc (print_pdrs): Likewise.
5738 * lto-wrapper.cc (run_gcc): Likewise.
5739 * tree-switch-conversion.cc (switch_decision_tree::balance_case_nodes):
5742 2022-05-05 Martin Liska <mliska@suse.cz>
5744 * tree-profile.cc (gimple_gen_ic_profiler): Prefix names with
5746 (gimple_gen_time_profiler): Likewise.
5748 2022-05-05 Martin Liska <mliska@suse.cz>
5750 * value-prof.cc (stream_out_histogram_value): Remove sanity
5753 2022-05-05 Richard Biener <rguenther@suse.de>
5755 PR tree-optimization/104162
5756 * tree-ssa-sccvn.cc (vn_reference_lookup): Handle
5757 &MEM[_1 + 5].a[i] like a POINTER_PLUS_EXPR if the offset
5759 (vn_reference_insert): Likewise.
5761 2022-05-05 Richard Biener <rguenther@suse.de>
5763 * tree-core.h (tree_real_cst::real_cst_ptr): Remove pointer
5764 to real_value field.
5765 (tree_real_cst::value): Add real_value field.
5766 * tree.h (TREE_REAL_CST_PTR): Adjust.
5767 * tree.cc (build_real): Remove separate allocation.
5768 * tree-streamer-in.cc (unpack_ts_real_cst_value_fields):
5771 2022-05-05 Richard Biener <rguenther@suse.de>
5773 * tree-ssa-ifcombine.cc (bb_no_side_effects_p): Avoid executing
5774 divisions with undefined overflow unconditionally.
5775 (pass_tree_ifcombine::execute): Rewrite stmts with undefined
5776 overflow to defined.
5778 2022-05-05 Richard Biener <rguenther@suse.de>
5780 PR tree-optimization/105484
5781 * gimple-isel.cc (gimple_expand_vec_set_expr): Clean EH, return
5782 whether the CFG changed.
5783 (gimple_expand_vec_exprs): When the CFG changed, clean it up.
5785 2022-05-05 Richard Biener <rguenther@suse.de>
5787 PR tree-optimization/104595
5788 * tree-vect-patterns.cc (vect_recog_bool_pattern): For
5789 COND_EXPR do not fail if check_bool_pattern returns false.
5791 2022-05-04 Tobias Burnus <tobias@codesourcery.com>
5793 * omp-low.cc (lower_omp_target): Fix use_device_{addr,ptr} with list
5794 item that is in an outer data-sharing clause.
5796 2022-05-04 Richard Biener <rguenther@suse.de>
5798 PR tree-optimization/104658
5799 * tree-vect-slp.cc (vect_slp_convert_to_external): Do not
5800 create VECTOR_BOOLEAN_TYPE_P extern defs. Reset the vector
5801 type on nodes we promote.
5802 (vectorizable_bb_reduc_epilogue): Deal with externalized
5804 * tree-vect-stmts.cc (vect_maybe_update_slp_op_vectype): Do
5805 not allow VECTOR_BOOLEAN_TYPE_P extern defs.
5807 2022-05-04 Richard Biener <rguenther@suse.de>
5809 PR tree-optimization/103116
5810 * tree-vect-stmts.cc (get_group_load_store_type): Handle the
5811 case we need peeling for gaps even though GROUP_GAP is zero.
5813 2022-05-04 Martin Liska <mliska@suse.cz>
5815 * gengtype-state.cc (read_a_state_token): Remove dead code.
5816 * ipa-profile.cc (ipa_profile_read_summary_section): Likewise.
5818 2022-05-04 Richard Biener <rguenther@suse.de>
5820 * gimplify.cc (gimplify_init_constructor): First gimplify,
5821 then simplify the result to a VECTOR_CST.
5823 2022-05-04 Jakub Jelinek <jakub@redhat.com>
5825 * genconditions.cc (write_conditions): Append a { nullptr, -1 }
5826 element at the end of insn_conditions.
5827 (write_writer): Use ARRAY_SIZE (insn_conditions) - 1 instead of
5828 ARRAY_SIZE (insn_conditions).
5830 2022-05-04 Christophe Lyon <christophe.lyon@arm.com>
5833 * config/arm/arm.cc (simd_valid_immediate): Exit when input is a
5834 vector of booleans and MVE is not enabled.
5836 2022-05-04 Richard Biener <rguenther@suse.de>
5839 * tree-cfgcleanup.cc (move_debug_stmts_from_forwarder):
5840 Move debug stmts to the predecessor if moving to the
5841 destination is not possible.
5842 (remove_forwarder_block): Adjust.
5843 (remove_forwarder_block_with_phi): Likewise.
5845 2022-05-03 Roger Sayle <roger@nextmovesoftware.com>
5847 PR tree-optimization/102950
5848 * range-op.cc (wi_optimize_signed_bitwise_op): New function to
5849 determine bounds of bitwise operations on signed types.
5850 (operator_bitwise_and::wi_fold): Call the above function.
5851 (operator_bitwise_or::wi_fold): Likewise.
5852 (operator_bitwise_xor::wi_fold): Likewise. Additionally, the
5853 result can't be zero if the operands can't be equal.
5855 2022-05-03 Iain Sandoe <iain@sandoe.co.uk>
5857 * config/darwin.cc (darwin_label_is_anonymous_local_objc_name): Make
5858 protocol class methods linker-visible.
5860 2022-05-03 Uroš Bizjak <ubizjak@gmail.com>
5863 * config/i386/sse.md (*vec_extract<mode>_0_mem): New pre-reload
5864 define_insn_and_split pattern.
5866 2022-05-03 Richard Biener <rguenther@suse.de>
5868 PR middle-end/105083
5869 * tree-scalar-evolution.cc (scev_initialize): Verify we
5870 have appropriate loop state.
5871 * tree-ssa-dce.cc (perform_tree_ssa_dce): Re-order SCEV and
5872 loop init and finalization.
5874 2022-05-03 Richard Biener <rguenther@suse.de>
5876 PR middle-end/105461
5877 * opts.cc (finish_options): Match the condition to
5878 disable flag_var_tracking to that of process_options.
5880 2022-05-03 Richard Biener <rguenther@suse.de>
5882 * opts.cc: #undef OPTIONS_SET_P.
5883 (finish_options): Use opts_set instead of OPTIONS_SET_P.
5885 2022-05-03 Richard Biener <rguenther@suse.de>
5887 PR tree-optimization/105394
5888 * tree-vect-generic.cc (expand_vector_condition): Adjust
5889 comp_width for non-integer mode masks as well.
5891 2022-05-03 Marcel Vollweiler <marcel@codesourcery.com>
5893 * omp-low.cc (omp_runtime_api_call): Added get_mapped_ptr to
5894 omp_runtime_apis array.
5896 2022-05-02 Richard Biener <rguenther@suse.de>
5898 * tree-scalar-evolution.cc (expression_expensive_p):
5899 Never consider mismatched calls as cheap.
5901 2022-05-02 Richard Biener <rguenther@suse.de>
5903 PR tree-optimization/104240
5904 * tree-vect-slp.cc (op1_op0_map): New.
5905 (vect_get_operand_map): Handle compares.
5906 (vect_build_slp_tree_1): Support swapped operands for
5909 2022-05-02 Jakub Jelinek <jakub@redhat.com>
5912 * cfgexpand.cc (expand_debug_expr): Don't make_decl_rtl_for_debug
5913 if there is no symtab node for the VAR_DECL.
5915 2022-05-02 Sebastian Huber <sebastian.huber@embedded-brains.de>
5917 * gcov-io.cc (gcov_rewrite): Clear the file error status.
5919 2022-05-02 Richard Biener <rguenther@suse.de>
5921 PR tree-optimization/105437
5922 * tree-vect-slp.cc (vect_schedule_slp_node): Handle the
5923 case where last_stmt alters control flow.
5925 2022-05-02 Richard Biener <rguenther@suse.de>
5927 * dojump.cc (do_jump): Use CASE_CONVERT.
5928 * tree-ssa-dom.cc (edge_info::derive_equivalences): Likewise.
5930 2022-05-02 Jakub Jelinek <jakub@redhat.com>
5932 * system.h: Include initializer_list.
5934 2022-05-01 Segher Boessenkool <segher@kernel.crashing.org>
5936 * config/rs6000/constraints.md (Y constraint): Fix comment.
5938 2022-05-01 Aldy Hernandez <aldyh@redhat.com>
5940 * tree-ssanames.cc (set_range_info): Denormalize VR_VARYING to
5941 VR_RANGE before passing a piecewise range to set_range_info_raw.
5943 2022-04-30 Patrick Palka <ppalka@redhat.com>
5945 * gengtype.cc (adjust_field_tree_exp): Remove.
5946 (adjust_field_type): Don't handle the "tree_exp" special attribute.
5947 * tree-core.h (struct tree_exp): Remove "special" and "desc"
5948 attributes. Add "length" attribute.
5950 2022-04-29 Martin Jambor <mjambor@suse.cz>
5953 * cgraph.cc (cgraph_node::remove): Release body of the node this
5954 is clone_of if appropriate.
5956 2022-04-29 Uroš Bizjak <ubizjak@gmail.com>
5959 * config/i386/i386.md (adcl/neg -> sbb peephole): New peephole2.
5961 2022-04-29 Richard Biener <rguenther@suse.de>
5963 * gimple-expr.cc (is_gimple_condexpr): Adjust comment.
5964 (canonicalize_cond_expr_cond): Move here from gimple.cc,
5965 allow both COND_EXPR and GIMPLE_COND forms.
5966 * gimple-expr.h (canonicalize_cond_expr_cond): Declare.
5967 * gimple.cc (canonicalize_cond_expr_cond): Remove here.
5968 * gimple.h (canonicalize_cond_expr_cond): Likewise.
5969 * gimple-loop-versioning.cc (loop_versioning::version_loop):
5970 Use is_gimple_condexpr_for_cond.
5971 * tree-parloops.cc (gen_parallel_loop): Likewise.
5972 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Check for
5973 a proper cond expr after canonicalize_cond_expr_cond.
5974 Use is_gimple_condexpr_for_cond where appropriate.
5975 * tree-ssa-loop-manip.cc (determine_exit_conditions): Likewise.
5976 * tree-vect-loop-manip.cc (slpeel_add_loop_guard): Likewise.
5978 2022-04-29 Richard Biener <rguenther@suse.de>
5980 * gimple-iterator.h (gsi_after_labels): Add overload for
5982 (gsi_start_1): Rename to gsi_start and take a reference.
5983 (gsi_last_1): Likewise.
5984 * gimple-iterator.cc (gsi_for_stmt): Use gsi_start.
5985 * omp-low.cc (lower_rec_input_clauses): Likewise.
5986 (lower_omp_scan): Likewise.
5988 2022-04-29 Richard Biener <rguenther@suse.de>
5990 PR tree-optimization/105431
5991 * tree-ssa-math-opts.cc (powi_as_mults_1): Make n unsigned.
5992 (powi_as_mults): Use absu_hwi.
5993 (gimple_expand_builtin_powi): Remove now pointless n != -n
5996 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
5998 * range-op.cc (empty_range_varying): Move to range-op.h.
5999 (range_true): Move to range.h.
6000 (range_false): Same.
6001 (range_true_and_false): Same.
6002 (enum bool_range_state): Move to range-op.h.
6003 (relop_early_resolve): Same.
6004 (operator_equal::op1_op2_relation): Abstract code to...
6005 (equal_op1_op2_relation): ...here.
6006 (operator_not_equal::op1_op2_relation): Abstract code to...
6007 (not_equal_op1_op2_relation): ...here.
6008 (operator_lt::op1_op2_relation): Abstract code to...
6009 (lt_op1_op2_relation): ...here.
6010 (operator_le::op1_op2_relation): Abstract code to...
6011 (le_op1_op2_relation): ...here.
6012 (operator_gt::op1_op2_relation): Abstract code to...
6013 (gt_op1_op2_relation): ...here.
6014 (operator_ge::op1_op2_relation): Abstract code to...
6015 (ge_op1_op2_relation): ...here.
6016 (class range_op_table): Move to range-op.h.
6017 * range-op.h (equal_op1_op2_relation): Moved from range-op.cc.
6018 (not_equal_op1_op2_relation): Same.
6019 (lt_op1_op2_relation): Same.
6020 (le_op1_op2_relation): Same.
6021 (gt_op1_op2_relation): Same.
6022 (ge_op1_op2_relation): Same.
6023 (enum bool_range_state): Same.
6024 (get_bool_state): Same.
6025 (empty_range_varying): Same.
6026 (relop_early_resolve): Same.
6027 (class range_op_table): Same.
6028 * range.h (range_true): Same.
6029 (range_false): Same.
6030 (range_true_and_false): Same.
6032 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
6034 * gimple-fold.cc (size_must_be_zero_p): Use reference
6036 * gimple-ssa-evrp-analyze.cc
6037 (evrp_range_analyzer::record_ranges_from_incoming_edge): Rename
6038 intersect to legacy_verbose_intersect.
6039 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use reference instead
6041 * tree-ssa-dom.cc (dom_jt_simplifier::simplify): Use value_range
6042 instead of value_range_equiv.
6043 * tree-vrp.cc (extract_range_from_plus_minus_expr): Use reference
6045 (find_case_label_range): Same.
6046 * value-range-equiv.cc (value_range_equiv::intersect): Rename to...
6047 (value_range_equiv::legacy_verbose_intersect): ...this.
6048 (value_range_equiv::union_): Rename to...
6049 (value_range_equiv::legacy_verbose_union_): ...this.
6050 * value-range-equiv.h (class value_range_equiv): Rename union and
6051 intersect to legacy_verbose_{intersect,union}.
6052 * value-range.cc (irange::union_): Rename to...
6053 (irange::legacy_verbose_union_): ...this.
6054 (irange::intersect): Rename to...
6055 (irange::legacy_verbose_intersect): ...this.
6056 * value-range.h (irange::union_): Rename union_ to
6057 legacy_verbose_union.
6058 (irange::intersect): Rename intersect to legacy_verbose_intersect.
6059 * vr-values.cc (vr_values::update_value_range): Same.
6060 (vr_values::extract_range_for_var_from_comparison_expr): Same.
6061 (vr_values::extract_range_from_cond_expr): Rename union_ to
6062 legacy_verbose_union.
6063 (vr_values::extract_range_from_phi_node): Same.
6065 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
6067 * gimple-ssa-evrp-analyze.cc
6068 (evrp_range_analyzer::set_ssa_range_info): Use *range_info methods
6070 * gimple-ssa-sprintf.cc (try_substitute_return_value): Same.
6071 * ipa-prop.cc (ipcp_update_vr): Same.
6072 * tree-inline.cc (remap_ssa_name): Same.
6073 * tree-ssa-copy.cc (fini_copy_prop): Same.
6074 * tree-ssa-math-opts.cc (optimize_spaceship): Same.
6075 * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Same.
6076 * tree-ssa-pre.cc (insert_into_preds_of_block): Same.
6077 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Same.
6078 * tree-ssa-strlen.cc (set_strlen_range): Same.
6079 (strlen_pass::handle_builtin_string_cmp): Same.
6080 * tree-ssanames.cc (set_range_info): Make static.
6081 (duplicate_ssa_name_range_info): Make static and add a new variant
6083 * tree-ssanames.h (set_range_info): Remove version taking wide ints.
6084 (duplicate_ssa_name_range_info): Remove version taking a
6085 range_info_def and replace with a version taking SSA names.
6086 * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Use *range_info methods
6088 (vect_do_peeling): Same.
6089 * tree-vrp.cc (vrp_asserts::remove_range_assertions): Same.
6090 * vr-values.cc (simplify_truth_ops_using_ranges): Same.
6092 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
6094 * value-range.h (irange::irange): Use set_undefined.
6096 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
6098 * gimple-range-cache.h (non_null_ref::adjust_range): Do not use
6099 irange::intersect (wide_int, wide_int).
6100 * gimple-range-fold.cc (adjust_pointer_diff_expr): Same.
6101 (adjust_imagpart_expr): Same.
6102 * value-range.h (irange::intersect (wide_int, wide_int)): Make
6105 2022-04-29 Richard Biener <rguenther@suse.de>
6107 PR tree-optimization/104322
6108 * tree-vect-loop.cc (vectorizable_reduction): Remove dead code.
6110 2022-04-29 Richard Biener <rguenther@suse.de>
6112 PR middle-end/105376
6113 * tree.cc (build_real): Special case dconst* arguments
6114 for decimal floating point types.
6116 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
6118 * doc/gcov.texi (Profiling and Test Coverage in Freestanding
6119 Environments): New section.
6121 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
6123 * doc/gcov-tool.texi: Document merge-stream subcommand.
6124 * doc/invoke.texi (fprofile-info-section): Mention merge-stream
6125 subcommand of gcov-tool.
6126 * gcov-tool.cc (gcov_profile_merge_stream): Declare.
6127 (print_merge_stream_usage_message): New.
6128 (merge_stream_usage): Likewise.
6129 (do_merge_stream): Likewise.
6130 (print_usage): Call print_merge_stream_usage_message().
6131 (main): Call do_merge_stream() to execute merge-stream subcommand.
6133 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
6135 * gcov-io.cc (gcov_file_error): New enum.
6136 (gcov_var): Use gcov_file_error enum for the error member.
6137 (gcov_open): Use GCOV_FILE_NO_ERROR.
6138 (gcov_close): Use GCOV_FILE_WRITE_ERROR.
6139 (gcov_write): Likewise.
6140 (gcov_write_unsigned): Likewise.
6141 (gcov_write_string): Likewise.
6142 (gcov_read_bytes): Set error code if EOF is reached.
6143 (gcov_read_counter): Use GCOV_FILE_COUNTER_OVERFLOW.
6145 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
6147 * gcov-io.cc (GCOV_MODE_STDIN): Define.
6148 (gcov_position): For gcov-tool, return calculated position if file is
6150 (gcov_open): For gcov-tool, use stdin if filename is NULL.
6151 (gcov_close): For gcov-tool, do not close stdin.
6152 (gcov_read_bytes): For gcov-tool, update position if file is stdin.
6153 (gcov_sync): For gcov-tool, discard input if file is stdin.
6155 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
6157 * doc/invoke.texi (fprofile-info-section): Mention
6158 __gcov_filename_to_gcfn(). Use "freestanding" to match with C11
6159 standard language. Fix minor example code issues.
6160 * gcov-io.h (GCOV_FILENAME_MAGIC): Define and document.
6162 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
6164 * gcov-io.cc (gcov_seek): Make it static.
6165 * gcov-io.h (struct gcov_summary): Do not mention gcov_seek().
6167 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
6169 * gcov-tool.cc (gcov_do_dump): Add mode parameter.
6170 (gcov_output_files): Open files for reading and writing.
6172 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
6174 * gcov-io.cc (gcov_open): Always use the mode parameter.
6175 * gcov-io.h (gcov_open): Declare it unconditionally.
6177 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
6179 * gcov-tool.cc (gcov_profile_merge): Adjust return type.
6180 (profile_merge): Allow merging of directories which contain no profile
6183 2022-04-28 David Malcolm <dmalcolm@redhat.com>
6185 * doc/invoke.texi (-fdump-analyzer-feasibility): Mention the
6188 2022-04-28 Jakub Jelinek <jakub@redhat.com>
6190 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Create a
6191 temporary only if out overlaps compare_op, not when it overlaps
6194 2022-04-28 Jakub Jelinek <jakub@redhat.com>
6197 * cgraph.cc (cgraph_node::verify_node): Don't verify
6198 semantic_interposition flag against
6199 opt_for_fn (decl, flag_semantic_interposition) for aliases in lto1.
6201 2022-04-28 Jakub Jelinek <jakub@redhat.com>
6204 * config/i386/i386.cc (ix86_gimplify_va_arg): Mark va_arg_tmp
6205 temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR
6208 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
6210 * doc/install.texi (Configuration): Remove misleading text
6211 around LE PowerPC Linux multilibs.
6213 2022-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6216 * doc/install.texi (Tools/packages necessary for building GCC)
6217 (GDC): Document libphobos requirement.
6218 (Host/target specific installation notes for GCC, *-*-solaris2*):
6219 Document libphobos and GDC specifics.
6221 2022-04-28 Richard Biener <rguenther@suse.de>
6223 PR tree-optimization/105219
6224 * tree-vect-loop.cc (vect_transform_loop): Disable
6225 special code narrowing the vectorized epilogue max
6226 iterations when peeling for alignment or gaps was in effect.
6228 2022-04-28 Xi Ruoyao <xry111@mengyan1223.wang>
6230 * config/loongarch/loongarch.cc
6231 (loongarch_flatten_aggregate_field): Ignore empty fields for
6234 2022-04-27 Lulu Cheng <chenglulu@loongson.cn>
6236 * config/loongarch/loongarch.md: Add fdiv define_expand template,
6237 then generate floating-point division and floating-point reciprocal
6240 2022-04-27 Lulu Cheng <chenglulu@loongson.cn>
6242 * config/loongarch/loongarch.md: Add '(clobber (mem:BLK (scratch)))'
6243 to PLV instruction templates.
6245 2022-04-27 Richard Biener <rguenther@suse.de>
6247 PR middle-end/104492
6248 * gimple-ssa-warn-access.cc
6249 (pass_waccess::warn_invalid_pointer): Exclude equality compare
6250 diagnostics for all kind of invalidations.
6251 (pass_waccess::check_dangling_uses): Fix post-dominator query.
6252 (pass_waccess::check_pointer_uses): Likewise.
6254 2022-04-27 Andreas Krebbel <krebbel@linux.ibm.com>
6257 * config/s390/s390-protos.h (s390_function_arg_vector): Remove
6259 * config/s390/s390.cc (s390_single_field_struct_p): New function.
6260 (s390_function_arg_vector): Invoke s390_single_field_struct_p.
6261 (s390_function_arg_float): Likewise.
6263 2022-04-27 Jakub Jelinek <jakub@redhat.com>
6266 * asan.cc (asan_redzone_buffer::emit_redzone_byte): Handle the case
6267 where offset is bigger than off but smaller than m_prev_offset + 32
6268 bits by pushing one or more 0 bytes. Sink the
6269 m_shadow_bytes.safe_push (value); flush_if_full (); statements from
6270 all cases to the end of the function.
6272 2022-04-27 Kewen Lin <linkw@linux.ibm.com>
6275 * config/rs6000/rs6000-builtins.def (NEG_V2DI): Move to [power8-vector]
6278 2022-04-26 Thomas Schwinge <thomas@codesourcery.com>
6280 * config/gcn/gcn.cc (gcn_print_lds_decl): Make "gang-private
6281 data-share memory exhausted" error more verbose.
6283 2022-04-26 Martin Liska <mliska@suse.cz>
6286 * lto-wrapper.cc (print_lto_docs_link): Use global_dc.
6287 (run_gcc): Parse OPT_fdiagnostics_urls_.
6288 (main): Initialize global_dc.
6290 2022-04-26 Jakub Jelinek <jakub@redhat.com>
6292 PR rtl-optimization/105314
6293 * ifcvt.cc (noce_try_store_flag_mask): Don't require that the non-zero
6294 operand is equal to if_info->x, instead use the non-zero operand
6295 as one of the operands of AND with if_info->x as target.
6297 2022-04-26 Jakub Jelinek <jakub@redhat.com>
6299 PR tree-optimization/105374
6300 * tree-ssa-reassoc.cc (eliminate_redundant_comparison): Punt if
6301 !fold_convertible_p rather than assuming fold_convert must succeed.
6303 2022-04-26 Jakub Jelinek <jakub@redhat.com>
6306 * config/i386/i386.cc (ix86_veclibabi_svml, ix86_veclibabi_acml): Pass
6307 el_mode == DFmode ? double_type_node : float_type_node instead of
6308 TREE_TYPE (type_in) as first arguments to mathfn_built_in.
6310 2022-04-25 David Malcolm <dmalcolm@redhat.com>
6313 * gimple-fold.cc (gimple_fold_builtin_memory_op): Explicitly set
6314 the location of new_stmt in all places that don't already set it,
6315 whether explicitly, or via a call to gsi_replace.
6317 2022-04-25 Paul A. Clarke <pc@us.ibm.com>
6319 * doc/extend.texi (Other Builtins): Correct reference to 'modff'.
6321 2022-04-25 Andrew MacLeod <amacleod@redhat.com>
6323 PR tree-optimization/105276
6324 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Include
6325 existing global range with calculated value.
6327 2022-04-25 Richard Biener <rguenther@suse.de>
6329 PR tree-optimization/105368
6330 * tree-ssa-math-opts.cc (powi_cost): Use absu_hwi.
6332 2022-04-25 Richard Biener <rguenther@suse.de>
6334 PR tree-optimization/100810
6335 * tree-ssa-loop-ivopts.cc (struct iv_cand): Add involves_undefs flag.
6336 (find_ssa_undef): New function.
6337 (add_candidate_1): Avoid adding derived candidates with
6338 undefined SSA names and mark the original ones.
6339 (determine_group_iv_cost_generic): Reject rewriting
6340 uses with a different IV when that involves undefined SSA names.
6342 2022-04-25 Steven G. Kargl <kargl@gcc.gnu.org>
6345 * config/freebsd.h: Define TARGET_LIBC_HAS_FUNCTION to be
6346 bsd_libc_has_function.
6347 * targhooks.cc (bsd_libc_has_function): New function.
6348 Expand the supported math functions to inclue C99 libm.
6349 * targhooks.h (bsd_libc_has_function): New Prototype.
6351 2022-04-25 Richard Biener <rguenther@suse.de>
6353 PR rtl-optimization/105231
6354 * combine.cc (distribute_notes): Assert that a REG_EH_REGION
6355 with landing pad > 0 is from i3. Put any REG_EH_REGION note
6356 on i3 or drop it if the insn can not trap.
6357 (try_combine): Ensure that we can merge REG_EH_REGION notes
6358 with non-call exceptions. Ensure we are not splitting a
6359 trapping part of an insn with non-call exceptions when there
6360 is any REG_EH_REGION note to preserve.
6362 2022-04-25 Hongyu Wang <hongyu.wang@intel.com>
6365 * config/i386/avx512fintrin.h (_mm512_scalef_round_pd):
6366 Add parentheses for parameters and djust format.
6367 (_mm512_mask_scalef_round_pd): Ditto.
6368 (_mm512_maskz_scalef_round_pd): Ditto.
6369 (_mm512_scalef_round_ps): Ditto.
6370 (_mm512_mask_scalef_round_ps): Ditto.
6371 (_mm512_maskz_scalef_round_ps): Ditto.
6372 (_mm_scalef_round_sd): Use _mm_undefined_pd.
6373 (_mm_scalef_round_ss): Use _mm_undefined_ps.
6374 (_mm_mask_scalef_round_sd): New macro.
6375 (_mm_mask_scalef_round_ss): Ditto.
6376 (_mm_maskz_scalef_round_sd): Ditto.
6377 (_mm_maskz_scalef_round_ss): Ditto.
6379 2022-04-23 Jakub Jelinek <jakub@redhat.com>
6382 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Handle
6383 op0 == cst1 ? op0 : op3 like op0 == cst1 ? cst1 : op3 for the non-cmov
6386 2022-04-22 Segher Boessenkool <segher@kernel.crashing.org>
6389 * config/rs6000/rs6000.md (pack<mode> for FMOVE128): New expander.
6390 (pack<mode> for FMOVE128): Rename and split the insn_and_split to...
6391 (pack<mode>_hard for FMOVE128): ... this...
6392 (pack<mode>_soft for FMOVE128): ... and this.
6394 2022-04-22 Paul A. Clarke <pc@us.ibm.com>
6396 * doc/extend.texi: Correct "This" to "These".
6398 2022-04-22 Jakub Jelinek <jakub@redhat.com>
6400 PR rtl-optimization/105333
6401 * rtlanal.cc (replace_rtx): Use simplify_subreg or
6402 simplify_unary_operation if CONST_SCALAR_INT_P rather than just
6405 2022-04-21 Segher Boessenkool <segher@kernel.crashing.org>
6409 * config/rs6000/rs6000.md (zero_extendqi<mode>2 for EXTQI): Disparage
6410 the "Z" alternatives in {l,st}{f,xs}iwzx.
6411 (zero_extendhi<mode>2 for EXTHI): Ditto.
6412 (zero_extendsi<mode>2 for EXTSI): Ditto.
6413 (*movsi_internal1): Ditto.
6414 (*mov<mode>_internal1 for QHI): Ditto.
6415 (movsd_hardfloat): Ditto.
6417 2022-04-21 Martin Liska <mliska@suse.cz>
6419 * configure.ac: Enable compressed debug sections for mold
6421 * configure: Regenerate.
6423 2022-04-21 Jakub Jelinek <jakub@redhat.com>
6426 * emit-rtl.cc (emit_copy_of_insn_after): Don't call mark_jump_label
6429 2022-04-20 Richard Biener <rguenther@suse.de>
6431 PR tree-optimization/104912
6432 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
6433 the cost model check to a separate BB to make sure it is
6434 checked first and not combined with other version checks.
6436 2022-04-20 Richard Biener <rguenther@suse.de>
6438 PR tree-optimization/105312
6439 * gimple-isel.cc (gimple_expand_vec_cond_expr): Query both
6440 VCOND and VCONDU for EQ and NE.
6442 2022-04-20 Jan Hubicka <hubicka@ucw.cz>
6445 * ipa-modref-tree.cc (modref_access_node::closer_pair_p): Use
6446 poly_offset_int to avoid overflow.
6447 (modref_access_node::update2): likewise.
6449 2022-04-20 Jakub Jelinek <jakub@redhat.com>
6452 * cgraph.cc (cgraph_node::create): Set node->semantic_interposition
6453 to opt_for_fn (decl, flag_semantic_interposition).
6454 * cgraphclones.cc (cgraph_node::create_clone): Copy over
6455 semantic_interposition flag.
6457 2022-04-19 Sergei Trofimovich <siarheit@google.com>
6459 PR gcov-profile/105282
6460 * value-prof.cc (stream_out_histogram_value): Allow negative counts
6461 on HIST_TYPE_INDIR_CALL.
6463 2022-04-19 Jakub Jelinek <jakub@redhat.com>
6466 * config/sparc/sparc.cc (epilogue_renumber): If ORIGINAL_REGNO,
6467 use gen_raw_REG instead of gen_rtx_REG and copy over also
6468 ORIGINAL_REGNO. Use return 0; instead of /* fallthrough */.
6470 2022-04-19 Richard Biener <rguenther@suse.de>
6472 PR tree-optimization/104010
6473 PR tree-optimization/103941
6474 * tree-vect-slp.cc (vect_bb_slp_scalar_cost): When
6475 we run into stmts in patterns continue walking those
6476 for uses outside of the vectorized region instead of
6477 marking the lane live.
6479 2022-04-18 Hans-Peter Nilsson <hp@axis.com>
6481 * doc/install.texi <CRIS>: Remove references to removed websites and
6482 adjust for cris-*-elf being the only remaining toolchain.
6484 2022-04-18 Hans-Peter Nilsson <hp@axis.com>
6486 * doc/invoke.texi <CRIS>: Remove references to options for removed
6487 subtarget cris-axis-linux-gnu and tweak wording accordingly.
6489 2022-04-16 Gerald Pfeifer <gerald@pfeifer.com>
6491 * doc/install.texi (Specific): Adjust mingw-w64 download link.
6493 2022-04-15 Hongyu Wang <hongyu.wang@intel.com>
6495 * config/i386/smmintrin.h: Correct target pragma from sse4.1
6496 and sse4.2 to crc32 for crc32 intrinsics.
6498 2022-04-14 Indu Bhagat <indu.bhagat@oracle.com>
6501 * ctfc.cc (ctf_dvd_ignore_insert): New function.
6502 (ctf_dvd_ignore_lookup): Likewise.
6503 (ctf_add_variable): Keep track of non-defining decl DIEs.
6504 (new_ctf_container): Initialize the new hash-table.
6505 (ctfc_delete_container): Empty hash-table.
6506 * ctfc.h (struct ctf_container): Add new hash-table.
6507 (ctf_dvd_ignore_lookup): New declaration.
6508 (ctf_add_variable): Add additional argument.
6509 * ctfout.cc (ctf_dvd_preprocess_cb): Skip adding CTF variable
6510 record for non-defining decl for which a defining decl exists
6512 (ctf_preprocess): Defer updating the number of global objts
6514 (output_ctf_header): Use ctfc_vars_list_count as some CTF
6515 variables may not make it to the final output.
6516 (output_ctf_vars): Likewise.
6517 * dwarf2ctf.cc (gen_ctf_variable): Skip generating CTF variable
6518 if this is known to be a non-defining decl DIE.
6520 2022-04-14 Indu Bhagat <indu.bhagat@oracle.com>
6522 * ctfc.h (struct ctf_container): Introduce a new member.
6523 * ctfout.cc (ctf_list_add_ctf_vars): Use it instead of static
6526 2022-04-14 Jakub Jelinek <jakub@redhat.com>
6529 * simplify-rtx.cc (simplify_const_binary_operation): For shifts
6530 or rotates by VOIDmode constant integer shift count use word_mode
6531 for the operand if int_mode is narrower than word.
6533 2022-04-14 Robin Dapp <rdapp@linux.ibm.com>
6535 * config/s390/s390.cc (s390_get_sched_attrmask): Add z16.
6536 (s390_get_unit_mask): Likewise.
6537 (s390_is_fpd): Likewise.
6538 (s390_is_fxd): Likewise.
6539 * config/s390/s390.h (s390_tune_attr): Set max tune level to z16.
6540 * config/s390/s390.md (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15):
6542 (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15,z16):
6544 * config/s390/3931.md: New file.
6546 2022-04-13 Richard Sandiford <richard.sandiford@arm.com>
6548 PR tree-optimization/105254
6549 * config/aarch64/aarch64.cc
6550 (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
6551 loop_vec_info as argument. Restrict the unroll factor to values
6553 (aarch64_vector_costs::finish_cost): Update call accordingly.
6555 2022-04-13 Richard Biener <rguenther@suse.de>
6557 PR tree-optimization/105263
6558 * tree-ssa-reassoc.cc (try_special_add_to_ops): Do not consume
6559 negates in multiplication chains with DFP.
6561 2022-04-13 Jakub Jelinek <jakub@redhat.com>
6563 PR middle-end/105253
6564 * tree.cc (tree_builtin_call_types_compatible_p): If PROP_gimple,
6565 use useless_type_conversion_p checks instead of TYPE_MAIN_VARIANT
6566 comparisons or tree_nop_conversion_p checks.
6568 2022-04-13 Hongyu Wang <hongyu.wang@intel.com>
6571 * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop):
6572 Add missing set to target_val at pause label.
6574 2022-04-13 Jakub Jelinek <jakub@redhat.com>
6577 * attribs.cc (decl_attributes): Don't set
6578 DECL_FUNCTION_SPECIFIC_TARGET if target_option_default_node is
6581 2022-04-13 Richard Biener <rguenther@suse.de>
6583 PR tree-optimization/105250
6584 * fold-const.cc (fold_convertible_p): Revert
6585 r12-7979-geaaf77dd85c333, instead check for size equality
6586 of the vector types involved.
6588 2022-04-13 Richard Biener <rguenther@suse.de>
6591 2022-04-13 Richard Biener <rguenther@suse.de>
6593 PR tree-optimization/104912
6594 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
6595 the cost model check to a separate BB to make sure it is
6596 checked first and not combined with other version checks.
6598 2022-04-13 Richard Biener <rguenther@suse.de>
6600 PR tree-optimization/104912
6601 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
6602 the cost model check to a separate BB to make sure it is
6603 checked first and not combined with other version checks.
6605 2022-04-13 Jakub Jelinek <jakub@redhat.com>
6607 * tree-scalar-evolution.cc (expression_expensive_p): Fix a comment typo.
6609 2022-04-12 Antoni Boucher <bouanto@zoho.com>
6612 * reginfo.cc: New functions (clear_global_regs_cache,
6613 reginfo_cc_finalize) to avoid an issue where compiling the same
6614 code multiple times gives an error about assigning the same
6615 register to 2 global variables.
6616 * rtl.h: New function (reginfo_cc_finalize).
6617 * toplev.cc: Call it.
6619 2022-04-12 Antoni Boucher <bouanto@zoho.com>
6622 * toplev.cc: Call the new function tree_cc_finalize in
6624 * tree.cc: New functions (clear_nonstandard_integer_type_cache
6625 and tree_cc_finalize) to clear the cache of non-standard integer
6626 types to avoid having issues with some optimizations of
6627 bitcast where the SSA_NAME will have a size of a cached
6628 integer type that should have been invalidated, causing a
6629 comparison of integer constant to fail.
6630 * tree.h: New function (tree_cc_finalize).
6632 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
6635 * config/nvptx/nvptx.h (ASM_SPEC): Don't set.
6636 * config/nvptx/nvptx.opt (misa): Adjust comment.
6638 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
6641 2022-03-03 Tom de Vries <tdevries@suse.de>
6643 * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
6645 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
6648 2022-03-31 Tom de Vries <tdevries@suse.de>
6650 * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
6652 2022-04-12 Richard Biener <rguenther@suse.de>
6655 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Do not
6656 include local escaped memory as obviously necessary stores.
6658 2022-04-12 Richard Biener <rguenther@suse.de>
6660 PR tree-optimization/105235
6661 * tree-ssa-math-opts.cc (execute_cse_conv_1): Clean EH and
6662 return whether the CFG changed.
6663 (execute_cse_sincos_1): Adjust.
6665 2022-04-12 Przemyslaw Wirkus <Przemyslaw.Wirkus@arm.com>
6668 * config/arm/t-aprofile (MULTI_ARCH_OPTS_A): Remove Armv9-a options.
6669 (MULTI_ARCH_DIRS_A): Remove Armv9-a diretories.
6670 (MULTILIB_REQUIRED): Don't require Armv9-a libraries.
6671 (MULTILIB_MATCHES): Treat Armv9-a as equivalent to Armv8-a.
6672 (MULTILIB_REUSE): Remove remap rules for Armv9-a.
6673 * config/arm/t-multilib (v9_a_nosimd_variants): Delete.
6674 (MULTILIB_MATCHES): Remove mappings for v9_a_nosimd_variants.
6676 2022-04-12 Richard Biener <rguenther@suse.de>
6678 PR tree-optimization/105232
6679 * tree.cc (component_ref_size): Bail out for too large
6680 or non-constant sizes.
6682 2022-04-12 Richard Biener <rguenther@suse.de>
6684 PR tree-optimization/105226
6685 * tree-vect-loop-manip.cc (vect_loop_versioning): Verify
6686 we can split the exit of an outer loop we choose to version.
6688 2022-04-12 Jakub Jelinek <jakub@redhat.com>
6690 * config/i386/i386-expand.cc (ix86_emit_i387_sinh, ix86_emit_i387_cosh,
6691 ix86_emit_i387_tanh, ix86_emit_i387_asinh, ix86_emit_i387_acosh,
6692 ix86_emit_i387_atanh, ix86_emit_i387_log1p, ix86_emit_i387_round,
6693 ix86_emit_swdivsf, ix86_emit_swsqrtsf,
6694 ix86_expand_atomic_fetch_op_loop, ix86_expand_cmpxchg_loop):
6696 * config/i386/i386.cc (warn_once_call_ms2sysv_xlogues): Likewise.
6698 2022-04-12 Jakub Jelinek <jakub@redhat.com>
6701 * config/i386/i386-expand.cc (ix86_emit_i387_log1p): Call
6702 do_pending_stack_adjust.
6704 2022-04-12 Jakub Jelinek <jakub@redhat.com>
6706 PR rtl-optimization/105211
6707 * builtins.cc (expand_builtin_int_roundingfn_2): If mathfn_built_in_1
6708 fails for TREE_TYPE (arg), retry it with
6709 TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl))) and if even that
6710 fails, emit call normally.
6712 2022-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
6714 * common/config/s390/s390-common.cc: Rename PF_ARCH14 to PF_Z16.
6715 * config.gcc: Add z16 as march/mtune switch.
6716 * config/s390/driver-native.cc (s390_host_detect_local_cpu):
6717 Recognize z16 with -march=native.
6718 * config/s390/s390-opts.h (enum processor_type): Rename
6719 PROCESSOR_ARCH14 to PROCESSOR_3931_Z16.
6720 * config/s390/s390.cc (PROCESSOR_ARCH14): Rename to ...
6721 (PROCESSOR_3931_Z16): ... throughout the file.
6722 (s390_processor processor_table): Add z16 as cpu string.
6723 * config/s390/s390.h (enum processor_flags): Rename PF_ARCH14 to
6725 (TARGET_CPU_ARCH14): Rename to ...
6726 (TARGET_CPU_Z16): ... this.
6727 (TARGET_CPU_ARCH14_P): Rename to ...
6728 (TARGET_CPU_Z16_P): ... this.
6729 (TARGET_ARCH14): Rename to ...
6730 (TARGET_Z16): ... this.
6731 (TARGET_ARCH14_P): Rename to ...
6732 (TARGET_Z16_P): ... this.
6733 * config/s390/s390.md (cpu_facility): Rename arch14 to z16 and
6734 check TARGET_Z16 instead of TARGET_ARCH14.
6735 * config/s390/s390.opt: Add z16 to processor_type.
6736 * doc/invoke.texi: Document z16 and arch14.
6738 2022-04-12 chenglulu <chenglulu@loongson.cn>
6740 * config/loongarch/loongarch.cc: Fix bug for
6741 tmpdir-g++.dg-struct-layout-1/t033.
6743 2022-04-11 Peter Bergner <bergner@linux.ibm.com>
6746 * config/rs6000/rs6000.cc (rs6000_sibcall_aix): Handle pcrel sibcalls
6747 to longcall functions.
6749 2022-04-11 Jason Merrill <jason@redhat.com>
6751 * ipa-free-lang-data.cc (free_lang_data_in_decl): Fix typos.
6753 2022-04-11 Segher Boessenkool <segher@kernel.crashing.org>
6757 * config/rs6000/rs6000.md (unpack<mode>_nodm): Add m,r,i alternative.
6759 2022-04-11 Jakub Jelinek <jakub@redhat.com>
6761 PR tree-optimization/105218
6762 * tree-ssa-phiopt.cc (value_replacement): If middle_bb has
6763 more than one predecessor or phi's bb more than 2 predecessors,
6764 reset phi result uses instead of adding a debug temp.
6766 2022-04-11 Kito Cheng <kito.cheng@sifive.com>
6769 * config.gcc: Pass -misa-spec to arch-canonicalize and
6771 * config/riscv/arch-canonicalize: Adding -misa-spec option.
6772 (SUPPORTED_ISA_SPEC): New.
6773 (arch_canonicalize): New argument `isa_spec`.
6774 Handle multiple ISA spec versions.
6775 * config/riscv/multilib-generator: Adding -misa-spec option.
6777 2022-04-11 Kito Cheng <kito.cheng@sifive.com>
6779 * config/riscv/arch-canonicalize: Add TODO item.
6780 (IMPLIED_EXT): Sync.
6781 (arch_canonicalize): Checking until no change.
6783 2022-04-11 Tamar Christina <tamar.christina@arm.com>
6786 * tree-vect-stmts.cc (vectorizable_condition): Prevent cond swap when
6789 2022-04-11 Jason Merrill <jason@redhat.com>
6792 * pointer-query.cc (compute_objsize_r) [POINTER_PLUS_EXPR]: Require
6795 2022-04-11 Jakub Jelinek <jakub@redhat.com>
6797 PR tree-optimization/104639
6798 * tree-ssa-phiopt.cc: Include tree-ssa-propagate.h.
6799 (value_replacement): Optimize (x != cst1 ? x : cst2) != cst3
6802 2022-04-11 Jeff Law <jeffreyalaw@gmail.com>
6804 * config/bfin/bfin.md (rol_one): Fix pattern to indicate the
6805 sign bit of the source ends up in CC.
6807 2022-04-09 Jan Hubicka <hubicka@ucw.cz>
6810 * cgraphunit.cc (cgraph_node::analyze): update semantic_interposition
6813 2022-04-09 Jan Hubicka <hubicka@ucw.cz>
6815 * ipa-modref.cc (ipa_merge_modref_summary_after_inlining): Propagate
6816 nondeterministic and side_effects flags.
6818 2022-04-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
6821 * config.gcc: Shift ext_mask by TARGET_CPU_NBITS.
6822 * config/aarch64/aarch64.h (TARGET_CPU_NBITS): New macro.
6823 (TARGET_CPU_MASK): Likewise.
6824 (TARGET_CPU_DEFAULT): Use TARGET_CPU_NBITS.
6825 * config/aarch64/aarch64.cc (aarch64_get_tune_cpu): Use TARGET_CPU_MASK.
6826 (aarch64_get_arch): Likewise.
6827 (aarch64_override_options): Use TARGET_CPU_NBITS.
6829 2022-04-08 Richard Biener <rguenther@suse.de>
6831 PR tree-optimization/105198
6832 * tree-predcom.cc (find_looparound_phi): Check whether
6833 the found memory location of the entry value is clobbered
6834 inbetween the value we want to use and loop entry.
6836 2022-04-08 Jakub Jelinek <jakub@redhat.com>
6838 PR tree-optimization/105189
6839 * fold-const.cc (make_range_step): Fix up handling of
6840 (unsigned) x +[low, -] ranges for signed x if low fits into
6843 2022-04-08 Richard Biener <rguenther@suse.de>
6845 PR tree-optimization/105175
6846 * tree-vect-stmts.cc (vectorizable_operation): Suppress
6847 -Wvector-operation-performance if using emulated vectors.
6848 * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
6849 -Wvector-operation-performance when suppressed.
6850 (expand_vector_parallel): Likewise.
6851 (expand_vector_comparison): Likewise.
6852 (expand_vector_condition): Likewise.
6853 (lower_vec_perm): Likewise.
6854 (expand_vector_conversion): Likewise.
6856 2022-04-07 Tamar Christina <tamar.christina@arm.com>
6859 * config/aarch64/aarch64-builtins.cc (handle_arm_acle_h): New.
6860 (aarch64_general_init_builtins): Move LS64 code.
6861 * config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64): Support
6863 * config/aarch64/aarch64-protos.h (handle_arm_acle_h): New.
6864 * config/aarch64/arm_acle.h: Add pragma GCC aarch64 "arm_acle.h".
6866 2022-04-07 Richard Biener <rguenther@suse.de>
6867 Jan Hubicka <hubicka@ucw.cz>
6870 * tree-ssa-alias.h (ptr_deref_may_alias_global_p,
6871 ref_may_alias_global_p, ref_may_alias_global_p,
6872 stmt_may_clobber_global_p, pt_solution_includes_global): Add
6873 bool parameters indicating whether escaped locals should be
6875 * tree-ssa-structalias.cc (pt_solution_includes_global):
6876 When the new escaped_nonlocal_p flag is true also consider
6877 pt->vars_contains_escaped.
6878 * tree-ssa-alias.cc (ptr_deref_may_alias_global_p):
6879 Pass down new escaped_nonlocal_p flag.
6880 (ref_may_alias_global_p): Likewise.
6881 (stmt_may_clobber_global_p): Likewise.
6882 (ref_may_alias_global_p_1): Likewise. For decls also
6883 query the escaped solution if true.
6884 (ref_may_access_global_memory_p): Remove.
6885 (modref_may_conflict): Use ref_may_alias_global_p with
6886 escaped locals considered global.
6887 (ref_maybe_used_by_stmt_p): Adjust.
6888 * ipa-fnsummary.cc (points_to_local_or_readonly_memory_p):
6890 * tree-ssa-dse.cc (dse_classify_store): Likewise.
6891 * trans-mem.cc (thread_private_new_memory): Likewise, but
6892 consider escaped locals global.
6893 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Likewise.
6895 2022-04-07 Richard Biener <rguenther@suse.de>
6897 PR tree-optimization/105185
6898 * tree-ssa-sccvn.cc (visit_reference_op_call): Simplify
6901 2022-04-07 Tamar Christina <tamar.christina@arm.com>
6904 * config/aarch64/aarch64-simd.md
6905 (aarch64_reduc_plus_internal<mode>): Fix RTL and rename to...
6906 (reduc_plus_scal_<mode>): ... This.
6907 (reduc_plus_scal_v4sf): Moved.
6908 (aarch64_reduc_plus_internalv2si): Fix RTL and rename to...
6909 (reduc_plus_scal_v2si): ... This.
6911 2022-04-07 Jakub Jelinek <jakub@redhat.com>
6913 PR tree-optimization/102586
6914 * langhooks.h (struct lang_hooks_for_types): Add classtype_as_base
6916 * langhooks-def.h (LANG_HOOKS_CLASSTYPE_AS_BASE): Define.
6917 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
6918 * gimple-fold.cc (clear_padding_type): Use ftype instead of
6919 TREE_TYPE (field) some more. For artificial FIELD_DECLs without
6920 name try the lang_hooks.types.classtype_as_base langhook and
6921 if it returns non-NULL, use that instead of ftype for recursive call.
6923 2022-04-07 Jakub Jelinek <jakub@redhat.com>
6925 PR tree-optimization/105150
6926 * tree.cc (tree_builtin_call_types_compatible_p): New function.
6927 (get_call_combined_fn): Use it.
6929 2022-04-07 Richard Biener <rguenther@suse.de>
6931 PR middle-end/105165
6932 * tree-complex.cc (expand_complex_asm): Sorry for asm goto
6935 2022-04-07 liuhongt <hongtao.liu@intel.com>
6937 * config/i386/sse.md (<sse2_avx2>_andnot<mode>3_mask):
6939 (<sse>_andnot<mode>3<mask_name>): Disable V*HFmode patterns
6941 (<code><mode>3<mask_name>): Ditto.
6942 (*<code><mode>3<mask_name>): Ditto.
6943 (VFB_128_256): Adjust condition of V8HF/V16HFmode according to
6948 2022-04-06 Jakub Jelinek <jakub@redhat.com>
6950 PR rtl-optimization/104985
6951 * combine.cc (struct undo): Add where.regno member.
6952 (do_SUBST_MODE): Rename to ...
6953 (subst_mode): ... this. Change first argument from rtx * into int,
6954 operate on regno_reg_rtx[regno] and save regno into where.regno.
6955 (SUBST_MODE): Remove.
6956 (try_combine): Use subst_mode instead of SUBST_MODE, change first
6957 argument from regno_reg_rtx[whatever] to whatever. For UNDO_MODE, use
6958 regno_reg_rtx[undo->where.regno] instead of *undo->where.r.
6959 (undo_to_marker): For UNDO_MODE, use regno_reg_rtx[undo->where.regno]
6960 instead of *undo->where.r.
6961 (simplify_set): Use subst_mode instead of SUBST_MODE, change first
6962 argument from regno_reg_rtx[whatever] to whatever.
6964 2022-04-06 Jakub Jelinek <jakub@redhat.com>
6967 * config/sh/sh.opt (mdiv=): Add Save.
6969 2022-04-06 Martin Liska <mliska@suse.cz>
6972 * common.opt: Document properly based on what it does.
6973 * gcc.cc (display_help): Unify with what we have in common.opt.
6974 * opts.cc (common_handle_option): Do not print undocumented
6977 2022-04-06 Xi Ruoyao <xry111@mengyan1223.wang>
6979 * config/mips/mips.cc (mips_fpr_return_fields): Ignore
6980 cxx17_empty_base_field_p fields and set an indicator.
6981 (mips_return_in_msb): Adjust for mips_fpr_return_fields change.
6982 (mips_function_value_1): Inform psABI change about C++17 empty
6985 2022-04-06 Jakub Jelinek <jakub@redhat.com>
6987 PR tree-optimization/105150
6988 * gimple.cc (gimple_builtin_call_types_compatible_p): Use
6989 builtin_decl_explicit here...
6990 (gimple_call_builtin_p, gimple_call_combined_fn): ... rather than
6993 2022-04-06 Richard Biener <rguenther@suse.de>
6995 PR tree-optimization/105173
6996 * tree-ssa-reassoc.cc (find_insert_point): Get extra
6997 insert_before output argument and compute it.
6998 (insert_stmt_before_use): Adjust.
6999 (rewrite_expr_tree): Likewise.
7001 2022-04-06 Richard Biener <rguenther@suse.de>
7004 * ipa-modref-tree.cc (modref_access_node::get_ao_ref ): Bail
7005 out for non-pointer arguments.
7007 2022-04-06 Richard Biener <rguenther@suse.de>
7009 PR tree-optimization/105163
7010 * tree-ssa-reassoc.cc (repropagate_negates): Avoid propagating
7013 2022-04-06 Jakub Jelinek <jakub@redhat.com>
7015 PR tree-optimization/105150
7016 * gimple.cc (gimple_call_builtin_p, gimple_call_combined_fn):
7017 For BUILT_IN_NORMAL calls, call gimple_builtin_call_types_compatible_p
7018 preferrably on builtin_decl_explicit decl rather than fndecl.
7019 * tree-ssa-strlen.cc (valid_builtin_call): Don't call
7020 gimple_builtin_call_types_compatible_p here.
7022 2022-04-06 Richard Sandiford <richard.sandiford@arm.com>
7024 PR tree-optimization/103761
7025 * tree-vect-stmts.cc (check_load_store_for_partial_vectors): Replace
7026 the ncopies parameter with an slp_node parameter. Calculate the
7027 number of vectors based on it and vectype. Rename lambda to
7028 group_memory_nvectors.
7029 (vectorizable_store, vectorizable_load): Update calls accordingly.
7031 2022-04-06 Martin Liska <mliska@suse.cz>
7033 * doc/invoke.texi: Document it.
7035 2022-04-06 Richard Biener <rguenther@suse.de>
7037 PR tree-optimization/105148
7038 * tree-ssa-loop-ivopts.cc (idx_record_use): Walk raw operands
7039 2 and 3 of ARRAY_REFs.
7041 2022-04-06 Roger Sayle <roger@nextmovesoftware.com>
7043 * config/i386/sse.md (ANDNOT_MODE): New mode iterator for TF and V1TI.
7044 (*andnottf3): Replace with...
7045 (*andnot<mode>3): New define_insn using ANDNOT_MODE.
7047 2022-04-06 Richard Biener <rguenther@suse.de>
7049 PR tree-optimization/105142
7050 * gimple-fold.h (maybe_fold_and_comparisons): Add defaulted
7051 basic-block parameter.
7052 (maybe_fold_or_comparisons): Likewise.
7053 * gimple-fold.cc (follow_outer_ssa_edges): New.
7054 (maybe_fold_comparisons_from_match_pd): Use follow_outer_ssa_edges
7055 when an outer condition basic-block is specified.
7056 (and_comparisons_1, and_var_with_comparison,
7057 and_var_with_comparison_1, or_comparisons_1,
7058 or_var_with_comparison, or_var_with_comparison_1): Receive and pass
7059 down the outer condition basic-block.
7060 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Pass down the
7061 basic-block of the outer condition.
7063 2022-04-06 Kewen Lin <linkw@linux.ibm.com>
7066 * config/rs6000/rs6000.cc (rs6000_maybe_emit_maxc_minc): Support more
7067 comparison codes UNLT/UNLE/UNGT/UNGE.
7069 2022-04-05 David Malcolm <dmalcolm@redhat.com>
7071 * doc/extend.texi (Common Function Attributes): Document that
7072 'access' does not imply 'nonnull'.
7074 2022-04-05 Uroš Bizjak <ubizjak@gmail.com>
7077 * config/i386/mmx.md (*movv2qi_internal):
7078 Change insn mode of alternative 5 to HF for TARGET_AVX512FP16.
7080 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
7082 * config/aarch64/aarch64.md (aarch64_cpymemdi): Turn into a
7083 define_expand and turn operands 0 and 1 from REGs to MEMs.
7084 (*aarch64_cpymemdi): New pattern.
7085 (aarch64_setmemdi): Turn into a define_expand and turn operand 0
7086 from a REG to a MEM.
7087 (*aarch64_setmemdi): New pattern.
7088 * config/aarch64/aarch64.cc (aarch64_expand_cpymem_mops): Use
7089 copy_to_mode_reg on all three registers. Replace the original
7090 MEM addresses rather than creating wild reads and writes.
7091 (aarch64_expand_setmem_mops): Likewise for the size and for the
7092 destination memory and address.
7094 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
7097 * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): New class.
7098 * config/aarch64/aarch64-sve-builtins.h (sve_switcher): Inherit
7099 from aarch64_simd_switcher.
7100 * config/aarch64/aarch64-builtins.cc (aarch64_simd_tuple_modes):
7102 (aarch64_lookup_simd_builtin_type): Use it instead of TYPE_MODE.
7103 (register_tuple_type): Add more asserts. Expect the alignment
7104 of the structure to be subject to flag_pack_struct and
7105 maximum_field_alignment. Set aarch64_simd_tuple_modes.
7106 (aarch64_simd_switcher::aarch64_simd_switcher): New function.
7107 (aarch64_simd_switcher::~aarch64_simd_switcher): Likewise.
7108 (handle_arm_neon_h): Hold an aarch64_simd_switcher throughout.
7109 (aarch64_general_init_builtins): Hold an aarch64_simd_switcher
7110 while calling aarch64_init_simd_builtins.
7111 * config/aarch64/aarch64-sve-builtins.cc (sve_switcher::sve_switcher)
7112 (sve_switcher::~sve_switcher): Remove code now performed by
7113 aarch64_simd_switcher.
7115 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
7118 * config/aarch64/aarch64-sve-builtins.cc
7119 (function_resolver::infer_vector_or_tuple_type): Use error_n
7120 for "%d vectors" messages.
7122 2022-04-05 Chung-Lin Tang <cltang@codesourcery.com>
7124 * omp-low.cc (lower_omp_target): Use outer context looked-up 'var' as
7125 argument to lang_hooks.decls.omp_array_data, instead of 'ovar' from
7128 2022-04-05 Richard Biener <rguenther@suse.de>
7131 * passes.def (pass_walloca): Move early instance into
7132 pass_build_ssa_passes to make SSA form available.
7134 2022-04-05 liuhongt <hongtao.liu@intel.com>
7137 * config/i386/i386.cc (ix86_split_stlf_stall_load): New
7139 (ix86_reorg): Call ix86_split_stlf_stall_load.
7140 * config/i386/i386.opt (-param=x86-stlf-window-ninsns=): New
7143 2022-04-05 Alexandre Oliva <oliva@adacore.com>
7145 * targhooks.cc (default_zero_call_used_regs): Attempt to group
7146 regs that the target refuses to use in their natural modes.
7147 (zcur_select_mode_rtx): New.
7148 * regs.h (struct target_regs): Add x_hard_regno_max_nregs.
7149 (hard_regno_max_nregs): Define.
7150 * reginfo.cc (init_reg_modes_target): Set hard_regno_max_nregs.
7152 2022-04-04 Alex Coplan <alex.coplan@arm.com>
7154 * doc/match-and-simplify.texi: Fix typos.
7156 2022-04-04 Jakub Jelinek <jakub@redhat.com>
7159 * config/aarch64/t-aarch64 (s-aarch64-tune-md): Do move-if-change
7160 only if configured with --enable-maintainer-mode, otherwise compare
7161 tmp-aarch64-tune.md with $(srcdir)/config/aarch64/aarch64-tune.md and
7162 if they differ, emit a message and fail.
7164 2022-04-04 Jakub Jelinek <jakub@redhat.com>
7167 * config/aarch64/t-aarch64 (s-mddeps): Depend on s-aarch64-tune-md.
7168 * config/aarch64/aarch64-tune.md: Regenerated.
7170 2022-04-04 Richard Biener <rguenther@suse.de>
7172 PR tree-optimization/105132
7173 * tree-vect-stmts.cc (vectorizable_operation): Check that
7174 the input vectors have the same number of elements.
7176 2022-04-04 Richard Biener <rguenther@suse.de>
7178 PR middle-end/105140
7179 * fold-const.cc (fold_convertible_p): Allow a TYPE_P arg.
7181 2022-04-03 Jeff Law <jeffreyalaw@gmail.com>
7184 * config/iq2000/iq2000.md (bbi): New attribute, default to no.
7185 (delay slot descripts): Use different delay slot description when
7186 the insn as the "bbi" attribute.
7187 (bbi, bbin patterns): Set the bbi attribute to yes.
7189 2022-04-03 Jakub Jelinek <jakub@redhat.com>
7192 * config/i386/i386-expand.cc (ix86_expand_vector_init_general): Avoid
7193 using word as target for expand_simple_binop when doing ASHIFT and
7196 2022-04-02 Xi Ruoyao <xry111@mengyan1223.wang>
7198 * config/mips/mips.cc (mips_function_arg): Check if DECL_SIZE is
7199 NULL before dereferencing it.
7201 2022-04-01 Qing Zhao <qing.zhao@oracle.com>
7203 * config/i386/i386.cc (zero_all_st_registers): Return the value of
7205 (ix86_zero_call_used_regs): Update zeroed_hardregs set according to
7206 the return value of zero_all_st_registers.
7207 * doc/tm.texi: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
7208 * function.cc (gen_call_used_regs_seq): Add an assertion.
7209 * target.def: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
7211 2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang>
7214 * config/mips/mips.cc (mips_function_arg): Ignore zero-width
7215 fields, and inform if it causes a psABI change.
7217 2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang>
7220 * config/mips/mips.cc (mips_fpr_return_fields): Detect C++
7221 zero-width bit-fields and set up an indicator.
7222 (mips_return_in_msb): Adapt for mips_fpr_return_fields change.
7223 (mips_function_value_1): Diagnose when the presense of a C++
7224 zero-width bit-field changes function returning in GCC 12.
7226 2022-04-01 Jakub Jelinek <jakub@redhat.com>
7228 PR tree-optimization/104645
7229 * tree-ssa-phiopt.cc (value_replacement): If assign has
7230 CONVERT_EXPR_CODE_P rhs_code, treat it like a preparation
7231 statement with constant evaluation.
7233 2022-04-01 YunQiang Su <yunqiang.su@cipunited.com>
7235 * config/mips/mips.cc (mips_expand_prologue):
7236 IPL is 8bit for MCU ASE.
7238 2022-03-31 Bill Schmidt <wschmidt@linux.ibm.com>
7241 * config/rs6000/rs6000-builtins.def (MFFSL): Mark nosoft.
7244 (SET_FPSCR_RN): Likewise.
7245 (SET_FPSCR_DRN): Mark nosoft and no32bit.
7247 2022-03-31 Thomas Schwinge <thomas@codesourcery.com>
7249 * doc/options.texi (Option file format): Clarifications around
7250 option definition records' help texts.
7252 2022-03-31 Thomas Schwinge <thomas@codesourcery.com>
7254 * optc-gen.awk <END>: Fix "Multiple different help strings" error
7257 2022-03-31 Andre Vieira <andre.simoesdiasvieira@arm.com>
7259 * config/aarch64/aarch64.cc (aarch64_vector_costs): Define
7260 determine_suggested_unroll_factor and m_has_avg.
7261 (determine_suggested_unroll_factor): New function.
7262 (aarch64_vector_costs::add_stmt_cost): Check for a qualifying pattern
7263 to set m_nosve_pattern.
7264 (aarch64_vector_costs::finish_costs): Use
7265 determine_suggested_unroll_factor.
7266 * config/aarch64/aarch64.opt (aarch64-vect-unroll-limit): New.
7267 * doc/invoke.texi: (aarch64-vect-unroll-limit): Document new option.
7269 2022-03-31 Martin Jambor <mjambor@suse.cz>
7272 * ipa-prop.h (ipa_ancestor_jf_data): New flag keep_null;
7273 (ipa_get_jf_ancestor_keep_null): New function.
7274 * ipa-prop.cc (ipa_set_ancestor_jf): Initialize keep_null field of the
7276 (compute_complex_assign_jump_func): Pass false to keep_null
7277 parameter of ipa_set_ancestor_jf.
7278 (compute_complex_ancestor_jump_func): Pass true to keep_null
7279 parameter of ipa_set_ancestor_jf.
7280 (update_jump_functions_after_inlining): Carry over keep_null from the
7281 original ancestor jump-function or merge them.
7282 (ipa_write_jump_function): Stream keep_null flag.
7283 (ipa_read_jump_function): Likewise.
7284 (ipa_print_node_jump_functions_for_edge): Print the new flag.
7285 * ipa-cp.cc (class ipcp_bits_lattice): Make various getters const. New
7286 member function known_nonzero_p.
7287 (ipcp_bits_lattice::known_nonzero_p): New.
7288 (ipcp_bits_lattice::meet_with_1): New parameter drop_all_ones,
7290 (ipcp_bits_lattice::meet_with): Likewise.
7291 (propagate_bits_across_jump_function): Simplify. Pass true in
7292 drop_all_ones when it is necessary.
7293 (propagate_aggs_across_jump_function): Take care of keep_null
7295 (ipa_get_jf_ancestor_result): Propagate NULL accross keep_null
7298 2022-03-31 Martin Jambor <mjambor@suse.cz>
7301 * ipa-cp.cc (decide_whether_version_node): Skip scalar values
7302 which do not fit the known value_range.
7304 2022-03-31 Martin Jambor <mjambor@suse.cz>
7307 * ipa-prop.cc (propagate_controlled_uses): Add a LOAD reference
7308 always when an ADDR_EXPR constant is known to reach a load because
7309 of inlining, not just when removing an ADDR reference.
7311 2022-03-31 Richard Biener <rguenther@suse.de>
7313 PR tree-optimization/105109
7314 * tree-ssa.cc (execute_update_addresses_taken): Suppress
7315 diagnostics on the load of the other complex component.
7317 2022-03-31 Tom de Vries <tdevries@suse.de>
7319 * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
7321 2022-03-31 Richard Biener <rguenther@suse.de>
7323 PR rtl-optimization/105091
7324 * gimple-expr.cc (mark_addressable): Handle TARGET_MEM_REF
7327 2022-03-31 Richard Biener <rguenther@suse.de>
7330 2021-09-13 Richard Earnshaw <rearnsha@arm.com>
7333 * gimple-fold.c (gimple_fold_builtin_memory_op): Allow folding
7334 memcpy if the size is not more than MOVE_MAX * MOVE_RATIO.
7336 2022-03-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
7338 * gcov-io.cc (gcov_read_string): Reword documentation comment.
7340 2022-03-30 Bill Schmidt <wschmidt@linux.ibm.com>
7342 * config/rs6000/rs6000-builtins.def (NEG_V16QI): Move to [altivec]
7344 (NEG_V4SF): Likewise.
7345 (NEG_V4SI): Likewise.
7346 (NEG_V8HI): Likewise.
7347 (NEG_V2DF): Move to [vsx] stanza.
7348 (NEG_V2DI): Likewise.
7350 2022-03-30 Vladimir N. Makarov <vmakarov@redhat.com>
7352 PR middle-end/105032
7353 * lra-assigns.cc (find_reload_regno_insns): Modify loop condition.
7355 2022-03-30 Tom de Vries <tdevries@suse.de>
7356 Tobias Burnus <tobias@codesourcery.com>
7358 * doc/invoke.texi (march): Document __PTX_SM__.
7359 (mptx): Document __PTX_ISA_VERSION_MAJOR__ and
7360 __PTX_ISA_VERSION_MINOR__.
7362 2022-03-30 Jakub Jelinek <jakub@redhat.com>
7365 * ubsan.cc (instrument_object_size): If t is equal to inner and
7366 is a decl other than global var, punt. When emitting call to
7367 UBSAN_OBJECT_SIZE ifn, make sure base is addressable.
7369 2022-03-30 Jakub Jelinek <jakub@redhat.com>
7371 PR tree-optimization/105094
7372 * gimple-ssa-store-merging.cc (mem_valid_for_store_merging): Punt if
7373 bitsize <= 0 rather than just == 0.
7375 2022-03-30 Tom de Vries <tdevries@suse.de>
7377 * doc/invoke.texi (misa, mptx): Update.
7378 (march, march-map): Add.
7380 2022-03-30 Thomas Schwinge <thomas@codesourcery.com>
7382 * opt-functions.awk (n_args): New function.
7383 (lang_enabled_by): Merge function into...
7384 * optc-gen.awk <END>: ... sole user here.
7385 Improve diagnostics.
7387 2022-03-29 Marek Polacek <polacek@redhat.com>
7388 Jakub Jelinek <jakub@redhat.com>
7390 PR middle-end/103597
7391 * gimplify.cc (collect_fallthrough_labels): Don't push UNUSED_LABEL_Ps
7392 into labels. Maybe set prev to the statement preceding UNUSED_LABEL_P.
7393 (gimplify_cond_expr): Set UNUSED_LABEL_P.
7394 * tree.h (UNUSED_LABEL_P): New.
7396 2022-03-29 Michael Meissner <meissner@linux.ibm.com>
7398 * config/rs6000/vsx.md (vsx_extract_<mode>): Allow destination to
7399 be any VSX register.
7401 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
7404 * config/aarch64/aarch64.cc (aapcs_vfp_sub_candidate): Handle
7405 zero-sized bit-fields. Detect cases where a warning may be needed.
7406 (aarch64_vfp_is_call_or_return_candidate): Emit a note if a
7407 zero-sized bit-field has caused parameter passing to change.
7409 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
7412 * config/arm/arm.cc (aapcs_vfp_sub_candidate): Handle zero-sized
7413 bit-fields. Detect cases where a warning may be needed.
7414 (aapcs_vfp_is_call_or_return_candidate): Emit a note if
7415 a zero-sized bit-field has caused parameter passing to change.
7417 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
7420 * config/arm/arm.cc (arm_get_pcs_model): Disable selection of
7421 ARM_PCS_AAPCS_LOCAL.
7423 2022-03-29 Tom de Vries <tdevries@suse.de>
7426 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Emit
7427 __PTX_ISA_VERSION_MAJOR__ and __PTX_ISA_VERSION_MINOR__.
7428 * config/nvptx/nvptx.cc (ptx_version_to_number): New function.
7429 * config/nvptx/nvptx-protos.h (ptx_version_to_number): Declare.
7431 2022-03-29 Tom de Vries <tdevries@suse.de>
7433 * config/nvptx/nvptx.opt (m64): Update help text to reflect that it
7436 2022-03-29 Tom de Vries <tdevries@suse.de>
7439 * config/nvptx/nvptx.opt (march-map=*): Add aliases.
7441 2022-03-29 Jan Hubicka <hubicka@ucw.cz>
7443 * config/i386/i386-builtins.cc (ix86_vectorize_builtin_gather): Test
7444 TARGET_USE_GATHER_2PARTS and TARGET_USE_GATHER_4PARTS.
7445 * config/i386/i386.h (TARGET_USE_GATHER_2PARTS): New macro.
7446 (TARGET_USE_GATHER_4PARTS): New macro.
7447 * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): New tune
7448 (X86_TUNE_USE_GATHER_4PARTS): New tune
7450 2022-03-29 Tom de Vries <tdevries@suse.de>
7452 * config/nvptx/nvptx.opt (march): Add alias of misa.
7454 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
7455 Lulu Cheng <chenglulu@loongson.cn>
7457 * doc/install.texi: Add LoongArch options section.
7458 * doc/invoke.texi: Add LoongArch options section.
7459 * doc/md.texi: Add LoongArch options section.
7461 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
7462 Lulu Cheng <chenglulu@loongson.cn>
7464 * config/loongarch/loongarch-c.cc
7466 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
7467 Lulu Cheng <chenglulu@loongson.cn>
7469 * config/loongarch/larchintrin.h: New file.
7470 * config/loongarch/loongarch-builtins.cc: New file.
7472 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
7473 Lulu Cheng <chenglulu@loongson.cn>
7475 * config/host-linux.cc: Add LoongArch support.
7476 * config/loongarch/loongarch-protos.h: New file.
7477 * config/loongarch/loongarch-tune.h: Likewise.
7478 * config/loongarch/loongarch.cc: Likewise.
7479 * config/loongarch/loongarch.h: Likewise.
7481 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
7482 Lulu Cheng <chenglulu@loongson.cn>
7484 * config/loongarch/constraints.md: New file.
7485 * config/loongarch/generic.md: New file.
7486 * config/loongarch/la464.md: New file.
7487 * config/loongarch/loongarch-ftypes.def: New file.
7488 * config/loongarch/loongarch-modes.def: New file.
7489 * config/loongarch/loongarch.md: New file.
7490 * config/loongarch/predicates.md: New file.
7491 * config/loongarch/sync.md: New file.
7493 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
7494 Lulu Cheng <chenglulu@loongson.cn>
7496 * configure: Regenerate file.
7498 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
7499 Lulu Cheng <chenglulu@loongson.cn>
7501 * common/config/loongarch/loongarch-common.cc: New file.
7502 * config/loongarch/genopts/genstr.sh: New file.
7503 * config/loongarch/genopts/loongarch-strings: New file.
7504 * config/loongarch/genopts/loongarch.opt.in: New file.
7505 * config/loongarch/loongarch-str.h: New file.
7506 * config/loongarch/gnu-user.h: New file.
7507 * config/loongarch/linux.h: New file.
7508 * config/loongarch/loongarch-cpu.cc: New file.
7509 * config/loongarch/loongarch-cpu.h: New file.
7510 * config/loongarch/loongarch-def.c: New file.
7511 * config/loongarch/loongarch-def.h: New file.
7512 * config/loongarch/loongarch-driver.cc: New file.
7513 * config/loongarch/loongarch-driver.h: New file.
7514 * config/loongarch/loongarch-opts.cc: New file.
7515 * config/loongarch/loongarch-opts.h: New file.
7516 * config/loongarch/loongarch.opt: New file.
7517 * config/loongarch/t-linux: New file.
7518 * config/loongarch/t-loongarch: New file.
7519 * config.gcc: Add LoongArch support.
7520 * configure.ac: Add LoongArch support.
7522 2022-03-29 Thomas Schwinge <thomas@codesourcery.com>
7524 * opt-functions.awk (lang_enabled_by): Fix 'enabledby_negargs'
7527 2022-03-29 Richard Biener <rguenther@suse.de>
7529 PR tree-optimization/105080
7530 * tree-ssa-strlen.cc (printf_strlen_execute): Always init
7533 2022-03-28 Indu Bhagat <indu.bhagat@oracle.com>
7535 * ctfout.cc (ctf_preprocess): Use ctfc_get_num_ctf_vars instead.
7536 (output_ctf_vars): Likewise.
7538 2022-03-28 Jason Merrill <jason@redhat.com>
7541 * doc/extend.texi: Refer to __is_trivial instead of __is_pod.
7543 2022-03-28 H.J. Lu <hjl.tools@gmail.com>
7546 * config/i386/sse.md (*ssse3_pshufbv8qi3): Also replace "Yv" with
7549 2022-03-28 Tom de Vries <tdevries@suse.de>
7552 * config/nvptx/gen-opt.sh (ptx_isa): Improve help text.
7553 * config/nvptx/nvptx-gen.opt: Regenerate.
7554 * config/nvptx/nvptx.opt (misa, mptx, ptx_version): Improve help text.
7555 * config/nvptx/t-nvptx (s-nvptx-gen-opt): Add missing dependency on
7558 2022-03-28 David Malcolm <dmalcolm@redhat.com>
7561 * gimple-fold.cc (gimple_fold_builtin_memory_op): When optimizing
7562 to loads then stores, set the location of the new load stmt.
7564 2022-03-28 Richard Biener <rguenther@suse.de>
7566 PR tree-optimization/105070
7567 * tree-switch-conversion.h
7568 (bit_test_cluster::hoist_edge_and_branch_if_true): Add location
7570 * tree-switch-conversion.cc
7571 (bit_test_cluster::hoist_edge_and_branch_if_true): Annotate
7573 (bit_test_cluster::emit): Annotate all generated expressions
7576 2022-03-28 Andre Vieira <andre.simoesdiasvieira@arm.com>
7578 * config/aarch64/aarch64-cores.def: Update Neoverse N2 core entry.
7580 2022-03-28 liuhongt <hongtao.liu@intel.com>
7583 * config/i386/sse.md (vec_set<mode>_0): Change attr "isa" of
7584 alternative 4 from sse4_noavx to noavx.
7586 2022-03-28 Jakub Jelinek <jakub@redhat.com>
7588 PR tree-optimization/105056
7589 * tree-predcom.cc (component::component): Initialize also comp_step.
7591 2022-03-27 H.J. Lu <hjl.tools@gmail.com>
7594 * config/i386/sse.md (*ssse3_pshufbv8qi3): Replace "Yv" with
7597 2022-03-26 Roger Sayle <roger@nextmovesoftware.com>
7599 PR middle-end/104885
7600 * calls.cc (mark_stack_region_used): Check that the region
7601 is within the allocated size of stack_usage_map.
7603 2022-03-26 Jakub Jelinek <jakub@redhat.com>
7605 PR rtl-optimization/103775
7606 * recog.cc (check_invalid_inc_dec): New function.
7607 (insn_invalid_p): Return 1 if REG_INC operand overlaps
7610 2022-03-26 H.J. Lu <hjl.tools@gmail.com>
7613 * config/i386/sse.md (loadiwkey): Replace "v" with "x".
7614 (aes<aesklvariant>u8): Likewise.
7616 2022-03-26 H.J. Lu <hjl.tools@gmail.com>
7619 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
7620 Replace "Yv" with "x".
7621 (ssse3_ph<plusminus_mnemonic>dv2si3): Likewise.
7622 (ssse3_psign<mode>3): Likewise.
7624 2022-03-26 Hans-Peter Nilsson <hp@axis.com>
7626 * reload.cc (find_reloads): Align comment with code where
7627 considering the intersection of register classes then tweaking the
7628 regclass for the current alternative or rejecting it.
7630 2022-03-25 Christophe Lyon <christohe.lyon@arm.com>
7634 2021-06-11 Christophe Lyon <christophe.lyon@linaro.org>
7636 * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): Delete.
7637 (mve_vec_unpack<US>_hi_<mode>): Delete.
7638 (@mve_vec_pack_trunc_lo_<mode>): Delete.
7639 (mve_vmovntq_<supf><mode>): Remove '@' prefix.
7640 * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move back
7642 (vec_unpack<US>_lo_<mode>): Likewise.
7643 (vec_pack_trunc_<mode>): Rename from
7644 neon_quad_vec_pack_trunc_<mode>.
7645 * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): Delete.
7646 (vec_unpack<US>_lo_<mode>): Delete.
7647 (vec_pack_trunc_<mode>): Delete.
7649 2022-03-25 Vladimir N. Makarov <vmakarov@redhat.com>
7651 PR middle-end/104971
7652 * lra-lives.cc (process_bb_lives): Check hard_regs_live for hard
7653 regs to clear remove_p flag.
7655 2022-03-25 Richard Biener <rguenther@suse.de>
7657 PR tree-optimization/105053
7658 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Pick
7659 the correct live-out stmt for a reduction chain.
7661 2022-03-25 Richard Biener <rguenther@suse.de>
7663 PR middle-end/105049
7664 * tree.cc (uniform_vector_p): Recurse for VECTOR_CST or
7665 CONSTRUCTOR first elements.
7667 2022-03-25 Tobias Burnus <tobias@codesourcery.com>
7670 * doc/invoke.texi (Static Analyzer Options): Move
7671 @ignore block after @gccoptlist's '}' for 'make pdf'.
7673 2022-03-25 David Malcolm <dmalcolm@redhat.com>
7676 * doc/invoke.texi (Static Analyzer Options): Add
7677 -fdump-analyzer-untracked.
7679 2022-03-25 Avinash Sonawane <rootkea@gmail.com>
7682 * doc/invoke.texi: Document that enabling taint analyzer
7683 checker disables some warnings from `-fanalyzer`.
7685 2022-03-24 Alexandre Oliva <oliva@adacore.com>
7688 * gimple-harden-conditionals.cc (detach_value): Keep temps
7691 2022-03-24 Alexandre Oliva <oliva@adacore.com>
7693 PR middle-end/104975
7694 * gimple-harden-conditionals.cc
7695 (pass_harden_compares::execute): Force split in case of
7698 2022-03-24 Jakub Jelinek <jakub@redhat.com>
7701 * fold-const.cc (operand_equal_p) <case COMPONENT_REF>: If either
7702 field0 or field1 is not a FIELD_DECL, return false.
7704 2022-03-24 Richard Biener <rguenther@suse.de>
7706 * tree-predcom.cc (chain::chain): Add CTOR.
7707 (component::component): Likewise.
7708 (pcom_worker::release_chain): Use delete.
7709 (release_components): Likewise.
7710 (pcom_worker::filter_suitable_components): Likewise.
7711 (pcom_worker::split_data_refs_to_components): Use new.
7712 (make_invariant_chain): Likewise.
7713 (make_rooted_chain): Likewise.
7714 (pcom_worker::combine_chains): Likewise.
7715 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
7716 Make sure to release previously constructed scalar_results.
7717 * tree-vect-stmts.cc (vectorizable_load): Use auto_vec
7719 * vr-values.cc (simplify_using_ranges::~simplify_using_ranges):
7720 Release m_flag_set_edges.
7722 2022-03-24 Siddhesh Poyarekar <siddhesh@gotplt.org>
7724 PR tree-optimization/104970
7725 * tree-object-size.cc (parm_object_size): Restrict size
7726 computation scenarios to explicit access attributes.
7728 2022-03-24 Kewen Lin <linkw@linux.ibm.com>
7731 * config/rs6000/rs6000-c.cc (find_instance): Skip instances with null
7734 2022-03-23 Richard Biener <rguenther@suse.de>
7737 * gimple-fold.cc (gimple_fold_builtin_memory_op): Allow the
7738 use of movmisalign when either the source or destination
7739 decl is properly aligned.
7741 2022-03-23 Richard Biener <rguenther@suse.de>
7743 PR rtl-optimization/105028
7744 * ira-color.cc (form_threads_from_copies): Remove unnecessary
7745 copying of the sorted_copies tail.
7747 2022-03-23 Martin Liska <mliska@suse.cz>
7749 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
7751 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
7752 Reword the error message.
7754 2022-03-23 liuhongt <hongtao.liu@intel.com>
7757 * config/i386/sse.md (ssePSmodelower): New.
7758 (*avx_cmp<mode>3_ltint_not): Force_reg operand before
7759 lowpart_subreg to avoid NULL_RTX.
7760 (<avx512>_fmaddc_<mode>_mask1<round_expand_name>,
7761 <avx512>_fcmaddc_<mode>_mask1<round_expand_name>,
7762 fma_<mode>_fmaddc_bcst, fma_<mode>_fcmaddc_bcst,
7763 <avx512>_<complexopname>_<mode>_mask<round_name>,
7764 avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name>,
7765 avx512fp16_fcmaddcsh_v8hf_mask3<round_expand_name>,
7766 avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
7767 avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
7768 float<floatunssuffix><mode>v4hf2,
7769 float<floatunssuffix>v2div2hf2,
7770 fix<fixunssuffix>_truncv4hf<mode>2,
7771 fix<fixunssuffix>_truncv2hfv2di2, extendv4hf<mode>2,
7773 trunc<mode>v4hf2,truncv2dfv2hf2,
7774 *avx512bw_permvar_truncv16siv16hi_1,
7775 *avx512bw_permvar_truncv16siv16hi_1_hf,
7776 *avx512f_permvar_truncv8siv8hi_1,
7777 *avx512f_permvar_truncv8siv8hi_1_hf,
7778 *avx512f_vpermvar_truncv8div8si_1,
7779 *avx512f_permvar_truncv32hiv32qi_1,
7780 *avx512f_permvar_truncv16hiv16qi_1,
7781 *avx512f_permvar_truncv4div4si_1,
7782 *avx512f_pshufb_truncv8hiv8qi_1,
7783 *avx512f_pshufb_truncv4siv4hi_1,
7784 *avx512f_pshufd_truncv2div2si_1,
7785 sdot_prod<mode>, avx2_pblend<ssemodesuffix>_1,
7786 ashrv2di3,ashrv2di3,usdot_prod<mode>): Ditto.
7788 2022-03-22 Tom de Vries <tdevries@suse.de>
7791 * config/nvptx/nvptx.md (define_insn "nvptx_uniform_warp_check"):
7792 Use % as register prefix.
7794 2022-03-22 Tom de Vries <tdevries@suse.de>
7796 * config/nvptx/nvptx.cc (nvptx_scalar_mode_supported_p)
7797 (nvptx_libgcc_floating_mode_supported_p): Only enable HFmode for
7800 2022-03-22 Tom de Vries <tdevries@suse.de>
7802 * config/nvptx/nvptx.opt (mexperimental): New option.
7804 2022-03-22 Tom de Vries <tdevries@suse.de>
7807 * config/nvptx/nvptx-protos.h (nvptx_asm_output_def_from_decls): Declare.
7808 * config/nvptx/nvptx.cc (write_fn_proto_1): Don't add function marker
7810 (SET_ASM_OP, NVPTX_ASM_OUTPUT_DEF): New macro def.
7811 (nvptx_asm_output_def_from_decls): New function.
7812 * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): New macro def, define to
7814 (ASM_OUTPUT_DEF_FROM_DECLS): New macro def, define to
7815 nvptx_asm_output_def_from_decls.
7816 * config/nvptx/nvptx.opt (malias): New opt.
7818 2022-03-22 Tom de Vries <tdevries@suse.de>
7822 * config/nvptx/nvptx.md (define_expand "omp_simt_exit"): Emit warp
7823 sync (or uniform warp check for mptx < 6.0).
7825 2022-03-22 Richard Biener <rguenther@suse.de>
7827 PR tree-optimization/105012
7828 * tree-if-conv.cc (ifcvt_local_dce): Only call
7829 dse_classify_store when we have a VDEF.
7831 2022-03-22 Martin Liska <mliska@suse.cz>
7834 * config/nvptx/nvptx.cc (handle_ptx_version_option):
7835 Fix option wrapping in an error message.
7837 2022-03-22 Martin Liska <mliska@suse.cz>
7840 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
7843 2022-03-22 Martin Liska <mliska@suse.cz>
7845 * config/v850/v850-c.cc (pop_data_area): Fix typo in pragma
7848 2022-03-22 Martin Liska <mliska@suse.cz>
7851 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
7852 Use %qs instead of (%qs).
7854 2022-03-22 Martin Liska <mliska@suse.cz>
7857 * config/i386/i386-options.cc (ix86_option_override_internal):
7858 Use '%qs' instead of '(%qs)'.
7860 2022-03-22 Martin Liska <mliska@suse.cz>
7863 * config/aarch64/aarch64.cc (aarch64_handle_attr_arch):
7864 Use 'qs' and remove usage '(%qs)'.
7865 (aarch64_handle_attr_cpu): Likewise.
7866 (aarch64_handle_attr_tune): Likewise.
7867 (aarch64_handle_attr_isa_flags): Likewise.
7869 2022-03-22 Tamar Christina <tamar.christina@arm.com>
7870 Andre Vieira <andre.simoesdiasvieira@arm.com>
7872 * config/aarch64/aarch64.cc (neoversev1_regmove_cost): New tuning
7874 (neoversev1_tunings): Use neoversev1_regmove_cost and update store_int
7876 (neoverse512tvb_tunings): Likewise.
7878 2022-03-22 Tamar Christina <tamar.christina@arm.com>
7879 Andre Vieira <andre.simoesdiasvieira@arm.com>
7881 * config/aarch64/aarch64.cc (demeter_addrcost_table,
7882 demeter_regmove_cost, demeter_advsimd_vector_cost,
7883 demeter_sve_vector_cost, demeter_scalar_issue_info,
7884 demeter_advsimd_issue_info, demeter_sve_issue_info,
7885 demeter_vec_issue_info, demeter_vector_cost,
7886 demeter_tunings): New tuning structs.
7887 (aarch64_ve_op_count::rename_cycles_per_iter): Enable for demeter
7889 * config/aarch64/aarch64-cores.def: Add entry for demeter.
7890 * config/aarch64/aarch64-tune.md (tune): Add demeter to list.
7892 2022-03-22 Tamar Christina <tamar.christina@arm.com>
7893 Andre Vieira <andre.simoesdiasvieira@arm.com>
7895 * config/aarch64/aarch64-protos.h (struct cpu_memmov_cost): New struct.
7896 (struct tune_params): Change type of memmov_cost to use cpu_memmov_cost.
7897 * config/aarch64/aarch64.cc (aarch64_memory_move_cost): Update all
7898 tunings to use cpu_memmov_cost struct.
7900 2022-03-22 Tamar Christina <tamar.christina@arm.com>
7901 Andre Vieira <andre.simoesdiasvieira@arm.com>
7903 * config/aarch64/aarch64.cc (neoversen2_addrcost_table,
7904 neoversen2_regmove_cost, neoversen2_advsimd_vector_cost,
7905 neoversen2_sve_vector_cost, neoversen2_scalar_issue_info,
7906 neoversen2_advsimd_issue_info, neoversen2_sve_issue_info,
7907 neoversen2_vec_issue_info, neoversen2_tunings): New structs.
7908 (neoversen2_tunings): Use new structs and update tuning flags.
7909 (aarch64_vec_op_count::rename_cycles_per_iter): Enable for neoversen2
7912 2022-03-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
7914 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH9): Add FP16 feature
7917 2022-03-22 liuhongt <hongtao.liu@intel.com>
7920 * config/i386/i386.md (*jcc_bt<mode>_mask): Extend the
7921 following splitter to reversed condition.
7923 2022-03-22 Jakub Jelinek <jakub@redhat.com>
7925 PR rtl-optimization/104989
7926 * calls.cc (expand_call): Don't set ECF_NORETURN in flags after
7927 sorry for passing too large argument, instead set sibcall_failure
7928 for pass == 0, or a new normal_failure flag otherwise. If
7929 normal_failure is set, don't assert all stack has been deallocated
7930 at the end and throw away the whole insn sequence.
7932 2022-03-22 Qian Jianhua <qianjh@cn.fujitsu.com>
7934 * print-tree.cc: Change array length
7936 2022-03-22 Hongyu Wang <hongyu.wang@intel.com>
7939 * config/i386/sse.md
7940 (avx512fp16_fmaddcsh_v8hf_mask1<round_expand_name):
7941 Use avx512f_movsf_mask instead of vmovaps or vblend, and
7942 force_reg before lowpart_subreg.
7943 (avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name): Likewise.
7945 2022-03-21 H.J. Lu <hjl.tools@gmail.com>
7948 * common/config/i386/i386-common.cc
7949 (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Replace
7950 OPTION_MASK_ISA2_AVX512F_UNSET with OPTION_MASK_ISA2_SSE_UNSET.
7952 2022-03-21 H.J. Lu <hjl.tools@gmail.com>
7955 * common/config/i386/cpuinfo.h (get_available_features): Pass
7956 0x19 to __cpuid for bit_AESKLE. Enable FEATURE_AESKLE only if
7959 2022-03-21 Richard Sandiford <richard.sandiford@arm.com>
7961 PR middle-end/104869
7962 * rtl-ssa/accesses.h (clobber_group::prev_clobber): Declare.
7963 (clobber_group::next_clobber): Likewise.
7964 (def_lookup::prev_def): Rename to...
7965 (def_lookup::last_def_of_prev_group): ...this.
7966 (def_lookup::next_def): Rename to...
7967 (def_lookup::first_def_of_next_group): ...this.
7968 (def_lookup::matching_or_prev_def): Rename to...
7969 (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
7970 (def_lookup::matching_or_next_def): Rename to...
7971 (def_lookup::matching_set_or_first_def_of_next_group): ...this.
7972 (def_lookup::prev_def): New function, taking the lookup insn as
7974 (def_lookup::next_def): Likewise.
7975 * rtl-ssa/member-fns.inl (def_lookup::prev_def): Rename to...
7976 (def_lookup::last_def_of_prev_group): ...this.
7977 (def_lookup::next_def): Rename to...
7978 (def_lookup::first_def_of_next_group): ...this.
7979 (def_lookup::matching_or_prev_def): Rename to...
7980 (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
7981 (def_lookup::matching_or_next_def): Rename to...
7982 (def_lookup::matching_set_or_first_def_of_next_group): ...this.
7983 * rtl-ssa/movement.h (restrict_movement_for_dead_range): Update after
7985 * rtl-ssa/accesses.cc (clobber_group::prev_clobber): New function.
7986 (clobber_group::next_clobber): Likewise.
7987 (def_lookup::prev_def): Likewise.
7988 (def_lookup::next_def): Likewise.
7989 (function_info::make_use_available): Pass the lookup insn to
7990 def_lookup::prev_def and def_lookup::next_def.
7992 2022-03-21 Martin Liska <mliska@suse.cz>
7994 * doc/invoke.texi: Document min-pagesize parameter.
7996 2022-03-21 Richard Biener <rguenther@suse.de>
7998 * tree-ssa-loop-niter.cc (estimate_numbers_of_iterations): Dump
7999 we are estimating niter of loop.
8001 2022-03-21 Kito Cheng <kito.cheng@sifive.com>
8003 * common/config/riscv/riscv-common.cc (riscv_ext_flag_table):
8004 Update flag name and mask name.
8005 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Define
8006 misc macro for vector extensions.
8007 * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): Rename to ...
8008 (MASK_VECTOR_ELEN_32): ... this.
8009 (MASK_VECTOR_EEW_64): Rename to ...
8010 (MASK_VECTOR_ELEN_64): ... this.
8011 (MASK_VECTOR_EEW_FP_32): Rename to ...
8012 (MASK_VECTOR_ELEN_FP_32): ... this.
8013 (MASK_VECTOR_EEW_FP_64): Rename to ...
8014 (MASK_VECTOR_ELEN_FP_64): ... this.
8015 (TARGET_VECTOR_ELEN_32): New.
8016 (TARGET_VECTOR_ELEN_64): Ditto.
8017 (TARGET_VECTOR_ELEN_FP_32): Ditto.
8018 (TARGET_VECTOR_ELEN_FP_64): Ditto.
8019 (TARGET_MIN_VLEN): Ditto.
8020 * config/riscv/riscv.opt (riscv_vector_eew_flags): Rename to ...
8021 (riscv_vector_elen_flags): ... this.
8023 2022-03-21 Hongyu Wang <hongyu.wang@intel.com>
8026 * config/i386/sse.md
8027 (avx512fp16_fma<complexopname>sh_v8hf<mask_scalarcz_name><round_scalarcz_name>):
8028 Correct round operand for intel dialect.
8030 2022-03-19 Arthur Cohen <arthur.cohen@embecosm.com>
8032 * diagnostic.cc (diagnostic_cc_tests): Rename to...
8033 (c_diagnostic_cc_tests): ...this.
8034 * opt-problem.cc (opt_problem_cc_tests): Rename to...
8035 (c_opt_problem_cc_tests): ...this.
8036 * selftest-run-tests.cc (selftest::run_tests): No longer run
8037 opt_problem_cc_tests or diagnostic_cc_tests.
8038 * selftest.h (diagnostic_cc_tests): Remove declaration.
8039 (opt_problem_cc_tests): Likewise.
8041 2022-03-19 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
8044 * hash-traits.h (struct typed_const_free_remove): New.
8045 (struct free_string_hash): New.
8046 * pass_manager.h: Use free_string_hash.
8047 * passes.cc (pass_manager::register_pass_name): Use free_string_hash.
8048 (pass_manager::~pass_manager): Delete allocated m_name_to_pass_map.
8050 2022-03-19 Jakub Jelinek <jakub@redhat.com>
8052 PR middle-end/104971
8053 * config/i386/i386-expand.cc
8054 (ix86_expand_builtin) <case IX86_BUILTIN_READ_FLAGS>: If ignore,
8055 don't push/pop anything and just return const0_rtx.
8057 2022-03-18 Vladimir N. Makarov <vmakarov@redhat.com>
8059 PR rtl-optimization/104961
8060 * lra-assigns.cc (find_reload_regno_insns): Process reload pseudo clobber.
8062 2022-03-18 Jason Merrill <jason@redhat.com>
8064 * tree.h (IDENTIFIER_LENGTH): Add comment.
8066 2022-03-18 Jakub Jelinek <jakub@redhat.com>
8069 PR middle-end/100680
8070 PR tree-optimization/100834
8071 * params.opt (--param=min-pagesize=): New parameter.
8073 (compute_objsize_r) <case ARRAY_REF>: Formatting fix.
8074 (compute_objsize_r) <case INTEGER_CST>: Use maximum object size instead
8075 of zero for pointer constants equal or larger than min-pagesize.
8077 2022-03-18 Tom de Vries <tdevries@suse.de>
8079 * gimplify.cc (gimplify_omp_for): Set location using 'input_location'.
8080 Set gfor location only when dealing with a OMP_TASKLOOP.
8082 2022-03-18 Tom de Vries <tdevries@suse.de>
8084 * gimplify.cc (gimplify_omp_for): Set taskloop location.
8086 2022-03-18 Tom de Vries <tdevries@suse.de>
8089 * omp-low.cc (lower_rec_input_clauses): Make sure GOMP_SIMT_XCHG_BFLY
8090 is executed unconditionally.
8092 2022-03-18 liuhongt <hongtao.liu@intel.com>
8095 * config/i386/i386.md (*movhi_internal): Set attr type from HI
8096 to HF for alternative 12 under TARGET_AVX512FP16.
8098 2022-03-18 Cui,Lili <lili.cui@intel.com>
8101 * config/i386/i386.h (PTA_SAPPHIRERAPIDS): change it to base on ICX.
8102 * doc/invoke.texi: Update documents for Intel sapphirerapids.
8104 2022-03-17 Roger Sayle <roger@nextmovesoftware.com>
8107 PR tree-optimization/90356
8108 * config/i386/i386.md (*movtf_internal): Don't guard
8109 standard_sse_constant_p clause by optimize_function_for_size_p.
8110 (*movdf_internal): Likewise.
8111 (*movsf_internal): Likewise.
8113 2022-03-17 Andrew MacLeod <amacleod@redhat.com>
8115 PR tree-optimization/102943
8116 * gimple-range-cache.cc (ranger_cache::range_from_dom): Find range via
8117 dominators and apply intermediary outgoing edge ranges.
8119 2022-03-17 Richard Biener <rguenther@suse.de>
8121 PR tree-optimization/104960
8122 * passes.def: Add pass parameter to pass_sink_code, mark
8123 last one to unsplit edges.
8124 * tree-ssa-sink.cc (pass_sink_code::set_pass_param): New.
8125 (pass_sink_code::execute): Always execute TODO_cleanup_cfg
8126 when we need to unsplit edges.
8128 2022-03-17 Jakub Jelinek <jakub@redhat.com>
8130 PR middle-end/103984
8131 * gimplify.cc (gimplify_target_expr): Gimplify type sizes and
8132 TARGET_EXPR_INITIAL into a temporary sequence, then push clobbers
8133 and asan unpoisioning, then append the temporary sequence and
8134 finally the TARGET_EXPR_CLEANUP clobbers.
8136 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
8138 * config/i386/sse.md: Delete corrupt character/typo.
8140 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
8143 * config/i386/sse.md (sse2_movq128): New define_expand to
8144 preserve previous named instruction.
8145 (*sse2_movq128_<mode>): Renamed from sse2_movq128, and
8146 generalized to VI8F_128 (both V2DI and V2DF).
8148 2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
8150 PR tree-optimization/104941
8151 * tree-object-size.cc (size_for_offset): Make useless conversion
8152 check lighter and assign result of fold_convert to OFFSET.
8154 2022-03-16 H.J. Lu <hjl.tools@gmail.com>
8157 * config/i386/x86gprintrin.h: Also check _SOFT_FLOAT before
8158 pushing target("general-regs-only").
8160 2022-03-16 Kito Cheng <kito.cheng@sifive.com>
8162 * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
8163 Add version info for zk, zks and zkn.
8165 2022-03-16 LiaoShihua <shihua@iscas.ac.cn>
8167 * common/config/riscv/riscv-common.cc
8168 (riscv_combine_info): New.
8169 (riscv_subset_list::handle_combine_ext): Combine back into zk to
8170 maintain the canonical order in isa strings.
8171 (riscv_subset_list::parse): Ditto.
8172 * config/riscv/riscv-subset.h (handle_combine_ext): New.
8174 2022-03-16 Richard Biener <rguenther@suse.de>
8176 PR tree-optimization/102008
8177 * passes.def: Move the added code sinking pass before the
8178 preceeding phiopt pass.
8180 2022-03-16 Patrick Palka <ppalka@redhat.com>
8183 * doc/invoke.texi (C++ Dialect Options): Document
8184 -ffold-simple-inlines.
8186 2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
8188 PR tree-optimization/104942
8189 * tree-object-size.cc (alloc_object_size): Remove STRIP_NOPS.
8191 2022-03-16 Jakub Jelinek <jakub@redhat.com>
8194 * config/aarch64/aarch64.cc (aarch64_load_symref_appropriately): Copy
8197 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
8198 Richard Biener <rguenther@suse.de>
8200 * gimple-match-head.cc (single_use): Implement inline using a
8203 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
8205 * match.pd (X CMP X -> true): Test tree_expr_maybe_nan_p
8206 instead of HONOR_NANS.
8207 (X LTGT X -> false): Enable if X is not tree_expr_maybe_nan_p, as
8208 this can't trap/signal.
8210 2022-03-16 liuhongt <hongtao.liu@intel.com>
8213 * config/i386/i386-builtin.def (BDESC): Add
8214 CODE_FOR_sse4_1_blendvpd for IX86_BUILTIN_BLENDVPD.
8215 * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
8216 __builtin_ia32_blendvpd w/o sse4.2
8218 2022-03-15 Peter Bergner <bergner@linux.ibm.com>
8221 * config/rs6000/predicates.md (mma_disassemble_output_operand): Restrict
8222 acceptable MEM addresses.
8224 2022-03-15 Jakub Jelinek <jakub@redhat.com>
8227 * config/riscv/riscv.cc (riscv_pass_aggregate_in_fpr_pair_p,
8228 riscv_pass_aggregate_in_fpr_and_gpr_p): Pass OPT_Wpsabi instead of 0
8231 2022-03-15 Jakub Jelinek <jakub@redhat.com>
8234 * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Use no-mmx,no-sse
8235 instead of general-regs-only.
8237 2022-03-15 Roger Sayle <roger@nextmovesoftware.com>
8238 Marc Glisse <marc.glisse@inria.fr>
8239 Richard Biener <rguenther@suse.de>
8241 PR tree-optimization/101895
8242 * match.pd (vec_same_elem_p): Handle CONSTRUCTOR_EXPR def.
8243 (plus (vec_perm (mult ...) ...) ...): New reordering simplification.
8245 2022-03-15 Jakub Jelinek <jakub@redhat.com>
8247 PR rtl-optimization/104814
8248 * ifcvt.cc (find_if_case_1, find_if_case_2): Punt if test_bb doesn't
8249 end with onlyjump_p. Assume BB_END (test_bb) is always non-NULL.
8251 2022-03-15 Martin Sebor <msebor@redhat.com>
8253 PR middle-end/104436
8254 * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
8255 Check for warning suppression. Avoid by-value arguments transformed
8256 into by-transparent-reference.
8258 2022-03-14 Roger Sayle <roger@nextmovesoftware.com>
8259 Uroš Bizjak <ubizjak@gmail.com>
8261 * config/i386/i386.md (peephole2 xorl;movb -> movzbl): Disable
8262 transformation when *zero_extend<mode>si2 is not available.
8264 2022-03-14 Xi Ruoyao <xry111@mengyan1223.wang>
8266 * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Define.
8267 * config/mips/mips.cc (mips_option_override): Make
8268 -fsanitize=address imply -fasynchronous-unwind-tables. This is
8269 needed by libasan for stack backtrace on MIPS.
8270 (mips_asan_shadow_offset): Return SUBTARGET_SHADOW_OFFSET.
8272 2022-03-14 Jakub Jelinek <jakub@redhat.com>
8275 * lra.cc (lra_substitute_pseudo): For debug_p mode, simplify
8276 SUBREG, ZERO_EXTEND, SIGN_EXTEND, FLOAT or UNSIGNED_FLOAT if recursive
8277 call simplified the first operand into VOIDmode constant.
8279 2022-03-14 Jakub Jelinek <jakub@redhat.com>
8281 PR tree-optimization/102586
8282 * doc/extend.texi (__builtin_clear_padding): Clearify that for C++
8283 argument type should be pointer to trivially-copyable type unless it
8284 is address of a variable or parameter.
8286 2022-03-14 Jakub Jelinek <jakub@redhat.com>
8289 * config/i386/emmintrin.h (_mm_loadu_si32): Put loaded value into
8290 first rather than last element of the vector, use __m32_u to do
8291 a really unaligned load, use just 0 instead of (int)0.
8292 (_mm_loadu_si16): Put loaded value into first rather than last
8293 element of the vector, use __m16_u to do a really unaligned load,
8294 use just 0 instead of (short)0.
8296 2022-03-14 Jakub Jelinek <jakub@redhat.com>
8299 * config/bfin/bfin.cc (bfin_handle_longcall_attribute): Fix a typo
8300 in diagnostic message - cannott -> cannot. Use %< and %> around
8301 names of attribute. Avoid too long line.
8302 * range-op.cc (operator_logical_and::op1_range): Fix up a typo
8303 in comment - cannott -> cannot. Use 2 spaces after . instead of one.
8305 2022-03-14 liuhongt <hongtao.liu@intel.com>
8308 * config/i386/i386-expand.cc
8309 (ix86_check_builtin_isa_match): New func.
8310 (ix86_expand_builtin): Move code to
8311 ix86_check_builtin_isa_match and call it.
8312 * config/i386/i386-protos.h
8313 (ix86_check_builtin_isa_match): Declare.
8314 * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
8315 builtin into gimple when isa mismatches.
8317 2022-03-13 Tobias Burnus <tobias@codesourcery.com>
8319 * doc/invoke.texi: Fix typos.
8320 * doc/tm.texi.in: Remove duplicated word.
8321 * doc/tm.texi: Regenerate.
8323 2022-03-12 Segher Boessenkool <segher@kernel.crashing.org>
8326 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Don't output
8327 "ppc" and "ppc64" based on rs6000_cpu.
8329 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
8331 PR middle-end/100280
8332 PR middle-end/104892
8333 * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
8334 Remove special handling of 'GOMP_MAP_FORCE_TOFROM'.
8336 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
8338 PR middle-end/100280
8339 PR middle-end/104086
8340 * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
8341 Mark variables used in 'present' clauses as addressable.
8342 * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Gracefully
8343 handle duplicate 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
8345 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
8348 * tree-core.h (user_omp_claus_code_name): Declare function.
8349 * tree.cc (user_omp_clause_code_name): New function.
8351 2022-03-12 Roger Sayle <roger@nextmovesoftware.com>
8354 * match.pd (minus @0 @0): Additional checks for -fno-rounding-math
8355 (the defaut) or -fno-signed-zeros.
8357 2022-03-12 Michael Meissner <meissner@linux.ibm.com>
8360 * config/rs6000/vsx.md (extendditi2): Use a 'b' constraint when
8361 moving from a GPR register to an Altivec register.
8363 2022-03-11 Roger Sayle <roger@nextmovesoftware.com>
8365 PR tree-optimization/98335
8366 * config/i386/i386.md (peephole2): Eliminate redundant insv.
8367 Combine movl followed by movb. Transform xorl followed by
8368 a suitable movb or movw into the equivalent movz[bw]l.
8370 2022-03-11 Roger Sayle <roger@nextmovesoftware.com>
8371 Richard Biener <rguenther@suse.de>
8373 PR tree-optimization/98335
8374 * builtins.cc (get_object_alignment_2): Export.
8375 * builtins.h (get_object_alignment_2): Likewise.
8376 * tree-ssa-alias.cc (ao_ref_alignment): New.
8377 * tree-ssa-alias.h (ao_ref_alignment): Declare.
8378 * tree-ssa-dse.cc (compute_trims): Improve logic deciding whether
8379 to align head/tail, writing more bytes but using fewer store insns.
8381 2022-03-11 Richard Biener <rguenther@suse.de>
8383 PR tree-optimization/104880
8384 * tree-ssa.cc (execute_update_address_taken): Remember if we
8385 optimistically made something not addressable and
8388 2022-03-11 Richard Biener <rguenther@suse.de>
8391 * config/i386/i386.cc (ix86_builtin_vectorization_cost): Do not
8392 cost the first lane of SSE pieces as inserts for vec_construct.
8394 2022-03-10 Roger Sayle <roger@nextmovesoftware.com>
8397 * calls.cc (expand_call): Ignore stack adjustments after sorry.
8399 2022-03-10 Vladimir N. Makarov <vmakarov@redhat.com>
8402 * lra-constraints.cc (split_reg): Set up
8403 check_and_force_assignment_correctness_p when splitting hard
8404 register live range.
8406 2022-03-10 Martin Jambor <mjambor@suse.cz>
8409 * ipa-cp.cc (create_specialized_node): Move removal of
8410 self-recursive calls from callers vector before refrence
8413 2022-03-10 Richard Biener <rguenther@suse.de>
8415 PR tree-optimization/102943
8416 * gimple-range-cache.cc (sbr_sparse_bitmap::bitvec):
8418 (sbr_sparse_bitmap::sbr_sparse_bitmap): Adjust and switch
8420 (sbr_sparse_bitmap::set_bb_range): Adjust.
8421 (sbr_sparse_bitmap::get_bb_range): Likewise.
8423 2022-03-10 Richard Biener <rguenther@suse.de>
8425 PR tree-optimization/102943
8426 * tree-ssa-dom.cc (back_propagate_equivalences): Only
8427 populate the dominance bitmap if fast queries are not
8428 available. Use a tree view bitmap.
8429 (record_temporary_equivalences): Cache the dominance bitmap
8430 across all equivalences on the edge.
8432 2022-03-10 Tom de Vries <tdevries@suse.de>
8435 * config/nvptx/nvptx.md (define_attr "predicable"): Use no,yes instead
8438 2022-03-10 Tom de Vries <tdevries@suse.de>
8441 * config/nvptx/nvptx.cc (nvptx_init_unisimt_predicate)
8442 (nvptx_output_unisimt_switch): Handle unisimt_outside_simt_predicate.
8443 (nvptx_get_unisimt_outside_simt_predicate): New function.
8444 (predicate_insn): New function, factored out of ...
8445 (nvptx_reorg_uniform_simt): ... here. Predicate all emitted insns.
8446 * config/nvptx/nvptx.h (struct machine_function): Add
8447 unisimt_outside_simt_predicate field.
8448 * config/nvptx/nvptx.md (define_insn "nvptx_warpsync")
8449 (define_insn "nvptx_uniform_warp_check"): Make predicable.
8451 2022-03-10 Tom de Vries <tdevries@suse.de>
8453 * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Handle unused
8456 2022-03-10 Tom de Vries <tdevries@suse.de>
8459 * config/nvptx/nvptx.cc (nvptx_print_operand): Handle 'x' operand
8461 * config/nvptx/nvptx.md: Use %x0 destination operand in atom insns.
8463 2022-03-10 Tom de Vries <tdevries@suse.de>
8465 * config/nvptx/nvptx.md (define_insn "atomic_fetch_<logic><mode>"):
8466 Emit atom.and.b64 instead of atom.b64.and.
8468 2022-03-10 Tom de Vries <tdevries@suse.de>
8470 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Move mptx=3.1 ...
8471 (MULTILIB_OPTIONS): ... here.
8473 2022-03-10 Tom de Vries <tdevries@suse.de>
8476 * config/nvptx/nvptx.opt (misa): Set default to sm_30.
8477 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Remove misa=sm_30.
8479 2022-03-10 Thomas Schwinge <thomas@codesourcery.com>
8482 PR middle-end/102330
8483 PR middle-end/104774
8484 * omp-low.cc (oacc_privatization_candidate_p)
8485 (oacc_privatization_scan_clause_chain)
8486 (oacc_privatization_scan_decl_chain, lower_oacc_private_marker):
8487 Analyze 'lookup_decl'-translated DECL.
8489 2022-03-10 Jakub Jelinek <jakub@redhat.com>
8492 * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Remove
8493 RS6000_BTI_ptr_ieee128_float and RS6000_BTI_ptr_ibm128_float.
8494 (ptr_ieee128_float_type_node, ptr_ibm128_float_type_node): Remove.
8495 * config/rs6000/rs6000-builtin.cc (rs6000_type_string): Return
8496 "**NULL**" if type_node is NULL first. Handle
8497 ieee128_float_type_node.
8498 (rs6000_init_builtins): Don't initialize ptr_ieee128_float_type_node
8499 and ptr_ibm128_float_type_node. Set ibm128_float_type_node and
8500 ieee128_float_type_node to NULL rather than long_double_type_node if
8501 they aren't supported. Do support __ibm128 even if
8502 !TARGET_FLOAT128_TYPE when long double is double double.
8503 (rs6000_expand_builtin): Error if bif_is_ibm128 and
8504 !ibm128_float_type_node. Remap RS6000_BIF_{,UN}PACK_IF to
8505 RS6000_BIF_{,UN}PACK_TF much earlier and only use bif_is_ibm128 check
8507 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Define
8508 __SIZEOF_FLOAT128__ here and only iff __float128 macro is defined.
8509 (rs6000_cpu_cpp_builtins): Don't define __SIZEOF_FLOAT128__ here.
8510 Define __SIZEOF_IBM128__=16 if ieee128_float_type_node is non-NULL.
8512 * config/rs6000/rs6000-gen-builtins.cc: Document ibm128 attribute.
8513 (struct attrinfo): Add isibm128 member.
8514 (TYPE_MAP_SIZE): Remove.
8515 (type_map): Use [] instead of [TYPE_MAP_SIZE]. For "if" use
8516 ibm128_float_type_node only if it is non-NULL, otherwise fall back
8517 to long_double_type_node. Remove "pif" entry.
8518 (parse_bif_attrs): Handle ibm128 attribute and print it for debugging.
8519 (write_decls): Output bif_ibm128_bit and bif_is_ibm128.
8520 (write_type_node): Use sizeof type_map / sizeof type_map[0]
8521 instead of TYPE_MAP_SIZE.
8522 (write_bif_static_init): Handle isibm128.
8523 * config/rs6000/rs6000-builtins.def: Document ibm128 attribute.
8524 (__builtin_pack_ibm128, __builtin_unpack_ibm128): Add ibm128
8527 2022-03-09 Richard Biener <rguenther@suse.de>
8529 * cfgexpand.cc (expand_gimple_asm): Special-case MEM_REF
8530 with non-decl operand, avoiding a copy.
8532 2022-03-09 Jakub Jelinek <jakub@redhat.com>
8535 * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Define for ia32.
8537 2022-03-09 Richard Biener <rguenther@suse.de>
8539 PR middle-end/104786
8540 * cfgexpand.cc (expand_asm_stmt): Do not generate a copy
8541 for VLAs without an upper size bound.
8543 2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang>
8545 PR tree-optimization/104851
8546 * optabs-query.cc (supports_vec_convert_optab_p): Fix off-by-one
8549 2022-03-09 Jakub Jelinek <jakub@redhat.com>
8552 * doc/invoke.texi (-Wextra): Document that -Wshift-negative-value
8553 is enabled by it only for C++11 to C++17 rather than for C++03 or
8555 (-Wshift-negative-value): Similarly (except here we stated
8556 that it is enabled for C++11 or later).
8558 2022-03-09 Jakub Jelinek <jakub@redhat.com>
8560 PR rtl-optimization/104839
8561 * simplify-rtx.cc (simplify_unary_operation_1) <case SIGN_EXTEND>:
8562 Use SRP_SIGNED instead of incorrect 1 in SUBREG_PROMOTED_SET.
8563 (simplify_unary_operation_1) <case ZERO_EXTEND>: Use SRP_UNSIGNED
8564 instead of incorrect 0 in SUBREG_PROMOTED_SET.
8566 2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang>
8569 * config/mips/mips.h (LUI_OPERAND): Cast the input to an unsigned
8570 value before adding an offset.
8572 2022-03-08 Christophe Lyon <christophe.lyon@arm.com>
8574 * config/arm/arm-builtins.cc
8575 (arm_binop_none_none_unone_qualifiers): Delete.
8576 (BINOP_NONE_NONE_UNONE_QUALIFIERS): Delete.
8578 2022-03-08 Iain Sandoe <iain@sandoe.co.uk>
8580 PR translation/104552
8581 * config/host-darwin.cc (darwin_gt_pch_get_address): Amend
8582 the PCH out of memory error message punctuation and wording.
8584 2022-03-08 Marek Polacek <polacek@redhat.com>
8586 PR rtl-optimization/104777
8587 * rtl.cc (classify_insn): For ASM_OPERANDS, return JUMP_INSN only if
8588 ASM_OPERANDS_LABEL_VEC has at least one element.
8590 2022-03-08 H.J. Lu <hjl.tools@gmail.com>
8593 * config/i386/i386.cc (ix86_expand_epilogue): Sorry if there is
8594 stack realignment or regparm nested function with EH return.
8596 2022-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
8599 * config/arm/arm.h (MVE_STN_LDW_MODE): New MACRO.
8600 * config/arm/arm.cc (mve_vector_mem_operand): Relax constraint on base
8601 register for non widening loads or narrowing stores.
8603 2022-03-08 Eric Gallager <egallager@gcc.gnu.org>
8605 PR translation/104552
8606 * params.opt: Fix typo.
8608 2022-03-08 Richard Biener <rguenther@suse.de>
8610 PR tree-optimization/84201
8611 * params.opt (-param=vect-induction-float): Add.
8612 * doc/invoke.texi (vect-induction-float): Document.
8613 * tree-vect-loop.cc (vectorizable_induction): Honor
8614 param_vect_induction_float.
8616 2022-03-08 Martin Jambor <mjambor@suse.cz>
8618 PR translation/104552
8619 * params.opt (ipa-cp-recursive-freq-factor): Remove repeated word
8620 "that" in the description.
8622 2022-03-08 Richard Biener <rguenther@suse.de>
8624 PR tree-optimization/104825
8625 * tree-ssa-sccvn.cc (visit_reference_op_call): Properly
8626 guard modref get_ao_ref on a pointer typed argument.
8628 2022-03-08 liuhongt <hongtao.liu@intel.com>
8630 * config/i386/sse.md (*vec_dupv4si): Disable memory operand
8631 for !TARGET_INTER_UNIT_MOVES_TO_VEC when prefer_for_speed.
8633 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
8635 * doc/invoke.texi (C++ Modules): Remove anachronism.
8637 2022-03-07 Martin Liska <mliska@suse.cz>
8639 PR middle-end/104381
8640 * opts.cc (finish_options): If debug info is disabled
8641 (debug_info_level) and -fvar-tracking is unset, disable it.
8643 2022-03-07 Jakub Jelinek <jakub@redhat.com>
8645 * tree-ssa-propagate.cc: Fix up duplicated word issue in a comment.
8646 * config/riscv/riscv.cc: Likewise.
8647 * config/darwin.h: Likewise.
8648 * config/i386/i386.cc: Likewise.
8649 * config/aarch64/thunderx3t110.md: Likewise.
8650 * config/aarch64/fractional-cost.h: Likewise.
8651 * config/vax/vax.cc: Likewise.
8652 * config/rs6000/pcrel-opt.md: Likewise.
8653 * config/rs6000/predicates.md: Likewise.
8655 * tree-ssa-uninit.cc: Likewise.
8656 * value-relation.h: Likewise.
8657 * gimple-range-gori.cc: Likewise.
8658 * ipa-polymorphic-call.cc: Likewise.
8659 * pointer-query.cc: Likewise.
8660 * ipa-sra.cc: Likewise.
8661 * internal-fn.cc: Likewise.
8662 * varasm.cc: Likewise.
8663 * gimple-ssa-warn-access.cc: Likewise.
8665 2022-03-07 Martin Liska <mliska@suse.cz>
8668 * config/arm/arm.cc (arm_option_override_internal): Add missing
8671 2022-03-07 Richard Biener <rguenther@suse.de>
8673 PR tree-optimization/104782
8674 * tree-vect-slp.cc (vectorize_slp_instance_root_stmt):
8675 Re-instantiate r10-5979 fix, add comment.
8677 2022-03-07 Martin Liska <mliska@suse.cz>
8680 * config/msp430/msp430.cc (msp430_expand_delay_cycles): Remove
8681 parenthesis from built-in name.
8683 2022-03-07 Martin Liska <mliska@suse.cz>
8686 * config/arm/arm.cc (arm_option_override_internal): Fix quoting
8687 of options in error messages.
8688 (arm_option_reconfigure_globals): Likewise.
8690 2022-03-07 Martin Liska <mliska@suse.cz>
8693 * config/arm/arm-builtins.cc (arm_expand_builtin): Reuse error
8694 message. Fix ARM_BUILTIN_WRORHI and ARM_BUILTIN_WRORH that can
8695 have only range [0,32].
8697 2022-03-07 Jakub Jelinek <jakub@redhat.com>
8700 * config/s390/s390.md (*cmp_and_trap_unsigned_int<mode>): Use
8701 S constraint instead of T in the last alternative.
8703 2022-03-07 Martin Liska <mliska@suse.cz>
8705 * plugin.cc (default_plugin_dir_name): Remove <dir> from error
8708 2022-03-07 Martin Liska <mliska@suse.cz>
8710 PR translation/90148
8711 * config/rs6000/rs6000.cc (rs6000_linux64_override_options): Put
8712 quote to a proper place.
8713 * plugin.cc (default_plugin_dir_name): Likewise.
8715 2022-03-07 Martin Liska <mliska@suse.cz>
8718 * config/rx/rx.cc (rx_expand_builtin_mvtc): Fix translation
8721 2022-03-07 Jakub Jelinek <jakub@redhat.com>
8724 * config/i386/sse.md (avx512dq_mul<mode>3<mask_name>): New
8725 define_expand pattern. Rename define_insn to ...
8726 (*avx512dq_mul<mode>3<mask_name>): ... this.
8727 (<code><mode>3_mask): New any_logic define_expand pattern.
8728 (<mask_codefor><code><mode>3<mask_name>): Rename to ...
8729 (*<code><mode>3<mask_name>): ... this.
8731 2022-03-05 Jakub Jelinek <jakub@redhat.com>
8733 * gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p): Remove
8734 visited bitmap and its use. Also punt on EDGE_ABNORMAL edges.
8736 2022-03-05 Roger Sayle <roger@nextmovesoftware.com>
8737 Uroš Bizjak <ubizjak@gmail.com>
8740 * config/i386/i386.md (SWIM1248x): Renamed from SWIM1248s.
8741 Include DI mode unconditionally.
8742 (*anddi3_doubleword): Remove && TARGET_STV && TARGET_SSE2 condition,
8743 i.e. always split on !TARGET_64BIT.
8744 (*<any_or>di3_doubleword): Likewise.
8745 (*one_cmpldi2_doubleword): Likewise.
8746 (and<mode>3 expander): Update to use SWIM1248x from SWIM1248s.
8747 (<any_or><mode>3 expander): Likewise.
8748 (one_cmpl<mode>2 expander): Likewise.
8750 2022-03-05 Michael Meissner <meissner@linux.ibm.com>
8753 * config/rs6000/vsx.md (UNSPEC_MTVSRD_DITI_W1): Delete.
8754 (mtvsrdd_diti_w1): Delete.
8755 (extendditi2): Convert from define_expand to
8756 define_insn_and_split. Replace with code to deal with both GPR
8757 registers and with altivec registers.
8759 2022-03-04 Segher Boessenkool <segher@kernel.crashing.org>
8761 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Restructure a
8762 bit. Handle most older CPUs.
8764 2022-03-04 Iain Sandoe <iain@sandoe.co.uk>
8766 * config/darwin.cc (darwin_fold_builtin): Make fcode an int to
8767 avoid a mismatch with DECL_MD_FUNCTION_CODE().
8769 2022-03-04 Iain Sandoe <iain@sandoe.co.uk>
8772 * config/rs6000/darwin.md (@machopic_high_<mode>): New.
8773 (@machopic_low_<mode>): New.
8774 * config/rs6000/predicates.md (macho_pic_address): New.
8775 * config/rs6000/rs6000.cc (rs6000_legitimize_address): Do not
8776 apply the TLS processing to Darwin.
8777 * lra-constraints.cc (process_address_1): Revert the changes
8780 2022-03-04 Peter Bergner <bergner@linux.ibm.com>
8784 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make the
8785 ISA 2.06 requirement for -mabi=ieeelongdouble conditional on
8787 Move the -mabi=ieeelongdouble and -mabi=ibmlongdouble error checking
8789 * common/config/rs6000/rs6000-common.cc (rs6000_handle_option):
8792 2022-03-04 Jakub Jelinek <jakub@redhat.com>
8794 PR middle-end/104529
8795 * gimplify.cc (gimplify_init_constructor): Clear TREE_READONLY
8796 on automatic objects which will be runtime initialized.
8798 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
8800 PR middle-end/100280
8801 PR middle-end/104132
8802 PR middle-end/104133
8803 * omp-low.cc (task_shared_vars): Rename to
8804 'make_addressable_vars'. Adjust all users.
8805 (scan_sharing_clauses) <OMP_CLAUSE_MAP> Use it for
8806 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' DECLs, too.
8808 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
8810 PR middle-end/100280
8811 * tree.h (OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE): New.
8812 * tree-core.h: Document it.
8813 * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Handle
8814 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
8815 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
8816 Set 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' instead of
8819 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
8821 PR middle-end/100280
8822 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
8823 Add diagnostic: "note: OpenACC 'kernels' decomposition: variable
8824 '[...]' declared in block made addressable".
8826 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
8828 PR middle-end/100400
8829 PR middle-end/103836
8830 PR middle-end/104061
8831 * omp-oacc-kernels-decompose.cc (decompose_kernels_region_body):
8832 Catch 'GIMPLE_DEBUG'.
8834 2022-03-04 Jakub Jelinek <jakub@redhat.com>
8837 * tree.cc (warn_deprecated_use): For types prefer to use node
8838 and only use TYPE_MAIN_VARIANT (node) if TYPE_STUB_DECL (node) is
8841 2022-03-04 H.J. Lu <hjl.tools@gmail.com>
8844 * config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Always return
8847 2022-03-03 Martin Sebor <msebor@redhat.com>
8849 PR middle-end/104761
8850 * gimple-ssa-warn-access.cc (pass_waccess::execute): Call
8851 mark_dfs_back_edges.
8853 2022-03-03 Martin Liska <mliska@suse.cz>
8855 * configure.ac: Use linker plug-in by default.
8856 * configure: Regenerate.
8858 2022-03-03 Martin Liska <mliska@suse.cz>
8860 * configure.ac: Now ld.mold support LTO plugin API, use it.
8861 * configure: Regenerate.
8863 2022-03-03 Tom de Vries <tdevries@suse.de>
8865 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add mptx=3.1.
8867 2022-03-03 Tom de Vries <tdevries@suse.de>
8870 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add misa=sm_30.
8872 2022-03-03 Tom de Vries <tdevries@suse.de>
8874 * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
8876 2022-03-03 Jakub Jelinek <jakub@redhat.com>
8878 PR middle-end/104757
8879 * gimplify.cc (gimplify_omp_loop): Call gimplify_expr rather than
8881 (gimplify_expr) <case OMP_SIMD>: Temporarily disable
8882 gimplify_ctxp->into_ssa around call to gimplify_omp_for.
8884 2022-03-03 Jakub Jelinek <jakub@redhat.com>
8886 PR middle-end/104558
8887 * calls.cc (store_one_arg): When not calling emit_push_insn
8888 because size_rtx is const0_rtx, call at least anti_adjust_stack
8889 on arg->locate.alignment_pad if !argblock and the alignment might
8892 2022-03-02 Alexandre Oliva <oliva@adacore.com>
8894 * lra-constraints.cc (undo_optional_reloads): Recognize and
8895 drop insns of multi-word move sequences, tolerate removal
8896 iteration on an already-removed clobber, and refuse to
8897 substitute original pseudos into clobbers.
8899 2022-03-02 Qing Zhao <qing.zhao@oracle.com>
8901 PR middle-end/102276
8902 * common.opt (-Wtrivial-auto-var-init): New option.
8903 * doc/invoke.texi (-Wtrivial-auto-var-init): Document new option.
8904 (-ftrivial-auto-var-init): Update option;
8905 * gimplify.cc (emit_warn_switch_unreachable): New function.
8906 (warn_switch_unreachable_r): Rename to ...
8907 (warn_switch_unreachable_and_auto_init_r): This.
8908 (maybe_warn_switch_unreachable): Rename to ...
8909 (maybe_warn_switch_unreachable_and_auto_init): This.
8910 (gimplify_switch_expr): Update calls to renamed function.
8912 2022-03-02 Richard Biener <rguenther@suse.de>
8914 PR rtl-optimization/104686
8915 * ira-color.cc (object_conflicts_with_allocno_p): New function
8916 using a bitvector test instead of iterating when possible.
8917 (allocnos_conflict_p): Choose the best allocno to iterate over
8919 (update_conflict_hard_regno_costs): Do allocnos_conflict_p test
8922 2022-03-02 Jakub Jelinek <jakub@redhat.com>
8924 * cfg.cc (dump_edge_info): Dump goto_locus if present.
8926 2022-03-02 Jakub Jelinek <jakub@redhat.com>
8928 PR rtl-optimization/104589
8929 * cfgrtl.cc (fixup_reorder_chain): Use loc_equal instead of direct
8930 INSN_LOCATION comparison with goto_locus.
8932 2022-03-02 Jakub Jelinek <jakub@redhat.com>
8934 * tree-ssa-strlen.cc (strlen_pass::handle_assign,
8935 strlen_pass::before_dom_children): Comment spelling fixes.
8937 2022-03-02 Jakub Jelinek <jakub@redhat.com>
8939 * ipa-modref-tree.cc (modref_access_node::contains,
8940 modref_access_node::closer_pair_p, modref_access_node::insert,
8941 modref_access_node::insert_kill): Comment spelling fixes.
8942 * ipa-modref.cc: Likewise.
8943 (modref_summary::finalize, ignore_nondeterminism_p,
8944 class modref_access_analysis,
8945 modref_access_analysis::set_side_effects,
8946 modref_access_analysis::set_nondeterministic,
8947 modref_access_analysis::record_global_memory_load,
8948 modref_access_analysis::propagate, modref_access_analysis::analyze,
8949 struct escape_point, class modref_lattice, modref_lattice::merge,
8950 modref_lattice::merge_deref, class modref_eaf_analysis,
8951 modref_eaf_analysis::merge_call_lhs_flags,
8952 modref_eaf_analysis::analyze_ssa_name, modref_eaf_analysis::propagate,
8953 modref_eaf_analysis::record_escape_points, remap_kills,
8954 update_escape_summary, remove_useless_summaries,
8955 ipa_merge_modref_summary_after_inlining, pass_ipa_modref::execute):
8957 * ipa-modref.h (struct modref_summary, interposable_eaf_flags):
8959 * ipa-modref-tree.h (enum modref_special_parms,
8960 struct modref_access_node): Likewise.
8962 2022-03-01 Jakub Jelinek <jakub@redhat.com>
8964 PR tree-optimization/104715
8965 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Don't
8966 unnecessarily test if ptr is a SSA_NAME, it has to be. Only push lhs
8967 of a call if gimple_call_return_arg is equal to ptr, not just when it
8970 2022-03-01 Jakub Jelinek <jakub@redhat.com>
8972 * gimple-ssa-warn-access.cc (warn_string_no_nul,
8973 maybe_warn_nonstring_arg, fndecl_alloc_p, new_delete_mismatch_p,
8974 matching_alloc_calls_p, maybe_warn_alloc_args_overflow,
8975 pass_waccess::check_alloca, pass_waccess::check_strcat,
8976 memmodel_to_uhwi, fntype_argno_type,
8977 pass_waccess::maybe_check_access_sizes,
8978 pass_waccess::check_call_access,
8979 pass_waccess::maybe_check_dealloc_call, pass_waccess::check_stmt):
8980 Comment spelling fixes.
8982 2022-03-01 Richard Biener <rguenther@suse.de>
8984 PR tree-optimization/104716
8985 * tree-loop-distribution.cc (find_seed_stmts_for_distribution):
8986 Check if we can copy the loop.
8988 2022-03-01 H.J. Lu <hjl.tools@gmail.com>
8990 PR middle-end/104721
8991 * cfgexpand.cc (expand_gimple_basic_block): Clear
8992 currently_expanding_gimple_stmt when returning inside the loop.
8994 2022-03-01 Martin Liska <mliska@suse.cz>
8997 * multiple_target.cc (get_attr_len): Move to tree.c.
8998 (expand_target_clones): Remove single value checking.
8999 * tree.cc (get_target_clone_attr_len): New fn.
9000 * tree.h (get_target_clone_attr_len): Likewise.
9002 2022-03-01 Martin Liska <mliska@suse.cz>
9004 PR gcov-profile/104677
9005 * doc/invoke.texi: Document more .gcda file name generation.
9007 2022-03-01 Tom de Vries <tdevries@suse.de>
9010 * config/nvptx/nvptx.cc (nvptx_gen_shuffle): Handle DCmode and CDImode.
9011 * config/nvptx/nvptx.md
9012 (define_predicate "nvptx_register_or_complex_di_df_register_operand"):
9014 (define_expand "omp_simt_xchg_bfly", define_expand "omp_simt_xchg_idx"):
9015 Use nvptx_register_or_complex_di_df_register_operand.
9017 2022-03-01 Tom de Vries <tdevries@suse.de>
9019 * config.gcc (nvptx*-*-*): Add nvptx/nvptx-gen.opt to extra_options.
9020 * config/nvptx/gen-copyright.sh: New file.
9021 * config/nvptx/gen-h.sh: New file.
9022 * config/nvptx/gen-opt.sh: New file.
9023 * config/nvptx/nvptx.h (TARGET_SM35, TARGET_SM53, TARGET_SM70)
9024 (TARGET_SM75, TARGET_SM80): Move ...
9025 * config/nvptx/nvptx-gen.h: ... here. New file, generate.
9026 * config/nvptx/nvptx.opt (Enum ptx_isa): Move ...
9027 * config/nvptx/nvptx-gen.opt: ... here. New file, generate.
9028 * config/nvptx/t-nvptx ($(srcdir)/config/nvptx/nvptx-gen.h)
9029 ($(srcdir)/config/nvptx/nvptx-gen.opt): New make target.
9031 2022-03-01 Tom de Vries <tdevries@suse.de>
9033 * config/nvptx/gen-omp-device-properties.sh: New file.
9034 * config/nvptx/t-omp-device: Use gen-omp-device-properties.sh.
9036 2022-03-01 Tom de Vries <tdevries@suse.de>
9038 * config/nvptx/nvptx-sm.def: New file.
9039 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Use nvptx-sm.def.
9040 * config/nvptx/nvptx-opts.h (enum ptx_isa): Same.
9041 * config/nvptx/nvptx.cc (sm_version_to_string)
9042 (nvptx_omp_device_kind_arch_isa): Same.
9044 2022-03-01 Robin Dapp <rdapp@linux.ibm.com>
9046 PR rtl-optimization/104154
9047 * config/arc/arc.cc (gen_compare_reg): Return the CC-mode
9048 comparison ifcvt passed us.
9050 2022-03-01 Hongyu Wang <hongyu.wang@intel.com>
9053 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
9054 Use vec_setv8hf_0 for HF to V8HFmode move instead of subreg.
9056 2022-02-28 Roger Sayle <roger@nextmovesoftware.com>
9058 PR tree-optimization/91384
9059 * config/i386/i386.md (peephole2): Eliminate final testl insn
9060 from the sequence *movsi_internal, *negsi_1, *cmpsi_ccno_1 by
9061 transforming using *negsi_2 for the negation.
9063 2022-02-28 Roger Sayle <roger@nextmovesoftware.com>
9064 Eric Botcazou <ebotcazou@adacore.com>
9067 * expmed.cc (extract_integral_bit_field): If OP0 is a hard
9068 register, copy it to a pseudo before calling simplify_gen_subreg.
9070 2022-02-28 Vladimir N. Makarov <vmakarov@redhat.com>
9072 PR rtl-optimization/104637
9073 * lra-assigns.cc (lra_split_hard_reg_for): Split hard regs as many
9074 as possible on one subpass.
9076 2022-02-28 Qing Zhao <qing.zhao@oracle.com>
9078 PR middle-end/104550
9079 * gimple-fold.cc (clear_padding_flush): Suppress warnings for new
9082 2022-02-28 Martin Liska <mliska@suse.cz>
9085 * main.cc (main): Use flag_checking instead of CHECKING_P
9086 and run toplev::finalize only if there is not error seen.
9088 2022-02-28 Richard Biener <rguenther@suse.de>
9090 * tree-ssa-pre.cc (compute_avail): Revert part of last change.
9092 2022-02-28 Richard Biener <rguenther@suse.de>
9094 PR tree-optimization/104700
9095 * tree-ssa-pre.cc (get_or_alloc_expr_for): Remove and inline
9097 (find_or_generate_expression): ... here, simplifying code.
9099 2022-02-28 Tom de Vries <tdevries@suse.de>
9101 * config/nvptx/nvptx-opts.h (enum ptx_version): Add
9102 PTX_VERSION_default.
9103 * config/nvptx/nvptx.cc (handle_ptx_version_option): Handle
9104 PTX_VERSION_default.
9105 * config/nvptx/nvptx.opt: Add EnumValue "_" / PTX_VERSION_default.
9107 2022-02-28 Richard Biener <rguenther@suse.de>
9109 PR rtl-optimization/104686
9110 * ira-int.h (minmax_set_iter_cond): Use ctz_hwi to elide loop
9111 skipping bits that are zero.
9112 (ira_object_conflict_iter_cond): Likewise.
9114 2022-02-28 Hongyu Wang <hongyu.wang@intel.com>
9116 * config/i386/avx512fintrin.h (_MM_TERNLOG_ENUM): New enum.
9117 (_mm512_ternarylogic_epi64): Truncate imm to unsigned
9118 char to avoid error when using ~enum as parameter.
9119 (_mm512_mask_ternarylogic_epi64): Likewise.
9120 (_mm512_maskz_ternarylogic_epi64): Likewise.
9121 (_mm512_ternarylogic_epi32): Likewise.
9122 (_mm512_mask_ternarylogic_epi32): Likewise.
9123 (_mm512_maskz_ternarylogic_epi32): Likewise.
9124 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64):
9125 Adjust imm param type to unsigned char.
9126 (_mm256_mask_ternarylogic_epi64): Likewise.
9127 (_mm256_maskz_ternarylogic_epi64): Likewise.
9128 (_mm256_ternarylogic_epi32): Likewise.
9129 (_mm256_mask_ternarylogic_epi32): Likewise.
9130 (_mm256_maskz_ternarylogic_epi32): Likewise.
9131 (_mm_ternarylogic_epi64): Likewise.
9132 (_mm_mask_ternarylogic_epi64): Likewise.
9133 (_mm_maskz_ternarylogic_epi64): Likewise.
9134 (_mm_ternarylogic_epi32): Likewise.
9135 (_mm_mask_ternarylogic_epi32): Likewise.
9136 (_mm_maskz_ternarylogic_epi32): Likewise.
9138 2022-02-25 Jakub Jelinek <jakub@redhat.com>
9139 Marc Glisse <marc.glisse@inria.fr>
9141 PR tree-optimization/104675
9142 * match.pd (t * 2U / 2 -> t & (~0 / 2), t / 2U * 2 -> t & ~1):
9143 Restrict simplifications to INTEGRAL_TYPE_P.
9145 2022-02-25 Jakub Jelinek <jakub@redhat.com>
9148 * config/rs6000/vector.md (movmisalign<mode>): Use rs6000_emit_move.
9150 2022-02-25 Claudiu Zissulescu <claziss@synopsys.com>
9152 * config/arc/arc.cc (gen_compare_reg): Return NULL_RTX if the
9153 comparison is not valid.
9154 * config/arc/arc.md (movsicc): Fail if comparison is not valid.
9155 (movdicc): Likewise.
9156 (movsfcc): Likewise.
9157 (movdfcc): Likewise.
9159 2022-02-25 Richard Biener <rguenther@suse.de>
9161 PR tree-optimization/103037
9162 * tree-ssa-sccvn.h (alloc_vn_nary_op_noinit): Declare.
9163 (vn_nary_length_from_stmt): Likewise.
9164 (init_vn_nary_op_from_stmt): Likewise.
9165 (vn_nary_op_compute_hash): Likewise.
9166 * tree-ssa-sccvn.cc (alloc_vn_nary_op_noinit): Export.
9167 (vn_nary_length_from_stmt): Likewise.
9168 (init_vn_nary_op_from_stmt): Likewise.
9169 (vn_nary_op_compute_hash): Likewise.
9170 * tree-ssa-pre.cc (pre_expr_obstack): New obstack.
9171 (get_or_alloc_expr_for_nary): Pass in the value-id to use,
9172 (re-)compute the hash value and if the expression is not
9173 found allocate it from pre_expr_obstack.
9174 (phi_translate_1): Do not insert the NARY found in the
9175 VN tables but build a PRE expression from the valueized
9176 NARY with the value-id we eventually found.
9177 (find_or_generate_expression): Assert we have an entry
9178 for constant values.
9179 (compute_avail): Insert not valueized expressions into
9180 EXP_GEN using the value-id from the VN tables.
9181 (init_pre): Allocate pre_expr_obstack.
9182 (fini_pre): Free pre_expr_obstack.
9184 2022-02-25 Jakub Jelinek <jakub@redhat.com>
9187 * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_FLOATxFDI_387.
9188 * config/i386/i386.md (splitter to floatdi<mode>2_i387_with_xmm): Use
9189 SLOT_FLOATxFDI_387 rather than SLOT_TEMP.
9191 2022-02-25 Jakub Jelinek <jakub@redhat.com>
9193 * warning-control.cc (get_nowarn_spec): Comment spelling fix.
9195 2022-02-25 Jakub Jelinek <jakub@redhat.com>
9197 PR middle-end/104679
9198 * internal-fn.cc (expand_SPACESHIP): Call do_pending_stack_adjust.
9200 2022-02-25 Jakub Jelinek <jakub@redhat.com>
9202 PR tree-optimization/104675
9203 * match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for
9206 2022-02-25 Alexandre Oliva <oliva@adacore.com>
9210 * expr.cc (emit_move_multi_word): Restore clobbers during LRA.
9212 2022-02-25 Alexandre Oliva <oliva@adacore.com>
9214 PR middle-end/104540
9215 * dwarf2cfi.cc (cfi_oprnd_equal_p): Cope with NULL
9218 2022-02-25 Alexandre Oliva <oliva@adacore.com>
9220 PR tree-optimization/103856
9221 * gimple-harden-conditionals.cc (non_eh_succ_edge): Enable the
9222 eh edge to be requested through an extra parameter.
9223 (pass_harden_compares::execute): Copy PHI args in the EH dest
9224 block for the new EH edge added for the inverted compare.
9226 2022-02-24 Palmer Dabbelt <palmer@rivosinc.com>
9228 * doc/invoke.texi (RISC-V -mcmodel=medany): Document the degree
9229 of position independence that -mcmodel=medany affords.
9231 2022-02-24 Jose E. Marchesi <jose.marchesi@oracle.com>
9234 * configure.ac: --disable-gcov if targetting bpf-*.
9235 * configure: Regenerate.
9237 2022-02-24 Richard Biener <rguenther@suse.de>
9239 PR tree-optimization/104676
9240 * tree-loop-distribution.cc (loop_distribution::execute):
9241 Do a full scev_reset.
9243 2022-02-24 Jakub Jelinek <jakub@redhat.com>
9245 PR tree-optimization/104601
9246 * tree-ssa-sccvn.cc (visit_reference_op_call): For calls with
9247 non-SSA_NAME lhs value number vdef to itself instead of e.g. the
9250 2022-02-24 Tom de Vries <tdevries@suse.de>
9251 Tobias Burnus <tobias@codesourcery.com>
9253 * config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Handle
9254 sm_70, sm_75 and sm_80.
9255 * config/nvptx/t-omp-device: Add sm_53, sm_70, sm_75 and sm_80.
9257 2022-02-24 Tom de Vries <tdevries@suse.de>
9259 * config/nvptx/nvptx.md (define_insn "rotlsi3", define_insn
9260 "rotrsi3"): New define_insn.
9262 2022-02-24 Tom de Vries <tdevries@suse.de>
9264 * config/nvptx/nvptx.cc (gen_comment): Use
9265 DECL_SOURCE_LOCATION (cfun->decl) instead of cfun->function_start_locus.
9267 2022-02-24 liuhongt <hongtao.liu@intel.com>
9269 * config/i386/sse.md (<code>v1ti3): Add suffix and replace
9270 isa attr of alternative 2 from avx to avx512vl.
9272 2022-02-23 Richard Biener <rguenther@suse.de>
9273 Jakub Jelinek <jakub@redhat.com>
9275 PR tree-optimization/104644
9276 * doc/match-and-simplify.texi: Amend ! documentation.
9277 * genmatch.cc (expr::gen_transform): Code-generate ! support
9279 (parser::parse_expr): Allow ! for GENERIC.
9280 * match.pd (cmp (bswap @0) INTEGER_CST@1): Use ! modifier on
9283 2022-02-23 Richard Biener <rguenther@suse.de>
9285 PR tree-optimization/101636
9286 * tree-vect-slp.cc (vect_print_slp_tree): Dump the
9287 vector type of the node.
9288 (vect_slp_analyze_operations): Make sure the CTOR
9289 is vectorized with an expected type.
9290 (vectorize_slp_instance_root_stmt): Revert r10-5979 fix.
9292 2022-02-23 Jakub Jelinek <jakub@redhat.com>
9295 * gimple-warn-recursion.cc (pass_warn_recursion::find_function_exit):
9296 Don't warn about calls to corresponding builtin from extern inline
9297 gnu_inline wrappers.
9299 2022-02-23 Roger Sayle <roger@nextmovesoftware.com>
9302 * config/nvptx/nvptx.md (*movhf_insn): Add subregs_ok attribute.
9304 2022-02-23 Christophe Lyon <christophe.lyon@arm.com>
9308 * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Fix
9311 2022-02-23 Cui,Lili <lili.cui@intel.com>
9313 * doc/invoke.texi: Update documents for Intel architectures.
9315 2022-02-22 Roger Sayle <roger@nextmovesoftware.com>
9317 * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop): Restore
9320 2022-02-22 Thomas Schwinge <thomas@codesourcery.com>
9322 * omp-low.cc (omp_build_component_ref): Move function...
9323 * omp-general.cc (omp_build_component_ref): ... here. Remove
9325 * omp-general.h (omp_build_component_ref): Declare function.
9326 * omp-oacc-neuter-broadcast.cc (oacc_build_component_ref): Remove
9328 (build_receiver_ref, build_sender_ref): Call
9329 'omp_build_component_ref' instead.
9331 2022-02-22 Thomas Schwinge <thomas@codesourcery.com>
9333 * omp-oacc-neuter-broadcast.cc (record_field_map_t): Further
9334 simplify. Adjust all users.
9336 2022-02-22 Segher Boessenkool <segher@kernel.crashing.org>
9339 * config/rs6000/rs6000.cc (atomic_hold_decl, atomic_clear_decl,
9340 atomic_update_decl): Add GTY markup.
9342 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
9344 * config/arm/arm.h (REG_CLASS_CONTENTS): Add VPR_REG to ALL_REGS.
9346 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
9350 * config/arm/arm-builtins.cc (CX_UNARY_UNONE_QUALIFIERS): Use
9352 (CX_BINARY_UNONE_QUALIFIERS): Likewise.
9353 (CX_TERNARY_UNONE_QUALIFIERS): Likewise.
9354 (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
9355 (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
9356 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Delete.
9357 * config/arm/arm_mve_builtins.def: Use predicated qualifiers.
9358 * config/arm/mve.md: Use VxBI instead of HI.
9360 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
9364 * config/arm/arm-builtins.cc (STRSBS_P_QUALIFIERS): Use predicate
9366 (STRSBU_P_QUALIFIERS): Likewise.
9367 (LDRGBS_Z_QUALIFIERS): Likewise.
9368 (LDRGBU_Z_QUALIFIERS): Likewise.
9369 (LDRGBWBXU_Z_QUALIFIERS): Likewise.
9370 (LDRGBWBS_Z_QUALIFIERS): Likewise.
9371 (LDRGBWBU_Z_QUALIFIERS): Likewise.
9372 (STRSBWBS_P_QUALIFIERS): Likewise.
9373 (STRSBWBU_P_QUALIFIERS): Likewise.
9374 * config/arm/mve.md: Use VxBI instead of HI.
9376 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
9380 * config/arm/arm-builtins.cc (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
9381 (TERNOP_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
9382 (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
9383 (TERNOP_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
9384 (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
9385 (TERNOP_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
9386 (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Change to ...
9387 (TERNOP_NONE_NONE_UNONE_PRED_QUALIFIERS): ... this.
9388 (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
9389 (QUADOP_UNONE_UNONE_NONE_NONE_PRED_QUALIFIERS): ... this.
9390 (QUADOP_NONE_NONE_NONE_NONE_PRED_QUALIFIERS): New.
9391 (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
9392 (QUADOP_NONE_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
9393 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
9394 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
9395 (QUADOP_UNONE_UNONE_NONE_IMM_PRED_QUALIFIERS): ... this.
9396 (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
9397 (QUADOP_NONE_NONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
9398 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
9399 (QUADOP_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
9400 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
9401 (QUADOP_UNONE_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
9402 (STRS_P_QUALIFIERS): Use predicate qualifier.
9403 (STRU_P_QUALIFIERS): Likewise.
9404 (STRSU_P_QUALIFIERS): Likewise.
9405 (STRSS_P_QUALIFIERS): Likewise.
9406 (LDRGS_Z_QUALIFIERS): Likewise.
9407 (LDRGU_Z_QUALIFIERS): Likewise.
9408 (LDRS_Z_QUALIFIERS): Likewise.
9409 (LDRU_Z_QUALIFIERS): Likewise.
9410 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
9411 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
9412 (BINOP_NONE_NONE_PRED_QUALIFIERS): New.
9413 (BINOP_UNONE_UNONE_PRED_QUALIFIERS): New.
9414 * config/arm/arm_mve_builtins.def: Use new predicated qualifiers.
9415 * config/arm/mve.md: Use MVE_VPRED instead of HI.
9417 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
9421 * config/arm/arm-builtins.cc (BINOP_UNONE_NONE_NONE_QUALIFIERS):
9423 (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
9424 (TERNOP_PRED_NONE_NONE_PRED_QUALIFIERS): ... this.
9425 (TERNOP_PRED_UNONE_UNONE_PRED_QUALIFIERS): New.
9426 * config/arm/arm_mve_builtins.def (vcmp*q_n_, vcmp*q_m_f): Use new
9427 predicated qualifiers.
9428 * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_n_<mode>)
9429 (mve_vcmp*q_m_f<mode>): Use MVE_VPRED instead of HI.
9431 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
9434 * config/arm/arm-protos.h (arm_get_mask_mode): New prototype.
9435 (arm_expand_vector_compare): Update prototype.
9436 * config/arm/arm.cc (TARGET_VECTORIZE_GET_MASK_MODE): New.
9437 (arm_vector_mode_supported_p): Add support for VxBI modes.
9438 (arm_expand_vector_compare): Remove useless generation of vpsel.
9439 (arm_expand_vcond): Fix select operands.
9440 (arm_get_mask_mode): New.
9441 * config/arm/mve.md (vec_cmp<mode><MVE_vpred>): New.
9442 (vec_cmpu<mode><MVE_vpred>): New.
9443 (vcond_mask_<mode><MVE_vpred>): New.
9444 * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>)
9445 (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): Move to ...
9446 * config/arm/neon.md (vec_cmp<mode><v_cmp_result>)
9447 (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): ... here
9448 and disable for MVE.
9449 * doc/sourcebuild.texi (arm_mve): Document new effective-target.
9451 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
9455 * config/arm/arm-builtins.cc (BINOP_PRED_UNONE_UNONE_QUALIFIERS)
9456 (BINOP_PRED_NONE_NONE_QUALIFIERS)
9457 (TERNOP_NONE_NONE_NONE_PRED_QUALIFIERS)
9458 (TERNOP_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
9459 * config/arm/arm-protos.h (mve_bool_vec_to_const): New.
9460 * config/arm/arm.cc (arm_hard_regno_mode_ok): Handle new VxBI
9462 (arm_mode_to_pred_mode): New.
9463 (arm_expand_vector_compare): Use the right VxBI mode instead of
9465 (arm_expand_vcond): Likewise.
9466 (simd_valid_immediate): Handle MODE_VECTOR_BOOL.
9467 (mve_bool_vec_to_const): New.
9468 (neon_make_constant): Call mve_bool_vec_to_const when needed.
9469 * config/arm/arm_mve_builtins.def (vcmpneq_, vcmphiq_, vcmpcsq_)
9470 (vcmpltq_, vcmpleq_, vcmpgtq_, vcmpgeq_, vcmpeqq_, vcmpneq_f)
9471 (vcmpltq_f, vcmpleq_f, vcmpgtq_f, vcmpgeq_f, vcmpeqq_f, vpselq_u)
9472 (vpselq_s, vpselq_f): Use new predicated qualifiers.
9473 * config/arm/constraints.md (DB): New.
9474 * config/arm/iterators.md (MVE_7, MVE_7_HI): New mode iterators.
9475 (MVE_VPRED, MVE_vpred): New attribute iterators.
9476 * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>)
9477 (@mve_vcmp<mve_cmp_op>q_f<mode>, @mve_vpselq_<supf><mode>)
9478 (@mve_vpselq_f<mode>): Use MVE_VPRED instead of HI.
9479 (@mve_vpselq_<supf>v2di): Define separately.
9480 (mov<mode>): New expander for VxBI modes.
9481 * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Use
9482 MVE_7_HI iterator and add support for DB constraint.
9484 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
9485 Richard Sandiford <richard.sandiford@arm.com>
9489 * config/aarch64/aarch64-modes.def (VNx16BI, VNx8BI, VNx4BI,
9490 VNx2BI): Update definition.
9491 * config/arm/arm-builtins.cc (arm_init_simd_builtin_types): Add new
9493 (arm_init_builtin): Map predicate vectors arguments to HImode.
9494 (arm_expand_builtin_args): Move HImode predicate arguments to VxBI
9495 rtx. Move return value to HImode rtx.
9496 * config/arm/arm-builtins.h (arm_type_qualifiers): Add qualifier_predicate.
9497 * config/arm/arm-modes.def (B2I, B4I, V16BI, V8BI, V4BI): New modes.
9498 * config/arm/arm-simd-builtin-types.def (Pred1x16_t,
9499 Pred2x8_t,Pred4x4_t): New.
9500 * emit-rtl.cc (init_emit_once): Handle all boolean modes.
9501 * genmodes.cc (mode_data): Add boolean field.
9502 (blank_mode): Initialize it.
9503 (make_complex_modes): Fix handling of boolean modes.
9504 (make_vector_modes): Likewise.
9505 (VECTOR_BOOL_MODE): Use new COMPONENT parameter.
9506 (make_vector_bool_mode): Likewise.
9508 (make_bool_mode): New.
9509 (emit_insn_modes_h): Fix generation of boolean modes.
9510 (emit_class_narrowest_mode): Likewise.
9511 * machmode.def: (VECTOR_BOOL_MODE): Document new COMPONENT
9512 parameter. Use new BOOL_MODE instead of FRACTIONAL_INT_MODE to
9514 * rtx-vector-builder.cc (rtx_vector_builder::find_cached_value):
9515 Fix handling of constm1_rtx for VECTOR_BOOL.
9516 * simplify-rtx.cc (native_encode_rtx): Fix support for VECTOR_BOOL.
9517 (native_decode_vector_rtx): Likewise.
9518 (test_vector_ops_duplicate): Skip vec_merge test
9519 with vectors of booleans.
9520 * varasm.cc (output_constant_pool_2): Likewise.
9522 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
9524 * config/arm/mve.md (mve_vmvnq_n_<supf><mode>): Use V_elem mode
9527 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
9529 * config/arm/arm.cc (arm_class_likely_spilled_p): Handle VPR_REG.
9531 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
9533 * config/arm/arm.h (reg_class): Add GENERAL_AND_VPR_REGS.
9534 (REG_CLASS_NAMES): Likewise.
9535 (REG_CLASS_CONTENTS): Likewise.
9536 (CLASS_MAX_NREGS): Handle VPR.
9537 * config/arm/arm.cc (arm_hard_regno_nregs): Handle VPR.
9539 2022-02-22 Tobias Burnus <tobias@codesourcery.com>
9540 Tom de Vries <tdevries@suse.de>
9542 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Handle SM70.
9543 * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm):
9545 * config/nvptx/nvptx.opt (misa): Add sm_70 alias PTX_ISA_SM70.
9547 2022-02-22 Tobias Burnus <tobias@codesourcery.com>
9548 Tom de Vries <tdevries@suse.de>
9550 * config/nvptx/nvptx.opt (mptx): Add 6.0 alias PTX_VERSION_6_0.
9551 * doc/invoke.texi (-mptx): Update for new values and defaults.
9553 2022-02-22 Tom de Vries <tdevries@suse.de>
9555 * config/nvptx/nvptx.cc (gen_comment): New function.
9556 (workaround_uninit_method_1, workaround_uninit_method_2)
9557 (workaround_uninit_method_3): : Use gen_comment.
9558 * config/nvptx/nvptx.opt (mptx-comment): New option.
9560 2022-02-22 Richard Biener <rguenther@suse.de>
9562 * tree-vect-slp.cc (vect_build_slp_tree_2): Dump the def used
9565 2022-02-22 Roger Sayle <roger@nextmovesoftware.com>
9566 Richard Biener <rguenther@suse.de>
9568 * fold-const.cc (ctor_single_nonzero_element): New function to
9569 return the single non-zero element of a (vector) constructor.
9570 * fold-const.h (ctor_single_nonzero_element): Prototype here.
9571 * match.pd (reduc (constructor@0)): Simplify reductions of a
9572 constructor containing a single non-zero element.
9573 (reduc (@0 op VECTOR_CST) -> (reduc @0) op CONST): Simplify
9574 reductions of vector operations of the same operator with
9575 constant vector operands.
9577 2022-02-22 Jakub Jelinek <jakub@redhat.com>
9579 PR tree-optimization/104604
9580 * gimple-range-fold.cc (adjust_imagpart_expr, adjust_realpart_expr):
9581 Only check if gimple_assign_rhs1 is COMPLEX_CST if
9582 gimple_assign_rhs_code is COMPLEX_CST.
9584 2022-02-22 Jakub Jelinek <jakub@redhat.com>
9587 * config/i386/i386-expand.cc (ix86_expand_copysign): Call force_reg
9588 on input operands before calling lowpart_subreg on it. For output
9589 operand, use a vmode pseudo as destination and then move its lowpart
9590 subreg into operands[0] if lowpart_subreg fails on dest.
9591 (ix86_expand_xorsign): Likewise.
9593 2022-02-22 Richard Biener <rguenther@suse.de>
9595 PR tree-optimization/104582
9597 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
9598 Cost GPR to vector register moves for integer vector construction.
9600 2022-02-22 Richard Biener <rguenther@suse.de>
9602 PR tree-optimization/104582
9603 * tree-vectorizer.h (stmt_info_for_cost::node): New field.
9604 (vector_costs::add_stmt_cost): Add SLP node parameter.
9605 (dump_stmt_cost): Likewise.
9606 (add_stmt_cost): Likewise, new overload and adjust.
9607 (add_stmt_costs): Adjust.
9608 (record_stmt_cost): New overload.
9609 * tree-vectorizer.cc (dump_stmt_cost): Dump the SLP node.
9610 (vector_costs::add_stmt_cost): Adjust.
9611 * tree-vect-loop.cc (vect_estimate_min_profitable_iters):
9613 * tree-vect-slp.cc (vect_prologue_cost_for_slp): Record
9614 the SLP node for costing.
9615 (vectorizable_slp_permutation): Likewise.
9616 * tree-vect-stmts.cc (record_stmt_cost): Adjust and add
9618 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
9620 * config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost):
9622 * config/rs6000/rs6000.cc (rs6000_vector_costs::add_stmt_cost):
9624 (rs6000_cost_data::adjust_vect_cost_per_loop): Likewise.
9626 2022-02-22 Richard Biener <rguenther@suse.de>
9628 PR tree-optimization/104582
9629 * tree-vectorizer.h (add_stmt_cost): New overload.
9630 (record_stmt_cost): Likewise.
9631 * tree-vect-loop.cc (vect_compute_single_scalar_iteration_cost):
9633 (vect_get_known_peeling_cost): Use new overloads.
9634 (vect_estimate_min_profitable_iters): Likewise. Consistently
9635 use scalar_stmt for costing versioning checks.
9636 * tree-vect-stmts.cc (record_stmt_cost): New overload.
9638 2022-02-22 Hongyu Wang <hongyu.wang@intel.com>
9641 * config/i386/i386-expand.cc (ix86_expand_atomic_fetch_op_loop):
9642 Split atomic fetch and loop part.
9643 (ix86_expand_cmpxchg_loop): New expander for cmpxchg loop.
9644 * config/i386/i386-protos.h (ix86_expand_cmpxchg_loop): New
9646 * config/i386/sync.md (atomic_compare_and_swap<mode>): Call new
9647 expander under TARGET_RELAX_CMPXCHG_LOOP.
9648 (atomic_compare_and_swap<mode>): Likewise for doubleword modes.
9650 2022-02-21 Dan Li <ashimida@linux.alibaba.com>
9652 * config/aarch64/aarch64.cc (SLOT_REQUIRED):
9653 Change wb_candidate[12] to wb_push_candidate[12].
9654 (aarch64_layout_frame): Likewise, and
9655 change callee_adjust when scs is enabled.
9656 (aarch64_save_callee_saves):
9657 Change wb_candidate[12] to wb_push_candidate[12].
9658 (aarch64_restore_callee_saves):
9659 Change wb_candidate[12] to wb_pop_candidate[12].
9660 (aarch64_get_separate_components):
9661 Change wb_candidate[12] to wb_push_candidate[12].
9662 (aarch64_expand_prologue): Push x30 onto SCS before it's
9664 (aarch64_expand_epilogue): Pop x30 frome SCS, while
9665 preventing it from being popped from the regular stack again.
9666 (aarch64_override_options_internal): Add SCS compile option check.
9667 (TARGET_HAVE_SHADOW_CALL_STACK): New hook.
9668 * config/aarch64/aarch64.h (struct GTY): Add is_scs_enabled,
9669 wb_pop_candidate[12], and rename wb_candidate[12] to
9670 wb_push_candidate[12].
9671 * config/aarch64/aarch64.md (scs_push): New template.
9672 (scs_pop): Likewise.
9673 * doc/invoke.texi: Document -fsanitize=shadow-call-stack.
9674 * doc/tm.texi: Regenerate.
9675 * doc/tm.texi.in: Add hook have_shadow_call_stack.
9676 * flag-types.h (enum sanitize_code):
9677 Add SANITIZE_SHADOW_CALL_STACK.
9678 * opts.cc (parse_sanitizer_options): Add shadow-call-stack
9679 and exclude SANITIZE_SHADOW_CALL_STACK.
9680 * target.def: New hook.
9681 * toplev.cc (process_options): Add SCS compile option check.
9682 * ubsan.cc (ubsan_expand_null_ifn): Enum type conversion.
9684 2022-02-21 Tom de Vries <tdevries@suse.de>
9687 * config/nvptx/nvptx.cc (workaround_uninit_method_1)
9688 (workaround_uninit_method_2, workaround_uninit_method_3)
9689 (workaround_uninit): New function.
9690 (nvptx_reorg): Use workaround_uninit.
9691 * config/nvptx/nvptx.opt (minit-regs): New option.
9693 2022-02-21 Andre Vieira <andre.simoesdiasvieira@arm.com>
9695 PR rtl-optimization/104498
9696 * alias.cc (compare_base_symbol_refs): Correct distance computation
9697 when swapping x and y.
9699 2022-02-21 Andrew Pinski <apinski@marvell.com>
9702 * tree-ssa.cc (tree_ssa_useless_type_conversion):
9703 Check the inner type before calling useless_type_conversion_p.
9705 2022-02-19 Tom de Vries <tdevries@suse.de>
9707 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle SET insn.
9708 * config/nvptx/nvptx.md
9709 (define_insn "nvptx_atomic_store<mode>"): Rename to ...
9710 (define_insn "nvptx_atomic_store_sm70<mode>"): This.
9711 (define_insn "nvptx_atomic_store<mode>"): New define_insn.
9712 (define_expand "atomic_store<mode>"): Handle rename. Use
9713 nvptx_atomic_store instead of atomic_exchange.
9715 2022-02-19 Tom de Vries <tdevries@suse.de>
9717 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle all
9718 insns with atomic attribute. Assert that all handled insns are
9720 * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"):
9721 Set atomic attribute to false.
9723 2022-02-19 Tom de Vries <tdevries@suse.de>
9725 * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Change return
9727 (nvptx_reorg_uniform_simt): Insert nvptx_uniform_warp_check or
9728 nvptx_warpsync, if necessary.
9730 2022-02-19 Jakub Jelinek <jakub@redhat.com>
9733 * asan.cc (instrument_derefs): If inner is a RESULT_DECL and access is
9734 known to be within bounds, treat it like automatic variables.
9735 If instrumenting access and inner is {VAR,PARM,RESULT}_DECL from
9736 current function and !TREE_STATIC which is not TREE_ADDRESSABLE, mark
9739 2022-02-18 Pat Haugen <pthaugen@linux.ibm.com>
9741 * config/rs6000/rs6000.opt (mpower10-fusion): Mark Undocumented.
9742 (mpower10-fusion-ld-cmpi, mpower10-fusion-2logical,
9743 mpower10-fusion-logical-add, mpower10-fusion-add-logical,
9744 mpower10-fusion-2add, mpower10-fusion-2store): Remove.
9745 * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER,
9746 OTHER_P9_VECTOR_MASKS): Remove Power10 fusion sub-options.
9747 * config/rs6000/rs6000.cc (rs6000_option_override_internal,
9748 power10_sched_reorder): Likewise.
9749 * config/rs6000/genfusion.pl (gen_ld_cmpi_p10, gen_logical_addsubf,
9750 gen_addadd): Likewise
9751 * config/rs6000/fusion.md: Regenerate.
9753 2022-02-18 Jakub Jelinek <jakub@redhat.com>
9757 * config/rs6000/mm_malloc.h (_mm_malloc): Call posix_memalign
9758 rather than __posix_memalign.
9760 2022-02-18 Richard Biener <rguenther@suse.de>
9763 * config/i386/i386.cc (ix86_avx_u128_mode_source): Remove.
9764 (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY instead
9765 of calling ix86_avx_u128_mode_source which would eventually
9766 have returned AVX_U128_ANY in some very special case.
9768 2022-02-18 Richard Biener <rguenther@suse.de>
9770 PR tree-optimization/96881
9771 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Comment
9773 (control_parents_preserved_p): New function.
9774 (eliminate_unnecessary_stmts): Check that we preserved control
9775 parents before retaining a CLOBBER.
9776 (perform_tree_ssa_dce): Pass down aggressive flag
9777 to eliminate_unnecessary_stmts.
9779 2022-02-17 Jason Merrill <jason@redhat.com>
9781 * tree.cc (warn_deprecated_use): Look for TYPE_STUB_DECL
9782 on TYPE_MAIN_VARIANT.
9784 2022-02-17 Paul A. Clarke <pc@us.ibm.com>
9787 * config/rs6000/bmi2intrin.h: Uglify local variables.
9788 * config/rs6000/emmintrin.h: Likewise.
9789 * config/rs6000/mm_malloc.h: Likewise.
9790 * config/rs6000/mmintrin.h: Likewise.
9791 * config/rs6000/pmmintrin.h: Likewise.
9792 * config/rs6000/smmintrin.h: Likewise.
9793 * config/rs6000/tmmintrin.h: Likewise.
9794 * config/rs6000/xmmintrin.h: Likewise.
9796 2022-02-17 Robin Dapp <rdapp@linux.ibm.com>
9799 * config/rs6000/rs6000.cc (rs6000_emit_int_cmove): Return false
9800 if the expected comparison's first operand is of mode MODE_CC.
9802 2022-02-17 Vladimir N. Makarov <vmakarov@redhat.com>
9804 PR rtl-optimization/104447
9805 * lra-constraints.cc (spill_hard_reg_in_range): Initiate ignore
9806 hard reg set by lra_no_alloc_regs.
9808 2022-02-17 liuhongt <hongtao.liu@intel.com>
9810 PR tree-optimization/104551
9811 PR tree-optimization/103771
9812 * match.pd (cond_expr_convert_p): Add types_match check when
9813 convert is extension.
9814 * tree-vect-patterns.cc
9815 (gimple_cond_expr_convert_p): Adjust comments.
9816 (vect_recog_cond_expr_convert_pattern): Ditto.
9818 2022-02-17 Jakub Jelinek <jakub@redhat.com>
9821 * valtrack.cc (debug_lowpart_subreg): Don't call gen_rtx_raw_SUBREG
9822 if expr has VOIDmode.
9824 2022-02-17 liuhongt <hongtao.liu@intel.com>
9826 * config/i386/cpuid.h (bit_MPX): Removed.
9827 (bit_BNDREGS): Ditto.
9828 (bit_BNDCSR): Ditto.
9830 2022-02-17 Michael Meissner <meissner@the-meissners.org>
9833 * config/rs6000/rs6000-c.cc (rs6000_cpu_cpp_builtins): Define
9834 __SIZEOF_IBM128__ if the IBM 128-bit long double type is created.
9835 Define __SIZEOF_FLOAT128__ if the IEEE 128-bit floating point type
9838 2022-02-16 Andrew MacLeod <amacleod@redhat.com>
9840 * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use
9841 range_compatible_p instead of direct type comparison.
9843 2022-02-16 Jakub Jelinek <jakub@redhat.com>
9845 PR rtl-optimization/104544
9846 * combine.cc (try_combine): When looking for insn whose links
9847 should be updated from i3 to i2, don't stop on debug insns, instead
9850 2022-02-16 Richard Sandiford <richard.sandiford@arm.com>
9853 * config/aarch64/iterators.md (LOGICAL_OR_PLUS): New iterator.
9854 * config/aarch64/aarch64.md: Extend the PR100056 patterns
9855 to handle plus in the same way as ior, if the operands have
9856 no set bits in common.
9858 2022-02-15 Andrew MacLeod <amacleod@redhat.com>
9860 PR tree-optimization/104526
9861 * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Call
9863 * gimple-range-gori.cc (range_def_chain::get_def_chain): Force a build
9864 of dependency chain if there isn't one.
9865 (gori_compute::condexpr_adjust): New.
9866 * gimple-range-gori.h (class gori_compute): New prototype.
9868 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
9871 * config/aarch64/aarch64-protos.h (aarch64_maxmin_plus_const):
9873 * config/aarch64/aarch64.cc (aarch64_maxmin_plus_const): New function.
9874 * config/aarch64/aarch64.md (*aarch64_minmax_plus): New pattern.
9876 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
9878 * tree-vectorizer.h (vect_scalar_ops_slice): New struct.
9879 (vect_scalar_ops_slice_hash): Likewise.
9880 (vect_scalar_ops_slice::op): New function.
9881 * tree-vect-slp.cc (vect_scalar_ops_slice::all_same_p): New function.
9882 (vect_scalar_ops_slice_hash::hash): Likewise.
9883 (vect_scalar_ops_slice_hash::equal): Likewise.
9884 (vect_prologue_cost_for_slp): Check for duplicate vectors.
9885 * config/aarch64/aarch64.cc
9886 (aarch64_vector_costs::m_stp_sequence_cost): New member variable.
9887 (aarch64_aligned_constant_offset_p): New function.
9888 (aarch64_stp_sequence_cost): Likewise.
9889 (aarch64_vector_costs::add_stmt_cost): Handle new STP heuristic.
9890 (aarch64_vector_costs::finish_cost): Likewise.
9892 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
9894 * tree-vect-slp.cc (vect_bb_vectorization_profitable_p): Fix
9897 2022-02-15 Richard Biener <rguenther@suse.de>
9899 PR tree-optimization/104543
9900 * gimple-loop-jam.cc (unroll_jam_possible_p): Check outer loop exits
9901 come after the inner loop.
9903 2022-02-15 Jakub Jelinek <jakub@redhat.com>
9906 * config/i386/host-cygwin.cc (cygwin_gt_pch_get_address): Use
9907 cannot instead of can%'t in diagnostics. Formatting fixes.
9909 2022-02-15 Jakub Jelinek <jakub@redhat.com>
9911 PR middle-end/104522
9912 * fold-const.h (native_interpret_real): Declare.
9913 * fold-const.cc (native_interpret_real): No longer static. Don't
9914 perform MODE_COMPOSITE_P verification here.
9915 (native_interpret_expr) <case REAL_TYPE>: But perform it here instead
9917 * gimple-fold.cc (clear_padding_type): Call native_interpret_real
9918 instead of native_interpret_expr.
9919 * simplify-rtx.cc (simplify_immed_subreg): Perform the native_encode_rtx
9920 and comparison verification for all FLOAT_MODE_P modes, not just
9923 2022-02-15 Richard Biener <rguenther@suse.de>
9925 PR tree-optimization/104519
9926 * fold-const.cc (multiple_of_p): Remove never true condition.
9927 * tree-ssa-loop-niter.cc (number_of_iterations_ne): Use
9928 the appropriate types for determining whether the difference
9929 of final and base is a multiple of the step.
9931 2022-02-15 Jakub Jelinek <jakub@redhat.com>
9934 * omp-low.cc (task_cpyfns): New variable.
9935 (delete_omp_context): Don't call finalize_task_copyfn from here.
9936 (create_task_copyfn): Push task_stmt into task_cpyfns.
9937 (execute_lower_omp): Call finalize_task_copyfn here on entries from
9938 task_cpyfns vector and release the vector.
9940 2022-02-14 Martin Sebor <msebor@redhat.com>
9942 PR middle-end/104355
9943 * doc/invoke.texi (-Warray-bounds): Update documentation.
9945 2022-02-14 Michael Meissner <meissner@the-meissners.org>
9948 * config/rs6000/rs6000.cc (init_float128_ibm): Update the
9949 conversion functions used to convert IFmode types.
9951 2022-02-14 Andrew Stubbs <ams@codesourcery.com>
9953 * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Use force_reg.
9955 2022-02-14 Richard Biener <rguenther@suse.de>
9957 PR tree-optimization/104528
9958 * tree-ssa.h (find_released_ssa_name): Declare.
9959 * tree-ssa.cc (find_released_ssa_name): Export.
9960 * cfgloop.cc (verify_loop_structure): Look for released
9961 SSA names in loops nb_iterations.
9962 * tree-ssa-dse.cc (pass_dse::execute): Release number of iteration
9965 2022-02-14 Richard Biener <rguenther@suse.de>
9967 PR tree-optimization/104511
9968 * tree-ssa-forwprop.cc (simplify_vector_constructor): Avoid
9969 touching DFP <-> FP conversions.
9971 2022-02-14 Richard Biener <rguenther@suse.de>
9973 PR middle-end/104497
9974 * gimplify.cc (gimplify_compound_lval): Make sure the
9975 base is a non-register if needed and possible.
9977 2022-02-13 liuhongt <hongtao.liu@intel.com>
9980 * match.pd (cond_expr_convert_p): New match.
9981 * tree-vect-patterns.cc (gimple_cond_expr_convert_p): Declare.
9982 (vect_recog_cond_expr_convert_pattern): New.
9984 2022-02-12 Jakub Jelinek <jakub@redhat.com>
9987 * asan.cc: Include tree-eh.h.
9988 (handle_builtin_alloca): Handle the case when __builtin_alloca or
9989 __builtin_alloca_with_align can throw.
9991 2022-02-12 Jakub Jelinek <jakub@redhat.com>
9994 * config/i386/i386.md (cvtsd2ss splitter): If operands[1] is xmm16+
9995 and AVX512VL isn't available, move operands[1] to operands[0] first.
9997 2022-02-12 Uroš Bizjak <ubizjak@gmail.com>
10000 * config/i386/i386.cc (type_natural_mode):
10001 Skip decimal float vector modes.
10003 2022-02-11 Iain Sandoe <iain@sandoe.co.uk>
10004 Vladimir Makarov <vmakarov@redhat.com>
10007 * config/rs6000/rs6000.cc (darwin_rs6000_legitimate_lo_sum_const_p):
10008 Check for UNSPEC_MACHOPIC_OFFSET wrappers on symbolic addresses when
10010 (legitimate_lo_sum_address_p): Likewise.
10011 * lra-constraints.cc (process_address_1): Do not attempt to emit a reg
10012 load from an invalid lo_sum address.
10014 2022-02-11 Jakub Jelinek <jakub@redhat.com>
10016 PR tree-optimization/104499
10017 * match.pd ((X & Y) CMP 0 -> X CMP2 ~Y): Use view_convert instead
10020 2022-02-11 Jakub Jelinek <jakub@redhat.com>
10022 * tree.cc (build_common_builtin_nodes): Fix up formatting in
10023 __builtin_clear_padding decl creation.
10024 * gimplify.cc (gimple_add_padding_init_for_auto_var): Encode
10025 for_auto_init in the value of 2nd BUILT_IN_CLEAR_PADDING
10026 argument rather than in 3rd argument.
10027 (gimplify_call_expr): Likewise. Fix up comment formatting.
10028 * gimple-fold.cc (gimple_fold_builtin_clear_padding): Expect
10029 2 arguments instead of 3, take for_auto_init from the value
10032 2022-02-11 Vladimir N. Makarov <vmakarov@redhat.com>
10034 PR rtl-optimization/104400
10035 * lra-constraints.cc (process_alt_operands): Don't make union of
10036 this_alternative_exclude_start_hard_regs when reg class in insn
10037 alternative covers other reg classes in the same alternative.
10039 2022-02-11 Jakub Jelinek <jakub@redhat.com>
10041 PR middle-end/104446
10042 * combine.cc (subst): Don't substitute CONST_INTs into RTX_AUTOINC
10045 2022-02-11 Richard Biener <rguenther@suse.de>
10047 PR middle-end/104496
10048 * internal-fn.cc (vectorized_internal_fn_supported_p):
10049 Bail out for integer mode vector types.
10051 2022-02-11 Jakub Jelinek <jakub@redhat.com>
10053 PR rtl-optimization/104459
10054 * df-scan.cc (df_insn_change_bb): Don't call df_set_bb_dirty when
10055 moving DEBUG_INSNs between bbs.
10057 2022-02-11 liuhongt <hongtao.liu@intel.com>
10059 PR tree-optimization/104479
10060 * match.pd (uncond_op + vec_cond -> cond_op): Add single_use
10061 for the dest of uncond_op.
10063 2022-02-11 Tom de Vries <tdevries@suse.de>
10066 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle asm
10069 2022-02-10 Qing Zhao <qing.zhao@oracle.com>
10071 PR middle-end/100775
10072 * function.cc (gen_call_used_regs_seq): Call
10073 df_update_exit_block_uses when updating df.
10075 2022-02-10 Uroš Bizjak <ubizjak@gmail.com>
10078 * config/i386/sse.md (vec_unpacks_float_lo_v4si):
10079 Change operand 1 constraint to register_operand.
10081 2022-02-10 Richard Biener <rguenther@suse.de>
10083 PR tree-optimization/104373
10084 * tree-ssa-sccvn.h (do_rpo_vn): New export exposing the
10086 * tree-ssa-sccvn.cc (do_rpo_vn): Export, get the default
10087 walk kind as argument.
10088 (run_rpo_vn): Adjust.
10089 (pass_fre::execute): Likewise.
10090 * tree-ssa-uninit.cc (warn_uninitialized_vars): Skip
10091 blocks not reachable.
10092 (execute_late_warn_uninitialized): Mark all edges as
10094 (execute_early_warn_uninitialized): Use VN to compute
10096 (pass_data_early_warn_uninitialized): Enable a dump file,
10097 change dump name to warn_uninit.
10099 2022-02-10 Richard Biener <rguenther@suse.de>
10101 PR middle-end/104467
10102 * match.pd (vector extract simplification): Multiply the
10103 number of CTOR elements with the number of element elements.
10105 2022-02-10 Richard Biener <rguenther@suse.de>
10107 PR tree-optimization/104466
10108 * tree-ssa-alias.cc (refs_may_alias_p_2): Use rbase1/rbase2
10109 for the MR_DEPENDENCE checks as intended.
10111 2022-02-10 Tom de Vries <tdevries@suse.de>
10113 * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"): New
10115 (define_expand "atomic_store<mode>"): Use nvptx_atomic_store<mode> for
10117 (define_c_enum "unspecv"): Add UNSPECV_ST.
10119 2022-02-10 Tom de Vries <tdevries@suse.de>
10121 * config/nvptx/nvptx-protos.h (nvptx_mem_maybe_shared_p): Declare.
10122 * config/nvptx/nvptx.cc (nvptx_mem_data_area): New static function.
10123 (nvptx_mem_maybe_shared_p): New function.
10124 * config/nvptx/nvptx.md (define_expand "atomic_store<mode>"): New
10127 2022-02-10 Tom de Vries <tdevries@suse.de>
10130 * config/nvptx/nvptx.md (define_insn "sub<mode>3"): Workaround
10131 driver JIT bug by using sub.s16 instead of sub.u16.
10133 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
10135 * config/nvptx/nvptx.md (copysign<mode>3): Allow immediate
10136 floating point constants as operands 1 and/or 2.
10138 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
10141 * config/nvptx/nvptx.md (sel_true<mode>): Fix indentation.
10142 (sel_false<mode>): Likewise.
10143 (define_code_iterator eqne): New code iterator for EQ and NE.
10144 (*selp<mode>_neg_<code>): New define_insn_and_split to optimize
10145 the negation of a selp instruction.
10146 (*selp<mode>_not_<code>): New define_insn_and_split to optimize
10147 the bitwise not of a selp instruction.
10148 (*setcc_int<mode>): Use set instruction for neg:SI of a selp.
10150 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
10152 * config/nvptx/nvptx.md (any_logic): Move code iterator earlier
10153 in machine description.
10154 (logic): Move code attribute earlier in machine description.
10155 (ilogic): New code attribute, like logic but "ior" for IOR.
10156 (and<mode>3, ior<mode>3, xor<mode>3): Delete. Replace with...
10157 (<ilogic><mode>3): New define_insn for HSDIM logic operations.
10158 (<ilogic>bi3): New define_insn for BI mode logic operations.
10159 (define_split): Lower logic operations from integer modes to
10160 BI mode predicate operations.
10162 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
10164 * config/nvptx/nvptx.md (UNSPEC_ISINF): New UNSPEC.
10165 (one_cmplbi2): New define_insn for not.pred.
10166 (mulditi3): New define_expand for signed widening multiply.
10167 (umulditi3): New define_expand for unsigned widening multiply.
10168 (smul<mode>3_highpart): New define_insn for signed highpart mult.
10169 (umul<mode>3_highpart): New define_insn for unsigned highpart mult.
10170 (*smulhi3_highpart_2): Renamed from smulhi3_highpart.
10171 (*smulsi3_highpart_2): Renamed from smulsi3_highpart.
10172 (*umulhi3_highpart_2): Renamed from umulhi3_highpart.
10173 (*umulsi3_highpart_2): Renamed from umulsi3_highpart.
10174 (*setcc<mode>_from_not_bi): New define_insn.
10175 (*setcc_isinf<mode>): New define_insn for testp.infinite.
10176 (isinf<mode>2): New define_expand.
10178 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
10180 * config/nvptx/nvptx.md (cmp<mode>): Renamed from *cmp<mode>.
10181 (setcc<mode>_from_bi): Additionally support QImode.
10182 (extendbi<mode>2): Additionally support QImode.
10183 (zero_extendbi<mode>2): Additionally support QImode.
10184 (any_sbinary, any_ubinary, any_sunary, any_uunary): New code
10185 iterators for signed and unsigned, binary and unary operations.
10186 (<sbinary>qi3, <ubinary>qi3, <sunary>qi2, <uunary>qi2): New
10187 expanders to perform QImode operations using SImode instructions.
10188 (cstoreqi4): New define_expand.
10189 (*ext_truncsi2_qi): New define_insn.
10190 (*zext_truncsi2_qi): New define_insn.
10192 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
10194 * config/nvptx/nvptx.md (*cmpf): New define_insn.
10195 (cstorehf4): New define_expand.
10196 (fmahf4): New define_insn.
10197 (neghf2): New define_insn.
10198 (abshf2): New define_insn.
10200 2022-02-10 Gerald Pfeifer <gerald@pfeifer.com>
10202 * doc/install.texi (Specific): Change the www.bitwizard.nl
10203 reference to use https.
10205 2022-02-10 Marcel Vollweiler <marcel@codesourcery.com>
10207 * gimplify.cc (gimplify_scan_omp_clauses): Added cases for
10208 OMP_CLAUSE_HAS_DEVICE_ADDR
10209 and handle array sections.
10210 (gimplify_adjust_omp_clauses): Added OMP_CLAUSE_HAS_DEVICE_ADDR case.
10211 * omp-low.cc (scan_sharing_clauses): Handle OMP_CLAUSE_HAS_DEVICE_ADDR.
10212 (lower_omp_target): Same.
10213 * tree-core.h (enum omp_clause_code): Same.
10214 * tree-nested.cc (convert_nonlocal_omp_clauses): Same.
10215 (convert_local_omp_clauses): Same.
10216 * tree-pretty-print.cc (dump_omp_clause): Same.
10219 2022-02-10 Eugene Rozenfeld <erozen@microsoft.com>
10221 * auto-profile.cc (afdo_indirect_call): Don't attempt to promote indirect calls
10222 that will result in direct recursive calls.
10224 2022-02-10 Andrew Pinski <apinski@marvell.com>
10227 * config/aarch64/aarch64.cc
10228 (aarch64_sve_expand_vector_init_handle_trailing_constants):
10229 Use CONST0_RTX instead of const0_rtx for the non-constant elements.
10231 2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
10234 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_XSAVE_UNSET):
10235 Also include OPTION_MASK_ISA2_AVX2_UNSET.
10237 2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
10240 * config/i386/i386-expand.cc (ix86_split_idivmod):
10241 Force operands[2] and operands[3] into a register..
10243 2022-02-09 Jeff Law <jeffreyalaw@gmail.com>
10246 * config/v850/v850.md (*v850_fnmasf4): Renamed from fnmasf4.
10247 (*v850_fnmssf4): Renamed from fnmssf4
10249 2022-02-09 Ian Lance Taylor <iant@golang.org>
10251 * godump.cc (go_force_record_alignment): Really name the alignment
10252 field "_" (complete 2021-12-29 change).
10254 2022-02-09 Bill Schmidt <wschmidt@linux.ibm.com>
10256 * config/rs6000/rs6000-builtins.def (VREPLACE_UN_UV2DI): Change
10257 function prototype.
10258 (VREPLACE_UN_UV4SI): Likewise.
10259 (VREPLACE_UN_V2DF): Likewise.
10260 (VREPLACE_UN_V2DI): Likewise.
10261 (VREPLACE_UN_V4SF): Likewise.
10262 (VREPLACE_UN_V4SI): Likewise.
10263 * config/rs6000/rs6000-overload.def (VEC_REPLACE_UN): Change all
10264 function prototypes.
10265 * config/rs6000/vsx.md (vreplace_un_<mode>): Remove define_expand.
10266 (vreplace_un_<mode>): New define_insn.
10268 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
10270 * config/aarch64/iterators.md (VDCSIF): New mode iterator.
10272 (single_wx, single_type, single_dtype, dblq): New mode attributes.
10273 * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Extend
10274 from VDC to VDCSIF.
10275 (store_pair_lanes<mode>): Likewise.
10276 (*aarch64_combine_internal<mode>): Likewise.
10277 (*aarch64_combine_internal_be<mode>): Likewise.
10278 (*aarch64_combinez<mode>): Likewise.
10279 (*aarch64_combinez_be<mode>): Likewise.
10280 * config/aarch64/aarch64.cc (aarch64_classify_address): Handle
10281 8-byte modes for ADDR_QUERY_LDP_STP_N.
10282 (aarch64_print_operand): Likewise for %y.
10284 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
10286 * config/aarch64/aarch64-simd.md (@aarch64_split_simd_mov<mode>):
10287 Use aarch64_combine instead of move_lo/hi_quad. Tabify.
10288 (move_lo_quad_<mode>, aarch64_simd_move_hi_quad_<mode>): Delete.
10289 (aarch64_simd_move_hi_quad_be_<mode>, move_hi_quad_<mode>): Delete.
10290 (vec_pack_trunc_<mode>): Take general_operand elements and use
10291 aarch64_combine rather than move_lo/hi_quad to combine them.
10292 (vec_pack_trunc_df): Likewise.
10294 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
10296 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine):
10298 * config/aarch64/aarch64-simd.md (@aarch64_combinez<mode>): Rename
10300 (*aarch64_combinez<mode>): ...this.
10301 (@aarch64_combinez_be<mode>): Rename to...
10302 (*aarch64_combinez_be<mode>): ...this.
10303 (@aarch64_vec_concat<mode>): New expander.
10304 (aarch64_combine<mode>): Use it.
10305 (@aarch64_simd_combine<mode>): Delete.
10306 * config/aarch64/aarch64.cc (aarch64_split_simd_combine): Delete.
10307 (aarch64_expand_vector_init): Use aarch64_vec_concat.
10309 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
10311 * config/aarch64/predicates.md (aarch64_reg_or_mem_pair_operand):
10313 * config/aarch64/aarch64-simd.md (*aarch64_combine_internal<mode>)
10314 (*aarch64_combine_internal_be<mode>): New patterns.
10316 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
10318 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>)
10319 (move_lo_quad_internal_be_<mode>): Delete.
10320 (move_lo_quad_<mode>): Use aarch64_combine<Vhalf> instead of the above.
10322 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
10324 * config/aarch64/aarch64-protos.h (aarch64_mergeable_load_pair_p):
10326 * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Use
10327 aarch64_mergeable_load_pair_p instead of inline check.
10328 * config/aarch64/aarch64.cc (aarch64_expand_vector_init): Likewise.
10329 (aarch64_check_consecutive_mems): Allow the reversed parameter
10331 (aarch64_mergeable_load_pair_p): New function.
10333 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
10335 * config/aarch64/aarch64-simd.md (vec_set<mode>): Allow the
10336 element to be an aarch64_simd_nonimmediate_operand.
10338 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
10340 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
10341 aarch64_simd_nonimmediate_operand instead of
10342 aarch64_simd_general_operand.
10343 (@aarch64_combinez<mode>): Use nonimmediate_operand instead of
10345 (@aarch64_combinez_be<mode>): Likewise.
10347 2022-02-09 Richard Biener <rguenther@suse.de>
10349 PR middle-end/104464
10350 * gimple-isel.cc (gimple_expand_vec_cond_expr): Postpone
10351 throwing check to after unproblematic replacement.
10353 2022-02-09 Roger Sayle <roger@nextmovesoftware.com>
10355 PR tree-optimization/104420
10356 * match.pd (mult @0 real_zerop): Tweak conditions for constant
10357 folding X*0.0 (or X*-0.0) to HONOR_SIGNED_ZEROS when appropriate.
10359 2022-02-09 Jakub Jelinek <jakub@redhat.com>
10362 * dwarf2out.cc (mangle_referenced_decls): New function.
10363 (tree_add_const_value_attribute): Don't call rtl_for_decl_init if
10364 early_dwarf. Instead walk the initializer and try to mangle vars or
10365 functions referenced from it.
10367 2022-02-09 Andrew MacLeod <amacleod@redhat.com>
10369 PR tree-optimization/104288
10370 * gimple-range-cache.cc (non_null_ref::set_nonnull): New.
10371 (non_null_ref::adjust_range): Move to header.
10372 (ranger_cache::range_of_def): Don't check non-null.
10373 (ranger_cache::entry_range): Don't check non-null.
10374 (ranger_cache::range_on_edge): Check for nonnull on normal edges.
10375 (ranger_cache::update_to_nonnull): New.
10376 (non_null_loadstore): New.
10377 (ranger_cache::block_apply_nonnull): New.
10378 * gimple-range-cache.h (class non_null_ref): Update prototypes.
10379 (non_null_ref::adjust_range): Move to here and inline.
10380 (class ranger_cache): Update prototypes.
10381 * gimple-range-path.cc (path_range_query::range_defined_in_block): Do
10382 not search dominators.
10383 (path_range_query::adjust_for_non_null_uses): Ditto.
10384 * gimple-range.cc (gimple_ranger::range_of_expr): Check on-entry for
10385 def overrides. Do not check nonnull.
10386 (gimple_ranger::range_on_entry): Check dominators for nonnull.
10387 (gimple_ranger::range_on_edge): Check for nonnull on normal edges..
10388 (gimple_ranger::register_side_effects): New.
10389 * gimple-range.h (gimple_ranger::register_side_effects): New.
10390 * tree-vrp.cc (rvrp_folder::fold_stmt): Call register_side_effects.
10392 2022-02-09 Richard Biener <rguenther@suse.de>
10394 PR tree-optimization/104445
10395 PR tree-optimization/102832
10396 * optabs-query.h (can_vec_extract): New.
10397 * optabs-query.cc (can_vec_extract): Likewise.
10398 * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
10399 we can extract a hi/lo part from the larger vector, rework
10400 check iteration from larger to smaller sizes.
10402 2022-02-09 H.J. Lu <hjl.tools@gmail.com>
10406 * config/i386/gnu-property.cc: Include "i386-protos.h".
10407 (file_end_indicate_exec_stack_and_gnu_property): Generate
10408 a GNU_PROPERTY_1_NEEDED note for -mno-direct-extern-access or
10409 nodirect_extern_access attribute.
10410 * config/i386/i386-options.cc
10411 (handle_nodirect_extern_access_attribute): New function.
10412 (ix86_attribute_table): Add nodirect_extern_access attribute.
10413 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): Add a
10415 (ix86_has_no_direct_extern_access): New.
10416 * config/i386/i386.cc (ix86_has_no_direct_extern_access): New.
10417 (ix86_force_load_from_GOT_p): Add a bool argument to indicate
10418 call operand. Force non-call load from GOT for
10419 -mno-direct-extern-access or nodirect_extern_access attribute.
10420 (legitimate_pic_address_disp_p): Avoid copy relocation in PIE
10421 for -mno-direct-extern-access or nodirect_extern_access attribute.
10422 (ix86_print_operand): Pass true to ix86_force_load_from_GOT_p
10424 (asm_preferred_eh_data_format): Use PC-relative format for
10425 -mno-direct-extern-access to avoid copy relocation. Check
10426 ptr_mode instead of TARGET_64BIT when selecting DW_EH_PE_sdata4.
10427 (ix86_binds_local_p): Set ix86_has_no_direct_extern_access to
10428 true for -mno-direct-extern-access or nodirect_extern_access
10429 attribute. Don't treat protected data as extern and avoid copy
10430 relocation on common symbol with -mno-direct-extern-access or
10431 nodirect_extern_access attribute.
10432 (ix86_reloc_rw_mask): New to avoid copy relocation for
10433 -mno-direct-extern-access.
10434 (TARGET_ASM_RELOC_RW_MASK): New.
10435 * config/i386/i386.opt: Add -mdirect-extern-access.
10436 * doc/extend.texi: Document nodirect_extern_access attribute.
10437 * doc/invoke.texi: Document -m[no-]direct-extern-access.
10439 2022-02-09 H.J. Lu <hjl.tools@gmail.com>
10442 * config/i386/i386.cc (ix86_avx_u128_mode_source): New function.
10443 (ix86_avx_u128_mode_needed): Return AVX_U128_ANY for debug INSN.
10444 Call ix86_avx_u128_mode_source to check mode for each component
10447 2022-02-09 liuhongt <hongtao.liu@intel.com>
10450 * config/i386/sse.md (<insn><mode>3): lowpart_subreg
10451 operands[2] from SImode to QImode.
10453 2022-02-09 Richard Biener <rguenther@suse.de>
10455 PR middle-end/104450
10456 * gimple-isel.cc: Pass cfun around.
10457 (+gimple_expand_vec_cond_expr): Do not combine a throwing
10458 comparison with the select.
10460 2022-02-09 Richard Biener <rguenther@suse.de>
10463 * config/i386/i386.cc (ix86_gimple_fold_builtin): Guard shift
10464 folding for NULL LHS.
10466 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
10468 PR rtl-optimization/104198
10469 PR rtl-optimization/104153
10470 * ifcvt.cc (noce_convert_multiple_sets_1): Copy rtx instead of
10471 using it directly. Rework comparison handling and always
10472 perform a second pass.
10474 2022-02-08 Jakub Jelinek <jakub@redhat.com>
10477 * config/rs6000/rs6000.cc (vspltis_shifted): Return false also if
10478 split1 pass has finished already.
10480 2022-02-08 Bill Schmidt <wschmidt@linux.ibm.com>
10482 * config/rs6000/rs6000-builtins.def (VMSUMCUD): New.
10483 * config/rs6000/rs6000-overload.def (VEC_MSUMC): New.
10484 * config/rs6000/vsx.md (UNSPEC_VMSUMCUD): New constant.
10485 (vmsumcud): New define_insn.
10487 2022-02-08 Tom de Vries <tdevries@suse.de>
10489 * config/nvptx/nvptx-opts.h (enum ptx_isa): Add PTX_ISA_SM70.
10490 * config/nvptx/nvptx.h (TARGET_SM70): Define.
10492 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
10494 * config/s390/s390.cc (s390_rtx_costs): Increase costs for load
10496 * config/s390/s390.md: Use paradoxical subreg.
10498 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
10500 * combine.cc (reg_subword_p): Check for paradoxical subreg.
10502 2022-02-08 Tom de Vries <tdevries@suse.de>
10505 * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_3_0
10506 and PTX_VERSION_4_2.
10507 * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm)
10508 (default_ptx_version_option, ptx_version_to_string)
10509 (sm_version_to_string, handle_ptx_version_option): New function.
10510 (nvptx_option_override): Call handle_ptx_version_option.
10511 (nvptx_file_start): Use ptx_version_to_string and sm_version_to_string.
10512 * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>")
10513 (define_insn "nvptx_vote_ballot"): Use TARGET_PTX_6_0.
10514 * config/nvptx/nvptx.opt (mptx): Remove 'Init'.
10516 2022-02-08 Maciej W. Rozycki <macro@embecosm.com>
10518 * doc/install.texi (Configuration): Document `--with-isa-spec='
10520 * doc/invoke.texi (Option Summary): List `-misa-spec=' RISC-V
10522 (RISC-V Options): Document it.
10524 2022-02-08 Maciej W. Rozycki <macro@embecosm.com>
10526 * config/riscv/t-riscv (riscv-sr.o): Add $(TM_H) dependency.
10528 2022-02-08 Tom de Vries <tdevries@suse.de>
10530 * config/nvptx/nvptx.cc (write_fn_proto_1): Handle 'main (int)'.
10532 2022-02-08 Tom de Vries <tdevries@suse.de>
10535 * config/nvptx/nvptx-protos.h (nvptx_mem_local_p): Declare.
10536 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Assert that
10537 change is validated.
10538 (nvptx_mem_local_p): New function.
10539 * config/nvptx/nvptx.md: Use nvptx_mem_local_p.
10540 (define_c_enum "unspecv"): Add UNSPECV_CAS_LOCAL.
10541 (define_insn "atomic_compare_and_swap<mode>_1_local"): New
10542 non-atomic, non-predicable define_insn, factored out of ...
10543 (define_insn "atomic_compare_and_swap<mode>_1"): ... here.
10544 Make predicable again.
10545 (define_expand "atomic_compare_and_swap<mode>"): Use
10546 atomic_compare_and_swap<mode>_1_local.
10548 2022-02-08 liuhongt <hongtao.liu@intel.com>
10550 PR rtl-optimization/104059
10551 * regcprop.cc (copyprop_hardreg_forward_1): Don't propagate
10552 for a more expensive reg-reg move.
10554 2022-02-07 Tamar Christina <tamar.christina@arm.com>
10556 * config/arm/arm_neon.h (vusdotq_s32, vusdot_laneq_s32,
10557 vusdotq_laneq_s32, vsudot_laneq_s32, vsudotq_laneq_s32): New
10558 * config/arm/arm_neon_builtins.def (usdot): Add V16QI.
10559 (usdot_laneq, sudot_laneq): New.
10560 * config/arm/neon.md (neon_<sup>dot_laneq<vsi2qi>): New.
10561 (neon_<sup>dot_lane<vsi2qi>): Remote unneeded code.
10563 2022-02-07 Tamar Christina <tamar.christina@arm.com>
10565 * config/arm/arm_neon.h (vdot_laneq_u32, vdotq_laneq_u32,
10566 vdot_laneq_s32, vdotq_laneq_s32): New.
10567 * config/arm/arm_neon_builtins.def (sdot_laneq, udot_laneq): New.
10568 * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
10569 (<sup>dot_prod<vsi2qi>): Re-order rtl.
10570 (neon_<sup>dot_lane<vsi2qi>): Fix rtl order and endiannes.
10571 (neon_<sup>dot_laneq<vsi2qi>): New.
10573 2022-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
10576 * config/s390/s390.cc (s390_can_inline_p): Accept a few more flags
10577 if always_inline is set. Don't inline when tune differs without
10580 2022-02-07 Richard Biener <rguenther@suse.de>
10582 PR middle-end/104402
10583 * gimple-expr.cc (is_gimple_condexpr): _Complex typed
10584 compares are not valid.
10585 * tree-cfg.cc (verify_gimple_assign_ternary): For COND_EXPR
10586 check is_gimple_condexpr.
10588 2022-02-07 Kewen Lin <linkw@linux.ibm.com>
10591 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Move the
10592 hunk affecting VSX and ALTIVEC to appropriate place.
10594 2022-02-07 Kewen Lin <linkw@linux.ibm.com>
10597 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Disable
10598 MMA if !TARGET_VSX.
10600 2022-02-06 Jakub Jelinek <jakub@redhat.com>
10604 * fold-const.h (folding_initializer): Adjust comment.
10605 (folding_cxx_constexpr): Declare.
10606 * fold-const.cc (folding_initializer): Adjust comment.
10607 (folding_cxx_constexpr): New variable.
10608 (address_compare): Restrict the decl vs. STRING_CST
10609 or vice versa or STRING_CST vs. STRING_CST or
10610 is_global_var != is_global_var optimizations to !folding_cxx_constexpr.
10611 Punt for FUNCTION_DECLs with non-zero offsets. If folding_initializer,
10612 assume non-aliased functions have non-zero size and have different
10613 addresses. For folding_cxx_constexpr, punt on comparisons of start
10614 of some object and end of another one, regardless whether it is a decl
10615 or string literal. Also punt for folding_cxx_constexpr on
10616 STRING_CST vs. STRING_CST comparisons if the two literals could be
10619 2022-02-05 Jakub Jelinek <jakub@redhat.com>
10621 PR tree-optimization/104389
10622 * match.pd (x * 0 -> 0): Punt if x maybe infinite and NaNs are
10625 2022-02-05 Kito Cheng <kito.cheng@sifive.com>
10627 * configure.ac: Fix detection for zifencei support.
10628 * configure: Regenerate.
10630 2022-02-05 Kito Cheng <kito.cheng@sifive.com>
10633 * config.gcc (riscv*-*-*): Normalize the with_isa_spec value.
10634 (all_defaults): Add isa_spec.
10635 * config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Add isa_spec.
10637 2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com>
10639 * config/rs6000/rs6000-c.cc (resolve_vec_mul): Accept args and types
10640 parameters instead of arglist and nargs. Simplify accordingly. Remove
10641 unnecessary test for argument count mismatch.
10642 (resolve_vec_cmpne): Likewise.
10643 (resolve_vec_adde_sube): Likewise.
10644 (resolve_vec_addec_subec): Likewise.
10645 (altivec_resolve_overloaded_builtin): Move overload special handling
10646 after the gathering of arguments into args[] and types[] and the test
10647 for correct number of arguments. Don't perform the test for correct
10648 number of arguments for certain special cases. Call the other special
10649 cases with args and types instead of arglist and nargs.
10651 2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com>
10654 * doc/extend.texi (Basic PowerPC Built-in Functions Available on ISA
10655 3.1): Provide consistent type names. Remove unnecessary semicolons.
10656 Fix bad line breaks.
10658 2022-02-04 Jakub Jelinek <jakub@redhat.com>
10661 * config/rs6000/rs6000.cc (rs6000_mangle_decl_assembler_name): Also
10662 adjust mangling of __builtin*printf_chk.
10664 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
10666 * doc/cpp.texi (Variadic Macros): Replace C++2a with C++20.
10668 2022-02-04 Richard Biener <rguenther@suse.de>
10669 Bin Cheng <bin.cheng@linux.alibaba.com>
10671 PR tree-optimization/100499
10672 * fold-const.h (multiple_of_p): Add nowrap parameter, defaulted
10674 * fold-const.cc (multiple_of_p): Likewise. Honor it for
10675 MULT_EXPR, PLUS_EXPR and MINUS_EXPR and pass it along,
10676 switching to false for conversions.
10677 * tree-ssa-loop-niter.cc (number_of_iterations_ne): Do not
10678 claim the outermost expression does not wrap when calling
10679 multiple_of_p. Refactor the check done to check the
10680 original IV, avoiding a bias that might wrap.
10682 2022-02-04 Richard Biener <rguenther@suse.de>
10684 * fold-const.cc (multiple_of_p): Re-write and move LSHIFT_EXPR
10687 2022-02-04 Eric Botcazou <ebotcazou@adacore.com>
10690 * dwarf2out.cc (dwarf2out_finish): Empty base_types.
10691 (dwarf2out_early_finish): Likewise.
10693 2022-02-04 Eric Botcazou <ebotcazou@adacore.com>
10695 PR tree-optimization/104356
10696 * match.pd (X / bool_range_Y is X): Add guard.
10697 (X / X is one): Likewise.
10698 (X / abs (X) is X < 0 ? -1 : 1): Likewise.
10699 (X / -X is -1): Likewise.
10700 (1 / X -> X == 1): Likewise.
10702 2022-02-04 Richard Biener <rguenther@suse.de>
10704 PR tree-optimization/103641
10705 * tree-vect-patterns.cc (vect_synth_mult_by_constant):
10706 Pass the vector mode to choose_mult_variant.
10708 2022-02-04 Roger Sayle <roger@nextmovesoftware.com>
10710 PR rtl-optimization/101885
10711 * combine.cc (try_combine): When splitting a parallel into two
10712 sequential sets, check not only that the first doesn't clobber
10713 the second but also that the second doesn't clobber the first.
10715 2022-02-04 Richard Biener <rguenther@suse.de>
10717 PR middle-end/90348
10718 PR middle-end/104092
10719 * tree-core.h (clobber_kind): New enum.
10720 (tree_base::u::bits::address_space): Document use in CONSTRUCTORs.
10721 * tree.h (CLOBBER_KIND): Add.
10722 (build_clobber): Add clobber kind argument, defaulted to
10724 * tree.cc (build_clobber): Likewise.
10725 * gimple.h (gimple_clobber_p): New overload with specified kind.
10726 * tree-streamer-in.cc (streamer_read_tree_bitfields): Stream
10728 * tree-streamer-out.cc (streamer_write_tree_bitfields):
10730 * tree-pretty-print.cc (dump_generic_node): Mark EOL CLOBBERs.
10731 * gimplify.cc (gimplify_bind_expr): Build storage end-of-life clobbers
10733 (gimplify_target_expr): Likewise.
10734 * tree-inline.cc (expand_call_inline): Likewise.
10735 * tree-ssa-ccp.cc (insert_clobber_before_stack_restore): Likewise.
10736 * gimple-ssa-warn-access.cc (pass_waccess::check_stmt): Only treat
10737 CLOBBER_EOL clobbers as ending lifetime of storage.
10739 2022-02-04 Martin Sebor <msebor@redhat.com>
10741 * pointer-query.h (pointer_query::cache_type): Use auto_vec for auto
10744 2022-02-03 Martin Sebor <msebor@redhat.com>
10746 PR middle-end/104260
10747 * passes.def (pass_warn_access): Adjust pass placement.
10749 2022-02-03 Uroš Bizjak <ubizjak@gmail.com>
10752 * config/i386/i386.cc (find_drap_reg): For 32bit targets
10753 return DI_REG if function uses __builtin_eh_return.
10755 2022-02-03 Martin Sebor <msebor@redhat.com>
10757 * gimple-ssa-warn-restrict.cc (class pass_wrestrict): Outline ctor.
10758 (pass_wrestrict::m_ptr_qry): New member.
10759 (wrestrict_walk): Rename...
10760 (pass_wrestrict::check_block): ...to this.
10761 (pass_wrestrict::execute): Set up and tear down pointer_query and
10763 (builtin_memref::builtin_memref): Change ctor argument. Simplify.
10764 (builtin_access::builtin_access): Same.
10765 (builtin_access::m_ptr_qry): New member.
10766 (check_call): Rename...
10767 (pass_wrestrict::check_call): ...to this.
10768 (check_bounds_or_overlap): Change argument.
10769 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Same.
10771 2022-02-03 Martin Sebor <msebor@redhat.com>
10773 * gimple-array-bounds.cc (array_bounds_checker::array_bounds_checker):
10775 (array_bounds_checker::get_value_range): Use new member.
10776 (array_bounds_checker::check_mem_ref): Same.
10777 * gimple-array-bounds.h (array_bounds_checker::array_bounds_checker):
10779 (array_bounds_checker::m_ptr_query): New member.
10781 2022-02-03 Martin Sebor <msebor@redhat.com>
10783 * gimple-ssa-warn-access.cc (pass_waccess::pass_waccess): Remove
10784 pointer_query cache.
10785 * pointer-query.cc (pointer_query::pointer_query): Remove cache
10786 argument. Zero-initialize new cache member.
10787 (pointer_query::get_ref): Replace cache pointer with direct access.
10788 (pointer_query::put_ref): Same.
10789 (pointer_query::flush_cache): Same.
10790 (pointer_query::dump): Same.
10791 * pointer-query.h (class pointer_query): Remove cache argument from
10792 ctor. Change cache pointer to cache subobject member.
10793 * tree-ssa-strlen.cc: Remove pointer_query cache.
10795 2022-02-03 Martin Sebor <msebor@redhat.com>
10797 PR tree-optimization/104119
10798 * gimple-ssa-sprintf.cc (struct directive): Change argument type.
10799 (format_none): Same.
10800 (format_percent): Same.
10801 (format_integer): Same.
10802 (format_floating): Same.
10803 (get_string_length): Same.
10804 (format_character): Same.
10805 (format_string): Same.
10806 (format_plain): Same.
10807 (format_directive): Same.
10808 (compute_format_length): Same.
10809 (handle_printf_call): Same.
10810 * tree-ssa-strlen.cc (get_range_strlen_dynamic): Same. Call
10812 (get_range_strlen_phi): Same.
10813 (get_maxbound): New function.
10814 (strlen_pass::get_len_or_size): Adjust to parameter change.
10815 * tree-ssa-strlen.h (get_range_strlen_dynamic): Change argument type.
10817 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
10820 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Remove
10821 test for !rs6000_fold_gimple.
10822 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
10823 * config/rs6000/rs6000.opt (mfold-gimple): Remove.
10825 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
10828 * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Handle
10829 endianness for vclzlsbb and vctzlsbb.
10830 * config/rs6000/rs6000-builtins.def (VCLZLSBB_V16QI): Change
10831 default pattern and indicate a different pattern will be used for
10833 (VCLZLSBB_V4SI): Likewise.
10834 (VCLZLSBB_V8HI): Likewise.
10835 (VCTZLSBB_V16QI): Likewise.
10836 (VCTZLSBB_V4SI): Likewise.
10837 (VCTZLSBB_V8HI): Likewise.
10839 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
10841 * config.gcc (powerpc*-*-*): Add rs6000-builtin.o to extra_objs.
10842 * config/rs6000/rs6000-builtin.cc: New file, containing code moved
10844 * config/rs6000/rs6000-call.cc (cpu_is_info): Move to
10846 (cpu_supports_info): Likewise.
10847 (rs6000_type_string): Likewise.
10848 (altivec_expand_predicate_builtin): Likewise.
10849 (rs6000_htm_spr_icode): Likewise.
10850 (altivec_expand_vec_init_builtin): Likewise.
10851 (get_element_number): Likewise.
10852 (altivec_expand_vec_set_builtin): Likewise.
10853 (altivec_expand_vec_ext_builtin): Likewise.
10854 (rs6000_invalid_builtin): Likewise.
10855 (rs6000_fold_builtin): Likewise.
10856 (fold_build_vec_cmp): Likewise.
10857 (fold_compare_helper): Likewise.
10858 (map_to_integral_tree_type): Likewise.
10859 (fold_mergehl_helper): Likewise.
10860 (fold_mergeeo_helper): Likewise.
10861 (rs6000_builtin_valid_without_lhs): Likewise.
10862 (rs6000_builtin_is_supported): Likewise.
10863 (rs6000_gimple_fold_mma_builtin): Likewise.
10864 (rs6000_gimple_fold_builtin): Likewise.
10865 (rs6000_expand_ldst_mask): Likewise.
10866 (cpu_expand_builtin): Likewise.
10867 (elemrev_icode): Likewise.
10868 (ldv_expand_builtin): Likewise.
10869 (lxvrse_expand_builtin): Likewise.
10870 (lxvrze_expand_builtin): Likewise.
10871 (stv_expand_builtin): Likewise.
10872 (mma_expand_builtin): Likewise.
10873 (htm_spr_num): Likewise.
10874 (htm_expand_builtin): Likewise.
10875 (rs6000_expand_builtin): Likewise.
10876 (rs6000_vector_type): Likewise.
10877 (rs6000_init_builtins): Likewise. Remove initialization of
10878 builtin_mode_to_type entries.
10879 (rs6000_builtin_decl): Move to rs6000-builtin.cc.
10880 * config/rs6000/rs6000.cc (rs6000_builtin_mask_for_load): New
10881 external declaration.
10882 (rs6000_builtin_md_vectorized_function): Likewise.
10883 (rs6000_builtin_reciprocal): Likewise.
10884 (altivec_builtin_mask_for_load): Move to rs6000-builtin.cc.
10885 (rs6000_builtin_types): Likewise.
10886 (builtin_mode_to_type): Remove.
10887 (rs6000_builtin_mask_for_load): Move to rs6000-builtin.cc. Remove
10889 (rs6000_builtin_md_vectorized_function): Likewise.
10890 (rs6000_builtin_reciprocal): Likewise.
10891 * config/rs6000/rs6000.h (builtin_mode_to_type): Remove.
10892 * config/rs6000/t-rs6000 (rs6000-builtin.o): New target.
10894 2022-02-03 Richard Biener <rguenther@suse.de>
10897 * tree-nrv.cc (pass_nrv::execute): Remove tieing result and found
10898 together via DECL_ABSTRACT_ORIGIN.
10900 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
10902 * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Revise error
10903 message for RES_BITS case.
10905 2022-02-03 Aldy Hernandez <aldyh@redhat.com>
10907 * gimple-range-fold.cc (fur_list::fur_list): Set m_local[1] correctly.
10909 2022-02-03 Jakub Jelinek <jakub@redhat.com>
10911 * config/arm/arm.opt (mfix-cortex-a57-aes-1742098,
10912 mfix-cortex-a72-aes-1655431): Ensure description ends with full stop.
10914 2022-02-03 Aldy Hernandez <aldyh@redhat.com>
10916 * cfganal.cc (verify_marked_backedges): New.
10917 * cfganal.h (verify_marked_backedges): New.
10918 * gimple-range-path.cc (path_range_query::path_range_query):
10919 Verify freshness of back edges.
10920 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
10921 mark_dfs_back_edges.
10922 * tree-ssa-threadbackward.cc (back_threader::back_threader): Move
10923 path_range_query construction after backedges have been
10926 2022-02-03 Richard Sandiford <richard.sandiford@arm.com>
10928 * config/aarch64/aarch64-simd.md (movmisalign<mode>): Extend from
10931 2022-02-03 Richard Sandiford <richard.sandiford@arm.com>
10933 * config/aarch64/iterators.md (VALL_F16MOV): Delete.
10934 * config/aarch64/aarch64-simd.md (mov<mode>): Use VALL_F16 instead
10937 2022-02-03 Martin Liska <mliska@suse.cz>
10939 * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
10940 Change subject and object in the error message.
10941 * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
10944 2022-02-03 Martin Liska <mliska@suse.cz>
10946 * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
10947 Use the error message for i386 target.
10949 2022-02-03 Jakub Jelinek <jakub@redhat.com>
10951 PR tree-optimization/104334
10952 * range-op.cc (range_operator::wi_fold_in_parts): Change lh_range
10953 and rh_range type to widest_int and subtract in widest_int. Remove
10954 ov_rh, ov_lh and sign vars, always perform comparisons as signed
10955 and use >, < and == operators for it.
10957 2022-02-03 Martin Sebor <msebor@redhat.com>
10959 * common.opt (-Wuse-after-free): Correct typos.
10961 2022-02-02 David Malcolm <dmalcolm@redhat.com>
10964 * doc/invoke.texi (-ftrivial-auto-var-init=): Add reference to
10965 -Wanalyzer-use-of-uninitialized-value to paragraph documenting that
10966 -ftrivial-auto-var-init= doesn't suppress warnings.
10968 2022-02-02 Martin Liska <mliska@suse.cz>
10970 * dwarf2out.cc (TEXT_SECTION_NAME): Remove unused macro.
10972 2022-02-02 Bernd Kuhls <bernd.kuhls@t-online.de>
10975 * config/or1k/linux.h (CPP_SPEC): Define.
10977 2022-02-02 Tamar Christina <tamar.christina@arm.com>
10979 PR tree-optimization/102819
10980 PR tree-optimization/103169
10981 * config/arm/vec-common.md (cml<fcmac1><conj_op><mode>4): Use
10984 2022-02-02 Tamar Christina <tamar.christina@arm.com>
10986 PR tree-optimization/102819
10987 PR tree-optimization/103169
10988 * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4): Use
10990 * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4): Likewise.
10992 2022-02-02 Tamar Christina <tamar.christina@arm.com>
10994 PR tree-optimization/102819
10995 PR tree-optimization/103169
10996 * doc/md.texi: Update docs for cfms, cfma.
10997 * tree-data-ref.h (same_data_refs): Accept optional offset.
10998 * tree-vect-slp-patterns.cc (is_linear_load_p): Fix issue with repeating
11000 (vect_normalize_conj_loc): Remove.
11001 (is_eq_or_top): Change to take two nodes.
11002 (enum _conj_status, compatible_complex_nodes_p,
11003 vect_validate_multiplication): New.
11004 (class complex_add_pattern, complex_add_pattern::matches,
11005 complex_add_pattern::recognize, class complex_mul_pattern,
11006 complex_mul_pattern::recognize, class complex_fms_pattern,
11007 complex_fms_pattern::recognize, class complex_operations_pattern,
11008 complex_operations_pattern::recognize, addsub_pattern::recognize): Pass
11010 (complex_fms_pattern::matches, complex_mul_pattern::matches): Pass new
11011 cache and use new validation code.
11012 * tree-vect-slp.cc (vect_match_slp_patterns_2, vect_match_slp_patterns,
11013 vect_analyze_slp): Pass along cache.
11014 (compatible_calls_p): Expose.
11015 * tree-vectorizer.h (compatible_calls_p, slp_node_hash,
11016 slp_compat_nodes_map_t): New.
11017 (class vect_pattern): Update signatures include new cache.
11019 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
11021 * config/cris/cris.cc (cris_preferred_reload_class): Reject
11022 "eliminated" registers and small-enough constants unless
11023 reloaded into a class that is a subset of GENERAL_REGS.
11024 * config/cris/cris.md (attribute "cpu_variant"): New.
11025 (attribute "enabled"): Conditionalize on a matching attribute
11026 cpu_variant, if specified.
11027 ("*movsi_internal<setcc><setnz><setnzvc>"): For moves to and from
11028 memory, add cpu-variant-enabled variants for "r" alternatives on
11029 the far side of the "x" alternatives, preferring the "x" ones
11030 only for variants where MOF is present (in addition to SRP).
11032 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
11034 * config/cris/cris.cc (cris_register_move_cost): Remove special pre-ira
11035 extra cost for ALL_REGS.
11037 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
11039 * config/cris/constraints.md (define_register_constraint "b"): Now
11041 * config/cris/cris.md (CRIS_ACR_REGNUM): Remove.
11042 * config/cris/cris.h: (reg_class, REG_CLASS_NAMES)
11043 (REG_CLASS_CONTENTS): Remove ACR_REGS, SPEC_ACR_REGS, GENNONACR_REGS,
11044 and SPEC_GENNONACR_REGS.
11045 * config/cris/cris.cc (cris_preferred_reload_class): Don't mention
11046 ACR_REGS and return GENERAL_REGS instead of GENNONACR_REGS.
11048 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
11050 * config/cris/cris.md ("*movsi_internal<setcc><setnz><setnzvc>"):
11051 Conditionalize on (sub-)register operands or operand 1 being 0.
11053 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
11055 * config/cris/cris.h (TARGET_DEFAULT): Don't include MASK_MUL_BUG.
11056 (MUL_BUG_ASM_DEFAULT): New macro.
11057 (MAYBE_AS_NO_MUL_BUG_ABORT): Define in terms of MUL_BUG_ASM_DEFAULT.
11058 * doc/invoke.texi (CRIS Options, -mmul-bug-workaround): Adjust
11061 2022-02-01 Eugene Rozenfeld <erozen@microsoft.com>
11063 * opts.cc (common_handle_option): Don't set param_early_inliner_max_iterations
11066 2022-02-01 Eugene Rozenfeld <erozen@microsoft.com>
11068 * auto-profile.cc (auto_profile): Hard-code the number of iterations (10).
11070 2022-02-01 Andrew Pinski <apinski@marvell.com>
11072 * doc/install.texi:
11074 2022-02-01 Ilya Leoshkevich <iii@linux.ibm.com>
11076 * config/s390/s390.cc (s390_code_end): Do not switch back to
11079 2022-02-01 Jakub Jelinek <jakub@redhat.com>
11082 * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Append rs6000-builtins.h
11083 rather than $(srcdir)/config/rs6000/rs6000-builtins.def.
11084 * config/rs6000/rs6000-gen-builtins.cc (write_decls): Don't use
11085 GTY((user)) for struct bifdata and struct ovlddata. Instead add
11086 GTY((skip(""))) to members with pointer and enum types that don't need
11087 to be tracked. Add GTY(()) to rs6000_builtin_info and rs6000_instance_info
11088 declarations. Don't emit gt_ggc_mx and gt_pch_nx declarations.
11089 (write_extern_fntype, write_fntype): Remove.
11090 (write_fntype_init): Emit the fntype vars as automatic vars instead
11091 of file scope ones.
11092 (write_header_file): Don't iterate with write_extern_fntype.
11093 (write_init_file): Don't iterate with write_fntype. Don't emit
11094 gt_ggc_mx and gt_pch_nx definitions.
11096 2022-02-01 Jason Merrill <jason@redhat.com>
11098 * tree.h (struct tree_vec_map_cache_hasher): Move from...
11099 * tree.cc (struct tree_vec_map_cache_hasher): ...here.
11101 2022-02-01 Tom de Vries <tdevries@suse.de>
11103 * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_uniform_warp_check.
11104 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
11105 UNSPECV_UNIFORM_WARP_CHECK.
11106 (define_insn "nvptx_uniform_warp_check"): New define_insn.
11108 2022-02-01 Tom de Vries <tdevries@suse.de>
11110 * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_warpsync.
11111 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
11113 (define_insn "nvptx_warpsync"): New define_insn.
11115 2022-02-01 Tom de Vries <tdevries@suse.de>
11117 * config/nvptx/nvptx.opt (mptx): Set to PTX_VERSION_6_3 by default.
11119 2022-02-01 Tom de Vries <tdevries@suse.de>
11121 * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_6_0.
11122 * config/nvptx/nvptx.h (TARGET_PTX_6_0): New macro.
11123 * config/nvptx/nvptx.md (define_insn "nvptx_barsync"): Use barrier
11124 insn for TARGET_PTX_6_0.
11126 2022-02-01 Tom de Vries <tdevries@suse.de>
11129 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle nop
11132 2022-02-01 Tom de Vries <tdevries@suse.de>
11134 * config/nvptx/nvptx.md (define_insn "atomic_compare_and_swap<mode>_1")
11135 (define_insn "atomic_exchange<mode>")
11136 (define_insn "atomic_fetch_add<mode>")
11137 (define_insn "atomic_fetch_addsf")
11138 (define_insn "atomic_fetch_<logic><mode>"): Output non-atomic version
11139 if memory operands is frame-relative.
11141 2022-02-01 Tom de Vries <tdevries@suse.de>
11143 * config/nvptx/nvptx.cc (enum nvptx_builtins): Add
11144 NVPTX_BUILTIN_MEMBAR_GL and NVPTX_BUILTIN_MEMBAR_CTA.
11146 (nvptx_init_builtins): Add MEMBAR_GL and MEMBAR_CTA.
11147 (nvptx_expand_builtin): Handle NVPTX_BUILTIN_MEMBAR_GL and
11148 NVPTX_BUILTIN_MEMBAR_CTA.
11149 (nvptx_lockfull_update): Add level parameter. Emit barriers.
11150 (nvptx_reduction_update, nvptx_goacc_reduction_fini): Update call to
11151 nvptx_lockfull_update.
11152 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
11154 (define_expand "nvptx_membar_gl"): New expand.
11155 (define_insn "*nvptx_membar_gl"): New insn.
11157 2022-02-01 Martin Liska <mliska@suse.cz>
11159 * doc/install.texi: Remove option for GCC < 4.8.
11161 2022-02-01 Jakub Jelinek <jakub@redhat.com>
11163 PR middle-end/104307
11164 * tree-vect-generic.cc (expand_vector_comparison): Don't push debug
11165 stmts to uses vector, just set vec_cond_expr_only to false for
11166 non-VEC_COND_EXPRs instead of pushing them into uses. Treat
11167 VEC_COND_EXPRs that use lhs not just in rhs1, but rhs2 or rhs3 too
11168 like non-VEC_COND_EXPRs.
11170 2022-02-01 Bill Schmidt <wschmidt@linux.ibm.com>
11172 * config/rs6000/rs6000-overload.def (VEC_ABSD): Remove #ifdef token.
11173 (VEC_BLENDV): Likewise.
11174 (VEC_BPERM): Likewise.
11175 (VEC_CFUGE): Likewise.
11176 (VEC_CIPHER_BE): Likewise.
11177 (VEC_CIPHERLAST_BE): Likewise.
11178 (VEC_CLRL): Likewise.
11179 (VEC_CLRR): Likewise.
11180 (VEC_CMPNEZ): Likewise.
11181 (VEC_CNTLZ): Likewise.
11182 (VEC_CNTLZM): Likewise.
11183 (VEC_CNTTZM): Likewise.
11184 (VEC_CNTLZ_LSBB): Likewise.
11185 (VEC_CNTM): Likewise.
11186 (VEC_CNTTZ): Likewise.
11187 (VEC_CNTTZ_LSBB): Likewise.
11188 (VEC_CONVERT_4F32_8F16): Likewise.
11189 (VEC_DIV): Likewise.
11190 (VEC_DIVE): Likewise.
11191 (VEC_EQV): Likewise.
11192 (VEC_EXPANDM): Likewise.
11193 (VEC_EXTRACT_FP_FROM_SHORTH): Likewise.
11194 (VEC_EXTRACT_FP_FROM_SHORTL): Likewise.
11195 (VEC_EXTRACTH): Likewise.
11196 (VEC_EXTRACTL): Likewise.
11197 (VEC_EXTRACTM): Likewise.
11198 (VEC_EXTRACT4B): Likewise.
11199 (VEC_EXTULX): Likewise.
11200 (VEC_EXTURX): Likewise.
11201 (VEC_FIRSTMATCHINDEX): Likewise.
11202 (VEC_FIRSTMACHOREOSINDEX): Likewise.
11203 (VEC_FIRSTMISMATCHINDEX): Likewise.
11204 (VEC_FIRSTMISMATCHOREOSINDEX): Likewise.
11205 (VEC_GB): Likewise.
11206 (VEC_GENBM): Likewise.
11207 (VEC_GENHM): Likewise.
11208 (VEC_GENWM): Likewise.
11209 (VEC_GENDM): Likewise.
11210 (VEC_GENQM): Likewise.
11211 (VEC_GENPCVM): Likewise.
11212 (VEC_GNB): Likewise.
11213 (VEC_INSERTH): Likewise.
11214 (VEC_INSERTL): Likewise.
11215 (VEC_INSERT4B): Likewise.
11216 (VEC_LXVL): Likewise.
11217 (VEC_MERGEE): Likewise.
11218 (VEC_MERGEO): Likewise.
11219 (VEC_MOD): Likewise.
11220 (VEC_MSUB): Likewise.
11221 (VEC_MULH): Likewise.
11222 (VEC_NAND): Likewise.
11223 (VEC_NCIPHER_BE): Likewise.
11224 (VEC_NCIPHERLAST_BE): Likewise.
11225 (VEC_NEARBYINT): Likewise.
11226 (VEC_NMADD): Likewise.
11227 (VEC_ORC): Likewise.
11228 (VEC_PDEP): Likewise.
11229 (VEC_PERMX): Likewise.
11230 (VEC_PEXT): Likewise.
11231 (VEC_POPCNT): Likewise.
11232 (VEC_PARITY_LSBB): Likewise.
11233 (VEC_REPLACE_ELT): Likewise.
11234 (VEC_REPLACE_UN): Likewise.
11235 (VEC_REVB): Likewise.
11236 (VEC_RINT): Likewise.
11237 (VEC_RLMI): Likewise.
11238 (VEC_RLNM): Likewise.
11239 (VEC_SBOX_BE): Likewise.
11240 (VEC_SIGNEXTI): Likewise.
11241 (VEC_SIGNEXTLL): Likewise.
11242 (VEC_SIGNEXTQ): Likewise.
11243 (VEC_SLDB): Likewise.
11244 (VEC_SLV): Likewise.
11245 (VEC_SPLATI): Likewise.
11246 (VEC_SPLATID): Likewise.
11247 (VEC_SPLATI_INS): Likewise.
11248 (VEC_SQRT): Likewise.
11249 (VEC_SRDB): Likewise.
11250 (VEC_SRV): Likewise.
11251 (VEC_STRIL): Likewise.
11252 (VEC_STRIL_P): Likewise.
11253 (VEC_STRIR): Likewise.
11254 (VEC_STRIR_P): Likewise.
11255 (VEC_STXVL): Likewise.
11256 (VEC_TERNARYLOGIC): Likewise.
11257 (VEC_TEST_LSBB_ALL_ONES): Likewise.
11258 (VEC_TEST_LSBB_ALL_ZEROS): Likewise.
11259 (VEC_VEE): Likewise.
11260 (VEC_VES): Likewise.
11261 (VEC_VIE): Likewise.
11262 (VEC_VPRTYB): Likewise.
11263 (VEC_VSCEEQ): Likewise.
11264 (VEC_VSCEGT): Likewise.
11265 (VEC_VSCELT): Likewise.
11266 (VEC_VSCEUO): Likewise.
11267 (VEC_VSEE): Likewise.
11268 (VEC_VSES): Likewise.
11269 (VEC_VSIE): Likewise.
11270 (VEC_VSTDC): Likewise.
11271 (VEC_VSTDCN): Likewise.
11272 (VEC_VTDC): Likewise.
11273 (VEC_XL): Likewise.
11274 (VEC_XL_BE): Likewise.
11275 (VEC_XL_LEN_R): Likewise.
11276 (VEC_XL_SEXT): Likewise.
11277 (VEC_XL_ZEXT): Likewise.
11278 (VEC_XST): Likewise.
11279 (VEC_XST_BE): Likewise.
11280 (VEC_XST_LEN_R): Likewise.
11281 (VEC_XST_TRUNC): Likewise.
11282 (VEC_XXPERMDI): Likewise.
11283 (VEC_XXSLDWI): Likewise.
11284 (VEC_TSTSFI_EQ_DD): Likewise.
11285 (VEC_TSTSFI_EQ_TD): Likewise.
11286 (VEC_TSTSFI_GT_DD): Likewise.
11287 (VEC_TSTSFI_GT_TD): Likewise.
11288 (VEC_TSTSFI_LT_DD): Likewise.
11289 (VEC_TSTSFI_LT_TD): Likewise.
11290 (VEC_TSTSFI_OV_DD): Likewise.
11291 (VEC_TSTSFI_OV_TD): Likewise.
11292 (VEC_VADDCUQ): Likewise.
11293 (VEC_VADDECUQ): Likewise.
11294 (VEC_VADDEUQM): Likewise.
11295 (VEC_VADDUDM): Likewise.
11296 (VEC_VADDUQM): Likewise.
11297 (VEC_VBPERMQ): Likewise.
11298 (VEC_VCLZB): Likewise.
11299 (VEC_VCLZD): Likewise.
11300 (VEC_VCLZH): Likewise.
11301 (VEC_VCLZW): Likewise.
11302 (VEC_VCTZB): Likewise.
11303 (VEC_VCTZD): Likewise.
11304 (VEC_VCTZH): Likewise.
11305 (VEC_VCTZW): Likewise.
11306 (VEC_VEEDP): Likewise.
11307 (VEC_VEESP): Likewise.
11308 (VEC_VESDP): Likewise.
11309 (VEC_VESSP): Likewise.
11310 (VEC_VIEDP): Likewise.
11311 (VEC_VIESP): Likewise.
11312 (VEC_VPKSDSS): Likewise.
11313 (VEC_VPKSDUS): Likewise.
11314 (VEC_VPKUDUM): Likewise.
11315 (VEC_VPKUDUS): Likewise.
11316 (VEC_VPOPCNT): Likewise.
11317 (VEC_VPOPCNTB): Likewise.
11318 (VEC_VPOPCNTD): Likewise.
11319 (VEC_VPOPCNTH): Likewise.
11320 (VEC_VPOPCNTW): Likewise.
11321 (VEC_VPRTYBD): Likewise.
11322 (VEC_VPRTYBQ): Likewise.
11323 (VEC_VPRTYBW): Likewise.
11324 (VEC_VRLD): Likewise.
11325 (VEC_VSLD): Likewise.
11326 (VEC_VSRAD): Likewise.
11327 (VEC_VSRD): Likewise.
11328 (VEC_VSTDCDP): Likewise.
11329 (VEC_VSTDCNDP): Likewise.
11330 (VEC_VSTDCNQP): Likewise.
11331 (VEC_VSTDCNSP): Likewise.
11332 (VEC_VSTDCQP): Likewise.
11333 (VEC_VSTDCSP): Likewise.
11334 (VEC_VSUBECUQ): Likewise.
11335 (VEC_VSUBEUQM): Likewise.
11336 (VEC_VSUBUDM): Likewise.
11337 (VEC_VSUBUQM): Likewise.
11338 (VEC_VTDCDP): Likewise.
11339 (VEC_VTDCSP): Likewise.
11340 (VEC_VUPKHSW): Likewise.
11341 (VEC_VUPKLSW): Likewise.
11343 2022-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
11345 PR rtl-optimization/101260
11346 * regcprop.cc (maybe_mode_change): Invoke mode_change_ok also for
11349 2022-02-01 Xi Ruoyao <xry111@mengyan1223.wang>
11351 PR middle-end/95115
11352 * fold-const.cc (const_binop): Do not fold NaN result from
11355 2022-02-01 Tom de Vries <tdevries@suse.de>
11357 * tree-loop-distribution.cc (generate_reduction_builtin_1): Check for
11358 -ftree-loop-distribute-patterns.
11359 (loop_distribution::execute): Don't call transform_reduction_loop for
11360 -fno-tree-loop-distribute-patterns.
11362 2022-01-31 Andrew Pinski <apinski@marvell.com>
11364 * fold-const.h (operand_compare::operand_equal_p):
11365 Fix comment about OEP_* flags.
11367 2022-01-31 Jakub Jelinek <jakub@redhat.com>
11370 * config/rs6000/aix.h (OPTION_GLIBC): Remove.
11371 * config/rs6000/darwin.h (OPTION_GLIBC): Likewise.
11372 * config/rs6000/option-defaults.h (OPTION_GLIBC): Define to 0
11373 if not already defined.
11375 2022-01-31 Martin Sebor <msebor@redhat.com>
11377 PR middle-end/104232
11378 * gimple-ssa-warn-access.cc (pointers_related_p): Add argument.
11379 Handle PHIs. Add a synonymous overload.
11380 (pass_waccess::check_pointer_uses): Call pointers_related_p.
11382 2022-01-31 Richard Biener <rguenther@suse.de>
11384 PR tree-optimization/100499
11385 * fold-const.cc (multiple_of_p): Pass the correct type of
11386 the expression to the recursive invocation of multiple_of_p
11387 for conversions and use CASE_CONVERT.
11389 2022-01-31 Eric Botcazou <ebotcazou@adacore.com>
11392 * config/sparc/linux64.h (TARGET_DEFAULT): Add MASK_V8PLUS.
11394 2022-01-31 Richard Biener <rguenther@suse.de>
11396 PR tree-optimization/100499
11397 * tree-cfg.cc (verify_gimple_assign_ternary): Use multiple_p
11398 on poly-ints instead of multiple_of_p.
11399 * tree-ssa.cc (maybe_rewrite_mem_ref_base): Likewise.
11400 (non_rewritable_mem_ref_base): Likewise.
11401 (non_rewritable_lvalue_p): Likewise.
11402 (execute_update_addresses_taken): Likewise.
11404 2022-01-29 Jakub Jelinek <jakub@redhat.com>
11405 Andrew Pinski <apinski@marvell.com>
11407 PR tree-optimization/104279
11408 PR tree-optimization/104280
11409 PR tree-optimization/104281
11410 * match.pd (1 / X -> X == 1 for unsigned X): Build eq with
11411 boolean_type_node and convert to type. Formatting fixes.
11413 2022-01-28 Yoshinori Sato <yo-satoh@sios.com>
11415 * config/sh/t-linux (MULTILIB_EXCEPTIONS): Add m1, mb/m1 and m2a.
11417 2022-01-28 Navid Rahimi <navidrahimi@microsoft.com>
11419 PR tree-optimization/103514
11420 * match.pd (a & b) ^ (a == b) -> !(a | b): New optimization.
11421 (a & b) == (a ^ b) -> !(a | b): New optimization.
11423 2022-01-28 Marek Polacek <polacek@redhat.com>
11425 * doc/invoke.texi: Update -Wbidi-chars documentation.
11427 2022-01-28 Iain Sandoe <iain@sandoe.co.uk>
11429 * config/rs6000/darwin.h (OPTION_GLIBC): Define to 0.
11431 2022-01-28 Zhao Wei Liew <zhaoweiliew@gmail.com>
11433 PR tree-optimization/95424
11434 * match.pd: Simplify 1 / X where X is an integer.
11436 2022-01-28 Jakub Jelinek <jakub@redhat.com>
11438 PR tree-optimization/104263
11439 * gimple-ssa-store-merging.cc (get_status_for_store_merging): For
11440 cfun->can_throw_non_call_exceptions && cfun->eh test whether
11441 last non-debug stmt in the bb is store_valid_for_store_merging_p
11442 rather than last stmt.
11444 2022-01-28 Martin Liska <mliska@suse.cz>
11446 * diagnostic.cc (diagnostic_action_after_output): Remove extra
11449 2022-01-28 Martin Liska <mliska@suse.cz>
11451 * config/rs6000/host-darwin.cc (segv_crash_handler):
11452 Do not use leading capital letter.
11453 (segv_handler): Likewise.
11454 * ipa-sra.cc (verify_splitting_accesses): Likewise.
11455 * varasm.cc (get_section): Likewise.
11457 2022-01-28 Richard Biener <rguenther@suse.de>
11459 PR tree-optimization/104267
11460 * tree-vect-stmts.cc (vectorizable_call): Properly use the
11461 per-argument determined vector type for externals and
11464 2022-01-28 Richard Biener <rguenther@suse.de>
11466 PR tree-optimization/104263
11467 * tree-cfg.cc (gimple_purge_dead_abnormal_call_edges):
11468 Purge edges also when !cfun->has_nonlocal_label
11469 and !cfun->calls_setjmp.
11471 2022-01-28 Maciej W. Rozycki <macro@embecosm.com>
11473 * config/riscv/riscv.md: Document `auipc' and `bitmanip' `type'
11476 2022-01-28 Jakub Jelinek <jakub@redhat.com>
11479 * cfgrtl.cc (loc_equal): New function.
11480 (unique_locus_on_edge_between_p): Use it.
11482 2022-01-28 Richard Biener <rguenther@suse.de>
11484 * cfganal.h (mark_dfs_back_edges): Provide API with struct
11486 * cfganal.cc (mark_dfs_back_edges): Take a struct function
11487 to work on, add a wrapper passing cfun.
11488 * graph.cc (draw_cfg_nodes_no_loops): Replace stray cfun
11489 uses with fun which is already passed.
11490 (draw_cfg_edges): Likewise.
11491 (draw_cfg_nodes_for_loop): Do not use draw_cfg_nodes_for_loop
11494 2022-01-27 Patrick Palka <ppalka@redhat.com>
11497 * tree.cc (build_call_vec): Add const to second parameter.
11498 * tree.h (build_call_vec): Likewise.
11500 2022-01-27 Martin Liska <mliska@suse.cz>
11503 * diagnostic.cc (diagnostic_initialize):
11504 Initialize report_bug flag.
11505 (diagnostic_action_after_output):
11506 Explain that -freport-bug option can be used for pre-processed
11507 file creation. Make the message shorter.
11508 (error_recursion): Rename Internal to internal.
11509 * diagnostic.h (struct diagnostic_context): New field.
11510 * opts.cc (common_handle_option): Init the field here.
11512 2022-01-27 Kewen Lin <linkw@linux.ibm.com>
11515 * config/rs6000/rs6000.cc
11516 (rs6000_cost_data::update_target_cost_per_stmt): Fix one wrong
11517 assertion with early return.
11519 2022-01-27 Chung-Lin Tang <cltang@codesourcery.com>
11521 PR middle-end/103642
11522 * gimplify.cc (gimplify_scan_omp_clauses): Do not do indir_p handling
11523 for non-pointer or non-reference-to-pointer cases.
11525 2022-01-27 Jakub Jelinek <jakub@redhat.com>
11527 PR tree-optimization/104196
11528 * gimple-fold.h (rewrite_to_defined_overflow): Add IN_PLACE argument.
11529 * gimple-fold.cc (rewrite_to_defined_overflow): Likewise. If true,
11530 return NULL and emit needed stmts before and after stmt.
11531 * tree-ssa-reassoc.cc (update_range_test): For inter-bb range opt
11532 pick as operand_entry that will hold the merged test the one feeding
11533 earliest condition, ensure that by swapping range->idx with some
11534 other range's idx if needed. If seq is non-NULL, don't actually swap
11535 it but instead rewrite stmts with undefined overflow in between
11537 (maybe_optimize_range_tests): Set ops[]->id to bb->index with the
11538 corresponding condition even if they have non-NULL ops[]->op.
11541 2022-01-26 Jakub Jelinek <jakub@redhat.com>
11544 * config/rs6000/emmintrin.h (_mm_sad_epu8): Use __asm__ instead of
11546 * config/rs6000/smmintrin.h (_mm_minpos_epu16): Declare iterator
11547 before for loop instead of for init clause.
11548 * config/rs6000/bmi2intrin.h (_pext_u64): Likewise.
11550 2022-01-26 Jakub Jelinek <jakub@redhat.com>
11553 * config/rs6000/bmiintrin.h: Test _X86GPRINTRIN_H_INCLUDED instead of
11554 _X86INTRIN_H_INCLUDED and adjust #error wording.
11555 * config/rs6000/bmi2intrin.h: Likewise.
11557 2022-01-26 Jakub Jelinek <jakub@redhat.com>
11560 * dwarf2out.cc (long_double_as_float128): New function.
11561 (modified_type_die): For powerpc64le IEEE 754 quad long double
11562 and complex long double emit those as DW_TAG_typedef to
11563 _Float128 or complex _Float128 base type.
11565 2022-01-26 Marek Polacek <polacek@redhat.com>
11568 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer): Don't
11569 warn when the SSA_NAME_VAR of REF has supressed -Wuse-after-free.
11571 2022-01-26 Martin Liska <mliska@suse.cz>
11573 * ipa-modref-tree.cc (modref_access_node::update):
11574 Remove "--param param=foo" with "--param foo".
11575 (modref_access_node::insert): Likewise.
11576 (modref_access_node::insert_kill): Likewise.
11577 * ipa-modref-tree.h (struct modref_ref_node): Likewise.
11578 (struct modref_base_node): Likewise.
11579 (struct modref_tree): Likewise.
11581 2022-01-26 Raoni Fassina Firmino <raoni@linux.ibm.com>
11584 * builtins.cc (expand_builtin_feclear_feraise_except): Add op0
11587 2022-01-25 Martin Sebor <msebor@redhat.com>
11589 PR tree-optimization/104203
11590 * gimple-ssa-warn-access.cc (pass_data pass_data_waccess): Use
11592 * pointer-query.cc (access_ref::merge_ref): Change return type.
11593 Convert failure to a conservative success.
11594 (access_ref::get_ref): Adjust to the change above. Short-circuit
11595 PHI evaluation after first failure turned into conservative success.
11596 * pointer-query.h (access_ref::merge_ref): Change return type.
11597 * timevar.def (TV_WARN_ACCESS): New timer variable.
11599 2022-01-25 David Edelsohn <dje.gcc@gmail.com>
11601 * config/rs6000/aix.h (OPTION_GLIBC): Define as 0.
11603 2022-01-25 Richard Biener <rguenther@suse.de>
11605 PR tree-optimization/104214
11606 * tree-ssa-loop-niter.cc (number_of_iterations_cond): Use
11607 stronger guarantees for relational pointer compares when
11608 rewriting BASE0 + STEP0 cmp BASE1 + STEP1 as
11609 BASE0 + STEP0 - STEP1 cmp BASE1.
11611 2022-01-25 Jakub Jelinek <jakub@redhat.com>
11614 * config/rs6000/rs6000-internal.h (rs6000_passes_ieee128): Don't
11616 * config/rs6000/rs6000.cc (rs6000_passes_ieee128,
11617 ieee128_mangling_gcc_8_1): Remove.
11618 (TARGET_ASM_GLOBALIZE_DECL_NAME): Don't redefine.
11619 (rs6000_mangle_type): Return "u9__ieee128" instead of
11620 ieee128_mangling_gcc_8_1 ? "U10__float128" : "u9__ieee128".
11621 (rs6000_globalize_decl_name): Remove.
11622 * config/rs6000/rs6000-call.cc (init_cumulative_args,
11623 rs6000_function_arg_advance_1): Don't set rs6000_passes_ieee128.
11625 2022-01-24 Martin Sebor <msebor@redhat.com>
11627 * pointer-query.cc (pointer_query::dump): Remove duplicate
11630 2022-01-24 Marek Polacek <polacek@redhat.com>
11632 PR preprocessor/104030
11633 * doc/invoke.texi: Update documentation for -Wbidi-chars.
11635 2022-01-24 Raoni Fassina Firmino <raoni@linux.ibm.com>
11638 * builtins.cc (expand_builtin_fegetround): New function.
11639 (expand_builtin_feclear_feraise_except): New function.
11640 (expand_builtin): Add cases for BUILT_IN_FEGETROUND,
11641 BUILT_IN_FECLEAREXCEPT and BUILT_IN_FERAISEEXCEPT.
11642 * config/rs6000/rs6000.md (fegetroundsi): New pattern.
11643 (feclearexceptsi): New Pattern.
11644 (feraiseexceptsi): New Pattern.
11645 * doc/extend.texi: Add a new introductory paragraph about the
11647 * doc/md.texi: (fegetround@var{m}): Document new optab.
11648 (feclearexcept@var{m}): Document new optab.
11649 (feraiseexcept@var{m}): Document new optab.
11650 * optabs.def (fegetround_optab): New optab.
11651 (feclearexcept_optab): New optab.
11652 (feraiseexcept_optab): New optab.
11654 2022-01-24 Richard Biener <rguenther@suse.de>
11655 Jiufu Guo <guojiufu@linux.ibm.com>
11657 PR tree-optimization/100740
11658 PR tree-optimization/101508
11659 PR tree-optimization/101972
11660 PR tree-optimization/102131
11661 * tree-ssa-loop-niter.cc (number_of_iterations_cond): Properly
11662 constrain BASE0 + STEP0 cmp BASE1 + STEP1 to
11663 BASE0 + STEP0 - STEP1 cmp BASE1 transform.
11665 2022-01-24 Jakub Jelinek <jakub@redhat.com>
11667 PR sanitizer/104158
11668 * opt-functions.awk (var_set): Handle EnumBitSet property.
11669 * optc-gen.awk: Don't disallow RejectNegative if EnumBitSet is
11671 * opts.h (enum cl_enum_var_value): New type.
11672 * opts-common.cc (decode_cmdline_option): Use CLEV_* values.
11673 Handle CLEV_BITSET.
11674 (cmdline_handle_error): Handle CLEV_BITSET.
11675 * opts.cc (test_enum_sets): Also test EnumBitSet requirements.
11676 * doc/options.texi (EnumBitSet): Document.
11677 * common.opt (fsanitize-coverage=): Use EnumBitSet instead of
11679 (trace-pc, trace-cmp): Drop Set properties.
11681 2022-01-24 Jakub Jelinek <jakub@redhat.com>
11683 PR sanitizer/104158
11684 * common.opt (flag_sanitize_coverage): Remove Variable entry.
11685 (fsanitize-coverage=): Remove RejectNegative property, add
11686 Var(flag_sanitize_coverage) and EnumSet properties.
11687 (trace-pc): Add Set(1) property.
11688 (trace-cmp): Add Set(2) property.
11689 * opts.cc (common_handle_option): Don't handle
11690 OPT_fsanitize_coverage_.
11692 2022-01-24 Jakub Jelinek <jakub@redhat.com>
11694 PR sanitizer/104158
11695 * opt-functions.awk (var_set): Handle EnumSet property.
11696 * optc-gen.awk: Don't disallow RejectNegative if EnumSet is
11698 * opt-read.awk: Handle Set property.
11699 * opts.h (CL_ENUM_SET_SHIFT, CL_ERR_ENUM_SET_ARG): Define.
11700 (struct cl_decoded_option): Mention enum in value description.
11702 (set_option): Add mask argument defaulted to 0.
11703 * opts.cc (test_enum_sets): New function.
11704 (opts_cc_tests): Call it.
11705 * opts-common.cc (enum_arg_to_value): Change return argument
11706 from bool to int, on success return index into the cl_enum_arg
11707 array, on failure -1. Add len argument, if non-0, use strncmp
11709 (opt_enum_arg_to_value): Adjust caller.
11710 (decode_cmdline_option): Handle EnumSet represented as
11711 CLVC_ENUM with non-zero var_value. Initialize decoded->mask.
11712 (decode_cmdline_options_to_array): CLear opt_array[0].mask.
11713 (handle_option): Pass decoded->mask to set_options last argument.
11714 (generate_option): Clear decoded->mask.
11715 (generate_option_input_file): Likewise.
11716 (cmdline_handle_error): Handle CL_ERR_ENUM_SET_ARG.
11717 (set_option): Add mask argument, use it for CLVC_ENUM.
11718 (control_warning_option): Adjust enum_arg_to_value caller.
11719 * doc/options.texi: Document Set and EnumSet properties.
11721 2022-01-24 Jakub Jelinek <jakub@redhat.com>
11723 PR bootstrap/104170
11724 * config/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
11725 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
11726 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
11727 using OPTION_*_P macros.
11728 * config/alpha/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
11729 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
11730 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
11731 using OPTION_*_P macros.
11732 * config/rs6000/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
11733 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
11734 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
11735 using OPTION_*_P macros.
11736 * config/rs6000/linux64.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
11737 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
11738 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
11739 using OPTION_*_P macros.
11740 * config/fuchsia.h (OPTION_MUSL_P): Redefine.
11741 * config/glibc-stdint.h (OPTION_MUSL_P): Define if not defined.
11742 * common/config/s390/s390-common.cc (s390_supports_split_stack): Re-add
11743 ATTRIBUTE_UNUSED to opts parameter. If OPTION_GLIBC_P is defined, use
11744 OPTION_GLIBC_P (opts) as condition, otherwise assume if (false).
11745 * common/config/i386/i386-common.cc (ix86_supports_split_stack): If
11746 OPTION_GLIBC_P is defined use !OPTION_GLIBC_P (opts) as condition,
11747 otherwise assume if (true).
11749 2022-01-24 Kito Cheng <kito.cheng@sifive.com>
11751 * common/config/riscv/riscv-common.cc (riscv_subset_list::to_string):
11752 Skip zicsr and zifencei if I-ext is 2.0.
11754 2022-01-24 Jia-Wei Chen <jiawei@iscas.ac.cn>
11756 * config.gcc: Modify default isa_spec version.
11758 2022-01-24 Jiufu Guo <guojiufu@linux.ibm.com>
11760 PR tree-optimization/102087
11761 * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
11762 Correct PLUS result type.
11764 2022-01-24 H.J. Lu <hjl.tools@gmail.com>
11767 * config/i386/predicates.md (bcst_mem_operand): Also check mode
11768 of memory broadcast.
11770 2022-01-23 Andrew Pinski <apinski@marvell.com>
11773 * config/aarch64/aarch64-builtins.cc
11774 (aarch64_general_gimple_fold_builtin): Handle
11775 __builtin_aarch64_sqrt* and simplify into SQRT internal
11778 2022-01-22 Jakub Jelinek <jakub@redhat.com>
11781 * opts-global.cc (handle_common_deferred_options): Quote
11782 --enable-plugin in diagnostics to avoid -Werror=format-diag.
11784 2022-01-21 Michael Meissner <meissner@the-meissners.org>
11787 * config/rs6000/rs6000-protos.h (prefixed_xxsplti_p): Delete.
11788 * config/rs6000/rs6000.cc (prefixed_xxsplti_p): Delete.
11789 * config/rs6000/rs6000.md (prefixed attribute): Delete section
11790 that sets the prefixed attribute for xxspltiw, xxspltidp, and
11791 xxsplti32dx instructions.
11792 (movsf_hardfloat): Explicitly set the prefixed attribute
11793 when xxspltiw and xxspltidp instructions are generated.
11794 (mov<mode>_hardfloat32): Likewise.
11795 (mov<mode>_hardfloat64): Likewise.
11796 * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Explicitly set the
11797 prefixed attribute for xxspltiw and xxspltidp instructions.
11798 (vsx_mov<mode>_32bit): Likewise.
11800 2022-01-21 H.J. Lu <hjl.tools@gmail.com>
11802 PR bootstrap/104170
11803 * common/config/i386/i386-common.cc (ix86_supports_split_stack):
11804 Return true only on glibc.
11805 * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN):
11806 Revert commit c163647ffbc.
11807 * config/i386/gnu.h (TARGET_LIBC_PROVIDES_SSP): Likewise.
11809 2022-01-21 Sören Tempel <soeren@soeren-tempel.net>
11811 * common/config/s390/s390-common.cc (s390_supports_split_stack):
11812 Only support split-stack on glibc targets.
11813 * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN): Ditto.
11814 * config/i386/gnu.h (defined): Ditto.
11816 2022-01-21 Bill Schmidt <wschmidt@linux.ibm.com>
11818 * config/rs6000/rs6000-overload.def (VEC_SLDW): Add instances for
11819 vector float and vector double.
11821 2022-01-21 Bill Seurer <seurer@gcc.gnu.org>
11823 * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
11824 Fix mention of ifunc in string.
11826 2022-01-21 Roger Sayle <roger@nextmovesoftware.com>
11828 PR middle-end/104140
11829 * tree-ssa-math-opts.cc (convert_mult_to_highpart): Check that the
11830 operands of the widening multiplication are either both signed or
11831 both unsigned, and abort the conversion if mismatched.
11832 * doc/generic.texi (WIDEN_MULT_EXPR): Describe expression node.
11833 (MULT_HIGHPART_EXPR): Clarify that operands must have the same
11835 * tree.def (MULT_HIGHPART_EXPR): Document both operands must have
11836 integer types with the same precision and signedness.
11837 (WIDEN_MULT_EXPR): Document that operands must have integer types
11838 with the same precision, but possibly differing signedness.
11839 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Defend against
11840 riscv_current_subset_list returning a NULL pointer (empty list).
11842 2022-01-21 Vladimir N. Makarov <vmakarov@redhat.com>
11845 * ira.h (struct target_ira): Add member
11846 x_ira_exclude_class_mode_regs.
11847 (ira_exclude_class_mode_regs): New macro.
11848 * lra.h (lra_create_new_reg): Add arg exclude_start_hard_regs and
11850 * lra-int.h: ... to here.
11851 (lra_create_new_reg_with_unique_value): Add arg
11852 exclude_start_hard_regs.
11853 (class lra_reg): Add member exclude_start_hard_regs.
11854 * lra-assigns.cc (find_hard_regno_for_1): Setup
11855 impossible_start_hard_regs from exclude_start_hard_regs.
11856 * lra-constraints.cc (get_reload_reg): Add arg exclude_start_hard_regs and pass
11857 it lra_create_new_reg[_with_unique_value].
11858 (match_reload): Ditto.
11859 (check_and_process_move): Pass NULL
11860 exclude_start_hard_regs to lra_create_new_reg_with_unique_value.
11861 (goal_alt_exclude_start_hard_regs): New static variable.
11862 (process_addr_reg, simplify_operand_subreg): Pass NULL
11863 exclude_start_hard_regs to lra_create_new_reg_with_unique_value
11864 and get_reload_reg.
11865 (process_alt_operands): Setup goal_alt_exclude_start_hard_regs.
11866 Use this_alternative_exclude_start_hard_regs additionally to find
11867 winning operand alternative.
11868 (base_to_reg, base_plus_disp_to_reg, index_part_to_reg): Pass NULL
11869 exclude_start_hard_regs to lra_create_new_reg.
11870 (process_address_1, emit_inc): Ditto.
11871 (curr_insn_transform): Pass exclude_start_hard_regs value to
11872 lra_create_new_reg, get_reload_reg, match_reload.
11873 (inherit_reload_reg, split_reg): Pass NULL exclude_start_hard_regs
11874 to lra_create_new_reg.
11875 (process_invariant_for_inheritance): Ditto.
11876 * lra-remat.cc (update_scratch_ops): Ditto.
11877 * lra.cc (lra_create_new_reg_with_unique_value): Add arg
11878 exclude_start_hard_regs. Setup the corresponding member of
11880 (lra_create_new_reg): Add arg exclude_start_hard_regs and pass it
11881 to lra_create_new_reg_with_unique_value.
11882 (initialize_lra_reg_info_element): Initialize member
11883 exclude_start_hard_regs.
11884 (get_scratch_reg): Pass NULL to lra_create_new_reg.
11885 * ira.cc (setup_prohibited_class_mode_regs): Rename to
11886 setup_prohibited_and_exclude_class_mode_regs and calculate
11887 ira_exclude_class_mode_regs.
11889 2022-01-21 Martin Liska <mliska@suse.cz>
11891 * configure.ac: Detect ld_is_mold and use it for
11892 comdat_group=yes and gcc_cv_ld_hidden=yes.
11893 * configure: Regenerate.
11895 2022-01-21 Richard Biener <rguenther@suse.de>
11897 PR tree-optimization/100089
11898 * tree-vect-slp.cc (vect_slp_region): Reject BB vectorization
11899 of if-converted loops with unvectorized COND_EXPRs for
11900 all but the unlimited cost models.
11902 2022-01-21 Ard Biesheuvel <ardb@kernel.org>
11904 * config/arm/arm-opts.h (enum stack_protector_guard): New.
11905 * config/arm/arm-protos.h (arm_stack_protect_tls_canary_mem):
11907 * config/arm/arm.cc (TARGET_STACK_PROTECT_GUARD): Define.
11908 (arm_option_override_internal): Handle and put in error checks.
11909 for stack protector guard options.
11910 (arm_option_reconfigure_globals): Likewise.
11911 (arm_stack_protect_tls_canary_mem): New.
11912 (arm_stack_protect_guard): New.
11913 * config/arm/arm.md (stack_protect_set): New.
11914 (stack_protect_set_tls): Likewise.
11915 (stack_protect_test): Likewise.
11916 (stack_protect_test_tls): Likewise.
11917 (reload_tp_hard): Likewise.
11918 * config/arm/arm.opt (-mstack-protector-guard): New
11919 (-mstack-protector-guard-offset): New.
11920 * doc/invoke.texi: Document new options.
11922 2022-01-21 Richard Biener <rguenther@suse.de>
11924 PR tree-optimization/104156
11925 * tree-ssa-loop-unswitch.cc (tree_unswitch_outer_loop):
11926 Collect and reset debug stmts with out-of-loop uses when
11928 (find_loop_guard): Adjust.
11929 (empty_bb_without_guard_p): Likewise. Ignore debug stmts.
11930 (used_outside_loop_p): Push debug uses to a vector of
11931 debug stmts to reset.
11932 (hoist_guard): Adjust -fopt-info category.
11934 2022-01-21 Richard Biener <rguenther@suse.de>
11936 PR tree-optimization/104152
11937 * tree-vect-slp.cc (vect_build_slp_tree_2): Add missing
11938 can_duplicate_and_interleave_p check.
11940 2022-01-21 Jakub Jelinek <jakub@redhat.com>
11942 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
11943 Avoid passing var to warning_at when the format string doesn't
11946 2022-01-21 Aldy Hernandez <aldyh@redhat.com>
11948 PR tree-optimization/103721
11949 * gimple-range-path.cc
11950 (path_range_query::relations_may_be_invalidated): New.
11951 (path_range_query::compute_ranges_in_block): Reset relations if
11952 they may be invalidated.
11953 (path_range_query::maybe_register_phi_relation): Exit if relations
11954 may be invalidated on incoming edge.
11955 (path_range_query::compute_phi_relations): Pass incoming PHI edge
11956 to maybe_register_phi_relation.
11957 * gimple-range-path.h (relations_may_be_invalidated): New.
11958 (maybe_register_phi_relation): Pass edge instead of tree.
11959 * tree-ssa-threadbackward.cc (back_threader::back_threader):
11961 * value-relation.cc (path_oracle::path_oracle): Call
11962 mark_dfs_back_edges.
11963 (path_oracle::register_relation): Add SSA names to m_registered
11965 (path_oracle::reset_path): Clear m_registered bitmap.
11966 * value-relation.h (path_oracle::set_root_oracle): New.
11968 2022-01-21 Jakub Jelinek <jakub@redhat.com>
11970 PR rtl-optimization/102478
11971 * optabs.cc (prepare_cmp_insn): If !can_create_pseudo_p (), don't
11972 force_reg constants and for -fnon-call-exceptions fail if copy_to_reg
11975 2022-01-20 Richard Biener <rguenther@suse.de>
11977 PR middle-end/100786
11978 * gimple-fold.cc (get_symbol_constant_value): Only return
11979 values of compatible type to the symbol.
11981 2022-01-20 Andrew MacLeod <amacleod@redhat.com>
11983 * value-relation.cc (relation_oracle::valid_equivs): Query and add
11984 if valid members of a set.
11985 (equiv_oracle::register_equiv): Call valid_equivs rather than
11986 bitmap direct operations.
11987 (path_oracle::register_equiv): Ditto.
11988 * value-relation.h (relation_oracle::valid_equivs): New prototype.
11990 2022-01-20 Richard Biener <rguenther@suse.de>
11993 * config/i386/i386.cc (ix86_gimple_fold_builtin): Check for
11994 LHS before folding __builtin_ia32_shufpd and friends.
11996 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
11998 * config/arm/crypto.md (aes_op_protect): Allow moves from core
11999 registers and from memory.
12000 (aes_op_protect_misalign_load): New pattern.
12001 (aes_op_protect_neon_vld1v16qi): New pattern.
12003 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
12005 * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>_protected):
12007 (aarch32_crypto_aese_fused_protected): Likewise.
12008 (aarch32_crypto_aesd_fused_protected): Likewise.
12010 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
12012 * config/arm/crypto.md (crypto_<CRYPTO_AES:crypto_pattern>): Convert
12013 to define_expand. Add mitigation for the Cortex-A AES erratum
12015 (*crypto_<CRYPTO_AES:crypto_pattern>_insn): New pattern, based
12016 on original crypto_<CRYPTO_AES:crypto_pattern> insn.
12017 (aes_op_protect): New pattern.
12018 * config/arm/unspecs.md (unspec): Add UNSPEC_AES_PROTECT.
12020 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
12022 * config/arm/arm-cpus.in (quirk_aes_1742098): New quirk feature
12023 (ALL_QUIRKS): Add it.
12024 (cortex-a57, cortex-a72): Enable it.
12025 (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
12026 * config/arm/arm.opt (mfix-cortex-a57-aes-1742098): New command-line
12028 (mfix-cortex-a72-aes-1655431): New option alias.
12029 * config/arm/arm.cc (arm_option_override): Handle default settings
12030 for AES erratum switch.
12031 * doc/invoke.texi (Arm Options): Document new options.
12033 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
12035 * config/arm/crypto.md (crypto_<CYRPTO_AES:crypto_pattern>): Use
12036 <crypto_mode> rather than hard-coding the mode.
12037 (crypto_<CRYPTO_AESMC:crypto_pattern>): Fix white space.
12038 (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
12039 (*aarch32_crypto_aese_fused): Likewise.
12040 (*aarch32_crypto_aesd_fused): Likewise.
12041 (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
12042 (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
12043 (crypto_sha1h_lb): Likewise.
12044 (crypto_vmullp64): Likewise.
12045 (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
12046 (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
12048 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
12050 * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>): Add
12051 iterator to pattern name to disambiguate.
12052 (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
12053 (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
12054 (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
12055 (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
12056 (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
12058 2022-01-20 Martin Liska <mliska@suse.cz>
12060 PR bootstrap/104135
12061 * emit-rtl.cc (make_insn_raw): Fix -Wformat-diag warnings.
12062 * rtl.cc: Partially disable -Wformat-diag for RTL checking
12065 2022-01-20 Jakub Jelinek <jakub@redhat.com>
12068 * dwarf2out.cc (index_rnglists): For !HAVE_AS_LEB128 and
12069 block_num > 0, index entry even if !have_multiple_function_sections.
12071 2022-01-20 liuhongt <hongtao.liu@intel.com>
12074 * tree-vect-stmts.cc (supportable_narrowing_operation): Enhance
12075 integral mode mask pack by multi steps which takes
12076 vec_pack_sbool_trunc_optab as start when elements number is
12077 less than BITS_PER_UNITS.
12079 2022-01-20 Richard Biener <rguenther@suse.de>
12081 PR tree-optimization/104114
12082 * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
12083 single element vector decomposition.
12085 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
12087 * ifcvt.cc (noce_convert_multiple_sets_1): New function.
12088 (noce_convert_multiple_sets): Call function a second time if we can
12089 improve the first try.
12091 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
12093 * ifcvt.cc (cond_exec_get_condition): New parameter to allow getting the
12094 reversed comparison.
12095 (try_emit_cmove_seq): New function to facilitate creating a cmov
12097 (noce_convert_multiple_sets): Create two sequences and use the less
12100 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
12102 * rtl.h (struct rtx_comparison): New struct that holds an rtx
12104 * config/rs6000/rs6000.cc (rs6000_emit_minmax): Use struct instead of
12106 (rs6000_emit_swsqrt): Likewise.
12107 * expmed.cc (expand_sdiv_pow2): Likewise.
12108 (emit_store_flag): Likewise.
12109 * expr.cc (expand_cond_expr_using_cmove): Likewise.
12110 (expand_expr_real_2): Likewise.
12111 * ifcvt.cc (noce_emit_cmove): Add compare and reversed compare
12113 * optabs.cc (emit_conditional_move_1): New function.
12114 (expand_doubleword_shift_condmove): Use struct.
12115 (emit_conditional_move): Use struct and allow to call directly
12116 without going through preparation steps.
12117 * optabs.h (emit_conditional_move): Use struct.
12119 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
12121 * ifcvt.cc (bb_ok_for_noce_convert_multiple_sets): Estimate insns costs.
12122 (noce_process_if_block): Use potential costs.
12124 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
12126 * ifcvt.cc (noce_convert_multiple_sets): Allow constants.
12127 (bb_ok_for_noce_convert_multiple_sets): Likewise.
12129 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
12131 * ifcvt.cc (need_cmov_or_rewire): New function.
12132 (noce_convert_multiple_sets): Call it.
12134 2022-01-19 David Malcolm <dmalcolm@redhat.com>
12136 * attribs.cc (attribute_c_tests): Rename to...
12137 (attribs_cc_tests): ...this.
12138 * bitmap.cc (bitmap_c_tests): Rename to...
12139 (bitmap_cc_tests): ...this.
12140 * cgraph.cc (cgraph_c_finalize): Rename to...
12141 (cgraph_cc_finalize): ...this.
12142 (cgraph_c_tests): Rename to...
12143 (cgraph_cc_tests): ...this.
12144 * cgraph.h (cgraph_c_finalize): Rename to...
12145 (cgraph_cc_finalize): ...this.
12146 (cgraphunit_c_finalize): Rename to...
12147 (cgraphunit_cc_finalize): ...this.
12148 * cgraphunit.cc (cgraphunit_c_finalize): Rename to...
12149 (cgraphunit_cc_finalize): ...this.
12150 * convert.cc (convert_c_tests): Rename to...
12151 (convert_cc_tests): ...this.
12152 * dbgcnt.cc (dbgcnt_c_tests): Rename to...
12153 (dbgcnt_cc_tests): ...this.
12154 * diagnostic-show-locus.cc (diagnostic_show_locus_c_tests): Rename to...
12155 (diagnostic_show_locus_cc_tests): ...this.
12156 * diagnostic.cc (diagnostic_c_tests): Rename to...
12157 (diagnostic_cc_tests): ...this.
12158 * dumpfile.cc (dumpfile_c_tests): Rename to...
12159 (dumpfile_cc_tests): ...this.
12160 * dwarf2out.cc (dwarf2out_c_finalize): Rename to...
12161 (dwarf2out_cc_finalize): ...this.
12162 * dwarf2out.h (dwarf2out_c_finalize): Rename to...
12163 (dwarf2out_cc_finalize): ...this.
12164 * edit-context.cc (edit_context_c_tests): Rename to...
12165 (edit_context_cc_tests): ...this.
12166 * et-forest.cc (et_forest_c_tests): Rename to...
12167 (et_forest_cc_tests): ...this.
12168 * fibonacci_heap.cc (fibonacci_heap_c_tests): Rename to...
12169 (fibonacci_heap_cc_tests): ...this.
12170 * fold-const.cc (fold_const_c_tests): Rename to...
12171 (fold_const_cc_tests): ...this.
12172 * function-tests.cc (function_tests_c_tests): Rename to...
12173 (function_tests_cc_tests): ...this.
12174 * gcse.cc (gcse_c_finalize): Rename to...
12175 (gcse_cc_finalize): ...this.
12176 * gcse.h (gcse_c_finalize): Rename to...
12177 (gcse_cc_finalize): ...this.
12178 * ggc-tests.cc (ggc_tests_c_tests): Rename to...
12179 (ggc_tests_cc_tests): ...this.
12180 * gimple-ssa-store-merging.cc (store_merging_c_tests): Rename to...
12181 (store_merging_cc_tests): ...this.
12182 * gimple.cc (gimple_c_tests): Rename to...
12183 (gimple_cc_tests): ...this.
12184 * hash-map-tests.cc (hash_map_tests_c_tests): Rename to...
12185 (hash_map_tests_cc_tests): ...this.
12186 * hash-set-tests.cc (hash_set_tests_c_tests): Rename to...
12187 (hash_set_tests_cc_tests): ...this.
12188 * input.cc (input_c_tests): Rename to...
12189 (input_cc_tests): ...this.
12190 * ipa-cp.cc (ipa_cp_c_finalize): Rename to...
12191 (ipa_cp_cc_finalize): ...this.
12192 * ipa-fnsummary.cc (ipa_fnsummary_c_finalize): Rename to...
12193 (ipa_fnsummary_cc_finalize): ...this.
12194 * ipa-fnsummary.h (ipa_fnsummary_c_finalize): Rename to...
12195 (ipa_fnsummary_cc_finalize): ...this.
12196 * ipa-modref-tree.cc (ipa_modref_tree_c_tests): Rename to...
12197 (ipa_modref_tree_cc_tests): ...this.
12198 * ipa-modref-tree.h (modref_c_tests): Delete bogus decl.
12199 * ipa-modref.cc (ipa_modref_c_finalize): Rename to...
12200 (ipa_modref_cc_finalize): ...this.
12201 * ipa-modref.h (ipa_modref_c_finalize): Rename to...
12202 (ipa_modref_cc_finalize): ...this.
12203 * ipa-prop.h (ipa_cp_c_finalize): Rename to...
12204 (ipa_cp_cc_finalize): ...this.
12205 * ipa-reference.cc (ipa_reference_c_finalize): Rename to...
12206 (ipa_reference_cc_finalize): ...this.
12207 * ipa-reference.h (ipa_reference_c_finalize): Rename to...
12208 (ipa_reference_cc_finalize): ...this.
12209 * ira-costs.cc (ira_costs_c_finalize): Rename to...
12210 (ira_costs_cc_finalize): ...this.
12211 * ira.h (ira_costs_c_finalize): Rename to...
12212 (ira_costs_cc_finalize): ...this.
12213 * opt-suggestions.cc (opt_proposer_c_tests): Rename to...
12214 (opt_suggestions_cc_tests): ...this.
12215 * opts.cc (opts_c_tests): Rename to...
12216 (opts_cc_tests): ...this.
12217 * predict.cc (predict_c_tests): Rename to...
12218 (predict_cc_tests): ...this.
12219 * pretty-print.cc (pretty_print_c_tests): Rename to...
12220 (pretty_print_cc_tests): ...this.
12221 * read-rtl-function.cc (read_rtl_function_c_tests): Rename to...
12222 (read_rtl_function_cc_tests): ...this.
12223 * rtl-tests.cc (rtl_tests_c_tests): Rename to...
12224 (rtl_tests_cc_tests): ...this.
12225 * sbitmap.cc (sbitmap_c_tests): Rename to...
12226 (sbitmap_cc_tests): ...this.
12227 * selftest-run-tests.cc (selftest::run_tests): Update calls for
12228 _c_ to _cc_ function renamings; fix names of attribs and
12229 opt-suggestions tests.
12230 * selftest.cc (selftest_c_tests): Rename to...
12231 (selftest_cc_tests): ...this.
12232 * selftest.h (attribute_c_tests): Rename to...
12233 (attribs_cc_tests): ...this.
12234 (bitmap_c_tests): Rename to...
12235 (bitmap_cc_tests): ...this.
12236 (cgraph_c_tests): Rename to...
12237 (cgraph_cc_tests): ...this.
12238 (convert_c_tests): Rename to...
12239 (convert_cc_tests): ...this.
12240 (diagnostic_c_tests): Rename to...
12241 (diagnostic_cc_tests): ...this.
12242 (diagnostic_show_locus_c_tests): Rename to...
12243 (diagnostic_show_locus_cc_tests): ...this.
12244 (dumpfile_c_tests): Rename to...
12245 (dumpfile_cc_tests): ...this.
12246 (edit_context_c_tests): Rename to...
12247 (edit_context_cc_tests): ...this.
12248 (et_forest_c_tests): Rename to...
12249 (et_forest_cc_tests): ...this.
12250 (fibonacci_heap_c_tests): Rename to...
12251 (fibonacci_heap_cc_tests): ...this.
12252 (fold_const_c_tests): Rename to...
12253 (fold_const_cc_tests): ...this.
12254 (function_tests_c_tests): Rename to...
12255 (function_tests_cc_tests): ...this.
12256 (ggc_tests_c_tests): Rename to...
12257 (ggc_tests_cc_tests): ...this.
12258 (gimple_c_tests): Rename to...
12259 (gimple_cc_tests): ...this.
12260 (hash_map_tests_c_tests): Rename to...
12261 (hash_map_tests_cc_tests): ...this.
12262 (hash_set_tests_c_tests): Rename to...
12263 (hash_set_tests_cc_tests): ...this.
12264 (input_c_tests): Rename to...
12265 (input_cc_tests): ...this.
12266 (opts_c_tests): Rename to...
12267 (opts_cc_tests): ...this.
12268 (predict_c_tests): Rename to...
12269 (predict_cc_tests): ...this.
12270 (pretty_print_c_tests): Rename to...
12271 (pretty_print_cc_tests): ...this.
12272 (read_rtl_function_c_tests): Rename to...
12273 (read_rtl_function_cc_tests): ...this.
12274 (rtl_tests_c_tests): Rename to...
12275 (rtl_tests_cc_tests): ...this.
12276 (sbitmap_c_tests): Rename to...
12277 (sbitmap_cc_tests): ...this.
12278 (selftest_c_tests): Rename to...
12279 (selftest_cc_tests): ...this.
12280 (simplify_rtx_c_tests): Rename to...
12281 (simplify_rtx_cc_tests): ...this.
12282 (spellcheck_c_tests): Rename to...
12283 (spellcheck_cc_tests): ...this.
12284 (spellcheck_tree_c_tests): Rename to...
12285 (spellcheck_tree_cc_tests): ...this.
12286 (sreal_c_tests): Rename to...
12287 (sreal_cc_tests): ...this.
12288 (store_merging_c_tests): Rename to...
12289 (store_merging_cc_tests): ...this.
12290 (tree_c_tests): Rename to...
12291 (tree_cc_tests): ...this.
12292 (tree_cfg_c_tests): Rename to...
12293 (tree_cfg_cc_tests): ...this.
12294 (typed_splay_tree_c_tests): Rename to...
12295 (typed_splay_tree_cc_tests): ...this.
12296 (vec_c_tests): Rename to...
12297 (vec_cc_tests): ...this.
12298 (vec_perm_indices_c_tests): Rename to...
12299 (vec_perm_indices_cc_tests): ..this.
12300 (opt_proposer_c_tests): Rename to...
12301 (opt_suggestions_cc_tests): ...this.
12302 (dbgcnt_c_tests): Rename to...
12303 (dbgcnt_cc_tests): ...this.
12304 (ipa_modref_tree_c_tests): Rename to...
12305 (ipa_modref_tree_cc_tests): ...this.
12306 * simplify-rtx.cc (simplify_rtx_c_tests): Rename to...
12307 (simplify_rtx_cc_tests): ...this.
12308 * spellcheck-tree.cc (spellcheck_tree_c_tests): Rename to...
12309 (spellcheck_tree_cc_tests): ...this.
12310 * spellcheck.cc (spellcheck_c_tests): Rename to...
12311 (spellcheck_cc_tests): ...this.
12312 * sreal.cc (sreal_c_tests): Rename to...
12313 (sreal_cc_tests): ...this.
12314 * toplev.cc (toplev::finalize): Update calls for _c_ to _cc_
12315 function renamings.
12316 * tree-cfg.cc (tree_cfg_c_tests): Rename to...
12317 (tree_cfg_cc_tests): ...this.
12318 * tree.cc (tree_c_tests): Rename to...
12319 (tree_cc_tests): ...this.
12320 * typed-splay-tree.cc (typed_splay_tree_c_tests): Rename to...
12321 (typed_splay_tree_cc_tests): ...this.
12322 * vec-perm-indices.cc (vec_perm_indices_c_tests): Rename to...
12323 (vec_perm_indices_cc_tests): ...this.
12324 * vec.cc (vec_c_tests): Rename to...
12325 (vec_cc_tests): ...this.
12327 2022-01-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
12329 PR tree-optimization/103997
12330 * tree-vect-loop.cc (vect_analyze_loop): Fix mode skipping for epilogue
12333 2022-01-19 Jakub Jelinek <jakub@redhat.com>
12335 PR middle-end/102860
12336 * match.pd (x %[fl] y -> x % y): New simplification for
12337 unsigned integral types.
12338 * optabs-tree.cc (optab_for_tree_code): Return unknown_optab
12339 for {CEIL,FLOOR,ROUND}_{DIV,MOD}_EXPR with VECTOR_TYPE.
12341 2022-01-19 Richard Biener <rguenther@suse.de>
12343 PR tree-optimization/104112
12344 * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
12345 for required intermediate vector types.
12347 2022-01-19 Jakub Jelinek <jakub@redhat.com>
12349 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Add default:.
12351 2022-01-19 Martin Liska <mliska@suse.cz>
12353 * configure.ac: Remove -Wno-error=format-diag.
12354 * configure: Regenerate.
12356 2022-01-19 Martin Liska <mliska@suse.cz>
12358 * config/riscv/riscv.cc (riscv_handle_type_attribute):
12359 Update one -Wformat-diag string in warning message.
12361 2022-01-19 Jakub Jelinek <jakub@redhat.com>
12363 PR middle-end/104103
12364 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Don't check
12367 2022-01-19 Jakub Jelinek <jakub@redhat.com>
12370 * fold-const.cc (address_compare): Consider different STRING_CSTs
12371 with the same lengths that memcmp the same as equal, not different.
12373 2022-01-19 Jakub Jelinek <jakub@redhat.com>
12375 * config/i386/sse.md (*aes<aeswideklvariant>u*): Use %0 instead of
12378 2022-01-19 Martin Liska <mliska@suse.cz>
12379 Thomas Schwinge <thomas@codesourcery.com>
12381 * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Update
12384 2022-01-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
12387 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Use also
12390 2022-01-19 Jakub Jelinek <jakub@redhat.com>
12393 * config/i386/sse.md
12394 (<avx512>_<complexopname>_<mode><maskc_name><round_name>,
12395 avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>,
12396 avx512dq_mul<mode>3<mask_name>, <avx2_avx512>_permvar<mode><mask_name>,
12397 avx2_perm<mode>_1<mask_name>, avx512f_perm<mode>_1<mask_name>,
12398 avx512dq_rangep<mode><mask_name><round_saeonly_name>,
12399 avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>,
12400 <avx512>_getmant<mode><mask_name><round_saeonly_name>,
12401 avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
12402 Use vxorps\t%x0, %x0, %x0 instead of vxorps\t{%x0, %x0, %x0}.
12404 2022-01-19 Martin Sebor <msebor@redhat.com>
12406 PR middle-end/104069
12407 * gimple-ssa-warn-access.cc (pointers_related_p): Return false for
12408 an unknown result as documented.
12410 2022-01-18 Andrew Pinski <apinski@marvell.com>
12412 * ipa-split.cc (visit_bb): Fix comment before the
12413 warning/error attribute checking code.
12415 2022-01-18 David Faust <david.faust@oracle.com>
12417 * config/bpf/coreout.cc (bpf_core_reloc_add): Do not account
12418 for base strtab offset yet as it may change.
12419 (output_asm_btfext_core_reloc): Do so here instead.
12420 (output_btfext_core_sections): Likewise.
12422 2022-01-18 David Faust <david.faust@oracle.com>
12424 * config/bpf/coreout.cc (output_btfext_header): Account for
12425 4-byte record size in core_relo_len.
12426 (output_btfext_core_sections): Only write record size once.
12427 * config/bpf/coreout.h (btf_ext_section_header): Delete unused
12430 2022-01-18 Maciej W. Rozycki <macro@embecosm.com>
12432 * common/config/riscv/riscv-common.cc
12433 (riscv_subset_list::parse_multiletter_ext): Move pointer
12434 arithmetic ahead of `free'.
12436 2022-01-18 Jason Merrill <jason@redhat.com>
12439 * gimplify.cc (gimple_push_cleanup): Handle eh_only in conditional
12442 2022-01-18 Sandra Loosemore <sandra@codesourcery.com>
12444 PR middle-end/103163
12445 * emit-rtl.cc (init_emit_regs): Initialize stack_limit_rtx here...
12446 (init_emit_once): ...not here.
12448 2022-01-18 Martin Liska <mliska@suse.cz>
12450 * collect2.cc (scan_libraries): Fix -Wformat-diag issues.
12451 * config/aarch64/aarch64-builtins.cc (aarch64_simd_expand_builtin): Likewise.
12452 * config/arc/arc.md: Likewise.
12453 * config/avr/avr.cc (avr_section_type_flags): Likewise.
12454 * config/bfin/bfin.cc (bfin_option_override): Likewise.
12455 (bfin_handle_longcall_attribute): Likewise.
12456 * config/cris/cris.h (FUNCTION_PROFILER): Likewise.
12457 * config/frv/frv.cc (frv_expand_builtin): Likewise.
12458 * config/ia64/ia64-c.cc (ia64_hpux_handle_builtin_pragma): Likewise.
12459 * config/iq2000/iq2000.cc (save_restore_insns): Likewise.
12460 (iq2000_print_operand_address): Likewise.
12461 (iq2000_print_operand): Likewise.
12462 * config/m32c/m32c-pragma.cc (m32c_pragma_memregs): Likewise.
12463 (m32c_pragma_address): Likewise.
12464 * config/m68k/m68k.cc (m68k_handle_fndecl_attribute): Likewise.
12465 * config/mips/mips.cc (mips_handle_interrupt_attr): Likewise.
12466 (mips_set_compression_mode): Likewise.
12467 * config/mmix/mmix.cc (mmix_function_profiler): Likewise.
12468 (mmix_print_operand): Likewise.
12469 (mmix_output_shiftvalue_op_from_str): Likewise.
12470 (mmix_output_shifted_value): Likewise.
12471 * config/msp430/driver-msp430.cc (msp430_select_hwmult_lib): Likewise.
12472 * config/msp430/msp430.cc (msp430_option_override): Likewise.
12473 (msp430_attr): Likewise.
12474 (msp430_expand_delay_cycles): Likewise.
12475 (msp430_expand_builtin): Likewise.
12476 * config/rs6000/aix73.h: Likewise.
12477 * config/rs6000/rtems.h (INVALID_64BIT): Likewise.
12478 * config/rx/rx.cc (rx_expand_builtin_mvtc): Likewise.
12479 (valid_psw_flag): Likewise.
12480 * config/sh/sh.cc (parse_validate_atomic_model_option): Likewise.
12481 * config/stormy16/stormy16.cc (xstormy16_function_profiler): Likewise.
12482 (xstormy16_expand_builtin_va_start): Likewise.
12483 (xstormy16_handle_below100_attribute): Likewise.
12485 2022-01-18 Martin Liska <mliska@suse.cz>
12487 * config/vms/vms-c.cc (vms_pragma_nostandard): Fix -Wformat-diag
12489 (vms_pragma_standard): Likewise.
12490 (vms_pragma_extern_prefix): Likewise.
12492 2022-01-18 Martin Liska <mliska@suse.cz>
12494 * config/xtensa/xtensa.cc (print_operand): Fix warnings.
12495 (print_operand_address): Likewise.
12496 (xtensa_multibss_section_type_flags): Likewise.
12498 2022-01-18 Martin Liska <mliska@suse.cz>
12500 * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Change
12501 wording of an error message.
12503 2022-01-18 Martin Liska <mliska@suse.cz>
12505 * config/v850/v850-c.cc (pop_data_area): Fix -Wformat-diag
12507 (ghs_pragma_section): Likewise.
12508 (ghs_pragma_interrupt): Likewise.
12509 (ghs_pragma_starttda): Likewise.
12510 (ghs_pragma_startsda): Likewise.
12511 (ghs_pragma_startzda): Likewise.
12512 (ghs_pragma_endtda): Likewise.
12513 (ghs_pragma_endsda): Likewise.
12514 (ghs_pragma_endzda): Likewise.
12516 2022-01-18 Martin Liska <mliska@suse.cz>
12518 * config/nds32/nds32-intrinsic.cc (nds32_expand_builtin_impl):
12520 * config/nds32/nds32-intrinsic.md: Likewise.
12521 * config/nds32/nds32-isr.cc (nds32_check_isr_attrs_conflict): Likewise.
12522 * config/nds32/nds32.cc (nds32_print_operand): Likewise.
12523 (nds32_insert_attributes): Likewise.
12525 2022-01-18 Martin Liska <mliska@suse.cz>
12527 * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Wrap
12529 * config/nvptx/nvptx.md: Remove trailing dot.
12531 2022-01-18 Martin Liska <mliska@suse.cz>
12533 * common/config/riscv/riscv-common.cc (riscv_subset_list::add):
12534 Wrap keywords with quotes and remove trailing dots.
12535 (riscv_subset_list::parsing_subset_version): Likewise.
12536 (riscv_subset_list::parse_std_ext): Likewise.
12537 (riscv_subset_list::parse_multiletter_ext): Likewise.
12538 * config/riscv/riscv.cc (riscv_handle_type_attribute): Likewise.
12540 2022-01-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
12542 * tree-vect-loop.cc (vect_estimate_min_profitable_iters): Pass new
12543 argument suggested_unroll_factor.
12544 (vect_analyze_loop_costing): Likewise.
12545 (_loop_vec_info::_loop_vec_info): Initialize new member
12546 suggested_unroll_factor.
12547 (vect_determine_partial_vectors_and_peeling): Make epilogue of unrolled
12548 main loop use partial vectors.
12549 (vect_analyze_loop_2): Pass and use new argument
12550 suggested_unroll_factor.
12551 (vect_analyze_loop_1): Change to intialize local
12552 suggested_unroll_factor and use it.
12553 (vectorizable_reduction): Don't use single_defuse_cycle when unrolling.
12554 * tree-vectorizer.h (_loop_vec_info::_loop_vec_info): Add new member
12555 suggested_unroll_factor.
12556 (vector_costs::vector_costs): Add new member m_suggested_unroll_factor.
12557 (vector_costs::suggested_unroll_factor): New getter function.
12558 (finish_cost): Set return argument suggested_unroll_factor.
12560 2022-01-18 Andrew MacLeod <amacleod@redhat.com>
12562 PR tree-optimization/104038
12563 * doc/invoke.texi (relation-block-limit): New.
12564 * params.opt (relation-block-limit): New.
12565 * value-relation.cc (dom_oracle::register_relation): Check for NULL
12566 record before invoking transitive registery.
12567 (dom_oracle::set_one_relation): Check limit before creating record.
12568 (dom_oracle::register_transitives): Stop when no record created.
12569 * value-relation.h (relation_chain_head::m_num_relations): New.
12571 2022-01-18 Richard Biener <rguenther@suse.de>
12574 * ipa-inline.cc (inline_small_functions): Do not enqueue call
12575 edges originating in functions compiled with -Og.
12577 2022-01-18 Richard Biener <rguenther@suse.de>
12580 * passes.def (pass_all_optimizations_g): Remove pass_modref
12581 and pass_local_pure_const.
12583 2022-01-18 Martin Liska <mliska@suse.cz>
12585 * config/s390/s390.cc: Fix -Wformat-diag warnings.
12587 2022-01-18 Martin Liska <mliska@suse.cz>
12589 * config/s390/s390-c.cc (s390_expand_overloaded_builtin): Wrap
12591 (s390_resolve_overloaded_builtin): Remove trailing dot.
12592 * config/s390/s390.cc (s390_const_operand_ok): Use - for range.
12593 (s390_expand_builtin): Remove trailing dot.
12594 (s390_emit_prologue): Likewise, use semicolon.
12595 (s390_option_override_internal): Update keyword.
12596 * varasm.cc (do_assemble_alias): Wrap keyword in quotes.
12598 2022-01-18 Martin Liska <mliska@suse.cz>
12600 * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Wrap
12601 keywords and use %qs instead of %<%s%>.
12603 2022-01-18 Richard Biener <rguenther@suse.de>
12605 PR tree-optimization/103987
12606 * tree-ssa-dse.cc (dse_optimize_call): Properly guard modref
12607 query with a pointer check.
12609 2022-01-18 Richard Sandiford <richard.sandiford@arm.com>
12612 * config/aarch64/aarch64.cc (aarch64_check_consecutive_mems):
12613 When using MEM_EXPR, require the base to be a decl.
12615 2022-01-18 Richard Biener <rguenther@suse.de>
12617 * cgraph.h (struct cgraph_simd_clone_arg): Re-arrange fields to
12619 * function.h (struct function): Likewise.
12621 2022-01-18 Arnaud Charlet <charlet@adacore.com>
12623 * doc/install.texi: Update prerequisites for GNAT
12625 2022-01-18 Andrew Pinski <apinski@marvell.com>
12627 PR tree-optimization/101941
12628 * ipa-split.cc (visit_bb): Disallow function calls where
12629 the function has either error or warning attribute.
12631 2022-01-18 Richard Biener <rguenther@suse.de>
12633 PR tree-optimization/104064
12634 * tree-vect-data-refs.cc (vect_analyze_data_ref_accesses): Check
12635 DR_INIT fits in a signed HWI, represent the difference from the
12636 first DR in unsigned.
12638 2022-01-17 Martin Liska <mliska@suse.cz>
12640 * Makefile.in: Rename .c names to .cc.
12641 * config.gcc: Likewise.
12642 * configure: Regenerate. Likewise.
12643 * configure.ac: Likewise.
12644 * gengtype.cc (set_gc_used): Likewise.
12645 (source_dot_c_frul): Likewise.
12646 (source_dot_cc_frul): Likewise.
12647 (struct file_rule_st): Likewise.
12648 (close_output_files): Likewise.
12649 * config/avr/t-avr: Use CXXFLAGS_* and CXX_FOR_BUILD.
12651 2022-01-17 Martin Liska <mliska@suse.cz>
12653 * Makefile.in: Rename .c names to .cc.
12654 * alias.h: Likewise.
12655 * asan.cc: Likewise.
12656 * auto-profile.h: Likewise.
12657 * basic-block.h (struct basic_block_d): Likewise.
12658 * btfout.cc: Likewise.
12659 * builtins.cc (expand_builtin_longjmp): Likewise.
12660 (validate_arg): Likewise.
12661 (access_ref::offset_bounded): Likewise.
12662 * caller-save.cc (reg_restore_code): Likewise.
12663 (setup_save_areas): Likewise.
12664 * calls.cc (initialize_argument_information): Likewise.
12665 (expand_call): Likewise.
12666 (emit_library_call_value_1): Likewise.
12667 * cfg-flags.def (RTL): Likewise.
12668 (SIBCALL): Likewise.
12669 (CAN_FALLTHRU): Likewise.
12670 * cfganal.cc (post_order_compute): Likewise.
12671 * cfgcleanup.cc (try_simplify_condjump): Likewise.
12672 (merge_blocks_move_predecessor_nojumps): Likewise.
12673 (merge_blocks_move_successor_nojumps): Likewise.
12674 (merge_blocks_move): Likewise.
12675 (old_insns_match_p): Likewise.
12676 (try_crossjump_bb): Likewise.
12677 * cfgexpand.cc (expand_gimple_stmt): Likewise.
12678 * cfghooks.cc (split_block_before_cond_jump): Likewise.
12679 (profile_record_check_consistency): Likewise.
12680 * cfghooks.h: Likewise.
12681 * cfgrtl.cc (pass_free_cfg::execute): Likewise.
12682 (rtl_can_merge_blocks): Likewise.
12683 (try_redirect_by_replacing_jump): Likewise.
12684 (make_pass_outof_cfg_layout_mode): Likewise.
12685 (cfg_layout_can_merge_blocks_p): Likewise.
12686 * cgraph.cc (release_function_body): Likewise.
12687 (cgraph_node::get_fun): Likewise.
12688 * cgraph.h (struct cgraph_node): Likewise.
12689 (asmname_hasher::equal): Likewise.
12690 (cgraph_inline_failed_type): Likewise.
12691 (thunk_adjust): Likewise.
12692 (dump_callgraph_transformation): Likewise.
12693 (record_references_in_initializer): Likewise.
12694 (ipa_discover_variable_flags): Likewise.
12695 * cgraphclones.cc (GTY): Likewise.
12696 * cgraphunit.cc (symbol_table::finalize_compilation_unit): Likewise.
12697 * collect-utils.h (GCC_COLLECT_UTILS_H): Likewise.
12698 * collect2-aix.h (GCC_COLLECT2_AIX_H): Likewise.
12699 * collect2.cc (maybe_run_lto_and_relink): Likewise.
12700 * combine-stack-adj.cc: Likewise.
12701 * combine.cc (setup_incoming_promotions): Likewise.
12702 (combine_simplify_rtx): Likewise.
12703 (count_rtxs): Likewise.
12704 * common.opt: Likewise.
12705 * common/config/aarch64/aarch64-common.cc: Likewise.
12706 * common/config/arm/arm-common.cc (arm_asm_auto_mfpu): Likewise.
12707 * common/config/avr/avr-common.cc: Likewise.
12708 * common/config/i386/i386-isas.h (struct _isa_names_table): Likewise.
12709 * conditions.h: Likewise.
12710 * config.gcc: Likewise.
12711 * config/aarch64/aarch64-builtins.cc (aarch64_resolve_overloaded_memtag): Likewise.
12712 * config/aarch64/aarch64-protos.h (aarch64_classify_address): Likewise.
12713 (aarch64_get_extension_string_for_isa_flags): Likewise.
12714 * config/aarch64/aarch64-sve-builtins.cc (function_builder::add_function): Likewise.
12715 * config/aarch64/aarch64.cc (aarch64_regmode_natural_size): Likewise.
12716 (aarch64_sched_first_cycle_multipass_dfa_lookahead): Likewise.
12717 (aarch64_option_valid_attribute_p): Likewise.
12718 (aarch64_short_vector_p): Likewise.
12719 (aarch64_float_const_representable_p): Likewise.
12720 * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise.
12721 (ASM_OUTPUT_POOL_EPILOGUE): Likewise.
12723 * config/aarch64/cortex-a57-fma-steering.cc: Likewise.
12724 * config/aarch64/driver-aarch64.cc (contains_core_p): Likewise.
12725 * config/aarch64/t-aarch64: Likewise.
12726 * config/aarch64/x-aarch64: Likewise.
12727 * config/aarch64/x-darwin: Likewise.
12728 * config/alpha/alpha-protos.h: Likewise.
12729 * config/alpha/alpha.cc (alpha_scalar_mode_supported_p): Likewise.
12730 * config/alpha/alpha.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
12731 (enum reg_class): Likewise.
12732 * config/alpha/alpha.md: Likewise.
12733 * config/alpha/driver-alpha.cc (AMASK_LOCKPFTCHOK): Likewise.
12734 * config/alpha/x-alpha: Likewise.
12735 * config/arc/arc-protos.h (arc_eh_uses): Likewise.
12736 * config/arc/arc.cc (ARC_OPT): Likewise.
12737 (arc_ccfsm_advance): Likewise.
12738 (arc_arg_partial_bytes): Likewise.
12739 (conditionalize_nonjump): Likewise.
12740 * config/arc/arc.md: Likewise.
12741 * config/arc/builtins.def: Likewise.
12742 * config/arc/t-arc: Likewise.
12743 * config/arm/arm-c.cc (arm_resolve_overloaded_builtin): Likewise.
12744 (arm_pragma_target_parse): Likewise.
12745 * config/arm/arm-protos.h (save_restore_target_globals): Likewise.
12746 (arm_cpu_cpp_builtins): Likewise.
12747 * config/arm/arm.cc (vfp3_const_double_index): Likewise.
12748 (shift_op): Likewise.
12749 (thumb2_final_prescan_insn): Likewise.
12750 (arm_final_prescan_insn): Likewise.
12751 (arm_asm_output_labelref): Likewise.
12752 (arm_small_register_classes_for_mode_p): Likewise.
12753 * config/arm/arm.h: Likewise.
12754 * config/arm/arm.md: Likewise.
12755 * config/arm/driver-arm.cc: Likewise.
12756 * config/arm/symbian.h: Likewise.
12757 * config/arm/t-arm: Likewise.
12758 * config/arm/thumb1.md: Likewise.
12759 * config/arm/x-arm: Likewise.
12760 * config/avr/avr-c.cc (avr_register_target_pragmas): Likewise.
12761 * config/avr/avr-fixed.md: Likewise.
12762 * config/avr/avr-log.cc (avr_log_vadump): Likewise.
12763 * config/avr/avr-mcus.def: Likewise.
12764 * config/avr/avr-modes.def (FRACTIONAL_INT_MODE): Likewise.
12765 * config/avr/avr-passes.def (INSERT_PASS_BEFORE): Likewise.
12766 * config/avr/avr-protos.h (make_avr_pass_casesi): Likewise.
12767 * config/avr/avr.cc (avr_option_override): Likewise.
12768 (avr_build_builtin_va_list): Likewise.
12769 (avr_mode_dependent_address_p): Likewise.
12770 (avr_function_arg_advance): Likewise.
12771 (avr_asm_output_aligned_decl_common): Likewise.
12772 * config/avr/avr.h (RETURN_ADDR_RTX): Likewise.
12773 (SUPPORTS_INIT_PRIORITY): Likewise.
12774 * config/avr/avr.md: Likewise.
12775 * config/avr/builtins.def: Likewise.
12776 * config/avr/gen-avr-mmcu-specs.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
12777 * config/avr/gen-avr-mmcu-texi.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
12779 * config/avr/t-avr: Likewise.
12780 * config/bfin/bfin.cc (frame_related_constant_load): Likewise.
12781 * config/bpf/bpf-protos.h (GCC_BPF_PROTOS_H): Likewise.
12782 * config/bpf/bpf.h (enum reg_class): Likewise.
12783 * config/bpf/t-bpf: Likewise.
12784 * config/c6x/c6x-protos.h (GCC_C6X_PROTOS_H): Likewise.
12785 * config/cr16/cr16-protos.h: Likewise.
12786 * config/cris/cris.cc (cris_address_cost): Likewise.
12787 (cris_side_effect_mode_ok): Likewise.
12788 (cris_init_machine_status): Likewise.
12789 (cris_emit_movem_store): Likewise.
12790 * config/cris/cris.h (INDEX_REG_CLASS): Likewise.
12791 (enum reg_class): Likewise.
12792 (struct cum_args): Likewise.
12793 * config/cris/cris.opt: Likewise.
12794 * config/cris/sync.md: Likewise.
12795 * config/csky/csky.cc (csky_expand_prologue): Likewise.
12796 * config/darwin-c.cc: Likewise.
12797 * config/darwin-f.cc: Likewise.
12798 * config/darwin-sections.def (zobj_const_section): Likewise.
12799 * config/darwin.cc (output_objc_section_asm_op): Likewise.
12800 (fprintf): Likewise.
12801 * config/darwin.h (GTY): Likewise.
12802 * config/elfos.h: Likewise.
12803 * config/epiphany/epiphany-sched.md: Likewise.
12804 * config/epiphany/epiphany.cc (epiphany_function_value): Likewise.
12805 * config/epiphany/epiphany.h (GTY): Likewise.
12806 (NO_FUNCTION_CSE): Likewise.
12807 * config/epiphany/mode-switch-use.cc: Likewise.
12808 * config/epiphany/predicates.md: Likewise.
12809 * config/epiphany/t-epiphany: Likewise.
12810 * config/fr30/fr30-protos.h: Likewise.
12811 * config/frv/frv-protos.h: Likewise.
12812 * config/frv/frv.cc (TLS_BIAS): Likewise.
12813 * config/frv/frv.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
12814 * config/ft32/ft32-protos.h: Likewise.
12815 * config/gcn/gcn-hsa.h (ASM_APP_OFF): Likewise.
12816 * config/gcn/gcn.cc (gcn_init_libfuncs): Likewise.
12817 * config/gcn/mkoffload.cc (copy_early_debug_info): Likewise.
12818 * config/gcn/t-gcn-hsa: Likewise.
12819 * config/gcn/t-omp-device: Likewise.
12820 * config/h8300/h8300-protos.h (GCC_H8300_PROTOS_H): Likewise.
12821 (same_cmp_following_p): Likewise.
12822 * config/h8300/h8300.cc (F): Likewise.
12823 * config/h8300/h8300.h (struct cum_arg): Likewise.
12824 (BRANCH_COST): Likewise.
12825 * config/i386/cygming.h (DEFAULT_PCC_STRUCT_RETURN): Likewise.
12826 * config/i386/djgpp.h (TARGET_ASM_LTO_END): Likewise.
12827 * config/i386/dragonfly.h (NO_PROFILE_COUNTERS): Likewise.
12828 * config/i386/driver-i386.cc (detect_caches_intel): Likewise.
12829 * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise.
12830 * config/i386/i386-c.cc (ix86_target_macros): Likewise.
12831 * config/i386/i386-expand.cc (get_mode_wider_vector): Likewise.
12832 * config/i386/i386-options.cc (ix86_set_func_type): Likewise.
12833 * config/i386/i386-protos.h (ix86_extract_perm_from_pool_constant): Likewise.
12834 (ix86_register_pragmas): Likewise.
12835 (ix86_d_has_stdcall_convention): Likewise.
12836 (i386_pe_seh_init_sections): Likewise.
12837 * config/i386/i386.cc (ix86_function_arg_regno_p): Likewise.
12838 (ix86_function_value_regno_p): Likewise.
12839 (ix86_compute_frame_layout): Likewise.
12840 (legitimize_pe_coff_symbol): Likewise.
12841 (output_pic_addr_const): Likewise.
12842 * config/i386/i386.h (defined): Likewise.
12843 (host_detect_local_cpu): Likewise.
12844 (CONSTANT_ADDRESS_P): Likewise.
12845 (DEFAULT_LARGE_SECTION_THRESHOLD): Likewise.
12846 (struct machine_frame_state): Likewise.
12847 * config/i386/i386.md: Likewise.
12848 * config/i386/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
12849 * config/i386/mmx.md: Likewise.
12850 * config/i386/sse.md: Likewise.
12851 * config/i386/t-cygming: Likewise.
12852 * config/i386/t-djgpp: Likewise.
12853 * config/i386/t-gnu-property: Likewise.
12854 * config/i386/t-i386: Likewise.
12855 * config/i386/t-intelmic: Likewise.
12856 * config/i386/t-omp-device: Likewise.
12857 * config/i386/winnt-cxx.cc (i386_pe_type_dllimport_p): Likewise.
12858 (i386_pe_adjust_class_at_definition): Likewise.
12859 * config/i386/winnt.cc (gen_stdcall_or_fastcall_suffix): Likewise.
12860 (i386_pe_mangle_decl_assembler_name): Likewise.
12861 (i386_pe_encode_section_info): Likewise.
12862 * config/i386/x-cygwin: Likewise.
12863 * config/i386/x-darwin: Likewise.
12864 * config/i386/x-i386: Likewise.
12865 * config/i386/x-mingw32: Likewise.
12866 * config/i386/x86-tune-sched-core.cc: Likewise.
12867 * config/i386/x86-tune.def: Likewise.
12868 * config/i386/xm-djgpp.h (STANDARD_STARTFILE_PREFIX_1): Likewise.
12869 * config/ia64/freebsd.h: Likewise.
12870 * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Likewise.
12871 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Likewise.
12872 * config/ia64/ia64.cc (ia64_function_value_regno_p): Likewise.
12873 (ia64_secondary_reload_class): Likewise.
12874 (bundling): Likewise.
12875 * config/ia64/ia64.h: Likewise.
12876 * config/ia64/ia64.md: Likewise.
12877 * config/ia64/predicates.md: Likewise.
12878 * config/ia64/sysv4.h: Likewise.
12879 * config/ia64/t-ia64: Likewise.
12880 * config/iq2000/iq2000.h (FUNCTION_MODE): Likewise.
12881 * config/iq2000/iq2000.md: Likewise.
12882 * config/linux.h (TARGET_HAS_BIONIC): Likewise.
12884 * config/m32c/m32c.cc (m32c_function_needs_enter): Likewise.
12885 * config/m32c/m32c.h (MAX_REGS_PER_ADDRESS): Likewise.
12886 * config/m32c/t-m32c: Likewise.
12887 * config/m32r/m32r-protos.h: Likewise.
12888 * config/m32r/m32r.cc (m32r_print_operand): Likewise.
12889 * config/m32r/m32r.h: Likewise.
12890 * config/m32r/m32r.md: Likewise.
12891 * config/m68k/m68k-isas.def: Likewise.
12892 * config/m68k/m68k-microarchs.def: Likewise.
12893 * config/m68k/m68k-protos.h (strict_low_part_peephole_ok): Likewise.
12894 (m68k_epilogue_uses): Likewise.
12895 * config/m68k/m68k.cc (m68k_call_tls_get_addr): Likewise.
12896 (m68k_sched_adjust_cost): Likewise.
12897 (m68k_sched_md_init): Likewise.
12898 * config/m68k/m68k.h (__transfer_from_trampoline): Likewise.
12899 (enum m68k_function_kind): Likewise.
12900 * config/m68k/m68k.md: Likewise.
12901 * config/m68k/m68kemb.h: Likewise.
12902 * config/m68k/uclinux.h (ENDFILE_SPEC): Likewise.
12903 * config/mcore/mcore-protos.h: Likewise.
12904 * config/mcore/mcore.cc (mcore_expand_insv): Likewise.
12905 (mcore_expand_prolog): Likewise.
12906 * config/mcore/mcore.h (TARGET_MCORE): Likewise.
12907 * config/mcore/mcore.md: Likewise.
12908 * config/microblaze/microblaze-protos.h: Likewise.
12909 * config/microblaze/microblaze.cc (microblaze_legitimate_pic_operand): Likewise.
12910 (microblaze_function_prologue): Likewise.
12911 (microblaze_function_epilogue): Likewise.
12912 (microblaze_select_section): Likewise.
12913 (microblaze_asm_output_mi_thunk): Likewise.
12914 (microblaze_eh_return): Likewise.
12915 * config/microblaze/microblaze.h: Likewise.
12916 * config/microblaze/microblaze.md: Likewise.
12917 * config/microblaze/t-microblaze: Likewise.
12918 * config/mips/driver-native.cc: Likewise.
12919 * config/mips/loongson2ef.md: Likewise.
12920 * config/mips/mips-protos.h (mips_expand_vec_cmp_expr): Likewise.
12921 * config/mips/mips.cc (mips_rtx_costs): Likewise.
12922 (mips_output_filename): Likewise.
12923 (mips_output_function_prologue): Likewise.
12924 (mips_output_function_epilogue): Likewise.
12925 (mips_output_mi_thunk): Likewise.
12926 * config/mips/mips.h: Likewise.
12927 * config/mips/mips.md: Likewise.
12928 * config/mips/t-mips: Likewise.
12929 * config/mips/x-native: Likewise.
12930 * config/mmix/mmix-protos.h: Likewise.
12931 * config/mmix/mmix.cc (mmix_option_override): Likewise.
12932 (mmix_dbx_register_number): Likewise.
12933 (mmix_expand_prologue): Likewise.
12934 * config/mmix/mmix.h: Likewise.
12935 * config/mmix/mmix.md: Likewise.
12936 * config/mmix/predicates.md: Likewise.
12937 * config/mn10300/mn10300.cc (mn10300_symbolic_operand): Likewise.
12938 (mn10300_legitimate_pic_operand_p): Likewise.
12939 * config/mn10300/mn10300.h (enum reg_class): Likewise.
12940 (NO_FUNCTION_CSE): Likewise.
12941 * config/moxie/moxie-protos.h: Likewise.
12942 * config/moxie/uclinux.h (TARGET_LIBC_HAS_FUNCTION): Likewise.
12943 * config/msp430/msp430-devices.cc (extract_devices_dir_from_exec_prefix): Likewise.
12944 * config/msp430/msp430.cc (msp430_gimplify_va_arg_expr): Likewise.
12945 (msp430_incoming_return_addr_rtx): Likewise.
12946 * config/msp430/msp430.h (msp430_get_linker_devices_include_path): Likewise.
12947 * config/msp430/t-msp430: Likewise.
12948 * config/nds32/nds32-cost.cc (nds32_rtx_costs_speed_prefer): Likewise.
12949 (nds32_rtx_costs_size_prefer): Likewise.
12950 (nds32_init_rtx_costs): Likewise.
12951 * config/nds32/nds32-doubleword.md: Likewise.
12952 * config/nds32/nds32.cc (nds32_memory_move_cost): Likewise.
12953 (nds32_builtin_decl): Likewise.
12954 * config/nds32/nds32.h (enum nds32_16bit_address_type): Likewise.
12955 (enum nds32_isr_nested_type): Likewise.
12956 (enum reg_class): Likewise.
12957 * config/nds32/predicates.md: Likewise.
12958 * config/nds32/t-nds32: Likewise.
12959 * config/nios2/nios2.cc (nios2_pragma_target_parse): Likewise.
12960 * config/nvptx/nvptx-protos.h: Likewise.
12961 * config/nvptx/nvptx.cc (nvptx_goacc_expand_var_decl): Likewise.
12962 * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Likewise.
12963 * config/nvptx/t-nvptx: Likewise.
12964 * config/nvptx/t-omp-device: Likewise.
12965 * config/pa/elf.h: Likewise.
12966 * config/pa/pa-linux.h (GLOBAL_ASM_OP): Likewise.
12967 * config/pa/pa-netbsd.h (GLOBAL_ASM_OP): Likewise.
12968 * config/pa/pa-openbsd.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
12969 * config/pa/pa-protos.h (pa_eh_return_handler_rtx): Likewise.
12970 (pa_legitimize_reload_address): Likewise.
12971 (pa_can_use_return_insn): Likewise.
12972 * config/pa/pa.cc (mem_shadd_or_shadd_rtx_p): Likewise.
12973 (som_output_text_section_asm_op): Likewise.
12974 * config/pa/pa.h (PROFILE_BEFORE_PROLOGUE): Likewise.
12975 * config/pa/pa.md: Likewise.
12976 * config/pa/som.h: Likewise.
12977 * config/pa/t-pa: Likewise.
12978 * config/pdp11/pdp11.cc (decode_pdp11_d): Likewise.
12979 * config/pdp11/pdp11.h: Likewise.
12980 * config/pdp11/pdp11.md: Likewise.
12981 * config/pdp11/t-pdp11: Likewise.
12982 * config/pru/pru.md: Likewise.
12983 * config/pru/t-pru: Likewise.
12984 * config/riscv/riscv-protos.h (NUM_SYMBOL_TYPES): Likewise.
12985 (riscv_gpr_save_operation_p): Likewise.
12986 (riscv_d_register_target_info): Likewise.
12987 (riscv_init_builtins): Likewise.
12988 * config/riscv/riscv.cc (riscv_output_mi_thunk): Likewise.
12989 * config/riscv/riscv.h (CSW_MAX_OFFSET): Likewise.
12990 * config/riscv/t-riscv: Likewise.
12991 * config/rl78/rl78.cc (rl78_asm_ctor_dtor): Likewise.
12992 * config/rl78/t-rl78: Likewise.
12993 * config/rs6000/aix.h: Likewise.
12994 * config/rs6000/aix71.h (ASM_SPEC_COMMON): Likewise.
12995 * config/rs6000/aix72.h (ASM_SPEC_COMMON): Likewise.
12996 * config/rs6000/aix73.h (ASM_SPEC_COMMON): Likewise.
12997 * config/rs6000/darwin.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
12998 * config/rs6000/driver-rs6000.cc: Likewise.
12999 * config/rs6000/freebsd.h: Likewise.
13000 * config/rs6000/freebsd64.h: Likewise.
13001 * config/rs6000/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
13002 * config/rs6000/rbtree.cc: Likewise.
13003 * config/rs6000/rbtree.h: Likewise.
13004 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Likewise.
13005 * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Likewise.
13006 (rs6000_expand_builtin): Likewise.
13007 (rs6000_init_builtins): Likewise.
13008 * config/rs6000/rs6000-cpus.def: Likewise.
13009 * config/rs6000/rs6000-gen-builtins.cc (write_init_ovld_table): Likewise.
13010 * config/rs6000/rs6000-internal.h (ALTIVEC_REG_BIT): Likewise.
13011 (quad_address_offset_p): Likewise.
13012 * config/rs6000/rs6000-logue.cc (interesting_frame_related_regno): Likewise.
13013 (rs6000_emit_epilogue): Likewise.
13014 * config/rs6000/rs6000-overload.def: Likewise.
13015 * config/rs6000/rs6000-p8swap.cc: Likewise.
13016 * config/rs6000/rs6000-protos.h (GCC_RS6000_PROTOS_H): Likewise.
13017 (rs6000_const_f32_to_i32): Likewise.
13018 * config/rs6000/rs6000.cc (legitimate_lo_sum_address_p): Likewise.
13019 (rs6000_debug_legitimize_address): Likewise.
13020 (rs6000_mode_dependent_address): Likewise.
13021 (rs6000_adjust_priority): Likewise.
13022 (rs6000_c_mode_for_suffix): Likewise.
13023 * config/rs6000/rs6000.h (defined): Likewise.
13024 (LONG_DOUBLE_TYPE_SIZE): Likewise.
13025 * config/rs6000/rs6000.md: Likewise.
13026 * config/rs6000/sysv4.h: Likewise.
13027 * config/rs6000/t-linux: Likewise.
13028 * config/rs6000/t-linux64: Likewise.
13029 * config/rs6000/t-rs6000: Likewise.
13030 * config/rs6000/x-darwin: Likewise.
13031 * config/rs6000/x-darwin64: Likewise.
13032 * config/rs6000/x-rs6000: Likewise.
13033 * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Likewise.
13034 * config/rx/rx.cc (rx_expand_builtin): Likewise.
13035 * config/s390/constraints.md: Likewise.
13036 * config/s390/driver-native.cc: Likewise.
13037 * config/s390/htmxlintrin.h: Likewise.
13038 * config/s390/s390-builtins.def (B_DEF): Likewise.
13039 (OB_DEF_VAR): Likewise.
13040 * config/s390/s390-builtins.h: Likewise.
13041 * config/s390/s390-c.cc: Likewise.
13042 * config/s390/s390-opts.h: Likewise.
13043 * config/s390/s390-protos.h (s390_check_symref_alignment): Likewise.
13044 (s390_register_target_pragmas): Likewise.
13045 * config/s390/s390.cc (s390_init_builtins): Likewise.
13046 (s390_expand_plus_operand): Likewise.
13047 (s390_expand_atomic): Likewise.
13048 (s390_valid_target_attribute_inner_p): Likewise.
13049 * config/s390/s390.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
13050 * config/s390/s390.md: Likewise.
13051 * config/s390/t-s390: Likewise.
13052 * config/s390/vx-builtins.md: Likewise.
13053 * config/s390/x-native: Likewise.
13054 * config/sh/divtab-sh4-300.cc (main): Likewise.
13055 * config/sh/divtab-sh4.cc (main): Likewise.
13056 * config/sh/divtab.cc (main): Likewise.
13057 * config/sh/elf.h: Likewise.
13058 * config/sh/sh-protos.h (sh_fsca_int2sf): Likewise.
13059 * config/sh/sh.cc (SYMBOL_FLAG_FUNCVEC_FUNCTION): Likewise.
13060 (sh_struct_value_rtx): Likewise.
13061 (sh_remove_reg_dead_or_unused_notes): Likewise.
13062 * config/sh/sh.h (MIN_UNITS_PER_WORD): Likewise.
13063 * config/sh/t-sh: Likewise.
13064 * config/sol2-protos.h (solaris_override_options): Likewise.
13065 * config/sol2.h: Likewise.
13066 * config/sparc/driver-sparc.cc: Likewise.
13067 * config/sparc/freebsd.h: Likewise.
13068 * config/sparc/sparc-protos.h (make_pass_work_around_errata): Likewise.
13069 * config/sparc/sparc.cc (sparc_output_mi_thunk): Likewise.
13070 (sparc_asan_shadow_offset): Likewise.
13071 * config/sparc/sparc.h: Likewise.
13072 * config/sparc/sparc.md: Likewise.
13073 * config/sparc/t-sparc: Likewise.
13074 * config/sparc/x-sparc: Likewise.
13075 * config/stormy16/stormy16.cc (xstormy16_mode_dependent_address_p): Likewise.
13076 * config/t-darwin: Likewise.
13077 * config/t-dragonfly: Likewise.
13078 * config/t-freebsd: Likewise.
13079 * config/t-glibc: Likewise.
13080 * config/t-linux: Likewise.
13081 * config/t-netbsd: Likewise.
13082 * config/t-openbsd: Likewise.
13083 * config/t-pnt16-warn: Likewise.
13084 * config/t-sol2: Likewise.
13085 * config/t-vxworks: Likewise.
13086 * config/t-winnt: Likewise.
13087 * config/tilegx/t-tilegx: Likewise.
13088 * config/tilegx/tilegx-c.cc: Likewise.
13089 * config/tilegx/tilegx-protos.h (tilegx_function_profiler): Likewise.
13090 * config/tilegx/tilegx.md: Likewise.
13091 * config/tilepro/t-tilepro: Likewise.
13092 * config/tilepro/tilepro-c.cc: Likewise.
13093 * config/v850/t-v850: Likewise.
13094 * config/v850/v850-protos.h: Likewise.
13095 * config/v850/v850.cc (F): Likewise.
13096 * config/v850/v850.h (enum reg_class): Likewise.
13097 (SLOW_BYTE_ACCESS): Likewise.
13098 * config/vax/vax.cc (vax_mode_dependent_address_p): Likewise.
13099 * config/vax/vax.h (enum reg_class): Likewise.
13100 * config/vax/vax.md: Likewise.
13101 * config/visium/visium.cc (visium_legitimate_address_p): Likewise.
13102 * config/visium/visium.h: Likewise.
13103 * config/vms/t-vms: Likewise.
13104 * config/vms/vms-crtlmap.map: Likewise.
13105 * config/vms/vms-protos.h (vms_c_get_vms_ver): Likewise.
13106 * config/vx-common.h: Likewise.
13107 * config/x-darwin: Likewise.
13108 * config/x-hpux: Likewise.
13109 * config/x-linux: Likewise.
13110 * config/x-netbsd: Likewise.
13111 * config/x-openbsd: Likewise.
13112 * config/x-solaris: Likewise.
13113 * config/xtensa/xtensa-protos.h (xtensa_mem_offset): Likewise.
13114 * config/xtensa/xtensa.cc (xtensa_option_override): Likewise.
13115 * config/xtensa/xtensa.h: Likewise.
13116 * configure.ac: Likewise.
13117 * context.cc: Likewise.
13118 * convert.h: Likewise.
13119 * coretypes.h: Likewise.
13120 * coverage.cc: Likewise.
13121 * coverage.h: Likewise.
13122 * cppdefault.h (struct default_include): Likewise.
13123 * cprop.cc (local_cprop_pass): Likewise.
13124 (one_cprop_pass): Likewise.
13125 * cse.cc (hash_rtx_cb): Likewise.
13126 (fold_rtx): Likewise.
13127 * ctfc.h (ctfc_get_num_vlen_bytes): Likewise.
13128 * data-streamer.h (bp_unpack_var_len_int): Likewise.
13129 (streamer_write_widest_int): Likewise.
13130 * dbgcnt.def: Likewise.
13131 * dbxout.cc (dbxout_early_global_decl): Likewise.
13132 (dbxout_common_check): Likewise.
13133 * dbxout.h: Likewise.
13134 * debug.h (struct gcc_debug_hooks): Likewise.
13135 (dump_go_spec_init): Likewise.
13136 * df-core.cc: Likewise.
13137 * df-scan.cc (df_insn_info_delete): Likewise.
13138 (df_insn_delete): Likewise.
13139 * df.h (debug_df_chain): Likewise.
13140 (can_move_insns_across): Likewise.
13141 * dfp.cc (decimal_from_binary): Likewise.
13142 * diagnostic-color.cc: Likewise.
13143 * diagnostic-event-id.h: Likewise.
13144 * diagnostic-show-locus.cc (test_one_liner_labels): Likewise.
13145 * diagnostic.cc (bt_callback): Likewise.
13146 (num_digits): Likewise.
13147 * doc/avr-mmcu.texi: Likewise.
13148 * doc/cfg.texi: Likewise.
13149 * doc/contrib.texi: Likewise.
13150 * doc/cppinternals.texi: Likewise.
13151 * doc/extend.texi: Likewise.
13152 * doc/generic.texi: Likewise.
13153 * doc/gimple.texi: Likewise.
13154 * doc/gty.texi: Likewise.
13155 * doc/invoke.texi: Likewise.
13156 * doc/loop.texi: Likewise.
13157 * doc/lto.texi: Likewise.
13158 * doc/match-and-simplify.texi: Likewise.
13159 * doc/md.texi: Likewise.
13160 * doc/optinfo.texi: Likewise.
13161 * doc/options.texi: Likewise.
13162 * doc/passes.texi: Likewise.
13163 * doc/plugins.texi: Likewise.
13164 * doc/rtl.texi: Likewise.
13165 * doc/sourcebuild.texi: Likewise.
13166 * doc/tm.texi: Likewise.
13167 * doc/tm.texi.in: Likewise.
13168 * doc/tree-ssa.texi: Likewise.
13169 * dojump.cc (do_jump): Likewise.
13170 * dojump.h: Likewise.
13171 * dumpfile.cc (test_impl_location): Likewise.
13172 (test_capture_of_dump_calls): Likewise.
13173 * dumpfile.h (enum dump_kind): Likewise.
13174 (class dump_location_t): Likewise.
13175 (dump_enabled_p): Likewise.
13176 (enable_rtl_dump_file): Likewise.
13177 (dump_combine_total_stats): Likewise.
13178 * dwarf2asm.cc (dw2_asm_output_delta_uleb128): Likewise.
13179 * dwarf2ctf.h (ctf_debug_finish): Likewise.
13180 * dwarf2out.cc (dwarf2out_begin_prologue): Likewise.
13181 (struct loc_descr_context): Likewise.
13182 (rtl_for_decl_location): Likewise.
13183 (gen_subprogram_die): Likewise.
13184 (gen_label_die): Likewise.
13185 (is_trivial_indirect_ref): Likewise.
13186 (dwarf2out_late_global_decl): Likewise.
13187 (dwarf_file_hasher::hash): Likewise.
13188 (dwarf2out_end_source_file): Likewise.
13189 (dwarf2out_define): Likewise.
13190 (dwarf2out_early_finish): Likewise.
13191 * dwarf2out.h (struct dw_fde_node): Likewise.
13192 (struct dw_discr_list_node): Likewise.
13193 (output_loc_sequence_raw): Likewise.
13194 * emit-rtl.cc (gen_raw_REG): Likewise.
13195 (maybe_set_max_label_num): Likewise.
13196 * emit-rtl.h (struct rtl_data): Likewise.
13197 * errors.cc (internal_error): Likewise.
13198 (trim_filename): Likewise.
13199 * et-forest.cc: Likewise.
13200 * except.cc (init_eh_for_function): Likewise.
13201 * explow.cc (promote_ssa_mode): Likewise.
13202 (get_dynamic_stack_size): Likewise.
13203 * explow.h: Likewise.
13204 * expmed.h: Likewise.
13205 * expr.cc (safe_from_p): Likewise.
13206 (expand_expr_real_2): Likewise.
13207 (expand_expr_real_1): Likewise.
13208 * file-prefix-map.cc (remap_filename): Likewise.
13209 * final.cc (app_enable): Likewise.
13210 (make_pass_compute_alignments): Likewise.
13211 (final_scan_insn_1): Likewise.
13212 (final_scan_insn): Likewise.
13213 * fixed-value.h (fixed_from_string): Likewise.
13214 * flag-types.h (NO_DEBUG): Likewise.
13215 (DWARF2_DEBUG): Likewise.
13216 (VMS_DEBUG): Likewise.
13217 (BTF_DEBUG): Likewise.
13218 (enum ctf_debug_info_levels): Likewise.
13219 * fold-const.cc (const_binop): Likewise.
13220 (fold_binary_loc): Likewise.
13221 (fold_checksum_tree): Likewise.
13222 * fp-test.cc: Likewise.
13223 * function.cc (expand_function_end): Likewise.
13224 * function.h (struct function): Likewise.
13225 * fwprop.cc (should_replace_address): Likewise.
13226 * gcc-main.cc: Likewise.
13227 * gcc-rich-location.h (class gcc_rich_location): Likewise.
13228 * gcc-symtab.h: Likewise.
13229 * gcc.cc (MIN_FATAL_STATUS): Likewise.
13230 (driver_handle_option): Likewise.
13231 (quote_spec_arg): Likewise.
13232 (driver::finalize): Likewise.
13233 * gcc.h (set_input): Likewise.
13234 * gcov-dump.cc: Likewise.
13235 * gcov.cc (solve_flow_graph): Likewise.
13236 * gcse-common.cc: Likewise.
13237 * gcse.cc (make_pass_rtl_hoist): Likewise.
13238 * genattr-common.cc: Likewise.
13239 * genattrtab.cc (min_fn): Likewise.
13240 (write_const_num_delay_slots): Likewise.
13241 * genautomata.cc: Likewise.
13242 * genconditions.cc (write_one_condition): Likewise.
13243 * genconstants.cc: Likewise.
13244 * genemit.cc (gen_exp): Likewise.
13245 * generic-match-head.cc: Likewise.
13246 * genextract.cc: Likewise.
13247 * gengenrtl.cc (always_void_p): Likewise.
13248 * gengtype-parse.cc (gtymarker_opt): Likewise.
13249 * gengtype-state.cc (state_writer::state_writer): Likewise.
13250 (write_state_trailer): Likewise.
13251 (equals_type_number): Likewise.
13252 (read_state): Likewise.
13253 * gengtype.cc (open_base_files): Likewise.
13254 (struct file_rule_st): Likewise.
13255 (header_dot_h_frul): Likewise.
13256 * gengtype.h: Likewise.
13257 * genmatch.cc (main): Likewise.
13258 * genmddeps.cc: Likewise.
13259 * genmodes.cc (emit_mode_inner): Likewise.
13260 (emit_mode_unit_size): Likewise.
13261 * genpeep.cc (gen_peephole): Likewise.
13262 * genpreds.cc (write_tm_preds_h): Likewise.
13263 * genrecog.cc (validate_pattern): Likewise.
13264 (write_header): Likewise.
13266 * gensupport.cc (change_subst_attribute): Likewise.
13267 (traverse_c_tests): Likewise.
13268 (add_predicate): Likewise.
13269 (init_predicate_table): Likewise.
13270 * gensupport.h (struct optab_pattern): Likewise.
13271 (get_num_insn_codes): Likewise.
13272 (maybe_eval_c_test): Likewise.
13273 (struct pred_data): Likewise.
13274 * ggc-internal.h: Likewise.
13275 * gimple-fold.cc (maybe_fold_reference): Likewise.
13276 (get_range_strlen_tree): Likewise.
13277 * gimple-fold.h (gimple_stmt_integer_valued_real_p): Likewise.
13278 * gimple-low.cc: Likewise.
13279 * gimple-match-head.cc (directly_supported_p): Likewise.
13280 * gimple-pretty-print.h: Likewise.
13281 * gimple-ssa-sprintf.cc (format_percent): Likewise.
13282 (adjust_range_for_overflow): Likewise.
13283 * gimple-streamer.h: Likewise.
13284 * gimple.h (struct GTY): Likewise.
13285 (is_gimple_resx): Likewise.
13286 * gimplify.cc (gimplify_expr): Likewise.
13287 (gimplify_init_constructor): Likewise.
13288 (omp_construct_selector_matches): Likewise.
13289 (gimplify_omp_target_update): Likewise.
13290 (gimplify_omp_ordered): Likewise.
13291 (gimplify_va_arg_expr): Likewise.
13292 * graphite-isl-ast-to-gimple.cc (should_copy_to_new_region): Likewise.
13293 * haifa-sched.cc (increase_insn_priority): Likewise.
13294 (try_ready): Likewise.
13295 (sched_create_recovery_edges): Likewise.
13296 * ifcvt.cc (find_if_case_1): Likewise.
13297 (find_if_case_2): Likewise.
13298 * inchash.h: Likewise.
13299 * incpath.cc (add_env_var_paths): Likewise.
13300 * input.cc (dump_location_info): Likewise.
13301 (assert_loceq): Likewise.
13302 (test_lexer_string_locations_concatenation_1): Likewise.
13303 (test_lexer_string_locations_concatenation_2): Likewise.
13304 (test_lexer_string_locations_concatenation_3): Likewise.
13305 * input.h (BUILTINS_LOCATION): Likewise.
13306 (class string_concat_db): Likewise.
13307 * internal-fn.cc (expand_MUL_OVERFLOW): Likewise.
13308 (expand_LOOP_VECTORIZED): Likewise.
13309 * ipa-cp.cc (make_pass_ipa_cp): Likewise.
13310 * ipa-fnsummary.cc (remap_freqcounting_preds_after_dup): Likewise.
13311 (ipa_fn_summary_t::duplicate): Likewise.
13312 (make_pass_ipa_fn_summary): Likewise.
13313 * ipa-fnsummary.h (enum ipa_hints_vals): Likewise.
13314 * ipa-free-lang-data.cc (fld_simplified_type): Likewise.
13315 (free_lang_data_in_decl): Likewise.
13316 * ipa-inline.cc (compute_inlined_call_time): Likewise.
13317 (inline_always_inline_functions): Likewise.
13318 * ipa-inline.h (free_growth_caches): Likewise.
13319 (inline_account_function_p): Likewise.
13320 * ipa-modref.cc (modref_access_analysis::analyze_stmt): Likewise.
13321 (modref_eaf_analysis::analyze_ssa_name): Likewise.
13322 * ipa-param-manipulation.cc (ipa_param_body_adjustments::mark_dead_statements): Likewise.
13323 (ipa_param_body_adjustments::remap_with_debug_expressions): Likewise.
13324 * ipa-prop.cc (ipa_set_node_agg_value_chain): Likewise.
13325 * ipa-prop.h (IPA_UNDESCRIBED_USE): Likewise.
13326 (unadjusted_ptr_and_unit_offset): Likewise.
13327 * ipa-reference.cc (make_pass_ipa_reference): Likewise.
13328 * ipa-reference.h (GCC_IPA_REFERENCE_H): Likewise.
13329 * ipa-split.cc (consider_split): Likewise.
13330 * ipa-sra.cc (isra_read_node_info): Likewise.
13331 * ipa-utils.h (struct ipa_dfs_info): Likewise.
13332 (recursive_call_p): Likewise.
13333 (ipa_make_function_pure): Likewise.
13334 * ira-build.cc (ira_create_allocno): Likewise.
13335 (ira_flattening): Likewise.
13336 * ira-color.cc (do_coloring): Likewise.
13337 (update_curr_costs): Likewise.
13338 * ira-conflicts.cc (process_regs_for_copy): Likewise.
13339 * ira-int.h (struct ira_emit_data): Likewise.
13340 (ira_prohibited_mode_move_regs): Likewise.
13341 (ira_get_dup_out_num): Likewise.
13342 (ira_destroy): Likewise.
13343 (ira_tune_allocno_costs): Likewise.
13344 (ira_implicitly_set_insn_hard_regs): Likewise.
13345 (ira_build_conflicts): Likewise.
13346 (ira_color): Likewise.
13347 * ira-lives.cc (process_bb_node_lives): Likewise.
13348 * ira.cc (class ira_spilled_reg_stack_slot): Likewise.
13349 (setup_uniform_class_p): Likewise.
13350 (def_dominates_uses): Likewise.
13351 * ira.h (ira_nullify_asm_goto): Likewise.
13352 * langhooks.cc (lhd_post_options): Likewise.
13353 * langhooks.h (class substring_loc): Likewise.
13354 (struct lang_hooks_for_tree_inlining): Likewise.
13355 (struct lang_hooks_for_types): Likewise.
13356 (struct lang_hooks): Likewise.
13357 * libfuncs.h (synchronize_libfunc): Likewise.
13358 * loop-doloop.cc (doloop_condition_get): Likewise.
13359 * loop-init.cc (fix_loop_structure): Likewise.
13360 * loop-invariant.cc: Likewise.
13361 * lower-subreg.h: Likewise.
13362 * lra-constraints.cc (curr_insn_transform): Likewise.
13363 * lra-int.h (struct lra_insn_reg): Likewise.
13364 (lra_undo_inheritance): Likewise.
13365 (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
13366 (lra_split_hard_reg_for): Likewise.
13367 (lra_coalesce): Likewise.
13368 (lra_final_code_change): Likewise.
13369 * lra-spills.cc (lra_final_code_change): Likewise.
13370 * lra.cc (lra_process_new_insns): Likewise.
13371 * lto-compress.h (struct lto_compression_stream): Likewise.
13372 * lto-streamer-out.cc (DFS::DFS_write_tree_body): Likewise.
13373 (write_symbol): Likewise.
13374 * lto-streamer.h (enum LTO_tags): Likewise.
13375 (lto_value_range_error): Likewise.
13376 (lto_append_block): Likewise.
13377 (lto_streamer_hooks_init): Likewise.
13378 (stream_read_tree_ref): Likewise.
13379 (lto_prepare_function_for_streaming): Likewise.
13380 (select_what_to_stream): Likewise.
13381 (omp_lto_input_declare_variant_alt): Likewise.
13382 (cl_optimization_stream_in): Likewise.
13383 * lto-wrapper.cc (append_compiler_options): Likewise.
13384 * machmode.def: Likewise.
13385 * machmode.h (struct int_n_data_t): Likewise.
13386 * main.cc (main): Likewise.
13387 * match.pd: Likewise.
13388 * omp-builtins.def (BUILT_IN_GOMP_CRITICAL_NAME_END): Likewise.
13389 (BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): Likewise.
13390 * omp-expand.cc (expand_omp_atomic_fetch_op): Likewise.
13391 (make_pass_expand_omp_ssa): Likewise.
13392 * omp-low.cc (struct omp_context): Likewise.
13393 (struct omp_taskcopy_context): Likewise.
13394 (lower_omp): Likewise.
13395 * omp-oacc-neuter-broadcast.cc (omp_sese_active_worker_call): Likewise.
13396 (mask_name): Likewise.
13397 (omp_sese_dump_pars): Likewise.
13398 (worker_single_simple): Likewise.
13399 * omp-offload.cc (omp_finish_file): Likewise.
13400 (execute_oacc_loop_designation): Likewise.
13401 * optabs-query.cc (lshift_cheap_p): Likewise.
13402 * optc-gen.awk: Likewise.
13403 * optc-save-gen.awk: Likewise.
13404 * optinfo-emit-json.cc (optrecord_json_writer::optrecord_json_writer): Likewise.
13405 * opts-common.cc: Likewise.
13406 * output.h (app_enable): Likewise.
13407 (output_operand_lossage): Likewise.
13408 (insn_current_reference_address): Likewise.
13409 (get_insn_template): Likewise.
13410 (output_quoted_string): Likewise.
13411 * pass_manager.h (struct register_pass_info): Likewise.
13412 * plugin.cc: Likewise.
13413 * plugin.def (PLUGIN_ANALYZER_INIT): Likewise.
13414 * plugin.h (invoke_plugin_callbacks): Likewise.
13415 * pointer-query.cc (handle_mem_ref): Likewise.
13416 * postreload-gcse.cc (alloc_mem): Likewise.
13417 * predict.h (enum prediction): Likewise.
13418 (add_reg_br_prob_note): Likewise.
13419 * prefix.h: Likewise.
13420 * profile.h (get_working_sets): Likewise.
13421 * read-md.cc: Likewise.
13422 * read-md.h (struct mapping): Likewise.
13423 (class md_reader): Likewise.
13424 (class noop_reader): Likewise.
13425 * read-rtl-function.cc (function_reader::create_function): Likewise.
13426 (function_reader::extra_parsing_for_operand_code_0): Likewise.
13427 * read-rtl.cc (initialize_iterators): Likewise.
13428 * real.cc: Likewise.
13429 * real.h (struct real_value): Likewise.
13430 (format_helper::format_helper): Likewise.
13431 (real_hash): Likewise.
13432 (real_can_shorten_arithmetic): Likewise.
13433 * recog.cc (struct target_recog): Likewise.
13434 (offsettable_nonstrict_memref_p): Likewise.
13435 (constrain_operands): Likewise.
13436 * recog.h (MAX_RECOG_ALTERNATIVES): Likewise.
13437 (which_op_alt): Likewise.
13438 (struct insn_gen_fn): Likewise.
13439 * reg-notes.def (REG_NOTE): Likewise.
13440 * reg-stack.cc: Likewise.
13441 * regs.h (reg_is_parm_p): Likewise.
13442 * regset.h: Likewise.
13443 * reload.cc (push_reload): Likewise.
13444 (find_reloads): Likewise.
13445 (find_reloads_address_1): Likewise.
13446 (find_replacement): Likewise.
13447 (refers_to_regno_for_reload_p): Likewise.
13448 (refers_to_mem_for_reload_p): Likewise.
13449 * reload.h (push_reload): Likewise.
13450 (deallocate_reload_reg): Likewise.
13451 * reload1.cc (emit_input_reload_insns): Likewise.
13452 * reorg.cc (relax_delay_slots): Likewise.
13453 * rtl.def (UNKNOWN): Likewise.
13454 (SEQUENCE): Likewise.
13455 (BARRIER): Likewise.
13456 (ASM_OPERANDS): Likewise.
13457 (EQ_ATTR_ALT): Likewise.
13458 * rtl.h (struct GTY): Likewise.
13459 (LABEL_NAME): Likewise.
13460 (LABEL_ALT_ENTRY_P): Likewise.
13461 (SUBREG_BYTE): Likewise.
13462 (get_stack_check_protect): Likewise.
13463 (dump_rtx_statistics): Likewise.
13464 (unwrap_const_vec_duplicate): Likewise.
13465 (subreg_promoted_mode): Likewise.
13466 (gen_lowpart_common): Likewise.
13467 (operand_subword): Likewise.
13468 (immed_wide_int_const): Likewise.
13469 (decide_function_section): Likewise.
13470 (active_insn_p): Likewise.
13471 (delete_related_insns): Likewise.
13472 (try_split): Likewise.
13473 (val_signbit_known_clear_p): Likewise.
13474 (simplifiable_subregs): Likewise.
13475 (set_insn_deleted): Likewise.
13476 (subreg_get_info): Likewise.
13477 (remove_free_EXPR_LIST_node): Likewise.
13478 (finish_subregs_of_mode): Likewise.
13479 (get_mem_attrs): Likewise.
13480 (lookup_constant_def): Likewise.
13481 (rtx_to_tree_code): Likewise.
13482 (hash_rtx): Likewise.
13483 (condjump_in_parallel_p): Likewise.
13484 (validate_subreg): Likewise.
13485 (make_compound_operation): Likewise.
13486 (schedule_ebbs): Likewise.
13487 (print_inline_rtx): Likewise.
13488 (fixup_args_size_notes): Likewise.
13489 (expand_dec): Likewise.
13490 (prepare_copy_insn): Likewise.
13491 (mark_elimination): Likewise.
13492 (valid_mode_changes_for_regno): Likewise.
13493 (make_debug_expr_from_rtl): Likewise.
13494 (delete_vta_debug_insns): Likewise.
13495 (simplify_using_condition): Likewise.
13496 (set_insn_locations): Likewise.
13497 (fatal_insn_not_found): Likewise.
13498 (word_register_operation_p): Likewise.
13499 * rtlanal.cc (get_call_fndecl): Likewise.
13500 (side_effects_p): Likewise.
13501 (subreg_nregs): Likewise.
13502 (rtx_cost): Likewise.
13503 (canonicalize_condition): Likewise.
13504 * rtlanal.h (rtx_properties::try_to_add_note): Likewise.
13505 * run-rtl-passes.cc (run_rtl_passes): Likewise.
13506 * sanitizer.def (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Likewise.
13507 * sched-deps.cc (add_dependence_1): Likewise.
13508 * sched-ebb.cc (begin_move_insn): Likewise.
13509 (add_deps_for_risky_insns): Likewise.
13510 (advance_target_bb): Likewise.
13511 * sched-int.h (reemit_notes): Likewise.
13512 (struct _haifa_insn_data): Likewise.
13514 (DEP_CANCELLED): Likewise.
13515 (debug_ds): Likewise.
13516 (number_in_ready): Likewise.
13517 (schedule_ebbs_finish): Likewise.
13518 (find_modifiable_mems): Likewise.
13519 * sched-rgn.cc (debug_rgn_dependencies): Likewise.
13520 * sel-sched-dump.cc (dump_lv_set): Likewise.
13521 * sel-sched-dump.h: Likewise.
13522 * sel-sched-ir.cc (sel_insn_rtx_cost): Likewise.
13523 (setup_id_reg_sets): Likewise.
13524 (has_dependence_p): Likewise.
13525 (sel_num_cfg_preds_gt_1): Likewise.
13526 (bb_ends_ebb_p): Likewise.
13527 * sel-sched-ir.h (struct _list_node): Likewise.
13528 (struct idata_def): Likewise.
13529 (bb_next_bb): Likewise.
13530 * sel-sched.cc (vinsn_writes_one_of_regs_p): Likewise.
13531 (choose_best_pseudo_reg): Likewise.
13532 (verify_target_availability): Likewise.
13533 (can_speculate_dep_p): Likewise.
13534 (sel_rank_for_schedule): Likewise.
13535 * selftest-run-tests.cc (selftest::run_tests): Likewise.
13536 * selftest.h (class auto_fix_quotes): Likewise.
13537 * shrink-wrap.cc (handle_simple_exit): Likewise.
13538 * shrink-wrap.h: Likewise.
13539 * simplify-rtx.cc (simplify_context::simplify_associative_operation): Likewise.
13540 (simplify_context::simplify_gen_vec_select): Likewise.
13541 * spellcheck-tree.h: Likewise.
13542 * spellcheck.h: Likewise.
13543 * statistics.h (struct function): Likewise.
13544 * stmt.cc (conditional_probability): Likewise.
13545 * stmt.h: Likewise.
13546 * stor-layout.h: Likewise.
13547 * streamer-hooks.h: Likewise.
13548 * stringpool.h: Likewise.
13549 * symtab.cc (symbol_table::change_decl_assembler_name): Likewise.
13550 * target.def (HOOK_VECTOR_END): Likewise.
13552 * target.h (union cumulative_args_t): Likewise.
13553 (by_pieces_ninsns): Likewise.
13554 (class predefined_function_abi): Likewise.
13555 * targhooks.cc (default_translate_mode_attribute): Likewise.
13556 * timevar.def: Likewise.
13557 * timevar.h (class timer): Likewise.
13558 * toplev.h (enable_rtl_dump_file): Likewise.
13559 * trans-mem.cc (collect_bb2reg): Likewise.
13560 * tree-call-cdce.cc (gen_conditions_for_pow): Likewise.
13561 * tree-cfg.cc (remove_bb): Likewise.
13562 (verify_gimple_debug): Likewise.
13563 (remove_edge_and_dominated_blocks): Likewise.
13564 (push_fndecl): Likewise.
13565 * tree-cfgcleanup.h (GCC_TREE_CFGCLEANUP_H): Likewise.
13566 * tree-complex.cc (expand_complex_multiplication): Likewise.
13567 (expand_complex_div_straight): Likewise.
13568 * tree-core.h (enum tree_index): Likewise.
13569 (enum operand_equal_flag): Likewise.
13570 * tree-eh.cc (honor_protect_cleanup_actions): Likewise.
13571 * tree-if-conv.cc (if_convertible_gimple_assign_stmt_p): Likewise.
13572 * tree-inline.cc (initialize_inlined_parameters): Likewise.
13573 * tree-inline.h (force_value_to_type): Likewise.
13574 * tree-nested.cc (get_chain_decl): Likewise.
13575 (walk_all_functions): Likewise.
13576 * tree-object-size.h: Likewise.
13577 * tree-outof-ssa.cc: Likewise.
13578 * tree-parloops.cc (create_parallel_loop): Likewise.
13579 * tree-pretty-print.cc (print_generic_expr_to_str): Likewise.
13580 (dump_generic_node): Likewise.
13581 * tree-profile.cc (tree_profiling): Likewise.
13582 * tree-sra.cc (maybe_add_sra_candidate): Likewise.
13583 * tree-ssa-address.cc: Likewise.
13584 * tree-ssa-alias.cc: Likewise.
13585 * tree-ssa-alias.h (ao_ref::max_size_known_p): Likewise.
13586 (dump_alias_stats): Likewise.
13587 * tree-ssa-ccp.cc: Likewise.
13588 * tree-ssa-coalesce.h: Likewise.
13589 * tree-ssa-live.cc (remove_unused_scope_block_p): Likewise.
13590 * tree-ssa-loop-manip.cc (copy_phi_node_args): Likewise.
13591 * tree-ssa-loop-unswitch.cc: Likewise.
13592 * tree-ssa-math-opts.cc: Likewise.
13593 * tree-ssa-operands.cc (class operands_scanner): Likewise.
13594 * tree-ssa-pre.cc: Likewise.
13595 * tree-ssa-reassoc.cc (optimize_ops_list): Likewise.
13596 (debug_range_entry): Likewise.
13597 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Likewise.
13598 * tree-ssa-sccvn.h (TREE_SSA_SCCVN_H): Likewise.
13599 * tree-ssa-scopedtables.cc (add_expr_commutative): Likewise.
13600 (equal_mem_array_ref_p): Likewise.
13601 * tree-ssa-strlen.cc (is_strlen_related_p): Likewise.
13602 * tree-ssa-strlen.h (get_range_strlen_dynamic): Likewise.
13603 * tree-ssa-tail-merge.cc (stmt_local_def): Likewise.
13604 * tree-ssa-ter.h: Likewise.
13605 * tree-ssa-threadupdate.h (enum bb_dom_status): Likewise.
13606 * tree-streamer-in.cc (lto_input_ts_block_tree_pointers): Likewise.
13607 * tree-streamer-out.cc (pack_ts_block_value_fields): Likewise.
13608 (write_ts_block_tree_pointers): Likewise.
13609 * tree-streamer.h (struct streamer_tree_cache_d): Likewise.
13610 (streamer_read_tree_bitfields): Likewise.
13611 (streamer_write_integer_cst): Likewise.
13612 * tree-vect-patterns.cc (apply_binop_and_append_stmt): Likewise.
13613 (vect_synth_mult_by_constant): Likewise.
13614 * tree-vect-stmts.cc (vectorizable_operation): Likewise.
13615 * tree-vectorizer.cc: Likewise.
13616 * tree-vectorizer.h (class auto_purge_vect_location): Likewise.
13617 (vect_update_inits_of_drs): Likewise.
13618 (vect_get_mask_type_for_stmt): Likewise.
13619 (vect_rgroup_iv_might_wrap_p): Likewise.
13620 (cse_and_gimplify_to_preheader): Likewise.
13621 (vect_free_slp_tree): Likewise.
13622 (vect_pattern_recog): Likewise.
13623 (vect_stmt_dominates_stmt_p): Likewise.
13624 * tree.cc (initialize_tree_contains_struct): Likewise.
13625 (need_assembler_name_p): Likewise.
13626 (type_with_interoperable_signedness): Likewise.
13627 * tree.def (SWITCH_EXPR): Likewise.
13628 * tree.h (TYPE_SYMTAB_ADDRESS): Likewise.
13629 (poly_int_tree_p): Likewise.
13630 (inlined_function_outer_scope_p): Likewise.
13631 (tree_code_for_canonical_type_merging): Likewise.
13632 * value-prof.cc: Likewise.
13633 * value-prof.h (get_nth_most_common_value): Likewise.
13634 (find_func_by_profile_id): Likewise.
13635 * value-range.cc (vrp_operand_equal_p): Likewise.
13636 * value-range.h: Likewise.
13637 * var-tracking.cc: Likewise.
13638 * varasm.cc (default_function_section): Likewise.
13639 (function_section_1): Likewise.
13640 (assemble_variable): Likewise.
13641 (handle_vtv_comdat_section): Likewise.
13642 * vec.h (struct vec_prefix): Likewise.
13643 * vmsdbgout.cc (full_name): Likewise.
13644 * vtable-verify.cc: Likewise.
13645 * vtable-verify.h (struct vtv_graph_node): Likewise.
13646 * xcoffout.cc: Likewise.
13647 * xcoffout.h (DEBUG_SYMS_TEXT): Likewise.
13649 2022-01-17 Martin Liska <mliska@suse.cz>
13651 * adjust-alignment.c: Moved to...
13652 * adjust-alignment.cc: ...here.
13653 * alias.c: Moved to...
13654 * alias.cc: ...here.
13655 * alloc-pool.c: Moved to...
13656 * alloc-pool.cc: ...here.
13657 * asan.c: Moved to...
13658 * asan.cc: ...here.
13659 * attribs.c: Moved to...
13660 * attribs.cc: ...here.
13661 * auto-inc-dec.c: Moved to...
13662 * auto-inc-dec.cc: ...here.
13663 * auto-profile.c: Moved to...
13664 * auto-profile.cc: ...here.
13665 * bb-reorder.c: Moved to...
13666 * bb-reorder.cc: ...here.
13667 * bitmap.c: Moved to...
13668 * bitmap.cc: ...here.
13669 * btfout.c: Moved to...
13670 * btfout.cc: ...here.
13671 * builtins.c: Moved to...
13672 * builtins.cc: ...here.
13673 * caller-save.c: Moved to...
13674 * caller-save.cc: ...here.
13675 * calls.c: Moved to...
13676 * calls.cc: ...here.
13677 * ccmp.c: Moved to...
13678 * ccmp.cc: ...here.
13679 * cfg.c: Moved to...
13681 * cfganal.c: Moved to...
13682 * cfganal.cc: ...here.
13683 * cfgbuild.c: Moved to...
13684 * cfgbuild.cc: ...here.
13685 * cfgcleanup.c: Moved to...
13686 * cfgcleanup.cc: ...here.
13687 * cfgexpand.c: Moved to...
13688 * cfgexpand.cc: ...here.
13689 * cfghooks.c: Moved to...
13690 * cfghooks.cc: ...here.
13691 * cfgloop.c: Moved to...
13692 * cfgloop.cc: ...here.
13693 * cfgloopanal.c: Moved to...
13694 * cfgloopanal.cc: ...here.
13695 * cfgloopmanip.c: Moved to...
13696 * cfgloopmanip.cc: ...here.
13697 * cfgrtl.c: Moved to...
13698 * cfgrtl.cc: ...here.
13699 * cgraph.c: Moved to...
13700 * cgraph.cc: ...here.
13701 * cgraphbuild.c: Moved to...
13702 * cgraphbuild.cc: ...here.
13703 * cgraphclones.c: Moved to...
13704 * cgraphclones.cc: ...here.
13705 * cgraphunit.c: Moved to...
13706 * cgraphunit.cc: ...here.
13707 * collect-utils.c: Moved to...
13708 * collect-utils.cc: ...here.
13709 * collect2-aix.c: Moved to...
13710 * collect2-aix.cc: ...here.
13711 * collect2.c: Moved to...
13712 * collect2.cc: ...here.
13713 * combine-stack-adj.c: Moved to...
13714 * combine-stack-adj.cc: ...here.
13715 * combine.c: Moved to...
13716 * combine.cc: ...here.
13717 * common/common-targhooks.c: Moved to...
13718 * common/common-targhooks.cc: ...here.
13719 * common/config/aarch64/aarch64-common.c: Moved to...
13720 * common/config/aarch64/aarch64-common.cc: ...here.
13721 * common/config/alpha/alpha-common.c: Moved to...
13722 * common/config/alpha/alpha-common.cc: ...here.
13723 * common/config/arc/arc-common.c: Moved to...
13724 * common/config/arc/arc-common.cc: ...here.
13725 * common/config/arm/arm-common.c: Moved to...
13726 * common/config/arm/arm-common.cc: ...here.
13727 * common/config/avr/avr-common.c: Moved to...
13728 * common/config/avr/avr-common.cc: ...here.
13729 * common/config/bfin/bfin-common.c: Moved to...
13730 * common/config/bfin/bfin-common.cc: ...here.
13731 * common/config/bpf/bpf-common.c: Moved to...
13732 * common/config/bpf/bpf-common.cc: ...here.
13733 * common/config/c6x/c6x-common.c: Moved to...
13734 * common/config/c6x/c6x-common.cc: ...here.
13735 * common/config/cr16/cr16-common.c: Moved to...
13736 * common/config/cr16/cr16-common.cc: ...here.
13737 * common/config/cris/cris-common.c: Moved to...
13738 * common/config/cris/cris-common.cc: ...here.
13739 * common/config/csky/csky-common.c: Moved to...
13740 * common/config/csky/csky-common.cc: ...here.
13741 * common/config/default-common.c: Moved to...
13742 * common/config/default-common.cc: ...here.
13743 * common/config/epiphany/epiphany-common.c: Moved to...
13744 * common/config/epiphany/epiphany-common.cc: ...here.
13745 * common/config/fr30/fr30-common.c: Moved to...
13746 * common/config/fr30/fr30-common.cc: ...here.
13747 * common/config/frv/frv-common.c: Moved to...
13748 * common/config/frv/frv-common.cc: ...here.
13749 * common/config/gcn/gcn-common.c: Moved to...
13750 * common/config/gcn/gcn-common.cc: ...here.
13751 * common/config/h8300/h8300-common.c: Moved to...
13752 * common/config/h8300/h8300-common.cc: ...here.
13753 * common/config/i386/i386-common.c: Moved to...
13754 * common/config/i386/i386-common.cc: ...here.
13755 * common/config/ia64/ia64-common.c: Moved to...
13756 * common/config/ia64/ia64-common.cc: ...here.
13757 * common/config/iq2000/iq2000-common.c: Moved to...
13758 * common/config/iq2000/iq2000-common.cc: ...here.
13759 * common/config/lm32/lm32-common.c: Moved to...
13760 * common/config/lm32/lm32-common.cc: ...here.
13761 * common/config/m32r/m32r-common.c: Moved to...
13762 * common/config/m32r/m32r-common.cc: ...here.
13763 * common/config/m68k/m68k-common.c: Moved to...
13764 * common/config/m68k/m68k-common.cc: ...here.
13765 * common/config/mcore/mcore-common.c: Moved to...
13766 * common/config/mcore/mcore-common.cc: ...here.
13767 * common/config/microblaze/microblaze-common.c: Moved to...
13768 * common/config/microblaze/microblaze-common.cc: ...here.
13769 * common/config/mips/mips-common.c: Moved to...
13770 * common/config/mips/mips-common.cc: ...here.
13771 * common/config/mmix/mmix-common.c: Moved to...
13772 * common/config/mmix/mmix-common.cc: ...here.
13773 * common/config/mn10300/mn10300-common.c: Moved to...
13774 * common/config/mn10300/mn10300-common.cc: ...here.
13775 * common/config/msp430/msp430-common.c: Moved to...
13776 * common/config/msp430/msp430-common.cc: ...here.
13777 * common/config/nds32/nds32-common.c: Moved to...
13778 * common/config/nds32/nds32-common.cc: ...here.
13779 * common/config/nios2/nios2-common.c: Moved to...
13780 * common/config/nios2/nios2-common.cc: ...here.
13781 * common/config/nvptx/nvptx-common.c: Moved to...
13782 * common/config/nvptx/nvptx-common.cc: ...here.
13783 * common/config/or1k/or1k-common.c: Moved to...
13784 * common/config/or1k/or1k-common.cc: ...here.
13785 * common/config/pa/pa-common.c: Moved to...
13786 * common/config/pa/pa-common.cc: ...here.
13787 * common/config/pdp11/pdp11-common.c: Moved to...
13788 * common/config/pdp11/pdp11-common.cc: ...here.
13789 * common/config/pru/pru-common.c: Moved to...
13790 * common/config/pru/pru-common.cc: ...here.
13791 * common/config/riscv/riscv-common.c: Moved to...
13792 * common/config/riscv/riscv-common.cc: ...here.
13793 * common/config/rs6000/rs6000-common.c: Moved to...
13794 * common/config/rs6000/rs6000-common.cc: ...here.
13795 * common/config/rx/rx-common.c: Moved to...
13796 * common/config/rx/rx-common.cc: ...here.
13797 * common/config/s390/s390-common.c: Moved to...
13798 * common/config/s390/s390-common.cc: ...here.
13799 * common/config/sh/sh-common.c: Moved to...
13800 * common/config/sh/sh-common.cc: ...here.
13801 * common/config/sparc/sparc-common.c: Moved to...
13802 * common/config/sparc/sparc-common.cc: ...here.
13803 * common/config/tilegx/tilegx-common.c: Moved to...
13804 * common/config/tilegx/tilegx-common.cc: ...here.
13805 * common/config/tilepro/tilepro-common.c: Moved to...
13806 * common/config/tilepro/tilepro-common.cc: ...here.
13807 * common/config/v850/v850-common.c: Moved to...
13808 * common/config/v850/v850-common.cc: ...here.
13809 * common/config/vax/vax-common.c: Moved to...
13810 * common/config/vax/vax-common.cc: ...here.
13811 * common/config/visium/visium-common.c: Moved to...
13812 * common/config/visium/visium-common.cc: ...here.
13813 * common/config/xstormy16/xstormy16-common.c: Moved to...
13814 * common/config/xstormy16/xstormy16-common.cc: ...here.
13815 * common/config/xtensa/xtensa-common.c: Moved to...
13816 * common/config/xtensa/xtensa-common.cc: ...here.
13817 * compare-elim.c: Moved to...
13818 * compare-elim.cc: ...here.
13819 * config/aarch64/aarch64-bti-insert.c: Moved to...
13820 * config/aarch64/aarch64-bti-insert.cc: ...here.
13821 * config/aarch64/aarch64-builtins.c: Moved to...
13822 * config/aarch64/aarch64-builtins.cc: ...here.
13823 * config/aarch64/aarch64-c.c: Moved to...
13824 * config/aarch64/aarch64-c.cc: ...here.
13825 * config/aarch64/aarch64-d.c: Moved to...
13826 * config/aarch64/aarch64-d.cc: ...here.
13827 * config/aarch64/aarch64.c: Moved to...
13828 * config/aarch64/aarch64.cc: ...here.
13829 * config/aarch64/cortex-a57-fma-steering.c: Moved to...
13830 * config/aarch64/cortex-a57-fma-steering.cc: ...here.
13831 * config/aarch64/driver-aarch64.c: Moved to...
13832 * config/aarch64/driver-aarch64.cc: ...here.
13833 * config/aarch64/falkor-tag-collision-avoidance.c: Moved to...
13834 * config/aarch64/falkor-tag-collision-avoidance.cc: ...here.
13835 * config/aarch64/host-aarch64-darwin.c: Moved to...
13836 * config/aarch64/host-aarch64-darwin.cc: ...here.
13837 * config/alpha/alpha.c: Moved to...
13838 * config/alpha/alpha.cc: ...here.
13839 * config/alpha/driver-alpha.c: Moved to...
13840 * config/alpha/driver-alpha.cc: ...here.
13841 * config/arc/arc-c.c: Moved to...
13842 * config/arc/arc-c.cc: ...here.
13843 * config/arc/arc.c: Moved to...
13844 * config/arc/arc.cc: ...here.
13845 * config/arc/driver-arc.c: Moved to...
13846 * config/arc/driver-arc.cc: ...here.
13847 * config/arm/aarch-common.c: Moved to...
13848 * config/arm/aarch-common.cc: ...here.
13849 * config/arm/arm-builtins.c: Moved to...
13850 * config/arm/arm-builtins.cc: ...here.
13851 * config/arm/arm-c.c: Moved to...
13852 * config/arm/arm-c.cc: ...here.
13853 * config/arm/arm-d.c: Moved to...
13854 * config/arm/arm-d.cc: ...here.
13855 * config/arm/arm.c: Moved to...
13856 * config/arm/arm.cc: ...here.
13857 * config/arm/driver-arm.c: Moved to...
13858 * config/arm/driver-arm.cc: ...here.
13859 * config/avr/avr-c.c: Moved to...
13860 * config/avr/avr-c.cc: ...here.
13861 * config/avr/avr-devices.c: Moved to...
13862 * config/avr/avr-devices.cc: ...here.
13863 * config/avr/avr-log.c: Moved to...
13864 * config/avr/avr-log.cc: ...here.
13865 * config/avr/avr.c: Moved to...
13866 * config/avr/avr.cc: ...here.
13867 * config/avr/driver-avr.c: Moved to...
13868 * config/avr/driver-avr.cc: ...here.
13869 * config/avr/gen-avr-mmcu-specs.c: Moved to...
13870 * config/avr/gen-avr-mmcu-specs.cc: ...here.
13871 * config/avr/gen-avr-mmcu-texi.c: Moved to...
13872 * config/avr/gen-avr-mmcu-texi.cc: ...here.
13873 * config/bfin/bfin.c: Moved to...
13874 * config/bfin/bfin.cc: ...here.
13875 * config/bpf/bpf.c: Moved to...
13876 * config/bpf/bpf.cc: ...here.
13877 * config/bpf/coreout.c: Moved to...
13878 * config/bpf/coreout.cc: ...here.
13879 * config/c6x/c6x.c: Moved to...
13880 * config/c6x/c6x.cc: ...here.
13881 * config/cr16/cr16.c: Moved to...
13882 * config/cr16/cr16.cc: ...here.
13883 * config/cris/cris.c: Moved to...
13884 * config/cris/cris.cc: ...here.
13885 * config/csky/csky.c: Moved to...
13886 * config/csky/csky.cc: ...here.
13887 * config/darwin-c.c: Moved to...
13888 * config/darwin-c.cc: ...here.
13889 * config/darwin-d.c: Moved to...
13890 * config/darwin-d.cc: ...here.
13891 * config/darwin-driver.c: Moved to...
13892 * config/darwin-driver.cc: ...here.
13893 * config/darwin-f.c: Moved to...
13894 * config/darwin-f.cc: ...here.
13895 * config/darwin.c: Moved to...
13896 * config/darwin.cc: ...here.
13897 * config/default-c.c: Moved to...
13898 * config/default-c.cc: ...here.
13899 * config/default-d.c: Moved to...
13900 * config/default-d.cc: ...here.
13901 * config/dragonfly-d.c: Moved to...
13902 * config/dragonfly-d.cc: ...here.
13903 * config/epiphany/epiphany.c: Moved to...
13904 * config/epiphany/epiphany.cc: ...here.
13905 * config/epiphany/mode-switch-use.c: Moved to...
13906 * config/epiphany/mode-switch-use.cc: ...here.
13907 * config/epiphany/resolve-sw-modes.c: Moved to...
13908 * config/epiphany/resolve-sw-modes.cc: ...here.
13909 * config/fr30/fr30.c: Moved to...
13910 * config/fr30/fr30.cc: ...here.
13911 * config/freebsd-d.c: Moved to...
13912 * config/freebsd-d.cc: ...here.
13913 * config/frv/frv.c: Moved to...
13914 * config/frv/frv.cc: ...here.
13915 * config/ft32/ft32.c: Moved to...
13916 * config/ft32/ft32.cc: ...here.
13917 * config/gcn/driver-gcn.c: Moved to...
13918 * config/gcn/driver-gcn.cc: ...here.
13919 * config/gcn/gcn-run.c: Moved to...
13920 * config/gcn/gcn-run.cc: ...here.
13921 * config/gcn/gcn-tree.c: Moved to...
13922 * config/gcn/gcn-tree.cc: ...here.
13923 * config/gcn/gcn.c: Moved to...
13924 * config/gcn/gcn.cc: ...here.
13925 * config/gcn/mkoffload.c: Moved to...
13926 * config/gcn/mkoffload.cc: ...here.
13927 * config/glibc-c.c: Moved to...
13928 * config/glibc-c.cc: ...here.
13929 * config/glibc-d.c: Moved to...
13930 * config/glibc-d.cc: ...here.
13931 * config/h8300/h8300.c: Moved to...
13932 * config/h8300/h8300.cc: ...here.
13933 * config/host-darwin.c: Moved to...
13934 * config/host-darwin.cc: ...here.
13935 * config/host-hpux.c: Moved to...
13936 * config/host-hpux.cc: ...here.
13937 * config/host-linux.c: Moved to...
13938 * config/host-linux.cc: ...here.
13939 * config/host-netbsd.c: Moved to...
13940 * config/host-netbsd.cc: ...here.
13941 * config/host-openbsd.c: Moved to...
13942 * config/host-openbsd.cc: ...here.
13943 * config/host-solaris.c: Moved to...
13944 * config/host-solaris.cc: ...here.
13945 * config/i386/djgpp.c: Moved to...
13946 * config/i386/djgpp.cc: ...here.
13947 * config/i386/driver-i386.c: Moved to...
13948 * config/i386/driver-i386.cc: ...here.
13949 * config/i386/driver-mingw32.c: Moved to...
13950 * config/i386/driver-mingw32.cc: ...here.
13951 * config/i386/gnu-property.c: Moved to...
13952 * config/i386/gnu-property.cc: ...here.
13953 * config/i386/host-cygwin.c: Moved to...
13954 * config/i386/host-cygwin.cc: ...here.
13955 * config/i386/host-i386-darwin.c: Moved to...
13956 * config/i386/host-i386-darwin.cc: ...here.
13957 * config/i386/host-mingw32.c: Moved to...
13958 * config/i386/host-mingw32.cc: ...here.
13959 * config/i386/i386-builtins.c: Moved to...
13960 * config/i386/i386-builtins.cc: ...here.
13961 * config/i386/i386-c.c: Moved to...
13962 * config/i386/i386-c.cc: ...here.
13963 * config/i386/i386-d.c: Moved to...
13964 * config/i386/i386-d.cc: ...here.
13965 * config/i386/i386-expand.c: Moved to...
13966 * config/i386/i386-expand.cc: ...here.
13967 * config/i386/i386-features.c: Moved to...
13968 * config/i386/i386-features.cc: ...here.
13969 * config/i386/i386-options.c: Moved to...
13970 * config/i386/i386-options.cc: ...here.
13971 * config/i386/i386.c: Moved to...
13972 * config/i386/i386.cc: ...here.
13973 * config/i386/intelmic-mkoffload.c: Moved to...
13974 * config/i386/intelmic-mkoffload.cc: ...here.
13975 * config/i386/msformat-c.c: Moved to...
13976 * config/i386/msformat-c.cc: ...here.
13977 * config/i386/winnt-cxx.c: Moved to...
13978 * config/i386/winnt-cxx.cc: ...here.
13979 * config/i386/winnt-d.c: Moved to...
13980 * config/i386/winnt-d.cc: ...here.
13981 * config/i386/winnt-stubs.c: Moved to...
13982 * config/i386/winnt-stubs.cc: ...here.
13983 * config/i386/winnt.c: Moved to...
13984 * config/i386/winnt.cc: ...here.
13985 * config/i386/x86-tune-sched-atom.c: Moved to...
13986 * config/i386/x86-tune-sched-atom.cc: ...here.
13987 * config/i386/x86-tune-sched-bd.c: Moved to...
13988 * config/i386/x86-tune-sched-bd.cc: ...here.
13989 * config/i386/x86-tune-sched-core.c: Moved to...
13990 * config/i386/x86-tune-sched-core.cc: ...here.
13991 * config/i386/x86-tune-sched.c: Moved to...
13992 * config/i386/x86-tune-sched.cc: ...here.
13993 * config/ia64/ia64-c.c: Moved to...
13994 * config/ia64/ia64-c.cc: ...here.
13995 * config/ia64/ia64.c: Moved to...
13996 * config/ia64/ia64.cc: ...here.
13997 * config/iq2000/iq2000.c: Moved to...
13998 * config/iq2000/iq2000.cc: ...here.
13999 * config/linux.c: Moved to...
14000 * config/linux.cc: ...here.
14001 * config/lm32/lm32.c: Moved to...
14002 * config/lm32/lm32.cc: ...here.
14003 * config/m32c/m32c-pragma.c: Moved to...
14004 * config/m32c/m32c-pragma.cc: ...here.
14005 * config/m32c/m32c.c: Moved to...
14006 * config/m32c/m32c.cc: ...here.
14007 * config/m32r/m32r.c: Moved to...
14008 * config/m32r/m32r.cc: ...here.
14009 * config/m68k/m68k.c: Moved to...
14010 * config/m68k/m68k.cc: ...here.
14011 * config/mcore/mcore.c: Moved to...
14012 * config/mcore/mcore.cc: ...here.
14013 * config/microblaze/microblaze-c.c: Moved to...
14014 * config/microblaze/microblaze-c.cc: ...here.
14015 * config/microblaze/microblaze.c: Moved to...
14016 * config/microblaze/microblaze.cc: ...here.
14017 * config/mips/driver-native.c: Moved to...
14018 * config/mips/driver-native.cc: ...here.
14019 * config/mips/frame-header-opt.c: Moved to...
14020 * config/mips/frame-header-opt.cc: ...here.
14021 * config/mips/mips-d.c: Moved to...
14022 * config/mips/mips-d.cc: ...here.
14023 * config/mips/mips.c: Moved to...
14024 * config/mips/mips.cc: ...here.
14025 * config/mmix/mmix.c: Moved to...
14026 * config/mmix/mmix.cc: ...here.
14027 * config/mn10300/mn10300.c: Moved to...
14028 * config/mn10300/mn10300.cc: ...here.
14029 * config/moxie/moxie.c: Moved to...
14030 * config/moxie/moxie.cc: ...here.
14031 * config/msp430/driver-msp430.c: Moved to...
14032 * config/msp430/driver-msp430.cc: ...here.
14033 * config/msp430/msp430-c.c: Moved to...
14034 * config/msp430/msp430-c.cc: ...here.
14035 * config/msp430/msp430-devices.c: Moved to...
14036 * config/msp430/msp430-devices.cc: ...here.
14037 * config/msp430/msp430.c: Moved to...
14038 * config/msp430/msp430.cc: ...here.
14039 * config/nds32/nds32-cost.c: Moved to...
14040 * config/nds32/nds32-cost.cc: ...here.
14041 * config/nds32/nds32-fp-as-gp.c: Moved to...
14042 * config/nds32/nds32-fp-as-gp.cc: ...here.
14043 * config/nds32/nds32-intrinsic.c: Moved to...
14044 * config/nds32/nds32-intrinsic.cc: ...here.
14045 * config/nds32/nds32-isr.c: Moved to...
14046 * config/nds32/nds32-isr.cc: ...here.
14047 * config/nds32/nds32-md-auxiliary.c: Moved to...
14048 * config/nds32/nds32-md-auxiliary.cc: ...here.
14049 * config/nds32/nds32-memory-manipulation.c: Moved to...
14050 * config/nds32/nds32-memory-manipulation.cc: ...here.
14051 * config/nds32/nds32-pipelines-auxiliary.c: Moved to...
14052 * config/nds32/nds32-pipelines-auxiliary.cc: ...here.
14053 * config/nds32/nds32-predicates.c: Moved to...
14054 * config/nds32/nds32-predicates.cc: ...here.
14055 * config/nds32/nds32-relax-opt.c: Moved to...
14056 * config/nds32/nds32-relax-opt.cc: ...here.
14057 * config/nds32/nds32-utils.c: Moved to...
14058 * config/nds32/nds32-utils.cc: ...here.
14059 * config/nds32/nds32.c: Moved to...
14060 * config/nds32/nds32.cc: ...here.
14061 * config/netbsd-d.c: Moved to...
14062 * config/netbsd-d.cc: ...here.
14063 * config/netbsd.c: Moved to...
14064 * config/netbsd.cc: ...here.
14065 * config/nios2/nios2.c: Moved to...
14066 * config/nios2/nios2.cc: ...here.
14067 * config/nvptx/mkoffload.c: Moved to...
14068 * config/nvptx/mkoffload.cc: ...here.
14069 * config/nvptx/nvptx-c.c: Moved to...
14070 * config/nvptx/nvptx-c.cc: ...here.
14071 * config/nvptx/nvptx.c: Moved to...
14072 * config/nvptx/nvptx.cc: ...here.
14073 * config/openbsd-d.c: Moved to...
14074 * config/openbsd-d.cc: ...here.
14075 * config/or1k/or1k.c: Moved to...
14076 * config/or1k/or1k.cc: ...here.
14077 * config/pa/pa-d.c: Moved to...
14078 * config/pa/pa-d.cc: ...here.
14079 * config/pa/pa.c: Moved to...
14080 * config/pa/pa.cc: ...here.
14081 * config/pdp11/pdp11.c: Moved to...
14082 * config/pdp11/pdp11.cc: ...here.
14083 * config/pru/pru-passes.c: Moved to...
14084 * config/pru/pru-passes.cc: ...here.
14085 * config/pru/pru-pragma.c: Moved to...
14086 * config/pru/pru-pragma.cc: ...here.
14087 * config/pru/pru.c: Moved to...
14088 * config/pru/pru.cc: ...here.
14089 * config/riscv/riscv-builtins.c: Moved to...
14090 * config/riscv/riscv-builtins.cc: ...here.
14091 * config/riscv/riscv-c.c: Moved to...
14092 * config/riscv/riscv-c.cc: ...here.
14093 * config/riscv/riscv-d.c: Moved to...
14094 * config/riscv/riscv-d.cc: ...here.
14095 * config/riscv/riscv-shorten-memrefs.c: Moved to...
14096 * config/riscv/riscv-shorten-memrefs.cc: ...here.
14097 * config/riscv/riscv-sr.c: Moved to...
14098 * config/riscv/riscv-sr.cc: ...here.
14099 * config/riscv/riscv.c: Moved to...
14100 * config/riscv/riscv.cc: ...here.
14101 * config/rl78/rl78-c.c: Moved to...
14102 * config/rl78/rl78-c.cc: ...here.
14103 * config/rl78/rl78.c: Moved to...
14104 * config/rl78/rl78.cc: ...here.
14105 * config/rs6000/driver-rs6000.c: Moved to...
14106 * config/rs6000/driver-rs6000.cc: ...here.
14107 * config/rs6000/host-darwin.c: Moved to...
14108 * config/rs6000/host-darwin.cc: ...here.
14109 * config/rs6000/host-ppc64-darwin.c: Moved to...
14110 * config/rs6000/host-ppc64-darwin.cc: ...here.
14111 * config/rs6000/rbtree.c: Moved to...
14112 * config/rs6000/rbtree.cc: ...here.
14113 * config/rs6000/rs6000-c.c: Moved to...
14114 * config/rs6000/rs6000-c.cc: ...here.
14115 * config/rs6000/rs6000-call.c: Moved to...
14116 * config/rs6000/rs6000-call.cc: ...here.
14117 * config/rs6000/rs6000-d.c: Moved to...
14118 * config/rs6000/rs6000-d.cc: ...here.
14119 * config/rs6000/rs6000-gen-builtins.c: Moved to...
14120 * config/rs6000/rs6000-gen-builtins.cc: ...here.
14121 * config/rs6000/rs6000-linux.c: Moved to...
14122 * config/rs6000/rs6000-linux.cc: ...here.
14123 * config/rs6000/rs6000-logue.c: Moved to...
14124 * config/rs6000/rs6000-logue.cc: ...here.
14125 * config/rs6000/rs6000-p8swap.c: Moved to...
14126 * config/rs6000/rs6000-p8swap.cc: ...here.
14127 * config/rs6000/rs6000-pcrel-opt.c: Moved to...
14128 * config/rs6000/rs6000-pcrel-opt.cc: ...here.
14129 * config/rs6000/rs6000-string.c: Moved to...
14130 * config/rs6000/rs6000-string.cc: ...here.
14131 * config/rs6000/rs6000.c: Moved to...
14132 * config/rs6000/rs6000.cc: ...here.
14133 * config/rx/rx.c: Moved to...
14134 * config/rx/rx.cc: ...here.
14135 * config/s390/driver-native.c: Moved to...
14136 * config/s390/driver-native.cc: ...here.
14137 * config/s390/s390-c.c: Moved to...
14138 * config/s390/s390-c.cc: ...here.
14139 * config/s390/s390-d.c: Moved to...
14140 * config/s390/s390-d.cc: ...here.
14141 * config/s390/s390.c: Moved to...
14142 * config/s390/s390.cc: ...here.
14143 * config/sh/divtab-sh4-300.c: Moved to...
14144 * config/sh/divtab-sh4-300.cc: ...here.
14145 * config/sh/divtab-sh4.c: Moved to...
14146 * config/sh/divtab-sh4.cc: ...here.
14147 * config/sh/divtab.c: Moved to...
14148 * config/sh/divtab.cc: ...here.
14149 * config/sh/sh-c.c: Moved to...
14150 * config/sh/sh-c.cc: ...here.
14151 * config/sh/sh.c: Moved to...
14152 * config/sh/sh.cc: ...here.
14153 * config/sol2-c.c: Moved to...
14154 * config/sol2-c.cc: ...here.
14155 * config/sol2-cxx.c: Moved to...
14156 * config/sol2-cxx.cc: ...here.
14157 * config/sol2-d.c: Moved to...
14158 * config/sol2-d.cc: ...here.
14159 * config/sol2-stubs.c: Moved to...
14160 * config/sol2-stubs.cc: ...here.
14161 * config/sol2.c: Moved to...
14162 * config/sol2.cc: ...here.
14163 * config/sparc/driver-sparc.c: Moved to...
14164 * config/sparc/driver-sparc.cc: ...here.
14165 * config/sparc/sparc-c.c: Moved to...
14166 * config/sparc/sparc-c.cc: ...here.
14167 * config/sparc/sparc-d.c: Moved to...
14168 * config/sparc/sparc-d.cc: ...here.
14169 * config/sparc/sparc.c: Moved to...
14170 * config/sparc/sparc.cc: ...here.
14171 * config/stormy16/stormy16.c: Moved to...
14172 * config/stormy16/stormy16.cc: ...here.
14173 * config/tilegx/mul-tables.c: Moved to...
14174 * config/tilegx/mul-tables.cc: ...here.
14175 * config/tilegx/tilegx-c.c: Moved to...
14176 * config/tilegx/tilegx-c.cc: ...here.
14177 * config/tilegx/tilegx.c: Moved to...
14178 * config/tilegx/tilegx.cc: ...here.
14179 * config/tilepro/mul-tables.c: Moved to...
14180 * config/tilepro/mul-tables.cc: ...here.
14181 * config/tilepro/tilepro-c.c: Moved to...
14182 * config/tilepro/tilepro-c.cc: ...here.
14183 * config/tilepro/tilepro.c: Moved to...
14184 * config/tilepro/tilepro.cc: ...here.
14185 * config/v850/v850-c.c: Moved to...
14186 * config/v850/v850-c.cc: ...here.
14187 * config/v850/v850.c: Moved to...
14188 * config/v850/v850.cc: ...here.
14189 * config/vax/vax.c: Moved to...
14190 * config/vax/vax.cc: ...here.
14191 * config/visium/visium.c: Moved to...
14192 * config/visium/visium.cc: ...here.
14193 * config/vms/vms-c.c: Moved to...
14194 * config/vms/vms-c.cc: ...here.
14195 * config/vms/vms-f.c: Moved to...
14196 * config/vms/vms-f.cc: ...here.
14197 * config/vms/vms.c: Moved to...
14198 * config/vms/vms.cc: ...here.
14199 * config/vxworks-c.c: Moved to...
14200 * config/vxworks-c.cc: ...here.
14201 * config/vxworks.c: Moved to...
14202 * config/vxworks.cc: ...here.
14203 * config/winnt-c.c: Moved to...
14204 * config/winnt-c.cc: ...here.
14205 * config/xtensa/xtensa.c: Moved to...
14206 * config/xtensa/xtensa.cc: ...here.
14207 * context.c: Moved to...
14208 * context.cc: ...here.
14209 * convert.c: Moved to...
14210 * convert.cc: ...here.
14211 * coverage.c: Moved to...
14212 * coverage.cc: ...here.
14213 * cppbuiltin.c: Moved to...
14214 * cppbuiltin.cc: ...here.
14215 * cppdefault.c: Moved to...
14216 * cppdefault.cc: ...here.
14217 * cprop.c: Moved to...
14218 * cprop.cc: ...here.
14219 * cse.c: Moved to...
14221 * cselib.c: Moved to...
14222 * cselib.cc: ...here.
14223 * ctfc.c: Moved to...
14224 * ctfc.cc: ...here.
14225 * ctfout.c: Moved to...
14226 * ctfout.cc: ...here.
14227 * data-streamer-in.c: Moved to...
14228 * data-streamer-in.cc: ...here.
14229 * data-streamer-out.c: Moved to...
14230 * data-streamer-out.cc: ...here.
14231 * data-streamer.c: Moved to...
14232 * data-streamer.cc: ...here.
14233 * dbgcnt.c: Moved to...
14234 * dbgcnt.cc: ...here.
14235 * dbxout.c: Moved to...
14236 * dbxout.cc: ...here.
14237 * dce.c: Moved to...
14239 * ddg.c: Moved to...
14241 * debug.c: Moved to...
14242 * debug.cc: ...here.
14243 * df-core.c: Moved to...
14244 * df-core.cc: ...here.
14245 * df-problems.c: Moved to...
14246 * df-problems.cc: ...here.
14247 * df-scan.c: Moved to...
14248 * df-scan.cc: ...here.
14249 * dfp.c: Moved to...
14251 * diagnostic-color.c: Moved to...
14252 * diagnostic-color.cc: ...here.
14253 * diagnostic-show-locus.c: Moved to...
14254 * diagnostic-show-locus.cc: ...here.
14255 * diagnostic-spec.c: Moved to...
14256 * diagnostic-spec.cc: ...here.
14257 * diagnostic.c: Moved to...
14258 * diagnostic.cc: ...here.
14259 * dojump.c: Moved to...
14260 * dojump.cc: ...here.
14261 * dominance.c: Moved to...
14262 * dominance.cc: ...here.
14263 * domwalk.c: Moved to...
14264 * domwalk.cc: ...here.
14265 * double-int.c: Moved to...
14266 * double-int.cc: ...here.
14267 * dse.c: Moved to...
14269 * dumpfile.c: Moved to...
14270 * dumpfile.cc: ...here.
14271 * dwarf2asm.c: Moved to...
14272 * dwarf2asm.cc: ...here.
14273 * dwarf2cfi.c: Moved to...
14274 * dwarf2cfi.cc: ...here.
14275 * dwarf2ctf.c: Moved to...
14276 * dwarf2ctf.cc: ...here.
14277 * dwarf2out.c: Moved to...
14278 * dwarf2out.cc: ...here.
14279 * early-remat.c: Moved to...
14280 * early-remat.cc: ...here.
14281 * edit-context.c: Moved to...
14282 * edit-context.cc: ...here.
14283 * emit-rtl.c: Moved to...
14284 * emit-rtl.cc: ...here.
14285 * errors.c: Moved to...
14286 * errors.cc: ...here.
14287 * et-forest.c: Moved to...
14288 * et-forest.cc: ...here.
14289 * except.c: Moved to...
14290 * except.cc: ...here.
14291 * explow.c: Moved to...
14292 * explow.cc: ...here.
14293 * expmed.c: Moved to...
14294 * expmed.cc: ...here.
14295 * expr.c: Moved to...
14296 * expr.cc: ...here.
14297 * fibonacci_heap.c: Moved to...
14298 * fibonacci_heap.cc: ...here.
14299 * file-find.c: Moved to...
14300 * file-find.cc: ...here.
14301 * file-prefix-map.c: Moved to...
14302 * file-prefix-map.cc: ...here.
14303 * final.c: Moved to...
14304 * final.cc: ...here.
14305 * fixed-value.c: Moved to...
14306 * fixed-value.cc: ...here.
14307 * fold-const-call.c: Moved to...
14308 * fold-const-call.cc: ...here.
14309 * fold-const.c: Moved to...
14310 * fold-const.cc: ...here.
14311 * fp-test.c: Moved to...
14312 * fp-test.cc: ...here.
14313 * function-tests.c: Moved to...
14314 * function-tests.cc: ...here.
14315 * function.c: Moved to...
14316 * function.cc: ...here.
14317 * fwprop.c: Moved to...
14318 * fwprop.cc: ...here.
14319 * gcc-ar.c: Moved to...
14320 * gcc-ar.cc: ...here.
14321 * gcc-main.c: Moved to...
14322 * gcc-main.cc: ...here.
14323 * gcc-rich-location.c: Moved to...
14324 * gcc-rich-location.cc: ...here.
14325 * gcc.c: Moved to...
14327 * gcov-dump.c: Moved to...
14328 * gcov-dump.cc: ...here.
14329 * gcov-io.c: Moved to...
14330 * gcov-io.cc: ...here.
14331 * gcov-tool.c: Moved to...
14332 * gcov-tool.cc: ...here.
14333 * gcov.c: Moved to...
14334 * gcov.cc: ...here.
14335 * gcse-common.c: Moved to...
14336 * gcse-common.cc: ...here.
14337 * gcse.c: Moved to...
14338 * gcse.cc: ...here.
14339 * genattr-common.c: Moved to...
14340 * genattr-common.cc: ...here.
14341 * genattr.c: Moved to...
14342 * genattr.cc: ...here.
14343 * genattrtab.c: Moved to...
14344 * genattrtab.cc: ...here.
14345 * genautomata.c: Moved to...
14346 * genautomata.cc: ...here.
14347 * gencfn-macros.c: Moved to...
14348 * gencfn-macros.cc: ...here.
14349 * gencheck.c: Moved to...
14350 * gencheck.cc: ...here.
14351 * genchecksum.c: Moved to...
14352 * genchecksum.cc: ...here.
14353 * gencodes.c: Moved to...
14354 * gencodes.cc: ...here.
14355 * genconditions.c: Moved to...
14356 * genconditions.cc: ...here.
14357 * genconfig.c: Moved to...
14358 * genconfig.cc: ...here.
14359 * genconstants.c: Moved to...
14360 * genconstants.cc: ...here.
14361 * genemit.c: Moved to...
14362 * genemit.cc: ...here.
14363 * genenums.c: Moved to...
14364 * genenums.cc: ...here.
14365 * generic-match-head.c: Moved to...
14366 * generic-match-head.cc: ...here.
14367 * genextract.c: Moved to...
14368 * genextract.cc: ...here.
14369 * genflags.c: Moved to...
14370 * genflags.cc: ...here.
14371 * gengenrtl.c: Moved to...
14372 * gengenrtl.cc: ...here.
14373 * gengtype-parse.c: Moved to...
14374 * gengtype-parse.cc: ...here.
14375 * gengtype-state.c: Moved to...
14376 * gengtype-state.cc: ...here.
14377 * gengtype.c: Moved to...
14378 * gengtype.cc: ...here.
14379 * genhooks.c: Moved to...
14380 * genhooks.cc: ...here.
14381 * genmatch.c: Moved to...
14382 * genmatch.cc: ...here.
14383 * genmddeps.c: Moved to...
14384 * genmddeps.cc: ...here.
14385 * genmddump.c: Moved to...
14386 * genmddump.cc: ...here.
14387 * genmodes.c: Moved to...
14388 * genmodes.cc: ...here.
14389 * genopinit.c: Moved to...
14390 * genopinit.cc: ...here.
14391 * genoutput.c: Moved to...
14392 * genoutput.cc: ...here.
14393 * genpeep.c: Moved to...
14394 * genpeep.cc: ...here.
14395 * genpreds.c: Moved to...
14396 * genpreds.cc: ...here.
14397 * genrecog.c: Moved to...
14398 * genrecog.cc: ...here.
14399 * gensupport.c: Moved to...
14400 * gensupport.cc: ...here.
14401 * gentarget-def.c: Moved to...
14402 * gentarget-def.cc: ...here.
14403 * genversion.c: Moved to...
14404 * genversion.cc: ...here.
14405 * ggc-common.c: Moved to...
14406 * ggc-common.cc: ...here.
14407 * ggc-none.c: Moved to...
14408 * ggc-none.cc: ...here.
14409 * ggc-page.c: Moved to...
14410 * ggc-page.cc: ...here.
14411 * ggc-tests.c: Moved to...
14412 * ggc-tests.cc: ...here.
14413 * gimple-builder.c: Moved to...
14414 * gimple-builder.cc: ...here.
14415 * gimple-expr.c: Moved to...
14416 * gimple-expr.cc: ...here.
14417 * gimple-fold.c: Moved to...
14418 * gimple-fold.cc: ...here.
14419 * gimple-iterator.c: Moved to...
14420 * gimple-iterator.cc: ...here.
14421 * gimple-laddress.c: Moved to...
14422 * gimple-laddress.cc: ...here.
14423 * gimple-loop-jam.c: Moved to...
14424 * gimple-loop-jam.cc: ...here.
14425 * gimple-low.c: Moved to...
14426 * gimple-low.cc: ...here.
14427 * gimple-match-head.c: Moved to...
14428 * gimple-match-head.cc: ...here.
14429 * gimple-pretty-print.c: Moved to...
14430 * gimple-pretty-print.cc: ...here.
14431 * gimple-ssa-backprop.c: Moved to...
14432 * gimple-ssa-backprop.cc: ...here.
14433 * gimple-ssa-evrp-analyze.c: Moved to...
14434 * gimple-ssa-evrp-analyze.cc: ...here.
14435 * gimple-ssa-evrp.c: Moved to...
14436 * gimple-ssa-evrp.cc: ...here.
14437 * gimple-ssa-isolate-paths.c: Moved to...
14438 * gimple-ssa-isolate-paths.cc: ...here.
14439 * gimple-ssa-nonnull-compare.c: Moved to...
14440 * gimple-ssa-nonnull-compare.cc: ...here.
14441 * gimple-ssa-split-paths.c: Moved to...
14442 * gimple-ssa-split-paths.cc: ...here.
14443 * gimple-ssa-sprintf.c: Moved to...
14444 * gimple-ssa-sprintf.cc: ...here.
14445 * gimple-ssa-store-merging.c: Moved to...
14446 * gimple-ssa-store-merging.cc: ...here.
14447 * gimple-ssa-strength-reduction.c: Moved to...
14448 * gimple-ssa-strength-reduction.cc: ...here.
14449 * gimple-ssa-warn-alloca.c: Moved to...
14450 * gimple-ssa-warn-alloca.cc: ...here.
14451 * gimple-ssa-warn-restrict.c: Moved to...
14452 * gimple-ssa-warn-restrict.cc: ...here.
14453 * gimple-streamer-in.c: Moved to...
14454 * gimple-streamer-in.cc: ...here.
14455 * gimple-streamer-out.c: Moved to...
14456 * gimple-streamer-out.cc: ...here.
14457 * gimple-walk.c: Moved to...
14458 * gimple-walk.cc: ...here.
14459 * gimple-warn-recursion.c: Moved to...
14460 * gimple-warn-recursion.cc: ...here.
14461 * gimple.c: Moved to...
14462 * gimple.cc: ...here.
14463 * gimplify-me.c: Moved to...
14464 * gimplify-me.cc: ...here.
14465 * gimplify.c: Moved to...
14466 * gimplify.cc: ...here.
14467 * godump.c: Moved to...
14468 * godump.cc: ...here.
14469 * graph.c: Moved to...
14470 * graph.cc: ...here.
14471 * graphds.c: Moved to...
14472 * graphds.cc: ...here.
14473 * graphite-dependences.c: Moved to...
14474 * graphite-dependences.cc: ...here.
14475 * graphite-isl-ast-to-gimple.c: Moved to...
14476 * graphite-isl-ast-to-gimple.cc: ...here.
14477 * graphite-optimize-isl.c: Moved to...
14478 * graphite-optimize-isl.cc: ...here.
14479 * graphite-poly.c: Moved to...
14480 * graphite-poly.cc: ...here.
14481 * graphite-scop-detection.c: Moved to...
14482 * graphite-scop-detection.cc: ...here.
14483 * graphite-sese-to-poly.c: Moved to...
14484 * graphite-sese-to-poly.cc: ...here.
14485 * graphite.c: Moved to...
14486 * graphite.cc: ...here.
14487 * haifa-sched.c: Moved to...
14488 * haifa-sched.cc: ...here.
14489 * hash-map-tests.c: Moved to...
14490 * hash-map-tests.cc: ...here.
14491 * hash-set-tests.c: Moved to...
14492 * hash-set-tests.cc: ...here.
14493 * hash-table.c: Moved to...
14494 * hash-table.cc: ...here.
14495 * hooks.c: Moved to...
14496 * hooks.cc: ...here.
14497 * host-default.c: Moved to...
14498 * host-default.cc: ...here.
14499 * hw-doloop.c: Moved to...
14500 * hw-doloop.cc: ...here.
14501 * hwint.c: Moved to...
14502 * hwint.cc: ...here.
14503 * ifcvt.c: Moved to...
14504 * ifcvt.cc: ...here.
14505 * inchash.c: Moved to...
14506 * inchash.cc: ...here.
14507 * incpath.c: Moved to...
14508 * incpath.cc: ...here.
14509 * init-regs.c: Moved to...
14510 * init-regs.cc: ...here.
14511 * input.c: Moved to...
14512 * input.cc: ...here.
14513 * internal-fn.c: Moved to...
14514 * internal-fn.cc: ...here.
14515 * intl.c: Moved to...
14516 * intl.cc: ...here.
14517 * ipa-comdats.c: Moved to...
14518 * ipa-comdats.cc: ...here.
14519 * ipa-cp.c: Moved to...
14520 * ipa-cp.cc: ...here.
14521 * ipa-devirt.c: Moved to...
14522 * ipa-devirt.cc: ...here.
14523 * ipa-fnsummary.c: Moved to...
14524 * ipa-fnsummary.cc: ...here.
14525 * ipa-icf-gimple.c: Moved to...
14526 * ipa-icf-gimple.cc: ...here.
14527 * ipa-icf.c: Moved to...
14528 * ipa-icf.cc: ...here.
14529 * ipa-inline-analysis.c: Moved to...
14530 * ipa-inline-analysis.cc: ...here.
14531 * ipa-inline-transform.c: Moved to...
14532 * ipa-inline-transform.cc: ...here.
14533 * ipa-inline.c: Moved to...
14534 * ipa-inline.cc: ...here.
14535 * ipa-modref-tree.c: Moved to...
14536 * ipa-modref-tree.cc: ...here.
14537 * ipa-modref.c: Moved to...
14538 * ipa-modref.cc: ...here.
14539 * ipa-param-manipulation.c: Moved to...
14540 * ipa-param-manipulation.cc: ...here.
14541 * ipa-polymorphic-call.c: Moved to...
14542 * ipa-polymorphic-call.cc: ...here.
14543 * ipa-predicate.c: Moved to...
14544 * ipa-predicate.cc: ...here.
14545 * ipa-profile.c: Moved to...
14546 * ipa-profile.cc: ...here.
14547 * ipa-prop.c: Moved to...
14548 * ipa-prop.cc: ...here.
14549 * ipa-pure-const.c: Moved to...
14550 * ipa-pure-const.cc: ...here.
14551 * ipa-ref.c: Moved to...
14552 * ipa-ref.cc: ...here.
14553 * ipa-reference.c: Moved to...
14554 * ipa-reference.cc: ...here.
14555 * ipa-split.c: Moved to...
14556 * ipa-split.cc: ...here.
14557 * ipa-sra.c: Moved to...
14558 * ipa-sra.cc: ...here.
14559 * ipa-utils.c: Moved to...
14560 * ipa-utils.cc: ...here.
14561 * ipa-visibility.c: Moved to...
14562 * ipa-visibility.cc: ...here.
14563 * ipa.c: Moved to...
14565 * ira-build.c: Moved to...
14566 * ira-build.cc: ...here.
14567 * ira-color.c: Moved to...
14568 * ira-color.cc: ...here.
14569 * ira-conflicts.c: Moved to...
14570 * ira-conflicts.cc: ...here.
14571 * ira-costs.c: Moved to...
14572 * ira-costs.cc: ...here.
14573 * ira-emit.c: Moved to...
14574 * ira-emit.cc: ...here.
14575 * ira-lives.c: Moved to...
14576 * ira-lives.cc: ...here.
14577 * ira.c: Moved to...
14579 * jump.c: Moved to...
14580 * jump.cc: ...here.
14581 * langhooks.c: Moved to...
14582 * langhooks.cc: ...here.
14583 * lcm.c: Moved to...
14585 * lists.c: Moved to...
14586 * lists.cc: ...here.
14587 * loop-doloop.c: Moved to...
14588 * loop-doloop.cc: ...here.
14589 * loop-init.c: Moved to...
14590 * loop-init.cc: ...here.
14591 * loop-invariant.c: Moved to...
14592 * loop-invariant.cc: ...here.
14593 * loop-iv.c: Moved to...
14594 * loop-iv.cc: ...here.
14595 * loop-unroll.c: Moved to...
14596 * loop-unroll.cc: ...here.
14597 * lower-subreg.c: Moved to...
14598 * lower-subreg.cc: ...here.
14599 * lra-assigns.c: Moved to...
14600 * lra-assigns.cc: ...here.
14601 * lra-coalesce.c: Moved to...
14602 * lra-coalesce.cc: ...here.
14603 * lra-constraints.c: Moved to...
14604 * lra-constraints.cc: ...here.
14605 * lra-eliminations.c: Moved to...
14606 * lra-eliminations.cc: ...here.
14607 * lra-lives.c: Moved to...
14608 * lra-lives.cc: ...here.
14609 * lra-remat.c: Moved to...
14610 * lra-remat.cc: ...here.
14611 * lra-spills.c: Moved to...
14612 * lra-spills.cc: ...here.
14613 * lra.c: Moved to...
14615 * lto-cgraph.c: Moved to...
14616 * lto-cgraph.cc: ...here.
14617 * lto-compress.c: Moved to...
14618 * lto-compress.cc: ...here.
14619 * lto-opts.c: Moved to...
14620 * lto-opts.cc: ...here.
14621 * lto-section-in.c: Moved to...
14622 * lto-section-in.cc: ...here.
14623 * lto-section-out.c: Moved to...
14624 * lto-section-out.cc: ...here.
14625 * lto-streamer-in.c: Moved to...
14626 * lto-streamer-in.cc: ...here.
14627 * lto-streamer-out.c: Moved to...
14628 * lto-streamer-out.cc: ...here.
14629 * lto-streamer.c: Moved to...
14630 * lto-streamer.cc: ...here.
14631 * lto-wrapper.c: Moved to...
14632 * lto-wrapper.cc: ...here.
14633 * main.c: Moved to...
14634 * main.cc: ...here.
14635 * mcf.c: Moved to...
14637 * mode-switching.c: Moved to...
14638 * mode-switching.cc: ...here.
14639 * modulo-sched.c: Moved to...
14640 * modulo-sched.cc: ...here.
14641 * multiple_target.c: Moved to...
14642 * multiple_target.cc: ...here.
14643 * omp-expand.c: Moved to...
14644 * omp-expand.cc: ...here.
14645 * omp-general.c: Moved to...
14646 * omp-general.cc: ...here.
14647 * omp-low.c: Moved to...
14648 * omp-low.cc: ...here.
14649 * omp-offload.c: Moved to...
14650 * omp-offload.cc: ...here.
14651 * omp-simd-clone.c: Moved to...
14652 * omp-simd-clone.cc: ...here.
14653 * opt-suggestions.c: Moved to...
14654 * opt-suggestions.cc: ...here.
14655 * optabs-libfuncs.c: Moved to...
14656 * optabs-libfuncs.cc: ...here.
14657 * optabs-query.c: Moved to...
14658 * optabs-query.cc: ...here.
14659 * optabs-tree.c: Moved to...
14660 * optabs-tree.cc: ...here.
14661 * optabs.c: Moved to...
14662 * optabs.cc: ...here.
14663 * opts-common.c: Moved to...
14664 * opts-common.cc: ...here.
14665 * opts-global.c: Moved to...
14666 * opts-global.cc: ...here.
14667 * opts.c: Moved to...
14668 * opts.cc: ...here.
14669 * passes.c: Moved to...
14670 * passes.cc: ...here.
14671 * plugin.c: Moved to...
14672 * plugin.cc: ...here.
14673 * postreload-gcse.c: Moved to...
14674 * postreload-gcse.cc: ...here.
14675 * postreload.c: Moved to...
14676 * postreload.cc: ...here.
14677 * predict.c: Moved to...
14678 * predict.cc: ...here.
14679 * prefix.c: Moved to...
14680 * prefix.cc: ...here.
14681 * pretty-print.c: Moved to...
14682 * pretty-print.cc: ...here.
14683 * print-rtl-function.c: Moved to...
14684 * print-rtl-function.cc: ...here.
14685 * print-rtl.c: Moved to...
14686 * print-rtl.cc: ...here.
14687 * print-tree.c: Moved to...
14688 * print-tree.cc: ...here.
14689 * profile-count.c: Moved to...
14690 * profile-count.cc: ...here.
14691 * profile.c: Moved to...
14692 * profile.cc: ...here.
14693 * read-md.c: Moved to...
14694 * read-md.cc: ...here.
14695 * read-rtl-function.c: Moved to...
14696 * read-rtl-function.cc: ...here.
14697 * read-rtl.c: Moved to...
14698 * read-rtl.cc: ...here.
14699 * real.c: Moved to...
14700 * real.cc: ...here.
14701 * realmpfr.c: Moved to...
14702 * realmpfr.cc: ...here.
14703 * recog.c: Moved to...
14704 * recog.cc: ...here.
14705 * ree.c: Moved to...
14707 * reg-stack.c: Moved to...
14708 * reg-stack.cc: ...here.
14709 * regcprop.c: Moved to...
14710 * regcprop.cc: ...here.
14711 * reginfo.c: Moved to...
14712 * reginfo.cc: ...here.
14713 * regrename.c: Moved to...
14714 * regrename.cc: ...here.
14715 * regstat.c: Moved to...
14716 * regstat.cc: ...here.
14717 * reload.c: Moved to...
14718 * reload.cc: ...here.
14719 * reload1.c: Moved to...
14720 * reload1.cc: ...here.
14721 * reorg.c: Moved to...
14722 * reorg.cc: ...here.
14723 * resource.c: Moved to...
14724 * resource.cc: ...here.
14725 * rtl-error.c: Moved to...
14726 * rtl-error.cc: ...here.
14727 * rtl-tests.c: Moved to...
14728 * rtl-tests.cc: ...here.
14729 * rtl.c: Moved to...
14731 * rtlanal.c: Moved to...
14732 * rtlanal.cc: ...here.
14733 * rtlhash.c: Moved to...
14734 * rtlhash.cc: ...here.
14735 * rtlhooks.c: Moved to...
14736 * rtlhooks.cc: ...here.
14737 * rtx-vector-builder.c: Moved to...
14738 * rtx-vector-builder.cc: ...here.
14739 * run-rtl-passes.c: Moved to...
14740 * run-rtl-passes.cc: ...here.
14741 * sancov.c: Moved to...
14742 * sancov.cc: ...here.
14743 * sanopt.c: Moved to...
14744 * sanopt.cc: ...here.
14745 * sbitmap.c: Moved to...
14746 * sbitmap.cc: ...here.
14747 * sched-deps.c: Moved to...
14748 * sched-deps.cc: ...here.
14749 * sched-ebb.c: Moved to...
14750 * sched-ebb.cc: ...here.
14751 * sched-rgn.c: Moved to...
14752 * sched-rgn.cc: ...here.
14753 * sel-sched-dump.c: Moved to...
14754 * sel-sched-dump.cc: ...here.
14755 * sel-sched-ir.c: Moved to...
14756 * sel-sched-ir.cc: ...here.
14757 * sel-sched.c: Moved to...
14758 * sel-sched.cc: ...here.
14759 * selftest-diagnostic.c: Moved to...
14760 * selftest-diagnostic.cc: ...here.
14761 * selftest-rtl.c: Moved to...
14762 * selftest-rtl.cc: ...here.
14763 * selftest-run-tests.c: Moved to...
14764 * selftest-run-tests.cc: ...here.
14765 * selftest.c: Moved to...
14766 * selftest.cc: ...here.
14767 * sese.c: Moved to...
14768 * sese.cc: ...here.
14769 * shrink-wrap.c: Moved to...
14770 * shrink-wrap.cc: ...here.
14771 * simplify-rtx.c: Moved to...
14772 * simplify-rtx.cc: ...here.
14773 * sparseset.c: Moved to...
14774 * sparseset.cc: ...here.
14775 * spellcheck-tree.c: Moved to...
14776 * spellcheck-tree.cc: ...here.
14777 * spellcheck.c: Moved to...
14778 * spellcheck.cc: ...here.
14779 * sreal.c: Moved to...
14780 * sreal.cc: ...here.
14781 * stack-ptr-mod.c: Moved to...
14782 * stack-ptr-mod.cc: ...here.
14783 * statistics.c: Moved to...
14784 * statistics.cc: ...here.
14785 * stmt.c: Moved to...
14786 * stmt.cc: ...here.
14787 * stor-layout.c: Moved to...
14788 * stor-layout.cc: ...here.
14789 * store-motion.c: Moved to...
14790 * store-motion.cc: ...here.
14791 * streamer-hooks.c: Moved to...
14792 * streamer-hooks.cc: ...here.
14793 * stringpool.c: Moved to...
14794 * stringpool.cc: ...here.
14795 * substring-locations.c: Moved to...
14796 * substring-locations.cc: ...here.
14797 * symtab.c: Moved to...
14798 * symtab.cc: ...here.
14799 * target-globals.c: Moved to...
14800 * target-globals.cc: ...here.
14801 * targhooks.c: Moved to...
14802 * targhooks.cc: ...here.
14803 * timevar.c: Moved to...
14804 * timevar.cc: ...here.
14805 * toplev.c: Moved to...
14806 * toplev.cc: ...here.
14807 * tracer.c: Moved to...
14808 * tracer.cc: ...here.
14809 * trans-mem.c: Moved to...
14810 * trans-mem.cc: ...here.
14811 * tree-affine.c: Moved to...
14812 * tree-affine.cc: ...here.
14813 * tree-call-cdce.c: Moved to...
14814 * tree-call-cdce.cc: ...here.
14815 * tree-cfg.c: Moved to...
14816 * tree-cfg.cc: ...here.
14817 * tree-cfgcleanup.c: Moved to...
14818 * tree-cfgcleanup.cc: ...here.
14819 * tree-chrec.c: Moved to...
14820 * tree-chrec.cc: ...here.
14821 * tree-complex.c: Moved to...
14822 * tree-complex.cc: ...here.
14823 * tree-data-ref.c: Moved to...
14824 * tree-data-ref.cc: ...here.
14825 * tree-dfa.c: Moved to...
14826 * tree-dfa.cc: ...here.
14827 * tree-diagnostic.c: Moved to...
14828 * tree-diagnostic.cc: ...here.
14829 * tree-dump.c: Moved to...
14830 * tree-dump.cc: ...here.
14831 * tree-eh.c: Moved to...
14832 * tree-eh.cc: ...here.
14833 * tree-emutls.c: Moved to...
14834 * tree-emutls.cc: ...here.
14835 * tree-if-conv.c: Moved to...
14836 * tree-if-conv.cc: ...here.
14837 * tree-inline.c: Moved to...
14838 * tree-inline.cc: ...here.
14839 * tree-into-ssa.c: Moved to...
14840 * tree-into-ssa.cc: ...here.
14841 * tree-iterator.c: Moved to...
14842 * tree-iterator.cc: ...here.
14843 * tree-loop-distribution.c: Moved to...
14844 * tree-loop-distribution.cc: ...here.
14845 * tree-nested.c: Moved to...
14846 * tree-nested.cc: ...here.
14847 * tree-nrv.c: Moved to...
14848 * tree-nrv.cc: ...here.
14849 * tree-object-size.c: Moved to...
14850 * tree-object-size.cc: ...here.
14851 * tree-outof-ssa.c: Moved to...
14852 * tree-outof-ssa.cc: ...here.
14853 * tree-parloops.c: Moved to...
14854 * tree-parloops.cc: ...here.
14855 * tree-phinodes.c: Moved to...
14856 * tree-phinodes.cc: ...here.
14857 * tree-predcom.c: Moved to...
14858 * tree-predcom.cc: ...here.
14859 * tree-pretty-print.c: Moved to...
14860 * tree-pretty-print.cc: ...here.
14861 * tree-profile.c: Moved to...
14862 * tree-profile.cc: ...here.
14863 * tree-scalar-evolution.c: Moved to...
14864 * tree-scalar-evolution.cc: ...here.
14865 * tree-sra.c: Moved to...
14866 * tree-sra.cc: ...here.
14867 * tree-ssa-address.c: Moved to...
14868 * tree-ssa-address.cc: ...here.
14869 * tree-ssa-alias.c: Moved to...
14870 * tree-ssa-alias.cc: ...here.
14871 * tree-ssa-ccp.c: Moved to...
14872 * tree-ssa-ccp.cc: ...here.
14873 * tree-ssa-coalesce.c: Moved to...
14874 * tree-ssa-coalesce.cc: ...here.
14875 * tree-ssa-copy.c: Moved to...
14876 * tree-ssa-copy.cc: ...here.
14877 * tree-ssa-dce.c: Moved to...
14878 * tree-ssa-dce.cc: ...here.
14879 * tree-ssa-dom.c: Moved to...
14880 * tree-ssa-dom.cc: ...here.
14881 * tree-ssa-dse.c: Moved to...
14882 * tree-ssa-dse.cc: ...here.
14883 * tree-ssa-forwprop.c: Moved to...
14884 * tree-ssa-forwprop.cc: ...here.
14885 * tree-ssa-ifcombine.c: Moved to...
14886 * tree-ssa-ifcombine.cc: ...here.
14887 * tree-ssa-live.c: Moved to...
14888 * tree-ssa-live.cc: ...here.
14889 * tree-ssa-loop-ch.c: Moved to...
14890 * tree-ssa-loop-ch.cc: ...here.
14891 * tree-ssa-loop-im.c: Moved to...
14892 * tree-ssa-loop-im.cc: ...here.
14893 * tree-ssa-loop-ivcanon.c: Moved to...
14894 * tree-ssa-loop-ivcanon.cc: ...here.
14895 * tree-ssa-loop-ivopts.c: Moved to...
14896 * tree-ssa-loop-ivopts.cc: ...here.
14897 * tree-ssa-loop-manip.c: Moved to...
14898 * tree-ssa-loop-manip.cc: ...here.
14899 * tree-ssa-loop-niter.c: Moved to...
14900 * tree-ssa-loop-niter.cc: ...here.
14901 * tree-ssa-loop-prefetch.c: Moved to...
14902 * tree-ssa-loop-prefetch.cc: ...here.
14903 * tree-ssa-loop-split.c: Moved to...
14904 * tree-ssa-loop-split.cc: ...here.
14905 * tree-ssa-loop-unswitch.c: Moved to...
14906 * tree-ssa-loop-unswitch.cc: ...here.
14907 * tree-ssa-loop.c: Moved to...
14908 * tree-ssa-loop.cc: ...here.
14909 * tree-ssa-math-opts.c: Moved to...
14910 * tree-ssa-math-opts.cc: ...here.
14911 * tree-ssa-operands.c: Moved to...
14912 * tree-ssa-operands.cc: ...here.
14913 * tree-ssa-phiopt.c: Moved to...
14914 * tree-ssa-phiopt.cc: ...here.
14915 * tree-ssa-phiprop.c: Moved to...
14916 * tree-ssa-phiprop.cc: ...here.
14917 * tree-ssa-pre.c: Moved to...
14918 * tree-ssa-pre.cc: ...here.
14919 * tree-ssa-propagate.c: Moved to...
14920 * tree-ssa-propagate.cc: ...here.
14921 * tree-ssa-reassoc.c: Moved to...
14922 * tree-ssa-reassoc.cc: ...here.
14923 * tree-ssa-sccvn.c: Moved to...
14924 * tree-ssa-sccvn.cc: ...here.
14925 * tree-ssa-scopedtables.c: Moved to...
14926 * tree-ssa-scopedtables.cc: ...here.
14927 * tree-ssa-sink.c: Moved to...
14928 * tree-ssa-sink.cc: ...here.
14929 * tree-ssa-strlen.c: Moved to...
14930 * tree-ssa-strlen.cc: ...here.
14931 * tree-ssa-structalias.c: Moved to...
14932 * tree-ssa-structalias.cc: ...here.
14933 * tree-ssa-tail-merge.c: Moved to...
14934 * tree-ssa-tail-merge.cc: ...here.
14935 * tree-ssa-ter.c: Moved to...
14936 * tree-ssa-ter.cc: ...here.
14937 * tree-ssa-threadbackward.c: Moved to...
14938 * tree-ssa-threadbackward.cc: ...here.
14939 * tree-ssa-threadedge.c: Moved to...
14940 * tree-ssa-threadedge.cc: ...here.
14941 * tree-ssa-threadupdate.c: Moved to...
14942 * tree-ssa-threadupdate.cc: ...here.
14943 * tree-ssa-uncprop.c: Moved to...
14944 * tree-ssa-uncprop.cc: ...here.
14945 * tree-ssa-uninit.c: Moved to...
14946 * tree-ssa-uninit.cc: ...here.
14947 * tree-ssa.c: Moved to...
14948 * tree-ssa.cc: ...here.
14949 * tree-ssanames.c: Moved to...
14950 * tree-ssanames.cc: ...here.
14951 * tree-stdarg.c: Moved to...
14952 * tree-stdarg.cc: ...here.
14953 * tree-streamer-in.c: Moved to...
14954 * tree-streamer-in.cc: ...here.
14955 * tree-streamer-out.c: Moved to...
14956 * tree-streamer-out.cc: ...here.
14957 * tree-streamer.c: Moved to...
14958 * tree-streamer.cc: ...here.
14959 * tree-switch-conversion.c: Moved to...
14960 * tree-switch-conversion.cc: ...here.
14961 * tree-tailcall.c: Moved to...
14962 * tree-tailcall.cc: ...here.
14963 * tree-vect-data-refs.c: Moved to...
14964 * tree-vect-data-refs.cc: ...here.
14965 * tree-vect-generic.c: Moved to...
14966 * tree-vect-generic.cc: ...here.
14967 * tree-vect-loop-manip.c: Moved to...
14968 * tree-vect-loop-manip.cc: ...here.
14969 * tree-vect-loop.c: Moved to...
14970 * tree-vect-loop.cc: ...here.
14971 * tree-vect-patterns.c: Moved to...
14972 * tree-vect-patterns.cc: ...here.
14973 * tree-vect-slp-patterns.c: Moved to...
14974 * tree-vect-slp-patterns.cc: ...here.
14975 * tree-vect-slp.c: Moved to...
14976 * tree-vect-slp.cc: ...here.
14977 * tree-vect-stmts.c: Moved to...
14978 * tree-vect-stmts.cc: ...here.
14979 * tree-vector-builder.c: Moved to...
14980 * tree-vector-builder.cc: ...here.
14981 * tree-vectorizer.c: Moved to...
14982 * tree-vectorizer.cc: ...here.
14983 * tree-vrp.c: Moved to...
14984 * tree-vrp.cc: ...here.
14985 * tree.c: Moved to...
14986 * tree.cc: ...here.
14987 * tsan.c: Moved to...
14988 * tsan.cc: ...here.
14989 * typed-splay-tree.c: Moved to...
14990 * typed-splay-tree.cc: ...here.
14991 * ubsan.c: Moved to...
14992 * ubsan.cc: ...here.
14993 * valtrack.c: Moved to...
14994 * valtrack.cc: ...here.
14995 * value-prof.c: Moved to...
14996 * value-prof.cc: ...here.
14997 * var-tracking.c: Moved to...
14998 * var-tracking.cc: ...here.
14999 * varasm.c: Moved to...
15000 * varasm.cc: ...here.
15001 * varpool.c: Moved to...
15002 * varpool.cc: ...here.
15003 * vec-perm-indices.c: Moved to...
15004 * vec-perm-indices.cc: ...here.
15005 * vec.c: Moved to...
15007 * vmsdbgout.c: Moved to...
15008 * vmsdbgout.cc: ...here.
15009 * vr-values.c: Moved to...
15010 * vr-values.cc: ...here.
15011 * vtable-verify.c: Moved to...
15012 * vtable-verify.cc: ...here.
15013 * web.c: Moved to...
15015 * xcoffout.c: Moved to...
15016 * xcoffout.cc: ...here.
15018 2022-01-17 qing zhao <qing.zhao@oracle.com>
15020 * tree-ssa-uninit.c (warn_uninit): Delete the 4th parameter. Handle
15021 .DEFERRED_INIT call with an anonymous SSA_NAME specially.
15022 (check_defs): Handle .DEFERRED_INIT call with an anonymous SSA_NAME
15024 (warn_uninit_phi_uses): Delete the 4th actual when call warn_uninit.
15025 (warn_uninitialized_vars): Likewise.
15026 (warn_uninitialized_phi): Likewise.
15028 2022-01-17 Jason Merrill <jason@redhat.com>
15030 * diagnostic.h (struct diagnostic_context): Add includes_seen.
15031 * diagnostic.c (diagnostic_initialize): Initialize it.
15032 (diagnostic_finish): Clean it up.
15033 (includes_seen): New function.
15034 (diagnostic_report_current_module): Use it.
15036 2022-01-17 Richard Biener <rguenther@suse.de>
15038 PR middle-end/101292
15039 * diagnostic-spec.c (copy_warning): Make sure to not
15040 reference old hashtable content on possible resize.
15041 * warning-control.cc (copy_warning): Likewise.
15043 2022-01-17 Jakub Jelinek <jakub@redhat.com>
15046 * tree-cfg.h (cond_only_block_p): Declare.
15047 * tree-ssa-phiopt.c (cond_only_block_p): Move function to ...
15048 * tree-cfg.c (cond_only_block_p): ... here. No longer static.
15049 * optabs.def (spaceship_optab): New optab.
15050 * internal-fn.def (SPACESHIP): New internal function.
15051 * internal-fn.h (expand_SPACESHIP): Declare.
15052 * internal-fn.c (expand_PHI): Formatting fix.
15053 (expand_SPACESHIP): New function.
15054 * tree-ssa-math-opts.c (optimize_spaceship): New function.
15055 (math_opts_dom_walker::after_dom_children): Use it.
15056 * config/i386/i386.md (spaceship<mode>3): New define_expand.
15057 * config/i386/i386-protos.h (ix86_expand_fp_spaceship): Declare.
15058 * config/i386/i386-expand.c (ix86_expand_fp_spaceship): New function.
15059 * doc/md.texi (spaceship@var{m}3): Document.
15061 2022-01-17 Kewen Lin <linkw@linux.ibm.com>
15063 * config/rs6000/altivec.md (altivec_vreveti2): Remove.
15064 * config/rs6000/vsx.md (*vsx_extract_si, *vsx_extract_si_<uns>float_df,
15065 *vsx_extract_si_<uns>float_<mode>, *vsx_insert_extract_v4sf_p9): Use
15066 known constant values to simplify code.
15068 2022-01-17 Haochen Gui <guihaoc@gcc.gnu.org>
15071 * config/rs6000/vsx.md (split pattern for TI to V1TI move): Defined.
15073 2022-01-16 wwwhhhyyy <hongyu.wang@intel.com>
15075 * config/i386/i386.h (TARGET_DEST_FALSE_DEP_FOR_GLC): New macro.
15076 * config/i386/sse.md (<avx512>_<complexopname>_<mode><maskc_name><round_name>):
15077 Insert zero-idiom in output template when attr enabled, set new attribute to
15078 true for non-mask/maskz insn.
15079 (avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>):
15081 (avx512dq_mul<mode>3<mask_name>): Likewise.
15082 (<avx2_avx512>_permvar<mode><mask_name>): Likewise.
15083 (avx2_perm<mode>_1<mask_name>): Likewise.
15084 (avx512f_perm<mode>_1<mask_name>): Likewise.
15085 (avx512dq_rangep<mode><mask_name><round_saeonly_name>): Likewise.
15086 (avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>):
15088 (<avx512>_getmant<mode><mask_name><round_saeonly_name>): Likewise.
15089 (avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
15091 * config/i386/subst.md (mask3_dest_false_dep_for_glc_cond): New
15093 (mask4_dest_false_dep_for_glc_cond): Likewise.
15094 (mask6_dest_false_dep_for_glc_cond): Likewise.
15095 (mask10_dest_false_dep_for_glc_cond): Likewise.
15096 (maskc_dest_false_dep_for_glc_cond): Likewise.
15097 (mask_scalar4_dest_false_dep_for_glc_cond): Likewise.
15098 (mask_scalarc_dest_false_dep_for_glc_cond): Likewise.
15099 * config/i386/x86-tune.def (X86_TUNE_DEST_FALSE_DEP_FOR_GLC): New
15100 DEF_TUNE enabled for m_SAPPHIRERAPIDS and m_ALDERLAKE
15102 2022-01-15 Martin Sebor <msebor@redhat.com>
15105 * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
15106 -Wdangling-pointer.
15107 * doc/invoke.texi (-Wdangling-pointer): Document new option.
15108 * gimple-ssa-warn-access.cc (pass_waccess::clone): Set new member.
15109 (pass_waccess::check_pointer_uses): New function.
15110 (pass_waccess::gimple_call_return_arg): New function.
15111 (pass_waccess::gimple_call_return_arg_ref): New function.
15112 (pass_waccess::check_call_dangling): New function.
15113 (pass_waccess::check_dangling_uses): New function overloads.
15114 (pass_waccess::check_dangling_stores): New function.
15115 (pass_waccess::check_dangling_stores): New function.
15116 (pass_waccess::m_clobbers): New data member.
15117 (pass_waccess::m_func): New data member.
15118 (pass_waccess::m_run_number): New data member.
15119 (pass_waccess::m_check_dangling_p): New data member.
15120 (pass_waccess::check_alloca): Check m_early_checks_p.
15121 (pass_waccess::check_alloc_size_call): Same.
15122 (pass_waccess::check_strcat): Same.
15123 (pass_waccess::check_strncat): Same.
15124 (pass_waccess::check_stxcpy): Same.
15125 (pass_waccess::check_stxncpy): Same.
15126 (pass_waccess::check_strncmp): Same.
15127 (pass_waccess::check_memop_access): Same.
15128 (pass_waccess::check_read_access): Same.
15129 (pass_waccess::check_builtin): Call check_pointer_uses.
15130 (pass_waccess::warn_invalid_pointer): Add arguments.
15131 (is_auto_decl): New function.
15132 (pass_waccess::check_stmt): New function.
15133 (pass_waccess::check_block): Call check_stmt.
15134 (pass_waccess::execute): Call check_dangling_uses,
15135 check_dangling_stores. Empty m_clobbers.
15136 * passes.def (pass_warn_access): Invoke pass two more times.
15138 2022-01-15 Martin Sebor <msebor@redhat.com>
15140 PR tree-optimization/80532
15141 * common.opt (-Wuse-after-free): New options.
15142 * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
15143 OPT_Wreturn_local_addr and OPT_Wuse_after_free_.
15144 * diagnostic-spec.h (NW_DANGLING): New enumerator.
15145 * doc/invoke.texi (-Wuse-after-free): Document new option.
15146 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Rename...
15147 (pass_waccess::check_call_access): ...to this.
15148 (pass_waccess::check): Rename...
15149 (pass_waccess::check_block): ...to this.
15150 (pass_waccess::check_pointer_uses): New function.
15151 (pass_waccess::gimple_call_return_arg): New function.
15152 (pass_waccess::warn_invalid_pointer): New function.
15153 (pass_waccess::check_builtin): Handle free and realloc.
15154 (gimple_use_after_inval_p): New function.
15155 (get_realloc_lhs): New function.
15156 (maybe_warn_mismatched_realloc): New function.
15157 (pointers_related_p): New function.
15158 (pass_waccess::check_call): Call check_pointer_uses.
15159 (pass_waccess::execute): Compute and free dominance info.
15161 2022-01-15 Uroš Bizjak <ubizjak@gmail.com>
15163 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
15164 expand_simple_unop and expand_simple_binop instead of manually
15165 constructing NOT, AND and IOR RTXes. Use vector_all_ones_operand
15166 consistently. Eliminate common subexpressions and simplify code.
15167 * config/i386/sse.md (<any_logic:code><MODEF:mode>3): New expander.
15168 (<any_logic:code><MODEF:mode>3): Make public.
15170 2022-01-14 Eric Botcazou <ebotcazou@adacore.com>
15172 * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Dump
15173 reverse flag as "reverse" for the sake of consistency.
15174 * ipa-sra.c: Fix copyright year.
15175 (ipa_sra_function_summaries::duplicate): Copy the reverse flag.
15176 (dump_isra_access): Tweak dump line.
15177 (isra_write_node_summary): Write the reverse flag.
15178 (isra_read_node_info): Read it.
15179 (pull_accesses_from_callee): Test its consistency and copy it.
15181 2022-01-14 Richard Sandiford <richard.sandiford@arm.com>
15183 PR middle-end/104026
15184 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
15185 partial_load_store_bias.
15187 2022-01-14 Martin Sebor <msebor@redhat.com>
15189 PR middle-end/101475
15190 * pointer-query.cc (handle_component_ref): Use the size of
15191 the enclosing object if it's smaller than the member.
15193 2022-01-14 Martin Liska <mliska@suse.cz>
15195 * configure: Regenerate.
15197 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
15199 * config/i386/i386.md (*add<mode>_1_slp"):
15200 Mark alternative 1 output operand earlyclobbered.
15201 (*sub<mode>_1_slp): Ditto.
15202 (*and<mode>_1_slp): Ditto.
15203 (*<code><mode>_1_slp): Ditto.
15204 (*neg<mode>_1_slp): Ditto.
15205 (*one_cmpl<mode>_1_slp): Ditto.
15206 (*ashl<mode>3_1_slp): Ditto.
15207 (*<insn><mode>3_1_slp): Ditto.
15208 (*<insn><mode>3_1_slp): Ditto.
15210 2022-01-14 Kewen Lin <linkw@linux.ibm.com>
15212 PR tree-optimization/104015
15213 * tree-vect-loop.c (vect_analyze_loop): Check
15214 param_vect_partial_vector_usage for supports_partial_vectors.
15216 2022-01-14 Jakub Jelinek <jakub@redhat.com>
15219 * fold-const.c (address_compare): Punt on comparison of address of
15220 one object with address of end of another object if
15221 folding_initializer.
15223 2022-01-14 Jakub Jelinek <jakub@redhat.com>
15226 * tree-ssa-forwprop.c (simplify_builtin_call): Canonicalize
15227 __atomic_fetch_op (p, x, y) op x into __atomic_op_fetch (p, x, y)
15228 and __atomic_op_fetch (p, x, y) iop x into
15229 __atomic_fetch_op (p, x, y).
15231 2022-01-14 Claudiu Zissulescu <claziss@synopsys.com>
15233 * config/arc/arc.h (DWARF_FRAME_REGNUM): Update definition.
15234 (DWARF_FRAME_RETURN_COLUMN): Use RETURN_ADDR_REGNUM macro.
15235 (INCOMING_RETURN_ADDR_RTX): Likewise.
15236 (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
15238 2022-01-14 Claudiu Zissulescu <claziss@synopsys.com>
15240 * config/arc/arc.c (arc_compute_frame_size): Remove condition when
15241 computin checking accumulator regs.
15242 (arc_expand_prologue): Update comments.
15243 (arc_expand_epilogue): Likewise.
15245 2022-01-14 Roger Sayle <roger@nextmovesoftware.com>
15246 Uroš Bizjak <ubizjak@gmail.com>
15248 * config/i386/i386-expand.c (ix86_expand_v1ti_to_ti): Use force_reg.
15249 (ix86_expand_ti_to_v1ti): Use force_reg.
15250 (ix86_expand_v1ti_shift): Use force_reg.
15251 (ix86_expand_v1ti_rotate): Use force_reg.
15252 (ix86_expand_v1ti_ashiftrt): Provide new three operation
15253 implementations for shifts by 111..126 bits. Use force_reg.
15255 2022-01-14 Martin Liska <mliska@suse.cz>
15257 * common/config/arm/arm-common.c (arm_target_mode): Fix
15258 warning: unterminated quoting directive [-Wformat=].
15260 2022-01-14 Siddhesh Poyarekar <siddhesh@gotplt.org>
15262 PR tree-optimization/104009
15263 * tree-object-size.c (compute_builtin_object_size): Bail out on
15265 (plus_stmt_object_size): Return maximum of wholesize and minimum
15266 of 0 for negative offset.
15268 2022-01-14 liuhongt <hongtao.liu@intel.com>
15273 * config/i386/i386.md (*xor2andn): Refine predicate of
15274 operands[0] from nonimmediate_operand to
15275 register_operand, remove TARGET_AVX512BW from condition.
15277 2022-01-14 David Malcolm <dmalcolm@redhat.com>
15279 * doc/extend.texi (Function Attributes): Note that "tainted_args" can
15280 be used on field decls.
15281 (Common Function Attributes): Add entry on "tainted_args" attribute.
15283 2022-01-13 Anthony Sharp <anthonysharp15@gmail.com>
15284 Jason Merrill <jason@redhat.com>
15287 * doc/invoke.texi: Documentation for Wmissing-template-keyword.
15289 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
15292 * config/i386/i386.md (*ashlqi_ext<mode>_2): New insn pattern.
15293 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
15294 * config/i386/mmx.md (<any_shift:insn>v2qi):
15295 New insn_and_split pattern.
15297 2022-01-13 Robin Dapp <rdapp@linux.ibm.com>
15299 * internal-fn.c (expand_partial_load_optab_fn): Add bias.
15300 (expand_partial_store_optab_fn): Likewise.
15301 (internal_len_load_store_bias): New function.
15302 * internal-fn.h (VECT_PARTIAL_BIAS_UNSUPPORTED): New define.
15303 (internal_len_load_store_bias): New function.
15304 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Set bias.
15305 (vect_set_loop_condition_partial_vectors): Add header_seq parameter.
15306 * tree-vect-loop.c (vect_verify_loop_lens): Verify bias.
15307 (vect_estimate_min_profitable_iters): Account for bias.
15308 (vect_get_loop_len): Add bias-adjusted length.
15309 * tree-vect-stmts.c (vectorizable_store): Use.
15310 (vectorizable_load): Use.
15311 * tree-vectorizer.h (struct rgroup_controls): Add bias-adjusted length.
15312 (LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS): New macro.
15313 * config/rs6000/vsx.md: Use const0 bias predicate.
15314 * doc/md.texi: Document bias value.
15316 2022-01-13 Andrew MacLeod <amacleod@redhat.com>
15318 PR tree-optimization/83072
15319 PR tree-optimization/83073
15320 PR tree-optimization/97909
15321 * fold-const.c (expr_not_equal_to): Use a multi-range class.
15323 2022-01-13 Andrew MacLeod <amacleod@redhat.com>
15325 PR tree-optimization/96707
15326 * range-op.cc (operator_rshift::lhs_op1_relation): New.
15328 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
15330 * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
15331 Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
15332 (negv2qi splitters): Use lowpart_subreg instead of
15333 gen_lowpart to create subreg.
15334 (<plusminus:insn>v2qi3): Disparage GPR alternative a bit.
15335 Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
15336 (<plusminus:insn>v2qi3 splitters): Use lowpart_subreg instead of
15337 gen_lowpart to create subreg.
15338 * config/i386/i386.md (*subqi_ext<mode>_2): Move.
15340 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
15343 * config/i386/mmx.md (*xop_pcmov_<mode>): Use VI_16_32 mode iterator.
15345 2022-01-13 Martin Liska <mliska@suse.cz>
15347 * common/config/arm/arm-common.c (arm_target_mode): Wrap
15348 keywords with %<, %> and remove trailing punctuation char.
15349 (arm_canon_arch_option_1): Likewise.
15350 (arm_asm_auto_mfpu): Likewise.
15351 * config/arm/arm-builtins.c (arm_expand_builtin): Likewise.
15352 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Likewise.
15353 (use_vfp_abi): Likewise.
15354 (aapcs_vfp_is_call_or_return_candidate): Likewise.
15355 (arm_handle_cmse_nonsecure_entry): Likewise.
15356 (arm_handle_cmse_nonsecure_call): Likewise.
15357 (thumb1_md_asm_adjust): Likewise.
15359 2022-01-13 Paul A. Clarke <pc@us.ibm.com>
15361 * config/rs6000/smmintrin.h (_mm_round_pd, _mm_round_ps,
15362 _mm_round_sd, _mm_round_ss, _MM_FROUND_TO_NEAREST_INT,
15363 _MM_FROUND_TO_ZERO, _MM_FROUND_TO_POS_INF, _MM_FROUND_TO_NEG_INF,
15364 _MM_FROUND_CUR_DIRECTION, _MM_FROUND_RAISE_EXC, _MM_FROUND_NO_EXC,
15365 _MM_FROUND_NINT, _MM_FROUND_FLOOR, _MM_FROUND_CEIL, _MM_FROUND_TRUNC,
15366 _MM_FROUND_RINT, _MM_FROUND_NEARBYINT): New.
15367 (_mm_ceil_pd, _mm_ceil_ps, _mm_ceil_sd, _mm_ceil_ss, _mm_floor_pd,
15368 _mm_floor_ps, _mm_floor_sd, _mm_floor_ss): Convert from function to
15371 2022-01-13 Jakub Jelinek <jakub@redhat.com>
15373 PR tree-optimization/103989
15374 * tree-inline.c (setup_one_parameter): Don't copy parms with
15377 2022-01-13 Thomas Schwinge <thomas@codesourcery.com>
15379 * tree-streamer-out.c (pack_ts_base_value_fields): Don't pack
15380 'TYPE_ADDR_SPACE' for offloading.
15381 * tree-streamer-in.c (unpack_ts_base_value_fields): Don't unpack
15382 'TYPE_ADDR_SPACE' for offloading.
15384 2022-01-13 Julian Brown <julian@codesourcery.com>
15385 Thomas Schwinge <thomas@codesourcery.com>
15387 * omp-oacc-kernels-decompose.cc (add_wait): New function, split out
15389 (add_async_clauses_and_wait): ...here. Call new outlined function.
15390 (decompose_kernels_region_body): Add wait at the end of
15391 explicitly-asynchronous kernels regions.
15393 2022-01-13 Thomas Schwinge <thomas@codesourcery.com>
15395 PR middle-end/100280
15396 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
15397 Mark variables used in synthesized data clauses as addressable.
15399 2022-01-13 Martin Liska <mliska@suse.cz>
15401 * config/epiphany/epiphany.c (epiphany_mode_priority):
15402 Use gcc_unreachable for not handled cases.
15404 2022-01-13 Martin Liska <mliska@suse.cz>
15406 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
15407 Use %qs format specifier.
15408 (epiphany_override_options): Wrap keyword in %<, %>.
15410 2022-01-13 Haochen Jiang <haochen.jiang@intel.com>
15413 * config/i386/i386.md (*xor2andn): New define_insn_and_split.
15415 2022-01-13 Xionghu Luo <luoxhu@linux.ibm.com>
15417 * config/rs6000/altivec.md (sldoi_to_mov<mode>): New.
15419 2022-01-12 Uroš Bizjak <ubizjak@gmail.com>
15423 * config/i386/i386-expand.c (ix86_emit_vec_binop): New static function.
15424 (ix86_expand_sse_movcc): Use ix86_emit_vec_binop instead of gen_rtx_X
15425 when constructing vector logic RTXes.
15426 (expand_vec_perm_pshufb2): Ditto.
15427 * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
15428 (<plusminus:insn>v2qi3): Ditto.
15429 (vcond<mode><mode>): Re-enable for TARGET_SSE2.
15430 (vcondu<mode><mode>): Ditto.
15431 (vcond_mask_<mode><mode>): Ditto.
15432 (one_cmpl<VI_32:mode>2): Remove expander.
15433 (one_cmpl<VI_16_32:mode>2): Rename from one_cmplv2qi.
15434 Use VI_16_32 mode iterator.
15435 (one_cmpl<VI_16_32:mode>2 splitters): Use VI_16_32 mode iterator.
15436 Use lowpart_subreg instead of gen_lowpart to create subreg.
15437 (*andnot<VI_16_32:mode>3): Merge from "*andnot<VI_32:mode>" and
15438 "*andnotv2qi3" insn patterns using VI_16_32 mode iterator.
15439 Disparage GPR alternative a bit. Add CC clobber.
15440 (*andnot<VI_16_32:mode>3 splitters): Use VI_16_32 mode iterator.
15441 Use lowpart_subreg instead of gen_lowpart to create subreg.
15442 (*<any_logic:code><VI_16_32:mode>3): Merge from
15443 "*<any_logic:code><VI_32:mode>" and "*<any_logic:code>v2qi3" insn patterns
15444 using VI_16_32 mode iterator. Disparage GPR alternative a bit.
15446 (*<any_logic:code><VI_16_32:mode>3 splitters):Use VI_16_32 mode
15447 iterator. Use lowpart_subreg instead of gen_lowpart to create subreg.
15449 2022-01-12 Clément Chigot <clement.chigot@atos.net>
15451 * configure.ac: Check sizeof ino_t and dev_t.
15452 (HOST_STAT_FOR_64BIT_INODES): New AC_DEFINE to provide stat
15453 syscall being able to handle 64bit inodes.
15454 * config.in: Regenerate.
15455 * configure: Regenerate.
15456 * incpath.c (HOST_STAT_FOR_64BIT_INODES): New define.
15457 (remove_duplicates): Use it.
15459 2022-01-12 Andrew MacLeod <amacleod@redhat.com>
15461 PR tree-optimization/103551
15462 * tree-vrp.c (execute_ranger_vrp): Always set EDGE_EXECUTABLE.
15464 2022-01-12 Richard Biener <rguenther@suse.de>
15466 PR tree-optimization/103990
15467 * tree-pass.h (tail_merge_optimize): Drop unused argument.
15468 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
15469 * tree-ssa-pre.c (pass_pre::execute): Retain TODO_cleanup_cfg
15470 and adjust call to tail_merge_optimize.
15472 2022-01-12 Andre Vieira <andre.simoesdiasvieira@arm.com>
15474 * tree-vect-loop.c (vect-analyze-loop): Handle scenario where target
15475 does not add autovectorize_vector_modes.
15477 2022-01-12 Martin Liska <mliska@suse.cz>
15479 * config/aarch64/aarch64.c (aarch64_parse_boolean_options): Use
15480 %qs where possible.
15481 (aarch64_parse_sve_width_string): Likewise.
15482 (aarch64_override_options_internal): Likewise.
15483 (aarch64_print_hint_for_extensions): Likewise.
15484 (aarch64_validate_sls_mitigation): Likewise.
15485 (aarch64_handle_attr_arch): Likewise.
15486 (aarch64_handle_attr_cpu): Likewise.
15487 (aarch64_handle_attr_tune): Likewise.
15488 (aarch64_handle_attr_isa_flags): Likewise.
15490 2022-01-12 Martin Liska <mliska@suse.cz>
15492 * config.gcc: Include elfos.h before ${tm_file}.
15494 2022-01-12 Hans-Peter Nilsson <hp@axis.com>
15496 * config/cris/cris.c: Quote identifiers in parameters to error
15497 and internal_error, and remove extraneous spaces with punctuation.
15498 * config/cris/cris.h (CRIS_ASSERT): When passing on stringified
15499 expression to internal_error, pass it as a parameter instead of
15500 appending it to the format part.
15502 2022-01-12 Hans-Peter Nilsson <hp@axis.com>
15504 * config/cris/cris.c (cris_postdbr_cmpelim): Parenthesize
15507 2022-01-11 qing zhao <qing.zhao@oracle.com>
15509 * gimplify.c (gimple_add_init_for_auto_var): Delete the 3rd argument.
15510 Change the 3rd argument of function .DEFERRED_INIT to the name of the
15512 (gimplify_decl_expr): Delete the 3rd argument when call
15513 gimple_add_init_for_auto_var.
15514 * internal-fn.c (expand_DEFERRED_INIT): Update comments to reflect
15515 the 3rd argument change of function .DEFERRED_INIT.
15516 * tree-cfg.c (verify_gimple_call): Update comments and verification
15517 to reflect the 3rd argument change of function .DEFERRED_INIT.
15518 * tree-sra.c (generate_subtree_deferred_init): Delete the 3rd argument.
15519 (sra_modify_deferred_init): Change the 3rd argument of function
15520 .DEFERRED_INIT to the name of the decl.
15522 2022-01-11 Thomas Koenig <tkoenig@gcc.gnu.org>
15524 * flag-types.h (enum gfc_convert): Add flags for
15527 2022-01-11 Michael Meissner <meissner@the-meissners.org>
15529 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
15530 checks for only C/C++ front ends before allowing the long double
15531 format to change without a warning.
15533 2022-01-11 Richard Sandiford <richard.sandiford@arm.com>
15535 PR rtl-optimization/103974
15536 * ira-int.h (ira_subloop_allocnos_can_differ_p): Take an
15537 extra argument, default true, that says whether old-reload
15538 targets should be excluded.
15539 * ira-color.c (color_pass): Pass false.
15541 2022-01-11 Uroš Bizjak <ubizjak@gmail.com>
15544 * config/i386/mmx.md (vcond<mode><mode>):
15545 Use VI_16_32 mode iterator. Enable for TARGET_SSE4_1.
15546 (vcondu<mode><mode>): Ditto.
15547 (vcond_mask_<mode><mode>): Ditto.
15548 (mmx_pblendvb_v8qi): Rename from mmx_pblendvb64.
15549 (mmx_pblendvb_<mode>): Rename from mmx_pblendvb32.
15550 Use VI_16_32 mode iterator.
15551 * config/i386/i386-expand.c (ix86_expand_sse_movcc):
15552 Update for rename. Handle V2QImode.
15553 (expand_vec_perm_blend): Update for rename.
15555 2022-01-11 Jakub Jelinek <jakub@redhat.com>
15558 * tree.def (OBJ_TYPE_REF): Document type of OBJ_TYPE_REF_TOKEN.
15560 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
15562 PR middle-end/70090
15563 * tree-object-size.c (size_valid_p): New function.
15564 (size_for_offset): Remove OFFSET constness assertion.
15565 (addr_object_size): Build dynamic expressions for object
15566 sizes and use size_valid_p to decide if it is valid for the
15567 given OBJECT_SIZE_TYPE.
15568 (compute_builtin_object_size): Allow dynamic offsets when
15569 computing size at O0.
15570 (call_object_size): Call size_valid_p.
15571 (plus_stmt_object_size): Allow non-constant offset and use
15572 size_valid_p to decide if it is valid for the given
15575 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
15577 PR middle-end/70090
15578 * tree-object-size.c (alloc_object_size): Make and return
15579 non-constant size expression.
15580 (call_object_size): Return expression or unknown based on
15581 whether dynamic object size is requested.
15583 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
15585 PR middle-end/70090
15586 * tree-object-size.c: Include tree-dfa.h.
15587 (parm_object_size): New function.
15588 (collect_object_sizes_for): Call it.
15590 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
15592 PR middle-end/70090
15593 * builtins.c (fold_builtin_object_size): Adjust for dynamic size
15595 * tree-object-size.c: Include gimplify-me.h.
15596 (struct object_size_info): New member UNKNOWNS.
15597 (size_initval_p, size_usable_p, object_sizes_get_raw): New
15599 (object_sizes_get): Return suitable gimple variable for
15601 (bundle_sizes): New function.
15602 (object_sizes_set): Use it and handle dynamic object size
15604 (object_sizes_set_temp): New function.
15605 (size_for_offset): Adjust for dynamic size expressions.
15606 (emit_phi_nodes, propagate_unknowns, gimplify_size_expressions):
15608 (compute_builtin_object_size): Call gimplify_size_expressions
15610 (dynamic_object_size): New function.
15611 (cond_expr_object_size): Use it.
15612 (phi_dynamic_object_size): New function.
15613 (collect_object_sizes_for): Call it for OST_DYNAMIC. Adjust to
15614 accommodate dynamic object sizes.
15616 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
15617 Jakub Jelinek <jakub@redhat.com>
15619 PR tree-optimization/103961
15620 * tree-object-size.c (plus_stmt_object_size): Always avoid
15621 computing offset for -1 size.
15623 2022-01-11 Andrew MacLeod <amacleod@redhat.com>
15625 PR tree-optimization/103821
15626 * range-op.cc (range_operator::fold_range): Only do precise ranges
15627 when there are not too many subranges.
15629 2022-01-11 Richard Sandiford <richard.sandiford@arm.com>
15631 * ira-costs.c (ira_tune_allocno_costs): Fix missing rclass
15632 definition in IRA_HARD_REGNO_ADD_COST_MULTIPLIER code.
15634 2022-01-11 Roger Sayle <roger@nextmovesoftware.com>
15635 Richard Biener <rguenther@suse.de>
15637 * tree-ssa-math-opts.c (struct widen_mul_stats): Add a
15638 highpart_mults_inserted field.
15639 (convert_mult_to_highpart): New function to convert right shift
15640 of a widening multiply into a MULT_HIGHPART_EXPR.
15641 (math_opts_dom_walker::after_dom_children) [RSHIFT_EXPR]:
15642 Call new convert_mult_to_highpart function.
15643 (pass_optimize_widening_mul::execute): Add a statistics counter
15644 for tracking "highpart multiplications inserted" events.
15646 2022-01-11 Xionghu Luo <luoxhu@linux.ibm.com>
15649 * config/rs6000/rs6000-protos.h (rs6000_is_valid_rotate_dot_mask): New
15651 * config/rs6000/rs6000.c (rs6000_is_valid_rotate_dot_mask): New
15653 * config/rs6000/rs6000.md (*branch_anddi3_dot): New.
15655 2022-01-11 Olivier Hainque <hainque@adacore.com>
15657 * gcc.c (driver_handle_option): State --sysroot as
15660 2022-01-11 Kewen Lin <linkw@linux.ibm.com>
15662 * config/rs6000/rs6000.c (rs6000_disable_incompatible_switches): Remove
15663 useless related to option -mno-power10.
15665 2022-01-11 Haochen Jiang <haochen.jiang@intel.com>
15668 * config/i386/sse.md (*andnot<mode>3): Extend predicate of
15669 operands[1] from register_operand to vector_operand.
15671 2022-01-10 Uroš Bizjak <ubizjak@gmail.com>
15674 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
15676 * config/i386/mmx.md (<sat_plusminus:insn><mode>3):
15677 Use VI1_16_32 mode iterator.
15678 (*eq<mode>3): Ditto.
15679 (*gt<mode>3): Ditto.
15680 (*xop_maskcmp<mode>3): Ditto.
15681 (*xop_maskcmp_uns<mode>3): Ditto.
15682 (vec_cmp<mode><mode>): Ditto.
15683 (vec_cmpu<mode><mode>): Ditto.
15685 2022-01-10 Richard Biener <rguenther@suse.de>
15687 PR tree-optimization/103948
15688 * tree-vect-generic.c (expand_vector_condition): Return true if
15689 all ones vector is returned for true, all zeros vector for false
15690 and the target defines corresponding vec_cmp{,u}MN named RTX pattern.
15692 2022-01-10 Paul A. Clarke <pc@us.ibm.com>
15694 * config/rs6000/smmintrin.h (_mm_blendv_epi8): Use vec_blendv
15695 when _ARCH_PWR10. Use signed types.
15696 (_mm_blendv_ps): Use vec_blendv when _ARCH_PWR10.
15697 (_mm_blendv_pd): Likewise.
15699 2022-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
15701 * tree-vectorizer.c (better_epilogue_loop_than_p): Round factors up for
15703 * tree-vect-loop.c (vect_analyze_loop): Re-analyze all modes for
15704 epilogues, unless we are guaranteed that we can't have partial vectors.
15705 * genopinit.c: (partial_vectors_supported): Generate new function.
15707 2022-01-10 Jakub Jelinek <jakub@redhat.com>
15710 * config/i386/i386.c (classify_argument): Add zero_width_bitfields
15711 argument, when seeing DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD bitfields,
15712 always ignore them, when seeing other zero sized bitfields, either
15713 set zero_width_bitfields to 1 and ignore it or if equal to 2 process
15714 it. Pass it to recursive calls. Add wrapper
15715 with old arguments and diagnose ABI differences for C structures
15716 with zero width bitfields. Formatting fixes.
15718 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
15720 PR rtl-optimization/98782
15721 * ira-int.h (ira_soft_conflict): Declare.
15722 * ira-color.c (max_soft_conflict_loop_depth): New constant.
15723 (ira_soft_conflict): New function.
15724 (spill_soft_conflicts): Likewise.
15725 (assign_hard_reg): Use them to handle the case described by
15726 the comment above ira_soft_conflict.
15727 (improve_allocation): Likewise.
15728 * ira.c (check_allocation): Allow allocnos with "soft" conflicts
15729 to share the same register.
15731 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
15733 PR rtl-optimization/98782
15734 * ira-int.h (ira_caller_save_cost): New function.
15735 (ira_caller_save_loop_spill_p): Likewise.
15736 * ira-build.c (ira_propagate_hard_reg_costs): Test whether it is
15737 cheaper to spill a call-clobbered register throughout a loop rather
15738 than spill it around each individual call. If so, treat all
15739 call-clobbered registers as conflicts and...
15740 (propagate_allocno_info): ...do not propagate call information
15741 from the child to the parent.
15742 * ira-color.c (move_spill_restore): Update accordingly.
15743 * ira-costs.c (ira_tune_allocno_costs): Use ira_caller_save_cost.
15745 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
15747 PR rtl-optimization/98782
15748 * ira-int.h (ira_allocno::might_conflict_with_parent_p): New field.
15749 (ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P): New macro.
15750 (ira_single_region_allocno_p): New function.
15751 (ira_total_conflict_hard_regs): Likewise.
15752 * ira-build.c (ira_create_allocno): Initialize
15753 ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P.
15754 (ira_propagate_hard_reg_costs): New function.
15755 (propagate_allocno_info): Use it. Try to avoid propagating
15756 hard register conflicts to parent allocnos if we can handle
15757 the conflicts by spilling instead. Limit the propagated
15758 register costs to the cost of spilling throughout the child loop.
15759 * ira-color.c (color_pass): Use ira_single_region_allocno_p to
15760 test whether a child and parent allocno can share the same
15762 (move_spill_restore): Adjust for the new behavior of
15763 propagate_allocno_info.
15765 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
15767 PR rtl-optimization/98782
15768 * ira-int.h (ira_subloop_allocnos_can_differ_p): New function,
15770 * ira-color.c (color_pass): ...here.
15772 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
15774 PR rtl-optimization/98782
15775 * ira-color.c (color_pass): Add comments to describe the spill costs.
15776 (move_spill_restore): Likewise. Fix reversed calculation.
15778 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
15780 PR rtl-optimization/98782
15781 * ira-int.h (ira_loop_border_costs): New class.
15782 * ira-color.c (ira_loop_border_costs::ira_loop_border_costs):
15784 (calculate_allocno_spill_cost): Use ira_loop_border_costs.
15785 (color_pass): Likewise.
15786 (move_spill_restore): Likewise.
15788 2022-01-10 Eric Botcazou <ebotcazou@adacore.com>
15791 * coretypes.h (unwind_info_type): Swap UI_SEH and UI_TARGET.
15793 2022-01-10 Richard Biener <rguenther@suse.de>
15795 PR tree-optimization/100359
15796 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
15797 Allow non-growing peeling with !allow_peel and UL_ALL.
15799 2022-01-08 Roger Sayle <roger@nextmovesoftware.com>
15801 * config/i386/i386-expand.c (ix86_expand_vector_move): Add
15802 special case for TImode to V1TImode moves, going via V2DImode.
15804 2022-01-08 Jakub Jelinek <jakub@redhat.com>
15807 * match.pd ((ptr) (x p+ y) p+ z -> (ptr) (x p+ (y + z))): New GENERIC
15810 2022-01-08 David Malcolm <dmalcolm@redhat.com>
15812 * doc/analyzer.texi
15813 (Special Functions for Debugging the Analyzer): Document
15814 __analyzer_dump_escaped.
15816 2022-01-08 David Malcolm <dmalcolm@redhat.com>
15818 * doc/analyzer.texi (Other Debugging Techniques): Document
15819 region::is_named_decl_p.
15821 2022-01-07 Andrew Pinski <apinski@marvell.com>
15824 * config/arm/aarch-common.c (arm_md_asm_adjust):
15825 Use a temp if !REG_P.
15827 2022-01-07 Uroš Bizjak <ubizjak@gmail.com>
15829 * config/i386/mmx.md (*move<V_32:mode>_internal): Add isa attribute.
15830 (*movv2qi_internal): Remve sse2 requirement for alternatives 4,5.
15832 2022-01-07 liuhongt <hongtao.liu@intel.com>
15834 PR rtl-optimization/103750
15835 * fwprop.c (forward_propagate_into): Allow propagations from
15836 inner loop to outer loop.
15838 2022-01-07 Roger Sayle <roger@nextmovesoftware.com>
15840 * config/nvptx/nvptx.md (*cnot<mode>2): New define_insn.
15842 2022-01-07 Haochen Gui <guihaoc@gcc.gnu.org>
15844 * config/rs6000/rs6000.md (rs6000_mffscrni): Define.
15845 (rs6000_set_fpscr_rn): Change the type of operand[0] from DI to SI.
15846 Call gen_rs6000_mffscrni when operand[0] is a const_0_to_3_operand.
15848 2022-01-07 liuhongt <hongtao.liu@intel.com>
15850 * config/i386/sse.md
15851 (*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Extend to
15852 UNSPEC_PCMP_UNSIGNED.
15854 2022-01-07 liuhongt <hongtao.liu@intel.com>
15857 * config/i386/i386-expand.c (ix86_expand_vector_set): Not use
15858 gen_avx2_pblendph_1 when elt == 0.
15859 * config/i386/sse.md (avx2_pblendph): Rename to ..
15860 (avx2_pblend<ssemodesuffix>_1).. this, and extend to V16HI.
15861 (*avx2_pblendw): Rename to ..
15862 (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
15863 (avx2_pblendw): Rename to ..
15864 (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
15865 (blendsuf): Removed.
15866 (sse4_1_pblend<blendsuf>): Renamed to ..
15867 (sse4_1_pblend<ssemodesuffix>): .. this.
15869 2022-01-06 H.J. Lu <hjl.tools@gmail.com>
15872 * config/i386/i386.c (ix86_output_indirect_function_return):
15873 Generate INT3 after indirect jmp for -mharden-sls=indirect-jmp.
15875 2022-01-06 H.J. Lu <hjl.tools@gmail.com>
15878 * config/i386/i386-opts.h (harden_sls): Replace
15879 harden_sls_indirect_branch with harden_sls_indirect_jmp.
15880 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect):
15882 (ix86_output_indirect_jmp): Likewise.
15883 (ix86_output_call_insn): Likewise.
15884 * config/i386/i386.opt: Replace indirect-branch with
15885 indirect-jmp. Replace harden_sls_indirect_branch with
15886 harden_sls_indirect_jmp.
15887 * doc/invoke.texi (-harden-sls=): Replace indirect-branch with
15890 2022-01-06 Uroš Bizjak <ubizjak@gmail.com>
15892 * config/i386/i386.c (ix86_output_ssemov) <MODE_DI>:
15893 Add %q modifier for operands in general registers.
15894 <MODE_SI>: Add %q modifier for operands in general registers.
15895 * config/i386/i386.md (*movhi_internal): Change type attribute of
15896 xmm-gpr interunit alternatives 9,10 to ssemov and mode attribute
15897 to SImode for non-avx512fp16 targets.
15898 (*movhf_internal): Ditto for xmm-gpr interunit alternatives 6,8.
15899 * config/i386/mmx.md (*movv2qi_internal):
15900 Ditto for xmm-gpr interunit alternatives 8,9.
15902 2022-01-06 Kito Cheng <kito.cheng@sifive.com>
15904 * common/config/riscv/riscv-common.c (riscv_implied_info): Add
15906 (riscv_ext_version_table): Add version info for vector extensions.
15907 (riscv_ext_flag_table): Add option mask for vector extensions.
15908 * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): New.
15909 (MASK_VECTOR_EEW_64): New.
15910 (MASK_VECTOR_EEW_FP_32): New.
15911 (MASK_VECTOR_EEW_FP_64): New.
15912 (MASK_ZVL32B): New.
15913 (MASK_ZVL64B): New.
15914 (MASK_ZVL128B): New.
15915 (MASK_ZVL256B): New.
15916 (MASK_ZVL512B): New.
15917 (MASK_ZVL1024B): New.
15918 (MASK_ZVL2048B): New.
15919 (MASK_ZVL4096B): New.
15920 (MASK_ZVL8192B): New.
15921 (MASK_ZVL16384B): New.
15922 (MASK_ZVL32768B): New.
15923 (MASK_ZVL65536B): New.
15924 (TARGET_ZVL32B): New.
15925 (TARGET_ZVL64B): New.
15926 (TARGET_ZVL128B): New.
15927 (TARGET_ZVL256B): New.
15928 (TARGET_ZVL512B): New.
15929 (TARGET_ZVL1024B): New.
15930 (TARGET_ZVL2048B): New.
15931 (TARGET_ZVL4096B): New.
15932 (TARGET_ZVL8192B): New.
15933 (TARGET_ZVL16384B): New.
15934 (TARGET_ZVL32768B): New.
15935 (TARGET_ZVL65536B): New.
15936 * config/riscv/riscv.opt (Mask(VECTOR)): New.
15937 (riscv_vector_eew_flags): New.
15938 (riscv_zvl_flags): New.
15940 2022-01-06 Kito Cheng <kito.cheng@sifive.com>
15942 * common/config/riscv/riscv-common.c
15943 (riscv_subset_list::parse_multiletter_ext): Allow ext. name has
15946 2022-01-06 Jakub Jelinek <jakub@redhat.com>
15948 PR tree-optimization/103899
15949 * expr.c (expand_expr_real_1): Add a workaround for bogus uninit
15950 warning by moving context variable to the only spot where it is used
15951 and moving gcc_assert into if body.
15953 2022-01-06 Jakub Jelinek <jakub@redhat.com>
15955 PR rtl-optimization/103908
15956 * ifcvt.c (bb_valid_for_noce_process_p): Punt on bbs ending with
15959 2022-01-05 Bill Schmidt <wschmidt@linux.ibm.com>
15962 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15963 Skip over instances with undefined function types.
15965 2022-01-05 Andrew Pinski <apinski@marvell.com>
15968 * config/i386/i386.h (x86_mfence): Mark with GTY.
15970 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
15973 * config/i386/mmx.md (VI_16_32): New mode iterator.
15974 (VI1_16_32): Ditto.
15975 (mmxvecsize): Handle V2QI mode.
15976 (<smaxmin:code><mode>3): Rename from <smaxmin:code>v4qi3.
15977 Use VI1_16_32 mode iterator.
15978 (<umaxmin:code><mode>3): Rename from <umaxmin:code>v4qi3.
15979 Use VI1_16_32 mode iterator.
15980 (abs<mode>2): Use VI_16_32 mode iterator.
15981 (uavgv2qi3_ceil): New insn pattern.
15983 2022-01-05 Martin Sebor <msebor@redhat.com>
15985 * gimple-ssa-warn-access.cc (pass_waccess::maybe_warn_memmodel): Use
15986 %qs to avoid -Wformat-diag.
15988 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
15991 * config/i386/mmx.md (one_cmplv2qi2): Change
15992 alternatives 1,2 type from sselog to sselog1.
15994 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
15997 * config/i386/i386-expand.c (expand_vec_perm_pshufb): Fix number of
15998 narrow mode remapped elements for !one_operand_p case.
16000 2022-01-05 Richard Biener <rguenther@suse.de>
16002 PR tree-optimization/103816
16003 * tree-vect-data-refs.c (vect_analyze_group_access_1): Also
16004 check DR_GROUP_GAP compute for overflow and representability.
16006 2022-01-05 Jakub Jelinek <jakub@redhat.com>
16009 * gimple-fold.c (fold_stmt_1): Don't call maybe_fold_reference
16010 for DEBUG stmts with ADDR_EXPR gimple_debug_bind_get_value,
16011 it can do unwanted rhs folding like &a[0] into &2.0 etc.
16013 2022-01-05 Kewen Lin <linkw@linux.ibm.com>
16016 * config/rs6000/rs6000.c (TARGET_NEED_IPA_FN_TARGET_INFO): New macro.
16017 (TARGET_UPDATE_IPA_FN_TARGET_INFO): Likewise.
16018 (rs6000_need_ipa_fn_target_info): New function.
16019 (rs6000_update_ipa_fn_target_info): Likewise.
16020 (rs6000_can_inline_p): Adjust for ipa function summary target info.
16021 * config/rs6000/rs6000.h (RS6000_FN_TARGET_INFO_HTM): New macro.
16022 * ipa-fnsummary.c (ipa_dump_fn_summary): Adjust for ipa function
16023 summary target info.
16024 (analyze_function_body): Adjust for ipa function summary target info
16025 and call hook rs6000_need_ipa_fn_target_info and
16026 rs6000_update_ipa_fn_target_info.
16027 (ipa_merge_fn_summary_after_inlining): Adjust for ipa function summary
16029 (inline_read_section): Likewise.
16030 (ipa_fn_summary_write): Likewise.
16031 * ipa-fnsummary.h (ipa_fn_summary::target_info): New member.
16032 * doc/tm.texi: Regenerate.
16033 * doc/tm.texi.in (TARGET_UPDATE_IPA_FN_TARGET_INFO): Document new hook.
16034 (TARGET_NEED_IPA_FN_TARGET_INFO): Likewise.
16035 * target.def (update_ipa_fn_target_info): New hook.
16036 (need_ipa_fn_target_info): Likewise.
16037 * targhooks.c (default_need_ipa_fn_target_info): New function.
16038 (default_update_ipa_fn_target_info): Likewise.
16039 * targhooks.h (default_update_ipa_fn_target_info): New declare.
16040 (default_need_ipa_fn_target_info): Likewise.
16042 2022-01-04 Martin Sebor <msebor@redhat.com>
16044 PR middle-end/99612
16045 * builtins.c (get_memmodel): Move warning code to
16046 gimple-ssa-warn-access.cc.
16047 (expand_builtin_atomic_compare_exchange): Same.
16048 (expand_ifn_atomic_compare_exchange): Same.
16049 (expand_builtin_atomic_load): Same.
16050 (expand_builtin_atomic_store): Same.
16051 (expand_builtin_atomic_clear): Same.
16052 * doc/extend.texi (__atomic_exchange_n): Update valid memory
16054 * gimple-ssa-warn-access.cc (memmodel_to_uhwi): New function.
16055 (struct memmodel_pair): New struct.
16056 (memmodel_name): New function.
16057 (pass_waccess::maybe_warn_memmodel): New function.
16058 (pass_waccess::check_atomic_memmodel): New function.
16059 (pass_waccess::check_atomic_builtin): Handle memory model.
16060 * input.c (expansion_point_location_if_in_system_header): Return
16061 original location if expansion location is in a system header.
16063 2022-01-04 Uroš Bizjak <ubizjak@gmail.com>
16066 * config/i386/mmx.md (one_cmplv2qi3): New insn pattern.
16067 (one_cmplv2qi3 splitters): New post-reload splitters.
16068 (*andnotv2qi3): New insn pattern.
16069 (andnotv2qi3 splitters): New post-reload splitters.
16070 (<any_logic:code>v2qi3): New insn pattern.
16071 (<any_logic:insn>v2qi3 splitters): New post-reload splitters.
16073 2022-01-04 Richard Biener <rguenther@suse.de>
16075 PR tree-optimization/103800
16076 * tree-vect-loop.c (vectorizable_phi): Remove assert and
16079 2022-01-04 Richard Biener <rguenther@suse.de>
16081 PR tree-optimization/103690
16082 * tree-pass.h (tail_merge_optimize): Adjust.
16083 * tree-ssa-tail-merge.c (tail_merge_optimize): Pass in whether
16084 to re-split critical edges, move CFG cleanup ...
16085 * tree-ssa-pre.c (pass_pre::execute): ... here, before
16086 simple_dce_from_worklist and delay freeing inserted_exprs from
16088 (fini_pre): .. here.
16090 2022-01-04 Roger Sayle <roger@nextmovesoftware.com>
16092 * config/nvptx/nvptx.h (STORE_FLAG_VALUE): Change to 1.
16093 * config/nvptx/nvptx.md (movbi): Use P1 constraint for true.
16094 (setcc_from_bi): Remove SImode specific pattern.
16095 (setcc<mode>_from_bi): Provide more general HSDIM pattern.
16096 (extendbi<mode>2, zeroextendbi<mode>2): Provide instructions
16097 for sign- and zero-extending BImode predicates to integers.
16098 (setcc_int<mode>): Remove previous (-1-based) instructions.
16099 (cstorebi4): Remove BImode to SImode specific expander.
16100 (cstore<mode>4): Fix indentation. Expand using setccsi_from_bi.
16101 (cstore<mode>4): For both integer and floating point modes.
16103 2022-01-04 Olivier Hainque <hainque@adacore.com>
16105 * gcc.c (driver_handle_option): do_save --sysroot.
16107 2022-01-04 Richard Biener <rguenther@suse.de>
16109 PR tree-optimization/103864
16110 PR tree-optimization/103544
16111 * tree-vect-slp.c (vect_analyze_slp_instance): Exclude
16112 reductions wrapped in conversions from SLP handling.
16113 (vect_analyze_slp): Revert PR103544 change.
16115 2022-01-04 Jakub Jelinek <jakub@redhat.com>
16117 PR rtl-optimization/103860
16118 * shrink-wrap.c (try_shrink_wrapping): Don't call can_get_prologue
16119 uselessly for blocks for which it has been called already.
16121 2022-01-04 Cui,Lili <lili.cui@intel.com>
16123 * common/config/i386/cpuinfo.h (get_intel_cpu): Add new model values
16124 to Alderlake and Rocketlake.
16126 2022-01-04 Chung-Lin Tang <cltang@codesourcery.com>
16128 PR middle-end/103643
16129 * gimplify.c (gimplify_omp_affinity): Adjust gimplify_expr of entire
16130 OMP_CLAUSE_DECL to use 'is_gimple_lvalue, fb_lvalue'
16132 2022-01-04 liuhongt <hongtao.liu@intel.com>
16135 * config/i386/sse.md (*bit_and_float_vector_all_ones):
16136 Force_reg operand 1 to avoid ICE.
16138 2022-01-04 Jason Merrill <jason@redhat.com>
16140 * tree-pretty-print.c (do_niy): Add spc parameter.
16142 (print_call_name): Add spc local variable.
16144 2022-01-03 Uroš Bizjak <ubizjak@gmail.com>
16147 * config/i386/mmx.md (mov<V_32:mode>): Remove TARGET_SSE2 constraint.
16148 (mov<V_32:mode>_internal): Ditto.
16149 (*push<V_32:mode>_rex64): Ditto.
16150 (movmisalign<V_32:mode>): Ditto.
16151 (*push<V_32:mode>_rex64 splitter): Enable for
16152 TARGET_64BIT && TARGET_SSE.
16153 (*push<V_32:mode>2): Remove insn pattern.
16155 2022-01-03 Andrew Pinski <apinski@marvell.com>
16158 * doc/extend.texi: Extend the documentation about Complex
16159 types for casting and also rewrite the __real__/__imag__
16160 expression portion to use tables.
16161 Move __builtin_complex to the Complex type section.
16163 2022-01-03 Jakub Jelinek <jakub@redhat.com>
16166 * internal-fn.def (ATOMIC_ADD_FETCH_CMP_0, ATOMIC_SUB_FETCH_CMP_0,
16167 ATOMIC_AND_FETCH_CMP_0, ATOMIC_OR_FETCH_CMP_0, ATOMIC_XOR_FETCH_CMP_0):
16169 * internal-fn.h (ATOMIC_OP_FETCH_CMP_0_EQ, ATOMIC_OP_FETCH_CMP_0_NE,
16170 ATOMIC_OP_FETCH_CMP_0_LT, ATOMIC_OP_FETCH_CMP_0_LE,
16171 ATOMIC_OP_FETCH_CMP_0_GT, ATOMIC_OP_FETCH_CMP_0_GE): New enumerators.
16172 * internal-fn.c (expand_ATOMIC_ADD_FETCH_CMP_0,
16173 expand_ATOMIC_SUB_FETCH_CMP_0, expand_ATOMIC_AND_FETCH_CMP_0,
16174 expand_ATOMIC_OR_FETCH_CMP_0, expand_ATOMIC_XOR_FETCH_CMP_0): New
16176 * optabs.def (atomic_add_fetch_cmp_0_optab,
16177 atomic_sub_fetch_cmp_0_optab, atomic_and_fetch_cmp_0_optab,
16178 atomic_or_fetch_cmp_0_optab, atomic_xor_fetch_cmp_0_optab): New
16180 * builtins.h (expand_ifn_atomic_op_fetch_cmp_0): Declare.
16181 * builtins.c (expand_ifn_atomic_op_fetch_cmp_0): New function.
16182 * tree-ssa-ccp.c: Include internal-fn.h.
16183 (optimize_atomic_bit_test_and): Add . before internal fn call
16184 in function comment. Change return type from void to bool and
16185 return true only if successfully replaced.
16186 (optimize_atomic_op_fetch_cmp_0): New function.
16187 (pass_fold_builtins::execute): Use optimize_atomic_op_fetch_cmp_0
16188 for BUILT_IN_ATOMIC_{ADD,SUB,AND,OR,XOR}_FETCH_{1,2,4,8,16} and
16189 BUILT_IN_SYNC_{ADD,SUB,AND,OR,XOR}_AND_FETCH_{1,2,4,8,16},
16190 for *XOR* ones only if optimize_atomic_bit_test_and failed.
16191 * config/i386/sync.md (atomic_<plusminus_mnemonic>_fetch_cmp_0<mode>,
16192 atomic_<logic>_fetch_cmp_0<mode>): New define_expand patterns.
16193 (atomic_add_fetch_cmp_0<mode>_1, atomic_sub_fetch_cmp_0<mode>_1,
16194 atomic_<logic>_fetch_cmp_0<mode>_1): New define_insn patterns.
16195 * doc/md.texi (atomic_add_fetch_cmp_0<mode>,
16196 atomic_sub_fetch_cmp_0<mode>, atomic_and_fetch_cmp_0<mode>,
16197 atomic_or_fetch_cmp_0<mode>, atomic_xor_fetch_cmp_0<mode>): Document
16198 new named patterns.
16200 2022-01-03 Richard Biener <rguenther@suse.de>
16202 PR middle-end/103851
16203 * tree-cfg.c (move_sese_region_to_fn): Always release SSA names.
16205 2022-01-03 Jakub Jelinek <jakub@redhat.com>
16208 * symtab.c: Include fold-const.h.
16209 (symtab_node::equal_address_to): If folding_initializer is true,
16210 handle it like memory_accessed. Simplify.
16212 2022-01-03 Martin Liska <mliska@suse.cz>
16214 * doc/extend.texi: Use ; for function declarations.
16216 2022-01-03 Jakub Jelinek <jakub@redhat.com>
16219 * symtab.c (symtab_node::equal_address_to): Return 0 if one of
16220 VAR_DECLs has "non overlapping" attribute and rs1 != rs2.
16222 2022-01-03 Jakub Jelinek <jakub@redhat.com>
16224 * gcc.c (process_command): Update copyright notice dates.
16225 * gcov-dump.c (print_version): Ditto.
16226 * gcov.c (print_version): Ditto.
16227 * gcov-tool.c (print_version): Ditto.
16228 * gengtype.c (create_file): Ditto.
16229 * doc/cpp.texi: Bump @copying's copyright year.
16230 * doc/cppinternals.texi: Ditto.
16231 * doc/gcc.texi: Ditto.
16232 * doc/gccint.texi: Ditto.
16233 * doc/gcov.texi: Ditto.
16234 * doc/install.texi: Ditto.
16235 * doc/invoke.texi: Ditto.
16237 2022-01-02 Uroš Bizjak <ubizjak@gmail.com>
16240 * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V2QImode.
16241 (VALID_INT_MODE_P): Ditto.
16242 * config/i386/i386.c (ix86_secondary_reload): Handle
16243 V2QImode reloads from SSE register to memory.
16244 (vector_mode_supported_p): Always return true for V2QImode.
16245 * config/i386/i386.md (*subqi_ext<mode>_2): New insn pattern.
16246 (*negqi_ext<mode>_2): Ditto.
16247 * config/i386/mmx.md (movv2qi): New expander.
16248 (movmisalignv2qi): Ditto.
16249 (*movv2qi_internal): New insn pattern.
16250 (*pushv2qi2): Ditto.
16251 (negv2qi2 and splitters): Ditto.
16252 (<plusminus:insn>v2qi3 and splitters): Ditto.
16254 2022-01-02 John David Anglin <danglin@gcc.gnu.org>
16256 * config/pa/pa.md (atomic_storeq): Use optab_libfunc to access
16257 sync_lock_test_and_set libfunc. Call convert_memory_address to
16258 convert memory address to Pmode.
16259 (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
16262 Copyright (C) 2022 Free Software Foundation, Inc.
16264 Copying and distribution of this file, with or without modification,
16265 are permitted in any medium without royalty provided the copyright
16266 notice and this notice are preserved.