]> gcc.gnu.org Git - gcc.git/blob - gcc/ChangeLog
Daily bump.
[gcc.git] / gcc / ChangeLog
1 2022-08-23 H.J. Lu <hjl.tools@gmail.com>
2
3 PR target/106714
4 * config/i386/amxtileintrin.h (_tile_loadd_internal): Cast to
5 __PTRDIFF_TYPE__.
6 (_tile_stream_loadd_internal): Likewise.
7 (_tile_stored_internal): Likewise.
8
9 2022-08-23 Richard Biener <rguenther@suse.de>
10
11 PR tree-optimization/106722
12 * gimple-predicate-analysis.h (MAX_NUM_CHAINS, MAX_CHAIN_LEN,
13 MAX_POSTDOM_CHECK, MAX_SWITCH_CASES): Move ...
14 * gimple-predicate-analysis.cc: ... here and document.
15 (simple_control_dep_chain): New function, factored from
16 predicate::use_cannot_happen.
17 (predicate::use_cannot_happen): Adjust.
18 (predicate::predicate): Use simple_control_dep_chain as fallback.
19
20 2022-08-23 Aldy Hernandez <aldyh@redhat.com>
21
22 * range-op-float.cc (foperator_equal::op1_range): Set range to
23 range of op2.
24
25 2022-08-23 Richard Biener <rguenther@suse.de>
26
27 * gimple-predicate-analysis.cc (is_loop_exit): Split out
28 from ...
29 (is_non_loop_exit_postdominating): ... here. Remove after
30 inlining ...
31 (find_control_equiv_block): ... here.
32 (compute_control_dep_chain): ... and here.
33 (predicate::is_use_guarded): Do not excempt loop exits
34 from short-cutting the case of the use post-dominating the
35 PHI definition.
36
37 2022-08-23 Andrew MacLeod <amacleod@redhat.com>
38
39 PR tree-optimization/106687
40 * range-op.cc (operator_minus::lhs_op1_relation): Return VREL_LE
41 for the VREL_GT case as well.
42
43 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
44
45 * config/pru/pru.md (pru_<code>di3): New alternative for
46 two operands but without earlyclobber.
47
48 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
49
50 * config/pru/pru.md (prumov<mode>, mov<mode>): Add
51 variants for loading -1 consts.
52
53 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
54
55 PR target/106564
56 * config/pru/constraints.md (Um): New constraint for -1.
57 (Uf): New constraint for IOR fill-bytes constants.
58 (Uz): New constraint for AND zero-bytes constants.
59 * config/pru/predicates.md (const_fillbytes_operand): New
60 predicate for IOR fill-bytes constants.
61 (const_zerobytes_operand): New predicate for AND zero-bytes
62 constants.
63 * config/pru/pru-protos.h (pru_output_sign_extend): Remove.
64 (struct pru_byterange): New struct to describe a byte range.
65 (pru_calc_byterange): New declaration.
66 * config/pru/pru.cc (pru_rtx_costs): Add penalty for
67 64-bit zero-extend.
68 (pru_output_sign_extend): Remove.
69 (pru_calc_byterange): New helper function to extract byte
70 range info from a constant.
71 (pru_print_operand): Remove 'y' and 'z' print modifiers.
72 * config/pru/pru.md (zero_extendqidi2): New pattern.
73 (zero_extendhidi2): New pattern.
74 (zero_extendsidi2): New pattern.
75 (extend<EQS0:mode><EQD:mode>2): Rewrite as an expand.
76 (@pru_ior_fillbytes<mode>): New pattern.
77 (@pru_and_zerobytes<mode>): New pattern.
78 (<code>di3): Rewrite as an expand and handle ZERO and FILL
79 special cases.
80 (pru_<code>di3): New name for <code>di3.
81 (@cbranch_qbbx_const_<BIT_TEST:code><HIDI:mode>): New pattern to
82 handle bit-test for 64-bit registers.
83
84 2022-08-22 Richard Biener <rguenther@suse.de>
85
86 * gimple-predicate-analysis.h (predicate::m_use_expr): Remove.
87 (predicate::def_expr): Likewise.
88 (predicate::use_expr): Likewise.
89 (predicate::expr): Likewise.
90 * gimple-predicate-analysis.cc (predicate::def_expr): Remove.
91 (predicate::use_expr): Likewise.
92 (predicate::expr): Likewise.
93 (predicate::is_use_guarded): Do not build m_use_expr.
94
95 2022-08-22 Martin Liska <mliska@suse.cz>
96
97 PR lto/106700
98 * configure.ac: Detect O_NONBLOCK flag for open.
99 * config.in: Regenerate.
100 * configure: Regenerate.
101 * opts-common.cc (jobserver_info::connect): Set is_connected
102 properly based on O_NONBLOCK.
103 * opts-jobserver.h (struct jobserver_info): Add is_connected
104 member variable.
105
106 2022-08-22 zhongjuzhe <juzhe.zhong@rivai.ai>
107
108 * simplify-rtx.cc (test_vector_subregs_fore_back): Make first value
109 and repeat value different.
110
111 2022-08-22 Tobias Burnus <tobias@codesourcery.com>
112
113 PR lto/106686
114 * lto-wrapper.cc (free_array_of_ptrs): Move before tool_cleanup.
115 (tool_cleanup): Unlink offload_names.
116 (compile_offload_image): Take filename argument to set it early.
117 (compile_images_for_offload_targets): Update call; set
118 offload_names to NULL after freeing the array.
119
120 2022-08-22 Richard Biener <rguenther@suse.de>
121
122 PR tree-optimization/105937
123 * tree-ssa-uninit.cc (find_uninit_use): Do not queue PHIs
124 on backedges.
125 (execute_late_warn_uninitialized): Mark backedges.
126
127 2022-08-22 Richard Biener <rguenther@suse.de>
128
129 * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
130 If the use is guarded with multiple predicate paths compute
131 the predicates intersection before going forward. When
132 compute_control_dep_chain wasn't able to come up with at
133 least one path from function entry to the PHI edge compute
134 a conservative sparse path instead.
135
136 2022-08-20 Lulu Cheng <chenglulu@loongson.cn>
137
138 * config/loongarch/loongarch-opts.cc: Allow cmodel to be extreme.
139 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
140 Add extreme support for TLS GD and LD types.
141 (loongarch_legitimize_tls_address): Add extreme support for TLS LE
142 and IE.
143 (loongarch_split_symbol): When compiling with -mcmodel=extreme,
144 the symbol address will be obtained through five instructions.
145 (loongarch_print_operand_reloc): Add support.
146 (loongarch_print_operand): Add support.
147 (loongarch_print_operand_address): Add support.
148 (loongarch_option_override_internal): Set '-mcmodel=extreme' option
149 incompatible with '-mno-explicit-relocs'.
150 * config/loongarch/loongarch.md (@lui_l_hi20<mode>):
151 Loads bits 12-31 of data into registers.
152 (lui_h_lo20): Load bits 32-51 of the data and spell bits 0-31 of
153 the source register.
154 (lui_h_hi12): Load bits 52-63 of the data and spell bits 0-51 of
155 the source register.
156 * config/loongarch/predicates.md: Symbols need to be decomposed
157 when defining the macro TARGET_CMODEL_EXTREME
158 * doc/invoke.texi: Modify the description information of cmodel in the document.
159 Document -W[no-]extreme-plt.
160
161 2022-08-19 Tobias Burnus <tobias@codesourcery.com>
162
163 * config/gcn/mkoffload.cc (main): Add omp_requires_file and dbgobj to
164 files_to_cleanup.
165 * config/i386/intelmic-mkoffload.cc (prepare_target_image): Add
166 omp_requires_file to temp_files.
167 * config/nvptx/mkoffload.cc (omp_requires_file): New global static var.
168 (main): Remove local omp_requires_file var.
169 (tool_cleanup): Handle omp_requires_file.
170
171 2022-08-19 Aldy Hernandez <aldyh@redhat.com>
172
173 * gimple-range-path.cc (path_range_query::path_range_query):
174 Remove constructor that takes edge.
175 * gimple-range-path.h (class path_range_query): Same.
176 * tree-ssa-loop-ch.cc (edge_range_query): New.
177 (entry_loop_condition_is_static): Call edge_range_query.
178
179 2022-08-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
180
181 * config/xtensa/xtensa.h
182 (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
183 Add new register class "ISC_REGS".
184 * config/xtensa/constraints.md (c): Add new register constraint.
185 * config/xtensa/xtensa.md (define_constants): Remove "A11_REG".
186 (sibcall_internal, sibcall_value_internal):
187 Change to use the new register constraint, and remove two split
188 patterns for fixups that are no longer needed.
189
190 2022-08-18 Maciej W. Rozycki <macro@embecosm.com>
191
192 * config/riscv/riscv.md (*mov<GPR:mode><X:mode>cc): Fix output
193 pattern formatting.
194
195 2022-08-18 Tim Lange <mail@tim-lange.me>
196
197 PR analyzer/106181
198 * doc/invoke.texi: Add Wanalyzer-imprecise-fp-arithmetic.
199
200 2022-08-18 Aldy Hernandez <aldyh@redhat.com>
201
202 * gimple-range-path.cc (path_range_query::path_range_query): Add
203 various constructors to take a path.
204 (path_range_query::~path_range_query): Remove m_alloced_ranger.
205 (path_range_query::range_on_path_entry): Adjust for m_ranger being
206 a reference.
207 (path_range_query::set_path): Rename to...
208 (path_range_query::reset_path): ...this and call compute_ranges.
209 (path_range_query::ssa_range_in_phi): Adjust for m_ranger
210 reference.
211 (path_range_query::range_defined_in_block): Same.
212 (path_range_query::compute_ranges_in_block): Same.
213 (path_range_query::adjust_for_non_null_uses): Same.
214 (path_range_query::compute_exit_dependencies): Use m_path instead
215 of argument.
216 (path_range_query::compute_ranges): Remove path argument.
217 (path_range_query::range_of_stmt): Adjust for m_ranger reference.
218 (path_range_query::compute_outgoing_relations): Same.
219 * gimple-range-path.h (class path_range_query): Add various
220 constructors.
221 Make compute_ranges and compute_exit_dependencies private.
222 Rename set_path to reset_path.
223 Make m_ranger a reference.
224 Remove m_alloced_ranger.
225 * tree-ssa-dom.cc (pass_dominator::execute): Adjust constructor to
226 path_range_query.
227 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Take a
228 ranger and instantiate a new path_range_query every time.
229 (ch_base::copy_headers): Pass ranger instead of path_range_query.
230 * tree-ssa-threadbackward.cc (class back_threader): Remove m_solver.
231 (back_threader::~back_threader): Remove m_solver.
232 (back_threader::find_taken_edge_switch): Adjust for m_ranger
233 reference.
234 (back_threader::find_taken_edge_cond): Same.
235 (back_threader::dump): Remove m_solver.
236 (back_threader::back_threader): Move verify_marked_backedges
237 here from the path_range_query constructor.
238 * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Move
239 some code from compute_ranges_from_state here.
240 (hybrid_jt_simplifier::compute_ranges_from_state): Rename...
241 (hybrid_jt_simplifier::compute_exit_dependencies): ...to this.
242 * tree-ssa-threadedge.h (class hybrid_jt_simplifier): Rename
243 compute_ranges_from_state to compute_exit_dependencies.
244 Remove m_path.
245
246 2022-08-18 Richard Biener <rguenther@suse.de>
247
248 PR middle-end/106617
249 * match.pd ((a ? b : c) > d -> a ? (b > d) : (c > d)): Fix
250 guard, disable on GENERIC to not cause quadratic behavior
251 with the fold-const.cc implementation and the use of !
252
253 2022-08-18 Andrew Pinski <apinski@marvell.com>
254
255 PR gcov-profile/106659
256 * gcov-dump.cc (INCLUDE_VECTOR): Include vector.h with
257 INCLUDE_VECTOR.
258
259 2022-08-18 konglin1 <lingling.kong@intel.com>
260
261 * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Handle vector
262 BFmode.
263 (ix86_expand_vector_init_duplicate): Support vector BFmode.
264 (ix86_expand_vector_init_one_nonzero): Ditto.
265 (ix86_expand_vector_init_one_var): Ditto.
266 (ix86_expand_vector_init_concat): Ditto.
267 (ix86_expand_vector_init_interleave): Ditto.
268 (ix86_expand_vector_init_general): Ditto.
269 (ix86_expand_vector_init): Ditto.
270 (ix86_expand_vector_set_var): Ditto.
271 (ix86_expand_vector_set): Ditto.
272 (ix86_expand_vector_extract): Ditto.
273 * config/i386/i386.cc (classify_argument): Add BF vector modes.
274 (function_arg_64): Ditto.
275 (ix86_gimplify_va_arg): Ditto.
276 (ix86_get_ssemov): Ditto.
277 * config/i386/i386.h (VALID_AVX256_REG_MODE): Add BF vector modes.
278 (VALID_AVX512F_REG_MODE): Ditto.
279 (host_detect_local_cpu): Ditto.
280 (VALID_SSE2_REG_MODE): Ditto.
281 * config/i386/i386.md: Add BF vector modes.
282 (MODE_SIZE): Ditto.
283 (ssemodesuffix): Add bf suffix for BF vector modes.
284 (ssevecmode): Ditto.
285 * config/i386/sse.md (VMOVE): Adjust for BF vector modes.
286 (VI12HFBF_AVX512VL): Ditto.
287 (V_256_512): Ditto.
288 (VF_AVX512HFBF16): Ditto.
289 (VF_AVX512BWHFBF16): Ditto.
290 (VIHFBF): Ditto.
291 (avx512): Ditto.
292 (VIHFBF_256): Ditto.
293 (VIHFBF_AVX512BW): Ditto.
294 (VI2F_256_512):Ditto.
295 (V8_128):Ditto.
296 (V16_256): Ditto.
297 (V32_512): Ditto.
298 (sseinsnmode): Ditto.
299 (sseconstm1): Ditto.
300 (sseintmodesuffix): New mode_attr.
301 (avx512fmaskmode): Ditto.
302 (avx512fmaskmodelower): Ditto.
303 (ssedoublevecmode): Ditto.
304 (ssehalfvecmode): Ditto.
305 (ssehalfvecmodelower): Ditto.
306 (ssescalarmode): Add vector BFmode mapping.
307 (ssescalarmodelower): Ditto.
308 (ssexmmmode): Ditto.
309 (ternlogsuffix): Ditto.
310 (ssescalarsize): Ditto.
311 (sseintprefix): Ditto.
312 (i128): Ditto.
313 (xtg_mode): Ditto.
314 (bcstscalarsuff): Ditto.
315 (<avx512>_blendm<mode>): New define_insn for BFmode.
316 (<avx512>_store<mode>_mask): Ditto.
317 (vcond_mask_<mode><avx512fmaskmodelower>): Ditto.
318 (vec_set<mode>_0): New define_insn for BF vector set.
319 (V8BFH_128): New mode_iterator for BFmode.
320 (avx512fp16_mov<mode>): Ditto.
321 (vec_set<mode>): New define_insn for BF vector set.
322 (@vec_extract_hi_<mode>): Ditto.
323 (@vec_extract_lo_<mode>): Ditto.
324 (vec_set_hi_<mode>): Ditto.
325 (vec_set_lo_<mode>): Ditto.
326 (*vec_extract<mode>_0): New define_insn_and_split for BF
327 vector extract.
328 (*vec_extract<mode>): New define_insn.
329 (VEC_EXTRACT_MODE): Add BF vector modes.
330 (PINSR_MODE): Add V8BF.
331 (sse2p4_1): Ditto.
332 (pinsr_evex_isa): Ditto.
333 (<sse2p4_1>_pinsr<ssemodesuffix>): Adjust to support
334 insert for V8BFmode.
335 (pbroadcast_evex_isa): Add BF vector modes.
336 (AVX2_VEC_DUP_MODE): Ditto.
337 (VEC_INIT_MODE): Ditto.
338 (VEC_INIT_HALF_MODE): Ditto.
339 (avx2_pbroadcast<mode>): Adjust to support BF vector mode
340 broadcast.
341 (avx2_pbroadcast<mode>_1): Ditto.
342 (<avx512>_vec_dup<mode>_1): Ditto.
343 (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>):
344 Ditto.
345
346 2022-08-18 Martin Liska <mliska@suse.cz>
347
348 * configure: Regenerate.
349
350 2022-08-18 Haochen Gui <guihaoc@gcc.gnu.org>
351
352 PR target/103109
353 * config/rs6000/rs6000.md (<u>maddditi4): New pattern for multiply-add.
354 (<u>madddi4_highpart): New.
355 (<u>madddi4_highpart_le): New.
356
357 2022-08-18 Aldy Hernandez <aldyh@redhat.com>
358
359 * gimple-range-path.cc
360 (path_range_query::compute_exit_dependencies): Use
361 gimple_range_ssa_names.
362
363 2022-08-18 zhongjuzhe <juzhe.zhong@rivai.ai>
364
365 * config/riscv/predicates.md: Adjust runtime invariant.
366 * config/riscv/riscv-modes.def (MAX_BITSIZE_MODE_ANY_MODE): New.
367 (NUM_POLY_INT_COEFFS): New.
368 * config/riscv/riscv-protos.h (riscv_initial_elimination_offset):Adjust
369 runtime invariant.
370 * config/riscv/riscv-sr.cc (riscv_remove_unneeded_save_restore_calls):
371 Adjust runtime invariant.
372 * config/riscv/riscv.cc (struct riscv_frame_info): Adjust runtime
373 invariant.
374 (enum riscv_microarchitecture_type): Ditto.
375 (riscv_valid_offset_p): Ditto.
376 (riscv_valid_lo_sum_p): Ditto.
377 (riscv_address_insns): Ditto.
378 (riscv_load_store_insns): Ditto.
379 (riscv_legitimize_move): Ditto.
380 (riscv_binary_cost): Ditto.
381 (riscv_rtx_costs): Ditto.
382 (riscv_output_move): Ditto.
383 (riscv_extend_comparands): Ditto.
384 (riscv_flatten_aggregate_field): Ditto.
385 (riscv_get_arg_info): Ditto.
386 (riscv_pass_by_reference): Ditto.
387 (riscv_elf_select_rtx_section): Ditto.
388 (riscv_stack_align): Ditto.
389 (riscv_compute_frame_info): Ditto.
390 (riscv_initial_elimination_offset): Ditto.
391 (riscv_set_return_address): Ditto.
392 (riscv_for_each_saved_reg): Ditto.
393 (riscv_first_stack_step): Ditto.
394 (riscv_expand_prologue): Ditto.
395 (riscv_expand_epilogue): Ditto.
396 (riscv_can_use_return_insn): Ditto.
397 (riscv_secondary_memory_needed): Ditto.
398 (riscv_hard_regno_nregs): Ditto.
399 (riscv_convert_vector_bits): New.
400 (riscv_option_override): Adjust runtime invariant.
401 (riscv_promote_function_mode): Ditto.
402 * config/riscv/riscv.h (POLY_SMALL_OPERAND_P): New.
403 (BITS_PER_RISCV_VECTOR): New.
404 (BYTES_PER_RISCV_VECTOR): New.
405 * config/riscv/riscv.md: Adjust runtime invariant.
406
407 2022-08-18 Lulu Cheng <chenglulu@loongson.cn>
408
409 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
410 Get __tls_get_addr address through got table when disable plt.
411
412 2022-08-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
413
414 * config/xtensa/xtensa.cc (xtensa_expand_prologue):
415 Use an "addmi" machine instruction for updating the stack pointer
416 rather than addition/subtraction via hard register A9, if the amount
417 of change satisfies the literal value conditions of that instruction
418 when the CALL0 ABI is used.
419 (xtensa_expand_epilogue): Ditto.
420 And also inhibit the stack pointer addition of constant zero.
421
422 2022-08-17 Roger Sayle <roger@nextmovesoftware.com>
423
424 PR target/106640
425 * config/i386/i386-features.cc
426 (timde_scalar_chain::compute_convert_gain): Replace incorrect use
427 of XINT with INTVAL (XEXP (src, 1)).
428
429 2022-08-17 Aldy Hernandez <aldyh@redhat.com>
430
431 * gimple-range-path.cc
432 (path_range_query::compute_ranges_in_block): Remove
433 set_root_oracle call.
434 (path_range_query::compute_ranges): Pass ranger oracle to
435 reset_path.
436 * value-relation.cc (path_oracle::reset_path): Set root oracle.
437 * value-relation.h (path_oracle::reset_path): Add root oracle
438 argument.
439
440 2022-08-17 Marek Polacek <polacek@redhat.com>
441
442 PR c++/89780
443 * diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): Handle
444 OPT_Wpessimizing_move and OPT_Wredundant_move.
445 * diagnostic-spec.h (nowarn_spec_t): Add NW_REDUNDANT enumerator.
446
447 2022-08-17 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
448 Jakub Jelinek <jakub@redhat.com>
449
450 PR fortran/46539
451 * common.opt (static-libquadmath): New option.
452 * gcc.cc (driver_handle_option): Always accept -static-libquadmath.
453 * config/darwin.h (LINK_SPEC): Handle -static-libquadmath.
454
455 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
456
457 * lto-cgraph.cc (input_offload_tables): Improve requires diagnostic
458 when filenames come out identically.
459
460 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
461
462 PR middle-end/106548
463 * omp-low.cc (lower_rec_input_clauses): Use build_outer_var_ref
464 for 'simd' linear-step values that are variable.
465
466 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
467 Chung-Lin Tang <cltang@codesourcery.com>
468
469 PR c++/104493
470 * gimplify.cc (omp_notice_variable): Call omp_mappable_type
471 instead of removed langhook.
472 * omp-general.h (omp_mappable_type): New prototype.
473 * omp-general.cc (omp_mappable_type): New; moved from ...
474 * langhooks.cc (lhd_omp_mappable_type): ... here.
475 * langhooks-def.h (lhd_omp_mappable_type,
476 LANG_HOOKS_OMP_MAPPABLE_TYPE): Remove.
477 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remote the latter.
478 * langhooks.h (struct lang_hooks_for_types): Remove
479 omp_mappable_type.
480
481 2022-08-17 Christophe Lyon <christophe.lyon@arm.com>
482
483 * config.gcc (arm): Define with_float to hard if target name ends
484 with 'hf'.
485
486 2022-08-17 Richard Biener <rguenther@suse.de>
487
488 * tree-ssa-threadbackward.cc
489 (back_threader_profitability): Split profitable_path_p
490 into possibly_profitable_path_p and itself, keep state
491 as new members.
492 (back_threader::m_profit): Remove.
493 (back_threader::find_paths): Likewise.
494 (back_threader::maybe_register_path): Take profitability
495 instance as parameter.
496 (back_threader::find_paths_to_names): Likewise. Use
497 possibly_profitable_path_p and avoid the path range query
498 when the path is currently too large.
499 (back_threader::find_paths): Fold into ...
500 (back_threader::maybe_thread_block): ... this.
501 (get_gimple_control_stmt): Remove.
502 (back_threader_profitability::possibly_profitable_path_p):
503 Split out from profitable_path_p, do early profitability
504 checks.
505 (back_threader_profitability::profitable_path_p): Do final
506 profitability path after the taken edge has been determined.
507
508 2022-08-17 Xi Ruoyao <xry111@xry111.site>
509
510 * config/loongarch/loongarch.md (fmax<mode>3): New RTL pattern.
511 (fmin<mode>3): Likewise.
512
513 2022-08-17 Andrew MacLeod <amacleod@redhat.com>
514
515 * gimple-range-fold.cc (gimple_range_ssa_names): New.
516 * gimple-range-fold.h (gimple_range_ssa_names): New prototype.
517 * gimple-range-gori.cc (range_def_chain::get_def_chain): Move
518 code to new routine.
519
520 2022-08-16 Martin Liska <mliska@suse.cz>
521
522 PR target/106637
523 * doc/install.texi: Remove link to www.bullfreeware.com
524
525 2022-08-16 Kito Cheng <kito.cheng@sifive.com>
526
527 * common/config/riscv/riscv-common.cc (riscv_implied_info): Add
528 zfh and zfhmin.
529 (riscv_ext_version_table): Ditto.
530 (riscv_ext_flag_table): Ditto.
531 * config/riscv/riscv-opts.h (MASK_ZFHMIN): New.
532 (MASK_ZFH): Ditto.
533 (TARGET_ZFHMIN): Ditto.
534 (TARGET_ZFH): Ditto.
535 * config/riscv/riscv.cc (riscv_output_move): Handle HFmode move
536 for zfh and zfhmin.
537 (riscv_emit_float_compare): Handle HFmode.
538 * config/riscv/riscv.md (ANYF): Add HF.
539 (SOFTF): Add HF.
540 (load): Ditto.
541 (store): Ditto.
542 (truncsfhf2): New.
543 (truncdfhf2): Ditto.
544 (extendhfsf2): Ditto.
545 (extendhfdf2): Ditto.
546 (*movhf_hardfloat): Ditto.
547 (*movhf_softfloat): Make sure not ZFHMIN.
548 * config/riscv/riscv.opt (riscv_zf_subext): New.
549
550 2022-08-16 Kito Cheng <kito.cheng@sifive.com>
551
552 * config/riscv/riscv-builtins.cc: include stringpool.h
553 (riscv_float16_type_node): New.
554 (riscv_init_builtin_types): Ditto.
555 (riscv_init_builtins): Call riscv_init_builtin_types.
556 * config/riscv/riscv-modes.def (HF): New.
557 * config/riscv/riscv.cc (riscv_output_move): Handle HFmode.
558 (riscv_mangle_type): New.
559 (riscv_scalar_mode_supported_p): Ditto.
560 (riscv_libgcc_floating_mode_supported_p): Ditto.
561 (riscv_excess_precision): Ditto.
562 (riscv_floatn_mode): Ditto.
563 (riscv_init_libfuncs): Ditto.
564 (TARGET_MANGLE_TYPE): Ditto.
565 (TARGET_SCALAR_MODE_SUPPORTED_P): Ditto.
566 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Ditto.
567 (TARGET_INIT_LIBFUNCS): Ditto.
568 (TARGET_C_EXCESS_PRECISION): Ditto.
569 (TARGET_FLOATN_MODE): Ditto.
570 * config/riscv/riscv.md (mode): Add HF.
571 (softload): Add HF.
572 (softstore): Ditto.
573 (fmt): Ditto.
574 (UNITMODE): Ditto.
575 (movhf): New.
576 (*movhf_softfloat): New.
577
578 2022-08-16 Richard Biener <rguenther@suse.de>
579
580 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
581 Do not walk further if we are leaving the current loop.
582
583 2022-08-16 Sergei Trofimovich <siarheit@google.com>
584
585 PR driver/106624
586 * gcc.cc (driver::detect_jobserver): Allocate storage xputenv()
587 argument using xstrdup().
588
589 2022-08-16 Aldy Hernandez <aldyh@redhat.com>
590
591 * gimple-range-path.cc (path_range_query::import_p): Rename to...
592 (path_range_query::exit_dependency_p): ...this.
593 (path_range_query::dump): Rename imports to exit dependencies.
594 (path_range_query::compute_ranges_in_phis): Same.
595 (path_range_query::compute_ranges_in_block): Same.
596 (path_range_query::adjust_for_non_null_uses): Same.
597 (path_range_query::compute_ranges): Same.
598 (path_range_query::compute_phi_relations): Same.
599 (path_range_query::add_to_imports): Rename to...
600 (path_range_query::add_to_exit_dependencies): ...this.
601 (path_range_query::compute_imports): Rename to...
602 (path_range_query::compute_exit_dependencies): ...this.
603 * gimple-range-path.h (class path_range_query): Rename imports to
604 exit dependencies.
605
606 2022-08-16 Martin Liska <mliska@suse.cz>
607
608 * value-range-storage.h (class obstack_vrange_allocator): Mark
609 the class as final.
610 (class ggc_vrange_allocator): Likewise.
611
612 2022-08-16 Martin Liska <mliska@suse.cz>
613
614 * value-range-equiv.h (class value_range_equiv): Add virtual
615 destructor.
616 * value-range.h: Likewise.
617
618 2022-08-16 Richard Biener <rguenther@suse.de>
619
620 PR middle-end/106630
621 * match.pd ((T)(x * CST) -> (T)x * CST): Restrict to
622 narrowing conversions.
623
624 2022-08-16 Martin Liska <mliska@suse.cz>
625
626 * value-range-equiv.h (class value_range_equiv):
627
628 2022-08-16 Martin Liska <mliska@suse.cz>
629
630 * config/i386/i386-features.h (class general_scalar_chain): Add
631 final override for a method.
632 (class timode_scalar_chain): Likewise.
633
634 2022-08-16 Richard Biener <rguenther@suse.de>
635
636 * doc/invoke.texi (max-jump-thread-paths): Adjust.
637
638 2022-08-16 Martin Liska <mliska@suse.cz>
639
640 * opts-common.cc (jobserver_info::connect): Open fifo
641 in non-blocking mode.
642
643 2022-08-16 Kewen.Lin <linkw@gcc.gnu.org>
644
645 PR target/103353
646 * config/rs6000/mma.md (define_expand movoo): Move TARGET_MMA condition
647 check to preparation statements and add handlings for !TARGET_MMA.
648 (define_expand movxo): Likewise.
649
650 2022-08-16 Kewen Lin <linkw@linux.ibm.com>
651
652 PR tree-optimization/106322
653 * tree-vect-stmts.cc (vectorizable_call): Don't allow
654 vect_emulated_vector_p type for both vectype_in and vectype_out.
655
656 2022-08-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
657
658 * common/config/xtensa/xtensa-common.cc
659 (xtensa_option_optimization_table): Add OPT_fsplit_wide_types_early
660 for OPT_LEVELS_ALL in order to restore pre-GCC10 behavior.
661
662 2022-08-15 Andrew MacLeod <amacleod@redhat.com>
663
664 PR tree-optimization/106621
665 * value-range.cc (irange::set): Check for POLY_INT_CST early.
666
667 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
668
669 * config/i386/i386-features.cc
670 (timode_scalar_chain::compute_convert_gain): Provide costs for
671 shifts and rotates.
672 (timode_scalar_chain::convert_insn): Handle ASHIFTRT, ROTATERT
673 and ROTATE just like existing ASHIFT and LSHIFTRT cases.
674 (timode_scalar_to_vector_candidate_p): Handle all shifts and
675 rotates by integer constants between 0 and 127.
676
677 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
678
679 * config/i386/i386-features.cc
680 (timode_scalar_chain::compute_convert_gain): Provide gains for
681 comparisons against 0/-1, including "*testti" patterns.
682
683 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
684
685 PR tree-optimization/64992
686 PR tree-optimization/98956
687 * match.pd (ne (lshift @0 @1) 0): Simplify (X << C) != 0 to X
688 when X is zero_one_valued_p and the shift constant C is valid.
689 (eq (lshift @0 @1) 0): Likewise, simplify (X << C) == 0 to !X
690 when X is zero_one_valued_p and the shift constant C is valid.
691
692 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
693 Richard Biener <rguenther@suse.de>
694
695 PR tree-optimization/71343
696 * match.pd (op (lshift @0 @1) (lshift @2 @1)): Optimize the
697 expression (X<<C) + (Y<<C) to (X+Y)<<C for multiple operators.
698 (op (rshift @0 @1) (rshift @2 @1)): Likewise, simplify (X>>C)^(Y>>C)
699 to (X^Y)>>C for binary logical operators, AND, IOR and XOR.
700
701 2022-08-15 Richard Biener <rguenther@suse.de>
702
703 * gimple-range-path.cc (range_on_path_entry): Just
704 call range_on_entry.
705
706 2022-08-15 Jakub Jelinek <jakub@redhat.com>
707
708 PR rtl-optimization/106590
709 * ifcvt.cc (check_for_cc_cmp_clobbers): New function.
710 (noce_convert_multiple_sets_1): If SEQ sets or clobbers any regs
711 mentioned in cc_cmp or rev_cc_cmp, don't consider seq2 for any
712 further conditional moves.
713
714 2022-08-15 konglin1 <lingling.kong@intel.com>
715
716 * config/i386/i386-builtin-types.def (BFLOAT16): New primitive type.
717 * config/i386/i386-builtins.cc : Support __bf16 type for i386 backend.
718 (ix86_register_bf16_builtin_type): New function.
719 (ix86_bf16_type_node): New.
720 (ix86_bf16_ptr_type_node): Ditto.
721 (ix86_init_builtin_types): Add ix86_register_bf16_builtin_type function call.
722 * config/i386/i386-modes.def (FLOAT_MODE): Add BFmode.
723 (ADJUST_FLOAT_FORMAT): Ditto.
724 * config/i386/i386.cc (classify_argument): Handle BFmode.
725 (construct_container): Ditto.
726 (function_value_32): Return __bf16 by %xmm0.
727 (function_value_64): Return __bf16 by SSE register.
728 (ix86_output_ssemov): Handle BFmode.
729 (ix86_legitimate_constant_p): Disable BFmode constant double.
730 (ix86_secondary_reload): Require gpr as intermediate register
731 to store __bf16 from sse register when sse4 is not available.
732 (ix86_scalar_mode_supported_p): Enable __bf16 under sse2.
733 (ix86_mangle_type): Add manlging for __bf16 type.
734 (ix86_invalid_conversion): New function for target hook.
735 (ix86_invalid_unary_op): Ditto.
736 (ix86_invalid_binary_op): Ditto.
737 (TARGET_INVALID_CONVERSION): New define for target hook.
738 (TARGET_INVALID_UNARY_OP): Ditto.
739 (TARGET_INVALID_BINARY_OP): Ditto.
740 * config/i386/i386.h (host_detect_local_cpu): Add BFmode.
741 * config/i386/i386.md ("mode"): Add BFmode.
742 (MODE_SIZE): Ditto.
743 (X87MODEFH): Ditto.
744 (HFBF): Add new define_mode_iterator.
745 (*pushhf_rex64): Change for BFmode.
746 (*push<mode>_rex64): Ditto.
747 (*pushhf): Ditto.
748 (*push<mode>): Ditto.
749 (MODESH): Ditto.
750 (hfbfconstf): Add new define_mode_attr.
751 (*mov<mode>_internal): Add BFmode.
752
753 2022-08-13 Roger Sayle <roger@nextmovesoftware.com>
754 Uroš Bizjak <ubizjak@gmail.com>
755
756 * config/i386/predicates.md (const_0_to_255_not_mul_8_operand):
757 New predicate for values between 0/1 and 255, not multiples of 8.
758 * config/i386/sse.md (ashlv1ti3): Delay lowering of logical left
759 shifts by constant bit counts.
760 (*ashlvti3_internal): New define_insn_and_split that lowers
761 logical left shifts by constant bit counts, that aren't multiples
762 of 8, before reload.
763 (lshrv1ti3): Delay lowering of logical right shifts by constant.
764 (*lshrv1ti3_internal): New define_insn_and_split that lowers
765 logical right shifts by constant bit counts, that aren't multiples
766 of 8, before reload.
767 (ashrv1ti3):: Delay lowering of arithmetic right shifts by
768 constant bit counts.
769 (*ashrv1ti3_internal): New define_insn_and_split that lowers
770 arithmetic right shifts by constant bit counts before reload.
771 (rotlv1ti3): Delay lowering of rotate left by constant.
772 (*rotlv1ti3_internal): New define_insn_and_split that lowers
773 rotate left by constant bits counts before reload.
774 (rotrv1ti3): Delay lowering of rotate right by constant.
775 (*rotrv1ti3_internal): New define_insn_and_split that lowers
776 rotate right by constant bits counts before reload.
777
778 2022-08-12 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
779
780 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m55 options.
781
782 2022-08-12 Jan Hubicka <hubicka@ucw.cz>
783
784 PR middle-end/106057
785 * ipa-devirt.cc (type_or_derived_type_possibly_instantiated_p): New
786 function.
787 (possible_polymorphic_call_targets): Use it.
788
789 2022-08-12 Andrew Carlotti <andrew.carlotti@arm.com>
790
791 * tree-ssa-loop.h: Improve comment
792
793 2022-08-12 Jakub Jelinek <jakub@redhat.com>
794
795 PR tree-optimization/106506
796 * tree-ssa-phiopt.cc (spaceship_replacement): Don't punt for
797 is_cast or orig_use_lhs cases if phi_bb has 3 predecessors.
798
799 2022-08-12 Richard Biener <rguenther@suse.de>
800
801 PR tree-optimization/106593
802 * tree-ssa-threadbackward.cc (back_threader::find_paths):
803 If the imports from the conditional do not satisfy
804 gimple_range_ssa_p don't try to thread anything.
805
806 2022-08-12 Tamar Christina <tamar.christina@arm.com>
807
808 PR target/106524
809 * config/aarch64/aarch64-sve.md (*fcmuo<mode>_nor_combine,
810 *fcmuo<mode>_bic_combine): Don't accept comparisons against zero.
811
812 2022-08-12 Tim Lange <mail@tim-lange.me>
813
814 PR analyzer/106000
815 * doc/invoke.texi: Add Wanalyzer-out-of-bounds.
816
817 2022-08-12 Andrew Pinski <apinski@marvell.com>
818
819 * config/aarch64/aarch64.md: Remove comment
820 about MD_INCLUDES as it is out of date and not needed.
821
822 2022-08-11 Richard Biener <rguenther@suse.de>
823
824 * gimple-range-path.cc (path_range_query::compute_imports):
825 Restrict walking SSA defs to blocks inside the path. Track
826 the same operands as range_def_chain::get_def_chain does.
827
828 2022-08-11 Richard Biener <rguenther@suse.de>
829
830 PR tree-optimization/106514
831 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
832 Compute and unwind both m_imports and interesting on the fly during
833 path discovery.
834 (back_threader::find_paths): Compute the original m_imports
835 from just the SSA uses of the exit conditional. Drop
836 handling single_succ_to_potentially_threadable_block.
837 * gimple-range-path.cc (path_range_query::ssa_range_in_phi): Handle
838 constant PHI arguments without crashing. Use PHI_ARG_DEF_FROM_EDGE.
839
840 2022-08-11 Richard Biener <rguenther@suse.de>
841
842 * gimple-range-path.h (path_range_query::compute_imports):
843 Take path as argument, not the exit block.
844 * gimple-range-path.cc (path_range_query::compute_imports):
845 Likewise, and adjust, avoiding possibly stale m_path.
846 (path_range_query::compute_outgoing_relations): Register
847 relations for all conditionals.
848 * tree-ssa-threadbackward.cc (back_threader::find_paths):
849 Adjust.
850
851 2022-08-11 Kewen Lin <linkw@linux.ibm.com>
852
853 * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Fix the
854 oversight on ENB_CELL by simplifying with rs6000_builtin_is_supported.
855 (rs6000_expand_builtin): Simplify with rs6000_builtin_is_supported.
856
857 2022-08-11 Kewen Lin <linkw@linux.ibm.com>
858
859 * config/rs6000/rs6000-internal.h (rs6000_global_entry_point_needed_p):
860 Remove function declaration.
861
862 2022-08-10 Richard Biener <rguenther@suse.de>
863
864 PR tree-optimization/106513
865 * gimple-ssa-store-merging.cc (do_shift_rotate): Use uint64_t
866 for head_marker.
867
868 2022-08-10 Martin Liska <mliska@suse.cz>
869
870 PR lto/106328
871 * opts-jobserver.h (struct jobserver_info): Add pipefd.
872 (jobserver_info::connect): New.
873 (jobserver_info::disconnect): Likewise.
874 (jobserver_info::get_token): Likewise.
875 (jobserver_info::return_token): Likewise.
876 * opts-common.cc: Implement the new functions.
877
878 2022-08-10 Martin Liska <mliska@suse.cz>
879
880 * opts-jobserver.h: Add one member.
881 * opts-common.cc (jobserver_info::jobserver_info): Parse FIFO
882 format of --jobserver-auth.
883
884 2022-08-10 Martin Liska <mliska@suse.cz>
885
886 * gcc.cc (driver::detect_jobserver): Remove and move to
887 jobserver.h.
888 * lto-wrapper.cc (jobserver_active_p): Likewise.
889 (run_gcc): Likewise.
890 * opts-jobserver.h: New file.
891 * opts-common.cc (jobserver_info::jobserver_info): New function.
892
893 2022-08-09 Roger Sayle <roger@nextmovesoftware.com>
894
895 * config/i386/i386-features.cc (scalar_chain::convert_compare):
896 Create new pseudos only when/if needed. Add support for TEST,
897 i.e. (COMPARE (AND x y) (const_int 0)), using UNSPEC_PTEST.
898 When broadcasting V2DImode and V4SImode use new pseudo register.
899 (timode_scalar_chain::convert_op): Do nothing if operand is
900 already V1TImode. Avoid generating useless SUBREG conversions,
901 i.e. (SUBREG:V1TImode (REG:V1TImode) 0). Handle CONST_WIDE_INT
902 in addition to CONST_INT by using CONST_SCALAR_INT_P.
903 (convertible_comparison_p): Use CONST_SCALAR_INT_P to match both
904 CONST_WIDE_INT and CONST_INT. Recognize new *testti_doubleword
905 pattern as an STV candidate.
906 (timode_scalar_to_vector_candidate_p): Allow CONST_SCALAR_INT_P
907 operands in binary logic operations.
908 * config/i386/i386.cc (ix86_rtx_costs) <case UNSPEC>: Add costs
909 for UNSPEC_PTEST; a PTEST that performs an AND has the same cost
910 as regular PTEST, i.e. cost->sse_op.
911 * config/i386/i386.md (*testti_doubleword): New pre-reload
912 define_insn_and_split that recognizes comparison of TI mode AND
913 against zero.
914 * config/i386/sse.md (*ptest<mode>_and): New pre-reload
915 define_insn_and_split that recognizes UNSPEC_PTEST of identical
916 AND operands.
917
918 2022-08-09 Roger Sayle <roger@nextmovesoftware.com>
919 Richard Biener <rguenther@suse.de>
920
921 PR middle-end/21137
922 PR tree-optimization/98954
923 * fold-const.cc (fold_binary_loc): Remove optimizations to
924 optimize ((X >> C1) & C2) ==/!= 0.
925 * match.pd (cmp (bit_and (lshift @0 @1) @2) @3): Remove wi::ctz
926 check, and handle all values of INTEGER_CSTs @2 and @3.
927 (cmp (bit_and (rshift @0 @1) @2) @3): Likewise, remove wi::clz
928 checks, and handle all values of INTEGER_CSTs @2 and @3.
929
930 2022-08-09 David Malcolm <dmalcolm@redhat.com>
931
932 * doc/invoke.texi (Static Analyzer Options): Add notes on which
933 functions the analyzer has hardcoded knowledge of.
934
935 2022-08-09 Andrew Stubbs <ams@codesourcery.com>
936
937 * config/gcn/gcn.cc (gcn_function_value): Allow vector return values.
938 (num_arg_regs): Allow vector arguments.
939 (gcn_function_arg): Likewise.
940 (gcn_function_arg_advance): Likewise.
941 (gcn_arg_partial_bytes): Likewise.
942 (gcn_return_in_memory): Likewise.
943 (gcn_expand_epilogue): Get return value from v8.
944 * config/gcn/gcn.h (RETURN_VALUE_REG): Set to v8.
945 (FIRST_PARM_REG): USE FIRST_SGPR_REG for clarity.
946 (FIRST_VPARM_REG): New.
947 (FUNCTION_ARG_REGNO_P): Allow vector parameters.
948 (struct gcn_args): Add vnum field.
949 (LIBCALL_VALUE): All vector return values.
950 * config/gcn/gcn.md (gcn_call_value): Add vector constraints.
951 (gcn_call_value_indirect): Likewise.
952
953 2022-08-09 Richard Biener <rguenther@suse.de>
954
955 * omp-expand.cc (expand_omp_atomic_load): Emit GIMPLE
956 directly. Avoid update_ssa when in SSA form.
957 (expand_omp_atomic_store): Likewise.
958 (expand_omp_atomic_fetch_op): Avoid update_ssa when in SSA
959 form.
960 (expand_omp_atomic_pipeline): Likewise.
961 (expand_omp_atomic_mutex): Likewise.
962 * tree-parloops.cc (gen_parallel_loop): Use
963 TODO_update_ssa_no_phi after loop_version.
964
965 2022-08-09 Richard Biener <rguenther@suse.de>
966
967 * doc/invoke.texi (max-fsm-thread-length): Remove.
968 * params.opt (max-fsm-thread-length): Likewise.
969 * tree-ssa-threadbackward.cc
970 (back_threader_profitability::profitable_path_p): Do not
971 check max-fsm-thread-length.
972
973 2022-08-09 Richard Biener <rguenther@suse.de>
974
975 PR tree-optimization/106514
976 * params.opt (max-jump-thread-paths): New.
977 * doc/invoke.texi (max-jump-thread-paths): Document.
978 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
979 Honor max-jump-thread-paths, take overall_path argument.
980 (back_threader::find_paths): Pass 1 as initial overall_path.
981
982 2022-08-09 Tobias Burnus <tobias@codesourcery.com>
983
984 PR middle-end/106492
985 * omp-low.cc (lower_rec_input_clauses): Add missing folding
986 to data type of linear-clause list item.
987
988 2022-08-08 Andrew MacLeod <amacleod@redhat.com>
989
990 PR tree-optimization/106556
991 * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use the
992 type of the cond_expr operands being evaluted.
993
994 2022-08-08 Tom Honermann <tom@honermann.net>
995
996 * ginclude/stdatomic.h (atomic_char8_t,
997 ATOMIC_CHAR8_T_LOCK_FREE): New typedef and macro.
998
999 2022-08-08 Andrew Pinski <apinski@marvell.com>
1000
1001 PR middle-end/103645
1002 * gimplify.cc (gimplify_init_constructor): Don't build/add
1003 gimple assignment of an empty type.
1004
1005 2022-08-08 Richard Biener <rguenther@suse.de>
1006
1007 PR lto/106540
1008 PR lto/106334
1009 * dwarf2out.cc (dwarf2out_register_external_die): Restore
1010 original assert.
1011 * lto-streamer-in.cc (lto_read_tree_1): Use lto_input_tree_1
1012 to input DECL_INITIAL, avoiding to commit drefs.
1013
1014 2022-08-07 Roger Sayle <roger@nextmovesoftware.com>
1015
1016 * config/i386/i386.md (*cmp<dwi>_doubleword): Change predicate
1017 for x86_64_hilo_general_operand to general operand. Call
1018 force_reg on parts that are not x86_64_immediate_operand.
1019
1020 2022-08-05 David Malcolm <dmalcolm@redhat.com>
1021
1022 PR analyzer/105947
1023 * doc/invoke.texi: Add -Wanalyzer-jump-through-null.
1024
1025 2022-08-05 Roger Sayle <roger@nextmovesoftware.com>
1026
1027 * expmed.cc (emit_store_flag_1): Move code to expand double word
1028 equality and inequality against zero or -1, using word operations,
1029 to after trying to use the backend's cstore<mode>4 optab/expander.
1030
1031 2022-08-05 Tamar Christina <tamar.christina@arm.com>
1032
1033 PR middle-end/106534
1034 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Guard the
1035 value_replacement and store_elim from diamonds.
1036
1037 2022-08-05 Richard Biener <rguenther@suse.de>
1038
1039 * tree-ssa-threadbackward.cc (back_threader::maybe_register_path):
1040 Check whether the registry register_path rejected the path.
1041 (back_threader_registry::register_path): Return whether
1042 register_jump_thread succeeded.
1043
1044 2022-08-05 Aldy Hernandez <aldyh@redhat.com>
1045
1046 PR tree-optimization/106514
1047 * value-range.cc (unsupported_range::unsupported_range): Move...
1048 * value-range.h (unsupported_range::unsupported_range): ...here.
1049 (unsupported_range::set_undefined): New.
1050
1051 2022-08-05 Richard Biener <rguenther@suse.de>
1052
1053 PR tree-optimization/106533
1054 * tree-loop-distribution.cc (loop_distribution::execute): Continue
1055 analyzing the inner loops when find_seed_stmts_for_distribution
1056 fails.
1057
1058 2022-08-05 Andrew Pinski <apinski@marvell.com>
1059
1060 * config/riscv/predicates.md (splittable_const_int_operand):
1061 Remove the check for TARGET_64BIT for single bit const values.
1062
1063 2022-08-04 Andrew MacLeod <amacleod@redhat.com>
1064
1065 PR tree-optimization/106514
1066 * gimple-range-path.cc (path_range_query::compute_ranges_in_block):
1067 Use EXECUTE_IF_AND_IN_BITMAP to loop over 2 bitmaps.
1068
1069 2022-08-04 Tamar Christina <tamar.christina@arm.com>
1070
1071 * match.pd: New bit_not rule.
1072
1073 2022-08-04 Tamar Christina <tamar.christina@arm.com>
1074
1075 PR middle-end/106519
1076 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Check final phi edge for
1077 diamond shapes.
1078
1079 2022-08-04 Sam Feifer <sfeifer@redhat.com>
1080
1081 PR tree-optimization/106243
1082 * match.pd (-x & 1): New simplification.
1083
1084 2022-08-04 Richard Biener <rguenther@suse.de>
1085
1086 PR tree-optimization/106521
1087 * gimple-loop-jam.cc (tree_loop_unroll_and_jam): Perform
1088 CFG cleanup manually before rewriting into LC SSA.
1089
1090 2022-08-04 Richard Biener <rguenther@suse.de>
1091
1092 * tree-ssa-threadbackward.cc (populate_worklist): Remove.
1093 (back_threader::resolve_phi): Likewise.
1094 (back_threader::find_paths_to_names): Rewrite greedy search.
1095
1096 2022-08-04 Ilya Leoshkevich <iii@linux.ibm.com>
1097
1098 * config/s390/vector.md (V_HW_FT): New iterator.
1099 * config/s390/vx-builtins.md (vsel<mode>): Use V_HW_FT instead
1100 of V_HW.
1101
1102 2022-08-03 Michael Meissner <meissner@linux.ibm.com>
1103
1104 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove code
1105 setting -mblock-ops-vector-pair.
1106
1107 2022-08-03 Andrew MacLeod <amacleod@redhat.com>
1108
1109 PR tree-optimization/106514
1110 * value-relation.cc (path_oracle::killing_def) Do not walk the
1111 equivalence set clearing bits.
1112
1113 2022-08-03 Tamar Christina <tamar.christina@arm.com>
1114
1115 * tree-ssa-phiopt.cc (minmax_replacement): Optionally search for the phi
1116 sequence of a three-way conditional.
1117 (replace_phi_edge_with_variable): Support diamonds.
1118 (tree_ssa_phiopt_worker): Detect diamond phi structure for three-way
1119 min/max.
1120 (strip_bit_not, invert_minmax_code): New.
1121
1122 2022-08-03 Richard Earnshaw <rearnsha@arm.com>
1123
1124 PR rtl-optimization/106187
1125 * alias.h (mems_same_for_tbaa_p): Declare.
1126 * alias.cc (mems_same_for_tbaa_p): New function.
1127 * dse.cc (record_store): Use it instead of open-coding
1128 alias check.
1129 * cselib.h (cselib_redundant_set_p): Declare.
1130 * cselib.cc: Include alias.h
1131 (cselib_redundant_set_p): New function.
1132 * cfgcleanup.cc: (mark_effect): Use cselib_redundant_set_p instead
1133 of rtx_equal_for_cselib_p.
1134 * postreload.cc (reload_cse_simplify): Use cselib_redundant_set_p.
1135 (reload_cse_noop_set_p): Delete.
1136
1137 2022-08-03 Martin Liska <mliska@suse.cz>
1138
1139 * doc/gcov-dump.texi: Document the new option.
1140 * gcov-dump.cc (main): Parse the new option.
1141 (print_usage): Show the option.
1142 (tag_counters): Sort key:value pairs of TOP N counter.
1143
1144 2022-08-03 Martin Liska <mliska@suse.cz>
1145
1146 * profile.cc (compute_branch_probabilities): Do not collect
1147 stats unless TDF_DETAILS.
1148
1149 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
1150 Uroš Bizjak <ubizjak@gmail.com>
1151
1152 PR target/47949
1153 * config/i386/i386.md (peephole2): New peephole2 to convert
1154 SWI48 moves to/from %rax/%eax where the src is dead to xchg,
1155 when optimizing for minimal size with -Oz.
1156
1157 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
1158
1159 * config/i386/i386.md (*cmp<dwi>_doubleword): Add a special case
1160 to split comparisons against -1 using AND and CMP -1 instructions.
1161
1162 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
1163
1164 * config/i386/i386-features.cc (compute_convert_gain): Add gain
1165 for converting suitable TImode shift to a V1TImode shift.
1166 (timode_scalar_chain::convert_insn): Add support for converting
1167 suitable ASHIFT and LSHIFTRT.
1168 (timode_scalar_to_vector_candidate_p): Consider logical shifts
1169 by integer constants that are multiples of 8 to be candidates.
1170
1171 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
1172 Segher Boessenkool <segher@kernel.crashing.org>
1173 Richard Sandiford <richard.sandiford@arm.com>
1174
1175 * simplify-rtx.cc (simplify_unary_operation_1) <ABS>: Add
1176 optimizations for CLRSB, PARITY, POPCOUNT, SS_ABS and LSHIFTRT
1177 that are all positive to complement the existing FFS and
1178 idempotent ABS simplifications.
1179 <SIGN_EXTEND>: Canonicalize SIGN_EXTEND to ZERO_EXTEND when
1180 val_signbit_known_clear_p is true of the operand.
1181 Simplify sign extensions of SUBREG truncations of operands
1182 that are already suitably (zero) extended.
1183 <ZERO_EXTEND>: Simplify zero extensions of SUBREG truncations
1184 of operands that are already suitably zero extended.
1185
1186 2022-08-02 Andrew MacLeod <amacleod@redhat.com>
1187
1188 PR tree-optimization/106510
1189 * gimple-range-fold.cc (fur_source::register_outgoing_edges):
1190 Check for unsupported statements early.
1191
1192 2022-08-02 Andrew MacLeod <amacleod@redhat.com>
1193
1194 PR tree-optimization/106474
1195 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Query
1196 range of equivalences that may contribute to the range.
1197
1198 2022-08-02 Jose E. Marchesi <jose.marchesi@oracle.com>
1199
1200 * btfout.cc (output_asm_btf_vlen_bytes): Do not use the CHAR
1201 encoding bit in BTF.
1202
1203 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
1204
1205 * gimple-range-fold.cc (fold_using_range::range_of_phi): Remove
1206 irange check.
1207 (tree_lower_bound): New.
1208 (tree_upper_bound): New.
1209 (fold_using_range::range_of_ssa_name_with_loop_info): Convert to
1210 vrange.
1211 * gimple-range-fold.h (range_of_ssa_name_with_loop_info): Change
1212 argument to vrange.
1213
1214 2022-08-02 Richard Biener <rguenther@suse.de>
1215
1216 * tree-ssa-threadbackward.cc
1217 (back_threader_profitability::profitable_path_p): Apply
1218 size constraints to all paths again.
1219
1220 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
1221
1222 * range-op-float.cc (finite_operands_p): New.
1223 (frelop_early_resolve): New.
1224 (default_frelop_fold_range): New.
1225 (class foperator_equal): New.
1226 (class foperator_not_equal): New.
1227 (class foperator_lt): New.
1228 (class foperator_le): New.
1229 (class foperator_gt): New.
1230 (class foperator_ge): New.
1231 (class foperator_unordered): New.
1232 (class foperator_ordered): New.
1233 (class foperator_relop_unknown): New.
1234 (floating_op_table::floating_op_table): Add above classes to
1235 floating op table.
1236 * value-range.h (frange::supports_p): Enable.
1237
1238 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
1239
1240 * tree-core.h (struct tree_ssa_name): Add frange_info and
1241 reshuffle the rest.
1242 * value-range-storage.cc (vrange_storage::alloc_slot): Add case
1243 for frange.
1244 (vrange_storage::set_vrange): Same.
1245 (vrange_storage::get_vrange): Same.
1246 (vrange_storage::fits_p): Same.
1247 (frange_storage_slot::alloc_slot): New.
1248 (frange_storage_slot::set_frange): New.
1249 (frange_storage_slot::get_frange): New.
1250 (frange_storage_slot::fits_p): New.
1251 * value-range-storage.h (class frange_storage_slot): New.
1252
1253 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
1254
1255 * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Limit ranger
1256 query to integrals.
1257
1258 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
1259
1260 * value-range.cc (frange::set): Initialize m_props and cleanup.
1261
1262 2022-08-02 Richard Biener <rguenther@suse.de>
1263
1264 PR tree-optimization/106497
1265 * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg):
1266 Also verify we can copy EDGE_COPY_SRC_JOINER_BLOCK.
1267
1268 2022-08-02 Martin Liska <mliska@suse.cz>
1269
1270 * profile.cc (compute_branch_probabilities): Dump details only
1271 if TDF_DETAILS.
1272 * symtab.cc (symtab_node::dump_base): Do not dump pointer unless
1273 TDF_ADDRESS is used, it makes comparison harder.
1274
1275 2022-08-02 Richard Biener <rguenther@suse.de>
1276
1277 PR tree-optimization/106498
1278 * omp-expand.cc (expand_omp_taskreg): Do not perform virtual
1279 SSA update here.
1280 (expand_omp_for): Or here.
1281 (execute_expand_omp): Instead schedule it here together
1282 with CFG cleanup via TODO.
1283
1284 2022-08-02 Richard Biener <rguenther@suse.de>
1285
1286 PR lto/106334
1287 * dwarf2out.cc (dwarf2out_register_external_die): Adjust
1288 assert.
1289
1290 2022-08-02 Richard Biener <rguenther@suse.de>
1291
1292 PR tree-optimization/106495
1293 * tree-ssa-threadbackward.cc
1294 (back_threader_profitability::profitable_path_p): If known_edge
1295 is probably never executed avoid threading.
1296
1297 2022-08-01 David Malcolm <dmalcolm@redhat.com>
1298
1299 * doc/invoke.texi (-Wanalyzer-putenv-of-auto-var): Fix copy&paste
1300 error.
1301
1302 2022-08-01 Roger Sayle <roger@nextmovesoftware.com>
1303 Uroš Bizjak <ubizjak@gmail.com>
1304
1305 PR target/106481
1306 * config/i386/i386-features.cc (timode_scalar_chain::convert_insn):
1307 Convert a CONST_SCALAR_INT_P in a REG_EQUAL note into a V1TImode
1308 CONST_VECTOR.
1309
1310 2022-08-01 H.J. Lu <hjl.tools@gmail.com>
1311
1312 PR target/83782
1313 * config/i386/i386.cc (ix86_ifunc_ref_local_ok): New.
1314 (TARGET_IFUNC_REF_LOCAL_OK): Use it.
1315
1316 2022-08-01 Jose E. Marchesi <jose.marchesi@oracle.com>
1317
1318 PR debug/106263
1319 * ctfc.h (struct ctf_dtdef): Add field linkage.
1320 * ctfc.cc (ctf_add_function): Set ctti_linkage.
1321 * dwarf2ctf.cc (gen_ctf_function_type): Pass a linkage for
1322 function types and subprograms.
1323 * btfout.cc (btf_asm_func_type): Emit linkage information for the
1324 function.
1325 (btf_dtd_emit_preprocess_cb): Propagate the linkage information
1326 for functions.
1327
1328 2022-08-01 Andrew Stubbs <ams@codesourcery.com>
1329 Jakub Jelinek <jakub@redhat.com>
1330
1331 * omp-simd-clone.cc (simd_clone_adjust): Convert shift_cnt to match
1332 the mask type.
1333
1334 2022-08-01 Sam Feifer <sfeifer@redhat.com>
1335
1336 PR tree-optimization/104992
1337 * match.pd (x / y * y == x): New simplification.
1338
1339 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
1340
1341 * value-range.cc (tree_compare): New.
1342 (frange::set): Make more general.
1343 (frange::normalize_kind): Cleanup and return bool.
1344 (frange::union_): Use normalize_kind return value.
1345 (frange::intersect): Same.
1346 (frange::verify_range): Remove unnecessary else.
1347 * value-range.h (vrp_val_max): Move before frange class.
1348 (vrp_val_min): Same.
1349 (frange::frange): Remove set to m_type.
1350
1351 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
1352
1353 * value-range.cc (vrange::supports_type_p): Use const_tree.
1354 (irange::supports_type_p): Same.
1355 (frange::supports_type_p): Same.
1356 * value-range.h (Value_Range::supports_type_p): Same.
1357 (irange::supports_p): Same.
1358
1359 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
1360
1361 * gimple-range-fold.cc (fold_using_range::range_of_phi): Only
1362 query SCEV for integers.
1363 (fold_using_range::range_of_ssa_name_with_loop_info): Remove
1364 irange check.
1365
1366 2022-07-31 Roger Sayle <roger@nextmovesoftware.com>
1367
1368 * config/i386/i386.md (define_expand <any_rotate>ti3): For
1369 rotations by 64 bits use new rot[lr]64ti2_doubleword pattern.
1370 (rot[lr]64ti2_doubleword): New post-reload splitter.
1371
1372 2022-07-31 Roger Sayle <roger@nextmovesoftware.com>
1373 H.J. Lu <hjl.tools@gmail.com>
1374
1375 PR target/106450
1376 * config/i386/i386-features.cc (timode_check_non_convertible_regs):
1377 Do nothing if REGNO is set in the REGS bitmap, or is a hard reg.
1378 (timode_remove_non_convertible_regs): Update comment.
1379 Call timode_check_non_convertible_reg on all TImode register
1380 DEFs and USEs in each instruction.
1381
1382 2022-07-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1383
1384 * config/xtensa/xtensa.md: Change hard register number used in
1385 the split patterns for indirect sibling call fixups from 10 to 11,
1386 the last free one for the CALL0 ABI.
1387
1388 2022-07-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1389
1390 * config/xtensa/xtensa.cc (xtensa_rtx_costs):
1391 Add new case for IF_THEN_ELSE.
1392
1393 2022-07-29 Andrew Stubbs <ams@codesourcery.com>
1394
1395 * config/gcn/gcn-valu.md (V_INT_noHI): New iterator.
1396 (<expander><mode>3<exec>): Use V_INT_noHI.
1397 (v<expander><mode>3<exec>): Likewise.
1398
1399 2022-07-29 Andrew Stubbs <ams@codesourcery.com>
1400
1401 * config/gcn/gcn.md (one_cmpldi2): New.
1402
1403 2022-07-29 Richard Biener <rguenther@suse.de>
1404
1405 PR tree-optimization/105679
1406 * tree-ssa-threadbackward.cc
1407 (back_threader_profitability::profitable_path_p): Avoid threading
1408 when the entry edge is probably never executed.
1409
1410 2022-07-29 Richard Biener <rguenther@suse.de>
1411
1412 PR tree-optimization/106422
1413 * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg):
1414 Check whether we can copy thread blocks and cancel the thread if not.
1415
1416 2022-07-29 Jakub Jelinek <jakub@redhat.com>
1417
1418 PR middle-end/106449
1419 * omp-expand.cc (expand_omp_simd): Fix up handling of pointer
1420 iterators in non-rectangular simd loops. Unshare fd->loops[i].n2
1421 or n2 before regimplifying it inside of a condition.
1422
1423 2022-07-29 Jakub Jelinek <jakub@redhat.com>
1424
1425 * omp-expand.cc (expand_omp_for_init_counts, expand_omp_for_init_vars,
1426 extract_omp_for_update_vars, expand_omp_for_ordered_loops,
1427 expand_omp_simd): Don't fold_convert second argument to
1428 fold_build_pointer_plus to sizetype.
1429
1430 2022-07-29 Lulu Cheng <chenglulu@loongson.cn>
1431
1432 * config.in: Regenerate.
1433 * config/loongarch/loongarch.h (ASM_PREFERRED_EH_DATA_FORMAT):
1434 Select the value of the macro definition according to whether
1435 HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT is defined.
1436 * configure: Regenerate.
1437 * configure.ac: Reinstate HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT test.
1438
1439 2022-07-29 Richard Biener <rguenther@suse.de>
1440
1441 * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
1442 Use CONVERT_EXPR_CODE_P.
1443
1444 2022-07-29 Richard Biener <rguenther@suse.de>
1445
1446 * tree-vect-patterns.cc (vect_recog_bool_pattern): Use
1447 get_vectype_for_scalar_type instead of
1448 vect_get_vector_types_for_stmt.
1449
1450 2022-07-28 David Malcolm <dmalcolm@redhat.com>
1451
1452 PR analyzer/105893
1453 * doc/invoke.texi: Add -Wanalyzer-putenv-of-auto-var.
1454
1455 2022-07-28 David Malcolm <dmalcolm@redhat.com>
1456
1457 * doc/invoke.texi (-fdiagnostics-show-cwe): Use uref rather than
1458 url.
1459 (Static Analyzer Options): Likewise. Add urefs for all of the
1460 warnings that have associated CWE identifiers.
1461
1462 2022-07-28 Maciej W. Rozycki <macro@embecosm.com>
1463
1464 * doc/implement-c.texi (Floating point implementation): Mention
1465 `-fno-trapping-math' in the context of FENV_ACCESS pragma.
1466 * doc/invoke.texi (Optimize Options): Clarify FENV_ACCESS pragma
1467 implication in the descriptions of `-fno-trapping-math' and
1468 `-frounding-math'.
1469
1470 2022-07-28 Maciej W. Rozycki <macro@embecosm.com>
1471
1472 * config/riscv/riscv.md (UNSPECV_FSNVSNAN): New constant.
1473 (QUIET_PATTERN): New int attribute.
1474 (f<quiet_pattern>_quiet<ANYF:mode><X:mode>4): Emit the intended
1475 RTL insns entirely within the preparation statements.
1476 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
1477 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Remove
1478 insns.
1479 (*riscv_fsnvsnan<mode>2): New insn.
1480
1481 2022-07-28 Richard Biener <rguenther@suse.de>
1482
1483 PR middle-end/106457
1484 * tree.cc (array_at_struct_end_p): Handle array objects
1485 specially.
1486
1487 2022-07-28 Jakub Jelinek <jakub@redhat.com>
1488
1489 PR tree-optimization/106099
1490 * internal-fn.def (TRAP): New internal fn.
1491 * internal-fn.h (expand_TRAP): Declare.
1492 * internal-fn.cc (expand_TRAP): Define.
1493 * gimple.cc (gimple_build_builtin_unreachable): For BUILT_IN_TRAP,
1494 use internal fn rather than builtin.
1495
1496 2022-07-27 Andrew Carlotti <andrew.carlotti@arm.com>
1497
1498 * doc/loop.texi: Refer to LOOPS_HAVE_RECORDED_EXITS instead.
1499
1500 2022-07-27 WANG Xuerui <i@xen0n.name>
1501
1502 * doc/invoke.texi: Document -m[no-]explicit-relocs for
1503 LoongArch.
1504
1505 2022-07-27 Maciej W. Rozycki <macro@embecosm.com>
1506
1507 * config/riscv/riscv.md (stack_protect_set_<mode>): Remove
1508 duplicate backslashes.
1509
1510 2022-07-27 Maciej W. Rozycki <macro@embecosm.com>
1511
1512 * config/riscv/riscv.cc (riscv_rtx_costs) <IF_THEN_ELSE>: New
1513 case.
1514
1515 2022-07-27 Jakub Jelinek <jakub@redhat.com>
1516
1517 PR debug/106261
1518 * cgraphunit.cc (cgraph_node::assemble_thunks_and_aliases): Don't
1519 output asm thunks for -dx.
1520
1521 2022-07-27 Jakub Jelinek <jakub@redhat.com>
1522
1523 PR middle-end/106332
1524 * opts-common.cc (candidates_list_and_hint): Add gcc_assert
1525 that candidates is not an empty vector.
1526
1527 2022-07-27 Xi Ruoyao <xry111@xry111.site>
1528
1529 * configure.ac (HAVE_AS_EXPLICIT_RELOCS): Define to 1 if the
1530 assembler supports explicit relocation for LoongArch.
1531 * configure: Regenerate.
1532 * config/loongarch/loongarch-opts.h (HAVE_AS_EXPLICIT_RELOCS):
1533 Define to 0 if not defined.
1534 * config/loongarch/genopts/loongarch.opt.in
1535 (TARGET_EXPLICIT_RELOCS): Default to HAVE_AS_EXPLICIT_RELOCS.
1536 * config/loongarch/loongarch.opt: Regenerate.
1537
1538 2022-07-26 Peter Bergner <bergner@linux.ibm.com>
1539
1540 PR c/106016
1541 * expr.cc (count_type_elements): Handle OPAQUE_TYPE.
1542
1543 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
1544
1545 * config/loongarch/loongarch-opts.cc: Modify the output message string
1546 of the warning.
1547
1548 2022-07-26 Martin Liska <mliska@suse.cz>
1549
1550 * doc/tm.texi.in: Fix placement of defmac.
1551 * doc/tm.texi: Copy.
1552
1553 2022-07-26 Martin Liska <mliska@suse.cz>
1554
1555 * doc/tm.texi.in: Fix cross @defmac and @hook.
1556 * doc/tm.texi: Copy.
1557
1558 2022-07-26 Aldy Hernandez <aldyh@redhat.com>
1559
1560 PR tree-optimization/106444
1561 * value-range-pretty-print.cc (vrange_printer::visit): Handle
1562 legacy ranges.
1563 (vrange_printer::print_irange_bound): Work on wide_int's.
1564 * value-range-pretty-print.h (print_irange_bound): Same.
1565 * value-range.cc (irange::get_nonzero_bits): Handle legacy ranges.
1566
1567 2022-07-26 Richard Biener <rguenther@suse.de>
1568
1569 * tree-ssa-alias.cc (ptr_derefs_may_alias_p): If ptr1
1570 points to a constant continue checking ptr2.
1571
1572 2022-07-26 Andrew Carlotti <Andrew.Carlotti@arm.com>
1573
1574 * config/aarch64/aarch64-builtins.cc
1575 (MODE_d_bf16, MODE_d_f16, MODE_d_f32, MODE_d_f64, MODE_d_s8)
1576 (MODE_d_s16, MODE_d_s32, MODE_d_s64, MODE_d_u8, MODE_d_u16)
1577 (MODE_d_u32, MODE_d_u64, MODE_d_p8, MODE_d_p16, MODE_d_p64)
1578 (MODE_q_bf16, MODE_q_f16, MODE_q_f32, MODE_q_f64, MODE_q_s8)
1579 (MODE_q_s16, MODE_q_s32, MODE_q_s64, MODE_q_u8, MODE_q_u16)
1580 (MODE_q_u32, MODE_q_u64, MODE_q_p8, MODE_q_p16, MODE_q_p64)
1581 (MODE_q_p128): Define macro to map to corresponding mode name.
1582 (QUAL_bf16, QUAL_f16, QUAL_f32, QUAL_f64, QUAL_s8, QUAL_s16)
1583 (QUAL_s32, QUAL_s64, QUAL_u8, QUAL_u16, QUAL_u32, QUAL_u64)
1584 (QUAL_p8, QUAL_p16, QUAL_p64, QUAL_p128): Define macro to map to
1585 corresponding qualifier name.
1586 (LENGTH_d, LENGTH_q): Define macro to map to "" or "q" suffix.
1587 (SIMD_INTR_MODE, SIMD_INTR_QUAL, SIMD_INTR_LENGTH_CHAR): Macro
1588 functions for the above mappings
1589 (VREINTERPRET_BUILTIN2, VREINTERPRET_BUILTINS1, VREINTERPRET_BUILTINS)
1590 (VREINTERPRETQ_BUILTIN2, VREINTERPRETQ_BUILTINS1)
1591 (VREINTERPRETQ_BUILTINS, VREINTERPRET_BUILTIN)
1592 (AARCH64_SIMD_VREINTERPRET_BUILTINS): New macros to create definitions
1593 for all vreinterpret intrinsics
1594 (enum aarch64_builtins): Add vreinterpret function codes
1595 (aarch64_init_simd_intrinsics): New
1596 (handle_arm_neon_h): Improved comment.
1597 (aarch64_general_fold_builtin): Fold vreinterpret calls
1598 * config/aarch64/arm_neon.h
1599 (vreinterpret_p8_f16, vreinterpret_p8_f64, vreinterpret_p8_s8)
1600 (vreinterpret_p8_s16, vreinterpret_p8_s32, vreinterpret_p8_s64)
1601 (vreinterpret_p8_f32, vreinterpret_p8_u8, vreinterpret_p8_u16)
1602 (vreinterpret_p8_u32, vreinterpret_p8_u64, vreinterpret_p8_p16)
1603 (vreinterpret_p8_p64, vreinterpretq_p8_f64, vreinterpretq_p8_s8)
1604 (vreinterpretq_p8_s16, vreinterpretq_p8_s32, vreinterpretq_p8_s64)
1605 (vreinterpretq_p8_f16, vreinterpretq_p8_f32, vreinterpretq_p8_u8)
1606 (vreinterpretq_p8_u16, vreinterpretq_p8_u32, vreinterpretq_p8_u64)
1607 (vreinterpretq_p8_p16, vreinterpretq_p8_p64, vreinterpretq_p8_p128)
1608 (vreinterpret_p16_f16, vreinterpret_p16_f64, vreinterpret_p16_s8)
1609 (vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_s64)
1610 (vreinterpret_p16_f32, vreinterpret_p16_u8, vreinterpret_p16_u16)
1611 (vreinterpret_p16_u32, vreinterpret_p16_u64, vreinterpret_p16_p8)
1612 (vreinterpret_p16_p64, vreinterpretq_p16_f64, vreinterpretq_p16_s8)
1613 (vreinterpretq_p16_s16, vreinterpretq_p16_s32, vreinterpretq_p16_s64)
1614 (vreinterpretq_p16_f16, vreinterpretq_p16_f32, vreinterpretq_p16_u8)
1615 (vreinterpretq_p16_u16, vreinterpretq_p16_u32, vreinterpretq_p16_u64)
1616 (vreinterpretq_p16_p8, vreinterpretq_p16_p64, vreinterpretq_p16_p128)
1617 (vreinterpret_p64_f16, vreinterpret_p64_f64, vreinterpret_p64_s8)
1618 (vreinterpret_p64_s16, vreinterpret_p64_s32, vreinterpret_p64_s64)
1619 (vreinterpret_p64_f32, vreinterpret_p64_u8, vreinterpret_p64_u16)
1620 (vreinterpret_p64_u32, vreinterpret_p64_u64, vreinterpret_p64_p8)
1621 (vreinterpret_p64_p16, vreinterpretq_p64_f64, vreinterpretq_p64_s8)
1622 (vreinterpretq_p64_s16, vreinterpretq_p64_s32, vreinterpretq_p64_s64)
1623 (vreinterpretq_p64_f16, vreinterpretq_p64_f32, vreinterpretq_p64_p128)
1624 (vreinterpretq_p64_u8, vreinterpretq_p64_u16, vreinterpretq_p64_p16)
1625 (vreinterpretq_p64_u32, vreinterpretq_p64_u64, vreinterpretq_p64_p8)
1626 (vreinterpretq_p128_p8, vreinterpretq_p128_p16, vreinterpretq_p128_f16)
1627 (vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64)
1628 (vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16)
1629 (vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16)
1630 (vreinterpretq_p128_u32, vreinterpret_f16_f64, vreinterpret_f16_s8)
1631 (vreinterpret_f16_s16, vreinterpret_f16_s32, vreinterpret_f16_s64)
1632 (vreinterpret_f16_f32, vreinterpret_f16_u8, vreinterpret_f16_u16)
1633 (vreinterpret_f16_u32, vreinterpret_f16_u64, vreinterpret_f16_p8)
1634 (vreinterpret_f16_p16, vreinterpret_f16_p64, vreinterpretq_f16_f64)
1635 (vreinterpretq_f16_s8, vreinterpretq_f16_s16, vreinterpretq_f16_s32)
1636 (vreinterpretq_f16_s64, vreinterpretq_f16_f32, vreinterpretq_f16_u8)
1637 (vreinterpretq_f16_u16, vreinterpretq_f16_u32, vreinterpretq_f16_u64)
1638 (vreinterpretq_f16_p8, vreinterpretq_f16_p128, vreinterpretq_f16_p16)
1639 (vreinterpretq_f16_p64, vreinterpret_f32_f16, vreinterpret_f32_f64)
1640 (vreinterpret_f32_s8, vreinterpret_f32_s16, vreinterpret_f32_s32)
1641 (vreinterpret_f32_s64, vreinterpret_f32_u8, vreinterpret_f32_u16)
1642 (vreinterpret_f32_u32, vreinterpret_f32_u64, vreinterpret_f32_p8)
1643 (vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpretq_f32_f16)
1644 (vreinterpretq_f32_f64, vreinterpretq_f32_s8, vreinterpretq_f32_s16)
1645 (vreinterpretq_f32_s32, vreinterpretq_f32_s64, vreinterpretq_f32_u8)
1646 (vreinterpretq_f32_u16, vreinterpretq_f32_u32, vreinterpretq_f32_u64)
1647 (vreinterpretq_f32_p8, vreinterpretq_f32_p16, vreinterpretq_f32_p64)
1648 (vreinterpretq_f32_p128, vreinterpret_f64_f16, vreinterpret_f64_f32)
1649 (vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_p64)
1650 (vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32)
1651 (vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16)
1652 (vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpretq_f64_f16)
1653 (vreinterpretq_f64_f32, vreinterpretq_f64_p8, vreinterpretq_f64_p16)
1654 (vreinterpretq_f64_p64, vreinterpretq_f64_s8, vreinterpretq_f64_s16)
1655 (vreinterpretq_f64_s32, vreinterpretq_f64_s64, vreinterpretq_f64_u8)
1656 (vreinterpretq_f64_u16, vreinterpretq_f64_u32, vreinterpretq_f64_u64)
1657 (vreinterpret_s64_f16, vreinterpret_s64_f64, vreinterpret_s64_s8)
1658 (vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_f32)
1659 (vreinterpret_s64_u8, vreinterpret_s64_u16, vreinterpret_s64_u32)
1660 (vreinterpret_s64_u64, vreinterpret_s64_p8, vreinterpret_s64_p16)
1661 (vreinterpret_s64_p64, vreinterpretq_s64_f64, vreinterpretq_s64_s8)
1662 (vreinterpretq_s64_s16, vreinterpretq_s64_s32, vreinterpretq_s64_f16)
1663 (vreinterpretq_s64_f32, vreinterpretq_s64_u8, vreinterpretq_s64_u16)
1664 (vreinterpretq_s64_u32, vreinterpretq_s64_u64, vreinterpretq_s64_p8)
1665 (vreinterpretq_s64_p16, vreinterpretq_s64_p64, vreinterpretq_s64_p128)
1666 (vreinterpret_u64_f16, vreinterpret_u64_f64, vreinterpret_u64_s8)
1667 (vreinterpret_u64_s16, vreinterpret_u64_s32, vreinterpret_u64_s64)
1668 (vreinterpret_u64_f32, vreinterpret_u64_u8, vreinterpret_u64_u16)
1669 (vreinterpret_u64_u32, vreinterpret_u64_p8, vreinterpret_u64_p16)
1670 (vreinterpret_u64_p64, vreinterpretq_u64_f64, vreinterpretq_u64_s8)
1671 (vreinterpretq_u64_s16, vreinterpretq_u64_s32, vreinterpretq_u64_s64)
1672 (vreinterpretq_u64_f16, vreinterpretq_u64_f32, vreinterpretq_u64_u8)
1673 (vreinterpretq_u64_u16, vreinterpretq_u64_u32, vreinterpretq_u64_p8)
1674 (vreinterpretq_u64_p16, vreinterpretq_u64_p64, vreinterpretq_u64_p128)
1675 (vreinterpret_s8_f16, vreinterpret_s8_f64, vreinterpret_s8_s16)
1676 (vreinterpret_s8_s32, vreinterpret_s8_s64, vreinterpret_s8_f32)
1677 (vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32)
1678 (vreinterpret_s8_u64, vreinterpret_s8_p8, vreinterpret_s8_p16)
1679 (vreinterpret_s8_p64, vreinterpretq_s8_f64, vreinterpretq_s8_s16)
1680 (vreinterpretq_s8_s32, vreinterpretq_s8_s64, vreinterpretq_s8_f16)
1681 (vreinterpretq_s8_f32, vreinterpretq_s8_u8, vreinterpretq_s8_u16)
1682 (vreinterpretq_s8_u32, vreinterpretq_s8_u64, vreinterpretq_s8_p8)
1683 (vreinterpretq_s8_p16, vreinterpretq_s8_p64, vreinterpretq_s8_p128)
1684 (vreinterpret_s16_f16, vreinterpret_s16_f64, vreinterpret_s16_s8)
1685 (vreinterpret_s16_s32, vreinterpret_s16_s64, vreinterpret_s16_f32)
1686 (vreinterpret_s16_u8, vreinterpret_s16_u16, vreinterpret_s16_u32)
1687 (vreinterpret_s16_u64, vreinterpret_s16_p8, vreinterpret_s16_p16)
1688 (vreinterpret_s16_p64, vreinterpretq_s16_f64, vreinterpretq_s16_s8)
1689 (vreinterpretq_s16_s32, vreinterpretq_s16_s64, vreinterpretq_s16_f16)
1690 (vreinterpretq_s16_f32, vreinterpretq_s16_u8, vreinterpretq_s16_u16)
1691 (vreinterpretq_s16_u32, vreinterpretq_s16_u64, vreinterpretq_s16_p8)
1692 (vreinterpretq_s16_p16, vreinterpretq_s16_p64, vreinterpretq_s16_p128)
1693 (vreinterpret_s32_f16, vreinterpret_s32_f64, vreinterpret_s32_s8)
1694 (vreinterpret_s32_s16, vreinterpret_s32_s64, vreinterpret_s32_f32)
1695 (vreinterpret_s32_u8, vreinterpret_s32_u16, vreinterpret_s32_u32)
1696 (vreinterpret_s32_u64, vreinterpret_s32_p8, vreinterpret_s32_p16)
1697 (vreinterpret_s32_p64, vreinterpretq_s32_f64, vreinterpretq_s32_s8)
1698 (vreinterpretq_s32_s16, vreinterpretq_s32_s64, vreinterpretq_s32_f16)
1699 (vreinterpretq_s32_f32, vreinterpretq_s32_u8, vreinterpretq_s32_u16)
1700 (vreinterpretq_s32_u32, vreinterpretq_s32_u64, vreinterpretq_s32_p8)
1701 (vreinterpretq_s32_p16, vreinterpretq_s32_p64, vreinterpretq_s32_p128)
1702 (vreinterpret_u8_f16, vreinterpret_u8_f64, vreinterpret_u8_s8)
1703 (vreinterpret_u8_s16, vreinterpret_u8_s32, vreinterpret_u8_s64)
1704 (vreinterpret_u8_f32, vreinterpret_u8_u16, vreinterpret_u8_u32)
1705 (vreinterpret_u8_u64, vreinterpret_u8_p8, vreinterpret_u8_p16)
1706 (vreinterpret_u8_p64, vreinterpretq_u8_f64, vreinterpretq_u8_s8)
1707 (vreinterpretq_u8_s16, vreinterpretq_u8_s32, vreinterpretq_u8_s64)
1708 (vreinterpretq_u8_f16, vreinterpretq_u8_f32, vreinterpretq_u8_u16)
1709 (vreinterpretq_u8_u32, vreinterpretq_u8_u64, vreinterpretq_u8_p8)
1710 (vreinterpretq_u8_p16, vreinterpretq_u8_p64, vreinterpretq_u8_p128)
1711 (vreinterpret_u16_f16, vreinterpret_u16_f64, vreinterpret_u16_s8)
1712 (vreinterpret_u16_s16, vreinterpret_u16_s32, vreinterpret_u16_s64)
1713 (vreinterpret_u16_f32, vreinterpret_u16_u8, vreinterpret_u16_u32)
1714 (vreinterpret_u16_u64, vreinterpret_u16_p8, vreinterpret_u16_p16)
1715 (vreinterpret_u16_p64, vreinterpretq_u16_f64, vreinterpretq_u16_s8)
1716 (vreinterpretq_u16_s16, vreinterpretq_u16_s32, vreinterpretq_u16_s64)
1717 (vreinterpretq_u16_f16, vreinterpretq_u16_f32, vreinterpretq_u16_u8)
1718 (vreinterpretq_u16_u32, vreinterpretq_u16_u64, vreinterpretq_u16_p8)
1719 (vreinterpretq_u16_p16, vreinterpretq_u16_p64, vreinterpretq_u16_p128)
1720 (vreinterpret_u32_f16, vreinterpret_u32_f64, vreinterpret_u32_s8)
1721 (vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_s64)
1722 (vreinterpret_u32_f32, vreinterpret_u32_u8, vreinterpret_u32_u16)
1723 (vreinterpret_u32_u64, vreinterpret_u32_p8, vreinterpret_u32_p16)
1724 (vreinterpret_u32_p64, vreinterpretq_u32_f64, vreinterpretq_u32_s8)
1725 (vreinterpretq_u32_s16, vreinterpretq_u32_s32, vreinterpretq_u32_s64)
1726 (vreinterpretq_u32_f16, vreinterpretq_u32_f32, vreinterpretq_u32_u8)
1727 (vreinterpretq_u32_u16, vreinterpretq_u32_u64, vreinterpretq_u32_p8)
1728 (vreinterpretq_u32_p16, vreinterpretq_u32_p64, vreinterpretq_u32_p128)
1729 (vreinterpretq_f64_p128, vreinterpretq_p128_f64, vreinterpret_bf16_u8)
1730 (vreinterpret_bf16_u16, vreinterpret_bf16_u32, vreinterpret_bf16_u64)
1731 (vreinterpret_bf16_s8, vreinterpret_bf16_s16, vreinterpret_bf16_s32)
1732 (vreinterpret_bf16_s64, vreinterpret_bf16_p8, vreinterpret_bf16_p16)
1733 (vreinterpret_bf16_p64, vreinterpret_bf16_f16, vreinterpret_bf16_f32)
1734 (vreinterpret_bf16_f64, vreinterpretq_bf16_u8, vreinterpretq_bf16_u16)
1735 (vreinterpretq_bf16_u32, vreinterpretq_bf16_u64, vreinterpretq_bf16_s8)
1736 (vreinterpretq_bf16_s16, vreinterpretq_bf16_s32, vreinterpretq_bf16_s64)
1737 (vreinterpretq_bf16_p8, vreinterpretq_bf16_p16, vreinterpretq_bf16_p64)
1738 (vreinterpretq_bf16_p128, vreinterpretq_bf16_f16)
1739 (vreinterpretq_bf16_f32, vreinterpretq_bf16_f64, vreinterpret_s8_bf16)
1740 (vreinterpret_s16_bf16, vreinterpret_s32_bf16, vreinterpret_s64_bf16)
1741 (vreinterpret_u8_bf16, vreinterpret_u16_bf16, vreinterpret_u32_bf16)
1742 (vreinterpret_u64_bf16, vreinterpret_f16_bf16, vreinterpret_f32_bf16)
1743 (vreinterpret_f64_bf16, vreinterpret_p8_bf16, vreinterpret_p16_bf16)
1744 (vreinterpret_p64_bf16, vreinterpretq_s8_bf16, vreinterpretq_s16_bf16)
1745 (vreinterpretq_s32_bf16, vreinterpretq_s64_bf16, vreinterpretq_u8_bf16)
1746 (vreinterpretq_u16_bf16, vreinterpretq_u32_bf16, vreinterpretq_u64_bf16)
1747 (vreinterpretq_f16_bf16, vreinterpretq_f32_bf16, vreinterpretq_f64_bf16)
1748 (vreinterpretq_p8_bf16, vreinterpretq_p16_bf16, vreinterpretq_p64_bf16)
1749 (vreinterpretq_p128_bf16): Delete
1750
1751 2022-07-26 Andrew Carlotti <andrew.carlotti@arm.com>
1752
1753 * config/aarch64/aarch64-builtins.cc
1754 (aarch64_simd_builtin_std_type): Rename to...
1755 (aarch64_int_or_fp_type): ...this, and allow irrelevant qualifiers.
1756 (aarch64_lookup_simd_builtin_type): Rename to...
1757 (aarch64_simd_builtin_type): ...this. Add const/pointer
1758 support, and extract table lookup to...
1759 (aarch64_lookup_simd_type_in_table): ...this function.
1760 (aarch64_init_crc32_builtins): Update to use aarch64_simd_builtin_type.
1761 (aarch64_init_fcmla_laneq_builtins): Ditto.
1762 (aarch64_init_simd_builtin_functions): Ditto.
1763
1764 2022-07-26 Andrew Carlotti <andrew.carlotti@arm.com>
1765
1766 * config/aarch64/aarch64-builtins.cc
1767 (aarch64_general_gimple_fold_builtin): Add combine.
1768
1769 2022-07-26 Richard Biener <rguenther@suse.de>
1770
1771 PR tree-optimization/106189
1772 * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
1773 Divide using offset_ints.
1774
1775 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
1776
1777 * common/config/loongarch/loongarch-common.cc:
1778 Enable '-fsection-anchors' when O1 and more advanced optimization.
1779 * config/loongarch/genopts/loongarch.opt.in: Add new option
1780 '-mexplicit-relocs', and enable by default.
1781 * config/loongarch/loongarch-protos.h (loongarch_split_move_insn_p):
1782 Delete function declaration.
1783 (loongarch_split_move_insn): Delete function declaration.
1784 (loongarch_split_symbol_type): Add function declaration.
1785 * config/loongarch/loongarch.cc (enum loongarch_address_type):
1786 Add new address type 'ADDRESS_LO_SUM'.
1787 (loongarch_classify_symbolic_expression): New function definitions.
1788 Classify the base of symbolic expression X, given that X appears in
1789 context CONTEXT.
1790 (loongarch_symbol_insns): Add a judgment condition TARGET_EXPLICIT_RELOCS.
1791 (loongarch_split_symbol_type): New function definitions.
1792 Determines whether the symbol load should be split into two instructions.
1793 (loongarch_valid_lo_sum_p): New function definitions.
1794 Return true if a LO_SUM can address a value of mode MODE when the LO_SUM
1795 symbol has type SYMBOL_TYPE.
1796 (loongarch_classify_address): Add handling of 'LO_SUM'.
1797 (loongarch_address_insns): Add handling of 'ADDRESS_LO_SUM'.
1798 (loongarch_signed_immediate_p): Sort code.
1799 (loongarch_12bit_offset_address_p): Return true if address type is ADDRESS_LO_SUM.
1800 (loongarch_const_insns): Add handling of 'HIGH'.
1801 (loongarch_split_move_insn_p): Add the static attribute to the function.
1802 (loongarch_emit_set): New function definitions.
1803 (loongarch_call_tls_get_addr): Add symbol handling when defining TARGET_EXPLICIT_RELOCS.
1804 (loongarch_legitimize_tls_address): Add symbol handling when defining the
1805 TARGET_EXPLICIT_RELOCS macro.
1806 (loongarch_split_symbol): New function definitions. Split symbol.
1807 (loongarch_legitimize_address): Add codes see if the address can split into a high part
1808 and a LO_SUM.
1809 (loongarch_legitimize_const_move): Add codes split moves of symbolic constants into
1810 high and low.
1811 (loongarch_split_move_insn): Delete function definitions.
1812 (loongarch_output_move): Add support for HIGH and LO_SUM.
1813 (loongarch_print_operand_reloc): New function definitions.
1814 Print symbolic operand OP, which is part of a HIGH or LO_SUM in context CONTEXT.
1815 (loongarch_memmodel_needs_release_fence): Sort code.
1816 (loongarch_print_operand): Rearrange alphabetical order and add H and L to support HIGH
1817 and LOW output.
1818 (loongarch_print_operand_address): Add handling of 'ADDRESS_LO_SUM'.
1819 (TARGET_MIN_ANCHOR_OFFSET): Define macro to -IMM_REACH/2.
1820 (TARGET_MAX_ANCHOR_OFFSET): Define macro to IMM_REACH/2-1.
1821 * config/loongarch/loongarch.md (movti): Delete the template.
1822 (*movti): Delete the template.
1823 (movtf): Delete the template.
1824 (*movtf): Delete the template.
1825 (*low<mode>): New template of normal symbol low address.
1826 (@tls_low<mode>): New template of tls symbol low address.
1827 (@ld_from_got<mode>): New template load address from got table.
1828 (@ori_l_lo12<mode>): New template.
1829 * config/loongarch/loongarch.opt: Update from loongarch.opt.in.
1830 * config/loongarch/predicates.md: Add support for symbol_type HIGH.
1831
1832 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
1833
1834 * config/loongarch/constraints.md (a): Delete the constraint.
1835 (b): A constant call not local address.
1836 (h): Delete the constraint.
1837 (t): Delete the constraint.
1838 * config/loongarch/loongarch-opts.cc (loongarch_config_target):
1839 Remove cModel type support other than normal.
1840 * config/loongarch/loongarch-protos.h (enum loongarch_symbol_type):
1841 Add new symbol type 'SYMBOL_PCREL', 'SYMBOL_TLS_IE' and 'SYMBOL_TLS_LE'.
1842 (loongarch_split_symbol): Delete useless function declarations.
1843 (loongarch_split_symbol_type): Delete useless function declarations.
1844 * config/loongarch/loongarch.cc (enum loongarch_address_type):
1845 Delete unnecessary comment information.
1846 (loongarch_symbol_binds_local_p): Modified the judgment order of label
1847 and symbol.
1848 (loongarch_classify_symbol): Return symbol type. If symbol is a label,
1849 or symbol is a local symbol return SYMBOL_PCREL. If is a tls symbol,
1850 return SYMBOL_TLS. If is a not local symbol return SYMBOL_GOT_DISP.
1851 (loongarch_symbolic_constant_p): Add handling of 'SYMBOL_TLS_IE'
1852 'SYMBOL_TLS_LE' and 'SYMBOL_PCREL'.
1853 (loongarch_symbol_insns): Add handling of 'SYMBOL_TLS_IE' 'SYMBOL_TLS_LE'
1854 and 'SYMBOL_PCREL'.
1855 (loongarch_address_insns): Sort code.
1856 (loongarch_12bit_offset_address_p): Sort code.
1857 (loongarch_14bit_shifted_offset_address_p): Sort code.
1858 (loongarch_call_tls_get_addr): Sort code.
1859 (loongarch_legitimize_tls_address): Sort code.
1860 (loongarch_output_move): Remove schema support for cmodel other than normal.
1861 (loongarch_memmodel_needs_release_fence): Sort code.
1862 (loongarch_print_operand): Sort code.
1863 * config/loongarch/loongarch.h (LARCH_U12BIT_OFFSET_P):
1864 Rename to LARCH_12BIT_OFFSET_P.
1865 (LARCH_12BIT_OFFSET_P): New macro.
1866 * config/loongarch/loongarch.md: Reimplement the function call. Remove schema
1867 support for cmodel other than normal.
1868 * config/loongarch/predicates.md (is_const_call_weak_symbol): Delete this predicate.
1869 (is_const_call_plt_symbol): Delete this predicate.
1870 (is_const_call_global_noplt_symbol): Delete this predicate.
1871 (is_const_call_no_local_symbol): New predicate, determines whether it is a local
1872 symbol or label.
1873
1874 2022-07-26 Kewen Lin <linkw@linux.ibm.com>
1875
1876 PR target/106091
1877 * config/rs6000/rs6000-p8swap.cc (replace_swapped_aligned_store): Copy
1878 REG_EH_REGION when replacing one store insn having it.
1879 (replace_swapped_aligned_load): Likewise.
1880
1881 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
1882
1883 * Makefile.in (OBJS): Add range-op-float.o.
1884 * range-op.cc (get_float_handler): New.
1885 (range_op_handler::range_op_handler): Save code and type for
1886 delayed querying.
1887 (range_op_handler::oeprator bool): Move from header file, and
1888 add support for floats.
1889 (range_op_handler::fold_range): Add support for floats.
1890 (range_op_handler::op1_range): Same.
1891 (range_op_handler::op2_range): Same.
1892 (range_op_handler::lhs_op1_relation): Same.
1893 (range_op_handler::lhs_op2_relation): Same.
1894 (range_op_handler::op1_op2_relation): Same.
1895 * range-op.h (class range_operator_float): New.
1896 (class floating_op_table): New.
1897 * value-query.cc (range_query::get_tree_range): Add case for
1898 REAL_CST.
1899 * range-op-float.cc: New file.
1900
1901 2022-07-25 Roger Sayle <roger@nextmovesoftware.com>
1902 Uroš Bizjak <ubizjak@gmail.com>
1903
1904 PR target/91681
1905 * config/i386/i386-expand.cc (split_double_concat): A new helper
1906 function for setting a double word value from two word values.
1907 * config/i386/i386-protos.h (split_double_concat): Prototype here.
1908 * config/i386/i386.md (zero_extendditi2): New define_insn_and_split.
1909 (*add<dwi>3_doubleword_zext): New define_insn_and_split.
1910 (*sub<dwi>3_doubleword_zext): New define_insn_and_split.
1911 (*concat<mode><dwi>3_1): New define_insn_and_split replacing
1912 previous define_split for implementing DST = (HI<<32)|LO as
1913 pair of move instructions, setting lopart and hipart.
1914 (*concat<mode><dwi>3_2): Likewise.
1915 (*concat<mode><dwi>3_3): Likewise, where HI is zero_extended.
1916 (*concat<mode><dwi>3_4): Likewise, where HI is zero_extended.
1917
1918 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
1919
1920 PR middle-end/106432
1921 * gimple-range.cc (gimple_ranger::range_on_edge): Return false
1922 when the result range type is unsupported.
1923
1924 2022-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
1925
1926 * config/rs6000/rtems.h (CPLUSPLUS_CPP_SPEC): Undef.
1927
1928 2022-07-25 Richard Biener <rguenther@suse.de>
1929
1930 PR middle-end/106414
1931 * match.pd (~(x ^ y) -> x == y): Restrict to single bit
1932 precision types.
1933
1934 2022-07-25 Andre Vieira <andre.simoesdiasvieira@arm.com>
1935
1936 * config/aarch64/aarch64.md (rbit<mode>2): Rename this ...
1937 (@aarch64_rbit<mode>): ... to this and change it in...
1938 (ffs<mode>2,ctz<mode>2): ... here.
1939 (@aarch64_rev16<mode>): New.
1940 * config/aarch64/aarch64-builtins.cc: (aarch64_builtins):
1941 Define the following enum AARCH64_REV16, AARCH64_REV16L,
1942 AARCH64_REV16LL, AARCH64_RBIT, AARCH64_RBITL, AARCH64_RBITLL.
1943 (aarch64_init_data_intrinsics): New.
1944 (aarch64_general_init_builtins): Add call to
1945 aarch64_init_data_intrinsics.
1946 (aarch64_expand_builtin_data_intrinsic): New.
1947 (aarch64_general_expand_builtin): Add call to
1948 aarch64_expand_builtin_data_intrinsic.
1949 * config/aarch64/arm_acle.h (__clz, __clzl, __clzll, __cls, __clsl,
1950 __clsll, __rbit, __rbitl, __rbitll, __rev, __revl, __revll, __rev16,
1951 __rev16l, __rev16ll, __ror, __rorl, __rorll, __revsh): New.
1952
1953 2022-07-25 Martin Liska <mliska@suse.cz>
1954
1955 * doc/extend.texi: Remove trailing whitespaces.
1956 * doc/invoke.texi: Likewise.
1957
1958 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
1959
1960 * value-range-pretty-print.cc (vrange_printer::visit): New.
1961 (vrange_printer::print_frange_prop): New.
1962 * value-range-pretty-print.h (class vrange_printer): Add visit and
1963 print_frange_prop.
1964 * value-range-storage.h (vrange_allocator::alloc_vrange): Handle frange.
1965 (vrange_allocator::alloc_frange): New.
1966 * value-range.cc (vrange::operator=): Handle frange.
1967 (vrange::operator==): Same.
1968 (frange::accept): New.
1969 (frange::set): New.
1970 (frange::normalize_kind): New.
1971 (frange::union_): New.
1972 (frange::intersect): New.
1973 (frange::operator=): New.
1974 (frange::operator==): New.
1975 (frange::supports_type_p): New.
1976 (frange::verify_range): New.
1977 * value-range.h (enum value_range_discriminator): Handle frange.
1978 (class fp_prop): New.
1979 (FP_PROP_ACCESSOR): New.
1980 (class frange_props): New.
1981 (FRANGE_PROP_ACCESSOR): New.
1982 (class frange): New.
1983 (Value_Range::init): Handle frange.
1984 (Value_Range::operator=): Same.
1985 (Value_Range::supports_type_p): Same.
1986 (frange_props::operator==): New.
1987 (frange_props::union_): New.
1988 (frange_props::intersect): New
1989 (frange::frange): New.
1990 (frange::type): New.
1991 (frange::set_varying): New.
1992 (frange::set_undefined): New.
1993
1994 2022-07-25 Peter Bergner <bergner@linux.ibm.com>
1995 Kewen Lin <linkw@linux.ibm.com>
1996
1997 PR testsuite/106345
1998 * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Adjust -mdejagnu-cpu
1999 to filter out all -mtune options.
2000
2001 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
2002
2003 * value-query.cc (range_query::get_value_range): Add assert.
2004 * vr-values.cc (vr_values::range_of_expr): Make sure we don't ICE
2005 on unsupported types in vr_values.
2006 (simplify_using_ranges::simplify): Same.
2007
2008 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
2009
2010 * tree-ssanames.cc (get_nonzero_bits): Return -1 for unsupported
2011 types.
2012 * value-query.cc (get_ssa_name_range_info): Remove precision check.
2013
2014 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
2015
2016 * value-relation.cc (value_relation::set_relation): Remove assert.
2017 (path_oracle::register_relation): Exit when trying to register
2018 same SSA name relations.
2019
2020 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
2021
2022 * gimple-range-cache.cc (ranger_cache::edge_range): Convert to vrange.
2023 (ranger_cache::range_from_dom): Same.
2024 * tree-ssa-dom.cc
2025 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): Same.
2026
2027 2022-07-24 Roger Sayle <roger@nextmovesoftware.com>
2028 H.J. Lu <hjl.tools@gmail.com>
2029
2030 PR target/106303
2031 PR target/106347
2032 * config/i386/i386-features.cc (make_vector_copies): Move from
2033 general_scalar_chain to scalar_chain.
2034 (convert_reg): Likewise.
2035 (convert_insn_common): New scalar_chain method split out from
2036 general_scalar_chain convert_insn.
2037 (convert_registers): Move from general_scalar_chain to
2038 scalar_chain.
2039 (scalar_chain::convert): Call convert_insn_common before calling
2040 convert_insn.
2041 (timode_remove_non_convertible_regs): Iterate until there are
2042 no further changes to the candidates.
2043 * config/i386/i386-features.h (scalar_chain::hash_map): Move
2044 from general_scalar_chain.
2045 (scalar_chain::convert_reg): Likewise.
2046 (scalar_chain::convert_insn_common): New shared method.
2047 (scalar_chain::make_vector_copies): Move from general_scalar_chain.
2048 (scalar_chain::convert_registers): Likewise. No longer virtual.
2049 (general_scalar_chain::hash_map): Delete. Moved to scalar_chain.
2050 (general_scalar_chain::convert_reg): Likewise.
2051 (general_scalar_chain::make_vector_copies): Likewise.
2052 (general_scalar_chain::convert_registers): Delete virtual method.
2053 (timode_scalar_chain::convert_registers): Likewise.
2054
2055 2022-07-23 Immad Mir <mirimmad@outlook.com>
2056
2057 * doc/extend.texi: Add fd_arg, fd_arg_read and fd_arg_write under
2058 "Common Function Attributes" section.
2059 * doc/invoke.texi: Add docs to -Wanalyzer-fd-access-mode-mismatch,
2060 -Wanalyzer-use-after-close, -Wanalyzer-fd-use-without-check that these
2061 warnings may be emitted through usage of three function attributes used
2062 for static analysis of file descriptors namely fd_arg, fd_arg_read and
2063 fd_arg_write.
2064
2065 2022-07-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2066
2067 * config/xtensa/xtensa.md (*masktrue_const_bitcmpl):
2068 Add a new insn_and_split pattern, and a few split patterns for
2069 spacial cases.
2070
2071 2022-07-22 Richard Sandiford <richard.sandiford@arm.com>
2072
2073 * graphds.cc (graphds_scc): Fix algorithm attribution.
2074
2075 2022-07-22 Richard Biener <rguenther@suse.de>
2076
2077 PR tree-optimization/106403
2078 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Move stored
2079 value valueization after check for IFN_MASKED_STORE or
2080 IFN_LEN_STORE.
2081
2082 2022-07-22 Richard Biener <rguenther@suse.de>
2083
2084 PR tree-optimization/106397
2085 * tree-ssa-loop-prefetch.cc (emit_mfence_after_loop): Do
2086 not update SSA form here.
2087 (mark_nontemporal_stores): Return whether we marked any
2088 non-temporal stores and inserted mfence.
2089 (loop_prefetch_arrays): Note when we need to update SSA.
2090 (tree_ssa_prefetch_arrays): Perform required (LC) SSA update
2091 at the end of the pass.
2092
2093 2022-07-22 Richard Biener <rguenther@suse.de>
2094
2095 PR tree-optimization/106387
2096 * tree-vect-stmts.cc (vectorizable_load): Use make_ssa_name
2097 if ptr is not an SSA name.
2098
2099 2022-07-22 liuhongt <hongtao.liu@intel.com>
2100
2101 PR target/106038
2102 * config/i386/mmx.md (<code><mode>3): New define_expand, it's
2103 original "<code><mode>3".
2104 (*<code><mode>3): New define_insn, it's original
2105 "<code><mode>3" be extended to handle memory and immediate
2106 operand with ix86_binary_operator_ok. Also adjust define_split
2107 after it.
2108 (mmxinsnmode): New mode attribute.
2109 (*mov<mode>_imm): Refactor with mmxinsnmode.
2110 * config/i386/predicates.md
2111 (register_or_x86_64_const_vector_operand): New predicate.
2112
2113 2022-07-22 Will Schmidt <will_schmidt@vnet.ibm.com>
2114
2115 * config/rs6000/altivec.md:
2116 (vstrir_code_<mode>): Rename to...
2117 (vstrir_direct_<mode>): ... this.
2118 (vstrir_p_code_<mode>): Rename to...
2119 (vstrir_p_direct_<mode>): ... this.
2120 (vstril_code_<mode>): Rename to...
2121 (vstril_direct_<mode>): ... this.
2122 (vstril_p_code_<mode>): Rename to...
2123 (vstril_p_direct_<mode>): ... this.
2124
2125 2022-07-22 Will Schmidt <will_schmidt@vnet.ibm.com>
2126
2127 * config/rs6000/rs6000-c.cc: Update comments.
2128 (rs6000_target_modify_macros): Remove bu_mask references.
2129 (rs6000_define_or_undefine_macro): Replace bu_mask reference
2130 with a rs6000_cpu value check.
2131 (rs6000_cpu_cpp_builtins): Remove rs6000_builtin_mask_calculate()
2132 parameter from call to rs6000_target_modify_macros.
2133 * config/rs6000/rs6000-protos.h (rs6000_target_modify_macros,
2134 rs6000_target_modify_macros_ptr): Remove parameter from extern
2135 for the prototype.
2136 * config/rs6000/rs6000.cc (rs6000_target_modify_macros_ptr): Remove
2137 parameter from prototype, update calls to this function.
2138 (rs6000_print_builtin_options): Remove prototype, call and function.
2139 (rs6000_builtin_mask_calculate): Remove function.
2140 (rs6000_debug_reg_global): Remove call to rs6000_print_builtin_options.
2141 (rs6000_option_override_internal): Remove rs6000_builtin_mask var
2142 and builtin_mask debug output.
2143 (rs6000_builtin_mask_names): Remove.
2144 (rs6000_pragma_target_parse): Remove prev_bumask, cur_bumask,
2145 diff_bumask references; Update calls to rs6000_target_modify_ptr.
2146 * config/rs6000/rs6000.opt (rs6000_builtin_mask): Remove.
2147
2148 2022-07-21 Sam Feifer <sfeifer@redhat.com>
2149
2150 PR tree-optimization/94920
2151 * match.pd (x >= 0 ? x : 0) + (x <= 0 ? -x : 0): New simplification.
2152 (x <= 0 ? -x : 0): New simplification.
2153
2154 2022-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2155
2156 Revert:
2157 2022-07-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2158
2159 * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
2160 instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
2161
2162 2022-07-21 Richard Biener <rguenther@suse.de>
2163
2164 PR tree-optimization/106379
2165 * match.pd (~(a ^ b) -> a == b): New pattern.
2166
2167 2022-07-21 Richard Biener <rguenther@suse.de>
2168
2169 PR tree-optimization/106378
2170 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Handle
2171 LEN_STORE, add mode to initialize a may-def and handle
2172 MASK_STORE that way.
2173 (dse_optimize_stmt): Query may-defs. Handle internal
2174 functions LEN_STORE and MASK_STORE similar to how
2175 we handle memory builtins but without byte tracking.
2176
2177 2022-07-21 Richard Biener <rguenther@suse.de>
2178
2179 PR tree-optimization/106365
2180 * tree-ssa-sccvn.cc (pd_data::rhs_off): New field determining
2181 the offset to start encoding of RHS from.
2182 (vn_walk_cb_data::vn_walk_cb_data): Initialize it.
2183 (vn_walk_cb_data::push_partial_def): Allow the first partial
2184 definition to be fully providing the def. Offset RHS
2185 before encoding if requested.
2186 (vn_reference_lookup_3): Initialize def_rhs everywhere.
2187 Add support for .MASK_STORE and .LEN_STORE (partial) definitions.
2188
2189 2022-07-21 Richard Biener <rguenther@suse.de>
2190
2191 * tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): Special-case
2192 store internal functions and IFN_MASK_LOAD, IFN_LEN_LOAD
2193 and IFN_MASK_LOAD_LANES.
2194 (call_may_clobber_ref_p_1): Special-case IFN_MASK_STORE,
2195 IFN_LEN_STORE and IFN_MASK_STORE_LANES.
2196
2197 2022-07-20 Alexander Monakov <amonakov@ispras.ru>
2198
2199 PR rtl-optimization/101347
2200 * builtins.cc (expand_builtin) [BUILT_IN_SETJMP_SETUP]: Move
2201 population of nonlocal_goto_handler_labels from here ...
2202 (expand_builtin) [BUILT_IN_SETJMP_RECEIVER]: ... to here.
2203 * rtlanal.cc (remove_node_from_insn_list): Verify that a
2204 duplicate is not present in the remainder of the list.
2205
2206 2022-07-20 Alexander Monakov <amonakov@ispras.ru>
2207
2208 * rtl.h (remove_node_from_expr_list): Remove declaration.
2209 * rtlanal.cc (remove_node_from_expr_list): Remove (no uses).
2210
2211 2022-07-20 Richard Biener <rguenther@suse.de>
2212
2213 * tree-vect-data-refs.cc (bump_vector_ptr): Return an
2214 invariant updated address when the input was invariant.
2215
2216 2022-07-20 liuhongt <hongtao.liu@intel.com>
2217
2218 * passes.def: (Split pass_cse_sincos to pass_expand_powcabs
2219 and pass_cse_sincos, and move pass_cse_sincos after vectorizer).
2220 * timevar.def (TV_TREE_POWCABS): New timevar.
2221 * tree-pass.h (make_pass_expand_powcabs): Split from pass_cse_sincos.
2222 * tree-ssa-math-opts.cc (gimple_expand_builtin_cabs): Ditto.
2223 (class pass_expand_powcabs): Ditto.
2224 (pass_expand_powcabs::execute): Ditto.
2225 (make_pass_expand_powcabs): Ditto.
2226 (pass_cse_sincos::execute): Remove pow/cabs expand part.
2227 (make_pass_cse_sincos): Ditto.
2228
2229 2022-07-20 Richard Biener <richard.guenther@gmail.com>
2230 Hongtao Liu <hongtao.liu@intel.com>
2231
2232 PR tree-optimization/106010
2233 * tree-complex.cc (init_dont_simulate_again): Lower complex
2234 type move.
2235 (expand_complex_move): Also expand COMPLEX_CST for rhs.
2236
2237 2022-07-19 Andrew MacLeod <amacleod@redhat.com>
2238
2239 * gimple-range-cache.cc (ranger_cache::range_from_dom): Check
2240 for incoming ranges on join nodes and add to worklist.
2241
2242 2022-07-19 Andrew MacLeod <amacleod@redhat.com>
2243
2244 * gimple-range-cache.cc (ranger_cache::resolve_dom): New.
2245 (ranger_cache::range_from_dom): Put all nodes to be calculated
2246 in the worklist and resolve after the dom walk.
2247 * gimple-range-cache.h (resolve_dom): New prototype.
2248
2249 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
2250
2251 * tree-cfg.cc (gimple_verify_flow_info): Check placement of
2252 returns_twice calls.
2253
2254 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
2255
2256 * cfghooks.cc (duplicate_block): Expand comment.
2257 * tree-cfg.cc (gimple_can_duplicate_bb_p): Reject blocks with
2258 calls that may return twice.
2259
2260 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
2261
2262 * tree-ssa-sink.cc (select_best_block): Punt if selected block
2263 has incoming abnormal edges.
2264
2265 2022-07-19 Martin Liska <mliska@suse.cz>
2266
2267 * doc/extend.texi: Remove trailing :.
2268
2269 2022-07-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2270
2271 * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
2272 instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
2273
2274 2022-07-19 Richard Biener <rguenther@suse.de>
2275
2276 PR middle-end/106331
2277 * builtins.cc (get_memory_rtx): Compute alignment from
2278 the original address and set MEM_OFFSET to unknown when
2279 we create a MEM_EXPR from the base object of the address.
2280
2281 2022-07-19 Richard Biener <rguenther@suse.de>
2282
2283 PR lto/106334
2284 * dwarf2out.cc (dwarf2out_register_external_die): Allow
2285 map entry re-use during WPA.
2286
2287 2022-07-19 Roger Sayle <roger@nextmovesoftware.com>
2288 Richard Biener <rguenther@suse.de>
2289
2290 PR c/106264
2291 * builtins.cc (fold_builtin_frexp): Call suppress_warning on
2292 COMPOUND_EXPR to silence spurious warning if result isn't used.
2293 (fold_builtin_modf): Likewise.
2294 (do_mpfr_remquo): Likewise.
2295
2296 2022-07-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2297
2298 * config/xtensa/xtensa.cc (xtensa_rtx_costs):
2299 Change the relative cost of '(set (reg) (const_int N))' where
2300 N fits into signed 12-bit from 4 to 0 if optimizing for size.
2301 And use the appropriate macro instead of the bare number 4.
2302
2303 2022-07-18 Andrew MacLeod <amacleod@redhat.com>
2304
2305 PR tree-optimization/106280
2306 * value-relation.cc (dom_oracle::register_relation): Register
2307 transitives only when it is possible for there to be one.
2308 (dom_oracle::set_one_relation): Return NULL if this is an
2309 existing relation.
2310
2311 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
2312
2313 * doc/invoke.texi (RISC-V Options): Add index references for
2314 `mrelax' and `mriscv-attribute'.
2315
2316 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
2317
2318 * doc/invoke.texi (Option Summary): Add missing second space
2319 around `-mstack-protector-guard-reg='.
2320
2321 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
2322
2323 * doc/invoke.texi (Option Summary): Fix `-mno-riscv-attribute'.
2324 (RISC-V Options): Likewise, and `-mriscv-attribute'.
2325
2326 2022-07-18 Claudiu Zissulescu <claziss@gmail.com>
2327
2328 * config/arc/arc-arch.h (arc_tune_attr): Add
2329 ARC_TUNE_ARCHS4X_REL31A variant.
2330 * config/arc/arc.cc (arc_override_options): Tune options for
2331 release 310a.
2332 (arc_sched_issue_rate): Use correct enum.
2333 (arc600_corereg_hazard): Textual change.
2334 (arc_hazard): Add release 310a tunning.
2335 * config/arc/arc.md (tune): Update and take into consideration new
2336 tune option.
2337 (tune_dspmpy): Likewise.
2338 (tune_store): New attribute.
2339 * config/arc/arc.opt (mtune): New tune option.
2340 * config/arc/arcHS4x.md (hs4x_brcc0, hs4x_brcc1): New cpu units.
2341 (hs4x_brcc_op): New instruction rezervation.
2342 (hs4x_data_store_1_op): Likewise.
2343 * config/arc/arc-cpus.def (hs4x_rel31): New cpu variant.
2344 * config/arc/arc-tables.opt: Regenerate.
2345 * config/arc/t-multilib: Likewise.
2346 * doc/invoke.texi (ARC): Update mcpu and tune sections.
2347
2348 2022-07-18 Richard Biener <rguenther@suse.de>
2349
2350 * tree-loop-distribution.cc (loop_distribution::distribute_loop):
2351 When computing cost-based merging do not disregard builtin
2352 classified partitions in some cases.
2353
2354 2022-07-18 Richard Sandiford <richard.sandiford@arm.com>
2355
2356 PR target/106253
2357 * config/arm/arm-builtins.cc (arm_builtin_vectorized_function):
2358 Delete.
2359 * config/arm/arm-protos.h (arm_builtin_vectorized_function): Delete.
2360 * config/arm/arm.cc (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
2361 Delete.
2362 * config/arm/arm_neon_builtins.def (copysignf): Delete.
2363 * config/arm/iterators.md (nvrint_pattern): New attribute.
2364 * config/arm/neon.md (<NEON_VRINT:nvrint_pattern><VCVTF:mode>2):
2365 New pattern.
2366 (l<NEON_VCVT:nvrint_pattern><su_optab><VCVTF:mode><v_cmp_result>2):
2367 Likewise.
2368 (neon_copysignf<mode>): Rename to...
2369 (copysign<mode>3): ...this.
2370
2371 2022-07-18 Claudiu Zissulescu <claziss@gmail.com>
2372
2373 * config/arc/arc.cc (arc_expand_epilogue): Adjust the frame
2374 pointer first when in interrupts.
2375
2376 2022-07-18 Richard Biener <rguenther@suse.de>
2377
2378 * tree-loop-distribution.cc (copy_loop_before): Add
2379 the ability to replace the original LC PHI defs.
2380 (generate_loops_for_partition): Pass through a flag
2381 whether to redirect original LC PHI defs.
2382 (generate_code_for_partition): Likewise.
2383 (loop_distribution::distribute_loop): Compute the partition
2384 that should provide the LC PHI defs for common reductions
2385 and pass that down.
2386
2387 2022-07-18 Richard Ball <richard.ball@arm.com>
2388
2389 * config/aarch64/aarch64.cc (aarch64_evpc_trn): Use std:swap.
2390 (aarch64_evpc_uzp): Likewise.
2391 (aarch64_evpc_zip): Likewise.
2392
2393 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
2394
2395 PR target/106231
2396 * config/i386/i386.md (*ctzsidi2_<s>ext): New insn_and_split
2397 to recognize any_extend:DI of ctz:SI which is implicitly extended.
2398 (*ctzsidi2_<s>ext_falsedep): New define_insn to model a DImode
2399 extended ctz:SI that has preceding xor to break false dependency.
2400
2401 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
2402
2403 * config/i386/predicates.md (x86_64_const_vector_operand):
2404 Check the operand's mode matches the specified mode argument.
2405
2406 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
2407
2408 * config/i386/sse.md (kunpckhi): Add UNSPEC_MASKOP unspec.
2409 (kunpcksi): Likewise, add UNSPEC_MASKOP unspec.
2410 (kunpckdi): Likewise, add UNSPEC_MASKOP unspec.
2411 (vec_pack_trunc_qi): Update to specify the now required
2412 UNSPEC_MASKOP unspec.
2413 (vec_pack_trunc_<mode>): Likewise.
2414
2415 2022-07-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2416
2417 * config/xtensa/xtensa.md
2418 (*masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
2419 *masktrue_const_shifted_mask): If the immediate for bitwise AND is
2420 represented as '-(1 << N)', decrease the lower bound of N from 12
2421 to 1. And the other immediate for conditional branch is now no
2422 longer limited to zero, but also one of some positive integers.
2423 Finally, remove the checks of some conditions, because the comparison
2424 expressions that don't satisfy such checks are determined as
2425 compile-time constants and thus will be optimized away before
2426 RTL expansion.
2427
2428 2022-07-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2429
2430 * config/xtensa/xtensa.cc (xtensa_emit_constantsynth): Remove.
2431 (xtensa_constantsynth_2insn): Change to try all three synthetic
2432 methods and to use the one that fits the immediate value of
2433 the seed into a Narrow Move Immediate instruction "MOVI.N"
2434 when the Code Density Option is configured.
2435
2436 2022-07-15 H.J. Lu <hjl.tools@gmail.com>
2437
2438 PR target/85620
2439 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
2440 false if callee has indirect_return attribute and caller
2441 doesn't.
2442
2443 2022-07-15 Roger Sayle <roger@nextmovesoftware.com>
2444
2445 PR target/106273
2446 * config/i386/i386.md (*andn<dwi>3_doubleword_bmi): Update the
2447 constraints to reflect the output is earlyclobber, unless it is
2448 the same register (pair) as one of the operands.
2449
2450 2022-07-15 David Malcolm <dmalcolm@redhat.com>
2451
2452 * doc/invoke.texi (Static Analyzer Options): Add the new fd
2453 warnings to the initial gccoptlist, and to the list of those
2454 disabled by -fanalyzer-checker=taint.
2455
2456 2022-07-15 Andrew Carlotti <andrew.carlotti@arm.com>
2457
2458 * config/aarch64/aarch64-builtins.cc
2459 (enum aarch64_type_qualifiers): Remove qualifier_internal.
2460 (aarch64_init_simd_builtin_functions): Remove qualifier_internal check.
2461
2462 2022-07-15 Andrew Carlotti <andrew.carlotti@arm.com>
2463
2464 * config/aarch64/aarch64-builtins.cc
2465 (v1di_UP): Add V1DI mode to _UP macros.
2466 * config/aarch64/aarch64-modes.def (VECTOR_MODE): Add V1DI mode.
2467 * config/aarch64/aarch64-simd-builtin-types.def: Use V1DI mode.
2468 * config/aarch64/aarch64-simd.md
2469 (vec_extractv2dfv1df): Replace with...
2470 (vec_extract<mode><V1half>): ...this.
2471 * config/aarch64/aarch64.cc
2472 (aarch64_classify_vector_mode): Add V1DI mode.
2473 * config/aarch64/iterators.md
2474 (VQ_2E, V1HALF, V1half): New.
2475 (nunits): Add V1DI mode.
2476
2477 2022-07-15 Roger Sayle <roger@nextmovesoftware.com>
2478
2479 PR target/106278
2480 * config/i386/i386-features.cc (general_scalar_chain::convert_insn):
2481 Fix indentation whitespace.
2482 (timode_scalar_chain::fix_debug_reg_uses): Likewise.
2483 (timode_scalar_chain::convert_insn): Delete dead code.
2484 Update TImode REG_EQUAL_NOTE even if the SET_DEST is already V1TI.
2485 Fix indentation whitespace.
2486 (convertible_comparison_p): Likewise.
2487 (timode_scalar_to_vector_candidate_p): Likewise.
2488
2489 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
2490
2491 * gimple-pretty-print.cc (dump_ssaname_info): Use pp_vrange.
2492
2493 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
2494
2495 * Makefile.in (OBJS): Add value-range-pretty-print.o.
2496 * pretty-print.h (pp_vrange): New.
2497 * value-range.cc (vrange::dump): Call pp version.
2498 (unsupported_range::dump): Move to its own file.
2499 (dump_bound_with_infinite_markers): Same.
2500 (irange::dump): Same.
2501 (irange::dump_bitmasks): Same.
2502 (vrange::debug): Remove.
2503 * value-range.h: Remove virtual designation for dump methods.
2504 Remove dump_bitmasks method.
2505 * value-range-pretty-print.cc: New file.
2506 * value-range-pretty-print.h: New file.
2507
2508 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
2509
2510 * value-range.cc (irange::accept): New.
2511 (unsupported_range::accept): New.
2512 * value-range.h (class vrange_visitor): New.
2513 (class vrange): Add accept method.
2514 (class unsupported_range): Same.
2515 (class Value_Range): Same.
2516
2517 2022-07-15 Jonathan Wakely <jwakely@redhat.com>
2518
2519 * diagnostic-format-json.cc (json_from_location_range): Adjust
2520 to new label_text API.
2521 * diagnostic-format-sarif.cc (sarif_builder::make_location_object):
2522 Likewise.
2523 * diagnostic-show-locus.cc (struct pod_label_text): Likewise.
2524 (layout::print_any_labels): Likewise.
2525 * tree-diagnostic-path.cc (class path_label): Likewise.
2526 (struct event_range): Likewise.
2527 (default_tree_diagnostic_path_printer): Likewise.
2528 (default_tree_make_json_for_path): Likewise.
2529
2530 2022-07-15 konglin1 <lingling.kong@intel.com>
2531
2532 PR target/106113
2533 * config/i386/i386-builtin.def (BDESC): Fix [u]comi{ss,sd}
2534 comparison due to intrinsics changed over time.
2535 * config/i386/i386-expand.cc (ix86_ssecom_setcc):
2536 Add unordered check and mode for sse comi codegen.
2537 (ix86_expand_sse_comi): Add unordered check and check a different
2538 CCmode.
2539 (ix86_expand_sse_comi_round):Extract unordered check and mode part
2540 in ix86_ssecom_setcc.
2541
2542 2022-07-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2543
2544 * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Use
2545 op_mode instead of vmode in calls to force_reg for op0 and op1.
2546
2547 2022-07-14 H.J. Lu <hjl.tools@gmail.com>
2548
2549 PR tree-optimization/103798
2550 * tree-ssa-forwprop.cc: Include "tree-ssa-strlen.h".
2551 (simplify_builtin_call): Inline memchr with constant strings of
2552 no more than the bytes of a word.
2553 * tree-ssa-strlen.cc (use_in_zero_equality): Make it global.
2554 * tree-ssa-strlen.h (use_in_zero_equality): New.
2555
2556 2022-07-14 Eric Botcazou <ebotcazou@adacore.com>
2557
2558 * gimplify.cc (lookup_tmp_var): Add NOT_GIMPLE_REG boolean parameter
2559 and set DECL_NOT_GIMPLE_REG_P on the variable according to it.
2560 (internal_get_tmp_var): Add NOT_GIMPLE_REG boolean parameter and
2561 pass it in the call to lookup_tmp_var.
2562 (get_formal_tmp_var): Pass false in the call to lookup_tmp_var.
2563 (get_initialized_tmp_var): Likewise.
2564 (prepare_gimple_addressable): Call internal_get_tmp_var instead of
2565 get_initialized_tmp_var with NOT_GIMPLE_REG set to true.
2566
2567 2022-07-14 Martin Liska <mliska@suse.cz>
2568
2569 * doc/gimple.texi: Close properly a deftypefn.
2570
2571 2022-07-14 Martin Liska <mliska@suse.cz>
2572
2573 * doc/gimple.texi: Close properly a deftypefn.
2574
2575 2022-07-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2576
2577 * config/xtensa/xtensa.md:
2578 In FP constant synthesis split pattern, subcontract to
2579 avoid_constant_pool_reference() as in the case of integer,
2580 because it can handle well too. And cast to int32_t before
2581 calling xtensa_constantsynth() in order to ignore upper 32-bit.
2582
2583 2022-07-13 Aldy Hernandez <aldyh@redhat.com>
2584
2585 * range-op.cc (operator_lt::fold_range): Use nonzero bits.
2586
2587 2022-07-13 Aldy Hernandez <aldyh@redhat.com>
2588
2589 * value-range.cc (irange::copy_to_legacy): Set nonzero mask.
2590 (irange::legacy_intersect): Clear nonzero mask.
2591 (irange::legacy_union): Same.
2592 (irange::invert): Same.
2593
2594 2022-07-13 Richard Biener <rguenther@suse.de>
2595
2596 * tree-ssa-dom.h (record_temporary_equivalences): Remove.
2597 * tree-ssa-dom.cc (dom_jt_state::m_blocks_on_stack): New.
2598 (dom_jt_state::get_blocks_on_stack): Likewise.
2599 (dom_opt_dom_walker::dom_opt_dom_walker): Take dom_jt_state.
2600 (back_propagate_equivalences): Remove dominator bitmap
2601 compute and instead use passed in m_blocks_on_stack.
2602 (record_temporary_equivalences): Likewise.
2603 (record_equivalences_from_incoming_edge): Likewise.
2604 (dom_opt_dom_walker::before_dom_children): Maintain and
2605 pass down blocks on stack.
2606 (dom_opt_dom_walker::after_dom_children): Likewise.
2607
2608 2022-07-13 Andrew Carlotti <andrew.carlotti@arm.com>
2609
2610 * config/aarch64/aarch64-builtins.cc
2611 (aarch64_general_gimple_fold_builtin): Add fixup for invalid GIMPLE.
2612
2613 2022-07-13 Richard Biener <rguenther@suse.de>
2614
2615 PR tree-optimization/106249
2616 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop):
2617 Only verify LC SSA of the new_loop if we created it.
2618 Use TODO_update_ssa_nophi for the SSA update after versioning
2619 the loop.
2620
2621 2022-07-12 Aldy Hernandez <aldyh@redhat.com>
2622
2623 * range-op.cc (unsigned_singleton_p): Remove.
2624 (operator_bitwise_and::remove_impossible_ranges): Remove.
2625 (operator_bitwise_and::fold_range): Set nonzero bits. *
2626 * value-range.cc (irange::get_nonzero_bits): Remove
2627 legacy_mode_p assert.
2628 (irange::dump_bitmasks): Remove legacy_mode_p check.
2629
2630 2022-07-12 Richard Sandiford <richard.sandiford@arm.com>
2631
2632 PR target/106253
2633 * predict.h (insn_optimization_type): Declare.
2634 * predict.cc (insn_optimization_type): New function.
2635 * internal-fn.def (IFN_ICEIL, IFN_IFLOOR, IFN_IRINT, IFN_IROUND)
2636 (IFN_LCEIL, IFN_LFLOOR, IFN_LRINT, IFN_LROUND, IFN_LLCEIL)
2637 (IFN_LLFLOOR, IFN_LLRINT, IFN_LLROUND): New internal functions.
2638 * internal-fn.cc (unary_convert_direct): New macro.
2639 (expand_convert_optab_fn): New function.
2640 (expand_unary_convert_optab_fn): New macro.
2641 (direct_unary_convert_optab_supported_p): Likewise.
2642 * optabs.cc (expand_sfix_optab): Pass insn_optimization_type to
2643 convert_optab_handler.
2644 * config/aarch64/aarch64-protos.h
2645 (aarch64_builtin_vectorized_function): Delete.
2646 * config/aarch64/aarch64-builtins.cc
2647 (aarch64_builtin_vectorized_function): Delete.
2648 * config/aarch64/aarch64.cc
2649 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Delete.
2650 * config/i386/i386.cc (ix86_optab_supported_p): Handle lround_optab.
2651 * config/i386/i386.md (lround<X87MODEF:mode><SWI248x:mode>2): Remove
2652 optimize_insn_for_size_p test.
2653
2654 2022-07-12 Richard Biener <rguenther@suse.de>
2655
2656 * tree-vect-loop-manip.cc (create_lcssa_for_virtual_phi):
2657 Remove.
2658 (vect_do_peeling): Do not call it, adjust comment.
2659
2660 2022-07-12 Richard Sandiford <richard.sandiford@arm.com>
2661
2662 * config/aarch64/aarch64-builtins.cc
2663 (aarch64_builtin_vectorized_function): Remove handling of
2664 floor, ceil, trunc, round, nearbyint, sqrt, clz and ctz.
2665
2666 2022-07-11 Andrew MacLeod <amacleod@redhat.com>
2667
2668 PR tree-optimization/106234
2669 * gimple-range-cache.cc (ranger_cache::range_from_dom): Check dominator
2670 cache value before recursively resolving it.
2671
2672 2022-07-11 Roger Sayle <roger@nextmovesoftware.com>
2673
2674 * config/i386/i386-features.h (scalar_chain): Add fields
2675 insns_conv, n_sse_to_integer and n_integer_to_sse to this
2676 parent class, moved from general_scalar_chain.
2677 (scalar_chain::convert_compare): Protected method moved
2678 from general_scalar_chain.
2679 (mark_dual_mode_def): Make protected, not private virtual.
2680 (scalar_chain:convert_op): New private virtual method.
2681 (general_scalar_chain::general_scalar_chain): Simplify constructor.
2682 (general_scalar_chain::~general_scalar_chain): Delete destructor.
2683 (general_scalar_chain): Move insns_conv, n_sse_to_integer and
2684 n_integer_to_sse fields to parent class, scalar_chain.
2685 (general_scalar_chain::mark_dual_mode_def): Delete prototype.
2686 (general_scalar_chain::convert_compare): Delete prototype.
2687 (timode_scalar_chain::compute_convert_gain): Remove simplistic
2688 implementation, convert to a method prototype.
2689 (timode_scalar_chain::mark_dual_mode_def): Delete prototype.
2690 (timode_scalar_chain::convert_op): Prototype new virtual method.
2691 * config/i386/i386-features.cc (scalar_chain::scalar_chain):
2692 Allocate insns_conv and initialize n_sse_to_integer and
2693 n_integer_to_sse fields in constructor.
2694 (scalar_chain::scalar_chain): Free insns_conv in destructor.
2695 (general_scalar_chain::general_scalar_chain): Delete
2696 constructor, now defined in the class declaration.
2697 (general_scalar_chain::~general_scalar_chain): Delete destructor.
2698 (scalar_chain::mark_dual_mode_def): Renamed from
2699 general_scalar_chain::mark_dual_mode_def.
2700 (timode_scalar_chain::mark_dual_mode_def): Delete.
2701 (scalar_chain::convert_compare): Renamed from
2702 general_scalar_chain::convert_compare.
2703 (timode_scalar_chain::compute_convert_gain): New method to
2704 determine the gain from converting a TImode chain to V1TImode.
2705 (timode_scalar_chain::convert_op): New method to convert an
2706 operand from TImode to V1TImode.
2707 (timode_scalar_chain::convert_insn) <case REG>: Only PUT_MODE
2708 on REG_EQUAL notes that were originally TImode (not CONST_INT).
2709 Handle AND, ANDN, XOR, IOR, NOT and COMPARE.
2710 (timode_mem_p): Helper predicate to check where operand is
2711 memory reference with sufficient alignment for TImode STV.
2712 (timode_scalar_to_vector_candidate_p): Use convertible_comparison_p
2713 to check whether COMPARE is convertible. Handle SET_DESTs that
2714 that are REG_P or MEM_P and SET_SRCs that are REG, CONST_INT,
2715 CONST_WIDE_INT, MEM, AND, ANDN, IOR, XOR or NOT.
2716
2717 2022-07-11 Richard Sandiford <richard.sandiford@arm.com>
2718
2719 PR tree-optimization/106250
2720 * tree-vect-loop.cc (vectorizable_reduction): Reinstate final
2721 argument to directly_supported_p.
2722
2723 2022-07-11 Richard Biener <rguenther@suse.de>
2724
2725 * tree-into-ssa.cc (update_ssa): Do not forcefully
2726 re-compute dominance fast queries for TODO_update_ssa_no_phi.
2727
2728 2022-07-11 Richard Biener <rguenther@suse.de>
2729
2730 PR tree-optimization/106228
2731 * tree-vect-data-refs.cc (vect_setup_realignment): Adjust
2732 VUSE compute for the non-loop case.
2733
2734 2022-07-11 Richard Biener <rguenther@suse.de>
2735
2736 * tree-into-ssa.cc (rewrite_mode::REWRITE_UPDATE_REGION): New.
2737 (rewrite_update_dom_walker::rewrite_update_dom_walker): Update.
2738 (rewrite_update_dom_walker::m_in_region_flag): New.
2739 (rewrite_update_dom_walker::before_dom_children): If the region
2740 to update is marked, STOP at exits.
2741 (rewrite_blocks): For REWRITE_UPDATE_REGION mark the region
2742 to be updated.
2743 (dump_update_ssa): Use bitmap_empty_p.
2744 (update_ssa): Likewise. Use REWRITE_UPDATE_REGION when
2745 TODO_update_ssa_no_phi.
2746 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Account
2747 pending update_ssa to the caller.
2748
2749 2022-07-11 Richard Biener <rguenthert@suse.de>
2750
2751 PR target/105459
2752 * config/i386/i386-options.cc (ix86_set_current_function):
2753 Rebuild the target optimization node whenever necessary,
2754 not only when the optimization node didn't change.
2755
2756 2022-07-11 Richard Biener <rguenther@suse.de>
2757
2758 PR tree-optimization/106228
2759 * tree-vect-data-refs.cc (vect_setup_realignment): Properly
2760 set a VUSE operand on the emitted load.
2761
2762 2022-07-11 Aldy Hernandez <aldyh@redhat.com>
2763
2764 * gimple-range.cc (gimple_ranger::export_global_ranges): Remove
2765 verification against legacy value_range.
2766 (gimple_ranger::register_inferred_ranges): Same.
2767 (gimple_ranger::export_global_ranges): Rename update_global_range
2768 to set_range_info.
2769 * tree-core.h (struct range_info_def): Remove.
2770 (struct irange_storage_slot): New.
2771 (struct tree_base): Remove SSA_NAME_ANTI_RANGE_P documentation.
2772 (struct tree_ssa_name): Add vrange_storage support.
2773 * tree-ssanames.cc (range_info_p): New.
2774 (range_info_fits_p): New.
2775 (range_info_alloc): New.
2776 (range_info_free): New.
2777 (range_info_get_range): New.
2778 (range_info_set_range): New.
2779 (set_range_info_raw): Remove.
2780 (set_range_info): Adjust to use vrange_storage.
2781 (set_nonzero_bits): Same.
2782 (get_nonzero_bits): Same.
2783 (duplicate_ssa_name_range_info): Remove overload taking
2784 value_range_kind.
2785 Rewrite tree overload to use vrange_storage.
2786 (duplicate_ssa_name_fn): Adjust to use vrange_storage.
2787 * tree-ssanames.h (struct range_info_def): Remove.
2788 (set_range_info): Adjust prototype to take vrange.
2789 * tree-vrp.cc (vrp_asserts::remove_range_assertions): Call
2790 duplicate_ssa_name_range_info.
2791 * tree.h (SSA_NAME_ANTI_RANGE_P): Remove.
2792 (SSA_NAME_RANGE_TYPE): Remove.
2793 * value-query.cc (get_ssa_name_range_info): Adjust to use
2794 vrange_storage.
2795 (update_global_range): Remove.
2796 (get_range_global): Remove as_a<irange>.
2797 * value-query.h (update_global_range): Remove.
2798 * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges):
2799 Rename update_global_range to set_range_info.
2800 * value-range-storage.cc (vrange_storage::alloc_slot): Remove
2801 gcc_unreachable.
2802
2803 2022-07-10 Aldy Hernandez <aldyh@redhat.com>
2804
2805 * value-range.cc (irange::operator=): Call verify_range.
2806 (irange::irange_set): Normalize kind after everything else has
2807 been set.
2808 (irange::irange_set_anti_range): Same.
2809 (irange::set): Same.
2810 (irange::verify_range): Disallow nonzero masks for VARYING.
2811 (irange::irange_union): Call verify_range.
2812 Handle nonzero masks better.
2813 (irange::irange_intersect): Same.
2814 (irange::set_nonzero_bits): Calculate mask if either range has an
2815 explicit mask.
2816 (irange::intersect_nonzero_bits): Same.
2817 (irange::union_nonzero_bits): Same.
2818 (range_tests_nonzero_bits): New.
2819 (range_tests): Call range_tests_nonzero_bits.
2820 * value-range.h (class irange): Remove set_nonzero_bits method
2821 with trees.
2822 (irange::varying_compatible_p): Set nonzero mask.
2823
2824 2022-07-10 Xi Ruoyao <xry111@xry111.site>
2825
2826 * config/loongarch/loongarch.md (<any_div>di3_fake): Describe
2827 the sign-extend of result in the RTL template.
2828 (<any_div><mode>3): Adjust for <any_div>di3_fake change.
2829
2830 2022-07-10 Xi Ruoyao <xry111@xry111.site>
2831
2832 * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
2833 Remove static, for use in the machine description file.
2834 * config/loongarch/loongarch-protos.h:
2835 (loongarch_check_zero_div_p): Add prototype.
2836 * config/loongarch/loongarch.md (enabled): New attr.
2837 (*<optab><mode>3): Add (=r,r,r) and (=&r,0,r) alternatives for
2838 idiv. Conditionally enable the alternatives using
2839 loongarch_check_zero_div_p.
2840 (<optab>di3_fake): Likewise.
2841
2842 2022-07-10 Xi Ruoyao <xry111@xry111.site>
2843
2844 * config/loongarch/loongarch.md (mulsidi3_64bit): Use mulw.d.w
2845 instead of mul.d.
2846
2847 2022-07-09 Aldy Hernandez <aldyh@redhat.com>
2848
2849 * value-range.cc (irange::irange_single_pair_union): Set
2850 VR_VARYING when appropriate.
2851
2852 2022-07-09 Vit Kabele <vit.kabele@sysgo.com>
2853
2854 * stor-layout.cc (finalize_record_size): Extend warning message.
2855
2856 2022-07-09 Sam Feifer <sfeifer@redhat.com>
2857
2858 PR tree-optimization/98304
2859 * match.pd (n - (((n > C1) ? n : C1) & -C2)): New simplification.
2860
2861 2022-07-09 Jeff Law <jeffreyalaw@gmail.com>
2862
2863 * expr.cc (store_expr): Identify trailing NULs in a STRING_CST
2864 initializer and use clear_storage rather than copying the
2865 NULs to the destination array.
2866
2867 2022-07-09 Roger Sayle <roger@nextmovesoftware.com>
2868
2869 * config/i386/i386.md (define_peephole2): Use match_operand of
2870 flags_reg_operand to capture and preserve the mode of FLAGS_REG.
2871 (define_peephole2): Likewise.
2872 (define_peephole2): Likewise...
2873
2874 2022-07-09 Roger Sayle <roger@nextmovesoftware.com>
2875
2876 * config/i386/i386-features.cc (convert_compare): Add support
2877 for *testdi_not_doubleword pattern, "(compare (and (not ...)))"
2878 by generating a pandn followed by ptest.
2879 (convertible_comparison_p): Recognize both *cmpdi_doubleword and
2880 recent *testdi_not_doubleword comparison patterns.
2881
2882 2022-07-09 Tamar Christina <tamar.christina@arm.com>
2883
2884 * config/s390/s390.cc (s390_expand_atomic): Pass false to store_bit_field to
2885 indicate that the value is not undefined.
2886
2887 2022-07-09 Andrew Pinski <apinski@marvell.com>
2888
2889 PR tree-optimization/106087
2890 * tree-ssa-dce.cc (simple_dce_from_worklist): Check
2891 to make sure the statement is only defining one operand.
2892
2893 2022-07-08 Lewis Hyatt <lhyatt@gmail.com>
2894
2895 PR preprocessor/91733
2896 * input.cc (find_end_of_line): New helper function.
2897 (file_cache_slot::get_next_line): Recognize \r as a line ending.
2898 * diagnostic-show-locus.cc (test_escaping_bytes_1): Adapt selftest
2899 since \r will now be interpreted as a line-ending.
2900
2901 2022-07-08 Martin Liska <mliska@suse.cz>
2902
2903 PR sanitizer/106132
2904 * opts.cc (finish_options): Use 2 calls to
2905 report_conflicting_sanitizer_options.
2906
2907 2022-07-08 Richard Biener <rguenther@suse.de>
2908
2909 PR tree-optimization/106226
2910 * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
2911 no SSA update is needed. Move virtual SSA update ...
2912 * tree-vectorizer.cc (pass_vectorize::execute): ... here,
2913 via forced virtual renaming when TODO_update_ssa_only_virtuals
2914 is queued.
2915 (vect_transform_loops): Return TODO_update_ssa_only_virtuals
2916 when virtual SSA update is required.
2917 (try_vectorize_loop_1): Adjust.
2918 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Allow
2919 virtual renaming if the ABI forces an aggregate return
2920 but the original call did not have a virtual definition.
2921
2922 2022-07-08 Martin Liska <mliska@suse.cz>
2923
2924 * toplev.cc (init_asm_output): Do not init asm_out_file.
2925
2926 2022-07-08 Tamar Christina <tamar.christina@arm.com>
2927
2928 PR tree-optimization/106063
2929 * match.pd: Do not apply pattern after veclower is not supported.
2930
2931 2022-07-08 Thomas Schwinge <thomas@codesourcery.com>
2932
2933 * lto-cgraph.cc (input_offload_tables) <LTO_symtab_edge>: Correct
2934 'fn2' computation.
2935
2936 2022-07-08 Tamar Christina <tamar.christina@arm.com>
2937
2938 * expmed.cc (store_bit_field_1): Add parameter that indicates if value is
2939 still undefined and if so emit a subreg move instead.
2940 (store_integral_bit_field): Likewise.
2941 (store_bit_field): Likewise.
2942 * expr.h (write_complex_part): Likewise.
2943 * expmed.h (store_bit_field): Add new parameter.
2944 * builtins.cc (expand_ifn_atomic_compare_exchange_into_call): Use new
2945 parameter.
2946 (expand_ifn_atomic_compare_exchange): Likewise.
2947 * calls.cc (store_unaligned_arguments_into_pseudos): Likewise.
2948 * emit-rtl.cc (validate_subreg): Likewise.
2949 * expr.cc (emit_group_store): Likewise.
2950 (copy_blkmode_from_reg): Likewise.
2951 (copy_blkmode_to_reg): Likewise.
2952 (clear_storage_hints): Likewise.
2953 (write_complex_part): Likewise.
2954 (emit_move_complex_parts): Likewise.
2955 (expand_assignment): Likewise.
2956 (store_expr): Likewise.
2957 (store_field): Likewise.
2958 (expand_expr_real_2): Likewise.
2959 * ifcvt.cc (noce_emit_move_insn): Likewise.
2960 * internal-fn.cc (expand_arith_set_overflow): Likewise.
2961 (expand_arith_overflow_result_store): Likewise.
2962 (expand_addsub_overflow): Likewise.
2963 (expand_neg_overflow): Likewise.
2964 (expand_mul_overflow): Likewise.
2965 (expand_arith_overflow): Likewise.
2966
2967 2022-07-08 Haochen Jiang <haochen.jiang@intel.com>
2968
2969 PR target/106180
2970 * config/i386/sse.md (sse2_cvtps2pd<mask_name>_1):
2971 Rename from *sse2_cvtps2pd<mask_name>_1.
2972 (vec_unpacks_lo_v4sf): Add handler for memory operand.
2973
2974 2022-07-08 Lulu Cheng <chenglulu@loongson.cn>
2975
2976 * config/loongarch/loongarch.cc (loongarch_compute_frame_info):
2977 Modify fp_sp_offset and gp_sp_offset's calculation method,
2978 when frame->mask or frame->fmask is zero, don't minus UNITS_PER_WORD
2979 or UNITS_PER_FP_REG.
2980
2981 2022-07-07 David Malcolm <dmalcolm@redhat.com>
2982
2983 * diagnostic-format-json.cc (json_from_location_range): Update for
2984 removal of label_text::maybe_free in favor of automatic memory
2985 management.
2986 * diagnostic-format-sarif.cc
2987 (sarif_builder::make_location_object): Likewise.
2988 * diagnostic-show-locus.cc (struct pod_label_text): New.
2989 (class line_label): Convert m_text from label_text to pod_label_text.
2990 (layout::print_any_labels): Move "text" to the line_label.
2991 * tree-diagnostic-path.cc (path_label::get_text): Update for
2992 removal of label_text::maybe_free in favor of automatic memory
2993 management.
2994 (event_range::print): Likewise.
2995 (default_tree_diagnostic_path_printer): Likewise.
2996 (default_tree_make_json_for_path): Likewise.
2997
2998 2022-07-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2999
3000 * statistics.cc (get_function_name): Add check to see if fn is not NULL.
3001
3002 2022-07-07 Richard Biener <rguenther@suse.de>
3003
3004 * tree-into-ssa.cc (iterating_old_ssa_names): New.
3005 (add_new_name_mapping): Grow {new,old}_ssa_names separately
3006 and only when actually needed. Assert we are not growing
3007 the old_ssa_names set when iterating over it.
3008 (update_ssa): Remove old_ssa_names copying and empty_p
3009 query, note we are iterating over it and expect no set changes.
3010
3011 2022-07-07 Thomas Schwinge <thomas@codesourcery.com>
3012
3013 * config/i386/intelmic-mkoffload.cc (generate_host_descr_file)
3014 (prepare_target_image, main): Handle OpenMP 'requires'.
3015 (generate_host_descr_file): Switch to 'GOMP_offload_register_ver',
3016 'GOMP_offload_unregister_ver'.
3017
3018 2022-07-07 Richard Biener <rguenther@suse.de>
3019
3020 PR target/106219
3021 * config/i386/i386-builtins.cc (ix86_add_new_builtins): Properly
3022 set DECL_PURE_P.
3023
3024 2022-07-07 Richard Biener <rguenther@suse.de>
3025
3026 * tree-ssa-loop-manip.cc (add_exit_phis_var): Return the
3027 number of LC PHIs inserted.
3028 (add_exit_phis): Return whether any variable required
3029 multiple LC PHI nodes.
3030 (rewrite_into_loop_closed_ssa_1): Use TODO_update_ssa_no_phi
3031 when possible.
3032
3033 2022-07-07 Richard Biener <rguenther@suse.de>
3034
3035 * tree-ssa-loop-manip.cc (compute_live_loop_exits): Take
3036 the def loop exit block bitmap as argument instead of
3037 re-computing it here.
3038 (add_exit_phis_var): Adjust.
3039 (loop_name_cmp): New function.
3040 (add_exit_phis): Sort variables to insert LC PHI nodes
3041 after definition loop, for each definition loop compute
3042 the exit block bitmap once.
3043 (get_loops_exit): Remove.
3044 (rewrite_into_loop_closed_ssa_1): Do not pre-record
3045 all loop exit blocks into bitmaps. Record loop exits
3046 if required.
3047
3048 2022-07-07 Dimitrije Milosevic <Dimitrije.Milosevic@Syrmia.com>
3049
3050 * config/mips/mips.cc (mips_asan_shadow_offset): Reformat
3051 to handle the N32 ABI.
3052 * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Remove
3053 the macro, as it is not needed anymore.
3054
3055 2022-07-06 Thomas Schwinge <thomas@codesourcery.com>
3056
3057 * config/gcn/mkoffload.cc (process_obj): Clarify 'target_data' ->
3058 '[...]_data'.
3059 * config/nvptx/mkoffload.cc (process): Likewise.
3060
3061 2022-07-06 Thomas Schwinge <thomas@codesourcery.com>
3062
3063 * omp-general.h (enum omp_requires): Use 'GOMP_REQUIRES_[...]'.
3064
3065 2022-07-05 Andrew MacLeod <amacleod@redhat.com>
3066
3067 * value-relation.cc (relation_to_code): New vector.
3068 (relation_oracle::validate_relation): New.
3069 (set_relation): Allow ssa1 == ssa2 to be registered.
3070 * value-relation.h (validate_relation): New prototype.
3071 (query_relation): Make internal variant protected.
3072
3073 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
3074
3075 * config/i386/i386.cc (ix86_rtx_costs) <COMPARE>: Provide costs
3076 for double word comparisons and tests (comparisons against zero).
3077 * config/i386/i386.md (*test<mode>_not_doubleword): Split DWI
3078 and;cmp into andn;cmp $0 as a pre-reload splitter.
3079 (*andn<dwi>3_doubleword_bmi): Use <dwi> instead of <mode> in name.
3080 (*<any_or><dwi>3_doubleword): Likewise.
3081
3082 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
3083 Hongtao Liu <hongtao.liu@intel.com>
3084
3085 * config/i386/i386-builtin.def (__builtin_ia32_palignr128): Change
3086 CODE_FOR_ssse3_palignrti to CODE_FOR_ssse3_palignrv1ti.
3087 * config/i386/i386-expand.cc (expand_vec_perm_palignr): Use V1TImode
3088 and gen_ssse3_palignv1ti instead of TImode.
3089 * config/i386/sse.md (SSESCALARMODE): Delete.
3090 (define_mode_attr ssse3_avx2): Handle V1TImode instead of TImode.
3091 (<ssse3_avx2>_palignr<mode>): Use VIMAX_AVX2_AVX512BW as a mode
3092 iterator instead of SSESCALARMODE.
3093 (ssse3_palignrdi): Optimize cases where operands[3] is 0 or 64,
3094 using a single move instruction (if required).
3095
3096 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
3097 Uroš Bizjak <ubizjak@gmail.com>
3098
3099 PR rtl-optimization/96692
3100 * config/i386/i386.md (define_split): Split ((A | B) ^ C) ^ D
3101 as (X & ~Y) ^ Z on target BMI when either C or D is A or B.
3102
3103 2022-07-05 Richard Biener <rguenther@suse.de>
3104
3105 PR tree-optimization/106198
3106 * tree-cfgcleanup.cc (repair_loop_structures): Always do a
3107 full LC SSA rewrite but only if any blocks changed loop
3108 depth.
3109
3110 2022-07-05 Richard Biener <rguenther@suse.de>
3111
3112 * tree-ssa-loop-manip.cc (find_uses_to_rename_def): Remove.
3113 (find_uses_to_rename_in_loop): Likewise.
3114 (rewrite_into_loop_closed_ssa_1): Remove loop parameter and
3115 uses.
3116 (rewrite_into_loop_closed_ssa): Adjust.
3117
3118 2022-07-05 Richard Biener <rguenther@suse.de>
3119
3120 PR tree-optimization/106186
3121 * tree-ssa-propagate.cc (clean_up_loop_closed_phi):
3122 Properly handle virtual PHI nodes.
3123
3124 2022-07-05 Richard Biener <rguenther@suse.de>
3125
3126 PR tree-optimization/106196
3127 * tree-vect-stmts.cc (vect_finish_stmt_generation): Properly
3128 handle aggregate returns of calls for VDEF updates.
3129
3130 2022-07-05 Richard Biener <rguenther@suse.de>
3131
3132 * tree-vect-loop-manip.cc (vect_set_loop_condition_normal):
3133 Maintain LC SSA.
3134
3135 2022-07-05 Richard Sandiford <richard.sandiford@arm.com>
3136
3137 * tree-vect-patterns.cc (vect_convert_input): Expect the input
3138 type to be signed for optab_vector_mixed_sign. Update the vectype
3139 at the same time as type.
3140 (vect_recog_dot_prod_pattern): Update accordingly. If usdot isn't
3141 available, try sdot instead.
3142 * tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): New function.
3143 (vect_model_reduction_cost): Model the cost of implementing usdot
3144 using sdot.
3145 (vectorizable_reduction): Likewise. Skip target support test
3146 for lane reductions.
3147 (vect_emulate_mixed_dot_prod): New function.
3148 (vect_transform_reduction): Use it to emulate usdot via sdot.
3149
3150 2022-07-05 Richard Biener <rguenther@suse.de>
3151
3152 PR tree-optimization/106182
3153 * loop-init.cc (fix_loop_structure): Return the number
3154 of newly discovered plus the number of deleted loops.
3155 * tree-cfgcleanup.cc (repair_loop_structures): Adjust
3156 variable name.
3157
3158 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
3159
3160 * gimple-range-fold.cc
3161 (fold_using_range::range_of_ssa_name_with_loop_info): Restrict the
3162 call to SCEV for irange supported types.
3163 (fold_using_range::range_of_builtin_int_call): Convert to vrange.
3164 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Same.
3165 * tree-ssa-dom.cc (cprop_operand): Same.
3166
3167 2022-07-04 Roger Sayle <roger@nextmovesoftware.com>
3168
3169 PR target/104489
3170 * calls.cc (precompute_register_parameters): Allow promotion
3171 of floating point values to be passed in wider integer modes
3172 by calling new convert_float_to_wider_int.
3173 (expand_call): Allow floating point results to be returned in
3174 wider integer modes by calling new convert wider_int_to_float.
3175 * cfgexpand.cc (expand_value_return): Allow backends to promote
3176 a scalar floating point return value to a wider integer mode
3177 by calling new convert_float_to_wider_int.
3178 * expr.cc (convert_float_to_wider_int): New function.
3179 (convert_wider_int_to_float): Likewise.
3180 (expand_expr_real_1) <expand_decl_rtl>: Allow backends to promote
3181 scalar FP PARM_DECLs to wider integer modes, by calling new
3182 convert_wider_int_to_float.
3183 * expr.h (convert_modes): Name arguments for improved documentation.
3184 (convert_float_to_wider_int): Prototype new function here.
3185 (convert_wider_int_to_float): Likewise.
3186 * function.cc (assign_parm_setup_stack): Allow floating point
3187 values to be passed on the stack as wider integer modes by
3188 calling new convert_wider_int_to_float.
3189
3190 2022-07-04 Martin Jambor <mjambor@suse.cz>
3191
3192 PR tree-optimization/105860
3193 * tree-sra.cc (build_reconstructed_reference): Start expr
3194 traversal only just below the outermost union.
3195
3196 2022-07-04 Richard Biener <rguenther@suse.de>
3197
3198 * tree-vect-loop-manip.cc (vect_do_peeling): Revert assert
3199 and update virtual SSA form again. Assert we do so for
3200 a known set of transforms only.
3201 * tree-vectorizer.h (vec_info::any_known_not_updated_vssa): New.
3202 * tree-vect-stmts.cc (vectorizable_load): When vectorizing
3203 using load-lanes allow virtual SSA update.
3204
3205 2022-07-04 Tobias Burnus <tobias@codesourcery.com>
3206 Chung-Lin Tang <cltang@codesourcery.com>
3207 Thomas Schwinge <thomas@codesourcery.com>
3208
3209 * config/gcn/mkoffload.cc (process_asm): Write '#include <stdint.h>'.
3210 (process_obj): Pass omp_requires_mask to GOMP_offload_register_ver.
3211 (main): Ask lto1 to obtain omp_requires_mask and pass it on.
3212 * config/nvptx/mkoffload.cc (process, main): Likewise.
3213 * lto-cgraph.cc (omp_requires_to_name): New.
3214 (input_offload_tables): Save omp_requires_mask.
3215 (output_offload_tables): Read it, check for consistency,
3216 save value for mkoffload.
3217 * omp-low.cc (lower_omp_target): Force output_offloadtables
3218 call for OMP_REQUIRES_TARGET_USED.
3219
3220 2022-07-04 Richard Biener <rguenther@suse.de>
3221
3222 * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
3223 no SSA update is needed instead of updating virtual SSA
3224 form.
3225 * tree-vect-stmts.cc (vectorizable_load): For hoisted
3226 invariant load use the loop entry virtual use.
3227 For emulated gather loads use the virtual use of the
3228 original stmt like vect_finish_stmt_generation would do.
3229
3230 2022-07-04 Eric Botcazou <ebotcazou@adacore.com>
3231
3232 * tree-pretty-print.cc (dump_generic_node) <ARRAY_TYPE>: Add guard
3233 for direct circularity.
3234
3235 2022-07-04 Eric Botcazou <ebotcazou@adacore.com>
3236
3237 * dwarf2out.cc (gen_array_type_die): Use the default lower bound of
3238 the language for vector types.
3239
3240 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
3241
3242 * value-range-storage.cc (irange_storage_slot::set_irange): Set
3243 nonzero bits in irange.
3244 (irange_storage_slot::get_irange): Get nonzero bits from irange.
3245 * value-range.cc (irange::operator=): Set nonzero bits.
3246 (irange::irange_set): Same.
3247 (irange::irange_set_anti_range): Same.
3248 (irange::set): Same.
3249 (irange::verify_range): Same.
3250 (irange::legacy_equal_p): Check nonzero bits.
3251 (irange::equal_p): Same.
3252 (irange::contains_p): Handle nonzero bits.
3253 (irange::irange_union): Same.
3254 (irange::irange_intersect): Same.
3255 (irange::dump): Same.
3256 (irange::set_nonzero_bits): New.
3257 (irange::get_nonzero_bits): New.
3258 (irange::intersect_nonzero_bits): New.
3259 (irange::union_nonzero_bits): New.
3260 (irange::dump_bitmasks): New.
3261 * value-range.h (class irange): Add m_nonzero_mask.
3262 (gt_ggc_mx): Handle nonzero bits.
3263 (gt_pch_nx): Same.
3264 (irange::set_undefined): Set nonzero bits.
3265 (irange::set_varying): Same.
3266 (irange::normalize_kind): Call set_undefined.
3267
3268 2022-07-04 Richard Biener <rguenther@suse.de>
3269
3270 * tree-ssa-loop-manip.h
3271 (rewrite_virtuals_into_loop_closed_ssa): Remove.
3272 (rewrite_into_loop_closed_ssa_1): Likewise.
3273 * tree-ssa-loop-manip.cc (rewrite_into_loop_closed_ssa_1):
3274 Make static.
3275 (rewrite_into_loop_closed_ssa): Remove loop overload,
3276 always rewrite virtuals into LC SSA.
3277 (check_loop_closed_ssa_bb): Also check virtuals.
3278 * tree-ssa-dce.cc (remove_dead_phis): Preserve virtual
3279 LC PHIs when in LC SSA.
3280 * gimple-loop-jam.cc (fuse_loops): Do not rewrite into
3281 loop-closed SSA here, but ...
3282 (tree_loop_unroll_and_jam): ... here once.
3283 * tree-if-conv.cc (version_loop_for_if_conversion): Use
3284 the cheaper TODO_update_ssa_no_phi.
3285 * tree-loop-distribution.cc (version_loop_by_alias_check):
3286 Likewise.
3287 * tree-ssa-loop-unswitch.cc (tree_unswitch_single_loop):
3288 Likewise.
3289 * tree-vect-loop-manip.cc (vect_loop_versioning): Likewise.
3290 (tree_unswitch_outer_loop): Do not rewrite virtuals into
3291 LC ssa.
3292 * tree-parloops.cc (transform_to_exit_first_loop_alt):
3293 Likewise.
3294 (pass_parallelize_loops::execute): After finishing rewrite
3295 into LC SSA again because we do not maintain it properly.
3296
3297 2022-07-04 Richard Biener <rguenther@suse.de>
3298
3299 PR tree-optimization/106055
3300 * graphite.cc (canonicalize_loop_closed_ssa): Check whether
3301 we can propagate.
3302
3303 2022-07-04 Haochen Jiang <haochen.jiang@intel.com>
3304
3305 PR target/43618
3306 * config/i386/sse.md (extendv2sfv2df2): New define_expand.
3307 (sse2_cvtps2pd_<mask_name>): Change constraint of operands[1].
3308 (*sse2_cvtps2pd_<mask_name>_1): Rename from extendvsdfv2df2.
3309
3310 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
3311
3312 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use operator!=.
3313 * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same.
3314 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Use set
3315 with two arguments.
3316 (find_unswitching_predicates_for_bb): Same.
3317 * tree-vrp.cc (range_fold_unary_symbolics_p): Same.
3318 * value-range-equiv.cc (value_range_equiv::equal_p): Use operator==.
3319 * value-range.cc (irange::equal_p): Rename to...
3320 (irange::operator==): ...this.
3321 * value-range.h (irange::set): Remove.
3322 (irange::operator==): Remove.
3323 (irange::set_zero): Use set with two arguments.
3324 * vr-values.cc (vr_values::extract_range_from_binary_expr): Same.
3325 (vr_values::extract_range_from_unary_expr): Same.
3326 (check_for_binary_op_overflow): Same.
3327 (bounds_of_var_in_loop): Same.
3328
3329 2022-07-03 H.J. Lu <hjl.tools@gmail.com>
3330
3331 PR target/106022
3332 * config/i386/i386-protos.h (ix86_convert_const_vector_to_integer):
3333 New.
3334 * config/i386/i386.cc (ix86_convert_const_vector_to_integer):
3335 New.
3336 * config/i386/mmx.md (V_16_32_64): New.
3337 (*mov<mode>_imm): New patterns for stores with 16-bit, 32-bit
3338 and 64-bit constant vector.
3339 * config/i386/predicates.md (x86_64_const_vector_operand): New.
3340
3341 2022-07-03 Aldy Hernandez <aldyh@redhat.com>
3342
3343 * gimple-range-cache.cc: Include value-range-storage.h.
3344 * gimple-range-cache.h (class block_range_cache): Add "class" to
3345 m_range_allocator.
3346 * gimple-range-edge.cc
3347 (gimple_outgoing_range::gimple_outgoing_range): Allocate allocator.
3348 (gimple_outgoing_range::~gimple_outgoing_range): Free allocator.
3349 (gimple_outgoing_range::calc_switch_ranges): Dereference allocator.
3350 * gimple-range-edge.h: Add "class" to m_range_allocator.
3351 * gimple-range-infer.cc
3352 (infer_range_manager::infer_range_manager): Allocate allocator.
3353 (infer_range_manager::~infer_range_manager): Free allocator.
3354 (infer_range_manager::get_nonzero): Dereference allocator.
3355 (infer_range_manager::add_range): Same.
3356 * gimple-range-infer.h (class vrange_allocator): Add "class" to
3357 m_range_allocator.
3358 * value-range-storage.h (class vrange_allocator): Move from
3359 value-range.h.
3360 (class obstack_vrange_allocator): Same.
3361 (class ggc_vrange_allocator): Same.
3362 (vrange_allocator::alloc_vrange): Same.
3363 (vrange_allocator::alloc_irange): Same.
3364 * value-range.h (class vrange_allocator): Move to value-range-storage.h.
3365 (class obstack_vrange_allocator): Same.
3366 (class ggc_vrange_allocator): Same.
3367
3368 2022-07-03 Aldy Hernandez <aldyh@redhat.com>
3369
3370 * Makefile.in (OBJS): Add value-range-storage.o.
3371 (GTFILES): Add value-range-storage.h.
3372 * gengtype.cc (open_base_files): Add value-range-storage.h.
3373 * value-range-storage.cc: New file.
3374 * value-range-storage.h: New file.
3375
3376 2022-07-03 Xi Ruoyao <xry111@xry111.site>
3377 Lulu Cheng <chenglulu@loongson.cn>
3378
3379 * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
3380 New static function.
3381 (loongarch_idiv_insns): Use loongarch_check_zero_div_p instead
3382 of TARGET_CHECK_ZERO_DIV.
3383 (loongarch_output_division): Likewise.
3384 * common/config/loongarch/loongarch-common.cc
3385 (TARGET_DEFAULT_TARGET_FLAGS): Remove unneeded hook.
3386 * doc/invoke.texi: Update to match the new behavior.
3387
3388 2022-07-03 Ian Lance Taylor <iant@golang.org>
3389
3390 * tree-ssa-dse.cc (dse_optimize_stmt): Only delete a trapping
3391 statement if -fdelete-dead-exceptions.
3392
3393 2022-07-02 Tim Lange <mail@tim-lange.me>
3394
3395 PR analyzer/105900
3396 * doc/invoke.texi: Added Wanalyzer-allocation-size.
3397
3398 2022-07-02 Immad Mir <mirimmad17@gmail.com>
3399
3400 PR analyzer/106003
3401 * Makefile.in (ANALYZER_OBJS): Add sm-fd.o.
3402 * doc/invoke.texi: Add -Wanalyzer-fd-double-close, -Wanalyzer-fd-leak,
3403 -Wanalyzer-fd-access-mode-mismatch, -Wanalyzer-fd-use-without-check,
3404 -Wanalyzer-fd-use-after-close.
3405
3406 2022-07-01 Aldy Hernandez <aldyh@redhat.com>
3407
3408 * wide-int.h (struct trailing_wide_ints): Add m_num_elements.
3409 (trailing_wide_ints::set_precision): Add num_elements argument.
3410 (trailing_wide_ints::extra_size): Same.
3411
3412 2022-07-01 Uroš Bizjak <ubizjak@gmail.com>
3413
3414 * config/i386/i386.md (*andn<mode>3_doubleword_bmi):
3415 Use "r" constraint for operand 1.
3416
3417 2022-07-01 Richard Biener <rguenther@suse.de>
3418
3419 * tree-into-ssa.cc (rewrite_update_dom_walker::before_dom_children):
3420 Do not look at interesting_blocks which is a copy of
3421 blocks_to_update.
3422 (update_ssa): Do not initialize it.
3423 (pass_build_ssa::execute): Set interesting_blocks to NULL
3424 after releasing it.
3425
3426 2022-07-01 Richard Biener <rguenther@suse.de>
3427
3428 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Revert
3429 back to using maybe_ne (off, -1).
3430
3431 2022-07-01 Richard Biener <rguenther@suse.de>
3432
3433 * tree-ssa-sccvn.cc (vn_nary_op_insert_into): Make
3434 checking dominance check conditional on flag_checking.
3435
3436 2022-07-01 Tobias Burnus <tobias@codesourcery.com>
3437
3438 * config/gcn/gcn-protos.h (print_operand_address): Remove register
3439 keyword on 'rtx addr' argument.
3440
3441 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
3442 Uroš Bizjak <ubizjak@gmail.com>
3443
3444 * config/i386/i386.md (*andn<mode>3_doubleword_bmi): Add constraints
3445 to post-reload define_insn_and_split.
3446
3447 2022-07-01 Jakub Jelinek <jakub@redhat.com>
3448
3449 PR middle-end/106144
3450 * wide-int.cc (wi::shifted_mask): If end >= prec, return right after
3451 emitting element for shift or if shift is 0 first element after start.
3452 (wide_int_cc_tests): Add tests for equivalency of wi::mask and
3453 wi::shifted_mask with 0 start.
3454
3455 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
3456
3457 PR target/106122
3458 * config/i386/i386.md (peephole2): Avoid generating pop %esp
3459 when optimizing for size.
3460
3461 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
3462 Uroš Bizjak <ubizjak@gmail.com>
3463
3464 * config/i386/i386.md (general_szext_operand): Add TImode
3465 support using x86_64_hilo_general_operand predicate.
3466 (*cmp<dwi>_doubleword): Use x86_64_hilo_general_operand predicate.
3467 (*add<dwi>3_doubleword): Improved optimization of zero addition.
3468 (and<mode>3): Use SDWIM mode iterator to add support for double
3469 word bit-wise AND in TImode. Use force_reg when double word
3470 immediate operand isn't x86_64_hilo_general_operand.
3471 (and<dwi>3_doubleword): Generalized from anddi3_doubleword and
3472 converted into a post-reload splitter.
3473 (*andndi3_doubleword): Previous define_insn deleted.
3474 (*andn<mode>3_doubleword_bmi): New define_insn_and_split for
3475 TARGET_BMI that splits post-reload.
3476 (*andn<mode>3_doubleword): New define_insn_and_split for
3477 !TARGET_BMI, that lowers/splits before reload.
3478 (<any_or><mode>3): Use SDWIM mode iterator to add suppport for
3479 double word bit-wise XOR and bit-wise IOR in TImode. Use
3480 force_reg when double word immediate operand isn't
3481 x86_64_hilo_general_operand.
3482 (*<any_or>di3_doubleword): Generalized from <any_or>di3_doubleword.
3483 (one_cmpl<mode>2): Use SDWIM mode iterator to add support for
3484 double word bit-wise NOT in TImode.
3485 (one_cmpl<dwi>2_doubleword): Generalize from one_cmpldi2_doubleword
3486 and converted into a post-reload splitter.
3487
3488 2022-07-01 Eric Botcazou <ebotcazou@adacore.com>
3489
3490 PR middle-end/105874
3491 * expr.cc (expand_expr_real_1) <normal_inner_ref>: Force
3492 EXPAND_MEMORY for the expansion of the inner reference only
3493 in the usual cases where a memory reference is required.
3494
3495 2022-07-01 Richard Biener <rguenther@suse.de>
3496
3497 PR tree-optimization/106131
3498 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Force alias-set
3499 zero when offsetting the read looking through an aggregate
3500 copy.
3501
3502 2022-07-01 Martin Liska <mliska@suse.cz>
3503
3504 PR tree-optimization/106126
3505 * gimple-if-to-switch.cc (struct condition_info): Save
3506 has_side_effect.
3507 (find_conditions): Parse all BBs.
3508 (pass_if_to_switch::execute): Allow only side effects for first
3509 BB.
3510
3511 2022-07-01 Haochen Jiang <haochen.jiang@intel.com>
3512
3513 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AVX512F_UNSET):
3514 Add OPTION_MASK_ISA2_AVX512BW_UNSET, remove
3515 OPTION_MASK_ISA2_AVX512BF16_UNSET and
3516 OPTION_MASK_ISA2_AVX512FP16_UNSET.
3517
3518 2022-06-30 Joseph Myers <joseph@codesourcery.com>
3519
3520 PR lto/106129
3521 * lto-wrapper.cc (find_option): Add argument start.
3522 (merge_and_complain): Loop over existing_opt_index and
3523 existing_opt2_index for Xassembler check. Update calls to
3524 find_option.
3525 (find_and_merge_options): Add argument first to determine whether
3526 to merge options with those passed in *opts.
3527 (run_gcc): Update calls to find_and_merge_options.
3528
3529 2022-06-30 Aldy Hernandez <aldyh@redhat.com>
3530
3531 * gimple-range-cache.cc (block_range_cache::block_range_cache):
3532 Rename vrange_allocator to obstack_vrange_allocator.
3533 (ssa_global_cache::ssa_global_cache): Same.
3534 * gimple-range-edge.h (class gimple_outgoing_range): Same.
3535 * gimple-range-infer.h (class infer_range_manager): Same.
3536 * value-range.h (class vrange_allocator): Make abstract.
3537 (class obstack_vrange_allocator): Inherit from vrange_allocator.
3538 (class ggc_vrange_allocator): New.
3539
3540 2022-06-30 Roger Sayle <roger@nextmovesoftware.com>
3541 Uroš Bizjak <ubizjak@gmail.com>
3542
3543 * config/i386/i386.md (swap_mode): Rename from *swap<mode> to
3544 provide gen_swapsi.
3545 (<any_rotate>di3): Handle !TARGET_64BIT rotations by 32 bits
3546 via new gen_<insn>32di2_doubleword below.
3547 (<anyrotate>32di2_doubleword): New define_insn_and_split
3548 that splits after reload as either a pair of move instructions
3549 or an xchgl (using gen_swapsi).
3550
3551 2022-06-30 Richard Biener <rguenther@suse.de>
3552
3553 * domwalk.h (dom_walker::dom_walker): Update comment to
3554 reflect reality and new special argument value for
3555 bb_index_to_rpo.
3556 * domwalk.cc (dom_walker::dom_walker): Recognize -1
3557 bb_index_to_rpo.
3558 * tree-into-ssa.cc
3559 (rewrite_update_dom_walker::rewrite_update_dom_walker): Tell
3560 dom_walker to not use RPO.
3561
3562 2022-06-30 Martin Liska <mliska@suse.cz>
3563
3564 * tree-ssa-dom.cc (pass_dominator::execute): Remove m_ranger as
3565 it is unused.
3566
3567 2022-06-30 Andrew MacLeod <amacleod@redhat.com>
3568
3569 PR tree-optimization/106114
3570 * gimple-range-fold.cc (fold_using_range::relation_fold_and_or): Check
3571 statement operands instead of GORI cache.
3572
3573 2022-06-30 Antoni Boucher <bouanto@zoho.com>
3574
3575 PR target/106095
3576 * config/i386/sse.md: Fix asm generation.
3577
3578 2022-06-29 Sergei Trofimovich <siarheit@google.com>
3579
3580 PR c++/106102
3581 * system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
3582
3583 2022-06-29 Joseph Myers <joseph@codesourcery.com>
3584
3585 * config/nios2/nios2.cc (nios2_load_pic_address): Use gen_rtx_MEM
3586 not gen_const_mem for UNSPEC_PIC_CALL_SYM.
3587
3588 2022-06-29 Richard Biener <rguenther@suse.de>
3589
3590 PR rtl-optimization/106082
3591 * combine.cc (distribute_notes): Preserve notes when
3592 they indicate a call doesn't perform a non-local goto.
3593
3594 2022-06-29 Richard Biener <rguenther@suse.de>
3595
3596 PR tree-optimization/106112
3597 * tree-ssa-sccvn.cc (valueized_wider_op): Properly extend
3598 a constant operand according to its type.
3599
3600 2022-06-29 Martin Liska <mliska@suse.cz>
3601
3602 * doc/invoke.texi: Remove removed evrp-mode.
3603
3604 2022-06-29 Lulu Cheng <chenglulu@loongson.cn>
3605
3606 PR target/106097
3607 * config/loongarch/loongarch.cc (loongarch_build_integer):
3608 Remove undefined behavior from code.
3609
3610 2022-06-28 Dimitar Dimitrov <dimitar@dinux.eu>
3611
3612 * doc/sourcebuild.texi: Document new no_alignment_constraints
3613 effective target check.
3614
3615 2022-06-28 Aldy Hernandez <aldyh@redhat.com>
3616
3617 * Makefile.in: Remove gimple-ssa-evrp.o and gimple-ssa-evrp-analyze.o.
3618 * flag-types.h (enum evrp_mode): Remove.
3619 * params.opt: Remove --param=evrp-mode.
3620 * tree-vrp.cc (make_pass_early_vrp): New.
3621 (pass_vrp::execute): Call early VRP instance.
3622 * gimple-ssa-evrp-analyze.cc: Removed.
3623 * gimple-ssa-evrp-analyze.h: Removed.
3624 * gimple-ssa-evrp.cc: Removed.
3625
3626 2022-06-28 Alexandre Oliva <oliva@adacore.com>
3627
3628 * Makefile.in (TFLAGS): New.
3629 (GCC_FOR_TARGET): Add TFLAGS.
3630 (FLAGS_TO_PASS): Pass TFLAGS down.
3631
3632 2022-06-28 Richard Biener <rguenther@suse.de>
3633
3634 * tree-ssa-loop-split.cc (fix_loop_bb_probability): Do not
3635 call update_ssa.
3636
3637 2022-06-28 Richard Biener <rguenther@suse.de>
3638
3639 * tree-into-ssa.cc (insert_updated_phi_nodes_for): Use
3640 mark_block_for_update.
3641 (update_ssa): Adjust.
3642
3643 2022-06-28 Xi Ruoyao <xry111@xry111.site>
3644
3645 PR target/106096
3646 * config/loongarch/loongarch.h (REG_CLASS_CONTENTS): Exclude
3647 $r13 from SIBCALL_REGS.
3648 * config/loongarch/loongarch.cc (loongarch_regno_to_class):
3649 Change $r13 to JIRL_REGS.
3650
3651 2022-06-28 Aldy Hernandez <aldyh@redhat.com>
3652
3653 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Remove
3654 irange::supports_p.
3655
3656 2022-06-28 Richard Biener <rguenther@suse.de>
3657
3658 PR middle-end/106053
3659 * match.pd ((T)a == (T)b): Avoid folding away sign
3660 changes in a comparison if we'd truncate to a boolean.
3661
3662 2022-06-28 Kewen Lin <linkw@linux.ibm.com>
3663
3664 * config/rs6000/rs6000.md (*rotl<mode>3_insert_4): Replace mode
3665 iterator GPR with SImode, adjust the condition and output template,
3666 rename to ...
3667 (*rotlsi3_insert_4): ... this.
3668
3669 2022-06-27 David Malcolm <dmalcolm@redhat.com>
3670
3671 * genmatch.cc: Add "final" and "override" to various vfunc
3672 implementations, removing redundant "virtual" as appropriate.
3673 * gensupport.cc: Likewise.
3674 * gimple-range-cache.h: Likewise.
3675 * ipa-icf-gimple.h: Likewise.
3676 * ipa-icf.h: Likewise.
3677 * read-md.h: Likewise.
3678 * read-rtl-function.cc: Likewise.
3679 * tree-ssa-loop-ch.cc: Likewise.
3680 * tree-ssa-sccvn.cc: Likewise.
3681
3682 2022-06-27 David Malcolm <dmalcolm@redhat.com>
3683
3684 * config/i386/i386-features.h: Add "final" and "override" to
3685 scalar_chain vfunc implementations as appropriate.
3686
3687 2022-06-27 David Malcolm <dmalcolm@redhat.com>
3688
3689 * tree-switch-conversion.h: Add "final" and "override" to cluster
3690 vfunc implementations as appropriate.
3691
3692 2022-06-27 David Malcolm <dmalcolm@redhat.com>
3693
3694 * expr.cc: Add "final" and "override" to op_by_pieces_d vfunc
3695 implementations as appropriate.
3696
3697 2022-06-27 David Malcolm <dmalcolm@redhat.com>
3698
3699 * compare-elim.cc: Add "final" and "override" to dom_walker vfunc
3700 implementations, removing redundant "virtual" as appropriate.
3701 * gimple-ssa-strength-reduction.cc: Likewise.
3702 * ipa-prop.cc: Likewise.
3703 * rtl-ssa/blocks.cc: Likewise.
3704 * tree-into-ssa.cc: Likewise.
3705 * tree-ssa-dom.cc: Likewise.
3706 * tree-ssa-math-opts.cc: Likewise.
3707 * tree-ssa-phiopt.cc: Likewise.
3708 * tree-ssa-propagate.cc: Likewise.
3709 * tree-ssa-sccvn.cc: Likewise.
3710 * tree-ssa-strlen.cc: Likewise.
3711 * tree-ssa-uncprop.cc: Likewise.
3712
3713 2022-06-27 David Malcolm <dmalcolm@redhat.com>
3714
3715 * adjust-alignment.cc: Add "final" and "override" to opt_pass
3716 vfunc implementations, removing redundant "virtual" as
3717 appropriate.
3718 * asan.cc: Likewise.
3719 * auto-inc-dec.cc: Likewise.
3720 * auto-profile.cc: Likewise.
3721 * bb-reorder.cc: Likewise.
3722 * cfgcleanup.cc: Likewise.
3723 * cfgexpand.cc: Likewise.
3724 * cfgrtl.cc: Likewise.
3725 * cgraphbuild.cc: Likewise.
3726 * combine-stack-adj.cc: Likewise.
3727 * combine.cc: Likewise.
3728 * compare-elim.cc: Likewise.
3729 * config/i386/i386-features.cc: Likewise.
3730 * coroutine-passes.cc: Likewise.
3731 * cprop.cc: Likewise.
3732 * cse.cc: Likewise.
3733 * dce.cc: Likewise.
3734 * df-core.cc: Likewise.
3735 * dse.cc: Likewise.
3736 * dwarf2cfi.cc: Likewise.
3737 * early-remat.cc: Likewise.
3738 * except.cc: Likewise.
3739 * final.cc: Likewise.
3740 * function.cc: Likewise.
3741 * fwprop.cc: Likewise.
3742 * gcse.cc: Likewise.
3743 * gimple-harden-conditionals.cc: Likewise.
3744 * gimple-if-to-switch.cc: Likewise.
3745 * gimple-isel.cc: Likewise.
3746 * gimple-laddress.cc: Likewise.
3747 * gimple-loop-interchange.cc: Likewise.
3748 * gimple-loop-jam.cc: Likewise.
3749 * gimple-loop-versioning.cc: Likewise.
3750 * gimple-low.cc: Likewise.
3751 * gimple-ssa-backprop.cc: Likewise.
3752 * gimple-ssa-evrp.cc: Likewise.
3753 * gimple-ssa-isolate-paths.cc: Likewise.
3754 * gimple-ssa-nonnull-compare.cc: Likewise.
3755 * gimple-ssa-split-paths.cc: Likewise.
3756 * gimple-ssa-store-merging.cc: Likewise.
3757 * gimple-ssa-strength-reduction.cc: Likewise.
3758 * gimple-ssa-warn-access.cc: Likewise.
3759 * gimple-ssa-warn-alloca.cc: Likewise.
3760 * gimple-ssa-warn-restrict.cc: Likewise.
3761 * gimple-warn-recursion.cc: Likewise.
3762 * graphite.cc: Likewise.
3763 * ifcvt.cc: Likewise.
3764 * init-regs.cc: Likewise.
3765 * ipa-comdats.cc: Likewise.
3766 * ipa-cp.cc: Likewise.
3767 * ipa-devirt.cc: Likewise.
3768 * ipa-fnsummary.cc: Likewise.
3769 * ipa-free-lang-data.cc: Likewise.
3770 * ipa-icf.cc: Likewise.
3771 * ipa-inline.cc: Likewise.
3772 * ipa-modref.cc: Likewise.
3773 * ipa-profile.cc: Likewise.
3774 * ipa-pure-const.cc: Likewise.
3775 * ipa-reference.cc: Likewise.
3776 * ipa-split.cc: Likewise.
3777 * ipa-sra.cc: Likewise.
3778 * ipa-visibility.cc: Likewise.
3779 * ipa.cc: Likewise.
3780 * ira.cc: Likewise.
3781 * jump.cc: Likewise.
3782 * loop-init.cc: Likewise.
3783 * lower-subreg.cc: Likewise.
3784 * mode-switching.cc: Likewise.
3785 * modulo-sched.cc: Likewise.
3786 * multiple_target.cc: Likewise.
3787 * omp-expand.cc: Likewise.
3788 * omp-low.cc: Likewise.
3789 * omp-oacc-kernels-decompose.cc: Likewise.
3790 * omp-oacc-neuter-broadcast.cc: Likewise.
3791 * omp-offload.cc: Likewise.
3792 * omp-simd-clone.cc: Likewise.
3793 * passes.cc: Likewise.
3794 * postreload-gcse.cc: Likewise.
3795 * postreload.cc: Likewise.
3796 * predict.cc: Likewise.
3797 * recog.cc: Likewise.
3798 * ree.cc: Likewise.
3799 * reg-stack.cc: Likewise.
3800 * regcprop.cc: Likewise.
3801 * reginfo.cc: Likewise.
3802 * regrename.cc: Likewise.
3803 * reorg.cc: Likewise.
3804 * sancov.cc: Likewise.
3805 * sanopt.cc: Likewise.
3806 * sched-rgn.cc: Likewise.
3807 * stack-ptr-mod.cc: Likewise.
3808 * store-motion.cc: Likewise.
3809 * tracer.cc: Likewise.
3810 * trans-mem.cc: Likewise.
3811 * tree-call-cdce.cc: Likewise.
3812 * tree-cfg.cc: Likewise.
3813 * tree-cfgcleanup.cc: Likewise.
3814 * tree-complex.cc: Likewise.
3815 * tree-eh.cc: Likewise.
3816 * tree-emutls.cc: Likewise.
3817 * tree-if-conv.cc: Likewise.
3818 * tree-into-ssa.cc: Likewise.
3819 * tree-loop-distribution.cc: Likewise.
3820 * tree-nrv.cc: Likewise.
3821 * tree-object-size.cc: Likewise.
3822 * tree-parloops.cc: Likewise.
3823 * tree-predcom.cc: Likewise.
3824 * tree-profile.cc: Likewise.
3825 * tree-sra.cc: Likewise.
3826 * tree-ssa-ccp.cc: Likewise.
3827 * tree-ssa-copy.cc: Likewise.
3828 * tree-ssa-dce.cc: Likewise.
3829 * tree-ssa-dom.cc: Likewise.
3830 * tree-ssa-dse.cc: Likewise.
3831 * tree-ssa-forwprop.cc: Likewise.
3832 * tree-ssa-ifcombine.cc: Likewise.
3833 * tree-ssa-loop-ch.cc: Likewise.
3834 * tree-ssa-loop-im.cc: Likewise.
3835 * tree-ssa-loop-ivcanon.cc: Likewise.
3836 * tree-ssa-loop-prefetch.cc: Likewise.
3837 * tree-ssa-loop-split.cc: Likewise.
3838 * tree-ssa-loop-unswitch.cc: Likewise.
3839 * tree-ssa-loop.cc: Likewise.
3840 * tree-ssa-math-opts.cc: Likewise.
3841 * tree-ssa-phiopt.cc: Likewise.
3842 * tree-ssa-phiprop.cc: Likewise.
3843 * tree-ssa-pre.cc: Likewise.
3844 * tree-ssa-reassoc.cc: Likewise.
3845 * tree-ssa-sccvn.cc: Likewise.
3846 * tree-ssa-sink.cc: Likewise.
3847 * tree-ssa-strlen.cc: Likewise.
3848 * tree-ssa-structalias.cc: Likewise.
3849 * tree-ssa-uncprop.cc: Likewise.
3850 * tree-ssa-uninit.cc: Likewise.
3851 * tree-ssanames.cc: Likewise.
3852 * tree-stdarg.cc: Likewise.
3853 * tree-switch-conversion.cc: Likewise.
3854 * tree-tailcall.cc: Likewise.
3855 * tree-vect-generic.cc: Likewise.
3856 * tree-vectorizer.cc: Likewise.
3857 * tree-vrp.cc: Likewise.
3858 * tsan.cc: Likewise.
3859 * ubsan.cc: Likewise.
3860 * var-tracking.cc: Likewise.
3861 * vtable-verify.cc: Likewise.
3862 * web.cc: Likewise.
3863
3864 2022-06-27 Andrew Stubbs <ams@codesourcery.com>
3865
3866 * config/gcn/gcn.md (*movbi): Remove assembler bug workarounds.
3867 (jump): Likewise.
3868 (movdi_symbol_save_scc): Likewise.
3869
3870 2022-06-27 Roger Sayle <roger@nextmovesoftware.com>
3871
3872 PR rtl-optimization/7061
3873 * config/i386/i386.md (*highpartdisi2): New define_insn_and_split.
3874
3875 2022-06-27 Roger Sayle <roger@nextmovesoftware.com>
3876
3877 PR tree-optimization/94026
3878 * match.pd (((X << C1) & C2) eq/ne C3): New simplification.
3879 (((X >> C1) & C2) eq/ne C3): Likewise.
3880
3881 2022-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3882
3883 * statistics.cc: Include tree.h.
3884 (get_function_name): New function.
3885 (statistics_fini_pass_2): Call get_function_name instead of
3886 current_function_name.
3887 (statistics_counter_event): Call get_function_name instead of
3888 function_name.
3889 (statistics_histogram_event): Likewise.
3890
3891 2022-06-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3892
3893 * config/xtensa/xtensa.md:
3894 Suppress unnecessary emitting nop insn in the split patterns for
3895 integer/FP constant synthesis, and add new peephole2 pattern that
3896 folds such synthesized additions.
3897
3898 2022-06-25 Aldy Hernandez <aldyh@redhat.com>
3899
3900 * tree-ssa-dom.cc (dom_jt_state): Pass ranger to constructor
3901 instead of evrp.
3902 (dom_jt_state::push): Remove m_evrp.
3903 (dom_jt_state::pop): Same.
3904 (dom_jt_state::record_ranges_from_stmt): Remove.
3905 (dom_jt_state::register_equiv): Remove updating of evrp ranges.
3906 (class dom_jt_simplifier): Pass ranger to constructor.
3907 Inherit from hybrid_jt_simplifier.
3908 (dom_jt_simplifier::simplify): Convert to ranger.
3909 (pass_dominator::execute): Same.
3910 (all_uses_feed_or_dominated_by_stmt): New.
3911 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): New.
3912 (dom_opt_dom_walker::before_dom_children): Call
3913 set_global_ranges_from_unreachable_edges.
3914 Do not call record_ranges_from_stmt.
3915 (dom_opt_dom_walker::after_dom_children): Remove evrp use.
3916 (cprop_operand): Use int_range<> instead of value_range.
3917 (dom_opt_dom_walker::fold_cond): New.
3918 (dom_opt_dom_walker::optimize_stmt): Pass ranger to
3919 cprop_into_stmt.
3920 Use fold_cond() instead of vrp_visit_cond_stmt().
3921 * tree-ssa-threadedge.cc (jt_state::register_equivs_stmt): Do not
3922 pass state to simplifier.
3923 * vr-values.h (class vr_values): Make fold_cond public.
3924
3925 2022-06-25 Jeff Law <jeffreyalaw@gmail.com>
3926
3927 * common/config/tilegx/tilegx-common.cc: Removed.
3928 * common/config/tilepro/tilepro-common.cc: Removed.
3929 * config.gcc: Remove tilegx and tilepro entries.
3930 * config/tilegx/constraints.md: Removed.
3931 * config/tilegx/feedback.h: Removed.
3932 * config/tilegx/linux.h: Removed.
3933 * config/tilegx/mul-tables.cc: Removed.
3934 * config/tilegx/predicates.md: Removed.
3935 * config/tilegx/sync.md: Removed.
3936 * config/tilegx/t-tilegx: Removed.
3937 * config/tilegx/tilegx-builtins.h: Removed.
3938 * config/tilegx/tilegx-c.cc: Removed.
3939 * config/tilegx/tilegx-generic.md: Removed.
3940 * config/tilegx/tilegx-modes.def: Removed.
3941 * config/tilegx/tilegx-multiply.h: Removed.
3942 * config/tilegx/tilegx-opts.h: Removed.
3943 * config/tilegx/tilegx-protos.h: Removed.
3944 * config/tilegx/tilegx.cc: Removed.
3945 * config/tilegx/tilegx.h: Removed.
3946 * config/tilegx/tilegx.md: Removed.
3947 * config/tilegx/tilegx.opt: Removed.
3948 * config/tilepro/constraints.md: Removed.
3949 * config/tilepro/feedback.h: Removed.
3950 * config/tilepro/gen-mul-tables.cc: Removed.
3951 * config/tilepro/linux.h: Removed.
3952 * config/tilepro/mul-tables.cc: Removed.
3953 * config/tilepro/predicates.md: Removed.
3954 * config/tilepro/t-tilepro: Removed.
3955 * config/tilepro/tilepro-builtins.h: Removed.
3956 * config/tilepro/tilepro-c.cc: Removed.
3957 * config/tilepro/tilepro-generic.md: Removed.
3958 * config/tilepro/tilepro-modes.def: Removed.
3959 * config/tilepro/tilepro-multiply.h: Removed.
3960 * config/tilepro/tilepro-protos.h: Removed.
3961 * config/tilepro/tilepro.cc: Removed.
3962 * config/tilepro/tilepro.h: Removed.
3963 * config/tilepro/tilepro.md: Removed.
3964 * config/tilepro/tilepro.opt: Removed.
3965 * configure.ac: Remove tilegx and tilepro entries.
3966 * configure: Rebuilt.
3967 * doc/extend.texi: Remove tilegx and tilepro entries.
3968 * doc/install.texi: Remove tilegx and tilepro entries.
3969 * doc/invoke.texi: Remove tilegx and tilepro entries.
3970 * doc/md.texi: Remove tilegx and tilepro entries.
3971
3972 2022-06-25 Roger Sayle <roger@nextmovesoftware.com>
3973 Richard Biener <rguenther@suse.de>
3974
3975 * regcprop.cc (pass_cprop_hardreg::execute): Perform a third
3976 iteration over each basic block that was updated by the second
3977 iteration.
3978
3979 2022-06-24 Jason Merrill <jason@redhat.com>
3980
3981 PR c++/87729
3982 PR c++/20423
3983 * doc/invoke.texi: Document changes.
3984
3985 2022-06-24 Iain Buclaw <ibuclaw@gdcproject.org>
3986
3987 * config/tilepro/gen-mul-tables.cc (tilegx_emit): Adjust loop
3988 condition to avoid overflow.
3989
3990 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
3991
3992 * config/rs6000/aix71.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
3993 OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
3994 * config/rs6000/darwin.h (MASK_PPC_GFXOPT): Replace with
3995 OPTION_MASK_PPC_GFXOPT.
3996 * config/rs6000/darwin64-biarch.h (MASK_PPC_GFXOPT): Same.
3997 * config/rs6000/default64.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
3998 OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
3999 * config/rs6000/rs6000-c.cc: Update comment.
4000 * config/rs6000/rs6000-cpus.def: Update RS6000_CPU macro calls.
4001 * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
4002 MASK_PPC_GPOPT with OPTION_MASK_PPC_GPOPT.
4003 (rs6000_builtin_mask_names): Replace MASK_PPC_GFXOPT, MASK_POPCNTB
4004 with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_POPCNTB.
4005 * config/rs6000/rs6000.h: (MASK_P8_VECTOR, MASK_P9_VECTOR,
4006 MASK_P9_MISC, MASK_POPCNTB, MASK_POPCNTD, MASK_PPC_GFXOPT,
4007 MASK_PPC_GPOPT, MASK_RECIP_PRECISION, MASK_SOFT_FLOAT,
4008 MASK_VSX, MASK_POWER10, MASK_P10_FUSION): Delete.
4009
4010 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
4011
4012 * config/rs6000/aix71.h (TARGET_DEFAULT): Replace MASK_MFCRF with
4013 OPTION_MASK_MFCRF.
4014 * config/rs6000/darwin.h (TARGET_DEFAULT): Replace MASK_MULTIPLE with
4015 OPTION_MASK_MULTIPLE.
4016 * config/rs6000/darwin64-biarch.h (TARGET_DEFAULT): Same.
4017 * config/rs6000/default64.h (TARGET_DEFAULT): Replace MASK_MFCRF with
4018 OPTION_MASK_MFCRF.
4019 * config/rs6000/eabi.h (TARGET_DEFAULT): Replace MASK_EABI with
4020 OPTION_MASK_EABI.
4021 * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Same.
4022 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Replace
4023 MASK_ALTIVEC with OPTION_MASK_ALTIVEC.
4024 * config/rs6000/rs6000-cpus.def (MASK_ALTIVEC, MASK_CMPB,
4025 MASK_CRYPTO, MASK_DFP, MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI,
4026 MASK_FLOAT128_KEYWORD, MASK_FLOAT128_HW, MASK_FPRND,
4027 MASK_P8_FUSION, MASK_HARD_FLOAT, MASK_HTM, MASK_ISEL, MASK_MFCRF,
4028 MASK_MMA, MASK_MULHW, MASK_MULTIPLE, MASK_NO_UPDATE):
4029 Replace with
4030 OPTION_MASK_ALTIVEC, OPTION_MASK_CMPB, OPTION_MASK_CRYPTO,
4031 OPTION_MASK_DFP, OPTION_MASK_DIRECT_MOVE, OPTION_MASK_DLMZB,
4032 OPTION_MASK_EABI, OPTION_MASK_FLOAT128_KEYWORD,
4033 OPTION_MASK_FLOAT128_HW, OPTION_MASK_FPRND, OPTION_MASK_P8_FUSION,
4034 OPTION_MASK_HARD_FLOAT, OPTION_MASK_HTM, OPTION_MASK_ISEL,
4035 OPTION_MASK_MFCRF, OPTION_MASK_MMA, OPTION_MASK_MULHW,
4036 OPTION_MASK_MULTIPLE, OPTION_MASK_NO_UPDATE.
4037 * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
4038 MASK_MFCRF, MASK_ALTIVEC with OPTION_MASK_MFCRF, OPTION_MASK_ALTIVEC.
4039 * config/rs6000/rs6000.h (TARGET_DEFAULT): Replace MASK_MULTIPLE
4040 with OPTION_MASK_MULTIPLE.
4041 (MASK_ALTIVEC, MASK_CMPB, MASK_CRYPTO, MASK_DFP,
4042 MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI, MASK_FLOAT128_KEYWORD,
4043 MASK_FLOAT128_HW, MASK_FPRND, MASK_P8_FUSION, MASK_HARD_FLOAT,
4044 MASK_HTM, MASK_ISEL, MASK_MFCRF, MASK_MMA, MASK_MULHW,
4045 MASK_MULTIPLE, MASK_NO_UPDATE): Delete.
4046 * config/rs6000/vxworks.h (TARGET_DEFAULT): Replace MASK_EABI
4047 with OPTION_MASK_EABI.
4048
4049 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
4050
4051 * config/rs6000/rs6000.cc (RS6000_BTM_ALTIVEC, RS6000_BTM_CMPB,
4052 RS6000_BTM_VSX, RS6000_BTM_FRE, RS6000_BTM_P8_VECTOR,
4053 RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_MODULO,
4054 RS6000_BTM_CRYPTO, RS6000_BTM_HTM): Replace with OPTION_MASK_ALTIVEC,
4055 OPTION_MASK_CMPB, OPTION_MASK_VSX, OPTION_MASK_POPCNTB,
4056 OPTION_MASK_P8_VECTOR, OPTION_MASK_P9_VECTOR, OPTION_MASK_P9_MISC,
4057 OPTION_MASK_MODULO, OPTION_MASK_CRYPTO, OPTION_MASK_HTM.
4058 * config/rs6000/rs6000.h (RS6000_BTM_MODULO, RS6000_BTM_ALTIVEC,
4059 RS6000_BTM_CMPB, RS6000_BTM_VSX, RS6000_BTM_P8_VECTOR,
4060 RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_CRYPTO,
4061 RS6000_BTM_HTM, RS6000_BTM_FRE): Remove.
4062
4063 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
4064
4065 * config/rs6000/rs6000-c.cc: Update comments.
4066 * config/rs6000/rs6000.cc (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
4067 RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
4068 RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_DFP,
4069 RS6000_BTM_HARD_FLOAT,RS6000_BTM_LDBL128, RS6000_BTM_FLOAT128,
4070 RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Replace
4071 with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_PPC_GFXOPT,
4072 OPTION_MASK_POPCNTB, OPTION_MASK_POPCNTD,
4073 OPTION_MASK_FPRND, MASK_64BIT, MASK_POWERPC64,
4074 OPTION_MASK_DFP, OPTION_MASK_SOFT_FLOAT, OPTION_MASK_MULTIPLE,
4075 OPTION_MASK_FLOAT128_KEYWORD, OPTION_MASK_FLOAT128_HW,
4076 OPTION_MASK_MMA, OPTION_MASK_POWER10.
4077 * config/rs6000/rs6000.h (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
4078 RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
4079 RS6000_BTM_DFP, RS6000_BTM_HARD_FLOAT, RS6000_BTM_LDBL128,
4080 RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_FLOAT128,
4081 RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Delete.
4082
4083 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
4084
4085 * config/rs6000/rs6000.h (RS6000_BTM_COMMON, RS6000_BTM_ALWAYS,
4086 MASK_REGNAMES, OPTION_MASK_REGNAMES, MASK_PROTOTYPE,
4087 OPTION_MASK_PROTOTYPE, MASK_UPDATE, OPTION_MASK_UPDATE): Remove.
4088
4089 2022-06-24 Richard Biener <rguenther@suse.de>
4090
4091 PR middle-end/106070
4092 * match.pd (a != b ? a : b): Fix translation of
4093 operand_equal_for_comparison_p.
4094
4095 2022-06-24 Jan Hubicka <jh@suse.cz>
4096
4097 PR ipa/106057
4098 * tree-ssa-alias.cc (stmt_kills_ref_p): Check for external throw.
4099
4100 2022-06-24 Martin Liska <mliska@suse.cz>
4101
4102 PR middle-end/106059
4103 * profile-count.h: *= and /= operators need to modify this
4104 object.
4105
4106 2022-06-24 Roger Sayle <roger@nextmovesoftware.com>
4107 Uroš Bizjak <ubizjak@gmail.com>
4108
4109 PR target/105930
4110 * config/i386/i386.md (*<any_or>di3_doubleword): Split after
4111 reload. Use rtx_equal_p to avoid creating memory-to-memory moves,
4112 and emit NOTE_INSN_DELETED if operand[2] is zero (i.e. with -O0).
4113
4114 2022-06-24 Alexandre Oliva <oliva@adacore.com>
4115
4116 * common.opt (nostdlib++): New.
4117 * doc/invoke.texi (-nostdlib++): Document it.
4118
4119 2022-06-24 Alexandre Oliva <oliva@adacore.com>
4120
4121 * doc/sourcebuild.texi (Environment attributes): Document
4122 two_plus_gigs.
4123
4124 2022-06-23 David Malcolm <dmalcolm@redhat.com>
4125
4126 * common.opt (fdiagnostics-show-rules): New option.
4127 * diagnostic-format-json.cc (diagnostic_output_format_init_json):
4128 Fix up context->show_rules.
4129 * diagnostic-format-sarif.cc
4130 (diagnostic_output_format_init_sarif): Likewise.
4131 * diagnostic-metadata.h (diagnostic_metadata::rule): New class.
4132 (diagnostic_metadata::precanned_rule): New class.
4133 (diagnostic_metadata::add_rule): New.
4134 (diagnostic_metadata::get_num_rules): New.
4135 (diagnostic_metadata::get_rule): New.
4136 (diagnostic_metadata::m_rules): New field.
4137 * diagnostic.cc (diagnostic_initialize): Initialize show_rules.
4138 (print_any_rules): New.
4139 (diagnostic_report_diagnostic): Call it.
4140 * diagnostic.h (diagnostic_context::show_rules): New field.
4141 * doc/invoke.texi (-fno-diagnostics-show-rules): New option.
4142 * opts.cc (common_handle_option): Handle
4143 OPT_fdiagnostics_show_rules.
4144 * toplev.cc (general_init): Set up global_dc->show_rules.
4145
4146 2022-06-23 Martin Liska <mliska@suse.cz>
4147
4148 PR c++/106062
4149 * ubsan.cc (sanitize_unreachable_fn): Change order of calls
4150 in order to initialize UBSAN built-ins.
4151
4152 2022-06-23 Martin Liska <mliska@suse.cz>
4153
4154 PR ipa/105600
4155 * ipa-icf.cc (sem_item_optimizer::filter_removed_items):
4156 Skip variables with body_removed.
4157
4158 2022-06-23 liuhongt <hongtao.liu@intel.com>
4159
4160 * config/i386/sse.md:(sse4_2_pcmpestr): Replace REGNO with
4161 reg_or_subregno.
4162 (sse4_2_pcmpistr): Ditto.
4163
4164 2022-06-23 Xionghu Luo <xionghuluo@tencent.com>
4165
4166 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Fix
4167 typo.
4168 * tree-ssa-loop-ivopts.cc (struct iv_cand): Likewise.
4169 * tree-switch-conversion.h: Likewise.
4170
4171 2022-06-22 Jason Merrill <jason@redhat.com>
4172
4173 PR c++/104642
4174 * common.opt: Add -funreachable-traps.
4175 * doc/invoke.texi (-funreachable-traps): Document it.
4176 * opts.cc (finish_options): Enable at -O0 or -Og.
4177 * tree.cc (build_common_builtin_nodes): Add __builtin_trap.
4178 (builtin_decl_unreachable, build_builtin_unreachable): New.
4179 * tree.h: Declare them.
4180 * ubsan.cc (sanitize_unreachable_fn): Factor out.
4181 (ubsan_instrument_unreachable): Use
4182 gimple_build_builtin_unreachable.
4183 * ubsan.h (sanitize_unreachable_fn): Declare.
4184 * gimple.cc (gimple_build_builtin_unreachable): New.
4185 * gimple.h: Declare it.
4186 * builtins.cc (expand_builtin_unreachable): Add assert.
4187 (fold_builtin_0): Call build_builtin_unreachable.
4188 * sanopt.cc: Don't run for just SANITIZE_RETURN
4189 or SANITIZE_UNREACHABLE when trapping.
4190 * cgraphunit.cc (walk_polymorphic_call_targets): Use new
4191 unreachable functions.
4192 * gimple-fold.cc (gimple_fold_call)
4193 (gimple_get_virt_method_for_vtable)
4194 * ipa-fnsummary.cc (redirect_to_unreachable)
4195 * ipa-prop.cc (ipa_make_edge_direct_to_target)
4196 (ipa_impossible_devirt_target)
4197 * ipa.cc (walk_polymorphic_call_targets)
4198 * tree-cfg.cc (pass_warn_function_return::execute)
4199 (execute_fixup_cfg)
4200 * tree-ssa-loop-ivcanon.cc (remove_exits_and_undefined_stmts)
4201 (unloop_loops)
4202 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
4203 Likewise.
4204
4205 2022-06-22 Richard Sandiford <richard.sandiford@arm.com>
4206
4207 PR tree-optimization/106019
4208 * tree-data-ref.cc (dr_may_alias_p): Try using the
4209 innermost_loop_behavior to disambiguate non-loop queries.
4210
4211 2022-06-22 Palmer Dabbelt <palmer@rivosinc.com>
4212
4213 * doc/invoke.texi (RISC-V): Document -mtune=thead-c906.
4214
4215 2022-06-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4216
4217 * config/xtensa/xtensa.md (bswapsi2_internal):
4218 Enlarge the buffer that is obviously smaller than the template
4219 string given to sprintf().
4220
4221 2022-06-21 Roger Sayle <roger@nextmovesoftware.com>
4222 Marek Polacek <polacek@redhat.com>
4223 Segher Boessenkool <segher@kernel.crashing.org>
4224 Kewen Lin <linkw@linux.ibm.com>
4225
4226 PR target/105991
4227 * config/rs6000/rs6000.md (rotl<mode>3_insert_3): Check that
4228 exact_log2 doesn't return -1 (or zero).
4229 (plus_xor): New code iterator.
4230 (*rotl<mode>3_insert_3_<code>): New define_insn_and_split.
4231
4232 2022-06-21 Nathan Sidwell <nathan@acm.org>
4233
4234 * doc/invoke.texi (C++ Modules): Remove language-linkage
4235 as missing feature.
4236
4237 2022-06-21 Arjun Shankar <arjun@redhat.com>
4238
4239 PR tree-optimization/94899
4240 * match.pd (X + C < Y + C -> (signed) X < (signed) Y, if C is
4241 0x80000000): New simplification.
4242
4243 2022-06-21 Jakub Jelinek <jakub@redhat.com>
4244
4245 PR rtl-optimization/106032
4246 * ifcvt.cc (noce_try_sign_mask): Punt if !t_unconditional, and
4247 t may_trap_or_fault_p, even if it is cheap.
4248
4249 2022-06-21 Jakub Jelinek <jakub@redhat.com>
4250
4251 PR middle-end/106030
4252 * expr.cc (expand_cond_expr_using_cmove): Pass NULL_RTX instead of
4253 temp to expand_operands if mode has been promoted.
4254
4255 2022-06-21 Xionghu Luo <xionghuluo@tencent.com>
4256
4257 PR target/105740
4258 * gimple-if-to-switch.cc (find_conditions): Don't skip the first
4259 condition bb.
4260
4261 2022-06-21 Siddhesh Poyarekar <siddhesh@gotplt.org>
4262
4263 PR tree-optimization/105736
4264 * tree-object-size.cc (addr_object_size): Return size_unknown
4265 when object offset computation returns an error.
4266
4267 2022-06-20 H.J. Lu <hjl.tools@gmail.com>
4268
4269 PR target/105960
4270 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
4271 false if PIC register is used when calling ifunc functions.
4272
4273 2022-06-20 Richard Biener <rguenther@suse.de>
4274
4275 PR middle-end/106027
4276 * fold-const.cc (fold_to_nonsharp_ineq_using_bound): Use the
4277 type of the prevailing comparison for the new comparison type.
4278 (fold_binary_loc): Use proper types for the A < X && A + 1 > Y
4279 to A < X && A >= Y folding.
4280
4281 2022-06-20 Kewen Lin <linkw@linux.ibm.com>
4282
4283 PR tree-optimization/105940
4284 * tree-vect-loop.cc (vect_analyze_loop_2): Add new parameter
4285 slp_done_for_suggested_uf and adjust with it accordingly.
4286 (vect_analyze_loop_1): Add new variable slp_done_for_suggested_uf,
4287 pass it down to vect_analyze_loop_2 for the initial analysis and
4288 applying suggested unroll factor.
4289 (vect_is_simple_reduction): Add parameter slp and adjust with it.
4290 (vect_analyze_scalar_cycles_1): Add parameter slp and pass down.
4291 (vect_analyze_scalar_cycles): Likewise.
4292
4293 2022-06-20 Martin Liska <mliska@suse.cz>
4294
4295 * bb-reorder.cc (find_traces_1_round): Add operators / and * and
4296 use them.
4297 (better_edge_p): Likewise.
4298 * cfgloop.cc (find_subloop_latch_edge_by_profile): Likewise.
4299 * cfgloopmanip.cc (scale_loop_profile): Likewise.
4300 * cfgrtl.cc (force_nonfallthru_and_redirect): Likewise.
4301 * cgraph.cc (cgraph_edge::maybe_hot_p): Likewise.
4302 * config/sh/sh.cc (expand_cbranchdi4): Likewise.
4303 * dojump.cc (do_compare_rtx_and_jump): Likewise.
4304 * final.cc (compute_alignments): Likewise.
4305 * ipa-cp.cc (update_counts_for_self_gen_clones): Likewise.
4306 (decide_about_value): Likewise.
4307 * ipa-inline-analysis.cc (do_estimate_edge_time): Likewise.
4308 * loop-unroll.cc (unroll_loop_runtime_iterations): Likewise.
4309 * modulo-sched.cc (sms_schedule): Likewise.
4310 * omp-expand.cc (extract_omp_for_update_vars): Likewise.
4311 (expand_omp_ordered_sink): Likewise.
4312 (expand_omp_for_ordered_loops): Likewise.
4313 (expand_omp_for_static_nochunk): Likewise.
4314 * predict.cc (maybe_hot_count_p): Likewise.
4315 (probably_never_executed): Likewise.
4316 (set_even_probabilities): Likewise.
4317 (handle_missing_profiles): Likewise.
4318 (expensive_function_p): Likewise.
4319 * profile-count.h: Likewise.
4320 * profile.cc (compute_branch_probabilities): Likewise.
4321 * stmt.cc (emit_case_dispatch_table): Likewise.
4322 * symtab-thunks.cc (expand_thunk): Likewise.
4323 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop): Likewise.
4324 * tree-ssa-sink.cc (select_best_block): Likewise.
4325 * tree-switch-conversion.cc (switch_decision_tree::analyze_switch_statement): Likewise.
4326 (switch_decision_tree::balance_case_nodes): Likewise.
4327 (switch_decision_tree::emit_case_nodes): Likewise.
4328 * tree-vect-loop.cc (scale_profile_for_vect_loop): Likewise.
4329
4330 2022-06-20 yulong <shiyulong@iscas.ac.cn>
4331
4332 * config/riscv/riscv-builtins.cc (RISCV_ATYPE_VOID_PTR): New.
4333 * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Changed the FUNCTION_TYPE
4334 of RISCV_BUILTIN.
4335 * config/riscv/riscv-ftypes.def (0): Remove unused.
4336 (1): New.
4337
4338 2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4339
4340 * config/xtensa/xtensa.cc (xtensa_is_insn_L32R_p):
4341 Consider relaxed MOVI instructions as L32R.
4342
4343 2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4344
4345 * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
4346 Use can_create_pseudo_p(), instead of using individual
4347 reload_in_progress and reload_completed.
4348 (xtensa_expand_block_set_small_loop): Use xtensa_simm8x256(),
4349 the existing predicate function.
4350 (xtensa_is_insn_L32R_p, gen_int_relational, xtensa_emit_sibcall):
4351 Use the standard RTX code predicate macros such as MEM_P,
4352 SYMBOL_REF_P and/or CONST_INT_P.
4353 * config/xtensa/xtensa.md: Avoid using numeric literals to determine
4354 if callee-saved register, at the split patterns for indirect sibcall
4355 fixups.
4356
4357 2022-06-18 Jakub Jelinek <jakub@redhat.com>
4358
4359 * common.opt (flag_sanitize_trap): New variable.
4360 (fsanitize-trap=, fsanitize-trap): New options.
4361 (fsanitize-undefined-trap-on-error): Change into deprecated alias
4362 for -fsanitize-trap=all.
4363 * opts.h (struct sanitizer_opts_s): Add can_trap member.
4364 * opts.cc (finish_options): Complain about unsupported
4365 -fsanitize-trap= options.
4366 (sanitizer_opts): Add can_trap values to all entries.
4367 (get_closest_sanitizer_option): Ignore -fsanitize-trap=
4368 options which have can_trap false.
4369 (parse_sanitizer_options): Add support for -fsanitize-trap=.
4370 For -fsanitize-trap=all, enable
4371 SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT. Disallow
4372 -fsanitize-trap=vptr here.
4373 (common_handle_option): Handle OPT_fsanitize_trap_ and
4374 OPT_fsanitize_trap.
4375 * sanopt.cc (maybe_optimize_ubsan_null_ifn): Check
4376 flag_sanitize_trap & SANITIZE_{NULL,ALIGNMENT} instead of
4377 flag_sanitize_undefined_trap_on_error.
4378 * gcc.cc (sanitize_spec_function): Use
4379 flag_sanitize & ~flag_sanitize_trap instead of flag_sanitize
4380 and drop use of flag_sanitize_undefined_trap_on_error in
4381 "undefined" handling.
4382 * ubsan.cc (ubsan_instrument_unreachable): Use
4383 flag_sanitize_trap & SANITIZE_??? instead of
4384 flag_sanitize_undefined_trap_on_error.
4385 (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
4386 ubsan_expand_objsize_ifn, ubsan_expand_ptr_ifn,
4387 ubsan_build_overflow_builtin, instrument_bool_enum_load,
4388 ubsan_instrument_float_cast, instrument_nonnull_arg,
4389 instrument_nonnull_return, instrument_builtin): Likewise.
4390 * doc/invoke.texi (-fsanitize-trap=, -fsanitize-trap): Document.
4391 (-fsanitize-undefined-trap-on-error): Document as deprecated
4392 alias of -fsanitize-trap.
4393
4394 2022-06-18 Jakub Jelinek <jakub@redhat.com>
4395
4396 PR middle-end/105998
4397 * varasm.cc (narrowing_initializer_constant_valid_p): Check
4398 SCALAR_INT_MODE_P instead of INTEGRAL_MODE_P, also break on
4399 ! INTEGRAL_TYPE_P and do the same check also on op{0,1}'s type.
4400
4401 2022-06-18 Roger Sayle <roger@nextmovesoftware.com>
4402
4403 PR tree-optimization/105835
4404 * match.pd (convert (mult zero_one_valued_p@1 INTEGER_CST@2)):
4405 Narrow integer multiplication by a zero_one_valued_p operand.
4406 (convert (cond @1 INTEGER_CST@2 INTEGER_CST@3)): Push integer
4407 conversions inside COND_EXPR where both data operands are
4408 integer constants.
4409
4410 2022-06-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4411
4412 * config/xtensa/constraints.md (Y):
4413 Change to include integer constants until reload begins.
4414 * config/xtensa/predicates.md (move_operand): Ditto.
4415 * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
4416 Change to allow storing integer constants into litpool only after
4417 reload begins.
4418
4419 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
4420
4421 PR target/105209
4422 * config/alpha/alpha-protos.h (alpha_store_data_bypass_p): New.
4423 * config/alpha/alpha.cc (alpha_store_data_bypass_p): New function.
4424 (alpha_store_data_bypass_p_1): Ditto.
4425 * config/alpha/ev4.md: Use alpha_store_data_bypass_p instead
4426 of generic store_data_bypass_p.
4427 (ev4_ist_c): Remove insn reservation.
4428
4429 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
4430
4431 PR target/105970
4432 * config/i386/i386.cc (ix86_function_arg): Assert that
4433 the mode of pointer argumet is equal to ptr_mode, not Pmode.
4434
4435 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
4436
4437 PR target/105993
4438 * config/i386/sse.md (vpmov splitter): Use (match_dup ...)
4439 instead of REGNO comparisons in combine splitter.
4440
4441 2022-06-17 Segher Boessenkool <segher@kernel.crashing.org>
4442
4443 * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Correct some
4444 types.
4445
4446 2022-06-17 Kito Cheng <kito.cheng@sifive.com>
4447
4448 * config/riscv/bitmanip.md: Supress warning.
4449
4450 2022-06-17 Richard Earnshaw <rearnsha@arm.com>
4451
4452 PR target/106004
4453 * config/arm/arm.cc (arm_print_operand, case 'V'): Use UINTVAL.
4454 Clear bits in the mask above bit 31.
4455
4456 2022-06-17 Richard Earnshaw <rearnsha@arm.com>
4457
4458 * config/arm/mve.md (*mve_mov<mode>): Re-order constraints
4459 to avoid spilling trivial literals to the constant pool.
4460
4461 2022-06-16 David Malcolm <dmalcolm@redhat.com>
4462
4463 * gimple-ssa-warn-access.cc (warn_string_no_nul): Add
4464 auto_diagnostic_group to group any warning with its note.
4465 (maybe_warn_for_bound): Likewise.
4466 (check_access): Likewise.
4467 (warn_dealloc_offset): Likewise.
4468 (pass_waccess::maybe_warn_memmodel): Likewise.
4469 (pass_waccess::maybe_check_dealloc_call): Likewise.
4470 (pass_waccess::warn_invalid_pointer): Likewise.
4471 (pass_waccess::check_dangling_stores): Likewise.
4472
4473 2022-06-16 Jason Merrill <jason@redhat.com>
4474
4475 * opts.cc (common_handle_option) [OPT_fsanitize_]: Set
4476 opts_set->x_flag_sanitize.
4477
4478 2022-06-16 Jason Merrill <jason@redhat.com>
4479
4480 * flags.h (issue_strict_overflow_warning): Comment #endif.
4481
4482 2022-06-16 Andrew MacLeod <amacleod@redhat.com>
4483
4484 * gimple-range-cache.cc (ranger_cache::apply_inferred_ranges): If name
4485 was invaraint before, clear the invariant bit.
4486 * gimple-range-gori.cc (gori_map::set_range_invariant): Add a flag.
4487 * gimple-range-gori.h (gori_map::set_range_invariant): Adjust prototype.
4488
4489 2022-06-16 Andrew MacLeod <amacleod@redhat.com>
4490
4491 * tree-ssa-propagate.cc (before_dom_children): Call value_of_stmt.
4492
4493 2022-06-16 Jakub Jelinek <jakub@redhat.com>
4494
4495 PR tree-optimization/105983
4496 * match.pd (y == XXX_MIN || x < y -> x <= y - 1,
4497 y != XXX_MIN && x >= y -> x > y - 1): Use :cs instead of :s
4498 on non-equality comparisons.
4499
4500 2022-06-16 Jakub Jelinek <jakub@redhat.com>
4501
4502 PR tree-optimization/105984
4503 * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
4504 x > stype_max / cst || x < stype_min / cst): fold_convert @1
4505 to TREE_TYPE (@0) just once and test for negative divisor
4506 also on that folded constant instead of on @1.
4507
4508 2022-06-16 Jakub Jelinek <jakub@redhat.com>
4509
4510 PR middle-end/105951
4511 * tree-ssa-ccp.cc (optimize_atomic_bit_test_and,
4512 optimize_atomic_op_fetch_cmp_0): Remember gimple_call_fn (call)
4513 as last argument to the internal functions.
4514 * builtins.cc (expand_ifn_atomic_bit_test_and): Adjust for the
4515 extra call argument to ifns. If expand_atomic_fetch_op fails for the
4516 lhs == NULL_TREE case, fall through into the optab code with
4517 gen_reg_rtx (mode) as target. If second expand_atomic_fetch_op
4518 fails, construct a CALL_EXPR and expand that.
4519 (expand_ifn_atomic_op_fetch_cmp_0): Adjust for the extra call argument
4520 to ifns. If expand_atomic_fetch_op fails, construct a CALL_EXPR and
4521 expand that.
4522
4523 2022-06-16 Haochen Gui <guihaoc@gcc.gnu.org>
4524
4525 PR target/103316
4526 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Enable
4527 gimple folding for RS6000_BIF_VCMPEQUT, RS6000_BIF_VCMPNET,
4528 RS6000_BIF_CMPGE_1TI, RS6000_BIF_CMPGE_U1TI, RS6000_BIF_VCMPGTUT,
4529 RS6000_BIF_VCMPGTST, RS6000_BIF_CMPLE_1TI, RS6000_BIF_CMPLE_U1TI.
4530 * config/rs6000/vector.md (VEC_IC): New mode iterator. Add support
4531 for new Power10 V1TI instructions.
4532 (vec_cmp<mode><mode>): Set mode iterator to VEC_IC.
4533 (vec_cmpu<mode><mode>): Likewise.
4534 (vector_nlt<mode>): Set mode iterator to VEC_IC.
4535 (vector_nltv1ti): Remove.
4536 (vector_gtu<mode>): Set mode iterator to VEC_IC.
4537 (vector_gtuv1ti): Remove.
4538 (vector_nltu<mode>): Set mode iterator to VEC_IC.
4539 (vector_nltuv1ti): Remove.
4540 (vector_geu<mode>): Set mode iterator to VEC_IC.
4541 (vector_ngt<mode>): Likewise.
4542 (vector_ngtv1ti): Remove.
4543 (vector_ngtu<mode>): Set mode iterator to VEC_IC.
4544 (vector_ngtuv1ti): Remove.
4545 (vector_gtu_<mode>_p): Set mode iterator to VEC_IC.
4546 (vector_gtu_v1ti_p): Remove.
4547 (vrotl<mode>3): Set mode iterator to VEC_IC. Emit insns for V1TI.
4548 (vrotlv1ti3): Remove.
4549 (vashr<mode>3): Set mode iterator to VEC_IC. Emit insns for V1TI.
4550 (vashrv1ti3): Remove.
4551
4552 2022-06-16 Martin Liska <mliska@suse.cz>
4553
4554 * gengtype-state.cc (read_a_state_token): Do not skip extra
4555 character after escaped sequence.
4556
4557 2022-06-16 Martin Liska <mliska@suse.cz>
4558
4559 PR driver/105564
4560 * spellcheck.cc (test_find_closest_string): Add new test.
4561 * spellcheck.h (class best_match): Prefer a difference in
4562 trailing sign symbol.
4563
4564 2022-06-16 liuhongt <hongtao.liu@intel.com>
4565
4566 PR tree-optimization/53533
4567 * match.pd: Simplify (B * v + C) * D -> BD * v + CD and
4568 (v + B) * C + D -> C * v + BCD when B,C,D are all INTEGER_CST,
4569 and there's no overflow or !TYPE_OVERFLOW_UNDEFINED.
4570
4571 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4572
4573 * config/xtensa/xtensa.md (DSC): New split pattern and mode iterator.
4574
4575 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4576
4577 * config/xtensa/predicates.md (reload_operand):
4578 New predicate.
4579 * config/xtensa/xtensa.md: New peephole2 pattern.
4580
4581 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4582
4583 * config/xtensa/xtensa.md (*round_up_to_even):
4584 New insn-and-split pattern.
4585 (*signed_ge_zero): Ditto.
4586
4587 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4588
4589 * config/xtensa/xtensa-protos.h (xtensa_prepare_expand_call,
4590 xtensa_emit_sibcall): New prototypes.
4591 (xtensa_expand_epilogue): Add new argument that specifies whether
4592 or not sibling call.
4593 * config/xtensa/xtensa.cc (TARGET_FUNCTION_OK_FOR_SIBCALL):
4594 New macro definition.
4595 (xtensa_prepare_expand_call): New function in order to share
4596 the common code.
4597 (xtensa_emit_sibcall, xtensa_function_ok_for_sibcall):
4598 New functions.
4599 (xtensa_expand_epilogue): Add new argument sibcall_p and use it
4600 for sibling call handling.
4601 * config/xtensa/xtensa.md (call, call_value):
4602 Use xtensa_prepare_expand_call.
4603 (call_internal, call_value_internal):
4604 Add the condition in order to be disabled if sibling call.
4605 (sibcall, sibcall_value, sibcall_epilogue): New expansions.
4606 (sibcall_internal, sibcall_value_internal): New insn patterns,
4607 and split ones in order to take care of the indirect sibcalls.
4608
4609 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4610
4611 * doc/invoke.texi: Document -mextra-l32r-costs= option.
4612
4613 2022-06-15 David Malcolm <dmalcolm@redhat.com>
4614
4615 PR analyzer/105962
4616 * doc/invoke.texi: Add -fno-analyzer-undo-inlining.
4617 * tree-diagnostic-path.cc (default_tree_diagnostic_path_printer):
4618 Extend -fdiagnostics-path-format=separate-events so that with
4619 -fdiagnostics-show-path-depths it prints fndecls as well as stack
4620 depths.
4621
4622 2022-06-15 David Malcolm <dmalcolm@redhat.com>
4623
4624 * value-relation.h: Add "final" and "override" to relation_oracle
4625 vfunc implementations as appropriate.
4626
4627 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
4628
4629 PR middle-end/105975
4630 Revert everything apart from the expand_fn_using_insn and
4631 expand_direct_optab_fn changes from:
4632 * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
4633 (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
4634 (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
4635 (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
4636 * internal-fn.h (direct_internal_fn_info::directly_mapped): New
4637 member variable.
4638 (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
4639 (direct_internal_fn_p): Also return true for internal functions
4640 that map directly to instructions defined target-insns.def.
4641 (direct_internal_fn): Adjust comment accordingly.
4642 * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
4643 (vectorizable_optab2): New local macros.
4644 (not_direct): Initialize directly_mapped.
4645 (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
4646 (gather_load_direct, len_load_direct, mask_store_direct)
4647 (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
4648 (vec_cond_direct, scatter_store_direct, len_store_direct)
4649 (vec_set_direct, unary_direct, binary_direct, ternary_direct)
4650 (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
4651 (while_direct, fold_extract_direct, fold_left_direct)
4652 (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
4653 (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
4654 (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
4655 (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
4656 (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
4657 (direct_internal_fn_types): Handle functions that map to instructions
4658 defined in target-insns.def.
4659 (direct_internal_fn_types): Likewise.
4660 (direct_internal_fn_supported_p): Likewise.
4661 (internal_fn_expanders): Likewise.
4662 (expand_fn_using_insn): New function,
4663 split out and adapted from...
4664 (expand_direct_optab_fn): ...here.
4665 (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
4666 (expand_GOMP_SIMT_EXIT): Likewise.
4667 (expand_GOMP_SIMT_LANE): Likewise.
4668 (expand_GOMP_SIMT_LAST_LANE): Likewise.
4669 (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
4670 (expand_GOMP_SIMT_VOTE_ANY): Likewise.
4671 (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
4672 (expand_GOMP_SIMT_XCHG_IDX): Likewise.
4673
4674 2022-06-15 Richard Earnshaw <rearnsha@arm.com>
4675
4676 PR target/105981
4677 * config/arm/arm.cc (gen_cpymem_ldrd_strd): Rename low_reg and hi_reg
4678 to first_reg and second_reg respectively. Initialize them correctly
4679 when generating big-endian code.
4680
4681 2022-06-15 Richard Earnshaw <rearnsha@arm.com>
4682
4683 PR target/105974
4684 * config/arm/arm.cc (arm_bfi_1_p): Use UINTVAL instead of XUINT.
4685
4686 2022-06-15 Richard Biener <rguenther@suse.de>
4687
4688 PR tree-optimization/105971
4689 * tree-ssa-alias.cc (refs_may_alias_p_2): Put bail-out for
4690 FUNCTION_DECL and LABEL_DECL refs after decl-decl disambiguation
4691 to leak less surprising alias results.
4692
4693 2022-06-15 Richard Biener <rguenther@suse.de>
4694
4695 PR tree-optimization/105969
4696 * gimple-ssa-sprintf.cc (get_origin_and_offset_r): Avoid division
4697 by zero in overflow check.
4698
4699 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
4700
4701 PR tree-optimization/105254
4702 PR tree-optimization/105940
4703 Revert:
4704 * config/aarch64/aarch64.cc
4705 (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
4706 loop_vec_info as argument. Restrict the unroll factor to values
4707 that divide the VF.
4708 (aarch64_vector_costs::finish_cost): Update call accordingly.
4709
4710 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
4711
4712 * read-rtl.cc (find_int): Substitute symbolic constants
4713 before converting the string to an integer.
4714
4715 2022-06-15 Roger Sayle <roger@nextmovesoftware.com>
4716 Richard Biener <rguenther@suse.de>
4717
4718 * match.pd (convert (lshift @1 INTEGER_CST@2)): Narrow integer
4719 left shifts by a constant when the result is truncated, and the
4720 shift constant is well-defined.
4721 * tree-vect-patterns.cc (vect_recog_rotate_pattern): Add
4722 support for rotations of signed integer types, by lowering
4723 using unsigned vector shifts.
4724
4725 2022-06-15 liuhongt <hongtao.liu@intel.com>
4726
4727 PR target/105953
4728 * config/i386/sse.md (*avx_cmp<mode>3_ltint_not): Force_reg
4729 operands[3].
4730
4731 2022-06-14 Surya Kumari Jangala <jskumari@linux.ibm.com>
4732
4733 PR rtl-optimization/105041
4734 * regrename.cc (check_new_reg_p): Use nregs value from du chain.
4735
4736 2022-06-14 Segher Boessenkool <segher@kernel.crashing.org>
4737
4738 * config/rs6000/vsx.md (VS_scalar): Delete.
4739 (rest of file): Adjust.
4740
4741 2022-06-14 Jan Hubicka <hubicka@ucw.cz>
4742
4743 PR ipa/105739
4744 * ipa-prop.cc (ipa_load_from_parm_agg): Punt on volatile loads.
4745
4746 2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu>
4747
4748 * config/riscv/bitmanip.md: Add split to handle opportunities
4749 for slli + sh[123]add.uw
4750
4751 2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu>
4752
4753 * config/riscv/predicates.md (consecutive_bits_operand):
4754 Implement new predicate.
4755
4756 2022-06-14 Richard Biener <rguenther@suse.de>
4757
4758 PR tree-optimization/105946
4759 * tree-ssa-uninit.cc (maybe_warn_pass_by_reference):
4760 Do not look at arguments not specified in the function call.
4761
4762 2022-06-14 Richard Biener <rguenther@suse.de>
4763
4764 PR middle-end/105965
4765 * match.pd (view_convert CONSTRUCTOR): Handle single-element
4766 CTOR case.
4767
4768 2022-06-14 Eric Botcazou <ebotcazou@adacore.com>
4769
4770 * warning-control.cc (copy_warning) [generic version]: Do not erase
4771 the warning data of the destination location when the no-warning
4772 bit is not set on the source.
4773 (copy_warning) [tree version]: Return early if TO is equal to FROM.
4774 (copy_warning) [gimple version]: Likewise.
4775
4776 2022-06-14 Kewen Lin <linkw@linux.ibm.com>
4777
4778 PR tree-optimization/105940
4779 * tree-vect-loop.cc (vect_analyze_loop_2): Move the place of
4780 applying suggested_unroll_factor after start_over.
4781
4782 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4783
4784 * config/xtensa/predicates.md (shifted_mask_operand):
4785 New predicate.
4786 * config/xtensa/xtensa.md (*andsi3_const_pow2_minus_one):
4787 New insn-and-split pattern.
4788 (*andsi3_const_negative_pow2, *andsi3_const_shifted_mask,
4789 *masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
4790 *masktrue_const_shifted_mask): Ditto.
4791
4792 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4793
4794 * config/xtensa/xtensa.md (*masktrue_bitcmpl): New insn pattern.
4795
4796 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4797
4798 * config/xtensa/xtensa-protos.h (xtensa_emit_branch):
4799 Remove the first argument.
4800 (xtensa_emit_bit_branch): Remove it because now called only from the
4801 output statement of *bittrue insn pattern.
4802 * config/xtensa/xtensa.cc (gen_int_relational): Remove the last
4803 argument 'p_invert', and make so that the condition is reversed by
4804 itself as needed.
4805 (xtensa_expand_conditional_branch): Share the common path, and remove
4806 condition inversion code.
4807 (xtensa_emit_branch, xtensa_emit_movcc): Simplify by removing the
4808 "false side" pattern.
4809 (xtensa_emit_bit_branch): Remove it because of the abovementioned
4810 reason, and move the function body to *bittrue insn pattern.
4811 * config/xtensa/xtensa.md (*bittrue): Transplant the output
4812 statement from removed xtensa_emit_bit_branch().
4813 (*bfalse, *ubfalse, *bitfalse, *maskfalse): Remove the "false side"
4814 insn patterns.
4815
4816 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4817
4818 * config/xtensa/predicates.md (logical_shift_operator,
4819 xtensa_shift_per_byte_operator): New predicates.
4820 * config/xtensa/xtensa-protos.h (xtensa_shlrd_which_direction):
4821 New prototype.
4822 * config/xtensa/xtensa.cc (xtensa_shlrd_which_direction):
4823 New helper function for funnel shift patterns.
4824 * config/xtensa/xtensa.md (ior_op): New code iterator.
4825 (*ashlsi3_1): Replace with new split pattern.
4826 (*shift_per_byte): Unify *ashlsi3_3x, *ashrsi3_3x and *lshrsi3_3x.
4827 (*shift_per_byte_omit_AND_0, *shift_per_byte_omit_AND_1):
4828 New insn-and-split patterns that redirect to *xtensa_shift_per_byte,
4829 in order to omit unnecessary bitwise AND operation.
4830 (*shlrd_reg_<code>, *shlrd_const_<code>, *shlrd_per_byte_<code>,
4831 *shlrd_per_byte_<code>_omit_AND):
4832 New insn patterns for funnel shifts.
4833
4834 2022-06-13 Jason Merrill <jason@redhat.com>
4835
4836 * tree-cfg.cc (pass_warn_function_return::execute): Also check
4837 BUILT_IN_TRAP.
4838
4839 2022-06-13 Maciej W. Rozycki <macro@embecosm.com>
4840
4841 * config/riscv/riscv.md (length): Remove the explicit setting
4842 for "fcmp".
4843
4844 2022-06-13 H.J. Lu <hjl.tools@gmail.com>
4845
4846 * common/config/i386/cpuinfo.h (get_available_features): Require
4847 AVX for F16C and VAES.
4848
4849 2022-06-13 Uroš Bizjak <ubizjak@gmail.com>
4850
4851 PR target/105927
4852 * config/i386/predicates.md (register_no_elim_operand):
4853 Return true for subreg of a memory operand.
4854
4855 2022-06-13 Richard Sandiford <richard.sandiford@arm.com>
4856
4857 * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
4858 (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
4859 (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
4860 (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
4861 * internal-fn.h (direct_internal_fn_info::directly_mapped): New
4862 member variable.
4863 (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
4864 (direct_internal_fn_p): Also return true for internal functions
4865 that map directly to instructions defined target-insns.def.
4866 (direct_internal_fn): Adjust comment accordingly.
4867 * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
4868 (vectorizable_optab2): New local macros.
4869 (not_direct): Initialize directly_mapped.
4870 (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
4871 (gather_load_direct, len_load_direct, mask_store_direct)
4872 (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
4873 (vec_cond_direct, scatter_store_direct, len_store_direct)
4874 (vec_set_direct, unary_direct, binary_direct, ternary_direct)
4875 (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
4876 (while_direct, fold_extract_direct, fold_left_direct)
4877 (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
4878 (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
4879 (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
4880 (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
4881 (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
4882 (direct_internal_fn_types): Handle functions that map to instructions
4883 defined in target-insns.def.
4884 (direct_internal_fn_types): Likewise.
4885 (direct_internal_fn_supported_p): Likewise.
4886 (internal_fn_expanders): Likewise.
4887
4888 2022-06-13 Richard Sandiford <richard.sandiford@arm.com>
4889
4890 * internal-fn.cc (expand_fn_using_insn): New function,
4891 split out and adapted from...
4892 (expand_direct_optab_fn): ...here.
4893 (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
4894 (expand_GOMP_SIMT_EXIT): Likewise.
4895 (expand_GOMP_SIMT_LANE): Likewise.
4896 (expand_GOMP_SIMT_LAST_LANE): Likewise.
4897 (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
4898 (expand_GOMP_SIMT_VOTE_ANY): Likewise.
4899 (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
4900 (expand_GOMP_SIMT_XCHG_IDX): Likewise.
4901
4902 2022-06-13 Jakub Jelinek <jakub@redhat.com>
4903
4904 * omp-expand.cc (expand_omp_target): Remap user provided
4905 device clause arguments, -1 to -2 and -2 to -3, either
4906 at compile time if constant, or at runtime.
4907
4908 2022-06-13 Eric Botcazou <ebotcazou@adacore.com>
4909
4910 * common.opt (finstrument-functions): Set explicit value.
4911 (-finstrument-functions-once): New option.
4912 * doc/invoke.texi (Program Instrumentation Options): Document it.
4913 * gimplify.cc (build_instrumentation_call): New static function.
4914 (gimplify_function_tree): Call it to emit the instrumentation calls
4915 if -finstrument-functions[-once] is specified.
4916
4917 2022-06-13 Eric Botcazou <ebotcazou@adacore.com>
4918
4919 * dwarf2out.cc (output_one_line_info_table): Initialize prev_addr.
4920 * gimple.h (gimple_set_location): Do not copy warning data from
4921 the previous location when it is UNKNOWN_LOCATION.
4922 * optabs.cc (expand_widen_pattern_expr): Always set oprnd{1,2}.
4923
4924 2022-06-13 Jakub Jelinek <jakub@redhat.com>
4925
4926 PR target/105911
4927 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
4928 *<insn><dwi>3_doubleword_mask): Use operands[3] masked with
4929 (<MODE_SIZE> * BITS_PER_UNIT) - 1 as AND operand instead of
4930 operands[3] unmodified.
4931
4932 2022-06-12 Simon Wright <simon@pushface.org>
4933
4934 PR target/104871
4935 * config/darwin-driver.cc (darwin_find_version_from_kernel): If the OS
4936 version is darwin20 (macOS 11) or greater, truncate the version to the
4937 major number.
4938
4939 2022-06-12 Mark Mentovai <mark@mentovai.com>
4940
4941 * config/darwin-c.cc: Make -mmacosx-version-min more future-proof.
4942
4943 2022-06-12 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4944
4945 PR target/96463
4946 * config/aarch64/aarch64-sve-builtins-base.cc: Include ssa.h.
4947 (svld1rq_impl::fold): Define.
4948 * config/aarch64/aarch64.cc (expand_vec_perm_d): Define new members
4949 op_mode and op_vec_flags.
4950 (aarch64_evpc_reencode): Initialize newd.op_mode and
4951 newd.op_vec_flags.
4952 (aarch64_evpc_sve_dup): New function.
4953 (aarch64_expand_vec_perm_const_1): Gate existing calls to
4954 aarch64_evpc_* functions under d->vmode == d->op_mode,
4955 and call aarch64_evpc_sve_dup.
4956 (aarch64_vectorize_vec_perm_const): Remove assert
4957 d->vmode != d->op_mode, and initialize d.op_mode and d.op_vec_flags.
4958 * tree-cfg.cc (verify_gimple_assign_ternary): Allow different
4959 vector types for lhs and rhs in VEC_PERM_EXPR if rhs3 is
4960 constant.
4961
4962 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4963
4964 * config/xtensa/xtensa-protos.h (xtensa_constantsynth):
4965 New prototype.
4966 * config/xtensa/xtensa.cc (xtensa_emit_constantsynth,
4967 xtensa_constantsynth_2insn, xtensa_constantsynth_rtx_SLLI,
4968 xtensa_constantsynth_rtx_ADDSUBX, xtensa_constantsynth):
4969 New backend functions that process the abovementioned logic.
4970 (xtensa_emit_move_sequence): Revert the previous changes.
4971 * config/xtensa/xtensa.md: New split patterns for integer
4972 and floating-point, as the frontend part.
4973
4974 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4975
4976 * config/xtensa/xtensa.cc (xtensa_rtx_costs): Correct wrong case
4977 for ABS and NEG, add missing case for BSWAP and CLRSB, and
4978 double the costs for integer divisions using libfuncs if
4979 optimizing for speed, in order to take advantage of fast constant
4980 division by multiplication.
4981 (TARGET_INSN_COST): New macro definition.
4982 (xtensa_is_insn_L32R_p, xtensa_insn_cost): New functions for
4983 calculating relative costs of a RTL insns, for both of speed and
4984 size.
4985 * config/xtensa/xtensa.md (return, nop, trap): Correct values of
4986 the attribute "length" that depends on TARGET_DENSITY.
4987 (define_asm_attributes, blockage, frame_blockage): Add missing
4988 attributes.
4989 * config/xtensa/xtensa.opt (-mextra-l32r-costs=): New machine-
4990 dependent option, however, preparatory work for now.
4991
4992 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4993
4994 * config/xtensa/xtensa.cc (xtensa_expand_block_set_small_loop):
4995 Pass through the block length / loop count conditions if
4996 zero-overhead looping is configured and active,
4997
4998 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4999
5000 * config/xtensa/xtensa.md (mulsidi3, umulsidi3):
5001 Split into individual signedness, in order to use libcall
5002 "__umulsidi3" but not the other.
5003 (<u>mulhisi3): Merge into one by using code iterator.
5004 (<u>mulsidi3, mulhisi3, umulhisi3): Remove.
5005
5006 2022-06-11 Michael Meissner <meissner@linux.ibm.com>
5007
5008 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Do
5009 not generate block copies with vector pair instructions if we are
5010 tuning for power10.
5011
5012 2022-06-10 Roger Sayle <roger@nextmovesoftware.com>
5013
5014 PR rtl-optimization/7061
5015 * expr.cc (emit_group_store): For groups that consist of a single
5016 scalar integer register that hold a complex mode value, use
5017 gen_lowpart to generate a SUBREG to "view_convert" to the complex
5018 mode. For modes of different sizes, first convert to an integer
5019 mode of the appropriate size.
5020
5021 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5022
5023 * config/xtensa/xtensa.md (clrsbsi2): New insn pattern.
5024
5025 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5026
5027 * config/xtensa/xtensa.md (*andsi3_bitcmpl):
5028 New insn_and_split pattern.
5029
5030 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5031
5032 * config/xtensa/xtensa.md (one_cmplsi2):
5033 Rearrange as an insn_and_split pattern.
5034
5035 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5036
5037 * config/xtensa/xtensa.md (bswaphi2): New insn pattern.
5038
5039 2022-06-09 Segher Boessenkool <segher@kernel.crashing.org>
5040
5041 * config/rs6000/rs6000.md (FP_ISA3): Delete.
5042 (float<QHI:mode><FP_ISA3:mode>2): Rename to...
5043 (float<QHI:mode><SFDF:mode>2): ... this. Adjust.
5044 (*float<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
5045 (*float<QHI:mode><SFDF:mode>2_internal): ... this. Adjust.
5046 (floatuns<QHI:mode><FP_ISA3:mode>2): Rename to...
5047 (floatuns<QHI:mode><SFDF:mode>2): ... this. Adjust.
5048 (*floatuns<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
5049 (*floatuns<QHI:mode><SFDF:mode>2_internal): ... this. Adjust.
5050
5051 2022-06-09 Maciej W. Rozycki <macro@embecosm.com>
5052
5053 * config/riscv/riscv.md
5054 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
5055 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Emit a tab
5056 rather than space with FSFLAGS.
5057
5058 2022-06-09 Tobias Burnus <tobias@codesourcery.com>
5059
5060 * omp-offload.cc (omp_discover_declare_target_tgt_fn_r,
5061 omp_discover_declare_target_fn_r): Don't walk reverse-offload
5062 target regions.
5063
5064 2022-06-09 Jakub Jelinek <jakub@redhat.com>
5065
5066 * doc/invoke.texi (-Waddress): Fix a typo in small example.
5067 Fix typos inptr_t -> intptr_t and uinptr_t -> uintptr_t.
5068
5069 2022-06-09 Cui,Lili <lili.cui@intel.com>
5070
5071 PR target/105493
5072 * config/i386/x86-tune-costs.h (skylake_cost): Raise the gpr load cost
5073 from 4 to 6 and gpr store cost from 6 to 8. Change SSE loads and
5074 unaligned loads cost from {6, 6, 6, 10, 20} to {8, 8, 8, 8, 16}.
5075 (icelake_cost): Ditto.
5076 (alderlake_cost): Raise the gpr store cost from 6 to 8 and SSE loads,
5077 stores and unaligned stores cost from {6, 6, 6, 10, 15} to
5078 {8, 8, 8, 10, 15}.
5079
5080 2022-06-09 Haochen Gui <guihaoc@gcc.gnu.org>
5081
5082 * config/rs6000/rs6000.md (define_split for bswapdi load): Merge shift
5083 and ior insns to one rotate and mask insn.
5084 (define_split for bswapdi register): Likewise.
5085
5086 2022-06-08 Roger Sayle <roger@nextmovesoftware.com>
5087
5088 PR middle-end/105874
5089 * expr.cc (expand_expr_real_1) <normal_inner_ref>: New local
5090 variable tem_modifier for calculating the expand_modifier enum to
5091 use for expanding tem. If tem is a VAR_DECL, use EXPAND_MEMORY.
5092
5093 2022-06-08 Max Filippov <jcmvbkbc@gmail.com>
5094
5095 PR target/105879
5096 * config/xtensa/xtensa.md (movdi): Rename 'first' and 'second'
5097 to 'lowpart' and 'highpart' so that they match 'gen_lowpart' and
5098 'gen_highpart' bitwise semantics and fix order of highpart and
5099 lowpart depending on target endianness.
5100
5101 2022-06-08 Chung-Ju Wu <jasonwucj@gmail.com>
5102
5103 * config/arm/arm-cpus.in (star-mc1): New cpu.
5104 * config/arm/arm-tables.opt: Regenerate.
5105 * config/arm/arm-tune.md: Regenerate.
5106 * doc/invoke.texi: Update docs.
5107
5108 2022-06-08 liuhongt <hongtao.liu@intel.com>
5109
5110 PR target/105513
5111 PR target/105504
5112 * config/i386/i386.md (*movsi_internal): Change alternative
5113 from *v to ?v.
5114 (*movdi_internal): Ditto.
5115 * config/i386/sse.md (vec_set<mode>_0): Change alternative *r
5116 to ?r.
5117 (*vec_extractv4sf_mem): Ditto.
5118 (*vec_extracthf): Ditto.
5119
5120 2022-06-07 Richard Earnshaw <rearnsha@arm.com>
5121
5122 PR target/105090
5123 * config/arm/arm.cc (arm_bfi_1_p): New function.
5124 (arm_bfi_p): New function.
5125 (arm_rtx_costs_internal): Add costs for BFI idioms.
5126 (arm_print_operand [case 'V']): Format output for BFI/BFC masks.
5127 * config/arm/constraints.md (Dj): New constraint.
5128 * config/arm/arm.md (arm_andsi3_insn): Add alternative to use BFC.
5129 (insv_zero): Convert to an insn with a split.
5130 (*bfi, *bfi_alt1, *bfi_alt2, *bfi_alt3): New patterns.
5131
5132 2022-06-07 liuhongt <hongtao.liu@intel.com>
5133
5134 PR target/105854
5135 * config/i386/sse.md (ssse3_palignrdi): Change alternative 2
5136 from Yv to Yw.
5137
5138 2022-06-07 Roger Sayle <roger@nextmovesoftware.com>
5139
5140 PR middle-end/105853
5141 PR target/105856
5142 * calls.cc (load_register_parameters): Call store_constructor
5143 and int_expr_size directly instead of expanding via expand_expr.
5144 * expr.cc (static void store_constructor): Don't prototype here.
5145 (static HOST_WIDE_INT int_expr_size): Likewise.
5146 (store_constructor): No longer static.
5147 (int_expr_size): Likewise, no longer static.
5148 * expr.h (store_constructor): Prototype here.
5149 (int_expr_size): Prototype here.
5150
5151 2022-06-07 Jan Beulich <jbeulich@suse.com>
5152
5153 Revert:
5154 2022-06-03 Jan Beulich <jbeulich@suse.com>
5155
5156 * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
5157 * configure.ac: Check for objcopy, producing
5158 ORIGINAL_OBJCOPY_FOR_TARGET.
5159 * configure: Update accordingly.
5160 * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
5161 Handle objcopy.
5162
5163 2022-06-07 Jakub Jelinek <jakub@redhat.com>
5164
5165 * tree.h (OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER): Define.
5166 * tree-pretty-print.cc (dump_omp_clause) <case OMP_CLAUSE_LINEAR>:
5167 Adjust clause printing style depending on
5168 OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER.
5169
5170 2022-06-07 Jan Beulich <jbeulich@suse.com>
5171
5172 * config/i386/i386-builtin.def (__builtin_ia32_psadbw256):
5173 Change type.
5174 * config/i386/i386-builtin-types.def: New function type
5175 (V4DI, V32QI, V32QI).
5176 * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle
5177 V4DI_FTYPE_V32QI_V32QI.
5178
5179 2022-06-07 Jan Beulich <jbeulich@suse.com>
5180
5181 * config/i386/i386.cc (ix86_attr_length_vex_default): Take REX.B
5182 into account for reg-only insns.
5183
5184 2022-06-07 Roger Sayle <roger@nextmovesoftware.com>
5185
5186 * config/i386/i386.cc (ix86_rtx_costs): Add a new case for
5187 IF_THEN_ELSE, and provide costs for TARGET_XOP's vpcmov and
5188 TARGET_CMOVE's (scalar integer) conditional moves.
5189 * config/i386/sse.md (define_split): Recognize XOP's vpcmov
5190 from its equivalent (canonical) pxor;pand;pxor sequence.
5191
5192 2022-06-07 Kewen Lin <linkw@linux.ibm.com>
5193
5194 * machmode.def (VECTOR_MODES_WITH_PREFIX): Update document for
5195 parameter ORDER.
5196
5197 2022-06-06 Andrew Stubbs <ams@codesourcery.com>
5198
5199 * config.in: Regenerate.
5200 * configure: Regenerate.
5201 * configure.ac: Reinstate HAVE_GAS_ARM_EXTENDED_ARCH test.
5202
5203 2022-06-04 Roger Sayle <roger@nextmovesoftware.com>
5204
5205 PR middle-end/95126
5206 * calls.cc (load_register_parameters): When loading a suitable
5207 immediate_const_ctor_p VAR_DECL into a single word_mode register,
5208 construct it directly in a pseudo rather than read it (by parts)
5209 from memory.
5210 * expr.cc (int_expr_size): Make tree argument a const_tree.
5211 (immediate_const_ctor_p): Helper predicate. Return true for
5212 simple constructors that may be materialized in a register.
5213 (expand_expr_real_1) [VAR_DECL]: When expanding a constant
5214 VAR_DECL with a suitable immediate_const_ctor_p constructor
5215 use store_constructor to materialize it directly in a pseudo.
5216 * expr.h (immediate_const_ctor_p): Prototype here.
5217 * varasm.cc (initializer_constant_valid_for_bitfield_p): Change
5218 VALUE argument from tree to const_tree.
5219 * varasm.h (initializer_constant_valid_for_bitfield_p): Update
5220 prototype.
5221
5222 2022-06-04 Jakub Jelinek <jakub@redhat.com>
5223
5224 PR target/105825
5225 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
5226 *<insn><dwi>3_doubleword_mask): If top bit of mask is clear, but lower
5227 bits of mask aren't all set, use operands[2] mode for the AND
5228 operation instead of always SImode.
5229
5230 2022-06-03 Jakub Jelinek <jakub@redhat.com>
5231
5232 PR middle-end/30314
5233 PR middle-end/105777
5234 * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
5235 x > stype_max / cst || x < stype_min / cst): New simplification.
5236
5237 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
5238
5239 * gimple-range-cache.cc (ranger_cache::range_from_dom): Use
5240 Value_Range.
5241 * gimple-range.cc (gimple_ranger::register_inferred_ranges): Same.
5242 * value-range.h (Value_Range::Value_Range): Implement copy
5243 constructor for Value_Range.
5244
5245 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
5246
5247 * value-range.h (struct vrange_traits): Remove.
5248 (is_a): Rewrite without vrange_traits.
5249 (as_a): Same.
5250
5251 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
5252
5253 * value-range.cc (vrange::contains_p): Implement.
5254 (vrange::type): Return void.
5255 (vrange::supports_type_p): Implement.
5256 (irange::fits_p): Same.
5257 (vrange::set_undefined): Same.
5258 (irange::set_nonnegative): Same.
5259 (vrange::set_varying): Same.
5260 (vrange::union_): Same.
5261 (unsupported_range::set): Move to vrange.
5262 (unsupported_range::type): Move to vrange.
5263 (vrange::intersect): Implement for varying and undefined.
5264 (vrange::zero_p): Implement.
5265 (unsupported_range::supports_type_p): Move to vrange.
5266 (vrange::nonzero_p): Implement.
5267 (unsupported_range::set_undefined): Move to vrange.
5268 (unsupported_range::set_varying): Same.
5269 (unsupported_range::dump): Same.
5270 (unsupported_range::union_): Same. Implement for varying and
5271 undefined.
5272 (unsupported_range::intersect): Move to vrange.
5273 (unsupported_range::zero_p): Same.
5274 (unsupported_range::nonzero_p): Same.
5275 (unsupported_range::set_nonzero): Same.
5276 (unsupported_range::set_zero): Same.
5277 (unsupported_range::set_nonnegative): Same.
5278 (unsupported_range::fits_p): Same.
5279 * value-range.h (class vrange): Remove abstract markers for most
5280 methods.
5281 (class unsupported_range): Remove most methods as they will now be
5282 inherited from vrange.
5283
5284 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
5285
5286 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
5287 an object level supports_type_p for irange and a static
5288 Value_Range::supports_type_p.
5289 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Same.
5290 (fold_using_range::range_of_address): Same.
5291 (fold_using_range::range_of_builtin_call): Same.
5292 * gimple-range-fold.h (gimple_range_type): Same.
5293 (gimple_range_ssa_p): Same.
5294 * gimple-range-path.cc (path_range_query::internal_range_of_expr):
5295 Same.
5296 (path_range_query::range_of_stmt): Same.
5297 (path_range_query::add_to_imports): Same.
5298 * gimple-range.cc (gimple_ranger::range_on_edge): Same.
5299 (gimple_ranger::export_global_ranges): Same.
5300 * gimple-ssa-evrp-analyze.cc
5301 (evrp_range_analyzer::record_ranges_from_phis): Same.
5302 * range-op.cc (range_operator::wi_fold): Same.
5303 (range_operator::fold_range): Same.
5304 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Same.
5305 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Same.
5306 (evaluate_control_stmt_using_entry_checks): Same.
5307 * tree-ssa-threadedge.cc
5308 (hybrid_jt_simplifier::compute_ranges_from_state): Same.
5309 * tree-vrp.cc (supported_types_p): Same.
5310 * value-query.cc (range_query::value_of_expr): Same.
5311 (range_query::value_on_edge): Same.
5312 (range_query::value_of_stmt): Same.
5313 (range_query::get_tree_range): Same.
5314 (get_range_global): Same.
5315 (global_range_query::range_of_expr): Same.
5316 * value-range-equiv.h (class value_range_equiv): Same.
5317 * value-range.cc (irange::supports_type_p): Same.
5318 (unsupported_range::supports_type_p): Same.
5319 * value-range.h (enum value_range_discriminator): Same.
5320 (Value_Range::init): Same.
5321 (Value_Range::supports_type_p): Same.
5322 (irange::supports_type_p): Same.
5323 (irange::supports_p): Same.
5324 (vrange::supports_type_p): Same.
5325 (vrange_allocator::alloc_vrange): Same.
5326
5327 2022-06-03 Jan Beulich <jbeulich@suse.com>
5328
5329 * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
5330 * configure.ac: Check for objcopy, producing
5331 ORIGINAL_OBJCOPY_FOR_TARGET.
5332 * configure: Update accordingly.
5333 * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
5334 Handle objcopy.
5335
5336 2022-06-03 Jan Beulich <jbeulich@suse.com>
5337
5338 * config/i386/mmx.md (mmx_psadbw): Convert to expander.
5339 (*mmx_psadbw): New. Mark as commutative.
5340 * config/i386/sse.md (<sse2_avx2>_psadbw): Convert to expander.
5341 (*<sse2_avx2>_psadbw): New. Mark as commutative.
5342
5343 2022-06-03 Alexandre Oliva <oliva@adacore.com>
5344
5345 PR tree-optimization/105665
5346 PR tree-optimization/100810
5347 * tree-ssa-loop-ivopts.cc
5348 (ssa_name_maybe_undef_p, ssa_name_set_maybe_undef): New.
5349 (ssa_name_any_use_dominates_bb_p, mark_ssa_maybe_undefs): New.
5350 (find_ssa_undef): Check precomputed flag and intervening uses.
5351 (tree_ssa_iv_optimize): Call mark_ssa_maybe_undefs.
5352
5353 2022-06-02 David Malcolm <dmalcolm@redhat.com>
5354
5355 * Makefile.in (OBJS): Add tree-diagnostic-client-data-hooks.o and
5356 tree-logical-location.o.
5357 (OBJS-libcommon): Add diagnostic-format-sarif.o; reorder.
5358 (CFLAGS-tree-diagnostic-client-data-hooks.o): Add TARGET_NAME.
5359 * common.opt (fdiagnostics-format=): Add sarif-stderr and sarif-file.
5360 (sarif-stderr, sarif-file): New enum values.
5361 * diagnostic-client-data-hooks.h: New file.
5362 * diagnostic-format-sarif.cc: New file.
5363 * diagnostic-path.h (enum diagnostic_event::verb): New enum.
5364 (enum diagnostic_event::noun): New enum.
5365 (enum diagnostic_event::property): New enum.
5366 (struct diagnostic_event::meaning): New struct.
5367 (diagnostic_event::get_logical_location): New vfunc.
5368 (diagnostic_event::get_meaning): New vfunc.
5369 (simple_diagnostic_event::get_logical_location): New vfunc impl.
5370 (simple_diagnostic_event::get_meaning): New vfunc impl.
5371 * diagnostic.cc: Include "diagnostic-client-data-hooks.h".
5372 (diagnostic_initialize): Initialize m_client_data_hooks.
5373 (diagnostic_finish): Clean up m_client_data_hooks.
5374 (diagnostic_event::meaning::dump_to_pp): New.
5375 (diagnostic_event::meaning::maybe_get_verb_str): New.
5376 (diagnostic_event::meaning::maybe_get_noun_str): New.
5377 (diagnostic_event::meaning::maybe_get_property_str): New.
5378 (get_cwe_url): Make non-static.
5379 (diagnostic_output_format_init): Handle
5380 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
5381 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
5382 * diagnostic.h (enum diagnostics_output_format): Add
5383 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
5384 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
5385 (class diagnostic_client_data_hooks): New forward decl.
5386 (class logical_location): New forward decl.
5387 (diagnostic_context::m_client_data_hooks): New field.
5388 (diagnostic_output_format_init_sarif_stderr): New decl.
5389 (diagnostic_output_format_init_sarif_file): New decl.
5390 (get_cwe_url): New decl.
5391 * doc/invoke.texi (-fdiagnostics-format=): Add sarif-stderr and
5392 sarif-file.
5393 * doc/sourcebuild.texi (Scan a particular file): Add
5394 scan-sarif-file and scan-sarif-file-not.
5395 * langhooks-def.h (lhd_get_sarif_source_language): New decl.
5396 (LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE): New macro.
5397 (LANG_HOOKS_INITIALIZER): Add
5398 LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE.
5399 * langhooks.cc (lhd_get_sarif_source_language): New.
5400 * langhooks.h (lang_hooks::get_sarif_source_language): New field.
5401 * logical-location.h: New file.
5402 * plugin.cc (struct for_each_plugin_closure): New.
5403 (for_each_plugin_cb): New.
5404 (for_each_plugin): New.
5405 * plugin.h (for_each_plugin): New decl.
5406 * tree-diagnostic-client-data-hooks.cc: New file.
5407 * tree-diagnostic.cc: Include "diagnostic-client-data-hooks.h".
5408 (tree_diagnostics_defaults): Populate m_client_data_hooks.
5409 * tree-logical-location.cc: New file.
5410 * tree-logical-location.h: New file.
5411
5412 2022-06-02 David Malcolm <dmalcolm@redhat.com>
5413
5414 * common.opt (fdiagnostics-format=): Add json-stderr and json-file
5415 to description.
5416 (DIAGNOSTICS_OUTPUT_FORMAT_JSON): Rename to...
5417 (DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR): ...this.
5418 (diagnostics_output_format): Add json-stderr and json-file.
5419 * diagnostic-format-json.cc (json_flush_to_file): New.
5420 (json_final_cb): Convert to...
5421 (json_flush_to_file): ...this, ...
5422 (json_stderr_final_cb): ...this, and...
5423 (json_file_final_cb): ...this.
5424 (diagnostic_output_format_init): Move to diagnostic.cc.
5425 (json_output_base_file_name): New.
5426 (diagnostic_output_format_init_json): New.
5427 (diagnostic_output_format_init_json_stderr): New.
5428 (diagnostic_output_format_init_json_file): New.
5429 * diagnostic.cc (diagnostic_output_format_init): Move here from
5430 diagnostic-format-json.cc; update for changes to enum.
5431 * diagnostic.h (enum diagnostics_output_format): Rename
5432 DIAGNOSTICS_OUTPUT_FORMAT_JSON to
5433 DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR, and add
5434 DIAGNOSTICS_OUTPUT_FORMAT_JSON_FILE.
5435 (diagnostic_output_format_init): Add base_file_name param.
5436 (diagnostic_output_format_init_json_stderr): New decl.
5437 (diagnostic_output_format_init_json_file): New dec.
5438 * doc/invoke.texi (-fdiagnostics-format=): Add "json-stderr" and
5439 "json-file". Rewrite so that the existing "json" is a synonym of
5440 "json-stderr".
5441 * gcc.cc (driver_handle_option): Pass dump_base_name to
5442 diagnostic_output_format_init.
5443 * opts.cc (common_handle_option): Likewise.
5444
5445 2022-06-02 David Malcolm <dmalcolm@redhat.com>
5446
5447 * json.cc (string::print): Fix escaping of '\'.
5448
5449 2022-06-02 Philipp Tomsich <philipp.tomsich@vrull.eu>
5450
5451 * config/riscv/riscv.cc (riscv_build_integer_1): Rewrite value as
5452 (-1 << 31) for the single-bit case, when operating on (1 << 31)
5453 in SImode.
5454 * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): Allow for
5455 any single-bit value, moving the special case for (1 << 31) to
5456 riscv_build_integer_1 (in riscv.c).
5457
5458 2022-06-02 Roger Sayle <roger@nextmovesoftware.com>
5459
5460 PR target/105791
5461 * config/i386/sse.md (V_128_256):Add V1TI and V2TI.
5462 (define_mode_attr avxsizesuffix): Add support for V1TI and V2TI.
5463
5464 2022-06-02 Jakub Jelinek <jakub@redhat.com>
5465
5466 PR target/105778
5467 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask): Remove :SI
5468 from AND and its operands and just verify operands[2] has HImode,
5469 SImode or for TARGET_64BIT DImode. Allow operands[3] to be a mask
5470 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
5471 just throw away the masking. Use force_reg before calling
5472 gen_lowpart.
5473 (*ashl<dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
5474 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
5475 just throw away the masking.
5476 (*ashl<mode>3_doubleword): Rename to ...
5477 (ashl<mode>3_doubleword): ... this.
5478 (*ashl<mode>3_mask): Remove :SI from AND and its operands and just
5479 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
5480 Use force_reg before calling gen_lowpart.
5481 (*<insn><mode>3_mask): Likewise.
5482 (*<insn><dwi>3_doubleword_mask): Likewise. Allow operands[3] to be
5483 a mask with all low 6 (64-bit) or 5 (32-bit) bits set and in that
5484 case just throw away the masking. Use force_reg before calling
5485 gen_lowpart.
5486 (*<insn><dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
5487 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case just
5488 throw away the masking.
5489 (*<insn><mode>3_doubleword): Rename to ...
5490 (<insn><mode>3_doubleword): ... this.
5491 (*<insn><mode>3_mask): Remove :SI from AND and its operands and just
5492 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
5493 Use force_reg before calling gen_lowpart.
5494 (splitter after it): Remove :SI from AND and its operands and just
5495 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
5496 (*<btsc><mode>_mask, *<btsc><mode>_mask): Remove :SI from AND and its
5497 operands and just verify operands[1] has HImode, SImode or for
5498 TARGET_64BIT DImode. Use force_reg before calling gen_lowpart.
5499 (*jcc_bt<mode>_mask_1): New define_insn_and_split pattern.
5500 * config/i386/i386.cc (ix86_rtx_costs): For ZERO_EXTRACT with
5501 ZERO_EXTEND QI->SI in last operand ignore the cost of the ZERO_EXTEND.
5502
5503 2022-06-02 Richard Biener <rguenther@suse.de>
5504
5505 PR tree-optimization/101668
5506 * tree-vect-slp.cc (vect_build_slp_tree_1): Allow BIT_FIELD_REFs
5507 for vector types with compatible lane types.
5508 (vect_build_slp_tree_2): Deal with this.
5509 (vect_add_slp_permutation): Adjust. Emit lowpart/concat
5510 special cases without VEC_PERM.
5511 (vectorizable_slp_permutation): Select the operand vector
5512 type and relax requirements. Handle identity permutes
5513 with mismatching operand types.
5514 * optabs-query.cc (can_vec_perm_const_p): Only allow variable
5515 permutes for op_mode == mode.
5516
5517 2022-06-02 Richard Biener <rguenther@suse.de>
5518
5519 PR tree-optimization/105802
5520 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
5521 Make sure to also compute the range in the type of the switch index.
5522
5523 2022-06-01 David Seifert <soap@gentoo.org>
5524
5525 PR plugins/95648
5526 * configure: Regenerate.
5527
5528 2022-06-01 H.J. Lu <hjl.tools@gmail.com>
5529
5530 PR rtl-optimization/105638
5531 * df-core.cc (df_find_single_def_src): Moved and renamed from
5532 find_single_def_src in loop-iv.cc. Change the argument to rtx
5533 and use rtx_equal_p. Return null for partial or conditional
5534 defs.
5535 * df.h (df_find_single_def_src): New prototype.
5536 * dse.cc (record_store): Use the constant source if the source
5537 register is set only once.
5538 * loop-iv.cc (find_single_def_src): Moved to df-core.cc.
5539 (replace_single_def_regs): Replace find_single_def_src with
5540 df_find_single_def_src.
5541
5542 2022-06-01 Wilco Dijkstra <wilco.dijkstra@arm.com>
5543
5544 * config/aarch64/aarch64.opt (explicit_tune_core): Rename to
5545 selected_tune.
5546 (explicit_arch): Rename to selected_arch.
5547 (x_aarch64_override_tune_string): Remove.
5548 (aarch64_ra_sign_key): Add as TargetVariable so it gets saved/restored.
5549 (aarch64_override_tune_string): Add Save so it gets saved/restored.
5550 * config/aarch64/aarch64.h (aarch64_architecture_version): Remove.
5551 * config/aarch64/aarch64.cc (aarch64_architecture_version): Remove.
5552 (processor): Remove archtecture_version field.
5553 (selected_arch): Remove global.
5554 (selected_cpu): Remove global.
5555 (selected_tune): Remove global.
5556 (aarch64_ra_sign_key): Move global to aarch64.opt so it is saved.
5557 (aarch64_override_options_internal): Use aarch64_get_tune_cpu.
5558 (aarch64_override_options): Further simplify code to only set
5559 selected_arch and selected_tune globals.
5560 (aarch64_option_save): Remove now that target options are saved.
5561 (aarch64_option_restore): Remove redundant target option restores.
5562 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Use
5563 AARCH64_ISA_V9.
5564 * config/aarch64/aarch64-opts.h (aarch64_key_type): Add, moved from...
5565 * config/aarch64/aarch64-protos.h (aarch64_key_type): Remove.
5566 (aarch64_ra_sign_key): Remove.
5567
5568 2022-06-01 Jakub Jelinek <jakub@redhat.com>
5569
5570 PR middle-end/30314
5571 * match.pd (__builtin_mul_overflow_p (x, cst, (utype) 0) ->
5572 x > ~(utype)0 / cst): New simplification.
5573
5574 2022-06-01 Richard Biener <rguenther@suse.de>
5575
5576 PR tree-optimization/105786
5577 * tree-loop-distribution.cc
5578 (loop_distribution::transform_reduction_loop): Only do strlen
5579 replacement for integer type reductions.
5580
5581 2022-06-01 Jakub Jelinek <jakub@redhat.com>
5582
5583 PR tree-optimization/105770
5584 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb): Cast
5585 CASE_LOW and CASE_HIGH to TREE_TYPE (idx) before comparisons with idx.
5586
5587 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
5588
5589 * gimple-range-cache.cc (ssa_block_ranges::dump): Convert to vrange.
5590 (sbr_vector::sbr_vector): Same.
5591 (sbr_vector::grow): Same.
5592 (sbr_vector::set_bb_range): Same.
5593 (sbr_vector::get_bb_range): Same.
5594 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
5595 (sbr_sparse_bitmap::set_bb_range): Same.
5596 (sbr_sparse_bitmap::get_bb_range): Same.
5597 (block_range_cache::set_bb_range): Same.
5598 (block_range_cache::get_bb_range): Same.
5599 (block_range_cache::dump): Same.
5600 (ssa_global_cache::get_global_range): Same.
5601 (ssa_global_cache::set_global_range): Same.
5602 (ssa_global_cache::clear): Same.
5603 (ssa_global_cache::dump): Same.
5604 (ranger_cache::get_global_range): Same.
5605 (ranger_cache::set_global_range): Same.
5606 (ranger_cache::range_of_def): Same.
5607 (ranger_cache::entry_range): Same.
5608 (ranger_cache::exit_range): Same.
5609 (ranger_cache::edge_range): Same.
5610 (ranger_cache::range_of_expr): Same.
5611 (ranger_cache::range_on_edge): Same.
5612 (ranger_cache::block_range): Same.
5613 (ranger_cache::propagate_cache): Same.
5614 (ranger_cache::fill_block_cache): Same.
5615 (ranger_cache::range_from_dom): Same.
5616 * gimple-range-cache.h: Same.
5617 * gimple-range-edge.cc (gimple_outgoing_range::get_edge_range):
5618 Same.
5619 (gimple_outgoing_range::switch_edge_range): Same.
5620 (gimple_outgoing_range::edge_range_p): Same.
5621 * gimple-range-edge.h: Same.
5622 * gimple-range-fold.cc (fur_source::get_operand): Same.
5623 (fur_source::get_phi_operand): Same.
5624 (fur_edge::get_operand): Same.
5625 (fur_edge::get_phi_operand): Same.
5626 (fur_stmt::get_operand): Same.
5627 (fur_stmt::get_phi_operand): Same.
5628 (fur_list::fur_list): Same.
5629 (fur_list::get_operand): Same.
5630 (fur_list::get_phi_operand): Same.
5631 (fold_range): Same.
5632 (adjust_imagpart_expr): Same.
5633 (adjust_realpart_expr): Same.
5634 (gimple_range_adjustment): Same.
5635 (fold_using_range::fold_stmt): Same.
5636 (fold_using_range::range_of_range_op): Same.
5637 (fold_using_range::range_of_address): Same.
5638 (fold_using_range::range_of_phi): Same.
5639 (fold_using_range::range_of_call): Same.
5640 (fold_using_range::range_of_builtin_call): Same.
5641 (fold_using_range::range_of_builtin_int_call): Same.
5642 (fold_using_range::range_of_cond_expr): Same.
5643 (fur_source::register_outgoing_edges): Same.
5644 * gimple-range-fold.h (fold_range): Same.
5645 (gimple_range_type): Same.
5646 (gimple_range_ssa_p): Same.
5647 * gimple-range-gori.cc (gimple_range_calc_op1): Same.
5648 (gimple_range_calc_op2): Same.
5649 (gori_compute::compute_operand_range_switch): Same.
5650 (gori_compute::compute_operand_range): Same.
5651 (gori_compute::logical_combine): Same.
5652 (gori_compute::compute_logical_operands): Same.
5653 (gori_compute::compute_operand1_range): Same.
5654 (gori_compute::compute_operand2_range): Same.
5655 (gori_compute::compute_operand1_and_operand2_range): Same.
5656 (gori_compute::outgoing_edge_range_p): Same.
5657 (gori_compute::condexpr_adjust): Same.
5658 * gimple-range-gori.h (gimple_range_calc_op1): Same.
5659 (gimple_range_calc_op2): Same.
5660 * gimple-range-path.cc (path_range_query::get_cache): Same.
5661 (path_range_query::set_cache): Same.
5662 (path_range_query::range_on_path_entry): Same.
5663 (path_range_query::internal_range_of_expr): Same.
5664 (path_range_query::range_of_expr): Same.
5665 (path_range_query::ssa_range_in_phi): Same.
5666 (path_range_query::range_defined_in_block): Same.
5667 (path_range_query::compute_ranges_in_phis): Same.
5668 (path_range_query::compute_ranges_in_block): Same.
5669 (path_range_query::add_to_imports): Same.
5670 (path_range_query::range_of_stmt): Same.
5671 * gimple-range-path.h: Same.
5672 * gimple-range-infer.cc (gimple_infer_range::add_range): Same.
5673 (gimple_infer_range::~side_effect_manager): Same.
5674 (gimple_infer_range::get_nonzero): Same.
5675 (gimple_infer_range::maybe_adjust_range): Same.
5676 (gimple_infer_range::add_range): Same.
5677 * gimple-range-infer.h: Same.
5678 * gimple-range-tests.cc: Same.
5679 * gimple-range-trace.cc (range_tracer::trailer): Same.
5680 (debug_seed_ranger): Same.
5681 * gimple-range-trace.h: Same.
5682 * gimple-range.cc (gimple_ranger::range_of_expr): Same.
5683 (gimple_ranger::range_on_entry): Same.
5684 (gimple_ranger::range_on_exit): Same.
5685 (gimple_ranger::range_on_edge): Same.
5686 (gimple_ranger::fold_range_internal): Same.
5687 (gimple_ranger::range_of_stmt): Same.
5688 (gimple_ranger::prefill_name): Same.
5689 (gimple_ranger::prefill_stmt_dependencies): Same.
5690 (gimple_ranger::export_global_ranges): Same.
5691 (gimple_ranger::dump_bb): Same.
5692 * gimple-range.h: Same.
5693 * gimple-ssa-warn-access.cc (check_nul_terminated_array): Same.
5694 (memmodel_to_uhwi): Same.
5695 * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Same.
5696 (determine_value_range): Same.
5697 (record_nonwrapping_iv): Same.
5698 (infer_loop_bounds_from_signedness): Same.
5699 (scev_var_range_cant_overflow): Same.
5700 * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Same.
5701 * value-query.cc (range_query::range_on_edge): Same.
5702 (range_query::range_of_stmt): Same.
5703 (range_query::value_of_expr): Same.
5704 (range_query::value_on_edge): Same.
5705 (range_query::value_of_stmt): Same.
5706 (range_query::get_tree_range): Same.
5707 (update_global_range): Same.
5708 (get_range_global): Same.
5709 (gimple_range_global): Same.
5710 (global_range_query::range_of_expr): Same.
5711 (range_query::query_relation): Same.
5712 * value-query.h (gimple_range_global): Same.
5713 (update_global_range): Same.
5714 * vr-values.cc (vr_values::range_of_expr): Same.
5715 (bounds_of_var_in_loop): Same.
5716 (simplify_using_ranges::vrp_visit_cond_stmt): Same.
5717 * vr-values.h (class vr_values): Same.
5718 * tree-ssa-loop-unswitch.cc (unswitch_predicate): Same.
5719
5720 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
5721
5722 * gimple-range-cache.cc (sbr_vector::sbr_vector): Adjust for
5723 vrange allocator.
5724 (sbr_vector::grow): Same.
5725 (sbr_vector::set_bb_range): Same.
5726 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
5727 (sbr_sparse_bitmap::set_bb_range): Same.
5728 (block_range_cache::~block_range_cache): Same.
5729 (block_range_cache::set_bb_range): Same.
5730 (ssa_global_cache::ssa_global_cache): Same.
5731 (ssa_global_cache::~ssa_global_cache): Same.
5732 (ssa_global_cache::set_global_range): Same.
5733 * gimple-range-cache.h (block_range_cache): Same.
5734 (ssa_global_cache): Same.
5735 * gimple-range-edge.cc
5736 (gimple_outgoing_range::calc_switch_ranges): Same.
5737 * gimple-range-edge.h (gimple_outgoing_range): Same.
5738 * gimple-range-infer.cc (infer_range_manager::get_nonzero):
5739 Same.
5740 (infer_range_manager::add_range): Same.
5741 * gimple-range-infer.h (class infer_range_manager): Same.
5742 * value-range.h (class irange_allocator): Rename to...
5743 (class vrange_allocator): ...this.
5744 (irange_allocator::irange_allocator): New.
5745 (vrange_allocator::vrange_allocator): New.
5746 (irange_allocator::~irange_allocator): New.
5747 (vrange_allocator::~vrange_allocator): New.
5748 (irange_allocator::get_memory): Rename to...
5749 (vrange_allocator::alloc): ...this.
5750 (vrange_allocator::alloc_vrange): Rename from...
5751 (irange_allocator::allocate): ...this.
5752 (vrange_allocator::alloc_irange): New.
5753
5754 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
5755
5756 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
5757 vrange and convert range_op_handler function calls to use the
5758 identically named object.
5759 * gimple-range-fold.cc (gimple_range_operand1): Same.
5760 (gimple_range_operand2): Same.
5761 (fold_using_range::fold_stmt): Same.
5762 (fold_using_range::range_of_range_op): Same.
5763 (fold_using_range::range_of_builtin_ubsan_call): Same.
5764 (fold_using_range::relation_fold_and_or): Same.
5765 (fur_source::register_outgoing_edges): Same.
5766 * gimple-range-fold.h (gimple_range_handler): Remove.
5767 * gimple-range-gori.cc (gimple_range_calc_op1): Adjust for vrange.
5768 (gimple_range_calc_op2): Same.
5769 (range_def_chain::get_def_chain): Same.
5770 (gori_compute::compute_operand_range): Same.
5771 (gori_compute::condexpr_adjust): Same.
5772 * gimple-range.cc (gimple_ranger::prefill_name): Same.
5773 (gimple_ranger::prefill_stmt_dependencies): Same.
5774 * range-op.cc (get_bool_state): Same.
5775 (class operator_equal): Add using clause.
5776 (class operator_not_equal): Same.
5777 (class operator_lt): Same.
5778 (class operator_le): Same.
5779 (class operator_gt): Same.
5780 (class operator_ge): Same.
5781 (class operator_plus): Same.
5782 (class operator_minus): Same.
5783 (class operator_mult): Same.
5784 (class operator_exact_divide): Same.
5785 (class operator_lshift): Same.
5786 (class operator_rshift): Same.
5787 (class operator_cast): Same.
5788 (class operator_logical_and): Same.
5789 (class operator_bitwise_and): Same.
5790 (class operator_logical_or): Same.
5791 (class operator_bitwise_or): Same.
5792 (class operator_bitwise_xor): Same.
5793 (class operator_trunc_mod): Same.
5794 (class operator_logical_not): Same.
5795 (class operator_bitwise_not): Same.
5796 (class operator_cst): Same.
5797 (class operator_identity): Same.
5798 (class operator_unknown): Same.
5799 (class operator_abs): Same.
5800 (class operator_negate): Same.
5801 (class operator_addr_expr): Same.
5802 (class pointer_or_operator): Same.
5803 (operator_plus::op1_range): Adjust for vrange.
5804 (operator_minus::op1_range): Same.
5805 (operator_mult::op1_range): Same.
5806 (operator_cast::op1_range): Same.
5807 (operator_bitwise_not::fold_range): Same.
5808 (operator_negate::fold_range): Same.
5809 (range_op_handler): Rename to...
5810 (get_handler): ...this.
5811 (range_op_handler::range_op_handler): New.
5812 (range_op_handler::fold_range): New.
5813 (range_op_handler::op1_range): New.
5814 (range_op_handler::op2_range): New.
5815 (range_op_handler::lhs_op1_relation): New.
5816 (range_op_handler::lhs_op2_relation): New.
5817 (range_op_handler::op1_op2_relation): New.
5818 (range_cast): Adjust for vrange.
5819 * range-op.h (range_op_handler): Remove function.
5820 (range_cast): Adjust for vrange.
5821 (class range_op_handler): New.
5822 (get_bool_state): Adjust for vrange.
5823 (empty_range_varying): Same.
5824 (relop_early_resolve): Same.
5825 * tree-data-ref.cc (compute_distributive_range): Same.
5826 * tree-vrp.cc (get_range_op_handler): Remove.
5827 (range_fold_binary_symbolics_p): Use range_op_handler class
5828 instead of get_range_op_handler.
5829 (range_fold_unary_symbolics_p): Same.
5830 (range_fold_binary_expr): Same.
5831 (range_fold_unary_expr): Same.
5832 * value-query.cc (range_query::get_tree_range): Adjust for vrange.
5833
5834 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
5835
5836 * gimple-range-fold.h (gimple_range_type): Check type before
5837 calling supports_type_p.
5838 * gimple-range-path.cc (path_range_query::range_of_stmt): Same.
5839 * value-query.cc (range_query::get_tree_range): Same.
5840 * value-range.cc (Value_Range::lower_bound): New.
5841 (Value_Range::upper_bound): New.
5842 (Value_Range::dump): New.
5843 * value-range.h (class Value_Range): New.
5844 (irange::supports_type_p): Do not check if type is non-zero.
5845
5846 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
5847
5848 * value-range-equiv.cc (value_range_equiv::set): New.
5849 * value-range-equiv.h (class value_range_equiv): Make set method
5850 virtual.
5851 Remove default bitmap argument from set method.
5852 * value-range.cc (vrange::contains_p): New.
5853 (vrange::singleton_p): New.
5854 (vrange::operator=): New.
5855 (vrange::operator==): New.
5856 (irange::fits_p): Move to .cc file.
5857 (irange::set_nonnegative): New.
5858 (unsupported_range::unsupported_range): New.
5859 (unsupported_range::set): New.
5860 (unsupported_range::type): New.
5861 (unsupported_range::set_undefined): New.
5862 (unsupported_range::set_varying): New.
5863 (unsupported_range::dump): New.
5864 (unsupported_range::union_): New.
5865 (unsupported_range::intersect): New.
5866 (unsupported_range::zero_p): New.
5867 (unsupported_range::nonzero_p): New.
5868 (unsupported_range::set_nonzero): New.
5869 (unsupported_range::set_zero): New.
5870 (unsupported_range::set_nonnegative): New.
5871 (unsupported_range::fits_p): New.
5872 (irange::set): Call irange::set_undefined.
5873 (irange::verify_range): Check discriminator field.
5874 (irange::dump): Dump [irange] marker.
5875 (irange::debug): Move to...
5876 (vrange::debug): ...here.
5877 (dump_value_range): Accept vrange.
5878 (debug): Same.
5879 * value-range.h (enum value_range_discriminator): New.
5880 (class vrange): New.
5881 (class unsupported_range): New.
5882 (struct vrange_traits): New.
5883 (is_a): New.
5884 (as_a): New.
5885 (class irange): Inherit from vrange.
5886 (dump_value_range): Adjust for vrange.
5887 (irange::kind): Rename to...
5888 (vrange::kind): ...this.
5889 (irange::varying_p): Rename to...
5890 (vrange::varying_p): ...this.
5891 (irange::undefined_p): Rename to...
5892 (vrange::undefined_p): ...this.
5893 (irange::irange): Set discriminator.
5894 (irange::union_): Convert to irange before passing to irange
5895 method.
5896 (irange::intersect): Same.
5897 (vrange::supports_type_p): New.
5898 * vr-values.cc (vr_values::extract_range_from_binary_expr): Pass
5899 NULL bitmap argument to value_range_equiv::set.
5900 (vr_values::extract_range_basic): Same.
5901
5902 2022-06-01 Richard Biener <rguenther@suse.de>
5903
5904 PR tree-optimization/105763
5905 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
5906 Check gimple_range_ssa_p.
5907
5908 2022-05-31 Jason Merrill <jason@redhat.com>
5909
5910 * Makefile.in (TAGS): Look at libcpp/*.cc.
5911
5912 2022-05-31 Christophe Lyon <christophe.lyon@arm.com>
5913
5914 * config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr):
5915 Prefix mode names with E_.
5916
5917 2022-05-31 Alan Modra <amodra@gmail.com>
5918
5919 * dwarf2out.cc (gen_namelist_decl): Adjust to suit correct
5920 spelling of DW_AT_namelist_item.
5921
5922 2022-05-31 Jakub Jelinek <jakub@redhat.com>
5923
5924 * omp-low.cc (build_outer_var_ref): For code == OMP_CLAUSE_ALLOCATE
5925 allow var to be private in the outer context.
5926 (lower_private_allocate): Pass OMP_CLAUSE_ALLOCATE as last argument
5927 to build_outer_var_ref.
5928
5929 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
5930
5931 * config/i386/i386.cc (ix86_modes_tieable_p): Allow SCmode to be
5932 tieable with DImode on TARGET_64BIT, and SCmode tieable with
5933 V2SFmode, and DCmode with V2DFmode.
5934
5935 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
5936
5937 PR rtl-optimization/101617
5938 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Add a
5939 special case (indicated by negate_cc_compare_p) to generate a
5940 -1/0 mask using neg;sbb.
5941 * config/i386/i386.md (x86_neg<mode>_ccc): New define_expand
5942 to generate an *x86_neg<mode>_ccc instruction.
5943 (x86_mov<mode>cc_0_m1_neg): Likewise, a new define_expand to
5944 generate a *x86_mov<mode>cc_0_m1_neg instruction.
5945
5946 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
5947
5948 * rtlanal.cc (rtx_cost) <MULT>: Treat FMA, SS_MULT, US_MULT,
5949 SMUL_HIGHPART and UMUL_HIGHPART as having the same cost as MULT.
5950 <DIV>: Likewise, SS_DIV and US_DIV have the same default as DIV.
5951
5952 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
5953
5954 PR target/70321
5955 * config/i386/i386-expand.cc (ix86_expand_branch): Don't decompose
5956 DI mode equality/inequality using XOR here. Instead generate a
5957 COMPARE for doubleword modes (DImode on !TARGET_64BIT or TImode).
5958 * config/i386/i386-features.cc (gen_gpr_to_xmm_move_src): Use
5959 gen_rtx_SUBREG when NUNITS is 1, i.e. for TImode to V1TImode.
5960 (general_scalar_chain::convert_compare): New function to convert
5961 scalar equality/inequality comparison into vector operations.
5962 (general_scalar_chain::convert_insn) [COMPARE]: Refactor. Call
5963 new convert_compare helper method.
5964 (convertible_comparion_p): Update to match doubleword COMPARE
5965 of two register, memory or integer constant operands.
5966 * config/i386/i386-features.h (general_scalar_chain::convert_compare):
5967 Prototype/declare member function here.
5968 * config/i386/i386.md (cstore<mode>4): Change mode to SDWIM, but
5969 only allow new doubleword modes for EQ and NE operators.
5970 (*cmp<dwi>_doubleword): New define_insn_and_split, to split a
5971 doubleword comparison into a pair of XORs followed by an IOR to
5972 set the (zero) flags register, optimizing the XORs if possible.
5973 * config/i386/sse.md (V_AVX): Include V1TI and V2TI in mode
5974 iterator; V_AVX is (currently) only used by ptest.
5975 (sse4_1 mode attribute): Update to support V1TI and V2TI.
5976
5977 2022-05-30 Uroš Bizjak <ubizjak@gmail.com>
5978
5979 * config/i386/i386.md: Remove constraints when used with
5980 const_int_operand, const0_operand, const_1_operand, constm1_operand,
5981 const8_operand, const128_operand, const248_operand, const123_operand,
5982 const2367_operand, const1248_operand, const359_operand,
5983 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
5984 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
5985 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
5986 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
5987 const_0_to_255_mul_8_operand, const_1_to_31_operand,
5988 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
5989 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
5990 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
5991 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
5992 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
5993 const_24_to_27_operand and const_28_to_31_operand.
5994 * config/i386/mmx.md: Ditto.
5995 * config/i386/sse.md: Ditto.
5996 * config/i386/subst.md: Ditto.
5997 * config/i386/sync.md: Ditto.
5998
5999 2022-05-30 Jan Beulich <jbeulich@suse.com>
6000
6001 * config/i386/i386.md (bmi2_umul<mode><dwi>3_1): Correct MEM_P()
6002 arguments.
6003
6004 2022-05-30 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6005
6006 * config/arm/arm.cc (arm_vectorize_vec_perm_const): Adjust prototype.
6007
6008 2022-05-29 Iain Sandoe <iain@sandoe.co.uk>
6009
6010 PR target/105599
6011 * config/darwin.h: Move versions-specific handling of multiply_defined
6012 from SUBTARGET_DRIVER_SELF_SPECS to LINK_SPEC.
6013
6014 2022-05-29 Eric Gallager <egallager@gcc.gnu.org>
6015
6016 PR other/82383
6017 * doc/sourcebuild.texi: Add entries for the c++tools,
6018 gotools, libbacktrace, libcc1, libcody, liboffloadmic,
6019 and libsanitizer directories. Remove entry for boehm-gc.
6020 Fix alphabetization for libquadmath.
6021
6022 2022-05-28 Joel Holdsworth <jholdsworth@nvidia.com>
6023
6024 * config/avr/avr-mcus.def: Add device definitions.
6025 * doc/avr-mmcu.texi: Corresponding changes.
6026 * config/avr/gen-avr-mmcu-texi.cc: Added support for avr
6027 device prefix.
6028 * config/avr/gen-avr-mmcu-specs.cc: Prevent -mmcu=avr* flags
6029 from leaking into cc1.
6030
6031 2022-05-28 Vladimir Makarov <vmakarov@gcc.gnu.org>
6032
6033 PR target/103722
6034 * config/sh/sh.cc (sh_register_move_cost): Avoid cost "2" (which
6035 is special) for various scenarios.
6036
6037 2022-05-28 Iain Sandoe <iain@sandoe.co.uk>
6038
6039 * config/darwin.h (REAL_LIBGCC_SPEC): Update the comment block
6040 describing this macro.
6041
6042 2022-05-27 Richard Biener <rguenther@suse.de>
6043
6044 * tree-dfa.cc (get_ref_base_and_extent): Avoid shift.
6045
6046 2022-05-27 Martin Jambor <mjambor@suse.cz>
6047
6048 PR ipa/105639
6049 * ipa-prop.cc (propagate_controlled_uses): Check type of the
6050 constant before adding a LOAD reference.
6051
6052 2022-05-27 Jakub Jelinek <jakub@redhat.com>
6053
6054 * tree-core.h (enum omp_clause_code): Rename OMP_CLAUSE_TO_DECLARE
6055 to OMP_CLAUSE_ENTER.
6056 * tree.h (OMP_CLAUSE_ENTER_TO): Define.
6057 * tree.cc (omp_clause_num_ops, omp_clause_code_name): Rename
6058 OMP_CLAUSE_TO_DECLARE to OMP_CLAUSE_ENTER.
6059 * tree-pretty-print.cc (dump_omp_clause): Handle OMP_CLAUSE_ENTER
6060 instead of OMP_CLAUSE_TO_DECLARE, if OMP_CLAUSE_ENTER_TO, print
6061 "to" instead of "enter".
6062 * tree-nested.cc (convert_nonlocal_omp_clauses,
6063 convert_local_omp_clauses): Handle OMP_CLAUSE_ENTER instead of
6064 OMP_CLAUSE_TO_DECLARE.
6065
6066 2022-05-27 Richard Biener <rguenther@suse.de>
6067
6068 PR tree-optimization/105726
6069 * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
6070 Constrain array-of-flexarray case more.
6071
6072 2022-05-27 Jakub Jelinek <jakub@redhat.com>
6073
6074 PR sanitizer/105729
6075 * fold-const.cc (fold_unary_loc): Don't optimize (X &) ((Y *) z + w)
6076 to (X &) z + w if -fsanitize=null during GENERIC folding.
6077
6078 2022-05-27 Roger Sayle <roger@nextmovesoftware.com>
6079
6080 * match.pd (match_zero_one_valued_p): New predicate.
6081 (mult @0 @1): Use zero_one_valued_p for optimization to the
6082 expression "bit_and @0 @1".
6083 (bit_and (negate zero_one_valued_p@0) @1): Optimize to MULT_EXPR.
6084 (plus @0 (mult (minus @1 @0) zero_one_valued_p@2)): New transform.
6085 (minus @0 (mult (minus @0 @1) zero_one_valued_p@2)): Likewise.
6086 (bit_xor @0 (mult (bit_xor @0 @1) zero_one_valued_p@2)): Likewise.
6087 Remove three redundant transforms obsoleted by the three above.
6088
6089 2022-05-27 Roger Sayle <roger@nextmovesoftware.com>
6090
6091 * config/i386/i386.md (*test<mode>_not): New define_insn_and_split
6092 to split a combined "and;cmp" sequence into "not;test".
6093
6094 2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
6095
6096 * config/xtensa/xtensa.md (bswapsi2): New expansion pattern.
6097 (bswapsi2_internal): Revise the template and condition, and add
6098 detection code for preceding the same insn in order to omit a
6099 "SSAI 8" instruction of the latter.
6100 (bswapdi2): Suppress built-in insn expansion with the corresponding
6101 library call when optimizing for size.
6102
6103 2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
6104
6105 * config/xtensa/xtensa-protos.h
6106 (xtensa_expand_block_set_unrolled_loop,
6107 xtensa_expand_block_set_small_loop): New prototypes.
6108 * config/xtensa/xtensa.cc (xtensa_sizeof_MOVI,
6109 xtensa_expand_block_set_unrolled_loop,
6110 xtensa_expand_block_set_small_loop): New functions.
6111 * config/xtensa/xtensa.md (setmemsi): New expansion pattern.
6112 * config/xtensa/xtensa.opt (mlongcalls): Add target mask.
6113
6114 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
6115
6116 * config/xtensa/xtensa.cc (xtensa_expand_block_move):
6117 Make instruction counting more accurate, and simplify emitting insns.
6118
6119 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
6120
6121 * config/xtensa/constraints.md (M, O): Use the macro.
6122 * config/xtensa/predicates.md (addsubx_operand, extui_fldsz_operand,
6123 sext_fldsz_operand): Ditto.
6124 * config/xtensa/xtensa.cc (xtensa_simm8, xtensa_simm8x256,
6125 xtensa_simm12b, xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4,
6126 xtensa_mask_immediate, smalloffset_mem_p, printx, xtensa_call_save_reg,
6127 xtensa_expand_prologue): Ditto.
6128 * config/xtensa/xtensa.h (FUNCTION_ARG_REGNO_P): Ditto.
6129
6130 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
6131
6132 * config/xtensa/predicates.md (extui_fldsz_operand): Simplify.
6133 * config/xtensa/xtensa.cc (xtensa_mask_immediate, print_operand):
6134 Ditto.
6135
6136 2022-05-25 Andrew MacLeod <amacleod@redhat.com>
6137
6138 * gimple-range-cache.cc: Adjust comments.
6139 * gimple-range-infer.cc: Adjust comments.
6140 * gimple-range-infer.h: Adjust comments.
6141 * gimple-range.cc: Adjust comments.
6142
6143 2022-05-25 Andrew MacLeod <amacleod@redhat.com>
6144
6145 * Makefile.in (OBJS): Use gimple-range-infer.o.
6146 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Change msg.
6147 (ranger_cache::range_from_dom): Rename var side_effect to infer.
6148 (ranger_cache::apply_inferred_ranges): Rename from apply_side_effects.
6149 * gimple-range-cache.h: Include gimple-range-infer.h.
6150 (class ranger_cache): Adjust prototypes, use infer_range_manager.
6151 * gimple-range-infer.cc: Rename from gimple-range-side-effects.cc.
6152 (gimple_infer_range::*): Rename from stmt_side_effects.
6153 (infer_range_manager::*): Rename from side_effect_manager.
6154 * gimple-range-side-effect.cc: Rename.
6155 * gimple-range-side-effect.h: Rename.
6156 * gimple-range-infer.h: Rename from gimple-range-side-effects.h.
6157 (class gimple_infer_range): Rename from stmt_side_effects.
6158 (class infer_range_manager): Rename from side_effect_manager.
6159 * gimple-range.cc (gimple_ranger::register_inferred_ranges): Rename
6160 from register_side_effects.
6161 * gimple-range.h (register_inferred_ranges): Adjust prototype.
6162 * range-op.h: Adjust comment.
6163 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Use register_inferred_ranges.
6164 (rvrp_folder::post_fold_bb): Use register_inferred_ranges.
6165
6166 2022-05-25 Simon Cook <simon.cook@embecosm.com>
6167
6168 * config/riscv/arch-canonicalize: Only add mafd extension if
6169 base was rv32/rv64g.
6170
6171 2022-05-25 Tobias Burnus <tobias@codesourcery.com>
6172
6173 * doc/invoke.texi (AMD GCN Options): Add gfx908/gfx90a.
6174
6175 2022-05-25 Jakub Jelinek <jakub@redhat.com>
6176
6177 PR sanitizer/105714
6178 * asan.cc (has_stmt_been_instrumented_p): For assignments which
6179 are both stores and loads, return true only if both destination
6180 and source have been instrumented.
6181
6182 2022-05-25 Martin Liska <mliska@suse.cz>
6183 Richard Biener <rguenther@suse.de>
6184
6185 * dbgcnt.def (DEBUG_COUNTER): Add loop_unswitch counter.
6186 * params.opt (max-unswitch-level): Remove.
6187 * doc/invoke.texi (max-unswitch-level): Likewise.
6188 * tree-cfg.cc (gimple_lv_add_condition_to_bb): Support not
6189 gimplified expressions.
6190 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): New.
6191 (tree_may_unswitch_on): Rename to ...
6192 (find_unswitching_predicates_for_bb): ... this and handle
6193 switch statements.
6194 (get_predicates_for_bb): Likewise.
6195 (set_predicates_for_bb): Likewise.
6196 (init_loop_unswitch_info): Likewise.
6197 (tree_ssa_unswitch_loops): Prepare stuff before calling
6198 tree_unswitch_single_loop.
6199 (tree_unswitch_single_loop): Rework the function using
6200 pre-computed predicates and with a per original loop cost model.
6201 (merge_last): New.
6202 (add_predicate_to_path): Likewise.
6203 (find_range_for_lhs): Likewise.
6204 (simplify_using_entry_checks): Rename to ...
6205 (evaluate_control_stmt_using_entry_checks): ... this, handle
6206 switch statements and improve simplifications using ranger.
6207 (simplify_loop_version): Rework using
6208 evaluate_control_stmt_using_entry_checks.
6209 (evaluate_bbs): New.
6210 (evaluate_loop_insns_for_predicate): Likewise.
6211 (tree_unswitch_loop): Adjust to allow switch statements and
6212 pass in the edge to unswitch.
6213 (clean_up_after_unswitching): New.
6214 (pass_tree_unswitch::execute): Pass down fun.
6215
6216 2022-05-24 Eugene Rozenfeld <erozen@microsoft.com>
6217
6218 * tree-vect-loop-manip.cc (vect_do_peeling): Save/restore profile
6219 counts for the epilog loop.
6220
6221 2022-05-24 Martin Sebor <msebor@redhat.com>
6222 Richard Biener <rguenther@suse.de>
6223
6224 PR middle-end/105604
6225 * gimple-ssa-sprintf.cc (set_aggregate_size_and_offset): Add comments.
6226 (get_origin_and_offset_r): Remove null handling. Handle variable array
6227 sizes.
6228 (get_origin_and_offset): Handle null argument here. Simplify.
6229 (alias_offset): Update comment.
6230 * pointer-query.cc (field_at_offset): Update comment. Handle members
6231 of variable-length types.
6232
6233 2022-05-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6234
6235 * target.def (vec_perm_const): Define new parameter op_mode and
6236 update doc.
6237 * doc/tm.texi: Regenerate.
6238 * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Adjust
6239 vec_perm_const hook to add new parameter op_mode and return false
6240 if result and operand modes do not match.
6241 * config/arm/arm.cc (arm_vectorize_vec_perm_const): Likewise.
6242 * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Likewise.
6243 * config/ia64/ia64.cc (ia64_vectorize_vec_perm_const): Likewise.
6244 * config/mips/mips.cc (mips_vectorize_vec_perm_const): Likewise.
6245 * config/rs6000/rs6000.cc (rs6000_vectorize_vec_perm_const): Likewise
6246 * config/s390/s390.cc (s390_vectorize_vec_perm_const): Likewise.
6247 * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Likewise.
6248 * config/i386/i386-expand.cc (ix86_vectorize_vec_perm_const): Likewise.
6249 * config/i386/i386-expand.h (ix86_vectorize_vec_perm_const): Adjust
6250 prototype.
6251 * config/i386/sse.md (ashrv4di3): Adjust call to vec_perm_const hook.
6252 (ashrv2di3): Likewise.
6253 * optabs.cc (expand_vec_perm_const): Likewise.
6254 * optabs-query.h (can_vec_perm_const_p): Adjust prototype.
6255 * optabs-query.cc (can_vec_perm_const_p): Define new parameter
6256 op_mode and pass it to vec_perm_const hook.
6257 (can_mult_highpart_p): Adjust call to can_vec_perm_const_p.
6258 * match.pd (vec_perm X Y CST): Likewise.
6259 * tree-ssa-forwprop.cc (simplify_vector_constructor): Likewise.
6260 * tree-vect-data-refs.cc (vect_grouped_store_supported): Likewise.
6261 (vect_grouped_load_supported): Likewise.
6262 (vect_shift_permute_load_chain): Likewise.
6263 * tree-vect-generic.cc (lower_vec_perm): Likewise.
6264 * tree-vect-loop-manip.cc (interleave_supported_p): Likewise.
6265 * tree-vect-loop.cc (have_whole_vector_shift): Likewise.
6266 * tree-vect-patterns.cc (vect_recog_rotate_pattern): Likewise.
6267 * tree-vect-slp.cc (can_duplicate_and_interleave_p): Likewise.
6268 (vect_transform_slp_perm_load): Likewise.
6269 (vectorizable_slp_permutation): Likewise.
6270 * tree-vect-stmts.cc (perm_mask_for_reverse): Likewise.
6271 (vectorizable_bswap): Likewise.
6272 (scan_store_can_perm_p): Likewise.
6273 (vect_gen_perm_mask_checked): Likewise.
6274
6275 2022-05-24 H.J. Lu <hjl.tools@gmail.com>
6276
6277 PR target/104816
6278 * config/i386/i386.opt: Remove Undocumented.
6279 * doc/invoke.texi: Document -mcet-switch.
6280
6281 2022-05-24 Andrew Stubbs <ams@codesourcery.com>
6282
6283 * config.gcc (amdgcn): Accept --with-arch=gfx908 and gfx90a.
6284 * config/gcn/gcn-opts.h (enum gcn_isa): New.
6285 (TARGET_GCN3): Use enum gcn_isa.
6286 (TARGET_GCN3_PLUS): Likewise.
6287 (TARGET_GCN5): Likewise.
6288 (TARGET_GCN5_PLUS): Likewise.
6289 (TARGET_CDNA1): New.
6290 (TARGET_CDNA1_PLUS): New.
6291 (TARGET_CDNA2): New.
6292 (TARGET_CDNA2_PLUS): New.
6293 (TARGET_M0_LDS_LIMIT): New.
6294 (TARGET_PACKED_WORK_ITEMS): New.
6295 * config/gcn/gcn.cc (gcn_isa): Change to enum gcn_isa.
6296 (gcn_option_override): Recognise CDNA ISA variants.
6297 (gcn_omp_device_kind_arch_isa): Support gfx90a.
6298 (gcn_expand_prologue): Make m0 init optional.
6299 Add support for packed work items.
6300 (output_file_start): Support gfx90a.
6301 (gcn_hsa_declare_function_name): Support gfx90a metadata.
6302 * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS):Add __CDNA1__ and
6303 __CDNA2__.
6304 * config/gcn/gcn.md (<su>mulsi3_highpart): Use TARGET_GCN5_PLUS.
6305 (<su>mulsi3_highpart_imm): Likewise.
6306 (<su>mulsidi3): Likewise.
6307 (<su>mulsidi3_imm): Likewise.
6308 * config/gcn/gcn.opt (gpu_type): Add gfx90a.
6309 * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX90a): New.
6310 (main): Support gfx90a.
6311 * config/gcn/t-gcn-hsa: Add gfx90a multilib.
6312 * config/gcn/t-omp-device: Add gfx90a isa.
6313
6314 2022-05-24 Andrew Stubbs <ams@codesourcery.com>
6315
6316 * config.in: Regenerate.
6317 * config/gcn/gcn-hsa.h (X_FIJI): Delete.
6318 (X_900): Delete.
6319 (X_906): Delete.
6320 (X_908): Delete.
6321 (S_FIJI): Delete.
6322 (S_900): Delete.
6323 (S_906): Delete.
6324 (S_908): Delete.
6325 (NO_XNACK): New macro.
6326 (NO_SRAM_ECC): New macro.
6327 (SRAMOPT): Keep only v4 variant.
6328 (HSACO3_SELECT_OPT): Delete.
6329 (DRIVER_SELF_SPECS): Delete.
6330 (ASM_SPEC): Remove LLVM 9 support.
6331 * config/gcn/gcn-valu.md
6332 (gather<mode>_insn_2offsets<exec>): Remove assembler bug workaround.
6333 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
6334 * config/gcn/gcn.cc (output_file_start): Remove LLVM 9 support.
6335 (print_operand_address): Remove assembler bug workaround.
6336 * config/gcn/mkoffload.cc (EF_AMDGPU_XNACK_V3): Delete.
6337 (EF_AMDGPU_SRAM_ECC_V3): Delete.
6338 (SET_XNACK_ON): Delete v3 variants.
6339 (SET_XNACK_OFF): Delete v3 variants.
6340 (TEST_XNACK): Delete v3 variants.
6341 (SET_SRAM_ECC_ON): Delete v3 variants.
6342 (SET_SRAM_ECC_ANY): Delete v3 variants.
6343 (SET_SRAM_ECC_OFF): Delete v3 variants.
6344 (SET_SRAM_ECC_UNSUPPORTED): Delete v3 variants.
6345 (TEST_SRAM_ECC_ANY): Delete v3 variants.
6346 (TEST_SRAM_ECC_ON): Delete v3 variants.
6347 (copy_early_debug_info): Remove v3 support.
6348 (main): Remove v3 support.
6349 * configure: Regenerate.
6350 * configure.ac: Replace all GCN feature checks with a version check.
6351
6352 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
6353
6354 * config/i386/i386.md (peephole2): Convert xor;neg;adc;neg,
6355 i.e. a double word negation of a zero extended operand, to
6356 neg;sbb.
6357
6358 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
6359
6360 PR tree-optimization/105668
6361 * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Support
6362 V1TImode, just like V2DImode.
6363 * config/i386/sse.md (vcond_mask_<mode><sseintvecmodelower>):
6364 Use VI_128 mode iterator instead of VI124_128 to include V2DI.
6365 (vcond_mask_v2div2di): Delete.
6366 (vcond_mask_v1tiv1ti): New define_expand.
6367
6368 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
6369
6370 * genpreds.cc (write_lookup_constraint_1): Avoid generating a call
6371 to strncmp for strings of length one.
6372
6373 2022-05-24 ShiYulong <shiyulong@iscas.ac.cn>
6374
6375 * config/riscv/predicates.md (imm5_operand): Add a new operand type for
6376 prefetch instructions.
6377 * config/riscv/riscv-builtins.cc (AVAIL): Add new AVAILs for CMO ISA
6378 Extensions.
6379 (RISCV_ATYPE_SI): New.
6380 (RISCV_ATYPE_DI): New.
6381 * config/riscv/riscv-ftypes.def (0): New.
6382 (1): New.
6383 * config/riscv/riscv.md (riscv_clean_<mode>): New.
6384 (riscv_flush_<mode>): New.
6385 (riscv_inval_<mode>): New.
6386 (riscv_zero_<mode>): New.
6387 (prefetch): New.
6388 (riscv_prefetchi_<mode>): New.
6389 * config/riscv/riscv-cmo.def: New file.
6390
6391 2022-05-24 ShiYulong <shiyulong@iscas.ac.cn>
6392
6393 * common/config/riscv/riscv-common.cc: Add zicbom, zicboz, zicbop extensions.
6394 * config/riscv/riscv-opts.h (MASK_ZICBOZ): New.
6395 (MASK_ZICBOM): New.
6396 (MASK_ZICBOP): New.
6397 (TARGET_ZICBOZ): New.
6398 (TARGET_ZICBOM): New.
6399 (TARGET_ZICBOP): New.
6400 * config/riscv/riscv.opt (riscv_zicmo_subext): New.
6401
6402 2022-05-24 David Malcolm <dmalcolm@redhat.com>
6403
6404 * tree-vect-slp-patterns.cc: Add "final" and "override" to
6405 vect_pattern::build impls as appropriate.
6406
6407 2022-05-24 David Malcolm <dmalcolm@redhat.com>
6408
6409 * ipa-cp.cc: Add "final" and "override" to call_summary_base vfunc
6410 implementations, removing redundant "virtual" as appropriate.
6411 * ipa-fnsummary.h: Likewise.
6412 * ipa-modref.cc: Likewise.
6413 * ipa-param-manipulation.cc: Likewise.
6414 * ipa-profile.cc: Likewise.
6415 * ipa-prop.h: Likewise.
6416 * ipa-pure-const.cc: Likewise.
6417 * ipa-reference.cc: Likewise.
6418 * ipa-sra.cc: Likewise.
6419 * symbol-summary.h: Likewise.
6420 * symtab-thunks.cc: Likewise.
6421
6422 2022-05-24 Martin Liska <mliska@suse.cz>
6423
6424 Revert:
6425 2022-05-24 Martin Liska <mliska@suse.cz>
6426
6427 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
6428 warning.
6429
6430 2022-05-24 Martin Liska <mliska@suse.cz>
6431
6432 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
6433 warning.
6434
6435 2022-05-24 Bruno Haible <bruno@clisp.org>
6436
6437 PR other/105527
6438 * doc/install.texi (Configuration): Add more details about --with-zstd.
6439 Document --with-zstd-include and --with-zstd-lib
6440
6441 2022-05-24 Richard Biener <rguenther@suse.de>
6442
6443 PR middle-end/105711
6444 * expmed.cc (extract_bit_field_as_subreg): Add op0_mode parameter
6445 and use it.
6446 (extract_bit_field_1): Pass down the mode of op0 to
6447 extract_bit_field_as_subreg.
6448
6449 2022-05-24 Vineet Gupta <vineetg@rivosinc.com>
6450
6451 * config/riscv/riscv.cc: (struct riscv_tune_param): Add
6452 fmv_cost.
6453 (rocket_tune_info): Add default fmv_cost 8.
6454 (sifive_7_tune_info): Ditto.
6455 (thead_c906_tune_info): Ditto.
6456 (optimize_size_tune_info): Ditto.
6457 (riscv_register_move_cost): Use fmv_cost for int<->fp moves.
6458
6459 2022-05-24 Jakub Jelinek <jakub@redhat.com>
6460
6461 PR c/105378
6462 * omp-builtins.def (BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT): New
6463 builtin.
6464 * gimplify.cc (gimplify_omp_task): Diagnose taskwait with nowait
6465 clause but no depend clauses.
6466 * omp-expand.cc (expand_taskwait_call): Use
6467 BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT rather than
6468 BUILT_IN_GOMP_TASKWAIT_DEPEND if nowait clause is present.
6469
6470 2022-05-24 Richard Biener <rguenther@suse.de>
6471
6472 PR tree-optimization/100221
6473 * tree-ssa-dse.cc (contains_phi_arg): New function.
6474 (dse_classify_store): Postpone PHI defs that feed another PHI in defs.
6475
6476 2022-05-24 Richard Biener <rguenther@suse.de>
6477
6478 PR tree-optimization/105629
6479 * tree-ssa-phiopt.cc (spaceship_replacement): Allow
6480 a sign-extending conversion.
6481
6482 2022-05-24 Kewen Lin <linkw@linux.ibm.com>
6483
6484 PR target/105627
6485 * config/rs6000/rs6000-p8swap.cc (union_defs): Assert def_insn can't
6486 be a debug insn.
6487 (union_uses): Skip debug use_insn.
6488
6489 2022-05-23 Vineet Gupta <vineetg@rivosinc.com>
6490
6491 * config/riscv/predicates.md (const_0_operand): Remove
6492 const_double.
6493 * config/riscv/riscv.cc (riscv_rtx_costs): Add check for
6494 CONST_DOUBLE.
6495 * config/riscv/riscv.h (TARGET_SUPPORTS_WIDE_INT): New define.
6496
6497 2022-05-23 Mayshao <mayshao-oc@zhaoxin.com>
6498
6499 * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Detect
6500 the specific type of Zhaoxin CPU, and return Zhaoxin CPU name.
6501 (cpu_indicator_init): Handle Zhaoxin processors.
6502 * common/config/i386/i386-common.cc: Add lujiazui.
6503 * common/config/i386/i386-cpuinfo.h (enum processor_vendor): Add
6504 VENDOR_ZHAOXIN.
6505 (enum processor_types): Add ZHAOXIN_FAM7H.
6506 (enum processor_subtypes): Add ZHAOXIN_FAM7H_LUJIAZUI.
6507 * config.gcc: Add lujiazui.
6508 * config/i386/cpuid.h (signature_SHANGHAI_ebx): Add
6509 Signatures for zhaoxin
6510 (signature_SHANGHAI_ecx): Ditto.
6511 (signature_SHANGHAI_edx): Ditto.
6512 * config/i386/driver-i386.cc (host_detect_local_cpu): Let
6513 -march=native recognize lujiazui processors.
6514 * config/i386/i386-c.cc (ix86_target_macros_internal): Add lujiazui.
6515 * config/i386/i386-options.cc (m_LUJIAZUI): New_definition.
6516 * config/i386/i386.h (enum processor_type): Ditto.
6517 * config/i386/i386.md: Add lujiazui.
6518 * config/i386/x86-tune-costs.h (struct processor_costs): Add
6519 lujiazui costs.
6520 * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add lujiazui.
6521 (ix86_adjust_cost): Ditto.
6522 * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Add lujiazui Tunnings.
6523 (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto.
6524 (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Ditto.
6525 (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Ditto.
6526 (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Ditto.
6527 (X86_TUNE_MOVX): Ditto.
6528 (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto.
6529 (X86_TUNE_FUSE_CMP_AND_BRANCH_32): Ditto.
6530 (X86_TUNE_FUSE_CMP_AND_BRANCH_64): Ditto.
6531 (X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS): Ditto.
6532 (X86_TUNE_FUSE_ALU_AND_BRANCH): Ditto.
6533 (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Ditto.
6534 (X86_TUNE_USE_LEAVE): Ditto.
6535 (X86_TUNE_PUSH_MEMORY): Ditto.
6536 (X86_TUNE_LCP_STALL): Ditto.
6537 (X86_TUNE_USE_INCDEC): Ditto.
6538 (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto.
6539 (X86_TUNE_OPT_AGU): Ditto.
6540 (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): Ditto.
6541 (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Ditto.
6542 (X86_TUNE_USE_SAHF): Ditto.
6543 (X86_TUNE_USE_BT): Ditto.
6544 (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Ditto.
6545 (X86_TUNE_ONE_IF_CONV_INSN): Ditto.
6546 (X86_TUNE_AVOID_MFENCE): Ditto.
6547 (X86_TUNE_EXPAND_ABS): Ditto.
6548 (X86_TUNE_USE_SIMODE_FIOP): Ditto.
6549 (X86_TUNE_USE_FFREEP): Ditto.
6550 (X86_TUNE_EXT_80387_CONSTANTS): Ditto.
6551 (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Ditto.
6552 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto.
6553 (X86_TUNE_SSE_TYPELESS_STORES): Ditto.
6554 (X86_TUNE_SSE_LOAD0_BY_PXOR): Ditto.
6555 * doc/extend.texi: Add details about lujiazui.
6556 * doc/invoke.texi: Add details about lujiazui.
6557 * config/i386/lujiazui.md: Introduce lujiazui cpu and include new md file.
6558
6559 2022-05-23 Martin Liska <mliska@suse.cz>
6560
6561 * config/tilepro/gen-mul-tables.cc (ARRAY_SIZE): Add new macro.
6562
6563 2022-05-23 Richard Biener <rguenther@suse.de>
6564
6565 * tree-ssa-forwprop.cc (forward_propagate_into_cond): Remove.
6566 (pass_forwprop::execute): Do not propagate into COND_EXPR conditions.
6567
6568 2022-05-23 Richard Biener <rguenther@suse.de>
6569
6570 * gimple-expr.cc (is_gimple_condexpr): Remove.
6571 * gimple-expr.h (is_gimple_condexpr): Likewise.
6572 * gimplify.cc (gimplify_expr): Remove is_gimple_condexpr usage.
6573 * tree-if-conv.cc (set_bb_predicate): Likewie.
6574 (add_to_predicate_list): Likewise.
6575 (gen_phi_arg_condition): Likewise.
6576 (predicate_scalar_phi): Likewise.
6577 (predicate_statements): Likewise.
6578
6579 2022-05-23 Richard Biener <rguenther@suse.de>
6580
6581 * gimple-expr.cc (is_gimple_condexpr): Equate to is_gimple_val.
6582 * gimplify.cc (gimplify_pure_cond_expr): Gimplify the condition
6583 as is_gimple_val.
6584 * gimple-fold.cc (valid_gimple_rhs_p): Simplify.
6585 * tree-cfg.cc (verify_gimple_assign_ternary): Likewise.
6586 * gimple-loop-interchange.cc (loop_cand::undo_simple_reduction):
6587 Build the condition of the COND_EXPR separately.
6588 * tree-ssa-loop-im.cc (move_computations_worker): Likewise.
6589 * tree-vect-generic.cc (expand_vector_condition): Likewise.
6590 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
6591 Likewise.
6592 * vr-values.cc (simplify_using_ranges::simplify): Likewise.
6593 * tree-vect-patterns.cc: Add comment indicating we are
6594 building invalid COND_EXPRs and why.
6595 * omp-expand.cc (expand_omp_simd): Gimplify the condition
6596 to the COND_EXPR separately.
6597 (expand_omp_atomic_cas): Note part that should be unreachable
6598 now.
6599 * tree-ssa-forwprop.cc (forward_propagate_into_cond): Adjust
6600 condition for valid replacements.
6601 * tree-if-conv.cc (predicate_bbs): Simulate previous
6602 re-folding of the condition in folded COND_EXPRs which
6603 is necessary because of unfolded GIMPLE_CONDs in the IL
6604 as in for example gcc.dg/fold-bopcond-1.c.
6605 * gimple-range-gori.cc (gori_compute::condexpr_adjust):
6606 Handle that the comparison is now in the def stmt of
6607 the select operand. Required by gcc.dg/pr104526.c.
6608
6609 2022-05-23 Tobias Burnus <tobias@codesourcery.com>
6610
6611 PR fortran/104949
6612 * langhooks-def.h (lhd_omp_array_size): New.
6613 (LANG_HOOKS_OMP_ARRAY_SIZE): Define.
6614 (LANG_HOOKS_DECLS): Add it.
6615 * langhooks.cc (lhd_omp_array_size): New.
6616 * langhooks.h (struct lang_hooks_for_decls): Add hook.
6617 * omp-low.cc (scan_sharing_clauses, lower_omp_target):
6618 Handle GOMP_MAP_FIRSTPRIVATE for array descriptors.
6619
6620 2022-05-23 Roger Sayle <roger@nextmovesoftware.com>
6621
6622 * config/i386/i386.cc (ix86_rtx_costs) <case AND>: Split from
6623 XOR/IOR case. Account for two instructions for double-word
6624 operations. In case of vector pandn, account for single
6625 instruction. Likewise for integer andn with TARGET_BMI.
6626 <case NOT>: Vector NOT requires more than 1 instruction (pxor).
6627 <case NEG>: Double-word negation requires 3 instructions.
6628
6629 2022-05-23 Tsukasa OI <research_trasio@irq.a4lg.com>
6630
6631 * common/config/riscv/riscv-common.cc (riscv_supported_std_ext):
6632 Fix "K" extension prefix to be placed before "J".
6633 * config/riscv/arch-canonicalize: Likewise.
6634
6635 2022-05-23 liuhongt <hongtao.liu@intel.com>
6636
6637 * config/i386/x86-tune-costs.h (skylake_cost): Increase gpr
6638 <-> mask cost from 5 to 6.
6639 (icelake_cost): Ditto.
6640
6641 2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com>
6642
6643 * config/aarch64/aarch64.md
6644 (and_<SHIFT:optab><mode>3_compare0): Support rotate left.
6645 (and_<SHIFT:optab>si3_compare0_uxtw): Likewise.
6646 (<LOGICAL:optab>_<SHIFT:optab><mode>3): Likewise.
6647 (<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): Likewise.
6648 (one_cmpl_<optab><mode>2): Likewise.
6649 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Likewise.
6650 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab>sidi_uxtw): New pattern.
6651 (eor_one_cmpl_<SHIFT:optab><mode>3_alt): Support rotate left.
6652 (eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
6653 (and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
6654 (and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
6655 (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse): Likewise.
6656 (and_<SHIFT:optab><mode>3nr_compare0): Likewise.
6657 (*<optab>si3_insn_uxtw): Use SHIFT_no_rotate.
6658 (rolsi3_insn_uxtw): New pattern.
6659 * config/aarch64/iterators.md (SHIFT): Add rotate left.
6660 (SHIFT_no_rotate): Add new iterator.
6661 (SHIFT:shift): Print rotate left as ror.
6662 (is_rotl): Add test for left rotate.
6663
6664 2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com>
6665
6666 * config.gcc (aarch64*-*-*): Simplify --with-cpu and --with-arch
6667 processing. Add support for architectural extensions.
6668 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Remove
6669 AARCH64_CPU_DEFAULT_FLAGS.
6670 (TARGET_CPU_NBITS): Remove.
6671 (TARGET_CPU_MASK): Remove.
6672 * config/aarch64/aarch64.cc (AARCH64_CPU_DEFAULT_FLAGS): Remove define.
6673 (get_tune_cpu): Assert CPU is always valid.
6674 (get_arch): Assert architecture is always valid.
6675 (aarch64_override_options): Cleanup CPU selection code and simplify logic.
6676 (aarch64_option_restore): Remove unnecessary checks on tune.
6677
6678 2022-05-20 David Malcolm <dmalcolm@redhat.com>
6679
6680 * config/aarch64/aarch64-sve-builtins-base.cc: Replace uses of
6681 "FINAL" and "OVERRIDE" with "final" and "override".
6682 * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
6683 * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
6684 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
6685 * diagnostic-path.h: Likewise.
6686 * digraph.cc: Likewise.
6687 * gcc-rich-location.h: Likewise.
6688 * gimple-array-bounds.cc: Likewise.
6689 * gimple-loop-versioning.cc: Likewise.
6690 * gimple-range-cache.cc: Likewise.
6691 * gimple-range-cache.h: Likewise.
6692 * gimple-range-fold.cc: Likewise.
6693 * gimple-range-fold.h: Likewise.
6694 * gimple-range-tests.cc: Likewise.
6695 * gimple-range.h: Likewise.
6696 * gimple-ssa-evrp.cc: Likewise.
6697 * input.cc: Likewise.
6698 * json.h: Likewise.
6699 * read-rtl-function.cc: Likewise.
6700 * tree-complex.cc: Likewise.
6701 * tree-diagnostic-path.cc: Likewise.
6702 * tree-ssa-ccp.cc: Likewise.
6703 * tree-ssa-copy.cc: Likewise.
6704 * tree-vrp.cc: Likewise.
6705 * value-query.h: Likewise.
6706 * vr-values.h: Likewise.
6707
6708 2022-05-20 Marcel Vollweiler <marcel@codesourcery.com>
6709
6710 * omp-low.cc (omp_runtime_api_call): Added target_memcpy_async and
6711 target_memcpy_rect_async to omp_runtime_apis array.
6712
6713 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
6714
6715 * doc/sourcebuild.texi (Decimal floating point attributes): Document
6716 dfp_bid effective-target.
6717
6718 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
6719
6720 * config/aarch64/aarch64.cc
6721 (aarch64_split_128bit_move): Handle DFP modes.
6722 (aarch64_mode_valid_for_sched_fusion_p): Likewise.
6723 (aarch64_classify_address): Likewise.
6724 (aarch64_legitimize_address_displacement): Likewise.
6725 (aarch64_reinterpret_float_as_int): Likewise.
6726 (aarch64_float_const_zero_rtx_p): Likewise.
6727 (aarch64_can_const_movi_rtx_p): Likewise.
6728 (aarch64_anchor_offset): Likewise.
6729 (aarch64_secondary_reload): Likewise.
6730 (aarch64_rtx_costs): Likewise.
6731 (aarch64_legitimate_constant_p): Likewise.
6732 (aarch64_gimplify_va_arg_expr): Likewise.
6733 (aapcs_vfp_sub_candidate): Likewise.
6734 (aarch64_vfp_is_call_or_return_candidate): Likewise.
6735 (aarch64_output_scalar_simd_mov_immediate): Likewise.
6736 (aarch64_gen_adjusted_ldpstp): Likewise.
6737 (aarch64_scalar_mode_supported_p): Accept DFP modes if enabled.
6738 * config/aarch64/aarch64.md
6739 (movsf_aarch64): Use SFD iterator and rename into
6740 mov<mode>_aarch64.
6741 (movdf_aarch64): Use DFD iterator and rename into
6742 mov<mode>_aarch64.
6743 (movtf_aarch64): Use TFD iterator and rename into
6744 mov<mode>_aarch64.
6745 (split pattern for move TF mode): Use TFD iterator.
6746 * config/aarch64/iterators.md
6747 (GPF_TF_F16_MOV): Add DFP modes.
6748 (SFD, DFD, TFD): New iterators.
6749 (GPF_TF): Add DFP modes.
6750 (TX, DX, DX2): Likewise.
6751
6752 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
6753
6754 * configure: Regenerate.
6755
6756 2022-05-19 Roger Sayle <roger@nextmovesoftware.com>
6757
6758 PR middle-end/98865
6759 * expr.cc (expand_expr_real_2) [MULT_EXPR]: Expand X*Y as X&Y
6760 when both X and Y are [0, 1], X*Y as X&-Y when Y is [0,1] and
6761 likewise X*Y as -X&Y when X is [0,1] using tree_nonzero_bits.
6762
6763 2022-05-19 Will Schmidt <will_schmidt@vnet.ibm.com>
6764
6765 * config/rs6000/rs6000-builtins.def: Rephrase
6766 to remove RS6000_BTC_SPECIAL from comment.
6767 * config/rs6000/rs6000.h (RS6000_BTC_UNARY, RS6000_BTC_BINARY,
6768 RS6000_BTC_TERNARY, RS6000_BTC_QUATERNARY,
6769 RS6000_BTC_QUINARY, RS6000_BTC_SENARY, RS6000_BTC_OPND_MASK,
6770 RS6000_BTC_SPECIAL, RS6000_BTC_PREDICATE, RS6000_BTC_ABS,
6771 RS6000_BTC_DST, RS6000_BTC_TYPE_MASK, RS6000_BTC_MISC,
6772 RS6000_BTC_CONST, RS6000_BTC_PURE, RS6000_BTC_FP,
6773 RS6000_BTC_QUAD, RS6000_BTC_PAIR, RS6000_BTC_QUADPAIR,
6774 RS6000_BTC_ATTR_MASK, RS6000_BTC_SPR, RS6000_BTC_VOID,
6775 RS6000_BTC_CR, RS6000_BTC_OVERLOADED, RS6000_BTC_GIMPLE,
6776 RS6000_BTC_MISC_MASK, RS6000_BTC_MEM, RS6000_BTC_SAT,
6777 RS6000_BTM_ALWAYS): Delete.
6778
6779 2022-05-19 Richard Biener <rguenther@suse.de>
6780
6781 * omp-expand.cc (expand_omp_atomic_cas): Do not short-cut
6782 computation of the new value.
6783
6784 2022-05-19 Richard Biener <rguenther@suse.de>
6785
6786 * tree-ssa-pre.cc (get_or_alloc_expression_id): Remove.
6787 (add_to_value): Use get_expression_id.
6788 (bitmap_insert_into_set): Likewise.
6789 (bitmap_value_insert_into_set): Likewise.
6790
6791 2022-05-19 David Malcolm <dmalcolm@redhat.com>
6792
6793 * doc/invoke.texi (-fanalyzer-checker=): Add
6794 -Wanalyzer-va-list-leak and -Wanalyzer-va-list-use-after-va-end to
6795 the list of analyzer warnings disabled by
6796 -fanalyzer-checker=taint.
6797
6798 2022-05-19 Jakub Jelinek <jakub@redhat.com>
6799
6800 PR debug/105630
6801 * cfgexpand.cc (expand_debug_expr): For VAR_DECL, punt for
6802 global vars without symtab node even when they have DECL_RTL
6803 set.
6804
6805 2022-05-19 Jakub Jelinek <jakub@redhat.com>
6806
6807 PR c/105635
6808 * pointer-query.cc (gimple_parm_array_size): Return NULL if var
6809 doesn't have pointer or reference type.
6810
6811 2022-05-18 Marek Polacek <polacek@redhat.com>
6812
6813 PR c/105131
6814 * doc/invoke.texi: Document -Wenum-int-mismatch.
6815
6816 2022-05-18 Uros Bizjak <ubizjak@gmail.com>
6817
6818 * config/i386/gnu-user-common.h (defined): Only define
6819 TARGET_CAN_SPLIT_STACK for glibc targets.
6820 * config/i386/gnu.h (defined): Ditto.
6821
6822 2022-05-18 Roger Sayle <roger@nextmovesoftware.com>
6823
6824 * config/i386/i386.cc (ix86_rtx_costs) [MULT]: When mode size
6825 is wider than word_mode, a multiplication costs three word_mode
6826 multiplications and two word_mode additions.
6827
6828 2022-05-18 Roger Sayle <roger@nextmovesoftware.com>
6829
6830 * config/i386/i386.md (define_split): Split *andsi_1
6831 and *andn_si_ccno after reload with -Oz.
6832
6833 2022-05-18 Frederik Harwath <frederik@codesourcery.com>
6834
6835 * graphite-scop-detection.cc (scop_detection::can_represent_loop):
6836 Output reason for failure to dump file.
6837 (scop_detection::harmful_loop_in_region): Likewise.
6838 (scop_detection::graphite_can_represent_expr): Likewise.
6839 (scop_detection::stmt_has_simple_data_refs_p): Likewise.
6840 (scop_detection::stmt_simple_for_scop_p): Likewise.
6841 (print_sese_loop_numbers): New function.
6842 (scop_detection::add_scop): Use from here.
6843
6844 2022-05-18 liuhongt <hongtao.liu@intel.com>
6845
6846 PR middle-end/103462
6847 * match.pd (bitwise_induction_p): New match.
6848 * tree-scalar-evolution.cc (gimple_bitwise_induction_p):
6849 Declare.
6850 (analyze_and_compute_bitwise_induction_effect): New function.
6851 (enum bit_op_kind): New enum.
6852 (final_value_replacement_loop): Enhanced to handle bitwise
6853 induction.
6854
6855 2022-05-18 Haochen Gui <guihaoc@gcc.gnu.org>
6856
6857 PR target/95737
6858 * config/rs6000/rs6000.md (*subfsi3_carry_in_xx_64): New.
6859
6860 2022-05-18 liuhongt <hongtao.liu@intel.com>
6861
6862 PR target/104375
6863 * config/i386/i386.md (*bmi2_bzhi_zero_extendsidi_4): New
6864 define_insn.
6865
6866 2022-05-18 liuhongt <hongtao.liu@intel.com>
6867
6868 PR target/104610
6869 * config/i386/i386-expand.cc (ix86_expand_branch): Use ptest
6870 for QImode when code is EQ or NE.
6871 * config/i386/i386.md (cbranchoi4): New expander.
6872
6873 2022-05-18 Peter Bergner <bergner@linux.ibm.com>
6874 Segher Boessenkool <segher@kernel.crashing.org>
6875
6876 PR target/105556
6877 * config/rs6000/mma.md (mma_<vv>, mma_<avv>, mma_<pv>, mma_<apv>,
6878 mma_<vvi4i4i8>, mma_<avvi4i4i8>, mma_<vvi4i4i2>, mma_<avvi4i4i2>,
6879 mma_<vvi4i4>, mma_<avvi4i4>, mma_<pvi4i2>, mma_<apvi4i2>,
6880 mma_<vvi4i4i4>, mma_<avvi4i4i4>): Replace "wa" constraints with "v,?wa".
6881 Update other operands accordingly.
6882
6883 2022-05-17 Marek Polacek <polacek@redhat.com>
6884
6885 * godump.cc (go_output_typedef): Use the DECL_INITIAL of the TREE_VALUE.
6886
6887 2022-05-17 Pat Haugen <pthaugen@linux.ibm.com>
6888
6889 PR target/99685
6890 * config/rs6000/rs6000-call.cc (rs6000_function_arg_advance_1): Bump
6891 register count when not splitting IEEE 128-bit Complex.
6892
6893 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
6894
6895 * omp-low.cc (check_omp_nesting_restrictions): Skip warning for
6896 target inside target if inner is reverse offload.
6897
6898 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
6899
6900 * config/gcn/mkoffload.cc (process_obj): Revert: Use ARRAY_SIZE.
6901 * config/nvptx/mkoffload.cc (process): Likewise.
6902
6903 2022-05-17 Andrew MacLeod <amacleod@redhat.com>
6904
6905 * Makefile.in (OBJS): Add gimple-range-side-effect.o.
6906 * gimple-range-cache.cc (non_null_ref::non_null_ref): Delete.
6907 (non_null_ref::~non_null_ref): Delete.
6908 (non_null_ref::set_nonnull): Delete.
6909 (non_null_ref::non_null_deref_p): Delete.
6910 (non_null_ref::process_name): Delete.
6911 (ranger_cache::ranger_cache): Initialize m_exit object.
6912 (ranger_cache::fill_block_cache): Use m_exit object intead of nonnull.
6913 (ranger_cache::range_from_dom): Use side_effect class and m_exit object.
6914 (ranger_cache::update_to_nonnull): Delete.
6915 (non_null_loadstore): Delete.
6916 (ranger_cache::block_apply_nonnull): Delete.
6917 (ranger_cache::apply_side_effects): New.
6918 * gimple-range-cache.h (class non_null_ref): Delete.
6919 (non_null_ref::adjust_range): Delete.
6920 (class ranger_cache): Adjust prototypes, add side effect manager.
6921 * gimple-range-path.cc (path_range_query::range_defined_in_block): Use
6922 side effect manager for queries.
6923 (path_range_query::adjust_for_non_null_uses): Ditto.
6924 * gimple-range-path.h (class path_range_query): Delete non_null_ref.
6925 * gimple-range-side-effect.cc: New.
6926 * gimple-range-side-effect.h: New.
6927 * gimple-range.cc (gimple_ranger::gimple_ranger): Update contructor.
6928 (gimple_ranger::range_of_expr): Check def block for override value.
6929 (gimple_ranger::range_on_entry): Don't scan dominators for non-null.
6930 (gimple_ranger::range_on_edge): Check for outgoing side-effects.
6931 (gimple_ranger::register_side_effects): Call apply_side_effects.
6932 (enable_ranger): Update contructor.
6933 * gimple-range.h (class gimple_ranger): Update prototype.
6934 (enable_ranger): Update prototype.
6935 * tree-vrp.cc (execute_ranger_vrp): Invoke without immediate-use flag.
6936
6937 2022-05-17 Giuliano Belinassi <gbelinassi@suse.de>
6938
6939 PR c++/105169
6940 * targhooks.cc (default_print_patchable_function_entry_1): Handle COMDAT case.
6941 * varasm.cc (switch_to_comdat_section): New
6942 (handle_vtv_comdat_section): Call switch_to_comdat_section.
6943 * varasm.h: Declare switch_to_comdat_section.
6944
6945 2022-05-17 Richard Biener <rguenther@suse.de>
6946
6947 * cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Do
6948 not clear bb->aux of the copied blocks.
6949
6950 2022-05-17 Andrew MacLeod <amacleod@redhat.com>
6951
6952 PR tree-optimization/105458
6953 * value-relation.cc (path_oracle::register_relation): Merge, then check
6954 for equivalence.
6955
6956 2022-05-17 Uroš Bizjak <ubizjak@gmail.com>
6957
6958 PR target/105624
6959 Revert:
6960 * config/i386/i386.md: Remove constraints when used with
6961 const_int_operand, const0_operand, const_1_operand, constm1_operand,
6962 const8_operand, const128_operand, const248_operand, const123_operand,
6963 const2367_operand, const1248_operand, const359_operand,
6964 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
6965 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
6966 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
6967 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
6968 const_0_to_255_mul_8_operand, const_1_to_31_operand,
6969 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
6970 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
6971 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
6972 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
6973 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
6974 const_24_to_27_operand and const_28_to_31_operand.
6975 * config/i386/mmx.md: Ditto.
6976 * config/i386/sse.md: Ditto.
6977 * config/i386/subst.md: Ditto.
6978 * config/i386/sync.md: Ditto.
6979
6980 2022-05-17 Thomas Schwinge <thomas@codesourcery.com>
6981
6982 * diagnostic.cc: Don't advise to call 'abort' instead of
6983 'internal_error'.
6984 * system.h: Advise to call 'internal_error' instead of 'abort' or
6985 'fancy_abort'.
6986
6987 2022-05-17 Frederik Harwath <frederik@codesourcery.com>
6988
6989 * graphite-sese-to-poly.cc (build_poly_sr_1): Fix a typo and
6990 a reference to a variable which does not exist.
6991 * graphite-isl-ast-to-gimple.cc (gsi_insert_earliest): Fix typo
6992 in comment.
6993
6994 2022-05-17 Frederik Harwath <frederik@codesourcery.com>
6995
6996 * graphite-sese-to-poly.cc (isl_id_for_ssa_name): Rename to ...
6997 (isl_id_for_parameter): ... this new function name.
6998 (build_scop_context): Adjust function use.
6999
7000 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
7001
7002 PR target/105602
7003 * config/gcn/t-omp-device (arch): Add 'amdgcn' besides existing 'gcn'.
7004 * config/gcn/gcn.cc (gcn_omp_device_kind_arch_isa): Likewise.
7005
7006 2022-05-17 Jakub Jelinek <jakub@redhat.com>
7007
7008 * tree-core.h (enum omp_clause_depend_kind): Add
7009 OMP_CLAUSE_DEPEND_INOUTSET.
7010 * tree-pretty-print.cc (dump_omp_clause): Handle
7011 OMP_CLAUSE_DEPEND_INOUTSET.
7012 * gimplify.cc (gimplify_omp_depend): Likewise.
7013 * omp-low.cc (lower_depend_clauses): Likewise.
7014
7015 2022-05-17 Jakub Jelinek <jakub@redhat.com>
7016
7017 PR target/105613
7018 * config/i386/sse.md (vec_cmpeqv2div2di, vec_cmpeqv1tiv1ti): Use
7019 andv4si3 only for EQ, for NE use iorv4si3 instead.
7020
7021 2022-05-17 Richard Biener <rguenther@suse.de>
7022
7023 PR tree-optimization/105618
7024 * tree-ssa-sink.cc (statement_sink_location): For virtual
7025 PHI uses ignore those defining the used virtual operand.
7026
7027 2022-05-17 Jakub Jelinek <jakub@redhat.com>
7028
7029 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Spelling fix:
7030 hanlde -> handle. Fix up comment formatting.
7031
7032 2022-05-17 liuhongt <hongtao.liu@intel.com>
7033
7034 PR target/105033
7035 * config/i386/sse.md (*vec_concatv4si): Extend to ..
7036 (*vec_concat<mode>): .. V16QI and V8HImode.
7037 (*vec_concatv16qi_permt2): New pre_reload define_insn_and_split.
7038 (*vec_concatv8hi_permt2): Ditto.
7039
7040 2022-05-17 liuhongt <hongtao.liu@intel.com>
7041
7042 PR tree-optimization/105591
7043 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Clamp
7044 vec_perm_expr index.
7045
7046 2022-05-16 Jason Merrill <jason@redhat.com>
7047
7048 PR c/105492
7049 * attribs.cc (decl_attributes): Fix broken typedefs here.
7050
7051 2022-05-16 David Malcolm <dmalcolm@redhat.com>
7052
7053 PR analyzer/105103
7054 * Makefile.in (ANALYZER_OBJS): Add analyzer/varargs.o.
7055 * doc/invoke.texi: Add -Wanalyzer-va-arg-type-mismatch,
7056 -Wanalyzer-va-list-exhausted, -Wanalyzer-va-list-leak, and
7057 -Wanalyzer-va-list-use-after-va-end.
7058
7059 2022-05-16 Richard Biener <rguenther@suse.de>
7060
7061 * gimple-match.h (gimple_build): Move code_helper overloads ...
7062 * gimple-fold.h (gimple_build): ... here.
7063 (gimple_build): Transition to new worker API. Provide
7064 overloads from sequence-based API.
7065 (gimple_convert): Likewise.
7066 (gimple_convert_to_ptrofftype): Likewise.
7067 (gimple_build_vector_from_val): Likewise.
7068 (gimple_build_vector): Likewise.
7069 (gimple_build_round_up): Likewise.
7070 * gimple-fold.cc (gimple_build_insert_seq): New helper.
7071 (gimple_build): Use it. Transition combined_fn and code_helper
7072 API parts.
7073 (gimple_convert): Transition to new worker API.
7074 (gimple_convert_to_ptrofftype): Likewise.
7075 (gimple_build_vector_from_val): Likewise.
7076 (gimple_build_vector): Likewise.
7077 (gimple_build_round_up): Likewise.
7078
7079 2022-05-16 Richard Biener <rguenther@suse.de>
7080
7081 * gimple-match.h (code_helper): Move class ...
7082 * tree.h (code_helper): ... here.
7083
7084 2022-05-16 Martin Liska <mliska@suse.cz>
7085
7086 * opts-global.cc (write_langs): Add comment.
7087
7088 2022-05-16 Eric Botcazou <ebotcazou@adacore.com>
7089
7090 * dwarf2out.cc (loc_list_from_tree_1) <TRUTH_NOT_EXPR>: Do a logical
7091 instead of a bitwise negation.
7092 <COND_EXPR>: Swap the operands if the condition is TRUTH_NOT_EXPR.
7093
7094 2022-05-16 Martin Liska <mliska@suse.cz>
7095
7096 * attribs.cc (diag_attr_exclusions): Use ARRAY_SIZE.
7097 (decls_mismatched_attributes): Likewise.
7098 * builtins.cc (c_strlen): Likewise.
7099 * cfg.cc (DEF_BASIC_BLOCK_FLAG): Likewise.
7100 * common/config/aarch64/aarch64-common.cc (aarch64_option_init_struct): Likewise.
7101 * config/aarch64/aarch64-builtins.cc (aarch64_lookup_simd_builtin_type): Likewise.
7102 (aarch64_init_simd_builtin_types): Likewise.
7103 (aarch64_init_builtin_rsqrt): Likewise.
7104 * config/aarch64/aarch64.cc (is_madd_op): Likewise.
7105 * config/arm/arm-builtins.cc (arm_lookup_simd_builtin_type): Likewise.
7106 (arm_init_simd_builtin_types): Likewise.
7107 * config/avr/gen-avr-mmcu-texi.cc (mcus[ARRAY_SIZE): Likewise.
7108 (c_prefix): Likewise.
7109 (main): Likewise.
7110 * config/c6x/c6x.cc (N_SAVE_ORDER): Likewise.
7111 * config/darwin-c.cc (darwin_register_frameworks): Likewise.
7112 * config/gcn/mkoffload.cc (process_obj): Likewise.
7113 * config/i386/i386-builtins.cc (get_builtin_code_for_version): Likewise.
7114 (fold_builtin_cpu): Likewise.
7115 * config/m32c/m32c.cc (PUSHM_N): Likewise.
7116 * config/nvptx/mkoffload.cc (process): Likewise.
7117 * config/rs6000/driver-rs6000.cc (host_detect_local_cpu): Likewise.
7118 * config/s390/s390.cc (NR_C_MODES): Likewise.
7119 * config/tilepro/gen-mul-tables.cc (find_sequences): Likewise.
7120 (create_insn_code_compression_table): Likewise.
7121 * config/vms/vms.cc (NBR_CRTL_NAMES): Likewise.
7122 * diagnostic-format-json.cc (json_from_expanded_location): Likewise.
7123 * dwarf2out.cc (ARRAY_SIZE): Likewise.
7124 * genhooks.cc (emit_documentation): Likewise.
7125 (emit_init_macros): Likewise.
7126 * gimple-ssa-sprintf.cc (format_floating): Likewise.
7127 * gimple-ssa-warn-access.cc (memmodel_name): Likewise.
7128 * godump.cc (keyword_hash_init): Likewise.
7129 * hash-table.cc (hash_table_higher_prime_index): Likewise.
7130 * input.cc (for_each_line_table_case): Likewise.
7131 * ipa-free-lang-data.cc (free_lang_data): Likewise.
7132 * ipa-inline.cc (sanitize_attrs_match_for_inline_p): Likewise.
7133 * optc-save-gen.awk: Likewise.
7134 * spellcheck.cc (test_metric_conditions): Likewise.
7135 * tree-vect-slp-patterns.cc (sizeof): Likewise.
7136 (ARRAY_SIZE): Likewise.
7137 * tree.cc (build_common_tree_nodes): Likewise.
7138
7139 2022-05-16 Martin Liska <mliska@suse.cz>
7140
7141 * opts-global.cc (write_langs): Allocate at least one byte.
7142
7143 2022-05-16 Richard Biener <rguenther@suse.de>
7144
7145 * match.pd (A cmp B ? A : B -> min/max): New patterns
7146 carried over from fold_cond_expr_with_comparison.
7147
7148 2022-05-16 liuhongt <hongtao.liu@intel.com>
7149
7150 PR target/105587
7151 * config/i386/i386-expand.cc
7152 (expand_vec_perm_pslldq_psrldq_por): Fail when (d->perm[i] ==
7153 d->perm[i-1] + 1) && d->perm[i] == nelt && start != -1.
7154
7155 2022-05-15 Uroš Bizjak <ubizjak@gmail.com>
7156
7157 * config/i386/i386.md: Remove constraints when used with
7158 const_int_operand, const0_operand, const_1_operand, constm1_operand,
7159 const8_operand, const128_operand, const248_operand, const123_operand,
7160 const2367_operand, const1248_operand, const359_operand,
7161 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
7162 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
7163 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
7164 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
7165 const_0_to_255_mul_8_operand, const_1_to_31_operand,
7166 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
7167 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
7168 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
7169 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
7170 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
7171 const_24_to_27_operand and const_28_to_31_operand.
7172 * config/i386/mmx.md: Ditto.
7173 * config/i386/sse.md: Ditto.
7174 * config/i386/subst.md: Ditto.
7175 * config/i386/sync.md: Ditto.
7176
7177 2022-05-13 Roger Sayle <roger@nextmovesoftware.com>
7178 Uroš Bizjak <ubizjak@gmail.com>
7179
7180 * config/i386/sse.md (vec_cmpeqv2div2di): Enable for TARGET_SSE2.
7181 For !TARGET_SSE4_1, expand as a V4SI vector comparison, followed
7182 by a pshufd and pand.
7183 (vec_cmpeqv1tiv1ti): New define_expand implementing V1TImode
7184 vector equality as a V2DImode vector comparison (see above),
7185 followed by a pshufd and pand.
7186
7187 2022-05-13 Roger Sayle <roger@nextmovesoftware.com>
7188
7189 PR tree-optimization/83907
7190 * tree-ssa-strlen.cc (handle_builtin_memset): Record a strinfo
7191 for memset with an constant char value.
7192 (handle_store): Improved handling of stores with a first byte
7193 of zero, but not storing_all_zeros_p.
7194
7195 2022-05-13 Philipp Tomsich <philipp.tomsich@vrull.eu>
7196 Manolis Tsamis <manolis.tsamis@vrull.eu>
7197
7198 * config/riscv/riscv.h (CLZ_DEFINED_VALUE_AT_ZERO): Implement.
7199 (CTZ_DEFINED_VALUE_AT_ZERO): Same.
7200 * doc/sourcebuild.texi: add documentation for RISC-V specific
7201 test target keywords
7202
7203 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
7204
7205 PR tree-optimization/105597
7206 * range-op.cc (operator_minus::lhs_op1_relation): Use op1 instead
7207 of the lhs and make sure it is not undefined.
7208
7209 2022-05-13 Sebastian Pop <spop@amazon.com>
7210
7211 PR target/105162
7212 * config/aarch64/aarch64-protos.h (atomic_ool_names): Increase dimension
7213 of str array.
7214 * config/aarch64/aarch64.cc (aarch64_atomic_ool_func): Call
7215 memmodel_from_int and handle MEMMODEL_SYNC_*.
7216 (DEF0): Add __aarch64_*_sync functions.
7217
7218 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
7219
7220 * gimple-range-fold.cc (fold_using_range::range_of_phi): Use new VREL_*
7221 enumerated values.
7222 * gimple-range-path.cc (maybe_register_phi_relation): Ditto.
7223 * range-op.cc (*::lhs_op1_relation): Return relation_kind, and use
7224 new VREL enumerated values.
7225 (*::lhs_op2_relation): Ditto.
7226 (*::op1_op2_relation): Ditto.
7227 (*::fold_range): Use new VREL enumerated values.
7228 (minus_op1_op2_relation_effect): Ditto.
7229 (range_relational_tests): Ditto.
7230 * range-op.h (fold_range, op1_range, op2_range): Use VREL_VARYING.
7231 (lhs_op1_relation, lhs_op2_relation, op1_op2_relation): Return
7232 relation_kind.
7233 (*_op1_op2_relation): Return relation_kind.
7234 (relop_early_resolve): Use VREL_UNDEFINED.
7235 * value-query.cc (range_query::query_relation): Use VREL_VARYING.
7236 * value-relation.cc (VREL_LAST): Change enumerated value.
7237 (vrel_range_assert): Delete.
7238 (print_relation): Remove range assert.
7239 (rr_negate_table): Adjust table to use new enumerated values..
7240 (relation_negate): Remove range assert.
7241 (rr_swap_table): Adjust.
7242 (relation_swap): Remove range assert.
7243 (rr_intersect_table): Adjust.
7244 (relation_intersect): Remove range assert.
7245 (rr_union_table): Adjust.
7246 (relation_union): Remove range assert.
7247 (rr_transitive_table): Adjust.
7248 (relation_transitive): Remove range assert.
7249 (equiv_oracle::query_relation): Use new VREL enumerated values.
7250 (equiv_oracle::register_relation): Ditto.
7251 (relation_oracle::register_stmt): Ditto.
7252 (dom_oracle::set_one_relation): Ditto.
7253 (dom_oracle::register_transitives): Ditto.
7254 (dom_oracle::query_relation): Ditto.
7255 (path_oracle::register_relation): Ditto.
7256 (path_oracle::query_relation): Ditto.
7257 * value-relation.h (enum relation_kind_t): New relation_kind.
7258 (*_op1_op2_relation): Adjust prototypes.
7259
7260 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
7261
7262 * gimple-range-edge.cc (calc_switch_ranges): Check union return value.
7263 * value-range.cc (irange::legacy_verbose_union_): Add return value.
7264 (irange::irange_single_pair_union): New.
7265 (irange::irange_union): Add return value.
7266 * value-range.h (class irange): Adjust prototypes.
7267
7268 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
7269
7270 * value-range.cc (irange::legacy_verbose_intersect): Add return value.
7271 (irange::irange_contains_p): New.
7272 (irange::irange_intersect): Add return value.
7273 * value-range.h (class irange): Adjust prototypes.
7274
7275 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
7276
7277 * gimple-range-cache.cc (ranger_cache::get_global_range): Return the
7278 had_global value instead.
7279
7280 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
7281
7282 PR tree-optimization/104547
7283 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Add
7284 the op1/op2 relation to the relation call.
7285 * range-op.cc (*::lhs_op1_relation): Add param.
7286 (*::lhs_op2_relation): Ditto.
7287 (operator_minus::lhs_op1_relation): New.
7288 (range_relational_tests): Add relation param.
7289 * range-op.h (lhs_op1_relation, lhs_op2_relation): Adjust prototype.
7290
7291 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
7292
7293 * gimple-range.cc (gimple_ranger::register_side_effects): First check
7294 if the DEF should be exported as a global.
7295 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Process PHI side effects,
7296 which will export globals.
7297 (execute_ranger_vrp): Remove call to export_global_ranges.
7298
7299 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
7300
7301 * value-relation.cc (path_oracle::reset_path): Clear killing_defs.
7302
7303 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
7304
7305 * gimple-range-cache.cc (ranger_cache::ranger_cache): Start with
7306 worlist truncated.
7307 (ranger_cache::entry_range): Add rfd_mode parameter.
7308 (ranger_cache::exit_range): Ditto.
7309 (ranger_cache::edge_range): New. Incorporate from range_on_edge.
7310 (ranger_cache::range_of_expr): Adjust call to entry_range.
7311 (ranger_cache::range_on_edge): Split to edge_range and call.
7312 (ranger_cache::fill_block_cache): Always invoke range_from_dom.
7313 (ranger_cache::range_from_dom): Make reentrant, add search mode, handle
7314 mutiple predecessors.
7315 (ranger_cache::update_to_nonnull): Adjust call to exit_range.
7316 * gimple-range-cache.h (ranger_cache): Add enum rfd_mode. Adjust
7317 prototypes.
7318
7319 2022-05-13 Alexandre Oliva <oliva@adacore.com>
7320
7321 * gimple-harden-conditionals.cc: Include sbitmap.h.
7322 (pass_harden_conditional_branches::execute): Skip new blocks.
7323 (pass_harden_compares::execute): Likewise.
7324
7325 2022-05-13 Richard Earnshaw <rearnsha@arm.com>
7326
7327 PR target/105463
7328 * config/arm/mve.md (*movmisalign<mode>_mve_store): Use
7329 mve_memory_operand.
7330 (*movmisalign<mode>_mve_load): Likewise.
7331 * config/arm/vec-common.md (movmisalign<mode>): Convert to generator
7332 form...
7333 (@movmisalign<mode>): ... thus. Use generic predicates and then
7334 rework operands if they are not valid. For MVE rework to a
7335 narrower element size if the alignment is not high enough.
7336
7337 2022-05-13 Richard Earnshaw <rearnsha@arm.com>
7338
7339 * config/arm/arm.cc (mve_vector_mem_operand): Allow SP_REGNUM
7340 when there is no write-back. Fix use when strict is true.
7341
7342 2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7343
7344 * config/xtensa/xtensa.h (TARGET_HAS_NO_HW_DIVIDE): New macro
7345 definition.
7346
7347 2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7348
7349 * config/xtensa/xtensa.md (extvsi, extvsi_internal, extzvsi,
7350 extzvsi_internal): Rename from extv, extv_internal, extzv and
7351 extzv_internal, respectively.
7352
7353 2022-05-13 Eric Botcazou <ebotcazou@adacore.com>
7354
7355 * tree-sra.cc (sra_modify_assign): Check that scalar storage order
7356 is the same on the LHS and RHS before rewriting one with the model
7357 of the other.
7358
7359 2022-05-13 Richard Biener <rguenther@suse.de>
7360
7361 * gimple-fold.cc (gimple_build): Adjust for new
7362 main API.
7363 * gimple-fold.h (gimple_build): New main APIs with
7364 iterator, insert direction and iterator update.
7365 (gimple_build): New forwarder template.
7366 (clear_padding_type_may_have_padding_p): Remove.
7367 (clear_type_padding_in_mask): Likewise.
7368 (arith_overflowed_p): Likewise.
7369 * fold-const.h (clear_padding_type_may_have_padding_p): Declare.
7370 (clear_type_padding_in_mask): Likewise.
7371 (arith_overflowed_p): Likewise.
7372 * tree-vect-generic.cc (gimplify_build3): Use main gimple_build API.
7373 (gimplify_build2): Likewise.
7374 (gimplify_build1): Likewise.
7375 * ubsan.cc (ubsan_expand_ptr_ifn): Likewise, avoid extra
7376 compare stmt.
7377 * gengtype.cc (open_base_files): Re-order includes.
7378 * builtins.cc: Re-order gimple-fold.h include.
7379 * calls.cc: Likewise.
7380 * cgraphbuild.cc: Likewise.
7381 * cgraphunit.cc: Likewise.
7382 * config/rs6000/rs6000-builtin.cc: Likewise.
7383 * config/rs6000/rs6000-call.cc: Likewise.
7384 * config/rs6000/rs6000.cc: Likewise.
7385 * config/s390/s390.cc: Likewise.
7386 * expr.cc: Likewise.
7387 * fold-const.cc: Likewise.
7388 * function-tests.cc: Likewise.
7389 * gimple-match-head.cc: Likewise.
7390 * gimple-range-fold.cc: Likewise.
7391 * gimple-ssa-evrp-analyze.cc: Likewise.
7392 * gimple-ssa-evrp.cc: Likewise.
7393 * gimple-ssa-sprintf.cc: Likewise.
7394 * gimple-ssa-warn-access.cc: Likewise.
7395 * gimplify.cc: Likewise.
7396 * graphite-isl-ast-to-gimple.cc: Likewise.
7397 * ipa-cp.cc: Likewise.
7398 * ipa-devirt.cc: Likewise.
7399 * ipa-prop.cc: Likewise.
7400 * omp-low.cc: Likewise.
7401 * pointer-query.cc: Likewise.
7402 * range-op.cc: Likewise.
7403 * tree-cfg.cc: Likewise.
7404 * tree-if-conv.cc: Likewise.
7405 * tree-inline.cc: Likewise.
7406 * tree-object-size.cc: Likewise.
7407 * tree-ssa-ccp.cc: Likewise.
7408 * tree-ssa-dom.cc: Likewise.
7409 * tree-ssa-forwprop.cc: Likewise.
7410 * tree-ssa-ifcombine.cc: Likewise.
7411 * tree-ssa-loop-ivcanon.cc: Likewise.
7412 * tree-ssa-math-opts.cc: Likewise.
7413 * tree-ssa-pre.cc: Likewise.
7414 * tree-ssa-propagate.cc: Likewise.
7415 * tree-ssa-reassoc.cc: Likewise.
7416 * tree-ssa-sccvn.cc: Likewise.
7417 * tree-ssa-strlen.cc: Likewise.
7418 * tree-ssa.cc: Likewise.
7419 * value-pointer-equiv.cc: Likewise.
7420 * vr-values.cc: Likewise.
7421
7422 2022-05-13 Alexandre Oliva <oliva@adacore.com>
7423
7424 PR rtl-optimization/105455
7425 * gimple-harden-conditionals.cc (insert_check_and_trap): Set
7426 probabilities for newly-conditional edges.
7427
7428 2022-05-13 liuhongt <hongtao.liu@intel.com>
7429
7430 PR tree-optimization/102583
7431 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Extended to a
7432 contiguous stride in the VEC_PERM_EXPR.
7433
7434 2022-05-12 Richard Biener <rguenther@suse.de>
7435
7436 PR rtl-optimization/105577
7437 * dse.cc (rest_of_handle_dse): Make sure to purge dead EH
7438 edges before running fast DCE via df_analyze.
7439
7440 2022-05-12 Richard Biener <rguenther@suse.de>
7441
7442 PR tree-optimization/105562
7443 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Disambiguate
7444 against all CLOBBER defs if there's not an obvious must-alias
7445 and we are not doing redundant store elimination.
7446 (vn_walk_cb_data::redundant_store_removal_p): New field.
7447 (vn_reference_lookup_pieces): Initialize it.
7448 (vn_reference_lookup): Add argument to specify if we are
7449 doing redundant store removal.
7450 (eliminate_dom_walker::eliminate_stmt): Specify we do.
7451 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust.
7452
7453 2022-05-12 Haochen Jiang <haochen.jiang@intel.com>
7454
7455 PR target/104371
7456 * config/i386/sse.md (vi1avx2const): New define_mode_attr.
7457 (pxor/pcmpeqb/pmovmskb/cmp 0xffff to ptest splitter):
7458 New define_split pattern.
7459
7460 2022-05-12 Jakub Jelinek <jakub@redhat.com>
7461
7462 * gimplify.cc (gimplify_omp_depend): Don't build_fold_addr_expr
7463 if null_pointer_node.
7464 (gimplify_scan_omp_clauses): Likewise.
7465 * tree-pretty-print.cc (dump_omp_clause): Print null_pointer_node
7466 as omp_all_memory.
7467
7468 2022-05-11 Patrick Palka <ppalka@redhat.com>
7469
7470 * tree.h (TREE_VEC_BEGIN): Define.
7471 (TREE_VEC_END): Correct 'length' member access.
7472 (class tree_vec_range): Define.
7473
7474 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
7475
7476 * config/rs6000/rs6000.md: Use wa instead of <Fv>.
7477
7478 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
7479
7480 * config/rs6000/rs6000.md: Use d instead of <Ff>.
7481
7482 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
7483
7484 * config/rs6000/constraints.md (register_constraint "f"): Use
7485 RS6000_CONSTRAINT_d.
7486 * config/rs6000/rs6000.cc (rs6000_debug_reg_global): Do not handle
7487 RS6000_CONSTRAINT_f.
7488 (rs6000_init_hard_regno_mode_ok): Ditto. Reorder and simplify a bit.
7489 * config/rs6000/rs6000.h (r6000_reg_class_enum): Delete
7490 RS6000_CONSTRAINT_d.
7491
7492 2022-05-11 Richard Biener <rguenther@suse.de>
7493
7494 * gimple-fold.h (gimple_build): Use variadic template
7495 functions for the gimple_build API forwarders without
7496 location_t argument.
7497
7498 2022-05-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
7499
7500 PR middle-end/70090
7501 * asan.cc (initialize_sanitizer_builtins): Register
7502 __builtin_dynamic_object_size if necessary.
7503
7504 2022-05-11 Richard Biener <rguenther@suse.de>
7505
7506 PR rtl-optimization/105559
7507 * cfgrtl.cc (delete_insn_and_edges): Only perform search to BB_END
7508 for non-debug insns.
7509
7510 2022-05-11 Richard Biener <rguenther@suse.de>
7511
7512 * generic-match-head.cc: Include tree-eh.h.
7513 * match.pd ((cond ...) cmp X): New simplification inspired
7514 by fold_binary_op_with_conditional_arg.
7515 (eq/ne (cmp ...) true/false): Likewise.
7516
7517 2022-05-11 Thomas Schwinge <thomas@codesourcery.com>
7518
7519 * doc/install.texi: Don't document '--with-hsa-runtime',
7520 '--with-hsa-runtime-include', '--with-hsa-runtime-lib'.
7521
7522 2022-05-11 Martin Liska <mliska@suse.cz>
7523
7524 PR other/105527
7525 * doc/install.texi: Document the configure option --with-zstd.
7526
7527 2022-05-11 Martin Liska <mliska@suse.cz>
7528
7529 * common/config/i386/cpuinfo.h (has_cpu_feature): Directly
7530 compute index in cpu_features2.
7531 (set_cpu_feature): Likewise.
7532 * config/i386/i386-builtins.cc (fold_builtin_cpu): Also remove
7533 loop for cpu_features2 and use NOP_EXPRs.
7534
7535 2022-05-11 Richard Biener <rguenther@suse.de>
7536
7537 PR bootstrap/105551
7538 * opts.cc (finish_options): Also disable var-tracking if
7539 !DWARF2_DEBUGGING_INFO.
7540
7541 2022-05-11 liuhongt <hongtao.liu@intel.com>
7542
7543 PR target/104915
7544 * config/i386/sse.md (*vec_set<mode>_0_zero_extendhi): New
7545 pre_reload define_insn_and_split.
7546 (*vec_setv2di_0_zero_extendhi_1): Ditto.
7547 (*vec_set<mode>_0_zero_extendsi): Ditto.
7548 (*vec_setv2di_0_zero_extendsi_1): Ditto.
7549 (ssewvecmode): New mode attr.
7550 (ssewvecmodelower): Ditto.
7551 (ssepackmodelower): Ditto.
7552
7553 2022-05-11 Kewen Lin <linkw@linux.ibm.com>
7554
7555 * config/rs6000/constraints.md (register constraint v): Use
7556 rs6000_constraints[RS6000_CONSTRAINT_v] instead of ALTIVEC_REGS.
7557
7558 2022-05-11 Martin Liska <mliska@suse.cz>
7559
7560 PR target/105355
7561 * config/riscv/riscv.opt: Remove Separate from
7562 -msmall-data-limit=.
7563 * optc-gen.awk: Report error for the described situation.
7564 * gcc.cc: Use Separate syntax.
7565 * opts.cc (gen_command_line_string): Change option name.
7566
7567 2022-05-11 Haochen Gui <guihaoc@gcc.gnu.org>
7568
7569 PR target/105414
7570 * match.pd (minmax): Skip constant folding for fmin/fmax when both
7571 arguments are sNaN or one is sNaN and another is NaN.
7572
7573 2022-05-10 Jakub Jelinek <jakub@redhat.com>
7574
7575 PR tree-optimization/105528
7576 * gimple-isel.cc (gimple_expand_vec_set_expr): After gsi_remove
7577 set *gsi to gsi_for_stmt (ass_stmt). Fix up function comment.
7578
7579 2022-05-10 Segher Boessenkool <segher@kernel.crashing.org>
7580
7581 * doc/md.texi (Defining Mode Iterators): Correct example replacement
7582 text.
7583
7584 2022-05-10 Maciej W. Rozycki <macro@embecosm.com>
7585
7586 * config/riscv/riscv.md (UNSPEC_FMIN, UNSPEC_FMAX): New
7587 constants.
7588 (fmin<mode>3, fmax<mode>3): New insns.
7589
7590 2022-05-10 Richard Biener <rguenther@suse.de>
7591
7592 * tree-if-conv.cc (fold_build_cond_expr): Use
7593 match-and-simplify to simplify the condition.
7594 (ifcvt_follow_ssa_use_edges): Remove.
7595 (predicate_scalar_phi): Use follow_all_ssa_edges.
7596
7597 2022-05-10 Thomas Schwinge <thomas@codesourcery.com>
7598
7599 PR middle-end/100400
7600 * omp-oacc-kernels-decompose.cc
7601 (visit_loops_in_gang_single_region) <GIMPLE_OMP_FOR>: Explicitly
7602 call 'internal_error'.
7603
7604 2022-05-10 Richard Biener <rguenther@suse.de>
7605
7606 PR middle-end/105537
7607 * toplev.cc (process_options): Move flag_var_tracking
7608 handling ...
7609 * opts.cc (finish_options): ... here.
7610
7611 2022-05-10 Martin Liska <mliska@suse.cz>
7612
7613 * basic-block.h (struct basic_block_d): Use void *
7614 instead PTR.
7615 * cfgloop.h: Likewise.
7616 * cgraph.h: Likewise.
7617 * gengtype-state.cc (state_ident_by_name): Likewise.
7618 (record_type): Likewise.
7619 (read_state_already_seen_type): Likewise.
7620 * gengtype.cc (dump_type): Likewise.
7621 (input_file_by_name): Likewise.
7622 (main): Likewise.
7623 * ggc-common.cc (ggc_cleared_alloc_ptr_array_two_args): Likewise.
7624 * ipa-utils.h (struct ipa_dfs_info): Likewise.
7625 * plugin.cc (htab_hash_plugin): Likewise.
7626
7627 2022-05-10 Richard Biener <rguenther@suse.de>
7628
7629 * flags.h (dwarf_debuginfo_p): Add opts argument, guard
7630 API with !GENERATOR_FILE.
7631 * opts.cc (global_options): Poison.
7632 (global_options_set): Likewise.
7633 (finish_options): Refer to options via opts.
7634
7635 2022-05-10 Uroš Bizjak <ubizjak@gmail.com>
7636 Roger Sayle <roger@nextmovesoftware.com>
7637
7638 * config/i386/i386.md (*testqi_1_maybe_si): Prefer shorter SImode
7639 alternative when optimizing for size and the immediate operand is
7640 const_0_to_127_operand.
7641 (*andqi_2_maybe_si): Likewise.
7642 * config/i386/predicates.md (const_0_to_127_operand): New predicate.
7643
7644 2022-05-10 Roger Sayle <roger@nextmovesoftware.com>
7645
7646 * tree-chrec.cc (chrec_apply): Attempt to fold the linear chrec
7647 "{a, +, a} (x-1)" as "a*x", as the number of loop iterations, x-1,
7648 can't be negative.
7649
7650 2022-05-10 Eric Botcazou <ebotcazou@adacore.com>
7651
7652 PR target/105292
7653 * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Return
7654 true only for 8-byte vector modes.
7655
7656 2022-05-10 Siddhesh Poyarekar <siddhesh@gotplt.org>
7657
7658 PR middle-end/70090
7659 * ubsan.cc (ubsan_expand_objsize_ifn): Allow non-constant SIZE.
7660 (instrument_object_size): Get dynamic object size expression.
7661
7662 2022-05-10 Jiufu Guo <guojiufu@linux.ibm.com>
7663
7664 PR preprocessor/101168
7665 * config/rs6000/rs6000-c.cc (rs6000_macro_to_expand):
7666 Avoid empty identifier.
7667
7668 2022-05-09 Qing Zhao <qing.zhao@oracle.com>
7669
7670 PR target/101891
7671 * config/i386/i386.cc (zero_call_used_regno_mode): use V2SImode
7672 as a generic MMX mode instead of V4HImode.
7673 (zero_all_mm_registers): Use SET to zero instead of MOV for
7674 zeroing scratch registers.
7675 (ix86_zero_call_used_regs): Likewise.
7676
7677 2022-05-09 liuhongt <hongtao.liu@intel.com>
7678
7679 PR target/105354
7680 * config/i386/i386-expand.cc
7681 (expand_vec_perm_pslldq_psrldq_por): New function.
7682 (ix86_expand_vec_perm_const_1): Try
7683 expand_vec_perm_pslldq_psrldq_por for both 3-instruction and
7684 4/5-instruction sequence.
7685
7686 2022-05-09 Martin Liška <mliska@suse.cz>
7687
7688 * basic-block.h (STATIC_ASSERT): Use normal STATIC_ASSERT.
7689 * system.h (STATIC_ASSERT): Define as static_assert for C++
7690 and fallback to array index in C.
7691
7692 2022-05-09 Richard Biener <rguenther@suse.de>
7693
7694 PR tree-optimization/105517
7695 * tree-ssa-sccvn.cc (vn_reference_lookup): Make sure the accumulated
7696 offset can be represented in the POINTER_PLUS_EXPR IL.
7697 (vn_reference_insert): Likewise.
7698 * poly-int.h (sext_hwi): Add poly version of sext_hwi.
7699
7700 2022-05-09 Richard Biener <rguenther@suse.de>
7701
7702 * match.pd: Remove #if GIMPLE guards around ! using patterns.
7703
7704 2022-05-09 liuhongt <hongtao.liu@intel.com>
7705
7706 PR target/105072
7707 * config/i386/sse.md (*sse4_1_<code>v2qiv2di2<mask_name>_1):
7708 New define_insn.
7709 (*sse4_1_zero_extendv2qiv2di2_2): New pre_reload
7710 define_insn_and_split.
7711
7712 2022-05-09 Alex Coplan <alex.coplan@arm.com>
7713
7714 * cgraph.cc (cgraph_node::get_create): Don't dump if the current
7715 symtab state is PARSING.
7716
7717 2022-05-09 Martin Liska <mliska@suse.cz>
7718
7719 * system.h (LIKELY): Define.
7720 (UNLIKELY): Likewise.
7721 * domwalk.cc (sort_bbs_postorder): Use {,UN}LIKELY
7722 macros.
7723 * dse.cc (set_position_unneeded): Likewise.
7724 (set_all_positions_unneeded): Likewise.
7725 (any_positions_needed_p): Likewise.
7726 (all_positions_needed_p): Likewise.
7727 * expmed.cc (flip_storage_order): Likewise.
7728 * genmatch.cc (dt_simplify::gen_1): Likewise.
7729 * ggc-common.cc (gt_pch_save): Likewise.
7730 * print-rtl.cc: Likewise.
7731 * rtl-iter.h (T>::array_type::~array_type): Likewise.
7732 (T>::next): Likewise.
7733 * rtl-ssa/internals.inl: Likewise.
7734 * rtl-ssa/member-fns.inl: Likewise.
7735 * rtlanal.cc (T>::add_subrtxes_to_queue): Likewise.
7736 (rtx_properties::try_to_add_dest): Likewise.
7737 * rtlanal.h (growing_rtx_properties::repeat): Likewise.
7738 (vec_rtx_properties_base::~vec_rtx_properties_base): Likewise.
7739 * simplify-rtx.cc (simplify_replace_fn_rtx): Likewise.
7740 * sort.cc (likely): Likewise.
7741 (mergesort): Likewise.
7742 * wide-int.h (wi::eq_p): Likewise.
7743 (wi::ltu_p): Likewise.
7744 (wi::cmpu): Likewise.
7745 (wi::bit_and): Likewise.
7746 (wi::bit_and_not): Likewise.
7747 (wi::bit_or): Likewise.
7748 (wi::bit_or_not): Likewise.
7749 (wi::bit_xor): Likewise.
7750 (wi::add): Likewise.
7751 (wi::sub): Likewise.
7752
7753 2022-05-09 Kito Cheng <kito.cheng@sifive.com>
7754
7755 * config/riscv/arch-canonicalize: Handle g correctly.
7756
7757 2022-05-07 Marek Polacek <polacek@redhat.com>
7758
7759 PR c++/101833
7760 PR c++/47634
7761 * tree-core.h (struct attribute_spec): Update comment for HANDLER.
7762
7763 2022-05-06 Jason Merrill <jason@redhat.com>
7764
7765 * diagnostic-color.cc: Add fnname and targs color entries.
7766 * doc/invoke.texi: Document them.
7767
7768 2022-05-06 Jason Merrill <jason@redhat.com>
7769
7770 * vec.h (vec::iterate): Fix comment.
7771
7772 2022-05-06 Michael Meissner <meissner@linux.ibm.com>
7773
7774 PR target/102059
7775 * config/rs6000/rs6000.cc (rs6000_can_inline_p): Ignore -mpower8-fusion
7776 and -mpower10-fusion options for inlining purposes.
7777
7778 2022-05-06 Christophe Lyon <christophe.lyon@arm.com>
7779
7780 * config/aarch64/iterators.md (GPF_TF_F16): Delete.
7781
7782 2022-05-06 Marcel Vollweiler <marcel@codesourcery.com>
7783
7784 * omp-low.cc (omp_runtime_api_call): Added target_is_accessible to
7785 omp_runtime_apis array.
7786
7787 2022-05-06 Hafiz Abid Qadeer <abidh@codesourcery.com>
7788
7789 * omp-low.cc (omp_maybe_offloaded_ctx): New prototype.
7790 (scan_sharing_clauses): Check a restriction on allocate clause.
7791
7792 2022-05-05 Sandra Loosemore <sandra@codesourcery.com>
7793
7794 * gimplify.cc (gimplify_omp_for): Update messages for SCHEDULED
7795 and ORDERED clause conflict errors. Add check for GRAINSIZE and
7796 NUM_TASKS on TASKLOOP.
7797
7798 2022-05-05 Martin Liska <mliska@suse.cz>
7799
7800 * genautomata.cc (create_composed_state): Remove dead code.
7801 * graphite-poly.cc (print_pdrs): Likewise.
7802 * lto-wrapper.cc (run_gcc): Likewise.
7803 * tree-switch-conversion.cc (switch_decision_tree::balance_case_nodes):
7804 Likewise.
7805
7806 2022-05-05 Martin Liska <mliska@suse.cz>
7807
7808 * tree-profile.cc (gimple_gen_ic_profiler): Prefix names with
7809 PROF_*.
7810 (gimple_gen_time_profiler): Likewise.
7811
7812 2022-05-05 Martin Liska <mliska@suse.cz>
7813
7814 * value-prof.cc (stream_out_histogram_value): Remove sanity
7815 checking.
7816
7817 2022-05-05 Richard Biener <rguenther@suse.de>
7818
7819 PR tree-optimization/104162
7820 * tree-ssa-sccvn.cc (vn_reference_lookup): Handle
7821 &MEM[_1 + 5].a[i] like a POINTER_PLUS_EXPR if the offset
7822 becomes invariant.
7823 (vn_reference_insert): Likewise.
7824
7825 2022-05-05 Richard Biener <rguenther@suse.de>
7826
7827 * tree-core.h (tree_real_cst::real_cst_ptr): Remove pointer
7828 to real_value field.
7829 (tree_real_cst::value): Add real_value field.
7830 * tree.h (TREE_REAL_CST_PTR): Adjust.
7831 * tree.cc (build_real): Remove separate allocation.
7832 * tree-streamer-in.cc (unpack_ts_real_cst_value_fields):
7833 Likewise.
7834
7835 2022-05-05 Richard Biener <rguenther@suse.de>
7836
7837 * tree-ssa-ifcombine.cc (bb_no_side_effects_p): Avoid executing
7838 divisions with undefined overflow unconditionally.
7839 (pass_tree_ifcombine::execute): Rewrite stmts with undefined
7840 overflow to defined.
7841
7842 2022-05-05 Richard Biener <rguenther@suse.de>
7843
7844 PR tree-optimization/105484
7845 * gimple-isel.cc (gimple_expand_vec_set_expr): Clean EH, return
7846 whether the CFG changed.
7847 (gimple_expand_vec_exprs): When the CFG changed, clean it up.
7848
7849 2022-05-05 Richard Biener <rguenther@suse.de>
7850
7851 PR tree-optimization/104595
7852 * tree-vect-patterns.cc (vect_recog_bool_pattern): For
7853 COND_EXPR do not fail if check_bool_pattern returns false.
7854
7855 2022-05-04 Tobias Burnus <tobias@codesourcery.com>
7856
7857 * omp-low.cc (lower_omp_target): Fix use_device_{addr,ptr} with list
7858 item that is in an outer data-sharing clause.
7859
7860 2022-05-04 Richard Biener <rguenther@suse.de>
7861
7862 PR tree-optimization/104658
7863 * tree-vect-slp.cc (vect_slp_convert_to_external): Do not
7864 create VECTOR_BOOLEAN_TYPE_P extern defs. Reset the vector
7865 type on nodes we promote.
7866 (vectorizable_bb_reduc_epilogue): Deal with externalized
7867 root.
7868 * tree-vect-stmts.cc (vect_maybe_update_slp_op_vectype): Do
7869 not allow VECTOR_BOOLEAN_TYPE_P extern defs.
7870
7871 2022-05-04 Richard Biener <rguenther@suse.de>
7872
7873 PR tree-optimization/103116
7874 * tree-vect-stmts.cc (get_group_load_store_type): Handle the
7875 case we need peeling for gaps even though GROUP_GAP is zero.
7876
7877 2022-05-04 Martin Liska <mliska@suse.cz>
7878
7879 * gengtype-state.cc (read_a_state_token): Remove dead code.
7880 * ipa-profile.cc (ipa_profile_read_summary_section): Likewise.
7881
7882 2022-05-04 Richard Biener <rguenther@suse.de>
7883
7884 * gimplify.cc (gimplify_init_constructor): First gimplify,
7885 then simplify the result to a VECTOR_CST.
7886
7887 2022-05-04 Jakub Jelinek <jakub@redhat.com>
7888
7889 * genconditions.cc (write_conditions): Append a { nullptr, -1 }
7890 element at the end of insn_conditions.
7891 (write_writer): Use ARRAY_SIZE (insn_conditions) - 1 instead of
7892 ARRAY_SIZE (insn_conditions).
7893
7894 2022-05-04 Christophe Lyon <christophe.lyon@arm.com>
7895
7896 PR target/104662
7897 * config/arm/arm.cc (simd_valid_immediate): Exit when input is a
7898 vector of booleans and MVE is not enabled.
7899
7900 2022-05-04 Richard Biener <rguenther@suse.de>
7901
7902 PR debug/105158
7903 * tree-cfgcleanup.cc (move_debug_stmts_from_forwarder):
7904 Move debug stmts to the predecessor if moving to the
7905 destination is not possible.
7906 (remove_forwarder_block): Adjust.
7907 (remove_forwarder_block_with_phi): Likewise.
7908
7909 2022-05-03 Roger Sayle <roger@nextmovesoftware.com>
7910
7911 PR tree-optimization/102950
7912 * range-op.cc (wi_optimize_signed_bitwise_op): New function to
7913 determine bounds of bitwise operations on signed types.
7914 (operator_bitwise_and::wi_fold): Call the above function.
7915 (operator_bitwise_or::wi_fold): Likewise.
7916 (operator_bitwise_xor::wi_fold): Likewise. Additionally, the
7917 result can't be zero if the operands can't be equal.
7918
7919 2022-05-03 Iain Sandoe <iain@sandoe.co.uk>
7920
7921 * config/darwin.cc (darwin_label_is_anonymous_local_objc_name): Make
7922 protocol class methods linker-visible.
7923
7924 2022-05-03 Uroš Bizjak <ubizjak@gmail.com>
7925
7926 PR target/105079
7927 * config/i386/sse.md (*vec_extract<mode>_0_mem): New pre-reload
7928 define_insn_and_split pattern.
7929
7930 2022-05-03 Richard Biener <rguenther@suse.de>
7931
7932 PR middle-end/105083
7933 * tree-scalar-evolution.cc (scev_initialize): Verify we
7934 have appropriate loop state.
7935 * tree-ssa-dce.cc (perform_tree_ssa_dce): Re-order SCEV and
7936 loop init and finalization.
7937
7938 2022-05-03 Richard Biener <rguenther@suse.de>
7939
7940 PR middle-end/105461
7941 * opts.cc (finish_options): Match the condition to
7942 disable flag_var_tracking to that of process_options.
7943
7944 2022-05-03 Richard Biener <rguenther@suse.de>
7945
7946 * opts.cc: #undef OPTIONS_SET_P.
7947 (finish_options): Use opts_set instead of OPTIONS_SET_P.
7948
7949 2022-05-03 Richard Biener <rguenther@suse.de>
7950
7951 PR tree-optimization/105394
7952 * tree-vect-generic.cc (expand_vector_condition): Adjust
7953 comp_width for non-integer mode masks as well.
7954
7955 2022-05-03 Marcel Vollweiler <marcel@codesourcery.com>
7956
7957 * omp-low.cc (omp_runtime_api_call): Added get_mapped_ptr to
7958 omp_runtime_apis array.
7959
7960 2022-05-02 Richard Biener <rguenther@suse.de>
7961
7962 * tree-scalar-evolution.cc (expression_expensive_p):
7963 Never consider mismatched calls as cheap.
7964
7965 2022-05-02 Richard Biener <rguenther@suse.de>
7966
7967 PR tree-optimization/104240
7968 * tree-vect-slp.cc (op1_op0_map): New.
7969 (vect_get_operand_map): Handle compares.
7970 (vect_build_slp_tree_1): Support swapped operands for
7971 tcc_comparison.
7972
7973 2022-05-02 Jakub Jelinek <jakub@redhat.com>
7974
7975 PR debug/105415
7976 * cfgexpand.cc (expand_debug_expr): Don't make_decl_rtl_for_debug
7977 if there is no symtab node for the VAR_DECL.
7978
7979 2022-05-02 Sebastian Huber <sebastian.huber@embedded-brains.de>
7980
7981 * gcov-io.cc (gcov_rewrite): Clear the file error status.
7982
7983 2022-05-02 Richard Biener <rguenther@suse.de>
7984
7985 PR tree-optimization/105437
7986 * tree-vect-slp.cc (vect_schedule_slp_node): Handle the
7987 case where last_stmt alters control flow.
7988
7989 2022-05-02 Richard Biener <rguenther@suse.de>
7990
7991 * dojump.cc (do_jump): Use CASE_CONVERT.
7992 * tree-ssa-dom.cc (edge_info::derive_equivalences): Likewise.
7993
7994 2022-05-02 Jakub Jelinek <jakub@redhat.com>
7995
7996 * system.h: Include initializer_list.
7997
7998 2022-05-01 Segher Boessenkool <segher@kernel.crashing.org>
7999
8000 * config/rs6000/constraints.md (Y constraint): Fix comment.
8001
8002 2022-05-01 Aldy Hernandez <aldyh@redhat.com>
8003
8004 * tree-ssanames.cc (set_range_info): Denormalize VR_VARYING to
8005 VR_RANGE before passing a piecewise range to set_range_info_raw.
8006
8007 2022-04-30 Patrick Palka <ppalka@redhat.com>
8008
8009 * gengtype.cc (adjust_field_tree_exp): Remove.
8010 (adjust_field_type): Don't handle the "tree_exp" special attribute.
8011 * tree-core.h (struct tree_exp): Remove "special" and "desc"
8012 attributes. Add "length" attribute.
8013
8014 2022-04-29 Martin Jambor <mjambor@suse.cz>
8015
8016 PR ipa/100413
8017 * cgraph.cc (cgraph_node::remove): Release body of the node this
8018 is clone_of if appropriate.
8019
8020 2022-04-29 Uroš Bizjak <ubizjak@gmail.com>
8021
8022 PR target/51954
8023 * config/i386/i386.md (adcl/neg -> sbb peephole): New peephole2.
8024
8025 2022-04-29 Richard Biener <rguenther@suse.de>
8026
8027 * gimple-expr.cc (is_gimple_condexpr): Adjust comment.
8028 (canonicalize_cond_expr_cond): Move here from gimple.cc,
8029 allow both COND_EXPR and GIMPLE_COND forms.
8030 * gimple-expr.h (canonicalize_cond_expr_cond): Declare.
8031 * gimple.cc (canonicalize_cond_expr_cond): Remove here.
8032 * gimple.h (canonicalize_cond_expr_cond): Likewise.
8033 * gimple-loop-versioning.cc (loop_versioning::version_loop):
8034 Use is_gimple_condexpr_for_cond.
8035 * tree-parloops.cc (gen_parallel_loop): Likewise.
8036 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Check for
8037 a proper cond expr after canonicalize_cond_expr_cond.
8038 Use is_gimple_condexpr_for_cond where appropriate.
8039 * tree-ssa-loop-manip.cc (determine_exit_conditions): Likewise.
8040 * tree-vect-loop-manip.cc (slpeel_add_loop_guard): Likewise.
8041
8042 2022-04-29 Richard Biener <rguenther@suse.de>
8043
8044 * gimple-iterator.h (gsi_after_labels): Add overload for
8045 gimple_seq.
8046 (gsi_start_1): Rename to gsi_start and take a reference.
8047 (gsi_last_1): Likewise.
8048 * gimple-iterator.cc (gsi_for_stmt): Use gsi_start.
8049 * omp-low.cc (lower_rec_input_clauses): Likewise.
8050 (lower_omp_scan): Likewise.
8051
8052 2022-04-29 Richard Biener <rguenther@suse.de>
8053
8054 PR tree-optimization/105431
8055 * tree-ssa-math-opts.cc (powi_as_mults_1): Make n unsigned.
8056 (powi_as_mults): Use absu_hwi.
8057 (gimple_expand_builtin_powi): Remove now pointless n != -n
8058 check.
8059
8060 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
8061
8062 * range-op.cc (empty_range_varying): Move to range-op.h.
8063 (range_true): Move to range.h.
8064 (range_false): Same.
8065 (range_true_and_false): Same.
8066 (enum bool_range_state): Move to range-op.h.
8067 (relop_early_resolve): Same.
8068 (operator_equal::op1_op2_relation): Abstract code to...
8069 (equal_op1_op2_relation): ...here.
8070 (operator_not_equal::op1_op2_relation): Abstract code to...
8071 (not_equal_op1_op2_relation): ...here.
8072 (operator_lt::op1_op2_relation): Abstract code to...
8073 (lt_op1_op2_relation): ...here.
8074 (operator_le::op1_op2_relation): Abstract code to...
8075 (le_op1_op2_relation): ...here.
8076 (operator_gt::op1_op2_relation): Abstract code to...
8077 (gt_op1_op2_relation): ...here.
8078 (operator_ge::op1_op2_relation): Abstract code to...
8079 (ge_op1_op2_relation): ...here.
8080 (class range_op_table): Move to range-op.h.
8081 * range-op.h (equal_op1_op2_relation): Moved from range-op.cc.
8082 (not_equal_op1_op2_relation): Same.
8083 (lt_op1_op2_relation): Same.
8084 (le_op1_op2_relation): Same.
8085 (gt_op1_op2_relation): Same.
8086 (ge_op1_op2_relation): Same.
8087 (enum bool_range_state): Same.
8088 (get_bool_state): Same.
8089 (empty_range_varying): Same.
8090 (relop_early_resolve): Same.
8091 (class range_op_table): Same.
8092 * range.h (range_true): Same.
8093 (range_false): Same.
8094 (range_true_and_false): Same.
8095
8096 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
8097
8098 * gimple-fold.cc (size_must_be_zero_p): Use reference
8099 instead of pointer
8100 * gimple-ssa-evrp-analyze.cc
8101 (evrp_range_analyzer::record_ranges_from_incoming_edge): Rename
8102 intersect to legacy_verbose_intersect.
8103 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use reference instead
8104 of pointer.
8105 * tree-ssa-dom.cc (dom_jt_simplifier::simplify): Use value_range
8106 instead of value_range_equiv.
8107 * tree-vrp.cc (extract_range_from_plus_minus_expr): Use reference
8108 instead of pointer.
8109 (find_case_label_range): Same.
8110 * value-range-equiv.cc (value_range_equiv::intersect): Rename to...
8111 (value_range_equiv::legacy_verbose_intersect): ...this.
8112 (value_range_equiv::union_): Rename to...
8113 (value_range_equiv::legacy_verbose_union_): ...this.
8114 * value-range-equiv.h (class value_range_equiv): Rename union and
8115 intersect to legacy_verbose_{intersect,union}.
8116 * value-range.cc (irange::union_): Rename to...
8117 (irange::legacy_verbose_union_): ...this.
8118 (irange::intersect): Rename to...
8119 (irange::legacy_verbose_intersect): ...this.
8120 * value-range.h (irange::union_): Rename union_ to
8121 legacy_verbose_union.
8122 (irange::intersect): Rename intersect to legacy_verbose_intersect.
8123 * vr-values.cc (vr_values::update_value_range): Same.
8124 (vr_values::extract_range_for_var_from_comparison_expr): Same.
8125 (vr_values::extract_range_from_cond_expr): Rename union_ to
8126 legacy_verbose_union.
8127 (vr_values::extract_range_from_phi_node): Same.
8128
8129 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
8130
8131 * gimple-ssa-evrp-analyze.cc
8132 (evrp_range_analyzer::set_ssa_range_info): Use *range_info methods
8133 that take a range.
8134 * gimple-ssa-sprintf.cc (try_substitute_return_value): Same.
8135 * ipa-prop.cc (ipcp_update_vr): Same.
8136 * tree-inline.cc (remap_ssa_name): Same.
8137 * tree-ssa-copy.cc (fini_copy_prop): Same.
8138 * tree-ssa-math-opts.cc (optimize_spaceship): Same.
8139 * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Same.
8140 * tree-ssa-pre.cc (insert_into_preds_of_block): Same.
8141 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Same.
8142 * tree-ssa-strlen.cc (set_strlen_range): Same.
8143 (strlen_pass::handle_builtin_string_cmp): Same.
8144 * tree-ssanames.cc (set_range_info): Make static.
8145 (duplicate_ssa_name_range_info): Make static and add a new variant
8146 calling the static.
8147 * tree-ssanames.h (set_range_info): Remove version taking wide ints.
8148 (duplicate_ssa_name_range_info): Remove version taking a
8149 range_info_def and replace with a version taking SSA names.
8150 * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Use *range_info methods
8151 that take a range.
8152 (vect_do_peeling): Same.
8153 * tree-vrp.cc (vrp_asserts::remove_range_assertions): Same.
8154 * vr-values.cc (simplify_truth_ops_using_ranges): Same.
8155
8156 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
8157
8158 * value-range.h (irange::irange): Use set_undefined.
8159
8160 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
8161
8162 * gimple-range-cache.h (non_null_ref::adjust_range): Do not use
8163 irange::intersect (wide_int, wide_int).
8164 * gimple-range-fold.cc (adjust_pointer_diff_expr): Same.
8165 (adjust_imagpart_expr): Same.
8166 * value-range.h (irange::intersect (wide_int, wide_int)): Make
8167 private.
8168
8169 2022-04-29 Richard Biener <rguenther@suse.de>
8170
8171 PR tree-optimization/104322
8172 * tree-vect-loop.cc (vectorizable_reduction): Remove dead code.
8173
8174 2022-04-29 Richard Biener <rguenther@suse.de>
8175
8176 PR middle-end/105376
8177 * tree.cc (build_real): Special case dconst* arguments
8178 for decimal floating point types.
8179
8180 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
8181
8182 * doc/gcov.texi (Profiling and Test Coverage in Freestanding
8183 Environments): New section.
8184
8185 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
8186
8187 * doc/gcov-tool.texi: Document merge-stream subcommand.
8188 * doc/invoke.texi (fprofile-info-section): Mention merge-stream
8189 subcommand of gcov-tool.
8190 * gcov-tool.cc (gcov_profile_merge_stream): Declare.
8191 (print_merge_stream_usage_message): New.
8192 (merge_stream_usage): Likewise.
8193 (do_merge_stream): Likewise.
8194 (print_usage): Call print_merge_stream_usage_message().
8195 (main): Call do_merge_stream() to execute merge-stream subcommand.
8196
8197 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
8198
8199 * gcov-io.cc (gcov_file_error): New enum.
8200 (gcov_var): Use gcov_file_error enum for the error member.
8201 (gcov_open): Use GCOV_FILE_NO_ERROR.
8202 (gcov_close): Use GCOV_FILE_WRITE_ERROR.
8203 (gcov_write): Likewise.
8204 (gcov_write_unsigned): Likewise.
8205 (gcov_write_string): Likewise.
8206 (gcov_read_bytes): Set error code if EOF is reached.
8207 (gcov_read_counter): Use GCOV_FILE_COUNTER_OVERFLOW.
8208
8209 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
8210
8211 * gcov-io.cc (GCOV_MODE_STDIN): Define.
8212 (gcov_position): For gcov-tool, return calculated position if file is
8213 stdin.
8214 (gcov_open): For gcov-tool, use stdin if filename is NULL.
8215 (gcov_close): For gcov-tool, do not close stdin.
8216 (gcov_read_bytes): For gcov-tool, update position if file is stdin.
8217 (gcov_sync): For gcov-tool, discard input if file is stdin.
8218
8219 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
8220
8221 * doc/invoke.texi (fprofile-info-section): Mention
8222 __gcov_filename_to_gcfn(). Use "freestanding" to match with C11
8223 standard language. Fix minor example code issues.
8224 * gcov-io.h (GCOV_FILENAME_MAGIC): Define and document.
8225
8226 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
8227
8228 * gcov-io.cc (gcov_seek): Make it static.
8229 * gcov-io.h (struct gcov_summary): Do not mention gcov_seek().
8230
8231 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
8232
8233 * gcov-tool.cc (gcov_do_dump): Add mode parameter.
8234 (gcov_output_files): Open files for reading and writing.
8235
8236 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
8237
8238 * gcov-io.cc (gcov_open): Always use the mode parameter.
8239 * gcov-io.h (gcov_open): Declare it unconditionally.
8240
8241 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
8242
8243 * gcov-tool.cc (gcov_profile_merge): Adjust return type.
8244 (profile_merge): Allow merging of directories which contain no profile
8245 files.
8246
8247 2022-04-28 David Malcolm <dmalcolm@redhat.com>
8248
8249 * doc/invoke.texi (-fdump-analyzer-feasibility): Mention the
8250 fpath.txt output.
8251
8252 2022-04-28 Jakub Jelinek <jakub@redhat.com>
8253
8254 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Create a
8255 temporary only if out overlaps compare_op, not when it overlaps
8256 op0 or op1.
8257
8258 2022-04-28 Jakub Jelinek <jakub@redhat.com>
8259
8260 PR lto/105399
8261 * cgraph.cc (cgraph_node::verify_node): Don't verify
8262 semantic_interposition flag against
8263 opt_for_fn (decl, flag_semantic_interposition) for aliases in lto1.
8264
8265 2022-04-28 Jakub Jelinek <jakub@redhat.com>
8266
8267 PR target/105331
8268 * config/i386/i386.cc (ix86_gimplify_va_arg): Mark va_arg_tmp
8269 temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR
8270 of it.
8271
8272 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
8273
8274 * doc/install.texi (Configuration): Remove misleading text
8275 around LE PowerPC Linux multilibs.
8276
8277 2022-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8278
8279 PR d/103528
8280 * doc/install.texi (Tools/packages necessary for building GCC)
8281 (GDC): Document libphobos requirement.
8282 (Host/target specific installation notes for GCC, *-*-solaris2*):
8283 Document libphobos and GDC specifics.
8284
8285 2022-04-28 Richard Biener <rguenther@suse.de>
8286
8287 PR tree-optimization/105219
8288 * tree-vect-loop.cc (vect_transform_loop): Disable
8289 special code narrowing the vectorized epilogue max
8290 iterations when peeling for alignment or gaps was in effect.
8291
8292 2022-04-28 Xi Ruoyao <xry111@mengyan1223.wang>
8293
8294 * config/loongarch/loongarch.cc
8295 (loongarch_flatten_aggregate_field): Ignore empty fields for
8296 RECORD_TYPE.
8297
8298 2022-04-27 Lulu Cheng <chenglulu@loongson.cn>
8299
8300 * config/loongarch/loongarch.md: Add fdiv define_expand template,
8301 then generate floating-point division and floating-point reciprocal
8302 instructions.
8303
8304 2022-04-27 Lulu Cheng <chenglulu@loongson.cn>
8305
8306 * config/loongarch/loongarch.md: Add '(clobber (mem:BLK (scratch)))'
8307 to PLV instruction templates.
8308
8309 2022-04-27 Richard Biener <rguenther@suse.de>
8310
8311 PR middle-end/104492
8312 * gimple-ssa-warn-access.cc
8313 (pass_waccess::warn_invalid_pointer): Exclude equality compare
8314 diagnostics for all kind of invalidations.
8315 (pass_waccess::check_dangling_uses): Fix post-dominator query.
8316 (pass_waccess::check_pointer_uses): Likewise.
8317
8318 2022-04-27 Andreas Krebbel <krebbel@linux.ibm.com>
8319
8320 PR target/102024
8321 * config/s390/s390-protos.h (s390_function_arg_vector): Remove
8322 prototype.
8323 * config/s390/s390.cc (s390_single_field_struct_p): New function.
8324 (s390_function_arg_vector): Invoke s390_single_field_struct_p.
8325 (s390_function_arg_float): Likewise.
8326
8327 2022-04-27 Jakub Jelinek <jakub@redhat.com>
8328
8329 PR sanitizer/105396
8330 * asan.cc (asan_redzone_buffer::emit_redzone_byte): Handle the case
8331 where offset is bigger than off but smaller than m_prev_offset + 32
8332 bits by pushing one or more 0 bytes. Sink the
8333 m_shadow_bytes.safe_push (value); flush_if_full (); statements from
8334 all cases to the end of the function.
8335
8336 2022-04-27 Kewen Lin <linkw@linux.ibm.com>
8337
8338 PR target/105271
8339 * config/rs6000/rs6000-builtins.def (NEG_V2DI): Move to [power8-vector]
8340 stanza.
8341
8342 2022-04-26 Thomas Schwinge <thomas@codesourcery.com>
8343
8344 * config/gcn/gcn.cc (gcn_print_lds_decl): Make "gang-private
8345 data-share memory exhausted" error more verbose.
8346
8347 2022-04-26 Martin Liska <mliska@suse.cz>
8348
8349 PR lto/105364
8350 * lto-wrapper.cc (print_lto_docs_link): Use global_dc.
8351 (run_gcc): Parse OPT_fdiagnostics_urls_.
8352 (main): Initialize global_dc.
8353
8354 2022-04-26 Jakub Jelinek <jakub@redhat.com>
8355
8356 PR rtl-optimization/105314
8357 * ifcvt.cc (noce_try_store_flag_mask): Don't require that the non-zero
8358 operand is equal to if_info->x, instead use the non-zero operand
8359 as one of the operands of AND with if_info->x as target.
8360
8361 2022-04-26 Jakub Jelinek <jakub@redhat.com>
8362
8363 PR tree-optimization/105374
8364 * tree-ssa-reassoc.cc (eliminate_redundant_comparison): Punt if
8365 !fold_convertible_p rather than assuming fold_convert must succeed.
8366
8367 2022-04-26 Jakub Jelinek <jakub@redhat.com>
8368
8369 PR target/105367
8370 * config/i386/i386.cc (ix86_veclibabi_svml, ix86_veclibabi_acml): Pass
8371 el_mode == DFmode ? double_type_node : float_type_node instead of
8372 TREE_TYPE (type_in) as first arguments to mathfn_built_in.
8373
8374 2022-04-25 David Malcolm <dmalcolm@redhat.com>
8375
8376 PR analyzer/104308
8377 * gimple-fold.cc (gimple_fold_builtin_memory_op): Explicitly set
8378 the location of new_stmt in all places that don't already set it,
8379 whether explicitly, or via a call to gsi_replace.
8380
8381 2022-04-25 Paul A. Clarke <pc@us.ibm.com>
8382
8383 * doc/extend.texi (Other Builtins): Correct reference to 'modff'.
8384
8385 2022-04-25 Andrew MacLeod <amacleod@redhat.com>
8386
8387 PR tree-optimization/105276
8388 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Include
8389 existing global range with calculated value.
8390
8391 2022-04-25 Richard Biener <rguenther@suse.de>
8392
8393 PR tree-optimization/105368
8394 * tree-ssa-math-opts.cc (powi_cost): Use absu_hwi.
8395
8396 2022-04-25 Richard Biener <rguenther@suse.de>
8397
8398 PR tree-optimization/100810
8399 * tree-ssa-loop-ivopts.cc (struct iv_cand): Add involves_undefs flag.
8400 (find_ssa_undef): New function.
8401 (add_candidate_1): Avoid adding derived candidates with
8402 undefined SSA names and mark the original ones.
8403 (determine_group_iv_cost_generic): Reject rewriting
8404 uses with a different IV when that involves undefined SSA names.
8405
8406 2022-04-25 Steven G. Kargl <kargl@gcc.gnu.org>
8407
8408 PR target/89125
8409 * config/freebsd.h: Define TARGET_LIBC_HAS_FUNCTION to be
8410 bsd_libc_has_function.
8411 * targhooks.cc (bsd_libc_has_function): New function.
8412 Expand the supported math functions to inclue C99 libm.
8413 * targhooks.h (bsd_libc_has_function): New Prototype.
8414
8415 2022-04-25 Richard Biener <rguenther@suse.de>
8416
8417 PR rtl-optimization/105231
8418 * combine.cc (distribute_notes): Assert that a REG_EH_REGION
8419 with landing pad > 0 is from i3. Put any REG_EH_REGION note
8420 on i3 or drop it if the insn can not trap.
8421 (try_combine): Ensure that we can merge REG_EH_REGION notes
8422 with non-call exceptions. Ensure we are not splitting a
8423 trapping part of an insn with non-call exceptions when there
8424 is any REG_EH_REGION note to preserve.
8425
8426 2022-04-25 Hongyu Wang <hongyu.wang@intel.com>
8427
8428 PR target/105339
8429 * config/i386/avx512fintrin.h (_mm512_scalef_round_pd):
8430 Add parentheses for parameters and djust format.
8431 (_mm512_mask_scalef_round_pd): Ditto.
8432 (_mm512_maskz_scalef_round_pd): Ditto.
8433 (_mm512_scalef_round_ps): Ditto.
8434 (_mm512_mask_scalef_round_ps): Ditto.
8435 (_mm512_maskz_scalef_round_ps): Ditto.
8436 (_mm_scalef_round_sd): Use _mm_undefined_pd.
8437 (_mm_scalef_round_ss): Use _mm_undefined_ps.
8438 (_mm_mask_scalef_round_sd): New macro.
8439 (_mm_mask_scalef_round_ss): Ditto.
8440 (_mm_maskz_scalef_round_sd): Ditto.
8441 (_mm_maskz_scalef_round_ss): Ditto.
8442
8443 2022-04-23 Jakub Jelinek <jakub@redhat.com>
8444
8445 PR target/105338
8446 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Handle
8447 op0 == cst1 ? op0 : op3 like op0 == cst1 ? cst1 : op3 for the non-cmov
8448 cases.
8449
8450 2022-04-22 Segher Boessenkool <segher@kernel.crashing.org>
8451
8452 PR target/105334
8453 * config/rs6000/rs6000.md (pack<mode> for FMOVE128): New expander.
8454 (pack<mode> for FMOVE128): Rename and split the insn_and_split to...
8455 (pack<mode>_hard for FMOVE128): ... this...
8456 (pack<mode>_soft for FMOVE128): ... and this.
8457
8458 2022-04-22 Paul A. Clarke <pc@us.ibm.com>
8459
8460 * doc/extend.texi: Correct "This" to "These".
8461
8462 2022-04-22 Jakub Jelinek <jakub@redhat.com>
8463
8464 PR rtl-optimization/105333
8465 * rtlanal.cc (replace_rtx): Use simplify_subreg or
8466 simplify_unary_operation if CONST_SCALAR_INT_P rather than just
8467 CONST_INT_P.
8468
8469 2022-04-21 Segher Boessenkool <segher@kernel.crashing.org>
8470
8471 PR target/103197
8472 PR target/102146
8473 * config/rs6000/rs6000.md (zero_extendqi<mode>2 for EXTQI): Disparage
8474 the "Z" alternatives in {l,st}{f,xs}iwzx.
8475 (zero_extendhi<mode>2 for EXTHI): Ditto.
8476 (zero_extendsi<mode>2 for EXTSI): Ditto.
8477 (*movsi_internal1): Ditto.
8478 (*mov<mode>_internal1 for QHI): Ditto.
8479 (movsd_hardfloat): Ditto.
8480
8481 2022-04-21 Martin Liska <mliska@suse.cz>
8482
8483 * configure.ac: Enable compressed debug sections for mold
8484 linker.
8485 * configure: Regenerate.
8486
8487 2022-04-21 Jakub Jelinek <jakub@redhat.com>
8488
8489 PR debug/105203
8490 * emit-rtl.cc (emit_copy_of_insn_after): Don't call mark_jump_label
8491 on DEBUG_INSNs.
8492
8493 2022-04-20 Richard Biener <rguenther@suse.de>
8494
8495 PR tree-optimization/104912
8496 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
8497 the cost model check to a separate BB to make sure it is
8498 checked first and not combined with other version checks.
8499
8500 2022-04-20 Richard Biener <rguenther@suse.de>
8501
8502 PR tree-optimization/105312
8503 * gimple-isel.cc (gimple_expand_vec_cond_expr): Query both
8504 VCOND and VCONDU for EQ and NE.
8505
8506 2022-04-20 Jan Hubicka <hubicka@ucw.cz>
8507
8508 PR ipa/103818
8509 * ipa-modref-tree.cc (modref_access_node::closer_pair_p): Use
8510 poly_offset_int to avoid overflow.
8511 (modref_access_node::update2): likewise.
8512
8513 2022-04-20 Jakub Jelinek <jakub@redhat.com>
8514
8515 PR ipa/105306
8516 * cgraph.cc (cgraph_node::create): Set node->semantic_interposition
8517 to opt_for_fn (decl, flag_semantic_interposition).
8518 * cgraphclones.cc (cgraph_node::create_clone): Copy over
8519 semantic_interposition flag.
8520
8521 2022-04-19 Sergei Trofimovich <siarheit@google.com>
8522
8523 PR gcov-profile/105282
8524 * value-prof.cc (stream_out_histogram_value): Allow negative counts
8525 on HIST_TYPE_INDIR_CALL.
8526
8527 2022-04-19 Jakub Jelinek <jakub@redhat.com>
8528
8529 PR target/105257
8530 * config/sparc/sparc.cc (epilogue_renumber): If ORIGINAL_REGNO,
8531 use gen_raw_REG instead of gen_rtx_REG and copy over also
8532 ORIGINAL_REGNO. Use return 0; instead of /* fallthrough */.
8533
8534 2022-04-19 Richard Biener <rguenther@suse.de>
8535
8536 PR tree-optimization/104010
8537 PR tree-optimization/103941
8538 * tree-vect-slp.cc (vect_bb_slp_scalar_cost): When
8539 we run into stmts in patterns continue walking those
8540 for uses outside of the vectorized region instead of
8541 marking the lane live.
8542
8543 2022-04-18 Hans-Peter Nilsson <hp@axis.com>
8544
8545 * doc/install.texi <CRIS>: Remove references to removed websites and
8546 adjust for cris-*-elf being the only remaining toolchain.
8547
8548 2022-04-18 Hans-Peter Nilsson <hp@axis.com>
8549
8550 * doc/invoke.texi <CRIS>: Remove references to options for removed
8551 subtarget cris-axis-linux-gnu and tweak wording accordingly.
8552
8553 2022-04-16 Gerald Pfeifer <gerald@pfeifer.com>
8554
8555 * doc/install.texi (Specific): Adjust mingw-w64 download link.
8556
8557 2022-04-15 Hongyu Wang <hongyu.wang@intel.com>
8558
8559 * config/i386/smmintrin.h: Correct target pragma from sse4.1
8560 and sse4.2 to crc32 for crc32 intrinsics.
8561
8562 2022-04-14 Indu Bhagat <indu.bhagat@oracle.com>
8563
8564 PR debug/105089
8565 * ctfc.cc (ctf_dvd_ignore_insert): New function.
8566 (ctf_dvd_ignore_lookup): Likewise.
8567 (ctf_add_variable): Keep track of non-defining decl DIEs.
8568 (new_ctf_container): Initialize the new hash-table.
8569 (ctfc_delete_container): Empty hash-table.
8570 * ctfc.h (struct ctf_container): Add new hash-table.
8571 (ctf_dvd_ignore_lookup): New declaration.
8572 (ctf_add_variable): Add additional argument.
8573 * ctfout.cc (ctf_dvd_preprocess_cb): Skip adding CTF variable
8574 record for non-defining decl for which a defining decl exists
8575 in the same TU.
8576 (ctf_preprocess): Defer updating the number of global objts
8577 until here.
8578 (output_ctf_header): Use ctfc_vars_list_count as some CTF
8579 variables may not make it to the final output.
8580 (output_ctf_vars): Likewise.
8581 * dwarf2ctf.cc (gen_ctf_variable): Skip generating CTF variable
8582 if this is known to be a non-defining decl DIE.
8583
8584 2022-04-14 Indu Bhagat <indu.bhagat@oracle.com>
8585
8586 * ctfc.h (struct ctf_container): Introduce a new member.
8587 * ctfout.cc (ctf_list_add_ctf_vars): Use it instead of static
8588 variable.
8589
8590 2022-04-14 Jakub Jelinek <jakub@redhat.com>
8591
8592 PR target/105247
8593 * simplify-rtx.cc (simplify_const_binary_operation): For shifts
8594 or rotates by VOIDmode constant integer shift count use word_mode
8595 for the operand if int_mode is narrower than word.
8596
8597 2022-04-14 Robin Dapp <rdapp@linux.ibm.com>
8598
8599 * config/s390/s390.cc (s390_get_sched_attrmask): Add z16.
8600 (s390_get_unit_mask): Likewise.
8601 (s390_is_fpd): Likewise.
8602 (s390_is_fxd): Likewise.
8603 * config/s390/s390.h (s390_tune_attr): Set max tune level to z16.
8604 * config/s390/s390.md (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15):
8605 Add z16.
8606 (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15,z16):
8607 Likewise.
8608 * config/s390/3931.md: New file.
8609
8610 2022-04-13 Richard Sandiford <richard.sandiford@arm.com>
8611
8612 PR tree-optimization/105254
8613 * config/aarch64/aarch64.cc
8614 (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
8615 loop_vec_info as argument. Restrict the unroll factor to values
8616 that divide the VF.
8617 (aarch64_vector_costs::finish_cost): Update call accordingly.
8618
8619 2022-04-13 Richard Biener <rguenther@suse.de>
8620
8621 PR tree-optimization/105263
8622 * tree-ssa-reassoc.cc (try_special_add_to_ops): Do not consume
8623 negates in multiplication chains with DFP.
8624
8625 2022-04-13 Jakub Jelinek <jakub@redhat.com>
8626
8627 PR middle-end/105253
8628 * tree.cc (tree_builtin_call_types_compatible_p): If PROP_gimple,
8629 use useless_type_conversion_p checks instead of TYPE_MAIN_VARIANT
8630 comparisons or tree_nop_conversion_p checks.
8631
8632 2022-04-13 Hongyu Wang <hongyu.wang@intel.com>
8633
8634 PR target/103069
8635 * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop):
8636 Add missing set to target_val at pause label.
8637
8638 2022-04-13 Jakub Jelinek <jakub@redhat.com>
8639
8640 PR target/105234
8641 * attribs.cc (decl_attributes): Don't set
8642 DECL_FUNCTION_SPECIFIC_TARGET if target_option_default_node is
8643 NULL.
8644
8645 2022-04-13 Richard Biener <rguenther@suse.de>
8646
8647 PR tree-optimization/105250
8648 * fold-const.cc (fold_convertible_p): Revert
8649 r12-7979-geaaf77dd85c333, instead check for size equality
8650 of the vector types involved.
8651
8652 2022-04-13 Richard Biener <rguenther@suse.de>
8653
8654 Revert:
8655 2022-04-13 Richard Biener <rguenther@suse.de>
8656
8657 PR tree-optimization/104912
8658 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
8659 the cost model check to a separate BB to make sure it is
8660 checked first and not combined with other version checks.
8661
8662 2022-04-13 Richard Biener <rguenther@suse.de>
8663
8664 PR tree-optimization/104912
8665 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
8666 the cost model check to a separate BB to make sure it is
8667 checked first and not combined with other version checks.
8668
8669 2022-04-13 Jakub Jelinek <jakub@redhat.com>
8670
8671 * tree-scalar-evolution.cc (expression_expensive_p): Fix a comment typo.
8672
8673 2022-04-12 Antoni Boucher <bouanto@zoho.com>
8674
8675 PR jit/104072
8676 * reginfo.cc: New functions (clear_global_regs_cache,
8677 reginfo_cc_finalize) to avoid an issue where compiling the same
8678 code multiple times gives an error about assigning the same
8679 register to 2 global variables.
8680 * rtl.h: New function (reginfo_cc_finalize).
8681 * toplev.cc: Call it.
8682
8683 2022-04-12 Antoni Boucher <bouanto@zoho.com>
8684
8685 PR jit/104071
8686 * toplev.cc: Call the new function tree_cc_finalize in
8687 toplev::finalize.
8688 * tree.cc: New functions (clear_nonstandard_integer_type_cache
8689 and tree_cc_finalize) to clear the cache of non-standard integer
8690 types to avoid having issues with some optimizations of
8691 bitcast where the SSA_NAME will have a size of a cached
8692 integer type that should have been invalidated, causing a
8693 comparison of integer constant to fail.
8694 * tree.h: New function (tree_cc_finalize).
8695
8696 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
8697
8698 PR target/97348
8699 * config/nvptx/nvptx.h (ASM_SPEC): Don't set.
8700 * config/nvptx/nvptx.opt (misa): Adjust comment.
8701
8702 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
8703
8704 Revert:
8705 2022-03-03 Tom de Vries <tdevries@suse.de>
8706
8707 * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
8708
8709 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
8710
8711 Revert:
8712 2022-03-31 Tom de Vries <tdevries@suse.de>
8713
8714 * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
8715
8716 2022-04-12 Richard Biener <rguenther@suse.de>
8717
8718 PR ipa/104303
8719 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Do not
8720 include local escaped memory as obviously necessary stores.
8721
8722 2022-04-12 Richard Biener <rguenther@suse.de>
8723
8724 PR tree-optimization/105235
8725 * tree-ssa-math-opts.cc (execute_cse_conv_1): Clean EH and
8726 return whether the CFG changed.
8727 (execute_cse_sincos_1): Adjust.
8728
8729 2022-04-12 Przemyslaw Wirkus <Przemyslaw.Wirkus@arm.com>
8730
8731 PR target/104144
8732 * config/arm/t-aprofile (MULTI_ARCH_OPTS_A): Remove Armv9-a options.
8733 (MULTI_ARCH_DIRS_A): Remove Armv9-a diretories.
8734 (MULTILIB_REQUIRED): Don't require Armv9-a libraries.
8735 (MULTILIB_MATCHES): Treat Armv9-a as equivalent to Armv8-a.
8736 (MULTILIB_REUSE): Remove remap rules for Armv9-a.
8737 * config/arm/t-multilib (v9_a_nosimd_variants): Delete.
8738 (MULTILIB_MATCHES): Remove mappings for v9_a_nosimd_variants.
8739
8740 2022-04-12 Richard Biener <rguenther@suse.de>
8741
8742 PR tree-optimization/105232
8743 * tree.cc (component_ref_size): Bail out for too large
8744 or non-constant sizes.
8745
8746 2022-04-12 Richard Biener <rguenther@suse.de>
8747
8748 PR tree-optimization/105226
8749 * tree-vect-loop-manip.cc (vect_loop_versioning): Verify
8750 we can split the exit of an outer loop we choose to version.
8751
8752 2022-04-12 Jakub Jelinek <jakub@redhat.com>
8753
8754 * config/i386/i386-expand.cc (ix86_emit_i387_sinh, ix86_emit_i387_cosh,
8755 ix86_emit_i387_tanh, ix86_emit_i387_asinh, ix86_emit_i387_acosh,
8756 ix86_emit_i387_atanh, ix86_emit_i387_log1p, ix86_emit_i387_round,
8757 ix86_emit_swdivsf, ix86_emit_swsqrtsf,
8758 ix86_expand_atomic_fetch_op_loop, ix86_expand_cmpxchg_loop):
8759 Formatting fix.
8760 * config/i386/i386.cc (warn_once_call_ms2sysv_xlogues): Likewise.
8761
8762 2022-04-12 Jakub Jelinek <jakub@redhat.com>
8763
8764 PR target/105214
8765 * config/i386/i386-expand.cc (ix86_emit_i387_log1p): Call
8766 do_pending_stack_adjust.
8767
8768 2022-04-12 Jakub Jelinek <jakub@redhat.com>
8769
8770 PR rtl-optimization/105211
8771 * builtins.cc (expand_builtin_int_roundingfn_2): If mathfn_built_in_1
8772 fails for TREE_TYPE (arg), retry it with
8773 TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl))) and if even that
8774 fails, emit call normally.
8775
8776 2022-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
8777
8778 * common/config/s390/s390-common.cc: Rename PF_ARCH14 to PF_Z16.
8779 * config.gcc: Add z16 as march/mtune switch.
8780 * config/s390/driver-native.cc (s390_host_detect_local_cpu):
8781 Recognize z16 with -march=native.
8782 * config/s390/s390-opts.h (enum processor_type): Rename
8783 PROCESSOR_ARCH14 to PROCESSOR_3931_Z16.
8784 * config/s390/s390.cc (PROCESSOR_ARCH14): Rename to ...
8785 (PROCESSOR_3931_Z16): ... throughout the file.
8786 (s390_processor processor_table): Add z16 as cpu string.
8787 * config/s390/s390.h (enum processor_flags): Rename PF_ARCH14 to
8788 PF_Z16.
8789 (TARGET_CPU_ARCH14): Rename to ...
8790 (TARGET_CPU_Z16): ... this.
8791 (TARGET_CPU_ARCH14_P): Rename to ...
8792 (TARGET_CPU_Z16_P): ... this.
8793 (TARGET_ARCH14): Rename to ...
8794 (TARGET_Z16): ... this.
8795 (TARGET_ARCH14_P): Rename to ...
8796 (TARGET_Z16_P): ... this.
8797 * config/s390/s390.md (cpu_facility): Rename arch14 to z16 and
8798 check TARGET_Z16 instead of TARGET_ARCH14.
8799 * config/s390/s390.opt: Add z16 to processor_type.
8800 * doc/invoke.texi: Document z16 and arch14.
8801
8802 2022-04-12 chenglulu <chenglulu@loongson.cn>
8803
8804 * config/loongarch/loongarch.cc: Fix bug for
8805 tmpdir-g++.dg-struct-layout-1/t033.
8806
8807 2022-04-11 Peter Bergner <bergner@linux.ibm.com>
8808
8809 PR target/104894
8810 * config/rs6000/rs6000.cc (rs6000_sibcall_aix): Handle pcrel sibcalls
8811 to longcall functions.
8812
8813 2022-04-11 Jason Merrill <jason@redhat.com>
8814
8815 * ipa-free-lang-data.cc (free_lang_data_in_decl): Fix typos.
8816
8817 2022-04-11 Segher Boessenkool <segher@kernel.crashing.org>
8818
8819 PR target/105213
8820 PR target/103623
8821 * config/rs6000/rs6000.md (unpack<mode>_nodm): Add m,r,i alternative.
8822
8823 2022-04-11 Jakub Jelinek <jakub@redhat.com>
8824
8825 PR tree-optimization/105218
8826 * tree-ssa-phiopt.cc (value_replacement): If middle_bb has
8827 more than one predecessor or phi's bb more than 2 predecessors,
8828 reset phi result uses instead of adding a debug temp.
8829
8830 2022-04-11 Kito Cheng <kito.cheng@sifive.com>
8831
8832 PR target/104853
8833 * config.gcc: Pass -misa-spec to arch-canonicalize and
8834 multilib-generator.
8835 * config/riscv/arch-canonicalize: Adding -misa-spec option.
8836 (SUPPORTED_ISA_SPEC): New.
8837 (arch_canonicalize): New argument `isa_spec`.
8838 Handle multiple ISA spec versions.
8839 * config/riscv/multilib-generator: Adding -misa-spec option.
8840
8841 2022-04-11 Kito Cheng <kito.cheng@sifive.com>
8842
8843 * config/riscv/arch-canonicalize: Add TODO item.
8844 (IMPLIED_EXT): Sync.
8845 (arch_canonicalize): Checking until no change.
8846
8847 2022-04-11 Tamar Christina <tamar.christina@arm.com>
8848
8849 PR target/105197
8850 * tree-vect-stmts.cc (vectorizable_condition): Prevent cond swap when
8851 not masked.
8852
8853 2022-04-11 Jason Merrill <jason@redhat.com>
8854
8855 PR c++/100370
8856 * pointer-query.cc (compute_objsize_r) [POINTER_PLUS_EXPR]: Require
8857 deref == -1.
8858
8859 2022-04-11 Jakub Jelinek <jakub@redhat.com>
8860
8861 PR tree-optimization/104639
8862 * tree-ssa-phiopt.cc: Include tree-ssa-propagate.h.
8863 (value_replacement): Optimize (x != cst1 ? x : cst2) != cst3
8864 into x != cst3.
8865
8866 2022-04-11 Jeff Law <jeffreyalaw@gmail.com>
8867
8868 * config/bfin/bfin.md (rol_one): Fix pattern to indicate the
8869 sign bit of the source ends up in CC.
8870
8871 2022-04-09 Jan Hubicka <hubicka@ucw.cz>
8872
8873 PR ipa/103376
8874 * cgraphunit.cc (cgraph_node::analyze): update semantic_interposition
8875 flag.
8876
8877 2022-04-09 Jan Hubicka <hubicka@ucw.cz>
8878
8879 * ipa-modref.cc (ipa_merge_modref_summary_after_inlining): Propagate
8880 nondeterministic and side_effects flags.
8881
8882 2022-04-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
8883
8884 PR target/105157
8885 * config.gcc: Shift ext_mask by TARGET_CPU_NBITS.
8886 * config/aarch64/aarch64.h (TARGET_CPU_NBITS): New macro.
8887 (TARGET_CPU_MASK): Likewise.
8888 (TARGET_CPU_DEFAULT): Use TARGET_CPU_NBITS.
8889 * config/aarch64/aarch64.cc (aarch64_get_tune_cpu): Use TARGET_CPU_MASK.
8890 (aarch64_get_arch): Likewise.
8891 (aarch64_override_options): Use TARGET_CPU_NBITS.
8892
8893 2022-04-08 Richard Biener <rguenther@suse.de>
8894
8895 PR tree-optimization/105198
8896 * tree-predcom.cc (find_looparound_phi): Check whether
8897 the found memory location of the entry value is clobbered
8898 inbetween the value we want to use and loop entry.
8899
8900 2022-04-08 Jakub Jelinek <jakub@redhat.com>
8901
8902 PR tree-optimization/105189
8903 * fold-const.cc (make_range_step): Fix up handling of
8904 (unsigned) x +[low, -] ranges for signed x if low fits into
8905 typeof (x).
8906
8907 2022-04-08 Richard Biener <rguenther@suse.de>
8908
8909 PR tree-optimization/105175
8910 * tree-vect-stmts.cc (vectorizable_operation): Suppress
8911 -Wvector-operation-performance if using emulated vectors.
8912 * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
8913 -Wvector-operation-performance when suppressed.
8914 (expand_vector_parallel): Likewise.
8915 (expand_vector_comparison): Likewise.
8916 (expand_vector_condition): Likewise.
8917 (lower_vec_perm): Likewise.
8918 (expand_vector_conversion): Likewise.
8919
8920 2022-04-07 Tamar Christina <tamar.christina@arm.com>
8921
8922 PR target/104409
8923 * config/aarch64/aarch64-builtins.cc (handle_arm_acle_h): New.
8924 (aarch64_general_init_builtins): Move LS64 code.
8925 * config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64): Support
8926 arm_acle.h
8927 * config/aarch64/aarch64-protos.h (handle_arm_acle_h): New.
8928 * config/aarch64/arm_acle.h: Add pragma GCC aarch64 "arm_acle.h".
8929
8930 2022-04-07 Richard Biener <rguenther@suse.de>
8931 Jan Hubicka <hubicka@ucw.cz>
8932
8933 PR ipa/104303
8934 * tree-ssa-alias.h (ptr_deref_may_alias_global_p,
8935 ref_may_alias_global_p, ref_may_alias_global_p,
8936 stmt_may_clobber_global_p, pt_solution_includes_global): Add
8937 bool parameters indicating whether escaped locals should be
8938 considered global.
8939 * tree-ssa-structalias.cc (pt_solution_includes_global):
8940 When the new escaped_nonlocal_p flag is true also consider
8941 pt->vars_contains_escaped.
8942 * tree-ssa-alias.cc (ptr_deref_may_alias_global_p):
8943 Pass down new escaped_nonlocal_p flag.
8944 (ref_may_alias_global_p): Likewise.
8945 (stmt_may_clobber_global_p): Likewise.
8946 (ref_may_alias_global_p_1): Likewise. For decls also
8947 query the escaped solution if true.
8948 (ref_may_access_global_memory_p): Remove.
8949 (modref_may_conflict): Use ref_may_alias_global_p with
8950 escaped locals considered global.
8951 (ref_maybe_used_by_stmt_p): Adjust.
8952 * ipa-fnsummary.cc (points_to_local_or_readonly_memory_p):
8953 Likewise.
8954 * tree-ssa-dse.cc (dse_classify_store): Likewise.
8955 * trans-mem.cc (thread_private_new_memory): Likewise, but
8956 consider escaped locals global.
8957 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Likewise.
8958
8959 2022-04-07 Richard Biener <rguenther@suse.de>
8960
8961 PR tree-optimization/105185
8962 * tree-ssa-sccvn.cc (visit_reference_op_call): Simplify
8963 modref query again.
8964
8965 2022-04-07 Tamar Christina <tamar.christina@arm.com>
8966
8967 PR target/104049
8968 * config/aarch64/aarch64-simd.md
8969 (aarch64_reduc_plus_internal<mode>): Fix RTL and rename to...
8970 (reduc_plus_scal_<mode>): ... This.
8971 (reduc_plus_scal_v4sf): Moved.
8972 (aarch64_reduc_plus_internalv2si): Fix RTL and rename to...
8973 (reduc_plus_scal_v2si): ... This.
8974
8975 2022-04-07 Jakub Jelinek <jakub@redhat.com>
8976
8977 PR tree-optimization/102586
8978 * langhooks.h (struct lang_hooks_for_types): Add classtype_as_base
8979 langhook.
8980 * langhooks-def.h (LANG_HOOKS_CLASSTYPE_AS_BASE): Define.
8981 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
8982 * gimple-fold.cc (clear_padding_type): Use ftype instead of
8983 TREE_TYPE (field) some more. For artificial FIELD_DECLs without
8984 name try the lang_hooks.types.classtype_as_base langhook and
8985 if it returns non-NULL, use that instead of ftype for recursive call.
8986
8987 2022-04-07 Jakub Jelinek <jakub@redhat.com>
8988
8989 PR tree-optimization/105150
8990 * tree.cc (tree_builtin_call_types_compatible_p): New function.
8991 (get_call_combined_fn): Use it.
8992
8993 2022-04-07 Richard Biener <rguenther@suse.de>
8994
8995 PR middle-end/105165
8996 * tree-complex.cc (expand_complex_asm): Sorry for asm goto
8997 _Complex outputs.
8998
8999 2022-04-07 liuhongt <hongtao.liu@intel.com>
9000
9001 * config/i386/sse.md (<sse2_avx2>_andnot<mode>3_mask):
9002 Removed.
9003 (<sse>_andnot<mode>3<mask_name>): Disable V*HFmode patterns
9004 for mask_applied.
9005 (<code><mode>3<mask_name>): Ditto.
9006 (*<code><mode>3<mask_name>): Ditto.
9007 (VFB_128_256): Adjust condition of V8HF/V16HFmode according to
9008 real instruction.
9009 (VFB_512): Ditto.
9010 (VFB): Ditto.
9011
9012 2022-04-06 Jakub Jelinek <jakub@redhat.com>
9013
9014 PR rtl-optimization/104985
9015 * combine.cc (struct undo): Add where.regno member.
9016 (do_SUBST_MODE): Rename to ...
9017 (subst_mode): ... this. Change first argument from rtx * into int,
9018 operate on regno_reg_rtx[regno] and save regno into where.regno.
9019 (SUBST_MODE): Remove.
9020 (try_combine): Use subst_mode instead of SUBST_MODE, change first
9021 argument from regno_reg_rtx[whatever] to whatever. For UNDO_MODE, use
9022 regno_reg_rtx[undo->where.regno] instead of *undo->where.r.
9023 (undo_to_marker): For UNDO_MODE, use regno_reg_rtx[undo->where.regno]
9024 instead of *undo->where.r.
9025 (simplify_set): Use subst_mode instead of SUBST_MODE, change first
9026 argument from regno_reg_rtx[whatever] to whatever.
9027
9028 2022-04-06 Jakub Jelinek <jakub@redhat.com>
9029
9030 PR target/105069
9031 * config/sh/sh.opt (mdiv=): Add Save.
9032
9033 2022-04-06 Martin Liska <mliska@suse.cz>
9034
9035 PR driver/105096
9036 * common.opt: Document properly based on what it does.
9037 * gcc.cc (display_help): Unify with what we have in common.opt.
9038 * opts.cc (common_handle_option): Do not print undocumented
9039 options.
9040
9041 2022-04-06 Xi Ruoyao <xry111@mengyan1223.wang>
9042
9043 * config/mips/mips.cc (mips_fpr_return_fields): Ignore
9044 cxx17_empty_base_field_p fields and set an indicator.
9045 (mips_return_in_msb): Adjust for mips_fpr_return_fields change.
9046 (mips_function_value_1): Inform psABI change about C++17 empty
9047 bases.
9048
9049 2022-04-06 Jakub Jelinek <jakub@redhat.com>
9050
9051 PR tree-optimization/105150
9052 * gimple.cc (gimple_builtin_call_types_compatible_p): Use
9053 builtin_decl_explicit here...
9054 (gimple_call_builtin_p, gimple_call_combined_fn): ... rather than
9055 here.
9056
9057 2022-04-06 Richard Biener <rguenther@suse.de>
9058
9059 PR tree-optimization/105173
9060 * tree-ssa-reassoc.cc (find_insert_point): Get extra
9061 insert_before output argument and compute it.
9062 (insert_stmt_before_use): Adjust.
9063 (rewrite_expr_tree): Likewise.
9064
9065 2022-04-06 Richard Biener <rguenther@suse.de>
9066
9067 PR ipa/105166
9068 * ipa-modref-tree.cc (modref_access_node::get_ao_ref ): Bail
9069 out for non-pointer arguments.
9070
9071 2022-04-06 Richard Biener <rguenther@suse.de>
9072
9073 PR tree-optimization/105163
9074 * tree-ssa-reassoc.cc (repropagate_negates): Avoid propagating
9075 negated abnormals.
9076
9077 2022-04-06 Jakub Jelinek <jakub@redhat.com>
9078
9079 PR tree-optimization/105150
9080 * gimple.cc (gimple_call_builtin_p, gimple_call_combined_fn):
9081 For BUILT_IN_NORMAL calls, call gimple_builtin_call_types_compatible_p
9082 preferrably on builtin_decl_explicit decl rather than fndecl.
9083 * tree-ssa-strlen.cc (valid_builtin_call): Don't call
9084 gimple_builtin_call_types_compatible_p here.
9085
9086 2022-04-06 Richard Sandiford <richard.sandiford@arm.com>
9087
9088 PR tree-optimization/103761
9089 * tree-vect-stmts.cc (check_load_store_for_partial_vectors): Replace
9090 the ncopies parameter with an slp_node parameter. Calculate the
9091 number of vectors based on it and vectype. Rename lambda to
9092 group_memory_nvectors.
9093 (vectorizable_store, vectorizable_load): Update calls accordingly.
9094
9095 2022-04-06 Martin Liska <mliska@suse.cz>
9096
9097 * doc/invoke.texi: Document it.
9098
9099 2022-04-06 Richard Biener <rguenther@suse.de>
9100
9101 PR tree-optimization/105148
9102 * tree-ssa-loop-ivopts.cc (idx_record_use): Walk raw operands
9103 2 and 3 of ARRAY_REFs.
9104
9105 2022-04-06 Roger Sayle <roger@nextmovesoftware.com>
9106
9107 * config/i386/sse.md (ANDNOT_MODE): New mode iterator for TF and V1TI.
9108 (*andnottf3): Replace with...
9109 (*andnot<mode>3): New define_insn using ANDNOT_MODE.
9110
9111 2022-04-06 Richard Biener <rguenther@suse.de>
9112
9113 PR tree-optimization/105142
9114 * gimple-fold.h (maybe_fold_and_comparisons): Add defaulted
9115 basic-block parameter.
9116 (maybe_fold_or_comparisons): Likewise.
9117 * gimple-fold.cc (follow_outer_ssa_edges): New.
9118 (maybe_fold_comparisons_from_match_pd): Use follow_outer_ssa_edges
9119 when an outer condition basic-block is specified.
9120 (and_comparisons_1, and_var_with_comparison,
9121 and_var_with_comparison_1, or_comparisons_1,
9122 or_var_with_comparison, or_var_with_comparison_1): Receive and pass
9123 down the outer condition basic-block.
9124 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Pass down the
9125 basic-block of the outer condition.
9126
9127 2022-04-06 Kewen Lin <linkw@linux.ibm.com>
9128
9129 PR target/105002
9130 * config/rs6000/rs6000.cc (rs6000_maybe_emit_maxc_minc): Support more
9131 comparison codes UNLT/UNLE/UNGT/UNGE.
9132
9133 2022-04-05 David Malcolm <dmalcolm@redhat.com>
9134
9135 * doc/extend.texi (Common Function Attributes): Document that
9136 'access' does not imply 'nonnull'.
9137
9138 2022-04-05 Uroš Bizjak <ubizjak@gmail.com>
9139
9140 PR target/105139
9141 * config/i386/mmx.md (*movv2qi_internal):
9142 Change insn mode of alternative 5 to HF for TARGET_AVX512FP16.
9143
9144 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
9145
9146 * config/aarch64/aarch64.md (aarch64_cpymemdi): Turn into a
9147 define_expand and turn operands 0 and 1 from REGs to MEMs.
9148 (*aarch64_cpymemdi): New pattern.
9149 (aarch64_setmemdi): Turn into a define_expand and turn operand 0
9150 from a REG to a MEM.
9151 (*aarch64_setmemdi): New pattern.
9152 * config/aarch64/aarch64.cc (aarch64_expand_cpymem_mops): Use
9153 copy_to_mode_reg on all three registers. Replace the original
9154 MEM addresses rather than creating wild reads and writes.
9155 (aarch64_expand_setmem_mops): Likewise for the size and for the
9156 destination memory and address.
9157
9158 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
9159
9160 PR target/103147
9161 * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): New class.
9162 * config/aarch64/aarch64-sve-builtins.h (sve_switcher): Inherit
9163 from aarch64_simd_switcher.
9164 * config/aarch64/aarch64-builtins.cc (aarch64_simd_tuple_modes):
9165 New variable.
9166 (aarch64_lookup_simd_builtin_type): Use it instead of TYPE_MODE.
9167 (register_tuple_type): Add more asserts. Expect the alignment
9168 of the structure to be subject to flag_pack_struct and
9169 maximum_field_alignment. Set aarch64_simd_tuple_modes.
9170 (aarch64_simd_switcher::aarch64_simd_switcher): New function.
9171 (aarch64_simd_switcher::~aarch64_simd_switcher): Likewise.
9172 (handle_arm_neon_h): Hold an aarch64_simd_switcher throughout.
9173 (aarch64_general_init_builtins): Hold an aarch64_simd_switcher
9174 while calling aarch64_init_simd_builtins.
9175 * config/aarch64/aarch64-sve-builtins.cc (sve_switcher::sve_switcher)
9176 (sve_switcher::~sve_switcher): Remove code now performed by
9177 aarch64_simd_switcher.
9178
9179 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
9180
9181 PR target/104897
9182 * config/aarch64/aarch64-sve-builtins.cc
9183 (function_resolver::infer_vector_or_tuple_type): Use error_n
9184 for "%d vectors" messages.
9185
9186 2022-04-05 Chung-Lin Tang <cltang@codesourcery.com>
9187
9188 * omp-low.cc (lower_omp_target): Use outer context looked-up 'var' as
9189 argument to lang_hooks.decls.omp_array_data, instead of 'ovar' from
9190 current clause.
9191
9192 2022-04-05 Richard Biener <rguenther@suse.de>
9193
9194 PR c/105151
9195 * passes.def (pass_walloca): Move early instance into
9196 pass_build_ssa_passes to make SSA form available.
9197
9198 2022-04-05 liuhongt <hongtao.liu@intel.com>
9199
9200 PR target/101908
9201 * config/i386/i386.cc (ix86_split_stlf_stall_load): New
9202 function
9203 (ix86_reorg): Call ix86_split_stlf_stall_load.
9204 * config/i386/i386.opt (-param=x86-stlf-window-ninsns=): New
9205 param.
9206
9207 2022-04-05 Alexandre Oliva <oliva@adacore.com>
9208
9209 * targhooks.cc (default_zero_call_used_regs): Attempt to group
9210 regs that the target refuses to use in their natural modes.
9211 (zcur_select_mode_rtx): New.
9212 * regs.h (struct target_regs): Add x_hard_regno_max_nregs.
9213 (hard_regno_max_nregs): Define.
9214 * reginfo.cc (init_reg_modes_target): Set hard_regno_max_nregs.
9215
9216 2022-04-04 Alex Coplan <alex.coplan@arm.com>
9217
9218 * doc/match-and-simplify.texi: Fix typos.
9219
9220 2022-04-04 Jakub Jelinek <jakub@redhat.com>
9221
9222 PR target/105144
9223 * config/aarch64/t-aarch64 (s-aarch64-tune-md): Do move-if-change
9224 only if configured with --enable-maintainer-mode, otherwise compare
9225 tmp-aarch64-tune.md with $(srcdir)/config/aarch64/aarch64-tune.md and
9226 if they differ, emit a message and fail.
9227
9228 2022-04-04 Jakub Jelinek <jakub@redhat.com>
9229
9230 PR target/105144
9231 * config/aarch64/t-aarch64 (s-mddeps): Depend on s-aarch64-tune-md.
9232 * config/aarch64/aarch64-tune.md: Regenerated.
9233
9234 2022-04-04 Richard Biener <rguenther@suse.de>
9235
9236 PR tree-optimization/105132
9237 * tree-vect-stmts.cc (vectorizable_operation): Check that
9238 the input vectors have the same number of elements.
9239
9240 2022-04-04 Richard Biener <rguenther@suse.de>
9241
9242 PR middle-end/105140
9243 * fold-const.cc (fold_convertible_p): Allow a TYPE_P arg.
9244
9245 2022-04-03 Jeff Law <jeffreyalaw@gmail.com>
9246
9247 PR target/104987
9248 * config/iq2000/iq2000.md (bbi): New attribute, default to no.
9249 (delay slot descripts): Use different delay slot description when
9250 the insn as the "bbi" attribute.
9251 (bbi, bbin patterns): Set the bbi attribute to yes.
9252
9253 2022-04-03 Jakub Jelinek <jakub@redhat.com>
9254
9255 PR target/105123
9256 * config/i386/i386-expand.cc (ix86_expand_vector_init_general): Avoid
9257 using word as target for expand_simple_binop when doing ASHIFT and
9258 IOR.
9259
9260 2022-04-02 Xi Ruoyao <xry111@mengyan1223.wang>
9261
9262 * config/mips/mips.cc (mips_function_arg): Check if DECL_SIZE is
9263 NULL before dereferencing it.
9264
9265 2022-04-01 Qing Zhao <qing.zhao@oracle.com>
9266
9267 * config/i386/i386.cc (zero_all_st_registers): Return the value of
9268 num_of_st.
9269 (ix86_zero_call_used_regs): Update zeroed_hardregs set according to
9270 the return value of zero_all_st_registers.
9271 * doc/tm.texi: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
9272 * function.cc (gen_call_used_regs_seq): Add an assertion.
9273 * target.def: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
9274
9275 2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang>
9276
9277 PR target/102024
9278 * config/mips/mips.cc (mips_function_arg): Ignore zero-width
9279 fields, and inform if it causes a psABI change.
9280
9281 2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang>
9282
9283 PR target/102024
9284 * config/mips/mips.cc (mips_fpr_return_fields): Detect C++
9285 zero-width bit-fields and set up an indicator.
9286 (mips_return_in_msb): Adapt for mips_fpr_return_fields change.
9287 (mips_function_value_1): Diagnose when the presense of a C++
9288 zero-width bit-field changes function returning in GCC 12.
9289
9290 2022-04-01 Jakub Jelinek <jakub@redhat.com>
9291
9292 PR tree-optimization/104645
9293 * tree-ssa-phiopt.cc (value_replacement): If assign has
9294 CONVERT_EXPR_CODE_P rhs_code, treat it like a preparation
9295 statement with constant evaluation.
9296
9297 2022-04-01 YunQiang Su <yunqiang.su@cipunited.com>
9298
9299 * config/mips/mips.cc (mips_expand_prologue):
9300 IPL is 8bit for MCU ASE.
9301
9302 2022-03-31 Bill Schmidt <wschmidt@linux.ibm.com>
9303
9304 PR target/104004
9305 * config/rs6000/rs6000-builtins.def (MFFSL): Mark nosoft.
9306 (MTFSB0): Likewise.
9307 (MTFSB1): Likewise.
9308 (SET_FPSCR_RN): Likewise.
9309 (SET_FPSCR_DRN): Mark nosoft and no32bit.
9310
9311 2022-03-31 Thomas Schwinge <thomas@codesourcery.com>
9312
9313 * doc/options.texi (Option file format): Clarifications around
9314 option definition records' help texts.
9315
9316 2022-03-31 Thomas Schwinge <thomas@codesourcery.com>
9317
9318 * optc-gen.awk <END>: Fix "Multiple different help strings" error
9319 diagnostic.
9320
9321 2022-03-31 Andre Vieira <andre.simoesdiasvieira@arm.com>
9322
9323 * config/aarch64/aarch64.cc (aarch64_vector_costs): Define
9324 determine_suggested_unroll_factor and m_has_avg.
9325 (determine_suggested_unroll_factor): New function.
9326 (aarch64_vector_costs::add_stmt_cost): Check for a qualifying pattern
9327 to set m_nosve_pattern.
9328 (aarch64_vector_costs::finish_costs): Use
9329 determine_suggested_unroll_factor.
9330 * config/aarch64/aarch64.opt (aarch64-vect-unroll-limit): New.
9331 * doc/invoke.texi: (aarch64-vect-unroll-limit): Document new option.
9332
9333 2022-03-31 Martin Jambor <mjambor@suse.cz>
9334
9335 PR ipa/103083
9336 * ipa-prop.h (ipa_ancestor_jf_data): New flag keep_null;
9337 (ipa_get_jf_ancestor_keep_null): New function.
9338 * ipa-prop.cc (ipa_set_ancestor_jf): Initialize keep_null field of the
9339 ancestor function.
9340 (compute_complex_assign_jump_func): Pass false to keep_null
9341 parameter of ipa_set_ancestor_jf.
9342 (compute_complex_ancestor_jump_func): Pass true to keep_null
9343 parameter of ipa_set_ancestor_jf.
9344 (update_jump_functions_after_inlining): Carry over keep_null from the
9345 original ancestor jump-function or merge them.
9346 (ipa_write_jump_function): Stream keep_null flag.
9347 (ipa_read_jump_function): Likewise.
9348 (ipa_print_node_jump_functions_for_edge): Print the new flag.
9349 * ipa-cp.cc (class ipcp_bits_lattice): Make various getters const. New
9350 member function known_nonzero_p.
9351 (ipcp_bits_lattice::known_nonzero_p): New.
9352 (ipcp_bits_lattice::meet_with_1): New parameter drop_all_ones,
9353 observe it.
9354 (ipcp_bits_lattice::meet_with): Likewise.
9355 (propagate_bits_across_jump_function): Simplify. Pass true in
9356 drop_all_ones when it is necessary.
9357 (propagate_aggs_across_jump_function): Take care of keep_null
9358 flag.
9359 (ipa_get_jf_ancestor_result): Propagate NULL accross keep_null
9360 jump functions.
9361
9362 2022-03-31 Martin Jambor <mjambor@suse.cz>
9363
9364 PR ipa/102513
9365 * ipa-cp.cc (decide_whether_version_node): Skip scalar values
9366 which do not fit the known value_range.
9367
9368 2022-03-31 Martin Jambor <mjambor@suse.cz>
9369
9370 PR ipa/103171
9371 * ipa-prop.cc (propagate_controlled_uses): Add a LOAD reference
9372 always when an ADDR_EXPR constant is known to reach a load because
9373 of inlining, not just when removing an ADDR reference.
9374
9375 2022-03-31 Richard Biener <rguenther@suse.de>
9376
9377 PR tree-optimization/105109
9378 * tree-ssa.cc (execute_update_addresses_taken): Suppress
9379 diagnostics on the load of the other complex component.
9380
9381 2022-03-31 Tom de Vries <tdevries@suse.de>
9382
9383 * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
9384
9385 2022-03-31 Richard Biener <rguenther@suse.de>
9386
9387 PR rtl-optimization/105091
9388 * gimple-expr.cc (mark_addressable): Handle TARGET_MEM_REF
9389 bases.
9390
9391 2022-03-31 Richard Biener <rguenther@suse.de>
9392
9393 Revert:
9394 2021-09-13 Richard Earnshaw <rearnsha@arm.com>
9395
9396 PR target/102125
9397 * gimple-fold.c (gimple_fold_builtin_memory_op): Allow folding
9398 memcpy if the size is not more than MOVE_MAX * MOVE_RATIO.
9399
9400 2022-03-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
9401
9402 * gcov-io.cc (gcov_read_string): Reword documentation comment.
9403
9404 2022-03-30 Bill Schmidt <wschmidt@linux.ibm.com>
9405
9406 * config/rs6000/rs6000-builtins.def (NEG_V16QI): Move to [altivec]
9407 stanza.
9408 (NEG_V4SF): Likewise.
9409 (NEG_V4SI): Likewise.
9410 (NEG_V8HI): Likewise.
9411 (NEG_V2DF): Move to [vsx] stanza.
9412 (NEG_V2DI): Likewise.
9413
9414 2022-03-30 Vladimir N. Makarov <vmakarov@redhat.com>
9415
9416 PR middle-end/105032
9417 * lra-assigns.cc (find_reload_regno_insns): Modify loop condition.
9418
9419 2022-03-30 Tom de Vries <tdevries@suse.de>
9420 Tobias Burnus <tobias@codesourcery.com>
9421
9422 * doc/invoke.texi (march): Document __PTX_SM__.
9423 (mptx): Document __PTX_ISA_VERSION_MAJOR__ and
9424 __PTX_ISA_VERSION_MINOR__.
9425
9426 2022-03-30 Jakub Jelinek <jakub@redhat.com>
9427
9428 PR sanitizer/105093
9429 * ubsan.cc (instrument_object_size): If t is equal to inner and
9430 is a decl other than global var, punt. When emitting call to
9431 UBSAN_OBJECT_SIZE ifn, make sure base is addressable.
9432
9433 2022-03-30 Jakub Jelinek <jakub@redhat.com>
9434
9435 PR tree-optimization/105094
9436 * gimple-ssa-store-merging.cc (mem_valid_for_store_merging): Punt if
9437 bitsize <= 0 rather than just == 0.
9438
9439 2022-03-30 Tom de Vries <tdevries@suse.de>
9440
9441 * doc/invoke.texi (misa, mptx): Update.
9442 (march, march-map): Add.
9443
9444 2022-03-30 Thomas Schwinge <thomas@codesourcery.com>
9445
9446 * opt-functions.awk (n_args): New function.
9447 (lang_enabled_by): Merge function into...
9448 * optc-gen.awk <END>: ... sole user here.
9449 Improve diagnostics.
9450
9451 2022-03-29 Marek Polacek <polacek@redhat.com>
9452 Jakub Jelinek <jakub@redhat.com>
9453
9454 PR middle-end/103597
9455 * gimplify.cc (collect_fallthrough_labels): Don't push UNUSED_LABEL_Ps
9456 into labels. Maybe set prev to the statement preceding UNUSED_LABEL_P.
9457 (gimplify_cond_expr): Set UNUSED_LABEL_P.
9458 * tree.h (UNUSED_LABEL_P): New.
9459
9460 2022-03-29 Michael Meissner <meissner@linux.ibm.com>
9461
9462 * config/rs6000/vsx.md (vsx_extract_<mode>): Allow destination to
9463 be any VSX register.
9464
9465 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
9466
9467 PR target/102024
9468 * config/aarch64/aarch64.cc (aapcs_vfp_sub_candidate): Handle
9469 zero-sized bit-fields. Detect cases where a warning may be needed.
9470 (aarch64_vfp_is_call_or_return_candidate): Emit a note if a
9471 zero-sized bit-field has caused parameter passing to change.
9472
9473 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
9474
9475 PR target/102024
9476 * config/arm/arm.cc (aapcs_vfp_sub_candidate): Handle zero-sized
9477 bit-fields. Detect cases where a warning may be needed.
9478 (aapcs_vfp_is_call_or_return_candidate): Emit a note if
9479 a zero-sized bit-field has caused parameter passing to change.
9480
9481 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
9482
9483 PR target/96882
9484 * config/arm/arm.cc (arm_get_pcs_model): Disable selection of
9485 ARM_PCS_AAPCS_LOCAL.
9486
9487 2022-03-29 Tom de Vries <tdevries@suse.de>
9488
9489 PR target/104857
9490 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Emit
9491 __PTX_ISA_VERSION_MAJOR__ and __PTX_ISA_VERSION_MINOR__.
9492 * config/nvptx/nvptx.cc (ptx_version_to_number): New function.
9493 * config/nvptx/nvptx-protos.h (ptx_version_to_number): Declare.
9494
9495 2022-03-29 Tom de Vries <tdevries@suse.de>
9496
9497 * config/nvptx/nvptx.opt (m64): Update help text to reflect that it
9498 is ignored.
9499
9500 2022-03-29 Tom de Vries <tdevries@suse.de>
9501
9502 PR target/104714
9503 * config/nvptx/nvptx.opt (march-map=*): Add aliases.
9504
9505 2022-03-29 Jan Hubicka <hubicka@ucw.cz>
9506
9507 * config/i386/i386-builtins.cc (ix86_vectorize_builtin_gather): Test
9508 TARGET_USE_GATHER_2PARTS and TARGET_USE_GATHER_4PARTS.
9509 * config/i386/i386.h (TARGET_USE_GATHER_2PARTS): New macro.
9510 (TARGET_USE_GATHER_4PARTS): New macro.
9511 * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): New tune
9512 (X86_TUNE_USE_GATHER_4PARTS): New tune
9513
9514 2022-03-29 Tom de Vries <tdevries@suse.de>
9515
9516 * config/nvptx/nvptx.opt (march): Add alias of misa.
9517
9518 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
9519 Lulu Cheng <chenglulu@loongson.cn>
9520
9521 * doc/install.texi: Add LoongArch options section.
9522 * doc/invoke.texi: Add LoongArch options section.
9523 * doc/md.texi: Add LoongArch options section.
9524
9525 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
9526 Lulu Cheng <chenglulu@loongson.cn>
9527
9528 * config/loongarch/loongarch-c.cc
9529
9530 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
9531 Lulu Cheng <chenglulu@loongson.cn>
9532
9533 * config/loongarch/larchintrin.h: New file.
9534 * config/loongarch/loongarch-builtins.cc: New file.
9535
9536 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
9537 Lulu Cheng <chenglulu@loongson.cn>
9538
9539 * config/host-linux.cc: Add LoongArch support.
9540 * config/loongarch/loongarch-protos.h: New file.
9541 * config/loongarch/loongarch-tune.h: Likewise.
9542 * config/loongarch/loongarch.cc: Likewise.
9543 * config/loongarch/loongarch.h: Likewise.
9544
9545 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
9546 Lulu Cheng <chenglulu@loongson.cn>
9547
9548 * config/loongarch/constraints.md: New file.
9549 * config/loongarch/generic.md: New file.
9550 * config/loongarch/la464.md: New file.
9551 * config/loongarch/loongarch-ftypes.def: New file.
9552 * config/loongarch/loongarch-modes.def: New file.
9553 * config/loongarch/loongarch.md: New file.
9554 * config/loongarch/predicates.md: New file.
9555 * config/loongarch/sync.md: New file.
9556
9557 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
9558 Lulu Cheng <chenglulu@loongson.cn>
9559
9560 * configure: Regenerate file.
9561
9562 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
9563 Lulu Cheng <chenglulu@loongson.cn>
9564
9565 * common/config/loongarch/loongarch-common.cc: New file.
9566 * config/loongarch/genopts/genstr.sh: New file.
9567 * config/loongarch/genopts/loongarch-strings: New file.
9568 * config/loongarch/genopts/loongarch.opt.in: New file.
9569 * config/loongarch/loongarch-str.h: New file.
9570 * config/loongarch/gnu-user.h: New file.
9571 * config/loongarch/linux.h: New file.
9572 * config/loongarch/loongarch-cpu.cc: New file.
9573 * config/loongarch/loongarch-cpu.h: New file.
9574 * config/loongarch/loongarch-def.c: New file.
9575 * config/loongarch/loongarch-def.h: New file.
9576 * config/loongarch/loongarch-driver.cc: New file.
9577 * config/loongarch/loongarch-driver.h: New file.
9578 * config/loongarch/loongarch-opts.cc: New file.
9579 * config/loongarch/loongarch-opts.h: New file.
9580 * config/loongarch/loongarch.opt: New file.
9581 * config/loongarch/t-linux: New file.
9582 * config/loongarch/t-loongarch: New file.
9583 * config.gcc: Add LoongArch support.
9584 * configure.ac: Add LoongArch support.
9585
9586 2022-03-29 Thomas Schwinge <thomas@codesourcery.com>
9587
9588 * opt-functions.awk (lang_enabled_by): Fix 'enabledby_negargs'
9589 typo.
9590
9591 2022-03-29 Richard Biener <rguenther@suse.de>
9592
9593 PR tree-optimization/105080
9594 * tree-ssa-strlen.cc (printf_strlen_execute): Always init
9595 loops and SCEV.
9596
9597 2022-03-28 Indu Bhagat <indu.bhagat@oracle.com>
9598
9599 * ctfout.cc (ctf_preprocess): Use ctfc_get_num_ctf_vars instead.
9600 (output_ctf_vars): Likewise.
9601
9602 2022-03-28 Jason Merrill <jason@redhat.com>
9603
9604 PR c++/59426
9605 * doc/extend.texi: Refer to __is_trivial instead of __is_pod.
9606
9607 2022-03-28 H.J. Lu <hjl.tools@gmail.com>
9608
9609 PR target/105068
9610 * config/i386/sse.md (*ssse3_pshufbv8qi3): Also replace "Yv" with
9611 "Yw" in clobber.
9612
9613 2022-03-28 Tom de Vries <tdevries@suse.de>
9614
9615 PR target/104818
9616 * config/nvptx/gen-opt.sh (ptx_isa): Improve help text.
9617 * config/nvptx/nvptx-gen.opt: Regenerate.
9618 * config/nvptx/nvptx.opt (misa, mptx, ptx_version): Improve help text.
9619 * config/nvptx/t-nvptx (s-nvptx-gen-opt): Add missing dependency on
9620 gen-opt.sh.
9621
9622 2022-03-28 David Malcolm <dmalcolm@redhat.com>
9623
9624 PR analyzer/104308
9625 * gimple-fold.cc (gimple_fold_builtin_memory_op): When optimizing
9626 to loads then stores, set the location of the new load stmt.
9627
9628 2022-03-28 Richard Biener <rguenther@suse.de>
9629
9630 PR tree-optimization/105070
9631 * tree-switch-conversion.h
9632 (bit_test_cluster::hoist_edge_and_branch_if_true): Add location
9633 argument.
9634 * tree-switch-conversion.cc
9635 (bit_test_cluster::hoist_edge_and_branch_if_true): Annotate
9636 cond with location.
9637 (bit_test_cluster::emit): Annotate all generated expressions
9638 with location.
9639
9640 2022-03-28 Andre Vieira <andre.simoesdiasvieira@arm.com>
9641
9642 * config/aarch64/aarch64-cores.def: Update Neoverse N2 core entry.
9643
9644 2022-03-28 liuhongt <hongtao.liu@intel.com>
9645
9646 PR target/105066
9647 * config/i386/sse.md (vec_set<mode>_0): Change attr "isa" of
9648 alternative 4 from sse4_noavx to noavx.
9649
9650 2022-03-28 Jakub Jelinek <jakub@redhat.com>
9651
9652 PR tree-optimization/105056
9653 * tree-predcom.cc (component::component): Initialize also comp_step.
9654
9655 2022-03-27 H.J. Lu <hjl.tools@gmail.com>
9656
9657 PR target/105068
9658 * config/i386/sse.md (*ssse3_pshufbv8qi3): Replace "Yv" with
9659 "Yw".
9660
9661 2022-03-26 Roger Sayle <roger@nextmovesoftware.com>
9662
9663 PR middle-end/104885
9664 * calls.cc (mark_stack_region_used): Check that the region
9665 is within the allocated size of stack_usage_map.
9666
9667 2022-03-26 Jakub Jelinek <jakub@redhat.com>
9668
9669 PR rtl-optimization/103775
9670 * recog.cc (check_invalid_inc_dec): New function.
9671 (insn_invalid_p): Return 1 if REG_INC operand overlaps
9672 any stored REGs.
9673
9674 2022-03-26 H.J. Lu <hjl.tools@gmail.com>
9675
9676 PR target/105058
9677 * config/i386/sse.md (loadiwkey): Replace "v" with "x".
9678 (aes<aesklvariant>u8): Likewise.
9679
9680 2022-03-26 H.J. Lu <hjl.tools@gmail.com>
9681
9682 PR target/105052
9683 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
9684 Replace "Yv" with "x".
9685 (ssse3_ph<plusminus_mnemonic>dv2si3): Likewise.
9686 (ssse3_psign<mode>3): Likewise.
9687
9688 2022-03-26 Hans-Peter Nilsson <hp@axis.com>
9689
9690 * reload.cc (find_reloads): Align comment with code where
9691 considering the intersection of register classes then tweaking the
9692 regclass for the current alternative or rejecting it.
9693
9694 2022-03-25 Christophe Lyon <christohe.lyon@arm.com>
9695
9696 PR target/104882
9697 Revert
9698 2021-06-11 Christophe Lyon <christophe.lyon@linaro.org>
9699
9700 * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): Delete.
9701 (mve_vec_unpack<US>_hi_<mode>): Delete.
9702 (@mve_vec_pack_trunc_lo_<mode>): Delete.
9703 (mve_vmovntq_<supf><mode>): Remove '@' prefix.
9704 * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move back
9705 from vec-common.md.
9706 (vec_unpack<US>_lo_<mode>): Likewise.
9707 (vec_pack_trunc_<mode>): Rename from
9708 neon_quad_vec_pack_trunc_<mode>.
9709 * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): Delete.
9710 (vec_unpack<US>_lo_<mode>): Delete.
9711 (vec_pack_trunc_<mode>): Delete.
9712
9713 2022-03-25 Vladimir N. Makarov <vmakarov@redhat.com>
9714
9715 PR middle-end/104971
9716 * lra-lives.cc (process_bb_lives): Check hard_regs_live for hard
9717 regs to clear remove_p flag.
9718
9719 2022-03-25 Richard Biener <rguenther@suse.de>
9720
9721 PR tree-optimization/105053
9722 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Pick
9723 the correct live-out stmt for a reduction chain.
9724
9725 2022-03-25 Richard Biener <rguenther@suse.de>
9726
9727 PR middle-end/105049
9728 * tree.cc (uniform_vector_p): Recurse for VECTOR_CST or
9729 CONSTRUCTOR first elements.
9730
9731 2022-03-25 Tobias Burnus <tobias@codesourcery.com>
9732
9733 PR analyzer/103533
9734 * doc/invoke.texi (Static Analyzer Options): Move
9735 @ignore block after @gccoptlist's '}' for 'make pdf'.
9736
9737 2022-03-25 David Malcolm <dmalcolm@redhat.com>
9738
9739 PR analyzer/104954
9740 * doc/invoke.texi (Static Analyzer Options): Add
9741 -fdump-analyzer-untracked.
9742
9743 2022-03-25 Avinash Sonawane <rootkea@gmail.com>
9744
9745 PR analyzer/103533
9746 * doc/invoke.texi: Document that enabling taint analyzer
9747 checker disables some warnings from `-fanalyzer`.
9748
9749 2022-03-24 Alexandre Oliva <oliva@adacore.com>
9750
9751 PR debug/104564
9752 * gimple-harden-conditionals.cc (detach_value): Keep temps
9753 anonymous.
9754
9755 2022-03-24 Alexandre Oliva <oliva@adacore.com>
9756
9757 PR middle-end/104975
9758 * gimple-harden-conditionals.cc
9759 (pass_harden_compares::execute): Force split in case of
9760 multiple edges.
9761
9762 2022-03-24 Jakub Jelinek <jakub@redhat.com>
9763
9764 PR c++/105035
9765 * fold-const.cc (operand_equal_p) <case COMPONENT_REF>: If either
9766 field0 or field1 is not a FIELD_DECL, return false.
9767
9768 2022-03-24 Richard Biener <rguenther@suse.de>
9769
9770 * tree-predcom.cc (chain::chain): Add CTOR.
9771 (component::component): Likewise.
9772 (pcom_worker::release_chain): Use delete.
9773 (release_components): Likewise.
9774 (pcom_worker::filter_suitable_components): Likewise.
9775 (pcom_worker::split_data_refs_to_components): Use new.
9776 (make_invariant_chain): Likewise.
9777 (make_rooted_chain): Likewise.
9778 (pcom_worker::combine_chains): Likewise.
9779 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
9780 Make sure to release previously constructed scalar_results.
9781 * tree-vect-stmts.cc (vectorizable_load): Use auto_vec
9782 for vec_offsets.
9783 * vr-values.cc (simplify_using_ranges::~simplify_using_ranges):
9784 Release m_flag_set_edges.
9785
9786 2022-03-24 Siddhesh Poyarekar <siddhesh@gotplt.org>
9787
9788 PR tree-optimization/104970
9789 * tree-object-size.cc (parm_object_size): Restrict size
9790 computation scenarios to explicit access attributes.
9791
9792 2022-03-24 Kewen Lin <linkw@linux.ibm.com>
9793
9794 PR target/104967
9795 * config/rs6000/rs6000-c.cc (find_instance): Skip instances with null
9796 function types.
9797
9798 2022-03-23 Richard Biener <rguenther@suse.de>
9799
9800 PR target/102125
9801 * gimple-fold.cc (gimple_fold_builtin_memory_op): Allow the
9802 use of movmisalign when either the source or destination
9803 decl is properly aligned.
9804
9805 2022-03-23 Richard Biener <rguenther@suse.de>
9806
9807 PR rtl-optimization/105028
9808 * ira-color.cc (form_threads_from_copies): Remove unnecessary
9809 copying of the sorted_copies tail.
9810
9811 2022-03-23 Martin Liska <mliska@suse.cz>
9812
9813 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
9814 Use %qs in format.
9815 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
9816 Reword the error message.
9817
9818 2022-03-23 liuhongt <hongtao.liu@intel.com>
9819
9820 PR target/104976
9821 * config/i386/sse.md (ssePSmodelower): New.
9822 (*avx_cmp<mode>3_ltint_not): Force_reg operand before
9823 lowpart_subreg to avoid NULL_RTX.
9824 (<avx512>_fmaddc_<mode>_mask1<round_expand_name>,
9825 <avx512>_fcmaddc_<mode>_mask1<round_expand_name>,
9826 fma_<mode>_fmaddc_bcst, fma_<mode>_fcmaddc_bcst,
9827 <avx512>_<complexopname>_<mode>_mask<round_name>,
9828 avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name>,
9829 avx512fp16_fcmaddcsh_v8hf_mask3<round_expand_name>,
9830 avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
9831 avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
9832 float<floatunssuffix><mode>v4hf2,
9833 float<floatunssuffix>v2div2hf2,
9834 fix<fixunssuffix>_truncv4hf<mode>2,
9835 fix<fixunssuffix>_truncv2hfv2di2, extendv4hf<mode>2,
9836 extendv2hfv2df2,
9837 trunc<mode>v4hf2,truncv2dfv2hf2,
9838 *avx512bw_permvar_truncv16siv16hi_1,
9839 *avx512bw_permvar_truncv16siv16hi_1_hf,
9840 *avx512f_permvar_truncv8siv8hi_1,
9841 *avx512f_permvar_truncv8siv8hi_1_hf,
9842 *avx512f_vpermvar_truncv8div8si_1,
9843 *avx512f_permvar_truncv32hiv32qi_1,
9844 *avx512f_permvar_truncv16hiv16qi_1,
9845 *avx512f_permvar_truncv4div4si_1,
9846 *avx512f_pshufb_truncv8hiv8qi_1,
9847 *avx512f_pshufb_truncv4siv4hi_1,
9848 *avx512f_pshufd_truncv2div2si_1,
9849 sdot_prod<mode>, avx2_pblend<ssemodesuffix>_1,
9850 ashrv2di3,ashrv2di3,usdot_prod<mode>): Ditto.
9851
9852 2022-03-22 Tom de Vries <tdevries@suse.de>
9853
9854 PR target/104925
9855 * config/nvptx/nvptx.md (define_insn "nvptx_uniform_warp_check"):
9856 Use % as register prefix.
9857
9858 2022-03-22 Tom de Vries <tdevries@suse.de>
9859
9860 * config/nvptx/nvptx.cc (nvptx_scalar_mode_supported_p)
9861 (nvptx_libgcc_floating_mode_supported_p): Only enable HFmode for
9862 mexperimental.
9863
9864 2022-03-22 Tom de Vries <tdevries@suse.de>
9865
9866 * config/nvptx/nvptx.opt (mexperimental): New option.
9867
9868 2022-03-22 Tom de Vries <tdevries@suse.de>
9869
9870 PR target/104957
9871 * config/nvptx/nvptx-protos.h (nvptx_asm_output_def_from_decls): Declare.
9872 * config/nvptx/nvptx.cc (write_fn_proto_1): Don't add function marker
9873 for alias.
9874 (SET_ASM_OP, NVPTX_ASM_OUTPUT_DEF): New macro def.
9875 (nvptx_asm_output_def_from_decls): New function.
9876 * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): New macro def, define to
9877 gcc_unreachable ().
9878 (ASM_OUTPUT_DEF_FROM_DECLS): New macro def, define to
9879 nvptx_asm_output_def_from_decls.
9880 * config/nvptx/nvptx.opt (malias): New opt.
9881
9882 2022-03-22 Tom de Vries <tdevries@suse.de>
9883
9884 PR target/104916
9885 PR target/104783
9886 * config/nvptx/nvptx.md (define_expand "omp_simt_exit"): Emit warp
9887 sync (or uniform warp check for mptx < 6.0).
9888
9889 2022-03-22 Richard Biener <rguenther@suse.de>
9890
9891 PR tree-optimization/105012
9892 * tree-if-conv.cc (ifcvt_local_dce): Only call
9893 dse_classify_store when we have a VDEF.
9894
9895 2022-03-22 Martin Liska <mliska@suse.cz>
9896
9897 PR target/104902
9898 * config/nvptx/nvptx.cc (handle_ptx_version_option):
9899 Fix option wrapping in an error message.
9900
9901 2022-03-22 Martin Liska <mliska@suse.cz>
9902
9903 PR target/104903
9904 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
9905 Wrap const keyword.
9906
9907 2022-03-22 Martin Liska <mliska@suse.cz>
9908
9909 * config/v850/v850-c.cc (pop_data_area): Fix typo in pragma
9910 name.
9911
9912 2022-03-22 Martin Liska <mliska@suse.cz>
9913
9914 PR target/104898
9915 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
9916 Use %qs instead of (%qs).
9917
9918 2022-03-22 Martin Liska <mliska@suse.cz>
9919
9920 PR target/104898
9921 * config/i386/i386-options.cc (ix86_option_override_internal):
9922 Use '%qs' instead of '(%qs)'.
9923
9924 2022-03-22 Martin Liska <mliska@suse.cz>
9925
9926 PR target/104898
9927 * config/aarch64/aarch64.cc (aarch64_handle_attr_arch):
9928 Use 'qs' and remove usage '(%qs)'.
9929 (aarch64_handle_attr_cpu): Likewise.
9930 (aarch64_handle_attr_tune): Likewise.
9931 (aarch64_handle_attr_isa_flags): Likewise.
9932
9933 2022-03-22 Tamar Christina <tamar.christina@arm.com>
9934 Andre Vieira <andre.simoesdiasvieira@arm.com>
9935
9936 * config/aarch64/aarch64.cc (neoversev1_regmove_cost): New tuning
9937 struct.
9938 (neoversev1_tunings): Use neoversev1_regmove_cost and update store_int
9939 cost.
9940 (neoverse512tvb_tunings): Likewise.
9941
9942 2022-03-22 Tamar Christina <tamar.christina@arm.com>
9943 Andre Vieira <andre.simoesdiasvieira@arm.com>
9944
9945 * config/aarch64/aarch64.cc (demeter_addrcost_table,
9946 demeter_regmove_cost, demeter_advsimd_vector_cost,
9947 demeter_sve_vector_cost, demeter_scalar_issue_info,
9948 demeter_advsimd_issue_info, demeter_sve_issue_info,
9949 demeter_vec_issue_info, demeter_vector_cost,
9950 demeter_tunings): New tuning structs.
9951 (aarch64_ve_op_count::rename_cycles_per_iter): Enable for demeter
9952 tuning.
9953 * config/aarch64/aarch64-cores.def: Add entry for demeter.
9954 * config/aarch64/aarch64-tune.md (tune): Add demeter to list.
9955
9956 2022-03-22 Tamar Christina <tamar.christina@arm.com>
9957 Andre Vieira <andre.simoesdiasvieira@arm.com>
9958
9959 * config/aarch64/aarch64-protos.h (struct cpu_memmov_cost): New struct.
9960 (struct tune_params): Change type of memmov_cost to use cpu_memmov_cost.
9961 * config/aarch64/aarch64.cc (aarch64_memory_move_cost): Update all
9962 tunings to use cpu_memmov_cost struct.
9963
9964 2022-03-22 Tamar Christina <tamar.christina@arm.com>
9965 Andre Vieira <andre.simoesdiasvieira@arm.com>
9966
9967 * config/aarch64/aarch64.cc (neoversen2_addrcost_table,
9968 neoversen2_regmove_cost, neoversen2_advsimd_vector_cost,
9969 neoversen2_sve_vector_cost, neoversen2_scalar_issue_info,
9970 neoversen2_advsimd_issue_info, neoversen2_sve_issue_info,
9971 neoversen2_vec_issue_info, neoversen2_tunings): New structs.
9972 (neoversen2_tunings): Use new structs and update tuning flags.
9973 (aarch64_vec_op_count::rename_cycles_per_iter): Enable for neoversen2
9974 tuning.
9975
9976 2022-03-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
9977
9978 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH9): Add FP16 feature
9979 bit.
9980
9981 2022-03-22 liuhongt <hongtao.liu@intel.com>
9982
9983 PR target/104982
9984 * config/i386/i386.md (*jcc_bt<mode>_mask): Extend the
9985 following splitter to reversed condition.
9986
9987 2022-03-22 Jakub Jelinek <jakub@redhat.com>
9988
9989 PR rtl-optimization/104989
9990 * calls.cc (expand_call): Don't set ECF_NORETURN in flags after
9991 sorry for passing too large argument, instead set sibcall_failure
9992 for pass == 0, or a new normal_failure flag otherwise. If
9993 normal_failure is set, don't assert all stack has been deallocated
9994 at the end and throw away the whole insn sequence.
9995
9996 2022-03-22 Qian Jianhua <qianjh@cn.fujitsu.com>
9997
9998 * print-tree.cc: Change array length
9999
10000 2022-03-22 Hongyu Wang <hongyu.wang@intel.com>
10001
10002 PR target/104978
10003 * config/i386/sse.md
10004 (avx512fp16_fmaddcsh_v8hf_mask1<round_expand_name):
10005 Use avx512f_movsf_mask instead of vmovaps or vblend, and
10006 force_reg before lowpart_subreg.
10007 (avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name): Likewise.
10008
10009 2022-03-21 H.J. Lu <hjl.tools@gmail.com>
10010
10011 PR target/105000
10012 * common/config/i386/i386-common.cc
10013 (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Replace
10014 OPTION_MASK_ISA2_AVX512F_UNSET with OPTION_MASK_ISA2_SSE_UNSET.
10015
10016 2022-03-21 H.J. Lu <hjl.tools@gmail.com>
10017
10018 PR target/104998
10019 * common/config/i386/cpuinfo.h (get_available_features): Pass
10020 0x19 to __cpuid for bit_AESKLE. Enable FEATURE_AESKLE only if
10021 bit_AESKLE is set.
10022
10023 2022-03-21 Richard Sandiford <richard.sandiford@arm.com>
10024
10025 PR middle-end/104869
10026 * rtl-ssa/accesses.h (clobber_group::prev_clobber): Declare.
10027 (clobber_group::next_clobber): Likewise.
10028 (def_lookup::prev_def): Rename to...
10029 (def_lookup::last_def_of_prev_group): ...this.
10030 (def_lookup::next_def): Rename to...
10031 (def_lookup::first_def_of_next_group): ...this.
10032 (def_lookup::matching_or_prev_def): Rename to...
10033 (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
10034 (def_lookup::matching_or_next_def): Rename to...
10035 (def_lookup::matching_set_or_first_def_of_next_group): ...this.
10036 (def_lookup::prev_def): New function, taking the lookup insn as
10037 argument.
10038 (def_lookup::next_def): Likewise.
10039 * rtl-ssa/member-fns.inl (def_lookup::prev_def): Rename to...
10040 (def_lookup::last_def_of_prev_group): ...this.
10041 (def_lookup::next_def): Rename to...
10042 (def_lookup::first_def_of_next_group): ...this.
10043 (def_lookup::matching_or_prev_def): Rename to...
10044 (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
10045 (def_lookup::matching_or_next_def): Rename to...
10046 (def_lookup::matching_set_or_first_def_of_next_group): ...this.
10047 * rtl-ssa/movement.h (restrict_movement_for_dead_range): Update after
10048 above renaming.
10049 * rtl-ssa/accesses.cc (clobber_group::prev_clobber): New function.
10050 (clobber_group::next_clobber): Likewise.
10051 (def_lookup::prev_def): Likewise.
10052 (def_lookup::next_def): Likewise.
10053 (function_info::make_use_available): Pass the lookup insn to
10054 def_lookup::prev_def and def_lookup::next_def.
10055
10056 2022-03-21 Martin Liska <mliska@suse.cz>
10057
10058 * doc/invoke.texi: Document min-pagesize parameter.
10059
10060 2022-03-21 Richard Biener <rguenther@suse.de>
10061
10062 * tree-ssa-loop-niter.cc (estimate_numbers_of_iterations): Dump
10063 we are estimating niter of loop.
10064
10065 2022-03-21 Kito Cheng <kito.cheng@sifive.com>
10066
10067 * common/config/riscv/riscv-common.cc (riscv_ext_flag_table):
10068 Update flag name and mask name.
10069 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Define
10070 misc macro for vector extensions.
10071 * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): Rename to ...
10072 (MASK_VECTOR_ELEN_32): ... this.
10073 (MASK_VECTOR_EEW_64): Rename to ...
10074 (MASK_VECTOR_ELEN_64): ... this.
10075 (MASK_VECTOR_EEW_FP_32): Rename to ...
10076 (MASK_VECTOR_ELEN_FP_32): ... this.
10077 (MASK_VECTOR_EEW_FP_64): Rename to ...
10078 (MASK_VECTOR_ELEN_FP_64): ... this.
10079 (TARGET_VECTOR_ELEN_32): New.
10080 (TARGET_VECTOR_ELEN_64): Ditto.
10081 (TARGET_VECTOR_ELEN_FP_32): Ditto.
10082 (TARGET_VECTOR_ELEN_FP_64): Ditto.
10083 (TARGET_MIN_VLEN): Ditto.
10084 * config/riscv/riscv.opt (riscv_vector_eew_flags): Rename to ...
10085 (riscv_vector_elen_flags): ... this.
10086
10087 2022-03-21 Hongyu Wang <hongyu.wang@intel.com>
10088
10089 PR target/104977
10090 * config/i386/sse.md
10091 (avx512fp16_fma<complexopname>sh_v8hf<mask_scalarcz_name><round_scalarcz_name>):
10092 Correct round operand for intel dialect.
10093
10094 2022-03-19 Arthur Cohen <arthur.cohen@embecosm.com>
10095
10096 * diagnostic.cc (diagnostic_cc_tests): Rename to...
10097 (c_diagnostic_cc_tests): ...this.
10098 * opt-problem.cc (opt_problem_cc_tests): Rename to...
10099 (c_opt_problem_cc_tests): ...this.
10100 * selftest-run-tests.cc (selftest::run_tests): No longer run
10101 opt_problem_cc_tests or diagnostic_cc_tests.
10102 * selftest.h (diagnostic_cc_tests): Remove declaration.
10103 (opt_problem_cc_tests): Likewise.
10104
10105 2022-03-19 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
10106
10107 PR jit/63854
10108 * hash-traits.h (struct typed_const_free_remove): New.
10109 (struct free_string_hash): New.
10110 * pass_manager.h: Use free_string_hash.
10111 * passes.cc (pass_manager::register_pass_name): Use free_string_hash.
10112 (pass_manager::~pass_manager): Delete allocated m_name_to_pass_map.
10113
10114 2022-03-19 Jakub Jelinek <jakub@redhat.com>
10115
10116 PR middle-end/104971
10117 * config/i386/i386-expand.cc
10118 (ix86_expand_builtin) <case IX86_BUILTIN_READ_FLAGS>: If ignore,
10119 don't push/pop anything and just return const0_rtx.
10120
10121 2022-03-18 Vladimir N. Makarov <vmakarov@redhat.com>
10122
10123 PR rtl-optimization/104961
10124 * lra-assigns.cc (find_reload_regno_insns): Process reload pseudo clobber.
10125
10126 2022-03-18 Jason Merrill <jason@redhat.com>
10127
10128 * tree.h (IDENTIFIER_LENGTH): Add comment.
10129
10130 2022-03-18 Jakub Jelinek <jakub@redhat.com>
10131
10132 PR middle-end/99578
10133 PR middle-end/100680
10134 PR tree-optimization/100834
10135 * params.opt (--param=min-pagesize=): New parameter.
10136 * pointer-query.cc
10137 (compute_objsize_r) <case ARRAY_REF>: Formatting fix.
10138 (compute_objsize_r) <case INTEGER_CST>: Use maximum object size instead
10139 of zero for pointer constants equal or larger than min-pagesize.
10140
10141 2022-03-18 Tom de Vries <tdevries@suse.de>
10142
10143 * gimplify.cc (gimplify_omp_for): Set location using 'input_location'.
10144 Set gfor location only when dealing with a OMP_TASKLOOP.
10145
10146 2022-03-18 Tom de Vries <tdevries@suse.de>
10147
10148 * gimplify.cc (gimplify_omp_for): Set taskloop location.
10149
10150 2022-03-18 Tom de Vries <tdevries@suse.de>
10151
10152 PR target/104952
10153 * omp-low.cc (lower_rec_input_clauses): Make sure GOMP_SIMT_XCHG_BFLY
10154 is executed unconditionally.
10155
10156 2022-03-18 liuhongt <hongtao.liu@intel.com>
10157
10158 PR target/104974
10159 * config/i386/i386.md (*movhi_internal): Set attr type from HI
10160 to HF for alternative 12 under TARGET_AVX512FP16.
10161
10162 2022-03-18 Cui,Lili <lili.cui@intel.com>
10163
10164 PR target/104963
10165 * config/i386/i386.h (PTA_SAPPHIRERAPIDS): change it to base on ICX.
10166 * doc/invoke.texi: Update documents for Intel sapphirerapids.
10167
10168 2022-03-17 Roger Sayle <roger@nextmovesoftware.com>
10169
10170 PR target/86722
10171 PR tree-optimization/90356
10172 * config/i386/i386.md (*movtf_internal): Don't guard
10173 standard_sse_constant_p clause by optimize_function_for_size_p.
10174 (*movdf_internal): Likewise.
10175 (*movsf_internal): Likewise.
10176
10177 2022-03-17 Andrew MacLeod <amacleod@redhat.com>
10178
10179 PR tree-optimization/102943
10180 * gimple-range-cache.cc (ranger_cache::range_from_dom): Find range via
10181 dominators and apply intermediary outgoing edge ranges.
10182
10183 2022-03-17 Richard Biener <rguenther@suse.de>
10184
10185 PR tree-optimization/104960
10186 * passes.def: Add pass parameter to pass_sink_code, mark
10187 last one to unsplit edges.
10188 * tree-ssa-sink.cc (pass_sink_code::set_pass_param): New.
10189 (pass_sink_code::execute): Always execute TODO_cleanup_cfg
10190 when we need to unsplit edges.
10191
10192 2022-03-17 Jakub Jelinek <jakub@redhat.com>
10193
10194 PR middle-end/103984
10195 * gimplify.cc (gimplify_target_expr): Gimplify type sizes and
10196 TARGET_EXPR_INITIAL into a temporary sequence, then push clobbers
10197 and asan unpoisioning, then append the temporary sequence and
10198 finally the TARGET_EXPR_CLEANUP clobbers.
10199
10200 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
10201
10202 * config/i386/sse.md: Delete corrupt character/typo.
10203
10204 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
10205
10206 PR target/94680
10207 * config/i386/sse.md (sse2_movq128): New define_expand to
10208 preserve previous named instruction.
10209 (*sse2_movq128_<mode>): Renamed from sse2_movq128, and
10210 generalized to VI8F_128 (both V2DI and V2DF).
10211
10212 2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
10213
10214 PR tree-optimization/104941
10215 * tree-object-size.cc (size_for_offset): Make useless conversion
10216 check lighter and assign result of fold_convert to OFFSET.
10217
10218 2022-03-16 H.J. Lu <hjl.tools@gmail.com>
10219
10220 PR target/104890
10221 * config/i386/x86gprintrin.h: Also check _SOFT_FLOAT before
10222 pushing target("general-regs-only").
10223
10224 2022-03-16 Kito Cheng <kito.cheng@sifive.com>
10225
10226 * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
10227 Add version info for zk, zks and zkn.
10228
10229 2022-03-16 LiaoShihua <shihua@iscas.ac.cn>
10230
10231 * common/config/riscv/riscv-common.cc
10232 (riscv_combine_info): New.
10233 (riscv_subset_list::handle_combine_ext): Combine back into zk to
10234 maintain the canonical order in isa strings.
10235 (riscv_subset_list::parse): Ditto.
10236 * config/riscv/riscv-subset.h (handle_combine_ext): New.
10237
10238 2022-03-16 Richard Biener <rguenther@suse.de>
10239
10240 PR tree-optimization/102008
10241 * passes.def: Move the added code sinking pass before the
10242 preceeding phiopt pass.
10243
10244 2022-03-16 Patrick Palka <ppalka@redhat.com>
10245
10246 PR c++/96780
10247 * doc/invoke.texi (C++ Dialect Options): Document
10248 -ffold-simple-inlines.
10249
10250 2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
10251
10252 PR tree-optimization/104942
10253 * tree-object-size.cc (alloc_object_size): Remove STRIP_NOPS.
10254
10255 2022-03-16 Jakub Jelinek <jakub@redhat.com>
10256
10257 PR target/104910
10258 * config/aarch64/aarch64.cc (aarch64_load_symref_appropriately): Copy
10259 imm rtx.
10260
10261 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
10262 Richard Biener <rguenther@suse.de>
10263
10264 * gimple-match-head.cc (single_use): Implement inline using a
10265 single loop.
10266
10267 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
10268
10269 * match.pd (X CMP X -> true): Test tree_expr_maybe_nan_p
10270 instead of HONOR_NANS.
10271 (X LTGT X -> false): Enable if X is not tree_expr_maybe_nan_p, as
10272 this can't trap/signal.
10273
10274 2022-03-16 liuhongt <hongtao.liu@intel.com>
10275
10276 PR target/104946
10277 * config/i386/i386-builtin.def (BDESC): Add
10278 CODE_FOR_sse4_1_blendvpd for IX86_BUILTIN_BLENDVPD.
10279 * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
10280 __builtin_ia32_blendvpd w/o sse4.2
10281
10282 2022-03-15 Peter Bergner <bergner@linux.ibm.com>
10283
10284 PR target/104923
10285 * config/rs6000/predicates.md (mma_disassemble_output_operand): Restrict
10286 acceptable MEM addresses.
10287
10288 2022-03-15 Jakub Jelinek <jakub@redhat.com>
10289
10290 PR target/91229
10291 * config/riscv/riscv.cc (riscv_pass_aggregate_in_fpr_pair_p,
10292 riscv_pass_aggregate_in_fpr_and_gpr_p): Pass OPT_Wpsabi instead of 0
10293 to warning calls.
10294
10295 2022-03-15 Jakub Jelinek <jakub@redhat.com>
10296
10297 PR target/104890
10298 * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Use no-mmx,no-sse
10299 instead of general-regs-only.
10300
10301 2022-03-15 Roger Sayle <roger@nextmovesoftware.com>
10302 Marc Glisse <marc.glisse@inria.fr>
10303 Richard Biener <rguenther@suse.de>
10304
10305 PR tree-optimization/101895
10306 * match.pd (vec_same_elem_p): Handle CONSTRUCTOR_EXPR def.
10307 (plus (vec_perm (mult ...) ...) ...): New reordering simplification.
10308
10309 2022-03-15 Jakub Jelinek <jakub@redhat.com>
10310
10311 PR rtl-optimization/104814
10312 * ifcvt.cc (find_if_case_1, find_if_case_2): Punt if test_bb doesn't
10313 end with onlyjump_p. Assume BB_END (test_bb) is always non-NULL.
10314
10315 2022-03-15 Martin Sebor <msebor@redhat.com>
10316
10317 PR middle-end/104436
10318 * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
10319 Check for warning suppression. Avoid by-value arguments transformed
10320 into by-transparent-reference.
10321
10322 2022-03-14 Roger Sayle <roger@nextmovesoftware.com>
10323 Uroš Bizjak <ubizjak@gmail.com>
10324
10325 * config/i386/i386.md (peephole2 xorl;movb -> movzbl): Disable
10326 transformation when *zero_extend<mode>si2 is not available.
10327
10328 2022-03-14 Xi Ruoyao <xry111@mengyan1223.wang>
10329
10330 * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Define.
10331 * config/mips/mips.cc (mips_option_override): Make
10332 -fsanitize=address imply -fasynchronous-unwind-tables. This is
10333 needed by libasan for stack backtrace on MIPS.
10334 (mips_asan_shadow_offset): Return SUBTARGET_SHADOW_OFFSET.
10335
10336 2022-03-14 Jakub Jelinek <jakub@redhat.com>
10337
10338 PR debug/104778
10339 * lra.cc (lra_substitute_pseudo): For debug_p mode, simplify
10340 SUBREG, ZERO_EXTEND, SIGN_EXTEND, FLOAT or UNSIGNED_FLOAT if recursive
10341 call simplified the first operand into VOIDmode constant.
10342
10343 2022-03-14 Jakub Jelinek <jakub@redhat.com>
10344
10345 PR tree-optimization/102586
10346 * doc/extend.texi (__builtin_clear_padding): Clearify that for C++
10347 argument type should be pointer to trivially-copyable type unless it
10348 is address of a variable or parameter.
10349
10350 2022-03-14 Jakub Jelinek <jakub@redhat.com>
10351
10352 PR target/99754
10353 * config/i386/emmintrin.h (_mm_loadu_si32): Put loaded value into
10354 first rather than last element of the vector, use __m32_u to do
10355 a really unaligned load, use just 0 instead of (int)0.
10356 (_mm_loadu_si16): Put loaded value into first rather than last
10357 element of the vector, use __m16_u to do a really unaligned load,
10358 use just 0 instead of (short)0.
10359
10360 2022-03-14 Jakub Jelinek <jakub@redhat.com>
10361
10362 PR other/104899
10363 * config/bfin/bfin.cc (bfin_handle_longcall_attribute): Fix a typo
10364 in diagnostic message - cannott -> cannot. Use %< and %> around
10365 names of attribute. Avoid too long line.
10366 * range-op.cc (operator_logical_and::op1_range): Fix up a typo
10367 in comment - cannott -> cannot. Use 2 spaces after . instead of one.
10368
10369 2022-03-14 liuhongt <hongtao.liu@intel.com>
10370
10371 PR target/104666
10372 * config/i386/i386-expand.cc
10373 (ix86_check_builtin_isa_match): New func.
10374 (ix86_expand_builtin): Move code to
10375 ix86_check_builtin_isa_match and call it.
10376 * config/i386/i386-protos.h
10377 (ix86_check_builtin_isa_match): Declare.
10378 * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
10379 builtin into gimple when isa mismatches.
10380
10381 2022-03-13 Tobias Burnus <tobias@codesourcery.com>
10382
10383 * doc/invoke.texi: Fix typos.
10384 * doc/tm.texi.in: Remove duplicated word.
10385 * doc/tm.texi: Regenerate.
10386
10387 2022-03-12 Segher Boessenkool <segher@kernel.crashing.org>
10388
10389 PR target/104829
10390 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Don't output
10391 "ppc" and "ppc64" based on rs6000_cpu.
10392
10393 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
10394
10395 PR middle-end/100280
10396 PR middle-end/104892
10397 * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
10398 Remove special handling of 'GOMP_MAP_FORCE_TOFROM'.
10399
10400 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
10401
10402 PR middle-end/100280
10403 PR middle-end/104086
10404 * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
10405 Mark variables used in 'present' clauses as addressable.
10406 * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Gracefully
10407 handle duplicate 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
10408
10409 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
10410
10411 PR other/65095
10412 * tree-core.h (user_omp_claus_code_name): Declare function.
10413 * tree.cc (user_omp_clause_code_name): New function.
10414
10415 2022-03-12 Roger Sayle <roger@nextmovesoftware.com>
10416
10417 PR middle-end/98420
10418 * match.pd (minus @0 @0): Additional checks for -fno-rounding-math
10419 (the defaut) or -fno-signed-zeros.
10420
10421 2022-03-12 Michael Meissner <meissner@linux.ibm.com>
10422
10423 PR target/104868
10424 * config/rs6000/vsx.md (extendditi2): Use a 'b' constraint when
10425 moving from a GPR register to an Altivec register.
10426
10427 2022-03-11 Roger Sayle <roger@nextmovesoftware.com>
10428
10429 PR tree-optimization/98335
10430 * config/i386/i386.md (peephole2): Eliminate redundant insv.
10431 Combine movl followed by movb. Transform xorl followed by
10432 a suitable movb or movw into the equivalent movz[bw]l.
10433
10434 2022-03-11 Roger Sayle <roger@nextmovesoftware.com>
10435 Richard Biener <rguenther@suse.de>
10436
10437 PR tree-optimization/98335
10438 * builtins.cc (get_object_alignment_2): Export.
10439 * builtins.h (get_object_alignment_2): Likewise.
10440 * tree-ssa-alias.cc (ao_ref_alignment): New.
10441 * tree-ssa-alias.h (ao_ref_alignment): Declare.
10442 * tree-ssa-dse.cc (compute_trims): Improve logic deciding whether
10443 to align head/tail, writing more bytes but using fewer store insns.
10444
10445 2022-03-11 Richard Biener <rguenther@suse.de>
10446
10447 PR tree-optimization/104880
10448 * tree-ssa.cc (execute_update_address_taken): Remember if we
10449 optimistically made something not addressable and
10450 prepare to undo it.
10451
10452 2022-03-11 Richard Biener <rguenther@suse.de>
10453
10454 PR target/104762
10455 * config/i386/i386.cc (ix86_builtin_vectorization_cost): Do not
10456 cost the first lane of SSE pieces as inserts for vec_construct.
10457
10458 2022-03-10 Roger Sayle <roger@nextmovesoftware.com>
10459
10460 PR c++/84964
10461 * calls.cc (expand_call): Ignore stack adjustments after sorry.
10462
10463 2022-03-10 Vladimir N. Makarov <vmakarov@redhat.com>
10464
10465 PR target/103074
10466 * lra-constraints.cc (split_reg): Set up
10467 check_and_force_assignment_correctness_p when splitting hard
10468 register live range.
10469
10470 2022-03-10 Martin Jambor <mjambor@suse.cz>
10471
10472 PR ipa/104813
10473 * ipa-cp.cc (create_specialized_node): Move removal of
10474 self-recursive calls from callers vector before refrence
10475 adjustments.
10476
10477 2022-03-10 Richard Biener <rguenther@suse.de>
10478
10479 PR tree-optimization/102943
10480 * gimple-range-cache.cc (sbr_sparse_bitmap::bitvec):
10481 Make a bitmap_head.
10482 (sbr_sparse_bitmap::sbr_sparse_bitmap): Adjust and switch
10483 to tree view.
10484 (sbr_sparse_bitmap::set_bb_range): Adjust.
10485 (sbr_sparse_bitmap::get_bb_range): Likewise.
10486
10487 2022-03-10 Richard Biener <rguenther@suse.de>
10488
10489 PR tree-optimization/102943
10490 * tree-ssa-dom.cc (back_propagate_equivalences): Only
10491 populate the dominance bitmap if fast queries are not
10492 available. Use a tree view bitmap.
10493 (record_temporary_equivalences): Cache the dominance bitmap
10494 across all equivalences on the edge.
10495
10496 2022-03-10 Tom de Vries <tdevries@suse.de>
10497
10498 PR target/104840
10499 * config/nvptx/nvptx.md (define_attr "predicable"): Use no,yes instead
10500 of false,true.
10501
10502 2022-03-10 Tom de Vries <tdevries@suse.de>
10503
10504 PR target/104783
10505 * config/nvptx/nvptx.cc (nvptx_init_unisimt_predicate)
10506 (nvptx_output_unisimt_switch): Handle unisimt_outside_simt_predicate.
10507 (nvptx_get_unisimt_outside_simt_predicate): New function.
10508 (predicate_insn): New function, factored out of ...
10509 (nvptx_reorg_uniform_simt): ... here. Predicate all emitted insns.
10510 * config/nvptx/nvptx.h (struct machine_function): Add
10511 unisimt_outside_simt_predicate field.
10512 * config/nvptx/nvptx.md (define_insn "nvptx_warpsync")
10513 (define_insn "nvptx_uniform_warp_check"): Make predicable.
10514
10515 2022-03-10 Tom de Vries <tdevries@suse.de>
10516
10517 * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Handle unused
10518 result.
10519
10520 2022-03-10 Tom de Vries <tdevries@suse.de>
10521
10522 PR target/104815
10523 * config/nvptx/nvptx.cc (nvptx_print_operand): Handle 'x' operand
10524 modifier.
10525 * config/nvptx/nvptx.md: Use %x0 destination operand in atom insns.
10526
10527 2022-03-10 Tom de Vries <tdevries@suse.de>
10528
10529 * config/nvptx/nvptx.md (define_insn "atomic_fetch_<logic><mode>"):
10530 Emit atom.and.b64 instead of atom.b64.and.
10531
10532 2022-03-10 Tom de Vries <tdevries@suse.de>
10533
10534 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Move mptx=3.1 ...
10535 (MULTILIB_OPTIONS): ... here.
10536
10537 2022-03-10 Tom de Vries <tdevries@suse.de>
10538
10539 PR target/104758
10540 * config/nvptx/nvptx.opt (misa): Set default to sm_30.
10541 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Remove misa=sm_30.
10542
10543 2022-03-10 Thomas Schwinge <thomas@codesourcery.com>
10544
10545 PR middle-end/90115
10546 PR middle-end/102330
10547 PR middle-end/104774
10548 * omp-low.cc (oacc_privatization_candidate_p)
10549 (oacc_privatization_scan_clause_chain)
10550 (oacc_privatization_scan_decl_chain, lower_oacc_private_marker):
10551 Analyze 'lookup_decl'-translated DECL.
10552
10553 2022-03-10 Jakub Jelinek <jakub@redhat.com>
10554
10555 PR target/99708
10556 * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Remove
10557 RS6000_BTI_ptr_ieee128_float and RS6000_BTI_ptr_ibm128_float.
10558 (ptr_ieee128_float_type_node, ptr_ibm128_float_type_node): Remove.
10559 * config/rs6000/rs6000-builtin.cc (rs6000_type_string): Return
10560 "**NULL**" if type_node is NULL first. Handle
10561 ieee128_float_type_node.
10562 (rs6000_init_builtins): Don't initialize ptr_ieee128_float_type_node
10563 and ptr_ibm128_float_type_node. Set ibm128_float_type_node and
10564 ieee128_float_type_node to NULL rather than long_double_type_node if
10565 they aren't supported. Do support __ibm128 even if
10566 !TARGET_FLOAT128_TYPE when long double is double double.
10567 (rs6000_expand_builtin): Error if bif_is_ibm128 and
10568 !ibm128_float_type_node. Remap RS6000_BIF_{,UN}PACK_IF to
10569 RS6000_BIF_{,UN}PACK_TF much earlier and only use bif_is_ibm128 check
10570 for it.
10571 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Define
10572 __SIZEOF_FLOAT128__ here and only iff __float128 macro is defined.
10573 (rs6000_cpu_cpp_builtins): Don't define __SIZEOF_FLOAT128__ here.
10574 Define __SIZEOF_IBM128__=16 if ieee128_float_type_node is non-NULL.
10575 Formatting fix.
10576 * config/rs6000/rs6000-gen-builtins.cc: Document ibm128 attribute.
10577 (struct attrinfo): Add isibm128 member.
10578 (TYPE_MAP_SIZE): Remove.
10579 (type_map): Use [] instead of [TYPE_MAP_SIZE]. For "if" use
10580 ibm128_float_type_node only if it is non-NULL, otherwise fall back
10581 to long_double_type_node. Remove "pif" entry.
10582 (parse_bif_attrs): Handle ibm128 attribute and print it for debugging.
10583 (write_decls): Output bif_ibm128_bit and bif_is_ibm128.
10584 (write_type_node): Use sizeof type_map / sizeof type_map[0]
10585 instead of TYPE_MAP_SIZE.
10586 (write_bif_static_init): Handle isibm128.
10587 * config/rs6000/rs6000-builtins.def: Document ibm128 attribute.
10588 (__builtin_pack_ibm128, __builtin_unpack_ibm128): Add ibm128
10589 attribute.
10590
10591 2022-03-09 Richard Biener <rguenther@suse.de>
10592
10593 * cfgexpand.cc (expand_gimple_asm): Special-case MEM_REF
10594 with non-decl operand, avoiding a copy.
10595
10596 2022-03-09 Jakub Jelinek <jakub@redhat.com>
10597
10598 PR target/104781
10599 * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Define for ia32.
10600
10601 2022-03-09 Richard Biener <rguenther@suse.de>
10602
10603 PR middle-end/104786
10604 * cfgexpand.cc (expand_asm_stmt): Do not generate a copy
10605 for VLAs without an upper size bound.
10606
10607 2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang>
10608
10609 PR tree-optimization/104851
10610 * optabs-query.cc (supports_vec_convert_optab_p): Fix off-by-one
10611 error.
10612
10613 2022-03-09 Jakub Jelinek <jakub@redhat.com>
10614
10615 PR c/104711
10616 * doc/invoke.texi (-Wextra): Document that -Wshift-negative-value
10617 is enabled by it only for C++11 to C++17 rather than for C++03 or
10618 later.
10619 (-Wshift-negative-value): Similarly (except here we stated
10620 that it is enabled for C++11 or later).
10621
10622 2022-03-09 Jakub Jelinek <jakub@redhat.com>
10623
10624 PR rtl-optimization/104839
10625 * simplify-rtx.cc (simplify_unary_operation_1) <case SIGN_EXTEND>:
10626 Use SRP_SIGNED instead of incorrect 1 in SUBREG_PROMOTED_SET.
10627 (simplify_unary_operation_1) <case ZERO_EXTEND>: Use SRP_UNSIGNED
10628 instead of incorrect 0 in SUBREG_PROMOTED_SET.
10629
10630 2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang>
10631
10632 PR target/104842
10633 * config/mips/mips.h (LUI_OPERAND): Cast the input to an unsigned
10634 value before adding an offset.
10635
10636 2022-03-08 Christophe Lyon <christophe.lyon@arm.com>
10637
10638 * config/arm/arm-builtins.cc
10639 (arm_binop_none_none_unone_qualifiers): Delete.
10640 (BINOP_NONE_NONE_UNONE_QUALIFIERS): Delete.
10641
10642 2022-03-08 Iain Sandoe <iain@sandoe.co.uk>
10643
10644 PR translation/104552
10645 * config/host-darwin.cc (darwin_gt_pch_get_address): Amend
10646 the PCH out of memory error message punctuation and wording.
10647
10648 2022-03-08 Marek Polacek <polacek@redhat.com>
10649
10650 PR rtl-optimization/104777
10651 * rtl.cc (classify_insn): For ASM_OPERANDS, return JUMP_INSN only if
10652 ASM_OPERANDS_LABEL_VEC has at least one element.
10653
10654 2022-03-08 H.J. Lu <hjl.tools@gmail.com>
10655
10656 PR target/104781
10657 * config/i386/i386.cc (ix86_expand_epilogue): Sorry if there is
10658 stack realignment or regparm nested function with EH return.
10659
10660 2022-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
10661
10662 PR target/104790
10663 * config/arm/arm.h (MVE_STN_LDW_MODE): New MACRO.
10664 * config/arm/arm.cc (mve_vector_mem_operand): Relax constraint on base
10665 register for non widening loads or narrowing stores.
10666
10667 2022-03-08 Eric Gallager <egallager@gcc.gnu.org>
10668
10669 PR translation/104552
10670 * params.opt: Fix typo.
10671
10672 2022-03-08 Richard Biener <rguenther@suse.de>
10673
10674 PR tree-optimization/84201
10675 * params.opt (-param=vect-induction-float): Add.
10676 * doc/invoke.texi (vect-induction-float): Document.
10677 * tree-vect-loop.cc (vectorizable_induction): Honor
10678 param_vect_induction_float.
10679
10680 2022-03-08 Martin Jambor <mjambor@suse.cz>
10681
10682 PR translation/104552
10683 * params.opt (ipa-cp-recursive-freq-factor): Remove repeated word
10684 "that" in the description.
10685
10686 2022-03-08 Richard Biener <rguenther@suse.de>
10687
10688 PR tree-optimization/104825
10689 * tree-ssa-sccvn.cc (visit_reference_op_call): Properly
10690 guard modref get_ao_ref on a pointer typed argument.
10691
10692 2022-03-08 liuhongt <hongtao.liu@intel.com>
10693
10694 * config/i386/sse.md (*vec_dupv4si): Disable memory operand
10695 for !TARGET_INTER_UNIT_MOVES_TO_VEC when prefer_for_speed.
10696
10697 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
10698
10699 * doc/invoke.texi (C++ Modules): Remove anachronism.
10700
10701 2022-03-07 Martin Liska <mliska@suse.cz>
10702
10703 PR middle-end/104381
10704 * opts.cc (finish_options): If debug info is disabled
10705 (debug_info_level) and -fvar-tracking is unset, disable it.
10706
10707 2022-03-07 Jakub Jelinek <jakub@redhat.com>
10708
10709 * tree-ssa-propagate.cc: Fix up duplicated word issue in a comment.
10710 * config/riscv/riscv.cc: Likewise.
10711 * config/darwin.h: Likewise.
10712 * config/i386/i386.cc: Likewise.
10713 * config/aarch64/thunderx3t110.md: Likewise.
10714 * config/aarch64/fractional-cost.h: Likewise.
10715 * config/vax/vax.cc: Likewise.
10716 * config/rs6000/pcrel-opt.md: Likewise.
10717 * config/rs6000/predicates.md: Likewise.
10718 * ctfc.h: Likewise.
10719 * tree-ssa-uninit.cc: Likewise.
10720 * value-relation.h: Likewise.
10721 * gimple-range-gori.cc: Likewise.
10722 * ipa-polymorphic-call.cc: Likewise.
10723 * pointer-query.cc: Likewise.
10724 * ipa-sra.cc: Likewise.
10725 * internal-fn.cc: Likewise.
10726 * varasm.cc: Likewise.
10727 * gimple-ssa-warn-access.cc: Likewise.
10728
10729 2022-03-07 Martin Liska <mliska@suse.cz>
10730
10731 PR target/104794
10732 * config/arm/arm.cc (arm_option_override_internal): Add missing
10733 space.
10734
10735 2022-03-07 Richard Biener <rguenther@suse.de>
10736
10737 PR tree-optimization/104782
10738 * tree-vect-slp.cc (vectorize_slp_instance_root_stmt):
10739 Re-instantiate r10-5979 fix, add comment.
10740
10741 2022-03-07 Martin Liska <mliska@suse.cz>
10742
10743 PR target/104797
10744 * config/msp430/msp430.cc (msp430_expand_delay_cycles): Remove
10745 parenthesis from built-in name.
10746
10747 2022-03-07 Martin Liska <mliska@suse.cz>
10748
10749 PR target/104794
10750 * config/arm/arm.cc (arm_option_override_internal): Fix quoting
10751 of options in error messages.
10752 (arm_option_reconfigure_globals): Likewise.
10753
10754 2022-03-07 Martin Liska <mliska@suse.cz>
10755
10756 PR target/104794
10757 * config/arm/arm-builtins.cc (arm_expand_builtin): Reuse error
10758 message. Fix ARM_BUILTIN_WRORHI and ARM_BUILTIN_WRORH that can
10759 have only range [0,32].
10760
10761 2022-03-07 Jakub Jelinek <jakub@redhat.com>
10762
10763 PR target/104775
10764 * config/s390/s390.md (*cmp_and_trap_unsigned_int<mode>): Use
10765 S constraint instead of T in the last alternative.
10766
10767 2022-03-07 Martin Liska <mliska@suse.cz>
10768
10769 * plugin.cc (default_plugin_dir_name): Remove <dir> from error
10770 message.
10771
10772 2022-03-07 Martin Liska <mliska@suse.cz>
10773
10774 PR translation/90148
10775 * config/rs6000/rs6000.cc (rs6000_linux64_override_options): Put
10776 quote to a proper place.
10777 * plugin.cc (default_plugin_dir_name): Likewise.
10778
10779 2022-03-07 Martin Liska <mliska@suse.cz>
10780
10781 PR target/99297
10782 * config/rx/rx.cc (rx_expand_builtin_mvtc): Fix translation
10783 string.
10784
10785 2022-03-07 Jakub Jelinek <jakub@redhat.com>
10786
10787 PR target/104779
10788 * config/i386/sse.md (avx512dq_mul<mode>3<mask_name>): New
10789 define_expand pattern. Rename define_insn to ...
10790 (*avx512dq_mul<mode>3<mask_name>): ... this.
10791 (<code><mode>3_mask): New any_logic define_expand pattern.
10792 (<mask_codefor><code><mode>3<mask_name>): Rename to ...
10793 (*<code><mode>3<mask_name>): ... this.
10794
10795 2022-03-05 Jakub Jelinek <jakub@redhat.com>
10796
10797 * gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p): Remove
10798 visited bitmap and its use. Also punt on EDGE_ABNORMAL edges.
10799
10800 2022-03-05 Roger Sayle <roger@nextmovesoftware.com>
10801 Uroš Bizjak <ubizjak@gmail.com>
10802
10803 PR testsuite/104732
10804 * config/i386/i386.md (SWIM1248x): Renamed from SWIM1248s.
10805 Include DI mode unconditionally.
10806 (*anddi3_doubleword): Remove && TARGET_STV && TARGET_SSE2 condition,
10807 i.e. always split on !TARGET_64BIT.
10808 (*<any_or>di3_doubleword): Likewise.
10809 (*one_cmpldi2_doubleword): Likewise.
10810 (and<mode>3 expander): Update to use SWIM1248x from SWIM1248s.
10811 (<any_or><mode>3 expander): Likewise.
10812 (one_cmpl<mode>2 expander): Likewise.
10813
10814 2022-03-05 Michael Meissner <meissner@linux.ibm.com>
10815
10816 PR target/104698
10817 * config/rs6000/vsx.md (UNSPEC_MTVSRD_DITI_W1): Delete.
10818 (mtvsrdd_diti_w1): Delete.
10819 (extendditi2): Convert from define_expand to
10820 define_insn_and_split. Replace with code to deal with both GPR
10821 registers and with altivec registers.
10822
10823 2022-03-04 Segher Boessenkool <segher@kernel.crashing.org>
10824
10825 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Restructure a
10826 bit. Handle most older CPUs.
10827
10828 2022-03-04 Iain Sandoe <iain@sandoe.co.uk>
10829
10830 * config/darwin.cc (darwin_fold_builtin): Make fcode an int to
10831 avoid a mismatch with DECL_MD_FUNCTION_CODE().
10832
10833 2022-03-04 Iain Sandoe <iain@sandoe.co.uk>
10834
10835 PR target/104117
10836 * config/rs6000/darwin.md (@machopic_high_<mode>): New.
10837 (@machopic_low_<mode>): New.
10838 * config/rs6000/predicates.md (macho_pic_address): New.
10839 * config/rs6000/rs6000.cc (rs6000_legitimize_address): Do not
10840 apply the TLS processing to Darwin.
10841 * lra-constraints.cc (process_address_1): Revert the changes
10842 in r12-7209.
10843
10844 2022-03-04 Peter Bergner <bergner@linux.ibm.com>
10845
10846 PR target/87496
10847 PR target/104208
10848 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make the
10849 ISA 2.06 requirement for -mabi=ieeelongdouble conditional on
10850 -mlong-double-128.
10851 Move the -mabi=ieeelongdouble and -mabi=ibmlongdouble error checking
10852 from here...
10853 * common/config/rs6000/rs6000-common.cc (rs6000_handle_option):
10854 ... to here.
10855
10856 2022-03-04 Jakub Jelinek <jakub@redhat.com>
10857
10858 PR middle-end/104529
10859 * gimplify.cc (gimplify_init_constructor): Clear TREE_READONLY
10860 on automatic objects which will be runtime initialized.
10861
10862 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
10863
10864 PR middle-end/100280
10865 PR middle-end/104132
10866 PR middle-end/104133
10867 * omp-low.cc (task_shared_vars): Rename to
10868 'make_addressable_vars'. Adjust all users.
10869 (scan_sharing_clauses) <OMP_CLAUSE_MAP> Use it for
10870 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' DECLs, too.
10871
10872 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
10873
10874 PR middle-end/100280
10875 * tree.h (OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE): New.
10876 * tree-core.h: Document it.
10877 * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Handle
10878 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
10879 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
10880 Set 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' instead of
10881 'TREE_ADDRESSABLE'.
10882
10883 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
10884
10885 PR middle-end/100280
10886 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
10887 Add diagnostic: "note: OpenACC 'kernels' decomposition: variable
10888 '[...]' declared in block made addressable".
10889
10890 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
10891
10892 PR middle-end/100400
10893 PR middle-end/103836
10894 PR middle-end/104061
10895 * omp-oacc-kernels-decompose.cc (decompose_kernels_region_body):
10896 Catch 'GIMPLE_DEBUG'.
10897
10898 2022-03-04 Jakub Jelinek <jakub@redhat.com>
10899
10900 PR c/104627
10901 * tree.cc (warn_deprecated_use): For types prefer to use node
10902 and only use TYPE_MAIN_VARIANT (node) if TYPE_STUB_DECL (node) is
10903 NULL.
10904
10905 2022-03-04 H.J. Lu <hjl.tools@gmail.com>
10906
10907 PR target/104704
10908 * config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Always return
10909 a pseudo register.
10910
10911 2022-03-03 Martin Sebor <msebor@redhat.com>
10912
10913 PR middle-end/104761
10914 * gimple-ssa-warn-access.cc (pass_waccess::execute): Call
10915 mark_dfs_back_edges.
10916
10917 2022-03-03 Martin Liska <mliska@suse.cz>
10918
10919 * configure.ac: Use linker plug-in by default.
10920 * configure: Regenerate.
10921
10922 2022-03-03 Martin Liska <mliska@suse.cz>
10923
10924 * configure.ac: Now ld.mold support LTO plugin API, use it.
10925 * configure: Regenerate.
10926
10927 2022-03-03 Tom de Vries <tdevries@suse.de>
10928
10929 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add mptx=3.1.
10930
10931 2022-03-03 Tom de Vries <tdevries@suse.de>
10932
10933 PR target/104758
10934 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add misa=sm_30.
10935
10936 2022-03-03 Tom de Vries <tdevries@suse.de>
10937
10938 * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
10939
10940 2022-03-03 Jakub Jelinek <jakub@redhat.com>
10941
10942 PR middle-end/104757
10943 * gimplify.cc (gimplify_omp_loop): Call gimplify_expr rather than
10944 gimplify_omp_for.
10945 (gimplify_expr) <case OMP_SIMD>: Temporarily disable
10946 gimplify_ctxp->into_ssa around call to gimplify_omp_for.
10947
10948 2022-03-03 Jakub Jelinek <jakub@redhat.com>
10949
10950 PR middle-end/104558
10951 * calls.cc (store_one_arg): When not calling emit_push_insn
10952 because size_rtx is const0_rtx, call at least anti_adjust_stack
10953 on arg->locate.alignment_pad if !argblock and the alignment might
10954 be non-zero.
10955
10956 2022-03-02 Alexandre Oliva <oliva@adacore.com>
10957
10958 * lra-constraints.cc (undo_optional_reloads): Recognize and
10959 drop insns of multi-word move sequences, tolerate removal
10960 iteration on an already-removed clobber, and refuse to
10961 substitute original pseudos into clobbers.
10962
10963 2022-03-02 Qing Zhao <qing.zhao@oracle.com>
10964
10965 PR middle-end/102276
10966 * common.opt (-Wtrivial-auto-var-init): New option.
10967 * doc/invoke.texi (-Wtrivial-auto-var-init): Document new option.
10968 (-ftrivial-auto-var-init): Update option;
10969 * gimplify.cc (emit_warn_switch_unreachable): New function.
10970 (warn_switch_unreachable_r): Rename to ...
10971 (warn_switch_unreachable_and_auto_init_r): This.
10972 (maybe_warn_switch_unreachable): Rename to ...
10973 (maybe_warn_switch_unreachable_and_auto_init): This.
10974 (gimplify_switch_expr): Update calls to renamed function.
10975
10976 2022-03-02 Richard Biener <rguenther@suse.de>
10977
10978 PR rtl-optimization/104686
10979 * ira-color.cc (object_conflicts_with_allocno_p): New function
10980 using a bitvector test instead of iterating when possible.
10981 (allocnos_conflict_p): Choose the best allocno to iterate over
10982 object conflicts.
10983 (update_conflict_hard_regno_costs): Do allocnos_conflict_p test
10984 last.
10985
10986 2022-03-02 Jakub Jelinek <jakub@redhat.com>
10987
10988 * cfg.cc (dump_edge_info): Dump goto_locus if present.
10989
10990 2022-03-02 Jakub Jelinek <jakub@redhat.com>
10991
10992 PR rtl-optimization/104589
10993 * cfgrtl.cc (fixup_reorder_chain): Use loc_equal instead of direct
10994 INSN_LOCATION comparison with goto_locus.
10995
10996 2022-03-02 Jakub Jelinek <jakub@redhat.com>
10997
10998 * tree-ssa-strlen.cc (strlen_pass::handle_assign,
10999 strlen_pass::before_dom_children): Comment spelling fixes.
11000
11001 2022-03-02 Jakub Jelinek <jakub@redhat.com>
11002
11003 * ipa-modref-tree.cc (modref_access_node::contains,
11004 modref_access_node::closer_pair_p, modref_access_node::insert,
11005 modref_access_node::insert_kill): Comment spelling fixes.
11006 * ipa-modref.cc: Likewise.
11007 (modref_summary::finalize, ignore_nondeterminism_p,
11008 class modref_access_analysis,
11009 modref_access_analysis::set_side_effects,
11010 modref_access_analysis::set_nondeterministic,
11011 modref_access_analysis::record_global_memory_load,
11012 modref_access_analysis::propagate, modref_access_analysis::analyze,
11013 struct escape_point, class modref_lattice, modref_lattice::merge,
11014 modref_lattice::merge_deref, class modref_eaf_analysis,
11015 modref_eaf_analysis::merge_call_lhs_flags,
11016 modref_eaf_analysis::analyze_ssa_name, modref_eaf_analysis::propagate,
11017 modref_eaf_analysis::record_escape_points, remap_kills,
11018 update_escape_summary, remove_useless_summaries,
11019 ipa_merge_modref_summary_after_inlining, pass_ipa_modref::execute):
11020 Likewise.
11021 * ipa-modref.h (struct modref_summary, interposable_eaf_flags):
11022 Likewise.
11023 * ipa-modref-tree.h (enum modref_special_parms,
11024 struct modref_access_node): Likewise.
11025
11026 2022-03-01 Jakub Jelinek <jakub@redhat.com>
11027
11028 PR tree-optimization/104715
11029 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Don't
11030 unnecessarily test if ptr is a SSA_NAME, it has to be. Only push lhs
11031 of a call if gimple_call_return_arg is equal to ptr, not just when it
11032 is non-NULL.
11033
11034 2022-03-01 Jakub Jelinek <jakub@redhat.com>
11035
11036 * gimple-ssa-warn-access.cc (warn_string_no_nul,
11037 maybe_warn_nonstring_arg, fndecl_alloc_p, new_delete_mismatch_p,
11038 matching_alloc_calls_p, maybe_warn_alloc_args_overflow,
11039 pass_waccess::check_alloca, pass_waccess::check_strcat,
11040 memmodel_to_uhwi, fntype_argno_type,
11041 pass_waccess::maybe_check_access_sizes,
11042 pass_waccess::check_call_access,
11043 pass_waccess::maybe_check_dealloc_call, pass_waccess::check_stmt):
11044 Comment spelling fixes.
11045
11046 2022-03-01 Richard Biener <rguenther@suse.de>
11047
11048 PR tree-optimization/104716
11049 * tree-loop-distribution.cc (find_seed_stmts_for_distribution):
11050 Check if we can copy the loop.
11051
11052 2022-03-01 H.J. Lu <hjl.tools@gmail.com>
11053
11054 PR middle-end/104721
11055 * cfgexpand.cc (expand_gimple_basic_block): Clear
11056 currently_expanding_gimple_stmt when returning inside the loop.
11057
11058 2022-03-01 Martin Liska <mliska@suse.cz>
11059
11060 PR ipa/104533
11061 * multiple_target.cc (get_attr_len): Move to tree.c.
11062 (expand_target_clones): Remove single value checking.
11063 * tree.cc (get_target_clone_attr_len): New fn.
11064 * tree.h (get_target_clone_attr_len): Likewise.
11065
11066 2022-03-01 Martin Liska <mliska@suse.cz>
11067
11068 PR gcov-profile/104677
11069 * doc/invoke.texi: Document more .gcda file name generation.
11070
11071 2022-03-01 Tom de Vries <tdevries@suse.de>
11072
11073 PR target/102429
11074 * config/nvptx/nvptx.cc (nvptx_gen_shuffle): Handle DCmode and CDImode.
11075 * config/nvptx/nvptx.md
11076 (define_predicate "nvptx_register_or_complex_di_df_register_operand"):
11077 New predicate.
11078 (define_expand "omp_simt_xchg_bfly", define_expand "omp_simt_xchg_idx"):
11079 Use nvptx_register_or_complex_di_df_register_operand.
11080
11081 2022-03-01 Tom de Vries <tdevries@suse.de>
11082
11083 * config.gcc (nvptx*-*-*): Add nvptx/nvptx-gen.opt to extra_options.
11084 * config/nvptx/gen-copyright.sh: New file.
11085 * config/nvptx/gen-h.sh: New file.
11086 * config/nvptx/gen-opt.sh: New file.
11087 * config/nvptx/nvptx.h (TARGET_SM35, TARGET_SM53, TARGET_SM70)
11088 (TARGET_SM75, TARGET_SM80): Move ...
11089 * config/nvptx/nvptx-gen.h: ... here. New file, generate.
11090 * config/nvptx/nvptx.opt (Enum ptx_isa): Move ...
11091 * config/nvptx/nvptx-gen.opt: ... here. New file, generate.
11092 * config/nvptx/t-nvptx ($(srcdir)/config/nvptx/nvptx-gen.h)
11093 ($(srcdir)/config/nvptx/nvptx-gen.opt): New make target.
11094
11095 2022-03-01 Tom de Vries <tdevries@suse.de>
11096
11097 * config/nvptx/gen-omp-device-properties.sh: New file.
11098 * config/nvptx/t-omp-device: Use gen-omp-device-properties.sh.
11099
11100 2022-03-01 Tom de Vries <tdevries@suse.de>
11101
11102 * config/nvptx/nvptx-sm.def: New file.
11103 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Use nvptx-sm.def.
11104 * config/nvptx/nvptx-opts.h (enum ptx_isa): Same.
11105 * config/nvptx/nvptx.cc (sm_version_to_string)
11106 (nvptx_omp_device_kind_arch_isa): Same.
11107
11108 2022-03-01 Robin Dapp <rdapp@linux.ibm.com>
11109
11110 PR rtl-optimization/104154
11111 * config/arc/arc.cc (gen_compare_reg): Return the CC-mode
11112 comparison ifcvt passed us.
11113
11114 2022-03-01 Hongyu Wang <hongyu.wang@intel.com>
11115
11116 PR target/104664
11117 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
11118 Use vec_setv8hf_0 for HF to V8HFmode move instead of subreg.
11119
11120 2022-02-28 Roger Sayle <roger@nextmovesoftware.com>
11121
11122 PR tree-optimization/91384
11123 * config/i386/i386.md (peephole2): Eliminate final testl insn
11124 from the sequence *movsi_internal, *negsi_1, *cmpsi_ccno_1 by
11125 transforming using *negsi_2 for the negation.
11126
11127 2022-02-28 Roger Sayle <roger@nextmovesoftware.com>
11128 Eric Botcazou <ebotcazou@adacore.com>
11129
11130 PR middle-end/80270
11131 * expmed.cc (extract_integral_bit_field): If OP0 is a hard
11132 register, copy it to a pseudo before calling simplify_gen_subreg.
11133
11134 2022-02-28 Vladimir N. Makarov <vmakarov@redhat.com>
11135
11136 PR rtl-optimization/104637
11137 * lra-assigns.cc (lra_split_hard_reg_for): Split hard regs as many
11138 as possible on one subpass.
11139
11140 2022-02-28 Qing Zhao <qing.zhao@oracle.com>
11141
11142 PR middle-end/104550
11143 * gimple-fold.cc (clear_padding_flush): Suppress warnings for new
11144 created uses.
11145
11146 2022-02-28 Martin Liska <mliska@suse.cz>
11147
11148 PR ipa/104648
11149 * main.cc (main): Use flag_checking instead of CHECKING_P
11150 and run toplev::finalize only if there is not error seen.
11151
11152 2022-02-28 Richard Biener <rguenther@suse.de>
11153
11154 * tree-ssa-pre.cc (compute_avail): Revert part of last change.
11155
11156 2022-02-28 Richard Biener <rguenther@suse.de>
11157
11158 PR tree-optimization/104700
11159 * tree-ssa-pre.cc (get_or_alloc_expr_for): Remove and inline
11160 into ...
11161 (find_or_generate_expression): ... here, simplifying code.
11162
11163 2022-02-28 Tom de Vries <tdevries@suse.de>
11164
11165 * config/nvptx/nvptx-opts.h (enum ptx_version): Add
11166 PTX_VERSION_default.
11167 * config/nvptx/nvptx.cc (handle_ptx_version_option): Handle
11168 PTX_VERSION_default.
11169 * config/nvptx/nvptx.opt: Add EnumValue "_" / PTX_VERSION_default.
11170
11171 2022-02-28 Richard Biener <rguenther@suse.de>
11172
11173 PR rtl-optimization/104686
11174 * ira-int.h (minmax_set_iter_cond): Use ctz_hwi to elide loop
11175 skipping bits that are zero.
11176 (ira_object_conflict_iter_cond): Likewise.
11177
11178 2022-02-28 Hongyu Wang <hongyu.wang@intel.com>
11179
11180 * config/i386/avx512fintrin.h (_MM_TERNLOG_ENUM): New enum.
11181 (_mm512_ternarylogic_epi64): Truncate imm to unsigned
11182 char to avoid error when using ~enum as parameter.
11183 (_mm512_mask_ternarylogic_epi64): Likewise.
11184 (_mm512_maskz_ternarylogic_epi64): Likewise.
11185 (_mm512_ternarylogic_epi32): Likewise.
11186 (_mm512_mask_ternarylogic_epi32): Likewise.
11187 (_mm512_maskz_ternarylogic_epi32): Likewise.
11188 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64):
11189 Adjust imm param type to unsigned char.
11190 (_mm256_mask_ternarylogic_epi64): Likewise.
11191 (_mm256_maskz_ternarylogic_epi64): Likewise.
11192 (_mm256_ternarylogic_epi32): Likewise.
11193 (_mm256_mask_ternarylogic_epi32): Likewise.
11194 (_mm256_maskz_ternarylogic_epi32): Likewise.
11195 (_mm_ternarylogic_epi64): Likewise.
11196 (_mm_mask_ternarylogic_epi64): Likewise.
11197 (_mm_maskz_ternarylogic_epi64): Likewise.
11198 (_mm_ternarylogic_epi32): Likewise.
11199 (_mm_mask_ternarylogic_epi32): Likewise.
11200 (_mm_maskz_ternarylogic_epi32): Likewise.
11201
11202 2022-02-25 Jakub Jelinek <jakub@redhat.com>
11203 Marc Glisse <marc.glisse@inria.fr>
11204
11205 PR tree-optimization/104675
11206 * match.pd (t * 2U / 2 -> t & (~0 / 2), t / 2U * 2 -> t & ~1):
11207 Restrict simplifications to INTEGRAL_TYPE_P.
11208
11209 2022-02-25 Jakub Jelinek <jakub@redhat.com>
11210
11211 PR target/104681
11212 * config/rs6000/vector.md (movmisalign<mode>): Use rs6000_emit_move.
11213
11214 2022-02-25 Claudiu Zissulescu <claziss@synopsys.com>
11215
11216 * config/arc/arc.cc (gen_compare_reg): Return NULL_RTX if the
11217 comparison is not valid.
11218 * config/arc/arc.md (movsicc): Fail if comparison is not valid.
11219 (movdicc): Likewise.
11220 (movsfcc): Likewise.
11221 (movdfcc): Likewise.
11222
11223 2022-02-25 Richard Biener <rguenther@suse.de>
11224
11225 PR tree-optimization/103037
11226 * tree-ssa-sccvn.h (alloc_vn_nary_op_noinit): Declare.
11227 (vn_nary_length_from_stmt): Likewise.
11228 (init_vn_nary_op_from_stmt): Likewise.
11229 (vn_nary_op_compute_hash): Likewise.
11230 * tree-ssa-sccvn.cc (alloc_vn_nary_op_noinit): Export.
11231 (vn_nary_length_from_stmt): Likewise.
11232 (init_vn_nary_op_from_stmt): Likewise.
11233 (vn_nary_op_compute_hash): Likewise.
11234 * tree-ssa-pre.cc (pre_expr_obstack): New obstack.
11235 (get_or_alloc_expr_for_nary): Pass in the value-id to use,
11236 (re-)compute the hash value and if the expression is not
11237 found allocate it from pre_expr_obstack.
11238 (phi_translate_1): Do not insert the NARY found in the
11239 VN tables but build a PRE expression from the valueized
11240 NARY with the value-id we eventually found.
11241 (find_or_generate_expression): Assert we have an entry
11242 for constant values.
11243 (compute_avail): Insert not valueized expressions into
11244 EXP_GEN using the value-id from the VN tables.
11245 (init_pre): Allocate pre_expr_obstack.
11246 (fini_pre): Free pre_expr_obstack.
11247
11248 2022-02-25 Jakub Jelinek <jakub@redhat.com>
11249
11250 PR target/104674
11251 * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_FLOATxFDI_387.
11252 * config/i386/i386.md (splitter to floatdi<mode>2_i387_with_xmm): Use
11253 SLOT_FLOATxFDI_387 rather than SLOT_TEMP.
11254
11255 2022-02-25 Jakub Jelinek <jakub@redhat.com>
11256
11257 * warning-control.cc (get_nowarn_spec): Comment spelling fix.
11258
11259 2022-02-25 Jakub Jelinek <jakub@redhat.com>
11260
11261 PR middle-end/104679
11262 * internal-fn.cc (expand_SPACESHIP): Call do_pending_stack_adjust.
11263
11264 2022-02-25 Jakub Jelinek <jakub@redhat.com>
11265
11266 PR tree-optimization/104675
11267 * match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for
11268 COMPLEX_TYPE.
11269
11270 2022-02-25 Alexandre Oliva <oliva@adacore.com>
11271
11272 PR target/104121
11273 PR target/103302
11274 * expr.cc (emit_move_multi_word): Restore clobbers during LRA.
11275
11276 2022-02-25 Alexandre Oliva <oliva@adacore.com>
11277
11278 PR middle-end/104540
11279 * dwarf2cfi.cc (cfi_oprnd_equal_p): Cope with NULL
11280 dw_cfi_cfa_loc.
11281
11282 2022-02-25 Alexandre Oliva <oliva@adacore.com>
11283
11284 PR tree-optimization/103856
11285 * gimple-harden-conditionals.cc (non_eh_succ_edge): Enable the
11286 eh edge to be requested through an extra parameter.
11287 (pass_harden_compares::execute): Copy PHI args in the EH dest
11288 block for the new EH edge added for the inverted compare.
11289
11290 2022-02-24 Palmer Dabbelt <palmer@rivosinc.com>
11291
11292 * doc/invoke.texi (RISC-V -mcmodel=medany): Document the degree
11293 of position independence that -mcmodel=medany affords.
11294
11295 2022-02-24 Jose E. Marchesi <jose.marchesi@oracle.com>
11296
11297 PR target/104656
11298 * configure.ac: --disable-gcov if targetting bpf-*.
11299 * configure: Regenerate.
11300
11301 2022-02-24 Richard Biener <rguenther@suse.de>
11302
11303 PR tree-optimization/104676
11304 * tree-loop-distribution.cc (loop_distribution::execute):
11305 Do a full scev_reset.
11306
11307 2022-02-24 Jakub Jelinek <jakub@redhat.com>
11308
11309 PR tree-optimization/104601
11310 * tree-ssa-sccvn.cc (visit_reference_op_call): For calls with
11311 non-SSA_NAME lhs value number vdef to itself instead of e.g. the
11312 vuse value number.
11313
11314 2022-02-24 Tom de Vries <tdevries@suse.de>
11315 Tobias Burnus <tobias@codesourcery.com>
11316
11317 * config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Handle
11318 sm_70, sm_75 and sm_80.
11319 * config/nvptx/t-omp-device: Add sm_53, sm_70, sm_75 and sm_80.
11320
11321 2022-02-24 Tom de Vries <tdevries@suse.de>
11322
11323 * config/nvptx/nvptx.md (define_insn "rotlsi3", define_insn
11324 "rotrsi3"): New define_insn.
11325
11326 2022-02-24 Tom de Vries <tdevries@suse.de>
11327
11328 * config/nvptx/nvptx.cc (gen_comment): Use
11329 DECL_SOURCE_LOCATION (cfun->decl) instead of cfun->function_start_locus.
11330
11331 2022-02-24 liuhongt <hongtao.liu@intel.com>
11332
11333 * config/i386/sse.md (<code>v1ti3): Add suffix and replace
11334 isa attr of alternative 2 from avx to avx512vl.
11335
11336 2022-02-23 Richard Biener <rguenther@suse.de>
11337 Jakub Jelinek <jakub@redhat.com>
11338
11339 PR tree-optimization/104644
11340 * doc/match-and-simplify.texi: Amend ! documentation.
11341 * genmatch.cc (expr::gen_transform): Code-generate ! support
11342 for GENERIC.
11343 (parser::parse_expr): Allow ! for GENERIC.
11344 * match.pd (cmp (bswap @0) INTEGER_CST@1): Use ! modifier on
11345 bswap.
11346
11347 2022-02-23 Richard Biener <rguenther@suse.de>
11348
11349 PR tree-optimization/101636
11350 * tree-vect-slp.cc (vect_print_slp_tree): Dump the
11351 vector type of the node.
11352 (vect_slp_analyze_operations): Make sure the CTOR
11353 is vectorized with an expected type.
11354 (vectorize_slp_instance_root_stmt): Revert r10-5979 fix.
11355
11356 2022-02-23 Jakub Jelinek <jakub@redhat.com>
11357
11358 PR c/104633
11359 * gimple-warn-recursion.cc (pass_warn_recursion::find_function_exit):
11360 Don't warn about calls to corresponding builtin from extern inline
11361 gnu_inline wrappers.
11362
11363 2022-02-23 Roger Sayle <roger@nextmovesoftware.com>
11364
11365 PR target/104489
11366 * config/nvptx/nvptx.md (*movhf_insn): Add subregs_ok attribute.
11367
11368 2022-02-23 Christophe Lyon <christophe.lyon@arm.com>
11369
11370 PR target/100757
11371 PR target/101325
11372 * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Fix
11373 typo.
11374
11375 2022-02-23 Cui,Lili <lili.cui@intel.com>
11376
11377 * doc/invoke.texi: Update documents for Intel architectures.
11378
11379 2022-02-22 Roger Sayle <roger@nextmovesoftware.com>
11380
11381 * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop): Restore
11382 bootstrap.
11383
11384 2022-02-22 Thomas Schwinge <thomas@codesourcery.com>
11385
11386 * omp-low.cc (omp_build_component_ref): Move function...
11387 * omp-general.cc (omp_build_component_ref): ... here. Remove
11388 'static'.
11389 * omp-general.h (omp_build_component_ref): Declare function.
11390 * omp-oacc-neuter-broadcast.cc (oacc_build_component_ref): Remove
11391 function.
11392 (build_receiver_ref, build_sender_ref): Call
11393 'omp_build_component_ref' instead.
11394
11395 2022-02-22 Thomas Schwinge <thomas@codesourcery.com>
11396
11397 * omp-oacc-neuter-broadcast.cc (record_field_map_t): Further
11398 simplify. Adjust all users.
11399
11400 2022-02-22 Segher Boessenkool <segher@kernel.crashing.org>
11401
11402 PR target/88134
11403 * config/rs6000/rs6000.cc (atomic_hold_decl, atomic_clear_decl,
11404 atomic_update_decl): Add GTY markup.
11405
11406 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
11407
11408 * config/arm/arm.h (REG_CLASS_CONTENTS): Add VPR_REG to ALL_REGS.
11409
11410 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
11411
11412 PR target/100757
11413 PR target/101325
11414 * config/arm/arm-builtins.cc (CX_UNARY_UNONE_QUALIFIERS): Use
11415 predicate.
11416 (CX_BINARY_UNONE_QUALIFIERS): Likewise.
11417 (CX_TERNARY_UNONE_QUALIFIERS): Likewise.
11418 (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
11419 (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
11420 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Delete.
11421 * config/arm/arm_mve_builtins.def: Use predicated qualifiers.
11422 * config/arm/mve.md: Use VxBI instead of HI.
11423
11424 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
11425
11426 PR target/100757
11427 PR target/101325
11428 * config/arm/arm-builtins.cc (STRSBS_P_QUALIFIERS): Use predicate
11429 qualifier.
11430 (STRSBU_P_QUALIFIERS): Likewise.
11431 (LDRGBS_Z_QUALIFIERS): Likewise.
11432 (LDRGBU_Z_QUALIFIERS): Likewise.
11433 (LDRGBWBXU_Z_QUALIFIERS): Likewise.
11434 (LDRGBWBS_Z_QUALIFIERS): Likewise.
11435 (LDRGBWBU_Z_QUALIFIERS): Likewise.
11436 (STRSBWBS_P_QUALIFIERS): Likewise.
11437 (STRSBWBU_P_QUALIFIERS): Likewise.
11438 * config/arm/mve.md: Use VxBI instead of HI.
11439
11440 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
11441
11442 PR target/100757
11443 PR target/101325
11444 * config/arm/arm-builtins.cc (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
11445 (TERNOP_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
11446 (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
11447 (TERNOP_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
11448 (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
11449 (TERNOP_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
11450 (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Change to ...
11451 (TERNOP_NONE_NONE_UNONE_PRED_QUALIFIERS): ... this.
11452 (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
11453 (QUADOP_UNONE_UNONE_NONE_NONE_PRED_QUALIFIERS): ... this.
11454 (QUADOP_NONE_NONE_NONE_NONE_PRED_QUALIFIERS): New.
11455 (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
11456 (QUADOP_NONE_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
11457 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
11458 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
11459 (QUADOP_UNONE_UNONE_NONE_IMM_PRED_QUALIFIERS): ... this.
11460 (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
11461 (QUADOP_NONE_NONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
11462 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
11463 (QUADOP_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
11464 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
11465 (QUADOP_UNONE_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
11466 (STRS_P_QUALIFIERS): Use predicate qualifier.
11467 (STRU_P_QUALIFIERS): Likewise.
11468 (STRSU_P_QUALIFIERS): Likewise.
11469 (STRSS_P_QUALIFIERS): Likewise.
11470 (LDRGS_Z_QUALIFIERS): Likewise.
11471 (LDRGU_Z_QUALIFIERS): Likewise.
11472 (LDRS_Z_QUALIFIERS): Likewise.
11473 (LDRU_Z_QUALIFIERS): Likewise.
11474 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
11475 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
11476 (BINOP_NONE_NONE_PRED_QUALIFIERS): New.
11477 (BINOP_UNONE_UNONE_PRED_QUALIFIERS): New.
11478 * config/arm/arm_mve_builtins.def: Use new predicated qualifiers.
11479 * config/arm/mve.md: Use MVE_VPRED instead of HI.
11480
11481 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
11482
11483 PR target/100757
11484 PR target/101325
11485 * config/arm/arm-builtins.cc (BINOP_UNONE_NONE_NONE_QUALIFIERS):
11486 Delete.
11487 (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
11488 (TERNOP_PRED_NONE_NONE_PRED_QUALIFIERS): ... this.
11489 (TERNOP_PRED_UNONE_UNONE_PRED_QUALIFIERS): New.
11490 * config/arm/arm_mve_builtins.def (vcmp*q_n_, vcmp*q_m_f): Use new
11491 predicated qualifiers.
11492 * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_n_<mode>)
11493 (mve_vcmp*q_m_f<mode>): Use MVE_VPRED instead of HI.
11494
11495 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
11496
11497 PR target/100757
11498 * config/arm/arm-protos.h (arm_get_mask_mode): New prototype.
11499 (arm_expand_vector_compare): Update prototype.
11500 * config/arm/arm.cc (TARGET_VECTORIZE_GET_MASK_MODE): New.
11501 (arm_vector_mode_supported_p): Add support for VxBI modes.
11502 (arm_expand_vector_compare): Remove useless generation of vpsel.
11503 (arm_expand_vcond): Fix select operands.
11504 (arm_get_mask_mode): New.
11505 * config/arm/mve.md (vec_cmp<mode><MVE_vpred>): New.
11506 (vec_cmpu<mode><MVE_vpred>): New.
11507 (vcond_mask_<mode><MVE_vpred>): New.
11508 * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>)
11509 (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): Move to ...
11510 * config/arm/neon.md (vec_cmp<mode><v_cmp_result>)
11511 (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): ... here
11512 and disable for MVE.
11513 * doc/sourcebuild.texi (arm_mve): Document new effective-target.
11514
11515 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
11516
11517 PR target/100757
11518 PR target/101325
11519 * config/arm/arm-builtins.cc (BINOP_PRED_UNONE_UNONE_QUALIFIERS)
11520 (BINOP_PRED_NONE_NONE_QUALIFIERS)
11521 (TERNOP_NONE_NONE_NONE_PRED_QUALIFIERS)
11522 (TERNOP_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
11523 * config/arm/arm-protos.h (mve_bool_vec_to_const): New.
11524 * config/arm/arm.cc (arm_hard_regno_mode_ok): Handle new VxBI
11525 modes.
11526 (arm_mode_to_pred_mode): New.
11527 (arm_expand_vector_compare): Use the right VxBI mode instead of
11528 HI.
11529 (arm_expand_vcond): Likewise.
11530 (simd_valid_immediate): Handle MODE_VECTOR_BOOL.
11531 (mve_bool_vec_to_const): New.
11532 (neon_make_constant): Call mve_bool_vec_to_const when needed.
11533 * config/arm/arm_mve_builtins.def (vcmpneq_, vcmphiq_, vcmpcsq_)
11534 (vcmpltq_, vcmpleq_, vcmpgtq_, vcmpgeq_, vcmpeqq_, vcmpneq_f)
11535 (vcmpltq_f, vcmpleq_f, vcmpgtq_f, vcmpgeq_f, vcmpeqq_f, vpselq_u)
11536 (vpselq_s, vpselq_f): Use new predicated qualifiers.
11537 * config/arm/constraints.md (DB): New.
11538 * config/arm/iterators.md (MVE_7, MVE_7_HI): New mode iterators.
11539 (MVE_VPRED, MVE_vpred): New attribute iterators.
11540 * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>)
11541 (@mve_vcmp<mve_cmp_op>q_f<mode>, @mve_vpselq_<supf><mode>)
11542 (@mve_vpselq_f<mode>): Use MVE_VPRED instead of HI.
11543 (@mve_vpselq_<supf>v2di): Define separately.
11544 (mov<mode>): New expander for VxBI modes.
11545 * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Use
11546 MVE_7_HI iterator and add support for DB constraint.
11547
11548 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
11549 Richard Sandiford <richard.sandiford@arm.com>
11550
11551 PR target/100757
11552 PR target/101325
11553 * config/aarch64/aarch64-modes.def (VNx16BI, VNx8BI, VNx4BI,
11554 VNx2BI): Update definition.
11555 * config/arm/arm-builtins.cc (arm_init_simd_builtin_types): Add new
11556 simd types.
11557 (arm_init_builtin): Map predicate vectors arguments to HImode.
11558 (arm_expand_builtin_args): Move HImode predicate arguments to VxBI
11559 rtx. Move return value to HImode rtx.
11560 * config/arm/arm-builtins.h (arm_type_qualifiers): Add qualifier_predicate.
11561 * config/arm/arm-modes.def (B2I, B4I, V16BI, V8BI, V4BI): New modes.
11562 * config/arm/arm-simd-builtin-types.def (Pred1x16_t,
11563 Pred2x8_t,Pred4x4_t): New.
11564 * emit-rtl.cc (init_emit_once): Handle all boolean modes.
11565 * genmodes.cc (mode_data): Add boolean field.
11566 (blank_mode): Initialize it.
11567 (make_complex_modes): Fix handling of boolean modes.
11568 (make_vector_modes): Likewise.
11569 (VECTOR_BOOL_MODE): Use new COMPONENT parameter.
11570 (make_vector_bool_mode): Likewise.
11571 (BOOL_MODE): New.
11572 (make_bool_mode): New.
11573 (emit_insn_modes_h): Fix generation of boolean modes.
11574 (emit_class_narrowest_mode): Likewise.
11575 * machmode.def: (VECTOR_BOOL_MODE): Document new COMPONENT
11576 parameter. Use new BOOL_MODE instead of FRACTIONAL_INT_MODE to
11577 define BImode.
11578 * rtx-vector-builder.cc (rtx_vector_builder::find_cached_value):
11579 Fix handling of constm1_rtx for VECTOR_BOOL.
11580 * simplify-rtx.cc (native_encode_rtx): Fix support for VECTOR_BOOL.
11581 (native_decode_vector_rtx): Likewise.
11582 (test_vector_ops_duplicate): Skip vec_merge test
11583 with vectors of booleans.
11584 * varasm.cc (output_constant_pool_2): Likewise.
11585
11586 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
11587
11588 * config/arm/mve.md (mve_vmvnq_n_<supf><mode>): Use V_elem mode
11589 for operand 1.
11590
11591 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
11592
11593 * config/arm/arm.cc (arm_class_likely_spilled_p): Handle VPR_REG.
11594
11595 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
11596
11597 * config/arm/arm.h (reg_class): Add GENERAL_AND_VPR_REGS.
11598 (REG_CLASS_NAMES): Likewise.
11599 (REG_CLASS_CONTENTS): Likewise.
11600 (CLASS_MAX_NREGS): Handle VPR.
11601 * config/arm/arm.cc (arm_hard_regno_nregs): Handle VPR.
11602
11603 2022-02-22 Tobias Burnus <tobias@codesourcery.com>
11604 Tom de Vries <tdevries@suse.de>
11605
11606 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Handle SM70.
11607 * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm):
11608 Likewise.
11609 * config/nvptx/nvptx.opt (misa): Add sm_70 alias PTX_ISA_SM70.
11610
11611 2022-02-22 Tobias Burnus <tobias@codesourcery.com>
11612 Tom de Vries <tdevries@suse.de>
11613
11614 * config/nvptx/nvptx.opt (mptx): Add 6.0 alias PTX_VERSION_6_0.
11615 * doc/invoke.texi (-mptx): Update for new values and defaults.
11616
11617 2022-02-22 Tom de Vries <tdevries@suse.de>
11618
11619 * config/nvptx/nvptx.cc (gen_comment): New function.
11620 (workaround_uninit_method_1, workaround_uninit_method_2)
11621 (workaround_uninit_method_3): : Use gen_comment.
11622 * config/nvptx/nvptx.opt (mptx-comment): New option.
11623
11624 2022-02-22 Richard Biener <rguenther@suse.de>
11625
11626 * tree-vect-slp.cc (vect_build_slp_tree_2): Dump the def used
11627 for a splat.
11628
11629 2022-02-22 Roger Sayle <roger@nextmovesoftware.com>
11630 Richard Biener <rguenther@suse.de>
11631
11632 * fold-const.cc (ctor_single_nonzero_element): New function to
11633 return the single non-zero element of a (vector) constructor.
11634 * fold-const.h (ctor_single_nonzero_element): Prototype here.
11635 * match.pd (reduc (constructor@0)): Simplify reductions of a
11636 constructor containing a single non-zero element.
11637 (reduc (@0 op VECTOR_CST) -> (reduc @0) op CONST): Simplify
11638 reductions of vector operations of the same operator with
11639 constant vector operands.
11640
11641 2022-02-22 Jakub Jelinek <jakub@redhat.com>
11642
11643 PR tree-optimization/104604
11644 * gimple-range-fold.cc (adjust_imagpart_expr, adjust_realpart_expr):
11645 Only check if gimple_assign_rhs1 is COMPLEX_CST if
11646 gimple_assign_rhs_code is COMPLEX_CST.
11647
11648 2022-02-22 Jakub Jelinek <jakub@redhat.com>
11649
11650 PR target/104612
11651 * config/i386/i386-expand.cc (ix86_expand_copysign): Call force_reg
11652 on input operands before calling lowpart_subreg on it. For output
11653 operand, use a vmode pseudo as destination and then move its lowpart
11654 subreg into operands[0] if lowpart_subreg fails on dest.
11655 (ix86_expand_xorsign): Likewise.
11656
11657 2022-02-22 Richard Biener <rguenther@suse.de>
11658
11659 PR tree-optimization/104582
11660 PR target/99881
11661 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
11662 Cost GPR to vector register moves for integer vector construction.
11663
11664 2022-02-22 Richard Biener <rguenther@suse.de>
11665
11666 PR tree-optimization/104582
11667 * tree-vectorizer.h (stmt_info_for_cost::node): New field.
11668 (vector_costs::add_stmt_cost): Add SLP node parameter.
11669 (dump_stmt_cost): Likewise.
11670 (add_stmt_cost): Likewise, new overload and adjust.
11671 (add_stmt_costs): Adjust.
11672 (record_stmt_cost): New overload.
11673 * tree-vectorizer.cc (dump_stmt_cost): Dump the SLP node.
11674 (vector_costs::add_stmt_cost): Adjust.
11675 * tree-vect-loop.cc (vect_estimate_min_profitable_iters):
11676 Adjust.
11677 * tree-vect-slp.cc (vect_prologue_cost_for_slp): Record
11678 the SLP node for costing.
11679 (vectorizable_slp_permutation): Likewise.
11680 * tree-vect-stmts.cc (record_stmt_cost): Adjust and add
11681 new overloads.
11682 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
11683 Adjust.
11684 * config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost):
11685 Adjust.
11686 * config/rs6000/rs6000.cc (rs6000_vector_costs::add_stmt_cost):
11687 Adjust.
11688 (rs6000_cost_data::adjust_vect_cost_per_loop): Likewise.
11689
11690 2022-02-22 Richard Biener <rguenther@suse.de>
11691
11692 PR tree-optimization/104582
11693 * tree-vectorizer.h (add_stmt_cost): New overload.
11694 (record_stmt_cost): Likewise.
11695 * tree-vect-loop.cc (vect_compute_single_scalar_iteration_cost):
11696 Use add_stmt_costs.
11697 (vect_get_known_peeling_cost): Use new overloads.
11698 (vect_estimate_min_profitable_iters): Likewise. Consistently
11699 use scalar_stmt for costing versioning checks.
11700 * tree-vect-stmts.cc (record_stmt_cost): New overload.
11701
11702 2022-02-22 Hongyu Wang <hongyu.wang@intel.com>
11703
11704 PR target/103069
11705 * config/i386/i386-expand.cc (ix86_expand_atomic_fetch_op_loop):
11706 Split atomic fetch and loop part.
11707 (ix86_expand_cmpxchg_loop): New expander for cmpxchg loop.
11708 * config/i386/i386-protos.h (ix86_expand_cmpxchg_loop): New
11709 prototype.
11710 * config/i386/sync.md (atomic_compare_and_swap<mode>): Call new
11711 expander under TARGET_RELAX_CMPXCHG_LOOP.
11712 (atomic_compare_and_swap<mode>): Likewise for doubleword modes.
11713
11714 2022-02-21 Dan Li <ashimida@linux.alibaba.com>
11715
11716 * config/aarch64/aarch64.cc (SLOT_REQUIRED):
11717 Change wb_candidate[12] to wb_push_candidate[12].
11718 (aarch64_layout_frame): Likewise, and
11719 change callee_adjust when scs is enabled.
11720 (aarch64_save_callee_saves):
11721 Change wb_candidate[12] to wb_push_candidate[12].
11722 (aarch64_restore_callee_saves):
11723 Change wb_candidate[12] to wb_pop_candidate[12].
11724 (aarch64_get_separate_components):
11725 Change wb_candidate[12] to wb_push_candidate[12].
11726 (aarch64_expand_prologue): Push x30 onto SCS before it's
11727 pushed onto stack.
11728 (aarch64_expand_epilogue): Pop x30 frome SCS, while
11729 preventing it from being popped from the regular stack again.
11730 (aarch64_override_options_internal): Add SCS compile option check.
11731 (TARGET_HAVE_SHADOW_CALL_STACK): New hook.
11732 * config/aarch64/aarch64.h (struct GTY): Add is_scs_enabled,
11733 wb_pop_candidate[12], and rename wb_candidate[12] to
11734 wb_push_candidate[12].
11735 * config/aarch64/aarch64.md (scs_push): New template.
11736 (scs_pop): Likewise.
11737 * doc/invoke.texi: Document -fsanitize=shadow-call-stack.
11738 * doc/tm.texi: Regenerate.
11739 * doc/tm.texi.in: Add hook have_shadow_call_stack.
11740 * flag-types.h (enum sanitize_code):
11741 Add SANITIZE_SHADOW_CALL_STACK.
11742 * opts.cc (parse_sanitizer_options): Add shadow-call-stack
11743 and exclude SANITIZE_SHADOW_CALL_STACK.
11744 * target.def: New hook.
11745 * toplev.cc (process_options): Add SCS compile option check.
11746 * ubsan.cc (ubsan_expand_null_ifn): Enum type conversion.
11747
11748 2022-02-21 Tom de Vries <tdevries@suse.de>
11749
11750 PR target/104440
11751 * config/nvptx/nvptx.cc (workaround_uninit_method_1)
11752 (workaround_uninit_method_2, workaround_uninit_method_3)
11753 (workaround_uninit): New function.
11754 (nvptx_reorg): Use workaround_uninit.
11755 * config/nvptx/nvptx.opt (minit-regs): New option.
11756
11757 2022-02-21 Andre Vieira <andre.simoesdiasvieira@arm.com>
11758
11759 PR rtl-optimization/104498
11760 * alias.cc (compare_base_symbol_refs): Correct distance computation
11761 when swapping x and y.
11762
11763 2022-02-21 Andrew Pinski <apinski@marvell.com>
11764
11765 PR c/104506
11766 * tree-ssa.cc (tree_ssa_useless_type_conversion):
11767 Check the inner type before calling useless_type_conversion_p.
11768
11769 2022-02-19 Tom de Vries <tdevries@suse.de>
11770
11771 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle SET insn.
11772 * config/nvptx/nvptx.md
11773 (define_insn "nvptx_atomic_store<mode>"): Rename to ...
11774 (define_insn "nvptx_atomic_store_sm70<mode>"): This.
11775 (define_insn "nvptx_atomic_store<mode>"): New define_insn.
11776 (define_expand "atomic_store<mode>"): Handle rename. Use
11777 nvptx_atomic_store instead of atomic_exchange.
11778
11779 2022-02-19 Tom de Vries <tdevries@suse.de>
11780
11781 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle all
11782 insns with atomic attribute. Assert that all handled insns are
11783 PARALLELs.
11784 * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"):
11785 Set atomic attribute to false.
11786
11787 2022-02-19 Tom de Vries <tdevries@suse.de>
11788
11789 * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Change return
11790 type to bool.
11791 (nvptx_reorg_uniform_simt): Insert nvptx_uniform_warp_check or
11792 nvptx_warpsync, if necessary.
11793
11794 2022-02-19 Jakub Jelinek <jakub@redhat.com>
11795
11796 PR sanitizer/102656
11797 * asan.cc (instrument_derefs): If inner is a RESULT_DECL and access is
11798 known to be within bounds, treat it like automatic variables.
11799 If instrumenting access and inner is {VAR,PARM,RESULT}_DECL from
11800 current function and !TREE_STATIC which is not TREE_ADDRESSABLE, mark
11801 it addressable.
11802
11803 2022-02-18 Pat Haugen <pthaugen@linux.ibm.com>
11804
11805 * config/rs6000/rs6000.opt (mpower10-fusion): Mark Undocumented.
11806 (mpower10-fusion-ld-cmpi, mpower10-fusion-2logical,
11807 mpower10-fusion-logical-add, mpower10-fusion-add-logical,
11808 mpower10-fusion-2add, mpower10-fusion-2store): Remove.
11809 * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER,
11810 OTHER_P9_VECTOR_MASKS): Remove Power10 fusion sub-options.
11811 * config/rs6000/rs6000.cc (rs6000_option_override_internal,
11812 power10_sched_reorder): Likewise.
11813 * config/rs6000/genfusion.pl (gen_ld_cmpi_p10, gen_logical_addsubf,
11814 gen_addadd): Likewise
11815 * config/rs6000/fusion.md: Regenerate.
11816
11817 2022-02-18 Jakub Jelinek <jakub@redhat.com>
11818
11819 PR target/104257
11820 PR target/104598
11821 * config/rs6000/mm_malloc.h (_mm_malloc): Call posix_memalign
11822 rather than __posix_memalign.
11823
11824 2022-02-18 Richard Biener <rguenther@suse.de>
11825
11826 PR target/104581
11827 * config/i386/i386.cc (ix86_avx_u128_mode_source): Remove.
11828 (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY instead
11829 of calling ix86_avx_u128_mode_source which would eventually
11830 have returned AVX_U128_ANY in some very special case.
11831
11832 2022-02-18 Richard Biener <rguenther@suse.de>
11833
11834 PR tree-optimization/96881
11835 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Comment
11836 CLOBBER handling.
11837 (control_parents_preserved_p): New function.
11838 (eliminate_unnecessary_stmts): Check that we preserved control
11839 parents before retaining a CLOBBER.
11840 (perform_tree_ssa_dce): Pass down aggressive flag
11841 to eliminate_unnecessary_stmts.
11842
11843 2022-02-17 Jason Merrill <jason@redhat.com>
11844
11845 * tree.cc (warn_deprecated_use): Look for TYPE_STUB_DECL
11846 on TYPE_MAIN_VARIANT.
11847
11848 2022-02-17 Paul A. Clarke <pc@us.ibm.com>
11849
11850 PR target/104257
11851 * config/rs6000/bmi2intrin.h: Uglify local variables.
11852 * config/rs6000/emmintrin.h: Likewise.
11853 * config/rs6000/mm_malloc.h: Likewise.
11854 * config/rs6000/mmintrin.h: Likewise.
11855 * config/rs6000/pmmintrin.h: Likewise.
11856 * config/rs6000/smmintrin.h: Likewise.
11857 * config/rs6000/tmmintrin.h: Likewise.
11858 * config/rs6000/xmmintrin.h: Likewise.
11859
11860 2022-02-17 Robin Dapp <rdapp@linux.ibm.com>
11861
11862 PR target/104335
11863 * config/rs6000/rs6000.cc (rs6000_emit_int_cmove): Return false
11864 if the expected comparison's first operand is of mode MODE_CC.
11865
11866 2022-02-17 Vladimir N. Makarov <vmakarov@redhat.com>
11867
11868 PR rtl-optimization/104447
11869 * lra-constraints.cc (spill_hard_reg_in_range): Initiate ignore
11870 hard reg set by lra_no_alloc_regs.
11871
11872 2022-02-17 liuhongt <hongtao.liu@intel.com>
11873
11874 PR tree-optimization/104551
11875 PR tree-optimization/103771
11876 * match.pd (cond_expr_convert_p): Add types_match check when
11877 convert is extension.
11878 * tree-vect-patterns.cc
11879 (gimple_cond_expr_convert_p): Adjust comments.
11880 (vect_recog_cond_expr_convert_pattern): Ditto.
11881
11882 2022-02-17 Jakub Jelinek <jakub@redhat.com>
11883
11884 PR debug/104557
11885 * valtrack.cc (debug_lowpart_subreg): Don't call gen_rtx_raw_SUBREG
11886 if expr has VOIDmode.
11887
11888 2022-02-17 liuhongt <hongtao.liu@intel.com>
11889
11890 * config/i386/cpuid.h (bit_MPX): Removed.
11891 (bit_BNDREGS): Ditto.
11892 (bit_BNDCSR): Ditto.
11893
11894 2022-02-17 Michael Meissner <meissner@the-meissners.org>
11895
11896 PR target/99708
11897 * config/rs6000/rs6000-c.cc (rs6000_cpu_cpp_builtins): Define
11898 __SIZEOF_IBM128__ if the IBM 128-bit long double type is created.
11899 Define __SIZEOF_FLOAT128__ if the IEEE 128-bit floating point type
11900 is created.
11901
11902 2022-02-16 Andrew MacLeod <amacleod@redhat.com>
11903
11904 * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use
11905 range_compatible_p instead of direct type comparison.
11906
11907 2022-02-16 Jakub Jelinek <jakub@redhat.com>
11908
11909 PR rtl-optimization/104544
11910 * combine.cc (try_combine): When looking for insn whose links
11911 should be updated from i3 to i2, don't stop on debug insns, instead
11912 skip over them.
11913
11914 2022-02-16 Richard Sandiford <richard.sandiford@arm.com>
11915
11916 PR target/100056
11917 * config/aarch64/iterators.md (LOGICAL_OR_PLUS): New iterator.
11918 * config/aarch64/aarch64.md: Extend the PR100056 patterns
11919 to handle plus in the same way as ior, if the operands have
11920 no set bits in common.
11921
11922 2022-02-15 Andrew MacLeod <amacleod@redhat.com>
11923
11924 PR tree-optimization/104526
11925 * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Call
11926 new routine.
11927 * gimple-range-gori.cc (range_def_chain::get_def_chain): Force a build
11928 of dependency chain if there isn't one.
11929 (gori_compute::condexpr_adjust): New.
11930 * gimple-range-gori.h (class gori_compute): New prototype.
11931
11932 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
11933
11934 PR target/100874
11935 * config/aarch64/aarch64-protos.h (aarch64_maxmin_plus_const):
11936 Declare.
11937 * config/aarch64/aarch64.cc (aarch64_maxmin_plus_const): New function.
11938 * config/aarch64/aarch64.md (*aarch64_minmax_plus): New pattern.
11939
11940 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
11941
11942 * tree-vectorizer.h (vect_scalar_ops_slice): New struct.
11943 (vect_scalar_ops_slice_hash): Likewise.
11944 (vect_scalar_ops_slice::op): New function.
11945 * tree-vect-slp.cc (vect_scalar_ops_slice::all_same_p): New function.
11946 (vect_scalar_ops_slice_hash::hash): Likewise.
11947 (vect_scalar_ops_slice_hash::equal): Likewise.
11948 (vect_prologue_cost_for_slp): Check for duplicate vectors.
11949 * config/aarch64/aarch64.cc
11950 (aarch64_vector_costs::m_stp_sequence_cost): New member variable.
11951 (aarch64_aligned_constant_offset_p): New function.
11952 (aarch64_stp_sequence_cost): Likewise.
11953 (aarch64_vector_costs::add_stmt_cost): Handle new STP heuristic.
11954 (aarch64_vector_costs::finish_cost): Likewise.
11955
11956 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
11957
11958 * tree-vect-slp.cc (vect_bb_vectorization_profitable_p): Fix
11959 use after free.
11960
11961 2022-02-15 Richard Biener <rguenther@suse.de>
11962
11963 PR tree-optimization/104543
11964 * gimple-loop-jam.cc (unroll_jam_possible_p): Check outer loop exits
11965 come after the inner loop.
11966
11967 2022-02-15 Jakub Jelinek <jakub@redhat.com>
11968
11969 PR target/104536
11970 * config/i386/host-cygwin.cc (cygwin_gt_pch_get_address): Use
11971 cannot instead of can%'t in diagnostics. Formatting fixes.
11972
11973 2022-02-15 Jakub Jelinek <jakub@redhat.com>
11974
11975 PR middle-end/104522
11976 * fold-const.h (native_interpret_real): Declare.
11977 * fold-const.cc (native_interpret_real): No longer static. Don't
11978 perform MODE_COMPOSITE_P verification here.
11979 (native_interpret_expr) <case REAL_TYPE>: But perform it here instead
11980 for all modes.
11981 * gimple-fold.cc (clear_padding_type): Call native_interpret_real
11982 instead of native_interpret_expr.
11983 * simplify-rtx.cc (simplify_immed_subreg): Perform the native_encode_rtx
11984 and comparison verification for all FLOAT_MODE_P modes, not just
11985 MODE_COMPOSITE_P.
11986
11987 2022-02-15 Richard Biener <rguenther@suse.de>
11988
11989 PR tree-optimization/104519
11990 * fold-const.cc (multiple_of_p): Remove never true condition.
11991 * tree-ssa-loop-niter.cc (number_of_iterations_ne): Use
11992 the appropriate types for determining whether the difference
11993 of final and base is a multiple of the step.
11994
11995 2022-02-15 Jakub Jelinek <jakub@redhat.com>
11996
11997 PR debug/104517
11998 * omp-low.cc (task_cpyfns): New variable.
11999 (delete_omp_context): Don't call finalize_task_copyfn from here.
12000 (create_task_copyfn): Push task_stmt into task_cpyfns.
12001 (execute_lower_omp): Call finalize_task_copyfn here on entries from
12002 task_cpyfns vector and release the vector.
12003
12004 2022-02-14 Martin Sebor <msebor@redhat.com>
12005
12006 PR middle-end/104355
12007 * doc/invoke.texi (-Warray-bounds): Update documentation.
12008
12009 2022-02-14 Michael Meissner <meissner@the-meissners.org>
12010
12011 PR target/104253
12012 * config/rs6000/rs6000.cc (init_float128_ibm): Update the
12013 conversion functions used to convert IFmode types.
12014
12015 2022-02-14 Andrew Stubbs <ams@codesourcery.com>
12016
12017 * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Use force_reg.
12018
12019 2022-02-14 Richard Biener <rguenther@suse.de>
12020
12021 PR tree-optimization/104528
12022 * tree-ssa.h (find_released_ssa_name): Declare.
12023 * tree-ssa.cc (find_released_ssa_name): Export.
12024 * cfgloop.cc (verify_loop_structure): Look for released
12025 SSA names in loops nb_iterations.
12026 * tree-ssa-dse.cc (pass_dse::execute): Release number of iteration
12027 estimates.
12028
12029 2022-02-14 Richard Biener <rguenther@suse.de>
12030
12031 PR tree-optimization/104511
12032 * tree-ssa-forwprop.cc (simplify_vector_constructor): Avoid
12033 touching DFP <-> FP conversions.
12034
12035 2022-02-14 Richard Biener <rguenther@suse.de>
12036
12037 PR middle-end/104497
12038 * gimplify.cc (gimplify_compound_lval): Make sure the
12039 base is a non-register if needed and possible.
12040
12041 2022-02-13 liuhongt <hongtao.liu@intel.com>
12042
12043 PR target/103771
12044 * match.pd (cond_expr_convert_p): New match.
12045 * tree-vect-patterns.cc (gimple_cond_expr_convert_p): Declare.
12046 (vect_recog_cond_expr_convert_pattern): New.
12047
12048 2022-02-12 Jakub Jelinek <jakub@redhat.com>
12049
12050 PR sanitizer/104449
12051 * asan.cc: Include tree-eh.h.
12052 (handle_builtin_alloca): Handle the case when __builtin_alloca or
12053 __builtin_alloca_with_align can throw.
12054
12055 2022-02-12 Jakub Jelinek <jakub@redhat.com>
12056
12057 PR target/104502
12058 * config/i386/i386.md (cvtsd2ss splitter): If operands[1] is xmm16+
12059 and AVX512VL isn't available, move operands[1] to operands[0] first.
12060
12061 2022-02-12 Uroš Bizjak <ubizjak@gmail.com>
12062
12063 PR target/79754
12064 * config/i386/i386.cc (type_natural_mode):
12065 Skip decimal float vector modes.
12066
12067 2022-02-11 Iain Sandoe <iain@sandoe.co.uk>
12068 Vladimir Makarov <vmakarov@redhat.com>
12069
12070 PR target/104117
12071 * config/rs6000/rs6000.cc (darwin_rs6000_legitimate_lo_sum_const_p):
12072 Check for UNSPEC_MACHOPIC_OFFSET wrappers on symbolic addresses when
12073 emitting PIC code.
12074 (legitimate_lo_sum_address_p): Likewise.
12075 * lra-constraints.cc (process_address_1): Do not attempt to emit a reg
12076 load from an invalid lo_sum address.
12077
12078 2022-02-11 Jakub Jelinek <jakub@redhat.com>
12079
12080 PR tree-optimization/104499
12081 * match.pd ((X & Y) CMP 0 -> X CMP2 ~Y): Use view_convert instead
12082 of convert.
12083
12084 2022-02-11 Jakub Jelinek <jakub@redhat.com>
12085
12086 * tree.cc (build_common_builtin_nodes): Fix up formatting in
12087 __builtin_clear_padding decl creation.
12088 * gimplify.cc (gimple_add_padding_init_for_auto_var): Encode
12089 for_auto_init in the value of 2nd BUILT_IN_CLEAR_PADDING
12090 argument rather than in 3rd argument.
12091 (gimplify_call_expr): Likewise. Fix up comment formatting.
12092 * gimple-fold.cc (gimple_fold_builtin_clear_padding): Expect
12093 2 arguments instead of 3, take for_auto_init from the value
12094 of 2nd argument.
12095
12096 2022-02-11 Vladimir N. Makarov <vmakarov@redhat.com>
12097
12098 PR rtl-optimization/104400
12099 * lra-constraints.cc (process_alt_operands): Don't make union of
12100 this_alternative_exclude_start_hard_regs when reg class in insn
12101 alternative covers other reg classes in the same alternative.
12102
12103 2022-02-11 Jakub Jelinek <jakub@redhat.com>
12104
12105 PR middle-end/104446
12106 * combine.cc (subst): Don't substitute CONST_INTs into RTX_AUTOINC
12107 operands.
12108
12109 2022-02-11 Richard Biener <rguenther@suse.de>
12110
12111 PR middle-end/104496
12112 * internal-fn.cc (vectorized_internal_fn_supported_p):
12113 Bail out for integer mode vector types.
12114
12115 2022-02-11 Jakub Jelinek <jakub@redhat.com>
12116
12117 PR rtl-optimization/104459
12118 * df-scan.cc (df_insn_change_bb): Don't call df_set_bb_dirty when
12119 moving DEBUG_INSNs between bbs.
12120
12121 2022-02-11 liuhongt <hongtao.liu@intel.com>
12122
12123 PR tree-optimization/104479
12124 * match.pd (uncond_op + vec_cond -> cond_op): Add single_use
12125 for the dest of uncond_op.
12126
12127 2022-02-11 Tom de Vries <tdevries@suse.de>
12128
12129 PR target/104456
12130 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle asm
12131 insn.
12132
12133 2022-02-10 Qing Zhao <qing.zhao@oracle.com>
12134
12135 PR middle-end/100775
12136 * function.cc (gen_call_used_regs_seq): Call
12137 df_update_exit_block_uses when updating df.
12138
12139 2022-02-10 Uroš Bizjak <ubizjak@gmail.com>
12140
12141 PR target/104469
12142 * config/i386/sse.md (vec_unpacks_float_lo_v4si):
12143 Change operand 1 constraint to register_operand.
12144
12145 2022-02-10 Richard Biener <rguenther@suse.de>
12146
12147 PR tree-optimization/104373
12148 * tree-ssa-sccvn.h (do_rpo_vn): New export exposing the
12149 walk kind.
12150 * tree-ssa-sccvn.cc (do_rpo_vn): Export, get the default
12151 walk kind as argument.
12152 (run_rpo_vn): Adjust.
12153 (pass_fre::execute): Likewise.
12154 * tree-ssa-uninit.cc (warn_uninitialized_vars): Skip
12155 blocks not reachable.
12156 (execute_late_warn_uninitialized): Mark all edges as
12157 executable.
12158 (execute_early_warn_uninitialized): Use VN to compute
12159 executable edges.
12160 (pass_data_early_warn_uninitialized): Enable a dump file,
12161 change dump name to warn_uninit.
12162
12163 2022-02-10 Richard Biener <rguenther@suse.de>
12164
12165 PR middle-end/104467
12166 * match.pd (vector extract simplification): Multiply the
12167 number of CTOR elements with the number of element elements.
12168
12169 2022-02-10 Richard Biener <rguenther@suse.de>
12170
12171 PR tree-optimization/104466
12172 * tree-ssa-alias.cc (refs_may_alias_p_2): Use rbase1/rbase2
12173 for the MR_DEPENDENCE checks as intended.
12174
12175 2022-02-10 Tom de Vries <tdevries@suse.de>
12176
12177 * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"): New
12178 define_insn.
12179 (define_expand "atomic_store<mode>"): Use nvptx_atomic_store<mode> for
12180 TARGET_SM70.
12181 (define_c_enum "unspecv"): Add UNSPECV_ST.
12182
12183 2022-02-10 Tom de Vries <tdevries@suse.de>
12184
12185 * config/nvptx/nvptx-protos.h (nvptx_mem_maybe_shared_p): Declare.
12186 * config/nvptx/nvptx.cc (nvptx_mem_data_area): New static function.
12187 (nvptx_mem_maybe_shared_p): New function.
12188 * config/nvptx/nvptx.md (define_expand "atomic_store<mode>"): New
12189 define_expand.
12190
12191 2022-02-10 Tom de Vries <tdevries@suse.de>
12192
12193 PR target/97005
12194 * config/nvptx/nvptx.md (define_insn "sub<mode>3"): Workaround
12195 driver JIT bug by using sub.s16 instead of sub.u16.
12196
12197 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
12198
12199 * config/nvptx/nvptx.md (copysign<mode>3): Allow immediate
12200 floating point constants as operands 1 and/or 2.
12201
12202 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
12203
12204 PR target/104345
12205 * config/nvptx/nvptx.md (sel_true<mode>): Fix indentation.
12206 (sel_false<mode>): Likewise.
12207 (define_code_iterator eqne): New code iterator for EQ and NE.
12208 (*selp<mode>_neg_<code>): New define_insn_and_split to optimize
12209 the negation of a selp instruction.
12210 (*selp<mode>_not_<code>): New define_insn_and_split to optimize
12211 the bitwise not of a selp instruction.
12212 (*setcc_int<mode>): Use set instruction for neg:SI of a selp.
12213
12214 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
12215
12216 * config/nvptx/nvptx.md (any_logic): Move code iterator earlier
12217 in machine description.
12218 (logic): Move code attribute earlier in machine description.
12219 (ilogic): New code attribute, like logic but "ior" for IOR.
12220 (and<mode>3, ior<mode>3, xor<mode>3): Delete. Replace with...
12221 (<ilogic><mode>3): New define_insn for HSDIM logic operations.
12222 (<ilogic>bi3): New define_insn for BI mode logic operations.
12223 (define_split): Lower logic operations from integer modes to
12224 BI mode predicate operations.
12225
12226 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
12227
12228 * config/nvptx/nvptx.md (UNSPEC_ISINF): New UNSPEC.
12229 (one_cmplbi2): New define_insn for not.pred.
12230 (mulditi3): New define_expand for signed widening multiply.
12231 (umulditi3): New define_expand for unsigned widening multiply.
12232 (smul<mode>3_highpart): New define_insn for signed highpart mult.
12233 (umul<mode>3_highpart): New define_insn for unsigned highpart mult.
12234 (*smulhi3_highpart_2): Renamed from smulhi3_highpart.
12235 (*smulsi3_highpart_2): Renamed from smulsi3_highpart.
12236 (*umulhi3_highpart_2): Renamed from umulhi3_highpart.
12237 (*umulsi3_highpart_2): Renamed from umulsi3_highpart.
12238 (*setcc<mode>_from_not_bi): New define_insn.
12239 (*setcc_isinf<mode>): New define_insn for testp.infinite.
12240 (isinf<mode>2): New define_expand.
12241
12242 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
12243
12244 * config/nvptx/nvptx.md (cmp<mode>): Renamed from *cmp<mode>.
12245 (setcc<mode>_from_bi): Additionally support QImode.
12246 (extendbi<mode>2): Additionally support QImode.
12247 (zero_extendbi<mode>2): Additionally support QImode.
12248 (any_sbinary, any_ubinary, any_sunary, any_uunary): New code
12249 iterators for signed and unsigned, binary and unary operations.
12250 (<sbinary>qi3, <ubinary>qi3, <sunary>qi2, <uunary>qi2): New
12251 expanders to perform QImode operations using SImode instructions.
12252 (cstoreqi4): New define_expand.
12253 (*ext_truncsi2_qi): New define_insn.
12254 (*zext_truncsi2_qi): New define_insn.
12255
12256 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
12257
12258 * config/nvptx/nvptx.md (*cmpf): New define_insn.
12259 (cstorehf4): New define_expand.
12260 (fmahf4): New define_insn.
12261 (neghf2): New define_insn.
12262 (abshf2): New define_insn.
12263
12264 2022-02-10 Gerald Pfeifer <gerald@pfeifer.com>
12265
12266 * doc/install.texi (Specific): Change the www.bitwizard.nl
12267 reference to use https.
12268
12269 2022-02-10 Marcel Vollweiler <marcel@codesourcery.com>
12270
12271 * gimplify.cc (gimplify_scan_omp_clauses): Added cases for
12272 OMP_CLAUSE_HAS_DEVICE_ADDR
12273 and handle array sections.
12274 (gimplify_adjust_omp_clauses): Added OMP_CLAUSE_HAS_DEVICE_ADDR case.
12275 * omp-low.cc (scan_sharing_clauses): Handle OMP_CLAUSE_HAS_DEVICE_ADDR.
12276 (lower_omp_target): Same.
12277 * tree-core.h (enum omp_clause_code): Same.
12278 * tree-nested.cc (convert_nonlocal_omp_clauses): Same.
12279 (convert_local_omp_clauses): Same.
12280 * tree-pretty-print.cc (dump_omp_clause): Same.
12281 * tree.cc: Same.
12282
12283 2022-02-10 Eugene Rozenfeld <erozen@microsoft.com>
12284
12285 * auto-profile.cc (afdo_indirect_call): Don't attempt to promote indirect calls
12286 that will result in direct recursive calls.
12287
12288 2022-02-10 Andrew Pinski <apinski@marvell.com>
12289
12290 PR target/104474
12291 * config/aarch64/aarch64.cc
12292 (aarch64_sve_expand_vector_init_handle_trailing_constants):
12293 Use CONST0_RTX instead of const0_rtx for the non-constant elements.
12294
12295 2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
12296
12297 PR target/104462
12298 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_XSAVE_UNSET):
12299 Also include OPTION_MASK_ISA2_AVX2_UNSET.
12300
12301 2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
12302
12303 PR target/104458
12304 * config/i386/i386-expand.cc (ix86_split_idivmod):
12305 Force operands[2] and operands[3] into a register..
12306
12307 2022-02-09 Jeff Law <jeffreyalaw@gmail.com>
12308
12309 PR target/97040
12310 * config/v850/v850.md (*v850_fnmasf4): Renamed from fnmasf4.
12311 (*v850_fnmssf4): Renamed from fnmssf4
12312
12313 2022-02-09 Ian Lance Taylor <iant@golang.org>
12314
12315 * godump.cc (go_force_record_alignment): Really name the alignment
12316 field "_" (complete 2021-12-29 change).
12317
12318 2022-02-09 Bill Schmidt <wschmidt@linux.ibm.com>
12319
12320 * config/rs6000/rs6000-builtins.def (VREPLACE_UN_UV2DI): Change
12321 function prototype.
12322 (VREPLACE_UN_UV4SI): Likewise.
12323 (VREPLACE_UN_V2DF): Likewise.
12324 (VREPLACE_UN_V2DI): Likewise.
12325 (VREPLACE_UN_V4SF): Likewise.
12326 (VREPLACE_UN_V4SI): Likewise.
12327 * config/rs6000/rs6000-overload.def (VEC_REPLACE_UN): Change all
12328 function prototypes.
12329 * config/rs6000/vsx.md (vreplace_un_<mode>): Remove define_expand.
12330 (vreplace_un_<mode>): New define_insn.
12331
12332 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
12333
12334 * config/aarch64/iterators.md (VDCSIF): New mode iterator.
12335 (VDBL): Handle SF.
12336 (single_wx, single_type, single_dtype, dblq): New mode attributes.
12337 * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Extend
12338 from VDC to VDCSIF.
12339 (store_pair_lanes<mode>): Likewise.
12340 (*aarch64_combine_internal<mode>): Likewise.
12341 (*aarch64_combine_internal_be<mode>): Likewise.
12342 (*aarch64_combinez<mode>): Likewise.
12343 (*aarch64_combinez_be<mode>): Likewise.
12344 * config/aarch64/aarch64.cc (aarch64_classify_address): Handle
12345 8-byte modes for ADDR_QUERY_LDP_STP_N.
12346 (aarch64_print_operand): Likewise for %y.
12347
12348 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
12349
12350 * config/aarch64/aarch64-simd.md (@aarch64_split_simd_mov<mode>):
12351 Use aarch64_combine instead of move_lo/hi_quad. Tabify.
12352 (move_lo_quad_<mode>, aarch64_simd_move_hi_quad_<mode>): Delete.
12353 (aarch64_simd_move_hi_quad_be_<mode>, move_hi_quad_<mode>): Delete.
12354 (vec_pack_trunc_<mode>): Take general_operand elements and use
12355 aarch64_combine rather than move_lo/hi_quad to combine them.
12356 (vec_pack_trunc_df): Likewise.
12357
12358 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
12359
12360 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine):
12361 Delete.
12362 * config/aarch64/aarch64-simd.md (@aarch64_combinez<mode>): Rename
12363 to...
12364 (*aarch64_combinez<mode>): ...this.
12365 (@aarch64_combinez_be<mode>): Rename to...
12366 (*aarch64_combinez_be<mode>): ...this.
12367 (@aarch64_vec_concat<mode>): New expander.
12368 (aarch64_combine<mode>): Use it.
12369 (@aarch64_simd_combine<mode>): Delete.
12370 * config/aarch64/aarch64.cc (aarch64_split_simd_combine): Delete.
12371 (aarch64_expand_vector_init): Use aarch64_vec_concat.
12372
12373 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
12374
12375 * config/aarch64/predicates.md (aarch64_reg_or_mem_pair_operand):
12376 New predicate.
12377 * config/aarch64/aarch64-simd.md (*aarch64_combine_internal<mode>)
12378 (*aarch64_combine_internal_be<mode>): New patterns.
12379
12380 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
12381
12382 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>)
12383 (move_lo_quad_internal_be_<mode>): Delete.
12384 (move_lo_quad_<mode>): Use aarch64_combine<Vhalf> instead of the above.
12385
12386 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
12387
12388 * config/aarch64/aarch64-protos.h (aarch64_mergeable_load_pair_p):
12389 Declare.
12390 * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Use
12391 aarch64_mergeable_load_pair_p instead of inline check.
12392 * config/aarch64/aarch64.cc (aarch64_expand_vector_init): Likewise.
12393 (aarch64_check_consecutive_mems): Allow the reversed parameter
12394 to be null.
12395 (aarch64_mergeable_load_pair_p): New function.
12396
12397 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
12398
12399 * config/aarch64/aarch64-simd.md (vec_set<mode>): Allow the
12400 element to be an aarch64_simd_nonimmediate_operand.
12401
12402 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
12403
12404 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
12405 aarch64_simd_nonimmediate_operand instead of
12406 aarch64_simd_general_operand.
12407 (@aarch64_combinez<mode>): Use nonimmediate_operand instead of
12408 general_operand.
12409 (@aarch64_combinez_be<mode>): Likewise.
12410
12411 2022-02-09 Richard Biener <rguenther@suse.de>
12412
12413 PR middle-end/104464
12414 * gimple-isel.cc (gimple_expand_vec_cond_expr): Postpone
12415 throwing check to after unproblematic replacement.
12416
12417 2022-02-09 Roger Sayle <roger@nextmovesoftware.com>
12418
12419 PR tree-optimization/104420
12420 * match.pd (mult @0 real_zerop): Tweak conditions for constant
12421 folding X*0.0 (or X*-0.0) to HONOR_SIGNED_ZEROS when appropriate.
12422
12423 2022-02-09 Jakub Jelinek <jakub@redhat.com>
12424
12425 PR debug/104407
12426 * dwarf2out.cc (mangle_referenced_decls): New function.
12427 (tree_add_const_value_attribute): Don't call rtl_for_decl_init if
12428 early_dwarf. Instead walk the initializer and try to mangle vars or
12429 functions referenced from it.
12430
12431 2022-02-09 Andrew MacLeod <amacleod@redhat.com>
12432
12433 PR tree-optimization/104288
12434 * gimple-range-cache.cc (non_null_ref::set_nonnull): New.
12435 (non_null_ref::adjust_range): Move to header.
12436 (ranger_cache::range_of_def): Don't check non-null.
12437 (ranger_cache::entry_range): Don't check non-null.
12438 (ranger_cache::range_on_edge): Check for nonnull on normal edges.
12439 (ranger_cache::update_to_nonnull): New.
12440 (non_null_loadstore): New.
12441 (ranger_cache::block_apply_nonnull): New.
12442 * gimple-range-cache.h (class non_null_ref): Update prototypes.
12443 (non_null_ref::adjust_range): Move to here and inline.
12444 (class ranger_cache): Update prototypes.
12445 * gimple-range-path.cc (path_range_query::range_defined_in_block): Do
12446 not search dominators.
12447 (path_range_query::adjust_for_non_null_uses): Ditto.
12448 * gimple-range.cc (gimple_ranger::range_of_expr): Check on-entry for
12449 def overrides. Do not check nonnull.
12450 (gimple_ranger::range_on_entry): Check dominators for nonnull.
12451 (gimple_ranger::range_on_edge): Check for nonnull on normal edges..
12452 (gimple_ranger::register_side_effects): New.
12453 * gimple-range.h (gimple_ranger::register_side_effects): New.
12454 * tree-vrp.cc (rvrp_folder::fold_stmt): Call register_side_effects.
12455
12456 2022-02-09 Richard Biener <rguenther@suse.de>
12457
12458 PR tree-optimization/104445
12459 PR tree-optimization/102832
12460 * optabs-query.h (can_vec_extract): New.
12461 * optabs-query.cc (can_vec_extract): Likewise.
12462 * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
12463 we can extract a hi/lo part from the larger vector, rework
12464 check iteration from larger to smaller sizes.
12465
12466 2022-02-09 H.J. Lu <hjl.tools@gmail.com>
12467
12468 PR target/35513
12469 PR target/100593
12470 * config/i386/gnu-property.cc: Include "i386-protos.h".
12471 (file_end_indicate_exec_stack_and_gnu_property): Generate
12472 a GNU_PROPERTY_1_NEEDED note for -mno-direct-extern-access or
12473 nodirect_extern_access attribute.
12474 * config/i386/i386-options.cc
12475 (handle_nodirect_extern_access_attribute): New function.
12476 (ix86_attribute_table): Add nodirect_extern_access attribute.
12477 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): Add a
12478 bool argument.
12479 (ix86_has_no_direct_extern_access): New.
12480 * config/i386/i386.cc (ix86_has_no_direct_extern_access): New.
12481 (ix86_force_load_from_GOT_p): Add a bool argument to indicate
12482 call operand. Force non-call load from GOT for
12483 -mno-direct-extern-access or nodirect_extern_access attribute.
12484 (legitimate_pic_address_disp_p): Avoid copy relocation in PIE
12485 for -mno-direct-extern-access or nodirect_extern_access attribute.
12486 (ix86_print_operand): Pass true to ix86_force_load_from_GOT_p
12487 for call operand.
12488 (asm_preferred_eh_data_format): Use PC-relative format for
12489 -mno-direct-extern-access to avoid copy relocation. Check
12490 ptr_mode instead of TARGET_64BIT when selecting DW_EH_PE_sdata4.
12491 (ix86_binds_local_p): Set ix86_has_no_direct_extern_access to
12492 true for -mno-direct-extern-access or nodirect_extern_access
12493 attribute. Don't treat protected data as extern and avoid copy
12494 relocation on common symbol with -mno-direct-extern-access or
12495 nodirect_extern_access attribute.
12496 (ix86_reloc_rw_mask): New to avoid copy relocation for
12497 -mno-direct-extern-access.
12498 (TARGET_ASM_RELOC_RW_MASK): New.
12499 * config/i386/i386.opt: Add -mdirect-extern-access.
12500 * doc/extend.texi: Document nodirect_extern_access attribute.
12501 * doc/invoke.texi: Document -m[no-]direct-extern-access.
12502
12503 2022-02-09 H.J. Lu <hjl.tools@gmail.com>
12504
12505 PR target/104441
12506 * config/i386/i386.cc (ix86_avx_u128_mode_source): New function.
12507 (ix86_avx_u128_mode_needed): Return AVX_U128_ANY for debug INSN.
12508 Call ix86_avx_u128_mode_source to check mode for each component
12509 of source operand.
12510
12511 2022-02-09 liuhongt <hongtao.liu@intel.com>
12512
12513 PR target/104451
12514 * config/i386/sse.md (<insn><mode>3): lowpart_subreg
12515 operands[2] from SImode to QImode.
12516
12517 2022-02-09 Richard Biener <rguenther@suse.de>
12518
12519 PR middle-end/104450
12520 * gimple-isel.cc: Pass cfun around.
12521 (+gimple_expand_vec_cond_expr): Do not combine a throwing
12522 comparison with the select.
12523
12524 2022-02-09 Richard Biener <rguenther@suse.de>
12525
12526 PR target/104453
12527 * config/i386/i386.cc (ix86_gimple_fold_builtin): Guard shift
12528 folding for NULL LHS.
12529
12530 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
12531
12532 PR rtl-optimization/104198
12533 PR rtl-optimization/104153
12534 * ifcvt.cc (noce_convert_multiple_sets_1): Copy rtx instead of
12535 using it directly. Rework comparison handling and always
12536 perform a second pass.
12537
12538 2022-02-08 Jakub Jelinek <jakub@redhat.com>
12539
12540 PR target/102140
12541 * config/rs6000/rs6000.cc (vspltis_shifted): Return false also if
12542 split1 pass has finished already.
12543
12544 2022-02-08 Bill Schmidt <wschmidt@linux.ibm.com>
12545
12546 * config/rs6000/rs6000-builtins.def (VMSUMCUD): New.
12547 * config/rs6000/rs6000-overload.def (VEC_MSUMC): New.
12548 * config/rs6000/vsx.md (UNSPEC_VMSUMCUD): New constant.
12549 (vmsumcud): New define_insn.
12550
12551 2022-02-08 Tom de Vries <tdevries@suse.de>
12552
12553 * config/nvptx/nvptx-opts.h (enum ptx_isa): Add PTX_ISA_SM70.
12554 * config/nvptx/nvptx.h (TARGET_SM70): Define.
12555
12556 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
12557
12558 * config/s390/s390.cc (s390_rtx_costs): Increase costs for load
12559 on condition.
12560 * config/s390/s390.md: Use paradoxical subreg.
12561
12562 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
12563
12564 * combine.cc (reg_subword_p): Check for paradoxical subreg.
12565
12566 2022-02-08 Tom de Vries <tdevries@suse.de>
12567
12568 PR target/104283
12569 * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_3_0
12570 and PTX_VERSION_4_2.
12571 * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm)
12572 (default_ptx_version_option, ptx_version_to_string)
12573 (sm_version_to_string, handle_ptx_version_option): New function.
12574 (nvptx_option_override): Call handle_ptx_version_option.
12575 (nvptx_file_start): Use ptx_version_to_string and sm_version_to_string.
12576 * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>")
12577 (define_insn "nvptx_vote_ballot"): Use TARGET_PTX_6_0.
12578 * config/nvptx/nvptx.opt (mptx): Remove 'Init'.
12579
12580 2022-02-08 Maciej W. Rozycki <macro@embecosm.com>
12581
12582 * doc/install.texi (Configuration): Document `--with-isa-spec='
12583 RISC-V option.
12584 * doc/invoke.texi (Option Summary): List `-misa-spec=' RISC-V
12585 option.
12586 (RISC-V Options): Document it.
12587
12588 2022-02-08 Maciej W. Rozycki <macro@embecosm.com>
12589
12590 * config/riscv/t-riscv (riscv-sr.o): Add $(TM_H) dependency.
12591
12592 2022-02-08 Tom de Vries <tdevries@suse.de>
12593
12594 * config/nvptx/nvptx.cc (write_fn_proto_1): Handle 'main (int)'.
12595
12596 2022-02-08 Tom de Vries <tdevries@suse.de>
12597
12598 PR target/104364
12599 * config/nvptx/nvptx-protos.h (nvptx_mem_local_p): Declare.
12600 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Assert that
12601 change is validated.
12602 (nvptx_mem_local_p): New function.
12603 * config/nvptx/nvptx.md: Use nvptx_mem_local_p.
12604 (define_c_enum "unspecv"): Add UNSPECV_CAS_LOCAL.
12605 (define_insn "atomic_compare_and_swap<mode>_1_local"): New
12606 non-atomic, non-predicable define_insn, factored out of ...
12607 (define_insn "atomic_compare_and_swap<mode>_1"): ... here.
12608 Make predicable again.
12609 (define_expand "atomic_compare_and_swap<mode>"): Use
12610 atomic_compare_and_swap<mode>_1_local.
12611
12612 2022-02-08 liuhongt <hongtao.liu@intel.com>
12613
12614 PR rtl-optimization/104059
12615 * regcprop.cc (copyprop_hardreg_forward_1): Don't propagate
12616 for a more expensive reg-reg move.
12617
12618 2022-02-07 Tamar Christina <tamar.christina@arm.com>
12619
12620 * config/arm/arm_neon.h (vusdotq_s32, vusdot_laneq_s32,
12621 vusdotq_laneq_s32, vsudot_laneq_s32, vsudotq_laneq_s32): New
12622 * config/arm/arm_neon_builtins.def (usdot): Add V16QI.
12623 (usdot_laneq, sudot_laneq): New.
12624 * config/arm/neon.md (neon_<sup>dot_laneq<vsi2qi>): New.
12625 (neon_<sup>dot_lane<vsi2qi>): Remote unneeded code.
12626
12627 2022-02-07 Tamar Christina <tamar.christina@arm.com>
12628
12629 * config/arm/arm_neon.h (vdot_laneq_u32, vdotq_laneq_u32,
12630 vdot_laneq_s32, vdotq_laneq_s32): New.
12631 * config/arm/arm_neon_builtins.def (sdot_laneq, udot_laneq): New.
12632 * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
12633 (<sup>dot_prod<vsi2qi>): Re-order rtl.
12634 (neon_<sup>dot_lane<vsi2qi>): Fix rtl order and endiannes.
12635 (neon_<sup>dot_laneq<vsi2qi>): New.
12636
12637 2022-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
12638
12639 PR target/104327
12640 * config/s390/s390.cc (s390_can_inline_p): Accept a few more flags
12641 if always_inline is set. Don't inline when tune differs without
12642 always_inline.
12643
12644 2022-02-07 Richard Biener <rguenther@suse.de>
12645
12646 PR middle-end/104402
12647 * gimple-expr.cc (is_gimple_condexpr): _Complex typed
12648 compares are not valid.
12649 * tree-cfg.cc (verify_gimple_assign_ternary): For COND_EXPR
12650 check is_gimple_condexpr.
12651
12652 2022-02-07 Kewen Lin <linkw@linux.ibm.com>
12653
12654 PR target/103627
12655 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Move the
12656 hunk affecting VSX and ALTIVEC to appropriate place.
12657
12658 2022-02-07 Kewen Lin <linkw@linux.ibm.com>
12659
12660 PR target/103627
12661 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Disable
12662 MMA if !TARGET_VSX.
12663
12664 2022-02-06 Jakub Jelinek <jakub@redhat.com>
12665
12666 PR c++/89074
12667 PR c++/104033
12668 * fold-const.h (folding_initializer): Adjust comment.
12669 (folding_cxx_constexpr): Declare.
12670 * fold-const.cc (folding_initializer): Adjust comment.
12671 (folding_cxx_constexpr): New variable.
12672 (address_compare): Restrict the decl vs. STRING_CST
12673 or vice versa or STRING_CST vs. STRING_CST or
12674 is_global_var != is_global_var optimizations to !folding_cxx_constexpr.
12675 Punt for FUNCTION_DECLs with non-zero offsets. If folding_initializer,
12676 assume non-aliased functions have non-zero size and have different
12677 addresses. For folding_cxx_constexpr, punt on comparisons of start
12678 of some object and end of another one, regardless whether it is a decl
12679 or string literal. Also punt for folding_cxx_constexpr on
12680 STRING_CST vs. STRING_CST comparisons if the two literals could be
12681 overlapping.
12682
12683 2022-02-05 Jakub Jelinek <jakub@redhat.com>
12684
12685 PR tree-optimization/104389
12686 * match.pd (x * 0 -> 0): Punt if x maybe infinite and NaNs are
12687 honored.
12688
12689 2022-02-05 Kito Cheng <kito.cheng@sifive.com>
12690
12691 * configure.ac: Fix detection for zifencei support.
12692 * configure: Regenerate.
12693
12694 2022-02-05 Kito Cheng <kito.cheng@sifive.com>
12695
12696 PR target/104219
12697 * config.gcc (riscv*-*-*): Normalize the with_isa_spec value.
12698 (all_defaults): Add isa_spec.
12699 * config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Add isa_spec.
12700
12701 2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com>
12702
12703 * config/rs6000/rs6000-c.cc (resolve_vec_mul): Accept args and types
12704 parameters instead of arglist and nargs. Simplify accordingly. Remove
12705 unnecessary test for argument count mismatch.
12706 (resolve_vec_cmpne): Likewise.
12707 (resolve_vec_adde_sube): Likewise.
12708 (resolve_vec_addec_subec): Likewise.
12709 (altivec_resolve_overloaded_builtin): Move overload special handling
12710 after the gathering of arguments into args[] and types[] and the test
12711 for correct number of arguments. Don't perform the test for correct
12712 number of arguments for certain special cases. Call the other special
12713 cases with args and types instead of arglist and nargs.
12714
12715 2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com>
12716
12717 PR target/100808
12718 * doc/extend.texi (Basic PowerPC Built-in Functions Available on ISA
12719 3.1): Provide consistent type names. Remove unnecessary semicolons.
12720 Fix bad line breaks.
12721
12722 2022-02-04 Jakub Jelinek <jakub@redhat.com>
12723
12724 PR target/104380
12725 * config/rs6000/rs6000.cc (rs6000_mangle_decl_assembler_name): Also
12726 adjust mangling of __builtin*printf_chk.
12727
12728 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
12729
12730 * doc/cpp.texi (Variadic Macros): Replace C++2a with C++20.
12731
12732 2022-02-04 Richard Biener <rguenther@suse.de>
12733 Bin Cheng <bin.cheng@linux.alibaba.com>
12734
12735 PR tree-optimization/100499
12736 * fold-const.h (multiple_of_p): Add nowrap parameter, defaulted
12737 to true.
12738 * fold-const.cc (multiple_of_p): Likewise. Honor it for
12739 MULT_EXPR, PLUS_EXPR and MINUS_EXPR and pass it along,
12740 switching to false for conversions.
12741 * tree-ssa-loop-niter.cc (number_of_iterations_ne): Do not
12742 claim the outermost expression does not wrap when calling
12743 multiple_of_p. Refactor the check done to check the
12744 original IV, avoiding a bias that might wrap.
12745
12746 2022-02-04 Richard Biener <rguenther@suse.de>
12747
12748 * fold-const.cc (multiple_of_p): Re-write and move LSHIFT_EXPR
12749 handling.
12750
12751 2022-02-04 Eric Botcazou <ebotcazou@adacore.com>
12752
12753 PR debug/104366
12754 * dwarf2out.cc (dwarf2out_finish): Empty base_types.
12755 (dwarf2out_early_finish): Likewise.
12756
12757 2022-02-04 Eric Botcazou <ebotcazou@adacore.com>
12758
12759 PR tree-optimization/104356
12760 * match.pd (X / bool_range_Y is X): Add guard.
12761 (X / X is one): Likewise.
12762 (X / abs (X) is X < 0 ? -1 : 1): Likewise.
12763 (X / -X is -1): Likewise.
12764 (1 / X -> X == 1): Likewise.
12765
12766 2022-02-04 Richard Biener <rguenther@suse.de>
12767
12768 PR tree-optimization/103641
12769 * tree-vect-patterns.cc (vect_synth_mult_by_constant):
12770 Pass the vector mode to choose_mult_variant.
12771
12772 2022-02-04 Roger Sayle <roger@nextmovesoftware.com>
12773
12774 PR rtl-optimization/101885
12775 * combine.cc (try_combine): When splitting a parallel into two
12776 sequential sets, check not only that the first doesn't clobber
12777 the second but also that the second doesn't clobber the first.
12778
12779 2022-02-04 Richard Biener <rguenther@suse.de>
12780
12781 PR middle-end/90348
12782 PR middle-end/104092
12783 * tree-core.h (clobber_kind): New enum.
12784 (tree_base::u::bits::address_space): Document use in CONSTRUCTORs.
12785 * tree.h (CLOBBER_KIND): Add.
12786 (build_clobber): Add clobber kind argument, defaulted to
12787 CLOBBER_UNDEF.
12788 * tree.cc (build_clobber): Likewise.
12789 * gimple.h (gimple_clobber_p): New overload with specified kind.
12790 * tree-streamer-in.cc (streamer_read_tree_bitfields): Stream
12791 CLOBBER_KIND.
12792 * tree-streamer-out.cc (streamer_write_tree_bitfields):
12793 Likewise.
12794 * tree-pretty-print.cc (dump_generic_node): Mark EOL CLOBBERs.
12795 * gimplify.cc (gimplify_bind_expr): Build storage end-of-life clobbers
12796 with CLOBBER_EOL.
12797 (gimplify_target_expr): Likewise.
12798 * tree-inline.cc (expand_call_inline): Likewise.
12799 * tree-ssa-ccp.cc (insert_clobber_before_stack_restore): Likewise.
12800 * gimple-ssa-warn-access.cc (pass_waccess::check_stmt): Only treat
12801 CLOBBER_EOL clobbers as ending lifetime of storage.
12802
12803 2022-02-04 Martin Sebor <msebor@redhat.com>
12804
12805 * pointer-query.h (pointer_query::cache_type): Use auto_vec for auto
12806 cleanup.
12807
12808 2022-02-03 Martin Sebor <msebor@redhat.com>
12809
12810 PR middle-end/104260
12811 * passes.def (pass_warn_access): Adjust pass placement.
12812
12813 2022-02-03 Uroš Bizjak <ubizjak@gmail.com>
12814
12815 PR target/104362
12816 * config/i386/i386.cc (find_drap_reg): For 32bit targets
12817 return DI_REG if function uses __builtin_eh_return.
12818
12819 2022-02-03 Martin Sebor <msebor@redhat.com>
12820
12821 * gimple-ssa-warn-restrict.cc (class pass_wrestrict): Outline ctor.
12822 (pass_wrestrict::m_ptr_qry): New member.
12823 (wrestrict_walk): Rename...
12824 (pass_wrestrict::check_block): ...to this.
12825 (pass_wrestrict::execute): Set up and tear down pointer_query and
12826 ranger.
12827 (builtin_memref::builtin_memref): Change ctor argument. Simplify.
12828 (builtin_access::builtin_access): Same.
12829 (builtin_access::m_ptr_qry): New member.
12830 (check_call): Rename...
12831 (pass_wrestrict::check_call): ...to this.
12832 (check_bounds_or_overlap): Change argument.
12833 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Same.
12834
12835 2022-02-03 Martin Sebor <msebor@redhat.com>
12836
12837 * gimple-array-bounds.cc (array_bounds_checker::array_bounds_checker):
12838 Define ctor.
12839 (array_bounds_checker::get_value_range): Use new member.
12840 (array_bounds_checker::check_mem_ref): Same.
12841 * gimple-array-bounds.h (array_bounds_checker::array_bounds_checker):
12842 Outline ctor.
12843 (array_bounds_checker::m_ptr_query): New member.
12844
12845 2022-02-03 Martin Sebor <msebor@redhat.com>
12846
12847 * gimple-ssa-warn-access.cc (pass_waccess::pass_waccess): Remove
12848 pointer_query cache.
12849 * pointer-query.cc (pointer_query::pointer_query): Remove cache
12850 argument. Zero-initialize new cache member.
12851 (pointer_query::get_ref): Replace cache pointer with direct access.
12852 (pointer_query::put_ref): Same.
12853 (pointer_query::flush_cache): Same.
12854 (pointer_query::dump): Same.
12855 * pointer-query.h (class pointer_query): Remove cache argument from
12856 ctor. Change cache pointer to cache subobject member.
12857 * tree-ssa-strlen.cc: Remove pointer_query cache.
12858
12859 2022-02-03 Martin Sebor <msebor@redhat.com>
12860
12861 PR tree-optimization/104119
12862 * gimple-ssa-sprintf.cc (struct directive): Change argument type.
12863 (format_none): Same.
12864 (format_percent): Same.
12865 (format_integer): Same.
12866 (format_floating): Same.
12867 (get_string_length): Same.
12868 (format_character): Same.
12869 (format_string): Same.
12870 (format_plain): Same.
12871 (format_directive): Same.
12872 (compute_format_length): Same.
12873 (handle_printf_call): Same.
12874 * tree-ssa-strlen.cc (get_range_strlen_dynamic): Same. Call
12875 get_maxbound.
12876 (get_range_strlen_phi): Same.
12877 (get_maxbound): New function.
12878 (strlen_pass::get_len_or_size): Adjust to parameter change.
12879 * tree-ssa-strlen.h (get_range_strlen_dynamic): Change argument type.
12880
12881 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
12882
12883 PR target/103686
12884 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Remove
12885 test for !rs6000_fold_gimple.
12886 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
12887 * config/rs6000/rs6000.opt (mfold-gimple): Remove.
12888
12889 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
12890
12891 PR target/95082
12892 * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Handle
12893 endianness for vclzlsbb and vctzlsbb.
12894 * config/rs6000/rs6000-builtins.def (VCLZLSBB_V16QI): Change
12895 default pattern and indicate a different pattern will be used for
12896 big endian.
12897 (VCLZLSBB_V4SI): Likewise.
12898 (VCLZLSBB_V8HI): Likewise.
12899 (VCTZLSBB_V16QI): Likewise.
12900 (VCTZLSBB_V4SI): Likewise.
12901 (VCTZLSBB_V8HI): Likewise.
12902
12903 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
12904
12905 * config.gcc (powerpc*-*-*): Add rs6000-builtin.o to extra_objs.
12906 * config/rs6000/rs6000-builtin.cc: New file, containing code moved
12907 from other files.
12908 * config/rs6000/rs6000-call.cc (cpu_is_info): Move to
12909 rs6000-builtin.cc.
12910 (cpu_supports_info): Likewise.
12911 (rs6000_type_string): Likewise.
12912 (altivec_expand_predicate_builtin): Likewise.
12913 (rs6000_htm_spr_icode): Likewise.
12914 (altivec_expand_vec_init_builtin): Likewise.
12915 (get_element_number): Likewise.
12916 (altivec_expand_vec_set_builtin): Likewise.
12917 (altivec_expand_vec_ext_builtin): Likewise.
12918 (rs6000_invalid_builtin): Likewise.
12919 (rs6000_fold_builtin): Likewise.
12920 (fold_build_vec_cmp): Likewise.
12921 (fold_compare_helper): Likewise.
12922 (map_to_integral_tree_type): Likewise.
12923 (fold_mergehl_helper): Likewise.
12924 (fold_mergeeo_helper): Likewise.
12925 (rs6000_builtin_valid_without_lhs): Likewise.
12926 (rs6000_builtin_is_supported): Likewise.
12927 (rs6000_gimple_fold_mma_builtin): Likewise.
12928 (rs6000_gimple_fold_builtin): Likewise.
12929 (rs6000_expand_ldst_mask): Likewise.
12930 (cpu_expand_builtin): Likewise.
12931 (elemrev_icode): Likewise.
12932 (ldv_expand_builtin): Likewise.
12933 (lxvrse_expand_builtin): Likewise.
12934 (lxvrze_expand_builtin): Likewise.
12935 (stv_expand_builtin): Likewise.
12936 (mma_expand_builtin): Likewise.
12937 (htm_spr_num): Likewise.
12938 (htm_expand_builtin): Likewise.
12939 (rs6000_expand_builtin): Likewise.
12940 (rs6000_vector_type): Likewise.
12941 (rs6000_init_builtins): Likewise. Remove initialization of
12942 builtin_mode_to_type entries.
12943 (rs6000_builtin_decl): Move to rs6000-builtin.cc.
12944 * config/rs6000/rs6000.cc (rs6000_builtin_mask_for_load): New
12945 external declaration.
12946 (rs6000_builtin_md_vectorized_function): Likewise.
12947 (rs6000_builtin_reciprocal): Likewise.
12948 (altivec_builtin_mask_for_load): Move to rs6000-builtin.cc.
12949 (rs6000_builtin_types): Likewise.
12950 (builtin_mode_to_type): Remove.
12951 (rs6000_builtin_mask_for_load): Move to rs6000-builtin.cc. Remove
12952 static qualifier.
12953 (rs6000_builtin_md_vectorized_function): Likewise.
12954 (rs6000_builtin_reciprocal): Likewise.
12955 * config/rs6000/rs6000.h (builtin_mode_to_type): Remove.
12956 * config/rs6000/t-rs6000 (rs6000-builtin.o): New target.
12957
12958 2022-02-03 Richard Biener <rguenther@suse.de>
12959
12960 PR debug/104337
12961 * tree-nrv.cc (pass_nrv::execute): Remove tieing result and found
12962 together via DECL_ABSTRACT_ORIGIN.
12963
12964 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
12965
12966 * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Revise error
12967 message for RES_BITS case.
12968
12969 2022-02-03 Aldy Hernandez <aldyh@redhat.com>
12970
12971 * gimple-range-fold.cc (fur_list::fur_list): Set m_local[1] correctly.
12972
12973 2022-02-03 Jakub Jelinek <jakub@redhat.com>
12974
12975 * config/arm/arm.opt (mfix-cortex-a57-aes-1742098,
12976 mfix-cortex-a72-aes-1655431): Ensure description ends with full stop.
12977
12978 2022-02-03 Aldy Hernandez <aldyh@redhat.com>
12979
12980 * cfganal.cc (verify_marked_backedges): New.
12981 * cfganal.h (verify_marked_backedges): New.
12982 * gimple-range-path.cc (path_range_query::path_range_query):
12983 Verify freshness of back edges.
12984 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
12985 mark_dfs_back_edges.
12986 * tree-ssa-threadbackward.cc (back_threader::back_threader): Move
12987 path_range_query construction after backedges have been
12988 updated.
12989
12990 2022-02-03 Richard Sandiford <richard.sandiford@arm.com>
12991
12992 * config/aarch64/aarch64-simd.md (movmisalign<mode>): Extend from
12993 VALL to VALL_F16.
12994
12995 2022-02-03 Richard Sandiford <richard.sandiford@arm.com>
12996
12997 * config/aarch64/iterators.md (VALL_F16MOV): Delete.
12998 * config/aarch64/aarch64-simd.md (mov<mode>): Use VALL_F16 instead
12999 of VALL_F16MOV.
13000
13001 2022-02-03 Martin Liska <mliska@suse.cz>
13002
13003 * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
13004 Change subject and object in the error message.
13005 * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
13006 Likewise.
13007
13008 2022-02-03 Martin Liska <mliska@suse.cz>
13009
13010 * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
13011 Use the error message for i386 target.
13012
13013 2022-02-03 Jakub Jelinek <jakub@redhat.com>
13014
13015 PR tree-optimization/104334
13016 * range-op.cc (range_operator::wi_fold_in_parts): Change lh_range
13017 and rh_range type to widest_int and subtract in widest_int. Remove
13018 ov_rh, ov_lh and sign vars, always perform comparisons as signed
13019 and use >, < and == operators for it.
13020
13021 2022-02-03 Martin Sebor <msebor@redhat.com>
13022
13023 * common.opt (-Wuse-after-free): Correct typos.
13024
13025 2022-02-02 David Malcolm <dmalcolm@redhat.com>
13026
13027 PR analyzer/104270
13028 * doc/invoke.texi (-ftrivial-auto-var-init=): Add reference to
13029 -Wanalyzer-use-of-uninitialized-value to paragraph documenting that
13030 -ftrivial-auto-var-init= doesn't suppress warnings.
13031
13032 2022-02-02 Martin Liska <mliska@suse.cz>
13033
13034 * dwarf2out.cc (TEXT_SECTION_NAME): Remove unused macro.
13035
13036 2022-02-02 Bernd Kuhls <bernd.kuhls@t-online.de>
13037
13038 PR target/94372
13039 * config/or1k/linux.h (CPP_SPEC): Define.
13040
13041 2022-02-02 Tamar Christina <tamar.christina@arm.com>
13042
13043 PR tree-optimization/102819
13044 PR tree-optimization/103169
13045 * config/arm/vec-common.md (cml<fcmac1><conj_op><mode>4): Use
13046 canonical order.
13047
13048 2022-02-02 Tamar Christina <tamar.christina@arm.com>
13049
13050 PR tree-optimization/102819
13051 PR tree-optimization/103169
13052 * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4): Use
13053 canonical order.
13054 * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4): Likewise.
13055
13056 2022-02-02 Tamar Christina <tamar.christina@arm.com>
13057
13058 PR tree-optimization/102819
13059 PR tree-optimization/103169
13060 * doc/md.texi: Update docs for cfms, cfma.
13061 * tree-data-ref.h (same_data_refs): Accept optional offset.
13062 * tree-vect-slp-patterns.cc (is_linear_load_p): Fix issue with repeating
13063 patterns.
13064 (vect_normalize_conj_loc): Remove.
13065 (is_eq_or_top): Change to take two nodes.
13066 (enum _conj_status, compatible_complex_nodes_p,
13067 vect_validate_multiplication): New.
13068 (class complex_add_pattern, complex_add_pattern::matches,
13069 complex_add_pattern::recognize, class complex_mul_pattern,
13070 complex_mul_pattern::recognize, class complex_fms_pattern,
13071 complex_fms_pattern::recognize, class complex_operations_pattern,
13072 complex_operations_pattern::recognize, addsub_pattern::recognize): Pass
13073 new cache.
13074 (complex_fms_pattern::matches, complex_mul_pattern::matches): Pass new
13075 cache and use new validation code.
13076 * tree-vect-slp.cc (vect_match_slp_patterns_2, vect_match_slp_patterns,
13077 vect_analyze_slp): Pass along cache.
13078 (compatible_calls_p): Expose.
13079 * tree-vectorizer.h (compatible_calls_p, slp_node_hash,
13080 slp_compat_nodes_map_t): New.
13081 (class vect_pattern): Update signatures include new cache.
13082
13083 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
13084
13085 * config/cris/cris.cc (cris_preferred_reload_class): Reject
13086 "eliminated" registers and small-enough constants unless
13087 reloaded into a class that is a subset of GENERAL_REGS.
13088 * config/cris/cris.md (attribute "cpu_variant"): New.
13089 (attribute "enabled"): Conditionalize on a matching attribute
13090 cpu_variant, if specified.
13091 ("*movsi_internal<setcc><setnz><setnzvc>"): For moves to and from
13092 memory, add cpu-variant-enabled variants for "r" alternatives on
13093 the far side of the "x" alternatives, preferring the "x" ones
13094 only for variants where MOF is present (in addition to SRP).
13095
13096 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
13097
13098 * config/cris/cris.cc (cris_register_move_cost): Remove special pre-ira
13099 extra cost for ALL_REGS.
13100
13101 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
13102
13103 * config/cris/constraints.md (define_register_constraint "b"): Now
13104 GENERAL_REGS.
13105 * config/cris/cris.md (CRIS_ACR_REGNUM): Remove.
13106 * config/cris/cris.h: (reg_class, REG_CLASS_NAMES)
13107 (REG_CLASS_CONTENTS): Remove ACR_REGS, SPEC_ACR_REGS, GENNONACR_REGS,
13108 and SPEC_GENNONACR_REGS.
13109 * config/cris/cris.cc (cris_preferred_reload_class): Don't mention
13110 ACR_REGS and return GENERAL_REGS instead of GENNONACR_REGS.
13111
13112 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
13113
13114 * config/cris/cris.md ("*movsi_internal<setcc><setnz><setnzvc>"):
13115 Conditionalize on (sub-)register operands or operand 1 being 0.
13116
13117 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
13118
13119 * config/cris/cris.h (TARGET_DEFAULT): Don't include MASK_MUL_BUG.
13120 (MUL_BUG_ASM_DEFAULT): New macro.
13121 (MAYBE_AS_NO_MUL_BUG_ABORT): Define in terms of MUL_BUG_ASM_DEFAULT.
13122 * doc/invoke.texi (CRIS Options, -mmul-bug-workaround): Adjust
13123 accordingly.
13124
13125 2022-02-01 Eugene Rozenfeld <erozen@microsoft.com>
13126
13127 * opts.cc (common_handle_option): Don't set param_early_inliner_max_iterations
13128 to 10 for AutoFDO.
13129
13130 2022-02-01 Eugene Rozenfeld <erozen@microsoft.com>
13131
13132 * auto-profile.cc (auto_profile): Hard-code the number of iterations (10).
13133
13134 2022-02-01 Andrew Pinski <apinski@marvell.com>
13135
13136 * doc/install.texi:
13137
13138 2022-02-01 Ilya Leoshkevich <iii@linux.ibm.com>
13139
13140 * config/s390/s390.cc (s390_code_end): Do not switch back to
13141 code section.
13142
13143 2022-02-01 Jakub Jelinek <jakub@redhat.com>
13144
13145 PR target/104323
13146 * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Append rs6000-builtins.h
13147 rather than $(srcdir)/config/rs6000/rs6000-builtins.def.
13148 * config/rs6000/rs6000-gen-builtins.cc (write_decls): Don't use
13149 GTY((user)) for struct bifdata and struct ovlddata. Instead add
13150 GTY((skip(""))) to members with pointer and enum types that don't need
13151 to be tracked. Add GTY(()) to rs6000_builtin_info and rs6000_instance_info
13152 declarations. Don't emit gt_ggc_mx and gt_pch_nx declarations.
13153 (write_extern_fntype, write_fntype): Remove.
13154 (write_fntype_init): Emit the fntype vars as automatic vars instead
13155 of file scope ones.
13156 (write_header_file): Don't iterate with write_extern_fntype.
13157 (write_init_file): Don't iterate with write_fntype. Don't emit
13158 gt_ggc_mx and gt_pch_nx definitions.
13159
13160 2022-02-01 Jason Merrill <jason@redhat.com>
13161
13162 * tree.h (struct tree_vec_map_cache_hasher): Move from...
13163 * tree.cc (struct tree_vec_map_cache_hasher): ...here.
13164
13165 2022-02-01 Tom de Vries <tdevries@suse.de>
13166
13167 * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_uniform_warp_check.
13168 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
13169 UNSPECV_UNIFORM_WARP_CHECK.
13170 (define_insn "nvptx_uniform_warp_check"): New define_insn.
13171
13172 2022-02-01 Tom de Vries <tdevries@suse.de>
13173
13174 * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_warpsync.
13175 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
13176 UNSPECV_WARPSYNC.
13177 (define_insn "nvptx_warpsync"): New define_insn.
13178
13179 2022-02-01 Tom de Vries <tdevries@suse.de>
13180
13181 * config/nvptx/nvptx.opt (mptx): Set to PTX_VERSION_6_3 by default.
13182
13183 2022-02-01 Tom de Vries <tdevries@suse.de>
13184
13185 * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_6_0.
13186 * config/nvptx/nvptx.h (TARGET_PTX_6_0): New macro.
13187 * config/nvptx/nvptx.md (define_insn "nvptx_barsync"): Use barrier
13188 insn for TARGET_PTX_6_0.
13189
13190 2022-02-01 Tom de Vries <tdevries@suse.de>
13191
13192 PR target/100428
13193 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle nop
13194 insn.
13195
13196 2022-02-01 Tom de Vries <tdevries@suse.de>
13197
13198 * config/nvptx/nvptx.md (define_insn "atomic_compare_and_swap<mode>_1")
13199 (define_insn "atomic_exchange<mode>")
13200 (define_insn "atomic_fetch_add<mode>")
13201 (define_insn "atomic_fetch_addsf")
13202 (define_insn "atomic_fetch_<logic><mode>"): Output non-atomic version
13203 if memory operands is frame-relative.
13204
13205 2022-02-01 Tom de Vries <tdevries@suse.de>
13206
13207 * config/nvptx/nvptx.cc (enum nvptx_builtins): Add
13208 NVPTX_BUILTIN_MEMBAR_GL and NVPTX_BUILTIN_MEMBAR_CTA.
13209 (VOID): New macro.
13210 (nvptx_init_builtins): Add MEMBAR_GL and MEMBAR_CTA.
13211 (nvptx_expand_builtin): Handle NVPTX_BUILTIN_MEMBAR_GL and
13212 NVPTX_BUILTIN_MEMBAR_CTA.
13213 (nvptx_lockfull_update): Add level parameter. Emit barriers.
13214 (nvptx_reduction_update, nvptx_goacc_reduction_fini): Update call to
13215 nvptx_lockfull_update.
13216 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
13217 UNSPECV_MEMBAR_GL.
13218 (define_expand "nvptx_membar_gl"): New expand.
13219 (define_insn "*nvptx_membar_gl"): New insn.
13220
13221 2022-02-01 Martin Liska <mliska@suse.cz>
13222
13223 * doc/install.texi: Remove option for GCC < 4.8.
13224
13225 2022-02-01 Jakub Jelinek <jakub@redhat.com>
13226
13227 PR middle-end/104307
13228 * tree-vect-generic.cc (expand_vector_comparison): Don't push debug
13229 stmts to uses vector, just set vec_cond_expr_only to false for
13230 non-VEC_COND_EXPRs instead of pushing them into uses. Treat
13231 VEC_COND_EXPRs that use lhs not just in rhs1, but rhs2 or rhs3 too
13232 like non-VEC_COND_EXPRs.
13233
13234 2022-02-01 Bill Schmidt <wschmidt@linux.ibm.com>
13235
13236 * config/rs6000/rs6000-overload.def (VEC_ABSD): Remove #ifdef token.
13237 (VEC_BLENDV): Likewise.
13238 (VEC_BPERM): Likewise.
13239 (VEC_CFUGE): Likewise.
13240 (VEC_CIPHER_BE): Likewise.
13241 (VEC_CIPHERLAST_BE): Likewise.
13242 (VEC_CLRL): Likewise.
13243 (VEC_CLRR): Likewise.
13244 (VEC_CMPNEZ): Likewise.
13245 (VEC_CNTLZ): Likewise.
13246 (VEC_CNTLZM): Likewise.
13247 (VEC_CNTTZM): Likewise.
13248 (VEC_CNTLZ_LSBB): Likewise.
13249 (VEC_CNTM): Likewise.
13250 (VEC_CNTTZ): Likewise.
13251 (VEC_CNTTZ_LSBB): Likewise.
13252 (VEC_CONVERT_4F32_8F16): Likewise.
13253 (VEC_DIV): Likewise.
13254 (VEC_DIVE): Likewise.
13255 (VEC_EQV): Likewise.
13256 (VEC_EXPANDM): Likewise.
13257 (VEC_EXTRACT_FP_FROM_SHORTH): Likewise.
13258 (VEC_EXTRACT_FP_FROM_SHORTL): Likewise.
13259 (VEC_EXTRACTH): Likewise.
13260 (VEC_EXTRACTL): Likewise.
13261 (VEC_EXTRACTM): Likewise.
13262 (VEC_EXTRACT4B): Likewise.
13263 (VEC_EXTULX): Likewise.
13264 (VEC_EXTURX): Likewise.
13265 (VEC_FIRSTMATCHINDEX): Likewise.
13266 (VEC_FIRSTMACHOREOSINDEX): Likewise.
13267 (VEC_FIRSTMISMATCHINDEX): Likewise.
13268 (VEC_FIRSTMISMATCHOREOSINDEX): Likewise.
13269 (VEC_GB): Likewise.
13270 (VEC_GENBM): Likewise.
13271 (VEC_GENHM): Likewise.
13272 (VEC_GENWM): Likewise.
13273 (VEC_GENDM): Likewise.
13274 (VEC_GENQM): Likewise.
13275 (VEC_GENPCVM): Likewise.
13276 (VEC_GNB): Likewise.
13277 (VEC_INSERTH): Likewise.
13278 (VEC_INSERTL): Likewise.
13279 (VEC_INSERT4B): Likewise.
13280 (VEC_LXVL): Likewise.
13281 (VEC_MERGEE): Likewise.
13282 (VEC_MERGEO): Likewise.
13283 (VEC_MOD): Likewise.
13284 (VEC_MSUB): Likewise.
13285 (VEC_MULH): Likewise.
13286 (VEC_NAND): Likewise.
13287 (VEC_NCIPHER_BE): Likewise.
13288 (VEC_NCIPHERLAST_BE): Likewise.
13289 (VEC_NEARBYINT): Likewise.
13290 (VEC_NMADD): Likewise.
13291 (VEC_ORC): Likewise.
13292 (VEC_PDEP): Likewise.
13293 (VEC_PERMX): Likewise.
13294 (VEC_PEXT): Likewise.
13295 (VEC_POPCNT): Likewise.
13296 (VEC_PARITY_LSBB): Likewise.
13297 (VEC_REPLACE_ELT): Likewise.
13298 (VEC_REPLACE_UN): Likewise.
13299 (VEC_REVB): Likewise.
13300 (VEC_RINT): Likewise.
13301 (VEC_RLMI): Likewise.
13302 (VEC_RLNM): Likewise.
13303 (VEC_SBOX_BE): Likewise.
13304 (VEC_SIGNEXTI): Likewise.
13305 (VEC_SIGNEXTLL): Likewise.
13306 (VEC_SIGNEXTQ): Likewise.
13307 (VEC_SLDB): Likewise.
13308 (VEC_SLV): Likewise.
13309 (VEC_SPLATI): Likewise.
13310 (VEC_SPLATID): Likewise.
13311 (VEC_SPLATI_INS): Likewise.
13312 (VEC_SQRT): Likewise.
13313 (VEC_SRDB): Likewise.
13314 (VEC_SRV): Likewise.
13315 (VEC_STRIL): Likewise.
13316 (VEC_STRIL_P): Likewise.
13317 (VEC_STRIR): Likewise.
13318 (VEC_STRIR_P): Likewise.
13319 (VEC_STXVL): Likewise.
13320 (VEC_TERNARYLOGIC): Likewise.
13321 (VEC_TEST_LSBB_ALL_ONES): Likewise.
13322 (VEC_TEST_LSBB_ALL_ZEROS): Likewise.
13323 (VEC_VEE): Likewise.
13324 (VEC_VES): Likewise.
13325 (VEC_VIE): Likewise.
13326 (VEC_VPRTYB): Likewise.
13327 (VEC_VSCEEQ): Likewise.
13328 (VEC_VSCEGT): Likewise.
13329 (VEC_VSCELT): Likewise.
13330 (VEC_VSCEUO): Likewise.
13331 (VEC_VSEE): Likewise.
13332 (VEC_VSES): Likewise.
13333 (VEC_VSIE): Likewise.
13334 (VEC_VSTDC): Likewise.
13335 (VEC_VSTDCN): Likewise.
13336 (VEC_VTDC): Likewise.
13337 (VEC_XL): Likewise.
13338 (VEC_XL_BE): Likewise.
13339 (VEC_XL_LEN_R): Likewise.
13340 (VEC_XL_SEXT): Likewise.
13341 (VEC_XL_ZEXT): Likewise.
13342 (VEC_XST): Likewise.
13343 (VEC_XST_BE): Likewise.
13344 (VEC_XST_LEN_R): Likewise.
13345 (VEC_XST_TRUNC): Likewise.
13346 (VEC_XXPERMDI): Likewise.
13347 (VEC_XXSLDWI): Likewise.
13348 (VEC_TSTSFI_EQ_DD): Likewise.
13349 (VEC_TSTSFI_EQ_TD): Likewise.
13350 (VEC_TSTSFI_GT_DD): Likewise.
13351 (VEC_TSTSFI_GT_TD): Likewise.
13352 (VEC_TSTSFI_LT_DD): Likewise.
13353 (VEC_TSTSFI_LT_TD): Likewise.
13354 (VEC_TSTSFI_OV_DD): Likewise.
13355 (VEC_TSTSFI_OV_TD): Likewise.
13356 (VEC_VADDCUQ): Likewise.
13357 (VEC_VADDECUQ): Likewise.
13358 (VEC_VADDEUQM): Likewise.
13359 (VEC_VADDUDM): Likewise.
13360 (VEC_VADDUQM): Likewise.
13361 (VEC_VBPERMQ): Likewise.
13362 (VEC_VCLZB): Likewise.
13363 (VEC_VCLZD): Likewise.
13364 (VEC_VCLZH): Likewise.
13365 (VEC_VCLZW): Likewise.
13366 (VEC_VCTZB): Likewise.
13367 (VEC_VCTZD): Likewise.
13368 (VEC_VCTZH): Likewise.
13369 (VEC_VCTZW): Likewise.
13370 (VEC_VEEDP): Likewise.
13371 (VEC_VEESP): Likewise.
13372 (VEC_VESDP): Likewise.
13373 (VEC_VESSP): Likewise.
13374 (VEC_VIEDP): Likewise.
13375 (VEC_VIESP): Likewise.
13376 (VEC_VPKSDSS): Likewise.
13377 (VEC_VPKSDUS): Likewise.
13378 (VEC_VPKUDUM): Likewise.
13379 (VEC_VPKUDUS): Likewise.
13380 (VEC_VPOPCNT): Likewise.
13381 (VEC_VPOPCNTB): Likewise.
13382 (VEC_VPOPCNTD): Likewise.
13383 (VEC_VPOPCNTH): Likewise.
13384 (VEC_VPOPCNTW): Likewise.
13385 (VEC_VPRTYBD): Likewise.
13386 (VEC_VPRTYBQ): Likewise.
13387 (VEC_VPRTYBW): Likewise.
13388 (VEC_VRLD): Likewise.
13389 (VEC_VSLD): Likewise.
13390 (VEC_VSRAD): Likewise.
13391 (VEC_VSRD): Likewise.
13392 (VEC_VSTDCDP): Likewise.
13393 (VEC_VSTDCNDP): Likewise.
13394 (VEC_VSTDCNQP): Likewise.
13395 (VEC_VSTDCNSP): Likewise.
13396 (VEC_VSTDCQP): Likewise.
13397 (VEC_VSTDCSP): Likewise.
13398 (VEC_VSUBECUQ): Likewise.
13399 (VEC_VSUBEUQM): Likewise.
13400 (VEC_VSUBUDM): Likewise.
13401 (VEC_VSUBUQM): Likewise.
13402 (VEC_VTDCDP): Likewise.
13403 (VEC_VTDCSP): Likewise.
13404 (VEC_VUPKHSW): Likewise.
13405 (VEC_VUPKLSW): Likewise.
13406
13407 2022-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
13408
13409 PR rtl-optimization/101260
13410 * regcprop.cc (maybe_mode_change): Invoke mode_change_ok also for
13411 copy_regno.
13412
13413 2022-02-01 Xi Ruoyao <xry111@mengyan1223.wang>
13414
13415 PR middle-end/95115
13416 * fold-const.cc (const_binop): Do not fold NaN result from
13417 non-NaN operands.
13418
13419 2022-02-01 Tom de Vries <tdevries@suse.de>
13420
13421 * tree-loop-distribution.cc (generate_reduction_builtin_1): Check for
13422 -ftree-loop-distribute-patterns.
13423 (loop_distribution::execute): Don't call transform_reduction_loop for
13424 -fno-tree-loop-distribute-patterns.
13425
13426 2022-01-31 Andrew Pinski <apinski@marvell.com>
13427
13428 * fold-const.h (operand_compare::operand_equal_p):
13429 Fix comment about OEP_* flags.
13430
13431 2022-01-31 Jakub Jelinek <jakub@redhat.com>
13432
13433 PR target/104298
13434 * config/rs6000/aix.h (OPTION_GLIBC): Remove.
13435 * config/rs6000/darwin.h (OPTION_GLIBC): Likewise.
13436 * config/rs6000/option-defaults.h (OPTION_GLIBC): Define to 0
13437 if not already defined.
13438
13439 2022-01-31 Martin Sebor <msebor@redhat.com>
13440
13441 PR middle-end/104232
13442 * gimple-ssa-warn-access.cc (pointers_related_p): Add argument.
13443 Handle PHIs. Add a synonymous overload.
13444 (pass_waccess::check_pointer_uses): Call pointers_related_p.
13445
13446 2022-01-31 Richard Biener <rguenther@suse.de>
13447
13448 PR tree-optimization/100499
13449 * fold-const.cc (multiple_of_p): Pass the correct type of
13450 the expression to the recursive invocation of multiple_of_p
13451 for conversions and use CASE_CONVERT.
13452
13453 2022-01-31 Eric Botcazou <ebotcazou@adacore.com>
13454
13455 PR target/104189
13456 * config/sparc/linux64.h (TARGET_DEFAULT): Add MASK_V8PLUS.
13457
13458 2022-01-31 Richard Biener <rguenther@suse.de>
13459
13460 PR tree-optimization/100499
13461 * tree-cfg.cc (verify_gimple_assign_ternary): Use multiple_p
13462 on poly-ints instead of multiple_of_p.
13463 * tree-ssa.cc (maybe_rewrite_mem_ref_base): Likewise.
13464 (non_rewritable_mem_ref_base): Likewise.
13465 (non_rewritable_lvalue_p): Likewise.
13466 (execute_update_addresses_taken): Likewise.
13467
13468 2022-01-29 Jakub Jelinek <jakub@redhat.com>
13469 Andrew Pinski <apinski@marvell.com>
13470
13471 PR tree-optimization/104279
13472 PR tree-optimization/104280
13473 PR tree-optimization/104281
13474 * match.pd (1 / X -> X == 1 for unsigned X): Build eq with
13475 boolean_type_node and convert to type. Formatting fixes.
13476
13477 2022-01-28 Yoshinori Sato <yo-satoh@sios.com>
13478
13479 * config/sh/t-linux (MULTILIB_EXCEPTIONS): Add m1, mb/m1 and m2a.
13480
13481 2022-01-28 Navid Rahimi <navidrahimi@microsoft.com>
13482
13483 PR tree-optimization/103514
13484 * match.pd (a & b) ^ (a == b) -> !(a | b): New optimization.
13485 (a & b) == (a ^ b) -> !(a | b): New optimization.
13486
13487 2022-01-28 Marek Polacek <polacek@redhat.com>
13488
13489 * doc/invoke.texi: Update -Wbidi-chars documentation.
13490
13491 2022-01-28 Iain Sandoe <iain@sandoe.co.uk>
13492
13493 * config/rs6000/darwin.h (OPTION_GLIBC): Define to 0.
13494
13495 2022-01-28 Zhao Wei Liew <zhaoweiliew@gmail.com>
13496
13497 PR tree-optimization/95424
13498 * match.pd: Simplify 1 / X where X is an integer.
13499
13500 2022-01-28 Jakub Jelinek <jakub@redhat.com>
13501
13502 PR tree-optimization/104263
13503 * gimple-ssa-store-merging.cc (get_status_for_store_merging): For
13504 cfun->can_throw_non_call_exceptions && cfun->eh test whether
13505 last non-debug stmt in the bb is store_valid_for_store_merging_p
13506 rather than last stmt.
13507
13508 2022-01-28 Martin Liska <mliska@suse.cz>
13509
13510 * diagnostic.cc (diagnostic_action_after_output): Remove extra
13511 newline.
13512
13513 2022-01-28 Martin Liska <mliska@suse.cz>
13514
13515 * config/rs6000/host-darwin.cc (segv_crash_handler):
13516 Do not use leading capital letter.
13517 (segv_handler): Likewise.
13518 * ipa-sra.cc (verify_splitting_accesses): Likewise.
13519 * varasm.cc (get_section): Likewise.
13520
13521 2022-01-28 Richard Biener <rguenther@suse.de>
13522
13523 PR tree-optimization/104267
13524 * tree-vect-stmts.cc (vectorizable_call): Properly use the
13525 per-argument determined vector type for externals and
13526 invariants.
13527
13528 2022-01-28 Richard Biener <rguenther@suse.de>
13529
13530 PR tree-optimization/104263
13531 * tree-cfg.cc (gimple_purge_dead_abnormal_call_edges):
13532 Purge edges also when !cfun->has_nonlocal_label
13533 and !cfun->calls_setjmp.
13534
13535 2022-01-28 Maciej W. Rozycki <macro@embecosm.com>
13536
13537 * config/riscv/riscv.md: Document `auipc' and `bitmanip' `type'
13538 attributes.
13539
13540 2022-01-28 Jakub Jelinek <jakub@redhat.com>
13541
13542 PR lto/104237
13543 * cfgrtl.cc (loc_equal): New function.
13544 (unique_locus_on_edge_between_p): Use it.
13545
13546 2022-01-28 Richard Biener <rguenther@suse.de>
13547
13548 * cfganal.h (mark_dfs_back_edges): Provide API with struct
13549 function argument.
13550 * cfganal.cc (mark_dfs_back_edges): Take a struct function
13551 to work on, add a wrapper passing cfun.
13552 * graph.cc (draw_cfg_nodes_no_loops): Replace stray cfun
13553 uses with fun which is already passed.
13554 (draw_cfg_edges): Likewise.
13555 (draw_cfg_nodes_for_loop): Do not use draw_cfg_nodes_for_loop
13556 for fun != cfun.
13557
13558 2022-01-27 Patrick Palka <ppalka@redhat.com>
13559
13560 PR c++/99895
13561 * tree.cc (build_call_vec): Add const to second parameter.
13562 * tree.h (build_call_vec): Likewise.
13563
13564 2022-01-27 Martin Liska <mliska@suse.cz>
13565
13566 PR web/104254
13567 * diagnostic.cc (diagnostic_initialize):
13568 Initialize report_bug flag.
13569 (diagnostic_action_after_output):
13570 Explain that -freport-bug option can be used for pre-processed
13571 file creation. Make the message shorter.
13572 (error_recursion): Rename Internal to internal.
13573 * diagnostic.h (struct diagnostic_context): New field.
13574 * opts.cc (common_handle_option): Init the field here.
13575
13576 2022-01-27 Kewen Lin <linkw@linux.ibm.com>
13577
13578 PR target/103702
13579 * config/rs6000/rs6000.cc
13580 (rs6000_cost_data::update_target_cost_per_stmt): Fix one wrong
13581 assertion with early return.
13582
13583 2022-01-27 Chung-Lin Tang <cltang@codesourcery.com>
13584
13585 PR middle-end/103642
13586 * gimplify.cc (gimplify_scan_omp_clauses): Do not do indir_p handling
13587 for non-pointer or non-reference-to-pointer cases.
13588
13589 2022-01-27 Jakub Jelinek <jakub@redhat.com>
13590
13591 PR tree-optimization/104196
13592 * gimple-fold.h (rewrite_to_defined_overflow): Add IN_PLACE argument.
13593 * gimple-fold.cc (rewrite_to_defined_overflow): Likewise. If true,
13594 return NULL and emit needed stmts before and after stmt.
13595 * tree-ssa-reassoc.cc (update_range_test): For inter-bb range opt
13596 pick as operand_entry that will hold the merged test the one feeding
13597 earliest condition, ensure that by swapping range->idx with some
13598 other range's idx if needed. If seq is non-NULL, don't actually swap
13599 it but instead rewrite stmts with undefined overflow in between
13600 the two locations.
13601 (maybe_optimize_range_tests): Set ops[]->id to bb->index with the
13602 corresponding condition even if they have non-NULL ops[]->op.
13603 Formatting fix.
13604
13605 2022-01-26 Jakub Jelinek <jakub@redhat.com>
13606
13607 PR target/104239
13608 * config/rs6000/emmintrin.h (_mm_sad_epu8): Use __asm__ instead of
13609 asm.
13610 * config/rs6000/smmintrin.h (_mm_minpos_epu16): Declare iterator
13611 before for loop instead of for init clause.
13612 * config/rs6000/bmi2intrin.h (_pext_u64): Likewise.
13613
13614 2022-01-26 Jakub Jelinek <jakub@redhat.com>
13615
13616 PR target/104239
13617 * config/rs6000/bmiintrin.h: Test _X86GPRINTRIN_H_INCLUDED instead of
13618 _X86INTRIN_H_INCLUDED and adjust #error wording.
13619 * config/rs6000/bmi2intrin.h: Likewise.
13620
13621 2022-01-26 Jakub Jelinek <jakub@redhat.com>
13622
13623 PR debug/104194
13624 * dwarf2out.cc (long_double_as_float128): New function.
13625 (modified_type_die): For powerpc64le IEEE 754 quad long double
13626 and complex long double emit those as DW_TAG_typedef to
13627 _Float128 or complex _Float128 base type.
13628
13629 2022-01-26 Marek Polacek <polacek@redhat.com>
13630
13631 PR target/104213
13632 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer): Don't
13633 warn when the SSA_NAME_VAR of REF has supressed -Wuse-after-free.
13634
13635 2022-01-26 Martin Liska <mliska@suse.cz>
13636
13637 * ipa-modref-tree.cc (modref_access_node::update):
13638 Remove "--param param=foo" with "--param foo".
13639 (modref_access_node::insert): Likewise.
13640 (modref_access_node::insert_kill): Likewise.
13641 * ipa-modref-tree.h (struct modref_ref_node): Likewise.
13642 (struct modref_base_node): Likewise.
13643 (struct modref_tree): Likewise.
13644
13645 2022-01-26 Raoni Fassina Firmino <raoni@linux.ibm.com>
13646
13647 PR target/94193
13648 * builtins.cc (expand_builtin_feclear_feraise_except): Add op0
13649 predicate check.
13650
13651 2022-01-25 Martin Sebor <msebor@redhat.com>
13652
13653 PR tree-optimization/104203
13654 * gimple-ssa-warn-access.cc (pass_data pass_data_waccess): Use
13655 TV_WARN_ACCESS.
13656 * pointer-query.cc (access_ref::merge_ref): Change return type.
13657 Convert failure to a conservative success.
13658 (access_ref::get_ref): Adjust to the change above. Short-circuit
13659 PHI evaluation after first failure turned into conservative success.
13660 * pointer-query.h (access_ref::merge_ref): Change return type.
13661 * timevar.def (TV_WARN_ACCESS): New timer variable.
13662
13663 2022-01-25 David Edelsohn <dje.gcc@gmail.com>
13664
13665 * config/rs6000/aix.h (OPTION_GLIBC): Define as 0.
13666
13667 2022-01-25 Richard Biener <rguenther@suse.de>
13668
13669 PR tree-optimization/104214
13670 * tree-ssa-loop-niter.cc (number_of_iterations_cond): Use
13671 stronger guarantees for relational pointer compares when
13672 rewriting BASE0 + STEP0 cmp BASE1 + STEP1 as
13673 BASE0 + STEP0 - STEP1 cmp BASE1.
13674
13675 2022-01-25 Jakub Jelinek <jakub@redhat.com>
13676
13677 PR target/104172
13678 * config/rs6000/rs6000-internal.h (rs6000_passes_ieee128): Don't
13679 declare.
13680 * config/rs6000/rs6000.cc (rs6000_passes_ieee128,
13681 ieee128_mangling_gcc_8_1): Remove.
13682 (TARGET_ASM_GLOBALIZE_DECL_NAME): Don't redefine.
13683 (rs6000_mangle_type): Return "u9__ieee128" instead of
13684 ieee128_mangling_gcc_8_1 ? "U10__float128" : "u9__ieee128".
13685 (rs6000_globalize_decl_name): Remove.
13686 * config/rs6000/rs6000-call.cc (init_cumulative_args,
13687 rs6000_function_arg_advance_1): Don't set rs6000_passes_ieee128.
13688
13689 2022-01-24 Martin Sebor <msebor@redhat.com>
13690
13691 * pointer-query.cc (pointer_query::dump): Remove duplicate
13692 block.
13693
13694 2022-01-24 Marek Polacek <polacek@redhat.com>
13695
13696 PR preprocessor/104030
13697 * doc/invoke.texi: Update documentation for -Wbidi-chars.
13698
13699 2022-01-24 Raoni Fassina Firmino <raoni@linux.ibm.com>
13700
13701 PR target/94193
13702 * builtins.cc (expand_builtin_fegetround): New function.
13703 (expand_builtin_feclear_feraise_except): New function.
13704 (expand_builtin): Add cases for BUILT_IN_FEGETROUND,
13705 BUILT_IN_FECLEAREXCEPT and BUILT_IN_FERAISEEXCEPT.
13706 * config/rs6000/rs6000.md (fegetroundsi): New pattern.
13707 (feclearexceptsi): New Pattern.
13708 (feraiseexceptsi): New Pattern.
13709 * doc/extend.texi: Add a new introductory paragraph about the
13710 new builtins.
13711 * doc/md.texi: (fegetround@var{m}): Document new optab.
13712 (feclearexcept@var{m}): Document new optab.
13713 (feraiseexcept@var{m}): Document new optab.
13714 * optabs.def (fegetround_optab): New optab.
13715 (feclearexcept_optab): New optab.
13716 (feraiseexcept_optab): New optab.
13717
13718 2022-01-24 Richard Biener <rguenther@suse.de>
13719 Jiufu Guo <guojiufu@linux.ibm.com>
13720
13721 PR tree-optimization/100740
13722 PR tree-optimization/101508
13723 PR tree-optimization/101972
13724 PR tree-optimization/102131
13725 * tree-ssa-loop-niter.cc (number_of_iterations_cond): Properly
13726 constrain BASE0 + STEP0 cmp BASE1 + STEP1 to
13727 BASE0 + STEP0 - STEP1 cmp BASE1 transform.
13728
13729 2022-01-24 Jakub Jelinek <jakub@redhat.com>
13730
13731 PR sanitizer/104158
13732 * opt-functions.awk (var_set): Handle EnumBitSet property.
13733 * optc-gen.awk: Don't disallow RejectNegative if EnumBitSet is
13734 specified.
13735 * opts.h (enum cl_enum_var_value): New type.
13736 * opts-common.cc (decode_cmdline_option): Use CLEV_* values.
13737 Handle CLEV_BITSET.
13738 (cmdline_handle_error): Handle CLEV_BITSET.
13739 * opts.cc (test_enum_sets): Also test EnumBitSet requirements.
13740 * doc/options.texi (EnumBitSet): Document.
13741 * common.opt (fsanitize-coverage=): Use EnumBitSet instead of
13742 EnumSet.
13743 (trace-pc, trace-cmp): Drop Set properties.
13744
13745 2022-01-24 Jakub Jelinek <jakub@redhat.com>
13746
13747 PR sanitizer/104158
13748 * common.opt (flag_sanitize_coverage): Remove Variable entry.
13749 (fsanitize-coverage=): Remove RejectNegative property, add
13750 Var(flag_sanitize_coverage) and EnumSet properties.
13751 (trace-pc): Add Set(1) property.
13752 (trace-cmp): Add Set(2) property.
13753 * opts.cc (common_handle_option): Don't handle
13754 OPT_fsanitize_coverage_.
13755
13756 2022-01-24 Jakub Jelinek <jakub@redhat.com>
13757
13758 PR sanitizer/104158
13759 * opt-functions.awk (var_set): Handle EnumSet property.
13760 * optc-gen.awk: Don't disallow RejectNegative if EnumSet is
13761 specified.
13762 * opt-read.awk: Handle Set property.
13763 * opts.h (CL_ENUM_SET_SHIFT, CL_ERR_ENUM_SET_ARG): Define.
13764 (struct cl_decoded_option): Mention enum in value description.
13765 Add mask member.
13766 (set_option): Add mask argument defaulted to 0.
13767 * opts.cc (test_enum_sets): New function.
13768 (opts_cc_tests): Call it.
13769 * opts-common.cc (enum_arg_to_value): Change return argument
13770 from bool to int, on success return index into the cl_enum_arg
13771 array, on failure -1. Add len argument, if non-0, use strncmp
13772 instead of strcmp.
13773 (opt_enum_arg_to_value): Adjust caller.
13774 (decode_cmdline_option): Handle EnumSet represented as
13775 CLVC_ENUM with non-zero var_value. Initialize decoded->mask.
13776 (decode_cmdline_options_to_array): CLear opt_array[0].mask.
13777 (handle_option): Pass decoded->mask to set_options last argument.
13778 (generate_option): Clear decoded->mask.
13779 (generate_option_input_file): Likewise.
13780 (cmdline_handle_error): Handle CL_ERR_ENUM_SET_ARG.
13781 (set_option): Add mask argument, use it for CLVC_ENUM.
13782 (control_warning_option): Adjust enum_arg_to_value caller.
13783 * doc/options.texi: Document Set and EnumSet properties.
13784
13785 2022-01-24 Jakub Jelinek <jakub@redhat.com>
13786
13787 PR bootstrap/104170
13788 * config/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
13789 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
13790 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
13791 using OPTION_*_P macros.
13792 * config/alpha/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
13793 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
13794 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
13795 using OPTION_*_P macros.
13796 * config/rs6000/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
13797 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
13798 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
13799 using OPTION_*_P macros.
13800 * config/rs6000/linux64.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
13801 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
13802 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
13803 using OPTION_*_P macros.
13804 * config/fuchsia.h (OPTION_MUSL_P): Redefine.
13805 * config/glibc-stdint.h (OPTION_MUSL_P): Define if not defined.
13806 * common/config/s390/s390-common.cc (s390_supports_split_stack): Re-add
13807 ATTRIBUTE_UNUSED to opts parameter. If OPTION_GLIBC_P is defined, use
13808 OPTION_GLIBC_P (opts) as condition, otherwise assume if (false).
13809 * common/config/i386/i386-common.cc (ix86_supports_split_stack): If
13810 OPTION_GLIBC_P is defined use !OPTION_GLIBC_P (opts) as condition,
13811 otherwise assume if (true).
13812
13813 2022-01-24 Kito Cheng <kito.cheng@sifive.com>
13814
13815 * common/config/riscv/riscv-common.cc (riscv_subset_list::to_string):
13816 Skip zicsr and zifencei if I-ext is 2.0.
13817
13818 2022-01-24 Jia-Wei Chen <jiawei@iscas.ac.cn>
13819
13820 * config.gcc: Modify default isa_spec version.
13821
13822 2022-01-24 Jiufu Guo <guojiufu@linux.ibm.com>
13823
13824 PR tree-optimization/102087
13825 * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
13826 Correct PLUS result type.
13827
13828 2022-01-24 H.J. Lu <hjl.tools@gmail.com>
13829
13830 PR target/104188
13831 * config/i386/predicates.md (bcst_mem_operand): Also check mode
13832 of memory broadcast.
13833
13834 2022-01-23 Andrew Pinski <apinski@marvell.com>
13835
13836 PR target/64821
13837 * config/aarch64/aarch64-builtins.cc
13838 (aarch64_general_gimple_fold_builtin): Handle
13839 __builtin_aarch64_sqrt* and simplify into SQRT internal
13840 function.
13841
13842 2022-01-22 Jakub Jelinek <jakub@redhat.com>
13843
13844 PR other/104176
13845 * opts-global.cc (handle_common_deferred_options): Quote
13846 --enable-plugin in diagnostics to avoid -Werror=format-diag.
13847
13848 2022-01-21 Michael Meissner <meissner@the-meissners.org>
13849
13850 PR target/104136
13851 * config/rs6000/rs6000-protos.h (prefixed_xxsplti_p): Delete.
13852 * config/rs6000/rs6000.cc (prefixed_xxsplti_p): Delete.
13853 * config/rs6000/rs6000.md (prefixed attribute): Delete section
13854 that sets the prefixed attribute for xxspltiw, xxspltidp, and
13855 xxsplti32dx instructions.
13856 (movsf_hardfloat): Explicitly set the prefixed attribute
13857 when xxspltiw and xxspltidp instructions are generated.
13858 (mov<mode>_hardfloat32): Likewise.
13859 (mov<mode>_hardfloat64): Likewise.
13860 * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Explicitly set the
13861 prefixed attribute for xxspltiw and xxspltidp instructions.
13862 (vsx_mov<mode>_32bit): Likewise.
13863
13864 2022-01-21 H.J. Lu <hjl.tools@gmail.com>
13865
13866 PR bootstrap/104170
13867 * common/config/i386/i386-common.cc (ix86_supports_split_stack):
13868 Return true only on glibc.
13869 * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN):
13870 Revert commit c163647ffbc.
13871 * config/i386/gnu.h (TARGET_LIBC_PROVIDES_SSP): Likewise.
13872
13873 2022-01-21 Sören Tempel <soeren@soeren-tempel.net>
13874
13875 * common/config/s390/s390-common.cc (s390_supports_split_stack):
13876 Only support split-stack on glibc targets.
13877 * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN): Ditto.
13878 * config/i386/gnu.h (defined): Ditto.
13879
13880 2022-01-21 Bill Schmidt <wschmidt@linux.ibm.com>
13881
13882 * config/rs6000/rs6000-overload.def (VEC_SLDW): Add instances for
13883 vector float and vector double.
13884
13885 2022-01-21 Bill Seurer <seurer@gcc.gnu.org>
13886
13887 * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
13888 Fix mention of ifunc in string.
13889
13890 2022-01-21 Roger Sayle <roger@nextmovesoftware.com>
13891
13892 PR middle-end/104140
13893 * tree-ssa-math-opts.cc (convert_mult_to_highpart): Check that the
13894 operands of the widening multiplication are either both signed or
13895 both unsigned, and abort the conversion if mismatched.
13896 * doc/generic.texi (WIDEN_MULT_EXPR): Describe expression node.
13897 (MULT_HIGHPART_EXPR): Clarify that operands must have the same
13898 signedness.
13899 * tree.def (MULT_HIGHPART_EXPR): Document both operands must have
13900 integer types with the same precision and signedness.
13901 (WIDEN_MULT_EXPR): Document that operands must have integer types
13902 with the same precision, but possibly differing signedness.
13903 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Defend against
13904 riscv_current_subset_list returning a NULL pointer (empty list).
13905
13906 2022-01-21 Vladimir N. Makarov <vmakarov@redhat.com>
13907
13908 PR target/103676
13909 * ira.h (struct target_ira): Add member
13910 x_ira_exclude_class_mode_regs.
13911 (ira_exclude_class_mode_regs): New macro.
13912 * lra.h (lra_create_new_reg): Add arg exclude_start_hard_regs and
13913 move from here ...
13914 * lra-int.h: ... to here.
13915 (lra_create_new_reg_with_unique_value): Add arg
13916 exclude_start_hard_regs.
13917 (class lra_reg): Add member exclude_start_hard_regs.
13918 * lra-assigns.cc (find_hard_regno_for_1): Setup
13919 impossible_start_hard_regs from exclude_start_hard_regs.
13920 * lra-constraints.cc (get_reload_reg): Add arg exclude_start_hard_regs and pass
13921 it lra_create_new_reg[_with_unique_value].
13922 (match_reload): Ditto.
13923 (check_and_process_move): Pass NULL
13924 exclude_start_hard_regs to lra_create_new_reg_with_unique_value.
13925 (goal_alt_exclude_start_hard_regs): New static variable.
13926 (process_addr_reg, simplify_operand_subreg): Pass NULL
13927 exclude_start_hard_regs to lra_create_new_reg_with_unique_value
13928 and get_reload_reg.
13929 (process_alt_operands): Setup goal_alt_exclude_start_hard_regs.
13930 Use this_alternative_exclude_start_hard_regs additionally to find
13931 winning operand alternative.
13932 (base_to_reg, base_plus_disp_to_reg, index_part_to_reg): Pass NULL
13933 exclude_start_hard_regs to lra_create_new_reg.
13934 (process_address_1, emit_inc): Ditto.
13935 (curr_insn_transform): Pass exclude_start_hard_regs value to
13936 lra_create_new_reg, get_reload_reg, match_reload.
13937 (inherit_reload_reg, split_reg): Pass NULL exclude_start_hard_regs
13938 to lra_create_new_reg.
13939 (process_invariant_for_inheritance): Ditto.
13940 * lra-remat.cc (update_scratch_ops): Ditto.
13941 * lra.cc (lra_create_new_reg_with_unique_value): Add arg
13942 exclude_start_hard_regs. Setup the corresponding member of
13943 lra reg info.
13944 (lra_create_new_reg): Add arg exclude_start_hard_regs and pass it
13945 to lra_create_new_reg_with_unique_value.
13946 (initialize_lra_reg_info_element): Initialize member
13947 exclude_start_hard_regs.
13948 (get_scratch_reg): Pass NULL to lra_create_new_reg.
13949 * ira.cc (setup_prohibited_class_mode_regs): Rename to
13950 setup_prohibited_and_exclude_class_mode_regs and calculate
13951 ira_exclude_class_mode_regs.
13952
13953 2022-01-21 Martin Liska <mliska@suse.cz>
13954
13955 * configure.ac: Detect ld_is_mold and use it for
13956 comdat_group=yes and gcc_cv_ld_hidden=yes.
13957 * configure: Regenerate.
13958
13959 2022-01-21 Richard Biener <rguenther@suse.de>
13960
13961 PR tree-optimization/100089
13962 * tree-vect-slp.cc (vect_slp_region): Reject BB vectorization
13963 of if-converted loops with unvectorized COND_EXPRs for
13964 all but the unlimited cost models.
13965
13966 2022-01-21 Ard Biesheuvel <ardb@kernel.org>
13967
13968 * config/arm/arm-opts.h (enum stack_protector_guard): New.
13969 * config/arm/arm-protos.h (arm_stack_protect_tls_canary_mem):
13970 New.
13971 * config/arm/arm.cc (TARGET_STACK_PROTECT_GUARD): Define.
13972 (arm_option_override_internal): Handle and put in error checks.
13973 for stack protector guard options.
13974 (arm_option_reconfigure_globals): Likewise.
13975 (arm_stack_protect_tls_canary_mem): New.
13976 (arm_stack_protect_guard): New.
13977 * config/arm/arm.md (stack_protect_set): New.
13978 (stack_protect_set_tls): Likewise.
13979 (stack_protect_test): Likewise.
13980 (stack_protect_test_tls): Likewise.
13981 (reload_tp_hard): Likewise.
13982 * config/arm/arm.opt (-mstack-protector-guard): New
13983 (-mstack-protector-guard-offset): New.
13984 * doc/invoke.texi: Document new options.
13985
13986 2022-01-21 Richard Biener <rguenther@suse.de>
13987
13988 PR tree-optimization/104156
13989 * tree-ssa-loop-unswitch.cc (tree_unswitch_outer_loop):
13990 Collect and reset debug stmts with out-of-loop uses when
13991 hoisting guards.
13992 (find_loop_guard): Adjust.
13993 (empty_bb_without_guard_p): Likewise. Ignore debug stmts.
13994 (used_outside_loop_p): Push debug uses to a vector of
13995 debug stmts to reset.
13996 (hoist_guard): Adjust -fopt-info category.
13997
13998 2022-01-21 Richard Biener <rguenther@suse.de>
13999
14000 PR tree-optimization/104152
14001 * tree-vect-slp.cc (vect_build_slp_tree_2): Add missing
14002 can_duplicate_and_interleave_p check.
14003
14004 2022-01-21 Jakub Jelinek <jakub@redhat.com>
14005
14006 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
14007 Avoid passing var to warning_at when the format string doesn't
14008 refer to it.
14009
14010 2022-01-21 Aldy Hernandez <aldyh@redhat.com>
14011
14012 PR tree-optimization/103721
14013 * gimple-range-path.cc
14014 (path_range_query::relations_may_be_invalidated): New.
14015 (path_range_query::compute_ranges_in_block): Reset relations if
14016 they may be invalidated.
14017 (path_range_query::maybe_register_phi_relation): Exit if relations
14018 may be invalidated on incoming edge.
14019 (path_range_query::compute_phi_relations): Pass incoming PHI edge
14020 to maybe_register_phi_relation.
14021 * gimple-range-path.h (relations_may_be_invalidated): New.
14022 (maybe_register_phi_relation): Pass edge instead of tree.
14023 * tree-ssa-threadbackward.cc (back_threader::back_threader):
14024 Mark DFS edges.
14025 * value-relation.cc (path_oracle::path_oracle): Call
14026 mark_dfs_back_edges.
14027 (path_oracle::register_relation): Add SSA names to m_registered
14028 bitmap.
14029 (path_oracle::reset_path): Clear m_registered bitmap.
14030 * value-relation.h (path_oracle::set_root_oracle): New.
14031
14032 2022-01-21 Jakub Jelinek <jakub@redhat.com>
14033
14034 PR rtl-optimization/102478
14035 * optabs.cc (prepare_cmp_insn): If !can_create_pseudo_p (), don't
14036 force_reg constants and for -fnon-call-exceptions fail if copy_to_reg
14037 would be needed.
14038
14039 2022-01-20 Richard Biener <rguenther@suse.de>
14040
14041 PR middle-end/100786
14042 * gimple-fold.cc (get_symbol_constant_value): Only return
14043 values of compatible type to the symbol.
14044
14045 2022-01-20 Andrew MacLeod <amacleod@redhat.com>
14046
14047 * value-relation.cc (relation_oracle::valid_equivs): Query and add
14048 if valid members of a set.
14049 (equiv_oracle::register_equiv): Call valid_equivs rather than
14050 bitmap direct operations.
14051 (path_oracle::register_equiv): Ditto.
14052 * value-relation.h (relation_oracle::valid_equivs): New prototype.
14053
14054 2022-01-20 Richard Biener <rguenther@suse.de>
14055
14056 PR target/100784
14057 * config/i386/i386.cc (ix86_gimple_fold_builtin): Check for
14058 LHS before folding __builtin_ia32_shufpd and friends.
14059
14060 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
14061
14062 * config/arm/crypto.md (aes_op_protect): Allow moves from core
14063 registers and from memory.
14064 (aes_op_protect_misalign_load): New pattern.
14065 (aes_op_protect_neon_vld1v16qi): New pattern.
14066
14067 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
14068
14069 * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>_protected):
14070 New pattern.
14071 (aarch32_crypto_aese_fused_protected): Likewise.
14072 (aarch32_crypto_aesd_fused_protected): Likewise.
14073
14074 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
14075
14076 * config/arm/crypto.md (crypto_<CRYPTO_AES:crypto_pattern>): Convert
14077 to define_expand. Add mitigation for the Cortex-A AES erratum
14078 when enabled.
14079 (*crypto_<CRYPTO_AES:crypto_pattern>_insn): New pattern, based
14080 on original crypto_<CRYPTO_AES:crypto_pattern> insn.
14081 (aes_op_protect): New pattern.
14082 * config/arm/unspecs.md (unspec): Add UNSPEC_AES_PROTECT.
14083
14084 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
14085
14086 * config/arm/arm-cpus.in (quirk_aes_1742098): New quirk feature
14087 (ALL_QUIRKS): Add it.
14088 (cortex-a57, cortex-a72): Enable it.
14089 (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
14090 * config/arm/arm.opt (mfix-cortex-a57-aes-1742098): New command-line
14091 option.
14092 (mfix-cortex-a72-aes-1655431): New option alias.
14093 * config/arm/arm.cc (arm_option_override): Handle default settings
14094 for AES erratum switch.
14095 * doc/invoke.texi (Arm Options): Document new options.
14096
14097 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
14098
14099 * config/arm/crypto.md (crypto_<CYRPTO_AES:crypto_pattern>): Use
14100 <crypto_mode> rather than hard-coding the mode.
14101 (crypto_<CRYPTO_AESMC:crypto_pattern>): Fix white space.
14102 (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
14103 (*aarch32_crypto_aese_fused): Likewise.
14104 (*aarch32_crypto_aesd_fused): Likewise.
14105 (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
14106 (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
14107 (crypto_sha1h_lb): Likewise.
14108 (crypto_vmullp64): Likewise.
14109 (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
14110 (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
14111
14112 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
14113
14114 * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>): Add
14115 iterator to pattern name to disambiguate.
14116 (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
14117 (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
14118 (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
14119 (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
14120 (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
14121
14122 2022-01-20 Martin Liska <mliska@suse.cz>
14123
14124 PR bootstrap/104135
14125 * emit-rtl.cc (make_insn_raw): Fix -Wformat-diag warnings.
14126 * rtl.cc: Partially disable -Wformat-diag for RTL checking
14127 error messages.
14128
14129 2022-01-20 Jakub Jelinek <jakub@redhat.com>
14130
14131 PR debug/103874
14132 * dwarf2out.cc (index_rnglists): For !HAVE_AS_LEB128 and
14133 block_num > 0, index entry even if !have_multiple_function_sections.
14134
14135 2022-01-20 liuhongt <hongtao.liu@intel.com>
14136
14137 PR target/103771
14138 * tree-vect-stmts.cc (supportable_narrowing_operation): Enhance
14139 integral mode mask pack by multi steps which takes
14140 vec_pack_sbool_trunc_optab as start when elements number is
14141 less than BITS_PER_UNITS.
14142
14143 2022-01-20 Richard Biener <rguenther@suse.de>
14144
14145 PR tree-optimization/104114
14146 * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
14147 single element vector decomposition.
14148
14149 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
14150
14151 * ifcvt.cc (noce_convert_multiple_sets_1): New function.
14152 (noce_convert_multiple_sets): Call function a second time if we can
14153 improve the first try.
14154
14155 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
14156
14157 * ifcvt.cc (cond_exec_get_condition): New parameter to allow getting the
14158 reversed comparison.
14159 (try_emit_cmove_seq): New function to facilitate creating a cmov
14160 sequence.
14161 (noce_convert_multiple_sets): Create two sequences and use the less
14162 expensive one.
14163
14164 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
14165
14166 * rtl.h (struct rtx_comparison): New struct that holds an rtx
14167 comparison.
14168 * config/rs6000/rs6000.cc (rs6000_emit_minmax): Use struct instead of
14169 single parameters.
14170 (rs6000_emit_swsqrt): Likewise.
14171 * expmed.cc (expand_sdiv_pow2): Likewise.
14172 (emit_store_flag): Likewise.
14173 * expr.cc (expand_cond_expr_using_cmove): Likewise.
14174 (expand_expr_real_2): Likewise.
14175 * ifcvt.cc (noce_emit_cmove): Add compare and reversed compare
14176 parameters.
14177 * optabs.cc (emit_conditional_move_1): New function.
14178 (expand_doubleword_shift_condmove): Use struct.
14179 (emit_conditional_move): Use struct and allow to call directly
14180 without going through preparation steps.
14181 * optabs.h (emit_conditional_move): Use struct.
14182
14183 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
14184
14185 * ifcvt.cc (bb_ok_for_noce_convert_multiple_sets): Estimate insns costs.
14186 (noce_process_if_block): Use potential costs.
14187
14188 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
14189
14190 * ifcvt.cc (noce_convert_multiple_sets): Allow constants.
14191 (bb_ok_for_noce_convert_multiple_sets): Likewise.
14192
14193 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
14194
14195 * ifcvt.cc (need_cmov_or_rewire): New function.
14196 (noce_convert_multiple_sets): Call it.
14197
14198 2022-01-19 David Malcolm <dmalcolm@redhat.com>
14199
14200 * attribs.cc (attribute_c_tests): Rename to...
14201 (attribs_cc_tests): ...this.
14202 * bitmap.cc (bitmap_c_tests): Rename to...
14203 (bitmap_cc_tests): ...this.
14204 * cgraph.cc (cgraph_c_finalize): Rename to...
14205 (cgraph_cc_finalize): ...this.
14206 (cgraph_c_tests): Rename to...
14207 (cgraph_cc_tests): ...this.
14208 * cgraph.h (cgraph_c_finalize): Rename to...
14209 (cgraph_cc_finalize): ...this.
14210 (cgraphunit_c_finalize): Rename to...
14211 (cgraphunit_cc_finalize): ...this.
14212 * cgraphunit.cc (cgraphunit_c_finalize): Rename to...
14213 (cgraphunit_cc_finalize): ...this.
14214 * convert.cc (convert_c_tests): Rename to...
14215 (convert_cc_tests): ...this.
14216 * dbgcnt.cc (dbgcnt_c_tests): Rename to...
14217 (dbgcnt_cc_tests): ...this.
14218 * diagnostic-show-locus.cc (diagnostic_show_locus_c_tests): Rename to...
14219 (diagnostic_show_locus_cc_tests): ...this.
14220 * diagnostic.cc (diagnostic_c_tests): Rename to...
14221 (diagnostic_cc_tests): ...this.
14222 * dumpfile.cc (dumpfile_c_tests): Rename to...
14223 (dumpfile_cc_tests): ...this.
14224 * dwarf2out.cc (dwarf2out_c_finalize): Rename to...
14225 (dwarf2out_cc_finalize): ...this.
14226 * dwarf2out.h (dwarf2out_c_finalize): Rename to...
14227 (dwarf2out_cc_finalize): ...this.
14228 * edit-context.cc (edit_context_c_tests): Rename to...
14229 (edit_context_cc_tests): ...this.
14230 * et-forest.cc (et_forest_c_tests): Rename to...
14231 (et_forest_cc_tests): ...this.
14232 * fibonacci_heap.cc (fibonacci_heap_c_tests): Rename to...
14233 (fibonacci_heap_cc_tests): ...this.
14234 * fold-const.cc (fold_const_c_tests): Rename to...
14235 (fold_const_cc_tests): ...this.
14236 * function-tests.cc (function_tests_c_tests): Rename to...
14237 (function_tests_cc_tests): ...this.
14238 * gcse.cc (gcse_c_finalize): Rename to...
14239 (gcse_cc_finalize): ...this.
14240 * gcse.h (gcse_c_finalize): Rename to...
14241 (gcse_cc_finalize): ...this.
14242 * ggc-tests.cc (ggc_tests_c_tests): Rename to...
14243 (ggc_tests_cc_tests): ...this.
14244 * gimple-ssa-store-merging.cc (store_merging_c_tests): Rename to...
14245 (store_merging_cc_tests): ...this.
14246 * gimple.cc (gimple_c_tests): Rename to...
14247 (gimple_cc_tests): ...this.
14248 * hash-map-tests.cc (hash_map_tests_c_tests): Rename to...
14249 (hash_map_tests_cc_tests): ...this.
14250 * hash-set-tests.cc (hash_set_tests_c_tests): Rename to...
14251 (hash_set_tests_cc_tests): ...this.
14252 * input.cc (input_c_tests): Rename to...
14253 (input_cc_tests): ...this.
14254 * ipa-cp.cc (ipa_cp_c_finalize): Rename to...
14255 (ipa_cp_cc_finalize): ...this.
14256 * ipa-fnsummary.cc (ipa_fnsummary_c_finalize): Rename to...
14257 (ipa_fnsummary_cc_finalize): ...this.
14258 * ipa-fnsummary.h (ipa_fnsummary_c_finalize): Rename to...
14259 (ipa_fnsummary_cc_finalize): ...this.
14260 * ipa-modref-tree.cc (ipa_modref_tree_c_tests): Rename to...
14261 (ipa_modref_tree_cc_tests): ...this.
14262 * ipa-modref-tree.h (modref_c_tests): Delete bogus decl.
14263 * ipa-modref.cc (ipa_modref_c_finalize): Rename to...
14264 (ipa_modref_cc_finalize): ...this.
14265 * ipa-modref.h (ipa_modref_c_finalize): Rename to...
14266 (ipa_modref_cc_finalize): ...this.
14267 * ipa-prop.h (ipa_cp_c_finalize): Rename to...
14268 (ipa_cp_cc_finalize): ...this.
14269 * ipa-reference.cc (ipa_reference_c_finalize): Rename to...
14270 (ipa_reference_cc_finalize): ...this.
14271 * ipa-reference.h (ipa_reference_c_finalize): Rename to...
14272 (ipa_reference_cc_finalize): ...this.
14273 * ira-costs.cc (ira_costs_c_finalize): Rename to...
14274 (ira_costs_cc_finalize): ...this.
14275 * ira.h (ira_costs_c_finalize): Rename to...
14276 (ira_costs_cc_finalize): ...this.
14277 * opt-suggestions.cc (opt_proposer_c_tests): Rename to...
14278 (opt_suggestions_cc_tests): ...this.
14279 * opts.cc (opts_c_tests): Rename to...
14280 (opts_cc_tests): ...this.
14281 * predict.cc (predict_c_tests): Rename to...
14282 (predict_cc_tests): ...this.
14283 * pretty-print.cc (pretty_print_c_tests): Rename to...
14284 (pretty_print_cc_tests): ...this.
14285 * read-rtl-function.cc (read_rtl_function_c_tests): Rename to...
14286 (read_rtl_function_cc_tests): ...this.
14287 * rtl-tests.cc (rtl_tests_c_tests): Rename to...
14288 (rtl_tests_cc_tests): ...this.
14289 * sbitmap.cc (sbitmap_c_tests): Rename to...
14290 (sbitmap_cc_tests): ...this.
14291 * selftest-run-tests.cc (selftest::run_tests): Update calls for
14292 _c_ to _cc_ function renamings; fix names of attribs and
14293 opt-suggestions tests.
14294 * selftest.cc (selftest_c_tests): Rename to...
14295 (selftest_cc_tests): ...this.
14296 * selftest.h (attribute_c_tests): Rename to...
14297 (attribs_cc_tests): ...this.
14298 (bitmap_c_tests): Rename to...
14299 (bitmap_cc_tests): ...this.
14300 (cgraph_c_tests): Rename to...
14301 (cgraph_cc_tests): ...this.
14302 (convert_c_tests): Rename to...
14303 (convert_cc_tests): ...this.
14304 (diagnostic_c_tests): Rename to...
14305 (diagnostic_cc_tests): ...this.
14306 (diagnostic_show_locus_c_tests): Rename to...
14307 (diagnostic_show_locus_cc_tests): ...this.
14308 (dumpfile_c_tests): Rename to...
14309 (dumpfile_cc_tests): ...this.
14310 (edit_context_c_tests): Rename to...
14311 (edit_context_cc_tests): ...this.
14312 (et_forest_c_tests): Rename to...
14313 (et_forest_cc_tests): ...this.
14314 (fibonacci_heap_c_tests): Rename to...
14315 (fibonacci_heap_cc_tests): ...this.
14316 (fold_const_c_tests): Rename to...
14317 (fold_const_cc_tests): ...this.
14318 (function_tests_c_tests): Rename to...
14319 (function_tests_cc_tests): ...this.
14320 (ggc_tests_c_tests): Rename to...
14321 (ggc_tests_cc_tests): ...this.
14322 (gimple_c_tests): Rename to...
14323 (gimple_cc_tests): ...this.
14324 (hash_map_tests_c_tests): Rename to...
14325 (hash_map_tests_cc_tests): ...this.
14326 (hash_set_tests_c_tests): Rename to...
14327 (hash_set_tests_cc_tests): ...this.
14328 (input_c_tests): Rename to...
14329 (input_cc_tests): ...this.
14330 (opts_c_tests): Rename to...
14331 (opts_cc_tests): ...this.
14332 (predict_c_tests): Rename to...
14333 (predict_cc_tests): ...this.
14334 (pretty_print_c_tests): Rename to...
14335 (pretty_print_cc_tests): ...this.
14336 (read_rtl_function_c_tests): Rename to...
14337 (read_rtl_function_cc_tests): ...this.
14338 (rtl_tests_c_tests): Rename to...
14339 (rtl_tests_cc_tests): ...this.
14340 (sbitmap_c_tests): Rename to...
14341 (sbitmap_cc_tests): ...this.
14342 (selftest_c_tests): Rename to...
14343 (selftest_cc_tests): ...this.
14344 (simplify_rtx_c_tests): Rename to...
14345 (simplify_rtx_cc_tests): ...this.
14346 (spellcheck_c_tests): Rename to...
14347 (spellcheck_cc_tests): ...this.
14348 (spellcheck_tree_c_tests): Rename to...
14349 (spellcheck_tree_cc_tests): ...this.
14350 (sreal_c_tests): Rename to...
14351 (sreal_cc_tests): ...this.
14352 (store_merging_c_tests): Rename to...
14353 (store_merging_cc_tests): ...this.
14354 (tree_c_tests): Rename to...
14355 (tree_cc_tests): ...this.
14356 (tree_cfg_c_tests): Rename to...
14357 (tree_cfg_cc_tests): ...this.
14358 (typed_splay_tree_c_tests): Rename to...
14359 (typed_splay_tree_cc_tests): ...this.
14360 (vec_c_tests): Rename to...
14361 (vec_cc_tests): ...this.
14362 (vec_perm_indices_c_tests): Rename to...
14363 (vec_perm_indices_cc_tests): ..this.
14364 (opt_proposer_c_tests): Rename to...
14365 (opt_suggestions_cc_tests): ...this.
14366 (dbgcnt_c_tests): Rename to...
14367 (dbgcnt_cc_tests): ...this.
14368 (ipa_modref_tree_c_tests): Rename to...
14369 (ipa_modref_tree_cc_tests): ...this.
14370 * simplify-rtx.cc (simplify_rtx_c_tests): Rename to...
14371 (simplify_rtx_cc_tests): ...this.
14372 * spellcheck-tree.cc (spellcheck_tree_c_tests): Rename to...
14373 (spellcheck_tree_cc_tests): ...this.
14374 * spellcheck.cc (spellcheck_c_tests): Rename to...
14375 (spellcheck_cc_tests): ...this.
14376 * sreal.cc (sreal_c_tests): Rename to...
14377 (sreal_cc_tests): ...this.
14378 * toplev.cc (toplev::finalize): Update calls for _c_ to _cc_
14379 function renamings.
14380 * tree-cfg.cc (tree_cfg_c_tests): Rename to...
14381 (tree_cfg_cc_tests): ...this.
14382 * tree.cc (tree_c_tests): Rename to...
14383 (tree_cc_tests): ...this.
14384 * typed-splay-tree.cc (typed_splay_tree_c_tests): Rename to...
14385 (typed_splay_tree_cc_tests): ...this.
14386 * vec-perm-indices.cc (vec_perm_indices_c_tests): Rename to...
14387 (vec_perm_indices_cc_tests): ...this.
14388 * vec.cc (vec_c_tests): Rename to...
14389 (vec_cc_tests): ...this.
14390
14391 2022-01-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
14392
14393 PR tree-optimization/103997
14394 * tree-vect-loop.cc (vect_analyze_loop): Fix mode skipping for epilogue
14395 vectorization.
14396
14397 2022-01-19 Jakub Jelinek <jakub@redhat.com>
14398
14399 PR middle-end/102860
14400 * match.pd (x %[fl] y -> x % y): New simplification for
14401 unsigned integral types.
14402 * optabs-tree.cc (optab_for_tree_code): Return unknown_optab
14403 for {CEIL,FLOOR,ROUND}_{DIV,MOD}_EXPR with VECTOR_TYPE.
14404
14405 2022-01-19 Richard Biener <rguenther@suse.de>
14406
14407 PR tree-optimization/104112
14408 * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
14409 for required intermediate vector types.
14410
14411 2022-01-19 Jakub Jelinek <jakub@redhat.com>
14412
14413 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Add default:.
14414
14415 2022-01-19 Martin Liska <mliska@suse.cz>
14416
14417 * configure.ac: Remove -Wno-error=format-diag.
14418 * configure: Regenerate.
14419
14420 2022-01-19 Martin Liska <mliska@suse.cz>
14421
14422 * config/riscv/riscv.cc (riscv_handle_type_attribute):
14423 Update one -Wformat-diag string in warning message.
14424
14425 2022-01-19 Jakub Jelinek <jakub@redhat.com>
14426
14427 PR middle-end/104103
14428 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Don't check
14429 .ASAN_MARK calls.
14430
14431 2022-01-19 Jakub Jelinek <jakub@redhat.com>
14432
14433 PR c++/89074
14434 * fold-const.cc (address_compare): Consider different STRING_CSTs
14435 with the same lengths that memcmp the same as equal, not different.
14436
14437 2022-01-19 Jakub Jelinek <jakub@redhat.com>
14438
14439 * config/i386/sse.md (*aes<aeswideklvariant>u*): Use %0 instead of
14440 {%0}.
14441
14442 2022-01-19 Martin Liska <mliska@suse.cz>
14443 Thomas Schwinge <thomas@codesourcery.com>
14444
14445 * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Update
14446 warning messages.
14447
14448 2022-01-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
14449
14450 PR target/104090
14451 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Use also
14452 rs6000_cpu.
14453
14454 2022-01-19 Jakub Jelinek <jakub@redhat.com>
14455
14456 PR target/104104
14457 * config/i386/sse.md
14458 (<avx512>_<complexopname>_<mode><maskc_name><round_name>,
14459 avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>,
14460 avx512dq_mul<mode>3<mask_name>, <avx2_avx512>_permvar<mode><mask_name>,
14461 avx2_perm<mode>_1<mask_name>, avx512f_perm<mode>_1<mask_name>,
14462 avx512dq_rangep<mode><mask_name><round_saeonly_name>,
14463 avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>,
14464 <avx512>_getmant<mode><mask_name><round_saeonly_name>,
14465 avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
14466 Use vxorps\t%x0, %x0, %x0 instead of vxorps\t{%x0, %x0, %x0}.
14467
14468 2022-01-19 Martin Sebor <msebor@redhat.com>
14469
14470 PR middle-end/104069
14471 * gimple-ssa-warn-access.cc (pointers_related_p): Return false for
14472 an unknown result as documented.
14473
14474 2022-01-18 Andrew Pinski <apinski@marvell.com>
14475
14476 * ipa-split.cc (visit_bb): Fix comment before the
14477 warning/error attribute checking code.
14478
14479 2022-01-18 David Faust <david.faust@oracle.com>
14480
14481 * config/bpf/coreout.cc (bpf_core_reloc_add): Do not account
14482 for base strtab offset yet as it may change.
14483 (output_asm_btfext_core_reloc): Do so here instead.
14484 (output_btfext_core_sections): Likewise.
14485
14486 2022-01-18 David Faust <david.faust@oracle.com>
14487
14488 * config/bpf/coreout.cc (output_btfext_header): Account for
14489 4-byte record size in core_relo_len.
14490 (output_btfext_core_sections): Only write record size once.
14491 * config/bpf/coreout.h (btf_ext_section_header): Delete unused
14492 member.
14493
14494 2022-01-18 Maciej W. Rozycki <macro@embecosm.com>
14495
14496 * common/config/riscv/riscv-common.cc
14497 (riscv_subset_list::parse_multiletter_ext): Move pointer
14498 arithmetic ahead of `free'.
14499
14500 2022-01-18 Jason Merrill <jason@redhat.com>
14501
14502 PR c++/104007
14503 * gimplify.cc (gimple_push_cleanup): Handle eh_only in conditional
14504 context.
14505
14506 2022-01-18 Sandra Loosemore <sandra@codesourcery.com>
14507
14508 PR middle-end/103163
14509 * emit-rtl.cc (init_emit_regs): Initialize stack_limit_rtx here...
14510 (init_emit_once): ...not here.
14511
14512 2022-01-18 Martin Liska <mliska@suse.cz>
14513
14514 * collect2.cc (scan_libraries): Fix -Wformat-diag issues.
14515 * config/aarch64/aarch64-builtins.cc (aarch64_simd_expand_builtin): Likewise.
14516 * config/arc/arc.md: Likewise.
14517 * config/avr/avr.cc (avr_section_type_flags): Likewise.
14518 * config/bfin/bfin.cc (bfin_option_override): Likewise.
14519 (bfin_handle_longcall_attribute): Likewise.
14520 * config/cris/cris.h (FUNCTION_PROFILER): Likewise.
14521 * config/frv/frv.cc (frv_expand_builtin): Likewise.
14522 * config/ia64/ia64-c.cc (ia64_hpux_handle_builtin_pragma): Likewise.
14523 * config/iq2000/iq2000.cc (save_restore_insns): Likewise.
14524 (iq2000_print_operand_address): Likewise.
14525 (iq2000_print_operand): Likewise.
14526 * config/m32c/m32c-pragma.cc (m32c_pragma_memregs): Likewise.
14527 (m32c_pragma_address): Likewise.
14528 * config/m68k/m68k.cc (m68k_handle_fndecl_attribute): Likewise.
14529 * config/mips/mips.cc (mips_handle_interrupt_attr): Likewise.
14530 (mips_set_compression_mode): Likewise.
14531 * config/mmix/mmix.cc (mmix_function_profiler): Likewise.
14532 (mmix_print_operand): Likewise.
14533 (mmix_output_shiftvalue_op_from_str): Likewise.
14534 (mmix_output_shifted_value): Likewise.
14535 * config/msp430/driver-msp430.cc (msp430_select_hwmult_lib): Likewise.
14536 * config/msp430/msp430.cc (msp430_option_override): Likewise.
14537 (msp430_attr): Likewise.
14538 (msp430_expand_delay_cycles): Likewise.
14539 (msp430_expand_builtin): Likewise.
14540 * config/rs6000/aix73.h: Likewise.
14541 * config/rs6000/rtems.h (INVALID_64BIT): Likewise.
14542 * config/rx/rx.cc (rx_expand_builtin_mvtc): Likewise.
14543 (valid_psw_flag): Likewise.
14544 * config/sh/sh.cc (parse_validate_atomic_model_option): Likewise.
14545 * config/stormy16/stormy16.cc (xstormy16_function_profiler): Likewise.
14546 (xstormy16_expand_builtin_va_start): Likewise.
14547 (xstormy16_handle_below100_attribute): Likewise.
14548
14549 2022-01-18 Martin Liska <mliska@suse.cz>
14550
14551 * config/vms/vms-c.cc (vms_pragma_nostandard): Fix -Wformat-diag
14552 warning.
14553 (vms_pragma_standard): Likewise.
14554 (vms_pragma_extern_prefix): Likewise.
14555
14556 2022-01-18 Martin Liska <mliska@suse.cz>
14557
14558 * config/xtensa/xtensa.cc (print_operand): Fix warnings.
14559 (print_operand_address): Likewise.
14560 (xtensa_multibss_section_type_flags): Likewise.
14561
14562 2022-01-18 Martin Liska <mliska@suse.cz>
14563
14564 * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Change
14565 wording of an error message.
14566
14567 2022-01-18 Martin Liska <mliska@suse.cz>
14568
14569 * config/v850/v850-c.cc (pop_data_area): Fix -Wformat-diag
14570 warning.
14571 (ghs_pragma_section): Likewise.
14572 (ghs_pragma_interrupt): Likewise.
14573 (ghs_pragma_starttda): Likewise.
14574 (ghs_pragma_startsda): Likewise.
14575 (ghs_pragma_startzda): Likewise.
14576 (ghs_pragma_endtda): Likewise.
14577 (ghs_pragma_endsda): Likewise.
14578 (ghs_pragma_endzda): Likewise.
14579
14580 2022-01-18 Martin Liska <mliska@suse.cz>
14581
14582 * config/nds32/nds32-intrinsic.cc (nds32_expand_builtin_impl):
14583 Fix warnings.
14584 * config/nds32/nds32-intrinsic.md: Likewise.
14585 * config/nds32/nds32-isr.cc (nds32_check_isr_attrs_conflict): Likewise.
14586 * config/nds32/nds32.cc (nds32_print_operand): Likewise.
14587 (nds32_insert_attributes): Likewise.
14588
14589 2022-01-18 Martin Liska <mliska@suse.cz>
14590
14591 * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Wrap
14592 keyword.
14593 * config/nvptx/nvptx.md: Remove trailing dot.
14594
14595 2022-01-18 Martin Liska <mliska@suse.cz>
14596
14597 * common/config/riscv/riscv-common.cc (riscv_subset_list::add):
14598 Wrap keywords with quotes and remove trailing dots.
14599 (riscv_subset_list::parsing_subset_version): Likewise.
14600 (riscv_subset_list::parse_std_ext): Likewise.
14601 (riscv_subset_list::parse_multiletter_ext): Likewise.
14602 * config/riscv/riscv.cc (riscv_handle_type_attribute): Likewise.
14603
14604 2022-01-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
14605
14606 * tree-vect-loop.cc (vect_estimate_min_profitable_iters): Pass new
14607 argument suggested_unroll_factor.
14608 (vect_analyze_loop_costing): Likewise.
14609 (_loop_vec_info::_loop_vec_info): Initialize new member
14610 suggested_unroll_factor.
14611 (vect_determine_partial_vectors_and_peeling): Make epilogue of unrolled
14612 main loop use partial vectors.
14613 (vect_analyze_loop_2): Pass and use new argument
14614 suggested_unroll_factor.
14615 (vect_analyze_loop_1): Change to intialize local
14616 suggested_unroll_factor and use it.
14617 (vectorizable_reduction): Don't use single_defuse_cycle when unrolling.
14618 * tree-vectorizer.h (_loop_vec_info::_loop_vec_info): Add new member
14619 suggested_unroll_factor.
14620 (vector_costs::vector_costs): Add new member m_suggested_unroll_factor.
14621 (vector_costs::suggested_unroll_factor): New getter function.
14622 (finish_cost): Set return argument suggested_unroll_factor.
14623
14624 2022-01-18 Andrew MacLeod <amacleod@redhat.com>
14625
14626 PR tree-optimization/104038
14627 * doc/invoke.texi (relation-block-limit): New.
14628 * params.opt (relation-block-limit): New.
14629 * value-relation.cc (dom_oracle::register_relation): Check for NULL
14630 record before invoking transitive registery.
14631 (dom_oracle::set_one_relation): Check limit before creating record.
14632 (dom_oracle::register_transitives): Stop when no record created.
14633 * value-relation.h (relation_chain_head::m_num_relations): New.
14634
14635 2022-01-18 Richard Biener <rguenther@suse.de>
14636
14637 PR ipa/103989
14638 * ipa-inline.cc (inline_small_functions): Do not enqueue call
14639 edges originating in functions compiled with -Og.
14640
14641 2022-01-18 Richard Biener <rguenther@suse.de>
14642
14643 PR ipa/103989
14644 * passes.def (pass_all_optimizations_g): Remove pass_modref
14645 and pass_local_pure_const.
14646
14647 2022-01-18 Martin Liska <mliska@suse.cz>
14648
14649 * config/s390/s390.cc: Fix -Wformat-diag warnings.
14650
14651 2022-01-18 Martin Liska <mliska@suse.cz>
14652
14653 * config/s390/s390-c.cc (s390_expand_overloaded_builtin): Wrap
14654 keyword in quotes.
14655 (s390_resolve_overloaded_builtin): Remove trailing dot.
14656 * config/s390/s390.cc (s390_const_operand_ok): Use - for range.
14657 (s390_expand_builtin): Remove trailing dot.
14658 (s390_emit_prologue): Likewise, use semicolon.
14659 (s390_option_override_internal): Update keyword.
14660 * varasm.cc (do_assemble_alias): Wrap keyword in quotes.
14661
14662 2022-01-18 Martin Liska <mliska@suse.cz>
14663
14664 * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Wrap
14665 keywords and use %qs instead of %<%s%>.
14666
14667 2022-01-18 Richard Biener <rguenther@suse.de>
14668
14669 PR tree-optimization/103987
14670 * tree-ssa-dse.cc (dse_optimize_call): Properly guard modref
14671 query with a pointer check.
14672
14673 2022-01-18 Richard Sandiford <richard.sandiford@arm.com>
14674
14675 PR target/104005
14676 * config/aarch64/aarch64.cc (aarch64_check_consecutive_mems):
14677 When using MEM_EXPR, require the base to be a decl.
14678
14679 2022-01-18 Richard Biener <rguenther@suse.de>
14680
14681 * cgraph.h (struct cgraph_simd_clone_arg): Re-arrange fields to
14682 avoid padding.
14683 * function.h (struct function): Likewise.
14684
14685 2022-01-18 Arnaud Charlet <charlet@adacore.com>
14686
14687 * doc/install.texi: Update prerequisites for GNAT
14688
14689 2022-01-18 Andrew Pinski <apinski@marvell.com>
14690
14691 PR tree-optimization/101941
14692 * ipa-split.cc (visit_bb): Disallow function calls where
14693 the function has either error or warning attribute.
14694
14695 2022-01-18 Richard Biener <rguenther@suse.de>
14696
14697 PR tree-optimization/104064
14698 * tree-vect-data-refs.cc (vect_analyze_data_ref_accesses): Check
14699 DR_INIT fits in a signed HWI, represent the difference from the
14700 first DR in unsigned.
14701
14702 2022-01-17 Martin Liska <mliska@suse.cz>
14703
14704 * Makefile.in: Rename .c names to .cc.
14705 * config.gcc: Likewise.
14706 * configure: Regenerate. Likewise.
14707 * configure.ac: Likewise.
14708 * gengtype.cc (set_gc_used): Likewise.
14709 (source_dot_c_frul): Likewise.
14710 (source_dot_cc_frul): Likewise.
14711 (struct file_rule_st): Likewise.
14712 (close_output_files): Likewise.
14713 * config/avr/t-avr: Use CXXFLAGS_* and CXX_FOR_BUILD.
14714
14715 2022-01-17 Martin Liska <mliska@suse.cz>
14716
14717 * Makefile.in: Rename .c names to .cc.
14718 * alias.h: Likewise.
14719 * asan.cc: Likewise.
14720 * auto-profile.h: Likewise.
14721 * basic-block.h (struct basic_block_d): Likewise.
14722 * btfout.cc: Likewise.
14723 * builtins.cc (expand_builtin_longjmp): Likewise.
14724 (validate_arg): Likewise.
14725 (access_ref::offset_bounded): Likewise.
14726 * caller-save.cc (reg_restore_code): Likewise.
14727 (setup_save_areas): Likewise.
14728 * calls.cc (initialize_argument_information): Likewise.
14729 (expand_call): Likewise.
14730 (emit_library_call_value_1): Likewise.
14731 * cfg-flags.def (RTL): Likewise.
14732 (SIBCALL): Likewise.
14733 (CAN_FALLTHRU): Likewise.
14734 * cfganal.cc (post_order_compute): Likewise.
14735 * cfgcleanup.cc (try_simplify_condjump): Likewise.
14736 (merge_blocks_move_predecessor_nojumps): Likewise.
14737 (merge_blocks_move_successor_nojumps): Likewise.
14738 (merge_blocks_move): Likewise.
14739 (old_insns_match_p): Likewise.
14740 (try_crossjump_bb): Likewise.
14741 * cfgexpand.cc (expand_gimple_stmt): Likewise.
14742 * cfghooks.cc (split_block_before_cond_jump): Likewise.
14743 (profile_record_check_consistency): Likewise.
14744 * cfghooks.h: Likewise.
14745 * cfgrtl.cc (pass_free_cfg::execute): Likewise.
14746 (rtl_can_merge_blocks): Likewise.
14747 (try_redirect_by_replacing_jump): Likewise.
14748 (make_pass_outof_cfg_layout_mode): Likewise.
14749 (cfg_layout_can_merge_blocks_p): Likewise.
14750 * cgraph.cc (release_function_body): Likewise.
14751 (cgraph_node::get_fun): Likewise.
14752 * cgraph.h (struct cgraph_node): Likewise.
14753 (asmname_hasher::equal): Likewise.
14754 (cgraph_inline_failed_type): Likewise.
14755 (thunk_adjust): Likewise.
14756 (dump_callgraph_transformation): Likewise.
14757 (record_references_in_initializer): Likewise.
14758 (ipa_discover_variable_flags): Likewise.
14759 * cgraphclones.cc (GTY): Likewise.
14760 * cgraphunit.cc (symbol_table::finalize_compilation_unit): Likewise.
14761 * collect-utils.h (GCC_COLLECT_UTILS_H): Likewise.
14762 * collect2-aix.h (GCC_COLLECT2_AIX_H): Likewise.
14763 * collect2.cc (maybe_run_lto_and_relink): Likewise.
14764 * combine-stack-adj.cc: Likewise.
14765 * combine.cc (setup_incoming_promotions): Likewise.
14766 (combine_simplify_rtx): Likewise.
14767 (count_rtxs): Likewise.
14768 * common.opt: Likewise.
14769 * common/config/aarch64/aarch64-common.cc: Likewise.
14770 * common/config/arm/arm-common.cc (arm_asm_auto_mfpu): Likewise.
14771 * common/config/avr/avr-common.cc: Likewise.
14772 * common/config/i386/i386-isas.h (struct _isa_names_table): Likewise.
14773 * conditions.h: Likewise.
14774 * config.gcc: Likewise.
14775 * config/aarch64/aarch64-builtins.cc (aarch64_resolve_overloaded_memtag): Likewise.
14776 * config/aarch64/aarch64-protos.h (aarch64_classify_address): Likewise.
14777 (aarch64_get_extension_string_for_isa_flags): Likewise.
14778 * config/aarch64/aarch64-sve-builtins.cc (function_builder::add_function): Likewise.
14779 * config/aarch64/aarch64.cc (aarch64_regmode_natural_size): Likewise.
14780 (aarch64_sched_first_cycle_multipass_dfa_lookahead): Likewise.
14781 (aarch64_option_valid_attribute_p): Likewise.
14782 (aarch64_short_vector_p): Likewise.
14783 (aarch64_float_const_representable_p): Likewise.
14784 * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise.
14785 (ASM_OUTPUT_POOL_EPILOGUE): Likewise.
14786 (GTY): Likewise.
14787 * config/aarch64/cortex-a57-fma-steering.cc: Likewise.
14788 * config/aarch64/driver-aarch64.cc (contains_core_p): Likewise.
14789 * config/aarch64/t-aarch64: Likewise.
14790 * config/aarch64/x-aarch64: Likewise.
14791 * config/aarch64/x-darwin: Likewise.
14792 * config/alpha/alpha-protos.h: Likewise.
14793 * config/alpha/alpha.cc (alpha_scalar_mode_supported_p): Likewise.
14794 * config/alpha/alpha.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
14795 (enum reg_class): Likewise.
14796 * config/alpha/alpha.md: Likewise.
14797 * config/alpha/driver-alpha.cc (AMASK_LOCKPFTCHOK): Likewise.
14798 * config/alpha/x-alpha: Likewise.
14799 * config/arc/arc-protos.h (arc_eh_uses): Likewise.
14800 * config/arc/arc.cc (ARC_OPT): Likewise.
14801 (arc_ccfsm_advance): Likewise.
14802 (arc_arg_partial_bytes): Likewise.
14803 (conditionalize_nonjump): Likewise.
14804 * config/arc/arc.md: Likewise.
14805 * config/arc/builtins.def: Likewise.
14806 * config/arc/t-arc: Likewise.
14807 * config/arm/arm-c.cc (arm_resolve_overloaded_builtin): Likewise.
14808 (arm_pragma_target_parse): Likewise.
14809 * config/arm/arm-protos.h (save_restore_target_globals): Likewise.
14810 (arm_cpu_cpp_builtins): Likewise.
14811 * config/arm/arm.cc (vfp3_const_double_index): Likewise.
14812 (shift_op): Likewise.
14813 (thumb2_final_prescan_insn): Likewise.
14814 (arm_final_prescan_insn): Likewise.
14815 (arm_asm_output_labelref): Likewise.
14816 (arm_small_register_classes_for_mode_p): Likewise.
14817 * config/arm/arm.h: Likewise.
14818 * config/arm/arm.md: Likewise.
14819 * config/arm/driver-arm.cc: Likewise.
14820 * config/arm/symbian.h: Likewise.
14821 * config/arm/t-arm: Likewise.
14822 * config/arm/thumb1.md: Likewise.
14823 * config/arm/x-arm: Likewise.
14824 * config/avr/avr-c.cc (avr_register_target_pragmas): Likewise.
14825 * config/avr/avr-fixed.md: Likewise.
14826 * config/avr/avr-log.cc (avr_log_vadump): Likewise.
14827 * config/avr/avr-mcus.def: Likewise.
14828 * config/avr/avr-modes.def (FRACTIONAL_INT_MODE): Likewise.
14829 * config/avr/avr-passes.def (INSERT_PASS_BEFORE): Likewise.
14830 * config/avr/avr-protos.h (make_avr_pass_casesi): Likewise.
14831 * config/avr/avr.cc (avr_option_override): Likewise.
14832 (avr_build_builtin_va_list): Likewise.
14833 (avr_mode_dependent_address_p): Likewise.
14834 (avr_function_arg_advance): Likewise.
14835 (avr_asm_output_aligned_decl_common): Likewise.
14836 * config/avr/avr.h (RETURN_ADDR_RTX): Likewise.
14837 (SUPPORTS_INIT_PRIORITY): Likewise.
14838 * config/avr/avr.md: Likewise.
14839 * config/avr/builtins.def: Likewise.
14840 * config/avr/gen-avr-mmcu-specs.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
14841 * config/avr/gen-avr-mmcu-texi.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
14842 (main): Likewise.
14843 * config/avr/t-avr: Likewise.
14844 * config/bfin/bfin.cc (frame_related_constant_load): Likewise.
14845 * config/bpf/bpf-protos.h (GCC_BPF_PROTOS_H): Likewise.
14846 * config/bpf/bpf.h (enum reg_class): Likewise.
14847 * config/bpf/t-bpf: Likewise.
14848 * config/c6x/c6x-protos.h (GCC_C6X_PROTOS_H): Likewise.
14849 * config/cr16/cr16-protos.h: Likewise.
14850 * config/cris/cris.cc (cris_address_cost): Likewise.
14851 (cris_side_effect_mode_ok): Likewise.
14852 (cris_init_machine_status): Likewise.
14853 (cris_emit_movem_store): Likewise.
14854 * config/cris/cris.h (INDEX_REG_CLASS): Likewise.
14855 (enum reg_class): Likewise.
14856 (struct cum_args): Likewise.
14857 * config/cris/cris.opt: Likewise.
14858 * config/cris/sync.md: Likewise.
14859 * config/csky/csky.cc (csky_expand_prologue): Likewise.
14860 * config/darwin-c.cc: Likewise.
14861 * config/darwin-f.cc: Likewise.
14862 * config/darwin-sections.def (zobj_const_section): Likewise.
14863 * config/darwin.cc (output_objc_section_asm_op): Likewise.
14864 (fprintf): Likewise.
14865 * config/darwin.h (GTY): Likewise.
14866 * config/elfos.h: Likewise.
14867 * config/epiphany/epiphany-sched.md: Likewise.
14868 * config/epiphany/epiphany.cc (epiphany_function_value): Likewise.
14869 * config/epiphany/epiphany.h (GTY): Likewise.
14870 (NO_FUNCTION_CSE): Likewise.
14871 * config/epiphany/mode-switch-use.cc: Likewise.
14872 * config/epiphany/predicates.md: Likewise.
14873 * config/epiphany/t-epiphany: Likewise.
14874 * config/fr30/fr30-protos.h: Likewise.
14875 * config/frv/frv-protos.h: Likewise.
14876 * config/frv/frv.cc (TLS_BIAS): Likewise.
14877 * config/frv/frv.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
14878 * config/ft32/ft32-protos.h: Likewise.
14879 * config/gcn/gcn-hsa.h (ASM_APP_OFF): Likewise.
14880 * config/gcn/gcn.cc (gcn_init_libfuncs): Likewise.
14881 * config/gcn/mkoffload.cc (copy_early_debug_info): Likewise.
14882 * config/gcn/t-gcn-hsa: Likewise.
14883 * config/gcn/t-omp-device: Likewise.
14884 * config/h8300/h8300-protos.h (GCC_H8300_PROTOS_H): Likewise.
14885 (same_cmp_following_p): Likewise.
14886 * config/h8300/h8300.cc (F): Likewise.
14887 * config/h8300/h8300.h (struct cum_arg): Likewise.
14888 (BRANCH_COST): Likewise.
14889 * config/i386/cygming.h (DEFAULT_PCC_STRUCT_RETURN): Likewise.
14890 * config/i386/djgpp.h (TARGET_ASM_LTO_END): Likewise.
14891 * config/i386/dragonfly.h (NO_PROFILE_COUNTERS): Likewise.
14892 * config/i386/driver-i386.cc (detect_caches_intel): Likewise.
14893 * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise.
14894 * config/i386/i386-c.cc (ix86_target_macros): Likewise.
14895 * config/i386/i386-expand.cc (get_mode_wider_vector): Likewise.
14896 * config/i386/i386-options.cc (ix86_set_func_type): Likewise.
14897 * config/i386/i386-protos.h (ix86_extract_perm_from_pool_constant): Likewise.
14898 (ix86_register_pragmas): Likewise.
14899 (ix86_d_has_stdcall_convention): Likewise.
14900 (i386_pe_seh_init_sections): Likewise.
14901 * config/i386/i386.cc (ix86_function_arg_regno_p): Likewise.
14902 (ix86_function_value_regno_p): Likewise.
14903 (ix86_compute_frame_layout): Likewise.
14904 (legitimize_pe_coff_symbol): Likewise.
14905 (output_pic_addr_const): Likewise.
14906 * config/i386/i386.h (defined): Likewise.
14907 (host_detect_local_cpu): Likewise.
14908 (CONSTANT_ADDRESS_P): Likewise.
14909 (DEFAULT_LARGE_SECTION_THRESHOLD): Likewise.
14910 (struct machine_frame_state): Likewise.
14911 * config/i386/i386.md: Likewise.
14912 * config/i386/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
14913 * config/i386/mmx.md: Likewise.
14914 * config/i386/sse.md: Likewise.
14915 * config/i386/t-cygming: Likewise.
14916 * config/i386/t-djgpp: Likewise.
14917 * config/i386/t-gnu-property: Likewise.
14918 * config/i386/t-i386: Likewise.
14919 * config/i386/t-intelmic: Likewise.
14920 * config/i386/t-omp-device: Likewise.
14921 * config/i386/winnt-cxx.cc (i386_pe_type_dllimport_p): Likewise.
14922 (i386_pe_adjust_class_at_definition): Likewise.
14923 * config/i386/winnt.cc (gen_stdcall_or_fastcall_suffix): Likewise.
14924 (i386_pe_mangle_decl_assembler_name): Likewise.
14925 (i386_pe_encode_section_info): Likewise.
14926 * config/i386/x-cygwin: Likewise.
14927 * config/i386/x-darwin: Likewise.
14928 * config/i386/x-i386: Likewise.
14929 * config/i386/x-mingw32: Likewise.
14930 * config/i386/x86-tune-sched-core.cc: Likewise.
14931 * config/i386/x86-tune.def: Likewise.
14932 * config/i386/xm-djgpp.h (STANDARD_STARTFILE_PREFIX_1): Likewise.
14933 * config/ia64/freebsd.h: Likewise.
14934 * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Likewise.
14935 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Likewise.
14936 * config/ia64/ia64.cc (ia64_function_value_regno_p): Likewise.
14937 (ia64_secondary_reload_class): Likewise.
14938 (bundling): Likewise.
14939 * config/ia64/ia64.h: Likewise.
14940 * config/ia64/ia64.md: Likewise.
14941 * config/ia64/predicates.md: Likewise.
14942 * config/ia64/sysv4.h: Likewise.
14943 * config/ia64/t-ia64: Likewise.
14944 * config/iq2000/iq2000.h (FUNCTION_MODE): Likewise.
14945 * config/iq2000/iq2000.md: Likewise.
14946 * config/linux.h (TARGET_HAS_BIONIC): Likewise.
14947 (if): Likewise.
14948 * config/m32c/m32c.cc (m32c_function_needs_enter): Likewise.
14949 * config/m32c/m32c.h (MAX_REGS_PER_ADDRESS): Likewise.
14950 * config/m32c/t-m32c: Likewise.
14951 * config/m32r/m32r-protos.h: Likewise.
14952 * config/m32r/m32r.cc (m32r_print_operand): Likewise.
14953 * config/m32r/m32r.h: Likewise.
14954 * config/m32r/m32r.md: Likewise.
14955 * config/m68k/m68k-isas.def: Likewise.
14956 * config/m68k/m68k-microarchs.def: Likewise.
14957 * config/m68k/m68k-protos.h (strict_low_part_peephole_ok): Likewise.
14958 (m68k_epilogue_uses): Likewise.
14959 * config/m68k/m68k.cc (m68k_call_tls_get_addr): Likewise.
14960 (m68k_sched_adjust_cost): Likewise.
14961 (m68k_sched_md_init): Likewise.
14962 * config/m68k/m68k.h (__transfer_from_trampoline): Likewise.
14963 (enum m68k_function_kind): Likewise.
14964 * config/m68k/m68k.md: Likewise.
14965 * config/m68k/m68kemb.h: Likewise.
14966 * config/m68k/uclinux.h (ENDFILE_SPEC): Likewise.
14967 * config/mcore/mcore-protos.h: Likewise.
14968 * config/mcore/mcore.cc (mcore_expand_insv): Likewise.
14969 (mcore_expand_prolog): Likewise.
14970 * config/mcore/mcore.h (TARGET_MCORE): Likewise.
14971 * config/mcore/mcore.md: Likewise.
14972 * config/microblaze/microblaze-protos.h: Likewise.
14973 * config/microblaze/microblaze.cc (microblaze_legitimate_pic_operand): Likewise.
14974 (microblaze_function_prologue): Likewise.
14975 (microblaze_function_epilogue): Likewise.
14976 (microblaze_select_section): Likewise.
14977 (microblaze_asm_output_mi_thunk): Likewise.
14978 (microblaze_eh_return): Likewise.
14979 * config/microblaze/microblaze.h: Likewise.
14980 * config/microblaze/microblaze.md: Likewise.
14981 * config/microblaze/t-microblaze: Likewise.
14982 * config/mips/driver-native.cc: Likewise.
14983 * config/mips/loongson2ef.md: Likewise.
14984 * config/mips/mips-protos.h (mips_expand_vec_cmp_expr): Likewise.
14985 * config/mips/mips.cc (mips_rtx_costs): Likewise.
14986 (mips_output_filename): Likewise.
14987 (mips_output_function_prologue): Likewise.
14988 (mips_output_function_epilogue): Likewise.
14989 (mips_output_mi_thunk): Likewise.
14990 * config/mips/mips.h: Likewise.
14991 * config/mips/mips.md: Likewise.
14992 * config/mips/t-mips: Likewise.
14993 * config/mips/x-native: Likewise.
14994 * config/mmix/mmix-protos.h: Likewise.
14995 * config/mmix/mmix.cc (mmix_option_override): Likewise.
14996 (mmix_dbx_register_number): Likewise.
14997 (mmix_expand_prologue): Likewise.
14998 * config/mmix/mmix.h: Likewise.
14999 * config/mmix/mmix.md: Likewise.
15000 * config/mmix/predicates.md: Likewise.
15001 * config/mn10300/mn10300.cc (mn10300_symbolic_operand): Likewise.
15002 (mn10300_legitimate_pic_operand_p): Likewise.
15003 * config/mn10300/mn10300.h (enum reg_class): Likewise.
15004 (NO_FUNCTION_CSE): Likewise.
15005 * config/moxie/moxie-protos.h: Likewise.
15006 * config/moxie/uclinux.h (TARGET_LIBC_HAS_FUNCTION): Likewise.
15007 * config/msp430/msp430-devices.cc (extract_devices_dir_from_exec_prefix): Likewise.
15008 * config/msp430/msp430.cc (msp430_gimplify_va_arg_expr): Likewise.
15009 (msp430_incoming_return_addr_rtx): Likewise.
15010 * config/msp430/msp430.h (msp430_get_linker_devices_include_path): Likewise.
15011 * config/msp430/t-msp430: Likewise.
15012 * config/nds32/nds32-cost.cc (nds32_rtx_costs_speed_prefer): Likewise.
15013 (nds32_rtx_costs_size_prefer): Likewise.
15014 (nds32_init_rtx_costs): Likewise.
15015 * config/nds32/nds32-doubleword.md: Likewise.
15016 * config/nds32/nds32.cc (nds32_memory_move_cost): Likewise.
15017 (nds32_builtin_decl): Likewise.
15018 * config/nds32/nds32.h (enum nds32_16bit_address_type): Likewise.
15019 (enum nds32_isr_nested_type): Likewise.
15020 (enum reg_class): Likewise.
15021 * config/nds32/predicates.md: Likewise.
15022 * config/nds32/t-nds32: Likewise.
15023 * config/nios2/nios2.cc (nios2_pragma_target_parse): Likewise.
15024 * config/nvptx/nvptx-protos.h: Likewise.
15025 * config/nvptx/nvptx.cc (nvptx_goacc_expand_var_decl): Likewise.
15026 * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Likewise.
15027 * config/nvptx/t-nvptx: Likewise.
15028 * config/nvptx/t-omp-device: Likewise.
15029 * config/pa/elf.h: Likewise.
15030 * config/pa/pa-linux.h (GLOBAL_ASM_OP): Likewise.
15031 * config/pa/pa-netbsd.h (GLOBAL_ASM_OP): Likewise.
15032 * config/pa/pa-openbsd.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
15033 * config/pa/pa-protos.h (pa_eh_return_handler_rtx): Likewise.
15034 (pa_legitimize_reload_address): Likewise.
15035 (pa_can_use_return_insn): Likewise.
15036 * config/pa/pa.cc (mem_shadd_or_shadd_rtx_p): Likewise.
15037 (som_output_text_section_asm_op): Likewise.
15038 * config/pa/pa.h (PROFILE_BEFORE_PROLOGUE): Likewise.
15039 * config/pa/pa.md: Likewise.
15040 * config/pa/som.h: Likewise.
15041 * config/pa/t-pa: Likewise.
15042 * config/pdp11/pdp11.cc (decode_pdp11_d): Likewise.
15043 * config/pdp11/pdp11.h: Likewise.
15044 * config/pdp11/pdp11.md: Likewise.
15045 * config/pdp11/t-pdp11: Likewise.
15046 * config/pru/pru.md: Likewise.
15047 * config/pru/t-pru: Likewise.
15048 * config/riscv/riscv-protos.h (NUM_SYMBOL_TYPES): Likewise.
15049 (riscv_gpr_save_operation_p): Likewise.
15050 (riscv_d_register_target_info): Likewise.
15051 (riscv_init_builtins): Likewise.
15052 * config/riscv/riscv.cc (riscv_output_mi_thunk): Likewise.
15053 * config/riscv/riscv.h (CSW_MAX_OFFSET): Likewise.
15054 * config/riscv/t-riscv: Likewise.
15055 * config/rl78/rl78.cc (rl78_asm_ctor_dtor): Likewise.
15056 * config/rl78/t-rl78: Likewise.
15057 * config/rs6000/aix.h: Likewise.
15058 * config/rs6000/aix71.h (ASM_SPEC_COMMON): Likewise.
15059 * config/rs6000/aix72.h (ASM_SPEC_COMMON): Likewise.
15060 * config/rs6000/aix73.h (ASM_SPEC_COMMON): Likewise.
15061 * config/rs6000/darwin.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
15062 * config/rs6000/driver-rs6000.cc: Likewise.
15063 * config/rs6000/freebsd.h: Likewise.
15064 * config/rs6000/freebsd64.h: Likewise.
15065 * config/rs6000/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
15066 * config/rs6000/rbtree.cc: Likewise.
15067 * config/rs6000/rbtree.h: Likewise.
15068 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Likewise.
15069 * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Likewise.
15070 (rs6000_expand_builtin): Likewise.
15071 (rs6000_init_builtins): Likewise.
15072 * config/rs6000/rs6000-cpus.def: Likewise.
15073 * config/rs6000/rs6000-gen-builtins.cc (write_init_ovld_table): Likewise.
15074 * config/rs6000/rs6000-internal.h (ALTIVEC_REG_BIT): Likewise.
15075 (quad_address_offset_p): Likewise.
15076 * config/rs6000/rs6000-logue.cc (interesting_frame_related_regno): Likewise.
15077 (rs6000_emit_epilogue): Likewise.
15078 * config/rs6000/rs6000-overload.def: Likewise.
15079 * config/rs6000/rs6000-p8swap.cc: Likewise.
15080 * config/rs6000/rs6000-protos.h (GCC_RS6000_PROTOS_H): Likewise.
15081 (rs6000_const_f32_to_i32): Likewise.
15082 * config/rs6000/rs6000.cc (legitimate_lo_sum_address_p): Likewise.
15083 (rs6000_debug_legitimize_address): Likewise.
15084 (rs6000_mode_dependent_address): Likewise.
15085 (rs6000_adjust_priority): Likewise.
15086 (rs6000_c_mode_for_suffix): Likewise.
15087 * config/rs6000/rs6000.h (defined): Likewise.
15088 (LONG_DOUBLE_TYPE_SIZE): Likewise.
15089 * config/rs6000/rs6000.md: Likewise.
15090 * config/rs6000/sysv4.h: Likewise.
15091 * config/rs6000/t-linux: Likewise.
15092 * config/rs6000/t-linux64: Likewise.
15093 * config/rs6000/t-rs6000: Likewise.
15094 * config/rs6000/x-darwin: Likewise.
15095 * config/rs6000/x-darwin64: Likewise.
15096 * config/rs6000/x-rs6000: Likewise.
15097 * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Likewise.
15098 * config/rx/rx.cc (rx_expand_builtin): Likewise.
15099 * config/s390/constraints.md: Likewise.
15100 * config/s390/driver-native.cc: Likewise.
15101 * config/s390/htmxlintrin.h: Likewise.
15102 * config/s390/s390-builtins.def (B_DEF): Likewise.
15103 (OB_DEF_VAR): Likewise.
15104 * config/s390/s390-builtins.h: Likewise.
15105 * config/s390/s390-c.cc: Likewise.
15106 * config/s390/s390-opts.h: Likewise.
15107 * config/s390/s390-protos.h (s390_check_symref_alignment): Likewise.
15108 (s390_register_target_pragmas): Likewise.
15109 * config/s390/s390.cc (s390_init_builtins): Likewise.
15110 (s390_expand_plus_operand): Likewise.
15111 (s390_expand_atomic): Likewise.
15112 (s390_valid_target_attribute_inner_p): Likewise.
15113 * config/s390/s390.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
15114 * config/s390/s390.md: Likewise.
15115 * config/s390/t-s390: Likewise.
15116 * config/s390/vx-builtins.md: Likewise.
15117 * config/s390/x-native: Likewise.
15118 * config/sh/divtab-sh4-300.cc (main): Likewise.
15119 * config/sh/divtab-sh4.cc (main): Likewise.
15120 * config/sh/divtab.cc (main): Likewise.
15121 * config/sh/elf.h: Likewise.
15122 * config/sh/sh-protos.h (sh_fsca_int2sf): Likewise.
15123 * config/sh/sh.cc (SYMBOL_FLAG_FUNCVEC_FUNCTION): Likewise.
15124 (sh_struct_value_rtx): Likewise.
15125 (sh_remove_reg_dead_or_unused_notes): Likewise.
15126 * config/sh/sh.h (MIN_UNITS_PER_WORD): Likewise.
15127 * config/sh/t-sh: Likewise.
15128 * config/sol2-protos.h (solaris_override_options): Likewise.
15129 * config/sol2.h: Likewise.
15130 * config/sparc/driver-sparc.cc: Likewise.
15131 * config/sparc/freebsd.h: Likewise.
15132 * config/sparc/sparc-protos.h (make_pass_work_around_errata): Likewise.
15133 * config/sparc/sparc.cc (sparc_output_mi_thunk): Likewise.
15134 (sparc_asan_shadow_offset): Likewise.
15135 * config/sparc/sparc.h: Likewise.
15136 * config/sparc/sparc.md: Likewise.
15137 * config/sparc/t-sparc: Likewise.
15138 * config/sparc/x-sparc: Likewise.
15139 * config/stormy16/stormy16.cc (xstormy16_mode_dependent_address_p): Likewise.
15140 * config/t-darwin: Likewise.
15141 * config/t-dragonfly: Likewise.
15142 * config/t-freebsd: Likewise.
15143 * config/t-glibc: Likewise.
15144 * config/t-linux: Likewise.
15145 * config/t-netbsd: Likewise.
15146 * config/t-openbsd: Likewise.
15147 * config/t-pnt16-warn: Likewise.
15148 * config/t-sol2: Likewise.
15149 * config/t-vxworks: Likewise.
15150 * config/t-winnt: Likewise.
15151 * config/tilegx/t-tilegx: Likewise.
15152 * config/tilegx/tilegx-c.cc: Likewise.
15153 * config/tilegx/tilegx-protos.h (tilegx_function_profiler): Likewise.
15154 * config/tilegx/tilegx.md: Likewise.
15155 * config/tilepro/t-tilepro: Likewise.
15156 * config/tilepro/tilepro-c.cc: Likewise.
15157 * config/v850/t-v850: Likewise.
15158 * config/v850/v850-protos.h: Likewise.
15159 * config/v850/v850.cc (F): Likewise.
15160 * config/v850/v850.h (enum reg_class): Likewise.
15161 (SLOW_BYTE_ACCESS): Likewise.
15162 * config/vax/vax.cc (vax_mode_dependent_address_p): Likewise.
15163 * config/vax/vax.h (enum reg_class): Likewise.
15164 * config/vax/vax.md: Likewise.
15165 * config/visium/visium.cc (visium_legitimate_address_p): Likewise.
15166 * config/visium/visium.h: Likewise.
15167 * config/vms/t-vms: Likewise.
15168 * config/vms/vms-crtlmap.map: Likewise.
15169 * config/vms/vms-protos.h (vms_c_get_vms_ver): Likewise.
15170 * config/vx-common.h: Likewise.
15171 * config/x-darwin: Likewise.
15172 * config/x-hpux: Likewise.
15173 * config/x-linux: Likewise.
15174 * config/x-netbsd: Likewise.
15175 * config/x-openbsd: Likewise.
15176 * config/x-solaris: Likewise.
15177 * config/xtensa/xtensa-protos.h (xtensa_mem_offset): Likewise.
15178 * config/xtensa/xtensa.cc (xtensa_option_override): Likewise.
15179 * config/xtensa/xtensa.h: Likewise.
15180 * configure.ac: Likewise.
15181 * context.cc: Likewise.
15182 * convert.h: Likewise.
15183 * coretypes.h: Likewise.
15184 * coverage.cc: Likewise.
15185 * coverage.h: Likewise.
15186 * cppdefault.h (struct default_include): Likewise.
15187 * cprop.cc (local_cprop_pass): Likewise.
15188 (one_cprop_pass): Likewise.
15189 * cse.cc (hash_rtx_cb): Likewise.
15190 (fold_rtx): Likewise.
15191 * ctfc.h (ctfc_get_num_vlen_bytes): Likewise.
15192 * data-streamer.h (bp_unpack_var_len_int): Likewise.
15193 (streamer_write_widest_int): Likewise.
15194 * dbgcnt.def: Likewise.
15195 * dbxout.cc (dbxout_early_global_decl): Likewise.
15196 (dbxout_common_check): Likewise.
15197 * dbxout.h: Likewise.
15198 * debug.h (struct gcc_debug_hooks): Likewise.
15199 (dump_go_spec_init): Likewise.
15200 * df-core.cc: Likewise.
15201 * df-scan.cc (df_insn_info_delete): Likewise.
15202 (df_insn_delete): Likewise.
15203 * df.h (debug_df_chain): Likewise.
15204 (can_move_insns_across): Likewise.
15205 * dfp.cc (decimal_from_binary): Likewise.
15206 * diagnostic-color.cc: Likewise.
15207 * diagnostic-event-id.h: Likewise.
15208 * diagnostic-show-locus.cc (test_one_liner_labels): Likewise.
15209 * diagnostic.cc (bt_callback): Likewise.
15210 (num_digits): Likewise.
15211 * doc/avr-mmcu.texi: Likewise.
15212 * doc/cfg.texi: Likewise.
15213 * doc/contrib.texi: Likewise.
15214 * doc/cppinternals.texi: Likewise.
15215 * doc/extend.texi: Likewise.
15216 * doc/generic.texi: Likewise.
15217 * doc/gimple.texi: Likewise.
15218 * doc/gty.texi: Likewise.
15219 * doc/invoke.texi: Likewise.
15220 * doc/loop.texi: Likewise.
15221 * doc/lto.texi: Likewise.
15222 * doc/match-and-simplify.texi: Likewise.
15223 * doc/md.texi: Likewise.
15224 * doc/optinfo.texi: Likewise.
15225 * doc/options.texi: Likewise.
15226 * doc/passes.texi: Likewise.
15227 * doc/plugins.texi: Likewise.
15228 * doc/rtl.texi: Likewise.
15229 * doc/sourcebuild.texi: Likewise.
15230 * doc/tm.texi: Likewise.
15231 * doc/tm.texi.in: Likewise.
15232 * doc/tree-ssa.texi: Likewise.
15233 * dojump.cc (do_jump): Likewise.
15234 * dojump.h: Likewise.
15235 * dumpfile.cc (test_impl_location): Likewise.
15236 (test_capture_of_dump_calls): Likewise.
15237 * dumpfile.h (enum dump_kind): Likewise.
15238 (class dump_location_t): Likewise.
15239 (dump_enabled_p): Likewise.
15240 (enable_rtl_dump_file): Likewise.
15241 (dump_combine_total_stats): Likewise.
15242 * dwarf2asm.cc (dw2_asm_output_delta_uleb128): Likewise.
15243 * dwarf2ctf.h (ctf_debug_finish): Likewise.
15244 * dwarf2out.cc (dwarf2out_begin_prologue): Likewise.
15245 (struct loc_descr_context): Likewise.
15246 (rtl_for_decl_location): Likewise.
15247 (gen_subprogram_die): Likewise.
15248 (gen_label_die): Likewise.
15249 (is_trivial_indirect_ref): Likewise.
15250 (dwarf2out_late_global_decl): Likewise.
15251 (dwarf_file_hasher::hash): Likewise.
15252 (dwarf2out_end_source_file): Likewise.
15253 (dwarf2out_define): Likewise.
15254 (dwarf2out_early_finish): Likewise.
15255 * dwarf2out.h (struct dw_fde_node): Likewise.
15256 (struct dw_discr_list_node): Likewise.
15257 (output_loc_sequence_raw): Likewise.
15258 * emit-rtl.cc (gen_raw_REG): Likewise.
15259 (maybe_set_max_label_num): Likewise.
15260 * emit-rtl.h (struct rtl_data): Likewise.
15261 * errors.cc (internal_error): Likewise.
15262 (trim_filename): Likewise.
15263 * et-forest.cc: Likewise.
15264 * except.cc (init_eh_for_function): Likewise.
15265 * explow.cc (promote_ssa_mode): Likewise.
15266 (get_dynamic_stack_size): Likewise.
15267 * explow.h: Likewise.
15268 * expmed.h: Likewise.
15269 * expr.cc (safe_from_p): Likewise.
15270 (expand_expr_real_2): Likewise.
15271 (expand_expr_real_1): Likewise.
15272 * file-prefix-map.cc (remap_filename): Likewise.
15273 * final.cc (app_enable): Likewise.
15274 (make_pass_compute_alignments): Likewise.
15275 (final_scan_insn_1): Likewise.
15276 (final_scan_insn): Likewise.
15277 * fixed-value.h (fixed_from_string): Likewise.
15278 * flag-types.h (NO_DEBUG): Likewise.
15279 (DWARF2_DEBUG): Likewise.
15280 (VMS_DEBUG): Likewise.
15281 (BTF_DEBUG): Likewise.
15282 (enum ctf_debug_info_levels): Likewise.
15283 * fold-const.cc (const_binop): Likewise.
15284 (fold_binary_loc): Likewise.
15285 (fold_checksum_tree): Likewise.
15286 * fp-test.cc: Likewise.
15287 * function.cc (expand_function_end): Likewise.
15288 * function.h (struct function): Likewise.
15289 * fwprop.cc (should_replace_address): Likewise.
15290 * gcc-main.cc: Likewise.
15291 * gcc-rich-location.h (class gcc_rich_location): Likewise.
15292 * gcc-symtab.h: Likewise.
15293 * gcc.cc (MIN_FATAL_STATUS): Likewise.
15294 (driver_handle_option): Likewise.
15295 (quote_spec_arg): Likewise.
15296 (driver::finalize): Likewise.
15297 * gcc.h (set_input): Likewise.
15298 * gcov-dump.cc: Likewise.
15299 * gcov.cc (solve_flow_graph): Likewise.
15300 * gcse-common.cc: Likewise.
15301 * gcse.cc (make_pass_rtl_hoist): Likewise.
15302 * genattr-common.cc: Likewise.
15303 * genattrtab.cc (min_fn): Likewise.
15304 (write_const_num_delay_slots): Likewise.
15305 * genautomata.cc: Likewise.
15306 * genconditions.cc (write_one_condition): Likewise.
15307 * genconstants.cc: Likewise.
15308 * genemit.cc (gen_exp): Likewise.
15309 * generic-match-head.cc: Likewise.
15310 * genextract.cc: Likewise.
15311 * gengenrtl.cc (always_void_p): Likewise.
15312 * gengtype-parse.cc (gtymarker_opt): Likewise.
15313 * gengtype-state.cc (state_writer::state_writer): Likewise.
15314 (write_state_trailer): Likewise.
15315 (equals_type_number): Likewise.
15316 (read_state): Likewise.
15317 * gengtype.cc (open_base_files): Likewise.
15318 (struct file_rule_st): Likewise.
15319 (header_dot_h_frul): Likewise.
15320 * gengtype.h: Likewise.
15321 * genmatch.cc (main): Likewise.
15322 * genmddeps.cc: Likewise.
15323 * genmodes.cc (emit_mode_inner): Likewise.
15324 (emit_mode_unit_size): Likewise.
15325 * genpeep.cc (gen_peephole): Likewise.
15326 * genpreds.cc (write_tm_preds_h): Likewise.
15327 * genrecog.cc (validate_pattern): Likewise.
15328 (write_header): Likewise.
15329 (main): Likewise.
15330 * gensupport.cc (change_subst_attribute): Likewise.
15331 (traverse_c_tests): Likewise.
15332 (add_predicate): Likewise.
15333 (init_predicate_table): Likewise.
15334 * gensupport.h (struct optab_pattern): Likewise.
15335 (get_num_insn_codes): Likewise.
15336 (maybe_eval_c_test): Likewise.
15337 (struct pred_data): Likewise.
15338 * ggc-internal.h: Likewise.
15339 * gimple-fold.cc (maybe_fold_reference): Likewise.
15340 (get_range_strlen_tree): Likewise.
15341 * gimple-fold.h (gimple_stmt_integer_valued_real_p): Likewise.
15342 * gimple-low.cc: Likewise.
15343 * gimple-match-head.cc (directly_supported_p): Likewise.
15344 * gimple-pretty-print.h: Likewise.
15345 * gimple-ssa-sprintf.cc (format_percent): Likewise.
15346 (adjust_range_for_overflow): Likewise.
15347 * gimple-streamer.h: Likewise.
15348 * gimple.h (struct GTY): Likewise.
15349 (is_gimple_resx): Likewise.
15350 * gimplify.cc (gimplify_expr): Likewise.
15351 (gimplify_init_constructor): Likewise.
15352 (omp_construct_selector_matches): Likewise.
15353 (gimplify_omp_target_update): Likewise.
15354 (gimplify_omp_ordered): Likewise.
15355 (gimplify_va_arg_expr): Likewise.
15356 * graphite-isl-ast-to-gimple.cc (should_copy_to_new_region): Likewise.
15357 * haifa-sched.cc (increase_insn_priority): Likewise.
15358 (try_ready): Likewise.
15359 (sched_create_recovery_edges): Likewise.
15360 * ifcvt.cc (find_if_case_1): Likewise.
15361 (find_if_case_2): Likewise.
15362 * inchash.h: Likewise.
15363 * incpath.cc (add_env_var_paths): Likewise.
15364 * input.cc (dump_location_info): Likewise.
15365 (assert_loceq): Likewise.
15366 (test_lexer_string_locations_concatenation_1): Likewise.
15367 (test_lexer_string_locations_concatenation_2): Likewise.
15368 (test_lexer_string_locations_concatenation_3): Likewise.
15369 * input.h (BUILTINS_LOCATION): Likewise.
15370 (class string_concat_db): Likewise.
15371 * internal-fn.cc (expand_MUL_OVERFLOW): Likewise.
15372 (expand_LOOP_VECTORIZED): Likewise.
15373 * ipa-cp.cc (make_pass_ipa_cp): Likewise.
15374 * ipa-fnsummary.cc (remap_freqcounting_preds_after_dup): Likewise.
15375 (ipa_fn_summary_t::duplicate): Likewise.
15376 (make_pass_ipa_fn_summary): Likewise.
15377 * ipa-fnsummary.h (enum ipa_hints_vals): Likewise.
15378 * ipa-free-lang-data.cc (fld_simplified_type): Likewise.
15379 (free_lang_data_in_decl): Likewise.
15380 * ipa-inline.cc (compute_inlined_call_time): Likewise.
15381 (inline_always_inline_functions): Likewise.
15382 * ipa-inline.h (free_growth_caches): Likewise.
15383 (inline_account_function_p): Likewise.
15384 * ipa-modref.cc (modref_access_analysis::analyze_stmt): Likewise.
15385 (modref_eaf_analysis::analyze_ssa_name): Likewise.
15386 * ipa-param-manipulation.cc (ipa_param_body_adjustments::mark_dead_statements): Likewise.
15387 (ipa_param_body_adjustments::remap_with_debug_expressions): Likewise.
15388 * ipa-prop.cc (ipa_set_node_agg_value_chain): Likewise.
15389 * ipa-prop.h (IPA_UNDESCRIBED_USE): Likewise.
15390 (unadjusted_ptr_and_unit_offset): Likewise.
15391 * ipa-reference.cc (make_pass_ipa_reference): Likewise.
15392 * ipa-reference.h (GCC_IPA_REFERENCE_H): Likewise.
15393 * ipa-split.cc (consider_split): Likewise.
15394 * ipa-sra.cc (isra_read_node_info): Likewise.
15395 * ipa-utils.h (struct ipa_dfs_info): Likewise.
15396 (recursive_call_p): Likewise.
15397 (ipa_make_function_pure): Likewise.
15398 * ira-build.cc (ira_create_allocno): Likewise.
15399 (ira_flattening): Likewise.
15400 * ira-color.cc (do_coloring): Likewise.
15401 (update_curr_costs): Likewise.
15402 * ira-conflicts.cc (process_regs_for_copy): Likewise.
15403 * ira-int.h (struct ira_emit_data): Likewise.
15404 (ira_prohibited_mode_move_regs): Likewise.
15405 (ira_get_dup_out_num): Likewise.
15406 (ira_destroy): Likewise.
15407 (ira_tune_allocno_costs): Likewise.
15408 (ira_implicitly_set_insn_hard_regs): Likewise.
15409 (ira_build_conflicts): Likewise.
15410 (ira_color): Likewise.
15411 * ira-lives.cc (process_bb_node_lives): Likewise.
15412 * ira.cc (class ira_spilled_reg_stack_slot): Likewise.
15413 (setup_uniform_class_p): Likewise.
15414 (def_dominates_uses): Likewise.
15415 * ira.h (ira_nullify_asm_goto): Likewise.
15416 * langhooks.cc (lhd_post_options): Likewise.
15417 * langhooks.h (class substring_loc): Likewise.
15418 (struct lang_hooks_for_tree_inlining): Likewise.
15419 (struct lang_hooks_for_types): Likewise.
15420 (struct lang_hooks): Likewise.
15421 * libfuncs.h (synchronize_libfunc): Likewise.
15422 * loop-doloop.cc (doloop_condition_get): Likewise.
15423 * loop-init.cc (fix_loop_structure): Likewise.
15424 * loop-invariant.cc: Likewise.
15425 * lower-subreg.h: Likewise.
15426 * lra-constraints.cc (curr_insn_transform): Likewise.
15427 * lra-int.h (struct lra_insn_reg): Likewise.
15428 (lra_undo_inheritance): Likewise.
15429 (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
15430 (lra_split_hard_reg_for): Likewise.
15431 (lra_coalesce): Likewise.
15432 (lra_final_code_change): Likewise.
15433 * lra-spills.cc (lra_final_code_change): Likewise.
15434 * lra.cc (lra_process_new_insns): Likewise.
15435 * lto-compress.h (struct lto_compression_stream): Likewise.
15436 * lto-streamer-out.cc (DFS::DFS_write_tree_body): Likewise.
15437 (write_symbol): Likewise.
15438 * lto-streamer.h (enum LTO_tags): Likewise.
15439 (lto_value_range_error): Likewise.
15440 (lto_append_block): Likewise.
15441 (lto_streamer_hooks_init): Likewise.
15442 (stream_read_tree_ref): Likewise.
15443 (lto_prepare_function_for_streaming): Likewise.
15444 (select_what_to_stream): Likewise.
15445 (omp_lto_input_declare_variant_alt): Likewise.
15446 (cl_optimization_stream_in): Likewise.
15447 * lto-wrapper.cc (append_compiler_options): Likewise.
15448 * machmode.def: Likewise.
15449 * machmode.h (struct int_n_data_t): Likewise.
15450 * main.cc (main): Likewise.
15451 * match.pd: Likewise.
15452 * omp-builtins.def (BUILT_IN_GOMP_CRITICAL_NAME_END): Likewise.
15453 (BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): Likewise.
15454 * omp-expand.cc (expand_omp_atomic_fetch_op): Likewise.
15455 (make_pass_expand_omp_ssa): Likewise.
15456 * omp-low.cc (struct omp_context): Likewise.
15457 (struct omp_taskcopy_context): Likewise.
15458 (lower_omp): Likewise.
15459 * omp-oacc-neuter-broadcast.cc (omp_sese_active_worker_call): Likewise.
15460 (mask_name): Likewise.
15461 (omp_sese_dump_pars): Likewise.
15462 (worker_single_simple): Likewise.
15463 * omp-offload.cc (omp_finish_file): Likewise.
15464 (execute_oacc_loop_designation): Likewise.
15465 * optabs-query.cc (lshift_cheap_p): Likewise.
15466 * optc-gen.awk: Likewise.
15467 * optc-save-gen.awk: Likewise.
15468 * optinfo-emit-json.cc (optrecord_json_writer::optrecord_json_writer): Likewise.
15469 * opts-common.cc: Likewise.
15470 * output.h (app_enable): Likewise.
15471 (output_operand_lossage): Likewise.
15472 (insn_current_reference_address): Likewise.
15473 (get_insn_template): Likewise.
15474 (output_quoted_string): Likewise.
15475 * pass_manager.h (struct register_pass_info): Likewise.
15476 * plugin.cc: Likewise.
15477 * plugin.def (PLUGIN_ANALYZER_INIT): Likewise.
15478 * plugin.h (invoke_plugin_callbacks): Likewise.
15479 * pointer-query.cc (handle_mem_ref): Likewise.
15480 * postreload-gcse.cc (alloc_mem): Likewise.
15481 * predict.h (enum prediction): Likewise.
15482 (add_reg_br_prob_note): Likewise.
15483 * prefix.h: Likewise.
15484 * profile.h (get_working_sets): Likewise.
15485 * read-md.cc: Likewise.
15486 * read-md.h (struct mapping): Likewise.
15487 (class md_reader): Likewise.
15488 (class noop_reader): Likewise.
15489 * read-rtl-function.cc (function_reader::create_function): Likewise.
15490 (function_reader::extra_parsing_for_operand_code_0): Likewise.
15491 * read-rtl.cc (initialize_iterators): Likewise.
15492 * real.cc: Likewise.
15493 * real.h (struct real_value): Likewise.
15494 (format_helper::format_helper): Likewise.
15495 (real_hash): Likewise.
15496 (real_can_shorten_arithmetic): Likewise.
15497 * recog.cc (struct target_recog): Likewise.
15498 (offsettable_nonstrict_memref_p): Likewise.
15499 (constrain_operands): Likewise.
15500 * recog.h (MAX_RECOG_ALTERNATIVES): Likewise.
15501 (which_op_alt): Likewise.
15502 (struct insn_gen_fn): Likewise.
15503 * reg-notes.def (REG_NOTE): Likewise.
15504 * reg-stack.cc: Likewise.
15505 * regs.h (reg_is_parm_p): Likewise.
15506 * regset.h: Likewise.
15507 * reload.cc (push_reload): Likewise.
15508 (find_reloads): Likewise.
15509 (find_reloads_address_1): Likewise.
15510 (find_replacement): Likewise.
15511 (refers_to_regno_for_reload_p): Likewise.
15512 (refers_to_mem_for_reload_p): Likewise.
15513 * reload.h (push_reload): Likewise.
15514 (deallocate_reload_reg): Likewise.
15515 * reload1.cc (emit_input_reload_insns): Likewise.
15516 * reorg.cc (relax_delay_slots): Likewise.
15517 * rtl.def (UNKNOWN): Likewise.
15518 (SEQUENCE): Likewise.
15519 (BARRIER): Likewise.
15520 (ASM_OPERANDS): Likewise.
15521 (EQ_ATTR_ALT): Likewise.
15522 * rtl.h (struct GTY): Likewise.
15523 (LABEL_NAME): Likewise.
15524 (LABEL_ALT_ENTRY_P): Likewise.
15525 (SUBREG_BYTE): Likewise.
15526 (get_stack_check_protect): Likewise.
15527 (dump_rtx_statistics): Likewise.
15528 (unwrap_const_vec_duplicate): Likewise.
15529 (subreg_promoted_mode): Likewise.
15530 (gen_lowpart_common): Likewise.
15531 (operand_subword): Likewise.
15532 (immed_wide_int_const): Likewise.
15533 (decide_function_section): Likewise.
15534 (active_insn_p): Likewise.
15535 (delete_related_insns): Likewise.
15536 (try_split): Likewise.
15537 (val_signbit_known_clear_p): Likewise.
15538 (simplifiable_subregs): Likewise.
15539 (set_insn_deleted): Likewise.
15540 (subreg_get_info): Likewise.
15541 (remove_free_EXPR_LIST_node): Likewise.
15542 (finish_subregs_of_mode): Likewise.
15543 (get_mem_attrs): Likewise.
15544 (lookup_constant_def): Likewise.
15545 (rtx_to_tree_code): Likewise.
15546 (hash_rtx): Likewise.
15547 (condjump_in_parallel_p): Likewise.
15548 (validate_subreg): Likewise.
15549 (make_compound_operation): Likewise.
15550 (schedule_ebbs): Likewise.
15551 (print_inline_rtx): Likewise.
15552 (fixup_args_size_notes): Likewise.
15553 (expand_dec): Likewise.
15554 (prepare_copy_insn): Likewise.
15555 (mark_elimination): Likewise.
15556 (valid_mode_changes_for_regno): Likewise.
15557 (make_debug_expr_from_rtl): Likewise.
15558 (delete_vta_debug_insns): Likewise.
15559 (simplify_using_condition): Likewise.
15560 (set_insn_locations): Likewise.
15561 (fatal_insn_not_found): Likewise.
15562 (word_register_operation_p): Likewise.
15563 * rtlanal.cc (get_call_fndecl): Likewise.
15564 (side_effects_p): Likewise.
15565 (subreg_nregs): Likewise.
15566 (rtx_cost): Likewise.
15567 (canonicalize_condition): Likewise.
15568 * rtlanal.h (rtx_properties::try_to_add_note): Likewise.
15569 * run-rtl-passes.cc (run_rtl_passes): Likewise.
15570 * sanitizer.def (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Likewise.
15571 * sched-deps.cc (add_dependence_1): Likewise.
15572 * sched-ebb.cc (begin_move_insn): Likewise.
15573 (add_deps_for_risky_insns): Likewise.
15574 (advance_target_bb): Likewise.
15575 * sched-int.h (reemit_notes): Likewise.
15576 (struct _haifa_insn_data): Likewise.
15577 (HID): Likewise.
15578 (DEP_CANCELLED): Likewise.
15579 (debug_ds): Likewise.
15580 (number_in_ready): Likewise.
15581 (schedule_ebbs_finish): Likewise.
15582 (find_modifiable_mems): Likewise.
15583 * sched-rgn.cc (debug_rgn_dependencies): Likewise.
15584 * sel-sched-dump.cc (dump_lv_set): Likewise.
15585 * sel-sched-dump.h: Likewise.
15586 * sel-sched-ir.cc (sel_insn_rtx_cost): Likewise.
15587 (setup_id_reg_sets): Likewise.
15588 (has_dependence_p): Likewise.
15589 (sel_num_cfg_preds_gt_1): Likewise.
15590 (bb_ends_ebb_p): Likewise.
15591 * sel-sched-ir.h (struct _list_node): Likewise.
15592 (struct idata_def): Likewise.
15593 (bb_next_bb): Likewise.
15594 * sel-sched.cc (vinsn_writes_one_of_regs_p): Likewise.
15595 (choose_best_pseudo_reg): Likewise.
15596 (verify_target_availability): Likewise.
15597 (can_speculate_dep_p): Likewise.
15598 (sel_rank_for_schedule): Likewise.
15599 * selftest-run-tests.cc (selftest::run_tests): Likewise.
15600 * selftest.h (class auto_fix_quotes): Likewise.
15601 * shrink-wrap.cc (handle_simple_exit): Likewise.
15602 * shrink-wrap.h: Likewise.
15603 * simplify-rtx.cc (simplify_context::simplify_associative_operation): Likewise.
15604 (simplify_context::simplify_gen_vec_select): Likewise.
15605 * spellcheck-tree.h: Likewise.
15606 * spellcheck.h: Likewise.
15607 * statistics.h (struct function): Likewise.
15608 * stmt.cc (conditional_probability): Likewise.
15609 * stmt.h: Likewise.
15610 * stor-layout.h: Likewise.
15611 * streamer-hooks.h: Likewise.
15612 * stringpool.h: Likewise.
15613 * symtab.cc (symbol_table::change_decl_assembler_name): Likewise.
15614 * target.def (HOOK_VECTOR_END): Likewise.
15615 (type.): Likewise.
15616 * target.h (union cumulative_args_t): Likewise.
15617 (by_pieces_ninsns): Likewise.
15618 (class predefined_function_abi): Likewise.
15619 * targhooks.cc (default_translate_mode_attribute): Likewise.
15620 * timevar.def: Likewise.
15621 * timevar.h (class timer): Likewise.
15622 * toplev.h (enable_rtl_dump_file): Likewise.
15623 * trans-mem.cc (collect_bb2reg): Likewise.
15624 * tree-call-cdce.cc (gen_conditions_for_pow): Likewise.
15625 * tree-cfg.cc (remove_bb): Likewise.
15626 (verify_gimple_debug): Likewise.
15627 (remove_edge_and_dominated_blocks): Likewise.
15628 (push_fndecl): Likewise.
15629 * tree-cfgcleanup.h (GCC_TREE_CFGCLEANUP_H): Likewise.
15630 * tree-complex.cc (expand_complex_multiplication): Likewise.
15631 (expand_complex_div_straight): Likewise.
15632 * tree-core.h (enum tree_index): Likewise.
15633 (enum operand_equal_flag): Likewise.
15634 * tree-eh.cc (honor_protect_cleanup_actions): Likewise.
15635 * tree-if-conv.cc (if_convertible_gimple_assign_stmt_p): Likewise.
15636 * tree-inline.cc (initialize_inlined_parameters): Likewise.
15637 * tree-inline.h (force_value_to_type): Likewise.
15638 * tree-nested.cc (get_chain_decl): Likewise.
15639 (walk_all_functions): Likewise.
15640 * tree-object-size.h: Likewise.
15641 * tree-outof-ssa.cc: Likewise.
15642 * tree-parloops.cc (create_parallel_loop): Likewise.
15643 * tree-pretty-print.cc (print_generic_expr_to_str): Likewise.
15644 (dump_generic_node): Likewise.
15645 * tree-profile.cc (tree_profiling): Likewise.
15646 * tree-sra.cc (maybe_add_sra_candidate): Likewise.
15647 * tree-ssa-address.cc: Likewise.
15648 * tree-ssa-alias.cc: Likewise.
15649 * tree-ssa-alias.h (ao_ref::max_size_known_p): Likewise.
15650 (dump_alias_stats): Likewise.
15651 * tree-ssa-ccp.cc: Likewise.
15652 * tree-ssa-coalesce.h: Likewise.
15653 * tree-ssa-live.cc (remove_unused_scope_block_p): Likewise.
15654 * tree-ssa-loop-manip.cc (copy_phi_node_args): Likewise.
15655 * tree-ssa-loop-unswitch.cc: Likewise.
15656 * tree-ssa-math-opts.cc: Likewise.
15657 * tree-ssa-operands.cc (class operands_scanner): Likewise.
15658 * tree-ssa-pre.cc: Likewise.
15659 * tree-ssa-reassoc.cc (optimize_ops_list): Likewise.
15660 (debug_range_entry): Likewise.
15661 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Likewise.
15662 * tree-ssa-sccvn.h (TREE_SSA_SCCVN_H): Likewise.
15663 * tree-ssa-scopedtables.cc (add_expr_commutative): Likewise.
15664 (equal_mem_array_ref_p): Likewise.
15665 * tree-ssa-strlen.cc (is_strlen_related_p): Likewise.
15666 * tree-ssa-strlen.h (get_range_strlen_dynamic): Likewise.
15667 * tree-ssa-tail-merge.cc (stmt_local_def): Likewise.
15668 * tree-ssa-ter.h: Likewise.
15669 * tree-ssa-threadupdate.h (enum bb_dom_status): Likewise.
15670 * tree-streamer-in.cc (lto_input_ts_block_tree_pointers): Likewise.
15671 * tree-streamer-out.cc (pack_ts_block_value_fields): Likewise.
15672 (write_ts_block_tree_pointers): Likewise.
15673 * tree-streamer.h (struct streamer_tree_cache_d): Likewise.
15674 (streamer_read_tree_bitfields): Likewise.
15675 (streamer_write_integer_cst): Likewise.
15676 * tree-vect-patterns.cc (apply_binop_and_append_stmt): Likewise.
15677 (vect_synth_mult_by_constant): Likewise.
15678 * tree-vect-stmts.cc (vectorizable_operation): Likewise.
15679 * tree-vectorizer.cc: Likewise.
15680 * tree-vectorizer.h (class auto_purge_vect_location): Likewise.
15681 (vect_update_inits_of_drs): Likewise.
15682 (vect_get_mask_type_for_stmt): Likewise.
15683 (vect_rgroup_iv_might_wrap_p): Likewise.
15684 (cse_and_gimplify_to_preheader): Likewise.
15685 (vect_free_slp_tree): Likewise.
15686 (vect_pattern_recog): Likewise.
15687 (vect_stmt_dominates_stmt_p): Likewise.
15688 * tree.cc (initialize_tree_contains_struct): Likewise.
15689 (need_assembler_name_p): Likewise.
15690 (type_with_interoperable_signedness): Likewise.
15691 * tree.def (SWITCH_EXPR): Likewise.
15692 * tree.h (TYPE_SYMTAB_ADDRESS): Likewise.
15693 (poly_int_tree_p): Likewise.
15694 (inlined_function_outer_scope_p): Likewise.
15695 (tree_code_for_canonical_type_merging): Likewise.
15696 * value-prof.cc: Likewise.
15697 * value-prof.h (get_nth_most_common_value): Likewise.
15698 (find_func_by_profile_id): Likewise.
15699 * value-range.cc (vrp_operand_equal_p): Likewise.
15700 * value-range.h: Likewise.
15701 * var-tracking.cc: Likewise.
15702 * varasm.cc (default_function_section): Likewise.
15703 (function_section_1): Likewise.
15704 (assemble_variable): Likewise.
15705 (handle_vtv_comdat_section): Likewise.
15706 * vec.h (struct vec_prefix): Likewise.
15707 * vmsdbgout.cc (full_name): Likewise.
15708 * vtable-verify.cc: Likewise.
15709 * vtable-verify.h (struct vtv_graph_node): Likewise.
15710 * xcoffout.cc: Likewise.
15711 * xcoffout.h (DEBUG_SYMS_TEXT): Likewise.
15712
15713 2022-01-17 Martin Liska <mliska@suse.cz>
15714
15715 * adjust-alignment.c: Moved to...
15716 * adjust-alignment.cc: ...here.
15717 * alias.c: Moved to...
15718 * alias.cc: ...here.
15719 * alloc-pool.c: Moved to...
15720 * alloc-pool.cc: ...here.
15721 * asan.c: Moved to...
15722 * asan.cc: ...here.
15723 * attribs.c: Moved to...
15724 * attribs.cc: ...here.
15725 * auto-inc-dec.c: Moved to...
15726 * auto-inc-dec.cc: ...here.
15727 * auto-profile.c: Moved to...
15728 * auto-profile.cc: ...here.
15729 * bb-reorder.c: Moved to...
15730 * bb-reorder.cc: ...here.
15731 * bitmap.c: Moved to...
15732 * bitmap.cc: ...here.
15733 * btfout.c: Moved to...
15734 * btfout.cc: ...here.
15735 * builtins.c: Moved to...
15736 * builtins.cc: ...here.
15737 * caller-save.c: Moved to...
15738 * caller-save.cc: ...here.
15739 * calls.c: Moved to...
15740 * calls.cc: ...here.
15741 * ccmp.c: Moved to...
15742 * ccmp.cc: ...here.
15743 * cfg.c: Moved to...
15744 * cfg.cc: ...here.
15745 * cfganal.c: Moved to...
15746 * cfganal.cc: ...here.
15747 * cfgbuild.c: Moved to...
15748 * cfgbuild.cc: ...here.
15749 * cfgcleanup.c: Moved to...
15750 * cfgcleanup.cc: ...here.
15751 * cfgexpand.c: Moved to...
15752 * cfgexpand.cc: ...here.
15753 * cfghooks.c: Moved to...
15754 * cfghooks.cc: ...here.
15755 * cfgloop.c: Moved to...
15756 * cfgloop.cc: ...here.
15757 * cfgloopanal.c: Moved to...
15758 * cfgloopanal.cc: ...here.
15759 * cfgloopmanip.c: Moved to...
15760 * cfgloopmanip.cc: ...here.
15761 * cfgrtl.c: Moved to...
15762 * cfgrtl.cc: ...here.
15763 * cgraph.c: Moved to...
15764 * cgraph.cc: ...here.
15765 * cgraphbuild.c: Moved to...
15766 * cgraphbuild.cc: ...here.
15767 * cgraphclones.c: Moved to...
15768 * cgraphclones.cc: ...here.
15769 * cgraphunit.c: Moved to...
15770 * cgraphunit.cc: ...here.
15771 * collect-utils.c: Moved to...
15772 * collect-utils.cc: ...here.
15773 * collect2-aix.c: Moved to...
15774 * collect2-aix.cc: ...here.
15775 * collect2.c: Moved to...
15776 * collect2.cc: ...here.
15777 * combine-stack-adj.c: Moved to...
15778 * combine-stack-adj.cc: ...here.
15779 * combine.c: Moved to...
15780 * combine.cc: ...here.
15781 * common/common-targhooks.c: Moved to...
15782 * common/common-targhooks.cc: ...here.
15783 * common/config/aarch64/aarch64-common.c: Moved to...
15784 * common/config/aarch64/aarch64-common.cc: ...here.
15785 * common/config/alpha/alpha-common.c: Moved to...
15786 * common/config/alpha/alpha-common.cc: ...here.
15787 * common/config/arc/arc-common.c: Moved to...
15788 * common/config/arc/arc-common.cc: ...here.
15789 * common/config/arm/arm-common.c: Moved to...
15790 * common/config/arm/arm-common.cc: ...here.
15791 * common/config/avr/avr-common.c: Moved to...
15792 * common/config/avr/avr-common.cc: ...here.
15793 * common/config/bfin/bfin-common.c: Moved to...
15794 * common/config/bfin/bfin-common.cc: ...here.
15795 * common/config/bpf/bpf-common.c: Moved to...
15796 * common/config/bpf/bpf-common.cc: ...here.
15797 * common/config/c6x/c6x-common.c: Moved to...
15798 * common/config/c6x/c6x-common.cc: ...here.
15799 * common/config/cr16/cr16-common.c: Moved to...
15800 * common/config/cr16/cr16-common.cc: ...here.
15801 * common/config/cris/cris-common.c: Moved to...
15802 * common/config/cris/cris-common.cc: ...here.
15803 * common/config/csky/csky-common.c: Moved to...
15804 * common/config/csky/csky-common.cc: ...here.
15805 * common/config/default-common.c: Moved to...
15806 * common/config/default-common.cc: ...here.
15807 * common/config/epiphany/epiphany-common.c: Moved to...
15808 * common/config/epiphany/epiphany-common.cc: ...here.
15809 * common/config/fr30/fr30-common.c: Moved to...
15810 * common/config/fr30/fr30-common.cc: ...here.
15811 * common/config/frv/frv-common.c: Moved to...
15812 * common/config/frv/frv-common.cc: ...here.
15813 * common/config/gcn/gcn-common.c: Moved to...
15814 * common/config/gcn/gcn-common.cc: ...here.
15815 * common/config/h8300/h8300-common.c: Moved to...
15816 * common/config/h8300/h8300-common.cc: ...here.
15817 * common/config/i386/i386-common.c: Moved to...
15818 * common/config/i386/i386-common.cc: ...here.
15819 * common/config/ia64/ia64-common.c: Moved to...
15820 * common/config/ia64/ia64-common.cc: ...here.
15821 * common/config/iq2000/iq2000-common.c: Moved to...
15822 * common/config/iq2000/iq2000-common.cc: ...here.
15823 * common/config/lm32/lm32-common.c: Moved to...
15824 * common/config/lm32/lm32-common.cc: ...here.
15825 * common/config/m32r/m32r-common.c: Moved to...
15826 * common/config/m32r/m32r-common.cc: ...here.
15827 * common/config/m68k/m68k-common.c: Moved to...
15828 * common/config/m68k/m68k-common.cc: ...here.
15829 * common/config/mcore/mcore-common.c: Moved to...
15830 * common/config/mcore/mcore-common.cc: ...here.
15831 * common/config/microblaze/microblaze-common.c: Moved to...
15832 * common/config/microblaze/microblaze-common.cc: ...here.
15833 * common/config/mips/mips-common.c: Moved to...
15834 * common/config/mips/mips-common.cc: ...here.
15835 * common/config/mmix/mmix-common.c: Moved to...
15836 * common/config/mmix/mmix-common.cc: ...here.
15837 * common/config/mn10300/mn10300-common.c: Moved to...
15838 * common/config/mn10300/mn10300-common.cc: ...here.
15839 * common/config/msp430/msp430-common.c: Moved to...
15840 * common/config/msp430/msp430-common.cc: ...here.
15841 * common/config/nds32/nds32-common.c: Moved to...
15842 * common/config/nds32/nds32-common.cc: ...here.
15843 * common/config/nios2/nios2-common.c: Moved to...
15844 * common/config/nios2/nios2-common.cc: ...here.
15845 * common/config/nvptx/nvptx-common.c: Moved to...
15846 * common/config/nvptx/nvptx-common.cc: ...here.
15847 * common/config/or1k/or1k-common.c: Moved to...
15848 * common/config/or1k/or1k-common.cc: ...here.
15849 * common/config/pa/pa-common.c: Moved to...
15850 * common/config/pa/pa-common.cc: ...here.
15851 * common/config/pdp11/pdp11-common.c: Moved to...
15852 * common/config/pdp11/pdp11-common.cc: ...here.
15853 * common/config/pru/pru-common.c: Moved to...
15854 * common/config/pru/pru-common.cc: ...here.
15855 * common/config/riscv/riscv-common.c: Moved to...
15856 * common/config/riscv/riscv-common.cc: ...here.
15857 * common/config/rs6000/rs6000-common.c: Moved to...
15858 * common/config/rs6000/rs6000-common.cc: ...here.
15859 * common/config/rx/rx-common.c: Moved to...
15860 * common/config/rx/rx-common.cc: ...here.
15861 * common/config/s390/s390-common.c: Moved to...
15862 * common/config/s390/s390-common.cc: ...here.
15863 * common/config/sh/sh-common.c: Moved to...
15864 * common/config/sh/sh-common.cc: ...here.
15865 * common/config/sparc/sparc-common.c: Moved to...
15866 * common/config/sparc/sparc-common.cc: ...here.
15867 * common/config/tilegx/tilegx-common.c: Moved to...
15868 * common/config/tilegx/tilegx-common.cc: ...here.
15869 * common/config/tilepro/tilepro-common.c: Moved to...
15870 * common/config/tilepro/tilepro-common.cc: ...here.
15871 * common/config/v850/v850-common.c: Moved to...
15872 * common/config/v850/v850-common.cc: ...here.
15873 * common/config/vax/vax-common.c: Moved to...
15874 * common/config/vax/vax-common.cc: ...here.
15875 * common/config/visium/visium-common.c: Moved to...
15876 * common/config/visium/visium-common.cc: ...here.
15877 * common/config/xstormy16/xstormy16-common.c: Moved to...
15878 * common/config/xstormy16/xstormy16-common.cc: ...here.
15879 * common/config/xtensa/xtensa-common.c: Moved to...
15880 * common/config/xtensa/xtensa-common.cc: ...here.
15881 * compare-elim.c: Moved to...
15882 * compare-elim.cc: ...here.
15883 * config/aarch64/aarch64-bti-insert.c: Moved to...
15884 * config/aarch64/aarch64-bti-insert.cc: ...here.
15885 * config/aarch64/aarch64-builtins.c: Moved to...
15886 * config/aarch64/aarch64-builtins.cc: ...here.
15887 * config/aarch64/aarch64-c.c: Moved to...
15888 * config/aarch64/aarch64-c.cc: ...here.
15889 * config/aarch64/aarch64-d.c: Moved to...
15890 * config/aarch64/aarch64-d.cc: ...here.
15891 * config/aarch64/aarch64.c: Moved to...
15892 * config/aarch64/aarch64.cc: ...here.
15893 * config/aarch64/cortex-a57-fma-steering.c: Moved to...
15894 * config/aarch64/cortex-a57-fma-steering.cc: ...here.
15895 * config/aarch64/driver-aarch64.c: Moved to...
15896 * config/aarch64/driver-aarch64.cc: ...here.
15897 * config/aarch64/falkor-tag-collision-avoidance.c: Moved to...
15898 * config/aarch64/falkor-tag-collision-avoidance.cc: ...here.
15899 * config/aarch64/host-aarch64-darwin.c: Moved to...
15900 * config/aarch64/host-aarch64-darwin.cc: ...here.
15901 * config/alpha/alpha.c: Moved to...
15902 * config/alpha/alpha.cc: ...here.
15903 * config/alpha/driver-alpha.c: Moved to...
15904 * config/alpha/driver-alpha.cc: ...here.
15905 * config/arc/arc-c.c: Moved to...
15906 * config/arc/arc-c.cc: ...here.
15907 * config/arc/arc.c: Moved to...
15908 * config/arc/arc.cc: ...here.
15909 * config/arc/driver-arc.c: Moved to...
15910 * config/arc/driver-arc.cc: ...here.
15911 * config/arm/aarch-common.c: Moved to...
15912 * config/arm/aarch-common.cc: ...here.
15913 * config/arm/arm-builtins.c: Moved to...
15914 * config/arm/arm-builtins.cc: ...here.
15915 * config/arm/arm-c.c: Moved to...
15916 * config/arm/arm-c.cc: ...here.
15917 * config/arm/arm-d.c: Moved to...
15918 * config/arm/arm-d.cc: ...here.
15919 * config/arm/arm.c: Moved to...
15920 * config/arm/arm.cc: ...here.
15921 * config/arm/driver-arm.c: Moved to...
15922 * config/arm/driver-arm.cc: ...here.
15923 * config/avr/avr-c.c: Moved to...
15924 * config/avr/avr-c.cc: ...here.
15925 * config/avr/avr-devices.c: Moved to...
15926 * config/avr/avr-devices.cc: ...here.
15927 * config/avr/avr-log.c: Moved to...
15928 * config/avr/avr-log.cc: ...here.
15929 * config/avr/avr.c: Moved to...
15930 * config/avr/avr.cc: ...here.
15931 * config/avr/driver-avr.c: Moved to...
15932 * config/avr/driver-avr.cc: ...here.
15933 * config/avr/gen-avr-mmcu-specs.c: Moved to...
15934 * config/avr/gen-avr-mmcu-specs.cc: ...here.
15935 * config/avr/gen-avr-mmcu-texi.c: Moved to...
15936 * config/avr/gen-avr-mmcu-texi.cc: ...here.
15937 * config/bfin/bfin.c: Moved to...
15938 * config/bfin/bfin.cc: ...here.
15939 * config/bpf/bpf.c: Moved to...
15940 * config/bpf/bpf.cc: ...here.
15941 * config/bpf/coreout.c: Moved to...
15942 * config/bpf/coreout.cc: ...here.
15943 * config/c6x/c6x.c: Moved to...
15944 * config/c6x/c6x.cc: ...here.
15945 * config/cr16/cr16.c: Moved to...
15946 * config/cr16/cr16.cc: ...here.
15947 * config/cris/cris.c: Moved to...
15948 * config/cris/cris.cc: ...here.
15949 * config/csky/csky.c: Moved to...
15950 * config/csky/csky.cc: ...here.
15951 * config/darwin-c.c: Moved to...
15952 * config/darwin-c.cc: ...here.
15953 * config/darwin-d.c: Moved to...
15954 * config/darwin-d.cc: ...here.
15955 * config/darwin-driver.c: Moved to...
15956 * config/darwin-driver.cc: ...here.
15957 * config/darwin-f.c: Moved to...
15958 * config/darwin-f.cc: ...here.
15959 * config/darwin.c: Moved to...
15960 * config/darwin.cc: ...here.
15961 * config/default-c.c: Moved to...
15962 * config/default-c.cc: ...here.
15963 * config/default-d.c: Moved to...
15964 * config/default-d.cc: ...here.
15965 * config/dragonfly-d.c: Moved to...
15966 * config/dragonfly-d.cc: ...here.
15967 * config/epiphany/epiphany.c: Moved to...
15968 * config/epiphany/epiphany.cc: ...here.
15969 * config/epiphany/mode-switch-use.c: Moved to...
15970 * config/epiphany/mode-switch-use.cc: ...here.
15971 * config/epiphany/resolve-sw-modes.c: Moved to...
15972 * config/epiphany/resolve-sw-modes.cc: ...here.
15973 * config/fr30/fr30.c: Moved to...
15974 * config/fr30/fr30.cc: ...here.
15975 * config/freebsd-d.c: Moved to...
15976 * config/freebsd-d.cc: ...here.
15977 * config/frv/frv.c: Moved to...
15978 * config/frv/frv.cc: ...here.
15979 * config/ft32/ft32.c: Moved to...
15980 * config/ft32/ft32.cc: ...here.
15981 * config/gcn/driver-gcn.c: Moved to...
15982 * config/gcn/driver-gcn.cc: ...here.
15983 * config/gcn/gcn-run.c: Moved to...
15984 * config/gcn/gcn-run.cc: ...here.
15985 * config/gcn/gcn-tree.c: Moved to...
15986 * config/gcn/gcn-tree.cc: ...here.
15987 * config/gcn/gcn.c: Moved to...
15988 * config/gcn/gcn.cc: ...here.
15989 * config/gcn/mkoffload.c: Moved to...
15990 * config/gcn/mkoffload.cc: ...here.
15991 * config/glibc-c.c: Moved to...
15992 * config/glibc-c.cc: ...here.
15993 * config/glibc-d.c: Moved to...
15994 * config/glibc-d.cc: ...here.
15995 * config/h8300/h8300.c: Moved to...
15996 * config/h8300/h8300.cc: ...here.
15997 * config/host-darwin.c: Moved to...
15998 * config/host-darwin.cc: ...here.
15999 * config/host-hpux.c: Moved to...
16000 * config/host-hpux.cc: ...here.
16001 * config/host-linux.c: Moved to...
16002 * config/host-linux.cc: ...here.
16003 * config/host-netbsd.c: Moved to...
16004 * config/host-netbsd.cc: ...here.
16005 * config/host-openbsd.c: Moved to...
16006 * config/host-openbsd.cc: ...here.
16007 * config/host-solaris.c: Moved to...
16008 * config/host-solaris.cc: ...here.
16009 * config/i386/djgpp.c: Moved to...
16010 * config/i386/djgpp.cc: ...here.
16011 * config/i386/driver-i386.c: Moved to...
16012 * config/i386/driver-i386.cc: ...here.
16013 * config/i386/driver-mingw32.c: Moved to...
16014 * config/i386/driver-mingw32.cc: ...here.
16015 * config/i386/gnu-property.c: Moved to...
16016 * config/i386/gnu-property.cc: ...here.
16017 * config/i386/host-cygwin.c: Moved to...
16018 * config/i386/host-cygwin.cc: ...here.
16019 * config/i386/host-i386-darwin.c: Moved to...
16020 * config/i386/host-i386-darwin.cc: ...here.
16021 * config/i386/host-mingw32.c: Moved to...
16022 * config/i386/host-mingw32.cc: ...here.
16023 * config/i386/i386-builtins.c: Moved to...
16024 * config/i386/i386-builtins.cc: ...here.
16025 * config/i386/i386-c.c: Moved to...
16026 * config/i386/i386-c.cc: ...here.
16027 * config/i386/i386-d.c: Moved to...
16028 * config/i386/i386-d.cc: ...here.
16029 * config/i386/i386-expand.c: Moved to...
16030 * config/i386/i386-expand.cc: ...here.
16031 * config/i386/i386-features.c: Moved to...
16032 * config/i386/i386-features.cc: ...here.
16033 * config/i386/i386-options.c: Moved to...
16034 * config/i386/i386-options.cc: ...here.
16035 * config/i386/i386.c: Moved to...
16036 * config/i386/i386.cc: ...here.
16037 * config/i386/intelmic-mkoffload.c: Moved to...
16038 * config/i386/intelmic-mkoffload.cc: ...here.
16039 * config/i386/msformat-c.c: Moved to...
16040 * config/i386/msformat-c.cc: ...here.
16041 * config/i386/winnt-cxx.c: Moved to...
16042 * config/i386/winnt-cxx.cc: ...here.
16043 * config/i386/winnt-d.c: Moved to...
16044 * config/i386/winnt-d.cc: ...here.
16045 * config/i386/winnt-stubs.c: Moved to...
16046 * config/i386/winnt-stubs.cc: ...here.
16047 * config/i386/winnt.c: Moved to...
16048 * config/i386/winnt.cc: ...here.
16049 * config/i386/x86-tune-sched-atom.c: Moved to...
16050 * config/i386/x86-tune-sched-atom.cc: ...here.
16051 * config/i386/x86-tune-sched-bd.c: Moved to...
16052 * config/i386/x86-tune-sched-bd.cc: ...here.
16053 * config/i386/x86-tune-sched-core.c: Moved to...
16054 * config/i386/x86-tune-sched-core.cc: ...here.
16055 * config/i386/x86-tune-sched.c: Moved to...
16056 * config/i386/x86-tune-sched.cc: ...here.
16057 * config/ia64/ia64-c.c: Moved to...
16058 * config/ia64/ia64-c.cc: ...here.
16059 * config/ia64/ia64.c: Moved to...
16060 * config/ia64/ia64.cc: ...here.
16061 * config/iq2000/iq2000.c: Moved to...
16062 * config/iq2000/iq2000.cc: ...here.
16063 * config/linux.c: Moved to...
16064 * config/linux.cc: ...here.
16065 * config/lm32/lm32.c: Moved to...
16066 * config/lm32/lm32.cc: ...here.
16067 * config/m32c/m32c-pragma.c: Moved to...
16068 * config/m32c/m32c-pragma.cc: ...here.
16069 * config/m32c/m32c.c: Moved to...
16070 * config/m32c/m32c.cc: ...here.
16071 * config/m32r/m32r.c: Moved to...
16072 * config/m32r/m32r.cc: ...here.
16073 * config/m68k/m68k.c: Moved to...
16074 * config/m68k/m68k.cc: ...here.
16075 * config/mcore/mcore.c: Moved to...
16076 * config/mcore/mcore.cc: ...here.
16077 * config/microblaze/microblaze-c.c: Moved to...
16078 * config/microblaze/microblaze-c.cc: ...here.
16079 * config/microblaze/microblaze.c: Moved to...
16080 * config/microblaze/microblaze.cc: ...here.
16081 * config/mips/driver-native.c: Moved to...
16082 * config/mips/driver-native.cc: ...here.
16083 * config/mips/frame-header-opt.c: Moved to...
16084 * config/mips/frame-header-opt.cc: ...here.
16085 * config/mips/mips-d.c: Moved to...
16086 * config/mips/mips-d.cc: ...here.
16087 * config/mips/mips.c: Moved to...
16088 * config/mips/mips.cc: ...here.
16089 * config/mmix/mmix.c: Moved to...
16090 * config/mmix/mmix.cc: ...here.
16091 * config/mn10300/mn10300.c: Moved to...
16092 * config/mn10300/mn10300.cc: ...here.
16093 * config/moxie/moxie.c: Moved to...
16094 * config/moxie/moxie.cc: ...here.
16095 * config/msp430/driver-msp430.c: Moved to...
16096 * config/msp430/driver-msp430.cc: ...here.
16097 * config/msp430/msp430-c.c: Moved to...
16098 * config/msp430/msp430-c.cc: ...here.
16099 * config/msp430/msp430-devices.c: Moved to...
16100 * config/msp430/msp430-devices.cc: ...here.
16101 * config/msp430/msp430.c: Moved to...
16102 * config/msp430/msp430.cc: ...here.
16103 * config/nds32/nds32-cost.c: Moved to...
16104 * config/nds32/nds32-cost.cc: ...here.
16105 * config/nds32/nds32-fp-as-gp.c: Moved to...
16106 * config/nds32/nds32-fp-as-gp.cc: ...here.
16107 * config/nds32/nds32-intrinsic.c: Moved to...
16108 * config/nds32/nds32-intrinsic.cc: ...here.
16109 * config/nds32/nds32-isr.c: Moved to...
16110 * config/nds32/nds32-isr.cc: ...here.
16111 * config/nds32/nds32-md-auxiliary.c: Moved to...
16112 * config/nds32/nds32-md-auxiliary.cc: ...here.
16113 * config/nds32/nds32-memory-manipulation.c: Moved to...
16114 * config/nds32/nds32-memory-manipulation.cc: ...here.
16115 * config/nds32/nds32-pipelines-auxiliary.c: Moved to...
16116 * config/nds32/nds32-pipelines-auxiliary.cc: ...here.
16117 * config/nds32/nds32-predicates.c: Moved to...
16118 * config/nds32/nds32-predicates.cc: ...here.
16119 * config/nds32/nds32-relax-opt.c: Moved to...
16120 * config/nds32/nds32-relax-opt.cc: ...here.
16121 * config/nds32/nds32-utils.c: Moved to...
16122 * config/nds32/nds32-utils.cc: ...here.
16123 * config/nds32/nds32.c: Moved to...
16124 * config/nds32/nds32.cc: ...here.
16125 * config/netbsd-d.c: Moved to...
16126 * config/netbsd-d.cc: ...here.
16127 * config/netbsd.c: Moved to...
16128 * config/netbsd.cc: ...here.
16129 * config/nios2/nios2.c: Moved to...
16130 * config/nios2/nios2.cc: ...here.
16131 * config/nvptx/mkoffload.c: Moved to...
16132 * config/nvptx/mkoffload.cc: ...here.
16133 * config/nvptx/nvptx-c.c: Moved to...
16134 * config/nvptx/nvptx-c.cc: ...here.
16135 * config/nvptx/nvptx.c: Moved to...
16136 * config/nvptx/nvptx.cc: ...here.
16137 * config/openbsd-d.c: Moved to...
16138 * config/openbsd-d.cc: ...here.
16139 * config/or1k/or1k.c: Moved to...
16140 * config/or1k/or1k.cc: ...here.
16141 * config/pa/pa-d.c: Moved to...
16142 * config/pa/pa-d.cc: ...here.
16143 * config/pa/pa.c: Moved to...
16144 * config/pa/pa.cc: ...here.
16145 * config/pdp11/pdp11.c: Moved to...
16146 * config/pdp11/pdp11.cc: ...here.
16147 * config/pru/pru-passes.c: Moved to...
16148 * config/pru/pru-passes.cc: ...here.
16149 * config/pru/pru-pragma.c: Moved to...
16150 * config/pru/pru-pragma.cc: ...here.
16151 * config/pru/pru.c: Moved to...
16152 * config/pru/pru.cc: ...here.
16153 * config/riscv/riscv-builtins.c: Moved to...
16154 * config/riscv/riscv-builtins.cc: ...here.
16155 * config/riscv/riscv-c.c: Moved to...
16156 * config/riscv/riscv-c.cc: ...here.
16157 * config/riscv/riscv-d.c: Moved to...
16158 * config/riscv/riscv-d.cc: ...here.
16159 * config/riscv/riscv-shorten-memrefs.c: Moved to...
16160 * config/riscv/riscv-shorten-memrefs.cc: ...here.
16161 * config/riscv/riscv-sr.c: Moved to...
16162 * config/riscv/riscv-sr.cc: ...here.
16163 * config/riscv/riscv.c: Moved to...
16164 * config/riscv/riscv.cc: ...here.
16165 * config/rl78/rl78-c.c: Moved to...
16166 * config/rl78/rl78-c.cc: ...here.
16167 * config/rl78/rl78.c: Moved to...
16168 * config/rl78/rl78.cc: ...here.
16169 * config/rs6000/driver-rs6000.c: Moved to...
16170 * config/rs6000/driver-rs6000.cc: ...here.
16171 * config/rs6000/host-darwin.c: Moved to...
16172 * config/rs6000/host-darwin.cc: ...here.
16173 * config/rs6000/host-ppc64-darwin.c: Moved to...
16174 * config/rs6000/host-ppc64-darwin.cc: ...here.
16175 * config/rs6000/rbtree.c: Moved to...
16176 * config/rs6000/rbtree.cc: ...here.
16177 * config/rs6000/rs6000-c.c: Moved to...
16178 * config/rs6000/rs6000-c.cc: ...here.
16179 * config/rs6000/rs6000-call.c: Moved to...
16180 * config/rs6000/rs6000-call.cc: ...here.
16181 * config/rs6000/rs6000-d.c: Moved to...
16182 * config/rs6000/rs6000-d.cc: ...here.
16183 * config/rs6000/rs6000-gen-builtins.c: Moved to...
16184 * config/rs6000/rs6000-gen-builtins.cc: ...here.
16185 * config/rs6000/rs6000-linux.c: Moved to...
16186 * config/rs6000/rs6000-linux.cc: ...here.
16187 * config/rs6000/rs6000-logue.c: Moved to...
16188 * config/rs6000/rs6000-logue.cc: ...here.
16189 * config/rs6000/rs6000-p8swap.c: Moved to...
16190 * config/rs6000/rs6000-p8swap.cc: ...here.
16191 * config/rs6000/rs6000-pcrel-opt.c: Moved to...
16192 * config/rs6000/rs6000-pcrel-opt.cc: ...here.
16193 * config/rs6000/rs6000-string.c: Moved to...
16194 * config/rs6000/rs6000-string.cc: ...here.
16195 * config/rs6000/rs6000.c: Moved to...
16196 * config/rs6000/rs6000.cc: ...here.
16197 * config/rx/rx.c: Moved to...
16198 * config/rx/rx.cc: ...here.
16199 * config/s390/driver-native.c: Moved to...
16200 * config/s390/driver-native.cc: ...here.
16201 * config/s390/s390-c.c: Moved to...
16202 * config/s390/s390-c.cc: ...here.
16203 * config/s390/s390-d.c: Moved to...
16204 * config/s390/s390-d.cc: ...here.
16205 * config/s390/s390.c: Moved to...
16206 * config/s390/s390.cc: ...here.
16207 * config/sh/divtab-sh4-300.c: Moved to...
16208 * config/sh/divtab-sh4-300.cc: ...here.
16209 * config/sh/divtab-sh4.c: Moved to...
16210 * config/sh/divtab-sh4.cc: ...here.
16211 * config/sh/divtab.c: Moved to...
16212 * config/sh/divtab.cc: ...here.
16213 * config/sh/sh-c.c: Moved to...
16214 * config/sh/sh-c.cc: ...here.
16215 * config/sh/sh.c: Moved to...
16216 * config/sh/sh.cc: ...here.
16217 * config/sol2-c.c: Moved to...
16218 * config/sol2-c.cc: ...here.
16219 * config/sol2-cxx.c: Moved to...
16220 * config/sol2-cxx.cc: ...here.
16221 * config/sol2-d.c: Moved to...
16222 * config/sol2-d.cc: ...here.
16223 * config/sol2-stubs.c: Moved to...
16224 * config/sol2-stubs.cc: ...here.
16225 * config/sol2.c: Moved to...
16226 * config/sol2.cc: ...here.
16227 * config/sparc/driver-sparc.c: Moved to...
16228 * config/sparc/driver-sparc.cc: ...here.
16229 * config/sparc/sparc-c.c: Moved to...
16230 * config/sparc/sparc-c.cc: ...here.
16231 * config/sparc/sparc-d.c: Moved to...
16232 * config/sparc/sparc-d.cc: ...here.
16233 * config/sparc/sparc.c: Moved to...
16234 * config/sparc/sparc.cc: ...here.
16235 * config/stormy16/stormy16.c: Moved to...
16236 * config/stormy16/stormy16.cc: ...here.
16237 * config/tilegx/mul-tables.c: Moved to...
16238 * config/tilegx/mul-tables.cc: ...here.
16239 * config/tilegx/tilegx-c.c: Moved to...
16240 * config/tilegx/tilegx-c.cc: ...here.
16241 * config/tilegx/tilegx.c: Moved to...
16242 * config/tilegx/tilegx.cc: ...here.
16243 * config/tilepro/mul-tables.c: Moved to...
16244 * config/tilepro/mul-tables.cc: ...here.
16245 * config/tilepro/tilepro-c.c: Moved to...
16246 * config/tilepro/tilepro-c.cc: ...here.
16247 * config/tilepro/tilepro.c: Moved to...
16248 * config/tilepro/tilepro.cc: ...here.
16249 * config/v850/v850-c.c: Moved to...
16250 * config/v850/v850-c.cc: ...here.
16251 * config/v850/v850.c: Moved to...
16252 * config/v850/v850.cc: ...here.
16253 * config/vax/vax.c: Moved to...
16254 * config/vax/vax.cc: ...here.
16255 * config/visium/visium.c: Moved to...
16256 * config/visium/visium.cc: ...here.
16257 * config/vms/vms-c.c: Moved to...
16258 * config/vms/vms-c.cc: ...here.
16259 * config/vms/vms-f.c: Moved to...
16260 * config/vms/vms-f.cc: ...here.
16261 * config/vms/vms.c: Moved to...
16262 * config/vms/vms.cc: ...here.
16263 * config/vxworks-c.c: Moved to...
16264 * config/vxworks-c.cc: ...here.
16265 * config/vxworks.c: Moved to...
16266 * config/vxworks.cc: ...here.
16267 * config/winnt-c.c: Moved to...
16268 * config/winnt-c.cc: ...here.
16269 * config/xtensa/xtensa.c: Moved to...
16270 * config/xtensa/xtensa.cc: ...here.
16271 * context.c: Moved to...
16272 * context.cc: ...here.
16273 * convert.c: Moved to...
16274 * convert.cc: ...here.
16275 * coverage.c: Moved to...
16276 * coverage.cc: ...here.
16277 * cppbuiltin.c: Moved to...
16278 * cppbuiltin.cc: ...here.
16279 * cppdefault.c: Moved to...
16280 * cppdefault.cc: ...here.
16281 * cprop.c: Moved to...
16282 * cprop.cc: ...here.
16283 * cse.c: Moved to...
16284 * cse.cc: ...here.
16285 * cselib.c: Moved to...
16286 * cselib.cc: ...here.
16287 * ctfc.c: Moved to...
16288 * ctfc.cc: ...here.
16289 * ctfout.c: Moved to...
16290 * ctfout.cc: ...here.
16291 * data-streamer-in.c: Moved to...
16292 * data-streamer-in.cc: ...here.
16293 * data-streamer-out.c: Moved to...
16294 * data-streamer-out.cc: ...here.
16295 * data-streamer.c: Moved to...
16296 * data-streamer.cc: ...here.
16297 * dbgcnt.c: Moved to...
16298 * dbgcnt.cc: ...here.
16299 * dbxout.c: Moved to...
16300 * dbxout.cc: ...here.
16301 * dce.c: Moved to...
16302 * dce.cc: ...here.
16303 * ddg.c: Moved to...
16304 * ddg.cc: ...here.
16305 * debug.c: Moved to...
16306 * debug.cc: ...here.
16307 * df-core.c: Moved to...
16308 * df-core.cc: ...here.
16309 * df-problems.c: Moved to...
16310 * df-problems.cc: ...here.
16311 * df-scan.c: Moved to...
16312 * df-scan.cc: ...here.
16313 * dfp.c: Moved to...
16314 * dfp.cc: ...here.
16315 * diagnostic-color.c: Moved to...
16316 * diagnostic-color.cc: ...here.
16317 * diagnostic-show-locus.c: Moved to...
16318 * diagnostic-show-locus.cc: ...here.
16319 * diagnostic-spec.c: Moved to...
16320 * diagnostic-spec.cc: ...here.
16321 * diagnostic.c: Moved to...
16322 * diagnostic.cc: ...here.
16323 * dojump.c: Moved to...
16324 * dojump.cc: ...here.
16325 * dominance.c: Moved to...
16326 * dominance.cc: ...here.
16327 * domwalk.c: Moved to...
16328 * domwalk.cc: ...here.
16329 * double-int.c: Moved to...
16330 * double-int.cc: ...here.
16331 * dse.c: Moved to...
16332 * dse.cc: ...here.
16333 * dumpfile.c: Moved to...
16334 * dumpfile.cc: ...here.
16335 * dwarf2asm.c: Moved to...
16336 * dwarf2asm.cc: ...here.
16337 * dwarf2cfi.c: Moved to...
16338 * dwarf2cfi.cc: ...here.
16339 * dwarf2ctf.c: Moved to...
16340 * dwarf2ctf.cc: ...here.
16341 * dwarf2out.c: Moved to...
16342 * dwarf2out.cc: ...here.
16343 * early-remat.c: Moved to...
16344 * early-remat.cc: ...here.
16345 * edit-context.c: Moved to...
16346 * edit-context.cc: ...here.
16347 * emit-rtl.c: Moved to...
16348 * emit-rtl.cc: ...here.
16349 * errors.c: Moved to...
16350 * errors.cc: ...here.
16351 * et-forest.c: Moved to...
16352 * et-forest.cc: ...here.
16353 * except.c: Moved to...
16354 * except.cc: ...here.
16355 * explow.c: Moved to...
16356 * explow.cc: ...here.
16357 * expmed.c: Moved to...
16358 * expmed.cc: ...here.
16359 * expr.c: Moved to...
16360 * expr.cc: ...here.
16361 * fibonacci_heap.c: Moved to...
16362 * fibonacci_heap.cc: ...here.
16363 * file-find.c: Moved to...
16364 * file-find.cc: ...here.
16365 * file-prefix-map.c: Moved to...
16366 * file-prefix-map.cc: ...here.
16367 * final.c: Moved to...
16368 * final.cc: ...here.
16369 * fixed-value.c: Moved to...
16370 * fixed-value.cc: ...here.
16371 * fold-const-call.c: Moved to...
16372 * fold-const-call.cc: ...here.
16373 * fold-const.c: Moved to...
16374 * fold-const.cc: ...here.
16375 * fp-test.c: Moved to...
16376 * fp-test.cc: ...here.
16377 * function-tests.c: Moved to...
16378 * function-tests.cc: ...here.
16379 * function.c: Moved to...
16380 * function.cc: ...here.
16381 * fwprop.c: Moved to...
16382 * fwprop.cc: ...here.
16383 * gcc-ar.c: Moved to...
16384 * gcc-ar.cc: ...here.
16385 * gcc-main.c: Moved to...
16386 * gcc-main.cc: ...here.
16387 * gcc-rich-location.c: Moved to...
16388 * gcc-rich-location.cc: ...here.
16389 * gcc.c: Moved to...
16390 * gcc.cc: ...here.
16391 * gcov-dump.c: Moved to...
16392 * gcov-dump.cc: ...here.
16393 * gcov-io.c: Moved to...
16394 * gcov-io.cc: ...here.
16395 * gcov-tool.c: Moved to...
16396 * gcov-tool.cc: ...here.
16397 * gcov.c: Moved to...
16398 * gcov.cc: ...here.
16399 * gcse-common.c: Moved to...
16400 * gcse-common.cc: ...here.
16401 * gcse.c: Moved to...
16402 * gcse.cc: ...here.
16403 * genattr-common.c: Moved to...
16404 * genattr-common.cc: ...here.
16405 * genattr.c: Moved to...
16406 * genattr.cc: ...here.
16407 * genattrtab.c: Moved to...
16408 * genattrtab.cc: ...here.
16409 * genautomata.c: Moved to...
16410 * genautomata.cc: ...here.
16411 * gencfn-macros.c: Moved to...
16412 * gencfn-macros.cc: ...here.
16413 * gencheck.c: Moved to...
16414 * gencheck.cc: ...here.
16415 * genchecksum.c: Moved to...
16416 * genchecksum.cc: ...here.
16417 * gencodes.c: Moved to...
16418 * gencodes.cc: ...here.
16419 * genconditions.c: Moved to...
16420 * genconditions.cc: ...here.
16421 * genconfig.c: Moved to...
16422 * genconfig.cc: ...here.
16423 * genconstants.c: Moved to...
16424 * genconstants.cc: ...here.
16425 * genemit.c: Moved to...
16426 * genemit.cc: ...here.
16427 * genenums.c: Moved to...
16428 * genenums.cc: ...here.
16429 * generic-match-head.c: Moved to...
16430 * generic-match-head.cc: ...here.
16431 * genextract.c: Moved to...
16432 * genextract.cc: ...here.
16433 * genflags.c: Moved to...
16434 * genflags.cc: ...here.
16435 * gengenrtl.c: Moved to...
16436 * gengenrtl.cc: ...here.
16437 * gengtype-parse.c: Moved to...
16438 * gengtype-parse.cc: ...here.
16439 * gengtype-state.c: Moved to...
16440 * gengtype-state.cc: ...here.
16441 * gengtype.c: Moved to...
16442 * gengtype.cc: ...here.
16443 * genhooks.c: Moved to...
16444 * genhooks.cc: ...here.
16445 * genmatch.c: Moved to...
16446 * genmatch.cc: ...here.
16447 * genmddeps.c: Moved to...
16448 * genmddeps.cc: ...here.
16449 * genmddump.c: Moved to...
16450 * genmddump.cc: ...here.
16451 * genmodes.c: Moved to...
16452 * genmodes.cc: ...here.
16453 * genopinit.c: Moved to...
16454 * genopinit.cc: ...here.
16455 * genoutput.c: Moved to...
16456 * genoutput.cc: ...here.
16457 * genpeep.c: Moved to...
16458 * genpeep.cc: ...here.
16459 * genpreds.c: Moved to...
16460 * genpreds.cc: ...here.
16461 * genrecog.c: Moved to...
16462 * genrecog.cc: ...here.
16463 * gensupport.c: Moved to...
16464 * gensupport.cc: ...here.
16465 * gentarget-def.c: Moved to...
16466 * gentarget-def.cc: ...here.
16467 * genversion.c: Moved to...
16468 * genversion.cc: ...here.
16469 * ggc-common.c: Moved to...
16470 * ggc-common.cc: ...here.
16471 * ggc-none.c: Moved to...
16472 * ggc-none.cc: ...here.
16473 * ggc-page.c: Moved to...
16474 * ggc-page.cc: ...here.
16475 * ggc-tests.c: Moved to...
16476 * ggc-tests.cc: ...here.
16477 * gimple-builder.c: Moved to...
16478 * gimple-builder.cc: ...here.
16479 * gimple-expr.c: Moved to...
16480 * gimple-expr.cc: ...here.
16481 * gimple-fold.c: Moved to...
16482 * gimple-fold.cc: ...here.
16483 * gimple-iterator.c: Moved to...
16484 * gimple-iterator.cc: ...here.
16485 * gimple-laddress.c: Moved to...
16486 * gimple-laddress.cc: ...here.
16487 * gimple-loop-jam.c: Moved to...
16488 * gimple-loop-jam.cc: ...here.
16489 * gimple-low.c: Moved to...
16490 * gimple-low.cc: ...here.
16491 * gimple-match-head.c: Moved to...
16492 * gimple-match-head.cc: ...here.
16493 * gimple-pretty-print.c: Moved to...
16494 * gimple-pretty-print.cc: ...here.
16495 * gimple-ssa-backprop.c: Moved to...
16496 * gimple-ssa-backprop.cc: ...here.
16497 * gimple-ssa-evrp-analyze.c: Moved to...
16498 * gimple-ssa-evrp-analyze.cc: ...here.
16499 * gimple-ssa-evrp.c: Moved to...
16500 * gimple-ssa-evrp.cc: ...here.
16501 * gimple-ssa-isolate-paths.c: Moved to...
16502 * gimple-ssa-isolate-paths.cc: ...here.
16503 * gimple-ssa-nonnull-compare.c: Moved to...
16504 * gimple-ssa-nonnull-compare.cc: ...here.
16505 * gimple-ssa-split-paths.c: Moved to...
16506 * gimple-ssa-split-paths.cc: ...here.
16507 * gimple-ssa-sprintf.c: Moved to...
16508 * gimple-ssa-sprintf.cc: ...here.
16509 * gimple-ssa-store-merging.c: Moved to...
16510 * gimple-ssa-store-merging.cc: ...here.
16511 * gimple-ssa-strength-reduction.c: Moved to...
16512 * gimple-ssa-strength-reduction.cc: ...here.
16513 * gimple-ssa-warn-alloca.c: Moved to...
16514 * gimple-ssa-warn-alloca.cc: ...here.
16515 * gimple-ssa-warn-restrict.c: Moved to...
16516 * gimple-ssa-warn-restrict.cc: ...here.
16517 * gimple-streamer-in.c: Moved to...
16518 * gimple-streamer-in.cc: ...here.
16519 * gimple-streamer-out.c: Moved to...
16520 * gimple-streamer-out.cc: ...here.
16521 * gimple-walk.c: Moved to...
16522 * gimple-walk.cc: ...here.
16523 * gimple-warn-recursion.c: Moved to...
16524 * gimple-warn-recursion.cc: ...here.
16525 * gimple.c: Moved to...
16526 * gimple.cc: ...here.
16527 * gimplify-me.c: Moved to...
16528 * gimplify-me.cc: ...here.
16529 * gimplify.c: Moved to...
16530 * gimplify.cc: ...here.
16531 * godump.c: Moved to...
16532 * godump.cc: ...here.
16533 * graph.c: Moved to...
16534 * graph.cc: ...here.
16535 * graphds.c: Moved to...
16536 * graphds.cc: ...here.
16537 * graphite-dependences.c: Moved to...
16538 * graphite-dependences.cc: ...here.
16539 * graphite-isl-ast-to-gimple.c: Moved to...
16540 * graphite-isl-ast-to-gimple.cc: ...here.
16541 * graphite-optimize-isl.c: Moved to...
16542 * graphite-optimize-isl.cc: ...here.
16543 * graphite-poly.c: Moved to...
16544 * graphite-poly.cc: ...here.
16545 * graphite-scop-detection.c: Moved to...
16546 * graphite-scop-detection.cc: ...here.
16547 * graphite-sese-to-poly.c: Moved to...
16548 * graphite-sese-to-poly.cc: ...here.
16549 * graphite.c: Moved to...
16550 * graphite.cc: ...here.
16551 * haifa-sched.c: Moved to...
16552 * haifa-sched.cc: ...here.
16553 * hash-map-tests.c: Moved to...
16554 * hash-map-tests.cc: ...here.
16555 * hash-set-tests.c: Moved to...
16556 * hash-set-tests.cc: ...here.
16557 * hash-table.c: Moved to...
16558 * hash-table.cc: ...here.
16559 * hooks.c: Moved to...
16560 * hooks.cc: ...here.
16561 * host-default.c: Moved to...
16562 * host-default.cc: ...here.
16563 * hw-doloop.c: Moved to...
16564 * hw-doloop.cc: ...here.
16565 * hwint.c: Moved to...
16566 * hwint.cc: ...here.
16567 * ifcvt.c: Moved to...
16568 * ifcvt.cc: ...here.
16569 * inchash.c: Moved to...
16570 * inchash.cc: ...here.
16571 * incpath.c: Moved to...
16572 * incpath.cc: ...here.
16573 * init-regs.c: Moved to...
16574 * init-regs.cc: ...here.
16575 * input.c: Moved to...
16576 * input.cc: ...here.
16577 * internal-fn.c: Moved to...
16578 * internal-fn.cc: ...here.
16579 * intl.c: Moved to...
16580 * intl.cc: ...here.
16581 * ipa-comdats.c: Moved to...
16582 * ipa-comdats.cc: ...here.
16583 * ipa-cp.c: Moved to...
16584 * ipa-cp.cc: ...here.
16585 * ipa-devirt.c: Moved to...
16586 * ipa-devirt.cc: ...here.
16587 * ipa-fnsummary.c: Moved to...
16588 * ipa-fnsummary.cc: ...here.
16589 * ipa-icf-gimple.c: Moved to...
16590 * ipa-icf-gimple.cc: ...here.
16591 * ipa-icf.c: Moved to...
16592 * ipa-icf.cc: ...here.
16593 * ipa-inline-analysis.c: Moved to...
16594 * ipa-inline-analysis.cc: ...here.
16595 * ipa-inline-transform.c: Moved to...
16596 * ipa-inline-transform.cc: ...here.
16597 * ipa-inline.c: Moved to...
16598 * ipa-inline.cc: ...here.
16599 * ipa-modref-tree.c: Moved to...
16600 * ipa-modref-tree.cc: ...here.
16601 * ipa-modref.c: Moved to...
16602 * ipa-modref.cc: ...here.
16603 * ipa-param-manipulation.c: Moved to...
16604 * ipa-param-manipulation.cc: ...here.
16605 * ipa-polymorphic-call.c: Moved to...
16606 * ipa-polymorphic-call.cc: ...here.
16607 * ipa-predicate.c: Moved to...
16608 * ipa-predicate.cc: ...here.
16609 * ipa-profile.c: Moved to...
16610 * ipa-profile.cc: ...here.
16611 * ipa-prop.c: Moved to...
16612 * ipa-prop.cc: ...here.
16613 * ipa-pure-const.c: Moved to...
16614 * ipa-pure-const.cc: ...here.
16615 * ipa-ref.c: Moved to...
16616 * ipa-ref.cc: ...here.
16617 * ipa-reference.c: Moved to...
16618 * ipa-reference.cc: ...here.
16619 * ipa-split.c: Moved to...
16620 * ipa-split.cc: ...here.
16621 * ipa-sra.c: Moved to...
16622 * ipa-sra.cc: ...here.
16623 * ipa-utils.c: Moved to...
16624 * ipa-utils.cc: ...here.
16625 * ipa-visibility.c: Moved to...
16626 * ipa-visibility.cc: ...here.
16627 * ipa.c: Moved to...
16628 * ipa.cc: ...here.
16629 * ira-build.c: Moved to...
16630 * ira-build.cc: ...here.
16631 * ira-color.c: Moved to...
16632 * ira-color.cc: ...here.
16633 * ira-conflicts.c: Moved to...
16634 * ira-conflicts.cc: ...here.
16635 * ira-costs.c: Moved to...
16636 * ira-costs.cc: ...here.
16637 * ira-emit.c: Moved to...
16638 * ira-emit.cc: ...here.
16639 * ira-lives.c: Moved to...
16640 * ira-lives.cc: ...here.
16641 * ira.c: Moved to...
16642 * ira.cc: ...here.
16643 * jump.c: Moved to...
16644 * jump.cc: ...here.
16645 * langhooks.c: Moved to...
16646 * langhooks.cc: ...here.
16647 * lcm.c: Moved to...
16648 * lcm.cc: ...here.
16649 * lists.c: Moved to...
16650 * lists.cc: ...here.
16651 * loop-doloop.c: Moved to...
16652 * loop-doloop.cc: ...here.
16653 * loop-init.c: Moved to...
16654 * loop-init.cc: ...here.
16655 * loop-invariant.c: Moved to...
16656 * loop-invariant.cc: ...here.
16657 * loop-iv.c: Moved to...
16658 * loop-iv.cc: ...here.
16659 * loop-unroll.c: Moved to...
16660 * loop-unroll.cc: ...here.
16661 * lower-subreg.c: Moved to...
16662 * lower-subreg.cc: ...here.
16663 * lra-assigns.c: Moved to...
16664 * lra-assigns.cc: ...here.
16665 * lra-coalesce.c: Moved to...
16666 * lra-coalesce.cc: ...here.
16667 * lra-constraints.c: Moved to...
16668 * lra-constraints.cc: ...here.
16669 * lra-eliminations.c: Moved to...
16670 * lra-eliminations.cc: ...here.
16671 * lra-lives.c: Moved to...
16672 * lra-lives.cc: ...here.
16673 * lra-remat.c: Moved to...
16674 * lra-remat.cc: ...here.
16675 * lra-spills.c: Moved to...
16676 * lra-spills.cc: ...here.
16677 * lra.c: Moved to...
16678 * lra.cc: ...here.
16679 * lto-cgraph.c: Moved to...
16680 * lto-cgraph.cc: ...here.
16681 * lto-compress.c: Moved to...
16682 * lto-compress.cc: ...here.
16683 * lto-opts.c: Moved to...
16684 * lto-opts.cc: ...here.
16685 * lto-section-in.c: Moved to...
16686 * lto-section-in.cc: ...here.
16687 * lto-section-out.c: Moved to...
16688 * lto-section-out.cc: ...here.
16689 * lto-streamer-in.c: Moved to...
16690 * lto-streamer-in.cc: ...here.
16691 * lto-streamer-out.c: Moved to...
16692 * lto-streamer-out.cc: ...here.
16693 * lto-streamer.c: Moved to...
16694 * lto-streamer.cc: ...here.
16695 * lto-wrapper.c: Moved to...
16696 * lto-wrapper.cc: ...here.
16697 * main.c: Moved to...
16698 * main.cc: ...here.
16699 * mcf.c: Moved to...
16700 * mcf.cc: ...here.
16701 * mode-switching.c: Moved to...
16702 * mode-switching.cc: ...here.
16703 * modulo-sched.c: Moved to...
16704 * modulo-sched.cc: ...here.
16705 * multiple_target.c: Moved to...
16706 * multiple_target.cc: ...here.
16707 * omp-expand.c: Moved to...
16708 * omp-expand.cc: ...here.
16709 * omp-general.c: Moved to...
16710 * omp-general.cc: ...here.
16711 * omp-low.c: Moved to...
16712 * omp-low.cc: ...here.
16713 * omp-offload.c: Moved to...
16714 * omp-offload.cc: ...here.
16715 * omp-simd-clone.c: Moved to...
16716 * omp-simd-clone.cc: ...here.
16717 * opt-suggestions.c: Moved to...
16718 * opt-suggestions.cc: ...here.
16719 * optabs-libfuncs.c: Moved to...
16720 * optabs-libfuncs.cc: ...here.
16721 * optabs-query.c: Moved to...
16722 * optabs-query.cc: ...here.
16723 * optabs-tree.c: Moved to...
16724 * optabs-tree.cc: ...here.
16725 * optabs.c: Moved to...
16726 * optabs.cc: ...here.
16727 * opts-common.c: Moved to...
16728 * opts-common.cc: ...here.
16729 * opts-global.c: Moved to...
16730 * opts-global.cc: ...here.
16731 * opts.c: Moved to...
16732 * opts.cc: ...here.
16733 * passes.c: Moved to...
16734 * passes.cc: ...here.
16735 * plugin.c: Moved to...
16736 * plugin.cc: ...here.
16737 * postreload-gcse.c: Moved to...
16738 * postreload-gcse.cc: ...here.
16739 * postreload.c: Moved to...
16740 * postreload.cc: ...here.
16741 * predict.c: Moved to...
16742 * predict.cc: ...here.
16743 * prefix.c: Moved to...
16744 * prefix.cc: ...here.
16745 * pretty-print.c: Moved to...
16746 * pretty-print.cc: ...here.
16747 * print-rtl-function.c: Moved to...
16748 * print-rtl-function.cc: ...here.
16749 * print-rtl.c: Moved to...
16750 * print-rtl.cc: ...here.
16751 * print-tree.c: Moved to...
16752 * print-tree.cc: ...here.
16753 * profile-count.c: Moved to...
16754 * profile-count.cc: ...here.
16755 * profile.c: Moved to...
16756 * profile.cc: ...here.
16757 * read-md.c: Moved to...
16758 * read-md.cc: ...here.
16759 * read-rtl-function.c: Moved to...
16760 * read-rtl-function.cc: ...here.
16761 * read-rtl.c: Moved to...
16762 * read-rtl.cc: ...here.
16763 * real.c: Moved to...
16764 * real.cc: ...here.
16765 * realmpfr.c: Moved to...
16766 * realmpfr.cc: ...here.
16767 * recog.c: Moved to...
16768 * recog.cc: ...here.
16769 * ree.c: Moved to...
16770 * ree.cc: ...here.
16771 * reg-stack.c: Moved to...
16772 * reg-stack.cc: ...here.
16773 * regcprop.c: Moved to...
16774 * regcprop.cc: ...here.
16775 * reginfo.c: Moved to...
16776 * reginfo.cc: ...here.
16777 * regrename.c: Moved to...
16778 * regrename.cc: ...here.
16779 * regstat.c: Moved to...
16780 * regstat.cc: ...here.
16781 * reload.c: Moved to...
16782 * reload.cc: ...here.
16783 * reload1.c: Moved to...
16784 * reload1.cc: ...here.
16785 * reorg.c: Moved to...
16786 * reorg.cc: ...here.
16787 * resource.c: Moved to...
16788 * resource.cc: ...here.
16789 * rtl-error.c: Moved to...
16790 * rtl-error.cc: ...here.
16791 * rtl-tests.c: Moved to...
16792 * rtl-tests.cc: ...here.
16793 * rtl.c: Moved to...
16794 * rtl.cc: ...here.
16795 * rtlanal.c: Moved to...
16796 * rtlanal.cc: ...here.
16797 * rtlhash.c: Moved to...
16798 * rtlhash.cc: ...here.
16799 * rtlhooks.c: Moved to...
16800 * rtlhooks.cc: ...here.
16801 * rtx-vector-builder.c: Moved to...
16802 * rtx-vector-builder.cc: ...here.
16803 * run-rtl-passes.c: Moved to...
16804 * run-rtl-passes.cc: ...here.
16805 * sancov.c: Moved to...
16806 * sancov.cc: ...here.
16807 * sanopt.c: Moved to...
16808 * sanopt.cc: ...here.
16809 * sbitmap.c: Moved to...
16810 * sbitmap.cc: ...here.
16811 * sched-deps.c: Moved to...
16812 * sched-deps.cc: ...here.
16813 * sched-ebb.c: Moved to...
16814 * sched-ebb.cc: ...here.
16815 * sched-rgn.c: Moved to...
16816 * sched-rgn.cc: ...here.
16817 * sel-sched-dump.c: Moved to...
16818 * sel-sched-dump.cc: ...here.
16819 * sel-sched-ir.c: Moved to...
16820 * sel-sched-ir.cc: ...here.
16821 * sel-sched.c: Moved to...
16822 * sel-sched.cc: ...here.
16823 * selftest-diagnostic.c: Moved to...
16824 * selftest-diagnostic.cc: ...here.
16825 * selftest-rtl.c: Moved to...
16826 * selftest-rtl.cc: ...here.
16827 * selftest-run-tests.c: Moved to...
16828 * selftest-run-tests.cc: ...here.
16829 * selftest.c: Moved to...
16830 * selftest.cc: ...here.
16831 * sese.c: Moved to...
16832 * sese.cc: ...here.
16833 * shrink-wrap.c: Moved to...
16834 * shrink-wrap.cc: ...here.
16835 * simplify-rtx.c: Moved to...
16836 * simplify-rtx.cc: ...here.
16837 * sparseset.c: Moved to...
16838 * sparseset.cc: ...here.
16839 * spellcheck-tree.c: Moved to...
16840 * spellcheck-tree.cc: ...here.
16841 * spellcheck.c: Moved to...
16842 * spellcheck.cc: ...here.
16843 * sreal.c: Moved to...
16844 * sreal.cc: ...here.
16845 * stack-ptr-mod.c: Moved to...
16846 * stack-ptr-mod.cc: ...here.
16847 * statistics.c: Moved to...
16848 * statistics.cc: ...here.
16849 * stmt.c: Moved to...
16850 * stmt.cc: ...here.
16851 * stor-layout.c: Moved to...
16852 * stor-layout.cc: ...here.
16853 * store-motion.c: Moved to...
16854 * store-motion.cc: ...here.
16855 * streamer-hooks.c: Moved to...
16856 * streamer-hooks.cc: ...here.
16857 * stringpool.c: Moved to...
16858 * stringpool.cc: ...here.
16859 * substring-locations.c: Moved to...
16860 * substring-locations.cc: ...here.
16861 * symtab.c: Moved to...
16862 * symtab.cc: ...here.
16863 * target-globals.c: Moved to...
16864 * target-globals.cc: ...here.
16865 * targhooks.c: Moved to...
16866 * targhooks.cc: ...here.
16867 * timevar.c: Moved to...
16868 * timevar.cc: ...here.
16869 * toplev.c: Moved to...
16870 * toplev.cc: ...here.
16871 * tracer.c: Moved to...
16872 * tracer.cc: ...here.
16873 * trans-mem.c: Moved to...
16874 * trans-mem.cc: ...here.
16875 * tree-affine.c: Moved to...
16876 * tree-affine.cc: ...here.
16877 * tree-call-cdce.c: Moved to...
16878 * tree-call-cdce.cc: ...here.
16879 * tree-cfg.c: Moved to...
16880 * tree-cfg.cc: ...here.
16881 * tree-cfgcleanup.c: Moved to...
16882 * tree-cfgcleanup.cc: ...here.
16883 * tree-chrec.c: Moved to...
16884 * tree-chrec.cc: ...here.
16885 * tree-complex.c: Moved to...
16886 * tree-complex.cc: ...here.
16887 * tree-data-ref.c: Moved to...
16888 * tree-data-ref.cc: ...here.
16889 * tree-dfa.c: Moved to...
16890 * tree-dfa.cc: ...here.
16891 * tree-diagnostic.c: Moved to...
16892 * tree-diagnostic.cc: ...here.
16893 * tree-dump.c: Moved to...
16894 * tree-dump.cc: ...here.
16895 * tree-eh.c: Moved to...
16896 * tree-eh.cc: ...here.
16897 * tree-emutls.c: Moved to...
16898 * tree-emutls.cc: ...here.
16899 * tree-if-conv.c: Moved to...
16900 * tree-if-conv.cc: ...here.
16901 * tree-inline.c: Moved to...
16902 * tree-inline.cc: ...here.
16903 * tree-into-ssa.c: Moved to...
16904 * tree-into-ssa.cc: ...here.
16905 * tree-iterator.c: Moved to...
16906 * tree-iterator.cc: ...here.
16907 * tree-loop-distribution.c: Moved to...
16908 * tree-loop-distribution.cc: ...here.
16909 * tree-nested.c: Moved to...
16910 * tree-nested.cc: ...here.
16911 * tree-nrv.c: Moved to...
16912 * tree-nrv.cc: ...here.
16913 * tree-object-size.c: Moved to...
16914 * tree-object-size.cc: ...here.
16915 * tree-outof-ssa.c: Moved to...
16916 * tree-outof-ssa.cc: ...here.
16917 * tree-parloops.c: Moved to...
16918 * tree-parloops.cc: ...here.
16919 * tree-phinodes.c: Moved to...
16920 * tree-phinodes.cc: ...here.
16921 * tree-predcom.c: Moved to...
16922 * tree-predcom.cc: ...here.
16923 * tree-pretty-print.c: Moved to...
16924 * tree-pretty-print.cc: ...here.
16925 * tree-profile.c: Moved to...
16926 * tree-profile.cc: ...here.
16927 * tree-scalar-evolution.c: Moved to...
16928 * tree-scalar-evolution.cc: ...here.
16929 * tree-sra.c: Moved to...
16930 * tree-sra.cc: ...here.
16931 * tree-ssa-address.c: Moved to...
16932 * tree-ssa-address.cc: ...here.
16933 * tree-ssa-alias.c: Moved to...
16934 * tree-ssa-alias.cc: ...here.
16935 * tree-ssa-ccp.c: Moved to...
16936 * tree-ssa-ccp.cc: ...here.
16937 * tree-ssa-coalesce.c: Moved to...
16938 * tree-ssa-coalesce.cc: ...here.
16939 * tree-ssa-copy.c: Moved to...
16940 * tree-ssa-copy.cc: ...here.
16941 * tree-ssa-dce.c: Moved to...
16942 * tree-ssa-dce.cc: ...here.
16943 * tree-ssa-dom.c: Moved to...
16944 * tree-ssa-dom.cc: ...here.
16945 * tree-ssa-dse.c: Moved to...
16946 * tree-ssa-dse.cc: ...here.
16947 * tree-ssa-forwprop.c: Moved to...
16948 * tree-ssa-forwprop.cc: ...here.
16949 * tree-ssa-ifcombine.c: Moved to...
16950 * tree-ssa-ifcombine.cc: ...here.
16951 * tree-ssa-live.c: Moved to...
16952 * tree-ssa-live.cc: ...here.
16953 * tree-ssa-loop-ch.c: Moved to...
16954 * tree-ssa-loop-ch.cc: ...here.
16955 * tree-ssa-loop-im.c: Moved to...
16956 * tree-ssa-loop-im.cc: ...here.
16957 * tree-ssa-loop-ivcanon.c: Moved to...
16958 * tree-ssa-loop-ivcanon.cc: ...here.
16959 * tree-ssa-loop-ivopts.c: Moved to...
16960 * tree-ssa-loop-ivopts.cc: ...here.
16961 * tree-ssa-loop-manip.c: Moved to...
16962 * tree-ssa-loop-manip.cc: ...here.
16963 * tree-ssa-loop-niter.c: Moved to...
16964 * tree-ssa-loop-niter.cc: ...here.
16965 * tree-ssa-loop-prefetch.c: Moved to...
16966 * tree-ssa-loop-prefetch.cc: ...here.
16967 * tree-ssa-loop-split.c: Moved to...
16968 * tree-ssa-loop-split.cc: ...here.
16969 * tree-ssa-loop-unswitch.c: Moved to...
16970 * tree-ssa-loop-unswitch.cc: ...here.
16971 * tree-ssa-loop.c: Moved to...
16972 * tree-ssa-loop.cc: ...here.
16973 * tree-ssa-math-opts.c: Moved to...
16974 * tree-ssa-math-opts.cc: ...here.
16975 * tree-ssa-operands.c: Moved to...
16976 * tree-ssa-operands.cc: ...here.
16977 * tree-ssa-phiopt.c: Moved to...
16978 * tree-ssa-phiopt.cc: ...here.
16979 * tree-ssa-phiprop.c: Moved to...
16980 * tree-ssa-phiprop.cc: ...here.
16981 * tree-ssa-pre.c: Moved to...
16982 * tree-ssa-pre.cc: ...here.
16983 * tree-ssa-propagate.c: Moved to...
16984 * tree-ssa-propagate.cc: ...here.
16985 * tree-ssa-reassoc.c: Moved to...
16986 * tree-ssa-reassoc.cc: ...here.
16987 * tree-ssa-sccvn.c: Moved to...
16988 * tree-ssa-sccvn.cc: ...here.
16989 * tree-ssa-scopedtables.c: Moved to...
16990 * tree-ssa-scopedtables.cc: ...here.
16991 * tree-ssa-sink.c: Moved to...
16992 * tree-ssa-sink.cc: ...here.
16993 * tree-ssa-strlen.c: Moved to...
16994 * tree-ssa-strlen.cc: ...here.
16995 * tree-ssa-structalias.c: Moved to...
16996 * tree-ssa-structalias.cc: ...here.
16997 * tree-ssa-tail-merge.c: Moved to...
16998 * tree-ssa-tail-merge.cc: ...here.
16999 * tree-ssa-ter.c: Moved to...
17000 * tree-ssa-ter.cc: ...here.
17001 * tree-ssa-threadbackward.c: Moved to...
17002 * tree-ssa-threadbackward.cc: ...here.
17003 * tree-ssa-threadedge.c: Moved to...
17004 * tree-ssa-threadedge.cc: ...here.
17005 * tree-ssa-threadupdate.c: Moved to...
17006 * tree-ssa-threadupdate.cc: ...here.
17007 * tree-ssa-uncprop.c: Moved to...
17008 * tree-ssa-uncprop.cc: ...here.
17009 * tree-ssa-uninit.c: Moved to...
17010 * tree-ssa-uninit.cc: ...here.
17011 * tree-ssa.c: Moved to...
17012 * tree-ssa.cc: ...here.
17013 * tree-ssanames.c: Moved to...
17014 * tree-ssanames.cc: ...here.
17015 * tree-stdarg.c: Moved to...
17016 * tree-stdarg.cc: ...here.
17017 * tree-streamer-in.c: Moved to...
17018 * tree-streamer-in.cc: ...here.
17019 * tree-streamer-out.c: Moved to...
17020 * tree-streamer-out.cc: ...here.
17021 * tree-streamer.c: Moved to...
17022 * tree-streamer.cc: ...here.
17023 * tree-switch-conversion.c: Moved to...
17024 * tree-switch-conversion.cc: ...here.
17025 * tree-tailcall.c: Moved to...
17026 * tree-tailcall.cc: ...here.
17027 * tree-vect-data-refs.c: Moved to...
17028 * tree-vect-data-refs.cc: ...here.
17029 * tree-vect-generic.c: Moved to...
17030 * tree-vect-generic.cc: ...here.
17031 * tree-vect-loop-manip.c: Moved to...
17032 * tree-vect-loop-manip.cc: ...here.
17033 * tree-vect-loop.c: Moved to...
17034 * tree-vect-loop.cc: ...here.
17035 * tree-vect-patterns.c: Moved to...
17036 * tree-vect-patterns.cc: ...here.
17037 * tree-vect-slp-patterns.c: Moved to...
17038 * tree-vect-slp-patterns.cc: ...here.
17039 * tree-vect-slp.c: Moved to...
17040 * tree-vect-slp.cc: ...here.
17041 * tree-vect-stmts.c: Moved to...
17042 * tree-vect-stmts.cc: ...here.
17043 * tree-vector-builder.c: Moved to...
17044 * tree-vector-builder.cc: ...here.
17045 * tree-vectorizer.c: Moved to...
17046 * tree-vectorizer.cc: ...here.
17047 * tree-vrp.c: Moved to...
17048 * tree-vrp.cc: ...here.
17049 * tree.c: Moved to...
17050 * tree.cc: ...here.
17051 * tsan.c: Moved to...
17052 * tsan.cc: ...here.
17053 * typed-splay-tree.c: Moved to...
17054 * typed-splay-tree.cc: ...here.
17055 * ubsan.c: Moved to...
17056 * ubsan.cc: ...here.
17057 * valtrack.c: Moved to...
17058 * valtrack.cc: ...here.
17059 * value-prof.c: Moved to...
17060 * value-prof.cc: ...here.
17061 * var-tracking.c: Moved to...
17062 * var-tracking.cc: ...here.
17063 * varasm.c: Moved to...
17064 * varasm.cc: ...here.
17065 * varpool.c: Moved to...
17066 * varpool.cc: ...here.
17067 * vec-perm-indices.c: Moved to...
17068 * vec-perm-indices.cc: ...here.
17069 * vec.c: Moved to...
17070 * vec.cc: ...here.
17071 * vmsdbgout.c: Moved to...
17072 * vmsdbgout.cc: ...here.
17073 * vr-values.c: Moved to...
17074 * vr-values.cc: ...here.
17075 * vtable-verify.c: Moved to...
17076 * vtable-verify.cc: ...here.
17077 * web.c: Moved to...
17078 * web.cc: ...here.
17079 * xcoffout.c: Moved to...
17080 * xcoffout.cc: ...here.
17081
17082 2022-01-17 qing zhao <qing.zhao@oracle.com>
17083
17084 * tree-ssa-uninit.c (warn_uninit): Delete the 4th parameter. Handle
17085 .DEFERRED_INIT call with an anonymous SSA_NAME specially.
17086 (check_defs): Handle .DEFERRED_INIT call with an anonymous SSA_NAME
17087 specially.
17088 (warn_uninit_phi_uses): Delete the 4th actual when call warn_uninit.
17089 (warn_uninitialized_vars): Likewise.
17090 (warn_uninitialized_phi): Likewise.
17091
17092 2022-01-17 Jason Merrill <jason@redhat.com>
17093
17094 * diagnostic.h (struct diagnostic_context): Add includes_seen.
17095 * diagnostic.c (diagnostic_initialize): Initialize it.
17096 (diagnostic_finish): Clean it up.
17097 (includes_seen): New function.
17098 (diagnostic_report_current_module): Use it.
17099
17100 2022-01-17 Richard Biener <rguenther@suse.de>
17101
17102 PR middle-end/101292
17103 * diagnostic-spec.c (copy_warning): Make sure to not
17104 reference old hashtable content on possible resize.
17105 * warning-control.cc (copy_warning): Likewise.
17106
17107 2022-01-17 Jakub Jelinek <jakub@redhat.com>
17108
17109 PR target/103973
17110 * tree-cfg.h (cond_only_block_p): Declare.
17111 * tree-ssa-phiopt.c (cond_only_block_p): Move function to ...
17112 * tree-cfg.c (cond_only_block_p): ... here. No longer static.
17113 * optabs.def (spaceship_optab): New optab.
17114 * internal-fn.def (SPACESHIP): New internal function.
17115 * internal-fn.h (expand_SPACESHIP): Declare.
17116 * internal-fn.c (expand_PHI): Formatting fix.
17117 (expand_SPACESHIP): New function.
17118 * tree-ssa-math-opts.c (optimize_spaceship): New function.
17119 (math_opts_dom_walker::after_dom_children): Use it.
17120 * config/i386/i386.md (spaceship<mode>3): New define_expand.
17121 * config/i386/i386-protos.h (ix86_expand_fp_spaceship): Declare.
17122 * config/i386/i386-expand.c (ix86_expand_fp_spaceship): New function.
17123 * doc/md.texi (spaceship@var{m}3): Document.
17124
17125 2022-01-17 Kewen Lin <linkw@linux.ibm.com>
17126
17127 * config/rs6000/altivec.md (altivec_vreveti2): Remove.
17128 * config/rs6000/vsx.md (*vsx_extract_si, *vsx_extract_si_<uns>float_df,
17129 *vsx_extract_si_<uns>float_<mode>, *vsx_insert_extract_v4sf_p9): Use
17130 known constant values to simplify code.
17131
17132 2022-01-17 Haochen Gui <guihaoc@gcc.gnu.org>
17133
17134 PR target/103124
17135 * config/rs6000/vsx.md (split pattern for TI to V1TI move): Defined.
17136
17137 2022-01-16 wwwhhhyyy <hongyu.wang@intel.com>
17138
17139 * config/i386/i386.h (TARGET_DEST_FALSE_DEP_FOR_GLC): New macro.
17140 * config/i386/sse.md (<avx512>_<complexopname>_<mode><maskc_name><round_name>):
17141 Insert zero-idiom in output template when attr enabled, set new attribute to
17142 true for non-mask/maskz insn.
17143 (avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>):
17144 Likewise.
17145 (avx512dq_mul<mode>3<mask_name>): Likewise.
17146 (<avx2_avx512>_permvar<mode><mask_name>): Likewise.
17147 (avx2_perm<mode>_1<mask_name>): Likewise.
17148 (avx512f_perm<mode>_1<mask_name>): Likewise.
17149 (avx512dq_rangep<mode><mask_name><round_saeonly_name>): Likewise.
17150 (avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>):
17151 Likewise.
17152 (<avx512>_getmant<mode><mask_name><round_saeonly_name>): Likewise.
17153 (avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
17154 Likewise.
17155 * config/i386/subst.md (mask3_dest_false_dep_for_glc_cond): New
17156 subst_attr.
17157 (mask4_dest_false_dep_for_glc_cond): Likewise.
17158 (mask6_dest_false_dep_for_glc_cond): Likewise.
17159 (mask10_dest_false_dep_for_glc_cond): Likewise.
17160 (maskc_dest_false_dep_for_glc_cond): Likewise.
17161 (mask_scalar4_dest_false_dep_for_glc_cond): Likewise.
17162 (mask_scalarc_dest_false_dep_for_glc_cond): Likewise.
17163 * config/i386/x86-tune.def (X86_TUNE_DEST_FALSE_DEP_FOR_GLC): New
17164 DEF_TUNE enabled for m_SAPPHIRERAPIDS and m_ALDERLAKE
17165
17166 2022-01-15 Martin Sebor <msebor@redhat.com>
17167
17168 PR c/63272
17169 * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
17170 -Wdangling-pointer.
17171 * doc/invoke.texi (-Wdangling-pointer): Document new option.
17172 * gimple-ssa-warn-access.cc (pass_waccess::clone): Set new member.
17173 (pass_waccess::check_pointer_uses): New function.
17174 (pass_waccess::gimple_call_return_arg): New function.
17175 (pass_waccess::gimple_call_return_arg_ref): New function.
17176 (pass_waccess::check_call_dangling): New function.
17177 (pass_waccess::check_dangling_uses): New function overloads.
17178 (pass_waccess::check_dangling_stores): New function.
17179 (pass_waccess::check_dangling_stores): New function.
17180 (pass_waccess::m_clobbers): New data member.
17181 (pass_waccess::m_func): New data member.
17182 (pass_waccess::m_run_number): New data member.
17183 (pass_waccess::m_check_dangling_p): New data member.
17184 (pass_waccess::check_alloca): Check m_early_checks_p.
17185 (pass_waccess::check_alloc_size_call): Same.
17186 (pass_waccess::check_strcat): Same.
17187 (pass_waccess::check_strncat): Same.
17188 (pass_waccess::check_stxcpy): Same.
17189 (pass_waccess::check_stxncpy): Same.
17190 (pass_waccess::check_strncmp): Same.
17191 (pass_waccess::check_memop_access): Same.
17192 (pass_waccess::check_read_access): Same.
17193 (pass_waccess::check_builtin): Call check_pointer_uses.
17194 (pass_waccess::warn_invalid_pointer): Add arguments.
17195 (is_auto_decl): New function.
17196 (pass_waccess::check_stmt): New function.
17197 (pass_waccess::check_block): Call check_stmt.
17198 (pass_waccess::execute): Call check_dangling_uses,
17199 check_dangling_stores. Empty m_clobbers.
17200 * passes.def (pass_warn_access): Invoke pass two more times.
17201
17202 2022-01-15 Martin Sebor <msebor@redhat.com>
17203
17204 PR tree-optimization/80532
17205 * common.opt (-Wuse-after-free): New options.
17206 * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
17207 OPT_Wreturn_local_addr and OPT_Wuse_after_free_.
17208 * diagnostic-spec.h (NW_DANGLING): New enumerator.
17209 * doc/invoke.texi (-Wuse-after-free): Document new option.
17210 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Rename...
17211 (pass_waccess::check_call_access): ...to this.
17212 (pass_waccess::check): Rename...
17213 (pass_waccess::check_block): ...to this.
17214 (pass_waccess::check_pointer_uses): New function.
17215 (pass_waccess::gimple_call_return_arg): New function.
17216 (pass_waccess::warn_invalid_pointer): New function.
17217 (pass_waccess::check_builtin): Handle free and realloc.
17218 (gimple_use_after_inval_p): New function.
17219 (get_realloc_lhs): New function.
17220 (maybe_warn_mismatched_realloc): New function.
17221 (pointers_related_p): New function.
17222 (pass_waccess::check_call): Call check_pointer_uses.
17223 (pass_waccess::execute): Compute and free dominance info.
17224
17225 2022-01-15 Uroš Bizjak <ubizjak@gmail.com>
17226
17227 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
17228 expand_simple_unop and expand_simple_binop instead of manually
17229 constructing NOT, AND and IOR RTXes. Use vector_all_ones_operand
17230 consistently. Eliminate common subexpressions and simplify code.
17231 * config/i386/sse.md (<any_logic:code><MODEF:mode>3): New expander.
17232 (<any_logic:code><MODEF:mode>3): Make public.
17233
17234 2022-01-14 Eric Botcazou <ebotcazou@adacore.com>
17235
17236 * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Dump
17237 reverse flag as "reverse" for the sake of consistency.
17238 * ipa-sra.c: Fix copyright year.
17239 (ipa_sra_function_summaries::duplicate): Copy the reverse flag.
17240 (dump_isra_access): Tweak dump line.
17241 (isra_write_node_summary): Write the reverse flag.
17242 (isra_read_node_info): Read it.
17243 (pull_accesses_from_callee): Test its consistency and copy it.
17244
17245 2022-01-14 Richard Sandiford <richard.sandiford@arm.com>
17246
17247 PR middle-end/104026
17248 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
17249 partial_load_store_bias.
17250
17251 2022-01-14 Martin Sebor <msebor@redhat.com>
17252
17253 PR middle-end/101475
17254 * pointer-query.cc (handle_component_ref): Use the size of
17255 the enclosing object if it's smaller than the member.
17256
17257 2022-01-14 Martin Liska <mliska@suse.cz>
17258
17259 * configure: Regenerate.
17260
17261 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
17262
17263 * config/i386/i386.md (*add<mode>_1_slp"):
17264 Mark alternative 1 output operand earlyclobbered.
17265 (*sub<mode>_1_slp): Ditto.
17266 (*and<mode>_1_slp): Ditto.
17267 (*<code><mode>_1_slp): Ditto.
17268 (*neg<mode>_1_slp): Ditto.
17269 (*one_cmpl<mode>_1_slp): Ditto.
17270 (*ashl<mode>3_1_slp): Ditto.
17271 (*<insn><mode>3_1_slp): Ditto.
17272 (*<insn><mode>3_1_slp): Ditto.
17273
17274 2022-01-14 Kewen Lin <linkw@linux.ibm.com>
17275
17276 PR tree-optimization/104015
17277 * tree-vect-loop.c (vect_analyze_loop): Check
17278 param_vect_partial_vector_usage for supports_partial_vectors.
17279
17280 2022-01-14 Jakub Jelinek <jakub@redhat.com>
17281
17282 PR c++/89074
17283 * fold-const.c (address_compare): Punt on comparison of address of
17284 one object with address of end of another object if
17285 folding_initializer.
17286
17287 2022-01-14 Jakub Jelinek <jakub@redhat.com>
17288
17289 PR target/98737
17290 * tree-ssa-forwprop.c (simplify_builtin_call): Canonicalize
17291 __atomic_fetch_op (p, x, y) op x into __atomic_op_fetch (p, x, y)
17292 and __atomic_op_fetch (p, x, y) iop x into
17293 __atomic_fetch_op (p, x, y).
17294
17295 2022-01-14 Claudiu Zissulescu <claziss@synopsys.com>
17296
17297 * config/arc/arc.h (DWARF_FRAME_REGNUM): Update definition.
17298 (DWARF_FRAME_RETURN_COLUMN): Use RETURN_ADDR_REGNUM macro.
17299 (INCOMING_RETURN_ADDR_RTX): Likewise.
17300 (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
17301
17302 2022-01-14 Claudiu Zissulescu <claziss@synopsys.com>
17303
17304 * config/arc/arc.c (arc_compute_frame_size): Remove condition when
17305 computin checking accumulator regs.
17306 (arc_expand_prologue): Update comments.
17307 (arc_expand_epilogue): Likewise.
17308
17309 2022-01-14 Roger Sayle <roger@nextmovesoftware.com>
17310 Uroš Bizjak <ubizjak@gmail.com>
17311
17312 * config/i386/i386-expand.c (ix86_expand_v1ti_to_ti): Use force_reg.
17313 (ix86_expand_ti_to_v1ti): Use force_reg.
17314 (ix86_expand_v1ti_shift): Use force_reg.
17315 (ix86_expand_v1ti_rotate): Use force_reg.
17316 (ix86_expand_v1ti_ashiftrt): Provide new three operation
17317 implementations for shifts by 111..126 bits. Use force_reg.
17318
17319 2022-01-14 Martin Liska <mliska@suse.cz>
17320
17321 * common/config/arm/arm-common.c (arm_target_mode): Fix
17322 warning: unterminated quoting directive [-Wformat=].
17323
17324 2022-01-14 Siddhesh Poyarekar <siddhesh@gotplt.org>
17325
17326 PR tree-optimization/104009
17327 * tree-object-size.c (compute_builtin_object_size): Bail out on
17328 negative offset.
17329 (plus_stmt_object_size): Return maximum of wholesize and minimum
17330 of 0 for negative offset.
17331
17332 2022-01-14 liuhongt <hongtao.liu@intel.com>
17333
17334 PR target/104001
17335 PR target/94790
17336 PR target/104014
17337 * config/i386/i386.md (*xor2andn): Refine predicate of
17338 operands[0] from nonimmediate_operand to
17339 register_operand, remove TARGET_AVX512BW from condition.
17340
17341 2022-01-14 David Malcolm <dmalcolm@redhat.com>
17342
17343 * doc/extend.texi (Function Attributes): Note that "tainted_args" can
17344 be used on field decls.
17345 (Common Function Attributes): Add entry on "tainted_args" attribute.
17346
17347 2022-01-13 Anthony Sharp <anthonysharp15@gmail.com>
17348 Jason Merrill <jason@redhat.com>
17349
17350 PR c++/70417
17351 * doc/invoke.texi: Documentation for Wmissing-template-keyword.
17352
17353 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
17354
17355 PR target/103861
17356 * config/i386/i386.md (*ashlqi_ext<mode>_2): New insn pattern.
17357 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
17358 * config/i386/mmx.md (<any_shift:insn>v2qi):
17359 New insn_and_split pattern.
17360
17361 2022-01-13 Robin Dapp <rdapp@linux.ibm.com>
17362
17363 * internal-fn.c (expand_partial_load_optab_fn): Add bias.
17364 (expand_partial_store_optab_fn): Likewise.
17365 (internal_len_load_store_bias): New function.
17366 * internal-fn.h (VECT_PARTIAL_BIAS_UNSUPPORTED): New define.
17367 (internal_len_load_store_bias): New function.
17368 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Set bias.
17369 (vect_set_loop_condition_partial_vectors): Add header_seq parameter.
17370 * tree-vect-loop.c (vect_verify_loop_lens): Verify bias.
17371 (vect_estimate_min_profitable_iters): Account for bias.
17372 (vect_get_loop_len): Add bias-adjusted length.
17373 * tree-vect-stmts.c (vectorizable_store): Use.
17374 (vectorizable_load): Use.
17375 * tree-vectorizer.h (struct rgroup_controls): Add bias-adjusted length.
17376 (LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS): New macro.
17377 * config/rs6000/vsx.md: Use const0 bias predicate.
17378 * doc/md.texi: Document bias value.
17379
17380 2022-01-13 Andrew MacLeod <amacleod@redhat.com>
17381
17382 PR tree-optimization/83072
17383 PR tree-optimization/83073
17384 PR tree-optimization/97909
17385 * fold-const.c (expr_not_equal_to): Use a multi-range class.
17386
17387 2022-01-13 Andrew MacLeod <amacleod@redhat.com>
17388
17389 PR tree-optimization/96707
17390 * range-op.cc (operator_rshift::lhs_op1_relation): New.
17391
17392 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
17393
17394 * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
17395 Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
17396 (negv2qi splitters): Use lowpart_subreg instead of
17397 gen_lowpart to create subreg.
17398 (<plusminus:insn>v2qi3): Disparage GPR alternative a bit.
17399 Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
17400 (<plusminus:insn>v2qi3 splitters): Use lowpart_subreg instead of
17401 gen_lowpart to create subreg.
17402 * config/i386/i386.md (*subqi_ext<mode>_2): Move.
17403
17404 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
17405
17406 PR target/104003
17407 * config/i386/mmx.md (*xop_pcmov_<mode>): Use VI_16_32 mode iterator.
17408
17409 2022-01-13 Martin Liska <mliska@suse.cz>
17410
17411 * common/config/arm/arm-common.c (arm_target_mode): Wrap
17412 keywords with %<, %> and remove trailing punctuation char.
17413 (arm_canon_arch_option_1): Likewise.
17414 (arm_asm_auto_mfpu): Likewise.
17415 * config/arm/arm-builtins.c (arm_expand_builtin): Likewise.
17416 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Likewise.
17417 (use_vfp_abi): Likewise.
17418 (aapcs_vfp_is_call_or_return_candidate): Likewise.
17419 (arm_handle_cmse_nonsecure_entry): Likewise.
17420 (arm_handle_cmse_nonsecure_call): Likewise.
17421 (thumb1_md_asm_adjust): Likewise.
17422
17423 2022-01-13 Paul A. Clarke <pc@us.ibm.com>
17424
17425 * config/rs6000/smmintrin.h (_mm_round_pd, _mm_round_ps,
17426 _mm_round_sd, _mm_round_ss, _MM_FROUND_TO_NEAREST_INT,
17427 _MM_FROUND_TO_ZERO, _MM_FROUND_TO_POS_INF, _MM_FROUND_TO_NEG_INF,
17428 _MM_FROUND_CUR_DIRECTION, _MM_FROUND_RAISE_EXC, _MM_FROUND_NO_EXC,
17429 _MM_FROUND_NINT, _MM_FROUND_FLOOR, _MM_FROUND_CEIL, _MM_FROUND_TRUNC,
17430 _MM_FROUND_RINT, _MM_FROUND_NEARBYINT): New.
17431 (_mm_ceil_pd, _mm_ceil_ps, _mm_ceil_sd, _mm_ceil_ss, _mm_floor_pd,
17432 _mm_floor_ps, _mm_floor_sd, _mm_floor_ss): Convert from function to
17433 macro.
17434
17435 2022-01-13 Jakub Jelinek <jakub@redhat.com>
17436
17437 PR tree-optimization/103989
17438 * tree-inline.c (setup_one_parameter): Don't copy parms with
17439 empty type.
17440
17441 2022-01-13 Thomas Schwinge <thomas@codesourcery.com>
17442
17443 * tree-streamer-out.c (pack_ts_base_value_fields): Don't pack
17444 'TYPE_ADDR_SPACE' for offloading.
17445 * tree-streamer-in.c (unpack_ts_base_value_fields): Don't unpack
17446 'TYPE_ADDR_SPACE' for offloading.
17447
17448 2022-01-13 Julian Brown <julian@codesourcery.com>
17449 Thomas Schwinge <thomas@codesourcery.com>
17450
17451 * omp-oacc-kernels-decompose.cc (add_wait): New function, split out
17452 of...
17453 (add_async_clauses_and_wait): ...here. Call new outlined function.
17454 (decompose_kernels_region_body): Add wait at the end of
17455 explicitly-asynchronous kernels regions.
17456
17457 2022-01-13 Thomas Schwinge <thomas@codesourcery.com>
17458
17459 PR middle-end/100280
17460 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
17461 Mark variables used in synthesized data clauses as addressable.
17462
17463 2022-01-13 Martin Liska <mliska@suse.cz>
17464
17465 * config/epiphany/epiphany.c (epiphany_mode_priority):
17466 Use gcc_unreachable for not handled cases.
17467
17468 2022-01-13 Martin Liska <mliska@suse.cz>
17469
17470 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
17471 Use %qs format specifier.
17472 (epiphany_override_options): Wrap keyword in %<, %>.
17473
17474 2022-01-13 Haochen Jiang <haochen.jiang@intel.com>
17475
17476 PR target/94790
17477 * config/i386/i386.md (*xor2andn): New define_insn_and_split.
17478
17479 2022-01-13 Xionghu Luo <luoxhu@linux.ibm.com>
17480
17481 * config/rs6000/altivec.md (sldoi_to_mov<mode>): New.
17482
17483 2022-01-12 Uroš Bizjak <ubizjak@gmail.com>
17484
17485 PR target/100637
17486 PR target/103861
17487 * config/i386/i386-expand.c (ix86_emit_vec_binop): New static function.
17488 (ix86_expand_sse_movcc): Use ix86_emit_vec_binop instead of gen_rtx_X
17489 when constructing vector logic RTXes.
17490 (expand_vec_perm_pshufb2): Ditto.
17491 * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
17492 (<plusminus:insn>v2qi3): Ditto.
17493 (vcond<mode><mode>): Re-enable for TARGET_SSE2.
17494 (vcondu<mode><mode>): Ditto.
17495 (vcond_mask_<mode><mode>): Ditto.
17496 (one_cmpl<VI_32:mode>2): Remove expander.
17497 (one_cmpl<VI_16_32:mode>2): Rename from one_cmplv2qi.
17498 Use VI_16_32 mode iterator.
17499 (one_cmpl<VI_16_32:mode>2 splitters): Use VI_16_32 mode iterator.
17500 Use lowpart_subreg instead of gen_lowpart to create subreg.
17501 (*andnot<VI_16_32:mode>3): Merge from "*andnot<VI_32:mode>" and
17502 "*andnotv2qi3" insn patterns using VI_16_32 mode iterator.
17503 Disparage GPR alternative a bit. Add CC clobber.
17504 (*andnot<VI_16_32:mode>3 splitters): Use VI_16_32 mode iterator.
17505 Use lowpart_subreg instead of gen_lowpart to create subreg.
17506 (*<any_logic:code><VI_16_32:mode>3): Merge from
17507 "*<any_logic:code><VI_32:mode>" and "*<any_logic:code>v2qi3" insn patterns
17508 using VI_16_32 mode iterator. Disparage GPR alternative a bit.
17509 Add CC clobber.
17510 (*<any_logic:code><VI_16_32:mode>3 splitters):Use VI_16_32 mode
17511 iterator. Use lowpart_subreg instead of gen_lowpart to create subreg.
17512
17513 2022-01-12 Clément Chigot <clement.chigot@atos.net>
17514
17515 * configure.ac: Check sizeof ino_t and dev_t.
17516 (HOST_STAT_FOR_64BIT_INODES): New AC_DEFINE to provide stat
17517 syscall being able to handle 64bit inodes.
17518 * config.in: Regenerate.
17519 * configure: Regenerate.
17520 * incpath.c (HOST_STAT_FOR_64BIT_INODES): New define.
17521 (remove_duplicates): Use it.
17522
17523 2022-01-12 Andrew MacLeod <amacleod@redhat.com>
17524
17525 PR tree-optimization/103551
17526 * tree-vrp.c (execute_ranger_vrp): Always set EDGE_EXECUTABLE.
17527
17528 2022-01-12 Richard Biener <rguenther@suse.de>
17529
17530 PR tree-optimization/103990
17531 * tree-pass.h (tail_merge_optimize): Drop unused argument.
17532 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
17533 * tree-ssa-pre.c (pass_pre::execute): Retain TODO_cleanup_cfg
17534 and adjust call to tail_merge_optimize.
17535
17536 2022-01-12 Andre Vieira <andre.simoesdiasvieira@arm.com>
17537
17538 * tree-vect-loop.c (vect-analyze-loop): Handle scenario where target
17539 does not add autovectorize_vector_modes.
17540
17541 2022-01-12 Martin Liska <mliska@suse.cz>
17542
17543 * config/aarch64/aarch64.c (aarch64_parse_boolean_options): Use
17544 %qs where possible.
17545 (aarch64_parse_sve_width_string): Likewise.
17546 (aarch64_override_options_internal): Likewise.
17547 (aarch64_print_hint_for_extensions): Likewise.
17548 (aarch64_validate_sls_mitigation): Likewise.
17549 (aarch64_handle_attr_arch): Likewise.
17550 (aarch64_handle_attr_cpu): Likewise.
17551 (aarch64_handle_attr_tune): Likewise.
17552 (aarch64_handle_attr_isa_flags): Likewise.
17553
17554 2022-01-12 Martin Liska <mliska@suse.cz>
17555
17556 * config.gcc: Include elfos.h before ${tm_file}.
17557
17558 2022-01-12 Hans-Peter Nilsson <hp@axis.com>
17559
17560 * config/cris/cris.c: Quote identifiers in parameters to error
17561 and internal_error, and remove extraneous spaces with punctuation.
17562 * config/cris/cris.h (CRIS_ASSERT): When passing on stringified
17563 expression to internal_error, pass it as a parameter instead of
17564 appending it to the format part.
17565
17566 2022-01-12 Hans-Peter Nilsson <hp@axis.com>
17567
17568 * config/cris/cris.c (cris_postdbr_cmpelim): Parenthesize
17569 parameter to as_a.
17570
17571 2022-01-11 qing zhao <qing.zhao@oracle.com>
17572
17573 * gimplify.c (gimple_add_init_for_auto_var): Delete the 3rd argument.
17574 Change the 3rd argument of function .DEFERRED_INIT to the name of the
17575 decl.
17576 (gimplify_decl_expr): Delete the 3rd argument when call
17577 gimple_add_init_for_auto_var.
17578 * internal-fn.c (expand_DEFERRED_INIT): Update comments to reflect
17579 the 3rd argument change of function .DEFERRED_INIT.
17580 * tree-cfg.c (verify_gimple_call): Update comments and verification
17581 to reflect the 3rd argument change of function .DEFERRED_INIT.
17582 * tree-sra.c (generate_subtree_deferred_init): Delete the 3rd argument.
17583 (sra_modify_deferred_init): Change the 3rd argument of function
17584 .DEFERRED_INIT to the name of the decl.
17585
17586 2022-01-11 Thomas Koenig <tkoenig@gcc.gnu.org>
17587
17588 * flag-types.h (enum gfc_convert): Add flags for
17589 conversion.
17590
17591 2022-01-11 Michael Meissner <meissner@the-meissners.org>
17592
17593 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
17594 checks for only C/C++ front ends before allowing the long double
17595 format to change without a warning.
17596
17597 2022-01-11 Richard Sandiford <richard.sandiford@arm.com>
17598
17599 PR rtl-optimization/103974
17600 * ira-int.h (ira_subloop_allocnos_can_differ_p): Take an
17601 extra argument, default true, that says whether old-reload
17602 targets should be excluded.
17603 * ira-color.c (color_pass): Pass false.
17604
17605 2022-01-11 Uroš Bizjak <ubizjak@gmail.com>
17606
17607 PR target/103861
17608 * config/i386/mmx.md (vcond<mode><mode>):
17609 Use VI_16_32 mode iterator. Enable for TARGET_SSE4_1.
17610 (vcondu<mode><mode>): Ditto.
17611 (vcond_mask_<mode><mode>): Ditto.
17612 (mmx_pblendvb_v8qi): Rename from mmx_pblendvb64.
17613 (mmx_pblendvb_<mode>): Rename from mmx_pblendvb32.
17614 Use VI_16_32 mode iterator.
17615 * config/i386/i386-expand.c (ix86_expand_sse_movcc):
17616 Update for rename. Handle V2QImode.
17617 (expand_vec_perm_blend): Update for rename.
17618
17619 2022-01-11 Jakub Jelinek <jakub@redhat.com>
17620
17621 PR c++/101597
17622 * tree.def (OBJ_TYPE_REF): Document type of OBJ_TYPE_REF_TOKEN.
17623
17624 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
17625
17626 PR middle-end/70090
17627 * tree-object-size.c (size_valid_p): New function.
17628 (size_for_offset): Remove OFFSET constness assertion.
17629 (addr_object_size): Build dynamic expressions for object
17630 sizes and use size_valid_p to decide if it is valid for the
17631 given OBJECT_SIZE_TYPE.
17632 (compute_builtin_object_size): Allow dynamic offsets when
17633 computing size at O0.
17634 (call_object_size): Call size_valid_p.
17635 (plus_stmt_object_size): Allow non-constant offset and use
17636 size_valid_p to decide if it is valid for the given
17637 OBJECT_SIZE_TYPE.
17638
17639 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
17640
17641 PR middle-end/70090
17642 * tree-object-size.c (alloc_object_size): Make and return
17643 non-constant size expression.
17644 (call_object_size): Return expression or unknown based on
17645 whether dynamic object size is requested.
17646
17647 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
17648
17649 PR middle-end/70090
17650 * tree-object-size.c: Include tree-dfa.h.
17651 (parm_object_size): New function.
17652 (collect_object_sizes_for): Call it.
17653
17654 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
17655
17656 PR middle-end/70090
17657 * builtins.c (fold_builtin_object_size): Adjust for dynamic size
17658 expressions.
17659 * tree-object-size.c: Include gimplify-me.h.
17660 (struct object_size_info): New member UNKNOWNS.
17661 (size_initval_p, size_usable_p, object_sizes_get_raw): New
17662 functions.
17663 (object_sizes_get): Return suitable gimple variable for
17664 object size.
17665 (bundle_sizes): New function.
17666 (object_sizes_set): Use it and handle dynamic object size
17667 expressions.
17668 (object_sizes_set_temp): New function.
17669 (size_for_offset): Adjust for dynamic size expressions.
17670 (emit_phi_nodes, propagate_unknowns, gimplify_size_expressions):
17671 New functions.
17672 (compute_builtin_object_size): Call gimplify_size_expressions
17673 for OST_DYNAMIC.
17674 (dynamic_object_size): New function.
17675 (cond_expr_object_size): Use it.
17676 (phi_dynamic_object_size): New function.
17677 (collect_object_sizes_for): Call it for OST_DYNAMIC. Adjust to
17678 accommodate dynamic object sizes.
17679
17680 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
17681 Jakub Jelinek <jakub@redhat.com>
17682
17683 PR tree-optimization/103961
17684 * tree-object-size.c (plus_stmt_object_size): Always avoid
17685 computing offset for -1 size.
17686
17687 2022-01-11 Andrew MacLeod <amacleod@redhat.com>
17688
17689 PR tree-optimization/103821
17690 * range-op.cc (range_operator::fold_range): Only do precise ranges
17691 when there are not too many subranges.
17692
17693 2022-01-11 Richard Sandiford <richard.sandiford@arm.com>
17694
17695 * ira-costs.c (ira_tune_allocno_costs): Fix missing rclass
17696 definition in IRA_HARD_REGNO_ADD_COST_MULTIPLIER code.
17697
17698 2022-01-11 Roger Sayle <roger@nextmovesoftware.com>
17699 Richard Biener <rguenther@suse.de>
17700
17701 * tree-ssa-math-opts.c (struct widen_mul_stats): Add a
17702 highpart_mults_inserted field.
17703 (convert_mult_to_highpart): New function to convert right shift
17704 of a widening multiply into a MULT_HIGHPART_EXPR.
17705 (math_opts_dom_walker::after_dom_children) [RSHIFT_EXPR]:
17706 Call new convert_mult_to_highpart function.
17707 (pass_optimize_widening_mul::execute): Add a statistics counter
17708 for tracking "highpart multiplications inserted" events.
17709
17710 2022-01-11 Xionghu Luo <luoxhu@linux.ibm.com>
17711
17712 PR target/102239
17713 * config/rs6000/rs6000-protos.h (rs6000_is_valid_rotate_dot_mask): New
17714 declare.
17715 * config/rs6000/rs6000.c (rs6000_is_valid_rotate_dot_mask): New
17716 function.
17717 * config/rs6000/rs6000.md (*branch_anddi3_dot): New.
17718
17719 2022-01-11 Olivier Hainque <hainque@adacore.com>
17720
17721 * gcc.c (driver_handle_option): State --sysroot as
17722 validated.
17723
17724 2022-01-11 Kewen Lin <linkw@linux.ibm.com>
17725
17726 * config/rs6000/rs6000.c (rs6000_disable_incompatible_switches): Remove
17727 useless related to option -mno-power10.
17728
17729 2022-01-11 Haochen Jiang <haochen.jiang@intel.com>
17730
17731 PR target/53652
17732 * config/i386/sse.md (*andnot<mode>3): Extend predicate of
17733 operands[1] from register_operand to vector_operand.
17734
17735 2022-01-10 Uroš Bizjak <ubizjak@gmail.com>
17736
17737 PR target/103861
17738 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
17739 Handle V2QImode.
17740 * config/i386/mmx.md (<sat_plusminus:insn><mode>3):
17741 Use VI1_16_32 mode iterator.
17742 (*eq<mode>3): Ditto.
17743 (*gt<mode>3): Ditto.
17744 (*xop_maskcmp<mode>3): Ditto.
17745 (*xop_maskcmp_uns<mode>3): Ditto.
17746 (vec_cmp<mode><mode>): Ditto.
17747 (vec_cmpu<mode><mode>): Ditto.
17748
17749 2022-01-10 Richard Biener <rguenther@suse.de>
17750
17751 PR tree-optimization/103948
17752 * tree-vect-generic.c (expand_vector_condition): Return true if
17753 all ones vector is returned for true, all zeros vector for false
17754 and the target defines corresponding vec_cmp{,u}MN named RTX pattern.
17755
17756 2022-01-10 Paul A. Clarke <pc@us.ibm.com>
17757
17758 * config/rs6000/smmintrin.h (_mm_blendv_epi8): Use vec_blendv
17759 when _ARCH_PWR10. Use signed types.
17760 (_mm_blendv_ps): Use vec_blendv when _ARCH_PWR10.
17761 (_mm_blendv_pd): Likewise.
17762
17763 2022-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
17764
17765 * tree-vectorizer.c (better_epilogue_loop_than_p): Round factors up for
17766 epilogue costing.
17767 * tree-vect-loop.c (vect_analyze_loop): Re-analyze all modes for
17768 epilogues, unless we are guaranteed that we can't have partial vectors.
17769 * genopinit.c: (partial_vectors_supported): Generate new function.
17770
17771 2022-01-10 Jakub Jelinek <jakub@redhat.com>
17772
17773 PR target/102024
17774 * config/i386/i386.c (classify_argument): Add zero_width_bitfields
17775 argument, when seeing DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD bitfields,
17776 always ignore them, when seeing other zero sized bitfields, either
17777 set zero_width_bitfields to 1 and ignore it or if equal to 2 process
17778 it. Pass it to recursive calls. Add wrapper
17779 with old arguments and diagnose ABI differences for C structures
17780 with zero width bitfields. Formatting fixes.
17781
17782 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
17783
17784 PR rtl-optimization/98782
17785 * ira-int.h (ira_soft_conflict): Declare.
17786 * ira-color.c (max_soft_conflict_loop_depth): New constant.
17787 (ira_soft_conflict): New function.
17788 (spill_soft_conflicts): Likewise.
17789 (assign_hard_reg): Use them to handle the case described by
17790 the comment above ira_soft_conflict.
17791 (improve_allocation): Likewise.
17792 * ira.c (check_allocation): Allow allocnos with "soft" conflicts
17793 to share the same register.
17794
17795 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
17796
17797 PR rtl-optimization/98782
17798 * ira-int.h (ira_caller_save_cost): New function.
17799 (ira_caller_save_loop_spill_p): Likewise.
17800 * ira-build.c (ira_propagate_hard_reg_costs): Test whether it is
17801 cheaper to spill a call-clobbered register throughout a loop rather
17802 than spill it around each individual call. If so, treat all
17803 call-clobbered registers as conflicts and...
17804 (propagate_allocno_info): ...do not propagate call information
17805 from the child to the parent.
17806 * ira-color.c (move_spill_restore): Update accordingly.
17807 * ira-costs.c (ira_tune_allocno_costs): Use ira_caller_save_cost.
17808
17809 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
17810
17811 PR rtl-optimization/98782
17812 * ira-int.h (ira_allocno::might_conflict_with_parent_p): New field.
17813 (ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P): New macro.
17814 (ira_single_region_allocno_p): New function.
17815 (ira_total_conflict_hard_regs): Likewise.
17816 * ira-build.c (ira_create_allocno): Initialize
17817 ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P.
17818 (ira_propagate_hard_reg_costs): New function.
17819 (propagate_allocno_info): Use it. Try to avoid propagating
17820 hard register conflicts to parent allocnos if we can handle
17821 the conflicts by spilling instead. Limit the propagated
17822 register costs to the cost of spilling throughout the child loop.
17823 * ira-color.c (color_pass): Use ira_single_region_allocno_p to
17824 test whether a child and parent allocno can share the same
17825 register.
17826 (move_spill_restore): Adjust for the new behavior of
17827 propagate_allocno_info.
17828
17829 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
17830
17831 PR rtl-optimization/98782
17832 * ira-int.h (ira_subloop_allocnos_can_differ_p): New function,
17833 extracted from...
17834 * ira-color.c (color_pass): ...here.
17835
17836 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
17837
17838 PR rtl-optimization/98782
17839 * ira-color.c (color_pass): Add comments to describe the spill costs.
17840 (move_spill_restore): Likewise. Fix reversed calculation.
17841
17842 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
17843
17844 PR rtl-optimization/98782
17845 * ira-int.h (ira_loop_border_costs): New class.
17846 * ira-color.c (ira_loop_border_costs::ira_loop_border_costs):
17847 New constructor.
17848 (calculate_allocno_spill_cost): Use ira_loop_border_costs.
17849 (color_pass): Likewise.
17850 (move_spill_restore): Likewise.
17851
17852 2022-01-10 Eric Botcazou <ebotcazou@adacore.com>
17853
17854 PR target/103465
17855 * coretypes.h (unwind_info_type): Swap UI_SEH and UI_TARGET.
17856
17857 2022-01-10 Richard Biener <rguenther@suse.de>
17858
17859 PR tree-optimization/100359
17860 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
17861 Allow non-growing peeling with !allow_peel and UL_ALL.
17862
17863 2022-01-08 Roger Sayle <roger@nextmovesoftware.com>
17864
17865 * config/i386/i386-expand.c (ix86_expand_vector_move): Add
17866 special case for TImode to V1TImode moves, going via V2DImode.
17867
17868 2022-01-08 Jakub Jelinek <jakub@redhat.com>
17869
17870 PR c++/89074
17871 * match.pd ((ptr) (x p+ y) p+ z -> (ptr) (x p+ (y + z))): New GENERIC
17872 simplification.
17873
17874 2022-01-08 David Malcolm <dmalcolm@redhat.com>
17875
17876 * doc/analyzer.texi
17877 (Special Functions for Debugging the Analyzer): Document
17878 __analyzer_dump_escaped.
17879
17880 2022-01-08 David Malcolm <dmalcolm@redhat.com>
17881
17882 * doc/analyzer.texi (Other Debugging Techniques): Document
17883 region::is_named_decl_p.
17884
17885 2022-01-07 Andrew Pinski <apinski@marvell.com>
17886
17887 PR target/102941
17888 * config/arm/aarch-common.c (arm_md_asm_adjust):
17889 Use a temp if !REG_P.
17890
17891 2022-01-07 Uroš Bizjak <ubizjak@gmail.com>
17892
17893 * config/i386/mmx.md (*move<V_32:mode>_internal): Add isa attribute.
17894 (*movv2qi_internal): Remve sse2 requirement for alternatives 4,5.
17895
17896 2022-01-07 liuhongt <hongtao.liu@intel.com>
17897
17898 PR rtl-optimization/103750
17899 * fwprop.c (forward_propagate_into): Allow propagations from
17900 inner loop to outer loop.
17901
17902 2022-01-07 Roger Sayle <roger@nextmovesoftware.com>
17903
17904 * config/nvptx/nvptx.md (*cnot<mode>2): New define_insn.
17905
17906 2022-01-07 Haochen Gui <guihaoc@gcc.gnu.org>
17907
17908 * config/rs6000/rs6000.md (rs6000_mffscrni): Define.
17909 (rs6000_set_fpscr_rn): Change the type of operand[0] from DI to SI.
17910 Call gen_rs6000_mffscrni when operand[0] is a const_0_to_3_operand.
17911
17912 2022-01-07 liuhongt <hongtao.liu@intel.com>
17913
17914 * config/i386/sse.md
17915 (*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Extend to
17916 UNSPEC_PCMP_UNSIGNED.
17917
17918 2022-01-07 liuhongt <hongtao.liu@intel.com>
17919
17920 PR target/103753
17921 * config/i386/i386-expand.c (ix86_expand_vector_set): Not use
17922 gen_avx2_pblendph_1 when elt == 0.
17923 * config/i386/sse.md (avx2_pblendph): Rename to ..
17924 (avx2_pblend<ssemodesuffix>_1).. this, and extend to V16HI.
17925 (*avx2_pblendw): Rename to ..
17926 (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
17927 (avx2_pblendw): Rename to ..
17928 (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
17929 (blendsuf): Removed.
17930 (sse4_1_pblend<blendsuf>): Renamed to ..
17931 (sse4_1_pblend<ssemodesuffix>): .. this.
17932
17933 2022-01-06 H.J. Lu <hjl.tools@gmail.com>
17934
17935 PR target/103925
17936 * config/i386/i386.c (ix86_output_indirect_function_return):
17937 Generate INT3 after indirect jmp for -mharden-sls=indirect-jmp.
17938
17939 2022-01-06 H.J. Lu <hjl.tools@gmail.com>
17940
17941 PR target/102952
17942 * config/i386/i386-opts.h (harden_sls): Replace
17943 harden_sls_indirect_branch with harden_sls_indirect_jmp.
17944 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect):
17945 Likewise.
17946 (ix86_output_indirect_jmp): Likewise.
17947 (ix86_output_call_insn): Likewise.
17948 * config/i386/i386.opt: Replace indirect-branch with
17949 indirect-jmp. Replace harden_sls_indirect_branch with
17950 harden_sls_indirect_jmp.
17951 * doc/invoke.texi (-harden-sls=): Replace indirect-branch with
17952 indirect-jmp.
17953
17954 2022-01-06 Uroš Bizjak <ubizjak@gmail.com>
17955
17956 * config/i386/i386.c (ix86_output_ssemov) <MODE_DI>:
17957 Add %q modifier for operands in general registers.
17958 <MODE_SI>: Add %q modifier for operands in general registers.
17959 * config/i386/i386.md (*movhi_internal): Change type attribute of
17960 xmm-gpr interunit alternatives 9,10 to ssemov and mode attribute
17961 to SImode for non-avx512fp16 targets.
17962 (*movhf_internal): Ditto for xmm-gpr interunit alternatives 6,8.
17963 * config/i386/mmx.md (*movv2qi_internal):
17964 Ditto for xmm-gpr interunit alternatives 8,9.
17965
17966 2022-01-06 Kito Cheng <kito.cheng@sifive.com>
17967
17968 * common/config/riscv/riscv-common.c (riscv_implied_info): Add
17969 vector extensions.
17970 (riscv_ext_version_table): Add version info for vector extensions.
17971 (riscv_ext_flag_table): Add option mask for vector extensions.
17972 * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): New.
17973 (MASK_VECTOR_EEW_64): New.
17974 (MASK_VECTOR_EEW_FP_32): New.
17975 (MASK_VECTOR_EEW_FP_64): New.
17976 (MASK_ZVL32B): New.
17977 (MASK_ZVL64B): New.
17978 (MASK_ZVL128B): New.
17979 (MASK_ZVL256B): New.
17980 (MASK_ZVL512B): New.
17981 (MASK_ZVL1024B): New.
17982 (MASK_ZVL2048B): New.
17983 (MASK_ZVL4096B): New.
17984 (MASK_ZVL8192B): New.
17985 (MASK_ZVL16384B): New.
17986 (MASK_ZVL32768B): New.
17987 (MASK_ZVL65536B): New.
17988 (TARGET_ZVL32B): New.
17989 (TARGET_ZVL64B): New.
17990 (TARGET_ZVL128B): New.
17991 (TARGET_ZVL256B): New.
17992 (TARGET_ZVL512B): New.
17993 (TARGET_ZVL1024B): New.
17994 (TARGET_ZVL2048B): New.
17995 (TARGET_ZVL4096B): New.
17996 (TARGET_ZVL8192B): New.
17997 (TARGET_ZVL16384B): New.
17998 (TARGET_ZVL32768B): New.
17999 (TARGET_ZVL65536B): New.
18000 * config/riscv/riscv.opt (Mask(VECTOR)): New.
18001 (riscv_vector_eew_flags): New.
18002 (riscv_zvl_flags): New.
18003
18004 2022-01-06 Kito Cheng <kito.cheng@sifive.com>
18005
18006 * common/config/riscv/riscv-common.c
18007 (riscv_subset_list::parse_multiletter_ext): Allow ext. name has
18008 digit.
18009
18010 2022-01-06 Jakub Jelinek <jakub@redhat.com>
18011
18012 PR tree-optimization/103899
18013 * expr.c (expand_expr_real_1): Add a workaround for bogus uninit
18014 warning by moving context variable to the only spot where it is used
18015 and moving gcc_assert into if body.
18016
18017 2022-01-06 Jakub Jelinek <jakub@redhat.com>
18018
18019 PR rtl-optimization/103908
18020 * ifcvt.c (bb_valid_for_noce_process_p): Punt on bbs ending with
18021 asm goto.
18022
18023 2022-01-05 Bill Schmidt <wschmidt@linux.ibm.com>
18024
18025 PR target/103622
18026 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
18027 Skip over instances with undefined function types.
18028
18029 2022-01-05 Andrew Pinski <apinski@marvell.com>
18030
18031 PR target/103910
18032 * config/i386/i386.h (x86_mfence): Mark with GTY.
18033
18034 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
18035
18036 PR target/103861
18037 * config/i386/mmx.md (VI_16_32): New mode iterator.
18038 (VI1_16_32): Ditto.
18039 (mmxvecsize): Handle V2QI mode.
18040 (<smaxmin:code><mode>3): Rename from <smaxmin:code>v4qi3.
18041 Use VI1_16_32 mode iterator.
18042 (<umaxmin:code><mode>3): Rename from <umaxmin:code>v4qi3.
18043 Use VI1_16_32 mode iterator.
18044 (abs<mode>2): Use VI_16_32 mode iterator.
18045 (uavgv2qi3_ceil): New insn pattern.
18046
18047 2022-01-05 Martin Sebor <msebor@redhat.com>
18048
18049 * gimple-ssa-warn-access.cc (pass_waccess::maybe_warn_memmodel): Use
18050 %qs to avoid -Wformat-diag.
18051
18052 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
18053
18054 PR target/103915
18055 * config/i386/mmx.md (one_cmplv2qi2): Change
18056 alternatives 1,2 type from sselog to sselog1.
18057
18058 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
18059
18060 PR target/103905
18061 * config/i386/i386-expand.c (expand_vec_perm_pshufb): Fix number of
18062 narrow mode remapped elements for !one_operand_p case.
18063
18064 2022-01-05 Richard Biener <rguenther@suse.de>
18065
18066 PR tree-optimization/103816
18067 * tree-vect-data-refs.c (vect_analyze_group_access_1): Also
18068 check DR_GROUP_GAP compute for overflow and representability.
18069
18070 2022-01-05 Jakub Jelinek <jakub@redhat.com>
18071
18072 PR fortran/103691
18073 * gimple-fold.c (fold_stmt_1): Don't call maybe_fold_reference
18074 for DEBUG stmts with ADDR_EXPR gimple_debug_bind_get_value,
18075 it can do unwanted rhs folding like &a[0] into &2.0 etc.
18076
18077 2022-01-05 Kewen Lin <linkw@linux.ibm.com>
18078
18079 PR ipa/102059
18080 * config/rs6000/rs6000.c (TARGET_NEED_IPA_FN_TARGET_INFO): New macro.
18081 (TARGET_UPDATE_IPA_FN_TARGET_INFO): Likewise.
18082 (rs6000_need_ipa_fn_target_info): New function.
18083 (rs6000_update_ipa_fn_target_info): Likewise.
18084 (rs6000_can_inline_p): Adjust for ipa function summary target info.
18085 * config/rs6000/rs6000.h (RS6000_FN_TARGET_INFO_HTM): New macro.
18086 * ipa-fnsummary.c (ipa_dump_fn_summary): Adjust for ipa function
18087 summary target info.
18088 (analyze_function_body): Adjust for ipa function summary target info
18089 and call hook rs6000_need_ipa_fn_target_info and
18090 rs6000_update_ipa_fn_target_info.
18091 (ipa_merge_fn_summary_after_inlining): Adjust for ipa function summary
18092 target info.
18093 (inline_read_section): Likewise.
18094 (ipa_fn_summary_write): Likewise.
18095 * ipa-fnsummary.h (ipa_fn_summary::target_info): New member.
18096 * doc/tm.texi: Regenerate.
18097 * doc/tm.texi.in (TARGET_UPDATE_IPA_FN_TARGET_INFO): Document new hook.
18098 (TARGET_NEED_IPA_FN_TARGET_INFO): Likewise.
18099 * target.def (update_ipa_fn_target_info): New hook.
18100 (need_ipa_fn_target_info): Likewise.
18101 * targhooks.c (default_need_ipa_fn_target_info): New function.
18102 (default_update_ipa_fn_target_info): Likewise.
18103 * targhooks.h (default_update_ipa_fn_target_info): New declare.
18104 (default_need_ipa_fn_target_info): Likewise.
18105
18106 2022-01-04 Martin Sebor <msebor@redhat.com>
18107
18108 PR middle-end/99612
18109 * builtins.c (get_memmodel): Move warning code to
18110 gimple-ssa-warn-access.cc.
18111 (expand_builtin_atomic_compare_exchange): Same.
18112 (expand_ifn_atomic_compare_exchange): Same.
18113 (expand_builtin_atomic_load): Same.
18114 (expand_builtin_atomic_store): Same.
18115 (expand_builtin_atomic_clear): Same.
18116 * doc/extend.texi (__atomic_exchange_n): Update valid memory
18117 models.
18118 * gimple-ssa-warn-access.cc (memmodel_to_uhwi): New function.
18119 (struct memmodel_pair): New struct.
18120 (memmodel_name): New function.
18121 (pass_waccess::maybe_warn_memmodel): New function.
18122 (pass_waccess::check_atomic_memmodel): New function.
18123 (pass_waccess::check_atomic_builtin): Handle memory model.
18124 * input.c (expansion_point_location_if_in_system_header): Return
18125 original location if expansion location is in a system header.
18126
18127 2022-01-04 Uroš Bizjak <ubizjak@gmail.com>
18128
18129 PR target/103861
18130 * config/i386/mmx.md (one_cmplv2qi3): New insn pattern.
18131 (one_cmplv2qi3 splitters): New post-reload splitters.
18132 (*andnotv2qi3): New insn pattern.
18133 (andnotv2qi3 splitters): New post-reload splitters.
18134 (<any_logic:code>v2qi3): New insn pattern.
18135 (<any_logic:insn>v2qi3 splitters): New post-reload splitters.
18136
18137 2022-01-04 Richard Biener <rguenther@suse.de>
18138
18139 PR tree-optimization/103800
18140 * tree-vect-loop.c (vectorizable_phi): Remove assert and
18141 expand comment.
18142
18143 2022-01-04 Richard Biener <rguenther@suse.de>
18144
18145 PR tree-optimization/103690
18146 * tree-pass.h (tail_merge_optimize): Adjust.
18147 * tree-ssa-tail-merge.c (tail_merge_optimize): Pass in whether
18148 to re-split critical edges, move CFG cleanup ...
18149 * tree-ssa-pre.c (pass_pre::execute): ... here, before
18150 simple_dce_from_worklist and delay freeing inserted_exprs from
18151 ...
18152 (fini_pre): .. here.
18153
18154 2022-01-04 Roger Sayle <roger@nextmovesoftware.com>
18155
18156 * config/nvptx/nvptx.h (STORE_FLAG_VALUE): Change to 1.
18157 * config/nvptx/nvptx.md (movbi): Use P1 constraint for true.
18158 (setcc_from_bi): Remove SImode specific pattern.
18159 (setcc<mode>_from_bi): Provide more general HSDIM pattern.
18160 (extendbi<mode>2, zeroextendbi<mode>2): Provide instructions
18161 for sign- and zero-extending BImode predicates to integers.
18162 (setcc_int<mode>): Remove previous (-1-based) instructions.
18163 (cstorebi4): Remove BImode to SImode specific expander.
18164 (cstore<mode>4): Fix indentation. Expand using setccsi_from_bi.
18165 (cstore<mode>4): For both integer and floating point modes.
18166
18167 2022-01-04 Olivier Hainque <hainque@adacore.com>
18168
18169 * gcc.c (driver_handle_option): do_save --sysroot.
18170
18171 2022-01-04 Richard Biener <rguenther@suse.de>
18172
18173 PR tree-optimization/103864
18174 PR tree-optimization/103544
18175 * tree-vect-slp.c (vect_analyze_slp_instance): Exclude
18176 reductions wrapped in conversions from SLP handling.
18177 (vect_analyze_slp): Revert PR103544 change.
18178
18179 2022-01-04 Jakub Jelinek <jakub@redhat.com>
18180
18181 PR rtl-optimization/103860
18182 * shrink-wrap.c (try_shrink_wrapping): Don't call can_get_prologue
18183 uselessly for blocks for which it has been called already.
18184
18185 2022-01-04 Cui,Lili <lili.cui@intel.com>
18186
18187 * common/config/i386/cpuinfo.h (get_intel_cpu): Add new model values
18188 to Alderlake and Rocketlake.
18189
18190 2022-01-04 Chung-Lin Tang <cltang@codesourcery.com>
18191
18192 PR middle-end/103643
18193 * gimplify.c (gimplify_omp_affinity): Adjust gimplify_expr of entire
18194 OMP_CLAUSE_DECL to use 'is_gimple_lvalue, fb_lvalue'
18195
18196 2022-01-04 liuhongt <hongtao.liu@intel.com>
18197
18198 PR target/103895
18199 * config/i386/sse.md (*bit_and_float_vector_all_ones):
18200 Force_reg operand 1 to avoid ICE.
18201
18202 2022-01-04 Jason Merrill <jason@redhat.com>
18203
18204 * tree-pretty-print.c (do_niy): Add spc parameter.
18205 (NIY): Pass it.
18206 (print_call_name): Add spc local variable.
18207
18208 2022-01-03 Uroš Bizjak <ubizjak@gmail.com>
18209
18210 PR target/103894
18211 * config/i386/mmx.md (mov<V_32:mode>): Remove TARGET_SSE2 constraint.
18212 (mov<V_32:mode>_internal): Ditto.
18213 (*push<V_32:mode>_rex64): Ditto.
18214 (movmisalign<V_32:mode>): Ditto.
18215 (*push<V_32:mode>_rex64 splitter): Enable for
18216 TARGET_64BIT && TARGET_SSE.
18217 (*push<V_32:mode>2): Remove insn pattern.
18218
18219 2022-01-03 Andrew Pinski <apinski@marvell.com>
18220
18221 PR c/33193
18222 * doc/extend.texi: Extend the documentation about Complex
18223 types for casting and also rewrite the __real__/__imag__
18224 expression portion to use tables.
18225 Move __builtin_complex to the Complex type section.
18226
18227 2022-01-03 Jakub Jelinek <jakub@redhat.com>
18228
18229 PR target/98737
18230 * internal-fn.def (ATOMIC_ADD_FETCH_CMP_0, ATOMIC_SUB_FETCH_CMP_0,
18231 ATOMIC_AND_FETCH_CMP_0, ATOMIC_OR_FETCH_CMP_0, ATOMIC_XOR_FETCH_CMP_0):
18232 New internal fns.
18233 * internal-fn.h (ATOMIC_OP_FETCH_CMP_0_EQ, ATOMIC_OP_FETCH_CMP_0_NE,
18234 ATOMIC_OP_FETCH_CMP_0_LT, ATOMIC_OP_FETCH_CMP_0_LE,
18235 ATOMIC_OP_FETCH_CMP_0_GT, ATOMIC_OP_FETCH_CMP_0_GE): New enumerators.
18236 * internal-fn.c (expand_ATOMIC_ADD_FETCH_CMP_0,
18237 expand_ATOMIC_SUB_FETCH_CMP_0, expand_ATOMIC_AND_FETCH_CMP_0,
18238 expand_ATOMIC_OR_FETCH_CMP_0, expand_ATOMIC_XOR_FETCH_CMP_0): New
18239 functions.
18240 * optabs.def (atomic_add_fetch_cmp_0_optab,
18241 atomic_sub_fetch_cmp_0_optab, atomic_and_fetch_cmp_0_optab,
18242 atomic_or_fetch_cmp_0_optab, atomic_xor_fetch_cmp_0_optab): New
18243 direct optabs.
18244 * builtins.h (expand_ifn_atomic_op_fetch_cmp_0): Declare.
18245 * builtins.c (expand_ifn_atomic_op_fetch_cmp_0): New function.
18246 * tree-ssa-ccp.c: Include internal-fn.h.
18247 (optimize_atomic_bit_test_and): Add . before internal fn call
18248 in function comment. Change return type from void to bool and
18249 return true only if successfully replaced.
18250 (optimize_atomic_op_fetch_cmp_0): New function.
18251 (pass_fold_builtins::execute): Use optimize_atomic_op_fetch_cmp_0
18252 for BUILT_IN_ATOMIC_{ADD,SUB,AND,OR,XOR}_FETCH_{1,2,4,8,16} and
18253 BUILT_IN_SYNC_{ADD,SUB,AND,OR,XOR}_AND_FETCH_{1,2,4,8,16},
18254 for *XOR* ones only if optimize_atomic_bit_test_and failed.
18255 * config/i386/sync.md (atomic_<plusminus_mnemonic>_fetch_cmp_0<mode>,
18256 atomic_<logic>_fetch_cmp_0<mode>): New define_expand patterns.
18257 (atomic_add_fetch_cmp_0<mode>_1, atomic_sub_fetch_cmp_0<mode>_1,
18258 atomic_<logic>_fetch_cmp_0<mode>_1): New define_insn patterns.
18259 * doc/md.texi (atomic_add_fetch_cmp_0<mode>,
18260 atomic_sub_fetch_cmp_0<mode>, atomic_and_fetch_cmp_0<mode>,
18261 atomic_or_fetch_cmp_0<mode>, atomic_xor_fetch_cmp_0<mode>): Document
18262 new named patterns.
18263
18264 2022-01-03 Richard Biener <rguenther@suse.de>
18265
18266 PR middle-end/103851
18267 * tree-cfg.c (move_sese_region_to_fn): Always release SSA names.
18268
18269 2022-01-03 Jakub Jelinek <jakub@redhat.com>
18270
18271 PR c++/94716
18272 * symtab.c: Include fold-const.h.
18273 (symtab_node::equal_address_to): If folding_initializer is true,
18274 handle it like memory_accessed. Simplify.
18275
18276 2022-01-03 Martin Liska <mliska@suse.cz>
18277
18278 * doc/extend.texi: Use ; for function declarations.
18279
18280 2022-01-03 Jakub Jelinek <jakub@redhat.com>
18281
18282 PR c++/103600
18283 * symtab.c (symtab_node::equal_address_to): Return 0 if one of
18284 VAR_DECLs has "non overlapping" attribute and rs1 != rs2.
18285
18286 2022-01-03 Jakub Jelinek <jakub@redhat.com>
18287
18288 * gcc.c (process_command): Update copyright notice dates.
18289 * gcov-dump.c (print_version): Ditto.
18290 * gcov.c (print_version): Ditto.
18291 * gcov-tool.c (print_version): Ditto.
18292 * gengtype.c (create_file): Ditto.
18293 * doc/cpp.texi: Bump @copying's copyright year.
18294 * doc/cppinternals.texi: Ditto.
18295 * doc/gcc.texi: Ditto.
18296 * doc/gccint.texi: Ditto.
18297 * doc/gcov.texi: Ditto.
18298 * doc/install.texi: Ditto.
18299 * doc/invoke.texi: Ditto.
18300
18301 2022-01-02 Uroš Bizjak <ubizjak@gmail.com>
18302
18303 PR target/103861
18304 * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V2QImode.
18305 (VALID_INT_MODE_P): Ditto.
18306 * config/i386/i386.c (ix86_secondary_reload): Handle
18307 V2QImode reloads from SSE register to memory.
18308 (vector_mode_supported_p): Always return true for V2QImode.
18309 * config/i386/i386.md (*subqi_ext<mode>_2): New insn pattern.
18310 (*negqi_ext<mode>_2): Ditto.
18311 * config/i386/mmx.md (movv2qi): New expander.
18312 (movmisalignv2qi): Ditto.
18313 (*movv2qi_internal): New insn pattern.
18314 (*pushv2qi2): Ditto.
18315 (negv2qi2 and splitters): Ditto.
18316 (<plusminus:insn>v2qi3 and splitters): Ditto.
18317
18318 2022-01-02 John David Anglin <danglin@gcc.gnu.org>
18319
18320 * config/pa/pa.md (atomic_storeq): Use optab_libfunc to access
18321 sync_lock_test_and_set libfunc. Call convert_memory_address to
18322 convert memory address to Pmode.
18323 (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
18324
18325 \f
18326 Copyright (C) 2022 Free Software Foundation, Inc.
18327
18328 Copying and distribution of this file, with or without modification,
18329 are permitted in any medium without royalty provided the copyright
18330 notice and this notice are preserved.
This page took 0.791578 seconds and 6 git commands to generate.