]> gcc.gnu.org Git - gcc.git/blob - gcc/ChangeLog
Daily bump.
[gcc.git] / gcc / ChangeLog
1 2022-09-23 Vineet Gupta <vineetg@rivosinc.com>
2
3 * config/riscv/riscv.h (LOCAL_SYM_P): New.
4 (USE_LOAD_ADDRESS_MACRO): Simplify by calling LOCAL_SYM_P.
5
6 2022-09-23 zhongjuzhe <juzhe.zhong@rivai.ai>
7
8 * config/riscv/riscv-modes.def (VECTOR_BOOL_MODE): Add RVV mask modes.
9 (ADJUST_NUNITS): Adjust nunits using riscv_vector_chunks.
10 (ADJUST_ALIGNMENT): Adjust alignment.
11 (ADJUST_BYTESIZE): Adjust bytesize using riscv_vector_chunks.
12 (RVV_MODES): New macro.
13 (VECTOR_MODE_WITH_PREFIX): Add RVV vector modes.
14 (VECTOR_MODES_WITH_PREFIX): Add RVV vector modes.
15
16 2022-09-23 zhongjuzhe <juzhe.zhong@rivai.ai>
17
18 * common/config/riscv/riscv-common.cc: Change "static void" to "void".
19 * config.gcc: Add riscv-selftests.o
20 * config/riscv/predicates.md: Allow const_poly_int.
21 * config/riscv/riscv-protos.h (riscv_reinit): New function.
22 (riscv_parse_arch_string): change as exten function.
23 (riscv_run_selftests): New function.
24 * config/riscv/riscv.cc (riscv_cannot_force_const_mem): Don't allow poly
25 into const pool.
26 (riscv_report_v_required): New function.
27 (riscv_expand_op): New function.
28 (riscv_expand_mult_with_const_int): New function.
29 (riscv_legitimize_poly_move): Ditto.
30 (riscv_legitimize_move): New function.
31 (riscv_hard_regno_mode_ok): Add VL/VTYPE register allocation and fix
32 vector RA.
33 (riscv_convert_vector_bits): Fix riscv_vector_chunks configuration for
34 -marh no 'v'.
35 (riscv_reinit): New function.
36 (TARGET_RUN_TARGET_SELFTESTS): New target hook support.
37 * config/riscv/t-riscv: Add riscv-selftests.o.
38 * config/riscv/riscv-selftests.cc: New file.
39
40 2022-09-23 Richard Biener <rguenther@suse.de>
41
42 PR tree-optimization/106922
43 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Allow
44 an arbitrary number of same valued skipped stores.
45
46 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
47
48 * value-range.cc (frange::set): Swap setters such that the one
49 accepting REAL_VALUE_TYPE does all the work.
50
51 2022-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
52
53 * config/aarch64/aarch64-cores.def (neoverse-v2): New entry.
54 (demeter): Update tunings to neoversev2.
55 * config/aarch64/aarch64-tune.md: Regenerate.
56 * config/aarch64/aarch64.cc (demeter_addrcost_table): Rename to
57 neoversev2_addrcost_table.
58 (demeter_regmove_cost): Rename to neoversev2_addrcost_table.
59 (demeter_advsimd_vector_cost): Rename to neoversev2_advsimd_vector_cost.
60 (demeter_sve_vector_cost): Rename to neoversev2_sve_vector_cost.
61 (demeter_scalar_issue_info): Rename to neoversev2_scalar_issue_info.
62 (demeter_advsimd_issue_info): Rename to neoversev2_advsimd_issue_info.
63 (demeter_sve_issue_info): Rename to neoversev2_sve_issue_info.
64 (demeter_vec_issue_info): Rename to neoversev2_vec_issue_info.
65 Update references to above.
66 (demeter_vector_cost): Rename to neoversev2_vector_cost.
67 (demeter_tunings): Rename to neoversev2_tunings.
68 (aarch64_vec_op_count::rename_cycles_per_iter): Use
69 neoversev2_sve_issue_info instead of demeter_sve_issue_info.
70 * doc/invoke.texi (AArch64 Options): Document neoverse-v2.
71
72 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
73
74 * range-op-float.cc (build_le): Use vrp_val_*.
75 (build_lt): Same.
76 (build_ge): Same.
77 (build_gt): Same.
78 * value-range.cc (frange::set): Chop ranges outside of the
79 representable numbers for -ffinite-math-only.
80 (frange::normalize_kind): Use vrp_val*.
81 (frange::verify_range): Same.
82 (frange::set_nonnegative): Same.
83 (range_tests_floats): Remove tests that depend on -INF and +INF.
84 * value-range.h (real_max_representable): Add prototype.
85 (real_min_representable): Same.
86 (vrp_val_max): Set max representable number for
87 -ffinite-math-only.
88 (vrp_val_min): Same but for min.
89 (frange::set_varying): Use vrp_val*.
90
91 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
92
93 * real.cc (debug): New.
94
95 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
96
97 * value-range-pretty-print.cc (vrange_printer::print_real_value): New.
98 (vrange_printer::visit): Call print_real_value.
99 * value-range-pretty-print.h: New print_real_value.
100
101 2022-09-23 Martin Liska <mliska@suse.cz>
102
103 * common.opt: Update -flto-compression-level documentation.
104 * opts.cc (print_filtered_help): Do not append range to an
105 option that uses \t syntax.
106
107 2022-09-23 Jakub Jelinek <jakub@redhat.com>
108
109 * attribs.cc (decl_attributes): Improve diagnostics, instead of
110 saying expected between 1 and 1, found 2 just say expected 1, found 2.
111
112 2022-09-23 Hu, Lin1 <lin1.hu@intel.com>
113
114 PR target/94962
115 * config/i386/constraints.md (BH): New define_constraint.
116 * config/i386/i386.cc (standard_sse_constant_p): Add return
117 3/4 when operand matches new predicate.
118 (standard_sse_constant_opcode): Add new alternative branch to
119 return "vpcmpeqd".
120 * config/i386/predicates.md
121 (vector_all_ones_zero_extend_half_operand): New define_predicate.
122 (vector_all_ones_zero_extend_quarter_operand): Ditto.
123 * config/i386/sse.md: Add constraint to insn "mov<mode>_internal".
124
125 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
126
127 * gimple-range-fold.cc (range_of_range_op): Handle no operands.
128 (range_of_call): Do not check for builtins.
129 (fold_using_range::range_of_builtin_call): Delete.
130 (fold_using_range::range_of_builtin_int_call): Delete.
131 * gimple-range-fold.h: Adjust prototypes.
132 * gimple-range-op.cc (class cfn_parity): New.
133 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
134
135 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
136
137 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
138 for CFN_GOACC_DIM_*.
139 * gimple-range-op.cc (class cfn_goacc_dim): New.
140 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
141
142 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
143
144 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
145 for CFN_BUILT_IN_STRLEN.
146 * gimple-range-op.cc (class cfn_strlen): New.
147 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
148
149 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
150
151 * gimple-range-fold.cc (range_of_builtin_ubsan_call): Delete.
152 (range_of_builtin_int_call): Remove cases for
153 CFN_BUILT_IN_UBSAN_CHECK.
154 * gimple-range-op.cc (class cfn_ubsan): New.
155 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
156
157 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
158
159 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
160 for CFN_BUILT_IN_CLRSB.
161 * gimple-range-op.cc (class cfn_clrsb): New.
162 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
163
164 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
165
166 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
167 for CFN_CTZ.
168 * gimple-range-op.cc (class cfn_ctz): New.
169 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
170
171 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
172
173 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
174 for CFN_CLZ.
175 * gimple-range-op.cc (class cfn_clz): New.
176 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
177
178 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
179
180 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
181 for CFN_FFS and CFN_POPCOUNT.
182 * gimple-range-op.cc (class cfn_pocount): New.
183 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
184
185 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
186
187 * gimple-range-fold.cc (get_letter_range): Move to new class.
188 (range_of_builtin_int_call): Remove case for CFN_BUILT_IN_TOUPPER
189 and CFN_BUILT_IN_TOLOWER.
190 * gimple-range-op.cc (class cfn_toupper_tolower): New.
191 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
192
193 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
194
195 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
196 for CFN_BUILT_IN_SIGNBIT.
197 * gimple-range-op.cc (class cfn_signbit): New.
198 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
199
200 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
201
202 * gimple-range-fold.cc
203 (fold_using_range::range_of_builtin_int_call): Remove case for
204 CFN_BUILT_IN_CONSTANT_P.
205 * gimple-range-op.cc (gimple_range_op_handler::supported_p):
206 Check if a call also creates a range-op object.
207 (gimple_range_op_handler): Also check builtin calls.
208 (class cfn_constant_float_p): New. Float CFN_BUILT_IN_CONSTANT_P.
209 (class cfn_constant_p): New. Integral CFN_BUILT_IN_CONSTANT_P.
210 (gimple_range_op_handler::maybe_builtin_call): Set arguments and
211 handler for supported built-in calls.
212 * gimple-range-op.h (maybe_builtin_call): New prototype.
213
214 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
215
216 * gimple-range-fold.cc (range_of_range_op): Set result to
217 VARYING if the call to fold_range fails.
218 * tree-data-ref.cc (compute_distributive_range): Ditto.
219 * tree-vrp.cc (range_fold_binary_expr): Ditto.
220 (range_fold_unary_expr): Ditto.
221 * value-query.cc (range_query::get_tree_range): Ditto.
222
223 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
224
225 * range-op-float.cc (range_operator_float::fold_range): New base
226 method for "int = float op int".
227 * range-op.cc (range_op_handler::fold_range): New case.
228 * range-op.h: Update prototypes.
229
230 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
231
232 * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Use
233 operand 1 for second range if there is no operand 2.
234
235 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
236
237 * Makefile.in (OBJS): Add gimple-range-op.o.
238 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Use
239 gimple_range_op_handler.
240 * gimple-range-fold.cc (gimple_range_base_of_assignment): Move
241 to a method in gimple_range_op_handler.
242 (gimple_range_operand1): Ditto.
243 (gimple_range_operand2): Ditto.
244 (fold_using_range::fold_stmt): Use gimple_range_op_handler.
245 (fold_using_range::range_of_range_op): Ditto.
246 (fold_using_range::relation_fold_and_or): Ditto.
247 (fur_source::register_outgoing_edges): Ditto.
248 (gimple_range_ssa_names): Relocate to gimple-range-op.cc.
249 * gimple-range-fold.h: Adjust prototypes.
250 * gimple-range-gori.cc (gimple_range_calc_op1): Move
251 to a method in gimple_range_op_handler.
252 (gimple_range_calc_op2): Ditto.
253 (gori_compute::compute_operand_range): Use
254 gimple_range_op_handler.
255 (gori_compute::compute_logical_operands): Ditto.
256 (compute_operand1_range): Ditto.
257 (gori_compute::compute_operand2_range): Ditto.
258 (gori_compute::compute_operand1_and_operand2_range): Ditto.
259 * gimple-range-gori.h: Adjust protoypes.
260 * gimple-range-op.cc: New. Supply gimple_range_op_handler methods.
261 * gimple-range-op.h: New. Supply gimple_range_op_handler class.
262 * gimple-range.cc (gimple_ranger::prefill_name): Use
263 gimple_range_op_handler.
264 (gimple_ranger::prefill_stmt_dependencies): Ditto.
265 * gimple-range.h: Include gimple-range-op.h.
266 * range-op.cc (range_op_handler::range_op_handler): Adjust and
267 remove gimple * parameter option.
268 * range-op.h: Adjust prototypes.
269
270 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
271
272 * range-op.cc (range_op_handler::set_op_handler): Set new fields.
273 (ange_op_handler::range_op_handler): Likewise.
274 (range_op_handler::operator bool): Remove.
275 (range_op_handler::fold_range): Use appropriate handler.
276 (range_op_handler::op1_range): Likewise.
277 (range_op_handler::op2_range): Likewise.
278 (range_op_handler::lhs_op1_relation): Likewise.
279 (range_op_handler::lhs_op2_relation): Likewise.
280 (range_op_handler::op1_op2_relation): Likewise.
281 * range-op.h (class range_op_handler): Store handler pointers.
282 (range_op_handler:: operator bool): Inline.
283
284 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
285
286 * tree-ssa-threadbackward.cc
287 (back_threader::find_paths_to_names): Replace sequence with
288 a call to gimple_range_ssa_names.
289
290 2022-09-22 Martin Liska <mliska@suse.cz>
291 Fangrui Song <i@maskray.me>
292
293 * configure: Regenerate.
294 * configure.ac: Simplify to gcc_cv_ld_compress_debug={0,1}
295 and gcc_cv_as_compress_debug={0,1}.
296 * doc/invoke.texi: Document the removal.
297 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Simplify and ignore
298 zlib-gnu.
299 (ASM_COMPRESS_DEBUG_SPEC): Likewise.
300
301 2022-09-22 Richard Biener <rguenther@suse.de>
302
303 PR tree-optimization/106922
304 * tree-ssa-sccvn.cc (vn_walk_cb_data::same_val): New member.
305 (vn_walk_cb_data::finish): Perform delayed verification of
306 a skipped may-alias.
307 (vn_reference_lookup_pieces): Likewise.
308 (vn_reference_lookup): Likewise.
309 (vn_reference_lookup_3): When skipping stores of the same
310 value also handle constant stores that are more than a
311 single VDEF away by delaying the verification.
312
313 2022-09-22 Max Filippov <jcmvbkbc@gmail.com>
314
315 * config/xtensa/xtensa.cc (TARGET_MAX_ANCHOR_OFFSET): New
316 definition.
317
318 2022-09-22 Max Filippov <jcmvbkbc@gmail.com>
319
320 * config/xtensa/xtensa.cc (xtensa_can_output_mi_thunk)
321 (xtensa_output_mi_thunk): New functions.
322 (TARGET_ASM_CAN_OUTPUT_MI_THUNK)
323 (TARGET_ASM_OUTPUT_MI_THUNK): New macro definitions.
324 (xtensa_prepare_expand_call): Use fixed register a8 as temporary
325 when called with reload_completed set to 1.
326
327 2022-09-22 Richard Biener <rguenther@suse.de>
328
329 PR tree-optimization/99407
330 * tree-ssa-dse.cc (dse_stmt_to_dr_map): New global.
331 (dse_classify_store): Use data-ref analysis to disambiguate more uses.
332 (pass_dse::use_dr_analysis_p): New pass parameter.
333 (pass_dse::set_pass_param): Implement.
334 (pass_dse::execute): Allocate and deallocate dse_stmt_to_dr_map.
335 * passes.def: Allow DR analysis for the DSE pass before loop.
336
337 2022-09-22 Richard Biener <rguenther@suse.de>
338
339 * tree-ssa-sccvn.cc (can_track_predicate_on_edge): New
340 function split out from ...
341 (vn_nary_op_insert_pieces_predicated): ... here.
342
343 2022-09-22 liuhongt <hongtao.liu@intel.com>
344
345 PR target/106994
346 * config/i386/mmx.md (floorv2sf2): Fix typo, use
347 register_operand instead of vector_operand for operands[1].
348
349 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
350
351 PR tree-optimization/106967
352 * value-range.cc (frange::set): Set known NANs to undefined for
353 flag_finite_math_only.
354
355 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
356
357 * value-range.cc (frange::combine_zeros): Call set_undefined.
358 (frange::intersect_nans): Same.
359 (frange::intersect): Same.
360 (frange::verify_range): Undefined ranges do not have a type.
361 * value-range.h (frange::set_undefined): Clear NAN flags and type.
362
363 2022-09-21 Richard Biener <rguenther@suse.de>
364
365 PR tree-optimization/106984
366 * tsan.cc (instrument_builtin_call): Build the COND_EXPR condition in
367 a separate statement.
368
369 2022-09-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
370
371 * config/aarch64/aarch64.h (HAVE_LOCAL_CPU_DETECT,
372 EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS): Move definitions up before
373 OPTION_DEFAULT_SPECS.
374 (MCPU_MTUNE_NATIVE_SPECS): Pass "cpu" to
375 local_cpu_detect when rewriting -march=native and no -mcpu or -mtune
376 is given.
377 (CONFIG_TUNE_SPEC): Define.
378 (OPTION_DEFAULT_SPECS): Use CONFIG_TUNE_SPEC for "tune".
379
380 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
381
382 PR tree-optimization/106967
383 * range-op-float.cc (foperator_equal::fold_range): Adjust for NAN.
384 (foperator_equal::op1_range): Same.
385 (foperator_not_equal::fold_range): Same.
386 (foperator_not_equal::op1_range): Same.
387 (foperator_lt::fold_range): Same.
388 (foperator_lt::op1_range): Same.
389 (foperator_lt::op2_range): Same.
390 (foperator_le::fold_range): Same.
391 (foperator_le::op1_range): Same.
392 (foperator_le::op2_range): Same.
393 (foperator_gt::fold_range): Same.
394 (foperator_gt::op1_range): Same.
395 (foperator_gt::op2_range): Same.
396 (foperator_ge::fold_range): Same.
397 (foperator_ge::op1_range): Same.
398 (foperator_ge::op2_range): Same.
399 (foperator_unordered::op1_range): Same.
400 (foperator_ordered::fold_range): Same.
401 (foperator_ordered::op1_range): Same.
402 (build_le): Assert that we don't have a NAN.
403 (build_lt): Same.
404 (build_gt): Same.
405 (build_ge): Same.
406
407 2022-09-21 liuhongt <hongtao.liu@intel.com>
408
409 PR tree-optimization/106963
410 * tree-vect-loop.cc (vect_create_nonlinear_iv_init): Use
411 vec_gen_perm_mask_any instead of vec_gen_perm_mask_check.
412
413 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
414
415 * value-range.h (frange::maybe_isnan): Return false for
416 undefined ranges.
417
418 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
419
420 * value-range.cc (frange::set_nonnegative): Set +NAN.
421 (range_tests_signed_zeros): New test.
422 * value-range.h (frange::update_nan): New overload to set NAN sign.
423
424 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
425
426 PR target/106491
427 * config/aarch64/aarch64-sve-builtins.cc (scalar_types)
428 (acle_vector_types, acle_svpattern, acle_svprfop): Add GTY
429 markup to (new) extern declarations instead of to the main
430 definition.
431
432 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
433
434 PR tree-optimization/106794
435 PR tree-optimization/106914
436 * tree-vect-slp.cc (vect_optimize_slp_pass::internal_node_cost):
437 Only consider loads that already have a permutation.
438 (vect_optimize_slp_pass::start_choosing_layouts): Assert that
439 loads with permutations are leaf nodes. Prevent any kind of grouped
440 access from changing layout if it doesn't have a load permutation.
441
442 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
443
444 * tree-vect-data-refs.cc (vect_check_gather_scatter): Restrict
445 early-out optimisation to SSA_NAMEs.
446
447 2022-09-20 Martin Liska <mliska@suse.cz>
448
449 * ctfc.cc (ctf_add_string): Replace "the the" with "the".
450 * doc/md.texi: Likewise.
451 * gimple-range-infer.cc (non_null_loadstore): Likewise.
452
453 2022-09-20 liuhongt <hongtao.liu@intel.com>
454
455 PR target/106910
456 * config/i386/mmx.md (nearbyintv2sf2): New expander.
457 (rintv2sf2): Ditto.
458 (ceilv2sf2): Ditto.
459 (lceilv2sfv2si2): Ditto.
460 (floorv2sf2): Ditto.
461 (lfloorv2sfv2si2): Ditto.
462 (btruncv2sf2): Ditto.
463 (lrintv2sfv2si2): Ditto.
464 (roundv2sf2): Ditto.
465 (lroundv2sfv2si2): Ditto.
466 (*mmx_roundv2sf2): New define_insn.
467
468 2022-09-20 konglin1 <lingling.kong@intel.com>
469
470 PR middle-end/105735
471 * tree-scalar-evolution.cc
472 (analyze_and_compute_bitop_with_inv_effect): New function.
473 (final_value_replacement_loop): Enhanced to handle bitop
474 with inv induction.
475
476 2022-09-20 Xi Ruoyao <xry111@xry111.site>
477
478 * config/loongarch/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): For
479 -static-pie, pass -static -pie --no-dynamic-linker -z text to
480 the linker, and do not pass --dynamic-linker.
481
482 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
483
484 * value-range.cc (frange::flush_denormals_to_zero): New.
485 (frange::set): Call flush_denormals_to_zero.
486 * value-range.h (class frange): Add flush_denormals_to_zero.
487
488 2022-09-20 liuhongt <hongtao.liu@intel.com>
489
490 * config/i386/x86-tune-sched.cc (ix86_issue_rate): Adjust for
491 latest Intel processors.
492
493 2022-09-20 konglin1 <lingling.kong@intel.com>
494
495 PR target/106887
496 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
497 Fixed V16BF mode case.
498
499 2022-09-19 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
500
501 * targhooks.cc (default_zero_call_used_regs): Improve sorry
502 message.
503
504 2022-09-18 Julian Brown <julian@codesourcery.com>
505
506 * gimplify.cc (omp_segregate_mapping_groups): Update comment.
507 (gimplify_adjust_omp_clauses): Move ATTACH and
508 ATTACH_ZERO_LENGTH_ARRAY_SECTION nodes to the end of the clause list
509 for offloaded OpenMP regions.
510
511 2022-09-18 Jakub Jelinek <jakub@redhat.com>
512
513 PR middle-end/106831
514 * value-range.cc (frange::singleton_p): Avoid propagating long
515 doubles that may have multiple representations.
516
517 2022-09-18 Aldy Hernandez <aldyh@redhat.com>
518
519 * range-op-float.cc (frange_add_zeros): Replace set_signbit with
520 union of zero.
521 * value-query.cc (range_query::get_tree_range): Remove set_signbit
522 use.
523 * value-range-pretty-print.cc (vrange_printer::print_frange_prop):
524 Remove.
525 (vrange_printer::print_frange_nan): New.
526 * value-range-pretty-print.h (print_frange_prop): Remove.
527 (print_frange_nan): New.
528 * value-range-storage.cc (frange_storage_slot::set_frange): Set
529 kind and NAN fields.
530 (frange_storage_slot::get_frange): Restore kind and NAN fields.
531 * value-range-storage.h (class frange_storage_slot): Add kind and
532 NAN fields.
533 * value-range.cc (frange::update_nan): Remove.
534 (frange::set_signbit): Remove.
535 (frange::set): Adjust for NAN fields.
536 (frange::normalize_kind): Remove m_props.
537 (frange::combine_zeros): New.
538 (frange::union_nans): New.
539 (frange::union_): Handle new NAN fields.
540 (frange::intersect_nans): New.
541 (frange::intersect): Handle new NAN fields.
542 (frange::operator=): Same.
543 (frange::operator==): Same.
544 (frange::contains_p): Same.
545 (frange::singleton_p): Remove special case for signed zeros.
546 (frange::verify_range): Adjust for new NAN fields.
547 (frange::set_zero): Handle signed zeros.
548 (frange::set_nonnegative): Same.
549 (range_tests_nan): Adjust tests.
550 (range_tests_signed_zeros): Same.
551 (range_tests_signbit): Same.
552 (range_tests_floats): Same.
553 * value-range.h (class fp_prop): Remove.
554 (FP_PROP_ACCESSOR): Remove.
555 (class frange_props): Remove
556 (frange::lower_bound): NANs don't have endpoints.
557 (frange::upper_bound): Same.
558 (frange_props::operator==): Remove.
559 (frange_props::union_): Remove.
560 (frange_props::intersect): Remove.
561 (frange::update_nan): New.
562 (frange::clear_nan): New.
563 (frange::undefined_p): New.
564 (frange::set_nan): New.
565 (frange::known_finite): Adjust for new NAN representation.
566 (frange::maybe_isnan): Same.
567 (frange::known_isnan): Same.
568 (frange::signbit_p): Same.
569 * gimple-range-fold.cc (range_of_builtin_int_call): Rename
570 known_signbit_p into signbit_p.
571
572 2022-09-17 Jan-Benedict Glaw <jbglaw@lug-owl.de>
573
574 * config/csky/csky.h (FUNCTION_ARG_REGNO_P): Cast REGNO to (int)
575 to prevent warning.
576
577 2022-09-17 Jakub Jelinek <jakub@redhat.com>
578
579 PR tree-optimization/106958
580 * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): If
581 id >= l, cast op to type1, otherwise to pointer_sized_int_node.
582 If type has pointer type, cast exp to pointer_sized_int_node
583 even when id < l.
584
585 2022-09-16 liuhongt <hongtao.liu@intel.com>
586
587 PR target/106910
588 * config/i386/i386-builtins.cc
589 (ix86_builtin_vectorized_function): Modernized with
590 corresponding expanders.
591 * config/i386/sse.md (lrint<mode><sseintvecmodelower>2): New
592 expander.
593 (floor<mode>2): Ditto.
594 (lfloor<mode><sseintvecmodelower>2): Ditto.
595 (ceil<mode>2): Ditto.
596 (lceil<mode><sseintvecmodelower>2): Ditto.
597 (btrunc<mode>2): Ditto.
598 (lround<mode><sseintvecmodelower>2): Ditto.
599 (exp2<mode>2): Ditto.
600
601 2022-09-15 Joseph Myers <joseph@codesourcery.com>
602
603 * ginclude/float.h (INFINITY): Define only if
604 [__FLT_HAS_INFINITY__].
605
606 2022-09-15 Richard Biener <rguenther@suse.de>
607
608 PR tree-optimization/106922
609 * tree-ssa-pre.cc (translate_vuse_through_block): Only
610 keep the VUSE if its def dominates PHIBLOCK.
611 (prune_clobbered_mems): Rewrite logic so we check whether
612 a value dies in a block when the VUSE def doesn't dominate it.
613
614 2022-09-15 Richard Biener <rguenther@suse.de>
615
616 * tree.cc (build_common_tree_nodes): Initialize void_list_node
617 here.
618
619 2022-09-15 Jiufu Guo <guojiufu@linux.ibm.com>
620
621 PR target/106550
622 * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Use pli.
623
624 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
625
626 * range-op-float.cc (frange_add_zeros): New.
627 (build_le): Call frange_add_zeros.
628 (build_ge): Same.
629 (foperator_equal::op1_range): Same.
630 (foperator_not_equal::op1_range): Same.
631
632 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
633
634 * range-op-float.cc (build_le): Accept frange instead of number.
635 (build_lt): Same.
636 (build_ge): Same.
637 (build_gt): Same.
638 (foperator_lt::op1_range): Pass full range to build_*.
639 (foperator_lt::op2_range): Same.
640 (foperator_le::op1_range): Same.
641 (foperator_le::op2_range): Same.
642 (foperator_gt::op1_range): Same.
643 (foperator_gt::op2_range): Same.
644 (foperator_ge::op1_range): Same.
645 (foperator_ge::op2_range): Same.
646
647 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
648
649 * value-range.cc (frange::set): Use set_nan.
650 * value-range.h (frange::set_nan): Inline code originally in
651 set().
652
653 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
654
655 * range-op-float.cc (frange_set_nan): Remove.
656 (build_lt): Use set_nan, update_nan, clear_nan.
657 (build_gt): Same.
658 (foperator_equal::op1_range): Same.
659 (foperator_not_equal::op1_range): Same.
660 (foperator_lt::op1_range): Same.
661 (foperator_lt::op2_range): Same.
662 (foperator_le::op1_range): Same.
663 (foperator_le::op2_range): Same.
664 (foperator_gt::op1_range): Same.
665 (foperator_gt::op2_range): Same.
666 (foperator_ge::op1_range): Same.
667 (foperator_ge::op2_range): Same.
668 (foperator_unordered::op1_range): Same.
669 (foperator_ordered::op1_range): Same.
670 * value-query.cc (range_query::get_tree_range): Same.
671 * value-range.cc (frange::set_nan): Same.
672 (frange::update_nan): Same.
673 (frange::union_): Same.
674 (frange::intersect): Same.
675 (range_tests_nan): Same.
676 (range_tests_signed_zeros): Same.
677 (range_tests_signbit): Same.
678 (range_tests_floats): Same.
679 * value-range.h (class frange): Add update_nan and clear_nan.
680 (frange::set_nan): New.
681
682 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
683
684 * value-query.cc (range_query::get_tree_range): Remove check for overflow.
685 * value-range-pretty-print.cc (vrange_printer::visit): Move read
686 of type until after undefined_p is checked.
687 * value-range.cc (frange::set): Remove asserts for REAL_CST.
688 (frange::contains_p): Tidy up.
689 (range_tests_nan): Add comment.
690 * value-range.h (frange::type): Check for undefined_p.
691 (frange::set_undefined): Remove set of endpoints.
692
693 2022-09-14 Julian Brown <julian@codesourcery.com>
694
695 * gimplify.cc (omp_group_last): Allow GOMP_MAP_ATTACH_DETACH after
696 GOMP_MAP_STRUCT (for reindexing).
697 (omp_gather_mapping_groups): Reimplement using...
698 (omp_gather_mapping_groups_1): This new function. Stop processing at
699 GATHER_SENTINEL.
700 (omp_group_base): Allow GOMP_MAP_TO_PSET without any following node.
701 (omp_index_mapping_groups): Reimplement using...
702 (omp_index_mapping_groups_1): This new function. Handle
703 REINDEX_SENTINEL.
704 (omp_reindex_mapping_groups, omp_mapped_by_containing_struct): New
705 functions.
706 (omp_tsort_mapping_groups_1): Adjust handling of base group being the
707 same as current group. Use omp_mapped_by_containing_struct.
708 (omp_build_struct_sibling_lists): Use omp_mapped_by_containing_struct
709 and omp_reindex_mapping_groups. Robustify group deletion for reordered
710 lists.
711 (gimplify_scan_omp_clauses): Update calls to
712 omp_build_struct_sibling_lists.
713
714 2022-09-14 Julian Brown <julian@codesourcery.com>
715
716 * gimplify.cc (gimplify_omp_var_data): Remove GOVD_MAP_HAS_ATTACHMENTS.
717 (GOMP_FIRSTPRIVATE_IMPLICIT): Renumber.
718 (insert_struct_comp_map): Refactor function into...
719 (build_omp_struct_comp_nodes): This new function. Remove list handling
720 and improve self-documentation.
721 (extract_base_bit_offset): Remove BASE_REF, OFFSETP parameters. Move
722 code to strip outer parts of address out of function, but strip no-op
723 conversions.
724 (omp_mapping_group): Add DELETED field for use during reindexing.
725 (omp_strip_components_and_deref, omp_strip_indirections): New functions.
726 (omp_group_last, omp_group_base): Add GOMP_MAP_STRUCT handling.
727 (omp_gather_mapping_groups): Initialise DELETED field for new groups.
728 (omp_index_mapping_groups): Notice DELETED groups when (re)indexing.
729 (omp_siblist_insert_node_after, omp_siblist_move_node_after,
730 omp_siblist_move_nodes_after, omp_siblist_move_concat_nodes_after): New
731 helper functions.
732 (omp_accumulate_sibling_list): New function to build up GOMP_MAP_STRUCT
733 node groups for sibling lists. Outlined from gimplify_scan_omp_clauses.
734 (omp_build_struct_sibling_lists): New function.
735 (gimplify_scan_omp_clauses): Remove struct_map_to_clause,
736 struct_seen_clause, struct_deref_set. Call
737 omp_build_struct_sibling_lists as pre-pass instead of handling sibling
738 lists in the function's main processing loop.
739 (gimplify_adjust_omp_clauses_1): Remove GOVD_MAP_HAS_ATTACHMENTS
740 handling, unused now.
741 * omp-low.cc (scan_sharing_clauses): Handle pointer-type indirect
742 struct references, and references to pointers to structs also.
743
744 2022-09-14 Richard Biener <rguenther@suse.de>
745
746 PR tree-optimization/106938
747 * tree-cfg.cc (execute_fixup_cfg): Purge dead abnormal
748 edges for all last stmts in a block. Do EH cleanup
749 only on the last stmt in a block.
750
751 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
752
753 PR tree-optimization/106936
754 * value-query.cc (range_query::get_value_range): Remove assert.
755
756 2022-09-14 Jan-Benedict Glaw <jbglaw@lug-owl.de>
757
758 * config/mips/mips.cc (mips_option_override): Drop unused variable.
759
760 2022-09-14 Julian Brown <julian@codesourcery.com>
761
762 * gimplify.cc (is_or_contains_p, omp_target_reorder_clauses): Delete
763 functions.
764 (omp_tsort_mark): Add enum.
765 (omp_mapping_group): Add struct.
766 (debug_mapping_group, omp_get_base_pointer, omp_get_attachment,
767 omp_group_last, omp_gather_mapping_groups, omp_group_base,
768 omp_index_mapping_groups, omp_containing_struct,
769 omp_tsort_mapping_groups_1, omp_tsort_mapping_groups,
770 omp_segregate_mapping_groups, omp_reorder_mapping_groups): New
771 functions.
772 (gimplify_scan_omp_clauses): Call above functions instead of
773 omp_target_reorder_clauses, unless we've seen an error.
774 * omp-low.cc (scan_sharing_clauses): Avoid strict test if we haven't
775 sorted mapping groups.
776
777 2022-09-14 Jakub Jelinek <jakub@redhat.com>
778
779 PR tree-optimization/106878
780 * tree-cfg.cc (verify_gimple_assign_binary): Disallow pointer,
781 reference or OFFSET_TYPE BIT_IOR_EXPR, BIT_XOR_EXPR or, unless
782 the second argument is INTEGER_CST, BIT_AND_EXPR.
783 * match.pd ((type) X op CST -> (type) (X op ((type-x) CST)),
784 (type) (((type2) X) op Y) -> (X op (type) Y)): Punt for
785 POINTER_TYPE_P or OFFSET_TYPE.
786 * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): For
787 pointers cast them to pointer sized integers first.
788
789 2022-09-14 Richard Biener <rguenther@suse.de>
790
791 PR tree-optimization/106934
792 * tree-ssa.cc (non_rewritable_mem_ref_base): Avoid BIT_FIELD_REFs
793 of bitfields.
794 (maybe_rewrite_mem_ref_base): Likewise.
795
796 2022-09-14 liuhongt <hongtao.liu@intel.com>
797
798 PR tree-optimization/106905
799 * tree-vect-loop.cc (vectorizable_nonlinear_induction): Return
800 false when !vect_use_loop_mask_for_alignment_p (loop_vinfo) &&
801 LOOP_VINFO_PEELING_FOR_ALIGNMENT (loop_vinfo) < 0.
802
803 2022-09-13 Roger Sayle <roger@nextmovesoftware.com>
804
805 PR target/106877
806 * reg-stack.cc (move_for_stack_reg): Check for any_malformed_asm
807 in gcc_assert.
808
809 2022-09-13 Max Filippov <jcmvbkbc@gmail.com>
810
811 Revert:
812 2022-09-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
813
814 * config/xtensa/xtensa.cc (TARGET_CONSTANT_OK_FOR_CPROP_P):
815 New macro definition.
816 (xtensa_constant_ok_for_cprop_p):
817 Implement the hook as mentioned above.
818
819 2022-09-13 Kewen Lin <linkw@linux.ibm.com>
820
821 PR target/104482
822 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin): Fix
823 the equality check for argument number, and move this hunk ahead.
824
825 2022-09-13 Kewen.Lin <linkw@gcc.gnu.org>
826
827 PR target/105485
828 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Add
829 the handling for unresolved overloaded builtin function.
830 (rs6000_expand_builtin): Likewise.
831
832 2022-09-13 Kewen Lin <linkw@linux.ibm.com>
833
834 * config/rs6000/rs6000.cc (class rs6000_cost_data): Add new members
835 m_nstores, m_reduc_factor, m_gather_load and member function
836 determine_suggested_unroll_factor.
837 (rs6000_cost_data::update_target_cost_per_stmt): Update for m_nstores,
838 m_reduc_factor and m_gather_load.
839 (rs6000_cost_data::determine_suggested_unroll_factor): New function.
840 (rs6000_cost_data::finish_cost): Use determine_suggested_unroll_factor.
841 * config/rs6000/rs6000.opt (rs6000-vect-unroll-limit): New parameter.
842 (rs6000-vect-unroll-issue): Likewise.
843 (rs6000-vect-unroll-reduc-threshold): Likewise.
844 * doc/invoke.texi (rs6000-vect-unroll-limit): Document new parameter.
845
846 2022-09-13 Richard Biener <rguenther@suse.de>
847
848 PR middle-end/106909
849 * gimple-fold.cc (gimple_fold_call): Clear the ctrl-altering
850 flag of a unreachable call.
851
852 2022-09-13 Richard Biener <rguenther@suse.de>
853
854 PR tree-optimization/106913
855 * tree-ssa-uninit.cc (warn_uninitialized_vars): Do not set
856 ft_reachable on EXIT_BLOCK.
857
858 2022-09-13 Richard Sandiford <richard.sandiford@arm.com>
859
860 * config/aarch64/aarch64.cc (aarch64_classify_vector_mode): Use
861 TARGET_FLOAT instead of TARGET_SIMD.
862 (aarch64_vectorize_related_mode): Restrict ADVSIMD handling to
863 TARGET_SIMD.
864 (aarch64_hard_regno_mode_ok): Don't allow tuples of 2 64-bit vectors
865 in GPRs.
866 (aarch64_classify_address): Treat little-endian structure moves
867 like big-endian for TARGET_FLOAT && !TARGET_SIMD.
868 (aarch64_secondary_memory_needed): New function.
869 (aarch64_secondary_reload): Handle 128-bit Advanced SIMD vectors
870 in the same way as TF, TI and TD.
871 (aarch64_rtx_mult_cost): Restrict ADVSIMD handling to TARGET_SIMD.
872 (aarch64_rtx_costs): Likewise.
873 (aarch64_register_move_cost): Treat a pair of 64-bit vectors
874 separately from a single 128-bit vector. Handle the cost implied
875 by aarch64_secondary_memory_needed.
876 (aarch64_simd_valid_immediate): Restrict ADVSIMD handling to
877 TARGET_SIMD.
878 (aarch64_expand_vec_perm_const_1): Likewise.
879 (TARGET_SECONDARY_MEMORY_NEEDED): New macro.
880 * config/aarch64/iterators.md (VTX): New iterator.
881 * config/aarch64/aarch64.md (arches): Add fp_q as a synonym of simd.
882 (arch_enabled): Adjust accordingly.
883 (@aarch64_reload_mov<TX:mode>): Extend to...
884 (@aarch64_reload_mov<VTX:mode>): ...this.
885 * config/aarch64/aarch64-simd.md (mov<mode>): Require TARGET_FLOAT
886 rather than TARGET_SIMD.
887 (movmisalign<mode>): Likewise.
888 (load_pair<DREG:mode><DREG2:mode>): Likewise.
889 (vec_store_pair<DREG:mode><DREG2:mode>): Likewise.
890 (load_pair<VQ:mode><VQ2:mode>): Likewise.
891 (vec_store_pair<VQ:mode><VQ2:mode>): Likewise.
892 (@aarch64_split_simd_mov<mode>): Likewise.
893 (aarch64_get_low<mode>): Likewise.
894 (aarch64_get_high<mode>): Likewise.
895 (aarch64_get_half<mode>): Likewise. Canonicalize to a move for
896 lowpart extracts.
897 (*aarch64_simd_mov<VDMOV:mode>): Require TARGET_FLOAT rather than
898 TARGET_SIMD. Use different w<-w and r<-w instructions for
899 !TARGET_SIMD. Disable immediate moves for !TARGET_SIMD but
900 add an alternative specifically for w<-Z.
901 (*aarch64_simd_mov<VQMOV:mode>): Require TARGET_FLOAT rather than
902 TARGET_SIMD. Likewise for the associated define_splits. Disable
903 FPR moves and immediate moves for !TARGET_SIMD but add an alternative
904 specifically for w<-Z.
905 (aarch64_simd_mov_from_<mode>high): Require TARGET_FLOAT rather than
906 TARGET_SIMD. Restrict the existing alternatives to TARGET_SIMD
907 but add a new r<-w one for !TARGET_SIMD.
908 (*aarch64_get_high<mode>): New pattern.
909 (load_pair_lanes<mode>): Require TARGET_FLOAT rather than TARGET_SIMD.
910 (store_pair_lanes<mode>): Likewise.
911 (*aarch64_combine_internal<mode>): Likewise. Restrict existing
912 w<-w, w<-r and w<-m alternatives to TARGET_SIMD but add a new w<-r
913 alternative for !TARGET_SIMD.
914 (*aarch64_combine_internal_be<mode>): Likewise.
915 (aarch64_combinez<mode>): Require TARGET_FLOAT rather than TARGET_SIMD.
916 Remove bogus arch attribute.
917 (*aarch64_combinez_be<mode>): Likewise.
918 (@aarch64_vec_concat<mode>): Require TARGET_FLOAT rather than
919 TARGET_SIMD.
920 (aarch64_combine<mode>): Likewise.
921 (aarch64_rev_reglist<mode>): Likewise.
922 (mov<mode>): Likewise.
923 (*aarch64_be_mov<VSTRUCT_2D:mode>): Extend to TARGET_FLOAT &&
924 !TARGET_SIMD, regardless of endianness. Extend associated
925 define_splits in the same way, both for this pattern and the
926 ones below.
927 (*aarch64_be_mov<VSTRUCT_2Qmode>): Likewise. Restrict w<-w
928 alternative to TARGET_SIMD.
929 (*aarch64_be_movoi): Likewise.
930 (*aarch64_be_movci): Likewise.
931 (*aarch64_be_movxi): Likewise.
932 (*aarch64_be_mov<VSTRUCT_4QD:mode>): Extend to TARGET_FLOAT
933 && !TARGET_SIMD, regardless of endianness. Restrict w<-w alternative
934 to TARGET_SIMD for tuples of 128-bit vectors.
935 (*aarch64_be_mov<VSTRUCT_4QD:mode>): Likewise.
936 * config/aarch64/aarch64-ldpstp.md: Remove TARGET_SIMD condition
937 from DREG STP peephole. Change TARGET_SIMD to TARGET_FLOAT in
938 the VQ and VP_2E LDP and STP peepholes.
939
940 2022-09-13 Richard Sandiford <richard.sandiford@arm.com>
941
942 * config/aarch64/aarch64-simd.md (movv8di): Remove TARGET_SIMD
943 condition. Likewise for the related define_split. Tweak formatting.
944
945 2022-09-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
946
947 * config/xtensa/xtensa.cc (TARGET_CONSTANT_OK_FOR_CPROP_P):
948 New macro definition.
949 (xtensa_constant_ok_for_cprop_p):
950 Implement the hook as mentioned above.
951
952 2022-09-12 Joseph Myers <joseph@codesourcery.com>
953
954 * ginclude/stdatomic.h [defined __STDC_VERSION__ &&
955 __STDC_VERSION__ > 201710L] (ATOMIC_VAR_INIT): Do not define.
956
957 2022-09-12 Tobias Burnus <tobias@codesourcery.com>
958
959 * config/nvptx/mkoffload.cc (process): Replace a fatal_error by
960 a warning + not enabling offloading if -misa=sm_30 prevents
961 reverse offload.
962 (main): Use tool_name as progname for diagnostic.
963 * config/gcn/mkoffload.cc (main): Likewise.
964
965 2022-09-12 Aldy Hernandez <aldyh@redhat.com>
966
967 * value-range.cc (frange::set_signbit): Avoid changing sign when
968 already in the correct sign.
969
970 2022-09-12 Max Filippov <jcmvbkbc@gmail.com>
971
972 * config/xtensa/xtensa.cc (xtensa_function_value_regno_p):
973 Recognize all 4 return registers.
974 * config/xtensa/xtensa.h (GP_RETURN_REG_COUNT): New definition.
975 * config/xtensa/xtensa.md (untyped_call): New pattern.
976
977 2022-09-12 Jonathan Wakely <jwakely@redhat.com>
978
979 * doc/extend.texi (Floating Types): Fix "_float128" typo.
980
981 2022-09-10 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
982
983 * config/xtensa/xtensa.cc (xtensa_constantsynth):
984 Add new pattern for the abovementioned case.
985
986 2022-09-10 Akari Takahashi <akaritakahashioss@gmail.com>
987 Segher Boessenkool <segher@kernel.crashing.org>
988
989 * config/rs6000/rs6000.cc (get_memref_parts): Regularize some code.
990
991 2022-09-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
992
993 * config/xtensa/xtensa.md: Rewrite the split pattern that performs
994 the abovementioned process so that insns that overwrite clobbered
995 register no longer need to be contiguous.
996 (DSC): Remove as no longer needed.
997
998 2022-09-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
999
1000 * config/xtensa/xtensa.cc (machine_function): New boolean member as
1001 a flag that controls whether to emit the insns for stack pointer
1002 adjustment inside of the pro/epilogue.
1003 (xtensa_emit_adjust_stack_ptr): New function to share the common
1004 codes and to emit insns if not inhibited.
1005 (xtensa_expand_epilogue): Change to use the function mentioned
1006 above when using the CALL0 ABI.
1007 (xtensa_expand_prologue): Ditto.
1008 And also change to set the inhibit flag used by
1009 xtensa_emit_adjust_stack_ptr() to true if the stack pointer is only
1010 used for its own adjustment.
1011
1012 2022-09-09 David Malcolm <dmalcolm@redhat.com>
1013
1014 * doc/invoke.texi (Static Analyzer Options): Add
1015 -Wanalyzer-exposure-through-uninit-copy.
1016
1017 2022-09-09 David Malcolm <dmalcolm@redhat.com>
1018
1019 * Makefile.in (ANALYZER_OBJS): Add
1020 analyzer/known-function-manager.o.
1021
1022 2022-09-09 Tobias Burnus <tobias@codesourcery.com>
1023
1024 * config/nvptx/mkoffload.cc (struct id_map): Add 'dim' member.
1025 (record_id): Store func name without quotes, store dim separately.
1026 (process): For GOMP_REQUIRES_REVERSE_OFFLOAD, check that -march is
1027 at least sm_35, create '$offload_func_table' global array and init
1028 with reverse-offload function addresses.
1029 * config/nvptx/nvptx.cc (write_fn_proto_1, write_fn_proto): New
1030 force_public attribute to force .visible.
1031 (nvptx_declare_function_name): For "omp target
1032 device_ancestor_nohost" attribut, force .visible/TREE_PUBLIC.
1033
1034 2022-09-09 Tobias Burnus <tobias@codesourcery.com>
1035
1036 * config/gcn/mkoffload.cc (process_asm): Create .offload_func_table,
1037 similar to pre-existing .offload_var_table.
1038
1039 2022-09-09 Joseph Myers <joseph@codesourcery.com>
1040
1041 * ginclude/stddef.h [__STDC_VERSION__ > 201710L] (unreachable):
1042 New macro.
1043
1044 2022-09-09 Kewen Lin <linkw@linux.ibm.com>
1045
1046 PR middle-end/106833
1047 * tree.cc (verify_opaque_type): New function.
1048 (verify_type): Call verify_opaque_type for OPAQUE_TYPE.
1049
1050 2022-09-09 Kwok Cheung Yeung <kcy@codesourcery.com>
1051
1052 * config/gcn/gcn-builtins.def (FABSVF, LDEXPVF, LDEXPV, FREXPVF_EXP,
1053 FREXPVF_MANT, FREXPV_EXP, FREXPV_MANT): Add new builtins.
1054 * config/gcn/gcn-protos.h (gcn_dconst1over2pi): New prototype.
1055 * config/gcn/gcn-valu.md (MATH_UNOP_1OR2REG, MATH_UNOP_1REG,
1056 MATH_UNOP_TRIG): New iterators.
1057 (math_unop): New attributes.
1058 (<math_unop><mode>2, <math_unop><mode>2<exec>,
1059 <math_unop><mode>2, <math_unop><mode>2<exec>,
1060 *<math_unop><mode>2_insn, *<math_unop><mode>2<exec>_insn,
1061 ldexp<mode>3, ldexp<mode>3<exec>,
1062 frexp<mode>_exp2, frexp<mode>_mant2,
1063 frexp<mode>_exp2<exec>, frexp<mode>_mant2<exec>): New instructions.
1064 (<math_unop><mode>2, <math_unop><mode>2<exec>): New expanders.
1065 * config/gcn/gcn.cc (init_ext_gcn_constants): Update definition of
1066 dconst1over2pi.
1067 (gcn_dconst1over2pi): New.
1068 (gcn_builtin_type_index): Add entry for v64df type.
1069 (v64df_type_node): New.
1070 (gcn_init_builtin_types): Initialize v64df_type_node.
1071 (gcn_expand_builtin_1): Expand new builtins to instructions.
1072 (print_operand): Fix assembler output for 1/(2*PI) constant.
1073 * config/gcn/gcn.md (unspec): Add new entries.
1074
1075 2022-09-09 Richard Biener <rguenther@suse.de>
1076
1077 PR tree-optimization/106722
1078 * tree-predcom.cc (ref_at_iteration): Do not associate the
1079 constant part of the offset into the MEM_REF offset
1080 operand, across a non-zero offset.
1081
1082 2022-09-09 Kito Cheng <kito.cheng@sifive.com>
1083
1084 * common/config/riscv/riscv-common.cc (RISCV_USE_CUSTOMISED_MULTI_LIB):
1085 Move forward for cover all all necessary functions for suppress
1086 unused function warnings.
1087 (riscv_multi_lib_check): Move forward, and tweak message to suppress
1088 -Werror=format-diag warning.
1089
1090 2022-09-09 Richard Biener <rguenther@suse.de>
1091
1092 PR tree-optimization/106881
1093 * gimple-predicate-analysis.cc (simple_control_dep_chain):
1094 Add only non-fallthru edges and avoid the same set of edges
1095 as compute_control_dep_chain_pdom does.
1096
1097 2022-09-09 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1098
1099 * doc/tm.texi.in (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Document requirement
1100 of TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT being defined as well.
1101 * doc/tm.texi: Regenerate.
1102
1103 2022-09-09 Martin Liska <mliska@suse.cz>
1104
1105 * optc-save-gen.awk: Always compare array option values with memcmp.
1106
1107 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
1108
1109 PR c++/106838
1110 * doc/extend.texi (Type Traits): Fix requirements. Document
1111 __is_aggregate and __is_final.
1112
1113 2022-09-08 Tim Lange <mail@tim-lange.me>
1114
1115 PR analyzer/106625
1116 * doc/invoke.texi:
1117 State that the checker also reasons about symbolic values.
1118
1119 2022-09-08 Richard Sandiford <richard.sandiford@arm.com>
1120
1121 PR tree-optimization/106886
1122 * tree-vect-slp.cc (vect_optimize_slp_pass::get_result_with_layout):
1123 Fix copying of scalar stmts.
1124
1125 2022-09-08 Chung-Lin Tang <cltang@codesourcery.com>
1126
1127 * config/nios2/linux.h (MUSL_DYNAMIC_LINKER): Add #undef before #define.
1128
1129 2022-09-08 Richard Biener <rguenther@suse.de>
1130
1131 PR middle-end/106870
1132 * gimple-harden-conditionals.cc (insert_check_and_trap):
1133 Set the control-altering flag on the built IFN_TRAP.
1134 * gimple.cc (gimple_build_builtin_unreachable): Likewise.
1135 * tree-cfg.cc (handle_abnormal_edges): Set the control-altering
1136 flag on the .ABNORMAL_DISPATCHER call.
1137 * tree-cfgcleanup.cc (cleanup_call_ctrl_altering_flag): Avoid
1138 resetting the control altering flag for ECF_NORETURN calls.
1139 (cleanup_control_flow_bb): Set the control altering flag on
1140 discovered noreturn calls.
1141 * symtab-thunks.cc (expand_thunk): Set the control altering
1142 flag for the noreturn tailcall case.
1143 * tree-eh.cc (lower_resx): Likewisw for trap and unwind_resume
1144 calls.
1145
1146 2022-09-08 Jakub Jelinek <jakub@redhat.com>
1147
1148 * omp-expand.cc (expand_omp_ordered_sink): Add CONT_BB argument.
1149 Add doacross(sink:omp_cur_iteration-1) support.
1150 (expand_omp_ordered_source_sink): Clear counts[fd->ordered + 1].
1151 Adjust expand_omp_ordered_sink caller.
1152 (expand_omp_for_ordered_loops): If counts[fd->ordered + 1] is
1153 non-NULL, set that variable to true at the start of outermost
1154 non-collapsed loop and set it to false at the end of innermost
1155 ordered loop.
1156 (expand_omp_for_generic): If fd->ordered, allocate
1157 1 + (fd->ordered - fd->collapse) further elements in counts array.
1158 Copy to counts + 2 + fd->ordered the counts of fd->collapse ..
1159 fd->ordered - 1 loop if any.
1160
1161 2022-09-08 Richard Biener <rguenther@suse.de>
1162
1163 PR tree-optimization/106881
1164 * gimple-predicate-analysis.cc (compute_control_dep_chain_pdom):
1165 Add only non-fallthru edges and avoid the same set of edges
1166 as the caller does.
1167
1168 2022-09-08 Aldy Hernandez <aldyh@redhat.com>
1169
1170 * gimple-range-fold.cc
1171 (fold_using_range::range_of_builtin_int_call): Use fpclassify like API.
1172 * range-op-float.cc (finite_operand_p): Same.
1173 (finite_operands_p): Same.
1174 (foperator_lt::fold_range): Same.
1175 (foperator_le::fold_range): Same.
1176 (foperator_gt::fold_range): Same.
1177 (foperator_ge::fold_range): Same.
1178 (foperator_unordered::fold_range): Same.
1179 (foperator_unordered::op1_range): Same.
1180 (foperator_ordered::fold_range): Same.
1181 * value-range.cc (frange::set_nan): Same.
1182 (frange::set_signbit): Same.
1183 (frange::union_): Same.
1184 (frange::intersect): Same.
1185 (frange::operator==): Same.
1186 (frange::singleton_p): Same.
1187 (frange::verify_range): Same.
1188 (range_tests_nan): Same.
1189 (range_tests_floats): Same.
1190 * value-range.h(frange::known_finite): New.
1191 (frange::maybe_inf): New.
1192 (frange::known_inf): New.
1193 (frange::maybe_nan): New.
1194 (frange::known_nan): New.
1195 (frange::known_signbit): New.
1196
1197 2022-09-08 Iain Buclaw <ibuclaw@gdcproject.org>
1198
1199 * config/darwin-d.cc: Include tm.h.
1200 * config/dragonfly-d.cc: Likewise.
1201 * config/freebsd-d.cc: Remove memmodel.h.
1202 * config/glibc-d.cc: Likewise.
1203 * config/netbsd-d.cc: Include tm.h.
1204 * config/openbsd-d.cc: Likewise.
1205 * config/sol2-d.cc: Likewise.
1206
1207 2022-09-08 Christophe Lyon <christophe.lyon@arm.com>
1208
1209 * config/arm/mve.md (mve_vqshluq_n_s<mode>): Use
1210 MVE_pred/MVE_constraint instead of mve_imm_7/Ra.
1211 (mve_vqshluq_m_n_s<mode>): Likewise.
1212 (mve_vqrshrnbq_n_<supf><mode>): Use MVE_pred3/MVE_constraint3
1213 instead of mve_imm_8/Rb.
1214 (mve_vqrshrunbq_n_s<mode>): Likewise.
1215 (mve_vqrshrntq_n_<supf><mode>): Likewise.
1216 (mve_vqrshruntq_n_s<mode>): Likewise.
1217 (mve_vrshrnbq_n_<supf><mode>): Likewise.
1218 (mve_vrshrntq_n_<supf><mode>): Likewise.
1219 (mve_vqrshrnbq_m_n_<supf><mode>): Likewise.
1220 (mve_vqrshrntq_m_n_<supf><mode>): Likewise.
1221 (mve_vrshrnbq_m_n_<supf><mode>): Likewise.
1222 (mve_vrshrntq_m_n_<supf><mode>): Likewise.
1223 (mve_vqrshrunbq_m_n_s<mode>): Likewise.
1224 (mve_vsriq_n_<supf><mode): Use MVE_pred2/MVE_constraint2 instead
1225 of mve_imm_selective_upto_8/Rg.
1226 (mve_vsriq_m_n_<supf><mode>): Likewise.
1227
1228 2022-09-08 Jiufu Guo <guojiufu@linux.ibm.com>
1229
1230 * config/rs6000/rs6000.md (splitter for set to and_mask constants):
1231 Use int_reg_operand (instead of int_reg_operand_not_pseudo).
1232 (splitter for multi-insn constant loads): Ditto.
1233
1234 2022-09-08 Sebastian Huber <sebastian.huber@embedded-brains.de>
1235
1236 * config/rs6000/rtems.h (CPP_OS_DEFAULT_SPEC): Define __PPC_VRSAVE__ if
1237 -mvrsave is present.
1238 * config/rs6000/t-rtems: Add -mvrsave multilib variants for
1239 -mcpu=e6500.
1240
1241 2022-09-07 Martin Liska <mliska@suse.cz>
1242
1243 * configure.ac: Restore detection of HAVE_XCOFF_DWARF_EXTRAS.
1244 * config/rs6000/rs6000.cc (HAVE_XCOFF_DWARF_EXTRAS): Reset it.
1245 * configure: Regenerate.
1246 * config.in: Regenerate.
1247
1248 2022-09-07 Surya Kumari Jangala <jskumari@linux.ibm.com>
1249
1250 PR rtl-optimization/105586
1251 * sched-rgn.cc (save_state_for_fallthru_edge): New function.
1252 (schedule_region): Use it for all blocks.
1253
1254 2022-09-07 Joseph Myers <joseph@codesourcery.com>
1255
1256 * ginclude/stdalign.h [defined __STDC_VERSION__ &&
1257 __STDC_VERSION__ > 201710L]: Disable all content.
1258 * ginclude/stdbool.h [defined __STDC_VERSION__ && __STDC_VERSION__
1259 > 201710L] (bool, true, false): Do not define.
1260
1261 2022-09-07 Martin Liska <mliska@suse.cz>
1262
1263 PR bootstrap/106855
1264 * collect2.cc (scan_prog_file): Restore if XCOFF_DEBUGGING_INFO.
1265 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
1266 Restore usage of XCOFF_DEBUGGING_INFO.
1267 * config/rs6000/xcoff.h (XCOFF_DEBUGGING_INFO): Restore.
1268 * dwarf2asm.cc (XCOFF_DEBUGGING_INFO): Restore support for
1269 XCOFF_DEBUGGING_INFO.
1270 (dw2_asm_output_nstring): Likewise.
1271 (USE_LINKONCE_INDIRECT): Likewise.
1272 * dwarf2out.cc (XCOFF_DEBUGGING_INFO): Likewise.
1273 (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
1274 (output_fde): Likewise.
1275 (output_call_frame_info): Likewise.
1276 (have_macinfo): Likewise.
1277 (add_AT_loc_list): Likewise.
1278 (add_AT_view_list): Likewise.
1279 (output_compilation_unit_header): Likewise.
1280 (output_pubnames): Likewise.
1281 (output_aranges): Likewise.
1282 (output_line_info): Likewise.
1283 (output_macinfo): Likewise.
1284 (dwarf2out_finish): Likewise.
1285 (dwarf2out_early_finish): Likewise.
1286
1287 2022-09-07 Richard Biener <rguenther@suse.de>
1288
1289 PR tree-optimization/106866
1290 * tree-ssa-dce.cc (eliminate_unnecessary_stmts): When
1291 we changed cfun->calls_setjmp make sure to purge all
1292 abnormal call edges.
1293
1294 2022-09-07 Xianmiao Qu <cooper.qu@linux.alibaba.com>
1295
1296 * config/csky/csky.cc (csky_emit_compare_float): Fix the expanding of
1297 float LE comparing with zero for fpuv3.
1298 * config/csky/csky.h (TARGET_SUPPORT_FPV2): New, true if any fpuv2
1299 features are enabled.
1300
1301 2022-09-07 Richard Biener <rguenther@suse.de>
1302
1303 PR tree-optimization/106860
1304 * tree-ssa-loop-split.cc (split_loop): Find the exit to
1305 latch edge from the loop exit edge instead of from the
1306 latch. Verify we're going to find it.
1307
1308 2022-09-07 Richard Biener <rguenther@suse.de>
1309
1310 * gimple-predicate-analysis.cc (dfs_mark_dominating_region):
1311 Adjust to take the region exit source as argument.
1312 (uninit_analysis::init_from_phi_def): Adjust.
1313 (uninit_analysis::init_use_preds): Mark the dominating region
1314 before computing control dependences.
1315
1316 2022-09-07 Richard Sandiford <richard.sandiford@arm.com>
1317
1318 * config/aarch64/aarch64.md (*mov<SHORT:mode>_aarch64): Extend
1319 w<-w, r<-w and w<-r alternatives to !simd, using 32-bit moves
1320 in that case. Extend w<-r to w<-Z.
1321 (*mov<HFBF:mode>_aarch64): Likewise, but with Y instead of Z.
1322 (*movti_aarch64): Use an FMOV from XZR for w<-Z if MOVI is not
1323 available.
1324 (define_split): Do not apply the floating-point immediate-to-register
1325 split to zeros, even if MOVI is not available.
1326
1327 2022-09-07 Richard Sandiford <richard.sandiford@arm.com>
1328
1329 * config/aarch64/aarch64.cc (aarch64_conditional_register_usage):
1330 Disallow use of FPRs in register asms for !TARGET_FLOAT.
1331
1332 2022-09-07 Lulu Cheng <chenglulu@loongson.cn>
1333
1334 PR target/106828
1335 * config/loongarch/loongarch.cc (loongarch_asan_shadow_offset): New.
1336 (TARGET_ASAN_SHADOW_OFFSET): New.
1337
1338 2022-09-07 Jakub Jelinek <jakub@redhat.com>
1339
1340 * doc/invoke.texi (-Wno-unicode): Document.
1341
1342 2022-09-07 Jiufu Guo <guojiufu@linux.ibm.com>
1343
1344 * config/rs6000/rs6000.md (const_scalar_int splitter): Remove.
1345
1346 2022-09-07 Jiufu Guo <guojiufu@linux.ibm.com>
1347
1348 * config/rs6000/rs6000.md: (constant splitters): Use "(pc)" as the
1349 replacements.
1350
1351 2022-09-07 liuhongt <hongtao.liu@intel.com>
1352
1353 PR tree-optimization/103144
1354 * tree-vect-loop.cc (vect_is_nonlinear_iv_evolution): New function.
1355 (vect_analyze_scalar_cycles_1): Detect nonlinear iv by upper function.
1356 (vect_create_nonlinear_iv_init): New function.
1357 (vect_peel_nonlinear_iv_init): Ditto.
1358 (vect_create_nonlinear_iv_step): Ditto
1359 (vect_create_nonlinear_iv_vec_step): Ditto
1360 (vect_update_nonlinear_iv): Ditto
1361 (vectorizable_nonlinear_induction): Ditto.
1362 (vectorizable_induction): Call
1363 vectorizable_nonlinear_induction when induction_type is not
1364 vect_step_op_add.
1365 * tree-vect-loop-manip.cc (vect_update_ivs_after_vectorizer):
1366 Update nonlinear iv for epilogue loop.
1367 * tree-vectorizer.h (enum vect_induction_op_type): New enum.
1368 (STMT_VINFO_LOOP_PHI_EVOLUTION_TYPE): New Macro.
1369
1370 2022-09-06 Richard Biener <rguenther@suse.de>
1371
1372 PR tree-optimization/106754
1373 * gimple-predicate-analysis.cc (compute_control_dep_chain_pdom):
1374 New function, split out from compute_control_dep_chain. Handle
1375 loop-exit like conditions here by pushing to the control vector.
1376 (compute_control_dep_chain): Adjust and streamline dumping.
1377 In the wrapper perform a post-dominator walk as well.
1378 (uninit_analysis::init_use_preds): Remove premature early exit.
1379
1380 2022-09-06 Max Filippov <jcmvbkbc@gmail.com>
1381
1382 * config/xtensa/linux.h (LINK_SPEC): Add static-pie.
1383
1384 2022-09-06 Aldy Hernandez <aldyh@redhat.com>
1385
1386 * range-op-float.cc (build_le): Handle NANs and going past infinity.
1387 (build_lt): Same.
1388 (build_ge): Same.
1389 (build_gt): Same.
1390 (foperator_lt::op1_range): Avoid adjustments to range if build_*
1391 returned false.
1392 (foperator_lt::op2_range): Same.
1393 (foperator_le::op1_range): Same.
1394 (foperator_le::op2_range): Same.
1395 (foperator_gt::op1_range): Same.
1396 (foperator_gt::op2_range): Same.
1397
1398 2022-09-06 Richard Biener <rguenther@suse.de>
1399
1400 * gimple-predicate-analysis.cc (compute_control_dep_chain):
1401 Add output flag to indicate whether we possibly have dropped
1402 any chains. Return whether the info is complete from the
1403 wrapping overload.
1404 (uninit_analysis::init_use_preds): Adjust accordingly, with
1405 a workaround for PR106754.
1406 (uninit_analysis::init_from_phi_def): Properly guard the
1407 case where we complete an empty chain.
1408
1409 2022-09-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1410
1411 * config/msp430/msp430.cc (msp430_single_op_cost): Document unused argument.
1412
1413 2022-09-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1414
1415 * tree-ssa-forwprop.cc (simplify_permutation): Set res_type to a vector
1416 type with same element type as arg0, and length as op2.
1417
1418 2022-09-06 Richard Biener <rguenther@suse.de>
1419
1420 PR tree-optimization/106844
1421 * gimple-predicate-analysis.cc (compute_control_dep_chain):
1422 Return whether we found a chain.
1423
1424 2022-09-06 Richard Biener <rguenther@suse.de>
1425
1426 PR tree-optimization/106841
1427 * tree-vect-slp.cc (vect_detect_hybrid_slp): Also process
1428 scatter/gather offset.
1429
1430 2022-09-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1431
1432 * config/bpf/bpf.h (REGNO_REG_CLASS): Reference arguments as (void).
1433
1434 2022-09-06 Jakub Jelinek <jakub@redhat.com>
1435
1436 * gimple.h (enum gf_mask): Add GF_OMP_ORDERED_STANDALONE enumerator.
1437 (gimple_omp_subcode): Use GIMPLE_OMP_ORDERED instead of
1438 GIMPLE_OMP_TEAMS as upper bound.
1439 (gimple_omp_ordered_standalone_p, gimple_omp_ordered_standalone): New
1440 inline functions.
1441 * gimplify.cc (find_standalone_omp_ordered): Look for OMP_ORDERED with
1442 NULL OMP_ORDERED_BODY rather than with OMP_DOACROSS clause.
1443 (gimplify_expr): Call gimple_omp_ordered_standalone for OMP_ORDERED
1444 with NULL OMP_ORDERED_BODY.
1445 * omp-low.cc (check_omp_nesting_restrictions): Use
1446 gimple_omp_ordered_standalone_p test instead of
1447 omp_find_clause (..., OMP_CLAUSE_DOACROSS).
1448 (lower_omp_ordered): Likewise.
1449 * omp-expand.cc (expand_omp, build_omp_regions_1,
1450 omp_make_gimple_edges): Likewise.
1451
1452 2022-09-06 Xianmiao Qu <cooper.qu@linux.alibaba.com>
1453
1454 * config/csky/csky.md (cskyv2_addcc): Fix missing operand.
1455 (cskyv2_addcc_invert): Likewise.
1456
1457 2022-09-06 Jose E. Marchesi <jose.marchesi@oracle.com>
1458
1459 * config/bpf/bpf.cc (bpf_expand_prologue): Remove unused automatic
1460 `insn'.
1461 (bpf_expand_epilogue): Likewise.
1462
1463 2022-09-06 liuhongt <hongtao.liu@intel.com>
1464
1465 * config/i386/i386-builtin.def (IX86_BUILTIN_CVTPS2PH512):
1466 Map to CODE_FOR_avx512f_vcvtps2ph512_mask_sae.
1467 * config/i386/sse.md (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Extend to ..
1468 (<mask_codefor>avx512f_vcvtps2ph512<mask_name><round_saeonly_name>): .. this.
1469 (avx512f_vcvtps2ph512_mask_sae): New expander
1470
1471 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
1472
1473 * gimple-range-fold.cc
1474 (fold_using_range::range_of_builtin_int_call): Ignore sign bit
1475 when there's the possibility of a NAN.
1476
1477 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
1478
1479 * gimple-range-fold.cc
1480 (fold_using_range::range_of_builtin_int_call): Fold a set signbit
1481 in __builtin_signbit to nonzero.
1482
1483 2022-09-05 Alexander Monakov <amonakov@ispras.ru>
1484
1485 PR target/106453
1486 * config/i386/i386.md (sse4_2_crc32di): Model that only low 32
1487 bits of operand 0 are consumed, and the result is zero-extended
1488 to 64 bits.
1489
1490 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
1491
1492 PR middle-end/106831
1493 * value-range.h (frange::supports_p): Disable decimal floats.
1494 * range-op-float.cc (frange_drop_inf): Remove DECIMAL_FLOAT_MODE_P
1495 check.
1496 (frange_drop_ninf): Same.
1497
1498 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
1499
1500 PR middle-end/106824
1501 * value-range.cc (frange::set_nan): Set undefined when updating a
1502 NAN to a non-NAN.
1503
1504 2022-09-05 Kito Cheng <kito.cheng@sifive.com>
1505
1506 * config/riscv/riscv.cc (riscv_option_override): Fix wrong
1507 condition for MASK_DIV and simplify incompatible checking.
1508 * config/riscv/riscv.md (muldi3): Adding parentheses.
1509
1510 2022-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1511
1512 * config/aarch64/aarch64.cc (aarch64_validate_march): Check if invalid arch
1513 string is a valid -mcpu string and emit hint.
1514
1515 2022-09-05 LiaoShihua <shihua@iscas.ac.cn>
1516
1517 * common/config/riscv/riscv-common.cc: Add Zmmul.
1518 * config/riscv/riscv-opts.h (MASK_ZMMUL): New.
1519 (TARGET_ZMMUL): Ditto.
1520 * config/riscv/riscv.cc (riscv_option_override):Ditto.
1521 * config/riscv/riscv.md: Add Zmmul
1522 * config/riscv/riscv.opt: Ditto.
1523
1524 2022-09-05 Richard Biener <rguenther@suse.de>
1525
1526 * tree-cfg.h (get_cases_for_edge): Declare.
1527 * tree-cfg.cc (get_cases_for_edge): Export.
1528 * tree-ssa-uninit.cc (execute_late_warn_uninitialized):
1529 Start and end recording case labels.
1530 * gimple-predicate-analysis.cc (MAX_SWITCH_CASES): Remove.
1531 (predicate::init_from_control_deps): Use get_cases_for_edge.
1532
1533 2022-09-05 Richard Biener <rguenther@suse.de>
1534
1535 * gimple-predicate-analysis.cc (MAX_POSTDOM_CHECK): Remove.
1536 (compute_control_dep_chain): Move uninit-control-dep-attempts
1537 checking where it also counts the post-dominator check
1538 invocations.
1539
1540 2022-09-05 Richard Biener <rguenther@suse.de>
1541
1542 * gimple-predicate-analysis.h (predicate::debug): New.
1543 (predicate::dump): Add FILE * argument, add base overload.
1544 * gimple-predicate-analysis.cc (debug): New.
1545 (dump_pred_info): Add FILE * argument.
1546 (dump_pred_chain): Likewise.
1547 (predicate::dump): Split out preamble into overload. Add
1548 FILE * argument.
1549 (predicate::debug): New.
1550 (predicate::simplify): Adjust.
1551 (predicate::normalize): Likewise.
1552 (predicate::init_from_control_deps): Likewise.
1553
1554 2022-09-05 Richard Sandiford <richard.sandiford@arm.com>
1555
1556 * config/aarch64/aarch64-protos.h
1557 (aarch64_init_simd_builtins): Remove prototype.
1558 * config/aarch64/aarch64-builtins.cc
1559 (aarch64_simd_builtins_initialized_p): Delete.
1560 (aarch64_init_simd_builtins): Make static. Remove protection
1561 against multiple calls.
1562 * config/aarch64/aarch64-c.cc (aarch64_pragma_target_parse): Remove
1563 lazy SIMD builtin initialization.
1564 * config/aarch64/aarch64.cc
1565 (aarch64_option_valid_attribute_p): Likewise.
1566
1567 2022-09-05 Xi Ruoyao <xry111@xry111.site>
1568
1569 * config/loongarch/genopts/loongarch.opt.in: Add
1570 -mdirect-extern-access option.
1571 * config/loongarch/loongarch.opt: Regenerate.
1572 * config/loongarch/loongarch.cc
1573 (loongarch_symbol_binds_local_p): Return true if
1574 TARGET_DIRECT_EXTERN_ACCESS.
1575 (loongarch_option_override_internal): Complain if
1576 -mdirect-extern-access is used with -fPIC or -fpic.
1577 * doc/invoke.texi: Document -mdirect-extern-access for
1578 LoongArch.
1579
1580 2022-09-05 Martin Liska <mliska@suse.cz>
1581
1582 * doc/tm.texi.in: Rename DEBUGGER_REGISTER_NUMBER to
1583 DEBUGGER_REGNO.
1584 * doc/tm.texi: Regenerate.
1585
1586 2022-09-05 Martin Liska <mliska@suse.cz>
1587
1588 * config/aarch64/aarch64-protos.h (aarch64_dbx_regno):
1589 Rename DBX_REGISTER_NUMBER to DEBUGGER_REGNO.
1590 (aarch64_debugger_regno): Likewise.
1591 * config/aarch64/aarch64.cc (aarch64_dbx_regno): Likewise.
1592 (aarch64_debugger_regno): Likewise.
1593 * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise.
1594 (DEBUGGER_REGNO): Likewise.
1595 (DWARF_FRAME_REGNUM): Likewise.
1596 * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Likewise.
1597 * config/arc/arc.cc (arc_init_reg_tables): Likewise.
1598 * config/arc/arc.h (DBX_REGISTER_NUMBER): Likewise.
1599 (DEBUGGER_REGNO): Likewise.
1600 * config/arm/arm-protos.h (arm_dbx_regno): Likewise.
1601 (arm_debugger_regno): Likewise.
1602 * config/arm/arm.cc (arm_dbx_regno): Likewise.
1603 (arm_debugger_regno): Likewise.
1604 * config/arm/arm.h (DBX_REGISTER_NUMBER): Likewise.
1605 (DEBUGGER_REGNO): Likewise.
1606 * config/bfin/bfin.h (DBX_REGISTER_NUMBER): Likewise.
1607 (DEBUGGER_REGNO): Likewise.
1608 * config/c6x/c6x.cc: Likewise.
1609 * config/c6x/c6x.h (DBX_REGISTER_NUMBER): Likewise.
1610 (DEBUGGER_REGNO): Likewise.
1611 * config/cris/cris.h (enum reg_class): Likewise.
1612 (DBX_REGISTER_NUMBER): Likewise.
1613 (DEBUGGER_REGNO): Likewise.
1614 * config/csky/csky.cc (enum reg_class): Likewise.
1615 * config/csky/csky.h (DWARF_FRAME_REGNUM): Likewise.
1616 (DBX_REGISTER_NUMBER): Likewise.
1617 (DEBUGGER_REGNO): Likewise.
1618 * config/frv/frv.h (DBX_REGISTER_NUMBER): Likewise.
1619 (DEBUGGER_REGNO): Likewise.
1620 * config/gcn/gcn-hsa.h (DBX_REGISTER_NUMBER): Likewise.
1621 (DEBUGGER_REGNO): Likewise.
1622 * config/gcn/gcn.cc (print_operand): Likewise.
1623 * config/i386/bsd.h (ASM_QUAD): Likewise.
1624 * config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise.
1625 (DEBUGGER_REGNO): Likewise.
1626 (DWARF_FRAME_REGNUM): Likewise.
1627 * config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise.
1628 (DEBUGGER_REGNO): Likewise.
1629 * config/i386/djgpp.h (DBX_REGISTER_NUMBER): Likewise.
1630 (DEBUGGER_REGNO): Likewise.
1631 * config/i386/dragonfly.h (DBX_REGISTER_NUMBER): Likewise.
1632 (DEBUGGER_REGNO): Likewise.
1633 * config/i386/freebsd.h (DBX_REGISTER_NUMBER): Likewise.
1634 (DEBUGGER_REGNO): Likewise.
1635 * config/i386/gas.h: Likewise.
1636 * config/i386/gnu-user.h (DBX_REGISTER_NUMBER): Likewise.
1637 (DEBUGGER_REGNO): Likewise.
1638 * config/i386/i386.cc (enum reg_class): Likewise.
1639 * config/i386/i386.h (DBX_REGISTER_NUMBER): Likewise.
1640 (DEBUGGER_REGNO): Likewise.
1641 * config/i386/i386elf.h (DBX_REGISTER_NUMBER): Likewise.
1642 (DEBUGGER_REGNO): Likewise.
1643 * config/i386/iamcu.h (DBX_REGISTER_NUMBER): Likewise.
1644 (DEBUGGER_REGNO): Likewise.
1645 * config/i386/lynx.h (DBX_REGISTER_NUMBER): Likewise.
1646 (DEBUGGER_REGNO): Likewise.
1647 * config/i386/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
1648 (DEBUGGER_REGNO): Likewise.
1649 * config/i386/nto.h (DBX_REGISTER_NUMBER): Likewise.
1650 (DEBUGGER_REGNO): Likewise.
1651 * config/i386/openbsdelf.h (DBX_REGISTER_NUMBER): Likewise.
1652 (DEBUGGER_REGNO): Likewise.
1653 * config/i386/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
1654 (DEBUGGER_REGNO): Likewise.
1655 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Likewise.
1656 (DEBUGGER_REGNO): Likewise.
1657 * config/i386/x86-64.h (DBX_REGISTER_NUMBER): Likewise.
1658 (DEBUGGER_REGNO): Likewise.
1659 * config/ia64/ia64-protos.h (ia64_dbx_regno): Likewise.
1660 (ia64_debugger_regno): Likewise.
1661 * config/ia64/ia64.cc (ia64_output_function_prologue): Likewise.
1662 (ia64_dbx_regno): Likewise.
1663 (ia64_debugger_regno): Likewise.
1664 (process_cfa_adjust_cfa): Likewise.
1665 (process_cfa_register): Likewise.
1666 (ia64_asm_unwind_emit): Likewise.
1667 * config/ia64/ia64.h: Likewise.
1668 * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
1669 (DEBUGGER_REGNO): Likewise.
1670 * config/lm32/lm32.h (DBX_REGISTER_NUMBER): Likewise.
1671 (DEBUGGER_REGNO): Likewise.
1672 * config/m32c/m32c.cc (m32c_eh_return_stackadj_rtx): Likewise.
1673 * config/m32c/m32c.h (DBX_REGISTER_NUMBER): Likewise.
1674 (DEBUGGER_REGNO): Likewise.
1675 * config/m68k/linux.h (DBX_REGISTER_NUMBER): Likewise.
1676 (DEBUGGER_REGNO): Likewise.
1677 * config/m68k/m68k.h (DBX_REGISTER_NUMBER): Likewise.
1678 (DEBUGGER_REGNO): Likewise.
1679 (__transfer_from_trampoline): Likewise.
1680 * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Likewise.
1681 (DEBUGGER_REGNO): Likewise.
1682 * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
1683 (DBX_REGISTER_NUMBER): Likewise.
1684 (DEBUGGER_REGNO): Likewise.
1685 * config/microblaze/microblaze.cc (microblaze_option_override): Likewise.
1686 * config/microblaze/microblaze.h (DBX_REGISTER_NUMBER): Likewise.
1687 (DEBUGGER_REGNO): Likewise.
1688 (GP_DBX_FIRST): Likewise.
1689 (GP_DEBUGGER_FIRST): Likewise.
1690 * config/mips/vxworks.h (DBX_REGISTER_NUMBER): Likewise.
1691 (DEBUGGER_REGNO): Likewise.
1692 * config/mmix/mmix-protos.h (mmix_dbx_regno): Likewise.
1693 (mmix_debugger_regno): Likewise.
1694 * config/mmix/mmix.cc (mmix_dbx_regno): Likewise.
1695 (mmix_debugger_regno): Likewise.
1696 * config/mmix/mmix.h (DBX_REGISTER_NUMBER): Likewise.
1697 (DEBUGGER_REGNO): Likewise.
1698 * config/nds32/nds32-protos.h (nds32_dbx_regno): Likewise.
1699 (nds32_debugger_regno): Likewise.
1700 * config/nds32/nds32.cc (nds32_dbx_regno): Likewise.
1701 (nds32_debugger_regno): Likewise.
1702 (nds32_use_blocks_for_constant_p): Likewise.
1703 * config/nds32/nds32.h (DBX_REGISTER_NUMBER): Likewise.
1704 (DEBUGGER_REGNO): Likewise.
1705 * config/nvptx/nvptx.h (DBX_REGISTER_NUMBER): Likewise.
1706 (DEBUGGER_REGNO): Likewise.
1707 * config/or1k/or1k.h (DBX_REGISTER_NUMBER): Likewise.
1708 (DEBUGGER_REGNO): Likewise.
1709 * config/pa/pa32-regs.h (DBX_REGISTER_NUMBER): Likewise.
1710 (DEBUGGER_REGNO): Likewise.
1711 * config/pa/pa64-regs.h (DBX_REGISTER_NUMBER): Likewise.
1712 (DEBUGGER_REGNO): Likewise.
1713 * config/rs6000/rs6000-protos.h (rs6000_dbx_regno): Likewise.
1714 (rs6000_debugger_regno): Likewise.
1715 * config/rs6000/rs6000.cc (rs6000_dbx_regno): Likewise.
1716 (rs6000_debugger_regno): Likewise.
1717 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Likewise.
1718 (DEBUGGER_REGNO): Likewise.
1719 (DWARF2_FRAME_REG_OUT): Likewise.
1720 * config/s390/s390.h (DBX_REGISTER_NUMBER): Likewise.
1721 (DEBUGGER_REGNO): Likewise.
1722 * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
1723 (DEBUGGER_REGNO): Likewise.
1724 * config/sh/linux.h (DBX_REGISTER_NUMBER): Likewise.
1725 (DEBUGGER_REGNO): Likewise.
1726 * config/sh/sh.h (DBX_REGISTER_NUMBER): Likewise.
1727 (DEBUGGER_REGNO): Likewise.
1728 (SH_DBX_REGISTER_NUMBER): Likewise.
1729 (SH_DEBUGGER_REGNO): Likewise.
1730 * config/visium/visium.h (DBX_REGISTER_NUMBER): Likewise.
1731 (DEBUGGER_REGNO): Likewise.
1732 * config/xtensa/elf.h (DBX_REGISTER_NUMBER): Likewise.
1733 (DEBUGGER_REGNO): Likewise.
1734 * config/xtensa/linux.h (DBX_REGISTER_NUMBER): Likewise.
1735 (DEBUGGER_REGNO): Likewise.
1736 * config/xtensa/uclinux.h (DBX_REGISTER_NUMBER): Likewise.
1737 (DEBUGGER_REGNO): Likewise.
1738 * config/xtensa/xtensa-protos.h (xtensa_dbx_regno): Likewise.
1739 (xtensa_debugger_regno): Likewise.
1740 * config/xtensa/xtensa.cc (xtensa_dbx_regno): Likewise.
1741 (xtensa_debugger_regno): Likewise.
1742 * config/xtensa/xtensa.h (DBX_REGISTER_NUMBER): Likewise.
1743 (DEBUGGER_REGNO): Likewise.
1744 * defaults.h (DBX_REGISTER_NUMBER): Likewise.
1745 (DEBUGGER_REGNO): Likewise.
1746 (DWARF_FRAME_REGNUM): Likewise.
1747 * doc/tm.texi: Likewise.
1748 * doc/tm.texi.in: Likewise.
1749 * dwarf2out.cc (dbx_reg_number): Likewise.
1750 (debugger_reg_number): Likewise.
1751 (reg_loc_descriptor): Likewise.
1752 (multiple_reg_loc_descriptor): Likewise.
1753 (mem_loc_descriptor): Likewise.
1754 * except.cc: Likewise.
1755
1756 2022-09-05 konglin1 <lingling.kong@intel.com>
1757
1758 PR target/106742
1759 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
1760 Handle V8BF mode.
1761 (expand_vec_perm_broadcast_1): Ditto.
1762 * config/i386/sse.md (avx512fmaskhalfmode): Add BF vector mode.
1763 (vec_set<mode>_0): Add @ to it.
1764 (@vec_set<mode>_0): Ditto.
1765 (vec_interleave_high<mode><mask_name>): Ditto.
1766 (@vec_interleave_high<mode><mask_name>): Ditto.
1767 (vec_interleave_low<mode><mask_name>): Ditto.
1768 (@vec_interleave_low<mode><mask_name>): Ditto.
1769 * config/i386/subst.md (SUBST_V): Add BF vector mode.
1770
1771 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
1772
1773 * value-range.cc (early_nan_resolve): Remove.
1774 (frange::intersect): Handle NANs.
1775
1776 2022-09-04 Aldy Hernandez <aldyh@redhat.com>
1777
1778 * value-range.cc (frange::union_): Do not drop properties when
1779 unioning a NAN with something else.
1780 (range_tests_signed_zeros): Add tests.
1781
1782 2022-09-04 Aldy Hernandez <aldyh@redhat.com>
1783
1784 * real.cc (encode_ieee_single): Use real_isdenormal.
1785 (encode_ieee_double): Same.
1786 (encode_ieee_extended): Same.
1787 (encode_ieee_quad): Same.
1788 (encode_ieee_half): Same.
1789 (encode_arm_bfloat_half): Same.
1790 * real.h (real_isdenormal): New.
1791
1792 2022-09-03 Aldy Hernandez <aldyh@redhat.com>
1793
1794 * value-range.cc (frange::singleton_p): Move NAN check to the top.
1795
1796 2022-09-03 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1797
1798 * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): Reference macro arguments.
1799
1800 2022-09-03 Jakub Jelinek <jakub@redhat.com>
1801
1802 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DOACROSS.
1803 (enum omp_clause_depend_kind): Remove OMP_CLAUSE_DEPEND_SOURCE
1804 and OMP_CLAUSE_DEPEND_SINK, add OMP_CLAUSE_DEPEND_INVALID.
1805 (enum omp_clause_doacross_kind): New type.
1806 (struct tree_omp_clause): Add subcode.doacross_kind member.
1807 * tree.h (OMP_CLAUSE_DEPEND_SINK_NEGATIVE): Remove.
1808 (OMP_CLAUSE_DOACROSS_KIND): Define.
1809 (OMP_CLAUSE_DOACROSS_SINK_NEGATIVE): Define.
1810 (OMP_CLAUSE_DOACROSS_DEPEND): Define.
1811 (OMP_CLAUSE_ORDERED_DOACROSS): Define.
1812 * tree.cc (omp_clause_num_ops, omp_clause_code_name): Add
1813 OMP_CLAUSE_DOACROSS entries.
1814 * tree-nested.cc (convert_nonlocal_omp_clauses,
1815 convert_local_omp_clauses): Handle OMP_CLAUSE_DOACROSS.
1816 * tree-pretty-print.cc (dump_omp_clause): Don't handle
1817 OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK. Handle
1818 OMP_CLAUSE_DOACROSS.
1819 * gimplify.cc (gimplify_omp_depend): Don't handle
1820 OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK.
1821 (gimplify_scan_omp_clauses): Likewise. Handle OMP_CLAUSE_DOACROSS.
1822 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_DOACROSS.
1823 (find_standalone_omp_ordered): New function.
1824 (gimplify_omp_for): When OMP_CLAUSE_ORDERED is present, search
1825 body for OMP_ORDERED with OMP_CLAUSE_DOACROSS and if found,
1826 set OMP_CLAUSE_ORDERED_DOACROSS.
1827 (gimplify_omp_ordered): Don't handle OMP_CLAUSE_DEPEND_SINK or
1828 OMP_CLAUSE_DEPEND_SOURCE, instead check OMP_CLAUSE_DOACROSS, adjust
1829 diagnostics that presence or absence of ordered clause parameter
1830 is irrelevant. Handle doacross(sink:omp_cur_iteration-1). Use
1831 actual user name of the clause - doacross or depend - in diagnostics.
1832 * omp-general.cc (omp_extract_for_data): Don't set fd->ordered
1833 if !OMP_CLAUSE_ORDERED_DOACROSS (t). If
1834 OMP_CLAUSE_ORDERED_DOACROSS (t) but !OMP_CLAUSE_ORDERED_EXPR (t),
1835 set fd->ordered to -1 and set it after the loop in that case to
1836 fd->collapse.
1837 * omp-low.cc (check_omp_nesting_restrictions): Don't handle
1838 OMP_CLAUSE_DEPEND_SOURCE nor OMP_CLAUSE_DEPEND_SINK, instead check
1839 OMP_CLAUSE_DOACROSS. Use actual user name of the clause - doacross
1840 or depend - in diagnostics. Diagnose mixing of stand-alone and
1841 block associated ordered constructs binding to the same loop.
1842 (lower_omp_ordered_clauses): Don't handle OMP_CLAUSE_DEPEND_SINK,
1843 instead handle OMP_CLAUSE_DOACROSS.
1844 (lower_omp_ordered): Look for OMP_CLAUSE_DOACROSS instead of
1845 OMP_CLAUSE_DEPEND.
1846 (lower_depend_clauses): Don't handle OMP_CLAUSE_DEPEND_SOURCE and
1847 OMP_CLAUSE_DEPEND_SINK.
1848 * omp-expand.cc (expand_omp_ordered_sink): Emit a sorry for
1849 doacross(sink:omp_cur_iteration-1).
1850 (expand_omp_ordered_source_sink): Use
1851 OMP_CLAUSE_DOACROSS_SINK_NEGATIVE instead of
1852 OMP_CLAUSE_DEPEND_SINK_NEGATIVE. Use actual user name of the clause
1853 - doacross or depend - in diagnostics.
1854 (expand_omp): Look for OMP_CLAUSE_DOACROSS clause instead of
1855 OMP_CLAUSE_DEPEND.
1856 (build_omp_regions_1): Likewise.
1857 (omp_make_gimple_edges): Likewise.
1858 * lto-streamer-out.cc (hash_tree): Handle OMP_CLAUSE_DOACROSS.
1859 * tree-streamer-in.cc (unpack_ts_omp_clause_value_fields): Likewise.
1860 * tree-streamer-out.cc (pack_ts_omp_clause_value_fields): Likewise.
1861
1862 2022-09-02 David Malcolm <dmalcolm@redhat.com>
1863
1864 PR c/90885
1865 * doc/invoke.texi (Warning Options): Add -Wxor-used-as-pow.
1866
1867 2022-09-02 Iain Buclaw <ibuclaw@gdcproject.org>
1868
1869 PR d/105659
1870 * config.gcc: Set tm_d_file to ${cpu_type}/${cpu_type}-d.h.
1871 * config/aarch64/aarch64-d.cc: Include tm_d.h.
1872 * config/aarch64/aarch64-protos.h (aarch64_d_target_versions): Move to
1873 config/aarch64/aarch64-d.h.
1874 (aarch64_d_register_target_info): Likewise.
1875 * config/aarch64/aarch64.h (TARGET_D_CPU_VERSIONS): Likewise.
1876 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
1877 * config/arm/arm-d.cc: Include tm_d.h and arm-protos.h instead of
1878 tm_p.h.
1879 * config/arm/arm-protos.h (arm_d_target_versions): Move to
1880 config/arm/arm-d.h.
1881 (arm_d_register_target_info): Likewise.
1882 * config/arm/arm.h (TARGET_D_CPU_VERSIONS): Likewise.
1883 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
1884 * config/default-d.cc: Remove memmodel.h include.
1885 * config/freebsd-d.cc: Include tm_d.h instead of tm_p.h.
1886 * config/glibc-d.cc: Likewise.
1887 * config/i386/i386-d.cc: Include tm_d.h.
1888 * config/i386/i386-protos.h (ix86_d_target_versions): Move to
1889 config/i386/i386-d.h.
1890 (ix86_d_register_target_info): Likewise.
1891 (ix86_d_has_stdcall_convention): Likewise.
1892 * config/i386/i386.h (TARGET_D_CPU_VERSIONS): Likewise.
1893 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
1894 (TARGET_D_HAS_STDCALL_CONVENTION): Likewise.
1895 * config/i386/winnt-d.cc: Include tm_d.h instead of tm_p.h.
1896 * config/mips/mips-d.cc: Include tm_d.h.
1897 * config/mips/mips-protos.h (mips_d_target_versions): Move to
1898 config/mips/mips-d.h.
1899 (mips_d_register_target_info): Likewise.
1900 * config/mips/mips.h (TARGET_D_CPU_VERSIONS): Likewise.
1901 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
1902 * config/netbsd-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
1903 * config/openbsd-d.cc: Likewise.
1904 * config/pa/pa-d.cc: Include tm_d.h.
1905 * config/pa/pa-protos.h (pa_d_target_versions): Move to
1906 config/pa/pa-d.h.
1907 (pa_d_register_target_info): Likewise.
1908 * config/pa/pa.h (TARGET_D_CPU_VERSIONS): Likewise.
1909 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
1910 * config/riscv/riscv-d.cc: Include tm_d.h.
1911 * config/riscv/riscv-protos.h (riscv_d_target_versions): Move to
1912 config/riscv/riscv-d.h.
1913 (riscv_d_register_target_info): Likewise.
1914 * config/riscv/riscv.h (TARGET_D_CPU_VERSIONS): Likewise.
1915 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
1916 * config/rs6000/rs6000-d.cc: Include tm_d.h.
1917 * config/rs6000/rs6000-protos.h (rs6000_d_target_versions): Move to
1918 config/rs6000/rs6000-d.h.
1919 (rs6000_d_register_target_info): Likewise.
1920 * config/rs6000/rs6000.h (TARGET_D_CPU_VERSIONS) Likewise.:
1921 (TARGET_D_REGISTER_CPU_TARGET_INFO) Likewise.:
1922 * config/s390/s390-d.cc: Include tm_d.h.
1923 * config/s390/s390-protos.h (s390_d_target_versions): Move to
1924 config/s390/s390-d.h.
1925 (s390_d_register_target_info): Likewise.
1926 * config/s390/s390.h (TARGET_D_CPU_VERSIONS): Likewise.
1927 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
1928 * config/sol2-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
1929 * config/sparc/sparc-d.cc: Include tm_d.h.
1930 * config/sparc/sparc-protos.h (sparc_d_target_versions): Move to
1931 config/sparc/sparc-d.h.
1932 (sparc_d_register_target_info): Likewise.
1933 * config/sparc/sparc.h (TARGET_D_CPU_VERSIONS): Likewise.
1934 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
1935 * configure: Regenerate.
1936 * configure.ac (tm_d_file): Remove defaults.h.
1937 (tm_d_include_list): Remove options.h and insn-constants.h.
1938 * config/aarch64/aarch64-d.h: New file.
1939 * config/arm/arm-d.h: New file.
1940 * config/i386/i386-d.h: New file.
1941 * config/mips/mips-d.h: New file.
1942 * config/pa/pa-d.h: New file.
1943 * config/riscv/riscv-d.h: New file.
1944 * config/rs6000/rs6000-d.h: New file.
1945 * config/s390/s390-d.h: New file.
1946 * config/sparc/sparc-d.h: New file.
1947
1948 2022-09-02 Aldy Hernandez <aldyh@redhat.com>
1949
1950 * builtins.cc (fold_builtin_inf): Convert use of real_info to dconstinf.
1951 (fold_builtin_fpclassify): Same.
1952 * fold-const-call.cc (fold_const_call_cc): Same.
1953 * match.pd: Same.
1954 * omp-low.cc (omp_reduction_init_op): Same.
1955 * realmpfr.cc (real_from_mpfr): Same.
1956 * tree.cc (build_complex_inf): Same.
1957
1958 2022-09-02 Peter Bergner <bergner@linux.ibm.com>
1959
1960 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin): Use
1961 NOP_EXPR for MMA pointer casting.
1962
1963 2022-09-02 Richard Sandiford <richard.sandiford@arm.com>
1964
1965 * tree-vect-slp.cc (vect_optimize_slp_pass::internal_node_cost):
1966 Reduce the fallback cost to 1. Only use it if the number of
1967 input lanes is equal to the number of output lanes.
1968
1969 2022-09-02 Richard Sandiford <richard.sandiford@arm.com>
1970
1971 PR tree-optimization/106787
1972 * tree-vect-slp.cc (vect_map_to_instance): New function, split out
1973 from...
1974 (vect_bb_partition_graph_r): ...here. Replace the visited set
1975 with a map from nodes to instances. Ensure that a node only
1976 appears in one partition.
1977 (vect_bb_partition_graph): Update accordingly.
1978
1979 2022-09-02 Richard Biener <rguenther@suse.de>
1980
1981 * timevar.def (TV_TREE_RPO_VN): New.
1982 * tree-ssa-sccvn.h (do_rpo_vn): Remove one overload.
1983 * tree-ssa-sccvn.cc (do_rpo_vn_1): Rename the worker.
1984 (do_rpo_vn): Unify the public API, track with TV_TREE_RPO_VN.
1985 (pass_fre::execute): Adjust.
1986 * tree-ssa-uninit.cc (execute_early_warn_uninitialized): Adjust.
1987
1988 2022-09-02 Richard Biener <rguenther@suse.de>
1989
1990 PR tree-optimization/106809
1991 * tree-ssa-sccvn.cc (dominaged_by_p_w_unex): Check we have
1992 more than one successor before doing extra work.
1993
1994 2022-09-02 Kito Cheng <kito.cheng@sifive.com>
1995
1996 * common/config/riscv/riscv-common.cc: Include <vector>.
1997 (struct riscv_multi_lib_info_t): New.
1998 (riscv_subset_list::match_score): Ditto.
1999 (find_last_appear_switch): Ditto.
2000 (prefixed_with): Ditto.
2001 (struct multi_lib_info_t): Ditto.
2002 (riscv_current_arch_str): Ditto.
2003 (riscv_current_abi_str): Ditto.
2004 (riscv_multi_lib_info_t::parse): Ditto.
2005 (riscv_check_cond): Ditto.
2006 (riscv_check_conds): Ditto.
2007 (riscv_compute_multilib): Ditto.
2008 (TARGET_COMPUTE_MULTILIB): Defined.
2009 * config/riscv/elf.h (LIB_SPEC): Call riscv_multi_lib_check if
2010 doing link.
2011 (RISCV_USE_CUSTOMISED_MULTI_LIB): New.
2012 * config/riscv/riscv.h (riscv_multi_lib_check): New.
2013 (EXTRA_SPEC_FUNCTIONS): Add riscv_multi_lib_check.
2014 * config/riscv/riscv-subset.h (riscv_subset_list::match_score): New.
2015
2016 2022-09-02 Kito Cheng <kito.cheng@sifive.com>
2017
2018 * common/common-target.def (compute_multilib): New.
2019 * common/common-targhooks.h (default_compute_multilib): New.
2020 * common/common-targhooks.cc (default_compute_multilib): New.
2021 * doc/tm.texi.in (TARGET_COMPUTE_MULTILIB): New.
2022 * doc/tm.texi: Regen.
2023 * gcc.cc: Include common/common-target.h.
2024 (set_multilib_dir) Call targetm_common.compute_multilib.
2025 (SWITCH_LIVE): Move to opts.h.
2026 (SWITCH_FALSE): Ditto.
2027 (SWITCH_IGNORE): Ditto.
2028 (SWITCH_IGNORE_PERMANENTLY): Ditto.
2029 (SWITCH_KEEP_FOR_GCC): Ditto.
2030 (struct switchstr): Ditto.
2031 * opts.h (SWITCH_LIVE): Move from gcc.c.
2032 (SWITCH_FALSE): Ditto.
2033 (SWITCH_IGNORE): Ditto.
2034 (SWITCH_IGNORE_PERMANENTLY): Ditto.
2035 (SWITCH_KEEP_FOR_GCC): Ditto.
2036 (struct switchstr): Ditto.
2037
2038 2022-09-02 Martin Liska <mliska@suse.cz>
2039
2040 * config/pdp11/pdp11.h (PREFERRED_DEBUGGING_TYPE): Disable
2041 debugging format.
2042
2043 2022-09-02 Martin Liska <mliska@suse.cz>
2044
2045 * Makefile.in: Remove -gstabs option support, DBX-related
2046 macros and DBX debugging info support.
2047 * collect2.cc (scan_prog_file): Likewise.
2048 * common.opt: Likewise.
2049 * config.gcc: Likewise.
2050 * config.in: Likewise.
2051 * config/aarch64/aarch64-elf.h (DBX_DEBUGGING_INFO): Likewise.
2052 * config/alpha/alpha.cc: Likewise.
2053 * config/alpha/elf.h (ASM_SPEC): Likewise.
2054 * config/arc/arc.h (DBX_DEBUGGING_INFO): Likewise.
2055 (DBX_CONTIN_LENGTH): Likewise.
2056 * config/arm/aout.h (DBX_DEBUGGING_INFO): Likewise.
2057 (DBX_CONTIN_LENGTH): Likewise.
2058 * config/arm/netbsd-elf.h (DBX_CONTIN_LENGTH): Likewise.
2059 * config/darwin.h (DSYMUTIL_SPEC): Likewise.
2060 (ASM_DEBUG_SPEC): Likewise.
2061 (DBX_DEBUGGING_INFO): Likewise.
2062 (DBX_USE_BINCL): Likewise.
2063 (DBX_CONTIN_LENGTH): Likewise.
2064 (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
2065 * config/epiphany/epiphany.h (DBX_DEBUGGING_INFO): Likewise.
2066 (DBX_CONTIN_LENGTH): Likewise.
2067 * config/i386/bsd.h (DBX_NO_XREFS): Likewise.
2068 (DBX_CONTIN_LENGTH): Likewise.
2069 * config/i386/gas.h (DBX_NO_XREFS): Likewise.
2070 (DBX_CONTIN_LENGTH): Likewise.
2071 * config/ia64/ia64.h: Likewise.
2072 * config/ia64/sysv4.h (DBX_DEBUGGING_INFO): Likewise.
2073 * config/m68k/linux.h (DBX_CONTIN_LENGTH): Likewise.
2074 * config/m68k/openbsd.h (DBX_DEBUGGING_INFO): Likewise.
2075 (DBX_CONTIN_LENGTH): Likewise.
2076 (DBX_CONTIN_CHAR): Likewise.
2077 * config/mips/mips.cc (mips_output_filename): Likewise.
2078 (mips_option_override): Likewise.
2079 * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Likewise.
2080 (DBX_DEBUGGING_INFO): Likewise.
2081 (DBX_CONTIN_LENGTH): Likewise.
2082 (DBX_REGISTER_NUMBER): Likewise.
2083 (GP_DBX_FIRST): Likewise.
2084 (FP_DBX_FIRST): Likewise.
2085 (MD_DBX_FIRST): Likewise.
2086 * config/nvptx/nvptx.cc: Likewise.
2087 * config/openbsd.h (DBX_NO_XREFS): Likewise.
2088 * config/pa/pa-64.h (DBX_DEBUGGING_INFO): Likewise.
2089 * config/pa/pa.h (ASSEMBLER_DIALECT): Likewise.
2090 (DBX_CONTIN_LENGTH): Likewise.
2091 * config/pa/som.h (PREFERRED_DEBUGGING_TYPE): Likewise.
2092 (DBX_USE_BINCL): Likewise.
2093 (DBX_LINES_FUNCTION_RELATIVE): Likewise.
2094 (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
2095 * config/pdp11/pdp11.cc: Likewise.
2096 * config/pdp11/pdp11.h (DBX_DEBUGGING_INFO): Likewise.
2097 (PREFERRED_DEBUGGING_TYPE): Likewise.
2098 (DBX_CONTIN_LENGTH): Likewise.
2099 * config/rs6000/rs6000-builtin.cc: Likewise.
2100 * config/rs6000/rs6000-call.cc: Likewise.
2101 * config/rs6000/rs6000-logue.cc (defined): Likewise.
2102 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
2103 (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
2104 (rs6000_xcoff_declare_function_name): Likewise.
2105 * config/rs6000/sysv4.h (DBX_DEBUGGING_INFO): Likewise.
2106 (DBX_FUNCTION_FIRST): Likewise.
2107 * config/rs6000/xcoff.h (XCOFF_DEBUGGING_INFO): Likewise.
2108 * config/rx/rx.h (DBX_DEBUGGING_INFO): Likewise.
2109 * config/sh/elf.h (DBX_LINES_FUNCTION_RELATIVE): Likewise.
2110 (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
2111 * config/sol2.h (NO_DBX_BNSYM_ENSYM): Likewise.
2112 * config/sparc/freebsd.h (DBX_CONTIN_CHAR): Likewise.
2113 * config/sparc/netbsd-elf.h (DBX_CONTIN_CHAR): Likewise.
2114 * config/sparc/sparc.h (DBX_CONTIN_LENGTH): Likewise.
2115 * config/vax/vax.cc (vax_file_start): Likewise.
2116 * config/vax/vax.h (DBX_DEBUGGING_INFO): Likewise.
2117 (DBX_CONTIN_LENGTH): Likewise.
2118 (DBX_CONTIN_CHAR): Likewise.
2119 (DBX_NO_XREFS): Likewise.
2120 (DBX_STATIC_STAB_DATA_SECTION): Likewise.
2121 * config/vx-common.h (DBX_DEBUGGING_INFO): Likewise.
2122 (XCOFF_DEBUGGING_INFO): Likewise.
2123 * configure: Regenerate. Likewise.
2124 * configure.ac: Likewise.
2125 * debug.h: Likewise.
2126 * doc/install.texi: Likewise.
2127 * doc/invoke.texi: Likewise.
2128 * doc/passes.texi: Likewise.
2129 * doc/tm.texi: Likewise.
2130 * doc/tm.texi.in: Likewise.
2131 * dwarf2asm.cc (XCOFF_DEBUGGING_INFO): Likewise.
2132 (dw2_asm_output_nstring): Likewise.
2133 (USE_LINKONCE_INDIRECT): Likewise.
2134 * dwarf2out.cc (XCOFF_DEBUGGING_INFO): Likewise.
2135 (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
2136 (output_fde): Likewise.
2137 (output_call_frame_info): Likewise.
2138 (have_macinfo): Likewise.
2139 (add_AT_loc_list): Likewise.
2140 (add_AT_view_list): Likewise.
2141 (output_compilation_unit_header): Likewise.
2142 (output_pubnames): Likewise.
2143 (output_aranges): Likewise.
2144 (output_line_info): Likewise.
2145 (output_macinfo): Likewise.
2146 (dwarf2out_finish): Likewise.
2147 (dwarf2out_early_finish): Likewise.
2148 * final.cc (final_scan_insn_1): Likewise.
2149 (rest_of_handle_final): Likewise.
2150 * flag-types.h (enum debug_info_type): Likewise.
2151 (DBX_DEBUG): Likewise.
2152 (XCOFF_DEBUG): Likewise.
2153 * function.cc (defined): Likewise.
2154 * gcc.cc (defined): Likewise.
2155 (ASM_DEBUG_SPEC): Likewise.
2156 (ASM_DEBUG_OPTION_SPEC): Likewise.
2157 * opts.cc (common_handle_option): Likewise.
2158 (set_debug_level): Likewise.
2159 * system.h (fancy_abort): Likewise.
2160 * target-def.h (TARGET_ASM_CONSTRUCTOR): Likewise.
2161 (TARGET_ASM_DESTRUCTOR): Likewise.
2162 * toplev.cc (defined): Likewise.
2163 * varasm.cc: Likewise.
2164 * config/dbxcoff.h: Removed.
2165 * config/dbxelf.h: Removed.
2166 * dbxout.cc: Removed.
2167 * dbxout.h: Removed.
2168 * gstab.h: Removed.
2169 * stab.def: Removed.
2170 * xcoffout.cc: Removed.
2171 * xcoffout.h: Removed.
2172
2173 2022-09-02 Simon Rainer <gcc.gnu@vvalter.com>
2174
2175 PR ipa/106627
2176 * config/i386/i386-features.cc (ix86_get_function_versions_dispatcher):
2177 Set TREE_NOTHROW correctly for dispatcher declaration.
2178 * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
2179 Likewise.
2180
2181 2022-09-01 Tamar Christina <tamar.christina@arm.com>
2182
2183 PR other/106782
2184 * config/aarch64/aarch64.cc
2185 (aarch64_vector_costs::prefer_unrolled_loop): Replace %u with
2186 HOST_WIDE_INT_PRINT_UNSIGNED.
2187
2188 2022-09-01 Richard Sandiford <richard.sandiford@arm.com>
2189
2190 * tree-vect-slp.cc (vect_build_slp_tree_2): When building a
2191 VEC_PERM_EXPR of an existing vector, set the SLP_TREE_LANES
2192 to the number of vector elements, if that's a known constant.
2193 (vect_optimize_slp_pass::is_compatible_layout): Remove associated
2194 comment about zero SLP_TREE_LANES.
2195 (vect_optimize_slp_pass::start_choosing_layouts): Iterate over
2196 all partition members when looking for potential layouts.
2197 Handle existing permutes of fixed-length vectors.
2198
2199 2022-09-01 Uroš Bizjak <ubizjak@gmail.com>
2200
2201 PR target/106707
2202 * config/i386/i386.md (moves to/from AX_REG into xchg peephole2):
2203 Do not convert a move pattern where both operands are AX_REG.
2204
2205 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
2206
2207 * range-op-float.cc (build_le): Convert to dconst*inf.
2208 (build_ge): Same.
2209 * value-range.cc (frange::set_signbit): Same.
2210 (frange::normalize_kind): Same.
2211 (range_tests_floats): Same.
2212 * value-range.h (vrp_val_max): Same.
2213 (vrp_val_min): Same.
2214 (frange::set_varying): Same.
2215
2216 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
2217
2218 * emit-rtl.cc (init_emit_once): Initialize dconstinf and
2219 dconstninf.
2220 * real.h: Add dconstinf and dconstninf.
2221
2222 2022-09-01 Richard Biener <rguenther@suse.de>
2223
2224 * gimple-predicate-analysis.cc (compute_control_dep_chain):
2225 Remove cycle detection, instead avoid walking backedges.
2226
2227 2022-09-01 Richard Biener <rguenther@suse.de>
2228
2229 * gimple-predicate-analysis.cc (compute_control_dep_chain):
2230 New wrapping overload.
2231 (uninit_analysis::init_use_preds): Simplify.
2232 (uninit_analysis::init_from_phi_def): Likewise.
2233
2234 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
2235
2236 * gimple-range-fold.cc
2237 (fold_using_range::range_of_builtin_int_call): Add case for
2238 CFN_BUILT_IN_SIGNBIT.
2239
2240 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
2241
2242 * range-op-float.cc (foperator_equal::op1_range): Do not copy sign
2243 bit.
2244 (foperator_not_equal::op1_range): Same.
2245 * value-query.cc (range_query::get_tree_range): Set sign bit.
2246 * value-range-pretty-print.cc (vrange_printer::visit): Dump sign bit.
2247 * value-range.cc (frange::set_signbit): New.
2248 (frange::set): Adjust for sign bit.
2249 (frange::normalize_kind): Same.
2250 (frange::union_): Remove useless comment.
2251 (frange::intersect): Same.
2252 (frange::contains_p): Adjust for sign bit.
2253 (frange::singleton_p): Same.
2254 (frange::verify_range): Same.
2255 (range_tests_signbit): New tests.
2256 (range_tests_floats): Call range_tests_signbit.
2257 * value-range.h (class frange_props): Add signbit
2258 (class frange): Same.
2259
2260 2022-09-01 Jakub Jelinek <jakub@redhat.com>
2261
2262 PR other/106782
2263 * dumpfile.h (dump_printf_loc): Use ATTRIBUTE_GCC_DUMP_PRINTF (3, 4)
2264 instead of ATTRIBUTE_GCC_DUMP_PRINTF (3, 0).
2265 * tree-parloops.cc (parloops_is_slp_reduction): Cast pointers to
2266 derived types of gimple to gimple * to avoid -Wformat warnings.
2267 * tree-vect-loop-manip.cc (vect_set_loop_condition,
2268 vect_update_ivs_after_vectorizer): Likewise.
2269 * tree-vect-stmts.cc (vectorizable_load): Likewise.
2270 * tree-vect-patterns.cc (vect_split_statement,
2271 vect_recog_mulhs_pattern, vect_recog_average_pattern,
2272 vect_determine_precisions_from_range,
2273 vect_determine_precisions_from_users): Likewise.
2274 * gimple-loop-versioning.cc
2275 (loop_versioning::analyze_term_using_scevs): Likewise.
2276 * tree-vect-slp.cc (vect_build_slp_tree_1): Likewise.
2277 (vect_build_slp_tree): Cast slp_tree to void * to avoid
2278 -Wformat warnings.
2279 (optimize_load_redistribution_1, vect_match_slp_patterns,
2280 vect_build_slp_instance, vect_optimize_slp_pass::materialize,
2281 vect_optimize_slp_pass::dump, vect_slp_convert_to_external,
2282 vect_slp_analyze_node_operations, vect_bb_partition_graph): Likewise.
2283 (vect_print_slp_tree): Likewise. Also use
2284 HOST_WIDE_INT_PRINT_UNSIGNED instead of %u.
2285 * tree-vect-loop.cc (vect_determine_vectorization_factor,
2286 vect_analyze_scalar_cycles_1, vect_analyze_loop_operations,
2287 vectorizable_induction, vect_transform_loop): Cast pointers to derived
2288 types of gimple to gimple * to avoid -Wformat warnings.
2289 (vect_analyze_loop_2): Cast slp_tree to void * to avoid
2290 -Wformat warnings.
2291 (vect_estimate_min_profitable_iters): Use HOST_WIDE_INT_PRINT_UNSIGNED
2292 instead of %d.
2293 * tree-vect-slp-patterns.cc (vect_pattern_validate_optab): Use %G
2294 instead of %T and STMT_VINFO_STMT (SLP_TREE_REPRESENTATIVE (node))
2295 instead of SLP_TREE_DEF_TYPE (node).
2296
2297 2022-09-01 Jakub Jelinek <jakub@redhat.com>
2298
2299 PR c++/106655
2300 * doc/invoke.texi (-Winvalid-utf8): Document it.
2301
2302 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
2303
2304 PR tree-optimization/106785
2305 * value-range.cc (range_tests_nan): Adjust tests for !HONOR_NANS.
2306 (range_tests_floats): Same.
2307
2308 2022-09-01 konglin1 <lingling.kong@intel.com>
2309
2310 * tree-if-conv.cc (is_cond_scalar_reduction): Add MULT_EXPR
2311 recognition.
2312
2313 2022-09-01 Peter Bergner <bergner@linux.ibm.com>
2314
2315 PR target/101322
2316 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin):
2317 Enforce the use of a valid MMA pointer type.
2318
2319 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
2320
2321 * config/riscv/riscv.cc (riscv_conditional_register_usage): Add vector
2322 registers.
2323
2324 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
2325
2326 * config/riscv/riscv.cc (riscv_const_insns): Add cost of poly_int.
2327 (riscv_output_move): Add csrr vlenb assembly.
2328 * config/riscv/riscv.md (move_type): Add csrr vlenb type.
2329 (ext): New attribute.
2330 (ext_enabled): Ditto.
2331 (enabled): Ditto.
2332
2333 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
2334
2335 * config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): Add
2336 "vr" constraint.
2337 (TARGET_VECTOR ? VD_REGS : NO_REGS): Add "vd" constraint.
2338 (TARGET_VECTOR ? VM_REGS : NO_REGS): Add "vm" constraint.
2339 (vp): Add poly constraint.
2340
2341 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
2342
2343 * config/riscv/riscv.h (enum reg_class): Change vype to vtype.
2344
2345 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
2346
2347 * config/riscv/riscv.cc (riscv_convert_vector_bits): Change
2348 configuration according to TARGET_MIN_VLEN.
2349 * config/riscv/riscv.h (UNITS_PER_FP_REG): Fix comment.
2350
2351 2022-08-31 Martin Liska <mliska@suse.cz>
2352
2353 * config.build: Remove deprecated ports.
2354 * config.gcc: Likewise.
2355 * config.host: Likewise.
2356 * configure.ac: Likewise.
2357 * configure: Regenerate.
2358 * config/pa/pa-hpux10.h: Removed.
2359 * config/pa/pa-hpux10.opt: Removed.
2360 * config/pa/t-dce-thr: Removed.
2361
2362 2022-08-31 Martin Liska <mliska@suse.cz>
2363
2364 * Makefile.in: Always install limits.h and syslimits.h to
2365 include folder.
2366 * configure.ac: Assign STMP_FIXINC blank if
2367 --disable-fixincludes is used.
2368 * configure: Regenerate.
2369
2370 2022-08-31 Richard Biener <rguenther@suse.de>
2371
2372 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
2373 Assert the guard_bb isn't empty and has more than one successor.
2374 Drop appropriate parts of the predicate when an edge fails to
2375 register a predicate.
2376 (predicate::dump): Dump empty predicate as TRUE.
2377
2378 2022-08-31 Richard Biener <rguenther@suse.de>
2379
2380 PR tree-optimization/90994
2381 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
2382 Ignore exceptional control flow and skip the edge for the purpose of
2383 predicate generation also for non-calls.
2384
2385 2022-08-31 Aldy Hernandez <aldyh@redhat.com>
2386
2387 * value-range-storage.cc (frange_storage_slot::set_frange): Save
2388 endpoints.
2389 (frange_storage_slot::get_frange): Restore endpoints.
2390 * value-range-storage.h (class frange_storage_slot): Add endpoint
2391 fields.
2392
2393 2022-08-31 Martin Liska <mliska@suse.cz>
2394
2395 PR tree-optimization/106789
2396 * range-op-float.cc (default_frelop_fold_range): Remove the
2397 function.
2398
2399 2022-08-31 Martin Liska <mliska@suse.cz>
2400
2401 * value-range.h: Add more override keywords.
2402
2403 2022-08-31 Martin Liska <mliska@suse.cz>
2404
2405 * value-range.h: Add override.
2406
2407 2022-08-31 Richard Biener <rguenther@suse.de>
2408
2409 PR tree-optimization/65244
2410 * gimple-predicate-analysis.h (predicate::init_from_control_deps):
2411 Add argument to specify whether the predicate is for the USE.
2412 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
2413 Also include predicates effective fallthru control edges when
2414 the predicate is for the USE.
2415
2416 2022-08-31 Richard Biener <rguenther@suse.de>
2417
2418 PR tree-optimization/73550
2419 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
2420 Sanitize debug dumping. Handle case labels with a CASE_HIGH.
2421 (predicate::dump): Adjust for better readability.
2422
2423 2022-08-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2424 Jakub Jelinek <jakub@redhat.com>
2425
2426 * omp-simd-clone.cc (simd_clone_adjust_return_type,
2427 simd_clone_adjust_argument_types): Use known_eq (veclen, 0U)
2428 instead of known_eq (veclen, 0) to avoid -Wsign-compare warnings.
2429
2430 2022-08-31 Richard Sandiford <richard.sandiford@arm.com>
2431
2432 * tree-vect-slp.cc (vect_optimize_slp_pass::dump): Remove bogus
2433 argument.
2434
2435 2022-08-31 zhongjuzhe <juzhe.zhong@rivai.ai>
2436
2437 * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Simply
2438 initialize const_vf to 0.
2439
2440 2022-08-31 Martin Liska <mliska@suse.cz>
2441
2442 * config.gcc: Remove cr16.
2443
2444 2022-08-30 Martin Jambor <mjambor@suse.cz>
2445
2446 * vec.h (array_slice): Add constructors for non-const reference to
2447 heap vector and pointers to heap vectors.
2448
2449 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
2450
2451 * value-range.cc (early_nan_resolve): Change comment.
2452 (frange::union_): Handle union when one side is a NAN.
2453 (range_tests_nan): Add tests for NAN union.
2454
2455 2022-08-30 Andrew Stubbs <ams@codesourcery.com>
2456
2457 * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen): New.
2458 (gcn_simd_clone_adjust): New.
2459 (gcn_simd_clone_usable): New.
2460 (TARGET_SIMD_CLONE_ADJUST): New.
2461 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New.
2462 (TARGET_SIMD_CLONE_USABLE): New.
2463
2464 2022-08-30 Andrew Stubbs <ams@codesourcery.com>
2465
2466 * doc/tm.texi: Regenerate.
2467 * omp-simd-clone.cc (simd_clone_adjust_return_type): Allow zero
2468 vecsize.
2469 (simd_clone_adjust_argument_types): Likewise.
2470 * target.def (compute_vecsize_and_simdlen): Document the new
2471 vecsize_int and vecsize_float semantics.
2472
2473 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
2474
2475 * expmed.cc (store_bit_field_1): Fix byte offset calculation
2476 for undefined structures.
2477
2478 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
2479
2480 * params.opt (-param=vect-max-layout-candidates=): New parameter.
2481 * doc/invoke.texi (vect-max-layout-candidates): Document it.
2482 * tree-vectorizer.h (auto_lane_permutation_t): New typedef.
2483 (auto_load_permutation_t): Likewise.
2484 * tree-vect-slp.cc (vect_slp_node_weight): New function.
2485 (slpg_layout_cost): New class.
2486 (slpg_vertex): Replace perm_in and perm_out with partition,
2487 out_degree, weight and out_weight.
2488 (slpg_partition_info, slpg_partition_layout_costs): New classes.
2489 (vect_optimize_slp_pass): Likewise, cannibalizing some part of
2490 the previous vect_optimize_slp.
2491 (vect_optimize_slp): Use it.
2492
2493 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
2494
2495 * hash-traits.h (vec_hash_base): New class.
2496 (vec_free_hash_base): Likewise.
2497
2498 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
2499
2500 * hash-traits.h (int_hash_base): New struct, split out from...
2501 (int_hash): ...this class, which now inherits from int_hash_base.
2502 * hash-map-traits.h (unbounded_hashmap_traits): Take a template
2503 parameter for the key that provides hash and equality functions.
2504 (unbounded_int_hashmap_traits): Turn into a type alias of
2505 unbounded_hashmap_traits.
2506
2507 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
2508
2509 * graphds.cc (graphds_scc): Add a pass-back parameter for the
2510 final node order.
2511 * graphds.h (graphds_scc): Update prototype accordingly.
2512
2513 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
2514
2515 * tree-vect-slp.cc (vect_transform_slp_perm_load_1): Split out from...
2516 (vect_transform_slp_perm_load): ...here. Use SLP_TREE_VECTYPE instead
2517 of STMT_VINFO_VECTYPE.
2518
2519 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
2520
2521 * tree-vect-slp.cc (vectorizable_slp_permutation_1): Split out from...
2522 (vectorizable_slp_permutation): ...here.
2523
2524 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
2525
2526 * tree-vect-stmts.cc (get_related_vectype_for_scalar_type): Check
2527 that the requested number of units is interoperable with the requested
2528 prevailing mode.
2529
2530 2022-08-30 Martin Liska <mliska@suse.cz>
2531
2532 * config.gcc: Remove the port.
2533 * config/m32c/rtems.h: Removed.
2534
2535 2022-08-30 Richard Biener <rguenther@suse.de>
2536
2537 PR tree-optimization/73550
2538 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
2539 Do not apply MAX_NUM_CHAINS again.
2540
2541 2022-08-30 Richard Biener <rguenther@suse.de>
2542
2543 * gimple-predicate-analysis.cc (format_edge_vec): Dump
2544 both source and destination.
2545 (dump_dep_chains): Remove.
2546 (uninit_analysis::init_use_preds): Remove redundant
2547 dumping of chains.
2548
2549 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
2550
2551 * value-range-storage.cc (frange_storage_slot::get_frange): Use
2552 frange_nan.
2553 * value-range.cc (frange::set_nan): New.
2554 (frange_nan): Move to header file.
2555 (range_tests_nan): Adjust frange_nan callers to pass type.
2556 New test.
2557 * value-range.h (FRANGE_PROP_ACCESSOR): Remove.
2558 (frange_nan): New.
2559
2560 2022-08-30 Richard Biener <rguenther@suse.de>
2561
2562 PR tree-optimization/67196
2563 * gimple-predicate-analysis.cc (uninit_analysis::is_use_guarded):
2564 Simplify and normalize use prediates before first use.
2565
2566 2022-08-30 Richard Biener <rguenther@suse.de>
2567
2568 * gimple-predicate-analysis.cc (dump_pred_chain): Fix
2569 parentizing and AND prepending.
2570 (predicate::dump): Do not dump the GENERIC expanded
2571 predicate, properly parentize and prepend ORs to the
2572 piecewise predicate dump.
2573 (build_pred_expr): Remove.
2574
2575 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
2576
2577 * range-op-float.cc (finite_operand_p): New.
2578 (build_le): New.
2579 (build_lt): New.
2580 (build_ge): New.
2581 (build_gt): New.
2582 (foperator_equal::fold_range): New implementation with endpoints.
2583 (foperator_equal::op1_range): Same.
2584 (foperator_not_equal::fold_range): Same.
2585 (foperator_not_equal::op1_range): Same.
2586 (foperator_lt::fold_range): Same.
2587 (foperator_lt::op1_range): Same.
2588 (foperator_lt::op2_range): Same.
2589 (foperator_le::fold_range): Same.
2590 (foperator_le::op1_range): Same.
2591 (foperator_le::op2_range): Same.
2592 (foperator_gt::fold_range): Same.
2593 (foperator_gt::op1_range): Same.
2594 (foperator_gt::op2_range): Same.
2595 (foperator_ge::fold_range): Same.
2596 (foperator_ge::op1_range): Same.
2597 (foperator_ge::op2_range): Same.
2598
2599 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
2600
2601 * range-op-float.cc (frange_set_nan): New.
2602 (frange_drop_inf): New.
2603 (frange_drop_ninf): New.
2604 (foperator_equal::op1_range): Adjust for endpoints.
2605 (foperator_lt::op1_range): Same.
2606 (foperator_lt::op2_range): Same.
2607 (foperator_gt::op1_range): Same.
2608 (foperator_gt::op2_range): Same.
2609 (foperator_unordered::op1_range): Same.
2610 * value-query.cc (range_query::get_tree_range): Same.
2611 * value-range-pretty-print.cc (vrange_printer::visit): Same.
2612 * value-range-storage.cc (frange_storage_slot::get_frange): Same.
2613 * value-range.cc (frange::set): Same.
2614 (frange::normalize_kind): Same.
2615 (frange::union_): Same.
2616 (frange::intersect): Same.
2617 (frange::operator=): Same.
2618 (early_nan_resolve): New.
2619 (frange::contains_p): New.
2620 (frange::singleton_p): New.
2621 (frange::set_nonzero): New.
2622 (frange::nonzero_p): New.
2623 (frange::set_zero): New.
2624 (frange::zero_p): New.
2625 (frange::set_nonnegative): New.
2626 (frange_float): New.
2627 (frange_nan): New.
2628 (range_tests_nan): New.
2629 (range_tests_signed_zeros): New.
2630 (range_tests_floats): New.
2631 (range_tests): New.
2632 * value-range.h (frange::lower_bound): New.
2633 (frange::upper_bound): New.
2634 (vrp_val_min): Use real_inf with a sign instead of negating inf.
2635 (frange::frange): New.
2636 (frange::set_varying): Adjust for endpoints.
2637 (real_max_representable): New.
2638 (real_min_representable): New.
2639
2640 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
2641
2642 * match.pd ((cmp @0 zerop) real_zerop (negate@1 @0)): Add variant
2643 for real zero.
2644
2645 2022-08-30 Martin Liska <mliska@suse.cz>
2646
2647 * config/s390/s390.cc (s390_rtx_costs): Use proper type as
2648 argument.
2649
2650 2022-08-30 Richard Biener <rguenther@suse.de>
2651
2652 * tree-ssa-uninit.cc (warn_uninitialized_vars): Pre-compute
2653 the set of fallthru reachable blocks from function entry
2654 and use that to determine wlims.always_executed.
2655
2656 2022-08-30 Richard Biener <rguenther@suse.de>
2657
2658 PR tree-optimization/56654
2659 * tree-ssa-uninit.cc (cand_cmp): New.
2660 (find_uninit_use): First process all PHIs and collect candidate
2661 stmts, then sort those after RPO.
2662 (warn_uninitialized_phi): Pass on bb_to_rpo.
2663 (execute_late_warn_uninitialized): Compute and pass on
2664 reverse lookup of RPO number from basic block index.
2665
2666 2022-08-30 Richard Biener <rguenther@suse.de>
2667
2668 * gimple-predicate-analysis.h (uninit_analysis::operator()):
2669 Remove.
2670 * gimple-predicate-analysis.cc
2671 (uninit_analysis::collect_phi_def_edges): Use phi_arg_set,
2672 simplify a bit.
2673 * tree-ssa-uninit.cc (defined_args): New global.
2674 (compute_uninit_opnds_pos): Mask with the recorded set
2675 of guarded maybe-uninitialized uses.
2676 (uninit_undef_val_t::operator()): Remove.
2677 (find_uninit_use): Process all PHI uses, recording the
2678 guarded ones and marking the PHI result as uninitialized
2679 consistently.
2680 (warn_uninitialized_phi): Adjust.
2681 (execute_late_warn_uninitialized): Get rid of the PHI worklist
2682 and instead walk the function in RPO order.
2683 * spellcheck.h (best_match::m_best_candidate_len): Initialize.
2684
2685 2022-08-30 Tamar Christina <tamar.christina@arm.com>
2686
2687 PR tree-optimization/106744
2688 * tree-ssa-phiopt.cc (minmax_replacement): Correct arguments.
2689
2690 2022-08-30 Tamar Christina <tamar.christina@arm.com>
2691
2692 * expmed.cc (store_bit_field_1): Initialize regnum to 0.
2693
2694 2022-08-29 David Faust <david.faust@oracle.com>
2695
2696 PR target/106745
2697 * config/bpf/coreout.cc (bpf_core_get_sou_member_index): Fix
2698 computation of index for anonymous members.
2699
2700 2022-08-29 Jose E. Marchesi <jose.marchesi@oracle.com>
2701
2702 * config/bpf/bpf.cc (bpf_target_macros): Define __bpf__ as a
2703 target macro.
2704
2705 2022-08-29 H.J. Lu <hjl.tools@gmail.com>
2706
2707 PR target/106748
2708 * config/i386/i386-expand.cc
2709 (ix86_avx256_split_vector_move_misalign): Handle E_V16BFmode.
2710 * config/i386/sse.md (V_256H): Add V16BF.
2711
2712 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
2713
2714 * config/s390/s390.cc (s390_address_cost): Declare.
2715 (s390_hard_regno_nregs): Declare.
2716 (s390_rtx_costs): Add handling for REG and MEM in SET.
2717
2718 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
2719
2720 * config/s390/s390.cc (expand_perm_with_vpdi): Recognize swap pattern.
2721 (is_reverse_perm_mask): New function.
2722 (expand_perm_with_rot): Recognize reverse pattern.
2723 (expand_perm_with_vstbrq): New function.
2724 (expand_perm_with_vster): Use vler/vster for element reversal on z15.
2725 (vectorize_vec_perm_const_1): Use.
2726 (s390_vectorize_vec_perm_const): Add expand functions.
2727 * config/s390/vx-builtins.md: Prefer vster over vler.
2728
2729 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
2730
2731 * config/s390/s390.md: Remove UNSPEC_VEC_EXTRACT.
2732 * config/s390/vector.md: Rewrite patterns to use vec_select.
2733 * config/s390/vx-builtins.md (vec_scatter_element<V_HW_2:mode>_SI):
2734 Likewise.
2735
2736 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
2737
2738 PR target/100869
2739 * config/s390/vector.md (@vpdi4_2<mode>): New pattern.
2740 (rotl<mode>3_di): New pattern.
2741 * config/s390/vx-builtins.md: Use vpdi and verll for reversing
2742 elements.
2743
2744 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
2745
2746 * config/s390/s390.cc (s390_issue_rate): Add z15.
2747
2748 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
2749
2750 * common/config/s390/s390-common.cc: Enable -funroll-loops and
2751 -munroll-only-small-loops for OPT_LEVELS_2_PLUS_SPEED_ONLY.
2752 * config/s390/s390.cc (s390_loop_unroll_adjust): Do not unroll
2753 loops larger than 12 instructions.
2754 (s390_override_options_after_change): Set unroll options.
2755 (s390_option_override_internal): Likewise.
2756 * config/s390/s390.opt: Document munroll-only-small-loops.
2757
2758 2022-08-29 Richard Biener <rguenther@suse.de>
2759
2760 * gimple-predicate-analysis.cc (is_loop_exit,
2761 find_control_equiv_block): Inline into single caller ...
2762 (uninit_analysis::init_use_preds): ... here and refactor.
2763
2764 2022-08-29 Richard Biener <rguenther@suse.de>
2765
2766 * gimple-predicate-analysis.cc (compute_control_dep_chain):
2767 Inline is_loop_exit and refactor, add comment about
2768 loop exits.
2769
2770 2022-08-29 Kito Cheng <kito.cheng@sifive.com>
2771
2772 * config/riscv/riscv.cc (riscv_frame_info): Introduce `reset(void)`;
2773 (riscv_frame_info::reset(void)): New.
2774 (riscv_compute_frame_info): Use riscv_frame_info::reset instead
2775 of memset when clean frame.
2776
2777 2022-08-29 zhongjuzhe <juzhe.zhong@rivai.ai>
2778
2779 * config/riscv/riscv.cc (riscv_v_ext_vector_mode_p): New function.
2780 (riscv_classify_address): Disallow PLUS/LO_SUM/CONST_INT address types for RVV.
2781 (riscv_address_insns): Add RVV modes condition.
2782 (riscv_binary_cost): Ditto.
2783 (riscv_rtx_costs): Adjust cost for RVV.
2784 (riscv_secondary_memory_needed): Add RVV modes condition.
2785 (riscv_hard_regno_nregs): Add RVV register allocation.
2786 (riscv_hard_regno_mode_ok): Add RVV register allocation.
2787 (riscv_class_max_nregs): Add RVV register allocation.
2788 * config/riscv/riscv.h (DWARF_FRAME_REGNUM): Add VL/VTYPE and vector registers in Dwarf.
2789 (UNITS_PER_V_REG): New macro.
2790 (FIRST_PSEUDO_REGISTER): Adjust first pseudo num for RVV.
2791 (V_REG_FIRST): New macro.
2792 (V_REG_LAST): Ditto.
2793 (V_REG_NUM): Ditto.
2794 (V_REG_P): Ditto.
2795 (VL_REG_P): Ditto.
2796 (VTYPE_REG_P): Ditto.
2797 (RISCV_DWARF_VL): Ditto.
2798 (RISCV_DWARF_VTYPE): Ditto.
2799 (enum reg_class): Add RVV register types.
2800 (REG_CLASS_CONTENTS): Add RVV register types.
2801 * config/riscv/riscv.md: Add VL/VTYPE register number constants.
2802
2803 2022-08-29 zhongjuzhe <juzhe.zhong@rivai.ai>
2804
2805 * config/riscv/riscv.md: Add new type for vector instructions.
2806
2807 2022-08-28 Peter Bergner <bergner@linux.ibm.com>
2808
2809 PR target/106017
2810 * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Remove handling
2811 of MMA pointer conversions.
2812
2813 2022-08-27 Xi Ruoyao <xry111@xry111.site>
2814
2815 * config/i386/gcc-auto-profile: Regenerate.
2816
2817 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
2818
2819 * real.cc (real_iszero): New.
2820 * real.h (real_iszero): New.
2821
2822 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
2823
2824 * real.cc (real_isinf): New overload.
2825 (real_inf): Add sign argument.
2826 * real.h (real_isinf): New overload.
2827 (real_inf): Add sign argument.
2828
2829 2022-08-26 Marek Polacek <polacek@redhat.com>
2830
2831 PR c++/81159
2832 * doc/invoke.texi: Document -Wself-move.
2833
2834 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
2835
2836 * value-range.cc (vrange::set): Set varying.
2837 (vrange::set_nonzero): Same.
2838 (vrange::set_zero): Same.
2839 (vrange::set_nonnegative): Same.
2840
2841 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
2842
2843 * range-op-float.cc (foperator_equal::op1_range): Do not blindly
2844 copy op2 range when honoring signed zeros.
2845
2846 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
2847
2848 * tree-ssa-threadbackward.cc (possibly_profitable_path_p): Always
2849 add newline.
2850 (profitable_path_p): Same.
2851
2852 2022-08-26 Richard Biener <rguenther@suse.de>
2853
2854 * gimple-predicate-analysis.h
2855 (uninit_analysis::use_cannot_happen): Remove.
2856 * gimple-predicate-analysis.cc (can_be_invalidated_p): Remove.
2857 (uninit_analysis::use_cannot_happen): Likewise.
2858 (uninit_analysis::is_use_guarded): Do not call
2859 use_cannot_happen.
2860 (dump_predicates): Remove.
2861 (simple_control_dep_chain): Remove edge overload.
2862
2863 2022-08-26 Tobias Burnus <tobias@codesourcery.com>
2864
2865 * internal-fn.cc (expand_GOMP_TARGET_REV): New.
2866 * internal-fn.def (GOMP_TARGET_REV): New.
2867 * lto-cgraph.cc (lto_output_node, verify_node_partition): Mark
2868 'omp target device_ancestor_host' as in_other_partition and don't
2869 error if absent.
2870 * omp-low.cc (create_omp_child_function): Mark as 'noclone'.
2871 * omp-expand.cc (expand_omp_target): For reverse offload, remove
2872 sorry, use device = GOMP_DEVICE_HOST_FALLBACK and create
2873 empty-body nohost function.
2874 * omp-offload.cc (execute_omp_device_lower): Handle
2875 IFN_GOMP_TARGET_REV.
2876 (pass_omp_target_link::execute): For ACCEL_COMPILER, don't
2877 nullify fn argument for reverse offload
2878
2879 2022-08-26 Jakub Jelinek <jakub@redhat.com>
2880
2881 * builtins.def (BUILT_IN_ISSIGNALING): New built-in.
2882 * builtins.cc (expand_builtin_issignaling): New function.
2883 (expand_builtin_signbit): Don't overwrite target.
2884 (expand_builtin): Handle BUILT_IN_ISSIGNALING.
2885 (fold_builtin_classify): Likewise.
2886 (fold_builtin_1): Likewise.
2887 * optabs.def (issignaling_optab): New.
2888 * fold-const-call.cc (fold_const_call_ss): Handle
2889 BUILT_IN_ISSIGNALING.
2890 * config/i386/i386.md (issignalingxf2): New expander.
2891 * doc/extend.texi (__builtin_issignaling): Document.
2892 (__builtin_isinf, __builtin_isnan): Clarify behavior with
2893 -ffinite-math-only.
2894 * doc/md.texi (issignaling<mode>2): Likewise.
2895
2896 2022-08-26 Jakub Jelinek <jakub@redhat.com>
2897
2898 PR tree-optimization/106099
2899 * internal-fn.def (TRAP): Add ECF_LOOPING_CONST_OR_PURE flag.
2900 * tree-cfg.cc (execute_fixup_cfg): Add IFN_TRAP instead of
2901 __builtin_trap to avoid the need of vops.
2902
2903 2022-08-26 Richard Biener <rguenther@suse.de>
2904
2905 * gimple-predicate-analysis.cc (dfs_mark_dominating_region):
2906 New helper.
2907 (compute_control_dep_chain): Adjust to honor marked region
2908 if provided.
2909 (uninit_analysis::init_from_phi_def): Pre-mark the dominating
2910 region to improve compute_control_dep_chain walking.
2911 * vec.h (vec<T, va_heap, vl_ptr>::allocated): Add forwarder.
2912
2913 2022-08-26 Richard Biener <rguenther@suse.de>
2914
2915 * gimple-predicate-analysis.cc
2916 (uninit_analysis::collect_phi_def_edges): Only expand a
2917 PHI def edge when it is possibly undefined.
2918
2919 2022-08-26 Martin Liska <mliska@suse.cz>
2920
2921 * doc/extend.texi: Remove cr16 related stuff.
2922 * doc/install.texi: Likewise.
2923 * doc/invoke.texi: Likewise.
2924 * doc/md.texi: Likewise.
2925 * function-tests.cc (test_expansion_to_rtl): Likewise.
2926 * common/config/cr16/cr16-common.cc: Removed.
2927 * config/cr16/constraints.md: Removed.
2928 * config/cr16/cr16-protos.h: Removed.
2929 * config/cr16/cr16.cc: Removed.
2930 * config/cr16/cr16.h: Removed.
2931 * config/cr16/cr16.md: Removed.
2932 * config/cr16/cr16.opt: Removed.
2933 * config/cr16/predicates.md: Removed.
2934 * config/cr16/t-cr16: Removed.
2935
2936 2022-08-26 liuhongt <hongtao.liu@intel.com>
2937
2938 PR target/106704
2939 * config/i386/i386-builtin.def (BDESC): Add
2940 CODE_FOR_avx_blendvpd256/CODE_FOR_avx_blendvps256 to
2941 corresponding builtins.
2942 * config/i386/i386.cc (ix86_gimple_fold_builtin):
2943 Don't fold IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_BLENDVPS256,
2944 IX86_BUILTIN_BLENDVPD256 w/o TARGET_AVX2.
2945
2946 2022-08-25 Marek Polacek <polacek@redhat.com>
2947
2948 * ginclude/stddef.h: Define nullptr_t.
2949
2950 2022-08-25 Joseph Myers <joseph@codesourcery.com>
2951
2952 * gimplify.cc (gimplify_modify_expr): Convert initialization from
2953 a variable-size CONSTRUCTOR to memset before call to
2954 gimplify_modify_expr_rhs.
2955
2956 2022-08-25 Jason Merrill <jason@redhat.com>
2957
2958 * dwarf2out.cc (base_type_die): Also use DW_ATE_UTF for char8_t.
2959
2960 2022-08-25 Andreas Krebbel <krebbel@linux.ibm.com>
2961
2962 PR target/106101
2963 * config/s390/predicates.md (subreg_register_operand): New
2964 predicate.
2965 * config/s390/s390-protos.h (s390_gen_lowpart_subreg): New
2966 function prototype.
2967 * config/s390/s390.cc (s390_gen_lowpart_subreg): New function.
2968 (s390_expand_insv): Use s390_gen_lowpart_subreg instead of
2969 gen_lowpart.
2970 * config/s390/s390.md ("*get_tp_64", "*zero_extendhisi2_31")
2971 ("*zero_extendqisi2_31", "*zero_extendqihi2_31"): Likewise.
2972 ("movstrictqi", "movstricthi", "movstrictsi"): Use the
2973 subreg_register_operand predicate instead of register_operand.
2974
2975 2022-08-25 Xi Ruoyao <xry111@xry111.site>
2976
2977 * config/loongarch/loongarch-protos.h (loongarch_symbol_type):
2978 Add SYMBOL_PCREL64 and change the description for SYMBOL_PCREL.
2979 * config/loongarch/loongarch.cc (loongarch_attribute_table):
2980 New attribute table.
2981 (TARGET_ATTRIBUTE_TABLE): Define the target hook.
2982 (loongarch_handle_model_attribute): New static function.
2983 (loongarch_classify_symbol): Take TARGET_CMODEL_EXTREME and the
2984 model attribute of SYMBOL_REF_DECL into account returning
2985 SYMBOL_PCREL or SYMBOL_PCREL64.
2986 (loongarch_use_anchors_for_symbol_p): New static function.
2987 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define the target hook.
2988 (loongarch_symbol_extreme_p): New static function.
2989 (loongarch_symbolic_constant_p): Handle SYMBOL_PCREL64.
2990 (loongarch_symbol_insns): Likewise.
2991 (loongarch_split_symbol_type): Likewise.
2992 (loongarch_split_symbol): Check SYMBOL_PCREL64 instead of
2993 TARGET_CMODEL_EXTREME for PC-relative addressing.
2994 (loongarch_print_operand_reloc): Likewise.
2995 * doc/extend.texi (Variable Attributes): Document new
2996 LoongArch specific attribute.
2997
2998 2022-08-25 Xi Ruoyao <xry111@xry111.site>
2999
3000 * config/loongarch/loongarch.cc (loongarch_classify_symbol):
3001 Return early if the rtx is not SYMBOL_REF.
3002
3003 2022-08-25 Richard Biener <rguenther@suse.de>
3004
3005 PR tree-optimization/106737
3006 * tree-parloops.cc (transform_to_exit_first_loop_alt): Do not
3007 verify SSA form.
3008
3009 2022-08-25 Chenghua Xu <xuchenghua@loongson.cn>
3010
3011 PR target/106459
3012 * config/loongarch/loongarch.cc (loongarch_build_integer):
3013 Use HOST_WIDE_INT.
3014 * config/loongarch/loongarch.h (IMM_REACH): Likewise.
3015 (HWIT_1U): New Defined.
3016 (LU12I_OPERAND): Use HOST_WIDE_INT.
3017 (LU32I_OPERAND): Likewise.
3018 (LU52I_OPERAND): Likewise.
3019 (HWIT_UC_0xFFF): Likwise.
3020
3021 2022-08-24 Andrew Pinski <apinski@marvell.com>
3022
3023 PR target/106632
3024 PR target/106588
3025 * config/riscv/bitmanip.md (*shNadduw): Use n constraint
3026 instead of i.
3027 (*slliuw): Likewise.
3028 (*bexti): Likewise. Also add a check for operands[2] to be less
3029 than the mode bitsize.
3030
3031 2022-08-24 Andrew Pinski <apinski@marvell.com>
3032
3033 * config/riscv/constraints.md (DbS): New constraint.
3034 (DnS): New constraint.
3035 * config/riscv/bitmanip.md (*bset<mode>_1_mask): Use new constraint.
3036 (*bclr<mode>): Likewise.
3037 (*binvi<mode>): Likewise.
3038
3039 2022-08-24 Andrew Pinski <apinski@marvell.com>
3040
3041 PR target/106586
3042 * config/riscv/predicates.md (single_bit_mask_operand):
3043 Use SINGLE_BIT_MASK_OPERAND instead of directly calling pow2p_hwi.
3044 (not_single_bit_mask_operand): Likewise.
3045 * config/riscv/riscv.cc (riscv_build_integer_1): Don't special case
3046 1<<31 for 32bits as it is already handled.
3047 Call trunc_int_for_mode on the upper part after the subtraction.
3048 (riscv_move_integer): Call trunc_int_for_mode before generating
3049 the integer just make sure the constant has been sign extended
3050 corectly.
3051 (riscv_emit_int_compare): Call trunc_int_for_mode after doing the
3052 addition for the new rhs.
3053 * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): If !TARGET64BIT,
3054 then mask off the upper 32bits of the HWI as it will be sign extended.
3055
3056 2022-08-24 Andrew Pinski <apinski@marvell.com>
3057
3058 * config/riscv/constraints.md (DsS): New constraint.
3059 (DsD): New constraint.
3060 * config/riscv/iterators.md (shiftm1c): New iterator.
3061 * config/riscv/bitmanip.md (*bset<mode>_mask):
3062 Use shiftm1c.
3063 (*bset<mode>_1_mask): Likewise.
3064
3065 2022-08-24 Andrew Pinski <apinski@marvell.com>
3066
3067 * config/riscv/constraints.md (Ds3): New constraint.
3068 * config/riscv/predicates.md (imm123_operand): New predicate.
3069 * config/riscv/bitmanip.md (*shNadd): Use Ds3 and imm123_operand.
3070 (*shNadduw): Likewise.
3071
3072 2022-08-24 Andrew Pinski <apinski@marvell.com>
3073
3074 * config/riscv/riscv.cc (riscv_print_operand):
3075 Handle '~'.
3076 (riscv_print_operand_punct_valid_p): New function
3077 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
3078 * config/riscv/bitmanip.md (<bitmanip_optab>si2/clz_ctz_pcnt):
3079 Use %~ instead of conditional the pattern on TARGET_64BIT.
3080 (rotrsi3): Likewise.
3081 (rotlsi3): Likewise.
3082 * config/riscv/riscv.md: Add ~ to the list of modifiers.
3083 (addsi3): Use %~ instead of conditional the pattern on TARGET_64BIT.
3084 (subsi3): Likewise.
3085 (negsi2): Likewise.
3086 (mulsi3): Likewise.
3087 (optab>si3/any_div): Likewise.
3088 (*add<mode>hi3): Likewise.
3089 (<optab>si3/any_shift): Likewise.
3090
3091 2022-08-24 Andrew Pinski <apinski@marvell.com>
3092
3093 * config/riscv/riscv.cc (riscv_print_operand): Make a mention to
3094 keep the list in riscv.md in sync with this list.
3095 * config/riscv/riscv.md: Add list of modifiers as comments.
3096
3097 2022-08-24 Andrew Pinski <apinski@marvell.com>
3098
3099 * config/riscv/sync.md (any_atomic, atomic_optab): Move to ...
3100 * config/riscv/iterators.md: Here.
3101
3102 2022-08-24 Andrew Pinski <apinski@marvell.com>
3103
3104 * config/riscv/bitmanip.md
3105 (bitmanip_bitwise, bitmanip_minmax, clz_ctz_pcna,
3106 tbitmanip_optab, bitmanip_insn, shiftm1): Move to ...
3107 * config/riscv/iterators.md: Here.
3108
3109 2022-08-24 Andrew Pinski <apinski@marvell.com>
3110
3111 * config/riscv/riscv.md (GPR): Move to new file.
3112 (P, X, BR): Likewise.
3113 (MOVE32, MOVE64, SHORT): Likewise.
3114 (HISI, SUPERQI, SUBX): Likewise.
3115 (ANYI, ANYF, SOFTF): Likewise.
3116 (size, load, default_load): Likewise.
3117 (softload, store, softstore): Likewise.
3118 (reg, fmt, ifmt, amo): Likewise.
3119 (UNITMODE, HALFMODE): Likewise.
3120 (RINT, rint_pattern, rint_rm): Likewise.
3121 (QUIET_COMPARISON, quiet_pattern, QUIET_PATTERN): Likewise.
3122 (any_extend, any_shiftrt, any_shift): Likewise.
3123 (any_bitwise): Likewise.
3124 (any_div, any_mod): Likewise.
3125 (any_gt, any_ge, any_lt, any_le): Likewise.
3126 (u, su): Likewise.
3127 (optab, insn): Likewise.
3128 * config/riscv/iterators.md: New file.
3129
3130 2022-08-24 Andrew Pinski <apinski@marvell.com>
3131
3132 PR target/106601
3133 * config/riscv/bitmanip.md (bswaphi2): New pattern.
3134
3135 2022-08-24 Andrew Pinski <apinski@marvell.com>
3136
3137 PR target/106600
3138 * config/riscv/bitmanip.md (bswap<mode>2): Remove
3139 condition on TARGET_64BIT as X is already conditional there.
3140
3141 2022-08-24 Joseph Myers <joseph@codesourcery.com>
3142
3143 * tree.cc (build_real): Give DFP dconst0 the minimum quantum
3144 exponent for the type.
3145
3146 2022-08-24 Jose E. Marchesi <jose.marchesi@oracle.com>
3147
3148 PR target/106733
3149 * config/bpf/bpf.cc (bpf_legitimate_address_p): Recognize integer
3150 constants as legitimate addresses for functions.
3151 (bpf_small_register_classes_for_mode_p): Define target hook.
3152
3153 2022-08-24 Richard Biener <rguenther@suse.de>
3154
3155 * gimple-predicate-analysis.cc: Move predicate normalization
3156 after the comment documenting it.
3157
3158 2022-08-24 Richard Biener <rguenther@suse.de>
3159
3160 * gimple-predicate-analysis.h (predicate): Split out
3161 non-predicate related functionality into ..
3162 (uninit_analysis): .. this new class.
3163 * gimple-predicate-analysis.cc: Refactor into two classes.
3164 * tree-ssa-uninit.cc (find_uninit_use): Use uninit_analysis.
3165
3166 2022-08-24 Richard Biener <rguenther@suse.de>
3167
3168 * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
3169 Do simple_control_dep_chain only up to cd_root, add the PHI
3170 operand edge to the chains like init_from_phi_def does.
3171 (predicate::is_use_guarded): Speedup early out, avoid half-way
3172 initializing the PHI def predicate.
3173
3174 2022-08-24 Jakub Jelinek <jakub@redhat.com>
3175
3176 PR target/106721
3177 * config/i386/sse.md (shuffletype): Add V32BF, V16BF and V8BF entries.
3178 Change V32HF, V16HF and V8HF entries from "f" to "i".
3179 (iptr): Add V32BF, V16BF, V8BF and BF entries.
3180 (i128vldq): Add V16HF and V16BF entries.
3181 (avx512er_vmrcp28<mode><mask_name><round_saeonly_name>): Fix typo,
3182 mask_opernad3 -> mask_operand3.
3183
3184 2022-08-24 Martin Liska <mliska@suse.cz>
3185 Jørgen Kvalsvik <j@lambda.is>
3186
3187 * gcov.cc (add_line_counts): Add group functions to coverage
3188 summary.
3189 (accumulate_line_counts): Similarly for files.
3190
3191 2022-08-24 Lulu Cheng <chenglulu@loongson.cn>
3192
3193 * config/loongarch/genopts/loongarch-strings: Support code model medium.
3194 * config/loongarch/genopts/loongarch.opt.in: Likewise.
3195 * config/loongarch/loongarch-def.c: Likewise.
3196 * config/loongarch/loongarch-def.h (CMODEL_LARGE): Likewise.
3197 (CMODEL_EXTREME): Likewise.
3198 (N_CMODEL_TYPES): Likewise.
3199 (CMODEL_MEDIUM): Likewise.
3200 * config/loongarch/loongarch-opts.cc: Likewise.
3201 * config/loongarch/loongarch-opts.h (TARGET_CMODEL_MEDIUM): Likewise.
3202 * config/loongarch/loongarch-str.h (STR_CMODEL_MEDIUM): Likewise.
3203 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
3204 Tls symbol Loading support medium mode.
3205 (loongarch_legitimize_call_address): When medium mode, make a symbolic
3206 jump with two instructions.
3207 (loongarch_option_override_internal): Support medium.
3208 * config/loongarch/loongarch.md (@pcalau12i<mode>): New template.
3209 (@sibcall_internal_1<mode>): New function call templates added to support
3210 medium mode.
3211 (@sibcall_value_internal_1<mode>): Likewise.
3212 (@sibcall_value_multiple_internal_1<mode>): Likewise.
3213 (@call_internal_1<mode>): Likewise.
3214 (@call_value_internal_1<mode>): Likewise.
3215 (@call_value_multiple_internal_1<mode>): Likewise.
3216 * config/loongarch/loongarch.opt: Support medium.
3217 * config/loongarch/predicates.md: Add processing about medium mode.
3218 * doc/invoke.texi: Document for '-mcmodel=medium'.
3219
3220 2022-08-24 Richard Biener <rguenther@suse.de>
3221
3222 * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
3223 Start the compute_control_dep_chain walk from the immediate
3224 dominator of the PHI.
3225
3226 2022-08-23 H.J. Lu <hjl.tools@gmail.com>
3227
3228 PR target/106714
3229 * config/i386/amxtileintrin.h (_tile_loadd_internal): Cast to
3230 __PTRDIFF_TYPE__.
3231 (_tile_stream_loadd_internal): Likewise.
3232 (_tile_stored_internal): Likewise.
3233
3234 2022-08-23 Richard Biener <rguenther@suse.de>
3235
3236 PR tree-optimization/106722
3237 * gimple-predicate-analysis.h (MAX_NUM_CHAINS, MAX_CHAIN_LEN,
3238 MAX_POSTDOM_CHECK, MAX_SWITCH_CASES): Move ...
3239 * gimple-predicate-analysis.cc: ... here and document.
3240 (simple_control_dep_chain): New function, factored from
3241 predicate::use_cannot_happen.
3242 (predicate::use_cannot_happen): Adjust.
3243 (predicate::predicate): Use simple_control_dep_chain as fallback.
3244
3245 2022-08-23 Aldy Hernandez <aldyh@redhat.com>
3246
3247 * range-op-float.cc (foperator_equal::op1_range): Set range to
3248 range of op2.
3249
3250 2022-08-23 Richard Biener <rguenther@suse.de>
3251
3252 * gimple-predicate-analysis.cc (is_loop_exit): Split out
3253 from ...
3254 (is_non_loop_exit_postdominating): ... here. Remove after
3255 inlining ...
3256 (find_control_equiv_block): ... here.
3257 (compute_control_dep_chain): ... and here.
3258 (predicate::is_use_guarded): Do not excempt loop exits
3259 from short-cutting the case of the use post-dominating the
3260 PHI definition.
3261
3262 2022-08-23 Andrew MacLeod <amacleod@redhat.com>
3263
3264 PR tree-optimization/106687
3265 * range-op.cc (operator_minus::lhs_op1_relation): Return VREL_LE
3266 for the VREL_GT case as well.
3267
3268 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
3269
3270 * config/pru/pru.md (pru_<code>di3): New alternative for
3271 two operands but without earlyclobber.
3272
3273 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
3274
3275 * config/pru/pru.md (prumov<mode>, mov<mode>): Add
3276 variants for loading -1 consts.
3277
3278 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
3279
3280 PR target/106564
3281 * config/pru/constraints.md (Um): New constraint for -1.
3282 (Uf): New constraint for IOR fill-bytes constants.
3283 (Uz): New constraint for AND zero-bytes constants.
3284 * config/pru/predicates.md (const_fillbytes_operand): New
3285 predicate for IOR fill-bytes constants.
3286 (const_zerobytes_operand): New predicate for AND zero-bytes
3287 constants.
3288 * config/pru/pru-protos.h (pru_output_sign_extend): Remove.
3289 (struct pru_byterange): New struct to describe a byte range.
3290 (pru_calc_byterange): New declaration.
3291 * config/pru/pru.cc (pru_rtx_costs): Add penalty for
3292 64-bit zero-extend.
3293 (pru_output_sign_extend): Remove.
3294 (pru_calc_byterange): New helper function to extract byte
3295 range info from a constant.
3296 (pru_print_operand): Remove 'y' and 'z' print modifiers.
3297 * config/pru/pru.md (zero_extendqidi2): New pattern.
3298 (zero_extendhidi2): New pattern.
3299 (zero_extendsidi2): New pattern.
3300 (extend<EQS0:mode><EQD:mode>2): Rewrite as an expand.
3301 (@pru_ior_fillbytes<mode>): New pattern.
3302 (@pru_and_zerobytes<mode>): New pattern.
3303 (<code>di3): Rewrite as an expand and handle ZERO and FILL
3304 special cases.
3305 (pru_<code>di3): New name for <code>di3.
3306 (@cbranch_qbbx_const_<BIT_TEST:code><HIDI:mode>): New pattern to
3307 handle bit-test for 64-bit registers.
3308
3309 2022-08-22 Richard Biener <rguenther@suse.de>
3310
3311 * gimple-predicate-analysis.h (predicate::m_use_expr): Remove.
3312 (predicate::def_expr): Likewise.
3313 (predicate::use_expr): Likewise.
3314 (predicate::expr): Likewise.
3315 * gimple-predicate-analysis.cc (predicate::def_expr): Remove.
3316 (predicate::use_expr): Likewise.
3317 (predicate::expr): Likewise.
3318 (predicate::is_use_guarded): Do not build m_use_expr.
3319
3320 2022-08-22 Martin Liska <mliska@suse.cz>
3321
3322 PR lto/106700
3323 * configure.ac: Detect O_NONBLOCK flag for open.
3324 * config.in: Regenerate.
3325 * configure: Regenerate.
3326 * opts-common.cc (jobserver_info::connect): Set is_connected
3327 properly based on O_NONBLOCK.
3328 * opts-jobserver.h (struct jobserver_info): Add is_connected
3329 member variable.
3330
3331 2022-08-22 zhongjuzhe <juzhe.zhong@rivai.ai>
3332
3333 * simplify-rtx.cc (test_vector_subregs_fore_back): Make first value
3334 and repeat value different.
3335
3336 2022-08-22 Tobias Burnus <tobias@codesourcery.com>
3337
3338 PR lto/106686
3339 * lto-wrapper.cc (free_array_of_ptrs): Move before tool_cleanup.
3340 (tool_cleanup): Unlink offload_names.
3341 (compile_offload_image): Take filename argument to set it early.
3342 (compile_images_for_offload_targets): Update call; set
3343 offload_names to NULL after freeing the array.
3344
3345 2022-08-22 Richard Biener <rguenther@suse.de>
3346
3347 PR tree-optimization/105937
3348 * tree-ssa-uninit.cc (find_uninit_use): Do not queue PHIs
3349 on backedges.
3350 (execute_late_warn_uninitialized): Mark backedges.
3351
3352 2022-08-22 Richard Biener <rguenther@suse.de>
3353
3354 * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
3355 If the use is guarded with multiple predicate paths compute
3356 the predicates intersection before going forward. When
3357 compute_control_dep_chain wasn't able to come up with at
3358 least one path from function entry to the PHI edge compute
3359 a conservative sparse path instead.
3360
3361 2022-08-20 Lulu Cheng <chenglulu@loongson.cn>
3362
3363 * config/loongarch/loongarch-opts.cc: Allow cmodel to be extreme.
3364 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
3365 Add extreme support for TLS GD and LD types.
3366 (loongarch_legitimize_tls_address): Add extreme support for TLS LE
3367 and IE.
3368 (loongarch_split_symbol): When compiling with -mcmodel=extreme,
3369 the symbol address will be obtained through five instructions.
3370 (loongarch_print_operand_reloc): Add support.
3371 (loongarch_print_operand): Add support.
3372 (loongarch_print_operand_address): Add support.
3373 (loongarch_option_override_internal): Set '-mcmodel=extreme' option
3374 incompatible with '-mno-explicit-relocs'.
3375 * config/loongarch/loongarch.md (@lui_l_hi20<mode>):
3376 Loads bits 12-31 of data into registers.
3377 (lui_h_lo20): Load bits 32-51 of the data and spell bits 0-31 of
3378 the source register.
3379 (lui_h_hi12): Load bits 52-63 of the data and spell bits 0-51 of
3380 the source register.
3381 * config/loongarch/predicates.md: Symbols need to be decomposed
3382 when defining the macro TARGET_CMODEL_EXTREME
3383 * doc/invoke.texi: Modify the description information of cmodel in the document.
3384 Document -W[no-]extreme-plt.
3385
3386 2022-08-19 Tobias Burnus <tobias@codesourcery.com>
3387
3388 * config/gcn/mkoffload.cc (main): Add omp_requires_file and dbgobj to
3389 files_to_cleanup.
3390 * config/i386/intelmic-mkoffload.cc (prepare_target_image): Add
3391 omp_requires_file to temp_files.
3392 * config/nvptx/mkoffload.cc (omp_requires_file): New global static var.
3393 (main): Remove local omp_requires_file var.
3394 (tool_cleanup): Handle omp_requires_file.
3395
3396 2022-08-19 Aldy Hernandez <aldyh@redhat.com>
3397
3398 * gimple-range-path.cc (path_range_query::path_range_query):
3399 Remove constructor that takes edge.
3400 * gimple-range-path.h (class path_range_query): Same.
3401 * tree-ssa-loop-ch.cc (edge_range_query): New.
3402 (entry_loop_condition_is_static): Call edge_range_query.
3403
3404 2022-08-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3405
3406 * config/xtensa/xtensa.h
3407 (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
3408 Add new register class "ISC_REGS".
3409 * config/xtensa/constraints.md (c): Add new register constraint.
3410 * config/xtensa/xtensa.md (define_constants): Remove "A11_REG".
3411 (sibcall_internal, sibcall_value_internal):
3412 Change to use the new register constraint, and remove two split
3413 patterns for fixups that are no longer needed.
3414
3415 2022-08-18 Maciej W. Rozycki <macro@embecosm.com>
3416
3417 * config/riscv/riscv.md (*mov<GPR:mode><X:mode>cc): Fix output
3418 pattern formatting.
3419
3420 2022-08-18 Tim Lange <mail@tim-lange.me>
3421
3422 PR analyzer/106181
3423 * doc/invoke.texi: Add Wanalyzer-imprecise-fp-arithmetic.
3424
3425 2022-08-18 Aldy Hernandez <aldyh@redhat.com>
3426
3427 * gimple-range-path.cc (path_range_query::path_range_query): Add
3428 various constructors to take a path.
3429 (path_range_query::~path_range_query): Remove m_alloced_ranger.
3430 (path_range_query::range_on_path_entry): Adjust for m_ranger being
3431 a reference.
3432 (path_range_query::set_path): Rename to...
3433 (path_range_query::reset_path): ...this and call compute_ranges.
3434 (path_range_query::ssa_range_in_phi): Adjust for m_ranger
3435 reference.
3436 (path_range_query::range_defined_in_block): Same.
3437 (path_range_query::compute_ranges_in_block): Same.
3438 (path_range_query::adjust_for_non_null_uses): Same.
3439 (path_range_query::compute_exit_dependencies): Use m_path instead
3440 of argument.
3441 (path_range_query::compute_ranges): Remove path argument.
3442 (path_range_query::range_of_stmt): Adjust for m_ranger reference.
3443 (path_range_query::compute_outgoing_relations): Same.
3444 * gimple-range-path.h (class path_range_query): Add various
3445 constructors.
3446 Make compute_ranges and compute_exit_dependencies private.
3447 Rename set_path to reset_path.
3448 Make m_ranger a reference.
3449 Remove m_alloced_ranger.
3450 * tree-ssa-dom.cc (pass_dominator::execute): Adjust constructor to
3451 path_range_query.
3452 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Take a
3453 ranger and instantiate a new path_range_query every time.
3454 (ch_base::copy_headers): Pass ranger instead of path_range_query.
3455 * tree-ssa-threadbackward.cc (class back_threader): Remove m_solver.
3456 (back_threader::~back_threader): Remove m_solver.
3457 (back_threader::find_taken_edge_switch): Adjust for m_ranger
3458 reference.
3459 (back_threader::find_taken_edge_cond): Same.
3460 (back_threader::dump): Remove m_solver.
3461 (back_threader::back_threader): Move verify_marked_backedges
3462 here from the path_range_query constructor.
3463 * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Move
3464 some code from compute_ranges_from_state here.
3465 (hybrid_jt_simplifier::compute_ranges_from_state): Rename...
3466 (hybrid_jt_simplifier::compute_exit_dependencies): ...to this.
3467 * tree-ssa-threadedge.h (class hybrid_jt_simplifier): Rename
3468 compute_ranges_from_state to compute_exit_dependencies.
3469 Remove m_path.
3470
3471 2022-08-18 Richard Biener <rguenther@suse.de>
3472
3473 PR middle-end/106617
3474 * match.pd ((a ? b : c) > d -> a ? (b > d) : (c > d)): Fix
3475 guard, disable on GENERIC to not cause quadratic behavior
3476 with the fold-const.cc implementation and the use of !
3477
3478 2022-08-18 Andrew Pinski <apinski@marvell.com>
3479
3480 PR gcov-profile/106659
3481 * gcov-dump.cc (INCLUDE_VECTOR): Include vector.h with
3482 INCLUDE_VECTOR.
3483
3484 2022-08-18 konglin1 <lingling.kong@intel.com>
3485
3486 * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Handle vector
3487 BFmode.
3488 (ix86_expand_vector_init_duplicate): Support vector BFmode.
3489 (ix86_expand_vector_init_one_nonzero): Ditto.
3490 (ix86_expand_vector_init_one_var): Ditto.
3491 (ix86_expand_vector_init_concat): Ditto.
3492 (ix86_expand_vector_init_interleave): Ditto.
3493 (ix86_expand_vector_init_general): Ditto.
3494 (ix86_expand_vector_init): Ditto.
3495 (ix86_expand_vector_set_var): Ditto.
3496 (ix86_expand_vector_set): Ditto.
3497 (ix86_expand_vector_extract): Ditto.
3498 * config/i386/i386.cc (classify_argument): Add BF vector modes.
3499 (function_arg_64): Ditto.
3500 (ix86_gimplify_va_arg): Ditto.
3501 (ix86_get_ssemov): Ditto.
3502 * config/i386/i386.h (VALID_AVX256_REG_MODE): Add BF vector modes.
3503 (VALID_AVX512F_REG_MODE): Ditto.
3504 (host_detect_local_cpu): Ditto.
3505 (VALID_SSE2_REG_MODE): Ditto.
3506 * config/i386/i386.md: Add BF vector modes.
3507 (MODE_SIZE): Ditto.
3508 (ssemodesuffix): Add bf suffix for BF vector modes.
3509 (ssevecmode): Ditto.
3510 * config/i386/sse.md (VMOVE): Adjust for BF vector modes.
3511 (VI12HFBF_AVX512VL): Ditto.
3512 (V_256_512): Ditto.
3513 (VF_AVX512HFBF16): Ditto.
3514 (VF_AVX512BWHFBF16): Ditto.
3515 (VIHFBF): Ditto.
3516 (avx512): Ditto.
3517 (VIHFBF_256): Ditto.
3518 (VIHFBF_AVX512BW): Ditto.
3519 (VI2F_256_512):Ditto.
3520 (V8_128):Ditto.
3521 (V16_256): Ditto.
3522 (V32_512): Ditto.
3523 (sseinsnmode): Ditto.
3524 (sseconstm1): Ditto.
3525 (sseintmodesuffix): New mode_attr.
3526 (avx512fmaskmode): Ditto.
3527 (avx512fmaskmodelower): Ditto.
3528 (ssedoublevecmode): Ditto.
3529 (ssehalfvecmode): Ditto.
3530 (ssehalfvecmodelower): Ditto.
3531 (ssescalarmode): Add vector BFmode mapping.
3532 (ssescalarmodelower): Ditto.
3533 (ssexmmmode): Ditto.
3534 (ternlogsuffix): Ditto.
3535 (ssescalarsize): Ditto.
3536 (sseintprefix): Ditto.
3537 (i128): Ditto.
3538 (xtg_mode): Ditto.
3539 (bcstscalarsuff): Ditto.
3540 (<avx512>_blendm<mode>): New define_insn for BFmode.
3541 (<avx512>_store<mode>_mask): Ditto.
3542 (vcond_mask_<mode><avx512fmaskmodelower>): Ditto.
3543 (vec_set<mode>_0): New define_insn for BF vector set.
3544 (V8BFH_128): New mode_iterator for BFmode.
3545 (avx512fp16_mov<mode>): Ditto.
3546 (vec_set<mode>): New define_insn for BF vector set.
3547 (@vec_extract_hi_<mode>): Ditto.
3548 (@vec_extract_lo_<mode>): Ditto.
3549 (vec_set_hi_<mode>): Ditto.
3550 (vec_set_lo_<mode>): Ditto.
3551 (*vec_extract<mode>_0): New define_insn_and_split for BF
3552 vector extract.
3553 (*vec_extract<mode>): New define_insn.
3554 (VEC_EXTRACT_MODE): Add BF vector modes.
3555 (PINSR_MODE): Add V8BF.
3556 (sse2p4_1): Ditto.
3557 (pinsr_evex_isa): Ditto.
3558 (<sse2p4_1>_pinsr<ssemodesuffix>): Adjust to support
3559 insert for V8BFmode.
3560 (pbroadcast_evex_isa): Add BF vector modes.
3561 (AVX2_VEC_DUP_MODE): Ditto.
3562 (VEC_INIT_MODE): Ditto.
3563 (VEC_INIT_HALF_MODE): Ditto.
3564 (avx2_pbroadcast<mode>): Adjust to support BF vector mode
3565 broadcast.
3566 (avx2_pbroadcast<mode>_1): Ditto.
3567 (<avx512>_vec_dup<mode>_1): Ditto.
3568 (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>):
3569 Ditto.
3570
3571 2022-08-18 Martin Liska <mliska@suse.cz>
3572
3573 * configure: Regenerate.
3574
3575 2022-08-18 Haochen Gui <guihaoc@gcc.gnu.org>
3576
3577 PR target/103109
3578 * config/rs6000/rs6000.md (<u>maddditi4): New pattern for multiply-add.
3579 (<u>madddi4_highpart): New.
3580 (<u>madddi4_highpart_le): New.
3581
3582 2022-08-18 Aldy Hernandez <aldyh@redhat.com>
3583
3584 * gimple-range-path.cc
3585 (path_range_query::compute_exit_dependencies): Use
3586 gimple_range_ssa_names.
3587
3588 2022-08-18 zhongjuzhe <juzhe.zhong@rivai.ai>
3589
3590 * config/riscv/predicates.md: Adjust runtime invariant.
3591 * config/riscv/riscv-modes.def (MAX_BITSIZE_MODE_ANY_MODE): New.
3592 (NUM_POLY_INT_COEFFS): New.
3593 * config/riscv/riscv-protos.h (riscv_initial_elimination_offset):Adjust
3594 runtime invariant.
3595 * config/riscv/riscv-sr.cc (riscv_remove_unneeded_save_restore_calls):
3596 Adjust runtime invariant.
3597 * config/riscv/riscv.cc (struct riscv_frame_info): Adjust runtime
3598 invariant.
3599 (enum riscv_microarchitecture_type): Ditto.
3600 (riscv_valid_offset_p): Ditto.
3601 (riscv_valid_lo_sum_p): Ditto.
3602 (riscv_address_insns): Ditto.
3603 (riscv_load_store_insns): Ditto.
3604 (riscv_legitimize_move): Ditto.
3605 (riscv_binary_cost): Ditto.
3606 (riscv_rtx_costs): Ditto.
3607 (riscv_output_move): Ditto.
3608 (riscv_extend_comparands): Ditto.
3609 (riscv_flatten_aggregate_field): Ditto.
3610 (riscv_get_arg_info): Ditto.
3611 (riscv_pass_by_reference): Ditto.
3612 (riscv_elf_select_rtx_section): Ditto.
3613 (riscv_stack_align): Ditto.
3614 (riscv_compute_frame_info): Ditto.
3615 (riscv_initial_elimination_offset): Ditto.
3616 (riscv_set_return_address): Ditto.
3617 (riscv_for_each_saved_reg): Ditto.
3618 (riscv_first_stack_step): Ditto.
3619 (riscv_expand_prologue): Ditto.
3620 (riscv_expand_epilogue): Ditto.
3621 (riscv_can_use_return_insn): Ditto.
3622 (riscv_secondary_memory_needed): Ditto.
3623 (riscv_hard_regno_nregs): Ditto.
3624 (riscv_convert_vector_bits): New.
3625 (riscv_option_override): Adjust runtime invariant.
3626 (riscv_promote_function_mode): Ditto.
3627 * config/riscv/riscv.h (POLY_SMALL_OPERAND_P): New.
3628 (BITS_PER_RISCV_VECTOR): New.
3629 (BYTES_PER_RISCV_VECTOR): New.
3630 * config/riscv/riscv.md: Adjust runtime invariant.
3631
3632 2022-08-18 Lulu Cheng <chenglulu@loongson.cn>
3633
3634 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
3635 Get __tls_get_addr address through got table when disable plt.
3636
3637 2022-08-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3638
3639 * config/xtensa/xtensa.cc (xtensa_expand_prologue):
3640 Use an "addmi" machine instruction for updating the stack pointer
3641 rather than addition/subtraction via hard register A9, if the amount
3642 of change satisfies the literal value conditions of that instruction
3643 when the CALL0 ABI is used.
3644 (xtensa_expand_epilogue): Ditto.
3645 And also inhibit the stack pointer addition of constant zero.
3646
3647 2022-08-17 Roger Sayle <roger@nextmovesoftware.com>
3648
3649 PR target/106640
3650 * config/i386/i386-features.cc
3651 (timde_scalar_chain::compute_convert_gain): Replace incorrect use
3652 of XINT with INTVAL (XEXP (src, 1)).
3653
3654 2022-08-17 Aldy Hernandez <aldyh@redhat.com>
3655
3656 * gimple-range-path.cc
3657 (path_range_query::compute_ranges_in_block): Remove
3658 set_root_oracle call.
3659 (path_range_query::compute_ranges): Pass ranger oracle to
3660 reset_path.
3661 * value-relation.cc (path_oracle::reset_path): Set root oracle.
3662 * value-relation.h (path_oracle::reset_path): Add root oracle
3663 argument.
3664
3665 2022-08-17 Marek Polacek <polacek@redhat.com>
3666
3667 PR c++/89780
3668 * diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): Handle
3669 OPT_Wpessimizing_move and OPT_Wredundant_move.
3670 * diagnostic-spec.h (nowarn_spec_t): Add NW_REDUNDANT enumerator.
3671
3672 2022-08-17 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3673 Jakub Jelinek <jakub@redhat.com>
3674
3675 PR fortran/46539
3676 * common.opt (static-libquadmath): New option.
3677 * gcc.cc (driver_handle_option): Always accept -static-libquadmath.
3678 * config/darwin.h (LINK_SPEC): Handle -static-libquadmath.
3679
3680 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
3681
3682 * lto-cgraph.cc (input_offload_tables): Improve requires diagnostic
3683 when filenames come out identically.
3684
3685 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
3686
3687 PR middle-end/106548
3688 * omp-low.cc (lower_rec_input_clauses): Use build_outer_var_ref
3689 for 'simd' linear-step values that are variable.
3690
3691 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
3692 Chung-Lin Tang <cltang@codesourcery.com>
3693
3694 PR c++/104493
3695 * gimplify.cc (omp_notice_variable): Call omp_mappable_type
3696 instead of removed langhook.
3697 * omp-general.h (omp_mappable_type): New prototype.
3698 * omp-general.cc (omp_mappable_type): New; moved from ...
3699 * langhooks.cc (lhd_omp_mappable_type): ... here.
3700 * langhooks-def.h (lhd_omp_mappable_type,
3701 LANG_HOOKS_OMP_MAPPABLE_TYPE): Remove.
3702 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remote the latter.
3703 * langhooks.h (struct lang_hooks_for_types): Remove
3704 omp_mappable_type.
3705
3706 2022-08-17 Christophe Lyon <christophe.lyon@arm.com>
3707
3708 * config.gcc (arm): Define with_float to hard if target name ends
3709 with 'hf'.
3710
3711 2022-08-17 Richard Biener <rguenther@suse.de>
3712
3713 * tree-ssa-threadbackward.cc
3714 (back_threader_profitability): Split profitable_path_p
3715 into possibly_profitable_path_p and itself, keep state
3716 as new members.
3717 (back_threader::m_profit): Remove.
3718 (back_threader::find_paths): Likewise.
3719 (back_threader::maybe_register_path): Take profitability
3720 instance as parameter.
3721 (back_threader::find_paths_to_names): Likewise. Use
3722 possibly_profitable_path_p and avoid the path range query
3723 when the path is currently too large.
3724 (back_threader::find_paths): Fold into ...
3725 (back_threader::maybe_thread_block): ... this.
3726 (get_gimple_control_stmt): Remove.
3727 (back_threader_profitability::possibly_profitable_path_p):
3728 Split out from profitable_path_p, do early profitability
3729 checks.
3730 (back_threader_profitability::profitable_path_p): Do final
3731 profitability path after the taken edge has been determined.
3732
3733 2022-08-17 Xi Ruoyao <xry111@xry111.site>
3734
3735 * config/loongarch/loongarch.md (fmax<mode>3): New RTL pattern.
3736 (fmin<mode>3): Likewise.
3737
3738 2022-08-17 Andrew MacLeod <amacleod@redhat.com>
3739
3740 * gimple-range-fold.cc (gimple_range_ssa_names): New.
3741 * gimple-range-fold.h (gimple_range_ssa_names): New prototype.
3742 * gimple-range-gori.cc (range_def_chain::get_def_chain): Move
3743 code to new routine.
3744
3745 2022-08-16 Martin Liska <mliska@suse.cz>
3746
3747 PR target/106637
3748 * doc/install.texi: Remove link to www.bullfreeware.com
3749
3750 2022-08-16 Kito Cheng <kito.cheng@sifive.com>
3751
3752 * common/config/riscv/riscv-common.cc (riscv_implied_info): Add
3753 zfh and zfhmin.
3754 (riscv_ext_version_table): Ditto.
3755 (riscv_ext_flag_table): Ditto.
3756 * config/riscv/riscv-opts.h (MASK_ZFHMIN): New.
3757 (MASK_ZFH): Ditto.
3758 (TARGET_ZFHMIN): Ditto.
3759 (TARGET_ZFH): Ditto.
3760 * config/riscv/riscv.cc (riscv_output_move): Handle HFmode move
3761 for zfh and zfhmin.
3762 (riscv_emit_float_compare): Handle HFmode.
3763 * config/riscv/riscv.md (ANYF): Add HF.
3764 (SOFTF): Add HF.
3765 (load): Ditto.
3766 (store): Ditto.
3767 (truncsfhf2): New.
3768 (truncdfhf2): Ditto.
3769 (extendhfsf2): Ditto.
3770 (extendhfdf2): Ditto.
3771 (*movhf_hardfloat): Ditto.
3772 (*movhf_softfloat): Make sure not ZFHMIN.
3773 * config/riscv/riscv.opt (riscv_zf_subext): New.
3774
3775 2022-08-16 Kito Cheng <kito.cheng@sifive.com>
3776
3777 * config/riscv/riscv-builtins.cc: include stringpool.h
3778 (riscv_float16_type_node): New.
3779 (riscv_init_builtin_types): Ditto.
3780 (riscv_init_builtins): Call riscv_init_builtin_types.
3781 * config/riscv/riscv-modes.def (HF): New.
3782 * config/riscv/riscv.cc (riscv_output_move): Handle HFmode.
3783 (riscv_mangle_type): New.
3784 (riscv_scalar_mode_supported_p): Ditto.
3785 (riscv_libgcc_floating_mode_supported_p): Ditto.
3786 (riscv_excess_precision): Ditto.
3787 (riscv_floatn_mode): Ditto.
3788 (riscv_init_libfuncs): Ditto.
3789 (TARGET_MANGLE_TYPE): Ditto.
3790 (TARGET_SCALAR_MODE_SUPPORTED_P): Ditto.
3791 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Ditto.
3792 (TARGET_INIT_LIBFUNCS): Ditto.
3793 (TARGET_C_EXCESS_PRECISION): Ditto.
3794 (TARGET_FLOATN_MODE): Ditto.
3795 * config/riscv/riscv.md (mode): Add HF.
3796 (softload): Add HF.
3797 (softstore): Ditto.
3798 (fmt): Ditto.
3799 (UNITMODE): Ditto.
3800 (movhf): New.
3801 (*movhf_softfloat): New.
3802
3803 2022-08-16 Richard Biener <rguenther@suse.de>
3804
3805 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
3806 Do not walk further if we are leaving the current loop.
3807
3808 2022-08-16 Sergei Trofimovich <siarheit@google.com>
3809
3810 PR driver/106624
3811 * gcc.cc (driver::detect_jobserver): Allocate storage xputenv()
3812 argument using xstrdup().
3813
3814 2022-08-16 Aldy Hernandez <aldyh@redhat.com>
3815
3816 * gimple-range-path.cc (path_range_query::import_p): Rename to...
3817 (path_range_query::exit_dependency_p): ...this.
3818 (path_range_query::dump): Rename imports to exit dependencies.
3819 (path_range_query::compute_ranges_in_phis): Same.
3820 (path_range_query::compute_ranges_in_block): Same.
3821 (path_range_query::adjust_for_non_null_uses): Same.
3822 (path_range_query::compute_ranges): Same.
3823 (path_range_query::compute_phi_relations): Same.
3824 (path_range_query::add_to_imports): Rename to...
3825 (path_range_query::add_to_exit_dependencies): ...this.
3826 (path_range_query::compute_imports): Rename to...
3827 (path_range_query::compute_exit_dependencies): ...this.
3828 * gimple-range-path.h (class path_range_query): Rename imports to
3829 exit dependencies.
3830
3831 2022-08-16 Martin Liska <mliska@suse.cz>
3832
3833 * value-range-storage.h (class obstack_vrange_allocator): Mark
3834 the class as final.
3835 (class ggc_vrange_allocator): Likewise.
3836
3837 2022-08-16 Martin Liska <mliska@suse.cz>
3838
3839 * value-range-equiv.h (class value_range_equiv): Add virtual
3840 destructor.
3841 * value-range.h: Likewise.
3842
3843 2022-08-16 Richard Biener <rguenther@suse.de>
3844
3845 PR middle-end/106630
3846 * match.pd ((T)(x * CST) -> (T)x * CST): Restrict to
3847 narrowing conversions.
3848
3849 2022-08-16 Martin Liska <mliska@suse.cz>
3850
3851 * value-range-equiv.h (class value_range_equiv):
3852
3853 2022-08-16 Martin Liska <mliska@suse.cz>
3854
3855 * config/i386/i386-features.h (class general_scalar_chain): Add
3856 final override for a method.
3857 (class timode_scalar_chain): Likewise.
3858
3859 2022-08-16 Richard Biener <rguenther@suse.de>
3860
3861 * doc/invoke.texi (max-jump-thread-paths): Adjust.
3862
3863 2022-08-16 Martin Liska <mliska@suse.cz>
3864
3865 * opts-common.cc (jobserver_info::connect): Open fifo
3866 in non-blocking mode.
3867
3868 2022-08-16 Kewen.Lin <linkw@gcc.gnu.org>
3869
3870 PR target/103353
3871 * config/rs6000/mma.md (define_expand movoo): Move TARGET_MMA condition
3872 check to preparation statements and add handlings for !TARGET_MMA.
3873 (define_expand movxo): Likewise.
3874
3875 2022-08-16 Kewen Lin <linkw@linux.ibm.com>
3876
3877 PR tree-optimization/106322
3878 * tree-vect-stmts.cc (vectorizable_call): Don't allow
3879 vect_emulated_vector_p type for both vectype_in and vectype_out.
3880
3881 2022-08-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3882
3883 * common/config/xtensa/xtensa-common.cc
3884 (xtensa_option_optimization_table): Add OPT_fsplit_wide_types_early
3885 for OPT_LEVELS_ALL in order to restore pre-GCC10 behavior.
3886
3887 2022-08-15 Andrew MacLeod <amacleod@redhat.com>
3888
3889 PR tree-optimization/106621
3890 * value-range.cc (irange::set): Check for POLY_INT_CST early.
3891
3892 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
3893
3894 * config/i386/i386-features.cc
3895 (timode_scalar_chain::compute_convert_gain): Provide costs for
3896 shifts and rotates.
3897 (timode_scalar_chain::convert_insn): Handle ASHIFTRT, ROTATERT
3898 and ROTATE just like existing ASHIFT and LSHIFTRT cases.
3899 (timode_scalar_to_vector_candidate_p): Handle all shifts and
3900 rotates by integer constants between 0 and 127.
3901
3902 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
3903
3904 * config/i386/i386-features.cc
3905 (timode_scalar_chain::compute_convert_gain): Provide gains for
3906 comparisons against 0/-1, including "*testti" patterns.
3907
3908 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
3909
3910 PR tree-optimization/64992
3911 PR tree-optimization/98956
3912 * match.pd (ne (lshift @0 @1) 0): Simplify (X << C) != 0 to X
3913 when X is zero_one_valued_p and the shift constant C is valid.
3914 (eq (lshift @0 @1) 0): Likewise, simplify (X << C) == 0 to !X
3915 when X is zero_one_valued_p and the shift constant C is valid.
3916
3917 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
3918 Richard Biener <rguenther@suse.de>
3919
3920 PR tree-optimization/71343
3921 * match.pd (op (lshift @0 @1) (lshift @2 @1)): Optimize the
3922 expression (X<<C) + (Y<<C) to (X+Y)<<C for multiple operators.
3923 (op (rshift @0 @1) (rshift @2 @1)): Likewise, simplify (X>>C)^(Y>>C)
3924 to (X^Y)>>C for binary logical operators, AND, IOR and XOR.
3925
3926 2022-08-15 Richard Biener <rguenther@suse.de>
3927
3928 * gimple-range-path.cc (range_on_path_entry): Just
3929 call range_on_entry.
3930
3931 2022-08-15 Jakub Jelinek <jakub@redhat.com>
3932
3933 PR rtl-optimization/106590
3934 * ifcvt.cc (check_for_cc_cmp_clobbers): New function.
3935 (noce_convert_multiple_sets_1): If SEQ sets or clobbers any regs
3936 mentioned in cc_cmp or rev_cc_cmp, don't consider seq2 for any
3937 further conditional moves.
3938
3939 2022-08-15 konglin1 <lingling.kong@intel.com>
3940
3941 * config/i386/i386-builtin-types.def (BFLOAT16): New primitive type.
3942 * config/i386/i386-builtins.cc : Support __bf16 type for i386 backend.
3943 (ix86_register_bf16_builtin_type): New function.
3944 (ix86_bf16_type_node): New.
3945 (ix86_bf16_ptr_type_node): Ditto.
3946 (ix86_init_builtin_types): Add ix86_register_bf16_builtin_type function call.
3947 * config/i386/i386-modes.def (FLOAT_MODE): Add BFmode.
3948 (ADJUST_FLOAT_FORMAT): Ditto.
3949 * config/i386/i386.cc (classify_argument): Handle BFmode.
3950 (construct_container): Ditto.
3951 (function_value_32): Return __bf16 by %xmm0.
3952 (function_value_64): Return __bf16 by SSE register.
3953 (ix86_output_ssemov): Handle BFmode.
3954 (ix86_legitimate_constant_p): Disable BFmode constant double.
3955 (ix86_secondary_reload): Require gpr as intermediate register
3956 to store __bf16 from sse register when sse4 is not available.
3957 (ix86_scalar_mode_supported_p): Enable __bf16 under sse2.
3958 (ix86_mangle_type): Add manlging for __bf16 type.
3959 (ix86_invalid_conversion): New function for target hook.
3960 (ix86_invalid_unary_op): Ditto.
3961 (ix86_invalid_binary_op): Ditto.
3962 (TARGET_INVALID_CONVERSION): New define for target hook.
3963 (TARGET_INVALID_UNARY_OP): Ditto.
3964 (TARGET_INVALID_BINARY_OP): Ditto.
3965 * config/i386/i386.h (host_detect_local_cpu): Add BFmode.
3966 * config/i386/i386.md ("mode"): Add BFmode.
3967 (MODE_SIZE): Ditto.
3968 (X87MODEFH): Ditto.
3969 (HFBF): Add new define_mode_iterator.
3970 (*pushhf_rex64): Change for BFmode.
3971 (*push<mode>_rex64): Ditto.
3972 (*pushhf): Ditto.
3973 (*push<mode>): Ditto.
3974 (MODESH): Ditto.
3975 (hfbfconstf): Add new define_mode_attr.
3976 (*mov<mode>_internal): Add BFmode.
3977
3978 2022-08-13 Roger Sayle <roger@nextmovesoftware.com>
3979 Uroš Bizjak <ubizjak@gmail.com>
3980
3981 * config/i386/predicates.md (const_0_to_255_not_mul_8_operand):
3982 New predicate for values between 0/1 and 255, not multiples of 8.
3983 * config/i386/sse.md (ashlv1ti3): Delay lowering of logical left
3984 shifts by constant bit counts.
3985 (*ashlvti3_internal): New define_insn_and_split that lowers
3986 logical left shifts by constant bit counts, that aren't multiples
3987 of 8, before reload.
3988 (lshrv1ti3): Delay lowering of logical right shifts by constant.
3989 (*lshrv1ti3_internal): New define_insn_and_split that lowers
3990 logical right shifts by constant bit counts, that aren't multiples
3991 of 8, before reload.
3992 (ashrv1ti3):: Delay lowering of arithmetic right shifts by
3993 constant bit counts.
3994 (*ashrv1ti3_internal): New define_insn_and_split that lowers
3995 arithmetic right shifts by constant bit counts before reload.
3996 (rotlv1ti3): Delay lowering of rotate left by constant.
3997 (*rotlv1ti3_internal): New define_insn_and_split that lowers
3998 rotate left by constant bits counts before reload.
3999 (rotrv1ti3): Delay lowering of rotate right by constant.
4000 (*rotrv1ti3_internal): New define_insn_and_split that lowers
4001 rotate right by constant bits counts before reload.
4002
4003 2022-08-12 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4004
4005 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m55 options.
4006
4007 2022-08-12 Jan Hubicka <hubicka@ucw.cz>
4008
4009 PR middle-end/106057
4010 * ipa-devirt.cc (type_or_derived_type_possibly_instantiated_p): New
4011 function.
4012 (possible_polymorphic_call_targets): Use it.
4013
4014 2022-08-12 Andrew Carlotti <andrew.carlotti@arm.com>
4015
4016 * tree-ssa-loop.h: Improve comment
4017
4018 2022-08-12 Jakub Jelinek <jakub@redhat.com>
4019
4020 PR tree-optimization/106506
4021 * tree-ssa-phiopt.cc (spaceship_replacement): Don't punt for
4022 is_cast or orig_use_lhs cases if phi_bb has 3 predecessors.
4023
4024 2022-08-12 Richard Biener <rguenther@suse.de>
4025
4026 PR tree-optimization/106593
4027 * tree-ssa-threadbackward.cc (back_threader::find_paths):
4028 If the imports from the conditional do not satisfy
4029 gimple_range_ssa_p don't try to thread anything.
4030
4031 2022-08-12 Tamar Christina <tamar.christina@arm.com>
4032
4033 PR target/106524
4034 * config/aarch64/aarch64-sve.md (*fcmuo<mode>_nor_combine,
4035 *fcmuo<mode>_bic_combine): Don't accept comparisons against zero.
4036
4037 2022-08-12 Tim Lange <mail@tim-lange.me>
4038
4039 PR analyzer/106000
4040 * doc/invoke.texi: Add Wanalyzer-out-of-bounds.
4041
4042 2022-08-12 Andrew Pinski <apinski@marvell.com>
4043
4044 * config/aarch64/aarch64.md: Remove comment
4045 about MD_INCLUDES as it is out of date and not needed.
4046
4047 2022-08-11 Richard Biener <rguenther@suse.de>
4048
4049 * gimple-range-path.cc (path_range_query::compute_imports):
4050 Restrict walking SSA defs to blocks inside the path. Track
4051 the same operands as range_def_chain::get_def_chain does.
4052
4053 2022-08-11 Richard Biener <rguenther@suse.de>
4054
4055 PR tree-optimization/106514
4056 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
4057 Compute and unwind both m_imports and interesting on the fly during
4058 path discovery.
4059 (back_threader::find_paths): Compute the original m_imports
4060 from just the SSA uses of the exit conditional. Drop
4061 handling single_succ_to_potentially_threadable_block.
4062 * gimple-range-path.cc (path_range_query::ssa_range_in_phi): Handle
4063 constant PHI arguments without crashing. Use PHI_ARG_DEF_FROM_EDGE.
4064
4065 2022-08-11 Richard Biener <rguenther@suse.de>
4066
4067 * gimple-range-path.h (path_range_query::compute_imports):
4068 Take path as argument, not the exit block.
4069 * gimple-range-path.cc (path_range_query::compute_imports):
4070 Likewise, and adjust, avoiding possibly stale m_path.
4071 (path_range_query::compute_outgoing_relations): Register
4072 relations for all conditionals.
4073 * tree-ssa-threadbackward.cc (back_threader::find_paths):
4074 Adjust.
4075
4076 2022-08-11 Kewen Lin <linkw@linux.ibm.com>
4077
4078 * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Fix the
4079 oversight on ENB_CELL by simplifying with rs6000_builtin_is_supported.
4080 (rs6000_expand_builtin): Simplify with rs6000_builtin_is_supported.
4081
4082 2022-08-11 Kewen Lin <linkw@linux.ibm.com>
4083
4084 * config/rs6000/rs6000-internal.h (rs6000_global_entry_point_needed_p):
4085 Remove function declaration.
4086
4087 2022-08-10 Richard Biener <rguenther@suse.de>
4088
4089 PR tree-optimization/106513
4090 * gimple-ssa-store-merging.cc (do_shift_rotate): Use uint64_t
4091 for head_marker.
4092
4093 2022-08-10 Martin Liska <mliska@suse.cz>
4094
4095 PR lto/106328
4096 * opts-jobserver.h (struct jobserver_info): Add pipefd.
4097 (jobserver_info::connect): New.
4098 (jobserver_info::disconnect): Likewise.
4099 (jobserver_info::get_token): Likewise.
4100 (jobserver_info::return_token): Likewise.
4101 * opts-common.cc: Implement the new functions.
4102
4103 2022-08-10 Martin Liska <mliska@suse.cz>
4104
4105 * opts-jobserver.h: Add one member.
4106 * opts-common.cc (jobserver_info::jobserver_info): Parse FIFO
4107 format of --jobserver-auth.
4108
4109 2022-08-10 Martin Liska <mliska@suse.cz>
4110
4111 * gcc.cc (driver::detect_jobserver): Remove and move to
4112 jobserver.h.
4113 * lto-wrapper.cc (jobserver_active_p): Likewise.
4114 (run_gcc): Likewise.
4115 * opts-jobserver.h: New file.
4116 * opts-common.cc (jobserver_info::jobserver_info): New function.
4117
4118 2022-08-09 Roger Sayle <roger@nextmovesoftware.com>
4119
4120 * config/i386/i386-features.cc (scalar_chain::convert_compare):
4121 Create new pseudos only when/if needed. Add support for TEST,
4122 i.e. (COMPARE (AND x y) (const_int 0)), using UNSPEC_PTEST.
4123 When broadcasting V2DImode and V4SImode use new pseudo register.
4124 (timode_scalar_chain::convert_op): Do nothing if operand is
4125 already V1TImode. Avoid generating useless SUBREG conversions,
4126 i.e. (SUBREG:V1TImode (REG:V1TImode) 0). Handle CONST_WIDE_INT
4127 in addition to CONST_INT by using CONST_SCALAR_INT_P.
4128 (convertible_comparison_p): Use CONST_SCALAR_INT_P to match both
4129 CONST_WIDE_INT and CONST_INT. Recognize new *testti_doubleword
4130 pattern as an STV candidate.
4131 (timode_scalar_to_vector_candidate_p): Allow CONST_SCALAR_INT_P
4132 operands in binary logic operations.
4133 * config/i386/i386.cc (ix86_rtx_costs) <case UNSPEC>: Add costs
4134 for UNSPEC_PTEST; a PTEST that performs an AND has the same cost
4135 as regular PTEST, i.e. cost->sse_op.
4136 * config/i386/i386.md (*testti_doubleword): New pre-reload
4137 define_insn_and_split that recognizes comparison of TI mode AND
4138 against zero.
4139 * config/i386/sse.md (*ptest<mode>_and): New pre-reload
4140 define_insn_and_split that recognizes UNSPEC_PTEST of identical
4141 AND operands.
4142
4143 2022-08-09 Roger Sayle <roger@nextmovesoftware.com>
4144 Richard Biener <rguenther@suse.de>
4145
4146 PR middle-end/21137
4147 PR tree-optimization/98954
4148 * fold-const.cc (fold_binary_loc): Remove optimizations to
4149 optimize ((X >> C1) & C2) ==/!= 0.
4150 * match.pd (cmp (bit_and (lshift @0 @1) @2) @3): Remove wi::ctz
4151 check, and handle all values of INTEGER_CSTs @2 and @3.
4152 (cmp (bit_and (rshift @0 @1) @2) @3): Likewise, remove wi::clz
4153 checks, and handle all values of INTEGER_CSTs @2 and @3.
4154
4155 2022-08-09 David Malcolm <dmalcolm@redhat.com>
4156
4157 * doc/invoke.texi (Static Analyzer Options): Add notes on which
4158 functions the analyzer has hardcoded knowledge of.
4159
4160 2022-08-09 Andrew Stubbs <ams@codesourcery.com>
4161
4162 * config/gcn/gcn.cc (gcn_function_value): Allow vector return values.
4163 (num_arg_regs): Allow vector arguments.
4164 (gcn_function_arg): Likewise.
4165 (gcn_function_arg_advance): Likewise.
4166 (gcn_arg_partial_bytes): Likewise.
4167 (gcn_return_in_memory): Likewise.
4168 (gcn_expand_epilogue): Get return value from v8.
4169 * config/gcn/gcn.h (RETURN_VALUE_REG): Set to v8.
4170 (FIRST_PARM_REG): USE FIRST_SGPR_REG for clarity.
4171 (FIRST_VPARM_REG): New.
4172 (FUNCTION_ARG_REGNO_P): Allow vector parameters.
4173 (struct gcn_args): Add vnum field.
4174 (LIBCALL_VALUE): All vector return values.
4175 * config/gcn/gcn.md (gcn_call_value): Add vector constraints.
4176 (gcn_call_value_indirect): Likewise.
4177
4178 2022-08-09 Richard Biener <rguenther@suse.de>
4179
4180 * omp-expand.cc (expand_omp_atomic_load): Emit GIMPLE
4181 directly. Avoid update_ssa when in SSA form.
4182 (expand_omp_atomic_store): Likewise.
4183 (expand_omp_atomic_fetch_op): Avoid update_ssa when in SSA
4184 form.
4185 (expand_omp_atomic_pipeline): Likewise.
4186 (expand_omp_atomic_mutex): Likewise.
4187 * tree-parloops.cc (gen_parallel_loop): Use
4188 TODO_update_ssa_no_phi after loop_version.
4189
4190 2022-08-09 Richard Biener <rguenther@suse.de>
4191
4192 * doc/invoke.texi (max-fsm-thread-length): Remove.
4193 * params.opt (max-fsm-thread-length): Likewise.
4194 * tree-ssa-threadbackward.cc
4195 (back_threader_profitability::profitable_path_p): Do not
4196 check max-fsm-thread-length.
4197
4198 2022-08-09 Richard Biener <rguenther@suse.de>
4199
4200 PR tree-optimization/106514
4201 * params.opt (max-jump-thread-paths): New.
4202 * doc/invoke.texi (max-jump-thread-paths): Document.
4203 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
4204 Honor max-jump-thread-paths, take overall_path argument.
4205 (back_threader::find_paths): Pass 1 as initial overall_path.
4206
4207 2022-08-09 Tobias Burnus <tobias@codesourcery.com>
4208
4209 PR middle-end/106492
4210 * omp-low.cc (lower_rec_input_clauses): Add missing folding
4211 to data type of linear-clause list item.
4212
4213 2022-08-08 Andrew MacLeod <amacleod@redhat.com>
4214
4215 PR tree-optimization/106556
4216 * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use the
4217 type of the cond_expr operands being evaluted.
4218
4219 2022-08-08 Tom Honermann <tom@honermann.net>
4220
4221 * ginclude/stdatomic.h (atomic_char8_t,
4222 ATOMIC_CHAR8_T_LOCK_FREE): New typedef and macro.
4223
4224 2022-08-08 Andrew Pinski <apinski@marvell.com>
4225
4226 PR middle-end/103645
4227 * gimplify.cc (gimplify_init_constructor): Don't build/add
4228 gimple assignment of an empty type.
4229
4230 2022-08-08 Richard Biener <rguenther@suse.de>
4231
4232 PR lto/106540
4233 PR lto/106334
4234 * dwarf2out.cc (dwarf2out_register_external_die): Restore
4235 original assert.
4236 * lto-streamer-in.cc (lto_read_tree_1): Use lto_input_tree_1
4237 to input DECL_INITIAL, avoiding to commit drefs.
4238
4239 2022-08-07 Roger Sayle <roger@nextmovesoftware.com>
4240
4241 * config/i386/i386.md (*cmp<dwi>_doubleword): Change predicate
4242 for x86_64_hilo_general_operand to general operand. Call
4243 force_reg on parts that are not x86_64_immediate_operand.
4244
4245 2022-08-05 David Malcolm <dmalcolm@redhat.com>
4246
4247 PR analyzer/105947
4248 * doc/invoke.texi: Add -Wanalyzer-jump-through-null.
4249
4250 2022-08-05 Roger Sayle <roger@nextmovesoftware.com>
4251
4252 * expmed.cc (emit_store_flag_1): Move code to expand double word
4253 equality and inequality against zero or -1, using word operations,
4254 to after trying to use the backend's cstore<mode>4 optab/expander.
4255
4256 2022-08-05 Tamar Christina <tamar.christina@arm.com>
4257
4258 PR middle-end/106534
4259 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Guard the
4260 value_replacement and store_elim from diamonds.
4261
4262 2022-08-05 Richard Biener <rguenther@suse.de>
4263
4264 * tree-ssa-threadbackward.cc (back_threader::maybe_register_path):
4265 Check whether the registry register_path rejected the path.
4266 (back_threader_registry::register_path): Return whether
4267 register_jump_thread succeeded.
4268
4269 2022-08-05 Aldy Hernandez <aldyh@redhat.com>
4270
4271 PR tree-optimization/106514
4272 * value-range.cc (unsupported_range::unsupported_range): Move...
4273 * value-range.h (unsupported_range::unsupported_range): ...here.
4274 (unsupported_range::set_undefined): New.
4275
4276 2022-08-05 Richard Biener <rguenther@suse.de>
4277
4278 PR tree-optimization/106533
4279 * tree-loop-distribution.cc (loop_distribution::execute): Continue
4280 analyzing the inner loops when find_seed_stmts_for_distribution
4281 fails.
4282
4283 2022-08-05 Andrew Pinski <apinski@marvell.com>
4284
4285 * config/riscv/predicates.md (splittable_const_int_operand):
4286 Remove the check for TARGET_64BIT for single bit const values.
4287
4288 2022-08-04 Andrew MacLeod <amacleod@redhat.com>
4289
4290 PR tree-optimization/106514
4291 * gimple-range-path.cc (path_range_query::compute_ranges_in_block):
4292 Use EXECUTE_IF_AND_IN_BITMAP to loop over 2 bitmaps.
4293
4294 2022-08-04 Tamar Christina <tamar.christina@arm.com>
4295
4296 * match.pd: New bit_not rule.
4297
4298 2022-08-04 Tamar Christina <tamar.christina@arm.com>
4299
4300 PR middle-end/106519
4301 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Check final phi edge for
4302 diamond shapes.
4303
4304 2022-08-04 Sam Feifer <sfeifer@redhat.com>
4305
4306 PR tree-optimization/106243
4307 * match.pd (-x & 1): New simplification.
4308
4309 2022-08-04 Richard Biener <rguenther@suse.de>
4310
4311 PR tree-optimization/106521
4312 * gimple-loop-jam.cc (tree_loop_unroll_and_jam): Perform
4313 CFG cleanup manually before rewriting into LC SSA.
4314
4315 2022-08-04 Richard Biener <rguenther@suse.de>
4316
4317 * tree-ssa-threadbackward.cc (populate_worklist): Remove.
4318 (back_threader::resolve_phi): Likewise.
4319 (back_threader::find_paths_to_names): Rewrite greedy search.
4320
4321 2022-08-04 Ilya Leoshkevich <iii@linux.ibm.com>
4322
4323 * config/s390/vector.md (V_HW_FT): New iterator.
4324 * config/s390/vx-builtins.md (vsel<mode>): Use V_HW_FT instead
4325 of V_HW.
4326
4327 2022-08-03 Michael Meissner <meissner@linux.ibm.com>
4328
4329 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove code
4330 setting -mblock-ops-vector-pair.
4331
4332 2022-08-03 Andrew MacLeod <amacleod@redhat.com>
4333
4334 PR tree-optimization/106514
4335 * value-relation.cc (path_oracle::killing_def) Do not walk the
4336 equivalence set clearing bits.
4337
4338 2022-08-03 Tamar Christina <tamar.christina@arm.com>
4339
4340 * tree-ssa-phiopt.cc (minmax_replacement): Optionally search for the phi
4341 sequence of a three-way conditional.
4342 (replace_phi_edge_with_variable): Support diamonds.
4343 (tree_ssa_phiopt_worker): Detect diamond phi structure for three-way
4344 min/max.
4345 (strip_bit_not, invert_minmax_code): New.
4346
4347 2022-08-03 Richard Earnshaw <rearnsha@arm.com>
4348
4349 PR rtl-optimization/106187
4350 * alias.h (mems_same_for_tbaa_p): Declare.
4351 * alias.cc (mems_same_for_tbaa_p): New function.
4352 * dse.cc (record_store): Use it instead of open-coding
4353 alias check.
4354 * cselib.h (cselib_redundant_set_p): Declare.
4355 * cselib.cc: Include alias.h
4356 (cselib_redundant_set_p): New function.
4357 * cfgcleanup.cc: (mark_effect): Use cselib_redundant_set_p instead
4358 of rtx_equal_for_cselib_p.
4359 * postreload.cc (reload_cse_simplify): Use cselib_redundant_set_p.
4360 (reload_cse_noop_set_p): Delete.
4361
4362 2022-08-03 Martin Liska <mliska@suse.cz>
4363
4364 * doc/gcov-dump.texi: Document the new option.
4365 * gcov-dump.cc (main): Parse the new option.
4366 (print_usage): Show the option.
4367 (tag_counters): Sort key:value pairs of TOP N counter.
4368
4369 2022-08-03 Martin Liska <mliska@suse.cz>
4370
4371 * profile.cc (compute_branch_probabilities): Do not collect
4372 stats unless TDF_DETAILS.
4373
4374 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
4375 Uroš Bizjak <ubizjak@gmail.com>
4376
4377 PR target/47949
4378 * config/i386/i386.md (peephole2): New peephole2 to convert
4379 SWI48 moves to/from %rax/%eax where the src is dead to xchg,
4380 when optimizing for minimal size with -Oz.
4381
4382 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
4383
4384 * config/i386/i386.md (*cmp<dwi>_doubleword): Add a special case
4385 to split comparisons against -1 using AND and CMP -1 instructions.
4386
4387 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
4388
4389 * config/i386/i386-features.cc (compute_convert_gain): Add gain
4390 for converting suitable TImode shift to a V1TImode shift.
4391 (timode_scalar_chain::convert_insn): Add support for converting
4392 suitable ASHIFT and LSHIFTRT.
4393 (timode_scalar_to_vector_candidate_p): Consider logical shifts
4394 by integer constants that are multiples of 8 to be candidates.
4395
4396 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
4397 Segher Boessenkool <segher@kernel.crashing.org>
4398 Richard Sandiford <richard.sandiford@arm.com>
4399
4400 * simplify-rtx.cc (simplify_unary_operation_1) <ABS>: Add
4401 optimizations for CLRSB, PARITY, POPCOUNT, SS_ABS and LSHIFTRT
4402 that are all positive to complement the existing FFS and
4403 idempotent ABS simplifications.
4404 <SIGN_EXTEND>: Canonicalize SIGN_EXTEND to ZERO_EXTEND when
4405 val_signbit_known_clear_p is true of the operand.
4406 Simplify sign extensions of SUBREG truncations of operands
4407 that are already suitably (zero) extended.
4408 <ZERO_EXTEND>: Simplify zero extensions of SUBREG truncations
4409 of operands that are already suitably zero extended.
4410
4411 2022-08-02 Andrew MacLeod <amacleod@redhat.com>
4412
4413 PR tree-optimization/106510
4414 * gimple-range-fold.cc (fur_source::register_outgoing_edges):
4415 Check for unsupported statements early.
4416
4417 2022-08-02 Andrew MacLeod <amacleod@redhat.com>
4418
4419 PR tree-optimization/106474
4420 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Query
4421 range of equivalences that may contribute to the range.
4422
4423 2022-08-02 Jose E. Marchesi <jose.marchesi@oracle.com>
4424
4425 * btfout.cc (output_asm_btf_vlen_bytes): Do not use the CHAR
4426 encoding bit in BTF.
4427
4428 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
4429
4430 * gimple-range-fold.cc (fold_using_range::range_of_phi): Remove
4431 irange check.
4432 (tree_lower_bound): New.
4433 (tree_upper_bound): New.
4434 (fold_using_range::range_of_ssa_name_with_loop_info): Convert to
4435 vrange.
4436 * gimple-range-fold.h (range_of_ssa_name_with_loop_info): Change
4437 argument to vrange.
4438
4439 2022-08-02 Richard Biener <rguenther@suse.de>
4440
4441 * tree-ssa-threadbackward.cc
4442 (back_threader_profitability::profitable_path_p): Apply
4443 size constraints to all paths again.
4444
4445 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
4446
4447 * range-op-float.cc (finite_operands_p): New.
4448 (frelop_early_resolve): New.
4449 (default_frelop_fold_range): New.
4450 (class foperator_equal): New.
4451 (class foperator_not_equal): New.
4452 (class foperator_lt): New.
4453 (class foperator_le): New.
4454 (class foperator_gt): New.
4455 (class foperator_ge): New.
4456 (class foperator_unordered): New.
4457 (class foperator_ordered): New.
4458 (class foperator_relop_unknown): New.
4459 (floating_op_table::floating_op_table): Add above classes to
4460 floating op table.
4461 * value-range.h (frange::supports_p): Enable.
4462
4463 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
4464
4465 * tree-core.h (struct tree_ssa_name): Add frange_info and
4466 reshuffle the rest.
4467 * value-range-storage.cc (vrange_storage::alloc_slot): Add case
4468 for frange.
4469 (vrange_storage::set_vrange): Same.
4470 (vrange_storage::get_vrange): Same.
4471 (vrange_storage::fits_p): Same.
4472 (frange_storage_slot::alloc_slot): New.
4473 (frange_storage_slot::set_frange): New.
4474 (frange_storage_slot::get_frange): New.
4475 (frange_storage_slot::fits_p): New.
4476 * value-range-storage.h (class frange_storage_slot): New.
4477
4478 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
4479
4480 * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Limit ranger
4481 query to integrals.
4482
4483 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
4484
4485 * value-range.cc (frange::set): Initialize m_props and cleanup.
4486
4487 2022-08-02 Richard Biener <rguenther@suse.de>
4488
4489 PR tree-optimization/106497
4490 * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg):
4491 Also verify we can copy EDGE_COPY_SRC_JOINER_BLOCK.
4492
4493 2022-08-02 Martin Liska <mliska@suse.cz>
4494
4495 * profile.cc (compute_branch_probabilities): Dump details only
4496 if TDF_DETAILS.
4497 * symtab.cc (symtab_node::dump_base): Do not dump pointer unless
4498 TDF_ADDRESS is used, it makes comparison harder.
4499
4500 2022-08-02 Richard Biener <rguenther@suse.de>
4501
4502 PR tree-optimization/106498
4503 * omp-expand.cc (expand_omp_taskreg): Do not perform virtual
4504 SSA update here.
4505 (expand_omp_for): Or here.
4506 (execute_expand_omp): Instead schedule it here together
4507 with CFG cleanup via TODO.
4508
4509 2022-08-02 Richard Biener <rguenther@suse.de>
4510
4511 PR lto/106334
4512 * dwarf2out.cc (dwarf2out_register_external_die): Adjust
4513 assert.
4514
4515 2022-08-02 Richard Biener <rguenther@suse.de>
4516
4517 PR tree-optimization/106495
4518 * tree-ssa-threadbackward.cc
4519 (back_threader_profitability::profitable_path_p): If known_edge
4520 is probably never executed avoid threading.
4521
4522 2022-08-01 David Malcolm <dmalcolm@redhat.com>
4523
4524 * doc/invoke.texi (-Wanalyzer-putenv-of-auto-var): Fix copy&paste
4525 error.
4526
4527 2022-08-01 Roger Sayle <roger@nextmovesoftware.com>
4528 Uroš Bizjak <ubizjak@gmail.com>
4529
4530 PR target/106481
4531 * config/i386/i386-features.cc (timode_scalar_chain::convert_insn):
4532 Convert a CONST_SCALAR_INT_P in a REG_EQUAL note into a V1TImode
4533 CONST_VECTOR.
4534
4535 2022-08-01 H.J. Lu <hjl.tools@gmail.com>
4536
4537 PR target/83782
4538 * config/i386/i386.cc (ix86_ifunc_ref_local_ok): New.
4539 (TARGET_IFUNC_REF_LOCAL_OK): Use it.
4540
4541 2022-08-01 Jose E. Marchesi <jose.marchesi@oracle.com>
4542
4543 PR debug/106263
4544 * ctfc.h (struct ctf_dtdef): Add field linkage.
4545 * ctfc.cc (ctf_add_function): Set ctti_linkage.
4546 * dwarf2ctf.cc (gen_ctf_function_type): Pass a linkage for
4547 function types and subprograms.
4548 * btfout.cc (btf_asm_func_type): Emit linkage information for the
4549 function.
4550 (btf_dtd_emit_preprocess_cb): Propagate the linkage information
4551 for functions.
4552
4553 2022-08-01 Andrew Stubbs <ams@codesourcery.com>
4554 Jakub Jelinek <jakub@redhat.com>
4555
4556 * omp-simd-clone.cc (simd_clone_adjust): Convert shift_cnt to match
4557 the mask type.
4558
4559 2022-08-01 Sam Feifer <sfeifer@redhat.com>
4560
4561 PR tree-optimization/104992
4562 * match.pd (x / y * y == x): New simplification.
4563
4564 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
4565
4566 * value-range.cc (tree_compare): New.
4567 (frange::set): Make more general.
4568 (frange::normalize_kind): Cleanup and return bool.
4569 (frange::union_): Use normalize_kind return value.
4570 (frange::intersect): Same.
4571 (frange::verify_range): Remove unnecessary else.
4572 * value-range.h (vrp_val_max): Move before frange class.
4573 (vrp_val_min): Same.
4574 (frange::frange): Remove set to m_type.
4575
4576 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
4577
4578 * value-range.cc (vrange::supports_type_p): Use const_tree.
4579 (irange::supports_type_p): Same.
4580 (frange::supports_type_p): Same.
4581 * value-range.h (Value_Range::supports_type_p): Same.
4582 (irange::supports_p): Same.
4583
4584 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
4585
4586 * gimple-range-fold.cc (fold_using_range::range_of_phi): Only
4587 query SCEV for integers.
4588 (fold_using_range::range_of_ssa_name_with_loop_info): Remove
4589 irange check.
4590
4591 2022-07-31 Roger Sayle <roger@nextmovesoftware.com>
4592
4593 * config/i386/i386.md (define_expand <any_rotate>ti3): For
4594 rotations by 64 bits use new rot[lr]64ti2_doubleword pattern.
4595 (rot[lr]64ti2_doubleword): New post-reload splitter.
4596
4597 2022-07-31 Roger Sayle <roger@nextmovesoftware.com>
4598 H.J. Lu <hjl.tools@gmail.com>
4599
4600 PR target/106450
4601 * config/i386/i386-features.cc (timode_check_non_convertible_regs):
4602 Do nothing if REGNO is set in the REGS bitmap, or is a hard reg.
4603 (timode_remove_non_convertible_regs): Update comment.
4604 Call timode_check_non_convertible_reg on all TImode register
4605 DEFs and USEs in each instruction.
4606
4607 2022-07-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4608
4609 * config/xtensa/xtensa.md: Change hard register number used in
4610 the split patterns for indirect sibling call fixups from 10 to 11,
4611 the last free one for the CALL0 ABI.
4612
4613 2022-07-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4614
4615 * config/xtensa/xtensa.cc (xtensa_rtx_costs):
4616 Add new case for IF_THEN_ELSE.
4617
4618 2022-07-29 Andrew Stubbs <ams@codesourcery.com>
4619
4620 * config/gcn/gcn-valu.md (V_INT_noHI): New iterator.
4621 (<expander><mode>3<exec>): Use V_INT_noHI.
4622 (v<expander><mode>3<exec>): Likewise.
4623
4624 2022-07-29 Andrew Stubbs <ams@codesourcery.com>
4625
4626 * config/gcn/gcn.md (one_cmpldi2): New.
4627
4628 2022-07-29 Richard Biener <rguenther@suse.de>
4629
4630 PR tree-optimization/105679
4631 * tree-ssa-threadbackward.cc
4632 (back_threader_profitability::profitable_path_p): Avoid threading
4633 when the entry edge is probably never executed.
4634
4635 2022-07-29 Richard Biener <rguenther@suse.de>
4636
4637 PR tree-optimization/106422
4638 * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg):
4639 Check whether we can copy thread blocks and cancel the thread if not.
4640
4641 2022-07-29 Jakub Jelinek <jakub@redhat.com>
4642
4643 PR middle-end/106449
4644 * omp-expand.cc (expand_omp_simd): Fix up handling of pointer
4645 iterators in non-rectangular simd loops. Unshare fd->loops[i].n2
4646 or n2 before regimplifying it inside of a condition.
4647
4648 2022-07-29 Jakub Jelinek <jakub@redhat.com>
4649
4650 * omp-expand.cc (expand_omp_for_init_counts, expand_omp_for_init_vars,
4651 extract_omp_for_update_vars, expand_omp_for_ordered_loops,
4652 expand_omp_simd): Don't fold_convert second argument to
4653 fold_build_pointer_plus to sizetype.
4654
4655 2022-07-29 Lulu Cheng <chenglulu@loongson.cn>
4656
4657 * config.in: Regenerate.
4658 * config/loongarch/loongarch.h (ASM_PREFERRED_EH_DATA_FORMAT):
4659 Select the value of the macro definition according to whether
4660 HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT is defined.
4661 * configure: Regenerate.
4662 * configure.ac: Reinstate HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT test.
4663
4664 2022-07-29 Richard Biener <rguenther@suse.de>
4665
4666 * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
4667 Use CONVERT_EXPR_CODE_P.
4668
4669 2022-07-29 Richard Biener <rguenther@suse.de>
4670
4671 * tree-vect-patterns.cc (vect_recog_bool_pattern): Use
4672 get_vectype_for_scalar_type instead of
4673 vect_get_vector_types_for_stmt.
4674
4675 2022-07-28 David Malcolm <dmalcolm@redhat.com>
4676
4677 PR analyzer/105893
4678 * doc/invoke.texi: Add -Wanalyzer-putenv-of-auto-var.
4679
4680 2022-07-28 David Malcolm <dmalcolm@redhat.com>
4681
4682 * doc/invoke.texi (-fdiagnostics-show-cwe): Use uref rather than
4683 url.
4684 (Static Analyzer Options): Likewise. Add urefs for all of the
4685 warnings that have associated CWE identifiers.
4686
4687 2022-07-28 Maciej W. Rozycki <macro@embecosm.com>
4688
4689 * doc/implement-c.texi (Floating point implementation): Mention
4690 `-fno-trapping-math' in the context of FENV_ACCESS pragma.
4691 * doc/invoke.texi (Optimize Options): Clarify FENV_ACCESS pragma
4692 implication in the descriptions of `-fno-trapping-math' and
4693 `-frounding-math'.
4694
4695 2022-07-28 Maciej W. Rozycki <macro@embecosm.com>
4696
4697 * config/riscv/riscv.md (UNSPECV_FSNVSNAN): New constant.
4698 (QUIET_PATTERN): New int attribute.
4699 (f<quiet_pattern>_quiet<ANYF:mode><X:mode>4): Emit the intended
4700 RTL insns entirely within the preparation statements.
4701 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
4702 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Remove
4703 insns.
4704 (*riscv_fsnvsnan<mode>2): New insn.
4705
4706 2022-07-28 Richard Biener <rguenther@suse.de>
4707
4708 PR middle-end/106457
4709 * tree.cc (array_at_struct_end_p): Handle array objects
4710 specially.
4711
4712 2022-07-28 Jakub Jelinek <jakub@redhat.com>
4713
4714 PR tree-optimization/106099
4715 * internal-fn.def (TRAP): New internal fn.
4716 * internal-fn.h (expand_TRAP): Declare.
4717 * internal-fn.cc (expand_TRAP): Define.
4718 * gimple.cc (gimple_build_builtin_unreachable): For BUILT_IN_TRAP,
4719 use internal fn rather than builtin.
4720
4721 2022-07-27 Andrew Carlotti <andrew.carlotti@arm.com>
4722
4723 * doc/loop.texi: Refer to LOOPS_HAVE_RECORDED_EXITS instead.
4724
4725 2022-07-27 WANG Xuerui <i@xen0n.name>
4726
4727 * doc/invoke.texi: Document -m[no-]explicit-relocs for
4728 LoongArch.
4729
4730 2022-07-27 Maciej W. Rozycki <macro@embecosm.com>
4731
4732 * config/riscv/riscv.md (stack_protect_set_<mode>): Remove
4733 duplicate backslashes.
4734
4735 2022-07-27 Maciej W. Rozycki <macro@embecosm.com>
4736
4737 * config/riscv/riscv.cc (riscv_rtx_costs) <IF_THEN_ELSE>: New
4738 case.
4739
4740 2022-07-27 Jakub Jelinek <jakub@redhat.com>
4741
4742 PR debug/106261
4743 * cgraphunit.cc (cgraph_node::assemble_thunks_and_aliases): Don't
4744 output asm thunks for -dx.
4745
4746 2022-07-27 Jakub Jelinek <jakub@redhat.com>
4747
4748 PR middle-end/106332
4749 * opts-common.cc (candidates_list_and_hint): Add gcc_assert
4750 that candidates is not an empty vector.
4751
4752 2022-07-27 Xi Ruoyao <xry111@xry111.site>
4753
4754 * configure.ac (HAVE_AS_EXPLICIT_RELOCS): Define to 1 if the
4755 assembler supports explicit relocation for LoongArch.
4756 * configure: Regenerate.
4757 * config/loongarch/loongarch-opts.h (HAVE_AS_EXPLICIT_RELOCS):
4758 Define to 0 if not defined.
4759 * config/loongarch/genopts/loongarch.opt.in
4760 (TARGET_EXPLICIT_RELOCS): Default to HAVE_AS_EXPLICIT_RELOCS.
4761 * config/loongarch/loongarch.opt: Regenerate.
4762
4763 2022-07-26 Peter Bergner <bergner@linux.ibm.com>
4764
4765 PR c/106016
4766 * expr.cc (count_type_elements): Handle OPAQUE_TYPE.
4767
4768 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
4769
4770 * config/loongarch/loongarch-opts.cc: Modify the output message string
4771 of the warning.
4772
4773 2022-07-26 Martin Liska <mliska@suse.cz>
4774
4775 * doc/tm.texi.in: Fix placement of defmac.
4776 * doc/tm.texi: Copy.
4777
4778 2022-07-26 Martin Liska <mliska@suse.cz>
4779
4780 * doc/tm.texi.in: Fix cross @defmac and @hook.
4781 * doc/tm.texi: Copy.
4782
4783 2022-07-26 Aldy Hernandez <aldyh@redhat.com>
4784
4785 PR tree-optimization/106444
4786 * value-range-pretty-print.cc (vrange_printer::visit): Handle
4787 legacy ranges.
4788 (vrange_printer::print_irange_bound): Work on wide_int's.
4789 * value-range-pretty-print.h (print_irange_bound): Same.
4790 * value-range.cc (irange::get_nonzero_bits): Handle legacy ranges.
4791
4792 2022-07-26 Richard Biener <rguenther@suse.de>
4793
4794 * tree-ssa-alias.cc (ptr_derefs_may_alias_p): If ptr1
4795 points to a constant continue checking ptr2.
4796
4797 2022-07-26 Andrew Carlotti <Andrew.Carlotti@arm.com>
4798
4799 * config/aarch64/aarch64-builtins.cc
4800 (MODE_d_bf16, MODE_d_f16, MODE_d_f32, MODE_d_f64, MODE_d_s8)
4801 (MODE_d_s16, MODE_d_s32, MODE_d_s64, MODE_d_u8, MODE_d_u16)
4802 (MODE_d_u32, MODE_d_u64, MODE_d_p8, MODE_d_p16, MODE_d_p64)
4803 (MODE_q_bf16, MODE_q_f16, MODE_q_f32, MODE_q_f64, MODE_q_s8)
4804 (MODE_q_s16, MODE_q_s32, MODE_q_s64, MODE_q_u8, MODE_q_u16)
4805 (MODE_q_u32, MODE_q_u64, MODE_q_p8, MODE_q_p16, MODE_q_p64)
4806 (MODE_q_p128): Define macro to map to corresponding mode name.
4807 (QUAL_bf16, QUAL_f16, QUAL_f32, QUAL_f64, QUAL_s8, QUAL_s16)
4808 (QUAL_s32, QUAL_s64, QUAL_u8, QUAL_u16, QUAL_u32, QUAL_u64)
4809 (QUAL_p8, QUAL_p16, QUAL_p64, QUAL_p128): Define macro to map to
4810 corresponding qualifier name.
4811 (LENGTH_d, LENGTH_q): Define macro to map to "" or "q" suffix.
4812 (SIMD_INTR_MODE, SIMD_INTR_QUAL, SIMD_INTR_LENGTH_CHAR): Macro
4813 functions for the above mappings
4814 (VREINTERPRET_BUILTIN2, VREINTERPRET_BUILTINS1, VREINTERPRET_BUILTINS)
4815 (VREINTERPRETQ_BUILTIN2, VREINTERPRETQ_BUILTINS1)
4816 (VREINTERPRETQ_BUILTINS, VREINTERPRET_BUILTIN)
4817 (AARCH64_SIMD_VREINTERPRET_BUILTINS): New macros to create definitions
4818 for all vreinterpret intrinsics
4819 (enum aarch64_builtins): Add vreinterpret function codes
4820 (aarch64_init_simd_intrinsics): New
4821 (handle_arm_neon_h): Improved comment.
4822 (aarch64_general_fold_builtin): Fold vreinterpret calls
4823 * config/aarch64/arm_neon.h
4824 (vreinterpret_p8_f16, vreinterpret_p8_f64, vreinterpret_p8_s8)
4825 (vreinterpret_p8_s16, vreinterpret_p8_s32, vreinterpret_p8_s64)
4826 (vreinterpret_p8_f32, vreinterpret_p8_u8, vreinterpret_p8_u16)
4827 (vreinterpret_p8_u32, vreinterpret_p8_u64, vreinterpret_p8_p16)
4828 (vreinterpret_p8_p64, vreinterpretq_p8_f64, vreinterpretq_p8_s8)
4829 (vreinterpretq_p8_s16, vreinterpretq_p8_s32, vreinterpretq_p8_s64)
4830 (vreinterpretq_p8_f16, vreinterpretq_p8_f32, vreinterpretq_p8_u8)
4831 (vreinterpretq_p8_u16, vreinterpretq_p8_u32, vreinterpretq_p8_u64)
4832 (vreinterpretq_p8_p16, vreinterpretq_p8_p64, vreinterpretq_p8_p128)
4833 (vreinterpret_p16_f16, vreinterpret_p16_f64, vreinterpret_p16_s8)
4834 (vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_s64)
4835 (vreinterpret_p16_f32, vreinterpret_p16_u8, vreinterpret_p16_u16)
4836 (vreinterpret_p16_u32, vreinterpret_p16_u64, vreinterpret_p16_p8)
4837 (vreinterpret_p16_p64, vreinterpretq_p16_f64, vreinterpretq_p16_s8)
4838 (vreinterpretq_p16_s16, vreinterpretq_p16_s32, vreinterpretq_p16_s64)
4839 (vreinterpretq_p16_f16, vreinterpretq_p16_f32, vreinterpretq_p16_u8)
4840 (vreinterpretq_p16_u16, vreinterpretq_p16_u32, vreinterpretq_p16_u64)
4841 (vreinterpretq_p16_p8, vreinterpretq_p16_p64, vreinterpretq_p16_p128)
4842 (vreinterpret_p64_f16, vreinterpret_p64_f64, vreinterpret_p64_s8)
4843 (vreinterpret_p64_s16, vreinterpret_p64_s32, vreinterpret_p64_s64)
4844 (vreinterpret_p64_f32, vreinterpret_p64_u8, vreinterpret_p64_u16)
4845 (vreinterpret_p64_u32, vreinterpret_p64_u64, vreinterpret_p64_p8)
4846 (vreinterpret_p64_p16, vreinterpretq_p64_f64, vreinterpretq_p64_s8)
4847 (vreinterpretq_p64_s16, vreinterpretq_p64_s32, vreinterpretq_p64_s64)
4848 (vreinterpretq_p64_f16, vreinterpretq_p64_f32, vreinterpretq_p64_p128)
4849 (vreinterpretq_p64_u8, vreinterpretq_p64_u16, vreinterpretq_p64_p16)
4850 (vreinterpretq_p64_u32, vreinterpretq_p64_u64, vreinterpretq_p64_p8)
4851 (vreinterpretq_p128_p8, vreinterpretq_p128_p16, vreinterpretq_p128_f16)
4852 (vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64)
4853 (vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16)
4854 (vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16)
4855 (vreinterpretq_p128_u32, vreinterpret_f16_f64, vreinterpret_f16_s8)
4856 (vreinterpret_f16_s16, vreinterpret_f16_s32, vreinterpret_f16_s64)
4857 (vreinterpret_f16_f32, vreinterpret_f16_u8, vreinterpret_f16_u16)
4858 (vreinterpret_f16_u32, vreinterpret_f16_u64, vreinterpret_f16_p8)
4859 (vreinterpret_f16_p16, vreinterpret_f16_p64, vreinterpretq_f16_f64)
4860 (vreinterpretq_f16_s8, vreinterpretq_f16_s16, vreinterpretq_f16_s32)
4861 (vreinterpretq_f16_s64, vreinterpretq_f16_f32, vreinterpretq_f16_u8)
4862 (vreinterpretq_f16_u16, vreinterpretq_f16_u32, vreinterpretq_f16_u64)
4863 (vreinterpretq_f16_p8, vreinterpretq_f16_p128, vreinterpretq_f16_p16)
4864 (vreinterpretq_f16_p64, vreinterpret_f32_f16, vreinterpret_f32_f64)
4865 (vreinterpret_f32_s8, vreinterpret_f32_s16, vreinterpret_f32_s32)
4866 (vreinterpret_f32_s64, vreinterpret_f32_u8, vreinterpret_f32_u16)
4867 (vreinterpret_f32_u32, vreinterpret_f32_u64, vreinterpret_f32_p8)
4868 (vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpretq_f32_f16)
4869 (vreinterpretq_f32_f64, vreinterpretq_f32_s8, vreinterpretq_f32_s16)
4870 (vreinterpretq_f32_s32, vreinterpretq_f32_s64, vreinterpretq_f32_u8)
4871 (vreinterpretq_f32_u16, vreinterpretq_f32_u32, vreinterpretq_f32_u64)
4872 (vreinterpretq_f32_p8, vreinterpretq_f32_p16, vreinterpretq_f32_p64)
4873 (vreinterpretq_f32_p128, vreinterpret_f64_f16, vreinterpret_f64_f32)
4874 (vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_p64)
4875 (vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32)
4876 (vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16)
4877 (vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpretq_f64_f16)
4878 (vreinterpretq_f64_f32, vreinterpretq_f64_p8, vreinterpretq_f64_p16)
4879 (vreinterpretq_f64_p64, vreinterpretq_f64_s8, vreinterpretq_f64_s16)
4880 (vreinterpretq_f64_s32, vreinterpretq_f64_s64, vreinterpretq_f64_u8)
4881 (vreinterpretq_f64_u16, vreinterpretq_f64_u32, vreinterpretq_f64_u64)
4882 (vreinterpret_s64_f16, vreinterpret_s64_f64, vreinterpret_s64_s8)
4883 (vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_f32)
4884 (vreinterpret_s64_u8, vreinterpret_s64_u16, vreinterpret_s64_u32)
4885 (vreinterpret_s64_u64, vreinterpret_s64_p8, vreinterpret_s64_p16)
4886 (vreinterpret_s64_p64, vreinterpretq_s64_f64, vreinterpretq_s64_s8)
4887 (vreinterpretq_s64_s16, vreinterpretq_s64_s32, vreinterpretq_s64_f16)
4888 (vreinterpretq_s64_f32, vreinterpretq_s64_u8, vreinterpretq_s64_u16)
4889 (vreinterpretq_s64_u32, vreinterpretq_s64_u64, vreinterpretq_s64_p8)
4890 (vreinterpretq_s64_p16, vreinterpretq_s64_p64, vreinterpretq_s64_p128)
4891 (vreinterpret_u64_f16, vreinterpret_u64_f64, vreinterpret_u64_s8)
4892 (vreinterpret_u64_s16, vreinterpret_u64_s32, vreinterpret_u64_s64)
4893 (vreinterpret_u64_f32, vreinterpret_u64_u8, vreinterpret_u64_u16)
4894 (vreinterpret_u64_u32, vreinterpret_u64_p8, vreinterpret_u64_p16)
4895 (vreinterpret_u64_p64, vreinterpretq_u64_f64, vreinterpretq_u64_s8)
4896 (vreinterpretq_u64_s16, vreinterpretq_u64_s32, vreinterpretq_u64_s64)
4897 (vreinterpretq_u64_f16, vreinterpretq_u64_f32, vreinterpretq_u64_u8)
4898 (vreinterpretq_u64_u16, vreinterpretq_u64_u32, vreinterpretq_u64_p8)
4899 (vreinterpretq_u64_p16, vreinterpretq_u64_p64, vreinterpretq_u64_p128)
4900 (vreinterpret_s8_f16, vreinterpret_s8_f64, vreinterpret_s8_s16)
4901 (vreinterpret_s8_s32, vreinterpret_s8_s64, vreinterpret_s8_f32)
4902 (vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32)
4903 (vreinterpret_s8_u64, vreinterpret_s8_p8, vreinterpret_s8_p16)
4904 (vreinterpret_s8_p64, vreinterpretq_s8_f64, vreinterpretq_s8_s16)
4905 (vreinterpretq_s8_s32, vreinterpretq_s8_s64, vreinterpretq_s8_f16)
4906 (vreinterpretq_s8_f32, vreinterpretq_s8_u8, vreinterpretq_s8_u16)
4907 (vreinterpretq_s8_u32, vreinterpretq_s8_u64, vreinterpretq_s8_p8)
4908 (vreinterpretq_s8_p16, vreinterpretq_s8_p64, vreinterpretq_s8_p128)
4909 (vreinterpret_s16_f16, vreinterpret_s16_f64, vreinterpret_s16_s8)
4910 (vreinterpret_s16_s32, vreinterpret_s16_s64, vreinterpret_s16_f32)
4911 (vreinterpret_s16_u8, vreinterpret_s16_u16, vreinterpret_s16_u32)
4912 (vreinterpret_s16_u64, vreinterpret_s16_p8, vreinterpret_s16_p16)
4913 (vreinterpret_s16_p64, vreinterpretq_s16_f64, vreinterpretq_s16_s8)
4914 (vreinterpretq_s16_s32, vreinterpretq_s16_s64, vreinterpretq_s16_f16)
4915 (vreinterpretq_s16_f32, vreinterpretq_s16_u8, vreinterpretq_s16_u16)
4916 (vreinterpretq_s16_u32, vreinterpretq_s16_u64, vreinterpretq_s16_p8)
4917 (vreinterpretq_s16_p16, vreinterpretq_s16_p64, vreinterpretq_s16_p128)
4918 (vreinterpret_s32_f16, vreinterpret_s32_f64, vreinterpret_s32_s8)
4919 (vreinterpret_s32_s16, vreinterpret_s32_s64, vreinterpret_s32_f32)
4920 (vreinterpret_s32_u8, vreinterpret_s32_u16, vreinterpret_s32_u32)
4921 (vreinterpret_s32_u64, vreinterpret_s32_p8, vreinterpret_s32_p16)
4922 (vreinterpret_s32_p64, vreinterpretq_s32_f64, vreinterpretq_s32_s8)
4923 (vreinterpretq_s32_s16, vreinterpretq_s32_s64, vreinterpretq_s32_f16)
4924 (vreinterpretq_s32_f32, vreinterpretq_s32_u8, vreinterpretq_s32_u16)
4925 (vreinterpretq_s32_u32, vreinterpretq_s32_u64, vreinterpretq_s32_p8)
4926 (vreinterpretq_s32_p16, vreinterpretq_s32_p64, vreinterpretq_s32_p128)
4927 (vreinterpret_u8_f16, vreinterpret_u8_f64, vreinterpret_u8_s8)
4928 (vreinterpret_u8_s16, vreinterpret_u8_s32, vreinterpret_u8_s64)
4929 (vreinterpret_u8_f32, vreinterpret_u8_u16, vreinterpret_u8_u32)
4930 (vreinterpret_u8_u64, vreinterpret_u8_p8, vreinterpret_u8_p16)
4931 (vreinterpret_u8_p64, vreinterpretq_u8_f64, vreinterpretq_u8_s8)
4932 (vreinterpretq_u8_s16, vreinterpretq_u8_s32, vreinterpretq_u8_s64)
4933 (vreinterpretq_u8_f16, vreinterpretq_u8_f32, vreinterpretq_u8_u16)
4934 (vreinterpretq_u8_u32, vreinterpretq_u8_u64, vreinterpretq_u8_p8)
4935 (vreinterpretq_u8_p16, vreinterpretq_u8_p64, vreinterpretq_u8_p128)
4936 (vreinterpret_u16_f16, vreinterpret_u16_f64, vreinterpret_u16_s8)
4937 (vreinterpret_u16_s16, vreinterpret_u16_s32, vreinterpret_u16_s64)
4938 (vreinterpret_u16_f32, vreinterpret_u16_u8, vreinterpret_u16_u32)
4939 (vreinterpret_u16_u64, vreinterpret_u16_p8, vreinterpret_u16_p16)
4940 (vreinterpret_u16_p64, vreinterpretq_u16_f64, vreinterpretq_u16_s8)
4941 (vreinterpretq_u16_s16, vreinterpretq_u16_s32, vreinterpretq_u16_s64)
4942 (vreinterpretq_u16_f16, vreinterpretq_u16_f32, vreinterpretq_u16_u8)
4943 (vreinterpretq_u16_u32, vreinterpretq_u16_u64, vreinterpretq_u16_p8)
4944 (vreinterpretq_u16_p16, vreinterpretq_u16_p64, vreinterpretq_u16_p128)
4945 (vreinterpret_u32_f16, vreinterpret_u32_f64, vreinterpret_u32_s8)
4946 (vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_s64)
4947 (vreinterpret_u32_f32, vreinterpret_u32_u8, vreinterpret_u32_u16)
4948 (vreinterpret_u32_u64, vreinterpret_u32_p8, vreinterpret_u32_p16)
4949 (vreinterpret_u32_p64, vreinterpretq_u32_f64, vreinterpretq_u32_s8)
4950 (vreinterpretq_u32_s16, vreinterpretq_u32_s32, vreinterpretq_u32_s64)
4951 (vreinterpretq_u32_f16, vreinterpretq_u32_f32, vreinterpretq_u32_u8)
4952 (vreinterpretq_u32_u16, vreinterpretq_u32_u64, vreinterpretq_u32_p8)
4953 (vreinterpretq_u32_p16, vreinterpretq_u32_p64, vreinterpretq_u32_p128)
4954 (vreinterpretq_f64_p128, vreinterpretq_p128_f64, vreinterpret_bf16_u8)
4955 (vreinterpret_bf16_u16, vreinterpret_bf16_u32, vreinterpret_bf16_u64)
4956 (vreinterpret_bf16_s8, vreinterpret_bf16_s16, vreinterpret_bf16_s32)
4957 (vreinterpret_bf16_s64, vreinterpret_bf16_p8, vreinterpret_bf16_p16)
4958 (vreinterpret_bf16_p64, vreinterpret_bf16_f16, vreinterpret_bf16_f32)
4959 (vreinterpret_bf16_f64, vreinterpretq_bf16_u8, vreinterpretq_bf16_u16)
4960 (vreinterpretq_bf16_u32, vreinterpretq_bf16_u64, vreinterpretq_bf16_s8)
4961 (vreinterpretq_bf16_s16, vreinterpretq_bf16_s32, vreinterpretq_bf16_s64)
4962 (vreinterpretq_bf16_p8, vreinterpretq_bf16_p16, vreinterpretq_bf16_p64)
4963 (vreinterpretq_bf16_p128, vreinterpretq_bf16_f16)
4964 (vreinterpretq_bf16_f32, vreinterpretq_bf16_f64, vreinterpret_s8_bf16)
4965 (vreinterpret_s16_bf16, vreinterpret_s32_bf16, vreinterpret_s64_bf16)
4966 (vreinterpret_u8_bf16, vreinterpret_u16_bf16, vreinterpret_u32_bf16)
4967 (vreinterpret_u64_bf16, vreinterpret_f16_bf16, vreinterpret_f32_bf16)
4968 (vreinterpret_f64_bf16, vreinterpret_p8_bf16, vreinterpret_p16_bf16)
4969 (vreinterpret_p64_bf16, vreinterpretq_s8_bf16, vreinterpretq_s16_bf16)
4970 (vreinterpretq_s32_bf16, vreinterpretq_s64_bf16, vreinterpretq_u8_bf16)
4971 (vreinterpretq_u16_bf16, vreinterpretq_u32_bf16, vreinterpretq_u64_bf16)
4972 (vreinterpretq_f16_bf16, vreinterpretq_f32_bf16, vreinterpretq_f64_bf16)
4973 (vreinterpretq_p8_bf16, vreinterpretq_p16_bf16, vreinterpretq_p64_bf16)
4974 (vreinterpretq_p128_bf16): Delete
4975
4976 2022-07-26 Andrew Carlotti <andrew.carlotti@arm.com>
4977
4978 * config/aarch64/aarch64-builtins.cc
4979 (aarch64_simd_builtin_std_type): Rename to...
4980 (aarch64_int_or_fp_type): ...this, and allow irrelevant qualifiers.
4981 (aarch64_lookup_simd_builtin_type): Rename to...
4982 (aarch64_simd_builtin_type): ...this. Add const/pointer
4983 support, and extract table lookup to...
4984 (aarch64_lookup_simd_type_in_table): ...this function.
4985 (aarch64_init_crc32_builtins): Update to use aarch64_simd_builtin_type.
4986 (aarch64_init_fcmla_laneq_builtins): Ditto.
4987 (aarch64_init_simd_builtin_functions): Ditto.
4988
4989 2022-07-26 Andrew Carlotti <andrew.carlotti@arm.com>
4990
4991 * config/aarch64/aarch64-builtins.cc
4992 (aarch64_general_gimple_fold_builtin): Add combine.
4993
4994 2022-07-26 Richard Biener <rguenther@suse.de>
4995
4996 PR tree-optimization/106189
4997 * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
4998 Divide using offset_ints.
4999
5000 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
5001
5002 * common/config/loongarch/loongarch-common.cc:
5003 Enable '-fsection-anchors' when O1 and more advanced optimization.
5004 * config/loongarch/genopts/loongarch.opt.in: Add new option
5005 '-mexplicit-relocs', and enable by default.
5006 * config/loongarch/loongarch-protos.h (loongarch_split_move_insn_p):
5007 Delete function declaration.
5008 (loongarch_split_move_insn): Delete function declaration.
5009 (loongarch_split_symbol_type): Add function declaration.
5010 * config/loongarch/loongarch.cc (enum loongarch_address_type):
5011 Add new address type 'ADDRESS_LO_SUM'.
5012 (loongarch_classify_symbolic_expression): New function definitions.
5013 Classify the base of symbolic expression X, given that X appears in
5014 context CONTEXT.
5015 (loongarch_symbol_insns): Add a judgment condition TARGET_EXPLICIT_RELOCS.
5016 (loongarch_split_symbol_type): New function definitions.
5017 Determines whether the symbol load should be split into two instructions.
5018 (loongarch_valid_lo_sum_p): New function definitions.
5019 Return true if a LO_SUM can address a value of mode MODE when the LO_SUM
5020 symbol has type SYMBOL_TYPE.
5021 (loongarch_classify_address): Add handling of 'LO_SUM'.
5022 (loongarch_address_insns): Add handling of 'ADDRESS_LO_SUM'.
5023 (loongarch_signed_immediate_p): Sort code.
5024 (loongarch_12bit_offset_address_p): Return true if address type is ADDRESS_LO_SUM.
5025 (loongarch_const_insns): Add handling of 'HIGH'.
5026 (loongarch_split_move_insn_p): Add the static attribute to the function.
5027 (loongarch_emit_set): New function definitions.
5028 (loongarch_call_tls_get_addr): Add symbol handling when defining TARGET_EXPLICIT_RELOCS.
5029 (loongarch_legitimize_tls_address): Add symbol handling when defining the
5030 TARGET_EXPLICIT_RELOCS macro.
5031 (loongarch_split_symbol): New function definitions. Split symbol.
5032 (loongarch_legitimize_address): Add codes see if the address can split into a high part
5033 and a LO_SUM.
5034 (loongarch_legitimize_const_move): Add codes split moves of symbolic constants into
5035 high and low.
5036 (loongarch_split_move_insn): Delete function definitions.
5037 (loongarch_output_move): Add support for HIGH and LO_SUM.
5038 (loongarch_print_operand_reloc): New function definitions.
5039 Print symbolic operand OP, which is part of a HIGH or LO_SUM in context CONTEXT.
5040 (loongarch_memmodel_needs_release_fence): Sort code.
5041 (loongarch_print_operand): Rearrange alphabetical order and add H and L to support HIGH
5042 and LOW output.
5043 (loongarch_print_operand_address): Add handling of 'ADDRESS_LO_SUM'.
5044 (TARGET_MIN_ANCHOR_OFFSET): Define macro to -IMM_REACH/2.
5045 (TARGET_MAX_ANCHOR_OFFSET): Define macro to IMM_REACH/2-1.
5046 * config/loongarch/loongarch.md (movti): Delete the template.
5047 (*movti): Delete the template.
5048 (movtf): Delete the template.
5049 (*movtf): Delete the template.
5050 (*low<mode>): New template of normal symbol low address.
5051 (@tls_low<mode>): New template of tls symbol low address.
5052 (@ld_from_got<mode>): New template load address from got table.
5053 (@ori_l_lo12<mode>): New template.
5054 * config/loongarch/loongarch.opt: Update from loongarch.opt.in.
5055 * config/loongarch/predicates.md: Add support for symbol_type HIGH.
5056
5057 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
5058
5059 * config/loongarch/constraints.md (a): Delete the constraint.
5060 (b): A constant call not local address.
5061 (h): Delete the constraint.
5062 (t): Delete the constraint.
5063 * config/loongarch/loongarch-opts.cc (loongarch_config_target):
5064 Remove cModel type support other than normal.
5065 * config/loongarch/loongarch-protos.h (enum loongarch_symbol_type):
5066 Add new symbol type 'SYMBOL_PCREL', 'SYMBOL_TLS_IE' and 'SYMBOL_TLS_LE'.
5067 (loongarch_split_symbol): Delete useless function declarations.
5068 (loongarch_split_symbol_type): Delete useless function declarations.
5069 * config/loongarch/loongarch.cc (enum loongarch_address_type):
5070 Delete unnecessary comment information.
5071 (loongarch_symbol_binds_local_p): Modified the judgment order of label
5072 and symbol.
5073 (loongarch_classify_symbol): Return symbol type. If symbol is a label,
5074 or symbol is a local symbol return SYMBOL_PCREL. If is a tls symbol,
5075 return SYMBOL_TLS. If is a not local symbol return SYMBOL_GOT_DISP.
5076 (loongarch_symbolic_constant_p): Add handling of 'SYMBOL_TLS_IE'
5077 'SYMBOL_TLS_LE' and 'SYMBOL_PCREL'.
5078 (loongarch_symbol_insns): Add handling of 'SYMBOL_TLS_IE' 'SYMBOL_TLS_LE'
5079 and 'SYMBOL_PCREL'.
5080 (loongarch_address_insns): Sort code.
5081 (loongarch_12bit_offset_address_p): Sort code.
5082 (loongarch_14bit_shifted_offset_address_p): Sort code.
5083 (loongarch_call_tls_get_addr): Sort code.
5084 (loongarch_legitimize_tls_address): Sort code.
5085 (loongarch_output_move): Remove schema support for cmodel other than normal.
5086 (loongarch_memmodel_needs_release_fence): Sort code.
5087 (loongarch_print_operand): Sort code.
5088 * config/loongarch/loongarch.h (LARCH_U12BIT_OFFSET_P):
5089 Rename to LARCH_12BIT_OFFSET_P.
5090 (LARCH_12BIT_OFFSET_P): New macro.
5091 * config/loongarch/loongarch.md: Reimplement the function call. Remove schema
5092 support for cmodel other than normal.
5093 * config/loongarch/predicates.md (is_const_call_weak_symbol): Delete this predicate.
5094 (is_const_call_plt_symbol): Delete this predicate.
5095 (is_const_call_global_noplt_symbol): Delete this predicate.
5096 (is_const_call_no_local_symbol): New predicate, determines whether it is a local
5097 symbol or label.
5098
5099 2022-07-26 Kewen Lin <linkw@linux.ibm.com>
5100
5101 PR target/106091
5102 * config/rs6000/rs6000-p8swap.cc (replace_swapped_aligned_store): Copy
5103 REG_EH_REGION when replacing one store insn having it.
5104 (replace_swapped_aligned_load): Likewise.
5105
5106 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
5107
5108 * Makefile.in (OBJS): Add range-op-float.o.
5109 * range-op.cc (get_float_handler): New.
5110 (range_op_handler::range_op_handler): Save code and type for
5111 delayed querying.
5112 (range_op_handler::oeprator bool): Move from header file, and
5113 add support for floats.
5114 (range_op_handler::fold_range): Add support for floats.
5115 (range_op_handler::op1_range): Same.
5116 (range_op_handler::op2_range): Same.
5117 (range_op_handler::lhs_op1_relation): Same.
5118 (range_op_handler::lhs_op2_relation): Same.
5119 (range_op_handler::op1_op2_relation): Same.
5120 * range-op.h (class range_operator_float): New.
5121 (class floating_op_table): New.
5122 * value-query.cc (range_query::get_tree_range): Add case for
5123 REAL_CST.
5124 * range-op-float.cc: New file.
5125
5126 2022-07-25 Roger Sayle <roger@nextmovesoftware.com>
5127 Uroš Bizjak <ubizjak@gmail.com>
5128
5129 PR target/91681
5130 * config/i386/i386-expand.cc (split_double_concat): A new helper
5131 function for setting a double word value from two word values.
5132 * config/i386/i386-protos.h (split_double_concat): Prototype here.
5133 * config/i386/i386.md (zero_extendditi2): New define_insn_and_split.
5134 (*add<dwi>3_doubleword_zext): New define_insn_and_split.
5135 (*sub<dwi>3_doubleword_zext): New define_insn_and_split.
5136 (*concat<mode><dwi>3_1): New define_insn_and_split replacing
5137 previous define_split for implementing DST = (HI<<32)|LO as
5138 pair of move instructions, setting lopart and hipart.
5139 (*concat<mode><dwi>3_2): Likewise.
5140 (*concat<mode><dwi>3_3): Likewise, where HI is zero_extended.
5141 (*concat<mode><dwi>3_4): Likewise, where HI is zero_extended.
5142
5143 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
5144
5145 PR middle-end/106432
5146 * gimple-range.cc (gimple_ranger::range_on_edge): Return false
5147 when the result range type is unsupported.
5148
5149 2022-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
5150
5151 * config/rs6000/rtems.h (CPLUSPLUS_CPP_SPEC): Undef.
5152
5153 2022-07-25 Richard Biener <rguenther@suse.de>
5154
5155 PR middle-end/106414
5156 * match.pd (~(x ^ y) -> x == y): Restrict to single bit
5157 precision types.
5158
5159 2022-07-25 Andre Vieira <andre.simoesdiasvieira@arm.com>
5160
5161 * config/aarch64/aarch64.md (rbit<mode>2): Rename this ...
5162 (@aarch64_rbit<mode>): ... to this and change it in...
5163 (ffs<mode>2,ctz<mode>2): ... here.
5164 (@aarch64_rev16<mode>): New.
5165 * config/aarch64/aarch64-builtins.cc: (aarch64_builtins):
5166 Define the following enum AARCH64_REV16, AARCH64_REV16L,
5167 AARCH64_REV16LL, AARCH64_RBIT, AARCH64_RBITL, AARCH64_RBITLL.
5168 (aarch64_init_data_intrinsics): New.
5169 (aarch64_general_init_builtins): Add call to
5170 aarch64_init_data_intrinsics.
5171 (aarch64_expand_builtin_data_intrinsic): New.
5172 (aarch64_general_expand_builtin): Add call to
5173 aarch64_expand_builtin_data_intrinsic.
5174 * config/aarch64/arm_acle.h (__clz, __clzl, __clzll, __cls, __clsl,
5175 __clsll, __rbit, __rbitl, __rbitll, __rev, __revl, __revll, __rev16,
5176 __rev16l, __rev16ll, __ror, __rorl, __rorll, __revsh): New.
5177
5178 2022-07-25 Martin Liska <mliska@suse.cz>
5179
5180 * doc/extend.texi: Remove trailing whitespaces.
5181 * doc/invoke.texi: Likewise.
5182
5183 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
5184
5185 * value-range-pretty-print.cc (vrange_printer::visit): New.
5186 (vrange_printer::print_frange_prop): New.
5187 * value-range-pretty-print.h (class vrange_printer): Add visit and
5188 print_frange_prop.
5189 * value-range-storage.h (vrange_allocator::alloc_vrange): Handle frange.
5190 (vrange_allocator::alloc_frange): New.
5191 * value-range.cc (vrange::operator=): Handle frange.
5192 (vrange::operator==): Same.
5193 (frange::accept): New.
5194 (frange::set): New.
5195 (frange::normalize_kind): New.
5196 (frange::union_): New.
5197 (frange::intersect): New.
5198 (frange::operator=): New.
5199 (frange::operator==): New.
5200 (frange::supports_type_p): New.
5201 (frange::verify_range): New.
5202 * value-range.h (enum value_range_discriminator): Handle frange.
5203 (class fp_prop): New.
5204 (FP_PROP_ACCESSOR): New.
5205 (class frange_props): New.
5206 (FRANGE_PROP_ACCESSOR): New.
5207 (class frange): New.
5208 (Value_Range::init): Handle frange.
5209 (Value_Range::operator=): Same.
5210 (Value_Range::supports_type_p): Same.
5211 (frange_props::operator==): New.
5212 (frange_props::union_): New.
5213 (frange_props::intersect): New
5214 (frange::frange): New.
5215 (frange::type): New.
5216 (frange::set_varying): New.
5217 (frange::set_undefined): New.
5218
5219 2022-07-25 Peter Bergner <bergner@linux.ibm.com>
5220 Kewen Lin <linkw@linux.ibm.com>
5221
5222 PR testsuite/106345
5223 * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Adjust -mdejagnu-cpu
5224 to filter out all -mtune options.
5225
5226 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
5227
5228 * value-query.cc (range_query::get_value_range): Add assert.
5229 * vr-values.cc (vr_values::range_of_expr): Make sure we don't ICE
5230 on unsupported types in vr_values.
5231 (simplify_using_ranges::simplify): Same.
5232
5233 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
5234
5235 * tree-ssanames.cc (get_nonzero_bits): Return -1 for unsupported
5236 types.
5237 * value-query.cc (get_ssa_name_range_info): Remove precision check.
5238
5239 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
5240
5241 * value-relation.cc (value_relation::set_relation): Remove assert.
5242 (path_oracle::register_relation): Exit when trying to register
5243 same SSA name relations.
5244
5245 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
5246
5247 * gimple-range-cache.cc (ranger_cache::edge_range): Convert to vrange.
5248 (ranger_cache::range_from_dom): Same.
5249 * tree-ssa-dom.cc
5250 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): Same.
5251
5252 2022-07-24 Roger Sayle <roger@nextmovesoftware.com>
5253 H.J. Lu <hjl.tools@gmail.com>
5254
5255 PR target/106303
5256 PR target/106347
5257 * config/i386/i386-features.cc (make_vector_copies): Move from
5258 general_scalar_chain to scalar_chain.
5259 (convert_reg): Likewise.
5260 (convert_insn_common): New scalar_chain method split out from
5261 general_scalar_chain convert_insn.
5262 (convert_registers): Move from general_scalar_chain to
5263 scalar_chain.
5264 (scalar_chain::convert): Call convert_insn_common before calling
5265 convert_insn.
5266 (timode_remove_non_convertible_regs): Iterate until there are
5267 no further changes to the candidates.
5268 * config/i386/i386-features.h (scalar_chain::hash_map): Move
5269 from general_scalar_chain.
5270 (scalar_chain::convert_reg): Likewise.
5271 (scalar_chain::convert_insn_common): New shared method.
5272 (scalar_chain::make_vector_copies): Move from general_scalar_chain.
5273 (scalar_chain::convert_registers): Likewise. No longer virtual.
5274 (general_scalar_chain::hash_map): Delete. Moved to scalar_chain.
5275 (general_scalar_chain::convert_reg): Likewise.
5276 (general_scalar_chain::make_vector_copies): Likewise.
5277 (general_scalar_chain::convert_registers): Delete virtual method.
5278 (timode_scalar_chain::convert_registers): Likewise.
5279
5280 2022-07-23 Immad Mir <mirimmad@outlook.com>
5281
5282 * doc/extend.texi: Add fd_arg, fd_arg_read and fd_arg_write under
5283 "Common Function Attributes" section.
5284 * doc/invoke.texi: Add docs to -Wanalyzer-fd-access-mode-mismatch,
5285 -Wanalyzer-use-after-close, -Wanalyzer-fd-use-without-check that these
5286 warnings may be emitted through usage of three function attributes used
5287 for static analysis of file descriptors namely fd_arg, fd_arg_read and
5288 fd_arg_write.
5289
5290 2022-07-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5291
5292 * config/xtensa/xtensa.md (*masktrue_const_bitcmpl):
5293 Add a new insn_and_split pattern, and a few split patterns for
5294 spacial cases.
5295
5296 2022-07-22 Richard Sandiford <richard.sandiford@arm.com>
5297
5298 * graphds.cc (graphds_scc): Fix algorithm attribution.
5299
5300 2022-07-22 Richard Biener <rguenther@suse.de>
5301
5302 PR tree-optimization/106403
5303 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Move stored
5304 value valueization after check for IFN_MASKED_STORE or
5305 IFN_LEN_STORE.
5306
5307 2022-07-22 Richard Biener <rguenther@suse.de>
5308
5309 PR tree-optimization/106397
5310 * tree-ssa-loop-prefetch.cc (emit_mfence_after_loop): Do
5311 not update SSA form here.
5312 (mark_nontemporal_stores): Return whether we marked any
5313 non-temporal stores and inserted mfence.
5314 (loop_prefetch_arrays): Note when we need to update SSA.
5315 (tree_ssa_prefetch_arrays): Perform required (LC) SSA update
5316 at the end of the pass.
5317
5318 2022-07-22 Richard Biener <rguenther@suse.de>
5319
5320 PR tree-optimization/106387
5321 * tree-vect-stmts.cc (vectorizable_load): Use make_ssa_name
5322 if ptr is not an SSA name.
5323
5324 2022-07-22 liuhongt <hongtao.liu@intel.com>
5325
5326 PR target/106038
5327 * config/i386/mmx.md (<code><mode>3): New define_expand, it's
5328 original "<code><mode>3".
5329 (*<code><mode>3): New define_insn, it's original
5330 "<code><mode>3" be extended to handle memory and immediate
5331 operand with ix86_binary_operator_ok. Also adjust define_split
5332 after it.
5333 (mmxinsnmode): New mode attribute.
5334 (*mov<mode>_imm): Refactor with mmxinsnmode.
5335 * config/i386/predicates.md
5336 (register_or_x86_64_const_vector_operand): New predicate.
5337
5338 2022-07-22 Will Schmidt <will_schmidt@vnet.ibm.com>
5339
5340 * config/rs6000/altivec.md:
5341 (vstrir_code_<mode>): Rename to...
5342 (vstrir_direct_<mode>): ... this.
5343 (vstrir_p_code_<mode>): Rename to...
5344 (vstrir_p_direct_<mode>): ... this.
5345 (vstril_code_<mode>): Rename to...
5346 (vstril_direct_<mode>): ... this.
5347 (vstril_p_code_<mode>): Rename to...
5348 (vstril_p_direct_<mode>): ... this.
5349
5350 2022-07-22 Will Schmidt <will_schmidt@vnet.ibm.com>
5351
5352 * config/rs6000/rs6000-c.cc: Update comments.
5353 (rs6000_target_modify_macros): Remove bu_mask references.
5354 (rs6000_define_or_undefine_macro): Replace bu_mask reference
5355 with a rs6000_cpu value check.
5356 (rs6000_cpu_cpp_builtins): Remove rs6000_builtin_mask_calculate()
5357 parameter from call to rs6000_target_modify_macros.
5358 * config/rs6000/rs6000-protos.h (rs6000_target_modify_macros,
5359 rs6000_target_modify_macros_ptr): Remove parameter from extern
5360 for the prototype.
5361 * config/rs6000/rs6000.cc (rs6000_target_modify_macros_ptr): Remove
5362 parameter from prototype, update calls to this function.
5363 (rs6000_print_builtin_options): Remove prototype, call and function.
5364 (rs6000_builtin_mask_calculate): Remove function.
5365 (rs6000_debug_reg_global): Remove call to rs6000_print_builtin_options.
5366 (rs6000_option_override_internal): Remove rs6000_builtin_mask var
5367 and builtin_mask debug output.
5368 (rs6000_builtin_mask_names): Remove.
5369 (rs6000_pragma_target_parse): Remove prev_bumask, cur_bumask,
5370 diff_bumask references; Update calls to rs6000_target_modify_ptr.
5371 * config/rs6000/rs6000.opt (rs6000_builtin_mask): Remove.
5372
5373 2022-07-21 Sam Feifer <sfeifer@redhat.com>
5374
5375 PR tree-optimization/94920
5376 * match.pd (x >= 0 ? x : 0) + (x <= 0 ? -x : 0): New simplification.
5377 (x <= 0 ? -x : 0): New simplification.
5378
5379 2022-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5380
5381 Revert:
5382 2022-07-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5383
5384 * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
5385 instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
5386
5387 2022-07-21 Richard Biener <rguenther@suse.de>
5388
5389 PR tree-optimization/106379
5390 * match.pd (~(a ^ b) -> a == b): New pattern.
5391
5392 2022-07-21 Richard Biener <rguenther@suse.de>
5393
5394 PR tree-optimization/106378
5395 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Handle
5396 LEN_STORE, add mode to initialize a may-def and handle
5397 MASK_STORE that way.
5398 (dse_optimize_stmt): Query may-defs. Handle internal
5399 functions LEN_STORE and MASK_STORE similar to how
5400 we handle memory builtins but without byte tracking.
5401
5402 2022-07-21 Richard Biener <rguenther@suse.de>
5403
5404 PR tree-optimization/106365
5405 * tree-ssa-sccvn.cc (pd_data::rhs_off): New field determining
5406 the offset to start encoding of RHS from.
5407 (vn_walk_cb_data::vn_walk_cb_data): Initialize it.
5408 (vn_walk_cb_data::push_partial_def): Allow the first partial
5409 definition to be fully providing the def. Offset RHS
5410 before encoding if requested.
5411 (vn_reference_lookup_3): Initialize def_rhs everywhere.
5412 Add support for .MASK_STORE and .LEN_STORE (partial) definitions.
5413
5414 2022-07-21 Richard Biener <rguenther@suse.de>
5415
5416 * tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): Special-case
5417 store internal functions and IFN_MASK_LOAD, IFN_LEN_LOAD
5418 and IFN_MASK_LOAD_LANES.
5419 (call_may_clobber_ref_p_1): Special-case IFN_MASK_STORE,
5420 IFN_LEN_STORE and IFN_MASK_STORE_LANES.
5421
5422 2022-07-20 Alexander Monakov <amonakov@ispras.ru>
5423
5424 PR rtl-optimization/101347
5425 * builtins.cc (expand_builtin) [BUILT_IN_SETJMP_SETUP]: Move
5426 population of nonlocal_goto_handler_labels from here ...
5427 (expand_builtin) [BUILT_IN_SETJMP_RECEIVER]: ... to here.
5428 * rtlanal.cc (remove_node_from_insn_list): Verify that a
5429 duplicate is not present in the remainder of the list.
5430
5431 2022-07-20 Alexander Monakov <amonakov@ispras.ru>
5432
5433 * rtl.h (remove_node_from_expr_list): Remove declaration.
5434 * rtlanal.cc (remove_node_from_expr_list): Remove (no uses).
5435
5436 2022-07-20 Richard Biener <rguenther@suse.de>
5437
5438 * tree-vect-data-refs.cc (bump_vector_ptr): Return an
5439 invariant updated address when the input was invariant.
5440
5441 2022-07-20 liuhongt <hongtao.liu@intel.com>
5442
5443 * passes.def: (Split pass_cse_sincos to pass_expand_powcabs
5444 and pass_cse_sincos, and move pass_cse_sincos after vectorizer).
5445 * timevar.def (TV_TREE_POWCABS): New timevar.
5446 * tree-pass.h (make_pass_expand_powcabs): Split from pass_cse_sincos.
5447 * tree-ssa-math-opts.cc (gimple_expand_builtin_cabs): Ditto.
5448 (class pass_expand_powcabs): Ditto.
5449 (pass_expand_powcabs::execute): Ditto.
5450 (make_pass_expand_powcabs): Ditto.
5451 (pass_cse_sincos::execute): Remove pow/cabs expand part.
5452 (make_pass_cse_sincos): Ditto.
5453
5454 2022-07-20 Richard Biener <richard.guenther@gmail.com>
5455 Hongtao Liu <hongtao.liu@intel.com>
5456
5457 PR tree-optimization/106010
5458 * tree-complex.cc (init_dont_simulate_again): Lower complex
5459 type move.
5460 (expand_complex_move): Also expand COMPLEX_CST for rhs.
5461
5462 2022-07-19 Andrew MacLeod <amacleod@redhat.com>
5463
5464 * gimple-range-cache.cc (ranger_cache::range_from_dom): Check
5465 for incoming ranges on join nodes and add to worklist.
5466
5467 2022-07-19 Andrew MacLeod <amacleod@redhat.com>
5468
5469 * gimple-range-cache.cc (ranger_cache::resolve_dom): New.
5470 (ranger_cache::range_from_dom): Put all nodes to be calculated
5471 in the worklist and resolve after the dom walk.
5472 * gimple-range-cache.h (resolve_dom): New prototype.
5473
5474 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
5475
5476 * tree-cfg.cc (gimple_verify_flow_info): Check placement of
5477 returns_twice calls.
5478
5479 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
5480
5481 * cfghooks.cc (duplicate_block): Expand comment.
5482 * tree-cfg.cc (gimple_can_duplicate_bb_p): Reject blocks with
5483 calls that may return twice.
5484
5485 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
5486
5487 * tree-ssa-sink.cc (select_best_block): Punt if selected block
5488 has incoming abnormal edges.
5489
5490 2022-07-19 Martin Liska <mliska@suse.cz>
5491
5492 * doc/extend.texi: Remove trailing :.
5493
5494 2022-07-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5495
5496 * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
5497 instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
5498
5499 2022-07-19 Richard Biener <rguenther@suse.de>
5500
5501 PR middle-end/106331
5502 * builtins.cc (get_memory_rtx): Compute alignment from
5503 the original address and set MEM_OFFSET to unknown when
5504 we create a MEM_EXPR from the base object of the address.
5505
5506 2022-07-19 Richard Biener <rguenther@suse.de>
5507
5508 PR lto/106334
5509 * dwarf2out.cc (dwarf2out_register_external_die): Allow
5510 map entry re-use during WPA.
5511
5512 2022-07-19 Roger Sayle <roger@nextmovesoftware.com>
5513 Richard Biener <rguenther@suse.de>
5514
5515 PR c/106264
5516 * builtins.cc (fold_builtin_frexp): Call suppress_warning on
5517 COMPOUND_EXPR to silence spurious warning if result isn't used.
5518 (fold_builtin_modf): Likewise.
5519 (do_mpfr_remquo): Likewise.
5520
5521 2022-07-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5522
5523 * config/xtensa/xtensa.cc (xtensa_rtx_costs):
5524 Change the relative cost of '(set (reg) (const_int N))' where
5525 N fits into signed 12-bit from 4 to 0 if optimizing for size.
5526 And use the appropriate macro instead of the bare number 4.
5527
5528 2022-07-18 Andrew MacLeod <amacleod@redhat.com>
5529
5530 PR tree-optimization/106280
5531 * value-relation.cc (dom_oracle::register_relation): Register
5532 transitives only when it is possible for there to be one.
5533 (dom_oracle::set_one_relation): Return NULL if this is an
5534 existing relation.
5535
5536 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
5537
5538 * doc/invoke.texi (RISC-V Options): Add index references for
5539 `mrelax' and `mriscv-attribute'.
5540
5541 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
5542
5543 * doc/invoke.texi (Option Summary): Add missing second space
5544 around `-mstack-protector-guard-reg='.
5545
5546 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
5547
5548 * doc/invoke.texi (Option Summary): Fix `-mno-riscv-attribute'.
5549 (RISC-V Options): Likewise, and `-mriscv-attribute'.
5550
5551 2022-07-18 Claudiu Zissulescu <claziss@gmail.com>
5552
5553 * config/arc/arc-arch.h (arc_tune_attr): Add
5554 ARC_TUNE_ARCHS4X_REL31A variant.
5555 * config/arc/arc.cc (arc_override_options): Tune options for
5556 release 310a.
5557 (arc_sched_issue_rate): Use correct enum.
5558 (arc600_corereg_hazard): Textual change.
5559 (arc_hazard): Add release 310a tunning.
5560 * config/arc/arc.md (tune): Update and take into consideration new
5561 tune option.
5562 (tune_dspmpy): Likewise.
5563 (tune_store): New attribute.
5564 * config/arc/arc.opt (mtune): New tune option.
5565 * config/arc/arcHS4x.md (hs4x_brcc0, hs4x_brcc1): New cpu units.
5566 (hs4x_brcc_op): New instruction rezervation.
5567 (hs4x_data_store_1_op): Likewise.
5568 * config/arc/arc-cpus.def (hs4x_rel31): New cpu variant.
5569 * config/arc/arc-tables.opt: Regenerate.
5570 * config/arc/t-multilib: Likewise.
5571 * doc/invoke.texi (ARC): Update mcpu and tune sections.
5572
5573 2022-07-18 Richard Biener <rguenther@suse.de>
5574
5575 * tree-loop-distribution.cc (loop_distribution::distribute_loop):
5576 When computing cost-based merging do not disregard builtin
5577 classified partitions in some cases.
5578
5579 2022-07-18 Richard Sandiford <richard.sandiford@arm.com>
5580
5581 PR target/106253
5582 * config/arm/arm-builtins.cc (arm_builtin_vectorized_function):
5583 Delete.
5584 * config/arm/arm-protos.h (arm_builtin_vectorized_function): Delete.
5585 * config/arm/arm.cc (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
5586 Delete.
5587 * config/arm/arm_neon_builtins.def (copysignf): Delete.
5588 * config/arm/iterators.md (nvrint_pattern): New attribute.
5589 * config/arm/neon.md (<NEON_VRINT:nvrint_pattern><VCVTF:mode>2):
5590 New pattern.
5591 (l<NEON_VCVT:nvrint_pattern><su_optab><VCVTF:mode><v_cmp_result>2):
5592 Likewise.
5593 (neon_copysignf<mode>): Rename to...
5594 (copysign<mode>3): ...this.
5595
5596 2022-07-18 Claudiu Zissulescu <claziss@gmail.com>
5597
5598 * config/arc/arc.cc (arc_expand_epilogue): Adjust the frame
5599 pointer first when in interrupts.
5600
5601 2022-07-18 Richard Biener <rguenther@suse.de>
5602
5603 * tree-loop-distribution.cc (copy_loop_before): Add
5604 the ability to replace the original LC PHI defs.
5605 (generate_loops_for_partition): Pass through a flag
5606 whether to redirect original LC PHI defs.
5607 (generate_code_for_partition): Likewise.
5608 (loop_distribution::distribute_loop): Compute the partition
5609 that should provide the LC PHI defs for common reductions
5610 and pass that down.
5611
5612 2022-07-18 Richard Ball <richard.ball@arm.com>
5613
5614 * config/aarch64/aarch64.cc (aarch64_evpc_trn): Use std:swap.
5615 (aarch64_evpc_uzp): Likewise.
5616 (aarch64_evpc_zip): Likewise.
5617
5618 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
5619
5620 PR target/106231
5621 * config/i386/i386.md (*ctzsidi2_<s>ext): New insn_and_split
5622 to recognize any_extend:DI of ctz:SI which is implicitly extended.
5623 (*ctzsidi2_<s>ext_falsedep): New define_insn to model a DImode
5624 extended ctz:SI that has preceding xor to break false dependency.
5625
5626 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
5627
5628 * config/i386/predicates.md (x86_64_const_vector_operand):
5629 Check the operand's mode matches the specified mode argument.
5630
5631 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
5632
5633 * config/i386/sse.md (kunpckhi): Add UNSPEC_MASKOP unspec.
5634 (kunpcksi): Likewise, add UNSPEC_MASKOP unspec.
5635 (kunpckdi): Likewise, add UNSPEC_MASKOP unspec.
5636 (vec_pack_trunc_qi): Update to specify the now required
5637 UNSPEC_MASKOP unspec.
5638 (vec_pack_trunc_<mode>): Likewise.
5639
5640 2022-07-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5641
5642 * config/xtensa/xtensa.md
5643 (*masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
5644 *masktrue_const_shifted_mask): If the immediate for bitwise AND is
5645 represented as '-(1 << N)', decrease the lower bound of N from 12
5646 to 1. And the other immediate for conditional branch is now no
5647 longer limited to zero, but also one of some positive integers.
5648 Finally, remove the checks of some conditions, because the comparison
5649 expressions that don't satisfy such checks are determined as
5650 compile-time constants and thus will be optimized away before
5651 RTL expansion.
5652
5653 2022-07-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5654
5655 * config/xtensa/xtensa.cc (xtensa_emit_constantsynth): Remove.
5656 (xtensa_constantsynth_2insn): Change to try all three synthetic
5657 methods and to use the one that fits the immediate value of
5658 the seed into a Narrow Move Immediate instruction "MOVI.N"
5659 when the Code Density Option is configured.
5660
5661 2022-07-15 H.J. Lu <hjl.tools@gmail.com>
5662
5663 PR target/85620
5664 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
5665 false if callee has indirect_return attribute and caller
5666 doesn't.
5667
5668 2022-07-15 Roger Sayle <roger@nextmovesoftware.com>
5669
5670 PR target/106273
5671 * config/i386/i386.md (*andn<dwi>3_doubleword_bmi): Update the
5672 constraints to reflect the output is earlyclobber, unless it is
5673 the same register (pair) as one of the operands.
5674
5675 2022-07-15 David Malcolm <dmalcolm@redhat.com>
5676
5677 * doc/invoke.texi (Static Analyzer Options): Add the new fd
5678 warnings to the initial gccoptlist, and to the list of those
5679 disabled by -fanalyzer-checker=taint.
5680
5681 2022-07-15 Andrew Carlotti <andrew.carlotti@arm.com>
5682
5683 * config/aarch64/aarch64-builtins.cc
5684 (enum aarch64_type_qualifiers): Remove qualifier_internal.
5685 (aarch64_init_simd_builtin_functions): Remove qualifier_internal check.
5686
5687 2022-07-15 Andrew Carlotti <andrew.carlotti@arm.com>
5688
5689 * config/aarch64/aarch64-builtins.cc
5690 (v1di_UP): Add V1DI mode to _UP macros.
5691 * config/aarch64/aarch64-modes.def (VECTOR_MODE): Add V1DI mode.
5692 * config/aarch64/aarch64-simd-builtin-types.def: Use V1DI mode.
5693 * config/aarch64/aarch64-simd.md
5694 (vec_extractv2dfv1df): Replace with...
5695 (vec_extract<mode><V1half>): ...this.
5696 * config/aarch64/aarch64.cc
5697 (aarch64_classify_vector_mode): Add V1DI mode.
5698 * config/aarch64/iterators.md
5699 (VQ_2E, V1HALF, V1half): New.
5700 (nunits): Add V1DI mode.
5701
5702 2022-07-15 Roger Sayle <roger@nextmovesoftware.com>
5703
5704 PR target/106278
5705 * config/i386/i386-features.cc (general_scalar_chain::convert_insn):
5706 Fix indentation whitespace.
5707 (timode_scalar_chain::fix_debug_reg_uses): Likewise.
5708 (timode_scalar_chain::convert_insn): Delete dead code.
5709 Update TImode REG_EQUAL_NOTE even if the SET_DEST is already V1TI.
5710 Fix indentation whitespace.
5711 (convertible_comparison_p): Likewise.
5712 (timode_scalar_to_vector_candidate_p): Likewise.
5713
5714 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
5715
5716 * gimple-pretty-print.cc (dump_ssaname_info): Use pp_vrange.
5717
5718 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
5719
5720 * Makefile.in (OBJS): Add value-range-pretty-print.o.
5721 * pretty-print.h (pp_vrange): New.
5722 * value-range.cc (vrange::dump): Call pp version.
5723 (unsupported_range::dump): Move to its own file.
5724 (dump_bound_with_infinite_markers): Same.
5725 (irange::dump): Same.
5726 (irange::dump_bitmasks): Same.
5727 (vrange::debug): Remove.
5728 * value-range.h: Remove virtual designation for dump methods.
5729 Remove dump_bitmasks method.
5730 * value-range-pretty-print.cc: New file.
5731 * value-range-pretty-print.h: New file.
5732
5733 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
5734
5735 * value-range.cc (irange::accept): New.
5736 (unsupported_range::accept): New.
5737 * value-range.h (class vrange_visitor): New.
5738 (class vrange): Add accept method.
5739 (class unsupported_range): Same.
5740 (class Value_Range): Same.
5741
5742 2022-07-15 Jonathan Wakely <jwakely@redhat.com>
5743
5744 * diagnostic-format-json.cc (json_from_location_range): Adjust
5745 to new label_text API.
5746 * diagnostic-format-sarif.cc (sarif_builder::make_location_object):
5747 Likewise.
5748 * diagnostic-show-locus.cc (struct pod_label_text): Likewise.
5749 (layout::print_any_labels): Likewise.
5750 * tree-diagnostic-path.cc (class path_label): Likewise.
5751 (struct event_range): Likewise.
5752 (default_tree_diagnostic_path_printer): Likewise.
5753 (default_tree_make_json_for_path): Likewise.
5754
5755 2022-07-15 konglin1 <lingling.kong@intel.com>
5756
5757 PR target/106113
5758 * config/i386/i386-builtin.def (BDESC): Fix [u]comi{ss,sd}
5759 comparison due to intrinsics changed over time.
5760 * config/i386/i386-expand.cc (ix86_ssecom_setcc):
5761 Add unordered check and mode for sse comi codegen.
5762 (ix86_expand_sse_comi): Add unordered check and check a different
5763 CCmode.
5764 (ix86_expand_sse_comi_round):Extract unordered check and mode part
5765 in ix86_ssecom_setcc.
5766
5767 2022-07-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5768
5769 * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Use
5770 op_mode instead of vmode in calls to force_reg for op0 and op1.
5771
5772 2022-07-14 H.J. Lu <hjl.tools@gmail.com>
5773
5774 PR tree-optimization/103798
5775 * tree-ssa-forwprop.cc: Include "tree-ssa-strlen.h".
5776 (simplify_builtin_call): Inline memchr with constant strings of
5777 no more than the bytes of a word.
5778 * tree-ssa-strlen.cc (use_in_zero_equality): Make it global.
5779 * tree-ssa-strlen.h (use_in_zero_equality): New.
5780
5781 2022-07-14 Eric Botcazou <ebotcazou@adacore.com>
5782
5783 * gimplify.cc (lookup_tmp_var): Add NOT_GIMPLE_REG boolean parameter
5784 and set DECL_NOT_GIMPLE_REG_P on the variable according to it.
5785 (internal_get_tmp_var): Add NOT_GIMPLE_REG boolean parameter and
5786 pass it in the call to lookup_tmp_var.
5787 (get_formal_tmp_var): Pass false in the call to lookup_tmp_var.
5788 (get_initialized_tmp_var): Likewise.
5789 (prepare_gimple_addressable): Call internal_get_tmp_var instead of
5790 get_initialized_tmp_var with NOT_GIMPLE_REG set to true.
5791
5792 2022-07-14 Martin Liska <mliska@suse.cz>
5793
5794 * doc/gimple.texi: Close properly a deftypefn.
5795
5796 2022-07-14 Martin Liska <mliska@suse.cz>
5797
5798 * doc/gimple.texi: Close properly a deftypefn.
5799
5800 2022-07-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5801
5802 * config/xtensa/xtensa.md:
5803 In FP constant synthesis split pattern, subcontract to
5804 avoid_constant_pool_reference() as in the case of integer,
5805 because it can handle well too. And cast to int32_t before
5806 calling xtensa_constantsynth() in order to ignore upper 32-bit.
5807
5808 2022-07-13 Aldy Hernandez <aldyh@redhat.com>
5809
5810 * range-op.cc (operator_lt::fold_range): Use nonzero bits.
5811
5812 2022-07-13 Aldy Hernandez <aldyh@redhat.com>
5813
5814 * value-range.cc (irange::copy_to_legacy): Set nonzero mask.
5815 (irange::legacy_intersect): Clear nonzero mask.
5816 (irange::legacy_union): Same.
5817 (irange::invert): Same.
5818
5819 2022-07-13 Richard Biener <rguenther@suse.de>
5820
5821 * tree-ssa-dom.h (record_temporary_equivalences): Remove.
5822 * tree-ssa-dom.cc (dom_jt_state::m_blocks_on_stack): New.
5823 (dom_jt_state::get_blocks_on_stack): Likewise.
5824 (dom_opt_dom_walker::dom_opt_dom_walker): Take dom_jt_state.
5825 (back_propagate_equivalences): Remove dominator bitmap
5826 compute and instead use passed in m_blocks_on_stack.
5827 (record_temporary_equivalences): Likewise.
5828 (record_equivalences_from_incoming_edge): Likewise.
5829 (dom_opt_dom_walker::before_dom_children): Maintain and
5830 pass down blocks on stack.
5831 (dom_opt_dom_walker::after_dom_children): Likewise.
5832
5833 2022-07-13 Andrew Carlotti <andrew.carlotti@arm.com>
5834
5835 * config/aarch64/aarch64-builtins.cc
5836 (aarch64_general_gimple_fold_builtin): Add fixup for invalid GIMPLE.
5837
5838 2022-07-13 Richard Biener <rguenther@suse.de>
5839
5840 PR tree-optimization/106249
5841 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop):
5842 Only verify LC SSA of the new_loop if we created it.
5843 Use TODO_update_ssa_nophi for the SSA update after versioning
5844 the loop.
5845
5846 2022-07-12 Aldy Hernandez <aldyh@redhat.com>
5847
5848 * range-op.cc (unsigned_singleton_p): Remove.
5849 (operator_bitwise_and::remove_impossible_ranges): Remove.
5850 (operator_bitwise_and::fold_range): Set nonzero bits. *
5851 * value-range.cc (irange::get_nonzero_bits): Remove
5852 legacy_mode_p assert.
5853 (irange::dump_bitmasks): Remove legacy_mode_p check.
5854
5855 2022-07-12 Richard Sandiford <richard.sandiford@arm.com>
5856
5857 PR target/106253
5858 * predict.h (insn_optimization_type): Declare.
5859 * predict.cc (insn_optimization_type): New function.
5860 * internal-fn.def (IFN_ICEIL, IFN_IFLOOR, IFN_IRINT, IFN_IROUND)
5861 (IFN_LCEIL, IFN_LFLOOR, IFN_LRINT, IFN_LROUND, IFN_LLCEIL)
5862 (IFN_LLFLOOR, IFN_LLRINT, IFN_LLROUND): New internal functions.
5863 * internal-fn.cc (unary_convert_direct): New macro.
5864 (expand_convert_optab_fn): New function.
5865 (expand_unary_convert_optab_fn): New macro.
5866 (direct_unary_convert_optab_supported_p): Likewise.
5867 * optabs.cc (expand_sfix_optab): Pass insn_optimization_type to
5868 convert_optab_handler.
5869 * config/aarch64/aarch64-protos.h
5870 (aarch64_builtin_vectorized_function): Delete.
5871 * config/aarch64/aarch64-builtins.cc
5872 (aarch64_builtin_vectorized_function): Delete.
5873 * config/aarch64/aarch64.cc
5874 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Delete.
5875 * config/i386/i386.cc (ix86_optab_supported_p): Handle lround_optab.
5876 * config/i386/i386.md (lround<X87MODEF:mode><SWI248x:mode>2): Remove
5877 optimize_insn_for_size_p test.
5878
5879 2022-07-12 Richard Biener <rguenther@suse.de>
5880
5881 * tree-vect-loop-manip.cc (create_lcssa_for_virtual_phi):
5882 Remove.
5883 (vect_do_peeling): Do not call it, adjust comment.
5884
5885 2022-07-12 Richard Sandiford <richard.sandiford@arm.com>
5886
5887 * config/aarch64/aarch64-builtins.cc
5888 (aarch64_builtin_vectorized_function): Remove handling of
5889 floor, ceil, trunc, round, nearbyint, sqrt, clz and ctz.
5890
5891 2022-07-11 Andrew MacLeod <amacleod@redhat.com>
5892
5893 PR tree-optimization/106234
5894 * gimple-range-cache.cc (ranger_cache::range_from_dom): Check dominator
5895 cache value before recursively resolving it.
5896
5897 2022-07-11 Roger Sayle <roger@nextmovesoftware.com>
5898
5899 * config/i386/i386-features.h (scalar_chain): Add fields
5900 insns_conv, n_sse_to_integer and n_integer_to_sse to this
5901 parent class, moved from general_scalar_chain.
5902 (scalar_chain::convert_compare): Protected method moved
5903 from general_scalar_chain.
5904 (mark_dual_mode_def): Make protected, not private virtual.
5905 (scalar_chain:convert_op): New private virtual method.
5906 (general_scalar_chain::general_scalar_chain): Simplify constructor.
5907 (general_scalar_chain::~general_scalar_chain): Delete destructor.
5908 (general_scalar_chain): Move insns_conv, n_sse_to_integer and
5909 n_integer_to_sse fields to parent class, scalar_chain.
5910 (general_scalar_chain::mark_dual_mode_def): Delete prototype.
5911 (general_scalar_chain::convert_compare): Delete prototype.
5912 (timode_scalar_chain::compute_convert_gain): Remove simplistic
5913 implementation, convert to a method prototype.
5914 (timode_scalar_chain::mark_dual_mode_def): Delete prototype.
5915 (timode_scalar_chain::convert_op): Prototype new virtual method.
5916 * config/i386/i386-features.cc (scalar_chain::scalar_chain):
5917 Allocate insns_conv and initialize n_sse_to_integer and
5918 n_integer_to_sse fields in constructor.
5919 (scalar_chain::scalar_chain): Free insns_conv in destructor.
5920 (general_scalar_chain::general_scalar_chain): Delete
5921 constructor, now defined in the class declaration.
5922 (general_scalar_chain::~general_scalar_chain): Delete destructor.
5923 (scalar_chain::mark_dual_mode_def): Renamed from
5924 general_scalar_chain::mark_dual_mode_def.
5925 (timode_scalar_chain::mark_dual_mode_def): Delete.
5926 (scalar_chain::convert_compare): Renamed from
5927 general_scalar_chain::convert_compare.
5928 (timode_scalar_chain::compute_convert_gain): New method to
5929 determine the gain from converting a TImode chain to V1TImode.
5930 (timode_scalar_chain::convert_op): New method to convert an
5931 operand from TImode to V1TImode.
5932 (timode_scalar_chain::convert_insn) <case REG>: Only PUT_MODE
5933 on REG_EQUAL notes that were originally TImode (not CONST_INT).
5934 Handle AND, ANDN, XOR, IOR, NOT and COMPARE.
5935 (timode_mem_p): Helper predicate to check where operand is
5936 memory reference with sufficient alignment for TImode STV.
5937 (timode_scalar_to_vector_candidate_p): Use convertible_comparison_p
5938 to check whether COMPARE is convertible. Handle SET_DESTs that
5939 that are REG_P or MEM_P and SET_SRCs that are REG, CONST_INT,
5940 CONST_WIDE_INT, MEM, AND, ANDN, IOR, XOR or NOT.
5941
5942 2022-07-11 Richard Sandiford <richard.sandiford@arm.com>
5943
5944 PR tree-optimization/106250
5945 * tree-vect-loop.cc (vectorizable_reduction): Reinstate final
5946 argument to directly_supported_p.
5947
5948 2022-07-11 Richard Biener <rguenther@suse.de>
5949
5950 * tree-into-ssa.cc (update_ssa): Do not forcefully
5951 re-compute dominance fast queries for TODO_update_ssa_no_phi.
5952
5953 2022-07-11 Richard Biener <rguenther@suse.de>
5954
5955 PR tree-optimization/106228
5956 * tree-vect-data-refs.cc (vect_setup_realignment): Adjust
5957 VUSE compute for the non-loop case.
5958
5959 2022-07-11 Richard Biener <rguenther@suse.de>
5960
5961 * tree-into-ssa.cc (rewrite_mode::REWRITE_UPDATE_REGION): New.
5962 (rewrite_update_dom_walker::rewrite_update_dom_walker): Update.
5963 (rewrite_update_dom_walker::m_in_region_flag): New.
5964 (rewrite_update_dom_walker::before_dom_children): If the region
5965 to update is marked, STOP at exits.
5966 (rewrite_blocks): For REWRITE_UPDATE_REGION mark the region
5967 to be updated.
5968 (dump_update_ssa): Use bitmap_empty_p.
5969 (update_ssa): Likewise. Use REWRITE_UPDATE_REGION when
5970 TODO_update_ssa_no_phi.
5971 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Account
5972 pending update_ssa to the caller.
5973
5974 2022-07-11 Richard Biener <rguenthert@suse.de>
5975
5976 PR target/105459
5977 * config/i386/i386-options.cc (ix86_set_current_function):
5978 Rebuild the target optimization node whenever necessary,
5979 not only when the optimization node didn't change.
5980
5981 2022-07-11 Richard Biener <rguenther@suse.de>
5982
5983 PR tree-optimization/106228
5984 * tree-vect-data-refs.cc (vect_setup_realignment): Properly
5985 set a VUSE operand on the emitted load.
5986
5987 2022-07-11 Aldy Hernandez <aldyh@redhat.com>
5988
5989 * gimple-range.cc (gimple_ranger::export_global_ranges): Remove
5990 verification against legacy value_range.
5991 (gimple_ranger::register_inferred_ranges): Same.
5992 (gimple_ranger::export_global_ranges): Rename update_global_range
5993 to set_range_info.
5994 * tree-core.h (struct range_info_def): Remove.
5995 (struct irange_storage_slot): New.
5996 (struct tree_base): Remove SSA_NAME_ANTI_RANGE_P documentation.
5997 (struct tree_ssa_name): Add vrange_storage support.
5998 * tree-ssanames.cc (range_info_p): New.
5999 (range_info_fits_p): New.
6000 (range_info_alloc): New.
6001 (range_info_free): New.
6002 (range_info_get_range): New.
6003 (range_info_set_range): New.
6004 (set_range_info_raw): Remove.
6005 (set_range_info): Adjust to use vrange_storage.
6006 (set_nonzero_bits): Same.
6007 (get_nonzero_bits): Same.
6008 (duplicate_ssa_name_range_info): Remove overload taking
6009 value_range_kind.
6010 Rewrite tree overload to use vrange_storage.
6011 (duplicate_ssa_name_fn): Adjust to use vrange_storage.
6012 * tree-ssanames.h (struct range_info_def): Remove.
6013 (set_range_info): Adjust prototype to take vrange.
6014 * tree-vrp.cc (vrp_asserts::remove_range_assertions): Call
6015 duplicate_ssa_name_range_info.
6016 * tree.h (SSA_NAME_ANTI_RANGE_P): Remove.
6017 (SSA_NAME_RANGE_TYPE): Remove.
6018 * value-query.cc (get_ssa_name_range_info): Adjust to use
6019 vrange_storage.
6020 (update_global_range): Remove.
6021 (get_range_global): Remove as_a<irange>.
6022 * value-query.h (update_global_range): Remove.
6023 * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges):
6024 Rename update_global_range to set_range_info.
6025 * value-range-storage.cc (vrange_storage::alloc_slot): Remove
6026 gcc_unreachable.
6027
6028 2022-07-10 Aldy Hernandez <aldyh@redhat.com>
6029
6030 * value-range.cc (irange::operator=): Call verify_range.
6031 (irange::irange_set): Normalize kind after everything else has
6032 been set.
6033 (irange::irange_set_anti_range): Same.
6034 (irange::set): Same.
6035 (irange::verify_range): Disallow nonzero masks for VARYING.
6036 (irange::irange_union): Call verify_range.
6037 Handle nonzero masks better.
6038 (irange::irange_intersect): Same.
6039 (irange::set_nonzero_bits): Calculate mask if either range has an
6040 explicit mask.
6041 (irange::intersect_nonzero_bits): Same.
6042 (irange::union_nonzero_bits): Same.
6043 (range_tests_nonzero_bits): New.
6044 (range_tests): Call range_tests_nonzero_bits.
6045 * value-range.h (class irange): Remove set_nonzero_bits method
6046 with trees.
6047 (irange::varying_compatible_p): Set nonzero mask.
6048
6049 2022-07-10 Xi Ruoyao <xry111@xry111.site>
6050
6051 * config/loongarch/loongarch.md (<any_div>di3_fake): Describe
6052 the sign-extend of result in the RTL template.
6053 (<any_div><mode>3): Adjust for <any_div>di3_fake change.
6054
6055 2022-07-10 Xi Ruoyao <xry111@xry111.site>
6056
6057 * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
6058 Remove static, for use in the machine description file.
6059 * config/loongarch/loongarch-protos.h:
6060 (loongarch_check_zero_div_p): Add prototype.
6061 * config/loongarch/loongarch.md (enabled): New attr.
6062 (*<optab><mode>3): Add (=r,r,r) and (=&r,0,r) alternatives for
6063 idiv. Conditionally enable the alternatives using
6064 loongarch_check_zero_div_p.
6065 (<optab>di3_fake): Likewise.
6066
6067 2022-07-10 Xi Ruoyao <xry111@xry111.site>
6068
6069 * config/loongarch/loongarch.md (mulsidi3_64bit): Use mulw.d.w
6070 instead of mul.d.
6071
6072 2022-07-09 Aldy Hernandez <aldyh@redhat.com>
6073
6074 * value-range.cc (irange::irange_single_pair_union): Set
6075 VR_VARYING when appropriate.
6076
6077 2022-07-09 Vit Kabele <vit.kabele@sysgo.com>
6078
6079 * stor-layout.cc (finalize_record_size): Extend warning message.
6080
6081 2022-07-09 Sam Feifer <sfeifer@redhat.com>
6082
6083 PR tree-optimization/98304
6084 * match.pd (n - (((n > C1) ? n : C1) & -C2)): New simplification.
6085
6086 2022-07-09 Jeff Law <jeffreyalaw@gmail.com>
6087
6088 * expr.cc (store_expr): Identify trailing NULs in a STRING_CST
6089 initializer and use clear_storage rather than copying the
6090 NULs to the destination array.
6091
6092 2022-07-09 Roger Sayle <roger@nextmovesoftware.com>
6093
6094 * config/i386/i386.md (define_peephole2): Use match_operand of
6095 flags_reg_operand to capture and preserve the mode of FLAGS_REG.
6096 (define_peephole2): Likewise.
6097 (define_peephole2): Likewise...
6098
6099 2022-07-09 Roger Sayle <roger@nextmovesoftware.com>
6100
6101 * config/i386/i386-features.cc (convert_compare): Add support
6102 for *testdi_not_doubleword pattern, "(compare (and (not ...)))"
6103 by generating a pandn followed by ptest.
6104 (convertible_comparison_p): Recognize both *cmpdi_doubleword and
6105 recent *testdi_not_doubleword comparison patterns.
6106
6107 2022-07-09 Tamar Christina <tamar.christina@arm.com>
6108
6109 * config/s390/s390.cc (s390_expand_atomic): Pass false to store_bit_field to
6110 indicate that the value is not undefined.
6111
6112 2022-07-09 Andrew Pinski <apinski@marvell.com>
6113
6114 PR tree-optimization/106087
6115 * tree-ssa-dce.cc (simple_dce_from_worklist): Check
6116 to make sure the statement is only defining one operand.
6117
6118 2022-07-08 Lewis Hyatt <lhyatt@gmail.com>
6119
6120 PR preprocessor/91733
6121 * input.cc (find_end_of_line): New helper function.
6122 (file_cache_slot::get_next_line): Recognize \r as a line ending.
6123 * diagnostic-show-locus.cc (test_escaping_bytes_1): Adapt selftest
6124 since \r will now be interpreted as a line-ending.
6125
6126 2022-07-08 Martin Liska <mliska@suse.cz>
6127
6128 PR sanitizer/106132
6129 * opts.cc (finish_options): Use 2 calls to
6130 report_conflicting_sanitizer_options.
6131
6132 2022-07-08 Richard Biener <rguenther@suse.de>
6133
6134 PR tree-optimization/106226
6135 * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
6136 no SSA update is needed. Move virtual SSA update ...
6137 * tree-vectorizer.cc (pass_vectorize::execute): ... here,
6138 via forced virtual renaming when TODO_update_ssa_only_virtuals
6139 is queued.
6140 (vect_transform_loops): Return TODO_update_ssa_only_virtuals
6141 when virtual SSA update is required.
6142 (try_vectorize_loop_1): Adjust.
6143 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Allow
6144 virtual renaming if the ABI forces an aggregate return
6145 but the original call did not have a virtual definition.
6146
6147 2022-07-08 Martin Liska <mliska@suse.cz>
6148
6149 * toplev.cc (init_asm_output): Do not init asm_out_file.
6150
6151 2022-07-08 Tamar Christina <tamar.christina@arm.com>
6152
6153 PR tree-optimization/106063
6154 * match.pd: Do not apply pattern after veclower is not supported.
6155
6156 2022-07-08 Thomas Schwinge <thomas@codesourcery.com>
6157
6158 * lto-cgraph.cc (input_offload_tables) <LTO_symtab_edge>: Correct
6159 'fn2' computation.
6160
6161 2022-07-08 Tamar Christina <tamar.christina@arm.com>
6162
6163 * expmed.cc (store_bit_field_1): Add parameter that indicates if value is
6164 still undefined and if so emit a subreg move instead.
6165 (store_integral_bit_field): Likewise.
6166 (store_bit_field): Likewise.
6167 * expr.h (write_complex_part): Likewise.
6168 * expmed.h (store_bit_field): Add new parameter.
6169 * builtins.cc (expand_ifn_atomic_compare_exchange_into_call): Use new
6170 parameter.
6171 (expand_ifn_atomic_compare_exchange): Likewise.
6172 * calls.cc (store_unaligned_arguments_into_pseudos): Likewise.
6173 * emit-rtl.cc (validate_subreg): Likewise.
6174 * expr.cc (emit_group_store): Likewise.
6175 (copy_blkmode_from_reg): Likewise.
6176 (copy_blkmode_to_reg): Likewise.
6177 (clear_storage_hints): Likewise.
6178 (write_complex_part): Likewise.
6179 (emit_move_complex_parts): Likewise.
6180 (expand_assignment): Likewise.
6181 (store_expr): Likewise.
6182 (store_field): Likewise.
6183 (expand_expr_real_2): Likewise.
6184 * ifcvt.cc (noce_emit_move_insn): Likewise.
6185 * internal-fn.cc (expand_arith_set_overflow): Likewise.
6186 (expand_arith_overflow_result_store): Likewise.
6187 (expand_addsub_overflow): Likewise.
6188 (expand_neg_overflow): Likewise.
6189 (expand_mul_overflow): Likewise.
6190 (expand_arith_overflow): Likewise.
6191
6192 2022-07-08 Haochen Jiang <haochen.jiang@intel.com>
6193
6194 PR target/106180
6195 * config/i386/sse.md (sse2_cvtps2pd<mask_name>_1):
6196 Rename from *sse2_cvtps2pd<mask_name>_1.
6197 (vec_unpacks_lo_v4sf): Add handler for memory operand.
6198
6199 2022-07-08 Lulu Cheng <chenglulu@loongson.cn>
6200
6201 * config/loongarch/loongarch.cc (loongarch_compute_frame_info):
6202 Modify fp_sp_offset and gp_sp_offset's calculation method,
6203 when frame->mask or frame->fmask is zero, don't minus UNITS_PER_WORD
6204 or UNITS_PER_FP_REG.
6205
6206 2022-07-07 David Malcolm <dmalcolm@redhat.com>
6207
6208 * diagnostic-format-json.cc (json_from_location_range): Update for
6209 removal of label_text::maybe_free in favor of automatic memory
6210 management.
6211 * diagnostic-format-sarif.cc
6212 (sarif_builder::make_location_object): Likewise.
6213 * diagnostic-show-locus.cc (struct pod_label_text): New.
6214 (class line_label): Convert m_text from label_text to pod_label_text.
6215 (layout::print_any_labels): Move "text" to the line_label.
6216 * tree-diagnostic-path.cc (path_label::get_text): Update for
6217 removal of label_text::maybe_free in favor of automatic memory
6218 management.
6219 (event_range::print): Likewise.
6220 (default_tree_diagnostic_path_printer): Likewise.
6221 (default_tree_make_json_for_path): Likewise.
6222
6223 2022-07-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6224
6225 * statistics.cc (get_function_name): Add check to see if fn is not NULL.
6226
6227 2022-07-07 Richard Biener <rguenther@suse.de>
6228
6229 * tree-into-ssa.cc (iterating_old_ssa_names): New.
6230 (add_new_name_mapping): Grow {new,old}_ssa_names separately
6231 and only when actually needed. Assert we are not growing
6232 the old_ssa_names set when iterating over it.
6233 (update_ssa): Remove old_ssa_names copying and empty_p
6234 query, note we are iterating over it and expect no set changes.
6235
6236 2022-07-07 Thomas Schwinge <thomas@codesourcery.com>
6237
6238 * config/i386/intelmic-mkoffload.cc (generate_host_descr_file)
6239 (prepare_target_image, main): Handle OpenMP 'requires'.
6240 (generate_host_descr_file): Switch to 'GOMP_offload_register_ver',
6241 'GOMP_offload_unregister_ver'.
6242
6243 2022-07-07 Richard Biener <rguenther@suse.de>
6244
6245 PR target/106219
6246 * config/i386/i386-builtins.cc (ix86_add_new_builtins): Properly
6247 set DECL_PURE_P.
6248
6249 2022-07-07 Richard Biener <rguenther@suse.de>
6250
6251 * tree-ssa-loop-manip.cc (add_exit_phis_var): Return the
6252 number of LC PHIs inserted.
6253 (add_exit_phis): Return whether any variable required
6254 multiple LC PHI nodes.
6255 (rewrite_into_loop_closed_ssa_1): Use TODO_update_ssa_no_phi
6256 when possible.
6257
6258 2022-07-07 Richard Biener <rguenther@suse.de>
6259
6260 * tree-ssa-loop-manip.cc (compute_live_loop_exits): Take
6261 the def loop exit block bitmap as argument instead of
6262 re-computing it here.
6263 (add_exit_phis_var): Adjust.
6264 (loop_name_cmp): New function.
6265 (add_exit_phis): Sort variables to insert LC PHI nodes
6266 after definition loop, for each definition loop compute
6267 the exit block bitmap once.
6268 (get_loops_exit): Remove.
6269 (rewrite_into_loop_closed_ssa_1): Do not pre-record
6270 all loop exit blocks into bitmaps. Record loop exits
6271 if required.
6272
6273 2022-07-07 Dimitrije Milosevic <Dimitrije.Milosevic@Syrmia.com>
6274
6275 * config/mips/mips.cc (mips_asan_shadow_offset): Reformat
6276 to handle the N32 ABI.
6277 * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Remove
6278 the macro, as it is not needed anymore.
6279
6280 2022-07-06 Thomas Schwinge <thomas@codesourcery.com>
6281
6282 * config/gcn/mkoffload.cc (process_obj): Clarify 'target_data' ->
6283 '[...]_data'.
6284 * config/nvptx/mkoffload.cc (process): Likewise.
6285
6286 2022-07-06 Thomas Schwinge <thomas@codesourcery.com>
6287
6288 * omp-general.h (enum omp_requires): Use 'GOMP_REQUIRES_[...]'.
6289
6290 2022-07-05 Andrew MacLeod <amacleod@redhat.com>
6291
6292 * value-relation.cc (relation_to_code): New vector.
6293 (relation_oracle::validate_relation): New.
6294 (set_relation): Allow ssa1 == ssa2 to be registered.
6295 * value-relation.h (validate_relation): New prototype.
6296 (query_relation): Make internal variant protected.
6297
6298 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
6299
6300 * config/i386/i386.cc (ix86_rtx_costs) <COMPARE>: Provide costs
6301 for double word comparisons and tests (comparisons against zero).
6302 * config/i386/i386.md (*test<mode>_not_doubleword): Split DWI
6303 and;cmp into andn;cmp $0 as a pre-reload splitter.
6304 (*andn<dwi>3_doubleword_bmi): Use <dwi> instead of <mode> in name.
6305 (*<any_or><dwi>3_doubleword): Likewise.
6306
6307 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
6308 Hongtao Liu <hongtao.liu@intel.com>
6309
6310 * config/i386/i386-builtin.def (__builtin_ia32_palignr128): Change
6311 CODE_FOR_ssse3_palignrti to CODE_FOR_ssse3_palignrv1ti.
6312 * config/i386/i386-expand.cc (expand_vec_perm_palignr): Use V1TImode
6313 and gen_ssse3_palignv1ti instead of TImode.
6314 * config/i386/sse.md (SSESCALARMODE): Delete.
6315 (define_mode_attr ssse3_avx2): Handle V1TImode instead of TImode.
6316 (<ssse3_avx2>_palignr<mode>): Use VIMAX_AVX2_AVX512BW as a mode
6317 iterator instead of SSESCALARMODE.
6318 (ssse3_palignrdi): Optimize cases where operands[3] is 0 or 64,
6319 using a single move instruction (if required).
6320
6321 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
6322 Uroš Bizjak <ubizjak@gmail.com>
6323
6324 PR rtl-optimization/96692
6325 * config/i386/i386.md (define_split): Split ((A | B) ^ C) ^ D
6326 as (X & ~Y) ^ Z on target BMI when either C or D is A or B.
6327
6328 2022-07-05 Richard Biener <rguenther@suse.de>
6329
6330 PR tree-optimization/106198
6331 * tree-cfgcleanup.cc (repair_loop_structures): Always do a
6332 full LC SSA rewrite but only if any blocks changed loop
6333 depth.
6334
6335 2022-07-05 Richard Biener <rguenther@suse.de>
6336
6337 * tree-ssa-loop-manip.cc (find_uses_to_rename_def): Remove.
6338 (find_uses_to_rename_in_loop): Likewise.
6339 (rewrite_into_loop_closed_ssa_1): Remove loop parameter and
6340 uses.
6341 (rewrite_into_loop_closed_ssa): Adjust.
6342
6343 2022-07-05 Richard Biener <rguenther@suse.de>
6344
6345 PR tree-optimization/106186
6346 * tree-ssa-propagate.cc (clean_up_loop_closed_phi):
6347 Properly handle virtual PHI nodes.
6348
6349 2022-07-05 Richard Biener <rguenther@suse.de>
6350
6351 PR tree-optimization/106196
6352 * tree-vect-stmts.cc (vect_finish_stmt_generation): Properly
6353 handle aggregate returns of calls for VDEF updates.
6354
6355 2022-07-05 Richard Biener <rguenther@suse.de>
6356
6357 * tree-vect-loop-manip.cc (vect_set_loop_condition_normal):
6358 Maintain LC SSA.
6359
6360 2022-07-05 Richard Sandiford <richard.sandiford@arm.com>
6361
6362 * tree-vect-patterns.cc (vect_convert_input): Expect the input
6363 type to be signed for optab_vector_mixed_sign. Update the vectype
6364 at the same time as type.
6365 (vect_recog_dot_prod_pattern): Update accordingly. If usdot isn't
6366 available, try sdot instead.
6367 * tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): New function.
6368 (vect_model_reduction_cost): Model the cost of implementing usdot
6369 using sdot.
6370 (vectorizable_reduction): Likewise. Skip target support test
6371 for lane reductions.
6372 (vect_emulate_mixed_dot_prod): New function.
6373 (vect_transform_reduction): Use it to emulate usdot via sdot.
6374
6375 2022-07-05 Richard Biener <rguenther@suse.de>
6376
6377 PR tree-optimization/106182
6378 * loop-init.cc (fix_loop_structure): Return the number
6379 of newly discovered plus the number of deleted loops.
6380 * tree-cfgcleanup.cc (repair_loop_structures): Adjust
6381 variable name.
6382
6383 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
6384
6385 * gimple-range-fold.cc
6386 (fold_using_range::range_of_ssa_name_with_loop_info): Restrict the
6387 call to SCEV for irange supported types.
6388 (fold_using_range::range_of_builtin_int_call): Convert to vrange.
6389 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Same.
6390 * tree-ssa-dom.cc (cprop_operand): Same.
6391
6392 2022-07-04 Roger Sayle <roger@nextmovesoftware.com>
6393
6394 PR target/104489
6395 * calls.cc (precompute_register_parameters): Allow promotion
6396 of floating point values to be passed in wider integer modes
6397 by calling new convert_float_to_wider_int.
6398 (expand_call): Allow floating point results to be returned in
6399 wider integer modes by calling new convert wider_int_to_float.
6400 * cfgexpand.cc (expand_value_return): Allow backends to promote
6401 a scalar floating point return value to a wider integer mode
6402 by calling new convert_float_to_wider_int.
6403 * expr.cc (convert_float_to_wider_int): New function.
6404 (convert_wider_int_to_float): Likewise.
6405 (expand_expr_real_1) <expand_decl_rtl>: Allow backends to promote
6406 scalar FP PARM_DECLs to wider integer modes, by calling new
6407 convert_wider_int_to_float.
6408 * expr.h (convert_modes): Name arguments for improved documentation.
6409 (convert_float_to_wider_int): Prototype new function here.
6410 (convert_wider_int_to_float): Likewise.
6411 * function.cc (assign_parm_setup_stack): Allow floating point
6412 values to be passed on the stack as wider integer modes by
6413 calling new convert_wider_int_to_float.
6414
6415 2022-07-04 Martin Jambor <mjambor@suse.cz>
6416
6417 PR tree-optimization/105860
6418 * tree-sra.cc (build_reconstructed_reference): Start expr
6419 traversal only just below the outermost union.
6420
6421 2022-07-04 Richard Biener <rguenther@suse.de>
6422
6423 * tree-vect-loop-manip.cc (vect_do_peeling): Revert assert
6424 and update virtual SSA form again. Assert we do so for
6425 a known set of transforms only.
6426 * tree-vectorizer.h (vec_info::any_known_not_updated_vssa): New.
6427 * tree-vect-stmts.cc (vectorizable_load): When vectorizing
6428 using load-lanes allow virtual SSA update.
6429
6430 2022-07-04 Tobias Burnus <tobias@codesourcery.com>
6431 Chung-Lin Tang <cltang@codesourcery.com>
6432 Thomas Schwinge <thomas@codesourcery.com>
6433
6434 * config/gcn/mkoffload.cc (process_asm): Write '#include <stdint.h>'.
6435 (process_obj): Pass omp_requires_mask to GOMP_offload_register_ver.
6436 (main): Ask lto1 to obtain omp_requires_mask and pass it on.
6437 * config/nvptx/mkoffload.cc (process, main): Likewise.
6438 * lto-cgraph.cc (omp_requires_to_name): New.
6439 (input_offload_tables): Save omp_requires_mask.
6440 (output_offload_tables): Read it, check for consistency,
6441 save value for mkoffload.
6442 * omp-low.cc (lower_omp_target): Force output_offloadtables
6443 call for OMP_REQUIRES_TARGET_USED.
6444
6445 2022-07-04 Richard Biener <rguenther@suse.de>
6446
6447 * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
6448 no SSA update is needed instead of updating virtual SSA
6449 form.
6450 * tree-vect-stmts.cc (vectorizable_load): For hoisted
6451 invariant load use the loop entry virtual use.
6452 For emulated gather loads use the virtual use of the
6453 original stmt like vect_finish_stmt_generation would do.
6454
6455 2022-07-04 Eric Botcazou <ebotcazou@adacore.com>
6456
6457 * tree-pretty-print.cc (dump_generic_node) <ARRAY_TYPE>: Add guard
6458 for direct circularity.
6459
6460 2022-07-04 Eric Botcazou <ebotcazou@adacore.com>
6461
6462 * dwarf2out.cc (gen_array_type_die): Use the default lower bound of
6463 the language for vector types.
6464
6465 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
6466
6467 * value-range-storage.cc (irange_storage_slot::set_irange): Set
6468 nonzero bits in irange.
6469 (irange_storage_slot::get_irange): Get nonzero bits from irange.
6470 * value-range.cc (irange::operator=): Set nonzero bits.
6471 (irange::irange_set): Same.
6472 (irange::irange_set_anti_range): Same.
6473 (irange::set): Same.
6474 (irange::verify_range): Same.
6475 (irange::legacy_equal_p): Check nonzero bits.
6476 (irange::equal_p): Same.
6477 (irange::contains_p): Handle nonzero bits.
6478 (irange::irange_union): Same.
6479 (irange::irange_intersect): Same.
6480 (irange::dump): Same.
6481 (irange::set_nonzero_bits): New.
6482 (irange::get_nonzero_bits): New.
6483 (irange::intersect_nonzero_bits): New.
6484 (irange::union_nonzero_bits): New.
6485 (irange::dump_bitmasks): New.
6486 * value-range.h (class irange): Add m_nonzero_mask.
6487 (gt_ggc_mx): Handle nonzero bits.
6488 (gt_pch_nx): Same.
6489 (irange::set_undefined): Set nonzero bits.
6490 (irange::set_varying): Same.
6491 (irange::normalize_kind): Call set_undefined.
6492
6493 2022-07-04 Richard Biener <rguenther@suse.de>
6494
6495 * tree-ssa-loop-manip.h
6496 (rewrite_virtuals_into_loop_closed_ssa): Remove.
6497 (rewrite_into_loop_closed_ssa_1): Likewise.
6498 * tree-ssa-loop-manip.cc (rewrite_into_loop_closed_ssa_1):
6499 Make static.
6500 (rewrite_into_loop_closed_ssa): Remove loop overload,
6501 always rewrite virtuals into LC SSA.
6502 (check_loop_closed_ssa_bb): Also check virtuals.
6503 * tree-ssa-dce.cc (remove_dead_phis): Preserve virtual
6504 LC PHIs when in LC SSA.
6505 * gimple-loop-jam.cc (fuse_loops): Do not rewrite into
6506 loop-closed SSA here, but ...
6507 (tree_loop_unroll_and_jam): ... here once.
6508 * tree-if-conv.cc (version_loop_for_if_conversion): Use
6509 the cheaper TODO_update_ssa_no_phi.
6510 * tree-loop-distribution.cc (version_loop_by_alias_check):
6511 Likewise.
6512 * tree-ssa-loop-unswitch.cc (tree_unswitch_single_loop):
6513 Likewise.
6514 * tree-vect-loop-manip.cc (vect_loop_versioning): Likewise.
6515 (tree_unswitch_outer_loop): Do not rewrite virtuals into
6516 LC ssa.
6517 * tree-parloops.cc (transform_to_exit_first_loop_alt):
6518 Likewise.
6519 (pass_parallelize_loops::execute): After finishing rewrite
6520 into LC SSA again because we do not maintain it properly.
6521
6522 2022-07-04 Richard Biener <rguenther@suse.de>
6523
6524 PR tree-optimization/106055
6525 * graphite.cc (canonicalize_loop_closed_ssa): Check whether
6526 we can propagate.
6527
6528 2022-07-04 Haochen Jiang <haochen.jiang@intel.com>
6529
6530 PR target/43618
6531 * config/i386/sse.md (extendv2sfv2df2): New define_expand.
6532 (sse2_cvtps2pd_<mask_name>): Change constraint of operands[1].
6533 (*sse2_cvtps2pd_<mask_name>_1): Rename from extendvsdfv2df2.
6534
6535 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
6536
6537 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use operator!=.
6538 * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same.
6539 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Use set
6540 with two arguments.
6541 (find_unswitching_predicates_for_bb): Same.
6542 * tree-vrp.cc (range_fold_unary_symbolics_p): Same.
6543 * value-range-equiv.cc (value_range_equiv::equal_p): Use operator==.
6544 * value-range.cc (irange::equal_p): Rename to...
6545 (irange::operator==): ...this.
6546 * value-range.h (irange::set): Remove.
6547 (irange::operator==): Remove.
6548 (irange::set_zero): Use set with two arguments.
6549 * vr-values.cc (vr_values::extract_range_from_binary_expr): Same.
6550 (vr_values::extract_range_from_unary_expr): Same.
6551 (check_for_binary_op_overflow): Same.
6552 (bounds_of_var_in_loop): Same.
6553
6554 2022-07-03 H.J. Lu <hjl.tools@gmail.com>
6555
6556 PR target/106022
6557 * config/i386/i386-protos.h (ix86_convert_const_vector_to_integer):
6558 New.
6559 * config/i386/i386.cc (ix86_convert_const_vector_to_integer):
6560 New.
6561 * config/i386/mmx.md (V_16_32_64): New.
6562 (*mov<mode>_imm): New patterns for stores with 16-bit, 32-bit
6563 and 64-bit constant vector.
6564 * config/i386/predicates.md (x86_64_const_vector_operand): New.
6565
6566 2022-07-03 Aldy Hernandez <aldyh@redhat.com>
6567
6568 * gimple-range-cache.cc: Include value-range-storage.h.
6569 * gimple-range-cache.h (class block_range_cache): Add "class" to
6570 m_range_allocator.
6571 * gimple-range-edge.cc
6572 (gimple_outgoing_range::gimple_outgoing_range): Allocate allocator.
6573 (gimple_outgoing_range::~gimple_outgoing_range): Free allocator.
6574 (gimple_outgoing_range::calc_switch_ranges): Dereference allocator.
6575 * gimple-range-edge.h: Add "class" to m_range_allocator.
6576 * gimple-range-infer.cc
6577 (infer_range_manager::infer_range_manager): Allocate allocator.
6578 (infer_range_manager::~infer_range_manager): Free allocator.
6579 (infer_range_manager::get_nonzero): Dereference allocator.
6580 (infer_range_manager::add_range): Same.
6581 * gimple-range-infer.h (class vrange_allocator): Add "class" to
6582 m_range_allocator.
6583 * value-range-storage.h (class vrange_allocator): Move from
6584 value-range.h.
6585 (class obstack_vrange_allocator): Same.
6586 (class ggc_vrange_allocator): Same.
6587 (vrange_allocator::alloc_vrange): Same.
6588 (vrange_allocator::alloc_irange): Same.
6589 * value-range.h (class vrange_allocator): Move to value-range-storage.h.
6590 (class obstack_vrange_allocator): Same.
6591 (class ggc_vrange_allocator): Same.
6592
6593 2022-07-03 Aldy Hernandez <aldyh@redhat.com>
6594
6595 * Makefile.in (OBJS): Add value-range-storage.o.
6596 (GTFILES): Add value-range-storage.h.
6597 * gengtype.cc (open_base_files): Add value-range-storage.h.
6598 * value-range-storage.cc: New file.
6599 * value-range-storage.h: New file.
6600
6601 2022-07-03 Xi Ruoyao <xry111@xry111.site>
6602 Lulu Cheng <chenglulu@loongson.cn>
6603
6604 * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
6605 New static function.
6606 (loongarch_idiv_insns): Use loongarch_check_zero_div_p instead
6607 of TARGET_CHECK_ZERO_DIV.
6608 (loongarch_output_division): Likewise.
6609 * common/config/loongarch/loongarch-common.cc
6610 (TARGET_DEFAULT_TARGET_FLAGS): Remove unneeded hook.
6611 * doc/invoke.texi: Update to match the new behavior.
6612
6613 2022-07-03 Ian Lance Taylor <iant@golang.org>
6614
6615 * tree-ssa-dse.cc (dse_optimize_stmt): Only delete a trapping
6616 statement if -fdelete-dead-exceptions.
6617
6618 2022-07-02 Tim Lange <mail@tim-lange.me>
6619
6620 PR analyzer/105900
6621 * doc/invoke.texi: Added Wanalyzer-allocation-size.
6622
6623 2022-07-02 Immad Mir <mirimmad17@gmail.com>
6624
6625 PR analyzer/106003
6626 * Makefile.in (ANALYZER_OBJS): Add sm-fd.o.
6627 * doc/invoke.texi: Add -Wanalyzer-fd-double-close, -Wanalyzer-fd-leak,
6628 -Wanalyzer-fd-access-mode-mismatch, -Wanalyzer-fd-use-without-check,
6629 -Wanalyzer-fd-use-after-close.
6630
6631 2022-07-01 Aldy Hernandez <aldyh@redhat.com>
6632
6633 * wide-int.h (struct trailing_wide_ints): Add m_num_elements.
6634 (trailing_wide_ints::set_precision): Add num_elements argument.
6635 (trailing_wide_ints::extra_size): Same.
6636
6637 2022-07-01 Uroš Bizjak <ubizjak@gmail.com>
6638
6639 * config/i386/i386.md (*andn<mode>3_doubleword_bmi):
6640 Use "r" constraint for operand 1.
6641
6642 2022-07-01 Richard Biener <rguenther@suse.de>
6643
6644 * tree-into-ssa.cc (rewrite_update_dom_walker::before_dom_children):
6645 Do not look at interesting_blocks which is a copy of
6646 blocks_to_update.
6647 (update_ssa): Do not initialize it.
6648 (pass_build_ssa::execute): Set interesting_blocks to NULL
6649 after releasing it.
6650
6651 2022-07-01 Richard Biener <rguenther@suse.de>
6652
6653 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Revert
6654 back to using maybe_ne (off, -1).
6655
6656 2022-07-01 Richard Biener <rguenther@suse.de>
6657
6658 * tree-ssa-sccvn.cc (vn_nary_op_insert_into): Make
6659 checking dominance check conditional on flag_checking.
6660
6661 2022-07-01 Tobias Burnus <tobias@codesourcery.com>
6662
6663 * config/gcn/gcn-protos.h (print_operand_address): Remove register
6664 keyword on 'rtx addr' argument.
6665
6666 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
6667 Uroš Bizjak <ubizjak@gmail.com>
6668
6669 * config/i386/i386.md (*andn<mode>3_doubleword_bmi): Add constraints
6670 to post-reload define_insn_and_split.
6671
6672 2022-07-01 Jakub Jelinek <jakub@redhat.com>
6673
6674 PR middle-end/106144
6675 * wide-int.cc (wi::shifted_mask): If end >= prec, return right after
6676 emitting element for shift or if shift is 0 first element after start.
6677 (wide_int_cc_tests): Add tests for equivalency of wi::mask and
6678 wi::shifted_mask with 0 start.
6679
6680 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
6681
6682 PR target/106122
6683 * config/i386/i386.md (peephole2): Avoid generating pop %esp
6684 when optimizing for size.
6685
6686 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
6687 Uroš Bizjak <ubizjak@gmail.com>
6688
6689 * config/i386/i386.md (general_szext_operand): Add TImode
6690 support using x86_64_hilo_general_operand predicate.
6691 (*cmp<dwi>_doubleword): Use x86_64_hilo_general_operand predicate.
6692 (*add<dwi>3_doubleword): Improved optimization of zero addition.
6693 (and<mode>3): Use SDWIM mode iterator to add support for double
6694 word bit-wise AND in TImode. Use force_reg when double word
6695 immediate operand isn't x86_64_hilo_general_operand.
6696 (and<dwi>3_doubleword): Generalized from anddi3_doubleword and
6697 converted into a post-reload splitter.
6698 (*andndi3_doubleword): Previous define_insn deleted.
6699 (*andn<mode>3_doubleword_bmi): New define_insn_and_split for
6700 TARGET_BMI that splits post-reload.
6701 (*andn<mode>3_doubleword): New define_insn_and_split for
6702 !TARGET_BMI, that lowers/splits before reload.
6703 (<any_or><mode>3): Use SDWIM mode iterator to add suppport for
6704 double word bit-wise XOR and bit-wise IOR in TImode. Use
6705 force_reg when double word immediate operand isn't
6706 x86_64_hilo_general_operand.
6707 (*<any_or>di3_doubleword): Generalized from <any_or>di3_doubleword.
6708 (one_cmpl<mode>2): Use SDWIM mode iterator to add support for
6709 double word bit-wise NOT in TImode.
6710 (one_cmpl<dwi>2_doubleword): Generalize from one_cmpldi2_doubleword
6711 and converted into a post-reload splitter.
6712
6713 2022-07-01 Eric Botcazou <ebotcazou@adacore.com>
6714
6715 PR middle-end/105874
6716 * expr.cc (expand_expr_real_1) <normal_inner_ref>: Force
6717 EXPAND_MEMORY for the expansion of the inner reference only
6718 in the usual cases where a memory reference is required.
6719
6720 2022-07-01 Richard Biener <rguenther@suse.de>
6721
6722 PR tree-optimization/106131
6723 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Force alias-set
6724 zero when offsetting the read looking through an aggregate
6725 copy.
6726
6727 2022-07-01 Martin Liska <mliska@suse.cz>
6728
6729 PR tree-optimization/106126
6730 * gimple-if-to-switch.cc (struct condition_info): Save
6731 has_side_effect.
6732 (find_conditions): Parse all BBs.
6733 (pass_if_to_switch::execute): Allow only side effects for first
6734 BB.
6735
6736 2022-07-01 Haochen Jiang <haochen.jiang@intel.com>
6737
6738 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AVX512F_UNSET):
6739 Add OPTION_MASK_ISA2_AVX512BW_UNSET, remove
6740 OPTION_MASK_ISA2_AVX512BF16_UNSET and
6741 OPTION_MASK_ISA2_AVX512FP16_UNSET.
6742
6743 2022-06-30 Joseph Myers <joseph@codesourcery.com>
6744
6745 PR lto/106129
6746 * lto-wrapper.cc (find_option): Add argument start.
6747 (merge_and_complain): Loop over existing_opt_index and
6748 existing_opt2_index for Xassembler check. Update calls to
6749 find_option.
6750 (find_and_merge_options): Add argument first to determine whether
6751 to merge options with those passed in *opts.
6752 (run_gcc): Update calls to find_and_merge_options.
6753
6754 2022-06-30 Aldy Hernandez <aldyh@redhat.com>
6755
6756 * gimple-range-cache.cc (block_range_cache::block_range_cache):
6757 Rename vrange_allocator to obstack_vrange_allocator.
6758 (ssa_global_cache::ssa_global_cache): Same.
6759 * gimple-range-edge.h (class gimple_outgoing_range): Same.
6760 * gimple-range-infer.h (class infer_range_manager): Same.
6761 * value-range.h (class vrange_allocator): Make abstract.
6762 (class obstack_vrange_allocator): Inherit from vrange_allocator.
6763 (class ggc_vrange_allocator): New.
6764
6765 2022-06-30 Roger Sayle <roger@nextmovesoftware.com>
6766 Uroš Bizjak <ubizjak@gmail.com>
6767
6768 * config/i386/i386.md (swap_mode): Rename from *swap<mode> to
6769 provide gen_swapsi.
6770 (<any_rotate>di3): Handle !TARGET_64BIT rotations by 32 bits
6771 via new gen_<insn>32di2_doubleword below.
6772 (<anyrotate>32di2_doubleword): New define_insn_and_split
6773 that splits after reload as either a pair of move instructions
6774 or an xchgl (using gen_swapsi).
6775
6776 2022-06-30 Richard Biener <rguenther@suse.de>
6777
6778 * domwalk.h (dom_walker::dom_walker): Update comment to
6779 reflect reality and new special argument value for
6780 bb_index_to_rpo.
6781 * domwalk.cc (dom_walker::dom_walker): Recognize -1
6782 bb_index_to_rpo.
6783 * tree-into-ssa.cc
6784 (rewrite_update_dom_walker::rewrite_update_dom_walker): Tell
6785 dom_walker to not use RPO.
6786
6787 2022-06-30 Martin Liska <mliska@suse.cz>
6788
6789 * tree-ssa-dom.cc (pass_dominator::execute): Remove m_ranger as
6790 it is unused.
6791
6792 2022-06-30 Andrew MacLeod <amacleod@redhat.com>
6793
6794 PR tree-optimization/106114
6795 * gimple-range-fold.cc (fold_using_range::relation_fold_and_or): Check
6796 statement operands instead of GORI cache.
6797
6798 2022-06-30 Antoni Boucher <bouanto@zoho.com>
6799
6800 PR target/106095
6801 * config/i386/sse.md: Fix asm generation.
6802
6803 2022-06-29 Sergei Trofimovich <siarheit@google.com>
6804
6805 PR c++/106102
6806 * system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
6807
6808 2022-06-29 Joseph Myers <joseph@codesourcery.com>
6809
6810 * config/nios2/nios2.cc (nios2_load_pic_address): Use gen_rtx_MEM
6811 not gen_const_mem for UNSPEC_PIC_CALL_SYM.
6812
6813 2022-06-29 Richard Biener <rguenther@suse.de>
6814
6815 PR rtl-optimization/106082
6816 * combine.cc (distribute_notes): Preserve notes when
6817 they indicate a call doesn't perform a non-local goto.
6818
6819 2022-06-29 Richard Biener <rguenther@suse.de>
6820
6821 PR tree-optimization/106112
6822 * tree-ssa-sccvn.cc (valueized_wider_op): Properly extend
6823 a constant operand according to its type.
6824
6825 2022-06-29 Martin Liska <mliska@suse.cz>
6826
6827 * doc/invoke.texi: Remove removed evrp-mode.
6828
6829 2022-06-29 Lulu Cheng <chenglulu@loongson.cn>
6830
6831 PR target/106097
6832 * config/loongarch/loongarch.cc (loongarch_build_integer):
6833 Remove undefined behavior from code.
6834
6835 2022-06-28 Dimitar Dimitrov <dimitar@dinux.eu>
6836
6837 * doc/sourcebuild.texi: Document new no_alignment_constraints
6838 effective target check.
6839
6840 2022-06-28 Aldy Hernandez <aldyh@redhat.com>
6841
6842 * Makefile.in: Remove gimple-ssa-evrp.o and gimple-ssa-evrp-analyze.o.
6843 * flag-types.h (enum evrp_mode): Remove.
6844 * params.opt: Remove --param=evrp-mode.
6845 * tree-vrp.cc (make_pass_early_vrp): New.
6846 (pass_vrp::execute): Call early VRP instance.
6847 * gimple-ssa-evrp-analyze.cc: Removed.
6848 * gimple-ssa-evrp-analyze.h: Removed.
6849 * gimple-ssa-evrp.cc: Removed.
6850
6851 2022-06-28 Alexandre Oliva <oliva@adacore.com>
6852
6853 * Makefile.in (TFLAGS): New.
6854 (GCC_FOR_TARGET): Add TFLAGS.
6855 (FLAGS_TO_PASS): Pass TFLAGS down.
6856
6857 2022-06-28 Richard Biener <rguenther@suse.de>
6858
6859 * tree-ssa-loop-split.cc (fix_loop_bb_probability): Do not
6860 call update_ssa.
6861
6862 2022-06-28 Richard Biener <rguenther@suse.de>
6863
6864 * tree-into-ssa.cc (insert_updated_phi_nodes_for): Use
6865 mark_block_for_update.
6866 (update_ssa): Adjust.
6867
6868 2022-06-28 Xi Ruoyao <xry111@xry111.site>
6869
6870 PR target/106096
6871 * config/loongarch/loongarch.h (REG_CLASS_CONTENTS): Exclude
6872 $r13 from SIBCALL_REGS.
6873 * config/loongarch/loongarch.cc (loongarch_regno_to_class):
6874 Change $r13 to JIRL_REGS.
6875
6876 2022-06-28 Aldy Hernandez <aldyh@redhat.com>
6877
6878 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Remove
6879 irange::supports_p.
6880
6881 2022-06-28 Richard Biener <rguenther@suse.de>
6882
6883 PR middle-end/106053
6884 * match.pd ((T)a == (T)b): Avoid folding away sign
6885 changes in a comparison if we'd truncate to a boolean.
6886
6887 2022-06-28 Kewen Lin <linkw@linux.ibm.com>
6888
6889 * config/rs6000/rs6000.md (*rotl<mode>3_insert_4): Replace mode
6890 iterator GPR with SImode, adjust the condition and output template,
6891 rename to ...
6892 (*rotlsi3_insert_4): ... this.
6893
6894 2022-06-27 David Malcolm <dmalcolm@redhat.com>
6895
6896 * genmatch.cc: Add "final" and "override" to various vfunc
6897 implementations, removing redundant "virtual" as appropriate.
6898 * gensupport.cc: Likewise.
6899 * gimple-range-cache.h: Likewise.
6900 * ipa-icf-gimple.h: Likewise.
6901 * ipa-icf.h: Likewise.
6902 * read-md.h: Likewise.
6903 * read-rtl-function.cc: Likewise.
6904 * tree-ssa-loop-ch.cc: Likewise.
6905 * tree-ssa-sccvn.cc: Likewise.
6906
6907 2022-06-27 David Malcolm <dmalcolm@redhat.com>
6908
6909 * config/i386/i386-features.h: Add "final" and "override" to
6910 scalar_chain vfunc implementations as appropriate.
6911
6912 2022-06-27 David Malcolm <dmalcolm@redhat.com>
6913
6914 * tree-switch-conversion.h: Add "final" and "override" to cluster
6915 vfunc implementations as appropriate.
6916
6917 2022-06-27 David Malcolm <dmalcolm@redhat.com>
6918
6919 * expr.cc: Add "final" and "override" to op_by_pieces_d vfunc
6920 implementations as appropriate.
6921
6922 2022-06-27 David Malcolm <dmalcolm@redhat.com>
6923
6924 * compare-elim.cc: Add "final" and "override" to dom_walker vfunc
6925 implementations, removing redundant "virtual" as appropriate.
6926 * gimple-ssa-strength-reduction.cc: Likewise.
6927 * ipa-prop.cc: Likewise.
6928 * rtl-ssa/blocks.cc: Likewise.
6929 * tree-into-ssa.cc: Likewise.
6930 * tree-ssa-dom.cc: Likewise.
6931 * tree-ssa-math-opts.cc: Likewise.
6932 * tree-ssa-phiopt.cc: Likewise.
6933 * tree-ssa-propagate.cc: Likewise.
6934 * tree-ssa-sccvn.cc: Likewise.
6935 * tree-ssa-strlen.cc: Likewise.
6936 * tree-ssa-uncprop.cc: Likewise.
6937
6938 2022-06-27 David Malcolm <dmalcolm@redhat.com>
6939
6940 * adjust-alignment.cc: Add "final" and "override" to opt_pass
6941 vfunc implementations, removing redundant "virtual" as
6942 appropriate.
6943 * asan.cc: Likewise.
6944 * auto-inc-dec.cc: Likewise.
6945 * auto-profile.cc: Likewise.
6946 * bb-reorder.cc: Likewise.
6947 * cfgcleanup.cc: Likewise.
6948 * cfgexpand.cc: Likewise.
6949 * cfgrtl.cc: Likewise.
6950 * cgraphbuild.cc: Likewise.
6951 * combine-stack-adj.cc: Likewise.
6952 * combine.cc: Likewise.
6953 * compare-elim.cc: Likewise.
6954 * config/i386/i386-features.cc: Likewise.
6955 * coroutine-passes.cc: Likewise.
6956 * cprop.cc: Likewise.
6957 * cse.cc: Likewise.
6958 * dce.cc: Likewise.
6959 * df-core.cc: Likewise.
6960 * dse.cc: Likewise.
6961 * dwarf2cfi.cc: Likewise.
6962 * early-remat.cc: Likewise.
6963 * except.cc: Likewise.
6964 * final.cc: Likewise.
6965 * function.cc: Likewise.
6966 * fwprop.cc: Likewise.
6967 * gcse.cc: Likewise.
6968 * gimple-harden-conditionals.cc: Likewise.
6969 * gimple-if-to-switch.cc: Likewise.
6970 * gimple-isel.cc: Likewise.
6971 * gimple-laddress.cc: Likewise.
6972 * gimple-loop-interchange.cc: Likewise.
6973 * gimple-loop-jam.cc: Likewise.
6974 * gimple-loop-versioning.cc: Likewise.
6975 * gimple-low.cc: Likewise.
6976 * gimple-ssa-backprop.cc: Likewise.
6977 * gimple-ssa-evrp.cc: Likewise.
6978 * gimple-ssa-isolate-paths.cc: Likewise.
6979 * gimple-ssa-nonnull-compare.cc: Likewise.
6980 * gimple-ssa-split-paths.cc: Likewise.
6981 * gimple-ssa-store-merging.cc: Likewise.
6982 * gimple-ssa-strength-reduction.cc: Likewise.
6983 * gimple-ssa-warn-access.cc: Likewise.
6984 * gimple-ssa-warn-alloca.cc: Likewise.
6985 * gimple-ssa-warn-restrict.cc: Likewise.
6986 * gimple-warn-recursion.cc: Likewise.
6987 * graphite.cc: Likewise.
6988 * ifcvt.cc: Likewise.
6989 * init-regs.cc: Likewise.
6990 * ipa-comdats.cc: Likewise.
6991 * ipa-cp.cc: Likewise.
6992 * ipa-devirt.cc: Likewise.
6993 * ipa-fnsummary.cc: Likewise.
6994 * ipa-free-lang-data.cc: Likewise.
6995 * ipa-icf.cc: Likewise.
6996 * ipa-inline.cc: Likewise.
6997 * ipa-modref.cc: Likewise.
6998 * ipa-profile.cc: Likewise.
6999 * ipa-pure-const.cc: Likewise.
7000 * ipa-reference.cc: Likewise.
7001 * ipa-split.cc: Likewise.
7002 * ipa-sra.cc: Likewise.
7003 * ipa-visibility.cc: Likewise.
7004 * ipa.cc: Likewise.
7005 * ira.cc: Likewise.
7006 * jump.cc: Likewise.
7007 * loop-init.cc: Likewise.
7008 * lower-subreg.cc: Likewise.
7009 * mode-switching.cc: Likewise.
7010 * modulo-sched.cc: Likewise.
7011 * multiple_target.cc: Likewise.
7012 * omp-expand.cc: Likewise.
7013 * omp-low.cc: Likewise.
7014 * omp-oacc-kernels-decompose.cc: Likewise.
7015 * omp-oacc-neuter-broadcast.cc: Likewise.
7016 * omp-offload.cc: Likewise.
7017 * omp-simd-clone.cc: Likewise.
7018 * passes.cc: Likewise.
7019 * postreload-gcse.cc: Likewise.
7020 * postreload.cc: Likewise.
7021 * predict.cc: Likewise.
7022 * recog.cc: Likewise.
7023 * ree.cc: Likewise.
7024 * reg-stack.cc: Likewise.
7025 * regcprop.cc: Likewise.
7026 * reginfo.cc: Likewise.
7027 * regrename.cc: Likewise.
7028 * reorg.cc: Likewise.
7029 * sancov.cc: Likewise.
7030 * sanopt.cc: Likewise.
7031 * sched-rgn.cc: Likewise.
7032 * stack-ptr-mod.cc: Likewise.
7033 * store-motion.cc: Likewise.
7034 * tracer.cc: Likewise.
7035 * trans-mem.cc: Likewise.
7036 * tree-call-cdce.cc: Likewise.
7037 * tree-cfg.cc: Likewise.
7038 * tree-cfgcleanup.cc: Likewise.
7039 * tree-complex.cc: Likewise.
7040 * tree-eh.cc: Likewise.
7041 * tree-emutls.cc: Likewise.
7042 * tree-if-conv.cc: Likewise.
7043 * tree-into-ssa.cc: Likewise.
7044 * tree-loop-distribution.cc: Likewise.
7045 * tree-nrv.cc: Likewise.
7046 * tree-object-size.cc: Likewise.
7047 * tree-parloops.cc: Likewise.
7048 * tree-predcom.cc: Likewise.
7049 * tree-profile.cc: Likewise.
7050 * tree-sra.cc: Likewise.
7051 * tree-ssa-ccp.cc: Likewise.
7052 * tree-ssa-copy.cc: Likewise.
7053 * tree-ssa-dce.cc: Likewise.
7054 * tree-ssa-dom.cc: Likewise.
7055 * tree-ssa-dse.cc: Likewise.
7056 * tree-ssa-forwprop.cc: Likewise.
7057 * tree-ssa-ifcombine.cc: Likewise.
7058 * tree-ssa-loop-ch.cc: Likewise.
7059 * tree-ssa-loop-im.cc: Likewise.
7060 * tree-ssa-loop-ivcanon.cc: Likewise.
7061 * tree-ssa-loop-prefetch.cc: Likewise.
7062 * tree-ssa-loop-split.cc: Likewise.
7063 * tree-ssa-loop-unswitch.cc: Likewise.
7064 * tree-ssa-loop.cc: Likewise.
7065 * tree-ssa-math-opts.cc: Likewise.
7066 * tree-ssa-phiopt.cc: Likewise.
7067 * tree-ssa-phiprop.cc: Likewise.
7068 * tree-ssa-pre.cc: Likewise.
7069 * tree-ssa-reassoc.cc: Likewise.
7070 * tree-ssa-sccvn.cc: Likewise.
7071 * tree-ssa-sink.cc: Likewise.
7072 * tree-ssa-strlen.cc: Likewise.
7073 * tree-ssa-structalias.cc: Likewise.
7074 * tree-ssa-uncprop.cc: Likewise.
7075 * tree-ssa-uninit.cc: Likewise.
7076 * tree-ssanames.cc: Likewise.
7077 * tree-stdarg.cc: Likewise.
7078 * tree-switch-conversion.cc: Likewise.
7079 * tree-tailcall.cc: Likewise.
7080 * tree-vect-generic.cc: Likewise.
7081 * tree-vectorizer.cc: Likewise.
7082 * tree-vrp.cc: Likewise.
7083 * tsan.cc: Likewise.
7084 * ubsan.cc: Likewise.
7085 * var-tracking.cc: Likewise.
7086 * vtable-verify.cc: Likewise.
7087 * web.cc: Likewise.
7088
7089 2022-06-27 Andrew Stubbs <ams@codesourcery.com>
7090
7091 * config/gcn/gcn.md (*movbi): Remove assembler bug workarounds.
7092 (jump): Likewise.
7093 (movdi_symbol_save_scc): Likewise.
7094
7095 2022-06-27 Roger Sayle <roger@nextmovesoftware.com>
7096
7097 PR rtl-optimization/7061
7098 * config/i386/i386.md (*highpartdisi2): New define_insn_and_split.
7099
7100 2022-06-27 Roger Sayle <roger@nextmovesoftware.com>
7101
7102 PR tree-optimization/94026
7103 * match.pd (((X << C1) & C2) eq/ne C3): New simplification.
7104 (((X >> C1) & C2) eq/ne C3): Likewise.
7105
7106 2022-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7107
7108 * statistics.cc: Include tree.h.
7109 (get_function_name): New function.
7110 (statistics_fini_pass_2): Call get_function_name instead of
7111 current_function_name.
7112 (statistics_counter_event): Call get_function_name instead of
7113 function_name.
7114 (statistics_histogram_event): Likewise.
7115
7116 2022-06-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7117
7118 * config/xtensa/xtensa.md:
7119 Suppress unnecessary emitting nop insn in the split patterns for
7120 integer/FP constant synthesis, and add new peephole2 pattern that
7121 folds such synthesized additions.
7122
7123 2022-06-25 Aldy Hernandez <aldyh@redhat.com>
7124
7125 * tree-ssa-dom.cc (dom_jt_state): Pass ranger to constructor
7126 instead of evrp.
7127 (dom_jt_state::push): Remove m_evrp.
7128 (dom_jt_state::pop): Same.
7129 (dom_jt_state::record_ranges_from_stmt): Remove.
7130 (dom_jt_state::register_equiv): Remove updating of evrp ranges.
7131 (class dom_jt_simplifier): Pass ranger to constructor.
7132 Inherit from hybrid_jt_simplifier.
7133 (dom_jt_simplifier::simplify): Convert to ranger.
7134 (pass_dominator::execute): Same.
7135 (all_uses_feed_or_dominated_by_stmt): New.
7136 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): New.
7137 (dom_opt_dom_walker::before_dom_children): Call
7138 set_global_ranges_from_unreachable_edges.
7139 Do not call record_ranges_from_stmt.
7140 (dom_opt_dom_walker::after_dom_children): Remove evrp use.
7141 (cprop_operand): Use int_range<> instead of value_range.
7142 (dom_opt_dom_walker::fold_cond): New.
7143 (dom_opt_dom_walker::optimize_stmt): Pass ranger to
7144 cprop_into_stmt.
7145 Use fold_cond() instead of vrp_visit_cond_stmt().
7146 * tree-ssa-threadedge.cc (jt_state::register_equivs_stmt): Do not
7147 pass state to simplifier.
7148 * vr-values.h (class vr_values): Make fold_cond public.
7149
7150 2022-06-25 Jeff Law <jeffreyalaw@gmail.com>
7151
7152 * common/config/tilegx/tilegx-common.cc: Removed.
7153 * common/config/tilepro/tilepro-common.cc: Removed.
7154 * config.gcc: Remove tilegx and tilepro entries.
7155 * config/tilegx/constraints.md: Removed.
7156 * config/tilegx/feedback.h: Removed.
7157 * config/tilegx/linux.h: Removed.
7158 * config/tilegx/mul-tables.cc: Removed.
7159 * config/tilegx/predicates.md: Removed.
7160 * config/tilegx/sync.md: Removed.
7161 * config/tilegx/t-tilegx: Removed.
7162 * config/tilegx/tilegx-builtins.h: Removed.
7163 * config/tilegx/tilegx-c.cc: Removed.
7164 * config/tilegx/tilegx-generic.md: Removed.
7165 * config/tilegx/tilegx-modes.def: Removed.
7166 * config/tilegx/tilegx-multiply.h: Removed.
7167 * config/tilegx/tilegx-opts.h: Removed.
7168 * config/tilegx/tilegx-protos.h: Removed.
7169 * config/tilegx/tilegx.cc: Removed.
7170 * config/tilegx/tilegx.h: Removed.
7171 * config/tilegx/tilegx.md: Removed.
7172 * config/tilegx/tilegx.opt: Removed.
7173 * config/tilepro/constraints.md: Removed.
7174 * config/tilepro/feedback.h: Removed.
7175 * config/tilepro/gen-mul-tables.cc: Removed.
7176 * config/tilepro/linux.h: Removed.
7177 * config/tilepro/mul-tables.cc: Removed.
7178 * config/tilepro/predicates.md: Removed.
7179 * config/tilepro/t-tilepro: Removed.
7180 * config/tilepro/tilepro-builtins.h: Removed.
7181 * config/tilepro/tilepro-c.cc: Removed.
7182 * config/tilepro/tilepro-generic.md: Removed.
7183 * config/tilepro/tilepro-modes.def: Removed.
7184 * config/tilepro/tilepro-multiply.h: Removed.
7185 * config/tilepro/tilepro-protos.h: Removed.
7186 * config/tilepro/tilepro.cc: Removed.
7187 * config/tilepro/tilepro.h: Removed.
7188 * config/tilepro/tilepro.md: Removed.
7189 * config/tilepro/tilepro.opt: Removed.
7190 * configure.ac: Remove tilegx and tilepro entries.
7191 * configure: Rebuilt.
7192 * doc/extend.texi: Remove tilegx and tilepro entries.
7193 * doc/install.texi: Remove tilegx and tilepro entries.
7194 * doc/invoke.texi: Remove tilegx and tilepro entries.
7195 * doc/md.texi: Remove tilegx and tilepro entries.
7196
7197 2022-06-25 Roger Sayle <roger@nextmovesoftware.com>
7198 Richard Biener <rguenther@suse.de>
7199
7200 * regcprop.cc (pass_cprop_hardreg::execute): Perform a third
7201 iteration over each basic block that was updated by the second
7202 iteration.
7203
7204 2022-06-24 Jason Merrill <jason@redhat.com>
7205
7206 PR c++/87729
7207 PR c++/20423
7208 * doc/invoke.texi: Document changes.
7209
7210 2022-06-24 Iain Buclaw <ibuclaw@gdcproject.org>
7211
7212 * config/tilepro/gen-mul-tables.cc (tilegx_emit): Adjust loop
7213 condition to avoid overflow.
7214
7215 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
7216
7217 * config/rs6000/aix71.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
7218 OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
7219 * config/rs6000/darwin.h (MASK_PPC_GFXOPT): Replace with
7220 OPTION_MASK_PPC_GFXOPT.
7221 * config/rs6000/darwin64-biarch.h (MASK_PPC_GFXOPT): Same.
7222 * config/rs6000/default64.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
7223 OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
7224 * config/rs6000/rs6000-c.cc: Update comment.
7225 * config/rs6000/rs6000-cpus.def: Update RS6000_CPU macro calls.
7226 * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
7227 MASK_PPC_GPOPT with OPTION_MASK_PPC_GPOPT.
7228 (rs6000_builtin_mask_names): Replace MASK_PPC_GFXOPT, MASK_POPCNTB
7229 with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_POPCNTB.
7230 * config/rs6000/rs6000.h: (MASK_P8_VECTOR, MASK_P9_VECTOR,
7231 MASK_P9_MISC, MASK_POPCNTB, MASK_POPCNTD, MASK_PPC_GFXOPT,
7232 MASK_PPC_GPOPT, MASK_RECIP_PRECISION, MASK_SOFT_FLOAT,
7233 MASK_VSX, MASK_POWER10, MASK_P10_FUSION): Delete.
7234
7235 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
7236
7237 * config/rs6000/aix71.h (TARGET_DEFAULT): Replace MASK_MFCRF with
7238 OPTION_MASK_MFCRF.
7239 * config/rs6000/darwin.h (TARGET_DEFAULT): Replace MASK_MULTIPLE with
7240 OPTION_MASK_MULTIPLE.
7241 * config/rs6000/darwin64-biarch.h (TARGET_DEFAULT): Same.
7242 * config/rs6000/default64.h (TARGET_DEFAULT): Replace MASK_MFCRF with
7243 OPTION_MASK_MFCRF.
7244 * config/rs6000/eabi.h (TARGET_DEFAULT): Replace MASK_EABI with
7245 OPTION_MASK_EABI.
7246 * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Same.
7247 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Replace
7248 MASK_ALTIVEC with OPTION_MASK_ALTIVEC.
7249 * config/rs6000/rs6000-cpus.def (MASK_ALTIVEC, MASK_CMPB,
7250 MASK_CRYPTO, MASK_DFP, MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI,
7251 MASK_FLOAT128_KEYWORD, MASK_FLOAT128_HW, MASK_FPRND,
7252 MASK_P8_FUSION, MASK_HARD_FLOAT, MASK_HTM, MASK_ISEL, MASK_MFCRF,
7253 MASK_MMA, MASK_MULHW, MASK_MULTIPLE, MASK_NO_UPDATE):
7254 Replace with
7255 OPTION_MASK_ALTIVEC, OPTION_MASK_CMPB, OPTION_MASK_CRYPTO,
7256 OPTION_MASK_DFP, OPTION_MASK_DIRECT_MOVE, OPTION_MASK_DLMZB,
7257 OPTION_MASK_EABI, OPTION_MASK_FLOAT128_KEYWORD,
7258 OPTION_MASK_FLOAT128_HW, OPTION_MASK_FPRND, OPTION_MASK_P8_FUSION,
7259 OPTION_MASK_HARD_FLOAT, OPTION_MASK_HTM, OPTION_MASK_ISEL,
7260 OPTION_MASK_MFCRF, OPTION_MASK_MMA, OPTION_MASK_MULHW,
7261 OPTION_MASK_MULTIPLE, OPTION_MASK_NO_UPDATE.
7262 * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
7263 MASK_MFCRF, MASK_ALTIVEC with OPTION_MASK_MFCRF, OPTION_MASK_ALTIVEC.
7264 * config/rs6000/rs6000.h (TARGET_DEFAULT): Replace MASK_MULTIPLE
7265 with OPTION_MASK_MULTIPLE.
7266 (MASK_ALTIVEC, MASK_CMPB, MASK_CRYPTO, MASK_DFP,
7267 MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI, MASK_FLOAT128_KEYWORD,
7268 MASK_FLOAT128_HW, MASK_FPRND, MASK_P8_FUSION, MASK_HARD_FLOAT,
7269 MASK_HTM, MASK_ISEL, MASK_MFCRF, MASK_MMA, MASK_MULHW,
7270 MASK_MULTIPLE, MASK_NO_UPDATE): Delete.
7271 * config/rs6000/vxworks.h (TARGET_DEFAULT): Replace MASK_EABI
7272 with OPTION_MASK_EABI.
7273
7274 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
7275
7276 * config/rs6000/rs6000.cc (RS6000_BTM_ALTIVEC, RS6000_BTM_CMPB,
7277 RS6000_BTM_VSX, RS6000_BTM_FRE, RS6000_BTM_P8_VECTOR,
7278 RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_MODULO,
7279 RS6000_BTM_CRYPTO, RS6000_BTM_HTM): Replace with OPTION_MASK_ALTIVEC,
7280 OPTION_MASK_CMPB, OPTION_MASK_VSX, OPTION_MASK_POPCNTB,
7281 OPTION_MASK_P8_VECTOR, OPTION_MASK_P9_VECTOR, OPTION_MASK_P9_MISC,
7282 OPTION_MASK_MODULO, OPTION_MASK_CRYPTO, OPTION_MASK_HTM.
7283 * config/rs6000/rs6000.h (RS6000_BTM_MODULO, RS6000_BTM_ALTIVEC,
7284 RS6000_BTM_CMPB, RS6000_BTM_VSX, RS6000_BTM_P8_VECTOR,
7285 RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_CRYPTO,
7286 RS6000_BTM_HTM, RS6000_BTM_FRE): Remove.
7287
7288 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
7289
7290 * config/rs6000/rs6000-c.cc: Update comments.
7291 * config/rs6000/rs6000.cc (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
7292 RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
7293 RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_DFP,
7294 RS6000_BTM_HARD_FLOAT,RS6000_BTM_LDBL128, RS6000_BTM_FLOAT128,
7295 RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Replace
7296 with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_PPC_GFXOPT,
7297 OPTION_MASK_POPCNTB, OPTION_MASK_POPCNTD,
7298 OPTION_MASK_FPRND, MASK_64BIT, MASK_POWERPC64,
7299 OPTION_MASK_DFP, OPTION_MASK_SOFT_FLOAT, OPTION_MASK_MULTIPLE,
7300 OPTION_MASK_FLOAT128_KEYWORD, OPTION_MASK_FLOAT128_HW,
7301 OPTION_MASK_MMA, OPTION_MASK_POWER10.
7302 * config/rs6000/rs6000.h (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
7303 RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
7304 RS6000_BTM_DFP, RS6000_BTM_HARD_FLOAT, RS6000_BTM_LDBL128,
7305 RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_FLOAT128,
7306 RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Delete.
7307
7308 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
7309
7310 * config/rs6000/rs6000.h (RS6000_BTM_COMMON, RS6000_BTM_ALWAYS,
7311 MASK_REGNAMES, OPTION_MASK_REGNAMES, MASK_PROTOTYPE,
7312 OPTION_MASK_PROTOTYPE, MASK_UPDATE, OPTION_MASK_UPDATE): Remove.
7313
7314 2022-06-24 Richard Biener <rguenther@suse.de>
7315
7316 PR middle-end/106070
7317 * match.pd (a != b ? a : b): Fix translation of
7318 operand_equal_for_comparison_p.
7319
7320 2022-06-24 Jan Hubicka <jh@suse.cz>
7321
7322 PR ipa/106057
7323 * tree-ssa-alias.cc (stmt_kills_ref_p): Check for external throw.
7324
7325 2022-06-24 Martin Liska <mliska@suse.cz>
7326
7327 PR middle-end/106059
7328 * profile-count.h: *= and /= operators need to modify this
7329 object.
7330
7331 2022-06-24 Roger Sayle <roger@nextmovesoftware.com>
7332 Uroš Bizjak <ubizjak@gmail.com>
7333
7334 PR target/105930
7335 * config/i386/i386.md (*<any_or>di3_doubleword): Split after
7336 reload. Use rtx_equal_p to avoid creating memory-to-memory moves,
7337 and emit NOTE_INSN_DELETED if operand[2] is zero (i.e. with -O0).
7338
7339 2022-06-24 Alexandre Oliva <oliva@adacore.com>
7340
7341 * common.opt (nostdlib++): New.
7342 * doc/invoke.texi (-nostdlib++): Document it.
7343
7344 2022-06-24 Alexandre Oliva <oliva@adacore.com>
7345
7346 * doc/sourcebuild.texi (Environment attributes): Document
7347 two_plus_gigs.
7348
7349 2022-06-23 David Malcolm <dmalcolm@redhat.com>
7350
7351 * common.opt (fdiagnostics-show-rules): New option.
7352 * diagnostic-format-json.cc (diagnostic_output_format_init_json):
7353 Fix up context->show_rules.
7354 * diagnostic-format-sarif.cc
7355 (diagnostic_output_format_init_sarif): Likewise.
7356 * diagnostic-metadata.h (diagnostic_metadata::rule): New class.
7357 (diagnostic_metadata::precanned_rule): New class.
7358 (diagnostic_metadata::add_rule): New.
7359 (diagnostic_metadata::get_num_rules): New.
7360 (diagnostic_metadata::get_rule): New.
7361 (diagnostic_metadata::m_rules): New field.
7362 * diagnostic.cc (diagnostic_initialize): Initialize show_rules.
7363 (print_any_rules): New.
7364 (diagnostic_report_diagnostic): Call it.
7365 * diagnostic.h (diagnostic_context::show_rules): New field.
7366 * doc/invoke.texi (-fno-diagnostics-show-rules): New option.
7367 * opts.cc (common_handle_option): Handle
7368 OPT_fdiagnostics_show_rules.
7369 * toplev.cc (general_init): Set up global_dc->show_rules.
7370
7371 2022-06-23 Martin Liska <mliska@suse.cz>
7372
7373 PR c++/106062
7374 * ubsan.cc (sanitize_unreachable_fn): Change order of calls
7375 in order to initialize UBSAN built-ins.
7376
7377 2022-06-23 Martin Liska <mliska@suse.cz>
7378
7379 PR ipa/105600
7380 * ipa-icf.cc (sem_item_optimizer::filter_removed_items):
7381 Skip variables with body_removed.
7382
7383 2022-06-23 liuhongt <hongtao.liu@intel.com>
7384
7385 * config/i386/sse.md:(sse4_2_pcmpestr): Replace REGNO with
7386 reg_or_subregno.
7387 (sse4_2_pcmpistr): Ditto.
7388
7389 2022-06-23 Xionghu Luo <xionghuluo@tencent.com>
7390
7391 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Fix
7392 typo.
7393 * tree-ssa-loop-ivopts.cc (struct iv_cand): Likewise.
7394 * tree-switch-conversion.h: Likewise.
7395
7396 2022-06-22 Jason Merrill <jason@redhat.com>
7397
7398 PR c++/104642
7399 * common.opt: Add -funreachable-traps.
7400 * doc/invoke.texi (-funreachable-traps): Document it.
7401 * opts.cc (finish_options): Enable at -O0 or -Og.
7402 * tree.cc (build_common_builtin_nodes): Add __builtin_trap.
7403 (builtin_decl_unreachable, build_builtin_unreachable): New.
7404 * tree.h: Declare them.
7405 * ubsan.cc (sanitize_unreachable_fn): Factor out.
7406 (ubsan_instrument_unreachable): Use
7407 gimple_build_builtin_unreachable.
7408 * ubsan.h (sanitize_unreachable_fn): Declare.
7409 * gimple.cc (gimple_build_builtin_unreachable): New.
7410 * gimple.h: Declare it.
7411 * builtins.cc (expand_builtin_unreachable): Add assert.
7412 (fold_builtin_0): Call build_builtin_unreachable.
7413 * sanopt.cc: Don't run for just SANITIZE_RETURN
7414 or SANITIZE_UNREACHABLE when trapping.
7415 * cgraphunit.cc (walk_polymorphic_call_targets): Use new
7416 unreachable functions.
7417 * gimple-fold.cc (gimple_fold_call)
7418 (gimple_get_virt_method_for_vtable)
7419 * ipa-fnsummary.cc (redirect_to_unreachable)
7420 * ipa-prop.cc (ipa_make_edge_direct_to_target)
7421 (ipa_impossible_devirt_target)
7422 * ipa.cc (walk_polymorphic_call_targets)
7423 * tree-cfg.cc (pass_warn_function_return::execute)
7424 (execute_fixup_cfg)
7425 * tree-ssa-loop-ivcanon.cc (remove_exits_and_undefined_stmts)
7426 (unloop_loops)
7427 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
7428 Likewise.
7429
7430 2022-06-22 Richard Sandiford <richard.sandiford@arm.com>
7431
7432 PR tree-optimization/106019
7433 * tree-data-ref.cc (dr_may_alias_p): Try using the
7434 innermost_loop_behavior to disambiguate non-loop queries.
7435
7436 2022-06-22 Palmer Dabbelt <palmer@rivosinc.com>
7437
7438 * doc/invoke.texi (RISC-V): Document -mtune=thead-c906.
7439
7440 2022-06-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7441
7442 * config/xtensa/xtensa.md (bswapsi2_internal):
7443 Enlarge the buffer that is obviously smaller than the template
7444 string given to sprintf().
7445
7446 2022-06-21 Roger Sayle <roger@nextmovesoftware.com>
7447 Marek Polacek <polacek@redhat.com>
7448 Segher Boessenkool <segher@kernel.crashing.org>
7449 Kewen Lin <linkw@linux.ibm.com>
7450
7451 PR target/105991
7452 * config/rs6000/rs6000.md (rotl<mode>3_insert_3): Check that
7453 exact_log2 doesn't return -1 (or zero).
7454 (plus_xor): New code iterator.
7455 (*rotl<mode>3_insert_3_<code>): New define_insn_and_split.
7456
7457 2022-06-21 Nathan Sidwell <nathan@acm.org>
7458
7459 * doc/invoke.texi (C++ Modules): Remove language-linkage
7460 as missing feature.
7461
7462 2022-06-21 Arjun Shankar <arjun@redhat.com>
7463
7464 PR tree-optimization/94899
7465 * match.pd (X + C < Y + C -> (signed) X < (signed) Y, if C is
7466 0x80000000): New simplification.
7467
7468 2022-06-21 Jakub Jelinek <jakub@redhat.com>
7469
7470 PR rtl-optimization/106032
7471 * ifcvt.cc (noce_try_sign_mask): Punt if !t_unconditional, and
7472 t may_trap_or_fault_p, even if it is cheap.
7473
7474 2022-06-21 Jakub Jelinek <jakub@redhat.com>
7475
7476 PR middle-end/106030
7477 * expr.cc (expand_cond_expr_using_cmove): Pass NULL_RTX instead of
7478 temp to expand_operands if mode has been promoted.
7479
7480 2022-06-21 Xionghu Luo <xionghuluo@tencent.com>
7481
7482 PR target/105740
7483 * gimple-if-to-switch.cc (find_conditions): Don't skip the first
7484 condition bb.
7485
7486 2022-06-21 Siddhesh Poyarekar <siddhesh@gotplt.org>
7487
7488 PR tree-optimization/105736
7489 * tree-object-size.cc (addr_object_size): Return size_unknown
7490 when object offset computation returns an error.
7491
7492 2022-06-20 H.J. Lu <hjl.tools@gmail.com>
7493
7494 PR target/105960
7495 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
7496 false if PIC register is used when calling ifunc functions.
7497
7498 2022-06-20 Richard Biener <rguenther@suse.de>
7499
7500 PR middle-end/106027
7501 * fold-const.cc (fold_to_nonsharp_ineq_using_bound): Use the
7502 type of the prevailing comparison for the new comparison type.
7503 (fold_binary_loc): Use proper types for the A < X && A + 1 > Y
7504 to A < X && A >= Y folding.
7505
7506 2022-06-20 Kewen Lin <linkw@linux.ibm.com>
7507
7508 PR tree-optimization/105940
7509 * tree-vect-loop.cc (vect_analyze_loop_2): Add new parameter
7510 slp_done_for_suggested_uf and adjust with it accordingly.
7511 (vect_analyze_loop_1): Add new variable slp_done_for_suggested_uf,
7512 pass it down to vect_analyze_loop_2 for the initial analysis and
7513 applying suggested unroll factor.
7514 (vect_is_simple_reduction): Add parameter slp and adjust with it.
7515 (vect_analyze_scalar_cycles_1): Add parameter slp and pass down.
7516 (vect_analyze_scalar_cycles): Likewise.
7517
7518 2022-06-20 Martin Liska <mliska@suse.cz>
7519
7520 * bb-reorder.cc (find_traces_1_round): Add operators / and * and
7521 use them.
7522 (better_edge_p): Likewise.
7523 * cfgloop.cc (find_subloop_latch_edge_by_profile): Likewise.
7524 * cfgloopmanip.cc (scale_loop_profile): Likewise.
7525 * cfgrtl.cc (force_nonfallthru_and_redirect): Likewise.
7526 * cgraph.cc (cgraph_edge::maybe_hot_p): Likewise.
7527 * config/sh/sh.cc (expand_cbranchdi4): Likewise.
7528 * dojump.cc (do_compare_rtx_and_jump): Likewise.
7529 * final.cc (compute_alignments): Likewise.
7530 * ipa-cp.cc (update_counts_for_self_gen_clones): Likewise.
7531 (decide_about_value): Likewise.
7532 * ipa-inline-analysis.cc (do_estimate_edge_time): Likewise.
7533 * loop-unroll.cc (unroll_loop_runtime_iterations): Likewise.
7534 * modulo-sched.cc (sms_schedule): Likewise.
7535 * omp-expand.cc (extract_omp_for_update_vars): Likewise.
7536 (expand_omp_ordered_sink): Likewise.
7537 (expand_omp_for_ordered_loops): Likewise.
7538 (expand_omp_for_static_nochunk): Likewise.
7539 * predict.cc (maybe_hot_count_p): Likewise.
7540 (probably_never_executed): Likewise.
7541 (set_even_probabilities): Likewise.
7542 (handle_missing_profiles): Likewise.
7543 (expensive_function_p): Likewise.
7544 * profile-count.h: Likewise.
7545 * profile.cc (compute_branch_probabilities): Likewise.
7546 * stmt.cc (emit_case_dispatch_table): Likewise.
7547 * symtab-thunks.cc (expand_thunk): Likewise.
7548 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop): Likewise.
7549 * tree-ssa-sink.cc (select_best_block): Likewise.
7550 * tree-switch-conversion.cc (switch_decision_tree::analyze_switch_statement): Likewise.
7551 (switch_decision_tree::balance_case_nodes): Likewise.
7552 (switch_decision_tree::emit_case_nodes): Likewise.
7553 * tree-vect-loop.cc (scale_profile_for_vect_loop): Likewise.
7554
7555 2022-06-20 yulong <shiyulong@iscas.ac.cn>
7556
7557 * config/riscv/riscv-builtins.cc (RISCV_ATYPE_VOID_PTR): New.
7558 * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Changed the FUNCTION_TYPE
7559 of RISCV_BUILTIN.
7560 * config/riscv/riscv-ftypes.def (0): Remove unused.
7561 (1): New.
7562
7563 2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7564
7565 * config/xtensa/xtensa.cc (xtensa_is_insn_L32R_p):
7566 Consider relaxed MOVI instructions as L32R.
7567
7568 2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7569
7570 * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
7571 Use can_create_pseudo_p(), instead of using individual
7572 reload_in_progress and reload_completed.
7573 (xtensa_expand_block_set_small_loop): Use xtensa_simm8x256(),
7574 the existing predicate function.
7575 (xtensa_is_insn_L32R_p, gen_int_relational, xtensa_emit_sibcall):
7576 Use the standard RTX code predicate macros such as MEM_P,
7577 SYMBOL_REF_P and/or CONST_INT_P.
7578 * config/xtensa/xtensa.md: Avoid using numeric literals to determine
7579 if callee-saved register, at the split patterns for indirect sibcall
7580 fixups.
7581
7582 2022-06-18 Jakub Jelinek <jakub@redhat.com>
7583
7584 * common.opt (flag_sanitize_trap): New variable.
7585 (fsanitize-trap=, fsanitize-trap): New options.
7586 (fsanitize-undefined-trap-on-error): Change into deprecated alias
7587 for -fsanitize-trap=all.
7588 * opts.h (struct sanitizer_opts_s): Add can_trap member.
7589 * opts.cc (finish_options): Complain about unsupported
7590 -fsanitize-trap= options.
7591 (sanitizer_opts): Add can_trap values to all entries.
7592 (get_closest_sanitizer_option): Ignore -fsanitize-trap=
7593 options which have can_trap false.
7594 (parse_sanitizer_options): Add support for -fsanitize-trap=.
7595 For -fsanitize-trap=all, enable
7596 SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT. Disallow
7597 -fsanitize-trap=vptr here.
7598 (common_handle_option): Handle OPT_fsanitize_trap_ and
7599 OPT_fsanitize_trap.
7600 * sanopt.cc (maybe_optimize_ubsan_null_ifn): Check
7601 flag_sanitize_trap & SANITIZE_{NULL,ALIGNMENT} instead of
7602 flag_sanitize_undefined_trap_on_error.
7603 * gcc.cc (sanitize_spec_function): Use
7604 flag_sanitize & ~flag_sanitize_trap instead of flag_sanitize
7605 and drop use of flag_sanitize_undefined_trap_on_error in
7606 "undefined" handling.
7607 * ubsan.cc (ubsan_instrument_unreachable): Use
7608 flag_sanitize_trap & SANITIZE_??? instead of
7609 flag_sanitize_undefined_trap_on_error.
7610 (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
7611 ubsan_expand_objsize_ifn, ubsan_expand_ptr_ifn,
7612 ubsan_build_overflow_builtin, instrument_bool_enum_load,
7613 ubsan_instrument_float_cast, instrument_nonnull_arg,
7614 instrument_nonnull_return, instrument_builtin): Likewise.
7615 * doc/invoke.texi (-fsanitize-trap=, -fsanitize-trap): Document.
7616 (-fsanitize-undefined-trap-on-error): Document as deprecated
7617 alias of -fsanitize-trap.
7618
7619 2022-06-18 Jakub Jelinek <jakub@redhat.com>
7620
7621 PR middle-end/105998
7622 * varasm.cc (narrowing_initializer_constant_valid_p): Check
7623 SCALAR_INT_MODE_P instead of INTEGRAL_MODE_P, also break on
7624 ! INTEGRAL_TYPE_P and do the same check also on op{0,1}'s type.
7625
7626 2022-06-18 Roger Sayle <roger@nextmovesoftware.com>
7627
7628 PR tree-optimization/105835
7629 * match.pd (convert (mult zero_one_valued_p@1 INTEGER_CST@2)):
7630 Narrow integer multiplication by a zero_one_valued_p operand.
7631 (convert (cond @1 INTEGER_CST@2 INTEGER_CST@3)): Push integer
7632 conversions inside COND_EXPR where both data operands are
7633 integer constants.
7634
7635 2022-06-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7636
7637 * config/xtensa/constraints.md (Y):
7638 Change to include integer constants until reload begins.
7639 * config/xtensa/predicates.md (move_operand): Ditto.
7640 * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
7641 Change to allow storing integer constants into litpool only after
7642 reload begins.
7643
7644 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
7645
7646 PR target/105209
7647 * config/alpha/alpha-protos.h (alpha_store_data_bypass_p): New.
7648 * config/alpha/alpha.cc (alpha_store_data_bypass_p): New function.
7649 (alpha_store_data_bypass_p_1): Ditto.
7650 * config/alpha/ev4.md: Use alpha_store_data_bypass_p instead
7651 of generic store_data_bypass_p.
7652 (ev4_ist_c): Remove insn reservation.
7653
7654 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
7655
7656 PR target/105970
7657 * config/i386/i386.cc (ix86_function_arg): Assert that
7658 the mode of pointer argumet is equal to ptr_mode, not Pmode.
7659
7660 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
7661
7662 PR target/105993
7663 * config/i386/sse.md (vpmov splitter): Use (match_dup ...)
7664 instead of REGNO comparisons in combine splitter.
7665
7666 2022-06-17 Segher Boessenkool <segher@kernel.crashing.org>
7667
7668 * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Correct some
7669 types.
7670
7671 2022-06-17 Kito Cheng <kito.cheng@sifive.com>
7672
7673 * config/riscv/bitmanip.md: Supress warning.
7674
7675 2022-06-17 Richard Earnshaw <rearnsha@arm.com>
7676
7677 PR target/106004
7678 * config/arm/arm.cc (arm_print_operand, case 'V'): Use UINTVAL.
7679 Clear bits in the mask above bit 31.
7680
7681 2022-06-17 Richard Earnshaw <rearnsha@arm.com>
7682
7683 * config/arm/mve.md (*mve_mov<mode>): Re-order constraints
7684 to avoid spilling trivial literals to the constant pool.
7685
7686 2022-06-16 David Malcolm <dmalcolm@redhat.com>
7687
7688 * gimple-ssa-warn-access.cc (warn_string_no_nul): Add
7689 auto_diagnostic_group to group any warning with its note.
7690 (maybe_warn_for_bound): Likewise.
7691 (check_access): Likewise.
7692 (warn_dealloc_offset): Likewise.
7693 (pass_waccess::maybe_warn_memmodel): Likewise.
7694 (pass_waccess::maybe_check_dealloc_call): Likewise.
7695 (pass_waccess::warn_invalid_pointer): Likewise.
7696 (pass_waccess::check_dangling_stores): Likewise.
7697
7698 2022-06-16 Jason Merrill <jason@redhat.com>
7699
7700 * opts.cc (common_handle_option) [OPT_fsanitize_]: Set
7701 opts_set->x_flag_sanitize.
7702
7703 2022-06-16 Jason Merrill <jason@redhat.com>
7704
7705 * flags.h (issue_strict_overflow_warning): Comment #endif.
7706
7707 2022-06-16 Andrew MacLeod <amacleod@redhat.com>
7708
7709 * gimple-range-cache.cc (ranger_cache::apply_inferred_ranges): If name
7710 was invaraint before, clear the invariant bit.
7711 * gimple-range-gori.cc (gori_map::set_range_invariant): Add a flag.
7712 * gimple-range-gori.h (gori_map::set_range_invariant): Adjust prototype.
7713
7714 2022-06-16 Andrew MacLeod <amacleod@redhat.com>
7715
7716 * tree-ssa-propagate.cc (before_dom_children): Call value_of_stmt.
7717
7718 2022-06-16 Jakub Jelinek <jakub@redhat.com>
7719
7720 PR tree-optimization/105983
7721 * match.pd (y == XXX_MIN || x < y -> x <= y - 1,
7722 y != XXX_MIN && x >= y -> x > y - 1): Use :cs instead of :s
7723 on non-equality comparisons.
7724
7725 2022-06-16 Jakub Jelinek <jakub@redhat.com>
7726
7727 PR tree-optimization/105984
7728 * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
7729 x > stype_max / cst || x < stype_min / cst): fold_convert @1
7730 to TREE_TYPE (@0) just once and test for negative divisor
7731 also on that folded constant instead of on @1.
7732
7733 2022-06-16 Jakub Jelinek <jakub@redhat.com>
7734
7735 PR middle-end/105951
7736 * tree-ssa-ccp.cc (optimize_atomic_bit_test_and,
7737 optimize_atomic_op_fetch_cmp_0): Remember gimple_call_fn (call)
7738 as last argument to the internal functions.
7739 * builtins.cc (expand_ifn_atomic_bit_test_and): Adjust for the
7740 extra call argument to ifns. If expand_atomic_fetch_op fails for the
7741 lhs == NULL_TREE case, fall through into the optab code with
7742 gen_reg_rtx (mode) as target. If second expand_atomic_fetch_op
7743 fails, construct a CALL_EXPR and expand that.
7744 (expand_ifn_atomic_op_fetch_cmp_0): Adjust for the extra call argument
7745 to ifns. If expand_atomic_fetch_op fails, construct a CALL_EXPR and
7746 expand that.
7747
7748 2022-06-16 Haochen Gui <guihaoc@gcc.gnu.org>
7749
7750 PR target/103316
7751 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Enable
7752 gimple folding for RS6000_BIF_VCMPEQUT, RS6000_BIF_VCMPNET,
7753 RS6000_BIF_CMPGE_1TI, RS6000_BIF_CMPGE_U1TI, RS6000_BIF_VCMPGTUT,
7754 RS6000_BIF_VCMPGTST, RS6000_BIF_CMPLE_1TI, RS6000_BIF_CMPLE_U1TI.
7755 * config/rs6000/vector.md (VEC_IC): New mode iterator. Add support
7756 for new Power10 V1TI instructions.
7757 (vec_cmp<mode><mode>): Set mode iterator to VEC_IC.
7758 (vec_cmpu<mode><mode>): Likewise.
7759 (vector_nlt<mode>): Set mode iterator to VEC_IC.
7760 (vector_nltv1ti): Remove.
7761 (vector_gtu<mode>): Set mode iterator to VEC_IC.
7762 (vector_gtuv1ti): Remove.
7763 (vector_nltu<mode>): Set mode iterator to VEC_IC.
7764 (vector_nltuv1ti): Remove.
7765 (vector_geu<mode>): Set mode iterator to VEC_IC.
7766 (vector_ngt<mode>): Likewise.
7767 (vector_ngtv1ti): Remove.
7768 (vector_ngtu<mode>): Set mode iterator to VEC_IC.
7769 (vector_ngtuv1ti): Remove.
7770 (vector_gtu_<mode>_p): Set mode iterator to VEC_IC.
7771 (vector_gtu_v1ti_p): Remove.
7772 (vrotl<mode>3): Set mode iterator to VEC_IC. Emit insns for V1TI.
7773 (vrotlv1ti3): Remove.
7774 (vashr<mode>3): Set mode iterator to VEC_IC. Emit insns for V1TI.
7775 (vashrv1ti3): Remove.
7776
7777 2022-06-16 Martin Liska <mliska@suse.cz>
7778
7779 * gengtype-state.cc (read_a_state_token): Do not skip extra
7780 character after escaped sequence.
7781
7782 2022-06-16 Martin Liska <mliska@suse.cz>
7783
7784 PR driver/105564
7785 * spellcheck.cc (test_find_closest_string): Add new test.
7786 * spellcheck.h (class best_match): Prefer a difference in
7787 trailing sign symbol.
7788
7789 2022-06-16 liuhongt <hongtao.liu@intel.com>
7790
7791 PR tree-optimization/53533
7792 * match.pd: Simplify (B * v + C) * D -> BD * v + CD and
7793 (v + B) * C + D -> C * v + BCD when B,C,D are all INTEGER_CST,
7794 and there's no overflow or !TYPE_OVERFLOW_UNDEFINED.
7795
7796 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7797
7798 * config/xtensa/xtensa.md (DSC): New split pattern and mode iterator.
7799
7800 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7801
7802 * config/xtensa/predicates.md (reload_operand):
7803 New predicate.
7804 * config/xtensa/xtensa.md: New peephole2 pattern.
7805
7806 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7807
7808 * config/xtensa/xtensa.md (*round_up_to_even):
7809 New insn-and-split pattern.
7810 (*signed_ge_zero): Ditto.
7811
7812 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7813
7814 * config/xtensa/xtensa-protos.h (xtensa_prepare_expand_call,
7815 xtensa_emit_sibcall): New prototypes.
7816 (xtensa_expand_epilogue): Add new argument that specifies whether
7817 or not sibling call.
7818 * config/xtensa/xtensa.cc (TARGET_FUNCTION_OK_FOR_SIBCALL):
7819 New macro definition.
7820 (xtensa_prepare_expand_call): New function in order to share
7821 the common code.
7822 (xtensa_emit_sibcall, xtensa_function_ok_for_sibcall):
7823 New functions.
7824 (xtensa_expand_epilogue): Add new argument sibcall_p and use it
7825 for sibling call handling.
7826 * config/xtensa/xtensa.md (call, call_value):
7827 Use xtensa_prepare_expand_call.
7828 (call_internal, call_value_internal):
7829 Add the condition in order to be disabled if sibling call.
7830 (sibcall, sibcall_value, sibcall_epilogue): New expansions.
7831 (sibcall_internal, sibcall_value_internal): New insn patterns,
7832 and split ones in order to take care of the indirect sibcalls.
7833
7834 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7835
7836 * doc/invoke.texi: Document -mextra-l32r-costs= option.
7837
7838 2022-06-15 David Malcolm <dmalcolm@redhat.com>
7839
7840 PR analyzer/105962
7841 * doc/invoke.texi: Add -fno-analyzer-undo-inlining.
7842 * tree-diagnostic-path.cc (default_tree_diagnostic_path_printer):
7843 Extend -fdiagnostics-path-format=separate-events so that with
7844 -fdiagnostics-show-path-depths it prints fndecls as well as stack
7845 depths.
7846
7847 2022-06-15 David Malcolm <dmalcolm@redhat.com>
7848
7849 * value-relation.h: Add "final" and "override" to relation_oracle
7850 vfunc implementations as appropriate.
7851
7852 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
7853
7854 PR middle-end/105975
7855 Revert everything apart from the expand_fn_using_insn and
7856 expand_direct_optab_fn changes from:
7857 * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
7858 (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
7859 (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
7860 (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
7861 * internal-fn.h (direct_internal_fn_info::directly_mapped): New
7862 member variable.
7863 (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
7864 (direct_internal_fn_p): Also return true for internal functions
7865 that map directly to instructions defined target-insns.def.
7866 (direct_internal_fn): Adjust comment accordingly.
7867 * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
7868 (vectorizable_optab2): New local macros.
7869 (not_direct): Initialize directly_mapped.
7870 (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
7871 (gather_load_direct, len_load_direct, mask_store_direct)
7872 (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
7873 (vec_cond_direct, scatter_store_direct, len_store_direct)
7874 (vec_set_direct, unary_direct, binary_direct, ternary_direct)
7875 (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
7876 (while_direct, fold_extract_direct, fold_left_direct)
7877 (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
7878 (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
7879 (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
7880 (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
7881 (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
7882 (direct_internal_fn_types): Handle functions that map to instructions
7883 defined in target-insns.def.
7884 (direct_internal_fn_types): Likewise.
7885 (direct_internal_fn_supported_p): Likewise.
7886 (internal_fn_expanders): Likewise.
7887 (expand_fn_using_insn): New function,
7888 split out and adapted from...
7889 (expand_direct_optab_fn): ...here.
7890 (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
7891 (expand_GOMP_SIMT_EXIT): Likewise.
7892 (expand_GOMP_SIMT_LANE): Likewise.
7893 (expand_GOMP_SIMT_LAST_LANE): Likewise.
7894 (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
7895 (expand_GOMP_SIMT_VOTE_ANY): Likewise.
7896 (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
7897 (expand_GOMP_SIMT_XCHG_IDX): Likewise.
7898
7899 2022-06-15 Richard Earnshaw <rearnsha@arm.com>
7900
7901 PR target/105981
7902 * config/arm/arm.cc (gen_cpymem_ldrd_strd): Rename low_reg and hi_reg
7903 to first_reg and second_reg respectively. Initialize them correctly
7904 when generating big-endian code.
7905
7906 2022-06-15 Richard Earnshaw <rearnsha@arm.com>
7907
7908 PR target/105974
7909 * config/arm/arm.cc (arm_bfi_1_p): Use UINTVAL instead of XUINT.
7910
7911 2022-06-15 Richard Biener <rguenther@suse.de>
7912
7913 PR tree-optimization/105971
7914 * tree-ssa-alias.cc (refs_may_alias_p_2): Put bail-out for
7915 FUNCTION_DECL and LABEL_DECL refs after decl-decl disambiguation
7916 to leak less surprising alias results.
7917
7918 2022-06-15 Richard Biener <rguenther@suse.de>
7919
7920 PR tree-optimization/105969
7921 * gimple-ssa-sprintf.cc (get_origin_and_offset_r): Avoid division
7922 by zero in overflow check.
7923
7924 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
7925
7926 PR tree-optimization/105254
7927 PR tree-optimization/105940
7928 Revert:
7929 * config/aarch64/aarch64.cc
7930 (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
7931 loop_vec_info as argument. Restrict the unroll factor to values
7932 that divide the VF.
7933 (aarch64_vector_costs::finish_cost): Update call accordingly.
7934
7935 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
7936
7937 * read-rtl.cc (find_int): Substitute symbolic constants
7938 before converting the string to an integer.
7939
7940 2022-06-15 Roger Sayle <roger@nextmovesoftware.com>
7941 Richard Biener <rguenther@suse.de>
7942
7943 * match.pd (convert (lshift @1 INTEGER_CST@2)): Narrow integer
7944 left shifts by a constant when the result is truncated, and the
7945 shift constant is well-defined.
7946 * tree-vect-patterns.cc (vect_recog_rotate_pattern): Add
7947 support for rotations of signed integer types, by lowering
7948 using unsigned vector shifts.
7949
7950 2022-06-15 liuhongt <hongtao.liu@intel.com>
7951
7952 PR target/105953
7953 * config/i386/sse.md (*avx_cmp<mode>3_ltint_not): Force_reg
7954 operands[3].
7955
7956 2022-06-14 Surya Kumari Jangala <jskumari@linux.ibm.com>
7957
7958 PR rtl-optimization/105041
7959 * regrename.cc (check_new_reg_p): Use nregs value from du chain.
7960
7961 2022-06-14 Segher Boessenkool <segher@kernel.crashing.org>
7962
7963 * config/rs6000/vsx.md (VS_scalar): Delete.
7964 (rest of file): Adjust.
7965
7966 2022-06-14 Jan Hubicka <hubicka@ucw.cz>
7967
7968 PR ipa/105739
7969 * ipa-prop.cc (ipa_load_from_parm_agg): Punt on volatile loads.
7970
7971 2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu>
7972
7973 * config/riscv/bitmanip.md: Add split to handle opportunities
7974 for slli + sh[123]add.uw
7975
7976 2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu>
7977
7978 * config/riscv/predicates.md (consecutive_bits_operand):
7979 Implement new predicate.
7980
7981 2022-06-14 Richard Biener <rguenther@suse.de>
7982
7983 PR tree-optimization/105946
7984 * tree-ssa-uninit.cc (maybe_warn_pass_by_reference):
7985 Do not look at arguments not specified in the function call.
7986
7987 2022-06-14 Richard Biener <rguenther@suse.de>
7988
7989 PR middle-end/105965
7990 * match.pd (view_convert CONSTRUCTOR): Handle single-element
7991 CTOR case.
7992
7993 2022-06-14 Eric Botcazou <ebotcazou@adacore.com>
7994
7995 * warning-control.cc (copy_warning) [generic version]: Do not erase
7996 the warning data of the destination location when the no-warning
7997 bit is not set on the source.
7998 (copy_warning) [tree version]: Return early if TO is equal to FROM.
7999 (copy_warning) [gimple version]: Likewise.
8000
8001 2022-06-14 Kewen Lin <linkw@linux.ibm.com>
8002
8003 PR tree-optimization/105940
8004 * tree-vect-loop.cc (vect_analyze_loop_2): Move the place of
8005 applying suggested_unroll_factor after start_over.
8006
8007 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8008
8009 * config/xtensa/predicates.md (shifted_mask_operand):
8010 New predicate.
8011 * config/xtensa/xtensa.md (*andsi3_const_pow2_minus_one):
8012 New insn-and-split pattern.
8013 (*andsi3_const_negative_pow2, *andsi3_const_shifted_mask,
8014 *masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
8015 *masktrue_const_shifted_mask): Ditto.
8016
8017 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8018
8019 * config/xtensa/xtensa.md (*masktrue_bitcmpl): New insn pattern.
8020
8021 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8022
8023 * config/xtensa/xtensa-protos.h (xtensa_emit_branch):
8024 Remove the first argument.
8025 (xtensa_emit_bit_branch): Remove it because now called only from the
8026 output statement of *bittrue insn pattern.
8027 * config/xtensa/xtensa.cc (gen_int_relational): Remove the last
8028 argument 'p_invert', and make so that the condition is reversed by
8029 itself as needed.
8030 (xtensa_expand_conditional_branch): Share the common path, and remove
8031 condition inversion code.
8032 (xtensa_emit_branch, xtensa_emit_movcc): Simplify by removing the
8033 "false side" pattern.
8034 (xtensa_emit_bit_branch): Remove it because of the abovementioned
8035 reason, and move the function body to *bittrue insn pattern.
8036 * config/xtensa/xtensa.md (*bittrue): Transplant the output
8037 statement from removed xtensa_emit_bit_branch().
8038 (*bfalse, *ubfalse, *bitfalse, *maskfalse): Remove the "false side"
8039 insn patterns.
8040
8041 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8042
8043 * config/xtensa/predicates.md (logical_shift_operator,
8044 xtensa_shift_per_byte_operator): New predicates.
8045 * config/xtensa/xtensa-protos.h (xtensa_shlrd_which_direction):
8046 New prototype.
8047 * config/xtensa/xtensa.cc (xtensa_shlrd_which_direction):
8048 New helper function for funnel shift patterns.
8049 * config/xtensa/xtensa.md (ior_op): New code iterator.
8050 (*ashlsi3_1): Replace with new split pattern.
8051 (*shift_per_byte): Unify *ashlsi3_3x, *ashrsi3_3x and *lshrsi3_3x.
8052 (*shift_per_byte_omit_AND_0, *shift_per_byte_omit_AND_1):
8053 New insn-and-split patterns that redirect to *xtensa_shift_per_byte,
8054 in order to omit unnecessary bitwise AND operation.
8055 (*shlrd_reg_<code>, *shlrd_const_<code>, *shlrd_per_byte_<code>,
8056 *shlrd_per_byte_<code>_omit_AND):
8057 New insn patterns for funnel shifts.
8058
8059 2022-06-13 Jason Merrill <jason@redhat.com>
8060
8061 * tree-cfg.cc (pass_warn_function_return::execute): Also check
8062 BUILT_IN_TRAP.
8063
8064 2022-06-13 Maciej W. Rozycki <macro@embecosm.com>
8065
8066 * config/riscv/riscv.md (length): Remove the explicit setting
8067 for "fcmp".
8068
8069 2022-06-13 H.J. Lu <hjl.tools@gmail.com>
8070
8071 * common/config/i386/cpuinfo.h (get_available_features): Require
8072 AVX for F16C and VAES.
8073
8074 2022-06-13 Uroš Bizjak <ubizjak@gmail.com>
8075
8076 PR target/105927
8077 * config/i386/predicates.md (register_no_elim_operand):
8078 Return true for subreg of a memory operand.
8079
8080 2022-06-13 Richard Sandiford <richard.sandiford@arm.com>
8081
8082 * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
8083 (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
8084 (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
8085 (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
8086 * internal-fn.h (direct_internal_fn_info::directly_mapped): New
8087 member variable.
8088 (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
8089 (direct_internal_fn_p): Also return true for internal functions
8090 that map directly to instructions defined target-insns.def.
8091 (direct_internal_fn): Adjust comment accordingly.
8092 * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
8093 (vectorizable_optab2): New local macros.
8094 (not_direct): Initialize directly_mapped.
8095 (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
8096 (gather_load_direct, len_load_direct, mask_store_direct)
8097 (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
8098 (vec_cond_direct, scatter_store_direct, len_store_direct)
8099 (vec_set_direct, unary_direct, binary_direct, ternary_direct)
8100 (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
8101 (while_direct, fold_extract_direct, fold_left_direct)
8102 (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
8103 (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
8104 (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
8105 (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
8106 (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
8107 (direct_internal_fn_types): Handle functions that map to instructions
8108 defined in target-insns.def.
8109 (direct_internal_fn_types): Likewise.
8110 (direct_internal_fn_supported_p): Likewise.
8111 (internal_fn_expanders): Likewise.
8112
8113 2022-06-13 Richard Sandiford <richard.sandiford@arm.com>
8114
8115 * internal-fn.cc (expand_fn_using_insn): New function,
8116 split out and adapted from...
8117 (expand_direct_optab_fn): ...here.
8118 (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
8119 (expand_GOMP_SIMT_EXIT): Likewise.
8120 (expand_GOMP_SIMT_LANE): Likewise.
8121 (expand_GOMP_SIMT_LAST_LANE): Likewise.
8122 (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
8123 (expand_GOMP_SIMT_VOTE_ANY): Likewise.
8124 (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
8125 (expand_GOMP_SIMT_XCHG_IDX): Likewise.
8126
8127 2022-06-13 Jakub Jelinek <jakub@redhat.com>
8128
8129 * omp-expand.cc (expand_omp_target): Remap user provided
8130 device clause arguments, -1 to -2 and -2 to -3, either
8131 at compile time if constant, or at runtime.
8132
8133 2022-06-13 Eric Botcazou <ebotcazou@adacore.com>
8134
8135 * common.opt (finstrument-functions): Set explicit value.
8136 (-finstrument-functions-once): New option.
8137 * doc/invoke.texi (Program Instrumentation Options): Document it.
8138 * gimplify.cc (build_instrumentation_call): New static function.
8139 (gimplify_function_tree): Call it to emit the instrumentation calls
8140 if -finstrument-functions[-once] is specified.
8141
8142 2022-06-13 Eric Botcazou <ebotcazou@adacore.com>
8143
8144 * dwarf2out.cc (output_one_line_info_table): Initialize prev_addr.
8145 * gimple.h (gimple_set_location): Do not copy warning data from
8146 the previous location when it is UNKNOWN_LOCATION.
8147 * optabs.cc (expand_widen_pattern_expr): Always set oprnd{1,2}.
8148
8149 2022-06-13 Jakub Jelinek <jakub@redhat.com>
8150
8151 PR target/105911
8152 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
8153 *<insn><dwi>3_doubleword_mask): Use operands[3] masked with
8154 (<MODE_SIZE> * BITS_PER_UNIT) - 1 as AND operand instead of
8155 operands[3] unmodified.
8156
8157 2022-06-12 Simon Wright <simon@pushface.org>
8158
8159 PR target/104871
8160 * config/darwin-driver.cc (darwin_find_version_from_kernel): If the OS
8161 version is darwin20 (macOS 11) or greater, truncate the version to the
8162 major number.
8163
8164 2022-06-12 Mark Mentovai <mark@mentovai.com>
8165
8166 * config/darwin-c.cc: Make -mmacosx-version-min more future-proof.
8167
8168 2022-06-12 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8169
8170 PR target/96463
8171 * config/aarch64/aarch64-sve-builtins-base.cc: Include ssa.h.
8172 (svld1rq_impl::fold): Define.
8173 * config/aarch64/aarch64.cc (expand_vec_perm_d): Define new members
8174 op_mode and op_vec_flags.
8175 (aarch64_evpc_reencode): Initialize newd.op_mode and
8176 newd.op_vec_flags.
8177 (aarch64_evpc_sve_dup): New function.
8178 (aarch64_expand_vec_perm_const_1): Gate existing calls to
8179 aarch64_evpc_* functions under d->vmode == d->op_mode,
8180 and call aarch64_evpc_sve_dup.
8181 (aarch64_vectorize_vec_perm_const): Remove assert
8182 d->vmode != d->op_mode, and initialize d.op_mode and d.op_vec_flags.
8183 * tree-cfg.cc (verify_gimple_assign_ternary): Allow different
8184 vector types for lhs and rhs in VEC_PERM_EXPR if rhs3 is
8185 constant.
8186
8187 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8188
8189 * config/xtensa/xtensa-protos.h (xtensa_constantsynth):
8190 New prototype.
8191 * config/xtensa/xtensa.cc (xtensa_emit_constantsynth,
8192 xtensa_constantsynth_2insn, xtensa_constantsynth_rtx_SLLI,
8193 xtensa_constantsynth_rtx_ADDSUBX, xtensa_constantsynth):
8194 New backend functions that process the abovementioned logic.
8195 (xtensa_emit_move_sequence): Revert the previous changes.
8196 * config/xtensa/xtensa.md: New split patterns for integer
8197 and floating-point, as the frontend part.
8198
8199 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8200
8201 * config/xtensa/xtensa.cc (xtensa_rtx_costs): Correct wrong case
8202 for ABS and NEG, add missing case for BSWAP and CLRSB, and
8203 double the costs for integer divisions using libfuncs if
8204 optimizing for speed, in order to take advantage of fast constant
8205 division by multiplication.
8206 (TARGET_INSN_COST): New macro definition.
8207 (xtensa_is_insn_L32R_p, xtensa_insn_cost): New functions for
8208 calculating relative costs of a RTL insns, for both of speed and
8209 size.
8210 * config/xtensa/xtensa.md (return, nop, trap): Correct values of
8211 the attribute "length" that depends on TARGET_DENSITY.
8212 (define_asm_attributes, blockage, frame_blockage): Add missing
8213 attributes.
8214 * config/xtensa/xtensa.opt (-mextra-l32r-costs=): New machine-
8215 dependent option, however, preparatory work for now.
8216
8217 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8218
8219 * config/xtensa/xtensa.cc (xtensa_expand_block_set_small_loop):
8220 Pass through the block length / loop count conditions if
8221 zero-overhead looping is configured and active,
8222
8223 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8224
8225 * config/xtensa/xtensa.md (mulsidi3, umulsidi3):
8226 Split into individual signedness, in order to use libcall
8227 "__umulsidi3" but not the other.
8228 (<u>mulhisi3): Merge into one by using code iterator.
8229 (<u>mulsidi3, mulhisi3, umulhisi3): Remove.
8230
8231 2022-06-11 Michael Meissner <meissner@linux.ibm.com>
8232
8233 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Do
8234 not generate block copies with vector pair instructions if we are
8235 tuning for power10.
8236
8237 2022-06-10 Roger Sayle <roger@nextmovesoftware.com>
8238
8239 PR rtl-optimization/7061
8240 * expr.cc (emit_group_store): For groups that consist of a single
8241 scalar integer register that hold a complex mode value, use
8242 gen_lowpart to generate a SUBREG to "view_convert" to the complex
8243 mode. For modes of different sizes, first convert to an integer
8244 mode of the appropriate size.
8245
8246 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8247
8248 * config/xtensa/xtensa.md (clrsbsi2): New insn pattern.
8249
8250 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8251
8252 * config/xtensa/xtensa.md (*andsi3_bitcmpl):
8253 New insn_and_split pattern.
8254
8255 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8256
8257 * config/xtensa/xtensa.md (one_cmplsi2):
8258 Rearrange as an insn_and_split pattern.
8259
8260 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8261
8262 * config/xtensa/xtensa.md (bswaphi2): New insn pattern.
8263
8264 2022-06-09 Segher Boessenkool <segher@kernel.crashing.org>
8265
8266 * config/rs6000/rs6000.md (FP_ISA3): Delete.
8267 (float<QHI:mode><FP_ISA3:mode>2): Rename to...
8268 (float<QHI:mode><SFDF:mode>2): ... this. Adjust.
8269 (*float<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
8270 (*float<QHI:mode><SFDF:mode>2_internal): ... this. Adjust.
8271 (floatuns<QHI:mode><FP_ISA3:mode>2): Rename to...
8272 (floatuns<QHI:mode><SFDF:mode>2): ... this. Adjust.
8273 (*floatuns<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
8274 (*floatuns<QHI:mode><SFDF:mode>2_internal): ... this. Adjust.
8275
8276 2022-06-09 Maciej W. Rozycki <macro@embecosm.com>
8277
8278 * config/riscv/riscv.md
8279 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
8280 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Emit a tab
8281 rather than space with FSFLAGS.
8282
8283 2022-06-09 Tobias Burnus <tobias@codesourcery.com>
8284
8285 * omp-offload.cc (omp_discover_declare_target_tgt_fn_r,
8286 omp_discover_declare_target_fn_r): Don't walk reverse-offload
8287 target regions.
8288
8289 2022-06-09 Jakub Jelinek <jakub@redhat.com>
8290
8291 * doc/invoke.texi (-Waddress): Fix a typo in small example.
8292 Fix typos inptr_t -> intptr_t and uinptr_t -> uintptr_t.
8293
8294 2022-06-09 Cui,Lili <lili.cui@intel.com>
8295
8296 PR target/105493
8297 * config/i386/x86-tune-costs.h (skylake_cost): Raise the gpr load cost
8298 from 4 to 6 and gpr store cost from 6 to 8. Change SSE loads and
8299 unaligned loads cost from {6, 6, 6, 10, 20} to {8, 8, 8, 8, 16}.
8300 (icelake_cost): Ditto.
8301 (alderlake_cost): Raise the gpr store cost from 6 to 8 and SSE loads,
8302 stores and unaligned stores cost from {6, 6, 6, 10, 15} to
8303 {8, 8, 8, 10, 15}.
8304
8305 2022-06-09 Haochen Gui <guihaoc@gcc.gnu.org>
8306
8307 * config/rs6000/rs6000.md (define_split for bswapdi load): Merge shift
8308 and ior insns to one rotate and mask insn.
8309 (define_split for bswapdi register): Likewise.
8310
8311 2022-06-08 Roger Sayle <roger@nextmovesoftware.com>
8312
8313 PR middle-end/105874
8314 * expr.cc (expand_expr_real_1) <normal_inner_ref>: New local
8315 variable tem_modifier for calculating the expand_modifier enum to
8316 use for expanding tem. If tem is a VAR_DECL, use EXPAND_MEMORY.
8317
8318 2022-06-08 Max Filippov <jcmvbkbc@gmail.com>
8319
8320 PR target/105879
8321 * config/xtensa/xtensa.md (movdi): Rename 'first' and 'second'
8322 to 'lowpart' and 'highpart' so that they match 'gen_lowpart' and
8323 'gen_highpart' bitwise semantics and fix order of highpart and
8324 lowpart depending on target endianness.
8325
8326 2022-06-08 Chung-Ju Wu <jasonwucj@gmail.com>
8327
8328 * config/arm/arm-cpus.in (star-mc1): New cpu.
8329 * config/arm/arm-tables.opt: Regenerate.
8330 * config/arm/arm-tune.md: Regenerate.
8331 * doc/invoke.texi: Update docs.
8332
8333 2022-06-08 liuhongt <hongtao.liu@intel.com>
8334
8335 PR target/105513
8336 PR target/105504
8337 * config/i386/i386.md (*movsi_internal): Change alternative
8338 from *v to ?v.
8339 (*movdi_internal): Ditto.
8340 * config/i386/sse.md (vec_set<mode>_0): Change alternative *r
8341 to ?r.
8342 (*vec_extractv4sf_mem): Ditto.
8343 (*vec_extracthf): Ditto.
8344
8345 2022-06-07 Richard Earnshaw <rearnsha@arm.com>
8346
8347 PR target/105090
8348 * config/arm/arm.cc (arm_bfi_1_p): New function.
8349 (arm_bfi_p): New function.
8350 (arm_rtx_costs_internal): Add costs for BFI idioms.
8351 (arm_print_operand [case 'V']): Format output for BFI/BFC masks.
8352 * config/arm/constraints.md (Dj): New constraint.
8353 * config/arm/arm.md (arm_andsi3_insn): Add alternative to use BFC.
8354 (insv_zero): Convert to an insn with a split.
8355 (*bfi, *bfi_alt1, *bfi_alt2, *bfi_alt3): New patterns.
8356
8357 2022-06-07 liuhongt <hongtao.liu@intel.com>
8358
8359 PR target/105854
8360 * config/i386/sse.md (ssse3_palignrdi): Change alternative 2
8361 from Yv to Yw.
8362
8363 2022-06-07 Roger Sayle <roger@nextmovesoftware.com>
8364
8365 PR middle-end/105853
8366 PR target/105856
8367 * calls.cc (load_register_parameters): Call store_constructor
8368 and int_expr_size directly instead of expanding via expand_expr.
8369 * expr.cc (static void store_constructor): Don't prototype here.
8370 (static HOST_WIDE_INT int_expr_size): Likewise.
8371 (store_constructor): No longer static.
8372 (int_expr_size): Likewise, no longer static.
8373 * expr.h (store_constructor): Prototype here.
8374 (int_expr_size): Prototype here.
8375
8376 2022-06-07 Jan Beulich <jbeulich@suse.com>
8377
8378 Revert:
8379 2022-06-03 Jan Beulich <jbeulich@suse.com>
8380
8381 * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
8382 * configure.ac: Check for objcopy, producing
8383 ORIGINAL_OBJCOPY_FOR_TARGET.
8384 * configure: Update accordingly.
8385 * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
8386 Handle objcopy.
8387
8388 2022-06-07 Jakub Jelinek <jakub@redhat.com>
8389
8390 * tree.h (OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER): Define.
8391 * tree-pretty-print.cc (dump_omp_clause) <case OMP_CLAUSE_LINEAR>:
8392 Adjust clause printing style depending on
8393 OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER.
8394
8395 2022-06-07 Jan Beulich <jbeulich@suse.com>
8396
8397 * config/i386/i386-builtin.def (__builtin_ia32_psadbw256):
8398 Change type.
8399 * config/i386/i386-builtin-types.def: New function type
8400 (V4DI, V32QI, V32QI).
8401 * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle
8402 V4DI_FTYPE_V32QI_V32QI.
8403
8404 2022-06-07 Jan Beulich <jbeulich@suse.com>
8405
8406 * config/i386/i386.cc (ix86_attr_length_vex_default): Take REX.B
8407 into account for reg-only insns.
8408
8409 2022-06-07 Roger Sayle <roger@nextmovesoftware.com>
8410
8411 * config/i386/i386.cc (ix86_rtx_costs): Add a new case for
8412 IF_THEN_ELSE, and provide costs for TARGET_XOP's vpcmov and
8413 TARGET_CMOVE's (scalar integer) conditional moves.
8414 * config/i386/sse.md (define_split): Recognize XOP's vpcmov
8415 from its equivalent (canonical) pxor;pand;pxor sequence.
8416
8417 2022-06-07 Kewen Lin <linkw@linux.ibm.com>
8418
8419 * machmode.def (VECTOR_MODES_WITH_PREFIX): Update document for
8420 parameter ORDER.
8421
8422 2022-06-06 Andrew Stubbs <ams@codesourcery.com>
8423
8424 * config.in: Regenerate.
8425 * configure: Regenerate.
8426 * configure.ac: Reinstate HAVE_GAS_ARM_EXTENDED_ARCH test.
8427
8428 2022-06-04 Roger Sayle <roger@nextmovesoftware.com>
8429
8430 PR middle-end/95126
8431 * calls.cc (load_register_parameters): When loading a suitable
8432 immediate_const_ctor_p VAR_DECL into a single word_mode register,
8433 construct it directly in a pseudo rather than read it (by parts)
8434 from memory.
8435 * expr.cc (int_expr_size): Make tree argument a const_tree.
8436 (immediate_const_ctor_p): Helper predicate. Return true for
8437 simple constructors that may be materialized in a register.
8438 (expand_expr_real_1) [VAR_DECL]: When expanding a constant
8439 VAR_DECL with a suitable immediate_const_ctor_p constructor
8440 use store_constructor to materialize it directly in a pseudo.
8441 * expr.h (immediate_const_ctor_p): Prototype here.
8442 * varasm.cc (initializer_constant_valid_for_bitfield_p): Change
8443 VALUE argument from tree to const_tree.
8444 * varasm.h (initializer_constant_valid_for_bitfield_p): Update
8445 prototype.
8446
8447 2022-06-04 Jakub Jelinek <jakub@redhat.com>
8448
8449 PR target/105825
8450 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
8451 *<insn><dwi>3_doubleword_mask): If top bit of mask is clear, but lower
8452 bits of mask aren't all set, use operands[2] mode for the AND
8453 operation instead of always SImode.
8454
8455 2022-06-03 Jakub Jelinek <jakub@redhat.com>
8456
8457 PR middle-end/30314
8458 PR middle-end/105777
8459 * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
8460 x > stype_max / cst || x < stype_min / cst): New simplification.
8461
8462 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
8463
8464 * gimple-range-cache.cc (ranger_cache::range_from_dom): Use
8465 Value_Range.
8466 * gimple-range.cc (gimple_ranger::register_inferred_ranges): Same.
8467 * value-range.h (Value_Range::Value_Range): Implement copy
8468 constructor for Value_Range.
8469
8470 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
8471
8472 * value-range.h (struct vrange_traits): Remove.
8473 (is_a): Rewrite without vrange_traits.
8474 (as_a): Same.
8475
8476 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
8477
8478 * value-range.cc (vrange::contains_p): Implement.
8479 (vrange::type): Return void.
8480 (vrange::supports_type_p): Implement.
8481 (irange::fits_p): Same.
8482 (vrange::set_undefined): Same.
8483 (irange::set_nonnegative): Same.
8484 (vrange::set_varying): Same.
8485 (vrange::union_): Same.
8486 (unsupported_range::set): Move to vrange.
8487 (unsupported_range::type): Move to vrange.
8488 (vrange::intersect): Implement for varying and undefined.
8489 (vrange::zero_p): Implement.
8490 (unsupported_range::supports_type_p): Move to vrange.
8491 (vrange::nonzero_p): Implement.
8492 (unsupported_range::set_undefined): Move to vrange.
8493 (unsupported_range::set_varying): Same.
8494 (unsupported_range::dump): Same.
8495 (unsupported_range::union_): Same. Implement for varying and
8496 undefined.
8497 (unsupported_range::intersect): Move to vrange.
8498 (unsupported_range::zero_p): Same.
8499 (unsupported_range::nonzero_p): Same.
8500 (unsupported_range::set_nonzero): Same.
8501 (unsupported_range::set_zero): Same.
8502 (unsupported_range::set_nonnegative): Same.
8503 (unsupported_range::fits_p): Same.
8504 * value-range.h (class vrange): Remove abstract markers for most
8505 methods.
8506 (class unsupported_range): Remove most methods as they will now be
8507 inherited from vrange.
8508
8509 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
8510
8511 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
8512 an object level supports_type_p for irange and a static
8513 Value_Range::supports_type_p.
8514 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Same.
8515 (fold_using_range::range_of_address): Same.
8516 (fold_using_range::range_of_builtin_call): Same.
8517 * gimple-range-fold.h (gimple_range_type): Same.
8518 (gimple_range_ssa_p): Same.
8519 * gimple-range-path.cc (path_range_query::internal_range_of_expr):
8520 Same.
8521 (path_range_query::range_of_stmt): Same.
8522 (path_range_query::add_to_imports): Same.
8523 * gimple-range.cc (gimple_ranger::range_on_edge): Same.
8524 (gimple_ranger::export_global_ranges): Same.
8525 * gimple-ssa-evrp-analyze.cc
8526 (evrp_range_analyzer::record_ranges_from_phis): Same.
8527 * range-op.cc (range_operator::wi_fold): Same.
8528 (range_operator::fold_range): Same.
8529 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Same.
8530 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Same.
8531 (evaluate_control_stmt_using_entry_checks): Same.
8532 * tree-ssa-threadedge.cc
8533 (hybrid_jt_simplifier::compute_ranges_from_state): Same.
8534 * tree-vrp.cc (supported_types_p): Same.
8535 * value-query.cc (range_query::value_of_expr): Same.
8536 (range_query::value_on_edge): Same.
8537 (range_query::value_of_stmt): Same.
8538 (range_query::get_tree_range): Same.
8539 (get_range_global): Same.
8540 (global_range_query::range_of_expr): Same.
8541 * value-range-equiv.h (class value_range_equiv): Same.
8542 * value-range.cc (irange::supports_type_p): Same.
8543 (unsupported_range::supports_type_p): Same.
8544 * value-range.h (enum value_range_discriminator): Same.
8545 (Value_Range::init): Same.
8546 (Value_Range::supports_type_p): Same.
8547 (irange::supports_type_p): Same.
8548 (irange::supports_p): Same.
8549 (vrange::supports_type_p): Same.
8550 (vrange_allocator::alloc_vrange): Same.
8551
8552 2022-06-03 Jan Beulich <jbeulich@suse.com>
8553
8554 * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
8555 * configure.ac: Check for objcopy, producing
8556 ORIGINAL_OBJCOPY_FOR_TARGET.
8557 * configure: Update accordingly.
8558 * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
8559 Handle objcopy.
8560
8561 2022-06-03 Jan Beulich <jbeulich@suse.com>
8562
8563 * config/i386/mmx.md (mmx_psadbw): Convert to expander.
8564 (*mmx_psadbw): New. Mark as commutative.
8565 * config/i386/sse.md (<sse2_avx2>_psadbw): Convert to expander.
8566 (*<sse2_avx2>_psadbw): New. Mark as commutative.
8567
8568 2022-06-03 Alexandre Oliva <oliva@adacore.com>
8569
8570 PR tree-optimization/105665
8571 PR tree-optimization/100810
8572 * tree-ssa-loop-ivopts.cc
8573 (ssa_name_maybe_undef_p, ssa_name_set_maybe_undef): New.
8574 (ssa_name_any_use_dominates_bb_p, mark_ssa_maybe_undefs): New.
8575 (find_ssa_undef): Check precomputed flag and intervening uses.
8576 (tree_ssa_iv_optimize): Call mark_ssa_maybe_undefs.
8577
8578 2022-06-02 David Malcolm <dmalcolm@redhat.com>
8579
8580 * Makefile.in (OBJS): Add tree-diagnostic-client-data-hooks.o and
8581 tree-logical-location.o.
8582 (OBJS-libcommon): Add diagnostic-format-sarif.o; reorder.
8583 (CFLAGS-tree-diagnostic-client-data-hooks.o): Add TARGET_NAME.
8584 * common.opt (fdiagnostics-format=): Add sarif-stderr and sarif-file.
8585 (sarif-stderr, sarif-file): New enum values.
8586 * diagnostic-client-data-hooks.h: New file.
8587 * diagnostic-format-sarif.cc: New file.
8588 * diagnostic-path.h (enum diagnostic_event::verb): New enum.
8589 (enum diagnostic_event::noun): New enum.
8590 (enum diagnostic_event::property): New enum.
8591 (struct diagnostic_event::meaning): New struct.
8592 (diagnostic_event::get_logical_location): New vfunc.
8593 (diagnostic_event::get_meaning): New vfunc.
8594 (simple_diagnostic_event::get_logical_location): New vfunc impl.
8595 (simple_diagnostic_event::get_meaning): New vfunc impl.
8596 * diagnostic.cc: Include "diagnostic-client-data-hooks.h".
8597 (diagnostic_initialize): Initialize m_client_data_hooks.
8598 (diagnostic_finish): Clean up m_client_data_hooks.
8599 (diagnostic_event::meaning::dump_to_pp): New.
8600 (diagnostic_event::meaning::maybe_get_verb_str): New.
8601 (diagnostic_event::meaning::maybe_get_noun_str): New.
8602 (diagnostic_event::meaning::maybe_get_property_str): New.
8603 (get_cwe_url): Make non-static.
8604 (diagnostic_output_format_init): Handle
8605 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
8606 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
8607 * diagnostic.h (enum diagnostics_output_format): Add
8608 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
8609 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
8610 (class diagnostic_client_data_hooks): New forward decl.
8611 (class logical_location): New forward decl.
8612 (diagnostic_context::m_client_data_hooks): New field.
8613 (diagnostic_output_format_init_sarif_stderr): New decl.
8614 (diagnostic_output_format_init_sarif_file): New decl.
8615 (get_cwe_url): New decl.
8616 * doc/invoke.texi (-fdiagnostics-format=): Add sarif-stderr and
8617 sarif-file.
8618 * doc/sourcebuild.texi (Scan a particular file): Add
8619 scan-sarif-file and scan-sarif-file-not.
8620 * langhooks-def.h (lhd_get_sarif_source_language): New decl.
8621 (LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE): New macro.
8622 (LANG_HOOKS_INITIALIZER): Add
8623 LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE.
8624 * langhooks.cc (lhd_get_sarif_source_language): New.
8625 * langhooks.h (lang_hooks::get_sarif_source_language): New field.
8626 * logical-location.h: New file.
8627 * plugin.cc (struct for_each_plugin_closure): New.
8628 (for_each_plugin_cb): New.
8629 (for_each_plugin): New.
8630 * plugin.h (for_each_plugin): New decl.
8631 * tree-diagnostic-client-data-hooks.cc: New file.
8632 * tree-diagnostic.cc: Include "diagnostic-client-data-hooks.h".
8633 (tree_diagnostics_defaults): Populate m_client_data_hooks.
8634 * tree-logical-location.cc: New file.
8635 * tree-logical-location.h: New file.
8636
8637 2022-06-02 David Malcolm <dmalcolm@redhat.com>
8638
8639 * common.opt (fdiagnostics-format=): Add json-stderr and json-file
8640 to description.
8641 (DIAGNOSTICS_OUTPUT_FORMAT_JSON): Rename to...
8642 (DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR): ...this.
8643 (diagnostics_output_format): Add json-stderr and json-file.
8644 * diagnostic-format-json.cc (json_flush_to_file): New.
8645 (json_final_cb): Convert to...
8646 (json_flush_to_file): ...this, ...
8647 (json_stderr_final_cb): ...this, and...
8648 (json_file_final_cb): ...this.
8649 (diagnostic_output_format_init): Move to diagnostic.cc.
8650 (json_output_base_file_name): New.
8651 (diagnostic_output_format_init_json): New.
8652 (diagnostic_output_format_init_json_stderr): New.
8653 (diagnostic_output_format_init_json_file): New.
8654 * diagnostic.cc (diagnostic_output_format_init): Move here from
8655 diagnostic-format-json.cc; update for changes to enum.
8656 * diagnostic.h (enum diagnostics_output_format): Rename
8657 DIAGNOSTICS_OUTPUT_FORMAT_JSON to
8658 DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR, and add
8659 DIAGNOSTICS_OUTPUT_FORMAT_JSON_FILE.
8660 (diagnostic_output_format_init): Add base_file_name param.
8661 (diagnostic_output_format_init_json_stderr): New decl.
8662 (diagnostic_output_format_init_json_file): New dec.
8663 * doc/invoke.texi (-fdiagnostics-format=): Add "json-stderr" and
8664 "json-file". Rewrite so that the existing "json" is a synonym of
8665 "json-stderr".
8666 * gcc.cc (driver_handle_option): Pass dump_base_name to
8667 diagnostic_output_format_init.
8668 * opts.cc (common_handle_option): Likewise.
8669
8670 2022-06-02 David Malcolm <dmalcolm@redhat.com>
8671
8672 * json.cc (string::print): Fix escaping of '\'.
8673
8674 2022-06-02 Philipp Tomsich <philipp.tomsich@vrull.eu>
8675
8676 * config/riscv/riscv.cc (riscv_build_integer_1): Rewrite value as
8677 (-1 << 31) for the single-bit case, when operating on (1 << 31)
8678 in SImode.
8679 * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): Allow for
8680 any single-bit value, moving the special case for (1 << 31) to
8681 riscv_build_integer_1 (in riscv.c).
8682
8683 2022-06-02 Roger Sayle <roger@nextmovesoftware.com>
8684
8685 PR target/105791
8686 * config/i386/sse.md (V_128_256):Add V1TI and V2TI.
8687 (define_mode_attr avxsizesuffix): Add support for V1TI and V2TI.
8688
8689 2022-06-02 Jakub Jelinek <jakub@redhat.com>
8690
8691 PR target/105778
8692 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask): Remove :SI
8693 from AND and its operands and just verify operands[2] has HImode,
8694 SImode or for TARGET_64BIT DImode. Allow operands[3] to be a mask
8695 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
8696 just throw away the masking. Use force_reg before calling
8697 gen_lowpart.
8698 (*ashl<dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
8699 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
8700 just throw away the masking.
8701 (*ashl<mode>3_doubleword): Rename to ...
8702 (ashl<mode>3_doubleword): ... this.
8703 (*ashl<mode>3_mask): Remove :SI from AND and its operands and just
8704 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
8705 Use force_reg before calling gen_lowpart.
8706 (*<insn><mode>3_mask): Likewise.
8707 (*<insn><dwi>3_doubleword_mask): Likewise. Allow operands[3] to be
8708 a mask with all low 6 (64-bit) or 5 (32-bit) bits set and in that
8709 case just throw away the masking. Use force_reg before calling
8710 gen_lowpart.
8711 (*<insn><dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
8712 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case just
8713 throw away the masking.
8714 (*<insn><mode>3_doubleword): Rename to ...
8715 (<insn><mode>3_doubleword): ... this.
8716 (*<insn><mode>3_mask): Remove :SI from AND and its operands and just
8717 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
8718 Use force_reg before calling gen_lowpart.
8719 (splitter after it): Remove :SI from AND and its operands and just
8720 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
8721 (*<btsc><mode>_mask, *<btsc><mode>_mask): Remove :SI from AND and its
8722 operands and just verify operands[1] has HImode, SImode or for
8723 TARGET_64BIT DImode. Use force_reg before calling gen_lowpart.
8724 (*jcc_bt<mode>_mask_1): New define_insn_and_split pattern.
8725 * config/i386/i386.cc (ix86_rtx_costs): For ZERO_EXTRACT with
8726 ZERO_EXTEND QI->SI in last operand ignore the cost of the ZERO_EXTEND.
8727
8728 2022-06-02 Richard Biener <rguenther@suse.de>
8729
8730 PR tree-optimization/101668
8731 * tree-vect-slp.cc (vect_build_slp_tree_1): Allow BIT_FIELD_REFs
8732 for vector types with compatible lane types.
8733 (vect_build_slp_tree_2): Deal with this.
8734 (vect_add_slp_permutation): Adjust. Emit lowpart/concat
8735 special cases without VEC_PERM.
8736 (vectorizable_slp_permutation): Select the operand vector
8737 type and relax requirements. Handle identity permutes
8738 with mismatching operand types.
8739 * optabs-query.cc (can_vec_perm_const_p): Only allow variable
8740 permutes for op_mode == mode.
8741
8742 2022-06-02 Richard Biener <rguenther@suse.de>
8743
8744 PR tree-optimization/105802
8745 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
8746 Make sure to also compute the range in the type of the switch index.
8747
8748 2022-06-01 David Seifert <soap@gentoo.org>
8749
8750 PR plugins/95648
8751 * configure: Regenerate.
8752
8753 2022-06-01 H.J. Lu <hjl.tools@gmail.com>
8754
8755 PR rtl-optimization/105638
8756 * df-core.cc (df_find_single_def_src): Moved and renamed from
8757 find_single_def_src in loop-iv.cc. Change the argument to rtx
8758 and use rtx_equal_p. Return null for partial or conditional
8759 defs.
8760 * df.h (df_find_single_def_src): New prototype.
8761 * dse.cc (record_store): Use the constant source if the source
8762 register is set only once.
8763 * loop-iv.cc (find_single_def_src): Moved to df-core.cc.
8764 (replace_single_def_regs): Replace find_single_def_src with
8765 df_find_single_def_src.
8766
8767 2022-06-01 Wilco Dijkstra <wilco.dijkstra@arm.com>
8768
8769 * config/aarch64/aarch64.opt (explicit_tune_core): Rename to
8770 selected_tune.
8771 (explicit_arch): Rename to selected_arch.
8772 (x_aarch64_override_tune_string): Remove.
8773 (aarch64_ra_sign_key): Add as TargetVariable so it gets saved/restored.
8774 (aarch64_override_tune_string): Add Save so it gets saved/restored.
8775 * config/aarch64/aarch64.h (aarch64_architecture_version): Remove.
8776 * config/aarch64/aarch64.cc (aarch64_architecture_version): Remove.
8777 (processor): Remove archtecture_version field.
8778 (selected_arch): Remove global.
8779 (selected_cpu): Remove global.
8780 (selected_tune): Remove global.
8781 (aarch64_ra_sign_key): Move global to aarch64.opt so it is saved.
8782 (aarch64_override_options_internal): Use aarch64_get_tune_cpu.
8783 (aarch64_override_options): Further simplify code to only set
8784 selected_arch and selected_tune globals.
8785 (aarch64_option_save): Remove now that target options are saved.
8786 (aarch64_option_restore): Remove redundant target option restores.
8787 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Use
8788 AARCH64_ISA_V9.
8789 * config/aarch64/aarch64-opts.h (aarch64_key_type): Add, moved from...
8790 * config/aarch64/aarch64-protos.h (aarch64_key_type): Remove.
8791 (aarch64_ra_sign_key): Remove.
8792
8793 2022-06-01 Jakub Jelinek <jakub@redhat.com>
8794
8795 PR middle-end/30314
8796 * match.pd (__builtin_mul_overflow_p (x, cst, (utype) 0) ->
8797 x > ~(utype)0 / cst): New simplification.
8798
8799 2022-06-01 Richard Biener <rguenther@suse.de>
8800
8801 PR tree-optimization/105786
8802 * tree-loop-distribution.cc
8803 (loop_distribution::transform_reduction_loop): Only do strlen
8804 replacement for integer type reductions.
8805
8806 2022-06-01 Jakub Jelinek <jakub@redhat.com>
8807
8808 PR tree-optimization/105770
8809 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb): Cast
8810 CASE_LOW and CASE_HIGH to TREE_TYPE (idx) before comparisons with idx.
8811
8812 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
8813
8814 * gimple-range-cache.cc (ssa_block_ranges::dump): Convert to vrange.
8815 (sbr_vector::sbr_vector): Same.
8816 (sbr_vector::grow): Same.
8817 (sbr_vector::set_bb_range): Same.
8818 (sbr_vector::get_bb_range): Same.
8819 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
8820 (sbr_sparse_bitmap::set_bb_range): Same.
8821 (sbr_sparse_bitmap::get_bb_range): Same.
8822 (block_range_cache::set_bb_range): Same.
8823 (block_range_cache::get_bb_range): Same.
8824 (block_range_cache::dump): Same.
8825 (ssa_global_cache::get_global_range): Same.
8826 (ssa_global_cache::set_global_range): Same.
8827 (ssa_global_cache::clear): Same.
8828 (ssa_global_cache::dump): Same.
8829 (ranger_cache::get_global_range): Same.
8830 (ranger_cache::set_global_range): Same.
8831 (ranger_cache::range_of_def): Same.
8832 (ranger_cache::entry_range): Same.
8833 (ranger_cache::exit_range): Same.
8834 (ranger_cache::edge_range): Same.
8835 (ranger_cache::range_of_expr): Same.
8836 (ranger_cache::range_on_edge): Same.
8837 (ranger_cache::block_range): Same.
8838 (ranger_cache::propagate_cache): Same.
8839 (ranger_cache::fill_block_cache): Same.
8840 (ranger_cache::range_from_dom): Same.
8841 * gimple-range-cache.h: Same.
8842 * gimple-range-edge.cc (gimple_outgoing_range::get_edge_range):
8843 Same.
8844 (gimple_outgoing_range::switch_edge_range): Same.
8845 (gimple_outgoing_range::edge_range_p): Same.
8846 * gimple-range-edge.h: Same.
8847 * gimple-range-fold.cc (fur_source::get_operand): Same.
8848 (fur_source::get_phi_operand): Same.
8849 (fur_edge::get_operand): Same.
8850 (fur_edge::get_phi_operand): Same.
8851 (fur_stmt::get_operand): Same.
8852 (fur_stmt::get_phi_operand): Same.
8853 (fur_list::fur_list): Same.
8854 (fur_list::get_operand): Same.
8855 (fur_list::get_phi_operand): Same.
8856 (fold_range): Same.
8857 (adjust_imagpart_expr): Same.
8858 (adjust_realpart_expr): Same.
8859 (gimple_range_adjustment): Same.
8860 (fold_using_range::fold_stmt): Same.
8861 (fold_using_range::range_of_range_op): Same.
8862 (fold_using_range::range_of_address): Same.
8863 (fold_using_range::range_of_phi): Same.
8864 (fold_using_range::range_of_call): Same.
8865 (fold_using_range::range_of_builtin_call): Same.
8866 (fold_using_range::range_of_builtin_int_call): Same.
8867 (fold_using_range::range_of_cond_expr): Same.
8868 (fur_source::register_outgoing_edges): Same.
8869 * gimple-range-fold.h (fold_range): Same.
8870 (gimple_range_type): Same.
8871 (gimple_range_ssa_p): Same.
8872 * gimple-range-gori.cc (gimple_range_calc_op1): Same.
8873 (gimple_range_calc_op2): Same.
8874 (gori_compute::compute_operand_range_switch): Same.
8875 (gori_compute::compute_operand_range): Same.
8876 (gori_compute::logical_combine): Same.
8877 (gori_compute::compute_logical_operands): Same.
8878 (gori_compute::compute_operand1_range): Same.
8879 (gori_compute::compute_operand2_range): Same.
8880 (gori_compute::compute_operand1_and_operand2_range): Same.
8881 (gori_compute::outgoing_edge_range_p): Same.
8882 (gori_compute::condexpr_adjust): Same.
8883 * gimple-range-gori.h (gimple_range_calc_op1): Same.
8884 (gimple_range_calc_op2): Same.
8885 * gimple-range-path.cc (path_range_query::get_cache): Same.
8886 (path_range_query::set_cache): Same.
8887 (path_range_query::range_on_path_entry): Same.
8888 (path_range_query::internal_range_of_expr): Same.
8889 (path_range_query::range_of_expr): Same.
8890 (path_range_query::ssa_range_in_phi): Same.
8891 (path_range_query::range_defined_in_block): Same.
8892 (path_range_query::compute_ranges_in_phis): Same.
8893 (path_range_query::compute_ranges_in_block): Same.
8894 (path_range_query::add_to_imports): Same.
8895 (path_range_query::range_of_stmt): Same.
8896 * gimple-range-path.h: Same.
8897 * gimple-range-infer.cc (gimple_infer_range::add_range): Same.
8898 (gimple_infer_range::~side_effect_manager): Same.
8899 (gimple_infer_range::get_nonzero): Same.
8900 (gimple_infer_range::maybe_adjust_range): Same.
8901 (gimple_infer_range::add_range): Same.
8902 * gimple-range-infer.h: Same.
8903 * gimple-range-tests.cc: Same.
8904 * gimple-range-trace.cc (range_tracer::trailer): Same.
8905 (debug_seed_ranger): Same.
8906 * gimple-range-trace.h: Same.
8907 * gimple-range.cc (gimple_ranger::range_of_expr): Same.
8908 (gimple_ranger::range_on_entry): Same.
8909 (gimple_ranger::range_on_exit): Same.
8910 (gimple_ranger::range_on_edge): Same.
8911 (gimple_ranger::fold_range_internal): Same.
8912 (gimple_ranger::range_of_stmt): Same.
8913 (gimple_ranger::prefill_name): Same.
8914 (gimple_ranger::prefill_stmt_dependencies): Same.
8915 (gimple_ranger::export_global_ranges): Same.
8916 (gimple_ranger::dump_bb): Same.
8917 * gimple-range.h: Same.
8918 * gimple-ssa-warn-access.cc (check_nul_terminated_array): Same.
8919 (memmodel_to_uhwi): Same.
8920 * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Same.
8921 (determine_value_range): Same.
8922 (record_nonwrapping_iv): Same.
8923 (infer_loop_bounds_from_signedness): Same.
8924 (scev_var_range_cant_overflow): Same.
8925 * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Same.
8926 * value-query.cc (range_query::range_on_edge): Same.
8927 (range_query::range_of_stmt): Same.
8928 (range_query::value_of_expr): Same.
8929 (range_query::value_on_edge): Same.
8930 (range_query::value_of_stmt): Same.
8931 (range_query::get_tree_range): Same.
8932 (update_global_range): Same.
8933 (get_range_global): Same.
8934 (gimple_range_global): Same.
8935 (global_range_query::range_of_expr): Same.
8936 (range_query::query_relation): Same.
8937 * value-query.h (gimple_range_global): Same.
8938 (update_global_range): Same.
8939 * vr-values.cc (vr_values::range_of_expr): Same.
8940 (bounds_of_var_in_loop): Same.
8941 (simplify_using_ranges::vrp_visit_cond_stmt): Same.
8942 * vr-values.h (class vr_values): Same.
8943 * tree-ssa-loop-unswitch.cc (unswitch_predicate): Same.
8944
8945 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
8946
8947 * gimple-range-cache.cc (sbr_vector::sbr_vector): Adjust for
8948 vrange allocator.
8949 (sbr_vector::grow): Same.
8950 (sbr_vector::set_bb_range): Same.
8951 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
8952 (sbr_sparse_bitmap::set_bb_range): Same.
8953 (block_range_cache::~block_range_cache): Same.
8954 (block_range_cache::set_bb_range): Same.
8955 (ssa_global_cache::ssa_global_cache): Same.
8956 (ssa_global_cache::~ssa_global_cache): Same.
8957 (ssa_global_cache::set_global_range): Same.
8958 * gimple-range-cache.h (block_range_cache): Same.
8959 (ssa_global_cache): Same.
8960 * gimple-range-edge.cc
8961 (gimple_outgoing_range::calc_switch_ranges): Same.
8962 * gimple-range-edge.h (gimple_outgoing_range): Same.
8963 * gimple-range-infer.cc (infer_range_manager::get_nonzero):
8964 Same.
8965 (infer_range_manager::add_range): Same.
8966 * gimple-range-infer.h (class infer_range_manager): Same.
8967 * value-range.h (class irange_allocator): Rename to...
8968 (class vrange_allocator): ...this.
8969 (irange_allocator::irange_allocator): New.
8970 (vrange_allocator::vrange_allocator): New.
8971 (irange_allocator::~irange_allocator): New.
8972 (vrange_allocator::~vrange_allocator): New.
8973 (irange_allocator::get_memory): Rename to...
8974 (vrange_allocator::alloc): ...this.
8975 (vrange_allocator::alloc_vrange): Rename from...
8976 (irange_allocator::allocate): ...this.
8977 (vrange_allocator::alloc_irange): New.
8978
8979 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
8980
8981 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
8982 vrange and convert range_op_handler function calls to use the
8983 identically named object.
8984 * gimple-range-fold.cc (gimple_range_operand1): Same.
8985 (gimple_range_operand2): Same.
8986 (fold_using_range::fold_stmt): Same.
8987 (fold_using_range::range_of_range_op): Same.
8988 (fold_using_range::range_of_builtin_ubsan_call): Same.
8989 (fold_using_range::relation_fold_and_or): Same.
8990 (fur_source::register_outgoing_edges): Same.
8991 * gimple-range-fold.h (gimple_range_handler): Remove.
8992 * gimple-range-gori.cc (gimple_range_calc_op1): Adjust for vrange.
8993 (gimple_range_calc_op2): Same.
8994 (range_def_chain::get_def_chain): Same.
8995 (gori_compute::compute_operand_range): Same.
8996 (gori_compute::condexpr_adjust): Same.
8997 * gimple-range.cc (gimple_ranger::prefill_name): Same.
8998 (gimple_ranger::prefill_stmt_dependencies): Same.
8999 * range-op.cc (get_bool_state): Same.
9000 (class operator_equal): Add using clause.
9001 (class operator_not_equal): Same.
9002 (class operator_lt): Same.
9003 (class operator_le): Same.
9004 (class operator_gt): Same.
9005 (class operator_ge): Same.
9006 (class operator_plus): Same.
9007 (class operator_minus): Same.
9008 (class operator_mult): Same.
9009 (class operator_exact_divide): Same.
9010 (class operator_lshift): Same.
9011 (class operator_rshift): Same.
9012 (class operator_cast): Same.
9013 (class operator_logical_and): Same.
9014 (class operator_bitwise_and): Same.
9015 (class operator_logical_or): Same.
9016 (class operator_bitwise_or): Same.
9017 (class operator_bitwise_xor): Same.
9018 (class operator_trunc_mod): Same.
9019 (class operator_logical_not): Same.
9020 (class operator_bitwise_not): Same.
9021 (class operator_cst): Same.
9022 (class operator_identity): Same.
9023 (class operator_unknown): Same.
9024 (class operator_abs): Same.
9025 (class operator_negate): Same.
9026 (class operator_addr_expr): Same.
9027 (class pointer_or_operator): Same.
9028 (operator_plus::op1_range): Adjust for vrange.
9029 (operator_minus::op1_range): Same.
9030 (operator_mult::op1_range): Same.
9031 (operator_cast::op1_range): Same.
9032 (operator_bitwise_not::fold_range): Same.
9033 (operator_negate::fold_range): Same.
9034 (range_op_handler): Rename to...
9035 (get_handler): ...this.
9036 (range_op_handler::range_op_handler): New.
9037 (range_op_handler::fold_range): New.
9038 (range_op_handler::op1_range): New.
9039 (range_op_handler::op2_range): New.
9040 (range_op_handler::lhs_op1_relation): New.
9041 (range_op_handler::lhs_op2_relation): New.
9042 (range_op_handler::op1_op2_relation): New.
9043 (range_cast): Adjust for vrange.
9044 * range-op.h (range_op_handler): Remove function.
9045 (range_cast): Adjust for vrange.
9046 (class range_op_handler): New.
9047 (get_bool_state): Adjust for vrange.
9048 (empty_range_varying): Same.
9049 (relop_early_resolve): Same.
9050 * tree-data-ref.cc (compute_distributive_range): Same.
9051 * tree-vrp.cc (get_range_op_handler): Remove.
9052 (range_fold_binary_symbolics_p): Use range_op_handler class
9053 instead of get_range_op_handler.
9054 (range_fold_unary_symbolics_p): Same.
9055 (range_fold_binary_expr): Same.
9056 (range_fold_unary_expr): Same.
9057 * value-query.cc (range_query::get_tree_range): Adjust for vrange.
9058
9059 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
9060
9061 * gimple-range-fold.h (gimple_range_type): Check type before
9062 calling supports_type_p.
9063 * gimple-range-path.cc (path_range_query::range_of_stmt): Same.
9064 * value-query.cc (range_query::get_tree_range): Same.
9065 * value-range.cc (Value_Range::lower_bound): New.
9066 (Value_Range::upper_bound): New.
9067 (Value_Range::dump): New.
9068 * value-range.h (class Value_Range): New.
9069 (irange::supports_type_p): Do not check if type is non-zero.
9070
9071 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
9072
9073 * value-range-equiv.cc (value_range_equiv::set): New.
9074 * value-range-equiv.h (class value_range_equiv): Make set method
9075 virtual.
9076 Remove default bitmap argument from set method.
9077 * value-range.cc (vrange::contains_p): New.
9078 (vrange::singleton_p): New.
9079 (vrange::operator=): New.
9080 (vrange::operator==): New.
9081 (irange::fits_p): Move to .cc file.
9082 (irange::set_nonnegative): New.
9083 (unsupported_range::unsupported_range): New.
9084 (unsupported_range::set): New.
9085 (unsupported_range::type): New.
9086 (unsupported_range::set_undefined): New.
9087 (unsupported_range::set_varying): New.
9088 (unsupported_range::dump): New.
9089 (unsupported_range::union_): New.
9090 (unsupported_range::intersect): New.
9091 (unsupported_range::zero_p): New.
9092 (unsupported_range::nonzero_p): New.
9093 (unsupported_range::set_nonzero): New.
9094 (unsupported_range::set_zero): New.
9095 (unsupported_range::set_nonnegative): New.
9096 (unsupported_range::fits_p): New.
9097 (irange::set): Call irange::set_undefined.
9098 (irange::verify_range): Check discriminator field.
9099 (irange::dump): Dump [irange] marker.
9100 (irange::debug): Move to...
9101 (vrange::debug): ...here.
9102 (dump_value_range): Accept vrange.
9103 (debug): Same.
9104 * value-range.h (enum value_range_discriminator): New.
9105 (class vrange): New.
9106 (class unsupported_range): New.
9107 (struct vrange_traits): New.
9108 (is_a): New.
9109 (as_a): New.
9110 (class irange): Inherit from vrange.
9111 (dump_value_range): Adjust for vrange.
9112 (irange::kind): Rename to...
9113 (vrange::kind): ...this.
9114 (irange::varying_p): Rename to...
9115 (vrange::varying_p): ...this.
9116 (irange::undefined_p): Rename to...
9117 (vrange::undefined_p): ...this.
9118 (irange::irange): Set discriminator.
9119 (irange::union_): Convert to irange before passing to irange
9120 method.
9121 (irange::intersect): Same.
9122 (vrange::supports_type_p): New.
9123 * vr-values.cc (vr_values::extract_range_from_binary_expr): Pass
9124 NULL bitmap argument to value_range_equiv::set.
9125 (vr_values::extract_range_basic): Same.
9126
9127 2022-06-01 Richard Biener <rguenther@suse.de>
9128
9129 PR tree-optimization/105763
9130 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
9131 Check gimple_range_ssa_p.
9132
9133 2022-05-31 Jason Merrill <jason@redhat.com>
9134
9135 * Makefile.in (TAGS): Look at libcpp/*.cc.
9136
9137 2022-05-31 Christophe Lyon <christophe.lyon@arm.com>
9138
9139 * config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr):
9140 Prefix mode names with E_.
9141
9142 2022-05-31 Alan Modra <amodra@gmail.com>
9143
9144 * dwarf2out.cc (gen_namelist_decl): Adjust to suit correct
9145 spelling of DW_AT_namelist_item.
9146
9147 2022-05-31 Jakub Jelinek <jakub@redhat.com>
9148
9149 * omp-low.cc (build_outer_var_ref): For code == OMP_CLAUSE_ALLOCATE
9150 allow var to be private in the outer context.
9151 (lower_private_allocate): Pass OMP_CLAUSE_ALLOCATE as last argument
9152 to build_outer_var_ref.
9153
9154 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
9155
9156 * config/i386/i386.cc (ix86_modes_tieable_p): Allow SCmode to be
9157 tieable with DImode on TARGET_64BIT, and SCmode tieable with
9158 V2SFmode, and DCmode with V2DFmode.
9159
9160 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
9161
9162 PR rtl-optimization/101617
9163 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Add a
9164 special case (indicated by negate_cc_compare_p) to generate a
9165 -1/0 mask using neg;sbb.
9166 * config/i386/i386.md (x86_neg<mode>_ccc): New define_expand
9167 to generate an *x86_neg<mode>_ccc instruction.
9168 (x86_mov<mode>cc_0_m1_neg): Likewise, a new define_expand to
9169 generate a *x86_mov<mode>cc_0_m1_neg instruction.
9170
9171 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
9172
9173 * rtlanal.cc (rtx_cost) <MULT>: Treat FMA, SS_MULT, US_MULT,
9174 SMUL_HIGHPART and UMUL_HIGHPART as having the same cost as MULT.
9175 <DIV>: Likewise, SS_DIV and US_DIV have the same default as DIV.
9176
9177 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
9178
9179 PR target/70321
9180 * config/i386/i386-expand.cc (ix86_expand_branch): Don't decompose
9181 DI mode equality/inequality using XOR here. Instead generate a
9182 COMPARE for doubleword modes (DImode on !TARGET_64BIT or TImode).
9183 * config/i386/i386-features.cc (gen_gpr_to_xmm_move_src): Use
9184 gen_rtx_SUBREG when NUNITS is 1, i.e. for TImode to V1TImode.
9185 (general_scalar_chain::convert_compare): New function to convert
9186 scalar equality/inequality comparison into vector operations.
9187 (general_scalar_chain::convert_insn) [COMPARE]: Refactor. Call
9188 new convert_compare helper method.
9189 (convertible_comparion_p): Update to match doubleword COMPARE
9190 of two register, memory or integer constant operands.
9191 * config/i386/i386-features.h (general_scalar_chain::convert_compare):
9192 Prototype/declare member function here.
9193 * config/i386/i386.md (cstore<mode>4): Change mode to SDWIM, but
9194 only allow new doubleword modes for EQ and NE operators.
9195 (*cmp<dwi>_doubleword): New define_insn_and_split, to split a
9196 doubleword comparison into a pair of XORs followed by an IOR to
9197 set the (zero) flags register, optimizing the XORs if possible.
9198 * config/i386/sse.md (V_AVX): Include V1TI and V2TI in mode
9199 iterator; V_AVX is (currently) only used by ptest.
9200 (sse4_1 mode attribute): Update to support V1TI and V2TI.
9201
9202 2022-05-30 Uroš Bizjak <ubizjak@gmail.com>
9203
9204 * config/i386/i386.md: Remove constraints when used with
9205 const_int_operand, const0_operand, const_1_operand, constm1_operand,
9206 const8_operand, const128_operand, const248_operand, const123_operand,
9207 const2367_operand, const1248_operand, const359_operand,
9208 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
9209 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
9210 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
9211 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
9212 const_0_to_255_mul_8_operand, const_1_to_31_operand,
9213 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
9214 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
9215 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
9216 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
9217 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
9218 const_24_to_27_operand and const_28_to_31_operand.
9219 * config/i386/mmx.md: Ditto.
9220 * config/i386/sse.md: Ditto.
9221 * config/i386/subst.md: Ditto.
9222 * config/i386/sync.md: Ditto.
9223
9224 2022-05-30 Jan Beulich <jbeulich@suse.com>
9225
9226 * config/i386/i386.md (bmi2_umul<mode><dwi>3_1): Correct MEM_P()
9227 arguments.
9228
9229 2022-05-30 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9230
9231 * config/arm/arm.cc (arm_vectorize_vec_perm_const): Adjust prototype.
9232
9233 2022-05-29 Iain Sandoe <iain@sandoe.co.uk>
9234
9235 PR target/105599
9236 * config/darwin.h: Move versions-specific handling of multiply_defined
9237 from SUBTARGET_DRIVER_SELF_SPECS to LINK_SPEC.
9238
9239 2022-05-29 Eric Gallager <egallager@gcc.gnu.org>
9240
9241 PR other/82383
9242 * doc/sourcebuild.texi: Add entries for the c++tools,
9243 gotools, libbacktrace, libcc1, libcody, liboffloadmic,
9244 and libsanitizer directories. Remove entry for boehm-gc.
9245 Fix alphabetization for libquadmath.
9246
9247 2022-05-28 Joel Holdsworth <jholdsworth@nvidia.com>
9248
9249 * config/avr/avr-mcus.def: Add device definitions.
9250 * doc/avr-mmcu.texi: Corresponding changes.
9251 * config/avr/gen-avr-mmcu-texi.cc: Added support for avr
9252 device prefix.
9253 * config/avr/gen-avr-mmcu-specs.cc: Prevent -mmcu=avr* flags
9254 from leaking into cc1.
9255
9256 2022-05-28 Vladimir Makarov <vmakarov@gcc.gnu.org>
9257
9258 PR target/103722
9259 * config/sh/sh.cc (sh_register_move_cost): Avoid cost "2" (which
9260 is special) for various scenarios.
9261
9262 2022-05-28 Iain Sandoe <iain@sandoe.co.uk>
9263
9264 * config/darwin.h (REAL_LIBGCC_SPEC): Update the comment block
9265 describing this macro.
9266
9267 2022-05-27 Richard Biener <rguenther@suse.de>
9268
9269 * tree-dfa.cc (get_ref_base_and_extent): Avoid shift.
9270
9271 2022-05-27 Martin Jambor <mjambor@suse.cz>
9272
9273 PR ipa/105639
9274 * ipa-prop.cc (propagate_controlled_uses): Check type of the
9275 constant before adding a LOAD reference.
9276
9277 2022-05-27 Jakub Jelinek <jakub@redhat.com>
9278
9279 * tree-core.h (enum omp_clause_code): Rename OMP_CLAUSE_TO_DECLARE
9280 to OMP_CLAUSE_ENTER.
9281 * tree.h (OMP_CLAUSE_ENTER_TO): Define.
9282 * tree.cc (omp_clause_num_ops, omp_clause_code_name): Rename
9283 OMP_CLAUSE_TO_DECLARE to OMP_CLAUSE_ENTER.
9284 * tree-pretty-print.cc (dump_omp_clause): Handle OMP_CLAUSE_ENTER
9285 instead of OMP_CLAUSE_TO_DECLARE, if OMP_CLAUSE_ENTER_TO, print
9286 "to" instead of "enter".
9287 * tree-nested.cc (convert_nonlocal_omp_clauses,
9288 convert_local_omp_clauses): Handle OMP_CLAUSE_ENTER instead of
9289 OMP_CLAUSE_TO_DECLARE.
9290
9291 2022-05-27 Richard Biener <rguenther@suse.de>
9292
9293 PR tree-optimization/105726
9294 * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
9295 Constrain array-of-flexarray case more.
9296
9297 2022-05-27 Jakub Jelinek <jakub@redhat.com>
9298
9299 PR sanitizer/105729
9300 * fold-const.cc (fold_unary_loc): Don't optimize (X &) ((Y *) z + w)
9301 to (X &) z + w if -fsanitize=null during GENERIC folding.
9302
9303 2022-05-27 Roger Sayle <roger@nextmovesoftware.com>
9304
9305 * match.pd (match_zero_one_valued_p): New predicate.
9306 (mult @0 @1): Use zero_one_valued_p for optimization to the
9307 expression "bit_and @0 @1".
9308 (bit_and (negate zero_one_valued_p@0) @1): Optimize to MULT_EXPR.
9309 (plus @0 (mult (minus @1 @0) zero_one_valued_p@2)): New transform.
9310 (minus @0 (mult (minus @0 @1) zero_one_valued_p@2)): Likewise.
9311 (bit_xor @0 (mult (bit_xor @0 @1) zero_one_valued_p@2)): Likewise.
9312 Remove three redundant transforms obsoleted by the three above.
9313
9314 2022-05-27 Roger Sayle <roger@nextmovesoftware.com>
9315
9316 * config/i386/i386.md (*test<mode>_not): New define_insn_and_split
9317 to split a combined "and;cmp" sequence into "not;test".
9318
9319 2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
9320
9321 * config/xtensa/xtensa.md (bswapsi2): New expansion pattern.
9322 (bswapsi2_internal): Revise the template and condition, and add
9323 detection code for preceding the same insn in order to omit a
9324 "SSAI 8" instruction of the latter.
9325 (bswapdi2): Suppress built-in insn expansion with the corresponding
9326 library call when optimizing for size.
9327
9328 2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
9329
9330 * config/xtensa/xtensa-protos.h
9331 (xtensa_expand_block_set_unrolled_loop,
9332 xtensa_expand_block_set_small_loop): New prototypes.
9333 * config/xtensa/xtensa.cc (xtensa_sizeof_MOVI,
9334 xtensa_expand_block_set_unrolled_loop,
9335 xtensa_expand_block_set_small_loop): New functions.
9336 * config/xtensa/xtensa.md (setmemsi): New expansion pattern.
9337 * config/xtensa/xtensa.opt (mlongcalls): Add target mask.
9338
9339 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
9340
9341 * config/xtensa/xtensa.cc (xtensa_expand_block_move):
9342 Make instruction counting more accurate, and simplify emitting insns.
9343
9344 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
9345
9346 * config/xtensa/constraints.md (M, O): Use the macro.
9347 * config/xtensa/predicates.md (addsubx_operand, extui_fldsz_operand,
9348 sext_fldsz_operand): Ditto.
9349 * config/xtensa/xtensa.cc (xtensa_simm8, xtensa_simm8x256,
9350 xtensa_simm12b, xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4,
9351 xtensa_mask_immediate, smalloffset_mem_p, printx, xtensa_call_save_reg,
9352 xtensa_expand_prologue): Ditto.
9353 * config/xtensa/xtensa.h (FUNCTION_ARG_REGNO_P): Ditto.
9354
9355 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
9356
9357 * config/xtensa/predicates.md (extui_fldsz_operand): Simplify.
9358 * config/xtensa/xtensa.cc (xtensa_mask_immediate, print_operand):
9359 Ditto.
9360
9361 2022-05-25 Andrew MacLeod <amacleod@redhat.com>
9362
9363 * gimple-range-cache.cc: Adjust comments.
9364 * gimple-range-infer.cc: Adjust comments.
9365 * gimple-range-infer.h: Adjust comments.
9366 * gimple-range.cc: Adjust comments.
9367
9368 2022-05-25 Andrew MacLeod <amacleod@redhat.com>
9369
9370 * Makefile.in (OBJS): Use gimple-range-infer.o.
9371 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Change msg.
9372 (ranger_cache::range_from_dom): Rename var side_effect to infer.
9373 (ranger_cache::apply_inferred_ranges): Rename from apply_side_effects.
9374 * gimple-range-cache.h: Include gimple-range-infer.h.
9375 (class ranger_cache): Adjust prototypes, use infer_range_manager.
9376 * gimple-range-infer.cc: Rename from gimple-range-side-effects.cc.
9377 (gimple_infer_range::*): Rename from stmt_side_effects.
9378 (infer_range_manager::*): Rename from side_effect_manager.
9379 * gimple-range-side-effect.cc: Rename.
9380 * gimple-range-side-effect.h: Rename.
9381 * gimple-range-infer.h: Rename from gimple-range-side-effects.h.
9382 (class gimple_infer_range): Rename from stmt_side_effects.
9383 (class infer_range_manager): Rename from side_effect_manager.
9384 * gimple-range.cc (gimple_ranger::register_inferred_ranges): Rename
9385 from register_side_effects.
9386 * gimple-range.h (register_inferred_ranges): Adjust prototype.
9387 * range-op.h: Adjust comment.
9388 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Use register_inferred_ranges.
9389 (rvrp_folder::post_fold_bb): Use register_inferred_ranges.
9390
9391 2022-05-25 Simon Cook <simon.cook@embecosm.com>
9392
9393 * config/riscv/arch-canonicalize: Only add mafd extension if
9394 base was rv32/rv64g.
9395
9396 2022-05-25 Tobias Burnus <tobias@codesourcery.com>
9397
9398 * doc/invoke.texi (AMD GCN Options): Add gfx908/gfx90a.
9399
9400 2022-05-25 Jakub Jelinek <jakub@redhat.com>
9401
9402 PR sanitizer/105714
9403 * asan.cc (has_stmt_been_instrumented_p): For assignments which
9404 are both stores and loads, return true only if both destination
9405 and source have been instrumented.
9406
9407 2022-05-25 Martin Liska <mliska@suse.cz>
9408 Richard Biener <rguenther@suse.de>
9409
9410 * dbgcnt.def (DEBUG_COUNTER): Add loop_unswitch counter.
9411 * params.opt (max-unswitch-level): Remove.
9412 * doc/invoke.texi (max-unswitch-level): Likewise.
9413 * tree-cfg.cc (gimple_lv_add_condition_to_bb): Support not
9414 gimplified expressions.
9415 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): New.
9416 (tree_may_unswitch_on): Rename to ...
9417 (find_unswitching_predicates_for_bb): ... this and handle
9418 switch statements.
9419 (get_predicates_for_bb): Likewise.
9420 (set_predicates_for_bb): Likewise.
9421 (init_loop_unswitch_info): Likewise.
9422 (tree_ssa_unswitch_loops): Prepare stuff before calling
9423 tree_unswitch_single_loop.
9424 (tree_unswitch_single_loop): Rework the function using
9425 pre-computed predicates and with a per original loop cost model.
9426 (merge_last): New.
9427 (add_predicate_to_path): Likewise.
9428 (find_range_for_lhs): Likewise.
9429 (simplify_using_entry_checks): Rename to ...
9430 (evaluate_control_stmt_using_entry_checks): ... this, handle
9431 switch statements and improve simplifications using ranger.
9432 (simplify_loop_version): Rework using
9433 evaluate_control_stmt_using_entry_checks.
9434 (evaluate_bbs): New.
9435 (evaluate_loop_insns_for_predicate): Likewise.
9436 (tree_unswitch_loop): Adjust to allow switch statements and
9437 pass in the edge to unswitch.
9438 (clean_up_after_unswitching): New.
9439 (pass_tree_unswitch::execute): Pass down fun.
9440
9441 2022-05-24 Eugene Rozenfeld <erozen@microsoft.com>
9442
9443 * tree-vect-loop-manip.cc (vect_do_peeling): Save/restore profile
9444 counts for the epilog loop.
9445
9446 2022-05-24 Martin Sebor <msebor@redhat.com>
9447 Richard Biener <rguenther@suse.de>
9448
9449 PR middle-end/105604
9450 * gimple-ssa-sprintf.cc (set_aggregate_size_and_offset): Add comments.
9451 (get_origin_and_offset_r): Remove null handling. Handle variable array
9452 sizes.
9453 (get_origin_and_offset): Handle null argument here. Simplify.
9454 (alias_offset): Update comment.
9455 * pointer-query.cc (field_at_offset): Update comment. Handle members
9456 of variable-length types.
9457
9458 2022-05-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9459
9460 * target.def (vec_perm_const): Define new parameter op_mode and
9461 update doc.
9462 * doc/tm.texi: Regenerate.
9463 * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Adjust
9464 vec_perm_const hook to add new parameter op_mode and return false
9465 if result and operand modes do not match.
9466 * config/arm/arm.cc (arm_vectorize_vec_perm_const): Likewise.
9467 * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Likewise.
9468 * config/ia64/ia64.cc (ia64_vectorize_vec_perm_const): Likewise.
9469 * config/mips/mips.cc (mips_vectorize_vec_perm_const): Likewise.
9470 * config/rs6000/rs6000.cc (rs6000_vectorize_vec_perm_const): Likewise
9471 * config/s390/s390.cc (s390_vectorize_vec_perm_const): Likewise.
9472 * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Likewise.
9473 * config/i386/i386-expand.cc (ix86_vectorize_vec_perm_const): Likewise.
9474 * config/i386/i386-expand.h (ix86_vectorize_vec_perm_const): Adjust
9475 prototype.
9476 * config/i386/sse.md (ashrv4di3): Adjust call to vec_perm_const hook.
9477 (ashrv2di3): Likewise.
9478 * optabs.cc (expand_vec_perm_const): Likewise.
9479 * optabs-query.h (can_vec_perm_const_p): Adjust prototype.
9480 * optabs-query.cc (can_vec_perm_const_p): Define new parameter
9481 op_mode and pass it to vec_perm_const hook.
9482 (can_mult_highpart_p): Adjust call to can_vec_perm_const_p.
9483 * match.pd (vec_perm X Y CST): Likewise.
9484 * tree-ssa-forwprop.cc (simplify_vector_constructor): Likewise.
9485 * tree-vect-data-refs.cc (vect_grouped_store_supported): Likewise.
9486 (vect_grouped_load_supported): Likewise.
9487 (vect_shift_permute_load_chain): Likewise.
9488 * tree-vect-generic.cc (lower_vec_perm): Likewise.
9489 * tree-vect-loop-manip.cc (interleave_supported_p): Likewise.
9490 * tree-vect-loop.cc (have_whole_vector_shift): Likewise.
9491 * tree-vect-patterns.cc (vect_recog_rotate_pattern): Likewise.
9492 * tree-vect-slp.cc (can_duplicate_and_interleave_p): Likewise.
9493 (vect_transform_slp_perm_load): Likewise.
9494 (vectorizable_slp_permutation): Likewise.
9495 * tree-vect-stmts.cc (perm_mask_for_reverse): Likewise.
9496 (vectorizable_bswap): Likewise.
9497 (scan_store_can_perm_p): Likewise.
9498 (vect_gen_perm_mask_checked): Likewise.
9499
9500 2022-05-24 H.J. Lu <hjl.tools@gmail.com>
9501
9502 PR target/104816
9503 * config/i386/i386.opt: Remove Undocumented.
9504 * doc/invoke.texi: Document -mcet-switch.
9505
9506 2022-05-24 Andrew Stubbs <ams@codesourcery.com>
9507
9508 * config.gcc (amdgcn): Accept --with-arch=gfx908 and gfx90a.
9509 * config/gcn/gcn-opts.h (enum gcn_isa): New.
9510 (TARGET_GCN3): Use enum gcn_isa.
9511 (TARGET_GCN3_PLUS): Likewise.
9512 (TARGET_GCN5): Likewise.
9513 (TARGET_GCN5_PLUS): Likewise.
9514 (TARGET_CDNA1): New.
9515 (TARGET_CDNA1_PLUS): New.
9516 (TARGET_CDNA2): New.
9517 (TARGET_CDNA2_PLUS): New.
9518 (TARGET_M0_LDS_LIMIT): New.
9519 (TARGET_PACKED_WORK_ITEMS): New.
9520 * config/gcn/gcn.cc (gcn_isa): Change to enum gcn_isa.
9521 (gcn_option_override): Recognise CDNA ISA variants.
9522 (gcn_omp_device_kind_arch_isa): Support gfx90a.
9523 (gcn_expand_prologue): Make m0 init optional.
9524 Add support for packed work items.
9525 (output_file_start): Support gfx90a.
9526 (gcn_hsa_declare_function_name): Support gfx90a metadata.
9527 * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS):Add __CDNA1__ and
9528 __CDNA2__.
9529 * config/gcn/gcn.md (<su>mulsi3_highpart): Use TARGET_GCN5_PLUS.
9530 (<su>mulsi3_highpart_imm): Likewise.
9531 (<su>mulsidi3): Likewise.
9532 (<su>mulsidi3_imm): Likewise.
9533 * config/gcn/gcn.opt (gpu_type): Add gfx90a.
9534 * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX90a): New.
9535 (main): Support gfx90a.
9536 * config/gcn/t-gcn-hsa: Add gfx90a multilib.
9537 * config/gcn/t-omp-device: Add gfx90a isa.
9538
9539 2022-05-24 Andrew Stubbs <ams@codesourcery.com>
9540
9541 * config.in: Regenerate.
9542 * config/gcn/gcn-hsa.h (X_FIJI): Delete.
9543 (X_900): Delete.
9544 (X_906): Delete.
9545 (X_908): Delete.
9546 (S_FIJI): Delete.
9547 (S_900): Delete.
9548 (S_906): Delete.
9549 (S_908): Delete.
9550 (NO_XNACK): New macro.
9551 (NO_SRAM_ECC): New macro.
9552 (SRAMOPT): Keep only v4 variant.
9553 (HSACO3_SELECT_OPT): Delete.
9554 (DRIVER_SELF_SPECS): Delete.
9555 (ASM_SPEC): Remove LLVM 9 support.
9556 * config/gcn/gcn-valu.md
9557 (gather<mode>_insn_2offsets<exec>): Remove assembler bug workaround.
9558 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
9559 * config/gcn/gcn.cc (output_file_start): Remove LLVM 9 support.
9560 (print_operand_address): Remove assembler bug workaround.
9561 * config/gcn/mkoffload.cc (EF_AMDGPU_XNACK_V3): Delete.
9562 (EF_AMDGPU_SRAM_ECC_V3): Delete.
9563 (SET_XNACK_ON): Delete v3 variants.
9564 (SET_XNACK_OFF): Delete v3 variants.
9565 (TEST_XNACK): Delete v3 variants.
9566 (SET_SRAM_ECC_ON): Delete v3 variants.
9567 (SET_SRAM_ECC_ANY): Delete v3 variants.
9568 (SET_SRAM_ECC_OFF): Delete v3 variants.
9569 (SET_SRAM_ECC_UNSUPPORTED): Delete v3 variants.
9570 (TEST_SRAM_ECC_ANY): Delete v3 variants.
9571 (TEST_SRAM_ECC_ON): Delete v3 variants.
9572 (copy_early_debug_info): Remove v3 support.
9573 (main): Remove v3 support.
9574 * configure: Regenerate.
9575 * configure.ac: Replace all GCN feature checks with a version check.
9576
9577 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
9578
9579 * config/i386/i386.md (peephole2): Convert xor;neg;adc;neg,
9580 i.e. a double word negation of a zero extended operand, to
9581 neg;sbb.
9582
9583 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
9584
9585 PR tree-optimization/105668
9586 * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Support
9587 V1TImode, just like V2DImode.
9588 * config/i386/sse.md (vcond_mask_<mode><sseintvecmodelower>):
9589 Use VI_128 mode iterator instead of VI124_128 to include V2DI.
9590 (vcond_mask_v2div2di): Delete.
9591 (vcond_mask_v1tiv1ti): New define_expand.
9592
9593 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
9594
9595 * genpreds.cc (write_lookup_constraint_1): Avoid generating a call
9596 to strncmp for strings of length one.
9597
9598 2022-05-24 ShiYulong <shiyulong@iscas.ac.cn>
9599
9600 * config/riscv/predicates.md (imm5_operand): Add a new operand type for
9601 prefetch instructions.
9602 * config/riscv/riscv-builtins.cc (AVAIL): Add new AVAILs for CMO ISA
9603 Extensions.
9604 (RISCV_ATYPE_SI): New.
9605 (RISCV_ATYPE_DI): New.
9606 * config/riscv/riscv-ftypes.def (0): New.
9607 (1): New.
9608 * config/riscv/riscv.md (riscv_clean_<mode>): New.
9609 (riscv_flush_<mode>): New.
9610 (riscv_inval_<mode>): New.
9611 (riscv_zero_<mode>): New.
9612 (prefetch): New.
9613 (riscv_prefetchi_<mode>): New.
9614 * config/riscv/riscv-cmo.def: New file.
9615
9616 2022-05-24 ShiYulong <shiyulong@iscas.ac.cn>
9617
9618 * common/config/riscv/riscv-common.cc: Add zicbom, zicboz, zicbop extensions.
9619 * config/riscv/riscv-opts.h (MASK_ZICBOZ): New.
9620 (MASK_ZICBOM): New.
9621 (MASK_ZICBOP): New.
9622 (TARGET_ZICBOZ): New.
9623 (TARGET_ZICBOM): New.
9624 (TARGET_ZICBOP): New.
9625 * config/riscv/riscv.opt (riscv_zicmo_subext): New.
9626
9627 2022-05-24 David Malcolm <dmalcolm@redhat.com>
9628
9629 * tree-vect-slp-patterns.cc: Add "final" and "override" to
9630 vect_pattern::build impls as appropriate.
9631
9632 2022-05-24 David Malcolm <dmalcolm@redhat.com>
9633
9634 * ipa-cp.cc: Add "final" and "override" to call_summary_base vfunc
9635 implementations, removing redundant "virtual" as appropriate.
9636 * ipa-fnsummary.h: Likewise.
9637 * ipa-modref.cc: Likewise.
9638 * ipa-param-manipulation.cc: Likewise.
9639 * ipa-profile.cc: Likewise.
9640 * ipa-prop.h: Likewise.
9641 * ipa-pure-const.cc: Likewise.
9642 * ipa-reference.cc: Likewise.
9643 * ipa-sra.cc: Likewise.
9644 * symbol-summary.h: Likewise.
9645 * symtab-thunks.cc: Likewise.
9646
9647 2022-05-24 Martin Liska <mliska@suse.cz>
9648
9649 Revert:
9650 2022-05-24 Martin Liska <mliska@suse.cz>
9651
9652 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
9653 warning.
9654
9655 2022-05-24 Martin Liska <mliska@suse.cz>
9656
9657 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
9658 warning.
9659
9660 2022-05-24 Bruno Haible <bruno@clisp.org>
9661
9662 PR other/105527
9663 * doc/install.texi (Configuration): Add more details about --with-zstd.
9664 Document --with-zstd-include and --with-zstd-lib
9665
9666 2022-05-24 Richard Biener <rguenther@suse.de>
9667
9668 PR middle-end/105711
9669 * expmed.cc (extract_bit_field_as_subreg): Add op0_mode parameter
9670 and use it.
9671 (extract_bit_field_1): Pass down the mode of op0 to
9672 extract_bit_field_as_subreg.
9673
9674 2022-05-24 Vineet Gupta <vineetg@rivosinc.com>
9675
9676 * config/riscv/riscv.cc: (struct riscv_tune_param): Add
9677 fmv_cost.
9678 (rocket_tune_info): Add default fmv_cost 8.
9679 (sifive_7_tune_info): Ditto.
9680 (thead_c906_tune_info): Ditto.
9681 (optimize_size_tune_info): Ditto.
9682 (riscv_register_move_cost): Use fmv_cost for int<->fp moves.
9683
9684 2022-05-24 Jakub Jelinek <jakub@redhat.com>
9685
9686 PR c/105378
9687 * omp-builtins.def (BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT): New
9688 builtin.
9689 * gimplify.cc (gimplify_omp_task): Diagnose taskwait with nowait
9690 clause but no depend clauses.
9691 * omp-expand.cc (expand_taskwait_call): Use
9692 BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT rather than
9693 BUILT_IN_GOMP_TASKWAIT_DEPEND if nowait clause is present.
9694
9695 2022-05-24 Richard Biener <rguenther@suse.de>
9696
9697 PR tree-optimization/100221
9698 * tree-ssa-dse.cc (contains_phi_arg): New function.
9699 (dse_classify_store): Postpone PHI defs that feed another PHI in defs.
9700
9701 2022-05-24 Richard Biener <rguenther@suse.de>
9702
9703 PR tree-optimization/105629
9704 * tree-ssa-phiopt.cc (spaceship_replacement): Allow
9705 a sign-extending conversion.
9706
9707 2022-05-24 Kewen Lin <linkw@linux.ibm.com>
9708
9709 PR target/105627
9710 * config/rs6000/rs6000-p8swap.cc (union_defs): Assert def_insn can't
9711 be a debug insn.
9712 (union_uses): Skip debug use_insn.
9713
9714 2022-05-23 Vineet Gupta <vineetg@rivosinc.com>
9715
9716 * config/riscv/predicates.md (const_0_operand): Remove
9717 const_double.
9718 * config/riscv/riscv.cc (riscv_rtx_costs): Add check for
9719 CONST_DOUBLE.
9720 * config/riscv/riscv.h (TARGET_SUPPORTS_WIDE_INT): New define.
9721
9722 2022-05-23 Mayshao <mayshao-oc@zhaoxin.com>
9723
9724 * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Detect
9725 the specific type of Zhaoxin CPU, and return Zhaoxin CPU name.
9726 (cpu_indicator_init): Handle Zhaoxin processors.
9727 * common/config/i386/i386-common.cc: Add lujiazui.
9728 * common/config/i386/i386-cpuinfo.h (enum processor_vendor): Add
9729 VENDOR_ZHAOXIN.
9730 (enum processor_types): Add ZHAOXIN_FAM7H.
9731 (enum processor_subtypes): Add ZHAOXIN_FAM7H_LUJIAZUI.
9732 * config.gcc: Add lujiazui.
9733 * config/i386/cpuid.h (signature_SHANGHAI_ebx): Add
9734 Signatures for zhaoxin
9735 (signature_SHANGHAI_ecx): Ditto.
9736 (signature_SHANGHAI_edx): Ditto.
9737 * config/i386/driver-i386.cc (host_detect_local_cpu): Let
9738 -march=native recognize lujiazui processors.
9739 * config/i386/i386-c.cc (ix86_target_macros_internal): Add lujiazui.
9740 * config/i386/i386-options.cc (m_LUJIAZUI): New_definition.
9741 * config/i386/i386.h (enum processor_type): Ditto.
9742 * config/i386/i386.md: Add lujiazui.
9743 * config/i386/x86-tune-costs.h (struct processor_costs): Add
9744 lujiazui costs.
9745 * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add lujiazui.
9746 (ix86_adjust_cost): Ditto.
9747 * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Add lujiazui Tunnings.
9748 (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto.
9749 (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Ditto.
9750 (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Ditto.
9751 (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Ditto.
9752 (X86_TUNE_MOVX): Ditto.
9753 (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto.
9754 (X86_TUNE_FUSE_CMP_AND_BRANCH_32): Ditto.
9755 (X86_TUNE_FUSE_CMP_AND_BRANCH_64): Ditto.
9756 (X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS): Ditto.
9757 (X86_TUNE_FUSE_ALU_AND_BRANCH): Ditto.
9758 (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Ditto.
9759 (X86_TUNE_USE_LEAVE): Ditto.
9760 (X86_TUNE_PUSH_MEMORY): Ditto.
9761 (X86_TUNE_LCP_STALL): Ditto.
9762 (X86_TUNE_USE_INCDEC): Ditto.
9763 (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto.
9764 (X86_TUNE_OPT_AGU): Ditto.
9765 (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): Ditto.
9766 (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Ditto.
9767 (X86_TUNE_USE_SAHF): Ditto.
9768 (X86_TUNE_USE_BT): Ditto.
9769 (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Ditto.
9770 (X86_TUNE_ONE_IF_CONV_INSN): Ditto.
9771 (X86_TUNE_AVOID_MFENCE): Ditto.
9772 (X86_TUNE_EXPAND_ABS): Ditto.
9773 (X86_TUNE_USE_SIMODE_FIOP): Ditto.
9774 (X86_TUNE_USE_FFREEP): Ditto.
9775 (X86_TUNE_EXT_80387_CONSTANTS): Ditto.
9776 (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Ditto.
9777 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto.
9778 (X86_TUNE_SSE_TYPELESS_STORES): Ditto.
9779 (X86_TUNE_SSE_LOAD0_BY_PXOR): Ditto.
9780 * doc/extend.texi: Add details about lujiazui.
9781 * doc/invoke.texi: Add details about lujiazui.
9782 * config/i386/lujiazui.md: Introduce lujiazui cpu and include new md file.
9783
9784 2022-05-23 Martin Liska <mliska@suse.cz>
9785
9786 * config/tilepro/gen-mul-tables.cc (ARRAY_SIZE): Add new macro.
9787
9788 2022-05-23 Richard Biener <rguenther@suse.de>
9789
9790 * tree-ssa-forwprop.cc (forward_propagate_into_cond): Remove.
9791 (pass_forwprop::execute): Do not propagate into COND_EXPR conditions.
9792
9793 2022-05-23 Richard Biener <rguenther@suse.de>
9794
9795 * gimple-expr.cc (is_gimple_condexpr): Remove.
9796 * gimple-expr.h (is_gimple_condexpr): Likewise.
9797 * gimplify.cc (gimplify_expr): Remove is_gimple_condexpr usage.
9798 * tree-if-conv.cc (set_bb_predicate): Likewie.
9799 (add_to_predicate_list): Likewise.
9800 (gen_phi_arg_condition): Likewise.
9801 (predicate_scalar_phi): Likewise.
9802 (predicate_statements): Likewise.
9803
9804 2022-05-23 Richard Biener <rguenther@suse.de>
9805
9806 * gimple-expr.cc (is_gimple_condexpr): Equate to is_gimple_val.
9807 * gimplify.cc (gimplify_pure_cond_expr): Gimplify the condition
9808 as is_gimple_val.
9809 * gimple-fold.cc (valid_gimple_rhs_p): Simplify.
9810 * tree-cfg.cc (verify_gimple_assign_ternary): Likewise.
9811 * gimple-loop-interchange.cc (loop_cand::undo_simple_reduction):
9812 Build the condition of the COND_EXPR separately.
9813 * tree-ssa-loop-im.cc (move_computations_worker): Likewise.
9814 * tree-vect-generic.cc (expand_vector_condition): Likewise.
9815 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
9816 Likewise.
9817 * vr-values.cc (simplify_using_ranges::simplify): Likewise.
9818 * tree-vect-patterns.cc: Add comment indicating we are
9819 building invalid COND_EXPRs and why.
9820 * omp-expand.cc (expand_omp_simd): Gimplify the condition
9821 to the COND_EXPR separately.
9822 (expand_omp_atomic_cas): Note part that should be unreachable
9823 now.
9824 * tree-ssa-forwprop.cc (forward_propagate_into_cond): Adjust
9825 condition for valid replacements.
9826 * tree-if-conv.cc (predicate_bbs): Simulate previous
9827 re-folding of the condition in folded COND_EXPRs which
9828 is necessary because of unfolded GIMPLE_CONDs in the IL
9829 as in for example gcc.dg/fold-bopcond-1.c.
9830 * gimple-range-gori.cc (gori_compute::condexpr_adjust):
9831 Handle that the comparison is now in the def stmt of
9832 the select operand. Required by gcc.dg/pr104526.c.
9833
9834 2022-05-23 Tobias Burnus <tobias@codesourcery.com>
9835
9836 PR fortran/104949
9837 * langhooks-def.h (lhd_omp_array_size): New.
9838 (LANG_HOOKS_OMP_ARRAY_SIZE): Define.
9839 (LANG_HOOKS_DECLS): Add it.
9840 * langhooks.cc (lhd_omp_array_size): New.
9841 * langhooks.h (struct lang_hooks_for_decls): Add hook.
9842 * omp-low.cc (scan_sharing_clauses, lower_omp_target):
9843 Handle GOMP_MAP_FIRSTPRIVATE for array descriptors.
9844
9845 2022-05-23 Roger Sayle <roger@nextmovesoftware.com>
9846
9847 * config/i386/i386.cc (ix86_rtx_costs) <case AND>: Split from
9848 XOR/IOR case. Account for two instructions for double-word
9849 operations. In case of vector pandn, account for single
9850 instruction. Likewise for integer andn with TARGET_BMI.
9851 <case NOT>: Vector NOT requires more than 1 instruction (pxor).
9852 <case NEG>: Double-word negation requires 3 instructions.
9853
9854 2022-05-23 Tsukasa OI <research_trasio@irq.a4lg.com>
9855
9856 * common/config/riscv/riscv-common.cc (riscv_supported_std_ext):
9857 Fix "K" extension prefix to be placed before "J".
9858 * config/riscv/arch-canonicalize: Likewise.
9859
9860 2022-05-23 liuhongt <hongtao.liu@intel.com>
9861
9862 * config/i386/x86-tune-costs.h (skylake_cost): Increase gpr
9863 <-> mask cost from 5 to 6.
9864 (icelake_cost): Ditto.
9865
9866 2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com>
9867
9868 * config/aarch64/aarch64.md
9869 (and_<SHIFT:optab><mode>3_compare0): Support rotate left.
9870 (and_<SHIFT:optab>si3_compare0_uxtw): Likewise.
9871 (<LOGICAL:optab>_<SHIFT:optab><mode>3): Likewise.
9872 (<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): Likewise.
9873 (one_cmpl_<optab><mode>2): Likewise.
9874 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Likewise.
9875 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab>sidi_uxtw): New pattern.
9876 (eor_one_cmpl_<SHIFT:optab><mode>3_alt): Support rotate left.
9877 (eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
9878 (and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
9879 (and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
9880 (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse): Likewise.
9881 (and_<SHIFT:optab><mode>3nr_compare0): Likewise.
9882 (*<optab>si3_insn_uxtw): Use SHIFT_no_rotate.
9883 (rolsi3_insn_uxtw): New pattern.
9884 * config/aarch64/iterators.md (SHIFT): Add rotate left.
9885 (SHIFT_no_rotate): Add new iterator.
9886 (SHIFT:shift): Print rotate left as ror.
9887 (is_rotl): Add test for left rotate.
9888
9889 2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com>
9890
9891 * config.gcc (aarch64*-*-*): Simplify --with-cpu and --with-arch
9892 processing. Add support for architectural extensions.
9893 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Remove
9894 AARCH64_CPU_DEFAULT_FLAGS.
9895 (TARGET_CPU_NBITS): Remove.
9896 (TARGET_CPU_MASK): Remove.
9897 * config/aarch64/aarch64.cc (AARCH64_CPU_DEFAULT_FLAGS): Remove define.
9898 (get_tune_cpu): Assert CPU is always valid.
9899 (get_arch): Assert architecture is always valid.
9900 (aarch64_override_options): Cleanup CPU selection code and simplify logic.
9901 (aarch64_option_restore): Remove unnecessary checks on tune.
9902
9903 2022-05-20 David Malcolm <dmalcolm@redhat.com>
9904
9905 * config/aarch64/aarch64-sve-builtins-base.cc: Replace uses of
9906 "FINAL" and "OVERRIDE" with "final" and "override".
9907 * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
9908 * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
9909 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
9910 * diagnostic-path.h: Likewise.
9911 * digraph.cc: Likewise.
9912 * gcc-rich-location.h: Likewise.
9913 * gimple-array-bounds.cc: Likewise.
9914 * gimple-loop-versioning.cc: Likewise.
9915 * gimple-range-cache.cc: Likewise.
9916 * gimple-range-cache.h: Likewise.
9917 * gimple-range-fold.cc: Likewise.
9918 * gimple-range-fold.h: Likewise.
9919 * gimple-range-tests.cc: Likewise.
9920 * gimple-range.h: Likewise.
9921 * gimple-ssa-evrp.cc: Likewise.
9922 * input.cc: Likewise.
9923 * json.h: Likewise.
9924 * read-rtl-function.cc: Likewise.
9925 * tree-complex.cc: Likewise.
9926 * tree-diagnostic-path.cc: Likewise.
9927 * tree-ssa-ccp.cc: Likewise.
9928 * tree-ssa-copy.cc: Likewise.
9929 * tree-vrp.cc: Likewise.
9930 * value-query.h: Likewise.
9931 * vr-values.h: Likewise.
9932
9933 2022-05-20 Marcel Vollweiler <marcel@codesourcery.com>
9934
9935 * omp-low.cc (omp_runtime_api_call): Added target_memcpy_async and
9936 target_memcpy_rect_async to omp_runtime_apis array.
9937
9938 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
9939
9940 * doc/sourcebuild.texi (Decimal floating point attributes): Document
9941 dfp_bid effective-target.
9942
9943 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
9944
9945 * config/aarch64/aarch64.cc
9946 (aarch64_split_128bit_move): Handle DFP modes.
9947 (aarch64_mode_valid_for_sched_fusion_p): Likewise.
9948 (aarch64_classify_address): Likewise.
9949 (aarch64_legitimize_address_displacement): Likewise.
9950 (aarch64_reinterpret_float_as_int): Likewise.
9951 (aarch64_float_const_zero_rtx_p): Likewise.
9952 (aarch64_can_const_movi_rtx_p): Likewise.
9953 (aarch64_anchor_offset): Likewise.
9954 (aarch64_secondary_reload): Likewise.
9955 (aarch64_rtx_costs): Likewise.
9956 (aarch64_legitimate_constant_p): Likewise.
9957 (aarch64_gimplify_va_arg_expr): Likewise.
9958 (aapcs_vfp_sub_candidate): Likewise.
9959 (aarch64_vfp_is_call_or_return_candidate): Likewise.
9960 (aarch64_output_scalar_simd_mov_immediate): Likewise.
9961 (aarch64_gen_adjusted_ldpstp): Likewise.
9962 (aarch64_scalar_mode_supported_p): Accept DFP modes if enabled.
9963 * config/aarch64/aarch64.md
9964 (movsf_aarch64): Use SFD iterator and rename into
9965 mov<mode>_aarch64.
9966 (movdf_aarch64): Use DFD iterator and rename into
9967 mov<mode>_aarch64.
9968 (movtf_aarch64): Use TFD iterator and rename into
9969 mov<mode>_aarch64.
9970 (split pattern for move TF mode): Use TFD iterator.
9971 * config/aarch64/iterators.md
9972 (GPF_TF_F16_MOV): Add DFP modes.
9973 (SFD, DFD, TFD): New iterators.
9974 (GPF_TF): Add DFP modes.
9975 (TX, DX, DX2): Likewise.
9976
9977 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
9978
9979 * configure: Regenerate.
9980
9981 2022-05-19 Roger Sayle <roger@nextmovesoftware.com>
9982
9983 PR middle-end/98865
9984 * expr.cc (expand_expr_real_2) [MULT_EXPR]: Expand X*Y as X&Y
9985 when both X and Y are [0, 1], X*Y as X&-Y when Y is [0,1] and
9986 likewise X*Y as -X&Y when X is [0,1] using tree_nonzero_bits.
9987
9988 2022-05-19 Will Schmidt <will_schmidt@vnet.ibm.com>
9989
9990 * config/rs6000/rs6000-builtins.def: Rephrase
9991 to remove RS6000_BTC_SPECIAL from comment.
9992 * config/rs6000/rs6000.h (RS6000_BTC_UNARY, RS6000_BTC_BINARY,
9993 RS6000_BTC_TERNARY, RS6000_BTC_QUATERNARY,
9994 RS6000_BTC_QUINARY, RS6000_BTC_SENARY, RS6000_BTC_OPND_MASK,
9995 RS6000_BTC_SPECIAL, RS6000_BTC_PREDICATE, RS6000_BTC_ABS,
9996 RS6000_BTC_DST, RS6000_BTC_TYPE_MASK, RS6000_BTC_MISC,
9997 RS6000_BTC_CONST, RS6000_BTC_PURE, RS6000_BTC_FP,
9998 RS6000_BTC_QUAD, RS6000_BTC_PAIR, RS6000_BTC_QUADPAIR,
9999 RS6000_BTC_ATTR_MASK, RS6000_BTC_SPR, RS6000_BTC_VOID,
10000 RS6000_BTC_CR, RS6000_BTC_OVERLOADED, RS6000_BTC_GIMPLE,
10001 RS6000_BTC_MISC_MASK, RS6000_BTC_MEM, RS6000_BTC_SAT,
10002 RS6000_BTM_ALWAYS): Delete.
10003
10004 2022-05-19 Richard Biener <rguenther@suse.de>
10005
10006 * omp-expand.cc (expand_omp_atomic_cas): Do not short-cut
10007 computation of the new value.
10008
10009 2022-05-19 Richard Biener <rguenther@suse.de>
10010
10011 * tree-ssa-pre.cc (get_or_alloc_expression_id): Remove.
10012 (add_to_value): Use get_expression_id.
10013 (bitmap_insert_into_set): Likewise.
10014 (bitmap_value_insert_into_set): Likewise.
10015
10016 2022-05-19 David Malcolm <dmalcolm@redhat.com>
10017
10018 * doc/invoke.texi (-fanalyzer-checker=): Add
10019 -Wanalyzer-va-list-leak and -Wanalyzer-va-list-use-after-va-end to
10020 the list of analyzer warnings disabled by
10021 -fanalyzer-checker=taint.
10022
10023 2022-05-19 Jakub Jelinek <jakub@redhat.com>
10024
10025 PR debug/105630
10026 * cfgexpand.cc (expand_debug_expr): For VAR_DECL, punt for
10027 global vars without symtab node even when they have DECL_RTL
10028 set.
10029
10030 2022-05-19 Jakub Jelinek <jakub@redhat.com>
10031
10032 PR c/105635
10033 * pointer-query.cc (gimple_parm_array_size): Return NULL if var
10034 doesn't have pointer or reference type.
10035
10036 2022-05-18 Marek Polacek <polacek@redhat.com>
10037
10038 PR c/105131
10039 * doc/invoke.texi: Document -Wenum-int-mismatch.
10040
10041 2022-05-18 Uros Bizjak <ubizjak@gmail.com>
10042
10043 * config/i386/gnu-user-common.h (defined): Only define
10044 TARGET_CAN_SPLIT_STACK for glibc targets.
10045 * config/i386/gnu.h (defined): Ditto.
10046
10047 2022-05-18 Roger Sayle <roger@nextmovesoftware.com>
10048
10049 * config/i386/i386.cc (ix86_rtx_costs) [MULT]: When mode size
10050 is wider than word_mode, a multiplication costs three word_mode
10051 multiplications and two word_mode additions.
10052
10053 2022-05-18 Roger Sayle <roger@nextmovesoftware.com>
10054
10055 * config/i386/i386.md (define_split): Split *andsi_1
10056 and *andn_si_ccno after reload with -Oz.
10057
10058 2022-05-18 Frederik Harwath <frederik@codesourcery.com>
10059
10060 * graphite-scop-detection.cc (scop_detection::can_represent_loop):
10061 Output reason for failure to dump file.
10062 (scop_detection::harmful_loop_in_region): Likewise.
10063 (scop_detection::graphite_can_represent_expr): Likewise.
10064 (scop_detection::stmt_has_simple_data_refs_p): Likewise.
10065 (scop_detection::stmt_simple_for_scop_p): Likewise.
10066 (print_sese_loop_numbers): New function.
10067 (scop_detection::add_scop): Use from here.
10068
10069 2022-05-18 liuhongt <hongtao.liu@intel.com>
10070
10071 PR middle-end/103462
10072 * match.pd (bitwise_induction_p): New match.
10073 * tree-scalar-evolution.cc (gimple_bitwise_induction_p):
10074 Declare.
10075 (analyze_and_compute_bitwise_induction_effect): New function.
10076 (enum bit_op_kind): New enum.
10077 (final_value_replacement_loop): Enhanced to handle bitwise
10078 induction.
10079
10080 2022-05-18 Haochen Gui <guihaoc@gcc.gnu.org>
10081
10082 PR target/95737
10083 * config/rs6000/rs6000.md (*subfsi3_carry_in_xx_64): New.
10084
10085 2022-05-18 liuhongt <hongtao.liu@intel.com>
10086
10087 PR target/104375
10088 * config/i386/i386.md (*bmi2_bzhi_zero_extendsidi_4): New
10089 define_insn.
10090
10091 2022-05-18 liuhongt <hongtao.liu@intel.com>
10092
10093 PR target/104610
10094 * config/i386/i386-expand.cc (ix86_expand_branch): Use ptest
10095 for QImode when code is EQ or NE.
10096 * config/i386/i386.md (cbranchoi4): New expander.
10097
10098 2022-05-18 Peter Bergner <bergner@linux.ibm.com>
10099 Segher Boessenkool <segher@kernel.crashing.org>
10100
10101 PR target/105556
10102 * config/rs6000/mma.md (mma_<vv>, mma_<avv>, mma_<pv>, mma_<apv>,
10103 mma_<vvi4i4i8>, mma_<avvi4i4i8>, mma_<vvi4i4i2>, mma_<avvi4i4i2>,
10104 mma_<vvi4i4>, mma_<avvi4i4>, mma_<pvi4i2>, mma_<apvi4i2>,
10105 mma_<vvi4i4i4>, mma_<avvi4i4i4>): Replace "wa" constraints with "v,?wa".
10106 Update other operands accordingly.
10107
10108 2022-05-17 Marek Polacek <polacek@redhat.com>
10109
10110 * godump.cc (go_output_typedef): Use the DECL_INITIAL of the TREE_VALUE.
10111
10112 2022-05-17 Pat Haugen <pthaugen@linux.ibm.com>
10113
10114 PR target/99685
10115 * config/rs6000/rs6000-call.cc (rs6000_function_arg_advance_1): Bump
10116 register count when not splitting IEEE 128-bit Complex.
10117
10118 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
10119
10120 * omp-low.cc (check_omp_nesting_restrictions): Skip warning for
10121 target inside target if inner is reverse offload.
10122
10123 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
10124
10125 * config/gcn/mkoffload.cc (process_obj): Revert: Use ARRAY_SIZE.
10126 * config/nvptx/mkoffload.cc (process): Likewise.
10127
10128 2022-05-17 Andrew MacLeod <amacleod@redhat.com>
10129
10130 * Makefile.in (OBJS): Add gimple-range-side-effect.o.
10131 * gimple-range-cache.cc (non_null_ref::non_null_ref): Delete.
10132 (non_null_ref::~non_null_ref): Delete.
10133 (non_null_ref::set_nonnull): Delete.
10134 (non_null_ref::non_null_deref_p): Delete.
10135 (non_null_ref::process_name): Delete.
10136 (ranger_cache::ranger_cache): Initialize m_exit object.
10137 (ranger_cache::fill_block_cache): Use m_exit object intead of nonnull.
10138 (ranger_cache::range_from_dom): Use side_effect class and m_exit object.
10139 (ranger_cache::update_to_nonnull): Delete.
10140 (non_null_loadstore): Delete.
10141 (ranger_cache::block_apply_nonnull): Delete.
10142 (ranger_cache::apply_side_effects): New.
10143 * gimple-range-cache.h (class non_null_ref): Delete.
10144 (non_null_ref::adjust_range): Delete.
10145 (class ranger_cache): Adjust prototypes, add side effect manager.
10146 * gimple-range-path.cc (path_range_query::range_defined_in_block): Use
10147 side effect manager for queries.
10148 (path_range_query::adjust_for_non_null_uses): Ditto.
10149 * gimple-range-path.h (class path_range_query): Delete non_null_ref.
10150 * gimple-range-side-effect.cc: New.
10151 * gimple-range-side-effect.h: New.
10152 * gimple-range.cc (gimple_ranger::gimple_ranger): Update contructor.
10153 (gimple_ranger::range_of_expr): Check def block for override value.
10154 (gimple_ranger::range_on_entry): Don't scan dominators for non-null.
10155 (gimple_ranger::range_on_edge): Check for outgoing side-effects.
10156 (gimple_ranger::register_side_effects): Call apply_side_effects.
10157 (enable_ranger): Update contructor.
10158 * gimple-range.h (class gimple_ranger): Update prototype.
10159 (enable_ranger): Update prototype.
10160 * tree-vrp.cc (execute_ranger_vrp): Invoke without immediate-use flag.
10161
10162 2022-05-17 Giuliano Belinassi <gbelinassi@suse.de>
10163
10164 PR c++/105169
10165 * targhooks.cc (default_print_patchable_function_entry_1): Handle COMDAT case.
10166 * varasm.cc (switch_to_comdat_section): New
10167 (handle_vtv_comdat_section): Call switch_to_comdat_section.
10168 * varasm.h: Declare switch_to_comdat_section.
10169
10170 2022-05-17 Richard Biener <rguenther@suse.de>
10171
10172 * cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Do
10173 not clear bb->aux of the copied blocks.
10174
10175 2022-05-17 Andrew MacLeod <amacleod@redhat.com>
10176
10177 PR tree-optimization/105458
10178 * value-relation.cc (path_oracle::register_relation): Merge, then check
10179 for equivalence.
10180
10181 2022-05-17 Uroš Bizjak <ubizjak@gmail.com>
10182
10183 PR target/105624
10184 Revert:
10185 * config/i386/i386.md: Remove constraints when used with
10186 const_int_operand, const0_operand, const_1_operand, constm1_operand,
10187 const8_operand, const128_operand, const248_operand, const123_operand,
10188 const2367_operand, const1248_operand, const359_operand,
10189 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
10190 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
10191 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
10192 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
10193 const_0_to_255_mul_8_operand, const_1_to_31_operand,
10194 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
10195 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
10196 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
10197 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
10198 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
10199 const_24_to_27_operand and const_28_to_31_operand.
10200 * config/i386/mmx.md: Ditto.
10201 * config/i386/sse.md: Ditto.
10202 * config/i386/subst.md: Ditto.
10203 * config/i386/sync.md: Ditto.
10204
10205 2022-05-17 Thomas Schwinge <thomas@codesourcery.com>
10206
10207 * diagnostic.cc: Don't advise to call 'abort' instead of
10208 'internal_error'.
10209 * system.h: Advise to call 'internal_error' instead of 'abort' or
10210 'fancy_abort'.
10211
10212 2022-05-17 Frederik Harwath <frederik@codesourcery.com>
10213
10214 * graphite-sese-to-poly.cc (build_poly_sr_1): Fix a typo and
10215 a reference to a variable which does not exist.
10216 * graphite-isl-ast-to-gimple.cc (gsi_insert_earliest): Fix typo
10217 in comment.
10218
10219 2022-05-17 Frederik Harwath <frederik@codesourcery.com>
10220
10221 * graphite-sese-to-poly.cc (isl_id_for_ssa_name): Rename to ...
10222 (isl_id_for_parameter): ... this new function name.
10223 (build_scop_context): Adjust function use.
10224
10225 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
10226
10227 PR target/105602
10228 * config/gcn/t-omp-device (arch): Add 'amdgcn' besides existing 'gcn'.
10229 * config/gcn/gcn.cc (gcn_omp_device_kind_arch_isa): Likewise.
10230
10231 2022-05-17 Jakub Jelinek <jakub@redhat.com>
10232
10233 * tree-core.h (enum omp_clause_depend_kind): Add
10234 OMP_CLAUSE_DEPEND_INOUTSET.
10235 * tree-pretty-print.cc (dump_omp_clause): Handle
10236 OMP_CLAUSE_DEPEND_INOUTSET.
10237 * gimplify.cc (gimplify_omp_depend): Likewise.
10238 * omp-low.cc (lower_depend_clauses): Likewise.
10239
10240 2022-05-17 Jakub Jelinek <jakub@redhat.com>
10241
10242 PR target/105613
10243 * config/i386/sse.md (vec_cmpeqv2div2di, vec_cmpeqv1tiv1ti): Use
10244 andv4si3 only for EQ, for NE use iorv4si3 instead.
10245
10246 2022-05-17 Richard Biener <rguenther@suse.de>
10247
10248 PR tree-optimization/105618
10249 * tree-ssa-sink.cc (statement_sink_location): For virtual
10250 PHI uses ignore those defining the used virtual operand.
10251
10252 2022-05-17 Jakub Jelinek <jakub@redhat.com>
10253
10254 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Spelling fix:
10255 hanlde -> handle. Fix up comment formatting.
10256
10257 2022-05-17 liuhongt <hongtao.liu@intel.com>
10258
10259 PR target/105033
10260 * config/i386/sse.md (*vec_concatv4si): Extend to ..
10261 (*vec_concat<mode>): .. V16QI and V8HImode.
10262 (*vec_concatv16qi_permt2): New pre_reload define_insn_and_split.
10263 (*vec_concatv8hi_permt2): Ditto.
10264
10265 2022-05-17 liuhongt <hongtao.liu@intel.com>
10266
10267 PR tree-optimization/105591
10268 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Clamp
10269 vec_perm_expr index.
10270
10271 2022-05-16 Jason Merrill <jason@redhat.com>
10272
10273 PR c/105492
10274 * attribs.cc (decl_attributes): Fix broken typedefs here.
10275
10276 2022-05-16 David Malcolm <dmalcolm@redhat.com>
10277
10278 PR analyzer/105103
10279 * Makefile.in (ANALYZER_OBJS): Add analyzer/varargs.o.
10280 * doc/invoke.texi: Add -Wanalyzer-va-arg-type-mismatch,
10281 -Wanalyzer-va-list-exhausted, -Wanalyzer-va-list-leak, and
10282 -Wanalyzer-va-list-use-after-va-end.
10283
10284 2022-05-16 Richard Biener <rguenther@suse.de>
10285
10286 * gimple-match.h (gimple_build): Move code_helper overloads ...
10287 * gimple-fold.h (gimple_build): ... here.
10288 (gimple_build): Transition to new worker API. Provide
10289 overloads from sequence-based API.
10290 (gimple_convert): Likewise.
10291 (gimple_convert_to_ptrofftype): Likewise.
10292 (gimple_build_vector_from_val): Likewise.
10293 (gimple_build_vector): Likewise.
10294 (gimple_build_round_up): Likewise.
10295 * gimple-fold.cc (gimple_build_insert_seq): New helper.
10296 (gimple_build): Use it. Transition combined_fn and code_helper
10297 API parts.
10298 (gimple_convert): Transition to new worker API.
10299 (gimple_convert_to_ptrofftype): Likewise.
10300 (gimple_build_vector_from_val): Likewise.
10301 (gimple_build_vector): Likewise.
10302 (gimple_build_round_up): Likewise.
10303
10304 2022-05-16 Richard Biener <rguenther@suse.de>
10305
10306 * gimple-match.h (code_helper): Move class ...
10307 * tree.h (code_helper): ... here.
10308
10309 2022-05-16 Martin Liska <mliska@suse.cz>
10310
10311 * opts-global.cc (write_langs): Add comment.
10312
10313 2022-05-16 Eric Botcazou <ebotcazou@adacore.com>
10314
10315 * dwarf2out.cc (loc_list_from_tree_1) <TRUTH_NOT_EXPR>: Do a logical
10316 instead of a bitwise negation.
10317 <COND_EXPR>: Swap the operands if the condition is TRUTH_NOT_EXPR.
10318
10319 2022-05-16 Martin Liska <mliska@suse.cz>
10320
10321 * attribs.cc (diag_attr_exclusions): Use ARRAY_SIZE.
10322 (decls_mismatched_attributes): Likewise.
10323 * builtins.cc (c_strlen): Likewise.
10324 * cfg.cc (DEF_BASIC_BLOCK_FLAG): Likewise.
10325 * common/config/aarch64/aarch64-common.cc (aarch64_option_init_struct): Likewise.
10326 * config/aarch64/aarch64-builtins.cc (aarch64_lookup_simd_builtin_type): Likewise.
10327 (aarch64_init_simd_builtin_types): Likewise.
10328 (aarch64_init_builtin_rsqrt): Likewise.
10329 * config/aarch64/aarch64.cc (is_madd_op): Likewise.
10330 * config/arm/arm-builtins.cc (arm_lookup_simd_builtin_type): Likewise.
10331 (arm_init_simd_builtin_types): Likewise.
10332 * config/avr/gen-avr-mmcu-texi.cc (mcus[ARRAY_SIZE): Likewise.
10333 (c_prefix): Likewise.
10334 (main): Likewise.
10335 * config/c6x/c6x.cc (N_SAVE_ORDER): Likewise.
10336 * config/darwin-c.cc (darwin_register_frameworks): Likewise.
10337 * config/gcn/mkoffload.cc (process_obj): Likewise.
10338 * config/i386/i386-builtins.cc (get_builtin_code_for_version): Likewise.
10339 (fold_builtin_cpu): Likewise.
10340 * config/m32c/m32c.cc (PUSHM_N): Likewise.
10341 * config/nvptx/mkoffload.cc (process): Likewise.
10342 * config/rs6000/driver-rs6000.cc (host_detect_local_cpu): Likewise.
10343 * config/s390/s390.cc (NR_C_MODES): Likewise.
10344 * config/tilepro/gen-mul-tables.cc (find_sequences): Likewise.
10345 (create_insn_code_compression_table): Likewise.
10346 * config/vms/vms.cc (NBR_CRTL_NAMES): Likewise.
10347 * diagnostic-format-json.cc (json_from_expanded_location): Likewise.
10348 * dwarf2out.cc (ARRAY_SIZE): Likewise.
10349 * genhooks.cc (emit_documentation): Likewise.
10350 (emit_init_macros): Likewise.
10351 * gimple-ssa-sprintf.cc (format_floating): Likewise.
10352 * gimple-ssa-warn-access.cc (memmodel_name): Likewise.
10353 * godump.cc (keyword_hash_init): Likewise.
10354 * hash-table.cc (hash_table_higher_prime_index): Likewise.
10355 * input.cc (for_each_line_table_case): Likewise.
10356 * ipa-free-lang-data.cc (free_lang_data): Likewise.
10357 * ipa-inline.cc (sanitize_attrs_match_for_inline_p): Likewise.
10358 * optc-save-gen.awk: Likewise.
10359 * spellcheck.cc (test_metric_conditions): Likewise.
10360 * tree-vect-slp-patterns.cc (sizeof): Likewise.
10361 (ARRAY_SIZE): Likewise.
10362 * tree.cc (build_common_tree_nodes): Likewise.
10363
10364 2022-05-16 Martin Liska <mliska@suse.cz>
10365
10366 * opts-global.cc (write_langs): Allocate at least one byte.
10367
10368 2022-05-16 Richard Biener <rguenther@suse.de>
10369
10370 * match.pd (A cmp B ? A : B -> min/max): New patterns
10371 carried over from fold_cond_expr_with_comparison.
10372
10373 2022-05-16 liuhongt <hongtao.liu@intel.com>
10374
10375 PR target/105587
10376 * config/i386/i386-expand.cc
10377 (expand_vec_perm_pslldq_psrldq_por): Fail when (d->perm[i] ==
10378 d->perm[i-1] + 1) && d->perm[i] == nelt && start != -1.
10379
10380 2022-05-15 Uroš Bizjak <ubizjak@gmail.com>
10381
10382 * config/i386/i386.md: Remove constraints when used with
10383 const_int_operand, const0_operand, const_1_operand, constm1_operand,
10384 const8_operand, const128_operand, const248_operand, const123_operand,
10385 const2367_operand, const1248_operand, const359_operand,
10386 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
10387 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
10388 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
10389 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
10390 const_0_to_255_mul_8_operand, const_1_to_31_operand,
10391 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
10392 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
10393 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
10394 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
10395 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
10396 const_24_to_27_operand and const_28_to_31_operand.
10397 * config/i386/mmx.md: Ditto.
10398 * config/i386/sse.md: Ditto.
10399 * config/i386/subst.md: Ditto.
10400 * config/i386/sync.md: Ditto.
10401
10402 2022-05-13 Roger Sayle <roger@nextmovesoftware.com>
10403 Uroš Bizjak <ubizjak@gmail.com>
10404
10405 * config/i386/sse.md (vec_cmpeqv2div2di): Enable for TARGET_SSE2.
10406 For !TARGET_SSE4_1, expand as a V4SI vector comparison, followed
10407 by a pshufd and pand.
10408 (vec_cmpeqv1tiv1ti): New define_expand implementing V1TImode
10409 vector equality as a V2DImode vector comparison (see above),
10410 followed by a pshufd and pand.
10411
10412 2022-05-13 Roger Sayle <roger@nextmovesoftware.com>
10413
10414 PR tree-optimization/83907
10415 * tree-ssa-strlen.cc (handle_builtin_memset): Record a strinfo
10416 for memset with an constant char value.
10417 (handle_store): Improved handling of stores with a first byte
10418 of zero, but not storing_all_zeros_p.
10419
10420 2022-05-13 Philipp Tomsich <philipp.tomsich@vrull.eu>
10421 Manolis Tsamis <manolis.tsamis@vrull.eu>
10422
10423 * config/riscv/riscv.h (CLZ_DEFINED_VALUE_AT_ZERO): Implement.
10424 (CTZ_DEFINED_VALUE_AT_ZERO): Same.
10425 * doc/sourcebuild.texi: add documentation for RISC-V specific
10426 test target keywords
10427
10428 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
10429
10430 PR tree-optimization/105597
10431 * range-op.cc (operator_minus::lhs_op1_relation): Use op1 instead
10432 of the lhs and make sure it is not undefined.
10433
10434 2022-05-13 Sebastian Pop <spop@amazon.com>
10435
10436 PR target/105162
10437 * config/aarch64/aarch64-protos.h (atomic_ool_names): Increase dimension
10438 of str array.
10439 * config/aarch64/aarch64.cc (aarch64_atomic_ool_func): Call
10440 memmodel_from_int and handle MEMMODEL_SYNC_*.
10441 (DEF0): Add __aarch64_*_sync functions.
10442
10443 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
10444
10445 * gimple-range-fold.cc (fold_using_range::range_of_phi): Use new VREL_*
10446 enumerated values.
10447 * gimple-range-path.cc (maybe_register_phi_relation): Ditto.
10448 * range-op.cc (*::lhs_op1_relation): Return relation_kind, and use
10449 new VREL enumerated values.
10450 (*::lhs_op2_relation): Ditto.
10451 (*::op1_op2_relation): Ditto.
10452 (*::fold_range): Use new VREL enumerated values.
10453 (minus_op1_op2_relation_effect): Ditto.
10454 (range_relational_tests): Ditto.
10455 * range-op.h (fold_range, op1_range, op2_range): Use VREL_VARYING.
10456 (lhs_op1_relation, lhs_op2_relation, op1_op2_relation): Return
10457 relation_kind.
10458 (*_op1_op2_relation): Return relation_kind.
10459 (relop_early_resolve): Use VREL_UNDEFINED.
10460 * value-query.cc (range_query::query_relation): Use VREL_VARYING.
10461 * value-relation.cc (VREL_LAST): Change enumerated value.
10462 (vrel_range_assert): Delete.
10463 (print_relation): Remove range assert.
10464 (rr_negate_table): Adjust table to use new enumerated values..
10465 (relation_negate): Remove range assert.
10466 (rr_swap_table): Adjust.
10467 (relation_swap): Remove range assert.
10468 (rr_intersect_table): Adjust.
10469 (relation_intersect): Remove range assert.
10470 (rr_union_table): Adjust.
10471 (relation_union): Remove range assert.
10472 (rr_transitive_table): Adjust.
10473 (relation_transitive): Remove range assert.
10474 (equiv_oracle::query_relation): Use new VREL enumerated values.
10475 (equiv_oracle::register_relation): Ditto.
10476 (relation_oracle::register_stmt): Ditto.
10477 (dom_oracle::set_one_relation): Ditto.
10478 (dom_oracle::register_transitives): Ditto.
10479 (dom_oracle::query_relation): Ditto.
10480 (path_oracle::register_relation): Ditto.
10481 (path_oracle::query_relation): Ditto.
10482 * value-relation.h (enum relation_kind_t): New relation_kind.
10483 (*_op1_op2_relation): Adjust prototypes.
10484
10485 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
10486
10487 * gimple-range-edge.cc (calc_switch_ranges): Check union return value.
10488 * value-range.cc (irange::legacy_verbose_union_): Add return value.
10489 (irange::irange_single_pair_union): New.
10490 (irange::irange_union): Add return value.
10491 * value-range.h (class irange): Adjust prototypes.
10492
10493 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
10494
10495 * value-range.cc (irange::legacy_verbose_intersect): Add return value.
10496 (irange::irange_contains_p): New.
10497 (irange::irange_intersect): Add return value.
10498 * value-range.h (class irange): Adjust prototypes.
10499
10500 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
10501
10502 * gimple-range-cache.cc (ranger_cache::get_global_range): Return the
10503 had_global value instead.
10504
10505 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
10506
10507 PR tree-optimization/104547
10508 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Add
10509 the op1/op2 relation to the relation call.
10510 * range-op.cc (*::lhs_op1_relation): Add param.
10511 (*::lhs_op2_relation): Ditto.
10512 (operator_minus::lhs_op1_relation): New.
10513 (range_relational_tests): Add relation param.
10514 * range-op.h (lhs_op1_relation, lhs_op2_relation): Adjust prototype.
10515
10516 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
10517
10518 * gimple-range.cc (gimple_ranger::register_side_effects): First check
10519 if the DEF should be exported as a global.
10520 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Process PHI side effects,
10521 which will export globals.
10522 (execute_ranger_vrp): Remove call to export_global_ranges.
10523
10524 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
10525
10526 * value-relation.cc (path_oracle::reset_path): Clear killing_defs.
10527
10528 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
10529
10530 * gimple-range-cache.cc (ranger_cache::ranger_cache): Start with
10531 worlist truncated.
10532 (ranger_cache::entry_range): Add rfd_mode parameter.
10533 (ranger_cache::exit_range): Ditto.
10534 (ranger_cache::edge_range): New. Incorporate from range_on_edge.
10535 (ranger_cache::range_of_expr): Adjust call to entry_range.
10536 (ranger_cache::range_on_edge): Split to edge_range and call.
10537 (ranger_cache::fill_block_cache): Always invoke range_from_dom.
10538 (ranger_cache::range_from_dom): Make reentrant, add search mode, handle
10539 mutiple predecessors.
10540 (ranger_cache::update_to_nonnull): Adjust call to exit_range.
10541 * gimple-range-cache.h (ranger_cache): Add enum rfd_mode. Adjust
10542 prototypes.
10543
10544 2022-05-13 Alexandre Oliva <oliva@adacore.com>
10545
10546 * gimple-harden-conditionals.cc: Include sbitmap.h.
10547 (pass_harden_conditional_branches::execute): Skip new blocks.
10548 (pass_harden_compares::execute): Likewise.
10549
10550 2022-05-13 Richard Earnshaw <rearnsha@arm.com>
10551
10552 PR target/105463
10553 * config/arm/mve.md (*movmisalign<mode>_mve_store): Use
10554 mve_memory_operand.
10555 (*movmisalign<mode>_mve_load): Likewise.
10556 * config/arm/vec-common.md (movmisalign<mode>): Convert to generator
10557 form...
10558 (@movmisalign<mode>): ... thus. Use generic predicates and then
10559 rework operands if they are not valid. For MVE rework to a
10560 narrower element size if the alignment is not high enough.
10561
10562 2022-05-13 Richard Earnshaw <rearnsha@arm.com>
10563
10564 * config/arm/arm.cc (mve_vector_mem_operand): Allow SP_REGNUM
10565 when there is no write-back. Fix use when strict is true.
10566
10567 2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10568
10569 * config/xtensa/xtensa.h (TARGET_HAS_NO_HW_DIVIDE): New macro
10570 definition.
10571
10572 2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10573
10574 * config/xtensa/xtensa.md (extvsi, extvsi_internal, extzvsi,
10575 extzvsi_internal): Rename from extv, extv_internal, extzv and
10576 extzv_internal, respectively.
10577
10578 2022-05-13 Eric Botcazou <ebotcazou@adacore.com>
10579
10580 * tree-sra.cc (sra_modify_assign): Check that scalar storage order
10581 is the same on the LHS and RHS before rewriting one with the model
10582 of the other.
10583
10584 2022-05-13 Richard Biener <rguenther@suse.de>
10585
10586 * gimple-fold.cc (gimple_build): Adjust for new
10587 main API.
10588 * gimple-fold.h (gimple_build): New main APIs with
10589 iterator, insert direction and iterator update.
10590 (gimple_build): New forwarder template.
10591 (clear_padding_type_may_have_padding_p): Remove.
10592 (clear_type_padding_in_mask): Likewise.
10593 (arith_overflowed_p): Likewise.
10594 * fold-const.h (clear_padding_type_may_have_padding_p): Declare.
10595 (clear_type_padding_in_mask): Likewise.
10596 (arith_overflowed_p): Likewise.
10597 * tree-vect-generic.cc (gimplify_build3): Use main gimple_build API.
10598 (gimplify_build2): Likewise.
10599 (gimplify_build1): Likewise.
10600 * ubsan.cc (ubsan_expand_ptr_ifn): Likewise, avoid extra
10601 compare stmt.
10602 * gengtype.cc (open_base_files): Re-order includes.
10603 * builtins.cc: Re-order gimple-fold.h include.
10604 * calls.cc: Likewise.
10605 * cgraphbuild.cc: Likewise.
10606 * cgraphunit.cc: Likewise.
10607 * config/rs6000/rs6000-builtin.cc: Likewise.
10608 * config/rs6000/rs6000-call.cc: Likewise.
10609 * config/rs6000/rs6000.cc: Likewise.
10610 * config/s390/s390.cc: Likewise.
10611 * expr.cc: Likewise.
10612 * fold-const.cc: Likewise.
10613 * function-tests.cc: Likewise.
10614 * gimple-match-head.cc: Likewise.
10615 * gimple-range-fold.cc: Likewise.
10616 * gimple-ssa-evrp-analyze.cc: Likewise.
10617 * gimple-ssa-evrp.cc: Likewise.
10618 * gimple-ssa-sprintf.cc: Likewise.
10619 * gimple-ssa-warn-access.cc: Likewise.
10620 * gimplify.cc: Likewise.
10621 * graphite-isl-ast-to-gimple.cc: Likewise.
10622 * ipa-cp.cc: Likewise.
10623 * ipa-devirt.cc: Likewise.
10624 * ipa-prop.cc: Likewise.
10625 * omp-low.cc: Likewise.
10626 * pointer-query.cc: Likewise.
10627 * range-op.cc: Likewise.
10628 * tree-cfg.cc: Likewise.
10629 * tree-if-conv.cc: Likewise.
10630 * tree-inline.cc: Likewise.
10631 * tree-object-size.cc: Likewise.
10632 * tree-ssa-ccp.cc: Likewise.
10633 * tree-ssa-dom.cc: Likewise.
10634 * tree-ssa-forwprop.cc: Likewise.
10635 * tree-ssa-ifcombine.cc: Likewise.
10636 * tree-ssa-loop-ivcanon.cc: Likewise.
10637 * tree-ssa-math-opts.cc: Likewise.
10638 * tree-ssa-pre.cc: Likewise.
10639 * tree-ssa-propagate.cc: Likewise.
10640 * tree-ssa-reassoc.cc: Likewise.
10641 * tree-ssa-sccvn.cc: Likewise.
10642 * tree-ssa-strlen.cc: Likewise.
10643 * tree-ssa.cc: Likewise.
10644 * value-pointer-equiv.cc: Likewise.
10645 * vr-values.cc: Likewise.
10646
10647 2022-05-13 Alexandre Oliva <oliva@adacore.com>
10648
10649 PR rtl-optimization/105455
10650 * gimple-harden-conditionals.cc (insert_check_and_trap): Set
10651 probabilities for newly-conditional edges.
10652
10653 2022-05-13 liuhongt <hongtao.liu@intel.com>
10654
10655 PR tree-optimization/102583
10656 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Extended to a
10657 contiguous stride in the VEC_PERM_EXPR.
10658
10659 2022-05-12 Richard Biener <rguenther@suse.de>
10660
10661 PR rtl-optimization/105577
10662 * dse.cc (rest_of_handle_dse): Make sure to purge dead EH
10663 edges before running fast DCE via df_analyze.
10664
10665 2022-05-12 Richard Biener <rguenther@suse.de>
10666
10667 PR tree-optimization/105562
10668 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Disambiguate
10669 against all CLOBBER defs if there's not an obvious must-alias
10670 and we are not doing redundant store elimination.
10671 (vn_walk_cb_data::redundant_store_removal_p): New field.
10672 (vn_reference_lookup_pieces): Initialize it.
10673 (vn_reference_lookup): Add argument to specify if we are
10674 doing redundant store removal.
10675 (eliminate_dom_walker::eliminate_stmt): Specify we do.
10676 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust.
10677
10678 2022-05-12 Haochen Jiang <haochen.jiang@intel.com>
10679
10680 PR target/104371
10681 * config/i386/sse.md (vi1avx2const): New define_mode_attr.
10682 (pxor/pcmpeqb/pmovmskb/cmp 0xffff to ptest splitter):
10683 New define_split pattern.
10684
10685 2022-05-12 Jakub Jelinek <jakub@redhat.com>
10686
10687 * gimplify.cc (gimplify_omp_depend): Don't build_fold_addr_expr
10688 if null_pointer_node.
10689 (gimplify_scan_omp_clauses): Likewise.
10690 * tree-pretty-print.cc (dump_omp_clause): Print null_pointer_node
10691 as omp_all_memory.
10692
10693 2022-05-11 Patrick Palka <ppalka@redhat.com>
10694
10695 * tree.h (TREE_VEC_BEGIN): Define.
10696 (TREE_VEC_END): Correct 'length' member access.
10697 (class tree_vec_range): Define.
10698
10699 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
10700
10701 * config/rs6000/rs6000.md: Use wa instead of <Fv>.
10702
10703 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
10704
10705 * config/rs6000/rs6000.md: Use d instead of <Ff>.
10706
10707 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
10708
10709 * config/rs6000/constraints.md (register_constraint "f"): Use
10710 RS6000_CONSTRAINT_d.
10711 * config/rs6000/rs6000.cc (rs6000_debug_reg_global): Do not handle
10712 RS6000_CONSTRAINT_f.
10713 (rs6000_init_hard_regno_mode_ok): Ditto. Reorder and simplify a bit.
10714 * config/rs6000/rs6000.h (r6000_reg_class_enum): Delete
10715 RS6000_CONSTRAINT_d.
10716
10717 2022-05-11 Richard Biener <rguenther@suse.de>
10718
10719 * gimple-fold.h (gimple_build): Use variadic template
10720 functions for the gimple_build API forwarders without
10721 location_t argument.
10722
10723 2022-05-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
10724
10725 PR middle-end/70090
10726 * asan.cc (initialize_sanitizer_builtins): Register
10727 __builtin_dynamic_object_size if necessary.
10728
10729 2022-05-11 Richard Biener <rguenther@suse.de>
10730
10731 PR rtl-optimization/105559
10732 * cfgrtl.cc (delete_insn_and_edges): Only perform search to BB_END
10733 for non-debug insns.
10734
10735 2022-05-11 Richard Biener <rguenther@suse.de>
10736
10737 * generic-match-head.cc: Include tree-eh.h.
10738 * match.pd ((cond ...) cmp X): New simplification inspired
10739 by fold_binary_op_with_conditional_arg.
10740 (eq/ne (cmp ...) true/false): Likewise.
10741
10742 2022-05-11 Thomas Schwinge <thomas@codesourcery.com>
10743
10744 * doc/install.texi: Don't document '--with-hsa-runtime',
10745 '--with-hsa-runtime-include', '--with-hsa-runtime-lib'.
10746
10747 2022-05-11 Martin Liska <mliska@suse.cz>
10748
10749 PR other/105527
10750 * doc/install.texi: Document the configure option --with-zstd.
10751
10752 2022-05-11 Martin Liska <mliska@suse.cz>
10753
10754 * common/config/i386/cpuinfo.h (has_cpu_feature): Directly
10755 compute index in cpu_features2.
10756 (set_cpu_feature): Likewise.
10757 * config/i386/i386-builtins.cc (fold_builtin_cpu): Also remove
10758 loop for cpu_features2 and use NOP_EXPRs.
10759
10760 2022-05-11 Richard Biener <rguenther@suse.de>
10761
10762 PR bootstrap/105551
10763 * opts.cc (finish_options): Also disable var-tracking if
10764 !DWARF2_DEBUGGING_INFO.
10765
10766 2022-05-11 liuhongt <hongtao.liu@intel.com>
10767
10768 PR target/104915
10769 * config/i386/sse.md (*vec_set<mode>_0_zero_extendhi): New
10770 pre_reload define_insn_and_split.
10771 (*vec_setv2di_0_zero_extendhi_1): Ditto.
10772 (*vec_set<mode>_0_zero_extendsi): Ditto.
10773 (*vec_setv2di_0_zero_extendsi_1): Ditto.
10774 (ssewvecmode): New mode attr.
10775 (ssewvecmodelower): Ditto.
10776 (ssepackmodelower): Ditto.
10777
10778 2022-05-11 Kewen Lin <linkw@linux.ibm.com>
10779
10780 * config/rs6000/constraints.md (register constraint v): Use
10781 rs6000_constraints[RS6000_CONSTRAINT_v] instead of ALTIVEC_REGS.
10782
10783 2022-05-11 Martin Liska <mliska@suse.cz>
10784
10785 PR target/105355
10786 * config/riscv/riscv.opt: Remove Separate from
10787 -msmall-data-limit=.
10788 * optc-gen.awk: Report error for the described situation.
10789 * gcc.cc: Use Separate syntax.
10790 * opts.cc (gen_command_line_string): Change option name.
10791
10792 2022-05-11 Haochen Gui <guihaoc@gcc.gnu.org>
10793
10794 PR target/105414
10795 * match.pd (minmax): Skip constant folding for fmin/fmax when both
10796 arguments are sNaN or one is sNaN and another is NaN.
10797
10798 2022-05-10 Jakub Jelinek <jakub@redhat.com>
10799
10800 PR tree-optimization/105528
10801 * gimple-isel.cc (gimple_expand_vec_set_expr): After gsi_remove
10802 set *gsi to gsi_for_stmt (ass_stmt). Fix up function comment.
10803
10804 2022-05-10 Segher Boessenkool <segher@kernel.crashing.org>
10805
10806 * doc/md.texi (Defining Mode Iterators): Correct example replacement
10807 text.
10808
10809 2022-05-10 Maciej W. Rozycki <macro@embecosm.com>
10810
10811 * config/riscv/riscv.md (UNSPEC_FMIN, UNSPEC_FMAX): New
10812 constants.
10813 (fmin<mode>3, fmax<mode>3): New insns.
10814
10815 2022-05-10 Richard Biener <rguenther@suse.de>
10816
10817 * tree-if-conv.cc (fold_build_cond_expr): Use
10818 match-and-simplify to simplify the condition.
10819 (ifcvt_follow_ssa_use_edges): Remove.
10820 (predicate_scalar_phi): Use follow_all_ssa_edges.
10821
10822 2022-05-10 Thomas Schwinge <thomas@codesourcery.com>
10823
10824 PR middle-end/100400
10825 * omp-oacc-kernels-decompose.cc
10826 (visit_loops_in_gang_single_region) <GIMPLE_OMP_FOR>: Explicitly
10827 call 'internal_error'.
10828
10829 2022-05-10 Richard Biener <rguenther@suse.de>
10830
10831 PR middle-end/105537
10832 * toplev.cc (process_options): Move flag_var_tracking
10833 handling ...
10834 * opts.cc (finish_options): ... here.
10835
10836 2022-05-10 Martin Liska <mliska@suse.cz>
10837
10838 * basic-block.h (struct basic_block_d): Use void *
10839 instead PTR.
10840 * cfgloop.h: Likewise.
10841 * cgraph.h: Likewise.
10842 * gengtype-state.cc (state_ident_by_name): Likewise.
10843 (record_type): Likewise.
10844 (read_state_already_seen_type): Likewise.
10845 * gengtype.cc (dump_type): Likewise.
10846 (input_file_by_name): Likewise.
10847 (main): Likewise.
10848 * ggc-common.cc (ggc_cleared_alloc_ptr_array_two_args): Likewise.
10849 * ipa-utils.h (struct ipa_dfs_info): Likewise.
10850 * plugin.cc (htab_hash_plugin): Likewise.
10851
10852 2022-05-10 Richard Biener <rguenther@suse.de>
10853
10854 * flags.h (dwarf_debuginfo_p): Add opts argument, guard
10855 API with !GENERATOR_FILE.
10856 * opts.cc (global_options): Poison.
10857 (global_options_set): Likewise.
10858 (finish_options): Refer to options via opts.
10859
10860 2022-05-10 Uroš Bizjak <ubizjak@gmail.com>
10861 Roger Sayle <roger@nextmovesoftware.com>
10862
10863 * config/i386/i386.md (*testqi_1_maybe_si): Prefer shorter SImode
10864 alternative when optimizing for size and the immediate operand is
10865 const_0_to_127_operand.
10866 (*andqi_2_maybe_si): Likewise.
10867 * config/i386/predicates.md (const_0_to_127_operand): New predicate.
10868
10869 2022-05-10 Roger Sayle <roger@nextmovesoftware.com>
10870
10871 * tree-chrec.cc (chrec_apply): Attempt to fold the linear chrec
10872 "{a, +, a} (x-1)" as "a*x", as the number of loop iterations, x-1,
10873 can't be negative.
10874
10875 2022-05-10 Eric Botcazou <ebotcazou@adacore.com>
10876
10877 PR target/105292
10878 * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Return
10879 true only for 8-byte vector modes.
10880
10881 2022-05-10 Siddhesh Poyarekar <siddhesh@gotplt.org>
10882
10883 PR middle-end/70090
10884 * ubsan.cc (ubsan_expand_objsize_ifn): Allow non-constant SIZE.
10885 (instrument_object_size): Get dynamic object size expression.
10886
10887 2022-05-10 Jiufu Guo <guojiufu@linux.ibm.com>
10888
10889 PR preprocessor/101168
10890 * config/rs6000/rs6000-c.cc (rs6000_macro_to_expand):
10891 Avoid empty identifier.
10892
10893 2022-05-09 Qing Zhao <qing.zhao@oracle.com>
10894
10895 PR target/101891
10896 * config/i386/i386.cc (zero_call_used_regno_mode): use V2SImode
10897 as a generic MMX mode instead of V4HImode.
10898 (zero_all_mm_registers): Use SET to zero instead of MOV for
10899 zeroing scratch registers.
10900 (ix86_zero_call_used_regs): Likewise.
10901
10902 2022-05-09 liuhongt <hongtao.liu@intel.com>
10903
10904 PR target/105354
10905 * config/i386/i386-expand.cc
10906 (expand_vec_perm_pslldq_psrldq_por): New function.
10907 (ix86_expand_vec_perm_const_1): Try
10908 expand_vec_perm_pslldq_psrldq_por for both 3-instruction and
10909 4/5-instruction sequence.
10910
10911 2022-05-09 Martin Liška <mliska@suse.cz>
10912
10913 * basic-block.h (STATIC_ASSERT): Use normal STATIC_ASSERT.
10914 * system.h (STATIC_ASSERT): Define as static_assert for C++
10915 and fallback to array index in C.
10916
10917 2022-05-09 Richard Biener <rguenther@suse.de>
10918
10919 PR tree-optimization/105517
10920 * tree-ssa-sccvn.cc (vn_reference_lookup): Make sure the accumulated
10921 offset can be represented in the POINTER_PLUS_EXPR IL.
10922 (vn_reference_insert): Likewise.
10923 * poly-int.h (sext_hwi): Add poly version of sext_hwi.
10924
10925 2022-05-09 Richard Biener <rguenther@suse.de>
10926
10927 * match.pd: Remove #if GIMPLE guards around ! using patterns.
10928
10929 2022-05-09 liuhongt <hongtao.liu@intel.com>
10930
10931 PR target/105072
10932 * config/i386/sse.md (*sse4_1_<code>v2qiv2di2<mask_name>_1):
10933 New define_insn.
10934 (*sse4_1_zero_extendv2qiv2di2_2): New pre_reload
10935 define_insn_and_split.
10936
10937 2022-05-09 Alex Coplan <alex.coplan@arm.com>
10938
10939 * cgraph.cc (cgraph_node::get_create): Don't dump if the current
10940 symtab state is PARSING.
10941
10942 2022-05-09 Martin Liska <mliska@suse.cz>
10943
10944 * system.h (LIKELY): Define.
10945 (UNLIKELY): Likewise.
10946 * domwalk.cc (sort_bbs_postorder): Use {,UN}LIKELY
10947 macros.
10948 * dse.cc (set_position_unneeded): Likewise.
10949 (set_all_positions_unneeded): Likewise.
10950 (any_positions_needed_p): Likewise.
10951 (all_positions_needed_p): Likewise.
10952 * expmed.cc (flip_storage_order): Likewise.
10953 * genmatch.cc (dt_simplify::gen_1): Likewise.
10954 * ggc-common.cc (gt_pch_save): Likewise.
10955 * print-rtl.cc: Likewise.
10956 * rtl-iter.h (T>::array_type::~array_type): Likewise.
10957 (T>::next): Likewise.
10958 * rtl-ssa/internals.inl: Likewise.
10959 * rtl-ssa/member-fns.inl: Likewise.
10960 * rtlanal.cc (T>::add_subrtxes_to_queue): Likewise.
10961 (rtx_properties::try_to_add_dest): Likewise.
10962 * rtlanal.h (growing_rtx_properties::repeat): Likewise.
10963 (vec_rtx_properties_base::~vec_rtx_properties_base): Likewise.
10964 * simplify-rtx.cc (simplify_replace_fn_rtx): Likewise.
10965 * sort.cc (likely): Likewise.
10966 (mergesort): Likewise.
10967 * wide-int.h (wi::eq_p): Likewise.
10968 (wi::ltu_p): Likewise.
10969 (wi::cmpu): Likewise.
10970 (wi::bit_and): Likewise.
10971 (wi::bit_and_not): Likewise.
10972 (wi::bit_or): Likewise.
10973 (wi::bit_or_not): Likewise.
10974 (wi::bit_xor): Likewise.
10975 (wi::add): Likewise.
10976 (wi::sub): Likewise.
10977
10978 2022-05-09 Kito Cheng <kito.cheng@sifive.com>
10979
10980 * config/riscv/arch-canonicalize: Handle g correctly.
10981
10982 2022-05-07 Marek Polacek <polacek@redhat.com>
10983
10984 PR c++/101833
10985 PR c++/47634
10986 * tree-core.h (struct attribute_spec): Update comment for HANDLER.
10987
10988 2022-05-06 Jason Merrill <jason@redhat.com>
10989
10990 * diagnostic-color.cc: Add fnname and targs color entries.
10991 * doc/invoke.texi: Document them.
10992
10993 2022-05-06 Jason Merrill <jason@redhat.com>
10994
10995 * vec.h (vec::iterate): Fix comment.
10996
10997 2022-05-06 Michael Meissner <meissner@linux.ibm.com>
10998
10999 PR target/102059
11000 * config/rs6000/rs6000.cc (rs6000_can_inline_p): Ignore -mpower8-fusion
11001 and -mpower10-fusion options for inlining purposes.
11002
11003 2022-05-06 Christophe Lyon <christophe.lyon@arm.com>
11004
11005 * config/aarch64/iterators.md (GPF_TF_F16): Delete.
11006
11007 2022-05-06 Marcel Vollweiler <marcel@codesourcery.com>
11008
11009 * omp-low.cc (omp_runtime_api_call): Added target_is_accessible to
11010 omp_runtime_apis array.
11011
11012 2022-05-06 Hafiz Abid Qadeer <abidh@codesourcery.com>
11013
11014 * omp-low.cc (omp_maybe_offloaded_ctx): New prototype.
11015 (scan_sharing_clauses): Check a restriction on allocate clause.
11016
11017 2022-05-05 Sandra Loosemore <sandra@codesourcery.com>
11018
11019 * gimplify.cc (gimplify_omp_for): Update messages for SCHEDULED
11020 and ORDERED clause conflict errors. Add check for GRAINSIZE and
11021 NUM_TASKS on TASKLOOP.
11022
11023 2022-05-05 Martin Liska <mliska@suse.cz>
11024
11025 * genautomata.cc (create_composed_state): Remove dead code.
11026 * graphite-poly.cc (print_pdrs): Likewise.
11027 * lto-wrapper.cc (run_gcc): Likewise.
11028 * tree-switch-conversion.cc (switch_decision_tree::balance_case_nodes):
11029 Likewise.
11030
11031 2022-05-05 Martin Liska <mliska@suse.cz>
11032
11033 * tree-profile.cc (gimple_gen_ic_profiler): Prefix names with
11034 PROF_*.
11035 (gimple_gen_time_profiler): Likewise.
11036
11037 2022-05-05 Martin Liska <mliska@suse.cz>
11038
11039 * value-prof.cc (stream_out_histogram_value): Remove sanity
11040 checking.
11041
11042 2022-05-05 Richard Biener <rguenther@suse.de>
11043
11044 PR tree-optimization/104162
11045 * tree-ssa-sccvn.cc (vn_reference_lookup): Handle
11046 &MEM[_1 + 5].a[i] like a POINTER_PLUS_EXPR if the offset
11047 becomes invariant.
11048 (vn_reference_insert): Likewise.
11049
11050 2022-05-05 Richard Biener <rguenther@suse.de>
11051
11052 * tree-core.h (tree_real_cst::real_cst_ptr): Remove pointer
11053 to real_value field.
11054 (tree_real_cst::value): Add real_value field.
11055 * tree.h (TREE_REAL_CST_PTR): Adjust.
11056 * tree.cc (build_real): Remove separate allocation.
11057 * tree-streamer-in.cc (unpack_ts_real_cst_value_fields):
11058 Likewise.
11059
11060 2022-05-05 Richard Biener <rguenther@suse.de>
11061
11062 * tree-ssa-ifcombine.cc (bb_no_side_effects_p): Avoid executing
11063 divisions with undefined overflow unconditionally.
11064 (pass_tree_ifcombine::execute): Rewrite stmts with undefined
11065 overflow to defined.
11066
11067 2022-05-05 Richard Biener <rguenther@suse.de>
11068
11069 PR tree-optimization/105484
11070 * gimple-isel.cc (gimple_expand_vec_set_expr): Clean EH, return
11071 whether the CFG changed.
11072 (gimple_expand_vec_exprs): When the CFG changed, clean it up.
11073
11074 2022-05-05 Richard Biener <rguenther@suse.de>
11075
11076 PR tree-optimization/104595
11077 * tree-vect-patterns.cc (vect_recog_bool_pattern): For
11078 COND_EXPR do not fail if check_bool_pattern returns false.
11079
11080 2022-05-04 Tobias Burnus <tobias@codesourcery.com>
11081
11082 * omp-low.cc (lower_omp_target): Fix use_device_{addr,ptr} with list
11083 item that is in an outer data-sharing clause.
11084
11085 2022-05-04 Richard Biener <rguenther@suse.de>
11086
11087 PR tree-optimization/104658
11088 * tree-vect-slp.cc (vect_slp_convert_to_external): Do not
11089 create VECTOR_BOOLEAN_TYPE_P extern defs. Reset the vector
11090 type on nodes we promote.
11091 (vectorizable_bb_reduc_epilogue): Deal with externalized
11092 root.
11093 * tree-vect-stmts.cc (vect_maybe_update_slp_op_vectype): Do
11094 not allow VECTOR_BOOLEAN_TYPE_P extern defs.
11095
11096 2022-05-04 Richard Biener <rguenther@suse.de>
11097
11098 PR tree-optimization/103116
11099 * tree-vect-stmts.cc (get_group_load_store_type): Handle the
11100 case we need peeling for gaps even though GROUP_GAP is zero.
11101
11102 2022-05-04 Martin Liska <mliska@suse.cz>
11103
11104 * gengtype-state.cc (read_a_state_token): Remove dead code.
11105 * ipa-profile.cc (ipa_profile_read_summary_section): Likewise.
11106
11107 2022-05-04 Richard Biener <rguenther@suse.de>
11108
11109 * gimplify.cc (gimplify_init_constructor): First gimplify,
11110 then simplify the result to a VECTOR_CST.
11111
11112 2022-05-04 Jakub Jelinek <jakub@redhat.com>
11113
11114 * genconditions.cc (write_conditions): Append a { nullptr, -1 }
11115 element at the end of insn_conditions.
11116 (write_writer): Use ARRAY_SIZE (insn_conditions) - 1 instead of
11117 ARRAY_SIZE (insn_conditions).
11118
11119 2022-05-04 Christophe Lyon <christophe.lyon@arm.com>
11120
11121 PR target/104662
11122 * config/arm/arm.cc (simd_valid_immediate): Exit when input is a
11123 vector of booleans and MVE is not enabled.
11124
11125 2022-05-04 Richard Biener <rguenther@suse.de>
11126
11127 PR debug/105158
11128 * tree-cfgcleanup.cc (move_debug_stmts_from_forwarder):
11129 Move debug stmts to the predecessor if moving to the
11130 destination is not possible.
11131 (remove_forwarder_block): Adjust.
11132 (remove_forwarder_block_with_phi): Likewise.
11133
11134 2022-05-03 Roger Sayle <roger@nextmovesoftware.com>
11135
11136 PR tree-optimization/102950
11137 * range-op.cc (wi_optimize_signed_bitwise_op): New function to
11138 determine bounds of bitwise operations on signed types.
11139 (operator_bitwise_and::wi_fold): Call the above function.
11140 (operator_bitwise_or::wi_fold): Likewise.
11141 (operator_bitwise_xor::wi_fold): Likewise. Additionally, the
11142 result can't be zero if the operands can't be equal.
11143
11144 2022-05-03 Iain Sandoe <iain@sandoe.co.uk>
11145
11146 * config/darwin.cc (darwin_label_is_anonymous_local_objc_name): Make
11147 protocol class methods linker-visible.
11148
11149 2022-05-03 Uroš Bizjak <ubizjak@gmail.com>
11150
11151 PR target/105079
11152 * config/i386/sse.md (*vec_extract<mode>_0_mem): New pre-reload
11153 define_insn_and_split pattern.
11154
11155 2022-05-03 Richard Biener <rguenther@suse.de>
11156
11157 PR middle-end/105083
11158 * tree-scalar-evolution.cc (scev_initialize): Verify we
11159 have appropriate loop state.
11160 * tree-ssa-dce.cc (perform_tree_ssa_dce): Re-order SCEV and
11161 loop init and finalization.
11162
11163 2022-05-03 Richard Biener <rguenther@suse.de>
11164
11165 PR middle-end/105461
11166 * opts.cc (finish_options): Match the condition to
11167 disable flag_var_tracking to that of process_options.
11168
11169 2022-05-03 Richard Biener <rguenther@suse.de>
11170
11171 * opts.cc: #undef OPTIONS_SET_P.
11172 (finish_options): Use opts_set instead of OPTIONS_SET_P.
11173
11174 2022-05-03 Richard Biener <rguenther@suse.de>
11175
11176 PR tree-optimization/105394
11177 * tree-vect-generic.cc (expand_vector_condition): Adjust
11178 comp_width for non-integer mode masks as well.
11179
11180 2022-05-03 Marcel Vollweiler <marcel@codesourcery.com>
11181
11182 * omp-low.cc (omp_runtime_api_call): Added get_mapped_ptr to
11183 omp_runtime_apis array.
11184
11185 2022-05-02 Richard Biener <rguenther@suse.de>
11186
11187 * tree-scalar-evolution.cc (expression_expensive_p):
11188 Never consider mismatched calls as cheap.
11189
11190 2022-05-02 Richard Biener <rguenther@suse.de>
11191
11192 PR tree-optimization/104240
11193 * tree-vect-slp.cc (op1_op0_map): New.
11194 (vect_get_operand_map): Handle compares.
11195 (vect_build_slp_tree_1): Support swapped operands for
11196 tcc_comparison.
11197
11198 2022-05-02 Jakub Jelinek <jakub@redhat.com>
11199
11200 PR debug/105415
11201 * cfgexpand.cc (expand_debug_expr): Don't make_decl_rtl_for_debug
11202 if there is no symtab node for the VAR_DECL.
11203
11204 2022-05-02 Sebastian Huber <sebastian.huber@embedded-brains.de>
11205
11206 * gcov-io.cc (gcov_rewrite): Clear the file error status.
11207
11208 2022-05-02 Richard Biener <rguenther@suse.de>
11209
11210 PR tree-optimization/105437
11211 * tree-vect-slp.cc (vect_schedule_slp_node): Handle the
11212 case where last_stmt alters control flow.
11213
11214 2022-05-02 Richard Biener <rguenther@suse.de>
11215
11216 * dojump.cc (do_jump): Use CASE_CONVERT.
11217 * tree-ssa-dom.cc (edge_info::derive_equivalences): Likewise.
11218
11219 2022-05-02 Jakub Jelinek <jakub@redhat.com>
11220
11221 * system.h: Include initializer_list.
11222
11223 2022-05-01 Segher Boessenkool <segher@kernel.crashing.org>
11224
11225 * config/rs6000/constraints.md (Y constraint): Fix comment.
11226
11227 2022-05-01 Aldy Hernandez <aldyh@redhat.com>
11228
11229 * tree-ssanames.cc (set_range_info): Denormalize VR_VARYING to
11230 VR_RANGE before passing a piecewise range to set_range_info_raw.
11231
11232 2022-04-30 Patrick Palka <ppalka@redhat.com>
11233
11234 * gengtype.cc (adjust_field_tree_exp): Remove.
11235 (adjust_field_type): Don't handle the "tree_exp" special attribute.
11236 * tree-core.h (struct tree_exp): Remove "special" and "desc"
11237 attributes. Add "length" attribute.
11238
11239 2022-04-29 Martin Jambor <mjambor@suse.cz>
11240
11241 PR ipa/100413
11242 * cgraph.cc (cgraph_node::remove): Release body of the node this
11243 is clone_of if appropriate.
11244
11245 2022-04-29 Uroš Bizjak <ubizjak@gmail.com>
11246
11247 PR target/51954
11248 * config/i386/i386.md (adcl/neg -> sbb peephole): New peephole2.
11249
11250 2022-04-29 Richard Biener <rguenther@suse.de>
11251
11252 * gimple-expr.cc (is_gimple_condexpr): Adjust comment.
11253 (canonicalize_cond_expr_cond): Move here from gimple.cc,
11254 allow both COND_EXPR and GIMPLE_COND forms.
11255 * gimple-expr.h (canonicalize_cond_expr_cond): Declare.
11256 * gimple.cc (canonicalize_cond_expr_cond): Remove here.
11257 * gimple.h (canonicalize_cond_expr_cond): Likewise.
11258 * gimple-loop-versioning.cc (loop_versioning::version_loop):
11259 Use is_gimple_condexpr_for_cond.
11260 * tree-parloops.cc (gen_parallel_loop): Likewise.
11261 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Check for
11262 a proper cond expr after canonicalize_cond_expr_cond.
11263 Use is_gimple_condexpr_for_cond where appropriate.
11264 * tree-ssa-loop-manip.cc (determine_exit_conditions): Likewise.
11265 * tree-vect-loop-manip.cc (slpeel_add_loop_guard): Likewise.
11266
11267 2022-04-29 Richard Biener <rguenther@suse.de>
11268
11269 * gimple-iterator.h (gsi_after_labels): Add overload for
11270 gimple_seq.
11271 (gsi_start_1): Rename to gsi_start and take a reference.
11272 (gsi_last_1): Likewise.
11273 * gimple-iterator.cc (gsi_for_stmt): Use gsi_start.
11274 * omp-low.cc (lower_rec_input_clauses): Likewise.
11275 (lower_omp_scan): Likewise.
11276
11277 2022-04-29 Richard Biener <rguenther@suse.de>
11278
11279 PR tree-optimization/105431
11280 * tree-ssa-math-opts.cc (powi_as_mults_1): Make n unsigned.
11281 (powi_as_mults): Use absu_hwi.
11282 (gimple_expand_builtin_powi): Remove now pointless n != -n
11283 check.
11284
11285 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
11286
11287 * range-op.cc (empty_range_varying): Move to range-op.h.
11288 (range_true): Move to range.h.
11289 (range_false): Same.
11290 (range_true_and_false): Same.
11291 (enum bool_range_state): Move to range-op.h.
11292 (relop_early_resolve): Same.
11293 (operator_equal::op1_op2_relation): Abstract code to...
11294 (equal_op1_op2_relation): ...here.
11295 (operator_not_equal::op1_op2_relation): Abstract code to...
11296 (not_equal_op1_op2_relation): ...here.
11297 (operator_lt::op1_op2_relation): Abstract code to...
11298 (lt_op1_op2_relation): ...here.
11299 (operator_le::op1_op2_relation): Abstract code to...
11300 (le_op1_op2_relation): ...here.
11301 (operator_gt::op1_op2_relation): Abstract code to...
11302 (gt_op1_op2_relation): ...here.
11303 (operator_ge::op1_op2_relation): Abstract code to...
11304 (ge_op1_op2_relation): ...here.
11305 (class range_op_table): Move to range-op.h.
11306 * range-op.h (equal_op1_op2_relation): Moved from range-op.cc.
11307 (not_equal_op1_op2_relation): Same.
11308 (lt_op1_op2_relation): Same.
11309 (le_op1_op2_relation): Same.
11310 (gt_op1_op2_relation): Same.
11311 (ge_op1_op2_relation): Same.
11312 (enum bool_range_state): Same.
11313 (get_bool_state): Same.
11314 (empty_range_varying): Same.
11315 (relop_early_resolve): Same.
11316 (class range_op_table): Same.
11317 * range.h (range_true): Same.
11318 (range_false): Same.
11319 (range_true_and_false): Same.
11320
11321 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
11322
11323 * gimple-fold.cc (size_must_be_zero_p): Use reference
11324 instead of pointer
11325 * gimple-ssa-evrp-analyze.cc
11326 (evrp_range_analyzer::record_ranges_from_incoming_edge): Rename
11327 intersect to legacy_verbose_intersect.
11328 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use reference instead
11329 of pointer.
11330 * tree-ssa-dom.cc (dom_jt_simplifier::simplify): Use value_range
11331 instead of value_range_equiv.
11332 * tree-vrp.cc (extract_range_from_plus_minus_expr): Use reference
11333 instead of pointer.
11334 (find_case_label_range): Same.
11335 * value-range-equiv.cc (value_range_equiv::intersect): Rename to...
11336 (value_range_equiv::legacy_verbose_intersect): ...this.
11337 (value_range_equiv::union_): Rename to...
11338 (value_range_equiv::legacy_verbose_union_): ...this.
11339 * value-range-equiv.h (class value_range_equiv): Rename union and
11340 intersect to legacy_verbose_{intersect,union}.
11341 * value-range.cc (irange::union_): Rename to...
11342 (irange::legacy_verbose_union_): ...this.
11343 (irange::intersect): Rename to...
11344 (irange::legacy_verbose_intersect): ...this.
11345 * value-range.h (irange::union_): Rename union_ to
11346 legacy_verbose_union.
11347 (irange::intersect): Rename intersect to legacy_verbose_intersect.
11348 * vr-values.cc (vr_values::update_value_range): Same.
11349 (vr_values::extract_range_for_var_from_comparison_expr): Same.
11350 (vr_values::extract_range_from_cond_expr): Rename union_ to
11351 legacy_verbose_union.
11352 (vr_values::extract_range_from_phi_node): Same.
11353
11354 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
11355
11356 * gimple-ssa-evrp-analyze.cc
11357 (evrp_range_analyzer::set_ssa_range_info): Use *range_info methods
11358 that take a range.
11359 * gimple-ssa-sprintf.cc (try_substitute_return_value): Same.
11360 * ipa-prop.cc (ipcp_update_vr): Same.
11361 * tree-inline.cc (remap_ssa_name): Same.
11362 * tree-ssa-copy.cc (fini_copy_prop): Same.
11363 * tree-ssa-math-opts.cc (optimize_spaceship): Same.
11364 * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Same.
11365 * tree-ssa-pre.cc (insert_into_preds_of_block): Same.
11366 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Same.
11367 * tree-ssa-strlen.cc (set_strlen_range): Same.
11368 (strlen_pass::handle_builtin_string_cmp): Same.
11369 * tree-ssanames.cc (set_range_info): Make static.
11370 (duplicate_ssa_name_range_info): Make static and add a new variant
11371 calling the static.
11372 * tree-ssanames.h (set_range_info): Remove version taking wide ints.
11373 (duplicate_ssa_name_range_info): Remove version taking a
11374 range_info_def and replace with a version taking SSA names.
11375 * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Use *range_info methods
11376 that take a range.
11377 (vect_do_peeling): Same.
11378 * tree-vrp.cc (vrp_asserts::remove_range_assertions): Same.
11379 * vr-values.cc (simplify_truth_ops_using_ranges): Same.
11380
11381 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
11382
11383 * value-range.h (irange::irange): Use set_undefined.
11384
11385 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
11386
11387 * gimple-range-cache.h (non_null_ref::adjust_range): Do not use
11388 irange::intersect (wide_int, wide_int).
11389 * gimple-range-fold.cc (adjust_pointer_diff_expr): Same.
11390 (adjust_imagpart_expr): Same.
11391 * value-range.h (irange::intersect (wide_int, wide_int)): Make
11392 private.
11393
11394 2022-04-29 Richard Biener <rguenther@suse.de>
11395
11396 PR tree-optimization/104322
11397 * tree-vect-loop.cc (vectorizable_reduction): Remove dead code.
11398
11399 2022-04-29 Richard Biener <rguenther@suse.de>
11400
11401 PR middle-end/105376
11402 * tree.cc (build_real): Special case dconst* arguments
11403 for decimal floating point types.
11404
11405 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
11406
11407 * doc/gcov.texi (Profiling and Test Coverage in Freestanding
11408 Environments): New section.
11409
11410 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
11411
11412 * doc/gcov-tool.texi: Document merge-stream subcommand.
11413 * doc/invoke.texi (fprofile-info-section): Mention merge-stream
11414 subcommand of gcov-tool.
11415 * gcov-tool.cc (gcov_profile_merge_stream): Declare.
11416 (print_merge_stream_usage_message): New.
11417 (merge_stream_usage): Likewise.
11418 (do_merge_stream): Likewise.
11419 (print_usage): Call print_merge_stream_usage_message().
11420 (main): Call do_merge_stream() to execute merge-stream subcommand.
11421
11422 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
11423
11424 * gcov-io.cc (gcov_file_error): New enum.
11425 (gcov_var): Use gcov_file_error enum for the error member.
11426 (gcov_open): Use GCOV_FILE_NO_ERROR.
11427 (gcov_close): Use GCOV_FILE_WRITE_ERROR.
11428 (gcov_write): Likewise.
11429 (gcov_write_unsigned): Likewise.
11430 (gcov_write_string): Likewise.
11431 (gcov_read_bytes): Set error code if EOF is reached.
11432 (gcov_read_counter): Use GCOV_FILE_COUNTER_OVERFLOW.
11433
11434 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
11435
11436 * gcov-io.cc (GCOV_MODE_STDIN): Define.
11437 (gcov_position): For gcov-tool, return calculated position if file is
11438 stdin.
11439 (gcov_open): For gcov-tool, use stdin if filename is NULL.
11440 (gcov_close): For gcov-tool, do not close stdin.
11441 (gcov_read_bytes): For gcov-tool, update position if file is stdin.
11442 (gcov_sync): For gcov-tool, discard input if file is stdin.
11443
11444 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
11445
11446 * doc/invoke.texi (fprofile-info-section): Mention
11447 __gcov_filename_to_gcfn(). Use "freestanding" to match with C11
11448 standard language. Fix minor example code issues.
11449 * gcov-io.h (GCOV_FILENAME_MAGIC): Define and document.
11450
11451 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
11452
11453 * gcov-io.cc (gcov_seek): Make it static.
11454 * gcov-io.h (struct gcov_summary): Do not mention gcov_seek().
11455
11456 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
11457
11458 * gcov-tool.cc (gcov_do_dump): Add mode parameter.
11459 (gcov_output_files): Open files for reading and writing.
11460
11461 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
11462
11463 * gcov-io.cc (gcov_open): Always use the mode parameter.
11464 * gcov-io.h (gcov_open): Declare it unconditionally.
11465
11466 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
11467
11468 * gcov-tool.cc (gcov_profile_merge): Adjust return type.
11469 (profile_merge): Allow merging of directories which contain no profile
11470 files.
11471
11472 2022-04-28 David Malcolm <dmalcolm@redhat.com>
11473
11474 * doc/invoke.texi (-fdump-analyzer-feasibility): Mention the
11475 fpath.txt output.
11476
11477 2022-04-28 Jakub Jelinek <jakub@redhat.com>
11478
11479 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Create a
11480 temporary only if out overlaps compare_op, not when it overlaps
11481 op0 or op1.
11482
11483 2022-04-28 Jakub Jelinek <jakub@redhat.com>
11484
11485 PR lto/105399
11486 * cgraph.cc (cgraph_node::verify_node): Don't verify
11487 semantic_interposition flag against
11488 opt_for_fn (decl, flag_semantic_interposition) for aliases in lto1.
11489
11490 2022-04-28 Jakub Jelinek <jakub@redhat.com>
11491
11492 PR target/105331
11493 * config/i386/i386.cc (ix86_gimplify_va_arg): Mark va_arg_tmp
11494 temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR
11495 of it.
11496
11497 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
11498
11499 * doc/install.texi (Configuration): Remove misleading text
11500 around LE PowerPC Linux multilibs.
11501
11502 2022-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11503
11504 PR d/103528
11505 * doc/install.texi (Tools/packages necessary for building GCC)
11506 (GDC): Document libphobos requirement.
11507 (Host/target specific installation notes for GCC, *-*-solaris2*):
11508 Document libphobos and GDC specifics.
11509
11510 2022-04-28 Richard Biener <rguenther@suse.de>
11511
11512 PR tree-optimization/105219
11513 * tree-vect-loop.cc (vect_transform_loop): Disable
11514 special code narrowing the vectorized epilogue max
11515 iterations when peeling for alignment or gaps was in effect.
11516
11517 2022-04-28 Xi Ruoyao <xry111@mengyan1223.wang>
11518
11519 * config/loongarch/loongarch.cc
11520 (loongarch_flatten_aggregate_field): Ignore empty fields for
11521 RECORD_TYPE.
11522
11523 2022-04-27 Lulu Cheng <chenglulu@loongson.cn>
11524
11525 * config/loongarch/loongarch.md: Add fdiv define_expand template,
11526 then generate floating-point division and floating-point reciprocal
11527 instructions.
11528
11529 2022-04-27 Lulu Cheng <chenglulu@loongson.cn>
11530
11531 * config/loongarch/loongarch.md: Add '(clobber (mem:BLK (scratch)))'
11532 to PLV instruction templates.
11533
11534 2022-04-27 Richard Biener <rguenther@suse.de>
11535
11536 PR middle-end/104492
11537 * gimple-ssa-warn-access.cc
11538 (pass_waccess::warn_invalid_pointer): Exclude equality compare
11539 diagnostics for all kind of invalidations.
11540 (pass_waccess::check_dangling_uses): Fix post-dominator query.
11541 (pass_waccess::check_pointer_uses): Likewise.
11542
11543 2022-04-27 Andreas Krebbel <krebbel@linux.ibm.com>
11544
11545 PR target/102024
11546 * config/s390/s390-protos.h (s390_function_arg_vector): Remove
11547 prototype.
11548 * config/s390/s390.cc (s390_single_field_struct_p): New function.
11549 (s390_function_arg_vector): Invoke s390_single_field_struct_p.
11550 (s390_function_arg_float): Likewise.
11551
11552 2022-04-27 Jakub Jelinek <jakub@redhat.com>
11553
11554 PR sanitizer/105396
11555 * asan.cc (asan_redzone_buffer::emit_redzone_byte): Handle the case
11556 where offset is bigger than off but smaller than m_prev_offset + 32
11557 bits by pushing one or more 0 bytes. Sink the
11558 m_shadow_bytes.safe_push (value); flush_if_full (); statements from
11559 all cases to the end of the function.
11560
11561 2022-04-27 Kewen Lin <linkw@linux.ibm.com>
11562
11563 PR target/105271
11564 * config/rs6000/rs6000-builtins.def (NEG_V2DI): Move to [power8-vector]
11565 stanza.
11566
11567 2022-04-26 Thomas Schwinge <thomas@codesourcery.com>
11568
11569 * config/gcn/gcn.cc (gcn_print_lds_decl): Make "gang-private
11570 data-share memory exhausted" error more verbose.
11571
11572 2022-04-26 Martin Liska <mliska@suse.cz>
11573
11574 PR lto/105364
11575 * lto-wrapper.cc (print_lto_docs_link): Use global_dc.
11576 (run_gcc): Parse OPT_fdiagnostics_urls_.
11577 (main): Initialize global_dc.
11578
11579 2022-04-26 Jakub Jelinek <jakub@redhat.com>
11580
11581 PR rtl-optimization/105314
11582 * ifcvt.cc (noce_try_store_flag_mask): Don't require that the non-zero
11583 operand is equal to if_info->x, instead use the non-zero operand
11584 as one of the operands of AND with if_info->x as target.
11585
11586 2022-04-26 Jakub Jelinek <jakub@redhat.com>
11587
11588 PR tree-optimization/105374
11589 * tree-ssa-reassoc.cc (eliminate_redundant_comparison): Punt if
11590 !fold_convertible_p rather than assuming fold_convert must succeed.
11591
11592 2022-04-26 Jakub Jelinek <jakub@redhat.com>
11593
11594 PR target/105367
11595 * config/i386/i386.cc (ix86_veclibabi_svml, ix86_veclibabi_acml): Pass
11596 el_mode == DFmode ? double_type_node : float_type_node instead of
11597 TREE_TYPE (type_in) as first arguments to mathfn_built_in.
11598
11599 2022-04-25 David Malcolm <dmalcolm@redhat.com>
11600
11601 PR analyzer/104308
11602 * gimple-fold.cc (gimple_fold_builtin_memory_op): Explicitly set
11603 the location of new_stmt in all places that don't already set it,
11604 whether explicitly, or via a call to gsi_replace.
11605
11606 2022-04-25 Paul A. Clarke <pc@us.ibm.com>
11607
11608 * doc/extend.texi (Other Builtins): Correct reference to 'modff'.
11609
11610 2022-04-25 Andrew MacLeod <amacleod@redhat.com>
11611
11612 PR tree-optimization/105276
11613 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Include
11614 existing global range with calculated value.
11615
11616 2022-04-25 Richard Biener <rguenther@suse.de>
11617
11618 PR tree-optimization/105368
11619 * tree-ssa-math-opts.cc (powi_cost): Use absu_hwi.
11620
11621 2022-04-25 Richard Biener <rguenther@suse.de>
11622
11623 PR tree-optimization/100810
11624 * tree-ssa-loop-ivopts.cc (struct iv_cand): Add involves_undefs flag.
11625 (find_ssa_undef): New function.
11626 (add_candidate_1): Avoid adding derived candidates with
11627 undefined SSA names and mark the original ones.
11628 (determine_group_iv_cost_generic): Reject rewriting
11629 uses with a different IV when that involves undefined SSA names.
11630
11631 2022-04-25 Steven G. Kargl <kargl@gcc.gnu.org>
11632
11633 PR target/89125
11634 * config/freebsd.h: Define TARGET_LIBC_HAS_FUNCTION to be
11635 bsd_libc_has_function.
11636 * targhooks.cc (bsd_libc_has_function): New function.
11637 Expand the supported math functions to inclue C99 libm.
11638 * targhooks.h (bsd_libc_has_function): New Prototype.
11639
11640 2022-04-25 Richard Biener <rguenther@suse.de>
11641
11642 PR rtl-optimization/105231
11643 * combine.cc (distribute_notes): Assert that a REG_EH_REGION
11644 with landing pad > 0 is from i3. Put any REG_EH_REGION note
11645 on i3 or drop it if the insn can not trap.
11646 (try_combine): Ensure that we can merge REG_EH_REGION notes
11647 with non-call exceptions. Ensure we are not splitting a
11648 trapping part of an insn with non-call exceptions when there
11649 is any REG_EH_REGION note to preserve.
11650
11651 2022-04-25 Hongyu Wang <hongyu.wang@intel.com>
11652
11653 PR target/105339
11654 * config/i386/avx512fintrin.h (_mm512_scalef_round_pd):
11655 Add parentheses for parameters and djust format.
11656 (_mm512_mask_scalef_round_pd): Ditto.
11657 (_mm512_maskz_scalef_round_pd): Ditto.
11658 (_mm512_scalef_round_ps): Ditto.
11659 (_mm512_mask_scalef_round_ps): Ditto.
11660 (_mm512_maskz_scalef_round_ps): Ditto.
11661 (_mm_scalef_round_sd): Use _mm_undefined_pd.
11662 (_mm_scalef_round_ss): Use _mm_undefined_ps.
11663 (_mm_mask_scalef_round_sd): New macro.
11664 (_mm_mask_scalef_round_ss): Ditto.
11665 (_mm_maskz_scalef_round_sd): Ditto.
11666 (_mm_maskz_scalef_round_ss): Ditto.
11667
11668 2022-04-23 Jakub Jelinek <jakub@redhat.com>
11669
11670 PR target/105338
11671 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Handle
11672 op0 == cst1 ? op0 : op3 like op0 == cst1 ? cst1 : op3 for the non-cmov
11673 cases.
11674
11675 2022-04-22 Segher Boessenkool <segher@kernel.crashing.org>
11676
11677 PR target/105334
11678 * config/rs6000/rs6000.md (pack<mode> for FMOVE128): New expander.
11679 (pack<mode> for FMOVE128): Rename and split the insn_and_split to...
11680 (pack<mode>_hard for FMOVE128): ... this...
11681 (pack<mode>_soft for FMOVE128): ... and this.
11682
11683 2022-04-22 Paul A. Clarke <pc@us.ibm.com>
11684
11685 * doc/extend.texi: Correct "This" to "These".
11686
11687 2022-04-22 Jakub Jelinek <jakub@redhat.com>
11688
11689 PR rtl-optimization/105333
11690 * rtlanal.cc (replace_rtx): Use simplify_subreg or
11691 simplify_unary_operation if CONST_SCALAR_INT_P rather than just
11692 CONST_INT_P.
11693
11694 2022-04-21 Segher Boessenkool <segher@kernel.crashing.org>
11695
11696 PR target/103197
11697 PR target/102146
11698 * config/rs6000/rs6000.md (zero_extendqi<mode>2 for EXTQI): Disparage
11699 the "Z" alternatives in {l,st}{f,xs}iwzx.
11700 (zero_extendhi<mode>2 for EXTHI): Ditto.
11701 (zero_extendsi<mode>2 for EXTSI): Ditto.
11702 (*movsi_internal1): Ditto.
11703 (*mov<mode>_internal1 for QHI): Ditto.
11704 (movsd_hardfloat): Ditto.
11705
11706 2022-04-21 Martin Liska <mliska@suse.cz>
11707
11708 * configure.ac: Enable compressed debug sections for mold
11709 linker.
11710 * configure: Regenerate.
11711
11712 2022-04-21 Jakub Jelinek <jakub@redhat.com>
11713
11714 PR debug/105203
11715 * emit-rtl.cc (emit_copy_of_insn_after): Don't call mark_jump_label
11716 on DEBUG_INSNs.
11717
11718 2022-04-20 Richard Biener <rguenther@suse.de>
11719
11720 PR tree-optimization/104912
11721 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
11722 the cost model check to a separate BB to make sure it is
11723 checked first and not combined with other version checks.
11724
11725 2022-04-20 Richard Biener <rguenther@suse.de>
11726
11727 PR tree-optimization/105312
11728 * gimple-isel.cc (gimple_expand_vec_cond_expr): Query both
11729 VCOND and VCONDU for EQ and NE.
11730
11731 2022-04-20 Jan Hubicka <hubicka@ucw.cz>
11732
11733 PR ipa/103818
11734 * ipa-modref-tree.cc (modref_access_node::closer_pair_p): Use
11735 poly_offset_int to avoid overflow.
11736 (modref_access_node::update2): likewise.
11737
11738 2022-04-20 Jakub Jelinek <jakub@redhat.com>
11739
11740 PR ipa/105306
11741 * cgraph.cc (cgraph_node::create): Set node->semantic_interposition
11742 to opt_for_fn (decl, flag_semantic_interposition).
11743 * cgraphclones.cc (cgraph_node::create_clone): Copy over
11744 semantic_interposition flag.
11745
11746 2022-04-19 Sergei Trofimovich <siarheit@google.com>
11747
11748 PR gcov-profile/105282
11749 * value-prof.cc (stream_out_histogram_value): Allow negative counts
11750 on HIST_TYPE_INDIR_CALL.
11751
11752 2022-04-19 Jakub Jelinek <jakub@redhat.com>
11753
11754 PR target/105257
11755 * config/sparc/sparc.cc (epilogue_renumber): If ORIGINAL_REGNO,
11756 use gen_raw_REG instead of gen_rtx_REG and copy over also
11757 ORIGINAL_REGNO. Use return 0; instead of /* fallthrough */.
11758
11759 2022-04-19 Richard Biener <rguenther@suse.de>
11760
11761 PR tree-optimization/104010
11762 PR tree-optimization/103941
11763 * tree-vect-slp.cc (vect_bb_slp_scalar_cost): When
11764 we run into stmts in patterns continue walking those
11765 for uses outside of the vectorized region instead of
11766 marking the lane live.
11767
11768 2022-04-18 Hans-Peter Nilsson <hp@axis.com>
11769
11770 * doc/install.texi <CRIS>: Remove references to removed websites and
11771 adjust for cris-*-elf being the only remaining toolchain.
11772
11773 2022-04-18 Hans-Peter Nilsson <hp@axis.com>
11774
11775 * doc/invoke.texi <CRIS>: Remove references to options for removed
11776 subtarget cris-axis-linux-gnu and tweak wording accordingly.
11777
11778 2022-04-16 Gerald Pfeifer <gerald@pfeifer.com>
11779
11780 * doc/install.texi (Specific): Adjust mingw-w64 download link.
11781
11782 2022-04-15 Hongyu Wang <hongyu.wang@intel.com>
11783
11784 * config/i386/smmintrin.h: Correct target pragma from sse4.1
11785 and sse4.2 to crc32 for crc32 intrinsics.
11786
11787 2022-04-14 Indu Bhagat <indu.bhagat@oracle.com>
11788
11789 PR debug/105089
11790 * ctfc.cc (ctf_dvd_ignore_insert): New function.
11791 (ctf_dvd_ignore_lookup): Likewise.
11792 (ctf_add_variable): Keep track of non-defining decl DIEs.
11793 (new_ctf_container): Initialize the new hash-table.
11794 (ctfc_delete_container): Empty hash-table.
11795 * ctfc.h (struct ctf_container): Add new hash-table.
11796 (ctf_dvd_ignore_lookup): New declaration.
11797 (ctf_add_variable): Add additional argument.
11798 * ctfout.cc (ctf_dvd_preprocess_cb): Skip adding CTF variable
11799 record for non-defining decl for which a defining decl exists
11800 in the same TU.
11801 (ctf_preprocess): Defer updating the number of global objts
11802 until here.
11803 (output_ctf_header): Use ctfc_vars_list_count as some CTF
11804 variables may not make it to the final output.
11805 (output_ctf_vars): Likewise.
11806 * dwarf2ctf.cc (gen_ctf_variable): Skip generating CTF variable
11807 if this is known to be a non-defining decl DIE.
11808
11809 2022-04-14 Indu Bhagat <indu.bhagat@oracle.com>
11810
11811 * ctfc.h (struct ctf_container): Introduce a new member.
11812 * ctfout.cc (ctf_list_add_ctf_vars): Use it instead of static
11813 variable.
11814
11815 2022-04-14 Jakub Jelinek <jakub@redhat.com>
11816
11817 PR target/105247
11818 * simplify-rtx.cc (simplify_const_binary_operation): For shifts
11819 or rotates by VOIDmode constant integer shift count use word_mode
11820 for the operand if int_mode is narrower than word.
11821
11822 2022-04-14 Robin Dapp <rdapp@linux.ibm.com>
11823
11824 * config/s390/s390.cc (s390_get_sched_attrmask): Add z16.
11825 (s390_get_unit_mask): Likewise.
11826 (s390_is_fpd): Likewise.
11827 (s390_is_fxd): Likewise.
11828 * config/s390/s390.h (s390_tune_attr): Set max tune level to z16.
11829 * config/s390/s390.md (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15):
11830 Add z16.
11831 (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15,z16):
11832 Likewise.
11833 * config/s390/3931.md: New file.
11834
11835 2022-04-13 Richard Sandiford <richard.sandiford@arm.com>
11836
11837 PR tree-optimization/105254
11838 * config/aarch64/aarch64.cc
11839 (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
11840 loop_vec_info as argument. Restrict the unroll factor to values
11841 that divide the VF.
11842 (aarch64_vector_costs::finish_cost): Update call accordingly.
11843
11844 2022-04-13 Richard Biener <rguenther@suse.de>
11845
11846 PR tree-optimization/105263
11847 * tree-ssa-reassoc.cc (try_special_add_to_ops): Do not consume
11848 negates in multiplication chains with DFP.
11849
11850 2022-04-13 Jakub Jelinek <jakub@redhat.com>
11851
11852 PR middle-end/105253
11853 * tree.cc (tree_builtin_call_types_compatible_p): If PROP_gimple,
11854 use useless_type_conversion_p checks instead of TYPE_MAIN_VARIANT
11855 comparisons or tree_nop_conversion_p checks.
11856
11857 2022-04-13 Hongyu Wang <hongyu.wang@intel.com>
11858
11859 PR target/103069
11860 * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop):
11861 Add missing set to target_val at pause label.
11862
11863 2022-04-13 Jakub Jelinek <jakub@redhat.com>
11864
11865 PR target/105234
11866 * attribs.cc (decl_attributes): Don't set
11867 DECL_FUNCTION_SPECIFIC_TARGET if target_option_default_node is
11868 NULL.
11869
11870 2022-04-13 Richard Biener <rguenther@suse.de>
11871
11872 PR tree-optimization/105250
11873 * fold-const.cc (fold_convertible_p): Revert
11874 r12-7979-geaaf77dd85c333, instead check for size equality
11875 of the vector types involved.
11876
11877 2022-04-13 Richard Biener <rguenther@suse.de>
11878
11879 Revert:
11880 2022-04-13 Richard Biener <rguenther@suse.de>
11881
11882 PR tree-optimization/104912
11883 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
11884 the cost model check to a separate BB to make sure it is
11885 checked first and not combined with other version checks.
11886
11887 2022-04-13 Richard Biener <rguenther@suse.de>
11888
11889 PR tree-optimization/104912
11890 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
11891 the cost model check to a separate BB to make sure it is
11892 checked first and not combined with other version checks.
11893
11894 2022-04-13 Jakub Jelinek <jakub@redhat.com>
11895
11896 * tree-scalar-evolution.cc (expression_expensive_p): Fix a comment typo.
11897
11898 2022-04-12 Antoni Boucher <bouanto@zoho.com>
11899
11900 PR jit/104072
11901 * reginfo.cc: New functions (clear_global_regs_cache,
11902 reginfo_cc_finalize) to avoid an issue where compiling the same
11903 code multiple times gives an error about assigning the same
11904 register to 2 global variables.
11905 * rtl.h: New function (reginfo_cc_finalize).
11906 * toplev.cc: Call it.
11907
11908 2022-04-12 Antoni Boucher <bouanto@zoho.com>
11909
11910 PR jit/104071
11911 * toplev.cc: Call the new function tree_cc_finalize in
11912 toplev::finalize.
11913 * tree.cc: New functions (clear_nonstandard_integer_type_cache
11914 and tree_cc_finalize) to clear the cache of non-standard integer
11915 types to avoid having issues with some optimizations of
11916 bitcast where the SSA_NAME will have a size of a cached
11917 integer type that should have been invalidated, causing a
11918 comparison of integer constant to fail.
11919 * tree.h: New function (tree_cc_finalize).
11920
11921 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
11922
11923 PR target/97348
11924 * config/nvptx/nvptx.h (ASM_SPEC): Don't set.
11925 * config/nvptx/nvptx.opt (misa): Adjust comment.
11926
11927 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
11928
11929 Revert:
11930 2022-03-03 Tom de Vries <tdevries@suse.de>
11931
11932 * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
11933
11934 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
11935
11936 Revert:
11937 2022-03-31 Tom de Vries <tdevries@suse.de>
11938
11939 * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
11940
11941 2022-04-12 Richard Biener <rguenther@suse.de>
11942
11943 PR ipa/104303
11944 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Do not
11945 include local escaped memory as obviously necessary stores.
11946
11947 2022-04-12 Richard Biener <rguenther@suse.de>
11948
11949 PR tree-optimization/105235
11950 * tree-ssa-math-opts.cc (execute_cse_conv_1): Clean EH and
11951 return whether the CFG changed.
11952 (execute_cse_sincos_1): Adjust.
11953
11954 2022-04-12 Przemyslaw Wirkus <Przemyslaw.Wirkus@arm.com>
11955
11956 PR target/104144
11957 * config/arm/t-aprofile (MULTI_ARCH_OPTS_A): Remove Armv9-a options.
11958 (MULTI_ARCH_DIRS_A): Remove Armv9-a diretories.
11959 (MULTILIB_REQUIRED): Don't require Armv9-a libraries.
11960 (MULTILIB_MATCHES): Treat Armv9-a as equivalent to Armv8-a.
11961 (MULTILIB_REUSE): Remove remap rules for Armv9-a.
11962 * config/arm/t-multilib (v9_a_nosimd_variants): Delete.
11963 (MULTILIB_MATCHES): Remove mappings for v9_a_nosimd_variants.
11964
11965 2022-04-12 Richard Biener <rguenther@suse.de>
11966
11967 PR tree-optimization/105232
11968 * tree.cc (component_ref_size): Bail out for too large
11969 or non-constant sizes.
11970
11971 2022-04-12 Richard Biener <rguenther@suse.de>
11972
11973 PR tree-optimization/105226
11974 * tree-vect-loop-manip.cc (vect_loop_versioning): Verify
11975 we can split the exit of an outer loop we choose to version.
11976
11977 2022-04-12 Jakub Jelinek <jakub@redhat.com>
11978
11979 * config/i386/i386-expand.cc (ix86_emit_i387_sinh, ix86_emit_i387_cosh,
11980 ix86_emit_i387_tanh, ix86_emit_i387_asinh, ix86_emit_i387_acosh,
11981 ix86_emit_i387_atanh, ix86_emit_i387_log1p, ix86_emit_i387_round,
11982 ix86_emit_swdivsf, ix86_emit_swsqrtsf,
11983 ix86_expand_atomic_fetch_op_loop, ix86_expand_cmpxchg_loop):
11984 Formatting fix.
11985 * config/i386/i386.cc (warn_once_call_ms2sysv_xlogues): Likewise.
11986
11987 2022-04-12 Jakub Jelinek <jakub@redhat.com>
11988
11989 PR target/105214
11990 * config/i386/i386-expand.cc (ix86_emit_i387_log1p): Call
11991 do_pending_stack_adjust.
11992
11993 2022-04-12 Jakub Jelinek <jakub@redhat.com>
11994
11995 PR rtl-optimization/105211
11996 * builtins.cc (expand_builtin_int_roundingfn_2): If mathfn_built_in_1
11997 fails for TREE_TYPE (arg), retry it with
11998 TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl))) and if even that
11999 fails, emit call normally.
12000
12001 2022-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
12002
12003 * common/config/s390/s390-common.cc: Rename PF_ARCH14 to PF_Z16.
12004 * config.gcc: Add z16 as march/mtune switch.
12005 * config/s390/driver-native.cc (s390_host_detect_local_cpu):
12006 Recognize z16 with -march=native.
12007 * config/s390/s390-opts.h (enum processor_type): Rename
12008 PROCESSOR_ARCH14 to PROCESSOR_3931_Z16.
12009 * config/s390/s390.cc (PROCESSOR_ARCH14): Rename to ...
12010 (PROCESSOR_3931_Z16): ... throughout the file.
12011 (s390_processor processor_table): Add z16 as cpu string.
12012 * config/s390/s390.h (enum processor_flags): Rename PF_ARCH14 to
12013 PF_Z16.
12014 (TARGET_CPU_ARCH14): Rename to ...
12015 (TARGET_CPU_Z16): ... this.
12016 (TARGET_CPU_ARCH14_P): Rename to ...
12017 (TARGET_CPU_Z16_P): ... this.
12018 (TARGET_ARCH14): Rename to ...
12019 (TARGET_Z16): ... this.
12020 (TARGET_ARCH14_P): Rename to ...
12021 (TARGET_Z16_P): ... this.
12022 * config/s390/s390.md (cpu_facility): Rename arch14 to z16 and
12023 check TARGET_Z16 instead of TARGET_ARCH14.
12024 * config/s390/s390.opt: Add z16 to processor_type.
12025 * doc/invoke.texi: Document z16 and arch14.
12026
12027 2022-04-12 chenglulu <chenglulu@loongson.cn>
12028
12029 * config/loongarch/loongarch.cc: Fix bug for
12030 tmpdir-g++.dg-struct-layout-1/t033.
12031
12032 2022-04-11 Peter Bergner <bergner@linux.ibm.com>
12033
12034 PR target/104894
12035 * config/rs6000/rs6000.cc (rs6000_sibcall_aix): Handle pcrel sibcalls
12036 to longcall functions.
12037
12038 2022-04-11 Jason Merrill <jason@redhat.com>
12039
12040 * ipa-free-lang-data.cc (free_lang_data_in_decl): Fix typos.
12041
12042 2022-04-11 Segher Boessenkool <segher@kernel.crashing.org>
12043
12044 PR target/105213
12045 PR target/103623
12046 * config/rs6000/rs6000.md (unpack<mode>_nodm): Add m,r,i alternative.
12047
12048 2022-04-11 Jakub Jelinek <jakub@redhat.com>
12049
12050 PR tree-optimization/105218
12051 * tree-ssa-phiopt.cc (value_replacement): If middle_bb has
12052 more than one predecessor or phi's bb more than 2 predecessors,
12053 reset phi result uses instead of adding a debug temp.
12054
12055 2022-04-11 Kito Cheng <kito.cheng@sifive.com>
12056
12057 PR target/104853
12058 * config.gcc: Pass -misa-spec to arch-canonicalize and
12059 multilib-generator.
12060 * config/riscv/arch-canonicalize: Adding -misa-spec option.
12061 (SUPPORTED_ISA_SPEC): New.
12062 (arch_canonicalize): New argument `isa_spec`.
12063 Handle multiple ISA spec versions.
12064 * config/riscv/multilib-generator: Adding -misa-spec option.
12065
12066 2022-04-11 Kito Cheng <kito.cheng@sifive.com>
12067
12068 * config/riscv/arch-canonicalize: Add TODO item.
12069 (IMPLIED_EXT): Sync.
12070 (arch_canonicalize): Checking until no change.
12071
12072 2022-04-11 Tamar Christina <tamar.christina@arm.com>
12073
12074 PR target/105197
12075 * tree-vect-stmts.cc (vectorizable_condition): Prevent cond swap when
12076 not masked.
12077
12078 2022-04-11 Jason Merrill <jason@redhat.com>
12079
12080 PR c++/100370
12081 * pointer-query.cc (compute_objsize_r) [POINTER_PLUS_EXPR]: Require
12082 deref == -1.
12083
12084 2022-04-11 Jakub Jelinek <jakub@redhat.com>
12085
12086 PR tree-optimization/104639
12087 * tree-ssa-phiopt.cc: Include tree-ssa-propagate.h.
12088 (value_replacement): Optimize (x != cst1 ? x : cst2) != cst3
12089 into x != cst3.
12090
12091 2022-04-11 Jeff Law <jeffreyalaw@gmail.com>
12092
12093 * config/bfin/bfin.md (rol_one): Fix pattern to indicate the
12094 sign bit of the source ends up in CC.
12095
12096 2022-04-09 Jan Hubicka <hubicka@ucw.cz>
12097
12098 PR ipa/103376
12099 * cgraphunit.cc (cgraph_node::analyze): update semantic_interposition
12100 flag.
12101
12102 2022-04-09 Jan Hubicka <hubicka@ucw.cz>
12103
12104 * ipa-modref.cc (ipa_merge_modref_summary_after_inlining): Propagate
12105 nondeterministic and side_effects flags.
12106
12107 2022-04-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
12108
12109 PR target/105157
12110 * config.gcc: Shift ext_mask by TARGET_CPU_NBITS.
12111 * config/aarch64/aarch64.h (TARGET_CPU_NBITS): New macro.
12112 (TARGET_CPU_MASK): Likewise.
12113 (TARGET_CPU_DEFAULT): Use TARGET_CPU_NBITS.
12114 * config/aarch64/aarch64.cc (aarch64_get_tune_cpu): Use TARGET_CPU_MASK.
12115 (aarch64_get_arch): Likewise.
12116 (aarch64_override_options): Use TARGET_CPU_NBITS.
12117
12118 2022-04-08 Richard Biener <rguenther@suse.de>
12119
12120 PR tree-optimization/105198
12121 * tree-predcom.cc (find_looparound_phi): Check whether
12122 the found memory location of the entry value is clobbered
12123 inbetween the value we want to use and loop entry.
12124
12125 2022-04-08 Jakub Jelinek <jakub@redhat.com>
12126
12127 PR tree-optimization/105189
12128 * fold-const.cc (make_range_step): Fix up handling of
12129 (unsigned) x +[low, -] ranges for signed x if low fits into
12130 typeof (x).
12131
12132 2022-04-08 Richard Biener <rguenther@suse.de>
12133
12134 PR tree-optimization/105175
12135 * tree-vect-stmts.cc (vectorizable_operation): Suppress
12136 -Wvector-operation-performance if using emulated vectors.
12137 * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
12138 -Wvector-operation-performance when suppressed.
12139 (expand_vector_parallel): Likewise.
12140 (expand_vector_comparison): Likewise.
12141 (expand_vector_condition): Likewise.
12142 (lower_vec_perm): Likewise.
12143 (expand_vector_conversion): Likewise.
12144
12145 2022-04-07 Tamar Christina <tamar.christina@arm.com>
12146
12147 PR target/104409
12148 * config/aarch64/aarch64-builtins.cc (handle_arm_acle_h): New.
12149 (aarch64_general_init_builtins): Move LS64 code.
12150 * config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64): Support
12151 arm_acle.h
12152 * config/aarch64/aarch64-protos.h (handle_arm_acle_h): New.
12153 * config/aarch64/arm_acle.h: Add pragma GCC aarch64 "arm_acle.h".
12154
12155 2022-04-07 Richard Biener <rguenther@suse.de>
12156 Jan Hubicka <hubicka@ucw.cz>
12157
12158 PR ipa/104303
12159 * tree-ssa-alias.h (ptr_deref_may_alias_global_p,
12160 ref_may_alias_global_p, ref_may_alias_global_p,
12161 stmt_may_clobber_global_p, pt_solution_includes_global): Add
12162 bool parameters indicating whether escaped locals should be
12163 considered global.
12164 * tree-ssa-structalias.cc (pt_solution_includes_global):
12165 When the new escaped_nonlocal_p flag is true also consider
12166 pt->vars_contains_escaped.
12167 * tree-ssa-alias.cc (ptr_deref_may_alias_global_p):
12168 Pass down new escaped_nonlocal_p flag.
12169 (ref_may_alias_global_p): Likewise.
12170 (stmt_may_clobber_global_p): Likewise.
12171 (ref_may_alias_global_p_1): Likewise. For decls also
12172 query the escaped solution if true.
12173 (ref_may_access_global_memory_p): Remove.
12174 (modref_may_conflict): Use ref_may_alias_global_p with
12175 escaped locals considered global.
12176 (ref_maybe_used_by_stmt_p): Adjust.
12177 * ipa-fnsummary.cc (points_to_local_or_readonly_memory_p):
12178 Likewise.
12179 * tree-ssa-dse.cc (dse_classify_store): Likewise.
12180 * trans-mem.cc (thread_private_new_memory): Likewise, but
12181 consider escaped locals global.
12182 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Likewise.
12183
12184 2022-04-07 Richard Biener <rguenther@suse.de>
12185
12186 PR tree-optimization/105185
12187 * tree-ssa-sccvn.cc (visit_reference_op_call): Simplify
12188 modref query again.
12189
12190 2022-04-07 Tamar Christina <tamar.christina@arm.com>
12191
12192 PR target/104049
12193 * config/aarch64/aarch64-simd.md
12194 (aarch64_reduc_plus_internal<mode>): Fix RTL and rename to...
12195 (reduc_plus_scal_<mode>): ... This.
12196 (reduc_plus_scal_v4sf): Moved.
12197 (aarch64_reduc_plus_internalv2si): Fix RTL and rename to...
12198 (reduc_plus_scal_v2si): ... This.
12199
12200 2022-04-07 Jakub Jelinek <jakub@redhat.com>
12201
12202 PR tree-optimization/102586
12203 * langhooks.h (struct lang_hooks_for_types): Add classtype_as_base
12204 langhook.
12205 * langhooks-def.h (LANG_HOOKS_CLASSTYPE_AS_BASE): Define.
12206 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
12207 * gimple-fold.cc (clear_padding_type): Use ftype instead of
12208 TREE_TYPE (field) some more. For artificial FIELD_DECLs without
12209 name try the lang_hooks.types.classtype_as_base langhook and
12210 if it returns non-NULL, use that instead of ftype for recursive call.
12211
12212 2022-04-07 Jakub Jelinek <jakub@redhat.com>
12213
12214 PR tree-optimization/105150
12215 * tree.cc (tree_builtin_call_types_compatible_p): New function.
12216 (get_call_combined_fn): Use it.
12217
12218 2022-04-07 Richard Biener <rguenther@suse.de>
12219
12220 PR middle-end/105165
12221 * tree-complex.cc (expand_complex_asm): Sorry for asm goto
12222 _Complex outputs.
12223
12224 2022-04-07 liuhongt <hongtao.liu@intel.com>
12225
12226 * config/i386/sse.md (<sse2_avx2>_andnot<mode>3_mask):
12227 Removed.
12228 (<sse>_andnot<mode>3<mask_name>): Disable V*HFmode patterns
12229 for mask_applied.
12230 (<code><mode>3<mask_name>): Ditto.
12231 (*<code><mode>3<mask_name>): Ditto.
12232 (VFB_128_256): Adjust condition of V8HF/V16HFmode according to
12233 real instruction.
12234 (VFB_512): Ditto.
12235 (VFB): Ditto.
12236
12237 2022-04-06 Jakub Jelinek <jakub@redhat.com>
12238
12239 PR rtl-optimization/104985
12240 * combine.cc (struct undo): Add where.regno member.
12241 (do_SUBST_MODE): Rename to ...
12242 (subst_mode): ... this. Change first argument from rtx * into int,
12243 operate on regno_reg_rtx[regno] and save regno into where.regno.
12244 (SUBST_MODE): Remove.
12245 (try_combine): Use subst_mode instead of SUBST_MODE, change first
12246 argument from regno_reg_rtx[whatever] to whatever. For UNDO_MODE, use
12247 regno_reg_rtx[undo->where.regno] instead of *undo->where.r.
12248 (undo_to_marker): For UNDO_MODE, use regno_reg_rtx[undo->where.regno]
12249 instead of *undo->where.r.
12250 (simplify_set): Use subst_mode instead of SUBST_MODE, change first
12251 argument from regno_reg_rtx[whatever] to whatever.
12252
12253 2022-04-06 Jakub Jelinek <jakub@redhat.com>
12254
12255 PR target/105069
12256 * config/sh/sh.opt (mdiv=): Add Save.
12257
12258 2022-04-06 Martin Liska <mliska@suse.cz>
12259
12260 PR driver/105096
12261 * common.opt: Document properly based on what it does.
12262 * gcc.cc (display_help): Unify with what we have in common.opt.
12263 * opts.cc (common_handle_option): Do not print undocumented
12264 options.
12265
12266 2022-04-06 Xi Ruoyao <xry111@mengyan1223.wang>
12267
12268 * config/mips/mips.cc (mips_fpr_return_fields): Ignore
12269 cxx17_empty_base_field_p fields and set an indicator.
12270 (mips_return_in_msb): Adjust for mips_fpr_return_fields change.
12271 (mips_function_value_1): Inform psABI change about C++17 empty
12272 bases.
12273
12274 2022-04-06 Jakub Jelinek <jakub@redhat.com>
12275
12276 PR tree-optimization/105150
12277 * gimple.cc (gimple_builtin_call_types_compatible_p): Use
12278 builtin_decl_explicit here...
12279 (gimple_call_builtin_p, gimple_call_combined_fn): ... rather than
12280 here.
12281
12282 2022-04-06 Richard Biener <rguenther@suse.de>
12283
12284 PR tree-optimization/105173
12285 * tree-ssa-reassoc.cc (find_insert_point): Get extra
12286 insert_before output argument and compute it.
12287 (insert_stmt_before_use): Adjust.
12288 (rewrite_expr_tree): Likewise.
12289
12290 2022-04-06 Richard Biener <rguenther@suse.de>
12291
12292 PR ipa/105166
12293 * ipa-modref-tree.cc (modref_access_node::get_ao_ref ): Bail
12294 out for non-pointer arguments.
12295
12296 2022-04-06 Richard Biener <rguenther@suse.de>
12297
12298 PR tree-optimization/105163
12299 * tree-ssa-reassoc.cc (repropagate_negates): Avoid propagating
12300 negated abnormals.
12301
12302 2022-04-06 Jakub Jelinek <jakub@redhat.com>
12303
12304 PR tree-optimization/105150
12305 * gimple.cc (gimple_call_builtin_p, gimple_call_combined_fn):
12306 For BUILT_IN_NORMAL calls, call gimple_builtin_call_types_compatible_p
12307 preferrably on builtin_decl_explicit decl rather than fndecl.
12308 * tree-ssa-strlen.cc (valid_builtin_call): Don't call
12309 gimple_builtin_call_types_compatible_p here.
12310
12311 2022-04-06 Richard Sandiford <richard.sandiford@arm.com>
12312
12313 PR tree-optimization/103761
12314 * tree-vect-stmts.cc (check_load_store_for_partial_vectors): Replace
12315 the ncopies parameter with an slp_node parameter. Calculate the
12316 number of vectors based on it and vectype. Rename lambda to
12317 group_memory_nvectors.
12318 (vectorizable_store, vectorizable_load): Update calls accordingly.
12319
12320 2022-04-06 Martin Liska <mliska@suse.cz>
12321
12322 * doc/invoke.texi: Document it.
12323
12324 2022-04-06 Richard Biener <rguenther@suse.de>
12325
12326 PR tree-optimization/105148
12327 * tree-ssa-loop-ivopts.cc (idx_record_use): Walk raw operands
12328 2 and 3 of ARRAY_REFs.
12329
12330 2022-04-06 Roger Sayle <roger@nextmovesoftware.com>
12331
12332 * config/i386/sse.md (ANDNOT_MODE): New mode iterator for TF and V1TI.
12333 (*andnottf3): Replace with...
12334 (*andnot<mode>3): New define_insn using ANDNOT_MODE.
12335
12336 2022-04-06 Richard Biener <rguenther@suse.de>
12337
12338 PR tree-optimization/105142
12339 * gimple-fold.h (maybe_fold_and_comparisons): Add defaulted
12340 basic-block parameter.
12341 (maybe_fold_or_comparisons): Likewise.
12342 * gimple-fold.cc (follow_outer_ssa_edges): New.
12343 (maybe_fold_comparisons_from_match_pd): Use follow_outer_ssa_edges
12344 when an outer condition basic-block is specified.
12345 (and_comparisons_1, and_var_with_comparison,
12346 and_var_with_comparison_1, or_comparisons_1,
12347 or_var_with_comparison, or_var_with_comparison_1): Receive and pass
12348 down the outer condition basic-block.
12349 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Pass down the
12350 basic-block of the outer condition.
12351
12352 2022-04-06 Kewen Lin <linkw@linux.ibm.com>
12353
12354 PR target/105002
12355 * config/rs6000/rs6000.cc (rs6000_maybe_emit_maxc_minc): Support more
12356 comparison codes UNLT/UNLE/UNGT/UNGE.
12357
12358 2022-04-05 David Malcolm <dmalcolm@redhat.com>
12359
12360 * doc/extend.texi (Common Function Attributes): Document that
12361 'access' does not imply 'nonnull'.
12362
12363 2022-04-05 Uroš Bizjak <ubizjak@gmail.com>
12364
12365 PR target/105139
12366 * config/i386/mmx.md (*movv2qi_internal):
12367 Change insn mode of alternative 5 to HF for TARGET_AVX512FP16.
12368
12369 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
12370
12371 * config/aarch64/aarch64.md (aarch64_cpymemdi): Turn into a
12372 define_expand and turn operands 0 and 1 from REGs to MEMs.
12373 (*aarch64_cpymemdi): New pattern.
12374 (aarch64_setmemdi): Turn into a define_expand and turn operand 0
12375 from a REG to a MEM.
12376 (*aarch64_setmemdi): New pattern.
12377 * config/aarch64/aarch64.cc (aarch64_expand_cpymem_mops): Use
12378 copy_to_mode_reg on all three registers. Replace the original
12379 MEM addresses rather than creating wild reads and writes.
12380 (aarch64_expand_setmem_mops): Likewise for the size and for the
12381 destination memory and address.
12382
12383 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
12384
12385 PR target/103147
12386 * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): New class.
12387 * config/aarch64/aarch64-sve-builtins.h (sve_switcher): Inherit
12388 from aarch64_simd_switcher.
12389 * config/aarch64/aarch64-builtins.cc (aarch64_simd_tuple_modes):
12390 New variable.
12391 (aarch64_lookup_simd_builtin_type): Use it instead of TYPE_MODE.
12392 (register_tuple_type): Add more asserts. Expect the alignment
12393 of the structure to be subject to flag_pack_struct and
12394 maximum_field_alignment. Set aarch64_simd_tuple_modes.
12395 (aarch64_simd_switcher::aarch64_simd_switcher): New function.
12396 (aarch64_simd_switcher::~aarch64_simd_switcher): Likewise.
12397 (handle_arm_neon_h): Hold an aarch64_simd_switcher throughout.
12398 (aarch64_general_init_builtins): Hold an aarch64_simd_switcher
12399 while calling aarch64_init_simd_builtins.
12400 * config/aarch64/aarch64-sve-builtins.cc (sve_switcher::sve_switcher)
12401 (sve_switcher::~sve_switcher): Remove code now performed by
12402 aarch64_simd_switcher.
12403
12404 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
12405
12406 PR target/104897
12407 * config/aarch64/aarch64-sve-builtins.cc
12408 (function_resolver::infer_vector_or_tuple_type): Use error_n
12409 for "%d vectors" messages.
12410
12411 2022-04-05 Chung-Lin Tang <cltang@codesourcery.com>
12412
12413 * omp-low.cc (lower_omp_target): Use outer context looked-up 'var' as
12414 argument to lang_hooks.decls.omp_array_data, instead of 'ovar' from
12415 current clause.
12416
12417 2022-04-05 Richard Biener <rguenther@suse.de>
12418
12419 PR c/105151
12420 * passes.def (pass_walloca): Move early instance into
12421 pass_build_ssa_passes to make SSA form available.
12422
12423 2022-04-05 liuhongt <hongtao.liu@intel.com>
12424
12425 PR target/101908
12426 * config/i386/i386.cc (ix86_split_stlf_stall_load): New
12427 function
12428 (ix86_reorg): Call ix86_split_stlf_stall_load.
12429 * config/i386/i386.opt (-param=x86-stlf-window-ninsns=): New
12430 param.
12431
12432 2022-04-05 Alexandre Oliva <oliva@adacore.com>
12433
12434 * targhooks.cc (default_zero_call_used_regs): Attempt to group
12435 regs that the target refuses to use in their natural modes.
12436 (zcur_select_mode_rtx): New.
12437 * regs.h (struct target_regs): Add x_hard_regno_max_nregs.
12438 (hard_regno_max_nregs): Define.
12439 * reginfo.cc (init_reg_modes_target): Set hard_regno_max_nregs.
12440
12441 2022-04-04 Alex Coplan <alex.coplan@arm.com>
12442
12443 * doc/match-and-simplify.texi: Fix typos.
12444
12445 2022-04-04 Jakub Jelinek <jakub@redhat.com>
12446
12447 PR target/105144
12448 * config/aarch64/t-aarch64 (s-aarch64-tune-md): Do move-if-change
12449 only if configured with --enable-maintainer-mode, otherwise compare
12450 tmp-aarch64-tune.md with $(srcdir)/config/aarch64/aarch64-tune.md and
12451 if they differ, emit a message and fail.
12452
12453 2022-04-04 Jakub Jelinek <jakub@redhat.com>
12454
12455 PR target/105144
12456 * config/aarch64/t-aarch64 (s-mddeps): Depend on s-aarch64-tune-md.
12457 * config/aarch64/aarch64-tune.md: Regenerated.
12458
12459 2022-04-04 Richard Biener <rguenther@suse.de>
12460
12461 PR tree-optimization/105132
12462 * tree-vect-stmts.cc (vectorizable_operation): Check that
12463 the input vectors have the same number of elements.
12464
12465 2022-04-04 Richard Biener <rguenther@suse.de>
12466
12467 PR middle-end/105140
12468 * fold-const.cc (fold_convertible_p): Allow a TYPE_P arg.
12469
12470 2022-04-03 Jeff Law <jeffreyalaw@gmail.com>
12471
12472 PR target/104987
12473 * config/iq2000/iq2000.md (bbi): New attribute, default to no.
12474 (delay slot descripts): Use different delay slot description when
12475 the insn as the "bbi" attribute.
12476 (bbi, bbin patterns): Set the bbi attribute to yes.
12477
12478 2022-04-03 Jakub Jelinek <jakub@redhat.com>
12479
12480 PR target/105123
12481 * config/i386/i386-expand.cc (ix86_expand_vector_init_general): Avoid
12482 using word as target for expand_simple_binop when doing ASHIFT and
12483 IOR.
12484
12485 2022-04-02 Xi Ruoyao <xry111@mengyan1223.wang>
12486
12487 * config/mips/mips.cc (mips_function_arg): Check if DECL_SIZE is
12488 NULL before dereferencing it.
12489
12490 2022-04-01 Qing Zhao <qing.zhao@oracle.com>
12491
12492 * config/i386/i386.cc (zero_all_st_registers): Return the value of
12493 num_of_st.
12494 (ix86_zero_call_used_regs): Update zeroed_hardregs set according to
12495 the return value of zero_all_st_registers.
12496 * doc/tm.texi: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
12497 * function.cc (gen_call_used_regs_seq): Add an assertion.
12498 * target.def: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
12499
12500 2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang>
12501
12502 PR target/102024
12503 * config/mips/mips.cc (mips_function_arg): Ignore zero-width
12504 fields, and inform if it causes a psABI change.
12505
12506 2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang>
12507
12508 PR target/102024
12509 * config/mips/mips.cc (mips_fpr_return_fields): Detect C++
12510 zero-width bit-fields and set up an indicator.
12511 (mips_return_in_msb): Adapt for mips_fpr_return_fields change.
12512 (mips_function_value_1): Diagnose when the presense of a C++
12513 zero-width bit-field changes function returning in GCC 12.
12514
12515 2022-04-01 Jakub Jelinek <jakub@redhat.com>
12516
12517 PR tree-optimization/104645
12518 * tree-ssa-phiopt.cc (value_replacement): If assign has
12519 CONVERT_EXPR_CODE_P rhs_code, treat it like a preparation
12520 statement with constant evaluation.
12521
12522 2022-04-01 YunQiang Su <yunqiang.su@cipunited.com>
12523
12524 * config/mips/mips.cc (mips_expand_prologue):
12525 IPL is 8bit for MCU ASE.
12526
12527 2022-03-31 Bill Schmidt <wschmidt@linux.ibm.com>
12528
12529 PR target/104004
12530 * config/rs6000/rs6000-builtins.def (MFFSL): Mark nosoft.
12531 (MTFSB0): Likewise.
12532 (MTFSB1): Likewise.
12533 (SET_FPSCR_RN): Likewise.
12534 (SET_FPSCR_DRN): Mark nosoft and no32bit.
12535
12536 2022-03-31 Thomas Schwinge <thomas@codesourcery.com>
12537
12538 * doc/options.texi (Option file format): Clarifications around
12539 option definition records' help texts.
12540
12541 2022-03-31 Thomas Schwinge <thomas@codesourcery.com>
12542
12543 * optc-gen.awk <END>: Fix "Multiple different help strings" error
12544 diagnostic.
12545
12546 2022-03-31 Andre Vieira <andre.simoesdiasvieira@arm.com>
12547
12548 * config/aarch64/aarch64.cc (aarch64_vector_costs): Define
12549 determine_suggested_unroll_factor and m_has_avg.
12550 (determine_suggested_unroll_factor): New function.
12551 (aarch64_vector_costs::add_stmt_cost): Check for a qualifying pattern
12552 to set m_nosve_pattern.
12553 (aarch64_vector_costs::finish_costs): Use
12554 determine_suggested_unroll_factor.
12555 * config/aarch64/aarch64.opt (aarch64-vect-unroll-limit): New.
12556 * doc/invoke.texi: (aarch64-vect-unroll-limit): Document new option.
12557
12558 2022-03-31 Martin Jambor <mjambor@suse.cz>
12559
12560 PR ipa/103083
12561 * ipa-prop.h (ipa_ancestor_jf_data): New flag keep_null;
12562 (ipa_get_jf_ancestor_keep_null): New function.
12563 * ipa-prop.cc (ipa_set_ancestor_jf): Initialize keep_null field of the
12564 ancestor function.
12565 (compute_complex_assign_jump_func): Pass false to keep_null
12566 parameter of ipa_set_ancestor_jf.
12567 (compute_complex_ancestor_jump_func): Pass true to keep_null
12568 parameter of ipa_set_ancestor_jf.
12569 (update_jump_functions_after_inlining): Carry over keep_null from the
12570 original ancestor jump-function or merge them.
12571 (ipa_write_jump_function): Stream keep_null flag.
12572 (ipa_read_jump_function): Likewise.
12573 (ipa_print_node_jump_functions_for_edge): Print the new flag.
12574 * ipa-cp.cc (class ipcp_bits_lattice): Make various getters const. New
12575 member function known_nonzero_p.
12576 (ipcp_bits_lattice::known_nonzero_p): New.
12577 (ipcp_bits_lattice::meet_with_1): New parameter drop_all_ones,
12578 observe it.
12579 (ipcp_bits_lattice::meet_with): Likewise.
12580 (propagate_bits_across_jump_function): Simplify. Pass true in
12581 drop_all_ones when it is necessary.
12582 (propagate_aggs_across_jump_function): Take care of keep_null
12583 flag.
12584 (ipa_get_jf_ancestor_result): Propagate NULL accross keep_null
12585 jump functions.
12586
12587 2022-03-31 Martin Jambor <mjambor@suse.cz>
12588
12589 PR ipa/102513
12590 * ipa-cp.cc (decide_whether_version_node): Skip scalar values
12591 which do not fit the known value_range.
12592
12593 2022-03-31 Martin Jambor <mjambor@suse.cz>
12594
12595 PR ipa/103171
12596 * ipa-prop.cc (propagate_controlled_uses): Add a LOAD reference
12597 always when an ADDR_EXPR constant is known to reach a load because
12598 of inlining, not just when removing an ADDR reference.
12599
12600 2022-03-31 Richard Biener <rguenther@suse.de>
12601
12602 PR tree-optimization/105109
12603 * tree-ssa.cc (execute_update_addresses_taken): Suppress
12604 diagnostics on the load of the other complex component.
12605
12606 2022-03-31 Tom de Vries <tdevries@suse.de>
12607
12608 * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
12609
12610 2022-03-31 Richard Biener <rguenther@suse.de>
12611
12612 PR rtl-optimization/105091
12613 * gimple-expr.cc (mark_addressable): Handle TARGET_MEM_REF
12614 bases.
12615
12616 2022-03-31 Richard Biener <rguenther@suse.de>
12617
12618 Revert:
12619 2021-09-13 Richard Earnshaw <rearnsha@arm.com>
12620
12621 PR target/102125
12622 * gimple-fold.c (gimple_fold_builtin_memory_op): Allow folding
12623 memcpy if the size is not more than MOVE_MAX * MOVE_RATIO.
12624
12625 2022-03-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
12626
12627 * gcov-io.cc (gcov_read_string): Reword documentation comment.
12628
12629 2022-03-30 Bill Schmidt <wschmidt@linux.ibm.com>
12630
12631 * config/rs6000/rs6000-builtins.def (NEG_V16QI): Move to [altivec]
12632 stanza.
12633 (NEG_V4SF): Likewise.
12634 (NEG_V4SI): Likewise.
12635 (NEG_V8HI): Likewise.
12636 (NEG_V2DF): Move to [vsx] stanza.
12637 (NEG_V2DI): Likewise.
12638
12639 2022-03-30 Vladimir N. Makarov <vmakarov@redhat.com>
12640
12641 PR middle-end/105032
12642 * lra-assigns.cc (find_reload_regno_insns): Modify loop condition.
12643
12644 2022-03-30 Tom de Vries <tdevries@suse.de>
12645 Tobias Burnus <tobias@codesourcery.com>
12646
12647 * doc/invoke.texi (march): Document __PTX_SM__.
12648 (mptx): Document __PTX_ISA_VERSION_MAJOR__ and
12649 __PTX_ISA_VERSION_MINOR__.
12650
12651 2022-03-30 Jakub Jelinek <jakub@redhat.com>
12652
12653 PR sanitizer/105093
12654 * ubsan.cc (instrument_object_size): If t is equal to inner and
12655 is a decl other than global var, punt. When emitting call to
12656 UBSAN_OBJECT_SIZE ifn, make sure base is addressable.
12657
12658 2022-03-30 Jakub Jelinek <jakub@redhat.com>
12659
12660 PR tree-optimization/105094
12661 * gimple-ssa-store-merging.cc (mem_valid_for_store_merging): Punt if
12662 bitsize <= 0 rather than just == 0.
12663
12664 2022-03-30 Tom de Vries <tdevries@suse.de>
12665
12666 * doc/invoke.texi (misa, mptx): Update.
12667 (march, march-map): Add.
12668
12669 2022-03-30 Thomas Schwinge <thomas@codesourcery.com>
12670
12671 * opt-functions.awk (n_args): New function.
12672 (lang_enabled_by): Merge function into...
12673 * optc-gen.awk <END>: ... sole user here.
12674 Improve diagnostics.
12675
12676 2022-03-29 Marek Polacek <polacek@redhat.com>
12677 Jakub Jelinek <jakub@redhat.com>
12678
12679 PR middle-end/103597
12680 * gimplify.cc (collect_fallthrough_labels): Don't push UNUSED_LABEL_Ps
12681 into labels. Maybe set prev to the statement preceding UNUSED_LABEL_P.
12682 (gimplify_cond_expr): Set UNUSED_LABEL_P.
12683 * tree.h (UNUSED_LABEL_P): New.
12684
12685 2022-03-29 Michael Meissner <meissner@linux.ibm.com>
12686
12687 * config/rs6000/vsx.md (vsx_extract_<mode>): Allow destination to
12688 be any VSX register.
12689
12690 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
12691
12692 PR target/102024
12693 * config/aarch64/aarch64.cc (aapcs_vfp_sub_candidate): Handle
12694 zero-sized bit-fields. Detect cases where a warning may be needed.
12695 (aarch64_vfp_is_call_or_return_candidate): Emit a note if a
12696 zero-sized bit-field has caused parameter passing to change.
12697
12698 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
12699
12700 PR target/102024
12701 * config/arm/arm.cc (aapcs_vfp_sub_candidate): Handle zero-sized
12702 bit-fields. Detect cases where a warning may be needed.
12703 (aapcs_vfp_is_call_or_return_candidate): Emit a note if
12704 a zero-sized bit-field has caused parameter passing to change.
12705
12706 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
12707
12708 PR target/96882
12709 * config/arm/arm.cc (arm_get_pcs_model): Disable selection of
12710 ARM_PCS_AAPCS_LOCAL.
12711
12712 2022-03-29 Tom de Vries <tdevries@suse.de>
12713
12714 PR target/104857
12715 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Emit
12716 __PTX_ISA_VERSION_MAJOR__ and __PTX_ISA_VERSION_MINOR__.
12717 * config/nvptx/nvptx.cc (ptx_version_to_number): New function.
12718 * config/nvptx/nvptx-protos.h (ptx_version_to_number): Declare.
12719
12720 2022-03-29 Tom de Vries <tdevries@suse.de>
12721
12722 * config/nvptx/nvptx.opt (m64): Update help text to reflect that it
12723 is ignored.
12724
12725 2022-03-29 Tom de Vries <tdevries@suse.de>
12726
12727 PR target/104714
12728 * config/nvptx/nvptx.opt (march-map=*): Add aliases.
12729
12730 2022-03-29 Jan Hubicka <hubicka@ucw.cz>
12731
12732 * config/i386/i386-builtins.cc (ix86_vectorize_builtin_gather): Test
12733 TARGET_USE_GATHER_2PARTS and TARGET_USE_GATHER_4PARTS.
12734 * config/i386/i386.h (TARGET_USE_GATHER_2PARTS): New macro.
12735 (TARGET_USE_GATHER_4PARTS): New macro.
12736 * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): New tune
12737 (X86_TUNE_USE_GATHER_4PARTS): New tune
12738
12739 2022-03-29 Tom de Vries <tdevries@suse.de>
12740
12741 * config/nvptx/nvptx.opt (march): Add alias of misa.
12742
12743 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
12744 Lulu Cheng <chenglulu@loongson.cn>
12745
12746 * doc/install.texi: Add LoongArch options section.
12747 * doc/invoke.texi: Add LoongArch options section.
12748 * doc/md.texi: Add LoongArch options section.
12749
12750 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
12751 Lulu Cheng <chenglulu@loongson.cn>
12752
12753 * config/loongarch/loongarch-c.cc
12754
12755 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
12756 Lulu Cheng <chenglulu@loongson.cn>
12757
12758 * config/loongarch/larchintrin.h: New file.
12759 * config/loongarch/loongarch-builtins.cc: New file.
12760
12761 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
12762 Lulu Cheng <chenglulu@loongson.cn>
12763
12764 * config/host-linux.cc: Add LoongArch support.
12765 * config/loongarch/loongarch-protos.h: New file.
12766 * config/loongarch/loongarch-tune.h: Likewise.
12767 * config/loongarch/loongarch.cc: Likewise.
12768 * config/loongarch/loongarch.h: Likewise.
12769
12770 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
12771 Lulu Cheng <chenglulu@loongson.cn>
12772
12773 * config/loongarch/constraints.md: New file.
12774 * config/loongarch/generic.md: New file.
12775 * config/loongarch/la464.md: New file.
12776 * config/loongarch/loongarch-ftypes.def: New file.
12777 * config/loongarch/loongarch-modes.def: New file.
12778 * config/loongarch/loongarch.md: New file.
12779 * config/loongarch/predicates.md: New file.
12780 * config/loongarch/sync.md: New file.
12781
12782 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
12783 Lulu Cheng <chenglulu@loongson.cn>
12784
12785 * configure: Regenerate file.
12786
12787 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
12788 Lulu Cheng <chenglulu@loongson.cn>
12789
12790 * common/config/loongarch/loongarch-common.cc: New file.
12791 * config/loongarch/genopts/genstr.sh: New file.
12792 * config/loongarch/genopts/loongarch-strings: New file.
12793 * config/loongarch/genopts/loongarch.opt.in: New file.
12794 * config/loongarch/loongarch-str.h: New file.
12795 * config/loongarch/gnu-user.h: New file.
12796 * config/loongarch/linux.h: New file.
12797 * config/loongarch/loongarch-cpu.cc: New file.
12798 * config/loongarch/loongarch-cpu.h: New file.
12799 * config/loongarch/loongarch-def.c: New file.
12800 * config/loongarch/loongarch-def.h: New file.
12801 * config/loongarch/loongarch-driver.cc: New file.
12802 * config/loongarch/loongarch-driver.h: New file.
12803 * config/loongarch/loongarch-opts.cc: New file.
12804 * config/loongarch/loongarch-opts.h: New file.
12805 * config/loongarch/loongarch.opt: New file.
12806 * config/loongarch/t-linux: New file.
12807 * config/loongarch/t-loongarch: New file.
12808 * config.gcc: Add LoongArch support.
12809 * configure.ac: Add LoongArch support.
12810
12811 2022-03-29 Thomas Schwinge <thomas@codesourcery.com>
12812
12813 * opt-functions.awk (lang_enabled_by): Fix 'enabledby_negargs'
12814 typo.
12815
12816 2022-03-29 Richard Biener <rguenther@suse.de>
12817
12818 PR tree-optimization/105080
12819 * tree-ssa-strlen.cc (printf_strlen_execute): Always init
12820 loops and SCEV.
12821
12822 2022-03-28 Indu Bhagat <indu.bhagat@oracle.com>
12823
12824 * ctfout.cc (ctf_preprocess): Use ctfc_get_num_ctf_vars instead.
12825 (output_ctf_vars): Likewise.
12826
12827 2022-03-28 Jason Merrill <jason@redhat.com>
12828
12829 PR c++/59426
12830 * doc/extend.texi: Refer to __is_trivial instead of __is_pod.
12831
12832 2022-03-28 H.J. Lu <hjl.tools@gmail.com>
12833
12834 PR target/105068
12835 * config/i386/sse.md (*ssse3_pshufbv8qi3): Also replace "Yv" with
12836 "Yw" in clobber.
12837
12838 2022-03-28 Tom de Vries <tdevries@suse.de>
12839
12840 PR target/104818
12841 * config/nvptx/gen-opt.sh (ptx_isa): Improve help text.
12842 * config/nvptx/nvptx-gen.opt: Regenerate.
12843 * config/nvptx/nvptx.opt (misa, mptx, ptx_version): Improve help text.
12844 * config/nvptx/t-nvptx (s-nvptx-gen-opt): Add missing dependency on
12845 gen-opt.sh.
12846
12847 2022-03-28 David Malcolm <dmalcolm@redhat.com>
12848
12849 PR analyzer/104308
12850 * gimple-fold.cc (gimple_fold_builtin_memory_op): When optimizing
12851 to loads then stores, set the location of the new load stmt.
12852
12853 2022-03-28 Richard Biener <rguenther@suse.de>
12854
12855 PR tree-optimization/105070
12856 * tree-switch-conversion.h
12857 (bit_test_cluster::hoist_edge_and_branch_if_true): Add location
12858 argument.
12859 * tree-switch-conversion.cc
12860 (bit_test_cluster::hoist_edge_and_branch_if_true): Annotate
12861 cond with location.
12862 (bit_test_cluster::emit): Annotate all generated expressions
12863 with location.
12864
12865 2022-03-28 Andre Vieira <andre.simoesdiasvieira@arm.com>
12866
12867 * config/aarch64/aarch64-cores.def: Update Neoverse N2 core entry.
12868
12869 2022-03-28 liuhongt <hongtao.liu@intel.com>
12870
12871 PR target/105066
12872 * config/i386/sse.md (vec_set<mode>_0): Change attr "isa" of
12873 alternative 4 from sse4_noavx to noavx.
12874
12875 2022-03-28 Jakub Jelinek <jakub@redhat.com>
12876
12877 PR tree-optimization/105056
12878 * tree-predcom.cc (component::component): Initialize also comp_step.
12879
12880 2022-03-27 H.J. Lu <hjl.tools@gmail.com>
12881
12882 PR target/105068
12883 * config/i386/sse.md (*ssse3_pshufbv8qi3): Replace "Yv" with
12884 "Yw".
12885
12886 2022-03-26 Roger Sayle <roger@nextmovesoftware.com>
12887
12888 PR middle-end/104885
12889 * calls.cc (mark_stack_region_used): Check that the region
12890 is within the allocated size of stack_usage_map.
12891
12892 2022-03-26 Jakub Jelinek <jakub@redhat.com>
12893
12894 PR rtl-optimization/103775
12895 * recog.cc (check_invalid_inc_dec): New function.
12896 (insn_invalid_p): Return 1 if REG_INC operand overlaps
12897 any stored REGs.
12898
12899 2022-03-26 H.J. Lu <hjl.tools@gmail.com>
12900
12901 PR target/105058
12902 * config/i386/sse.md (loadiwkey): Replace "v" with "x".
12903 (aes<aesklvariant>u8): Likewise.
12904
12905 2022-03-26 H.J. Lu <hjl.tools@gmail.com>
12906
12907 PR target/105052
12908 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
12909 Replace "Yv" with "x".
12910 (ssse3_ph<plusminus_mnemonic>dv2si3): Likewise.
12911 (ssse3_psign<mode>3): Likewise.
12912
12913 2022-03-26 Hans-Peter Nilsson <hp@axis.com>
12914
12915 * reload.cc (find_reloads): Align comment with code where
12916 considering the intersection of register classes then tweaking the
12917 regclass for the current alternative or rejecting it.
12918
12919 2022-03-25 Christophe Lyon <christohe.lyon@arm.com>
12920
12921 PR target/104882
12922 Revert
12923 2021-06-11 Christophe Lyon <christophe.lyon@linaro.org>
12924
12925 * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): Delete.
12926 (mve_vec_unpack<US>_hi_<mode>): Delete.
12927 (@mve_vec_pack_trunc_lo_<mode>): Delete.
12928 (mve_vmovntq_<supf><mode>): Remove '@' prefix.
12929 * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move back
12930 from vec-common.md.
12931 (vec_unpack<US>_lo_<mode>): Likewise.
12932 (vec_pack_trunc_<mode>): Rename from
12933 neon_quad_vec_pack_trunc_<mode>.
12934 * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): Delete.
12935 (vec_unpack<US>_lo_<mode>): Delete.
12936 (vec_pack_trunc_<mode>): Delete.
12937
12938 2022-03-25 Vladimir N. Makarov <vmakarov@redhat.com>
12939
12940 PR middle-end/104971
12941 * lra-lives.cc (process_bb_lives): Check hard_regs_live for hard
12942 regs to clear remove_p flag.
12943
12944 2022-03-25 Richard Biener <rguenther@suse.de>
12945
12946 PR tree-optimization/105053
12947 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Pick
12948 the correct live-out stmt for a reduction chain.
12949
12950 2022-03-25 Richard Biener <rguenther@suse.de>
12951
12952 PR middle-end/105049
12953 * tree.cc (uniform_vector_p): Recurse for VECTOR_CST or
12954 CONSTRUCTOR first elements.
12955
12956 2022-03-25 Tobias Burnus <tobias@codesourcery.com>
12957
12958 PR analyzer/103533
12959 * doc/invoke.texi (Static Analyzer Options): Move
12960 @ignore block after @gccoptlist's '}' for 'make pdf'.
12961
12962 2022-03-25 David Malcolm <dmalcolm@redhat.com>
12963
12964 PR analyzer/104954
12965 * doc/invoke.texi (Static Analyzer Options): Add
12966 -fdump-analyzer-untracked.
12967
12968 2022-03-25 Avinash Sonawane <rootkea@gmail.com>
12969
12970 PR analyzer/103533
12971 * doc/invoke.texi: Document that enabling taint analyzer
12972 checker disables some warnings from `-fanalyzer`.
12973
12974 2022-03-24 Alexandre Oliva <oliva@adacore.com>
12975
12976 PR debug/104564
12977 * gimple-harden-conditionals.cc (detach_value): Keep temps
12978 anonymous.
12979
12980 2022-03-24 Alexandre Oliva <oliva@adacore.com>
12981
12982 PR middle-end/104975
12983 * gimple-harden-conditionals.cc
12984 (pass_harden_compares::execute): Force split in case of
12985 multiple edges.
12986
12987 2022-03-24 Jakub Jelinek <jakub@redhat.com>
12988
12989 PR c++/105035
12990 * fold-const.cc (operand_equal_p) <case COMPONENT_REF>: If either
12991 field0 or field1 is not a FIELD_DECL, return false.
12992
12993 2022-03-24 Richard Biener <rguenther@suse.de>
12994
12995 * tree-predcom.cc (chain::chain): Add CTOR.
12996 (component::component): Likewise.
12997 (pcom_worker::release_chain): Use delete.
12998 (release_components): Likewise.
12999 (pcom_worker::filter_suitable_components): Likewise.
13000 (pcom_worker::split_data_refs_to_components): Use new.
13001 (make_invariant_chain): Likewise.
13002 (make_rooted_chain): Likewise.
13003 (pcom_worker::combine_chains): Likewise.
13004 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
13005 Make sure to release previously constructed scalar_results.
13006 * tree-vect-stmts.cc (vectorizable_load): Use auto_vec
13007 for vec_offsets.
13008 * vr-values.cc (simplify_using_ranges::~simplify_using_ranges):
13009 Release m_flag_set_edges.
13010
13011 2022-03-24 Siddhesh Poyarekar <siddhesh@gotplt.org>
13012
13013 PR tree-optimization/104970
13014 * tree-object-size.cc (parm_object_size): Restrict size
13015 computation scenarios to explicit access attributes.
13016
13017 2022-03-24 Kewen Lin <linkw@linux.ibm.com>
13018
13019 PR target/104967
13020 * config/rs6000/rs6000-c.cc (find_instance): Skip instances with null
13021 function types.
13022
13023 2022-03-23 Richard Biener <rguenther@suse.de>
13024
13025 PR target/102125
13026 * gimple-fold.cc (gimple_fold_builtin_memory_op): Allow the
13027 use of movmisalign when either the source or destination
13028 decl is properly aligned.
13029
13030 2022-03-23 Richard Biener <rguenther@suse.de>
13031
13032 PR rtl-optimization/105028
13033 * ira-color.cc (form_threads_from_copies): Remove unnecessary
13034 copying of the sorted_copies tail.
13035
13036 2022-03-23 Martin Liska <mliska@suse.cz>
13037
13038 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
13039 Use %qs in format.
13040 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
13041 Reword the error message.
13042
13043 2022-03-23 liuhongt <hongtao.liu@intel.com>
13044
13045 PR target/104976
13046 * config/i386/sse.md (ssePSmodelower): New.
13047 (*avx_cmp<mode>3_ltint_not): Force_reg operand before
13048 lowpart_subreg to avoid NULL_RTX.
13049 (<avx512>_fmaddc_<mode>_mask1<round_expand_name>,
13050 <avx512>_fcmaddc_<mode>_mask1<round_expand_name>,
13051 fma_<mode>_fmaddc_bcst, fma_<mode>_fcmaddc_bcst,
13052 <avx512>_<complexopname>_<mode>_mask<round_name>,
13053 avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name>,
13054 avx512fp16_fcmaddcsh_v8hf_mask3<round_expand_name>,
13055 avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
13056 avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
13057 float<floatunssuffix><mode>v4hf2,
13058 float<floatunssuffix>v2div2hf2,
13059 fix<fixunssuffix>_truncv4hf<mode>2,
13060 fix<fixunssuffix>_truncv2hfv2di2, extendv4hf<mode>2,
13061 extendv2hfv2df2,
13062 trunc<mode>v4hf2,truncv2dfv2hf2,
13063 *avx512bw_permvar_truncv16siv16hi_1,
13064 *avx512bw_permvar_truncv16siv16hi_1_hf,
13065 *avx512f_permvar_truncv8siv8hi_1,
13066 *avx512f_permvar_truncv8siv8hi_1_hf,
13067 *avx512f_vpermvar_truncv8div8si_1,
13068 *avx512f_permvar_truncv32hiv32qi_1,
13069 *avx512f_permvar_truncv16hiv16qi_1,
13070 *avx512f_permvar_truncv4div4si_1,
13071 *avx512f_pshufb_truncv8hiv8qi_1,
13072 *avx512f_pshufb_truncv4siv4hi_1,
13073 *avx512f_pshufd_truncv2div2si_1,
13074 sdot_prod<mode>, avx2_pblend<ssemodesuffix>_1,
13075 ashrv2di3,ashrv2di3,usdot_prod<mode>): Ditto.
13076
13077 2022-03-22 Tom de Vries <tdevries@suse.de>
13078
13079 PR target/104925
13080 * config/nvptx/nvptx.md (define_insn "nvptx_uniform_warp_check"):
13081 Use % as register prefix.
13082
13083 2022-03-22 Tom de Vries <tdevries@suse.de>
13084
13085 * config/nvptx/nvptx.cc (nvptx_scalar_mode_supported_p)
13086 (nvptx_libgcc_floating_mode_supported_p): Only enable HFmode for
13087 mexperimental.
13088
13089 2022-03-22 Tom de Vries <tdevries@suse.de>
13090
13091 * config/nvptx/nvptx.opt (mexperimental): New option.
13092
13093 2022-03-22 Tom de Vries <tdevries@suse.de>
13094
13095 PR target/104957
13096 * config/nvptx/nvptx-protos.h (nvptx_asm_output_def_from_decls): Declare.
13097 * config/nvptx/nvptx.cc (write_fn_proto_1): Don't add function marker
13098 for alias.
13099 (SET_ASM_OP, NVPTX_ASM_OUTPUT_DEF): New macro def.
13100 (nvptx_asm_output_def_from_decls): New function.
13101 * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): New macro def, define to
13102 gcc_unreachable ().
13103 (ASM_OUTPUT_DEF_FROM_DECLS): New macro def, define to
13104 nvptx_asm_output_def_from_decls.
13105 * config/nvptx/nvptx.opt (malias): New opt.
13106
13107 2022-03-22 Tom de Vries <tdevries@suse.de>
13108
13109 PR target/104916
13110 PR target/104783
13111 * config/nvptx/nvptx.md (define_expand "omp_simt_exit"): Emit warp
13112 sync (or uniform warp check for mptx < 6.0).
13113
13114 2022-03-22 Richard Biener <rguenther@suse.de>
13115
13116 PR tree-optimization/105012
13117 * tree-if-conv.cc (ifcvt_local_dce): Only call
13118 dse_classify_store when we have a VDEF.
13119
13120 2022-03-22 Martin Liska <mliska@suse.cz>
13121
13122 PR target/104902
13123 * config/nvptx/nvptx.cc (handle_ptx_version_option):
13124 Fix option wrapping in an error message.
13125
13126 2022-03-22 Martin Liska <mliska@suse.cz>
13127
13128 PR target/104903
13129 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
13130 Wrap const keyword.
13131
13132 2022-03-22 Martin Liska <mliska@suse.cz>
13133
13134 * config/v850/v850-c.cc (pop_data_area): Fix typo in pragma
13135 name.
13136
13137 2022-03-22 Martin Liska <mliska@suse.cz>
13138
13139 PR target/104898
13140 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
13141 Use %qs instead of (%qs).
13142
13143 2022-03-22 Martin Liska <mliska@suse.cz>
13144
13145 PR target/104898
13146 * config/i386/i386-options.cc (ix86_option_override_internal):
13147 Use '%qs' instead of '(%qs)'.
13148
13149 2022-03-22 Martin Liska <mliska@suse.cz>
13150
13151 PR target/104898
13152 * config/aarch64/aarch64.cc (aarch64_handle_attr_arch):
13153 Use 'qs' and remove usage '(%qs)'.
13154 (aarch64_handle_attr_cpu): Likewise.
13155 (aarch64_handle_attr_tune): Likewise.
13156 (aarch64_handle_attr_isa_flags): Likewise.
13157
13158 2022-03-22 Tamar Christina <tamar.christina@arm.com>
13159 Andre Vieira <andre.simoesdiasvieira@arm.com>
13160
13161 * config/aarch64/aarch64.cc (neoversev1_regmove_cost): New tuning
13162 struct.
13163 (neoversev1_tunings): Use neoversev1_regmove_cost and update store_int
13164 cost.
13165 (neoverse512tvb_tunings): Likewise.
13166
13167 2022-03-22 Tamar Christina <tamar.christina@arm.com>
13168 Andre Vieira <andre.simoesdiasvieira@arm.com>
13169
13170 * config/aarch64/aarch64.cc (demeter_addrcost_table,
13171 demeter_regmove_cost, demeter_advsimd_vector_cost,
13172 demeter_sve_vector_cost, demeter_scalar_issue_info,
13173 demeter_advsimd_issue_info, demeter_sve_issue_info,
13174 demeter_vec_issue_info, demeter_vector_cost,
13175 demeter_tunings): New tuning structs.
13176 (aarch64_ve_op_count::rename_cycles_per_iter): Enable for demeter
13177 tuning.
13178 * config/aarch64/aarch64-cores.def: Add entry for demeter.
13179 * config/aarch64/aarch64-tune.md (tune): Add demeter to list.
13180
13181 2022-03-22 Tamar Christina <tamar.christina@arm.com>
13182 Andre Vieira <andre.simoesdiasvieira@arm.com>
13183
13184 * config/aarch64/aarch64-protos.h (struct cpu_memmov_cost): New struct.
13185 (struct tune_params): Change type of memmov_cost to use cpu_memmov_cost.
13186 * config/aarch64/aarch64.cc (aarch64_memory_move_cost): Update all
13187 tunings to use cpu_memmov_cost struct.
13188
13189 2022-03-22 Tamar Christina <tamar.christina@arm.com>
13190 Andre Vieira <andre.simoesdiasvieira@arm.com>
13191
13192 * config/aarch64/aarch64.cc (neoversen2_addrcost_table,
13193 neoversen2_regmove_cost, neoversen2_advsimd_vector_cost,
13194 neoversen2_sve_vector_cost, neoversen2_scalar_issue_info,
13195 neoversen2_advsimd_issue_info, neoversen2_sve_issue_info,
13196 neoversen2_vec_issue_info, neoversen2_tunings): New structs.
13197 (neoversen2_tunings): Use new structs and update tuning flags.
13198 (aarch64_vec_op_count::rename_cycles_per_iter): Enable for neoversen2
13199 tuning.
13200
13201 2022-03-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
13202
13203 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH9): Add FP16 feature
13204 bit.
13205
13206 2022-03-22 liuhongt <hongtao.liu@intel.com>
13207
13208 PR target/104982
13209 * config/i386/i386.md (*jcc_bt<mode>_mask): Extend the
13210 following splitter to reversed condition.
13211
13212 2022-03-22 Jakub Jelinek <jakub@redhat.com>
13213
13214 PR rtl-optimization/104989
13215 * calls.cc (expand_call): Don't set ECF_NORETURN in flags after
13216 sorry for passing too large argument, instead set sibcall_failure
13217 for pass == 0, or a new normal_failure flag otherwise. If
13218 normal_failure is set, don't assert all stack has been deallocated
13219 at the end and throw away the whole insn sequence.
13220
13221 2022-03-22 Qian Jianhua <qianjh@cn.fujitsu.com>
13222
13223 * print-tree.cc: Change array length
13224
13225 2022-03-22 Hongyu Wang <hongyu.wang@intel.com>
13226
13227 PR target/104978
13228 * config/i386/sse.md
13229 (avx512fp16_fmaddcsh_v8hf_mask1<round_expand_name):
13230 Use avx512f_movsf_mask instead of vmovaps or vblend, and
13231 force_reg before lowpart_subreg.
13232 (avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name): Likewise.
13233
13234 2022-03-21 H.J. Lu <hjl.tools@gmail.com>
13235
13236 PR target/105000
13237 * common/config/i386/i386-common.cc
13238 (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Replace
13239 OPTION_MASK_ISA2_AVX512F_UNSET with OPTION_MASK_ISA2_SSE_UNSET.
13240
13241 2022-03-21 H.J. Lu <hjl.tools@gmail.com>
13242
13243 PR target/104998
13244 * common/config/i386/cpuinfo.h (get_available_features): Pass
13245 0x19 to __cpuid for bit_AESKLE. Enable FEATURE_AESKLE only if
13246 bit_AESKLE is set.
13247
13248 2022-03-21 Richard Sandiford <richard.sandiford@arm.com>
13249
13250 PR middle-end/104869
13251 * rtl-ssa/accesses.h (clobber_group::prev_clobber): Declare.
13252 (clobber_group::next_clobber): Likewise.
13253 (def_lookup::prev_def): Rename to...
13254 (def_lookup::last_def_of_prev_group): ...this.
13255 (def_lookup::next_def): Rename to...
13256 (def_lookup::first_def_of_next_group): ...this.
13257 (def_lookup::matching_or_prev_def): Rename to...
13258 (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
13259 (def_lookup::matching_or_next_def): Rename to...
13260 (def_lookup::matching_set_or_first_def_of_next_group): ...this.
13261 (def_lookup::prev_def): New function, taking the lookup insn as
13262 argument.
13263 (def_lookup::next_def): Likewise.
13264 * rtl-ssa/member-fns.inl (def_lookup::prev_def): Rename to...
13265 (def_lookup::last_def_of_prev_group): ...this.
13266 (def_lookup::next_def): Rename to...
13267 (def_lookup::first_def_of_next_group): ...this.
13268 (def_lookup::matching_or_prev_def): Rename to...
13269 (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
13270 (def_lookup::matching_or_next_def): Rename to...
13271 (def_lookup::matching_set_or_first_def_of_next_group): ...this.
13272 * rtl-ssa/movement.h (restrict_movement_for_dead_range): Update after
13273 above renaming.
13274 * rtl-ssa/accesses.cc (clobber_group::prev_clobber): New function.
13275 (clobber_group::next_clobber): Likewise.
13276 (def_lookup::prev_def): Likewise.
13277 (def_lookup::next_def): Likewise.
13278 (function_info::make_use_available): Pass the lookup insn to
13279 def_lookup::prev_def and def_lookup::next_def.
13280
13281 2022-03-21 Martin Liska <mliska@suse.cz>
13282
13283 * doc/invoke.texi: Document min-pagesize parameter.
13284
13285 2022-03-21 Richard Biener <rguenther@suse.de>
13286
13287 * tree-ssa-loop-niter.cc (estimate_numbers_of_iterations): Dump
13288 we are estimating niter of loop.
13289
13290 2022-03-21 Kito Cheng <kito.cheng@sifive.com>
13291
13292 * common/config/riscv/riscv-common.cc (riscv_ext_flag_table):
13293 Update flag name and mask name.
13294 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Define
13295 misc macro for vector extensions.
13296 * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): Rename to ...
13297 (MASK_VECTOR_ELEN_32): ... this.
13298 (MASK_VECTOR_EEW_64): Rename to ...
13299 (MASK_VECTOR_ELEN_64): ... this.
13300 (MASK_VECTOR_EEW_FP_32): Rename to ...
13301 (MASK_VECTOR_ELEN_FP_32): ... this.
13302 (MASK_VECTOR_EEW_FP_64): Rename to ...
13303 (MASK_VECTOR_ELEN_FP_64): ... this.
13304 (TARGET_VECTOR_ELEN_32): New.
13305 (TARGET_VECTOR_ELEN_64): Ditto.
13306 (TARGET_VECTOR_ELEN_FP_32): Ditto.
13307 (TARGET_VECTOR_ELEN_FP_64): Ditto.
13308 (TARGET_MIN_VLEN): Ditto.
13309 * config/riscv/riscv.opt (riscv_vector_eew_flags): Rename to ...
13310 (riscv_vector_elen_flags): ... this.
13311
13312 2022-03-21 Hongyu Wang <hongyu.wang@intel.com>
13313
13314 PR target/104977
13315 * config/i386/sse.md
13316 (avx512fp16_fma<complexopname>sh_v8hf<mask_scalarcz_name><round_scalarcz_name>):
13317 Correct round operand for intel dialect.
13318
13319 2022-03-19 Arthur Cohen <arthur.cohen@embecosm.com>
13320
13321 * diagnostic.cc (diagnostic_cc_tests): Rename to...
13322 (c_diagnostic_cc_tests): ...this.
13323 * opt-problem.cc (opt_problem_cc_tests): Rename to...
13324 (c_opt_problem_cc_tests): ...this.
13325 * selftest-run-tests.cc (selftest::run_tests): No longer run
13326 opt_problem_cc_tests or diagnostic_cc_tests.
13327 * selftest.h (diagnostic_cc_tests): Remove declaration.
13328 (opt_problem_cc_tests): Likewise.
13329
13330 2022-03-19 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
13331
13332 PR jit/63854
13333 * hash-traits.h (struct typed_const_free_remove): New.
13334 (struct free_string_hash): New.
13335 * pass_manager.h: Use free_string_hash.
13336 * passes.cc (pass_manager::register_pass_name): Use free_string_hash.
13337 (pass_manager::~pass_manager): Delete allocated m_name_to_pass_map.
13338
13339 2022-03-19 Jakub Jelinek <jakub@redhat.com>
13340
13341 PR middle-end/104971
13342 * config/i386/i386-expand.cc
13343 (ix86_expand_builtin) <case IX86_BUILTIN_READ_FLAGS>: If ignore,
13344 don't push/pop anything and just return const0_rtx.
13345
13346 2022-03-18 Vladimir N. Makarov <vmakarov@redhat.com>
13347
13348 PR rtl-optimization/104961
13349 * lra-assigns.cc (find_reload_regno_insns): Process reload pseudo clobber.
13350
13351 2022-03-18 Jason Merrill <jason@redhat.com>
13352
13353 * tree.h (IDENTIFIER_LENGTH): Add comment.
13354
13355 2022-03-18 Jakub Jelinek <jakub@redhat.com>
13356
13357 PR middle-end/99578
13358 PR middle-end/100680
13359 PR tree-optimization/100834
13360 * params.opt (--param=min-pagesize=): New parameter.
13361 * pointer-query.cc
13362 (compute_objsize_r) <case ARRAY_REF>: Formatting fix.
13363 (compute_objsize_r) <case INTEGER_CST>: Use maximum object size instead
13364 of zero for pointer constants equal or larger than min-pagesize.
13365
13366 2022-03-18 Tom de Vries <tdevries@suse.de>
13367
13368 * gimplify.cc (gimplify_omp_for): Set location using 'input_location'.
13369 Set gfor location only when dealing with a OMP_TASKLOOP.
13370
13371 2022-03-18 Tom de Vries <tdevries@suse.de>
13372
13373 * gimplify.cc (gimplify_omp_for): Set taskloop location.
13374
13375 2022-03-18 Tom de Vries <tdevries@suse.de>
13376
13377 PR target/104952
13378 * omp-low.cc (lower_rec_input_clauses): Make sure GOMP_SIMT_XCHG_BFLY
13379 is executed unconditionally.
13380
13381 2022-03-18 liuhongt <hongtao.liu@intel.com>
13382
13383 PR target/104974
13384 * config/i386/i386.md (*movhi_internal): Set attr type from HI
13385 to HF for alternative 12 under TARGET_AVX512FP16.
13386
13387 2022-03-18 Cui,Lili <lili.cui@intel.com>
13388
13389 PR target/104963
13390 * config/i386/i386.h (PTA_SAPPHIRERAPIDS): change it to base on ICX.
13391 * doc/invoke.texi: Update documents for Intel sapphirerapids.
13392
13393 2022-03-17 Roger Sayle <roger@nextmovesoftware.com>
13394
13395 PR target/86722
13396 PR tree-optimization/90356
13397 * config/i386/i386.md (*movtf_internal): Don't guard
13398 standard_sse_constant_p clause by optimize_function_for_size_p.
13399 (*movdf_internal): Likewise.
13400 (*movsf_internal): Likewise.
13401
13402 2022-03-17 Andrew MacLeod <amacleod@redhat.com>
13403
13404 PR tree-optimization/102943
13405 * gimple-range-cache.cc (ranger_cache::range_from_dom): Find range via
13406 dominators and apply intermediary outgoing edge ranges.
13407
13408 2022-03-17 Richard Biener <rguenther@suse.de>
13409
13410 PR tree-optimization/104960
13411 * passes.def: Add pass parameter to pass_sink_code, mark
13412 last one to unsplit edges.
13413 * tree-ssa-sink.cc (pass_sink_code::set_pass_param): New.
13414 (pass_sink_code::execute): Always execute TODO_cleanup_cfg
13415 when we need to unsplit edges.
13416
13417 2022-03-17 Jakub Jelinek <jakub@redhat.com>
13418
13419 PR middle-end/103984
13420 * gimplify.cc (gimplify_target_expr): Gimplify type sizes and
13421 TARGET_EXPR_INITIAL into a temporary sequence, then push clobbers
13422 and asan unpoisioning, then append the temporary sequence and
13423 finally the TARGET_EXPR_CLEANUP clobbers.
13424
13425 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
13426
13427 * config/i386/sse.md: Delete corrupt character/typo.
13428
13429 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
13430
13431 PR target/94680
13432 * config/i386/sse.md (sse2_movq128): New define_expand to
13433 preserve previous named instruction.
13434 (*sse2_movq128_<mode>): Renamed from sse2_movq128, and
13435 generalized to VI8F_128 (both V2DI and V2DF).
13436
13437 2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
13438
13439 PR tree-optimization/104941
13440 * tree-object-size.cc (size_for_offset): Make useless conversion
13441 check lighter and assign result of fold_convert to OFFSET.
13442
13443 2022-03-16 H.J. Lu <hjl.tools@gmail.com>
13444
13445 PR target/104890
13446 * config/i386/x86gprintrin.h: Also check _SOFT_FLOAT before
13447 pushing target("general-regs-only").
13448
13449 2022-03-16 Kito Cheng <kito.cheng@sifive.com>
13450
13451 * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
13452 Add version info for zk, zks and zkn.
13453
13454 2022-03-16 LiaoShihua <shihua@iscas.ac.cn>
13455
13456 * common/config/riscv/riscv-common.cc
13457 (riscv_combine_info): New.
13458 (riscv_subset_list::handle_combine_ext): Combine back into zk to
13459 maintain the canonical order in isa strings.
13460 (riscv_subset_list::parse): Ditto.
13461 * config/riscv/riscv-subset.h (handle_combine_ext): New.
13462
13463 2022-03-16 Richard Biener <rguenther@suse.de>
13464
13465 PR tree-optimization/102008
13466 * passes.def: Move the added code sinking pass before the
13467 preceeding phiopt pass.
13468
13469 2022-03-16 Patrick Palka <ppalka@redhat.com>
13470
13471 PR c++/96780
13472 * doc/invoke.texi (C++ Dialect Options): Document
13473 -ffold-simple-inlines.
13474
13475 2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
13476
13477 PR tree-optimization/104942
13478 * tree-object-size.cc (alloc_object_size): Remove STRIP_NOPS.
13479
13480 2022-03-16 Jakub Jelinek <jakub@redhat.com>
13481
13482 PR target/104910
13483 * config/aarch64/aarch64.cc (aarch64_load_symref_appropriately): Copy
13484 imm rtx.
13485
13486 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
13487 Richard Biener <rguenther@suse.de>
13488
13489 * gimple-match-head.cc (single_use): Implement inline using a
13490 single loop.
13491
13492 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
13493
13494 * match.pd (X CMP X -> true): Test tree_expr_maybe_nan_p
13495 instead of HONOR_NANS.
13496 (X LTGT X -> false): Enable if X is not tree_expr_maybe_nan_p, as
13497 this can't trap/signal.
13498
13499 2022-03-16 liuhongt <hongtao.liu@intel.com>
13500
13501 PR target/104946
13502 * config/i386/i386-builtin.def (BDESC): Add
13503 CODE_FOR_sse4_1_blendvpd for IX86_BUILTIN_BLENDVPD.
13504 * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
13505 __builtin_ia32_blendvpd w/o sse4.2
13506
13507 2022-03-15 Peter Bergner <bergner@linux.ibm.com>
13508
13509 PR target/104923
13510 * config/rs6000/predicates.md (mma_disassemble_output_operand): Restrict
13511 acceptable MEM addresses.
13512
13513 2022-03-15 Jakub Jelinek <jakub@redhat.com>
13514
13515 PR target/91229
13516 * config/riscv/riscv.cc (riscv_pass_aggregate_in_fpr_pair_p,
13517 riscv_pass_aggregate_in_fpr_and_gpr_p): Pass OPT_Wpsabi instead of 0
13518 to warning calls.
13519
13520 2022-03-15 Jakub Jelinek <jakub@redhat.com>
13521
13522 PR target/104890
13523 * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Use no-mmx,no-sse
13524 instead of general-regs-only.
13525
13526 2022-03-15 Roger Sayle <roger@nextmovesoftware.com>
13527 Marc Glisse <marc.glisse@inria.fr>
13528 Richard Biener <rguenther@suse.de>
13529
13530 PR tree-optimization/101895
13531 * match.pd (vec_same_elem_p): Handle CONSTRUCTOR_EXPR def.
13532 (plus (vec_perm (mult ...) ...) ...): New reordering simplification.
13533
13534 2022-03-15 Jakub Jelinek <jakub@redhat.com>
13535
13536 PR rtl-optimization/104814
13537 * ifcvt.cc (find_if_case_1, find_if_case_2): Punt if test_bb doesn't
13538 end with onlyjump_p. Assume BB_END (test_bb) is always non-NULL.
13539
13540 2022-03-15 Martin Sebor <msebor@redhat.com>
13541
13542 PR middle-end/104436
13543 * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
13544 Check for warning suppression. Avoid by-value arguments transformed
13545 into by-transparent-reference.
13546
13547 2022-03-14 Roger Sayle <roger@nextmovesoftware.com>
13548 Uroš Bizjak <ubizjak@gmail.com>
13549
13550 * config/i386/i386.md (peephole2 xorl;movb -> movzbl): Disable
13551 transformation when *zero_extend<mode>si2 is not available.
13552
13553 2022-03-14 Xi Ruoyao <xry111@mengyan1223.wang>
13554
13555 * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Define.
13556 * config/mips/mips.cc (mips_option_override): Make
13557 -fsanitize=address imply -fasynchronous-unwind-tables. This is
13558 needed by libasan for stack backtrace on MIPS.
13559 (mips_asan_shadow_offset): Return SUBTARGET_SHADOW_OFFSET.
13560
13561 2022-03-14 Jakub Jelinek <jakub@redhat.com>
13562
13563 PR debug/104778
13564 * lra.cc (lra_substitute_pseudo): For debug_p mode, simplify
13565 SUBREG, ZERO_EXTEND, SIGN_EXTEND, FLOAT or UNSIGNED_FLOAT if recursive
13566 call simplified the first operand into VOIDmode constant.
13567
13568 2022-03-14 Jakub Jelinek <jakub@redhat.com>
13569
13570 PR tree-optimization/102586
13571 * doc/extend.texi (__builtin_clear_padding): Clearify that for C++
13572 argument type should be pointer to trivially-copyable type unless it
13573 is address of a variable or parameter.
13574
13575 2022-03-14 Jakub Jelinek <jakub@redhat.com>
13576
13577 PR target/99754
13578 * config/i386/emmintrin.h (_mm_loadu_si32): Put loaded value into
13579 first rather than last element of the vector, use __m32_u to do
13580 a really unaligned load, use just 0 instead of (int)0.
13581 (_mm_loadu_si16): Put loaded value into first rather than last
13582 element of the vector, use __m16_u to do a really unaligned load,
13583 use just 0 instead of (short)0.
13584
13585 2022-03-14 Jakub Jelinek <jakub@redhat.com>
13586
13587 PR other/104899
13588 * config/bfin/bfin.cc (bfin_handle_longcall_attribute): Fix a typo
13589 in diagnostic message - cannott -> cannot. Use %< and %> around
13590 names of attribute. Avoid too long line.
13591 * range-op.cc (operator_logical_and::op1_range): Fix up a typo
13592 in comment - cannott -> cannot. Use 2 spaces after . instead of one.
13593
13594 2022-03-14 liuhongt <hongtao.liu@intel.com>
13595
13596 PR target/104666
13597 * config/i386/i386-expand.cc
13598 (ix86_check_builtin_isa_match): New func.
13599 (ix86_expand_builtin): Move code to
13600 ix86_check_builtin_isa_match and call it.
13601 * config/i386/i386-protos.h
13602 (ix86_check_builtin_isa_match): Declare.
13603 * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
13604 builtin into gimple when isa mismatches.
13605
13606 2022-03-13 Tobias Burnus <tobias@codesourcery.com>
13607
13608 * doc/invoke.texi: Fix typos.
13609 * doc/tm.texi.in: Remove duplicated word.
13610 * doc/tm.texi: Regenerate.
13611
13612 2022-03-12 Segher Boessenkool <segher@kernel.crashing.org>
13613
13614 PR target/104829
13615 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Don't output
13616 "ppc" and "ppc64" based on rs6000_cpu.
13617
13618 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
13619
13620 PR middle-end/100280
13621 PR middle-end/104892
13622 * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
13623 Remove special handling of 'GOMP_MAP_FORCE_TOFROM'.
13624
13625 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
13626
13627 PR middle-end/100280
13628 PR middle-end/104086
13629 * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
13630 Mark variables used in 'present' clauses as addressable.
13631 * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Gracefully
13632 handle duplicate 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
13633
13634 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
13635
13636 PR other/65095
13637 * tree-core.h (user_omp_claus_code_name): Declare function.
13638 * tree.cc (user_omp_clause_code_name): New function.
13639
13640 2022-03-12 Roger Sayle <roger@nextmovesoftware.com>
13641
13642 PR middle-end/98420
13643 * match.pd (minus @0 @0): Additional checks for -fno-rounding-math
13644 (the defaut) or -fno-signed-zeros.
13645
13646 2022-03-12 Michael Meissner <meissner@linux.ibm.com>
13647
13648 PR target/104868
13649 * config/rs6000/vsx.md (extendditi2): Use a 'b' constraint when
13650 moving from a GPR register to an Altivec register.
13651
13652 2022-03-11 Roger Sayle <roger@nextmovesoftware.com>
13653
13654 PR tree-optimization/98335
13655 * config/i386/i386.md (peephole2): Eliminate redundant insv.
13656 Combine movl followed by movb. Transform xorl followed by
13657 a suitable movb or movw into the equivalent movz[bw]l.
13658
13659 2022-03-11 Roger Sayle <roger@nextmovesoftware.com>
13660 Richard Biener <rguenther@suse.de>
13661
13662 PR tree-optimization/98335
13663 * builtins.cc (get_object_alignment_2): Export.
13664 * builtins.h (get_object_alignment_2): Likewise.
13665 * tree-ssa-alias.cc (ao_ref_alignment): New.
13666 * tree-ssa-alias.h (ao_ref_alignment): Declare.
13667 * tree-ssa-dse.cc (compute_trims): Improve logic deciding whether
13668 to align head/tail, writing more bytes but using fewer store insns.
13669
13670 2022-03-11 Richard Biener <rguenther@suse.de>
13671
13672 PR tree-optimization/104880
13673 * tree-ssa.cc (execute_update_address_taken): Remember if we
13674 optimistically made something not addressable and
13675 prepare to undo it.
13676
13677 2022-03-11 Richard Biener <rguenther@suse.de>
13678
13679 PR target/104762
13680 * config/i386/i386.cc (ix86_builtin_vectorization_cost): Do not
13681 cost the first lane of SSE pieces as inserts for vec_construct.
13682
13683 2022-03-10 Roger Sayle <roger@nextmovesoftware.com>
13684
13685 PR c++/84964
13686 * calls.cc (expand_call): Ignore stack adjustments after sorry.
13687
13688 2022-03-10 Vladimir N. Makarov <vmakarov@redhat.com>
13689
13690 PR target/103074
13691 * lra-constraints.cc (split_reg): Set up
13692 check_and_force_assignment_correctness_p when splitting hard
13693 register live range.
13694
13695 2022-03-10 Martin Jambor <mjambor@suse.cz>
13696
13697 PR ipa/104813
13698 * ipa-cp.cc (create_specialized_node): Move removal of
13699 self-recursive calls from callers vector before refrence
13700 adjustments.
13701
13702 2022-03-10 Richard Biener <rguenther@suse.de>
13703
13704 PR tree-optimization/102943
13705 * gimple-range-cache.cc (sbr_sparse_bitmap::bitvec):
13706 Make a bitmap_head.
13707 (sbr_sparse_bitmap::sbr_sparse_bitmap): Adjust and switch
13708 to tree view.
13709 (sbr_sparse_bitmap::set_bb_range): Adjust.
13710 (sbr_sparse_bitmap::get_bb_range): Likewise.
13711
13712 2022-03-10 Richard Biener <rguenther@suse.de>
13713
13714 PR tree-optimization/102943
13715 * tree-ssa-dom.cc (back_propagate_equivalences): Only
13716 populate the dominance bitmap if fast queries are not
13717 available. Use a tree view bitmap.
13718 (record_temporary_equivalences): Cache the dominance bitmap
13719 across all equivalences on the edge.
13720
13721 2022-03-10 Tom de Vries <tdevries@suse.de>
13722
13723 PR target/104840
13724 * config/nvptx/nvptx.md (define_attr "predicable"): Use no,yes instead
13725 of false,true.
13726
13727 2022-03-10 Tom de Vries <tdevries@suse.de>
13728
13729 PR target/104783
13730 * config/nvptx/nvptx.cc (nvptx_init_unisimt_predicate)
13731 (nvptx_output_unisimt_switch): Handle unisimt_outside_simt_predicate.
13732 (nvptx_get_unisimt_outside_simt_predicate): New function.
13733 (predicate_insn): New function, factored out of ...
13734 (nvptx_reorg_uniform_simt): ... here. Predicate all emitted insns.
13735 * config/nvptx/nvptx.h (struct machine_function): Add
13736 unisimt_outside_simt_predicate field.
13737 * config/nvptx/nvptx.md (define_insn "nvptx_warpsync")
13738 (define_insn "nvptx_uniform_warp_check"): Make predicable.
13739
13740 2022-03-10 Tom de Vries <tdevries@suse.de>
13741
13742 * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Handle unused
13743 result.
13744
13745 2022-03-10 Tom de Vries <tdevries@suse.de>
13746
13747 PR target/104815
13748 * config/nvptx/nvptx.cc (nvptx_print_operand): Handle 'x' operand
13749 modifier.
13750 * config/nvptx/nvptx.md: Use %x0 destination operand in atom insns.
13751
13752 2022-03-10 Tom de Vries <tdevries@suse.de>
13753
13754 * config/nvptx/nvptx.md (define_insn "atomic_fetch_<logic><mode>"):
13755 Emit atom.and.b64 instead of atom.b64.and.
13756
13757 2022-03-10 Tom de Vries <tdevries@suse.de>
13758
13759 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Move mptx=3.1 ...
13760 (MULTILIB_OPTIONS): ... here.
13761
13762 2022-03-10 Tom de Vries <tdevries@suse.de>
13763
13764 PR target/104758
13765 * config/nvptx/nvptx.opt (misa): Set default to sm_30.
13766 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Remove misa=sm_30.
13767
13768 2022-03-10 Thomas Schwinge <thomas@codesourcery.com>
13769
13770 PR middle-end/90115
13771 PR middle-end/102330
13772 PR middle-end/104774
13773 * omp-low.cc (oacc_privatization_candidate_p)
13774 (oacc_privatization_scan_clause_chain)
13775 (oacc_privatization_scan_decl_chain, lower_oacc_private_marker):
13776 Analyze 'lookup_decl'-translated DECL.
13777
13778 2022-03-10 Jakub Jelinek <jakub@redhat.com>
13779
13780 PR target/99708
13781 * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Remove
13782 RS6000_BTI_ptr_ieee128_float and RS6000_BTI_ptr_ibm128_float.
13783 (ptr_ieee128_float_type_node, ptr_ibm128_float_type_node): Remove.
13784 * config/rs6000/rs6000-builtin.cc (rs6000_type_string): Return
13785 "**NULL**" if type_node is NULL first. Handle
13786 ieee128_float_type_node.
13787 (rs6000_init_builtins): Don't initialize ptr_ieee128_float_type_node
13788 and ptr_ibm128_float_type_node. Set ibm128_float_type_node and
13789 ieee128_float_type_node to NULL rather than long_double_type_node if
13790 they aren't supported. Do support __ibm128 even if
13791 !TARGET_FLOAT128_TYPE when long double is double double.
13792 (rs6000_expand_builtin): Error if bif_is_ibm128 and
13793 !ibm128_float_type_node. Remap RS6000_BIF_{,UN}PACK_IF to
13794 RS6000_BIF_{,UN}PACK_TF much earlier and only use bif_is_ibm128 check
13795 for it.
13796 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Define
13797 __SIZEOF_FLOAT128__ here and only iff __float128 macro is defined.
13798 (rs6000_cpu_cpp_builtins): Don't define __SIZEOF_FLOAT128__ here.
13799 Define __SIZEOF_IBM128__=16 if ieee128_float_type_node is non-NULL.
13800 Formatting fix.
13801 * config/rs6000/rs6000-gen-builtins.cc: Document ibm128 attribute.
13802 (struct attrinfo): Add isibm128 member.
13803 (TYPE_MAP_SIZE): Remove.
13804 (type_map): Use [] instead of [TYPE_MAP_SIZE]. For "if" use
13805 ibm128_float_type_node only if it is non-NULL, otherwise fall back
13806 to long_double_type_node. Remove "pif" entry.
13807 (parse_bif_attrs): Handle ibm128 attribute and print it for debugging.
13808 (write_decls): Output bif_ibm128_bit and bif_is_ibm128.
13809 (write_type_node): Use sizeof type_map / sizeof type_map[0]
13810 instead of TYPE_MAP_SIZE.
13811 (write_bif_static_init): Handle isibm128.
13812 * config/rs6000/rs6000-builtins.def: Document ibm128 attribute.
13813 (__builtin_pack_ibm128, __builtin_unpack_ibm128): Add ibm128
13814 attribute.
13815
13816 2022-03-09 Richard Biener <rguenther@suse.de>
13817
13818 * cfgexpand.cc (expand_gimple_asm): Special-case MEM_REF
13819 with non-decl operand, avoiding a copy.
13820
13821 2022-03-09 Jakub Jelinek <jakub@redhat.com>
13822
13823 PR target/104781
13824 * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Define for ia32.
13825
13826 2022-03-09 Richard Biener <rguenther@suse.de>
13827
13828 PR middle-end/104786
13829 * cfgexpand.cc (expand_asm_stmt): Do not generate a copy
13830 for VLAs without an upper size bound.
13831
13832 2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang>
13833
13834 PR tree-optimization/104851
13835 * optabs-query.cc (supports_vec_convert_optab_p): Fix off-by-one
13836 error.
13837
13838 2022-03-09 Jakub Jelinek <jakub@redhat.com>
13839
13840 PR c/104711
13841 * doc/invoke.texi (-Wextra): Document that -Wshift-negative-value
13842 is enabled by it only for C++11 to C++17 rather than for C++03 or
13843 later.
13844 (-Wshift-negative-value): Similarly (except here we stated
13845 that it is enabled for C++11 or later).
13846
13847 2022-03-09 Jakub Jelinek <jakub@redhat.com>
13848
13849 PR rtl-optimization/104839
13850 * simplify-rtx.cc (simplify_unary_operation_1) <case SIGN_EXTEND>:
13851 Use SRP_SIGNED instead of incorrect 1 in SUBREG_PROMOTED_SET.
13852 (simplify_unary_operation_1) <case ZERO_EXTEND>: Use SRP_UNSIGNED
13853 instead of incorrect 0 in SUBREG_PROMOTED_SET.
13854
13855 2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang>
13856
13857 PR target/104842
13858 * config/mips/mips.h (LUI_OPERAND): Cast the input to an unsigned
13859 value before adding an offset.
13860
13861 2022-03-08 Christophe Lyon <christophe.lyon@arm.com>
13862
13863 * config/arm/arm-builtins.cc
13864 (arm_binop_none_none_unone_qualifiers): Delete.
13865 (BINOP_NONE_NONE_UNONE_QUALIFIERS): Delete.
13866
13867 2022-03-08 Iain Sandoe <iain@sandoe.co.uk>
13868
13869 PR translation/104552
13870 * config/host-darwin.cc (darwin_gt_pch_get_address): Amend
13871 the PCH out of memory error message punctuation and wording.
13872
13873 2022-03-08 Marek Polacek <polacek@redhat.com>
13874
13875 PR rtl-optimization/104777
13876 * rtl.cc (classify_insn): For ASM_OPERANDS, return JUMP_INSN only if
13877 ASM_OPERANDS_LABEL_VEC has at least one element.
13878
13879 2022-03-08 H.J. Lu <hjl.tools@gmail.com>
13880
13881 PR target/104781
13882 * config/i386/i386.cc (ix86_expand_epilogue): Sorry if there is
13883 stack realignment or regparm nested function with EH return.
13884
13885 2022-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
13886
13887 PR target/104790
13888 * config/arm/arm.h (MVE_STN_LDW_MODE): New MACRO.
13889 * config/arm/arm.cc (mve_vector_mem_operand): Relax constraint on base
13890 register for non widening loads or narrowing stores.
13891
13892 2022-03-08 Eric Gallager <egallager@gcc.gnu.org>
13893
13894 PR translation/104552
13895 * params.opt: Fix typo.
13896
13897 2022-03-08 Richard Biener <rguenther@suse.de>
13898
13899 PR tree-optimization/84201
13900 * params.opt (-param=vect-induction-float): Add.
13901 * doc/invoke.texi (vect-induction-float): Document.
13902 * tree-vect-loop.cc (vectorizable_induction): Honor
13903 param_vect_induction_float.
13904
13905 2022-03-08 Martin Jambor <mjambor@suse.cz>
13906
13907 PR translation/104552
13908 * params.opt (ipa-cp-recursive-freq-factor): Remove repeated word
13909 "that" in the description.
13910
13911 2022-03-08 Richard Biener <rguenther@suse.de>
13912
13913 PR tree-optimization/104825
13914 * tree-ssa-sccvn.cc (visit_reference_op_call): Properly
13915 guard modref get_ao_ref on a pointer typed argument.
13916
13917 2022-03-08 liuhongt <hongtao.liu@intel.com>
13918
13919 * config/i386/sse.md (*vec_dupv4si): Disable memory operand
13920 for !TARGET_INTER_UNIT_MOVES_TO_VEC when prefer_for_speed.
13921
13922 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
13923
13924 * doc/invoke.texi (C++ Modules): Remove anachronism.
13925
13926 2022-03-07 Martin Liska <mliska@suse.cz>
13927
13928 PR middle-end/104381
13929 * opts.cc (finish_options): If debug info is disabled
13930 (debug_info_level) and -fvar-tracking is unset, disable it.
13931
13932 2022-03-07 Jakub Jelinek <jakub@redhat.com>
13933
13934 * tree-ssa-propagate.cc: Fix up duplicated word issue in a comment.
13935 * config/riscv/riscv.cc: Likewise.
13936 * config/darwin.h: Likewise.
13937 * config/i386/i386.cc: Likewise.
13938 * config/aarch64/thunderx3t110.md: Likewise.
13939 * config/aarch64/fractional-cost.h: Likewise.
13940 * config/vax/vax.cc: Likewise.
13941 * config/rs6000/pcrel-opt.md: Likewise.
13942 * config/rs6000/predicates.md: Likewise.
13943 * ctfc.h: Likewise.
13944 * tree-ssa-uninit.cc: Likewise.
13945 * value-relation.h: Likewise.
13946 * gimple-range-gori.cc: Likewise.
13947 * ipa-polymorphic-call.cc: Likewise.
13948 * pointer-query.cc: Likewise.
13949 * ipa-sra.cc: Likewise.
13950 * internal-fn.cc: Likewise.
13951 * varasm.cc: Likewise.
13952 * gimple-ssa-warn-access.cc: Likewise.
13953
13954 2022-03-07 Martin Liska <mliska@suse.cz>
13955
13956 PR target/104794
13957 * config/arm/arm.cc (arm_option_override_internal): Add missing
13958 space.
13959
13960 2022-03-07 Richard Biener <rguenther@suse.de>
13961
13962 PR tree-optimization/104782
13963 * tree-vect-slp.cc (vectorize_slp_instance_root_stmt):
13964 Re-instantiate r10-5979 fix, add comment.
13965
13966 2022-03-07 Martin Liska <mliska@suse.cz>
13967
13968 PR target/104797
13969 * config/msp430/msp430.cc (msp430_expand_delay_cycles): Remove
13970 parenthesis from built-in name.
13971
13972 2022-03-07 Martin Liska <mliska@suse.cz>
13973
13974 PR target/104794
13975 * config/arm/arm.cc (arm_option_override_internal): Fix quoting
13976 of options in error messages.
13977 (arm_option_reconfigure_globals): Likewise.
13978
13979 2022-03-07 Martin Liska <mliska@suse.cz>
13980
13981 PR target/104794
13982 * config/arm/arm-builtins.cc (arm_expand_builtin): Reuse error
13983 message. Fix ARM_BUILTIN_WRORHI and ARM_BUILTIN_WRORH that can
13984 have only range [0,32].
13985
13986 2022-03-07 Jakub Jelinek <jakub@redhat.com>
13987
13988 PR target/104775
13989 * config/s390/s390.md (*cmp_and_trap_unsigned_int<mode>): Use
13990 S constraint instead of T in the last alternative.
13991
13992 2022-03-07 Martin Liska <mliska@suse.cz>
13993
13994 * plugin.cc (default_plugin_dir_name): Remove <dir> from error
13995 message.
13996
13997 2022-03-07 Martin Liska <mliska@suse.cz>
13998
13999 PR translation/90148
14000 * config/rs6000/rs6000.cc (rs6000_linux64_override_options): Put
14001 quote to a proper place.
14002 * plugin.cc (default_plugin_dir_name): Likewise.
14003
14004 2022-03-07 Martin Liska <mliska@suse.cz>
14005
14006 PR target/99297
14007 * config/rx/rx.cc (rx_expand_builtin_mvtc): Fix translation
14008 string.
14009
14010 2022-03-07 Jakub Jelinek <jakub@redhat.com>
14011
14012 PR target/104779
14013 * config/i386/sse.md (avx512dq_mul<mode>3<mask_name>): New
14014 define_expand pattern. Rename define_insn to ...
14015 (*avx512dq_mul<mode>3<mask_name>): ... this.
14016 (<code><mode>3_mask): New any_logic define_expand pattern.
14017 (<mask_codefor><code><mode>3<mask_name>): Rename to ...
14018 (*<code><mode>3<mask_name>): ... this.
14019
14020 2022-03-05 Jakub Jelinek <jakub@redhat.com>
14021
14022 * gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p): Remove
14023 visited bitmap and its use. Also punt on EDGE_ABNORMAL edges.
14024
14025 2022-03-05 Roger Sayle <roger@nextmovesoftware.com>
14026 Uroš Bizjak <ubizjak@gmail.com>
14027
14028 PR testsuite/104732
14029 * config/i386/i386.md (SWIM1248x): Renamed from SWIM1248s.
14030 Include DI mode unconditionally.
14031 (*anddi3_doubleword): Remove && TARGET_STV && TARGET_SSE2 condition,
14032 i.e. always split on !TARGET_64BIT.
14033 (*<any_or>di3_doubleword): Likewise.
14034 (*one_cmpldi2_doubleword): Likewise.
14035 (and<mode>3 expander): Update to use SWIM1248x from SWIM1248s.
14036 (<any_or><mode>3 expander): Likewise.
14037 (one_cmpl<mode>2 expander): Likewise.
14038
14039 2022-03-05 Michael Meissner <meissner@linux.ibm.com>
14040
14041 PR target/104698
14042 * config/rs6000/vsx.md (UNSPEC_MTVSRD_DITI_W1): Delete.
14043 (mtvsrdd_diti_w1): Delete.
14044 (extendditi2): Convert from define_expand to
14045 define_insn_and_split. Replace with code to deal with both GPR
14046 registers and with altivec registers.
14047
14048 2022-03-04 Segher Boessenkool <segher@kernel.crashing.org>
14049
14050 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Restructure a
14051 bit. Handle most older CPUs.
14052
14053 2022-03-04 Iain Sandoe <iain@sandoe.co.uk>
14054
14055 * config/darwin.cc (darwin_fold_builtin): Make fcode an int to
14056 avoid a mismatch with DECL_MD_FUNCTION_CODE().
14057
14058 2022-03-04 Iain Sandoe <iain@sandoe.co.uk>
14059
14060 PR target/104117
14061 * config/rs6000/darwin.md (@machopic_high_<mode>): New.
14062 (@machopic_low_<mode>): New.
14063 * config/rs6000/predicates.md (macho_pic_address): New.
14064 * config/rs6000/rs6000.cc (rs6000_legitimize_address): Do not
14065 apply the TLS processing to Darwin.
14066 * lra-constraints.cc (process_address_1): Revert the changes
14067 in r12-7209.
14068
14069 2022-03-04 Peter Bergner <bergner@linux.ibm.com>
14070
14071 PR target/87496
14072 PR target/104208
14073 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make the
14074 ISA 2.06 requirement for -mabi=ieeelongdouble conditional on
14075 -mlong-double-128.
14076 Move the -mabi=ieeelongdouble and -mabi=ibmlongdouble error checking
14077 from here...
14078 * common/config/rs6000/rs6000-common.cc (rs6000_handle_option):
14079 ... to here.
14080
14081 2022-03-04 Jakub Jelinek <jakub@redhat.com>
14082
14083 PR middle-end/104529
14084 * gimplify.cc (gimplify_init_constructor): Clear TREE_READONLY
14085 on automatic objects which will be runtime initialized.
14086
14087 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
14088
14089 PR middle-end/100280
14090 PR middle-end/104132
14091 PR middle-end/104133
14092 * omp-low.cc (task_shared_vars): Rename to
14093 'make_addressable_vars'. Adjust all users.
14094 (scan_sharing_clauses) <OMP_CLAUSE_MAP> Use it for
14095 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' DECLs, too.
14096
14097 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
14098
14099 PR middle-end/100280
14100 * tree.h (OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE): New.
14101 * tree-core.h: Document it.
14102 * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Handle
14103 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
14104 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
14105 Set 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' instead of
14106 'TREE_ADDRESSABLE'.
14107
14108 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
14109
14110 PR middle-end/100280
14111 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
14112 Add diagnostic: "note: OpenACC 'kernels' decomposition: variable
14113 '[...]' declared in block made addressable".
14114
14115 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
14116
14117 PR middle-end/100400
14118 PR middle-end/103836
14119 PR middle-end/104061
14120 * omp-oacc-kernels-decompose.cc (decompose_kernels_region_body):
14121 Catch 'GIMPLE_DEBUG'.
14122
14123 2022-03-04 Jakub Jelinek <jakub@redhat.com>
14124
14125 PR c/104627
14126 * tree.cc (warn_deprecated_use): For types prefer to use node
14127 and only use TYPE_MAIN_VARIANT (node) if TYPE_STUB_DECL (node) is
14128 NULL.
14129
14130 2022-03-04 H.J. Lu <hjl.tools@gmail.com>
14131
14132 PR target/104704
14133 * config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Always return
14134 a pseudo register.
14135
14136 2022-03-03 Martin Sebor <msebor@redhat.com>
14137
14138 PR middle-end/104761
14139 * gimple-ssa-warn-access.cc (pass_waccess::execute): Call
14140 mark_dfs_back_edges.
14141
14142 2022-03-03 Martin Liska <mliska@suse.cz>
14143
14144 * configure.ac: Use linker plug-in by default.
14145 * configure: Regenerate.
14146
14147 2022-03-03 Martin Liska <mliska@suse.cz>
14148
14149 * configure.ac: Now ld.mold support LTO plugin API, use it.
14150 * configure: Regenerate.
14151
14152 2022-03-03 Tom de Vries <tdevries@suse.de>
14153
14154 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add mptx=3.1.
14155
14156 2022-03-03 Tom de Vries <tdevries@suse.de>
14157
14158 PR target/104758
14159 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add misa=sm_30.
14160
14161 2022-03-03 Tom de Vries <tdevries@suse.de>
14162
14163 * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
14164
14165 2022-03-03 Jakub Jelinek <jakub@redhat.com>
14166
14167 PR middle-end/104757
14168 * gimplify.cc (gimplify_omp_loop): Call gimplify_expr rather than
14169 gimplify_omp_for.
14170 (gimplify_expr) <case OMP_SIMD>: Temporarily disable
14171 gimplify_ctxp->into_ssa around call to gimplify_omp_for.
14172
14173 2022-03-03 Jakub Jelinek <jakub@redhat.com>
14174
14175 PR middle-end/104558
14176 * calls.cc (store_one_arg): When not calling emit_push_insn
14177 because size_rtx is const0_rtx, call at least anti_adjust_stack
14178 on arg->locate.alignment_pad if !argblock and the alignment might
14179 be non-zero.
14180
14181 2022-03-02 Alexandre Oliva <oliva@adacore.com>
14182
14183 * lra-constraints.cc (undo_optional_reloads): Recognize and
14184 drop insns of multi-word move sequences, tolerate removal
14185 iteration on an already-removed clobber, and refuse to
14186 substitute original pseudos into clobbers.
14187
14188 2022-03-02 Qing Zhao <qing.zhao@oracle.com>
14189
14190 PR middle-end/102276
14191 * common.opt (-Wtrivial-auto-var-init): New option.
14192 * doc/invoke.texi (-Wtrivial-auto-var-init): Document new option.
14193 (-ftrivial-auto-var-init): Update option;
14194 * gimplify.cc (emit_warn_switch_unreachable): New function.
14195 (warn_switch_unreachable_r): Rename to ...
14196 (warn_switch_unreachable_and_auto_init_r): This.
14197 (maybe_warn_switch_unreachable): Rename to ...
14198 (maybe_warn_switch_unreachable_and_auto_init): This.
14199 (gimplify_switch_expr): Update calls to renamed function.
14200
14201 2022-03-02 Richard Biener <rguenther@suse.de>
14202
14203 PR rtl-optimization/104686
14204 * ira-color.cc (object_conflicts_with_allocno_p): New function
14205 using a bitvector test instead of iterating when possible.
14206 (allocnos_conflict_p): Choose the best allocno to iterate over
14207 object conflicts.
14208 (update_conflict_hard_regno_costs): Do allocnos_conflict_p test
14209 last.
14210
14211 2022-03-02 Jakub Jelinek <jakub@redhat.com>
14212
14213 * cfg.cc (dump_edge_info): Dump goto_locus if present.
14214
14215 2022-03-02 Jakub Jelinek <jakub@redhat.com>
14216
14217 PR rtl-optimization/104589
14218 * cfgrtl.cc (fixup_reorder_chain): Use loc_equal instead of direct
14219 INSN_LOCATION comparison with goto_locus.
14220
14221 2022-03-02 Jakub Jelinek <jakub@redhat.com>
14222
14223 * tree-ssa-strlen.cc (strlen_pass::handle_assign,
14224 strlen_pass::before_dom_children): Comment spelling fixes.
14225
14226 2022-03-02 Jakub Jelinek <jakub@redhat.com>
14227
14228 * ipa-modref-tree.cc (modref_access_node::contains,
14229 modref_access_node::closer_pair_p, modref_access_node::insert,
14230 modref_access_node::insert_kill): Comment spelling fixes.
14231 * ipa-modref.cc: Likewise.
14232 (modref_summary::finalize, ignore_nondeterminism_p,
14233 class modref_access_analysis,
14234 modref_access_analysis::set_side_effects,
14235 modref_access_analysis::set_nondeterministic,
14236 modref_access_analysis::record_global_memory_load,
14237 modref_access_analysis::propagate, modref_access_analysis::analyze,
14238 struct escape_point, class modref_lattice, modref_lattice::merge,
14239 modref_lattice::merge_deref, class modref_eaf_analysis,
14240 modref_eaf_analysis::merge_call_lhs_flags,
14241 modref_eaf_analysis::analyze_ssa_name, modref_eaf_analysis::propagate,
14242 modref_eaf_analysis::record_escape_points, remap_kills,
14243 update_escape_summary, remove_useless_summaries,
14244 ipa_merge_modref_summary_after_inlining, pass_ipa_modref::execute):
14245 Likewise.
14246 * ipa-modref.h (struct modref_summary, interposable_eaf_flags):
14247 Likewise.
14248 * ipa-modref-tree.h (enum modref_special_parms,
14249 struct modref_access_node): Likewise.
14250
14251 2022-03-01 Jakub Jelinek <jakub@redhat.com>
14252
14253 PR tree-optimization/104715
14254 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Don't
14255 unnecessarily test if ptr is a SSA_NAME, it has to be. Only push lhs
14256 of a call if gimple_call_return_arg is equal to ptr, not just when it
14257 is non-NULL.
14258
14259 2022-03-01 Jakub Jelinek <jakub@redhat.com>
14260
14261 * gimple-ssa-warn-access.cc (warn_string_no_nul,
14262 maybe_warn_nonstring_arg, fndecl_alloc_p, new_delete_mismatch_p,
14263 matching_alloc_calls_p, maybe_warn_alloc_args_overflow,
14264 pass_waccess::check_alloca, pass_waccess::check_strcat,
14265 memmodel_to_uhwi, fntype_argno_type,
14266 pass_waccess::maybe_check_access_sizes,
14267 pass_waccess::check_call_access,
14268 pass_waccess::maybe_check_dealloc_call, pass_waccess::check_stmt):
14269 Comment spelling fixes.
14270
14271 2022-03-01 Richard Biener <rguenther@suse.de>
14272
14273 PR tree-optimization/104716
14274 * tree-loop-distribution.cc (find_seed_stmts_for_distribution):
14275 Check if we can copy the loop.
14276
14277 2022-03-01 H.J. Lu <hjl.tools@gmail.com>
14278
14279 PR middle-end/104721
14280 * cfgexpand.cc (expand_gimple_basic_block): Clear
14281 currently_expanding_gimple_stmt when returning inside the loop.
14282
14283 2022-03-01 Martin Liska <mliska@suse.cz>
14284
14285 PR ipa/104533
14286 * multiple_target.cc (get_attr_len): Move to tree.c.
14287 (expand_target_clones): Remove single value checking.
14288 * tree.cc (get_target_clone_attr_len): New fn.
14289 * tree.h (get_target_clone_attr_len): Likewise.
14290
14291 2022-03-01 Martin Liska <mliska@suse.cz>
14292
14293 PR gcov-profile/104677
14294 * doc/invoke.texi: Document more .gcda file name generation.
14295
14296 2022-03-01 Tom de Vries <tdevries@suse.de>
14297
14298 PR target/102429
14299 * config/nvptx/nvptx.cc (nvptx_gen_shuffle): Handle DCmode and CDImode.
14300 * config/nvptx/nvptx.md
14301 (define_predicate "nvptx_register_or_complex_di_df_register_operand"):
14302 New predicate.
14303 (define_expand "omp_simt_xchg_bfly", define_expand "omp_simt_xchg_idx"):
14304 Use nvptx_register_or_complex_di_df_register_operand.
14305
14306 2022-03-01 Tom de Vries <tdevries@suse.de>
14307
14308 * config.gcc (nvptx*-*-*): Add nvptx/nvptx-gen.opt to extra_options.
14309 * config/nvptx/gen-copyright.sh: New file.
14310 * config/nvptx/gen-h.sh: New file.
14311 * config/nvptx/gen-opt.sh: New file.
14312 * config/nvptx/nvptx.h (TARGET_SM35, TARGET_SM53, TARGET_SM70)
14313 (TARGET_SM75, TARGET_SM80): Move ...
14314 * config/nvptx/nvptx-gen.h: ... here. New file, generate.
14315 * config/nvptx/nvptx.opt (Enum ptx_isa): Move ...
14316 * config/nvptx/nvptx-gen.opt: ... here. New file, generate.
14317 * config/nvptx/t-nvptx ($(srcdir)/config/nvptx/nvptx-gen.h)
14318 ($(srcdir)/config/nvptx/nvptx-gen.opt): New make target.
14319
14320 2022-03-01 Tom de Vries <tdevries@suse.de>
14321
14322 * config/nvptx/gen-omp-device-properties.sh: New file.
14323 * config/nvptx/t-omp-device: Use gen-omp-device-properties.sh.
14324
14325 2022-03-01 Tom de Vries <tdevries@suse.de>
14326
14327 * config/nvptx/nvptx-sm.def: New file.
14328 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Use nvptx-sm.def.
14329 * config/nvptx/nvptx-opts.h (enum ptx_isa): Same.
14330 * config/nvptx/nvptx.cc (sm_version_to_string)
14331 (nvptx_omp_device_kind_arch_isa): Same.
14332
14333 2022-03-01 Robin Dapp <rdapp@linux.ibm.com>
14334
14335 PR rtl-optimization/104154
14336 * config/arc/arc.cc (gen_compare_reg): Return the CC-mode
14337 comparison ifcvt passed us.
14338
14339 2022-03-01 Hongyu Wang <hongyu.wang@intel.com>
14340
14341 PR target/104664
14342 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
14343 Use vec_setv8hf_0 for HF to V8HFmode move instead of subreg.
14344
14345 2022-02-28 Roger Sayle <roger@nextmovesoftware.com>
14346
14347 PR tree-optimization/91384
14348 * config/i386/i386.md (peephole2): Eliminate final testl insn
14349 from the sequence *movsi_internal, *negsi_1, *cmpsi_ccno_1 by
14350 transforming using *negsi_2 for the negation.
14351
14352 2022-02-28 Roger Sayle <roger@nextmovesoftware.com>
14353 Eric Botcazou <ebotcazou@adacore.com>
14354
14355 PR middle-end/80270
14356 * expmed.cc (extract_integral_bit_field): If OP0 is a hard
14357 register, copy it to a pseudo before calling simplify_gen_subreg.
14358
14359 2022-02-28 Vladimir N. Makarov <vmakarov@redhat.com>
14360
14361 PR rtl-optimization/104637
14362 * lra-assigns.cc (lra_split_hard_reg_for): Split hard regs as many
14363 as possible on one subpass.
14364
14365 2022-02-28 Qing Zhao <qing.zhao@oracle.com>
14366
14367 PR middle-end/104550
14368 * gimple-fold.cc (clear_padding_flush): Suppress warnings for new
14369 created uses.
14370
14371 2022-02-28 Martin Liska <mliska@suse.cz>
14372
14373 PR ipa/104648
14374 * main.cc (main): Use flag_checking instead of CHECKING_P
14375 and run toplev::finalize only if there is not error seen.
14376
14377 2022-02-28 Richard Biener <rguenther@suse.de>
14378
14379 * tree-ssa-pre.cc (compute_avail): Revert part of last change.
14380
14381 2022-02-28 Richard Biener <rguenther@suse.de>
14382
14383 PR tree-optimization/104700
14384 * tree-ssa-pre.cc (get_or_alloc_expr_for): Remove and inline
14385 into ...
14386 (find_or_generate_expression): ... here, simplifying code.
14387
14388 2022-02-28 Tom de Vries <tdevries@suse.de>
14389
14390 * config/nvptx/nvptx-opts.h (enum ptx_version): Add
14391 PTX_VERSION_default.
14392 * config/nvptx/nvptx.cc (handle_ptx_version_option): Handle
14393 PTX_VERSION_default.
14394 * config/nvptx/nvptx.opt: Add EnumValue "_" / PTX_VERSION_default.
14395
14396 2022-02-28 Richard Biener <rguenther@suse.de>
14397
14398 PR rtl-optimization/104686
14399 * ira-int.h (minmax_set_iter_cond): Use ctz_hwi to elide loop
14400 skipping bits that are zero.
14401 (ira_object_conflict_iter_cond): Likewise.
14402
14403 2022-02-28 Hongyu Wang <hongyu.wang@intel.com>
14404
14405 * config/i386/avx512fintrin.h (_MM_TERNLOG_ENUM): New enum.
14406 (_mm512_ternarylogic_epi64): Truncate imm to unsigned
14407 char to avoid error when using ~enum as parameter.
14408 (_mm512_mask_ternarylogic_epi64): Likewise.
14409 (_mm512_maskz_ternarylogic_epi64): Likewise.
14410 (_mm512_ternarylogic_epi32): Likewise.
14411 (_mm512_mask_ternarylogic_epi32): Likewise.
14412 (_mm512_maskz_ternarylogic_epi32): Likewise.
14413 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64):
14414 Adjust imm param type to unsigned char.
14415 (_mm256_mask_ternarylogic_epi64): Likewise.
14416 (_mm256_maskz_ternarylogic_epi64): Likewise.
14417 (_mm256_ternarylogic_epi32): Likewise.
14418 (_mm256_mask_ternarylogic_epi32): Likewise.
14419 (_mm256_maskz_ternarylogic_epi32): Likewise.
14420 (_mm_ternarylogic_epi64): Likewise.
14421 (_mm_mask_ternarylogic_epi64): Likewise.
14422 (_mm_maskz_ternarylogic_epi64): Likewise.
14423 (_mm_ternarylogic_epi32): Likewise.
14424 (_mm_mask_ternarylogic_epi32): Likewise.
14425 (_mm_maskz_ternarylogic_epi32): Likewise.
14426
14427 2022-02-25 Jakub Jelinek <jakub@redhat.com>
14428 Marc Glisse <marc.glisse@inria.fr>
14429
14430 PR tree-optimization/104675
14431 * match.pd (t * 2U / 2 -> t & (~0 / 2), t / 2U * 2 -> t & ~1):
14432 Restrict simplifications to INTEGRAL_TYPE_P.
14433
14434 2022-02-25 Jakub Jelinek <jakub@redhat.com>
14435
14436 PR target/104681
14437 * config/rs6000/vector.md (movmisalign<mode>): Use rs6000_emit_move.
14438
14439 2022-02-25 Claudiu Zissulescu <claziss@synopsys.com>
14440
14441 * config/arc/arc.cc (gen_compare_reg): Return NULL_RTX if the
14442 comparison is not valid.
14443 * config/arc/arc.md (movsicc): Fail if comparison is not valid.
14444 (movdicc): Likewise.
14445 (movsfcc): Likewise.
14446 (movdfcc): Likewise.
14447
14448 2022-02-25 Richard Biener <rguenther@suse.de>
14449
14450 PR tree-optimization/103037
14451 * tree-ssa-sccvn.h (alloc_vn_nary_op_noinit): Declare.
14452 (vn_nary_length_from_stmt): Likewise.
14453 (init_vn_nary_op_from_stmt): Likewise.
14454 (vn_nary_op_compute_hash): Likewise.
14455 * tree-ssa-sccvn.cc (alloc_vn_nary_op_noinit): Export.
14456 (vn_nary_length_from_stmt): Likewise.
14457 (init_vn_nary_op_from_stmt): Likewise.
14458 (vn_nary_op_compute_hash): Likewise.
14459 * tree-ssa-pre.cc (pre_expr_obstack): New obstack.
14460 (get_or_alloc_expr_for_nary): Pass in the value-id to use,
14461 (re-)compute the hash value and if the expression is not
14462 found allocate it from pre_expr_obstack.
14463 (phi_translate_1): Do not insert the NARY found in the
14464 VN tables but build a PRE expression from the valueized
14465 NARY with the value-id we eventually found.
14466 (find_or_generate_expression): Assert we have an entry
14467 for constant values.
14468 (compute_avail): Insert not valueized expressions into
14469 EXP_GEN using the value-id from the VN tables.
14470 (init_pre): Allocate pre_expr_obstack.
14471 (fini_pre): Free pre_expr_obstack.
14472
14473 2022-02-25 Jakub Jelinek <jakub@redhat.com>
14474
14475 PR target/104674
14476 * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_FLOATxFDI_387.
14477 * config/i386/i386.md (splitter to floatdi<mode>2_i387_with_xmm): Use
14478 SLOT_FLOATxFDI_387 rather than SLOT_TEMP.
14479
14480 2022-02-25 Jakub Jelinek <jakub@redhat.com>
14481
14482 * warning-control.cc (get_nowarn_spec): Comment spelling fix.
14483
14484 2022-02-25 Jakub Jelinek <jakub@redhat.com>
14485
14486 PR middle-end/104679
14487 * internal-fn.cc (expand_SPACESHIP): Call do_pending_stack_adjust.
14488
14489 2022-02-25 Jakub Jelinek <jakub@redhat.com>
14490
14491 PR tree-optimization/104675
14492 * match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for
14493 COMPLEX_TYPE.
14494
14495 2022-02-25 Alexandre Oliva <oliva@adacore.com>
14496
14497 PR target/104121
14498 PR target/103302
14499 * expr.cc (emit_move_multi_word): Restore clobbers during LRA.
14500
14501 2022-02-25 Alexandre Oliva <oliva@adacore.com>
14502
14503 PR middle-end/104540
14504 * dwarf2cfi.cc (cfi_oprnd_equal_p): Cope with NULL
14505 dw_cfi_cfa_loc.
14506
14507 2022-02-25 Alexandre Oliva <oliva@adacore.com>
14508
14509 PR tree-optimization/103856
14510 * gimple-harden-conditionals.cc (non_eh_succ_edge): Enable the
14511 eh edge to be requested through an extra parameter.
14512 (pass_harden_compares::execute): Copy PHI args in the EH dest
14513 block for the new EH edge added for the inverted compare.
14514
14515 2022-02-24 Palmer Dabbelt <palmer@rivosinc.com>
14516
14517 * doc/invoke.texi (RISC-V -mcmodel=medany): Document the degree
14518 of position independence that -mcmodel=medany affords.
14519
14520 2022-02-24 Jose E. Marchesi <jose.marchesi@oracle.com>
14521
14522 PR target/104656
14523 * configure.ac: --disable-gcov if targetting bpf-*.
14524 * configure: Regenerate.
14525
14526 2022-02-24 Richard Biener <rguenther@suse.de>
14527
14528 PR tree-optimization/104676
14529 * tree-loop-distribution.cc (loop_distribution::execute):
14530 Do a full scev_reset.
14531
14532 2022-02-24 Jakub Jelinek <jakub@redhat.com>
14533
14534 PR tree-optimization/104601
14535 * tree-ssa-sccvn.cc (visit_reference_op_call): For calls with
14536 non-SSA_NAME lhs value number vdef to itself instead of e.g. the
14537 vuse value number.
14538
14539 2022-02-24 Tom de Vries <tdevries@suse.de>
14540 Tobias Burnus <tobias@codesourcery.com>
14541
14542 * config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Handle
14543 sm_70, sm_75 and sm_80.
14544 * config/nvptx/t-omp-device: Add sm_53, sm_70, sm_75 and sm_80.
14545
14546 2022-02-24 Tom de Vries <tdevries@suse.de>
14547
14548 * config/nvptx/nvptx.md (define_insn "rotlsi3", define_insn
14549 "rotrsi3"): New define_insn.
14550
14551 2022-02-24 Tom de Vries <tdevries@suse.de>
14552
14553 * config/nvptx/nvptx.cc (gen_comment): Use
14554 DECL_SOURCE_LOCATION (cfun->decl) instead of cfun->function_start_locus.
14555
14556 2022-02-24 liuhongt <hongtao.liu@intel.com>
14557
14558 * config/i386/sse.md (<code>v1ti3): Add suffix and replace
14559 isa attr of alternative 2 from avx to avx512vl.
14560
14561 2022-02-23 Richard Biener <rguenther@suse.de>
14562 Jakub Jelinek <jakub@redhat.com>
14563
14564 PR tree-optimization/104644
14565 * doc/match-and-simplify.texi: Amend ! documentation.
14566 * genmatch.cc (expr::gen_transform): Code-generate ! support
14567 for GENERIC.
14568 (parser::parse_expr): Allow ! for GENERIC.
14569 * match.pd (cmp (bswap @0) INTEGER_CST@1): Use ! modifier on
14570 bswap.
14571
14572 2022-02-23 Richard Biener <rguenther@suse.de>
14573
14574 PR tree-optimization/101636
14575 * tree-vect-slp.cc (vect_print_slp_tree): Dump the
14576 vector type of the node.
14577 (vect_slp_analyze_operations): Make sure the CTOR
14578 is vectorized with an expected type.
14579 (vectorize_slp_instance_root_stmt): Revert r10-5979 fix.
14580
14581 2022-02-23 Jakub Jelinek <jakub@redhat.com>
14582
14583 PR c/104633
14584 * gimple-warn-recursion.cc (pass_warn_recursion::find_function_exit):
14585 Don't warn about calls to corresponding builtin from extern inline
14586 gnu_inline wrappers.
14587
14588 2022-02-23 Roger Sayle <roger@nextmovesoftware.com>
14589
14590 PR target/104489
14591 * config/nvptx/nvptx.md (*movhf_insn): Add subregs_ok attribute.
14592
14593 2022-02-23 Christophe Lyon <christophe.lyon@arm.com>
14594
14595 PR target/100757
14596 PR target/101325
14597 * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Fix
14598 typo.
14599
14600 2022-02-23 Cui,Lili <lili.cui@intel.com>
14601
14602 * doc/invoke.texi: Update documents for Intel architectures.
14603
14604 2022-02-22 Roger Sayle <roger@nextmovesoftware.com>
14605
14606 * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop): Restore
14607 bootstrap.
14608
14609 2022-02-22 Thomas Schwinge <thomas@codesourcery.com>
14610
14611 * omp-low.cc (omp_build_component_ref): Move function...
14612 * omp-general.cc (omp_build_component_ref): ... here. Remove
14613 'static'.
14614 * omp-general.h (omp_build_component_ref): Declare function.
14615 * omp-oacc-neuter-broadcast.cc (oacc_build_component_ref): Remove
14616 function.
14617 (build_receiver_ref, build_sender_ref): Call
14618 'omp_build_component_ref' instead.
14619
14620 2022-02-22 Thomas Schwinge <thomas@codesourcery.com>
14621
14622 * omp-oacc-neuter-broadcast.cc (record_field_map_t): Further
14623 simplify. Adjust all users.
14624
14625 2022-02-22 Segher Boessenkool <segher@kernel.crashing.org>
14626
14627 PR target/88134
14628 * config/rs6000/rs6000.cc (atomic_hold_decl, atomic_clear_decl,
14629 atomic_update_decl): Add GTY markup.
14630
14631 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
14632
14633 * config/arm/arm.h (REG_CLASS_CONTENTS): Add VPR_REG to ALL_REGS.
14634
14635 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
14636
14637 PR target/100757
14638 PR target/101325
14639 * config/arm/arm-builtins.cc (CX_UNARY_UNONE_QUALIFIERS): Use
14640 predicate.
14641 (CX_BINARY_UNONE_QUALIFIERS): Likewise.
14642 (CX_TERNARY_UNONE_QUALIFIERS): Likewise.
14643 (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
14644 (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
14645 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Delete.
14646 * config/arm/arm_mve_builtins.def: Use predicated qualifiers.
14647 * config/arm/mve.md: Use VxBI instead of HI.
14648
14649 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
14650
14651 PR target/100757
14652 PR target/101325
14653 * config/arm/arm-builtins.cc (STRSBS_P_QUALIFIERS): Use predicate
14654 qualifier.
14655 (STRSBU_P_QUALIFIERS): Likewise.
14656 (LDRGBS_Z_QUALIFIERS): Likewise.
14657 (LDRGBU_Z_QUALIFIERS): Likewise.
14658 (LDRGBWBXU_Z_QUALIFIERS): Likewise.
14659 (LDRGBWBS_Z_QUALIFIERS): Likewise.
14660 (LDRGBWBU_Z_QUALIFIERS): Likewise.
14661 (STRSBWBS_P_QUALIFIERS): Likewise.
14662 (STRSBWBU_P_QUALIFIERS): Likewise.
14663 * config/arm/mve.md: Use VxBI instead of HI.
14664
14665 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
14666
14667 PR target/100757
14668 PR target/101325
14669 * config/arm/arm-builtins.cc (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
14670 (TERNOP_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
14671 (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
14672 (TERNOP_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
14673 (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
14674 (TERNOP_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
14675 (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Change to ...
14676 (TERNOP_NONE_NONE_UNONE_PRED_QUALIFIERS): ... this.
14677 (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
14678 (QUADOP_UNONE_UNONE_NONE_NONE_PRED_QUALIFIERS): ... this.
14679 (QUADOP_NONE_NONE_NONE_NONE_PRED_QUALIFIERS): New.
14680 (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
14681 (QUADOP_NONE_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
14682 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
14683 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
14684 (QUADOP_UNONE_UNONE_NONE_IMM_PRED_QUALIFIERS): ... this.
14685 (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
14686 (QUADOP_NONE_NONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
14687 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
14688 (QUADOP_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
14689 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
14690 (QUADOP_UNONE_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
14691 (STRS_P_QUALIFIERS): Use predicate qualifier.
14692 (STRU_P_QUALIFIERS): Likewise.
14693 (STRSU_P_QUALIFIERS): Likewise.
14694 (STRSS_P_QUALIFIERS): Likewise.
14695 (LDRGS_Z_QUALIFIERS): Likewise.
14696 (LDRGU_Z_QUALIFIERS): Likewise.
14697 (LDRS_Z_QUALIFIERS): Likewise.
14698 (LDRU_Z_QUALIFIERS): Likewise.
14699 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
14700 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
14701 (BINOP_NONE_NONE_PRED_QUALIFIERS): New.
14702 (BINOP_UNONE_UNONE_PRED_QUALIFIERS): New.
14703 * config/arm/arm_mve_builtins.def: Use new predicated qualifiers.
14704 * config/arm/mve.md: Use MVE_VPRED instead of HI.
14705
14706 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
14707
14708 PR target/100757
14709 PR target/101325
14710 * config/arm/arm-builtins.cc (BINOP_UNONE_NONE_NONE_QUALIFIERS):
14711 Delete.
14712 (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
14713 (TERNOP_PRED_NONE_NONE_PRED_QUALIFIERS): ... this.
14714 (TERNOP_PRED_UNONE_UNONE_PRED_QUALIFIERS): New.
14715 * config/arm/arm_mve_builtins.def (vcmp*q_n_, vcmp*q_m_f): Use new
14716 predicated qualifiers.
14717 * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_n_<mode>)
14718 (mve_vcmp*q_m_f<mode>): Use MVE_VPRED instead of HI.
14719
14720 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
14721
14722 PR target/100757
14723 * config/arm/arm-protos.h (arm_get_mask_mode): New prototype.
14724 (arm_expand_vector_compare): Update prototype.
14725 * config/arm/arm.cc (TARGET_VECTORIZE_GET_MASK_MODE): New.
14726 (arm_vector_mode_supported_p): Add support for VxBI modes.
14727 (arm_expand_vector_compare): Remove useless generation of vpsel.
14728 (arm_expand_vcond): Fix select operands.
14729 (arm_get_mask_mode): New.
14730 * config/arm/mve.md (vec_cmp<mode><MVE_vpred>): New.
14731 (vec_cmpu<mode><MVE_vpred>): New.
14732 (vcond_mask_<mode><MVE_vpred>): New.
14733 * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>)
14734 (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): Move to ...
14735 * config/arm/neon.md (vec_cmp<mode><v_cmp_result>)
14736 (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): ... here
14737 and disable for MVE.
14738 * doc/sourcebuild.texi (arm_mve): Document new effective-target.
14739
14740 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
14741
14742 PR target/100757
14743 PR target/101325
14744 * config/arm/arm-builtins.cc (BINOP_PRED_UNONE_UNONE_QUALIFIERS)
14745 (BINOP_PRED_NONE_NONE_QUALIFIERS)
14746 (TERNOP_NONE_NONE_NONE_PRED_QUALIFIERS)
14747 (TERNOP_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
14748 * config/arm/arm-protos.h (mve_bool_vec_to_const): New.
14749 * config/arm/arm.cc (arm_hard_regno_mode_ok): Handle new VxBI
14750 modes.
14751 (arm_mode_to_pred_mode): New.
14752 (arm_expand_vector_compare): Use the right VxBI mode instead of
14753 HI.
14754 (arm_expand_vcond): Likewise.
14755 (simd_valid_immediate): Handle MODE_VECTOR_BOOL.
14756 (mve_bool_vec_to_const): New.
14757 (neon_make_constant): Call mve_bool_vec_to_const when needed.
14758 * config/arm/arm_mve_builtins.def (vcmpneq_, vcmphiq_, vcmpcsq_)
14759 (vcmpltq_, vcmpleq_, vcmpgtq_, vcmpgeq_, vcmpeqq_, vcmpneq_f)
14760 (vcmpltq_f, vcmpleq_f, vcmpgtq_f, vcmpgeq_f, vcmpeqq_f, vpselq_u)
14761 (vpselq_s, vpselq_f): Use new predicated qualifiers.
14762 * config/arm/constraints.md (DB): New.
14763 * config/arm/iterators.md (MVE_7, MVE_7_HI): New mode iterators.
14764 (MVE_VPRED, MVE_vpred): New attribute iterators.
14765 * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>)
14766 (@mve_vcmp<mve_cmp_op>q_f<mode>, @mve_vpselq_<supf><mode>)
14767 (@mve_vpselq_f<mode>): Use MVE_VPRED instead of HI.
14768 (@mve_vpselq_<supf>v2di): Define separately.
14769 (mov<mode>): New expander for VxBI modes.
14770 * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Use
14771 MVE_7_HI iterator and add support for DB constraint.
14772
14773 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
14774 Richard Sandiford <richard.sandiford@arm.com>
14775
14776 PR target/100757
14777 PR target/101325
14778 * config/aarch64/aarch64-modes.def (VNx16BI, VNx8BI, VNx4BI,
14779 VNx2BI): Update definition.
14780 * config/arm/arm-builtins.cc (arm_init_simd_builtin_types): Add new
14781 simd types.
14782 (arm_init_builtin): Map predicate vectors arguments to HImode.
14783 (arm_expand_builtin_args): Move HImode predicate arguments to VxBI
14784 rtx. Move return value to HImode rtx.
14785 * config/arm/arm-builtins.h (arm_type_qualifiers): Add qualifier_predicate.
14786 * config/arm/arm-modes.def (B2I, B4I, V16BI, V8BI, V4BI): New modes.
14787 * config/arm/arm-simd-builtin-types.def (Pred1x16_t,
14788 Pred2x8_t,Pred4x4_t): New.
14789 * emit-rtl.cc (init_emit_once): Handle all boolean modes.
14790 * genmodes.cc (mode_data): Add boolean field.
14791 (blank_mode): Initialize it.
14792 (make_complex_modes): Fix handling of boolean modes.
14793 (make_vector_modes): Likewise.
14794 (VECTOR_BOOL_MODE): Use new COMPONENT parameter.
14795 (make_vector_bool_mode): Likewise.
14796 (BOOL_MODE): New.
14797 (make_bool_mode): New.
14798 (emit_insn_modes_h): Fix generation of boolean modes.
14799 (emit_class_narrowest_mode): Likewise.
14800 * machmode.def: (VECTOR_BOOL_MODE): Document new COMPONENT
14801 parameter. Use new BOOL_MODE instead of FRACTIONAL_INT_MODE to
14802 define BImode.
14803 * rtx-vector-builder.cc (rtx_vector_builder::find_cached_value):
14804 Fix handling of constm1_rtx for VECTOR_BOOL.
14805 * simplify-rtx.cc (native_encode_rtx): Fix support for VECTOR_BOOL.
14806 (native_decode_vector_rtx): Likewise.
14807 (test_vector_ops_duplicate): Skip vec_merge test
14808 with vectors of booleans.
14809 * varasm.cc (output_constant_pool_2): Likewise.
14810
14811 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
14812
14813 * config/arm/mve.md (mve_vmvnq_n_<supf><mode>): Use V_elem mode
14814 for operand 1.
14815
14816 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
14817
14818 * config/arm/arm.cc (arm_class_likely_spilled_p): Handle VPR_REG.
14819
14820 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
14821
14822 * config/arm/arm.h (reg_class): Add GENERAL_AND_VPR_REGS.
14823 (REG_CLASS_NAMES): Likewise.
14824 (REG_CLASS_CONTENTS): Likewise.
14825 (CLASS_MAX_NREGS): Handle VPR.
14826 * config/arm/arm.cc (arm_hard_regno_nregs): Handle VPR.
14827
14828 2022-02-22 Tobias Burnus <tobias@codesourcery.com>
14829 Tom de Vries <tdevries@suse.de>
14830
14831 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Handle SM70.
14832 * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm):
14833 Likewise.
14834 * config/nvptx/nvptx.opt (misa): Add sm_70 alias PTX_ISA_SM70.
14835
14836 2022-02-22 Tobias Burnus <tobias@codesourcery.com>
14837 Tom de Vries <tdevries@suse.de>
14838
14839 * config/nvptx/nvptx.opt (mptx): Add 6.0 alias PTX_VERSION_6_0.
14840 * doc/invoke.texi (-mptx): Update for new values and defaults.
14841
14842 2022-02-22 Tom de Vries <tdevries@suse.de>
14843
14844 * config/nvptx/nvptx.cc (gen_comment): New function.
14845 (workaround_uninit_method_1, workaround_uninit_method_2)
14846 (workaround_uninit_method_3): : Use gen_comment.
14847 * config/nvptx/nvptx.opt (mptx-comment): New option.
14848
14849 2022-02-22 Richard Biener <rguenther@suse.de>
14850
14851 * tree-vect-slp.cc (vect_build_slp_tree_2): Dump the def used
14852 for a splat.
14853
14854 2022-02-22 Roger Sayle <roger@nextmovesoftware.com>
14855 Richard Biener <rguenther@suse.de>
14856
14857 * fold-const.cc (ctor_single_nonzero_element): New function to
14858 return the single non-zero element of a (vector) constructor.
14859 * fold-const.h (ctor_single_nonzero_element): Prototype here.
14860 * match.pd (reduc (constructor@0)): Simplify reductions of a
14861 constructor containing a single non-zero element.
14862 (reduc (@0 op VECTOR_CST) -> (reduc @0) op CONST): Simplify
14863 reductions of vector operations of the same operator with
14864 constant vector operands.
14865
14866 2022-02-22 Jakub Jelinek <jakub@redhat.com>
14867
14868 PR tree-optimization/104604
14869 * gimple-range-fold.cc (adjust_imagpart_expr, adjust_realpart_expr):
14870 Only check if gimple_assign_rhs1 is COMPLEX_CST if
14871 gimple_assign_rhs_code is COMPLEX_CST.
14872
14873 2022-02-22 Jakub Jelinek <jakub@redhat.com>
14874
14875 PR target/104612
14876 * config/i386/i386-expand.cc (ix86_expand_copysign): Call force_reg
14877 on input operands before calling lowpart_subreg on it. For output
14878 operand, use a vmode pseudo as destination and then move its lowpart
14879 subreg into operands[0] if lowpart_subreg fails on dest.
14880 (ix86_expand_xorsign): Likewise.
14881
14882 2022-02-22 Richard Biener <rguenther@suse.de>
14883
14884 PR tree-optimization/104582
14885 PR target/99881
14886 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
14887 Cost GPR to vector register moves for integer vector construction.
14888
14889 2022-02-22 Richard Biener <rguenther@suse.de>
14890
14891 PR tree-optimization/104582
14892 * tree-vectorizer.h (stmt_info_for_cost::node): New field.
14893 (vector_costs::add_stmt_cost): Add SLP node parameter.
14894 (dump_stmt_cost): Likewise.
14895 (add_stmt_cost): Likewise, new overload and adjust.
14896 (add_stmt_costs): Adjust.
14897 (record_stmt_cost): New overload.
14898 * tree-vectorizer.cc (dump_stmt_cost): Dump the SLP node.
14899 (vector_costs::add_stmt_cost): Adjust.
14900 * tree-vect-loop.cc (vect_estimate_min_profitable_iters):
14901 Adjust.
14902 * tree-vect-slp.cc (vect_prologue_cost_for_slp): Record
14903 the SLP node for costing.
14904 (vectorizable_slp_permutation): Likewise.
14905 * tree-vect-stmts.cc (record_stmt_cost): Adjust and add
14906 new overloads.
14907 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
14908 Adjust.
14909 * config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost):
14910 Adjust.
14911 * config/rs6000/rs6000.cc (rs6000_vector_costs::add_stmt_cost):
14912 Adjust.
14913 (rs6000_cost_data::adjust_vect_cost_per_loop): Likewise.
14914
14915 2022-02-22 Richard Biener <rguenther@suse.de>
14916
14917 PR tree-optimization/104582
14918 * tree-vectorizer.h (add_stmt_cost): New overload.
14919 (record_stmt_cost): Likewise.
14920 * tree-vect-loop.cc (vect_compute_single_scalar_iteration_cost):
14921 Use add_stmt_costs.
14922 (vect_get_known_peeling_cost): Use new overloads.
14923 (vect_estimate_min_profitable_iters): Likewise. Consistently
14924 use scalar_stmt for costing versioning checks.
14925 * tree-vect-stmts.cc (record_stmt_cost): New overload.
14926
14927 2022-02-22 Hongyu Wang <hongyu.wang@intel.com>
14928
14929 PR target/103069
14930 * config/i386/i386-expand.cc (ix86_expand_atomic_fetch_op_loop):
14931 Split atomic fetch and loop part.
14932 (ix86_expand_cmpxchg_loop): New expander for cmpxchg loop.
14933 * config/i386/i386-protos.h (ix86_expand_cmpxchg_loop): New
14934 prototype.
14935 * config/i386/sync.md (atomic_compare_and_swap<mode>): Call new
14936 expander under TARGET_RELAX_CMPXCHG_LOOP.
14937 (atomic_compare_and_swap<mode>): Likewise for doubleword modes.
14938
14939 2022-02-21 Dan Li <ashimida@linux.alibaba.com>
14940
14941 * config/aarch64/aarch64.cc (SLOT_REQUIRED):
14942 Change wb_candidate[12] to wb_push_candidate[12].
14943 (aarch64_layout_frame): Likewise, and
14944 change callee_adjust when scs is enabled.
14945 (aarch64_save_callee_saves):
14946 Change wb_candidate[12] to wb_push_candidate[12].
14947 (aarch64_restore_callee_saves):
14948 Change wb_candidate[12] to wb_pop_candidate[12].
14949 (aarch64_get_separate_components):
14950 Change wb_candidate[12] to wb_push_candidate[12].
14951 (aarch64_expand_prologue): Push x30 onto SCS before it's
14952 pushed onto stack.
14953 (aarch64_expand_epilogue): Pop x30 frome SCS, while
14954 preventing it from being popped from the regular stack again.
14955 (aarch64_override_options_internal): Add SCS compile option check.
14956 (TARGET_HAVE_SHADOW_CALL_STACK): New hook.
14957 * config/aarch64/aarch64.h (struct GTY): Add is_scs_enabled,
14958 wb_pop_candidate[12], and rename wb_candidate[12] to
14959 wb_push_candidate[12].
14960 * config/aarch64/aarch64.md (scs_push): New template.
14961 (scs_pop): Likewise.
14962 * doc/invoke.texi: Document -fsanitize=shadow-call-stack.
14963 * doc/tm.texi: Regenerate.
14964 * doc/tm.texi.in: Add hook have_shadow_call_stack.
14965 * flag-types.h (enum sanitize_code):
14966 Add SANITIZE_SHADOW_CALL_STACK.
14967 * opts.cc (parse_sanitizer_options): Add shadow-call-stack
14968 and exclude SANITIZE_SHADOW_CALL_STACK.
14969 * target.def: New hook.
14970 * toplev.cc (process_options): Add SCS compile option check.
14971 * ubsan.cc (ubsan_expand_null_ifn): Enum type conversion.
14972
14973 2022-02-21 Tom de Vries <tdevries@suse.de>
14974
14975 PR target/104440
14976 * config/nvptx/nvptx.cc (workaround_uninit_method_1)
14977 (workaround_uninit_method_2, workaround_uninit_method_3)
14978 (workaround_uninit): New function.
14979 (nvptx_reorg): Use workaround_uninit.
14980 * config/nvptx/nvptx.opt (minit-regs): New option.
14981
14982 2022-02-21 Andre Vieira <andre.simoesdiasvieira@arm.com>
14983
14984 PR rtl-optimization/104498
14985 * alias.cc (compare_base_symbol_refs): Correct distance computation
14986 when swapping x and y.
14987
14988 2022-02-21 Andrew Pinski <apinski@marvell.com>
14989
14990 PR c/104506
14991 * tree-ssa.cc (tree_ssa_useless_type_conversion):
14992 Check the inner type before calling useless_type_conversion_p.
14993
14994 2022-02-19 Tom de Vries <tdevries@suse.de>
14995
14996 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle SET insn.
14997 * config/nvptx/nvptx.md
14998 (define_insn "nvptx_atomic_store<mode>"): Rename to ...
14999 (define_insn "nvptx_atomic_store_sm70<mode>"): This.
15000 (define_insn "nvptx_atomic_store<mode>"): New define_insn.
15001 (define_expand "atomic_store<mode>"): Handle rename. Use
15002 nvptx_atomic_store instead of atomic_exchange.
15003
15004 2022-02-19 Tom de Vries <tdevries@suse.de>
15005
15006 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle all
15007 insns with atomic attribute. Assert that all handled insns are
15008 PARALLELs.
15009 * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"):
15010 Set atomic attribute to false.
15011
15012 2022-02-19 Tom de Vries <tdevries@suse.de>
15013
15014 * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Change return
15015 type to bool.
15016 (nvptx_reorg_uniform_simt): Insert nvptx_uniform_warp_check or
15017 nvptx_warpsync, if necessary.
15018
15019 2022-02-19 Jakub Jelinek <jakub@redhat.com>
15020
15021 PR sanitizer/102656
15022 * asan.cc (instrument_derefs): If inner is a RESULT_DECL and access is
15023 known to be within bounds, treat it like automatic variables.
15024 If instrumenting access and inner is {VAR,PARM,RESULT}_DECL from
15025 current function and !TREE_STATIC which is not TREE_ADDRESSABLE, mark
15026 it addressable.
15027
15028 2022-02-18 Pat Haugen <pthaugen@linux.ibm.com>
15029
15030 * config/rs6000/rs6000.opt (mpower10-fusion): Mark Undocumented.
15031 (mpower10-fusion-ld-cmpi, mpower10-fusion-2logical,
15032 mpower10-fusion-logical-add, mpower10-fusion-add-logical,
15033 mpower10-fusion-2add, mpower10-fusion-2store): Remove.
15034 * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER,
15035 OTHER_P9_VECTOR_MASKS): Remove Power10 fusion sub-options.
15036 * config/rs6000/rs6000.cc (rs6000_option_override_internal,
15037 power10_sched_reorder): Likewise.
15038 * config/rs6000/genfusion.pl (gen_ld_cmpi_p10, gen_logical_addsubf,
15039 gen_addadd): Likewise
15040 * config/rs6000/fusion.md: Regenerate.
15041
15042 2022-02-18 Jakub Jelinek <jakub@redhat.com>
15043
15044 PR target/104257
15045 PR target/104598
15046 * config/rs6000/mm_malloc.h (_mm_malloc): Call posix_memalign
15047 rather than __posix_memalign.
15048
15049 2022-02-18 Richard Biener <rguenther@suse.de>
15050
15051 PR target/104581
15052 * config/i386/i386.cc (ix86_avx_u128_mode_source): Remove.
15053 (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY instead
15054 of calling ix86_avx_u128_mode_source which would eventually
15055 have returned AVX_U128_ANY in some very special case.
15056
15057 2022-02-18 Richard Biener <rguenther@suse.de>
15058
15059 PR tree-optimization/96881
15060 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Comment
15061 CLOBBER handling.
15062 (control_parents_preserved_p): New function.
15063 (eliminate_unnecessary_stmts): Check that we preserved control
15064 parents before retaining a CLOBBER.
15065 (perform_tree_ssa_dce): Pass down aggressive flag
15066 to eliminate_unnecessary_stmts.
15067
15068 2022-02-17 Jason Merrill <jason@redhat.com>
15069
15070 * tree.cc (warn_deprecated_use): Look for TYPE_STUB_DECL
15071 on TYPE_MAIN_VARIANT.
15072
15073 2022-02-17 Paul A. Clarke <pc@us.ibm.com>
15074
15075 PR target/104257
15076 * config/rs6000/bmi2intrin.h: Uglify local variables.
15077 * config/rs6000/emmintrin.h: Likewise.
15078 * config/rs6000/mm_malloc.h: Likewise.
15079 * config/rs6000/mmintrin.h: Likewise.
15080 * config/rs6000/pmmintrin.h: Likewise.
15081 * config/rs6000/smmintrin.h: Likewise.
15082 * config/rs6000/tmmintrin.h: Likewise.
15083 * config/rs6000/xmmintrin.h: Likewise.
15084
15085 2022-02-17 Robin Dapp <rdapp@linux.ibm.com>
15086
15087 PR target/104335
15088 * config/rs6000/rs6000.cc (rs6000_emit_int_cmove): Return false
15089 if the expected comparison's first operand is of mode MODE_CC.
15090
15091 2022-02-17 Vladimir N. Makarov <vmakarov@redhat.com>
15092
15093 PR rtl-optimization/104447
15094 * lra-constraints.cc (spill_hard_reg_in_range): Initiate ignore
15095 hard reg set by lra_no_alloc_regs.
15096
15097 2022-02-17 liuhongt <hongtao.liu@intel.com>
15098
15099 PR tree-optimization/104551
15100 PR tree-optimization/103771
15101 * match.pd (cond_expr_convert_p): Add types_match check when
15102 convert is extension.
15103 * tree-vect-patterns.cc
15104 (gimple_cond_expr_convert_p): Adjust comments.
15105 (vect_recog_cond_expr_convert_pattern): Ditto.
15106
15107 2022-02-17 Jakub Jelinek <jakub@redhat.com>
15108
15109 PR debug/104557
15110 * valtrack.cc (debug_lowpart_subreg): Don't call gen_rtx_raw_SUBREG
15111 if expr has VOIDmode.
15112
15113 2022-02-17 liuhongt <hongtao.liu@intel.com>
15114
15115 * config/i386/cpuid.h (bit_MPX): Removed.
15116 (bit_BNDREGS): Ditto.
15117 (bit_BNDCSR): Ditto.
15118
15119 2022-02-17 Michael Meissner <meissner@the-meissners.org>
15120
15121 PR target/99708
15122 * config/rs6000/rs6000-c.cc (rs6000_cpu_cpp_builtins): Define
15123 __SIZEOF_IBM128__ if the IBM 128-bit long double type is created.
15124 Define __SIZEOF_FLOAT128__ if the IEEE 128-bit floating point type
15125 is created.
15126
15127 2022-02-16 Andrew MacLeod <amacleod@redhat.com>
15128
15129 * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use
15130 range_compatible_p instead of direct type comparison.
15131
15132 2022-02-16 Jakub Jelinek <jakub@redhat.com>
15133
15134 PR rtl-optimization/104544
15135 * combine.cc (try_combine): When looking for insn whose links
15136 should be updated from i3 to i2, don't stop on debug insns, instead
15137 skip over them.
15138
15139 2022-02-16 Richard Sandiford <richard.sandiford@arm.com>
15140
15141 PR target/100056
15142 * config/aarch64/iterators.md (LOGICAL_OR_PLUS): New iterator.
15143 * config/aarch64/aarch64.md: Extend the PR100056 patterns
15144 to handle plus in the same way as ior, if the operands have
15145 no set bits in common.
15146
15147 2022-02-15 Andrew MacLeod <amacleod@redhat.com>
15148
15149 PR tree-optimization/104526
15150 * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Call
15151 new routine.
15152 * gimple-range-gori.cc (range_def_chain::get_def_chain): Force a build
15153 of dependency chain if there isn't one.
15154 (gori_compute::condexpr_adjust): New.
15155 * gimple-range-gori.h (class gori_compute): New prototype.
15156
15157 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
15158
15159 PR target/100874
15160 * config/aarch64/aarch64-protos.h (aarch64_maxmin_plus_const):
15161 Declare.
15162 * config/aarch64/aarch64.cc (aarch64_maxmin_plus_const): New function.
15163 * config/aarch64/aarch64.md (*aarch64_minmax_plus): New pattern.
15164
15165 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
15166
15167 * tree-vectorizer.h (vect_scalar_ops_slice): New struct.
15168 (vect_scalar_ops_slice_hash): Likewise.
15169 (vect_scalar_ops_slice::op): New function.
15170 * tree-vect-slp.cc (vect_scalar_ops_slice::all_same_p): New function.
15171 (vect_scalar_ops_slice_hash::hash): Likewise.
15172 (vect_scalar_ops_slice_hash::equal): Likewise.
15173 (vect_prologue_cost_for_slp): Check for duplicate vectors.
15174 * config/aarch64/aarch64.cc
15175 (aarch64_vector_costs::m_stp_sequence_cost): New member variable.
15176 (aarch64_aligned_constant_offset_p): New function.
15177 (aarch64_stp_sequence_cost): Likewise.
15178 (aarch64_vector_costs::add_stmt_cost): Handle new STP heuristic.
15179 (aarch64_vector_costs::finish_cost): Likewise.
15180
15181 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
15182
15183 * tree-vect-slp.cc (vect_bb_vectorization_profitable_p): Fix
15184 use after free.
15185
15186 2022-02-15 Richard Biener <rguenther@suse.de>
15187
15188 PR tree-optimization/104543
15189 * gimple-loop-jam.cc (unroll_jam_possible_p): Check outer loop exits
15190 come after the inner loop.
15191
15192 2022-02-15 Jakub Jelinek <jakub@redhat.com>
15193
15194 PR target/104536
15195 * config/i386/host-cygwin.cc (cygwin_gt_pch_get_address): Use
15196 cannot instead of can%'t in diagnostics. Formatting fixes.
15197
15198 2022-02-15 Jakub Jelinek <jakub@redhat.com>
15199
15200 PR middle-end/104522
15201 * fold-const.h (native_interpret_real): Declare.
15202 * fold-const.cc (native_interpret_real): No longer static. Don't
15203 perform MODE_COMPOSITE_P verification here.
15204 (native_interpret_expr) <case REAL_TYPE>: But perform it here instead
15205 for all modes.
15206 * gimple-fold.cc (clear_padding_type): Call native_interpret_real
15207 instead of native_interpret_expr.
15208 * simplify-rtx.cc (simplify_immed_subreg): Perform the native_encode_rtx
15209 and comparison verification for all FLOAT_MODE_P modes, not just
15210 MODE_COMPOSITE_P.
15211
15212 2022-02-15 Richard Biener <rguenther@suse.de>
15213
15214 PR tree-optimization/104519
15215 * fold-const.cc (multiple_of_p): Remove never true condition.
15216 * tree-ssa-loop-niter.cc (number_of_iterations_ne): Use
15217 the appropriate types for determining whether the difference
15218 of final and base is a multiple of the step.
15219
15220 2022-02-15 Jakub Jelinek <jakub@redhat.com>
15221
15222 PR debug/104517
15223 * omp-low.cc (task_cpyfns): New variable.
15224 (delete_omp_context): Don't call finalize_task_copyfn from here.
15225 (create_task_copyfn): Push task_stmt into task_cpyfns.
15226 (execute_lower_omp): Call finalize_task_copyfn here on entries from
15227 task_cpyfns vector and release the vector.
15228
15229 2022-02-14 Martin Sebor <msebor@redhat.com>
15230
15231 PR middle-end/104355
15232 * doc/invoke.texi (-Warray-bounds): Update documentation.
15233
15234 2022-02-14 Michael Meissner <meissner@the-meissners.org>
15235
15236 PR target/104253
15237 * config/rs6000/rs6000.cc (init_float128_ibm): Update the
15238 conversion functions used to convert IFmode types.
15239
15240 2022-02-14 Andrew Stubbs <ams@codesourcery.com>
15241
15242 * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Use force_reg.
15243
15244 2022-02-14 Richard Biener <rguenther@suse.de>
15245
15246 PR tree-optimization/104528
15247 * tree-ssa.h (find_released_ssa_name): Declare.
15248 * tree-ssa.cc (find_released_ssa_name): Export.
15249 * cfgloop.cc (verify_loop_structure): Look for released
15250 SSA names in loops nb_iterations.
15251 * tree-ssa-dse.cc (pass_dse::execute): Release number of iteration
15252 estimates.
15253
15254 2022-02-14 Richard Biener <rguenther@suse.de>
15255
15256 PR tree-optimization/104511
15257 * tree-ssa-forwprop.cc (simplify_vector_constructor): Avoid
15258 touching DFP <-> FP conversions.
15259
15260 2022-02-14 Richard Biener <rguenther@suse.de>
15261
15262 PR middle-end/104497
15263 * gimplify.cc (gimplify_compound_lval): Make sure the
15264 base is a non-register if needed and possible.
15265
15266 2022-02-13 liuhongt <hongtao.liu@intel.com>
15267
15268 PR target/103771
15269 * match.pd (cond_expr_convert_p): New match.
15270 * tree-vect-patterns.cc (gimple_cond_expr_convert_p): Declare.
15271 (vect_recog_cond_expr_convert_pattern): New.
15272
15273 2022-02-12 Jakub Jelinek <jakub@redhat.com>
15274
15275 PR sanitizer/104449
15276 * asan.cc: Include tree-eh.h.
15277 (handle_builtin_alloca): Handle the case when __builtin_alloca or
15278 __builtin_alloca_with_align can throw.
15279
15280 2022-02-12 Jakub Jelinek <jakub@redhat.com>
15281
15282 PR target/104502
15283 * config/i386/i386.md (cvtsd2ss splitter): If operands[1] is xmm16+
15284 and AVX512VL isn't available, move operands[1] to operands[0] first.
15285
15286 2022-02-12 Uroš Bizjak <ubizjak@gmail.com>
15287
15288 PR target/79754
15289 * config/i386/i386.cc (type_natural_mode):
15290 Skip decimal float vector modes.
15291
15292 2022-02-11 Iain Sandoe <iain@sandoe.co.uk>
15293 Vladimir Makarov <vmakarov@redhat.com>
15294
15295 PR target/104117
15296 * config/rs6000/rs6000.cc (darwin_rs6000_legitimate_lo_sum_const_p):
15297 Check for UNSPEC_MACHOPIC_OFFSET wrappers on symbolic addresses when
15298 emitting PIC code.
15299 (legitimate_lo_sum_address_p): Likewise.
15300 * lra-constraints.cc (process_address_1): Do not attempt to emit a reg
15301 load from an invalid lo_sum address.
15302
15303 2022-02-11 Jakub Jelinek <jakub@redhat.com>
15304
15305 PR tree-optimization/104499
15306 * match.pd ((X & Y) CMP 0 -> X CMP2 ~Y): Use view_convert instead
15307 of convert.
15308
15309 2022-02-11 Jakub Jelinek <jakub@redhat.com>
15310
15311 * tree.cc (build_common_builtin_nodes): Fix up formatting in
15312 __builtin_clear_padding decl creation.
15313 * gimplify.cc (gimple_add_padding_init_for_auto_var): Encode
15314 for_auto_init in the value of 2nd BUILT_IN_CLEAR_PADDING
15315 argument rather than in 3rd argument.
15316 (gimplify_call_expr): Likewise. Fix up comment formatting.
15317 * gimple-fold.cc (gimple_fold_builtin_clear_padding): Expect
15318 2 arguments instead of 3, take for_auto_init from the value
15319 of 2nd argument.
15320
15321 2022-02-11 Vladimir N. Makarov <vmakarov@redhat.com>
15322
15323 PR rtl-optimization/104400
15324 * lra-constraints.cc (process_alt_operands): Don't make union of
15325 this_alternative_exclude_start_hard_regs when reg class in insn
15326 alternative covers other reg classes in the same alternative.
15327
15328 2022-02-11 Jakub Jelinek <jakub@redhat.com>
15329
15330 PR middle-end/104446
15331 * combine.cc (subst): Don't substitute CONST_INTs into RTX_AUTOINC
15332 operands.
15333
15334 2022-02-11 Richard Biener <rguenther@suse.de>
15335
15336 PR middle-end/104496
15337 * internal-fn.cc (vectorized_internal_fn_supported_p):
15338 Bail out for integer mode vector types.
15339
15340 2022-02-11 Jakub Jelinek <jakub@redhat.com>
15341
15342 PR rtl-optimization/104459
15343 * df-scan.cc (df_insn_change_bb): Don't call df_set_bb_dirty when
15344 moving DEBUG_INSNs between bbs.
15345
15346 2022-02-11 liuhongt <hongtao.liu@intel.com>
15347
15348 PR tree-optimization/104479
15349 * match.pd (uncond_op + vec_cond -> cond_op): Add single_use
15350 for the dest of uncond_op.
15351
15352 2022-02-11 Tom de Vries <tdevries@suse.de>
15353
15354 PR target/104456
15355 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle asm
15356 insn.
15357
15358 2022-02-10 Qing Zhao <qing.zhao@oracle.com>
15359
15360 PR middle-end/100775
15361 * function.cc (gen_call_used_regs_seq): Call
15362 df_update_exit_block_uses when updating df.
15363
15364 2022-02-10 Uroš Bizjak <ubizjak@gmail.com>
15365
15366 PR target/104469
15367 * config/i386/sse.md (vec_unpacks_float_lo_v4si):
15368 Change operand 1 constraint to register_operand.
15369
15370 2022-02-10 Richard Biener <rguenther@suse.de>
15371
15372 PR tree-optimization/104373
15373 * tree-ssa-sccvn.h (do_rpo_vn): New export exposing the
15374 walk kind.
15375 * tree-ssa-sccvn.cc (do_rpo_vn): Export, get the default
15376 walk kind as argument.
15377 (run_rpo_vn): Adjust.
15378 (pass_fre::execute): Likewise.
15379 * tree-ssa-uninit.cc (warn_uninitialized_vars): Skip
15380 blocks not reachable.
15381 (execute_late_warn_uninitialized): Mark all edges as
15382 executable.
15383 (execute_early_warn_uninitialized): Use VN to compute
15384 executable edges.
15385 (pass_data_early_warn_uninitialized): Enable a dump file,
15386 change dump name to warn_uninit.
15387
15388 2022-02-10 Richard Biener <rguenther@suse.de>
15389
15390 PR middle-end/104467
15391 * match.pd (vector extract simplification): Multiply the
15392 number of CTOR elements with the number of element elements.
15393
15394 2022-02-10 Richard Biener <rguenther@suse.de>
15395
15396 PR tree-optimization/104466
15397 * tree-ssa-alias.cc (refs_may_alias_p_2): Use rbase1/rbase2
15398 for the MR_DEPENDENCE checks as intended.
15399
15400 2022-02-10 Tom de Vries <tdevries@suse.de>
15401
15402 * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"): New
15403 define_insn.
15404 (define_expand "atomic_store<mode>"): Use nvptx_atomic_store<mode> for
15405 TARGET_SM70.
15406 (define_c_enum "unspecv"): Add UNSPECV_ST.
15407
15408 2022-02-10 Tom de Vries <tdevries@suse.de>
15409
15410 * config/nvptx/nvptx-protos.h (nvptx_mem_maybe_shared_p): Declare.
15411 * config/nvptx/nvptx.cc (nvptx_mem_data_area): New static function.
15412 (nvptx_mem_maybe_shared_p): New function.
15413 * config/nvptx/nvptx.md (define_expand "atomic_store<mode>"): New
15414 define_expand.
15415
15416 2022-02-10 Tom de Vries <tdevries@suse.de>
15417
15418 PR target/97005
15419 * config/nvptx/nvptx.md (define_insn "sub<mode>3"): Workaround
15420 driver JIT bug by using sub.s16 instead of sub.u16.
15421
15422 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
15423
15424 * config/nvptx/nvptx.md (copysign<mode>3): Allow immediate
15425 floating point constants as operands 1 and/or 2.
15426
15427 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
15428
15429 PR target/104345
15430 * config/nvptx/nvptx.md (sel_true<mode>): Fix indentation.
15431 (sel_false<mode>): Likewise.
15432 (define_code_iterator eqne): New code iterator for EQ and NE.
15433 (*selp<mode>_neg_<code>): New define_insn_and_split to optimize
15434 the negation of a selp instruction.
15435 (*selp<mode>_not_<code>): New define_insn_and_split to optimize
15436 the bitwise not of a selp instruction.
15437 (*setcc_int<mode>): Use set instruction for neg:SI of a selp.
15438
15439 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
15440
15441 * config/nvptx/nvptx.md (any_logic): Move code iterator earlier
15442 in machine description.
15443 (logic): Move code attribute earlier in machine description.
15444 (ilogic): New code attribute, like logic but "ior" for IOR.
15445 (and<mode>3, ior<mode>3, xor<mode>3): Delete. Replace with...
15446 (<ilogic><mode>3): New define_insn for HSDIM logic operations.
15447 (<ilogic>bi3): New define_insn for BI mode logic operations.
15448 (define_split): Lower logic operations from integer modes to
15449 BI mode predicate operations.
15450
15451 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
15452
15453 * config/nvptx/nvptx.md (UNSPEC_ISINF): New UNSPEC.
15454 (one_cmplbi2): New define_insn for not.pred.
15455 (mulditi3): New define_expand for signed widening multiply.
15456 (umulditi3): New define_expand for unsigned widening multiply.
15457 (smul<mode>3_highpart): New define_insn for signed highpart mult.
15458 (umul<mode>3_highpart): New define_insn for unsigned highpart mult.
15459 (*smulhi3_highpart_2): Renamed from smulhi3_highpart.
15460 (*smulsi3_highpart_2): Renamed from smulsi3_highpart.
15461 (*umulhi3_highpart_2): Renamed from umulhi3_highpart.
15462 (*umulsi3_highpart_2): Renamed from umulsi3_highpart.
15463 (*setcc<mode>_from_not_bi): New define_insn.
15464 (*setcc_isinf<mode>): New define_insn for testp.infinite.
15465 (isinf<mode>2): New define_expand.
15466
15467 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
15468
15469 * config/nvptx/nvptx.md (cmp<mode>): Renamed from *cmp<mode>.
15470 (setcc<mode>_from_bi): Additionally support QImode.
15471 (extendbi<mode>2): Additionally support QImode.
15472 (zero_extendbi<mode>2): Additionally support QImode.
15473 (any_sbinary, any_ubinary, any_sunary, any_uunary): New code
15474 iterators for signed and unsigned, binary and unary operations.
15475 (<sbinary>qi3, <ubinary>qi3, <sunary>qi2, <uunary>qi2): New
15476 expanders to perform QImode operations using SImode instructions.
15477 (cstoreqi4): New define_expand.
15478 (*ext_truncsi2_qi): New define_insn.
15479 (*zext_truncsi2_qi): New define_insn.
15480
15481 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
15482
15483 * config/nvptx/nvptx.md (*cmpf): New define_insn.
15484 (cstorehf4): New define_expand.
15485 (fmahf4): New define_insn.
15486 (neghf2): New define_insn.
15487 (abshf2): New define_insn.
15488
15489 2022-02-10 Gerald Pfeifer <gerald@pfeifer.com>
15490
15491 * doc/install.texi (Specific): Change the www.bitwizard.nl
15492 reference to use https.
15493
15494 2022-02-10 Marcel Vollweiler <marcel@codesourcery.com>
15495
15496 * gimplify.cc (gimplify_scan_omp_clauses): Added cases for
15497 OMP_CLAUSE_HAS_DEVICE_ADDR
15498 and handle array sections.
15499 (gimplify_adjust_omp_clauses): Added OMP_CLAUSE_HAS_DEVICE_ADDR case.
15500 * omp-low.cc (scan_sharing_clauses): Handle OMP_CLAUSE_HAS_DEVICE_ADDR.
15501 (lower_omp_target): Same.
15502 * tree-core.h (enum omp_clause_code): Same.
15503 * tree-nested.cc (convert_nonlocal_omp_clauses): Same.
15504 (convert_local_omp_clauses): Same.
15505 * tree-pretty-print.cc (dump_omp_clause): Same.
15506 * tree.cc: Same.
15507
15508 2022-02-10 Eugene Rozenfeld <erozen@microsoft.com>
15509
15510 * auto-profile.cc (afdo_indirect_call): Don't attempt to promote indirect calls
15511 that will result in direct recursive calls.
15512
15513 2022-02-10 Andrew Pinski <apinski@marvell.com>
15514
15515 PR target/104474
15516 * config/aarch64/aarch64.cc
15517 (aarch64_sve_expand_vector_init_handle_trailing_constants):
15518 Use CONST0_RTX instead of const0_rtx for the non-constant elements.
15519
15520 2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
15521
15522 PR target/104462
15523 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_XSAVE_UNSET):
15524 Also include OPTION_MASK_ISA2_AVX2_UNSET.
15525
15526 2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
15527
15528 PR target/104458
15529 * config/i386/i386-expand.cc (ix86_split_idivmod):
15530 Force operands[2] and operands[3] into a register..
15531
15532 2022-02-09 Jeff Law <jeffreyalaw@gmail.com>
15533
15534 PR target/97040
15535 * config/v850/v850.md (*v850_fnmasf4): Renamed from fnmasf4.
15536 (*v850_fnmssf4): Renamed from fnmssf4
15537
15538 2022-02-09 Ian Lance Taylor <iant@golang.org>
15539
15540 * godump.cc (go_force_record_alignment): Really name the alignment
15541 field "_" (complete 2021-12-29 change).
15542
15543 2022-02-09 Bill Schmidt <wschmidt@linux.ibm.com>
15544
15545 * config/rs6000/rs6000-builtins.def (VREPLACE_UN_UV2DI): Change
15546 function prototype.
15547 (VREPLACE_UN_UV4SI): Likewise.
15548 (VREPLACE_UN_V2DF): Likewise.
15549 (VREPLACE_UN_V2DI): Likewise.
15550 (VREPLACE_UN_V4SF): Likewise.
15551 (VREPLACE_UN_V4SI): Likewise.
15552 * config/rs6000/rs6000-overload.def (VEC_REPLACE_UN): Change all
15553 function prototypes.
15554 * config/rs6000/vsx.md (vreplace_un_<mode>): Remove define_expand.
15555 (vreplace_un_<mode>): New define_insn.
15556
15557 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
15558
15559 * config/aarch64/iterators.md (VDCSIF): New mode iterator.
15560 (VDBL): Handle SF.
15561 (single_wx, single_type, single_dtype, dblq): New mode attributes.
15562 * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Extend
15563 from VDC to VDCSIF.
15564 (store_pair_lanes<mode>): Likewise.
15565 (*aarch64_combine_internal<mode>): Likewise.
15566 (*aarch64_combine_internal_be<mode>): Likewise.
15567 (*aarch64_combinez<mode>): Likewise.
15568 (*aarch64_combinez_be<mode>): Likewise.
15569 * config/aarch64/aarch64.cc (aarch64_classify_address): Handle
15570 8-byte modes for ADDR_QUERY_LDP_STP_N.
15571 (aarch64_print_operand): Likewise for %y.
15572
15573 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
15574
15575 * config/aarch64/aarch64-simd.md (@aarch64_split_simd_mov<mode>):
15576 Use aarch64_combine instead of move_lo/hi_quad. Tabify.
15577 (move_lo_quad_<mode>, aarch64_simd_move_hi_quad_<mode>): Delete.
15578 (aarch64_simd_move_hi_quad_be_<mode>, move_hi_quad_<mode>): Delete.
15579 (vec_pack_trunc_<mode>): Take general_operand elements and use
15580 aarch64_combine rather than move_lo/hi_quad to combine them.
15581 (vec_pack_trunc_df): Likewise.
15582
15583 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
15584
15585 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine):
15586 Delete.
15587 * config/aarch64/aarch64-simd.md (@aarch64_combinez<mode>): Rename
15588 to...
15589 (*aarch64_combinez<mode>): ...this.
15590 (@aarch64_combinez_be<mode>): Rename to...
15591 (*aarch64_combinez_be<mode>): ...this.
15592 (@aarch64_vec_concat<mode>): New expander.
15593 (aarch64_combine<mode>): Use it.
15594 (@aarch64_simd_combine<mode>): Delete.
15595 * config/aarch64/aarch64.cc (aarch64_split_simd_combine): Delete.
15596 (aarch64_expand_vector_init): Use aarch64_vec_concat.
15597
15598 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
15599
15600 * config/aarch64/predicates.md (aarch64_reg_or_mem_pair_operand):
15601 New predicate.
15602 * config/aarch64/aarch64-simd.md (*aarch64_combine_internal<mode>)
15603 (*aarch64_combine_internal_be<mode>): New patterns.
15604
15605 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
15606
15607 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>)
15608 (move_lo_quad_internal_be_<mode>): Delete.
15609 (move_lo_quad_<mode>): Use aarch64_combine<Vhalf> instead of the above.
15610
15611 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
15612
15613 * config/aarch64/aarch64-protos.h (aarch64_mergeable_load_pair_p):
15614 Declare.
15615 * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Use
15616 aarch64_mergeable_load_pair_p instead of inline check.
15617 * config/aarch64/aarch64.cc (aarch64_expand_vector_init): Likewise.
15618 (aarch64_check_consecutive_mems): Allow the reversed parameter
15619 to be null.
15620 (aarch64_mergeable_load_pair_p): New function.
15621
15622 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
15623
15624 * config/aarch64/aarch64-simd.md (vec_set<mode>): Allow the
15625 element to be an aarch64_simd_nonimmediate_operand.
15626
15627 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
15628
15629 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
15630 aarch64_simd_nonimmediate_operand instead of
15631 aarch64_simd_general_operand.
15632 (@aarch64_combinez<mode>): Use nonimmediate_operand instead of
15633 general_operand.
15634 (@aarch64_combinez_be<mode>): Likewise.
15635
15636 2022-02-09 Richard Biener <rguenther@suse.de>
15637
15638 PR middle-end/104464
15639 * gimple-isel.cc (gimple_expand_vec_cond_expr): Postpone
15640 throwing check to after unproblematic replacement.
15641
15642 2022-02-09 Roger Sayle <roger@nextmovesoftware.com>
15643
15644 PR tree-optimization/104420
15645 * match.pd (mult @0 real_zerop): Tweak conditions for constant
15646 folding X*0.0 (or X*-0.0) to HONOR_SIGNED_ZEROS when appropriate.
15647
15648 2022-02-09 Jakub Jelinek <jakub@redhat.com>
15649
15650 PR debug/104407
15651 * dwarf2out.cc (mangle_referenced_decls): New function.
15652 (tree_add_const_value_attribute): Don't call rtl_for_decl_init if
15653 early_dwarf. Instead walk the initializer and try to mangle vars or
15654 functions referenced from it.
15655
15656 2022-02-09 Andrew MacLeod <amacleod@redhat.com>
15657
15658 PR tree-optimization/104288
15659 * gimple-range-cache.cc (non_null_ref::set_nonnull): New.
15660 (non_null_ref::adjust_range): Move to header.
15661 (ranger_cache::range_of_def): Don't check non-null.
15662 (ranger_cache::entry_range): Don't check non-null.
15663 (ranger_cache::range_on_edge): Check for nonnull on normal edges.
15664 (ranger_cache::update_to_nonnull): New.
15665 (non_null_loadstore): New.
15666 (ranger_cache::block_apply_nonnull): New.
15667 * gimple-range-cache.h (class non_null_ref): Update prototypes.
15668 (non_null_ref::adjust_range): Move to here and inline.
15669 (class ranger_cache): Update prototypes.
15670 * gimple-range-path.cc (path_range_query::range_defined_in_block): Do
15671 not search dominators.
15672 (path_range_query::adjust_for_non_null_uses): Ditto.
15673 * gimple-range.cc (gimple_ranger::range_of_expr): Check on-entry for
15674 def overrides. Do not check nonnull.
15675 (gimple_ranger::range_on_entry): Check dominators for nonnull.
15676 (gimple_ranger::range_on_edge): Check for nonnull on normal edges..
15677 (gimple_ranger::register_side_effects): New.
15678 * gimple-range.h (gimple_ranger::register_side_effects): New.
15679 * tree-vrp.cc (rvrp_folder::fold_stmt): Call register_side_effects.
15680
15681 2022-02-09 Richard Biener <rguenther@suse.de>
15682
15683 PR tree-optimization/104445
15684 PR tree-optimization/102832
15685 * optabs-query.h (can_vec_extract): New.
15686 * optabs-query.cc (can_vec_extract): Likewise.
15687 * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
15688 we can extract a hi/lo part from the larger vector, rework
15689 check iteration from larger to smaller sizes.
15690
15691 2022-02-09 H.J. Lu <hjl.tools@gmail.com>
15692
15693 PR target/35513
15694 PR target/100593
15695 * config/i386/gnu-property.cc: Include "i386-protos.h".
15696 (file_end_indicate_exec_stack_and_gnu_property): Generate
15697 a GNU_PROPERTY_1_NEEDED note for -mno-direct-extern-access or
15698 nodirect_extern_access attribute.
15699 * config/i386/i386-options.cc
15700 (handle_nodirect_extern_access_attribute): New function.
15701 (ix86_attribute_table): Add nodirect_extern_access attribute.
15702 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): Add a
15703 bool argument.
15704 (ix86_has_no_direct_extern_access): New.
15705 * config/i386/i386.cc (ix86_has_no_direct_extern_access): New.
15706 (ix86_force_load_from_GOT_p): Add a bool argument to indicate
15707 call operand. Force non-call load from GOT for
15708 -mno-direct-extern-access or nodirect_extern_access attribute.
15709 (legitimate_pic_address_disp_p): Avoid copy relocation in PIE
15710 for -mno-direct-extern-access or nodirect_extern_access attribute.
15711 (ix86_print_operand): Pass true to ix86_force_load_from_GOT_p
15712 for call operand.
15713 (asm_preferred_eh_data_format): Use PC-relative format for
15714 -mno-direct-extern-access to avoid copy relocation. Check
15715 ptr_mode instead of TARGET_64BIT when selecting DW_EH_PE_sdata4.
15716 (ix86_binds_local_p): Set ix86_has_no_direct_extern_access to
15717 true for -mno-direct-extern-access or nodirect_extern_access
15718 attribute. Don't treat protected data as extern and avoid copy
15719 relocation on common symbol with -mno-direct-extern-access or
15720 nodirect_extern_access attribute.
15721 (ix86_reloc_rw_mask): New to avoid copy relocation for
15722 -mno-direct-extern-access.
15723 (TARGET_ASM_RELOC_RW_MASK): New.
15724 * config/i386/i386.opt: Add -mdirect-extern-access.
15725 * doc/extend.texi: Document nodirect_extern_access attribute.
15726 * doc/invoke.texi: Document -m[no-]direct-extern-access.
15727
15728 2022-02-09 H.J. Lu <hjl.tools@gmail.com>
15729
15730 PR target/104441
15731 * config/i386/i386.cc (ix86_avx_u128_mode_source): New function.
15732 (ix86_avx_u128_mode_needed): Return AVX_U128_ANY for debug INSN.
15733 Call ix86_avx_u128_mode_source to check mode for each component
15734 of source operand.
15735
15736 2022-02-09 liuhongt <hongtao.liu@intel.com>
15737
15738 PR target/104451
15739 * config/i386/sse.md (<insn><mode>3): lowpart_subreg
15740 operands[2] from SImode to QImode.
15741
15742 2022-02-09 Richard Biener <rguenther@suse.de>
15743
15744 PR middle-end/104450
15745 * gimple-isel.cc: Pass cfun around.
15746 (+gimple_expand_vec_cond_expr): Do not combine a throwing
15747 comparison with the select.
15748
15749 2022-02-09 Richard Biener <rguenther@suse.de>
15750
15751 PR target/104453
15752 * config/i386/i386.cc (ix86_gimple_fold_builtin): Guard shift
15753 folding for NULL LHS.
15754
15755 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
15756
15757 PR rtl-optimization/104198
15758 PR rtl-optimization/104153
15759 * ifcvt.cc (noce_convert_multiple_sets_1): Copy rtx instead of
15760 using it directly. Rework comparison handling and always
15761 perform a second pass.
15762
15763 2022-02-08 Jakub Jelinek <jakub@redhat.com>
15764
15765 PR target/102140
15766 * config/rs6000/rs6000.cc (vspltis_shifted): Return false also if
15767 split1 pass has finished already.
15768
15769 2022-02-08 Bill Schmidt <wschmidt@linux.ibm.com>
15770
15771 * config/rs6000/rs6000-builtins.def (VMSUMCUD): New.
15772 * config/rs6000/rs6000-overload.def (VEC_MSUMC): New.
15773 * config/rs6000/vsx.md (UNSPEC_VMSUMCUD): New constant.
15774 (vmsumcud): New define_insn.
15775
15776 2022-02-08 Tom de Vries <tdevries@suse.de>
15777
15778 * config/nvptx/nvptx-opts.h (enum ptx_isa): Add PTX_ISA_SM70.
15779 * config/nvptx/nvptx.h (TARGET_SM70): Define.
15780
15781 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
15782
15783 * config/s390/s390.cc (s390_rtx_costs): Increase costs for load
15784 on condition.
15785 * config/s390/s390.md: Use paradoxical subreg.
15786
15787 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
15788
15789 * combine.cc (reg_subword_p): Check for paradoxical subreg.
15790
15791 2022-02-08 Tom de Vries <tdevries@suse.de>
15792
15793 PR target/104283
15794 * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_3_0
15795 and PTX_VERSION_4_2.
15796 * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm)
15797 (default_ptx_version_option, ptx_version_to_string)
15798 (sm_version_to_string, handle_ptx_version_option): New function.
15799 (nvptx_option_override): Call handle_ptx_version_option.
15800 (nvptx_file_start): Use ptx_version_to_string and sm_version_to_string.
15801 * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>")
15802 (define_insn "nvptx_vote_ballot"): Use TARGET_PTX_6_0.
15803 * config/nvptx/nvptx.opt (mptx): Remove 'Init'.
15804
15805 2022-02-08 Maciej W. Rozycki <macro@embecosm.com>
15806
15807 * doc/install.texi (Configuration): Document `--with-isa-spec='
15808 RISC-V option.
15809 * doc/invoke.texi (Option Summary): List `-misa-spec=' RISC-V
15810 option.
15811 (RISC-V Options): Document it.
15812
15813 2022-02-08 Maciej W. Rozycki <macro@embecosm.com>
15814
15815 * config/riscv/t-riscv (riscv-sr.o): Add $(TM_H) dependency.
15816
15817 2022-02-08 Tom de Vries <tdevries@suse.de>
15818
15819 * config/nvptx/nvptx.cc (write_fn_proto_1): Handle 'main (int)'.
15820
15821 2022-02-08 Tom de Vries <tdevries@suse.de>
15822
15823 PR target/104364
15824 * config/nvptx/nvptx-protos.h (nvptx_mem_local_p): Declare.
15825 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Assert that
15826 change is validated.
15827 (nvptx_mem_local_p): New function.
15828 * config/nvptx/nvptx.md: Use nvptx_mem_local_p.
15829 (define_c_enum "unspecv"): Add UNSPECV_CAS_LOCAL.
15830 (define_insn "atomic_compare_and_swap<mode>_1_local"): New
15831 non-atomic, non-predicable define_insn, factored out of ...
15832 (define_insn "atomic_compare_and_swap<mode>_1"): ... here.
15833 Make predicable again.
15834 (define_expand "atomic_compare_and_swap<mode>"): Use
15835 atomic_compare_and_swap<mode>_1_local.
15836
15837 2022-02-08 liuhongt <hongtao.liu@intel.com>
15838
15839 PR rtl-optimization/104059
15840 * regcprop.cc (copyprop_hardreg_forward_1): Don't propagate
15841 for a more expensive reg-reg move.
15842
15843 2022-02-07 Tamar Christina <tamar.christina@arm.com>
15844
15845 * config/arm/arm_neon.h (vusdotq_s32, vusdot_laneq_s32,
15846 vusdotq_laneq_s32, vsudot_laneq_s32, vsudotq_laneq_s32): New
15847 * config/arm/arm_neon_builtins.def (usdot): Add V16QI.
15848 (usdot_laneq, sudot_laneq): New.
15849 * config/arm/neon.md (neon_<sup>dot_laneq<vsi2qi>): New.
15850 (neon_<sup>dot_lane<vsi2qi>): Remote unneeded code.
15851
15852 2022-02-07 Tamar Christina <tamar.christina@arm.com>
15853
15854 * config/arm/arm_neon.h (vdot_laneq_u32, vdotq_laneq_u32,
15855 vdot_laneq_s32, vdotq_laneq_s32): New.
15856 * config/arm/arm_neon_builtins.def (sdot_laneq, udot_laneq): New.
15857 * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
15858 (<sup>dot_prod<vsi2qi>): Re-order rtl.
15859 (neon_<sup>dot_lane<vsi2qi>): Fix rtl order and endiannes.
15860 (neon_<sup>dot_laneq<vsi2qi>): New.
15861
15862 2022-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
15863
15864 PR target/104327
15865 * config/s390/s390.cc (s390_can_inline_p): Accept a few more flags
15866 if always_inline is set. Don't inline when tune differs without
15867 always_inline.
15868
15869 2022-02-07 Richard Biener <rguenther@suse.de>
15870
15871 PR middle-end/104402
15872 * gimple-expr.cc (is_gimple_condexpr): _Complex typed
15873 compares are not valid.
15874 * tree-cfg.cc (verify_gimple_assign_ternary): For COND_EXPR
15875 check is_gimple_condexpr.
15876
15877 2022-02-07 Kewen Lin <linkw@linux.ibm.com>
15878
15879 PR target/103627
15880 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Move the
15881 hunk affecting VSX and ALTIVEC to appropriate place.
15882
15883 2022-02-07 Kewen Lin <linkw@linux.ibm.com>
15884
15885 PR target/103627
15886 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Disable
15887 MMA if !TARGET_VSX.
15888
15889 2022-02-06 Jakub Jelinek <jakub@redhat.com>
15890
15891 PR c++/89074
15892 PR c++/104033
15893 * fold-const.h (folding_initializer): Adjust comment.
15894 (folding_cxx_constexpr): Declare.
15895 * fold-const.cc (folding_initializer): Adjust comment.
15896 (folding_cxx_constexpr): New variable.
15897 (address_compare): Restrict the decl vs. STRING_CST
15898 or vice versa or STRING_CST vs. STRING_CST or
15899 is_global_var != is_global_var optimizations to !folding_cxx_constexpr.
15900 Punt for FUNCTION_DECLs with non-zero offsets. If folding_initializer,
15901 assume non-aliased functions have non-zero size and have different
15902 addresses. For folding_cxx_constexpr, punt on comparisons of start
15903 of some object and end of another one, regardless whether it is a decl
15904 or string literal. Also punt for folding_cxx_constexpr on
15905 STRING_CST vs. STRING_CST comparisons if the two literals could be
15906 overlapping.
15907
15908 2022-02-05 Jakub Jelinek <jakub@redhat.com>
15909
15910 PR tree-optimization/104389
15911 * match.pd (x * 0 -> 0): Punt if x maybe infinite and NaNs are
15912 honored.
15913
15914 2022-02-05 Kito Cheng <kito.cheng@sifive.com>
15915
15916 * configure.ac: Fix detection for zifencei support.
15917 * configure: Regenerate.
15918
15919 2022-02-05 Kito Cheng <kito.cheng@sifive.com>
15920
15921 PR target/104219
15922 * config.gcc (riscv*-*-*): Normalize the with_isa_spec value.
15923 (all_defaults): Add isa_spec.
15924 * config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Add isa_spec.
15925
15926 2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com>
15927
15928 * config/rs6000/rs6000-c.cc (resolve_vec_mul): Accept args and types
15929 parameters instead of arglist and nargs. Simplify accordingly. Remove
15930 unnecessary test for argument count mismatch.
15931 (resolve_vec_cmpne): Likewise.
15932 (resolve_vec_adde_sube): Likewise.
15933 (resolve_vec_addec_subec): Likewise.
15934 (altivec_resolve_overloaded_builtin): Move overload special handling
15935 after the gathering of arguments into args[] and types[] and the test
15936 for correct number of arguments. Don't perform the test for correct
15937 number of arguments for certain special cases. Call the other special
15938 cases with args and types instead of arglist and nargs.
15939
15940 2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com>
15941
15942 PR target/100808
15943 * doc/extend.texi (Basic PowerPC Built-in Functions Available on ISA
15944 3.1): Provide consistent type names. Remove unnecessary semicolons.
15945 Fix bad line breaks.
15946
15947 2022-02-04 Jakub Jelinek <jakub@redhat.com>
15948
15949 PR target/104380
15950 * config/rs6000/rs6000.cc (rs6000_mangle_decl_assembler_name): Also
15951 adjust mangling of __builtin*printf_chk.
15952
15953 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
15954
15955 * doc/cpp.texi (Variadic Macros): Replace C++2a with C++20.
15956
15957 2022-02-04 Richard Biener <rguenther@suse.de>
15958 Bin Cheng <bin.cheng@linux.alibaba.com>
15959
15960 PR tree-optimization/100499
15961 * fold-const.h (multiple_of_p): Add nowrap parameter, defaulted
15962 to true.
15963 * fold-const.cc (multiple_of_p): Likewise. Honor it for
15964 MULT_EXPR, PLUS_EXPR and MINUS_EXPR and pass it along,
15965 switching to false for conversions.
15966 * tree-ssa-loop-niter.cc (number_of_iterations_ne): Do not
15967 claim the outermost expression does not wrap when calling
15968 multiple_of_p. Refactor the check done to check the
15969 original IV, avoiding a bias that might wrap.
15970
15971 2022-02-04 Richard Biener <rguenther@suse.de>
15972
15973 * fold-const.cc (multiple_of_p): Re-write and move LSHIFT_EXPR
15974 handling.
15975
15976 2022-02-04 Eric Botcazou <ebotcazou@adacore.com>
15977
15978 PR debug/104366
15979 * dwarf2out.cc (dwarf2out_finish): Empty base_types.
15980 (dwarf2out_early_finish): Likewise.
15981
15982 2022-02-04 Eric Botcazou <ebotcazou@adacore.com>
15983
15984 PR tree-optimization/104356
15985 * match.pd (X / bool_range_Y is X): Add guard.
15986 (X / X is one): Likewise.
15987 (X / abs (X) is X < 0 ? -1 : 1): Likewise.
15988 (X / -X is -1): Likewise.
15989 (1 / X -> X == 1): Likewise.
15990
15991 2022-02-04 Richard Biener <rguenther@suse.de>
15992
15993 PR tree-optimization/103641
15994 * tree-vect-patterns.cc (vect_synth_mult_by_constant):
15995 Pass the vector mode to choose_mult_variant.
15996
15997 2022-02-04 Roger Sayle <roger@nextmovesoftware.com>
15998
15999 PR rtl-optimization/101885
16000 * combine.cc (try_combine): When splitting a parallel into two
16001 sequential sets, check not only that the first doesn't clobber
16002 the second but also that the second doesn't clobber the first.
16003
16004 2022-02-04 Richard Biener <rguenther@suse.de>
16005
16006 PR middle-end/90348
16007 PR middle-end/104092
16008 * tree-core.h (clobber_kind): New enum.
16009 (tree_base::u::bits::address_space): Document use in CONSTRUCTORs.
16010 * tree.h (CLOBBER_KIND): Add.
16011 (build_clobber): Add clobber kind argument, defaulted to
16012 CLOBBER_UNDEF.
16013 * tree.cc (build_clobber): Likewise.
16014 * gimple.h (gimple_clobber_p): New overload with specified kind.
16015 * tree-streamer-in.cc (streamer_read_tree_bitfields): Stream
16016 CLOBBER_KIND.
16017 * tree-streamer-out.cc (streamer_write_tree_bitfields):
16018 Likewise.
16019 * tree-pretty-print.cc (dump_generic_node): Mark EOL CLOBBERs.
16020 * gimplify.cc (gimplify_bind_expr): Build storage end-of-life clobbers
16021 with CLOBBER_EOL.
16022 (gimplify_target_expr): Likewise.
16023 * tree-inline.cc (expand_call_inline): Likewise.
16024 * tree-ssa-ccp.cc (insert_clobber_before_stack_restore): Likewise.
16025 * gimple-ssa-warn-access.cc (pass_waccess::check_stmt): Only treat
16026 CLOBBER_EOL clobbers as ending lifetime of storage.
16027
16028 2022-02-04 Martin Sebor <msebor@redhat.com>
16029
16030 * pointer-query.h (pointer_query::cache_type): Use auto_vec for auto
16031 cleanup.
16032
16033 2022-02-03 Martin Sebor <msebor@redhat.com>
16034
16035 PR middle-end/104260
16036 * passes.def (pass_warn_access): Adjust pass placement.
16037
16038 2022-02-03 Uroš Bizjak <ubizjak@gmail.com>
16039
16040 PR target/104362
16041 * config/i386/i386.cc (find_drap_reg): For 32bit targets
16042 return DI_REG if function uses __builtin_eh_return.
16043
16044 2022-02-03 Martin Sebor <msebor@redhat.com>
16045
16046 * gimple-ssa-warn-restrict.cc (class pass_wrestrict): Outline ctor.
16047 (pass_wrestrict::m_ptr_qry): New member.
16048 (wrestrict_walk): Rename...
16049 (pass_wrestrict::check_block): ...to this.
16050 (pass_wrestrict::execute): Set up and tear down pointer_query and
16051 ranger.
16052 (builtin_memref::builtin_memref): Change ctor argument. Simplify.
16053 (builtin_access::builtin_access): Same.
16054 (builtin_access::m_ptr_qry): New member.
16055 (check_call): Rename...
16056 (pass_wrestrict::check_call): ...to this.
16057 (check_bounds_or_overlap): Change argument.
16058 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Same.
16059
16060 2022-02-03 Martin Sebor <msebor@redhat.com>
16061
16062 * gimple-array-bounds.cc (array_bounds_checker::array_bounds_checker):
16063 Define ctor.
16064 (array_bounds_checker::get_value_range): Use new member.
16065 (array_bounds_checker::check_mem_ref): Same.
16066 * gimple-array-bounds.h (array_bounds_checker::array_bounds_checker):
16067 Outline ctor.
16068 (array_bounds_checker::m_ptr_query): New member.
16069
16070 2022-02-03 Martin Sebor <msebor@redhat.com>
16071
16072 * gimple-ssa-warn-access.cc (pass_waccess::pass_waccess): Remove
16073 pointer_query cache.
16074 * pointer-query.cc (pointer_query::pointer_query): Remove cache
16075 argument. Zero-initialize new cache member.
16076 (pointer_query::get_ref): Replace cache pointer with direct access.
16077 (pointer_query::put_ref): Same.
16078 (pointer_query::flush_cache): Same.
16079 (pointer_query::dump): Same.
16080 * pointer-query.h (class pointer_query): Remove cache argument from
16081 ctor. Change cache pointer to cache subobject member.
16082 * tree-ssa-strlen.cc: Remove pointer_query cache.
16083
16084 2022-02-03 Martin Sebor <msebor@redhat.com>
16085
16086 PR tree-optimization/104119
16087 * gimple-ssa-sprintf.cc (struct directive): Change argument type.
16088 (format_none): Same.
16089 (format_percent): Same.
16090 (format_integer): Same.
16091 (format_floating): Same.
16092 (get_string_length): Same.
16093 (format_character): Same.
16094 (format_string): Same.
16095 (format_plain): Same.
16096 (format_directive): Same.
16097 (compute_format_length): Same.
16098 (handle_printf_call): Same.
16099 * tree-ssa-strlen.cc (get_range_strlen_dynamic): Same. Call
16100 get_maxbound.
16101 (get_range_strlen_phi): Same.
16102 (get_maxbound): New function.
16103 (strlen_pass::get_len_or_size): Adjust to parameter change.
16104 * tree-ssa-strlen.h (get_range_strlen_dynamic): Change argument type.
16105
16106 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
16107
16108 PR target/103686
16109 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Remove
16110 test for !rs6000_fold_gimple.
16111 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
16112 * config/rs6000/rs6000.opt (mfold-gimple): Remove.
16113
16114 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
16115
16116 PR target/95082
16117 * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Handle
16118 endianness for vclzlsbb and vctzlsbb.
16119 * config/rs6000/rs6000-builtins.def (VCLZLSBB_V16QI): Change
16120 default pattern and indicate a different pattern will be used for
16121 big endian.
16122 (VCLZLSBB_V4SI): Likewise.
16123 (VCLZLSBB_V8HI): Likewise.
16124 (VCTZLSBB_V16QI): Likewise.
16125 (VCTZLSBB_V4SI): Likewise.
16126 (VCTZLSBB_V8HI): Likewise.
16127
16128 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
16129
16130 * config.gcc (powerpc*-*-*): Add rs6000-builtin.o to extra_objs.
16131 * config/rs6000/rs6000-builtin.cc: New file, containing code moved
16132 from other files.
16133 * config/rs6000/rs6000-call.cc (cpu_is_info): Move to
16134 rs6000-builtin.cc.
16135 (cpu_supports_info): Likewise.
16136 (rs6000_type_string): Likewise.
16137 (altivec_expand_predicate_builtin): Likewise.
16138 (rs6000_htm_spr_icode): Likewise.
16139 (altivec_expand_vec_init_builtin): Likewise.
16140 (get_element_number): Likewise.
16141 (altivec_expand_vec_set_builtin): Likewise.
16142 (altivec_expand_vec_ext_builtin): Likewise.
16143 (rs6000_invalid_builtin): Likewise.
16144 (rs6000_fold_builtin): Likewise.
16145 (fold_build_vec_cmp): Likewise.
16146 (fold_compare_helper): Likewise.
16147 (map_to_integral_tree_type): Likewise.
16148 (fold_mergehl_helper): Likewise.
16149 (fold_mergeeo_helper): Likewise.
16150 (rs6000_builtin_valid_without_lhs): Likewise.
16151 (rs6000_builtin_is_supported): Likewise.
16152 (rs6000_gimple_fold_mma_builtin): Likewise.
16153 (rs6000_gimple_fold_builtin): Likewise.
16154 (rs6000_expand_ldst_mask): Likewise.
16155 (cpu_expand_builtin): Likewise.
16156 (elemrev_icode): Likewise.
16157 (ldv_expand_builtin): Likewise.
16158 (lxvrse_expand_builtin): Likewise.
16159 (lxvrze_expand_builtin): Likewise.
16160 (stv_expand_builtin): Likewise.
16161 (mma_expand_builtin): Likewise.
16162 (htm_spr_num): Likewise.
16163 (htm_expand_builtin): Likewise.
16164 (rs6000_expand_builtin): Likewise.
16165 (rs6000_vector_type): Likewise.
16166 (rs6000_init_builtins): Likewise. Remove initialization of
16167 builtin_mode_to_type entries.
16168 (rs6000_builtin_decl): Move to rs6000-builtin.cc.
16169 * config/rs6000/rs6000.cc (rs6000_builtin_mask_for_load): New
16170 external declaration.
16171 (rs6000_builtin_md_vectorized_function): Likewise.
16172 (rs6000_builtin_reciprocal): Likewise.
16173 (altivec_builtin_mask_for_load): Move to rs6000-builtin.cc.
16174 (rs6000_builtin_types): Likewise.
16175 (builtin_mode_to_type): Remove.
16176 (rs6000_builtin_mask_for_load): Move to rs6000-builtin.cc. Remove
16177 static qualifier.
16178 (rs6000_builtin_md_vectorized_function): Likewise.
16179 (rs6000_builtin_reciprocal): Likewise.
16180 * config/rs6000/rs6000.h (builtin_mode_to_type): Remove.
16181 * config/rs6000/t-rs6000 (rs6000-builtin.o): New target.
16182
16183 2022-02-03 Richard Biener <rguenther@suse.de>
16184
16185 PR debug/104337
16186 * tree-nrv.cc (pass_nrv::execute): Remove tieing result and found
16187 together via DECL_ABSTRACT_ORIGIN.
16188
16189 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
16190
16191 * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Revise error
16192 message for RES_BITS case.
16193
16194 2022-02-03 Aldy Hernandez <aldyh@redhat.com>
16195
16196 * gimple-range-fold.cc (fur_list::fur_list): Set m_local[1] correctly.
16197
16198 2022-02-03 Jakub Jelinek <jakub@redhat.com>
16199
16200 * config/arm/arm.opt (mfix-cortex-a57-aes-1742098,
16201 mfix-cortex-a72-aes-1655431): Ensure description ends with full stop.
16202
16203 2022-02-03 Aldy Hernandez <aldyh@redhat.com>
16204
16205 * cfganal.cc (verify_marked_backedges): New.
16206 * cfganal.h (verify_marked_backedges): New.
16207 * gimple-range-path.cc (path_range_query::path_range_query):
16208 Verify freshness of back edges.
16209 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
16210 mark_dfs_back_edges.
16211 * tree-ssa-threadbackward.cc (back_threader::back_threader): Move
16212 path_range_query construction after backedges have been
16213 updated.
16214
16215 2022-02-03 Richard Sandiford <richard.sandiford@arm.com>
16216
16217 * config/aarch64/aarch64-simd.md (movmisalign<mode>): Extend from
16218 VALL to VALL_F16.
16219
16220 2022-02-03 Richard Sandiford <richard.sandiford@arm.com>
16221
16222 * config/aarch64/iterators.md (VALL_F16MOV): Delete.
16223 * config/aarch64/aarch64-simd.md (mov<mode>): Use VALL_F16 instead
16224 of VALL_F16MOV.
16225
16226 2022-02-03 Martin Liska <mliska@suse.cz>
16227
16228 * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
16229 Change subject and object in the error message.
16230 * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
16231 Likewise.
16232
16233 2022-02-03 Martin Liska <mliska@suse.cz>
16234
16235 * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
16236 Use the error message for i386 target.
16237
16238 2022-02-03 Jakub Jelinek <jakub@redhat.com>
16239
16240 PR tree-optimization/104334
16241 * range-op.cc (range_operator::wi_fold_in_parts): Change lh_range
16242 and rh_range type to widest_int and subtract in widest_int. Remove
16243 ov_rh, ov_lh and sign vars, always perform comparisons as signed
16244 and use >, < and == operators for it.
16245
16246 2022-02-03 Martin Sebor <msebor@redhat.com>
16247
16248 * common.opt (-Wuse-after-free): Correct typos.
16249
16250 2022-02-02 David Malcolm <dmalcolm@redhat.com>
16251
16252 PR analyzer/104270
16253 * doc/invoke.texi (-ftrivial-auto-var-init=): Add reference to
16254 -Wanalyzer-use-of-uninitialized-value to paragraph documenting that
16255 -ftrivial-auto-var-init= doesn't suppress warnings.
16256
16257 2022-02-02 Martin Liska <mliska@suse.cz>
16258
16259 * dwarf2out.cc (TEXT_SECTION_NAME): Remove unused macro.
16260
16261 2022-02-02 Bernd Kuhls <bernd.kuhls@t-online.de>
16262
16263 PR target/94372
16264 * config/or1k/linux.h (CPP_SPEC): Define.
16265
16266 2022-02-02 Tamar Christina <tamar.christina@arm.com>
16267
16268 PR tree-optimization/102819
16269 PR tree-optimization/103169
16270 * config/arm/vec-common.md (cml<fcmac1><conj_op><mode>4): Use
16271 canonical order.
16272
16273 2022-02-02 Tamar Christina <tamar.christina@arm.com>
16274
16275 PR tree-optimization/102819
16276 PR tree-optimization/103169
16277 * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4): Use
16278 canonical order.
16279 * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4): Likewise.
16280
16281 2022-02-02 Tamar Christina <tamar.christina@arm.com>
16282
16283 PR tree-optimization/102819
16284 PR tree-optimization/103169
16285 * doc/md.texi: Update docs for cfms, cfma.
16286 * tree-data-ref.h (same_data_refs): Accept optional offset.
16287 * tree-vect-slp-patterns.cc (is_linear_load_p): Fix issue with repeating
16288 patterns.
16289 (vect_normalize_conj_loc): Remove.
16290 (is_eq_or_top): Change to take two nodes.
16291 (enum _conj_status, compatible_complex_nodes_p,
16292 vect_validate_multiplication): New.
16293 (class complex_add_pattern, complex_add_pattern::matches,
16294 complex_add_pattern::recognize, class complex_mul_pattern,
16295 complex_mul_pattern::recognize, class complex_fms_pattern,
16296 complex_fms_pattern::recognize, class complex_operations_pattern,
16297 complex_operations_pattern::recognize, addsub_pattern::recognize): Pass
16298 new cache.
16299 (complex_fms_pattern::matches, complex_mul_pattern::matches): Pass new
16300 cache and use new validation code.
16301 * tree-vect-slp.cc (vect_match_slp_patterns_2, vect_match_slp_patterns,
16302 vect_analyze_slp): Pass along cache.
16303 (compatible_calls_p): Expose.
16304 * tree-vectorizer.h (compatible_calls_p, slp_node_hash,
16305 slp_compat_nodes_map_t): New.
16306 (class vect_pattern): Update signatures include new cache.
16307
16308 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
16309
16310 * config/cris/cris.cc (cris_preferred_reload_class): Reject
16311 "eliminated" registers and small-enough constants unless
16312 reloaded into a class that is a subset of GENERAL_REGS.
16313 * config/cris/cris.md (attribute "cpu_variant"): New.
16314 (attribute "enabled"): Conditionalize on a matching attribute
16315 cpu_variant, if specified.
16316 ("*movsi_internal<setcc><setnz><setnzvc>"): For moves to and from
16317 memory, add cpu-variant-enabled variants for "r" alternatives on
16318 the far side of the "x" alternatives, preferring the "x" ones
16319 only for variants where MOF is present (in addition to SRP).
16320
16321 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
16322
16323 * config/cris/cris.cc (cris_register_move_cost): Remove special pre-ira
16324 extra cost for ALL_REGS.
16325
16326 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
16327
16328 * config/cris/constraints.md (define_register_constraint "b"): Now
16329 GENERAL_REGS.
16330 * config/cris/cris.md (CRIS_ACR_REGNUM): Remove.
16331 * config/cris/cris.h: (reg_class, REG_CLASS_NAMES)
16332 (REG_CLASS_CONTENTS): Remove ACR_REGS, SPEC_ACR_REGS, GENNONACR_REGS,
16333 and SPEC_GENNONACR_REGS.
16334 * config/cris/cris.cc (cris_preferred_reload_class): Don't mention
16335 ACR_REGS and return GENERAL_REGS instead of GENNONACR_REGS.
16336
16337 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
16338
16339 * config/cris/cris.md ("*movsi_internal<setcc><setnz><setnzvc>"):
16340 Conditionalize on (sub-)register operands or operand 1 being 0.
16341
16342 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
16343
16344 * config/cris/cris.h (TARGET_DEFAULT): Don't include MASK_MUL_BUG.
16345 (MUL_BUG_ASM_DEFAULT): New macro.
16346 (MAYBE_AS_NO_MUL_BUG_ABORT): Define in terms of MUL_BUG_ASM_DEFAULT.
16347 * doc/invoke.texi (CRIS Options, -mmul-bug-workaround): Adjust
16348 accordingly.
16349
16350 2022-02-01 Eugene Rozenfeld <erozen@microsoft.com>
16351
16352 * opts.cc (common_handle_option): Don't set param_early_inliner_max_iterations
16353 to 10 for AutoFDO.
16354
16355 2022-02-01 Eugene Rozenfeld <erozen@microsoft.com>
16356
16357 * auto-profile.cc (auto_profile): Hard-code the number of iterations (10).
16358
16359 2022-02-01 Andrew Pinski <apinski@marvell.com>
16360
16361 * doc/install.texi:
16362
16363 2022-02-01 Ilya Leoshkevich <iii@linux.ibm.com>
16364
16365 * config/s390/s390.cc (s390_code_end): Do not switch back to
16366 code section.
16367
16368 2022-02-01 Jakub Jelinek <jakub@redhat.com>
16369
16370 PR target/104323
16371 * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Append rs6000-builtins.h
16372 rather than $(srcdir)/config/rs6000/rs6000-builtins.def.
16373 * config/rs6000/rs6000-gen-builtins.cc (write_decls): Don't use
16374 GTY((user)) for struct bifdata and struct ovlddata. Instead add
16375 GTY((skip(""))) to members with pointer and enum types that don't need
16376 to be tracked. Add GTY(()) to rs6000_builtin_info and rs6000_instance_info
16377 declarations. Don't emit gt_ggc_mx and gt_pch_nx declarations.
16378 (write_extern_fntype, write_fntype): Remove.
16379 (write_fntype_init): Emit the fntype vars as automatic vars instead
16380 of file scope ones.
16381 (write_header_file): Don't iterate with write_extern_fntype.
16382 (write_init_file): Don't iterate with write_fntype. Don't emit
16383 gt_ggc_mx and gt_pch_nx definitions.
16384
16385 2022-02-01 Jason Merrill <jason@redhat.com>
16386
16387 * tree.h (struct tree_vec_map_cache_hasher): Move from...
16388 * tree.cc (struct tree_vec_map_cache_hasher): ...here.
16389
16390 2022-02-01 Tom de Vries <tdevries@suse.de>
16391
16392 * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_uniform_warp_check.
16393 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
16394 UNSPECV_UNIFORM_WARP_CHECK.
16395 (define_insn "nvptx_uniform_warp_check"): New define_insn.
16396
16397 2022-02-01 Tom de Vries <tdevries@suse.de>
16398
16399 * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_warpsync.
16400 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
16401 UNSPECV_WARPSYNC.
16402 (define_insn "nvptx_warpsync"): New define_insn.
16403
16404 2022-02-01 Tom de Vries <tdevries@suse.de>
16405
16406 * config/nvptx/nvptx.opt (mptx): Set to PTX_VERSION_6_3 by default.
16407
16408 2022-02-01 Tom de Vries <tdevries@suse.de>
16409
16410 * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_6_0.
16411 * config/nvptx/nvptx.h (TARGET_PTX_6_0): New macro.
16412 * config/nvptx/nvptx.md (define_insn "nvptx_barsync"): Use barrier
16413 insn for TARGET_PTX_6_0.
16414
16415 2022-02-01 Tom de Vries <tdevries@suse.de>
16416
16417 PR target/100428
16418 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle nop
16419 insn.
16420
16421 2022-02-01 Tom de Vries <tdevries@suse.de>
16422
16423 * config/nvptx/nvptx.md (define_insn "atomic_compare_and_swap<mode>_1")
16424 (define_insn "atomic_exchange<mode>")
16425 (define_insn "atomic_fetch_add<mode>")
16426 (define_insn "atomic_fetch_addsf")
16427 (define_insn "atomic_fetch_<logic><mode>"): Output non-atomic version
16428 if memory operands is frame-relative.
16429
16430 2022-02-01 Tom de Vries <tdevries@suse.de>
16431
16432 * config/nvptx/nvptx.cc (enum nvptx_builtins): Add
16433 NVPTX_BUILTIN_MEMBAR_GL and NVPTX_BUILTIN_MEMBAR_CTA.
16434 (VOID): New macro.
16435 (nvptx_init_builtins): Add MEMBAR_GL and MEMBAR_CTA.
16436 (nvptx_expand_builtin): Handle NVPTX_BUILTIN_MEMBAR_GL and
16437 NVPTX_BUILTIN_MEMBAR_CTA.
16438 (nvptx_lockfull_update): Add level parameter. Emit barriers.
16439 (nvptx_reduction_update, nvptx_goacc_reduction_fini): Update call to
16440 nvptx_lockfull_update.
16441 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
16442 UNSPECV_MEMBAR_GL.
16443 (define_expand "nvptx_membar_gl"): New expand.
16444 (define_insn "*nvptx_membar_gl"): New insn.
16445
16446 2022-02-01 Martin Liska <mliska@suse.cz>
16447
16448 * doc/install.texi: Remove option for GCC < 4.8.
16449
16450 2022-02-01 Jakub Jelinek <jakub@redhat.com>
16451
16452 PR middle-end/104307
16453 * tree-vect-generic.cc (expand_vector_comparison): Don't push debug
16454 stmts to uses vector, just set vec_cond_expr_only to false for
16455 non-VEC_COND_EXPRs instead of pushing them into uses. Treat
16456 VEC_COND_EXPRs that use lhs not just in rhs1, but rhs2 or rhs3 too
16457 like non-VEC_COND_EXPRs.
16458
16459 2022-02-01 Bill Schmidt <wschmidt@linux.ibm.com>
16460
16461 * config/rs6000/rs6000-overload.def (VEC_ABSD): Remove #ifdef token.
16462 (VEC_BLENDV): Likewise.
16463 (VEC_BPERM): Likewise.
16464 (VEC_CFUGE): Likewise.
16465 (VEC_CIPHER_BE): Likewise.
16466 (VEC_CIPHERLAST_BE): Likewise.
16467 (VEC_CLRL): Likewise.
16468 (VEC_CLRR): Likewise.
16469 (VEC_CMPNEZ): Likewise.
16470 (VEC_CNTLZ): Likewise.
16471 (VEC_CNTLZM): Likewise.
16472 (VEC_CNTTZM): Likewise.
16473 (VEC_CNTLZ_LSBB): Likewise.
16474 (VEC_CNTM): Likewise.
16475 (VEC_CNTTZ): Likewise.
16476 (VEC_CNTTZ_LSBB): Likewise.
16477 (VEC_CONVERT_4F32_8F16): Likewise.
16478 (VEC_DIV): Likewise.
16479 (VEC_DIVE): Likewise.
16480 (VEC_EQV): Likewise.
16481 (VEC_EXPANDM): Likewise.
16482 (VEC_EXTRACT_FP_FROM_SHORTH): Likewise.
16483 (VEC_EXTRACT_FP_FROM_SHORTL): Likewise.
16484 (VEC_EXTRACTH): Likewise.
16485 (VEC_EXTRACTL): Likewise.
16486 (VEC_EXTRACTM): Likewise.
16487 (VEC_EXTRACT4B): Likewise.
16488 (VEC_EXTULX): Likewise.
16489 (VEC_EXTURX): Likewise.
16490 (VEC_FIRSTMATCHINDEX): Likewise.
16491 (VEC_FIRSTMACHOREOSINDEX): Likewise.
16492 (VEC_FIRSTMISMATCHINDEX): Likewise.
16493 (VEC_FIRSTMISMATCHOREOSINDEX): Likewise.
16494 (VEC_GB): Likewise.
16495 (VEC_GENBM): Likewise.
16496 (VEC_GENHM): Likewise.
16497 (VEC_GENWM): Likewise.
16498 (VEC_GENDM): Likewise.
16499 (VEC_GENQM): Likewise.
16500 (VEC_GENPCVM): Likewise.
16501 (VEC_GNB): Likewise.
16502 (VEC_INSERTH): Likewise.
16503 (VEC_INSERTL): Likewise.
16504 (VEC_INSERT4B): Likewise.
16505 (VEC_LXVL): Likewise.
16506 (VEC_MERGEE): Likewise.
16507 (VEC_MERGEO): Likewise.
16508 (VEC_MOD): Likewise.
16509 (VEC_MSUB): Likewise.
16510 (VEC_MULH): Likewise.
16511 (VEC_NAND): Likewise.
16512 (VEC_NCIPHER_BE): Likewise.
16513 (VEC_NCIPHERLAST_BE): Likewise.
16514 (VEC_NEARBYINT): Likewise.
16515 (VEC_NMADD): Likewise.
16516 (VEC_ORC): Likewise.
16517 (VEC_PDEP): Likewise.
16518 (VEC_PERMX): Likewise.
16519 (VEC_PEXT): Likewise.
16520 (VEC_POPCNT): Likewise.
16521 (VEC_PARITY_LSBB): Likewise.
16522 (VEC_REPLACE_ELT): Likewise.
16523 (VEC_REPLACE_UN): Likewise.
16524 (VEC_REVB): Likewise.
16525 (VEC_RINT): Likewise.
16526 (VEC_RLMI): Likewise.
16527 (VEC_RLNM): Likewise.
16528 (VEC_SBOX_BE): Likewise.
16529 (VEC_SIGNEXTI): Likewise.
16530 (VEC_SIGNEXTLL): Likewise.
16531 (VEC_SIGNEXTQ): Likewise.
16532 (VEC_SLDB): Likewise.
16533 (VEC_SLV): Likewise.
16534 (VEC_SPLATI): Likewise.
16535 (VEC_SPLATID): Likewise.
16536 (VEC_SPLATI_INS): Likewise.
16537 (VEC_SQRT): Likewise.
16538 (VEC_SRDB): Likewise.
16539 (VEC_SRV): Likewise.
16540 (VEC_STRIL): Likewise.
16541 (VEC_STRIL_P): Likewise.
16542 (VEC_STRIR): Likewise.
16543 (VEC_STRIR_P): Likewise.
16544 (VEC_STXVL): Likewise.
16545 (VEC_TERNARYLOGIC): Likewise.
16546 (VEC_TEST_LSBB_ALL_ONES): Likewise.
16547 (VEC_TEST_LSBB_ALL_ZEROS): Likewise.
16548 (VEC_VEE): Likewise.
16549 (VEC_VES): Likewise.
16550 (VEC_VIE): Likewise.
16551 (VEC_VPRTYB): Likewise.
16552 (VEC_VSCEEQ): Likewise.
16553 (VEC_VSCEGT): Likewise.
16554 (VEC_VSCELT): Likewise.
16555 (VEC_VSCEUO): Likewise.
16556 (VEC_VSEE): Likewise.
16557 (VEC_VSES): Likewise.
16558 (VEC_VSIE): Likewise.
16559 (VEC_VSTDC): Likewise.
16560 (VEC_VSTDCN): Likewise.
16561 (VEC_VTDC): Likewise.
16562 (VEC_XL): Likewise.
16563 (VEC_XL_BE): Likewise.
16564 (VEC_XL_LEN_R): Likewise.
16565 (VEC_XL_SEXT): Likewise.
16566 (VEC_XL_ZEXT): Likewise.
16567 (VEC_XST): Likewise.
16568 (VEC_XST_BE): Likewise.
16569 (VEC_XST_LEN_R): Likewise.
16570 (VEC_XST_TRUNC): Likewise.
16571 (VEC_XXPERMDI): Likewise.
16572 (VEC_XXSLDWI): Likewise.
16573 (VEC_TSTSFI_EQ_DD): Likewise.
16574 (VEC_TSTSFI_EQ_TD): Likewise.
16575 (VEC_TSTSFI_GT_DD): Likewise.
16576 (VEC_TSTSFI_GT_TD): Likewise.
16577 (VEC_TSTSFI_LT_DD): Likewise.
16578 (VEC_TSTSFI_LT_TD): Likewise.
16579 (VEC_TSTSFI_OV_DD): Likewise.
16580 (VEC_TSTSFI_OV_TD): Likewise.
16581 (VEC_VADDCUQ): Likewise.
16582 (VEC_VADDECUQ): Likewise.
16583 (VEC_VADDEUQM): Likewise.
16584 (VEC_VADDUDM): Likewise.
16585 (VEC_VADDUQM): Likewise.
16586 (VEC_VBPERMQ): Likewise.
16587 (VEC_VCLZB): Likewise.
16588 (VEC_VCLZD): Likewise.
16589 (VEC_VCLZH): Likewise.
16590 (VEC_VCLZW): Likewise.
16591 (VEC_VCTZB): Likewise.
16592 (VEC_VCTZD): Likewise.
16593 (VEC_VCTZH): Likewise.
16594 (VEC_VCTZW): Likewise.
16595 (VEC_VEEDP): Likewise.
16596 (VEC_VEESP): Likewise.
16597 (VEC_VESDP): Likewise.
16598 (VEC_VESSP): Likewise.
16599 (VEC_VIEDP): Likewise.
16600 (VEC_VIESP): Likewise.
16601 (VEC_VPKSDSS): Likewise.
16602 (VEC_VPKSDUS): Likewise.
16603 (VEC_VPKUDUM): Likewise.
16604 (VEC_VPKUDUS): Likewise.
16605 (VEC_VPOPCNT): Likewise.
16606 (VEC_VPOPCNTB): Likewise.
16607 (VEC_VPOPCNTD): Likewise.
16608 (VEC_VPOPCNTH): Likewise.
16609 (VEC_VPOPCNTW): Likewise.
16610 (VEC_VPRTYBD): Likewise.
16611 (VEC_VPRTYBQ): Likewise.
16612 (VEC_VPRTYBW): Likewise.
16613 (VEC_VRLD): Likewise.
16614 (VEC_VSLD): Likewise.
16615 (VEC_VSRAD): Likewise.
16616 (VEC_VSRD): Likewise.
16617 (VEC_VSTDCDP): Likewise.
16618 (VEC_VSTDCNDP): Likewise.
16619 (VEC_VSTDCNQP): Likewise.
16620 (VEC_VSTDCNSP): Likewise.
16621 (VEC_VSTDCQP): Likewise.
16622 (VEC_VSTDCSP): Likewise.
16623 (VEC_VSUBECUQ): Likewise.
16624 (VEC_VSUBEUQM): Likewise.
16625 (VEC_VSUBUDM): Likewise.
16626 (VEC_VSUBUQM): Likewise.
16627 (VEC_VTDCDP): Likewise.
16628 (VEC_VTDCSP): Likewise.
16629 (VEC_VUPKHSW): Likewise.
16630 (VEC_VUPKLSW): Likewise.
16631
16632 2022-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
16633
16634 PR rtl-optimization/101260
16635 * regcprop.cc (maybe_mode_change): Invoke mode_change_ok also for
16636 copy_regno.
16637
16638 2022-02-01 Xi Ruoyao <xry111@mengyan1223.wang>
16639
16640 PR middle-end/95115
16641 * fold-const.cc (const_binop): Do not fold NaN result from
16642 non-NaN operands.
16643
16644 2022-02-01 Tom de Vries <tdevries@suse.de>
16645
16646 * tree-loop-distribution.cc (generate_reduction_builtin_1): Check for
16647 -ftree-loop-distribute-patterns.
16648 (loop_distribution::execute): Don't call transform_reduction_loop for
16649 -fno-tree-loop-distribute-patterns.
16650
16651 2022-01-31 Andrew Pinski <apinski@marvell.com>
16652
16653 * fold-const.h (operand_compare::operand_equal_p):
16654 Fix comment about OEP_* flags.
16655
16656 2022-01-31 Jakub Jelinek <jakub@redhat.com>
16657
16658 PR target/104298
16659 * config/rs6000/aix.h (OPTION_GLIBC): Remove.
16660 * config/rs6000/darwin.h (OPTION_GLIBC): Likewise.
16661 * config/rs6000/option-defaults.h (OPTION_GLIBC): Define to 0
16662 if not already defined.
16663
16664 2022-01-31 Martin Sebor <msebor@redhat.com>
16665
16666 PR middle-end/104232
16667 * gimple-ssa-warn-access.cc (pointers_related_p): Add argument.
16668 Handle PHIs. Add a synonymous overload.
16669 (pass_waccess::check_pointer_uses): Call pointers_related_p.
16670
16671 2022-01-31 Richard Biener <rguenther@suse.de>
16672
16673 PR tree-optimization/100499
16674 * fold-const.cc (multiple_of_p): Pass the correct type of
16675 the expression to the recursive invocation of multiple_of_p
16676 for conversions and use CASE_CONVERT.
16677
16678 2022-01-31 Eric Botcazou <ebotcazou@adacore.com>
16679
16680 PR target/104189
16681 * config/sparc/linux64.h (TARGET_DEFAULT): Add MASK_V8PLUS.
16682
16683 2022-01-31 Richard Biener <rguenther@suse.de>
16684
16685 PR tree-optimization/100499
16686 * tree-cfg.cc (verify_gimple_assign_ternary): Use multiple_p
16687 on poly-ints instead of multiple_of_p.
16688 * tree-ssa.cc (maybe_rewrite_mem_ref_base): Likewise.
16689 (non_rewritable_mem_ref_base): Likewise.
16690 (non_rewritable_lvalue_p): Likewise.
16691 (execute_update_addresses_taken): Likewise.
16692
16693 2022-01-29 Jakub Jelinek <jakub@redhat.com>
16694 Andrew Pinski <apinski@marvell.com>
16695
16696 PR tree-optimization/104279
16697 PR tree-optimization/104280
16698 PR tree-optimization/104281
16699 * match.pd (1 / X -> X == 1 for unsigned X): Build eq with
16700 boolean_type_node and convert to type. Formatting fixes.
16701
16702 2022-01-28 Yoshinori Sato <yo-satoh@sios.com>
16703
16704 * config/sh/t-linux (MULTILIB_EXCEPTIONS): Add m1, mb/m1 and m2a.
16705
16706 2022-01-28 Navid Rahimi <navidrahimi@microsoft.com>
16707
16708 PR tree-optimization/103514
16709 * match.pd (a & b) ^ (a == b) -> !(a | b): New optimization.
16710 (a & b) == (a ^ b) -> !(a | b): New optimization.
16711
16712 2022-01-28 Marek Polacek <polacek@redhat.com>
16713
16714 * doc/invoke.texi: Update -Wbidi-chars documentation.
16715
16716 2022-01-28 Iain Sandoe <iain@sandoe.co.uk>
16717
16718 * config/rs6000/darwin.h (OPTION_GLIBC): Define to 0.
16719
16720 2022-01-28 Zhao Wei Liew <zhaoweiliew@gmail.com>
16721
16722 PR tree-optimization/95424
16723 * match.pd: Simplify 1 / X where X is an integer.
16724
16725 2022-01-28 Jakub Jelinek <jakub@redhat.com>
16726
16727 PR tree-optimization/104263
16728 * gimple-ssa-store-merging.cc (get_status_for_store_merging): For
16729 cfun->can_throw_non_call_exceptions && cfun->eh test whether
16730 last non-debug stmt in the bb is store_valid_for_store_merging_p
16731 rather than last stmt.
16732
16733 2022-01-28 Martin Liska <mliska@suse.cz>
16734
16735 * diagnostic.cc (diagnostic_action_after_output): Remove extra
16736 newline.
16737
16738 2022-01-28 Martin Liska <mliska@suse.cz>
16739
16740 * config/rs6000/host-darwin.cc (segv_crash_handler):
16741 Do not use leading capital letter.
16742 (segv_handler): Likewise.
16743 * ipa-sra.cc (verify_splitting_accesses): Likewise.
16744 * varasm.cc (get_section): Likewise.
16745
16746 2022-01-28 Richard Biener <rguenther@suse.de>
16747
16748 PR tree-optimization/104267
16749 * tree-vect-stmts.cc (vectorizable_call): Properly use the
16750 per-argument determined vector type for externals and
16751 invariants.
16752
16753 2022-01-28 Richard Biener <rguenther@suse.de>
16754
16755 PR tree-optimization/104263
16756 * tree-cfg.cc (gimple_purge_dead_abnormal_call_edges):
16757 Purge edges also when !cfun->has_nonlocal_label
16758 and !cfun->calls_setjmp.
16759
16760 2022-01-28 Maciej W. Rozycki <macro@embecosm.com>
16761
16762 * config/riscv/riscv.md: Document `auipc' and `bitmanip' `type'
16763 attributes.
16764
16765 2022-01-28 Jakub Jelinek <jakub@redhat.com>
16766
16767 PR lto/104237
16768 * cfgrtl.cc (loc_equal): New function.
16769 (unique_locus_on_edge_between_p): Use it.
16770
16771 2022-01-28 Richard Biener <rguenther@suse.de>
16772
16773 * cfganal.h (mark_dfs_back_edges): Provide API with struct
16774 function argument.
16775 * cfganal.cc (mark_dfs_back_edges): Take a struct function
16776 to work on, add a wrapper passing cfun.
16777 * graph.cc (draw_cfg_nodes_no_loops): Replace stray cfun
16778 uses with fun which is already passed.
16779 (draw_cfg_edges): Likewise.
16780 (draw_cfg_nodes_for_loop): Do not use draw_cfg_nodes_for_loop
16781 for fun != cfun.
16782
16783 2022-01-27 Patrick Palka <ppalka@redhat.com>
16784
16785 PR c++/99895
16786 * tree.cc (build_call_vec): Add const to second parameter.
16787 * tree.h (build_call_vec): Likewise.
16788
16789 2022-01-27 Martin Liska <mliska@suse.cz>
16790
16791 PR web/104254
16792 * diagnostic.cc (diagnostic_initialize):
16793 Initialize report_bug flag.
16794 (diagnostic_action_after_output):
16795 Explain that -freport-bug option can be used for pre-processed
16796 file creation. Make the message shorter.
16797 (error_recursion): Rename Internal to internal.
16798 * diagnostic.h (struct diagnostic_context): New field.
16799 * opts.cc (common_handle_option): Init the field here.
16800
16801 2022-01-27 Kewen Lin <linkw@linux.ibm.com>
16802
16803 PR target/103702
16804 * config/rs6000/rs6000.cc
16805 (rs6000_cost_data::update_target_cost_per_stmt): Fix one wrong
16806 assertion with early return.
16807
16808 2022-01-27 Chung-Lin Tang <cltang@codesourcery.com>
16809
16810 PR middle-end/103642
16811 * gimplify.cc (gimplify_scan_omp_clauses): Do not do indir_p handling
16812 for non-pointer or non-reference-to-pointer cases.
16813
16814 2022-01-27 Jakub Jelinek <jakub@redhat.com>
16815
16816 PR tree-optimization/104196
16817 * gimple-fold.h (rewrite_to_defined_overflow): Add IN_PLACE argument.
16818 * gimple-fold.cc (rewrite_to_defined_overflow): Likewise. If true,
16819 return NULL and emit needed stmts before and after stmt.
16820 * tree-ssa-reassoc.cc (update_range_test): For inter-bb range opt
16821 pick as operand_entry that will hold the merged test the one feeding
16822 earliest condition, ensure that by swapping range->idx with some
16823 other range's idx if needed. If seq is non-NULL, don't actually swap
16824 it but instead rewrite stmts with undefined overflow in between
16825 the two locations.
16826 (maybe_optimize_range_tests): Set ops[]->id to bb->index with the
16827 corresponding condition even if they have non-NULL ops[]->op.
16828 Formatting fix.
16829
16830 2022-01-26 Jakub Jelinek <jakub@redhat.com>
16831
16832 PR target/104239
16833 * config/rs6000/emmintrin.h (_mm_sad_epu8): Use __asm__ instead of
16834 asm.
16835 * config/rs6000/smmintrin.h (_mm_minpos_epu16): Declare iterator
16836 before for loop instead of for init clause.
16837 * config/rs6000/bmi2intrin.h (_pext_u64): Likewise.
16838
16839 2022-01-26 Jakub Jelinek <jakub@redhat.com>
16840
16841 PR target/104239
16842 * config/rs6000/bmiintrin.h: Test _X86GPRINTRIN_H_INCLUDED instead of
16843 _X86INTRIN_H_INCLUDED and adjust #error wording.
16844 * config/rs6000/bmi2intrin.h: Likewise.
16845
16846 2022-01-26 Jakub Jelinek <jakub@redhat.com>
16847
16848 PR debug/104194
16849 * dwarf2out.cc (long_double_as_float128): New function.
16850 (modified_type_die): For powerpc64le IEEE 754 quad long double
16851 and complex long double emit those as DW_TAG_typedef to
16852 _Float128 or complex _Float128 base type.
16853
16854 2022-01-26 Marek Polacek <polacek@redhat.com>
16855
16856 PR target/104213
16857 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer): Don't
16858 warn when the SSA_NAME_VAR of REF has supressed -Wuse-after-free.
16859
16860 2022-01-26 Martin Liska <mliska@suse.cz>
16861
16862 * ipa-modref-tree.cc (modref_access_node::update):
16863 Remove "--param param=foo" with "--param foo".
16864 (modref_access_node::insert): Likewise.
16865 (modref_access_node::insert_kill): Likewise.
16866 * ipa-modref-tree.h (struct modref_ref_node): Likewise.
16867 (struct modref_base_node): Likewise.
16868 (struct modref_tree): Likewise.
16869
16870 2022-01-26 Raoni Fassina Firmino <raoni@linux.ibm.com>
16871
16872 PR target/94193
16873 * builtins.cc (expand_builtin_feclear_feraise_except): Add op0
16874 predicate check.
16875
16876 2022-01-25 Martin Sebor <msebor@redhat.com>
16877
16878 PR tree-optimization/104203
16879 * gimple-ssa-warn-access.cc (pass_data pass_data_waccess): Use
16880 TV_WARN_ACCESS.
16881 * pointer-query.cc (access_ref::merge_ref): Change return type.
16882 Convert failure to a conservative success.
16883 (access_ref::get_ref): Adjust to the change above. Short-circuit
16884 PHI evaluation after first failure turned into conservative success.
16885 * pointer-query.h (access_ref::merge_ref): Change return type.
16886 * timevar.def (TV_WARN_ACCESS): New timer variable.
16887
16888 2022-01-25 David Edelsohn <dje.gcc@gmail.com>
16889
16890 * config/rs6000/aix.h (OPTION_GLIBC): Define as 0.
16891
16892 2022-01-25 Richard Biener <rguenther@suse.de>
16893
16894 PR tree-optimization/104214
16895 * tree-ssa-loop-niter.cc (number_of_iterations_cond): Use
16896 stronger guarantees for relational pointer compares when
16897 rewriting BASE0 + STEP0 cmp BASE1 + STEP1 as
16898 BASE0 + STEP0 - STEP1 cmp BASE1.
16899
16900 2022-01-25 Jakub Jelinek <jakub@redhat.com>
16901
16902 PR target/104172
16903 * config/rs6000/rs6000-internal.h (rs6000_passes_ieee128): Don't
16904 declare.
16905 * config/rs6000/rs6000.cc (rs6000_passes_ieee128,
16906 ieee128_mangling_gcc_8_1): Remove.
16907 (TARGET_ASM_GLOBALIZE_DECL_NAME): Don't redefine.
16908 (rs6000_mangle_type): Return "u9__ieee128" instead of
16909 ieee128_mangling_gcc_8_1 ? "U10__float128" : "u9__ieee128".
16910 (rs6000_globalize_decl_name): Remove.
16911 * config/rs6000/rs6000-call.cc (init_cumulative_args,
16912 rs6000_function_arg_advance_1): Don't set rs6000_passes_ieee128.
16913
16914 2022-01-24 Martin Sebor <msebor@redhat.com>
16915
16916 * pointer-query.cc (pointer_query::dump): Remove duplicate
16917 block.
16918
16919 2022-01-24 Marek Polacek <polacek@redhat.com>
16920
16921 PR preprocessor/104030
16922 * doc/invoke.texi: Update documentation for -Wbidi-chars.
16923
16924 2022-01-24 Raoni Fassina Firmino <raoni@linux.ibm.com>
16925
16926 PR target/94193
16927 * builtins.cc (expand_builtin_fegetround): New function.
16928 (expand_builtin_feclear_feraise_except): New function.
16929 (expand_builtin): Add cases for BUILT_IN_FEGETROUND,
16930 BUILT_IN_FECLEAREXCEPT and BUILT_IN_FERAISEEXCEPT.
16931 * config/rs6000/rs6000.md (fegetroundsi): New pattern.
16932 (feclearexceptsi): New Pattern.
16933 (feraiseexceptsi): New Pattern.
16934 * doc/extend.texi: Add a new introductory paragraph about the
16935 new builtins.
16936 * doc/md.texi: (fegetround@var{m}): Document new optab.
16937 (feclearexcept@var{m}): Document new optab.
16938 (feraiseexcept@var{m}): Document new optab.
16939 * optabs.def (fegetround_optab): New optab.
16940 (feclearexcept_optab): New optab.
16941 (feraiseexcept_optab): New optab.
16942
16943 2022-01-24 Richard Biener <rguenther@suse.de>
16944 Jiufu Guo <guojiufu@linux.ibm.com>
16945
16946 PR tree-optimization/100740
16947 PR tree-optimization/101508
16948 PR tree-optimization/101972
16949 PR tree-optimization/102131
16950 * tree-ssa-loop-niter.cc (number_of_iterations_cond): Properly
16951 constrain BASE0 + STEP0 cmp BASE1 + STEP1 to
16952 BASE0 + STEP0 - STEP1 cmp BASE1 transform.
16953
16954 2022-01-24 Jakub Jelinek <jakub@redhat.com>
16955
16956 PR sanitizer/104158
16957 * opt-functions.awk (var_set): Handle EnumBitSet property.
16958 * optc-gen.awk: Don't disallow RejectNegative if EnumBitSet is
16959 specified.
16960 * opts.h (enum cl_enum_var_value): New type.
16961 * opts-common.cc (decode_cmdline_option): Use CLEV_* values.
16962 Handle CLEV_BITSET.
16963 (cmdline_handle_error): Handle CLEV_BITSET.
16964 * opts.cc (test_enum_sets): Also test EnumBitSet requirements.
16965 * doc/options.texi (EnumBitSet): Document.
16966 * common.opt (fsanitize-coverage=): Use EnumBitSet instead of
16967 EnumSet.
16968 (trace-pc, trace-cmp): Drop Set properties.
16969
16970 2022-01-24 Jakub Jelinek <jakub@redhat.com>
16971
16972 PR sanitizer/104158
16973 * common.opt (flag_sanitize_coverage): Remove Variable entry.
16974 (fsanitize-coverage=): Remove RejectNegative property, add
16975 Var(flag_sanitize_coverage) and EnumSet properties.
16976 (trace-pc): Add Set(1) property.
16977 (trace-cmp): Add Set(2) property.
16978 * opts.cc (common_handle_option): Don't handle
16979 OPT_fsanitize_coverage_.
16980
16981 2022-01-24 Jakub Jelinek <jakub@redhat.com>
16982
16983 PR sanitizer/104158
16984 * opt-functions.awk (var_set): Handle EnumSet property.
16985 * optc-gen.awk: Don't disallow RejectNegative if EnumSet is
16986 specified.
16987 * opt-read.awk: Handle Set property.
16988 * opts.h (CL_ENUM_SET_SHIFT, CL_ERR_ENUM_SET_ARG): Define.
16989 (struct cl_decoded_option): Mention enum in value description.
16990 Add mask member.
16991 (set_option): Add mask argument defaulted to 0.
16992 * opts.cc (test_enum_sets): New function.
16993 (opts_cc_tests): Call it.
16994 * opts-common.cc (enum_arg_to_value): Change return argument
16995 from bool to int, on success return index into the cl_enum_arg
16996 array, on failure -1. Add len argument, if non-0, use strncmp
16997 instead of strcmp.
16998 (opt_enum_arg_to_value): Adjust caller.
16999 (decode_cmdline_option): Handle EnumSet represented as
17000 CLVC_ENUM with non-zero var_value. Initialize decoded->mask.
17001 (decode_cmdline_options_to_array): CLear opt_array[0].mask.
17002 (handle_option): Pass decoded->mask to set_options last argument.
17003 (generate_option): Clear decoded->mask.
17004 (generate_option_input_file): Likewise.
17005 (cmdline_handle_error): Handle CL_ERR_ENUM_SET_ARG.
17006 (set_option): Add mask argument, use it for CLVC_ENUM.
17007 (control_warning_option): Adjust enum_arg_to_value caller.
17008 * doc/options.texi: Document Set and EnumSet properties.
17009
17010 2022-01-24 Jakub Jelinek <jakub@redhat.com>
17011
17012 PR bootstrap/104170
17013 * config/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
17014 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
17015 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
17016 using OPTION_*_P macros.
17017 * config/alpha/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
17018 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
17019 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
17020 using OPTION_*_P macros.
17021 * config/rs6000/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
17022 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
17023 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
17024 using OPTION_*_P macros.
17025 * config/rs6000/linux64.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
17026 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
17027 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
17028 using OPTION_*_P macros.
17029 * config/fuchsia.h (OPTION_MUSL_P): Redefine.
17030 * config/glibc-stdint.h (OPTION_MUSL_P): Define if not defined.
17031 * common/config/s390/s390-common.cc (s390_supports_split_stack): Re-add
17032 ATTRIBUTE_UNUSED to opts parameter. If OPTION_GLIBC_P is defined, use
17033 OPTION_GLIBC_P (opts) as condition, otherwise assume if (false).
17034 * common/config/i386/i386-common.cc (ix86_supports_split_stack): If
17035 OPTION_GLIBC_P is defined use !OPTION_GLIBC_P (opts) as condition,
17036 otherwise assume if (true).
17037
17038 2022-01-24 Kito Cheng <kito.cheng@sifive.com>
17039
17040 * common/config/riscv/riscv-common.cc (riscv_subset_list::to_string):
17041 Skip zicsr and zifencei if I-ext is 2.0.
17042
17043 2022-01-24 Jia-Wei Chen <jiawei@iscas.ac.cn>
17044
17045 * config.gcc: Modify default isa_spec version.
17046
17047 2022-01-24 Jiufu Guo <guojiufu@linux.ibm.com>
17048
17049 PR tree-optimization/102087
17050 * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
17051 Correct PLUS result type.
17052
17053 2022-01-24 H.J. Lu <hjl.tools@gmail.com>
17054
17055 PR target/104188
17056 * config/i386/predicates.md (bcst_mem_operand): Also check mode
17057 of memory broadcast.
17058
17059 2022-01-23 Andrew Pinski <apinski@marvell.com>
17060
17061 PR target/64821
17062 * config/aarch64/aarch64-builtins.cc
17063 (aarch64_general_gimple_fold_builtin): Handle
17064 __builtin_aarch64_sqrt* and simplify into SQRT internal
17065 function.
17066
17067 2022-01-22 Jakub Jelinek <jakub@redhat.com>
17068
17069 PR other/104176
17070 * opts-global.cc (handle_common_deferred_options): Quote
17071 --enable-plugin in diagnostics to avoid -Werror=format-diag.
17072
17073 2022-01-21 Michael Meissner <meissner@the-meissners.org>
17074
17075 PR target/104136
17076 * config/rs6000/rs6000-protos.h (prefixed_xxsplti_p): Delete.
17077 * config/rs6000/rs6000.cc (prefixed_xxsplti_p): Delete.
17078 * config/rs6000/rs6000.md (prefixed attribute): Delete section
17079 that sets the prefixed attribute for xxspltiw, xxspltidp, and
17080 xxsplti32dx instructions.
17081 (movsf_hardfloat): Explicitly set the prefixed attribute
17082 when xxspltiw and xxspltidp instructions are generated.
17083 (mov<mode>_hardfloat32): Likewise.
17084 (mov<mode>_hardfloat64): Likewise.
17085 * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Explicitly set the
17086 prefixed attribute for xxspltiw and xxspltidp instructions.
17087 (vsx_mov<mode>_32bit): Likewise.
17088
17089 2022-01-21 H.J. Lu <hjl.tools@gmail.com>
17090
17091 PR bootstrap/104170
17092 * common/config/i386/i386-common.cc (ix86_supports_split_stack):
17093 Return true only on glibc.
17094 * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN):
17095 Revert commit c163647ffbc.
17096 * config/i386/gnu.h (TARGET_LIBC_PROVIDES_SSP): Likewise.
17097
17098 2022-01-21 Sören Tempel <soeren@soeren-tempel.net>
17099
17100 * common/config/s390/s390-common.cc (s390_supports_split_stack):
17101 Only support split-stack on glibc targets.
17102 * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN): Ditto.
17103 * config/i386/gnu.h (defined): Ditto.
17104
17105 2022-01-21 Bill Schmidt <wschmidt@linux.ibm.com>
17106
17107 * config/rs6000/rs6000-overload.def (VEC_SLDW): Add instances for
17108 vector float and vector double.
17109
17110 2022-01-21 Bill Seurer <seurer@gcc.gnu.org>
17111
17112 * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
17113 Fix mention of ifunc in string.
17114
17115 2022-01-21 Roger Sayle <roger@nextmovesoftware.com>
17116
17117 PR middle-end/104140
17118 * tree-ssa-math-opts.cc (convert_mult_to_highpart): Check that the
17119 operands of the widening multiplication are either both signed or
17120 both unsigned, and abort the conversion if mismatched.
17121 * doc/generic.texi (WIDEN_MULT_EXPR): Describe expression node.
17122 (MULT_HIGHPART_EXPR): Clarify that operands must have the same
17123 signedness.
17124 * tree.def (MULT_HIGHPART_EXPR): Document both operands must have
17125 integer types with the same precision and signedness.
17126 (WIDEN_MULT_EXPR): Document that operands must have integer types
17127 with the same precision, but possibly differing signedness.
17128 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Defend against
17129 riscv_current_subset_list returning a NULL pointer (empty list).
17130
17131 2022-01-21 Vladimir N. Makarov <vmakarov@redhat.com>
17132
17133 PR target/103676
17134 * ira.h (struct target_ira): Add member
17135 x_ira_exclude_class_mode_regs.
17136 (ira_exclude_class_mode_regs): New macro.
17137 * lra.h (lra_create_new_reg): Add arg exclude_start_hard_regs and
17138 move from here ...
17139 * lra-int.h: ... to here.
17140 (lra_create_new_reg_with_unique_value): Add arg
17141 exclude_start_hard_regs.
17142 (class lra_reg): Add member exclude_start_hard_regs.
17143 * lra-assigns.cc (find_hard_regno_for_1): Setup
17144 impossible_start_hard_regs from exclude_start_hard_regs.
17145 * lra-constraints.cc (get_reload_reg): Add arg exclude_start_hard_regs and pass
17146 it lra_create_new_reg[_with_unique_value].
17147 (match_reload): Ditto.
17148 (check_and_process_move): Pass NULL
17149 exclude_start_hard_regs to lra_create_new_reg_with_unique_value.
17150 (goal_alt_exclude_start_hard_regs): New static variable.
17151 (process_addr_reg, simplify_operand_subreg): Pass NULL
17152 exclude_start_hard_regs to lra_create_new_reg_with_unique_value
17153 and get_reload_reg.
17154 (process_alt_operands): Setup goal_alt_exclude_start_hard_regs.
17155 Use this_alternative_exclude_start_hard_regs additionally to find
17156 winning operand alternative.
17157 (base_to_reg, base_plus_disp_to_reg, index_part_to_reg): Pass NULL
17158 exclude_start_hard_regs to lra_create_new_reg.
17159 (process_address_1, emit_inc): Ditto.
17160 (curr_insn_transform): Pass exclude_start_hard_regs value to
17161 lra_create_new_reg, get_reload_reg, match_reload.
17162 (inherit_reload_reg, split_reg): Pass NULL exclude_start_hard_regs
17163 to lra_create_new_reg.
17164 (process_invariant_for_inheritance): Ditto.
17165 * lra-remat.cc (update_scratch_ops): Ditto.
17166 * lra.cc (lra_create_new_reg_with_unique_value): Add arg
17167 exclude_start_hard_regs. Setup the corresponding member of
17168 lra reg info.
17169 (lra_create_new_reg): Add arg exclude_start_hard_regs and pass it
17170 to lra_create_new_reg_with_unique_value.
17171 (initialize_lra_reg_info_element): Initialize member
17172 exclude_start_hard_regs.
17173 (get_scratch_reg): Pass NULL to lra_create_new_reg.
17174 * ira.cc (setup_prohibited_class_mode_regs): Rename to
17175 setup_prohibited_and_exclude_class_mode_regs and calculate
17176 ira_exclude_class_mode_regs.
17177
17178 2022-01-21 Martin Liska <mliska@suse.cz>
17179
17180 * configure.ac: Detect ld_is_mold and use it for
17181 comdat_group=yes and gcc_cv_ld_hidden=yes.
17182 * configure: Regenerate.
17183
17184 2022-01-21 Richard Biener <rguenther@suse.de>
17185
17186 PR tree-optimization/100089
17187 * tree-vect-slp.cc (vect_slp_region): Reject BB vectorization
17188 of if-converted loops with unvectorized COND_EXPRs for
17189 all but the unlimited cost models.
17190
17191 2022-01-21 Ard Biesheuvel <ardb@kernel.org>
17192
17193 * config/arm/arm-opts.h (enum stack_protector_guard): New.
17194 * config/arm/arm-protos.h (arm_stack_protect_tls_canary_mem):
17195 New.
17196 * config/arm/arm.cc (TARGET_STACK_PROTECT_GUARD): Define.
17197 (arm_option_override_internal): Handle and put in error checks.
17198 for stack protector guard options.
17199 (arm_option_reconfigure_globals): Likewise.
17200 (arm_stack_protect_tls_canary_mem): New.
17201 (arm_stack_protect_guard): New.
17202 * config/arm/arm.md (stack_protect_set): New.
17203 (stack_protect_set_tls): Likewise.
17204 (stack_protect_test): Likewise.
17205 (stack_protect_test_tls): Likewise.
17206 (reload_tp_hard): Likewise.
17207 * config/arm/arm.opt (-mstack-protector-guard): New
17208 (-mstack-protector-guard-offset): New.
17209 * doc/invoke.texi: Document new options.
17210
17211 2022-01-21 Richard Biener <rguenther@suse.de>
17212
17213 PR tree-optimization/104156
17214 * tree-ssa-loop-unswitch.cc (tree_unswitch_outer_loop):
17215 Collect and reset debug stmts with out-of-loop uses when
17216 hoisting guards.
17217 (find_loop_guard): Adjust.
17218 (empty_bb_without_guard_p): Likewise. Ignore debug stmts.
17219 (used_outside_loop_p): Push debug uses to a vector of
17220 debug stmts to reset.
17221 (hoist_guard): Adjust -fopt-info category.
17222
17223 2022-01-21 Richard Biener <rguenther@suse.de>
17224
17225 PR tree-optimization/104152
17226 * tree-vect-slp.cc (vect_build_slp_tree_2): Add missing
17227 can_duplicate_and_interleave_p check.
17228
17229 2022-01-21 Jakub Jelinek <jakub@redhat.com>
17230
17231 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
17232 Avoid passing var to warning_at when the format string doesn't
17233 refer to it.
17234
17235 2022-01-21 Aldy Hernandez <aldyh@redhat.com>
17236
17237 PR tree-optimization/103721
17238 * gimple-range-path.cc
17239 (path_range_query::relations_may_be_invalidated): New.
17240 (path_range_query::compute_ranges_in_block): Reset relations if
17241 they may be invalidated.
17242 (path_range_query::maybe_register_phi_relation): Exit if relations
17243 may be invalidated on incoming edge.
17244 (path_range_query::compute_phi_relations): Pass incoming PHI edge
17245 to maybe_register_phi_relation.
17246 * gimple-range-path.h (relations_may_be_invalidated): New.
17247 (maybe_register_phi_relation): Pass edge instead of tree.
17248 * tree-ssa-threadbackward.cc (back_threader::back_threader):
17249 Mark DFS edges.
17250 * value-relation.cc (path_oracle::path_oracle): Call
17251 mark_dfs_back_edges.
17252 (path_oracle::register_relation): Add SSA names to m_registered
17253 bitmap.
17254 (path_oracle::reset_path): Clear m_registered bitmap.
17255 * value-relation.h (path_oracle::set_root_oracle): New.
17256
17257 2022-01-21 Jakub Jelinek <jakub@redhat.com>
17258
17259 PR rtl-optimization/102478
17260 * optabs.cc (prepare_cmp_insn): If !can_create_pseudo_p (), don't
17261 force_reg constants and for -fnon-call-exceptions fail if copy_to_reg
17262 would be needed.
17263
17264 2022-01-20 Richard Biener <rguenther@suse.de>
17265
17266 PR middle-end/100786
17267 * gimple-fold.cc (get_symbol_constant_value): Only return
17268 values of compatible type to the symbol.
17269
17270 2022-01-20 Andrew MacLeod <amacleod@redhat.com>
17271
17272 * value-relation.cc (relation_oracle::valid_equivs): Query and add
17273 if valid members of a set.
17274 (equiv_oracle::register_equiv): Call valid_equivs rather than
17275 bitmap direct operations.
17276 (path_oracle::register_equiv): Ditto.
17277 * value-relation.h (relation_oracle::valid_equivs): New prototype.
17278
17279 2022-01-20 Richard Biener <rguenther@suse.de>
17280
17281 PR target/100784
17282 * config/i386/i386.cc (ix86_gimple_fold_builtin): Check for
17283 LHS before folding __builtin_ia32_shufpd and friends.
17284
17285 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
17286
17287 * config/arm/crypto.md (aes_op_protect): Allow moves from core
17288 registers and from memory.
17289 (aes_op_protect_misalign_load): New pattern.
17290 (aes_op_protect_neon_vld1v16qi): New pattern.
17291
17292 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
17293
17294 * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>_protected):
17295 New pattern.
17296 (aarch32_crypto_aese_fused_protected): Likewise.
17297 (aarch32_crypto_aesd_fused_protected): Likewise.
17298
17299 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
17300
17301 * config/arm/crypto.md (crypto_<CRYPTO_AES:crypto_pattern>): Convert
17302 to define_expand. Add mitigation for the Cortex-A AES erratum
17303 when enabled.
17304 (*crypto_<CRYPTO_AES:crypto_pattern>_insn): New pattern, based
17305 on original crypto_<CRYPTO_AES:crypto_pattern> insn.
17306 (aes_op_protect): New pattern.
17307 * config/arm/unspecs.md (unspec): Add UNSPEC_AES_PROTECT.
17308
17309 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
17310
17311 * config/arm/arm-cpus.in (quirk_aes_1742098): New quirk feature
17312 (ALL_QUIRKS): Add it.
17313 (cortex-a57, cortex-a72): Enable it.
17314 (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
17315 * config/arm/arm.opt (mfix-cortex-a57-aes-1742098): New command-line
17316 option.
17317 (mfix-cortex-a72-aes-1655431): New option alias.
17318 * config/arm/arm.cc (arm_option_override): Handle default settings
17319 for AES erratum switch.
17320 * doc/invoke.texi (Arm Options): Document new options.
17321
17322 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
17323
17324 * config/arm/crypto.md (crypto_<CYRPTO_AES:crypto_pattern>): Use
17325 <crypto_mode> rather than hard-coding the mode.
17326 (crypto_<CRYPTO_AESMC:crypto_pattern>): Fix white space.
17327 (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
17328 (*aarch32_crypto_aese_fused): Likewise.
17329 (*aarch32_crypto_aesd_fused): Likewise.
17330 (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
17331 (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
17332 (crypto_sha1h_lb): Likewise.
17333 (crypto_vmullp64): Likewise.
17334 (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
17335 (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
17336
17337 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
17338
17339 * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>): Add
17340 iterator to pattern name to disambiguate.
17341 (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
17342 (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
17343 (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
17344 (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
17345 (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
17346
17347 2022-01-20 Martin Liska <mliska@suse.cz>
17348
17349 PR bootstrap/104135
17350 * emit-rtl.cc (make_insn_raw): Fix -Wformat-diag warnings.
17351 * rtl.cc: Partially disable -Wformat-diag for RTL checking
17352 error messages.
17353
17354 2022-01-20 Jakub Jelinek <jakub@redhat.com>
17355
17356 PR debug/103874
17357 * dwarf2out.cc (index_rnglists): For !HAVE_AS_LEB128 and
17358 block_num > 0, index entry even if !have_multiple_function_sections.
17359
17360 2022-01-20 liuhongt <hongtao.liu@intel.com>
17361
17362 PR target/103771
17363 * tree-vect-stmts.cc (supportable_narrowing_operation): Enhance
17364 integral mode mask pack by multi steps which takes
17365 vec_pack_sbool_trunc_optab as start when elements number is
17366 less than BITS_PER_UNITS.
17367
17368 2022-01-20 Richard Biener <rguenther@suse.de>
17369
17370 PR tree-optimization/104114
17371 * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
17372 single element vector decomposition.
17373
17374 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
17375
17376 * ifcvt.cc (noce_convert_multiple_sets_1): New function.
17377 (noce_convert_multiple_sets): Call function a second time if we can
17378 improve the first try.
17379
17380 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
17381
17382 * ifcvt.cc (cond_exec_get_condition): New parameter to allow getting the
17383 reversed comparison.
17384 (try_emit_cmove_seq): New function to facilitate creating a cmov
17385 sequence.
17386 (noce_convert_multiple_sets): Create two sequences and use the less
17387 expensive one.
17388
17389 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
17390
17391 * rtl.h (struct rtx_comparison): New struct that holds an rtx
17392 comparison.
17393 * config/rs6000/rs6000.cc (rs6000_emit_minmax): Use struct instead of
17394 single parameters.
17395 (rs6000_emit_swsqrt): Likewise.
17396 * expmed.cc (expand_sdiv_pow2): Likewise.
17397 (emit_store_flag): Likewise.
17398 * expr.cc (expand_cond_expr_using_cmove): Likewise.
17399 (expand_expr_real_2): Likewise.
17400 * ifcvt.cc (noce_emit_cmove): Add compare and reversed compare
17401 parameters.
17402 * optabs.cc (emit_conditional_move_1): New function.
17403 (expand_doubleword_shift_condmove): Use struct.
17404 (emit_conditional_move): Use struct and allow to call directly
17405 without going through preparation steps.
17406 * optabs.h (emit_conditional_move): Use struct.
17407
17408 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
17409
17410 * ifcvt.cc (bb_ok_for_noce_convert_multiple_sets): Estimate insns costs.
17411 (noce_process_if_block): Use potential costs.
17412
17413 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
17414
17415 * ifcvt.cc (noce_convert_multiple_sets): Allow constants.
17416 (bb_ok_for_noce_convert_multiple_sets): Likewise.
17417
17418 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
17419
17420 * ifcvt.cc (need_cmov_or_rewire): New function.
17421 (noce_convert_multiple_sets): Call it.
17422
17423 2022-01-19 David Malcolm <dmalcolm@redhat.com>
17424
17425 * attribs.cc (attribute_c_tests): Rename to...
17426 (attribs_cc_tests): ...this.
17427 * bitmap.cc (bitmap_c_tests): Rename to...
17428 (bitmap_cc_tests): ...this.
17429 * cgraph.cc (cgraph_c_finalize): Rename to...
17430 (cgraph_cc_finalize): ...this.
17431 (cgraph_c_tests): Rename to...
17432 (cgraph_cc_tests): ...this.
17433 * cgraph.h (cgraph_c_finalize): Rename to...
17434 (cgraph_cc_finalize): ...this.
17435 (cgraphunit_c_finalize): Rename to...
17436 (cgraphunit_cc_finalize): ...this.
17437 * cgraphunit.cc (cgraphunit_c_finalize): Rename to...
17438 (cgraphunit_cc_finalize): ...this.
17439 * convert.cc (convert_c_tests): Rename to...
17440 (convert_cc_tests): ...this.
17441 * dbgcnt.cc (dbgcnt_c_tests): Rename to...
17442 (dbgcnt_cc_tests): ...this.
17443 * diagnostic-show-locus.cc (diagnostic_show_locus_c_tests): Rename to...
17444 (diagnostic_show_locus_cc_tests): ...this.
17445 * diagnostic.cc (diagnostic_c_tests): Rename to...
17446 (diagnostic_cc_tests): ...this.
17447 * dumpfile.cc (dumpfile_c_tests): Rename to...
17448 (dumpfile_cc_tests): ...this.
17449 * dwarf2out.cc (dwarf2out_c_finalize): Rename to...
17450 (dwarf2out_cc_finalize): ...this.
17451 * dwarf2out.h (dwarf2out_c_finalize): Rename to...
17452 (dwarf2out_cc_finalize): ...this.
17453 * edit-context.cc (edit_context_c_tests): Rename to...
17454 (edit_context_cc_tests): ...this.
17455 * et-forest.cc (et_forest_c_tests): Rename to...
17456 (et_forest_cc_tests): ...this.
17457 * fibonacci_heap.cc (fibonacci_heap_c_tests): Rename to...
17458 (fibonacci_heap_cc_tests): ...this.
17459 * fold-const.cc (fold_const_c_tests): Rename to...
17460 (fold_const_cc_tests): ...this.
17461 * function-tests.cc (function_tests_c_tests): Rename to...
17462 (function_tests_cc_tests): ...this.
17463 * gcse.cc (gcse_c_finalize): Rename to...
17464 (gcse_cc_finalize): ...this.
17465 * gcse.h (gcse_c_finalize): Rename to...
17466 (gcse_cc_finalize): ...this.
17467 * ggc-tests.cc (ggc_tests_c_tests): Rename to...
17468 (ggc_tests_cc_tests): ...this.
17469 * gimple-ssa-store-merging.cc (store_merging_c_tests): Rename to...
17470 (store_merging_cc_tests): ...this.
17471 * gimple.cc (gimple_c_tests): Rename to...
17472 (gimple_cc_tests): ...this.
17473 * hash-map-tests.cc (hash_map_tests_c_tests): Rename to...
17474 (hash_map_tests_cc_tests): ...this.
17475 * hash-set-tests.cc (hash_set_tests_c_tests): Rename to...
17476 (hash_set_tests_cc_tests): ...this.
17477 * input.cc (input_c_tests): Rename to...
17478 (input_cc_tests): ...this.
17479 * ipa-cp.cc (ipa_cp_c_finalize): Rename to...
17480 (ipa_cp_cc_finalize): ...this.
17481 * ipa-fnsummary.cc (ipa_fnsummary_c_finalize): Rename to...
17482 (ipa_fnsummary_cc_finalize): ...this.
17483 * ipa-fnsummary.h (ipa_fnsummary_c_finalize): Rename to...
17484 (ipa_fnsummary_cc_finalize): ...this.
17485 * ipa-modref-tree.cc (ipa_modref_tree_c_tests): Rename to...
17486 (ipa_modref_tree_cc_tests): ...this.
17487 * ipa-modref-tree.h (modref_c_tests): Delete bogus decl.
17488 * ipa-modref.cc (ipa_modref_c_finalize): Rename to...
17489 (ipa_modref_cc_finalize): ...this.
17490 * ipa-modref.h (ipa_modref_c_finalize): Rename to...
17491 (ipa_modref_cc_finalize): ...this.
17492 * ipa-prop.h (ipa_cp_c_finalize): Rename to...
17493 (ipa_cp_cc_finalize): ...this.
17494 * ipa-reference.cc (ipa_reference_c_finalize): Rename to...
17495 (ipa_reference_cc_finalize): ...this.
17496 * ipa-reference.h (ipa_reference_c_finalize): Rename to...
17497 (ipa_reference_cc_finalize): ...this.
17498 * ira-costs.cc (ira_costs_c_finalize): Rename to...
17499 (ira_costs_cc_finalize): ...this.
17500 * ira.h (ira_costs_c_finalize): Rename to...
17501 (ira_costs_cc_finalize): ...this.
17502 * opt-suggestions.cc (opt_proposer_c_tests): Rename to...
17503 (opt_suggestions_cc_tests): ...this.
17504 * opts.cc (opts_c_tests): Rename to...
17505 (opts_cc_tests): ...this.
17506 * predict.cc (predict_c_tests): Rename to...
17507 (predict_cc_tests): ...this.
17508 * pretty-print.cc (pretty_print_c_tests): Rename to...
17509 (pretty_print_cc_tests): ...this.
17510 * read-rtl-function.cc (read_rtl_function_c_tests): Rename to...
17511 (read_rtl_function_cc_tests): ...this.
17512 * rtl-tests.cc (rtl_tests_c_tests): Rename to...
17513 (rtl_tests_cc_tests): ...this.
17514 * sbitmap.cc (sbitmap_c_tests): Rename to...
17515 (sbitmap_cc_tests): ...this.
17516 * selftest-run-tests.cc (selftest::run_tests): Update calls for
17517 _c_ to _cc_ function renamings; fix names of attribs and
17518 opt-suggestions tests.
17519 * selftest.cc (selftest_c_tests): Rename to...
17520 (selftest_cc_tests): ...this.
17521 * selftest.h (attribute_c_tests): Rename to...
17522 (attribs_cc_tests): ...this.
17523 (bitmap_c_tests): Rename to...
17524 (bitmap_cc_tests): ...this.
17525 (cgraph_c_tests): Rename to...
17526 (cgraph_cc_tests): ...this.
17527 (convert_c_tests): Rename to...
17528 (convert_cc_tests): ...this.
17529 (diagnostic_c_tests): Rename to...
17530 (diagnostic_cc_tests): ...this.
17531 (diagnostic_show_locus_c_tests): Rename to...
17532 (diagnostic_show_locus_cc_tests): ...this.
17533 (dumpfile_c_tests): Rename to...
17534 (dumpfile_cc_tests): ...this.
17535 (edit_context_c_tests): Rename to...
17536 (edit_context_cc_tests): ...this.
17537 (et_forest_c_tests): Rename to...
17538 (et_forest_cc_tests): ...this.
17539 (fibonacci_heap_c_tests): Rename to...
17540 (fibonacci_heap_cc_tests): ...this.
17541 (fold_const_c_tests): Rename to...
17542 (fold_const_cc_tests): ...this.
17543 (function_tests_c_tests): Rename to...
17544 (function_tests_cc_tests): ...this.
17545 (ggc_tests_c_tests): Rename to...
17546 (ggc_tests_cc_tests): ...this.
17547 (gimple_c_tests): Rename to...
17548 (gimple_cc_tests): ...this.
17549 (hash_map_tests_c_tests): Rename to...
17550 (hash_map_tests_cc_tests): ...this.
17551 (hash_set_tests_c_tests): Rename to...
17552 (hash_set_tests_cc_tests): ...this.
17553 (input_c_tests): Rename to...
17554 (input_cc_tests): ...this.
17555 (opts_c_tests): Rename to...
17556 (opts_cc_tests): ...this.
17557 (predict_c_tests): Rename to...
17558 (predict_cc_tests): ...this.
17559 (pretty_print_c_tests): Rename to...
17560 (pretty_print_cc_tests): ...this.
17561 (read_rtl_function_c_tests): Rename to...
17562 (read_rtl_function_cc_tests): ...this.
17563 (rtl_tests_c_tests): Rename to...
17564 (rtl_tests_cc_tests): ...this.
17565 (sbitmap_c_tests): Rename to...
17566 (sbitmap_cc_tests): ...this.
17567 (selftest_c_tests): Rename to...
17568 (selftest_cc_tests): ...this.
17569 (simplify_rtx_c_tests): Rename to...
17570 (simplify_rtx_cc_tests): ...this.
17571 (spellcheck_c_tests): Rename to...
17572 (spellcheck_cc_tests): ...this.
17573 (spellcheck_tree_c_tests): Rename to...
17574 (spellcheck_tree_cc_tests): ...this.
17575 (sreal_c_tests): Rename to...
17576 (sreal_cc_tests): ...this.
17577 (store_merging_c_tests): Rename to...
17578 (store_merging_cc_tests): ...this.
17579 (tree_c_tests): Rename to...
17580 (tree_cc_tests): ...this.
17581 (tree_cfg_c_tests): Rename to...
17582 (tree_cfg_cc_tests): ...this.
17583 (typed_splay_tree_c_tests): Rename to...
17584 (typed_splay_tree_cc_tests): ...this.
17585 (vec_c_tests): Rename to...
17586 (vec_cc_tests): ...this.
17587 (vec_perm_indices_c_tests): Rename to...
17588 (vec_perm_indices_cc_tests): ..this.
17589 (opt_proposer_c_tests): Rename to...
17590 (opt_suggestions_cc_tests): ...this.
17591 (dbgcnt_c_tests): Rename to...
17592 (dbgcnt_cc_tests): ...this.
17593 (ipa_modref_tree_c_tests): Rename to...
17594 (ipa_modref_tree_cc_tests): ...this.
17595 * simplify-rtx.cc (simplify_rtx_c_tests): Rename to...
17596 (simplify_rtx_cc_tests): ...this.
17597 * spellcheck-tree.cc (spellcheck_tree_c_tests): Rename to...
17598 (spellcheck_tree_cc_tests): ...this.
17599 * spellcheck.cc (spellcheck_c_tests): Rename to...
17600 (spellcheck_cc_tests): ...this.
17601 * sreal.cc (sreal_c_tests): Rename to...
17602 (sreal_cc_tests): ...this.
17603 * toplev.cc (toplev::finalize): Update calls for _c_ to _cc_
17604 function renamings.
17605 * tree-cfg.cc (tree_cfg_c_tests): Rename to...
17606 (tree_cfg_cc_tests): ...this.
17607 * tree.cc (tree_c_tests): Rename to...
17608 (tree_cc_tests): ...this.
17609 * typed-splay-tree.cc (typed_splay_tree_c_tests): Rename to...
17610 (typed_splay_tree_cc_tests): ...this.
17611 * vec-perm-indices.cc (vec_perm_indices_c_tests): Rename to...
17612 (vec_perm_indices_cc_tests): ...this.
17613 * vec.cc (vec_c_tests): Rename to...
17614 (vec_cc_tests): ...this.
17615
17616 2022-01-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
17617
17618 PR tree-optimization/103997
17619 * tree-vect-loop.cc (vect_analyze_loop): Fix mode skipping for epilogue
17620 vectorization.
17621
17622 2022-01-19 Jakub Jelinek <jakub@redhat.com>
17623
17624 PR middle-end/102860
17625 * match.pd (x %[fl] y -> x % y): New simplification for
17626 unsigned integral types.
17627 * optabs-tree.cc (optab_for_tree_code): Return unknown_optab
17628 for {CEIL,FLOOR,ROUND}_{DIV,MOD}_EXPR with VECTOR_TYPE.
17629
17630 2022-01-19 Richard Biener <rguenther@suse.de>
17631
17632 PR tree-optimization/104112
17633 * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
17634 for required intermediate vector types.
17635
17636 2022-01-19 Jakub Jelinek <jakub@redhat.com>
17637
17638 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Add default:.
17639
17640 2022-01-19 Martin Liska <mliska@suse.cz>
17641
17642 * configure.ac: Remove -Wno-error=format-diag.
17643 * configure: Regenerate.
17644
17645 2022-01-19 Martin Liska <mliska@suse.cz>
17646
17647 * config/riscv/riscv.cc (riscv_handle_type_attribute):
17648 Update one -Wformat-diag string in warning message.
17649
17650 2022-01-19 Jakub Jelinek <jakub@redhat.com>
17651
17652 PR middle-end/104103
17653 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Don't check
17654 .ASAN_MARK calls.
17655
17656 2022-01-19 Jakub Jelinek <jakub@redhat.com>
17657
17658 PR c++/89074
17659 * fold-const.cc (address_compare): Consider different STRING_CSTs
17660 with the same lengths that memcmp the same as equal, not different.
17661
17662 2022-01-19 Jakub Jelinek <jakub@redhat.com>
17663
17664 * config/i386/sse.md (*aes<aeswideklvariant>u*): Use %0 instead of
17665 {%0}.
17666
17667 2022-01-19 Martin Liska <mliska@suse.cz>
17668 Thomas Schwinge <thomas@codesourcery.com>
17669
17670 * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Update
17671 warning messages.
17672
17673 2022-01-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
17674
17675 PR target/104090
17676 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Use also
17677 rs6000_cpu.
17678
17679 2022-01-19 Jakub Jelinek <jakub@redhat.com>
17680
17681 PR target/104104
17682 * config/i386/sse.md
17683 (<avx512>_<complexopname>_<mode><maskc_name><round_name>,
17684 avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>,
17685 avx512dq_mul<mode>3<mask_name>, <avx2_avx512>_permvar<mode><mask_name>,
17686 avx2_perm<mode>_1<mask_name>, avx512f_perm<mode>_1<mask_name>,
17687 avx512dq_rangep<mode><mask_name><round_saeonly_name>,
17688 avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>,
17689 <avx512>_getmant<mode><mask_name><round_saeonly_name>,
17690 avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
17691 Use vxorps\t%x0, %x0, %x0 instead of vxorps\t{%x0, %x0, %x0}.
17692
17693 2022-01-19 Martin Sebor <msebor@redhat.com>
17694
17695 PR middle-end/104069
17696 * gimple-ssa-warn-access.cc (pointers_related_p): Return false for
17697 an unknown result as documented.
17698
17699 2022-01-18 Andrew Pinski <apinski@marvell.com>
17700
17701 * ipa-split.cc (visit_bb): Fix comment before the
17702 warning/error attribute checking code.
17703
17704 2022-01-18 David Faust <david.faust@oracle.com>
17705
17706 * config/bpf/coreout.cc (bpf_core_reloc_add): Do not account
17707 for base strtab offset yet as it may change.
17708 (output_asm_btfext_core_reloc): Do so here instead.
17709 (output_btfext_core_sections): Likewise.
17710
17711 2022-01-18 David Faust <david.faust@oracle.com>
17712
17713 * config/bpf/coreout.cc (output_btfext_header): Account for
17714 4-byte record size in core_relo_len.
17715 (output_btfext_core_sections): Only write record size once.
17716 * config/bpf/coreout.h (btf_ext_section_header): Delete unused
17717 member.
17718
17719 2022-01-18 Maciej W. Rozycki <macro@embecosm.com>
17720
17721 * common/config/riscv/riscv-common.cc
17722 (riscv_subset_list::parse_multiletter_ext): Move pointer
17723 arithmetic ahead of `free'.
17724
17725 2022-01-18 Jason Merrill <jason@redhat.com>
17726
17727 PR c++/104007
17728 * gimplify.cc (gimple_push_cleanup): Handle eh_only in conditional
17729 context.
17730
17731 2022-01-18 Sandra Loosemore <sandra@codesourcery.com>
17732
17733 PR middle-end/103163
17734 * emit-rtl.cc (init_emit_regs): Initialize stack_limit_rtx here...
17735 (init_emit_once): ...not here.
17736
17737 2022-01-18 Martin Liska <mliska@suse.cz>
17738
17739 * collect2.cc (scan_libraries): Fix -Wformat-diag issues.
17740 * config/aarch64/aarch64-builtins.cc (aarch64_simd_expand_builtin): Likewise.
17741 * config/arc/arc.md: Likewise.
17742 * config/avr/avr.cc (avr_section_type_flags): Likewise.
17743 * config/bfin/bfin.cc (bfin_option_override): Likewise.
17744 (bfin_handle_longcall_attribute): Likewise.
17745 * config/cris/cris.h (FUNCTION_PROFILER): Likewise.
17746 * config/frv/frv.cc (frv_expand_builtin): Likewise.
17747 * config/ia64/ia64-c.cc (ia64_hpux_handle_builtin_pragma): Likewise.
17748 * config/iq2000/iq2000.cc (save_restore_insns): Likewise.
17749 (iq2000_print_operand_address): Likewise.
17750 (iq2000_print_operand): Likewise.
17751 * config/m32c/m32c-pragma.cc (m32c_pragma_memregs): Likewise.
17752 (m32c_pragma_address): Likewise.
17753 * config/m68k/m68k.cc (m68k_handle_fndecl_attribute): Likewise.
17754 * config/mips/mips.cc (mips_handle_interrupt_attr): Likewise.
17755 (mips_set_compression_mode): Likewise.
17756 * config/mmix/mmix.cc (mmix_function_profiler): Likewise.
17757 (mmix_print_operand): Likewise.
17758 (mmix_output_shiftvalue_op_from_str): Likewise.
17759 (mmix_output_shifted_value): Likewise.
17760 * config/msp430/driver-msp430.cc (msp430_select_hwmult_lib): Likewise.
17761 * config/msp430/msp430.cc (msp430_option_override): Likewise.
17762 (msp430_attr): Likewise.
17763 (msp430_expand_delay_cycles): Likewise.
17764 (msp430_expand_builtin): Likewise.
17765 * config/rs6000/aix73.h: Likewise.
17766 * config/rs6000/rtems.h (INVALID_64BIT): Likewise.
17767 * config/rx/rx.cc (rx_expand_builtin_mvtc): Likewise.
17768 (valid_psw_flag): Likewise.
17769 * config/sh/sh.cc (parse_validate_atomic_model_option): Likewise.
17770 * config/stormy16/stormy16.cc (xstormy16_function_profiler): Likewise.
17771 (xstormy16_expand_builtin_va_start): Likewise.
17772 (xstormy16_handle_below100_attribute): Likewise.
17773
17774 2022-01-18 Martin Liska <mliska@suse.cz>
17775
17776 * config/vms/vms-c.cc (vms_pragma_nostandard): Fix -Wformat-diag
17777 warning.
17778 (vms_pragma_standard): Likewise.
17779 (vms_pragma_extern_prefix): Likewise.
17780
17781 2022-01-18 Martin Liska <mliska@suse.cz>
17782
17783 * config/xtensa/xtensa.cc (print_operand): Fix warnings.
17784 (print_operand_address): Likewise.
17785 (xtensa_multibss_section_type_flags): Likewise.
17786
17787 2022-01-18 Martin Liska <mliska@suse.cz>
17788
17789 * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Change
17790 wording of an error message.
17791
17792 2022-01-18 Martin Liska <mliska@suse.cz>
17793
17794 * config/v850/v850-c.cc (pop_data_area): Fix -Wformat-diag
17795 warning.
17796 (ghs_pragma_section): Likewise.
17797 (ghs_pragma_interrupt): Likewise.
17798 (ghs_pragma_starttda): Likewise.
17799 (ghs_pragma_startsda): Likewise.
17800 (ghs_pragma_startzda): Likewise.
17801 (ghs_pragma_endtda): Likewise.
17802 (ghs_pragma_endsda): Likewise.
17803 (ghs_pragma_endzda): Likewise.
17804
17805 2022-01-18 Martin Liska <mliska@suse.cz>
17806
17807 * config/nds32/nds32-intrinsic.cc (nds32_expand_builtin_impl):
17808 Fix warnings.
17809 * config/nds32/nds32-intrinsic.md: Likewise.
17810 * config/nds32/nds32-isr.cc (nds32_check_isr_attrs_conflict): Likewise.
17811 * config/nds32/nds32.cc (nds32_print_operand): Likewise.
17812 (nds32_insert_attributes): Likewise.
17813
17814 2022-01-18 Martin Liska <mliska@suse.cz>
17815
17816 * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Wrap
17817 keyword.
17818 * config/nvptx/nvptx.md: Remove trailing dot.
17819
17820 2022-01-18 Martin Liska <mliska@suse.cz>
17821
17822 * common/config/riscv/riscv-common.cc (riscv_subset_list::add):
17823 Wrap keywords with quotes and remove trailing dots.
17824 (riscv_subset_list::parsing_subset_version): Likewise.
17825 (riscv_subset_list::parse_std_ext): Likewise.
17826 (riscv_subset_list::parse_multiletter_ext): Likewise.
17827 * config/riscv/riscv.cc (riscv_handle_type_attribute): Likewise.
17828
17829 2022-01-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
17830
17831 * tree-vect-loop.cc (vect_estimate_min_profitable_iters): Pass new
17832 argument suggested_unroll_factor.
17833 (vect_analyze_loop_costing): Likewise.
17834 (_loop_vec_info::_loop_vec_info): Initialize new member
17835 suggested_unroll_factor.
17836 (vect_determine_partial_vectors_and_peeling): Make epilogue of unrolled
17837 main loop use partial vectors.
17838 (vect_analyze_loop_2): Pass and use new argument
17839 suggested_unroll_factor.
17840 (vect_analyze_loop_1): Change to intialize local
17841 suggested_unroll_factor and use it.
17842 (vectorizable_reduction): Don't use single_defuse_cycle when unrolling.
17843 * tree-vectorizer.h (_loop_vec_info::_loop_vec_info): Add new member
17844 suggested_unroll_factor.
17845 (vector_costs::vector_costs): Add new member m_suggested_unroll_factor.
17846 (vector_costs::suggested_unroll_factor): New getter function.
17847 (finish_cost): Set return argument suggested_unroll_factor.
17848
17849 2022-01-18 Andrew MacLeod <amacleod@redhat.com>
17850
17851 PR tree-optimization/104038
17852 * doc/invoke.texi (relation-block-limit): New.
17853 * params.opt (relation-block-limit): New.
17854 * value-relation.cc (dom_oracle::register_relation): Check for NULL
17855 record before invoking transitive registery.
17856 (dom_oracle::set_one_relation): Check limit before creating record.
17857 (dom_oracle::register_transitives): Stop when no record created.
17858 * value-relation.h (relation_chain_head::m_num_relations): New.
17859
17860 2022-01-18 Richard Biener <rguenther@suse.de>
17861
17862 PR ipa/103989
17863 * ipa-inline.cc (inline_small_functions): Do not enqueue call
17864 edges originating in functions compiled with -Og.
17865
17866 2022-01-18 Richard Biener <rguenther@suse.de>
17867
17868 PR ipa/103989
17869 * passes.def (pass_all_optimizations_g): Remove pass_modref
17870 and pass_local_pure_const.
17871
17872 2022-01-18 Martin Liska <mliska@suse.cz>
17873
17874 * config/s390/s390.cc: Fix -Wformat-diag warnings.
17875
17876 2022-01-18 Martin Liska <mliska@suse.cz>
17877
17878 * config/s390/s390-c.cc (s390_expand_overloaded_builtin): Wrap
17879 keyword in quotes.
17880 (s390_resolve_overloaded_builtin): Remove trailing dot.
17881 * config/s390/s390.cc (s390_const_operand_ok): Use - for range.
17882 (s390_expand_builtin): Remove trailing dot.
17883 (s390_emit_prologue): Likewise, use semicolon.
17884 (s390_option_override_internal): Update keyword.
17885 * varasm.cc (do_assemble_alias): Wrap keyword in quotes.
17886
17887 2022-01-18 Martin Liska <mliska@suse.cz>
17888
17889 * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Wrap
17890 keywords and use %qs instead of %<%s%>.
17891
17892 2022-01-18 Richard Biener <rguenther@suse.de>
17893
17894 PR tree-optimization/103987
17895 * tree-ssa-dse.cc (dse_optimize_call): Properly guard modref
17896 query with a pointer check.
17897
17898 2022-01-18 Richard Sandiford <richard.sandiford@arm.com>
17899
17900 PR target/104005
17901 * config/aarch64/aarch64.cc (aarch64_check_consecutive_mems):
17902 When using MEM_EXPR, require the base to be a decl.
17903
17904 2022-01-18 Richard Biener <rguenther@suse.de>
17905
17906 * cgraph.h (struct cgraph_simd_clone_arg): Re-arrange fields to
17907 avoid padding.
17908 * function.h (struct function): Likewise.
17909
17910 2022-01-18 Arnaud Charlet <charlet@adacore.com>
17911
17912 * doc/install.texi: Update prerequisites for GNAT
17913
17914 2022-01-18 Andrew Pinski <apinski@marvell.com>
17915
17916 PR tree-optimization/101941
17917 * ipa-split.cc (visit_bb): Disallow function calls where
17918 the function has either error or warning attribute.
17919
17920 2022-01-18 Richard Biener <rguenther@suse.de>
17921
17922 PR tree-optimization/104064
17923 * tree-vect-data-refs.cc (vect_analyze_data_ref_accesses): Check
17924 DR_INIT fits in a signed HWI, represent the difference from the
17925 first DR in unsigned.
17926
17927 2022-01-17 Martin Liska <mliska@suse.cz>
17928
17929 * Makefile.in: Rename .c names to .cc.
17930 * config.gcc: Likewise.
17931 * configure: Regenerate. Likewise.
17932 * configure.ac: Likewise.
17933 * gengtype.cc (set_gc_used): Likewise.
17934 (source_dot_c_frul): Likewise.
17935 (source_dot_cc_frul): Likewise.
17936 (struct file_rule_st): Likewise.
17937 (close_output_files): Likewise.
17938 * config/avr/t-avr: Use CXXFLAGS_* and CXX_FOR_BUILD.
17939
17940 2022-01-17 Martin Liska <mliska@suse.cz>
17941
17942 * Makefile.in: Rename .c names to .cc.
17943 * alias.h: Likewise.
17944 * asan.cc: Likewise.
17945 * auto-profile.h: Likewise.
17946 * basic-block.h (struct basic_block_d): Likewise.
17947 * btfout.cc: Likewise.
17948 * builtins.cc (expand_builtin_longjmp): Likewise.
17949 (validate_arg): Likewise.
17950 (access_ref::offset_bounded): Likewise.
17951 * caller-save.cc (reg_restore_code): Likewise.
17952 (setup_save_areas): Likewise.
17953 * calls.cc (initialize_argument_information): Likewise.
17954 (expand_call): Likewise.
17955 (emit_library_call_value_1): Likewise.
17956 * cfg-flags.def (RTL): Likewise.
17957 (SIBCALL): Likewise.
17958 (CAN_FALLTHRU): Likewise.
17959 * cfganal.cc (post_order_compute): Likewise.
17960 * cfgcleanup.cc (try_simplify_condjump): Likewise.
17961 (merge_blocks_move_predecessor_nojumps): Likewise.
17962 (merge_blocks_move_successor_nojumps): Likewise.
17963 (merge_blocks_move): Likewise.
17964 (old_insns_match_p): Likewise.
17965 (try_crossjump_bb): Likewise.
17966 * cfgexpand.cc (expand_gimple_stmt): Likewise.
17967 * cfghooks.cc (split_block_before_cond_jump): Likewise.
17968 (profile_record_check_consistency): Likewise.
17969 * cfghooks.h: Likewise.
17970 * cfgrtl.cc (pass_free_cfg::execute): Likewise.
17971 (rtl_can_merge_blocks): Likewise.
17972 (try_redirect_by_replacing_jump): Likewise.
17973 (make_pass_outof_cfg_layout_mode): Likewise.
17974 (cfg_layout_can_merge_blocks_p): Likewise.
17975 * cgraph.cc (release_function_body): Likewise.
17976 (cgraph_node::get_fun): Likewise.
17977 * cgraph.h (struct cgraph_node): Likewise.
17978 (asmname_hasher::equal): Likewise.
17979 (cgraph_inline_failed_type): Likewise.
17980 (thunk_adjust): Likewise.
17981 (dump_callgraph_transformation): Likewise.
17982 (record_references_in_initializer): Likewise.
17983 (ipa_discover_variable_flags): Likewise.
17984 * cgraphclones.cc (GTY): Likewise.
17985 * cgraphunit.cc (symbol_table::finalize_compilation_unit): Likewise.
17986 * collect-utils.h (GCC_COLLECT_UTILS_H): Likewise.
17987 * collect2-aix.h (GCC_COLLECT2_AIX_H): Likewise.
17988 * collect2.cc (maybe_run_lto_and_relink): Likewise.
17989 * combine-stack-adj.cc: Likewise.
17990 * combine.cc (setup_incoming_promotions): Likewise.
17991 (combine_simplify_rtx): Likewise.
17992 (count_rtxs): Likewise.
17993 * common.opt: Likewise.
17994 * common/config/aarch64/aarch64-common.cc: Likewise.
17995 * common/config/arm/arm-common.cc (arm_asm_auto_mfpu): Likewise.
17996 * common/config/avr/avr-common.cc: Likewise.
17997 * common/config/i386/i386-isas.h (struct _isa_names_table): Likewise.
17998 * conditions.h: Likewise.
17999 * config.gcc: Likewise.
18000 * config/aarch64/aarch64-builtins.cc (aarch64_resolve_overloaded_memtag): Likewise.
18001 * config/aarch64/aarch64-protos.h (aarch64_classify_address): Likewise.
18002 (aarch64_get_extension_string_for_isa_flags): Likewise.
18003 * config/aarch64/aarch64-sve-builtins.cc (function_builder::add_function): Likewise.
18004 * config/aarch64/aarch64.cc (aarch64_regmode_natural_size): Likewise.
18005 (aarch64_sched_first_cycle_multipass_dfa_lookahead): Likewise.
18006 (aarch64_option_valid_attribute_p): Likewise.
18007 (aarch64_short_vector_p): Likewise.
18008 (aarch64_float_const_representable_p): Likewise.
18009 * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise.
18010 (ASM_OUTPUT_POOL_EPILOGUE): Likewise.
18011 (GTY): Likewise.
18012 * config/aarch64/cortex-a57-fma-steering.cc: Likewise.
18013 * config/aarch64/driver-aarch64.cc (contains_core_p): Likewise.
18014 * config/aarch64/t-aarch64: Likewise.
18015 * config/aarch64/x-aarch64: Likewise.
18016 * config/aarch64/x-darwin: Likewise.
18017 * config/alpha/alpha-protos.h: Likewise.
18018 * config/alpha/alpha.cc (alpha_scalar_mode_supported_p): Likewise.
18019 * config/alpha/alpha.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
18020 (enum reg_class): Likewise.
18021 * config/alpha/alpha.md: Likewise.
18022 * config/alpha/driver-alpha.cc (AMASK_LOCKPFTCHOK): Likewise.
18023 * config/alpha/x-alpha: Likewise.
18024 * config/arc/arc-protos.h (arc_eh_uses): Likewise.
18025 * config/arc/arc.cc (ARC_OPT): Likewise.
18026 (arc_ccfsm_advance): Likewise.
18027 (arc_arg_partial_bytes): Likewise.
18028 (conditionalize_nonjump): Likewise.
18029 * config/arc/arc.md: Likewise.
18030 * config/arc/builtins.def: Likewise.
18031 * config/arc/t-arc: Likewise.
18032 * config/arm/arm-c.cc (arm_resolve_overloaded_builtin): Likewise.
18033 (arm_pragma_target_parse): Likewise.
18034 * config/arm/arm-protos.h (save_restore_target_globals): Likewise.
18035 (arm_cpu_cpp_builtins): Likewise.
18036 * config/arm/arm.cc (vfp3_const_double_index): Likewise.
18037 (shift_op): Likewise.
18038 (thumb2_final_prescan_insn): Likewise.
18039 (arm_final_prescan_insn): Likewise.
18040 (arm_asm_output_labelref): Likewise.
18041 (arm_small_register_classes_for_mode_p): Likewise.
18042 * config/arm/arm.h: Likewise.
18043 * config/arm/arm.md: Likewise.
18044 * config/arm/driver-arm.cc: Likewise.
18045 * config/arm/symbian.h: Likewise.
18046 * config/arm/t-arm: Likewise.
18047 * config/arm/thumb1.md: Likewise.
18048 * config/arm/x-arm: Likewise.
18049 * config/avr/avr-c.cc (avr_register_target_pragmas): Likewise.
18050 * config/avr/avr-fixed.md: Likewise.
18051 * config/avr/avr-log.cc (avr_log_vadump): Likewise.
18052 * config/avr/avr-mcus.def: Likewise.
18053 * config/avr/avr-modes.def (FRACTIONAL_INT_MODE): Likewise.
18054 * config/avr/avr-passes.def (INSERT_PASS_BEFORE): Likewise.
18055 * config/avr/avr-protos.h (make_avr_pass_casesi): Likewise.
18056 * config/avr/avr.cc (avr_option_override): Likewise.
18057 (avr_build_builtin_va_list): Likewise.
18058 (avr_mode_dependent_address_p): Likewise.
18059 (avr_function_arg_advance): Likewise.
18060 (avr_asm_output_aligned_decl_common): Likewise.
18061 * config/avr/avr.h (RETURN_ADDR_RTX): Likewise.
18062 (SUPPORTS_INIT_PRIORITY): Likewise.
18063 * config/avr/avr.md: Likewise.
18064 * config/avr/builtins.def: Likewise.
18065 * config/avr/gen-avr-mmcu-specs.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
18066 * config/avr/gen-avr-mmcu-texi.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
18067 (main): Likewise.
18068 * config/avr/t-avr: Likewise.
18069 * config/bfin/bfin.cc (frame_related_constant_load): Likewise.
18070 * config/bpf/bpf-protos.h (GCC_BPF_PROTOS_H): Likewise.
18071 * config/bpf/bpf.h (enum reg_class): Likewise.
18072 * config/bpf/t-bpf: Likewise.
18073 * config/c6x/c6x-protos.h (GCC_C6X_PROTOS_H): Likewise.
18074 * config/cr16/cr16-protos.h: Likewise.
18075 * config/cris/cris.cc (cris_address_cost): Likewise.
18076 (cris_side_effect_mode_ok): Likewise.
18077 (cris_init_machine_status): Likewise.
18078 (cris_emit_movem_store): Likewise.
18079 * config/cris/cris.h (INDEX_REG_CLASS): Likewise.
18080 (enum reg_class): Likewise.
18081 (struct cum_args): Likewise.
18082 * config/cris/cris.opt: Likewise.
18083 * config/cris/sync.md: Likewise.
18084 * config/csky/csky.cc (csky_expand_prologue): Likewise.
18085 * config/darwin-c.cc: Likewise.
18086 * config/darwin-f.cc: Likewise.
18087 * config/darwin-sections.def (zobj_const_section): Likewise.
18088 * config/darwin.cc (output_objc_section_asm_op): Likewise.
18089 (fprintf): Likewise.
18090 * config/darwin.h (GTY): Likewise.
18091 * config/elfos.h: Likewise.
18092 * config/epiphany/epiphany-sched.md: Likewise.
18093 * config/epiphany/epiphany.cc (epiphany_function_value): Likewise.
18094 * config/epiphany/epiphany.h (GTY): Likewise.
18095 (NO_FUNCTION_CSE): Likewise.
18096 * config/epiphany/mode-switch-use.cc: Likewise.
18097 * config/epiphany/predicates.md: Likewise.
18098 * config/epiphany/t-epiphany: Likewise.
18099 * config/fr30/fr30-protos.h: Likewise.
18100 * config/frv/frv-protos.h: Likewise.
18101 * config/frv/frv.cc (TLS_BIAS): Likewise.
18102 * config/frv/frv.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
18103 * config/ft32/ft32-protos.h: Likewise.
18104 * config/gcn/gcn-hsa.h (ASM_APP_OFF): Likewise.
18105 * config/gcn/gcn.cc (gcn_init_libfuncs): Likewise.
18106 * config/gcn/mkoffload.cc (copy_early_debug_info): Likewise.
18107 * config/gcn/t-gcn-hsa: Likewise.
18108 * config/gcn/t-omp-device: Likewise.
18109 * config/h8300/h8300-protos.h (GCC_H8300_PROTOS_H): Likewise.
18110 (same_cmp_following_p): Likewise.
18111 * config/h8300/h8300.cc (F): Likewise.
18112 * config/h8300/h8300.h (struct cum_arg): Likewise.
18113 (BRANCH_COST): Likewise.
18114 * config/i386/cygming.h (DEFAULT_PCC_STRUCT_RETURN): Likewise.
18115 * config/i386/djgpp.h (TARGET_ASM_LTO_END): Likewise.
18116 * config/i386/dragonfly.h (NO_PROFILE_COUNTERS): Likewise.
18117 * config/i386/driver-i386.cc (detect_caches_intel): Likewise.
18118 * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise.
18119 * config/i386/i386-c.cc (ix86_target_macros): Likewise.
18120 * config/i386/i386-expand.cc (get_mode_wider_vector): Likewise.
18121 * config/i386/i386-options.cc (ix86_set_func_type): Likewise.
18122 * config/i386/i386-protos.h (ix86_extract_perm_from_pool_constant): Likewise.
18123 (ix86_register_pragmas): Likewise.
18124 (ix86_d_has_stdcall_convention): Likewise.
18125 (i386_pe_seh_init_sections): Likewise.
18126 * config/i386/i386.cc (ix86_function_arg_regno_p): Likewise.
18127 (ix86_function_value_regno_p): Likewise.
18128 (ix86_compute_frame_layout): Likewise.
18129 (legitimize_pe_coff_symbol): Likewise.
18130 (output_pic_addr_const): Likewise.
18131 * config/i386/i386.h (defined): Likewise.
18132 (host_detect_local_cpu): Likewise.
18133 (CONSTANT_ADDRESS_P): Likewise.
18134 (DEFAULT_LARGE_SECTION_THRESHOLD): Likewise.
18135 (struct machine_frame_state): Likewise.
18136 * config/i386/i386.md: Likewise.
18137 * config/i386/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
18138 * config/i386/mmx.md: Likewise.
18139 * config/i386/sse.md: Likewise.
18140 * config/i386/t-cygming: Likewise.
18141 * config/i386/t-djgpp: Likewise.
18142 * config/i386/t-gnu-property: Likewise.
18143 * config/i386/t-i386: Likewise.
18144 * config/i386/t-intelmic: Likewise.
18145 * config/i386/t-omp-device: Likewise.
18146 * config/i386/winnt-cxx.cc (i386_pe_type_dllimport_p): Likewise.
18147 (i386_pe_adjust_class_at_definition): Likewise.
18148 * config/i386/winnt.cc (gen_stdcall_or_fastcall_suffix): Likewise.
18149 (i386_pe_mangle_decl_assembler_name): Likewise.
18150 (i386_pe_encode_section_info): Likewise.
18151 * config/i386/x-cygwin: Likewise.
18152 * config/i386/x-darwin: Likewise.
18153 * config/i386/x-i386: Likewise.
18154 * config/i386/x-mingw32: Likewise.
18155 * config/i386/x86-tune-sched-core.cc: Likewise.
18156 * config/i386/x86-tune.def: Likewise.
18157 * config/i386/xm-djgpp.h (STANDARD_STARTFILE_PREFIX_1): Likewise.
18158 * config/ia64/freebsd.h: Likewise.
18159 * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Likewise.
18160 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Likewise.
18161 * config/ia64/ia64.cc (ia64_function_value_regno_p): Likewise.
18162 (ia64_secondary_reload_class): Likewise.
18163 (bundling): Likewise.
18164 * config/ia64/ia64.h: Likewise.
18165 * config/ia64/ia64.md: Likewise.
18166 * config/ia64/predicates.md: Likewise.
18167 * config/ia64/sysv4.h: Likewise.
18168 * config/ia64/t-ia64: Likewise.
18169 * config/iq2000/iq2000.h (FUNCTION_MODE): Likewise.
18170 * config/iq2000/iq2000.md: Likewise.
18171 * config/linux.h (TARGET_HAS_BIONIC): Likewise.
18172 (if): Likewise.
18173 * config/m32c/m32c.cc (m32c_function_needs_enter): Likewise.
18174 * config/m32c/m32c.h (MAX_REGS_PER_ADDRESS): Likewise.
18175 * config/m32c/t-m32c: Likewise.
18176 * config/m32r/m32r-protos.h: Likewise.
18177 * config/m32r/m32r.cc (m32r_print_operand): Likewise.
18178 * config/m32r/m32r.h: Likewise.
18179 * config/m32r/m32r.md: Likewise.
18180 * config/m68k/m68k-isas.def: Likewise.
18181 * config/m68k/m68k-microarchs.def: Likewise.
18182 * config/m68k/m68k-protos.h (strict_low_part_peephole_ok): Likewise.
18183 (m68k_epilogue_uses): Likewise.
18184 * config/m68k/m68k.cc (m68k_call_tls_get_addr): Likewise.
18185 (m68k_sched_adjust_cost): Likewise.
18186 (m68k_sched_md_init): Likewise.
18187 * config/m68k/m68k.h (__transfer_from_trampoline): Likewise.
18188 (enum m68k_function_kind): Likewise.
18189 * config/m68k/m68k.md: Likewise.
18190 * config/m68k/m68kemb.h: Likewise.
18191 * config/m68k/uclinux.h (ENDFILE_SPEC): Likewise.
18192 * config/mcore/mcore-protos.h: Likewise.
18193 * config/mcore/mcore.cc (mcore_expand_insv): Likewise.
18194 (mcore_expand_prolog): Likewise.
18195 * config/mcore/mcore.h (TARGET_MCORE): Likewise.
18196 * config/mcore/mcore.md: Likewise.
18197 * config/microblaze/microblaze-protos.h: Likewise.
18198 * config/microblaze/microblaze.cc (microblaze_legitimate_pic_operand): Likewise.
18199 (microblaze_function_prologue): Likewise.
18200 (microblaze_function_epilogue): Likewise.
18201 (microblaze_select_section): Likewise.
18202 (microblaze_asm_output_mi_thunk): Likewise.
18203 (microblaze_eh_return): Likewise.
18204 * config/microblaze/microblaze.h: Likewise.
18205 * config/microblaze/microblaze.md: Likewise.
18206 * config/microblaze/t-microblaze: Likewise.
18207 * config/mips/driver-native.cc: Likewise.
18208 * config/mips/loongson2ef.md: Likewise.
18209 * config/mips/mips-protos.h (mips_expand_vec_cmp_expr): Likewise.
18210 * config/mips/mips.cc (mips_rtx_costs): Likewise.
18211 (mips_output_filename): Likewise.
18212 (mips_output_function_prologue): Likewise.
18213 (mips_output_function_epilogue): Likewise.
18214 (mips_output_mi_thunk): Likewise.
18215 * config/mips/mips.h: Likewise.
18216 * config/mips/mips.md: Likewise.
18217 * config/mips/t-mips: Likewise.
18218 * config/mips/x-native: Likewise.
18219 * config/mmix/mmix-protos.h: Likewise.
18220 * config/mmix/mmix.cc (mmix_option_override): Likewise.
18221 (mmix_dbx_register_number): Likewise.
18222 (mmix_expand_prologue): Likewise.
18223 * config/mmix/mmix.h: Likewise.
18224 * config/mmix/mmix.md: Likewise.
18225 * config/mmix/predicates.md: Likewise.
18226 * config/mn10300/mn10300.cc (mn10300_symbolic_operand): Likewise.
18227 (mn10300_legitimate_pic_operand_p): Likewise.
18228 * config/mn10300/mn10300.h (enum reg_class): Likewise.
18229 (NO_FUNCTION_CSE): Likewise.
18230 * config/moxie/moxie-protos.h: Likewise.
18231 * config/moxie/uclinux.h (TARGET_LIBC_HAS_FUNCTION): Likewise.
18232 * config/msp430/msp430-devices.cc (extract_devices_dir_from_exec_prefix): Likewise.
18233 * config/msp430/msp430.cc (msp430_gimplify_va_arg_expr): Likewise.
18234 (msp430_incoming_return_addr_rtx): Likewise.
18235 * config/msp430/msp430.h (msp430_get_linker_devices_include_path): Likewise.
18236 * config/msp430/t-msp430: Likewise.
18237 * config/nds32/nds32-cost.cc (nds32_rtx_costs_speed_prefer): Likewise.
18238 (nds32_rtx_costs_size_prefer): Likewise.
18239 (nds32_init_rtx_costs): Likewise.
18240 * config/nds32/nds32-doubleword.md: Likewise.
18241 * config/nds32/nds32.cc (nds32_memory_move_cost): Likewise.
18242 (nds32_builtin_decl): Likewise.
18243 * config/nds32/nds32.h (enum nds32_16bit_address_type): Likewise.
18244 (enum nds32_isr_nested_type): Likewise.
18245 (enum reg_class): Likewise.
18246 * config/nds32/predicates.md: Likewise.
18247 * config/nds32/t-nds32: Likewise.
18248 * config/nios2/nios2.cc (nios2_pragma_target_parse): Likewise.
18249 * config/nvptx/nvptx-protos.h: Likewise.
18250 * config/nvptx/nvptx.cc (nvptx_goacc_expand_var_decl): Likewise.
18251 * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Likewise.
18252 * config/nvptx/t-nvptx: Likewise.
18253 * config/nvptx/t-omp-device: Likewise.
18254 * config/pa/elf.h: Likewise.
18255 * config/pa/pa-linux.h (GLOBAL_ASM_OP): Likewise.
18256 * config/pa/pa-netbsd.h (GLOBAL_ASM_OP): Likewise.
18257 * config/pa/pa-openbsd.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
18258 * config/pa/pa-protos.h (pa_eh_return_handler_rtx): Likewise.
18259 (pa_legitimize_reload_address): Likewise.
18260 (pa_can_use_return_insn): Likewise.
18261 * config/pa/pa.cc (mem_shadd_or_shadd_rtx_p): Likewise.
18262 (som_output_text_section_asm_op): Likewise.
18263 * config/pa/pa.h (PROFILE_BEFORE_PROLOGUE): Likewise.
18264 * config/pa/pa.md: Likewise.
18265 * config/pa/som.h: Likewise.
18266 * config/pa/t-pa: Likewise.
18267 * config/pdp11/pdp11.cc (decode_pdp11_d): Likewise.
18268 * config/pdp11/pdp11.h: Likewise.
18269 * config/pdp11/pdp11.md: Likewise.
18270 * config/pdp11/t-pdp11: Likewise.
18271 * config/pru/pru.md: Likewise.
18272 * config/pru/t-pru: Likewise.
18273 * config/riscv/riscv-protos.h (NUM_SYMBOL_TYPES): Likewise.
18274 (riscv_gpr_save_operation_p): Likewise.
18275 (riscv_d_register_target_info): Likewise.
18276 (riscv_init_builtins): Likewise.
18277 * config/riscv/riscv.cc (riscv_output_mi_thunk): Likewise.
18278 * config/riscv/riscv.h (CSW_MAX_OFFSET): Likewise.
18279 * config/riscv/t-riscv: Likewise.
18280 * config/rl78/rl78.cc (rl78_asm_ctor_dtor): Likewise.
18281 * config/rl78/t-rl78: Likewise.
18282 * config/rs6000/aix.h: Likewise.
18283 * config/rs6000/aix71.h (ASM_SPEC_COMMON): Likewise.
18284 * config/rs6000/aix72.h (ASM_SPEC_COMMON): Likewise.
18285 * config/rs6000/aix73.h (ASM_SPEC_COMMON): Likewise.
18286 * config/rs6000/darwin.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
18287 * config/rs6000/driver-rs6000.cc: Likewise.
18288 * config/rs6000/freebsd.h: Likewise.
18289 * config/rs6000/freebsd64.h: Likewise.
18290 * config/rs6000/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
18291 * config/rs6000/rbtree.cc: Likewise.
18292 * config/rs6000/rbtree.h: Likewise.
18293 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Likewise.
18294 * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Likewise.
18295 (rs6000_expand_builtin): Likewise.
18296 (rs6000_init_builtins): Likewise.
18297 * config/rs6000/rs6000-cpus.def: Likewise.
18298 * config/rs6000/rs6000-gen-builtins.cc (write_init_ovld_table): Likewise.
18299 * config/rs6000/rs6000-internal.h (ALTIVEC_REG_BIT): Likewise.
18300 (quad_address_offset_p): Likewise.
18301 * config/rs6000/rs6000-logue.cc (interesting_frame_related_regno): Likewise.
18302 (rs6000_emit_epilogue): Likewise.
18303 * config/rs6000/rs6000-overload.def: Likewise.
18304 * config/rs6000/rs6000-p8swap.cc: Likewise.
18305 * config/rs6000/rs6000-protos.h (GCC_RS6000_PROTOS_H): Likewise.
18306 (rs6000_const_f32_to_i32): Likewise.
18307 * config/rs6000/rs6000.cc (legitimate_lo_sum_address_p): Likewise.
18308 (rs6000_debug_legitimize_address): Likewise.
18309 (rs6000_mode_dependent_address): Likewise.
18310 (rs6000_adjust_priority): Likewise.
18311 (rs6000_c_mode_for_suffix): Likewise.
18312 * config/rs6000/rs6000.h (defined): Likewise.
18313 (LONG_DOUBLE_TYPE_SIZE): Likewise.
18314 * config/rs6000/rs6000.md: Likewise.
18315 * config/rs6000/sysv4.h: Likewise.
18316 * config/rs6000/t-linux: Likewise.
18317 * config/rs6000/t-linux64: Likewise.
18318 * config/rs6000/t-rs6000: Likewise.
18319 * config/rs6000/x-darwin: Likewise.
18320 * config/rs6000/x-darwin64: Likewise.
18321 * config/rs6000/x-rs6000: Likewise.
18322 * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Likewise.
18323 * config/rx/rx.cc (rx_expand_builtin): Likewise.
18324 * config/s390/constraints.md: Likewise.
18325 * config/s390/driver-native.cc: Likewise.
18326 * config/s390/htmxlintrin.h: Likewise.
18327 * config/s390/s390-builtins.def (B_DEF): Likewise.
18328 (OB_DEF_VAR): Likewise.
18329 * config/s390/s390-builtins.h: Likewise.
18330 * config/s390/s390-c.cc: Likewise.
18331 * config/s390/s390-opts.h: Likewise.
18332 * config/s390/s390-protos.h (s390_check_symref_alignment): Likewise.
18333 (s390_register_target_pragmas): Likewise.
18334 * config/s390/s390.cc (s390_init_builtins): Likewise.
18335 (s390_expand_plus_operand): Likewise.
18336 (s390_expand_atomic): Likewise.
18337 (s390_valid_target_attribute_inner_p): Likewise.
18338 * config/s390/s390.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
18339 * config/s390/s390.md: Likewise.
18340 * config/s390/t-s390: Likewise.
18341 * config/s390/vx-builtins.md: Likewise.
18342 * config/s390/x-native: Likewise.
18343 * config/sh/divtab-sh4-300.cc (main): Likewise.
18344 * config/sh/divtab-sh4.cc (main): Likewise.
18345 * config/sh/divtab.cc (main): Likewise.
18346 * config/sh/elf.h: Likewise.
18347 * config/sh/sh-protos.h (sh_fsca_int2sf): Likewise.
18348 * config/sh/sh.cc (SYMBOL_FLAG_FUNCVEC_FUNCTION): Likewise.
18349 (sh_struct_value_rtx): Likewise.
18350 (sh_remove_reg_dead_or_unused_notes): Likewise.
18351 * config/sh/sh.h (MIN_UNITS_PER_WORD): Likewise.
18352 * config/sh/t-sh: Likewise.
18353 * config/sol2-protos.h (solaris_override_options): Likewise.
18354 * config/sol2.h: Likewise.
18355 * config/sparc/driver-sparc.cc: Likewise.
18356 * config/sparc/freebsd.h: Likewise.
18357 * config/sparc/sparc-protos.h (make_pass_work_around_errata): Likewise.
18358 * config/sparc/sparc.cc (sparc_output_mi_thunk): Likewise.
18359 (sparc_asan_shadow_offset): Likewise.
18360 * config/sparc/sparc.h: Likewise.
18361 * config/sparc/sparc.md: Likewise.
18362 * config/sparc/t-sparc: Likewise.
18363 * config/sparc/x-sparc: Likewise.
18364 * config/stormy16/stormy16.cc (xstormy16_mode_dependent_address_p): Likewise.
18365 * config/t-darwin: Likewise.
18366 * config/t-dragonfly: Likewise.
18367 * config/t-freebsd: Likewise.
18368 * config/t-glibc: Likewise.
18369 * config/t-linux: Likewise.
18370 * config/t-netbsd: Likewise.
18371 * config/t-openbsd: Likewise.
18372 * config/t-pnt16-warn: Likewise.
18373 * config/t-sol2: Likewise.
18374 * config/t-vxworks: Likewise.
18375 * config/t-winnt: Likewise.
18376 * config/tilegx/t-tilegx: Likewise.
18377 * config/tilegx/tilegx-c.cc: Likewise.
18378 * config/tilegx/tilegx-protos.h (tilegx_function_profiler): Likewise.
18379 * config/tilegx/tilegx.md: Likewise.
18380 * config/tilepro/t-tilepro: Likewise.
18381 * config/tilepro/tilepro-c.cc: Likewise.
18382 * config/v850/t-v850: Likewise.
18383 * config/v850/v850-protos.h: Likewise.
18384 * config/v850/v850.cc (F): Likewise.
18385 * config/v850/v850.h (enum reg_class): Likewise.
18386 (SLOW_BYTE_ACCESS): Likewise.
18387 * config/vax/vax.cc (vax_mode_dependent_address_p): Likewise.
18388 * config/vax/vax.h (enum reg_class): Likewise.
18389 * config/vax/vax.md: Likewise.
18390 * config/visium/visium.cc (visium_legitimate_address_p): Likewise.
18391 * config/visium/visium.h: Likewise.
18392 * config/vms/t-vms: Likewise.
18393 * config/vms/vms-crtlmap.map: Likewise.
18394 * config/vms/vms-protos.h (vms_c_get_vms_ver): Likewise.
18395 * config/vx-common.h: Likewise.
18396 * config/x-darwin: Likewise.
18397 * config/x-hpux: Likewise.
18398 * config/x-linux: Likewise.
18399 * config/x-netbsd: Likewise.
18400 * config/x-openbsd: Likewise.
18401 * config/x-solaris: Likewise.
18402 * config/xtensa/xtensa-protos.h (xtensa_mem_offset): Likewise.
18403 * config/xtensa/xtensa.cc (xtensa_option_override): Likewise.
18404 * config/xtensa/xtensa.h: Likewise.
18405 * configure.ac: Likewise.
18406 * context.cc: Likewise.
18407 * convert.h: Likewise.
18408 * coretypes.h: Likewise.
18409 * coverage.cc: Likewise.
18410 * coverage.h: Likewise.
18411 * cppdefault.h (struct default_include): Likewise.
18412 * cprop.cc (local_cprop_pass): Likewise.
18413 (one_cprop_pass): Likewise.
18414 * cse.cc (hash_rtx_cb): Likewise.
18415 (fold_rtx): Likewise.
18416 * ctfc.h (ctfc_get_num_vlen_bytes): Likewise.
18417 * data-streamer.h (bp_unpack_var_len_int): Likewise.
18418 (streamer_write_widest_int): Likewise.
18419 * dbgcnt.def: Likewise.
18420 * dbxout.cc (dbxout_early_global_decl): Likewise.
18421 (dbxout_common_check): Likewise.
18422 * dbxout.h: Likewise.
18423 * debug.h (struct gcc_debug_hooks): Likewise.
18424 (dump_go_spec_init): Likewise.
18425 * df-core.cc: Likewise.
18426 * df-scan.cc (df_insn_info_delete): Likewise.
18427 (df_insn_delete): Likewise.
18428 * df.h (debug_df_chain): Likewise.
18429 (can_move_insns_across): Likewise.
18430 * dfp.cc (decimal_from_binary): Likewise.
18431 * diagnostic-color.cc: Likewise.
18432 * diagnostic-event-id.h: Likewise.
18433 * diagnostic-show-locus.cc (test_one_liner_labels): Likewise.
18434 * diagnostic.cc (bt_callback): Likewise.
18435 (num_digits): Likewise.
18436 * doc/avr-mmcu.texi: Likewise.
18437 * doc/cfg.texi: Likewise.
18438 * doc/contrib.texi: Likewise.
18439 * doc/cppinternals.texi: Likewise.
18440 * doc/extend.texi: Likewise.
18441 * doc/generic.texi: Likewise.
18442 * doc/gimple.texi: Likewise.
18443 * doc/gty.texi: Likewise.
18444 * doc/invoke.texi: Likewise.
18445 * doc/loop.texi: Likewise.
18446 * doc/lto.texi: Likewise.
18447 * doc/match-and-simplify.texi: Likewise.
18448 * doc/md.texi: Likewise.
18449 * doc/optinfo.texi: Likewise.
18450 * doc/options.texi: Likewise.
18451 * doc/passes.texi: Likewise.
18452 * doc/plugins.texi: Likewise.
18453 * doc/rtl.texi: Likewise.
18454 * doc/sourcebuild.texi: Likewise.
18455 * doc/tm.texi: Likewise.
18456 * doc/tm.texi.in: Likewise.
18457 * doc/tree-ssa.texi: Likewise.
18458 * dojump.cc (do_jump): Likewise.
18459 * dojump.h: Likewise.
18460 * dumpfile.cc (test_impl_location): Likewise.
18461 (test_capture_of_dump_calls): Likewise.
18462 * dumpfile.h (enum dump_kind): Likewise.
18463 (class dump_location_t): Likewise.
18464 (dump_enabled_p): Likewise.
18465 (enable_rtl_dump_file): Likewise.
18466 (dump_combine_total_stats): Likewise.
18467 * dwarf2asm.cc (dw2_asm_output_delta_uleb128): Likewise.
18468 * dwarf2ctf.h (ctf_debug_finish): Likewise.
18469 * dwarf2out.cc (dwarf2out_begin_prologue): Likewise.
18470 (struct loc_descr_context): Likewise.
18471 (rtl_for_decl_location): Likewise.
18472 (gen_subprogram_die): Likewise.
18473 (gen_label_die): Likewise.
18474 (is_trivial_indirect_ref): Likewise.
18475 (dwarf2out_late_global_decl): Likewise.
18476 (dwarf_file_hasher::hash): Likewise.
18477 (dwarf2out_end_source_file): Likewise.
18478 (dwarf2out_define): Likewise.
18479 (dwarf2out_early_finish): Likewise.
18480 * dwarf2out.h (struct dw_fde_node): Likewise.
18481 (struct dw_discr_list_node): Likewise.
18482 (output_loc_sequence_raw): Likewise.
18483 * emit-rtl.cc (gen_raw_REG): Likewise.
18484 (maybe_set_max_label_num): Likewise.
18485 * emit-rtl.h (struct rtl_data): Likewise.
18486 * errors.cc (internal_error): Likewise.
18487 (trim_filename): Likewise.
18488 * et-forest.cc: Likewise.
18489 * except.cc (init_eh_for_function): Likewise.
18490 * explow.cc (promote_ssa_mode): Likewise.
18491 (get_dynamic_stack_size): Likewise.
18492 * explow.h: Likewise.
18493 * expmed.h: Likewise.
18494 * expr.cc (safe_from_p): Likewise.
18495 (expand_expr_real_2): Likewise.
18496 (expand_expr_real_1): Likewise.
18497 * file-prefix-map.cc (remap_filename): Likewise.
18498 * final.cc (app_enable): Likewise.
18499 (make_pass_compute_alignments): Likewise.
18500 (final_scan_insn_1): Likewise.
18501 (final_scan_insn): Likewise.
18502 * fixed-value.h (fixed_from_string): Likewise.
18503 * flag-types.h (NO_DEBUG): Likewise.
18504 (DWARF2_DEBUG): Likewise.
18505 (VMS_DEBUG): Likewise.
18506 (BTF_DEBUG): Likewise.
18507 (enum ctf_debug_info_levels): Likewise.
18508 * fold-const.cc (const_binop): Likewise.
18509 (fold_binary_loc): Likewise.
18510 (fold_checksum_tree): Likewise.
18511 * fp-test.cc: Likewise.
18512 * function.cc (expand_function_end): Likewise.
18513 * function.h (struct function): Likewise.
18514 * fwprop.cc (should_replace_address): Likewise.
18515 * gcc-main.cc: Likewise.
18516 * gcc-rich-location.h (class gcc_rich_location): Likewise.
18517 * gcc-symtab.h: Likewise.
18518 * gcc.cc (MIN_FATAL_STATUS): Likewise.
18519 (driver_handle_option): Likewise.
18520 (quote_spec_arg): Likewise.
18521 (driver::finalize): Likewise.
18522 * gcc.h (set_input): Likewise.
18523 * gcov-dump.cc: Likewise.
18524 * gcov.cc (solve_flow_graph): Likewise.
18525 * gcse-common.cc: Likewise.
18526 * gcse.cc (make_pass_rtl_hoist): Likewise.
18527 * genattr-common.cc: Likewise.
18528 * genattrtab.cc (min_fn): Likewise.
18529 (write_const_num_delay_slots): Likewise.
18530 * genautomata.cc: Likewise.
18531 * genconditions.cc (write_one_condition): Likewise.
18532 * genconstants.cc: Likewise.
18533 * genemit.cc (gen_exp): Likewise.
18534 * generic-match-head.cc: Likewise.
18535 * genextract.cc: Likewise.
18536 * gengenrtl.cc (always_void_p): Likewise.
18537 * gengtype-parse.cc (gtymarker_opt): Likewise.
18538 * gengtype-state.cc (state_writer::state_writer): Likewise.
18539 (write_state_trailer): Likewise.
18540 (equals_type_number): Likewise.
18541 (read_state): Likewise.
18542 * gengtype.cc (open_base_files): Likewise.
18543 (struct file_rule_st): Likewise.
18544 (header_dot_h_frul): Likewise.
18545 * gengtype.h: Likewise.
18546 * genmatch.cc (main): Likewise.
18547 * genmddeps.cc: Likewise.
18548 * genmodes.cc (emit_mode_inner): Likewise.
18549 (emit_mode_unit_size): Likewise.
18550 * genpeep.cc (gen_peephole): Likewise.
18551 * genpreds.cc (write_tm_preds_h): Likewise.
18552 * genrecog.cc (validate_pattern): Likewise.
18553 (write_header): Likewise.
18554 (main): Likewise.
18555 * gensupport.cc (change_subst_attribute): Likewise.
18556 (traverse_c_tests): Likewise.
18557 (add_predicate): Likewise.
18558 (init_predicate_table): Likewise.
18559 * gensupport.h (struct optab_pattern): Likewise.
18560 (get_num_insn_codes): Likewise.
18561 (maybe_eval_c_test): Likewise.
18562 (struct pred_data): Likewise.
18563 * ggc-internal.h: Likewise.
18564 * gimple-fold.cc (maybe_fold_reference): Likewise.
18565 (get_range_strlen_tree): Likewise.
18566 * gimple-fold.h (gimple_stmt_integer_valued_real_p): Likewise.
18567 * gimple-low.cc: Likewise.
18568 * gimple-match-head.cc (directly_supported_p): Likewise.
18569 * gimple-pretty-print.h: Likewise.
18570 * gimple-ssa-sprintf.cc (format_percent): Likewise.
18571 (adjust_range_for_overflow): Likewise.
18572 * gimple-streamer.h: Likewise.
18573 * gimple.h (struct GTY): Likewise.
18574 (is_gimple_resx): Likewise.
18575 * gimplify.cc (gimplify_expr): Likewise.
18576 (gimplify_init_constructor): Likewise.
18577 (omp_construct_selector_matches): Likewise.
18578 (gimplify_omp_target_update): Likewise.
18579 (gimplify_omp_ordered): Likewise.
18580 (gimplify_va_arg_expr): Likewise.
18581 * graphite-isl-ast-to-gimple.cc (should_copy_to_new_region): Likewise.
18582 * haifa-sched.cc (increase_insn_priority): Likewise.
18583 (try_ready): Likewise.
18584 (sched_create_recovery_edges): Likewise.
18585 * ifcvt.cc (find_if_case_1): Likewise.
18586 (find_if_case_2): Likewise.
18587 * inchash.h: Likewise.
18588 * incpath.cc (add_env_var_paths): Likewise.
18589 * input.cc (dump_location_info): Likewise.
18590 (assert_loceq): Likewise.
18591 (test_lexer_string_locations_concatenation_1): Likewise.
18592 (test_lexer_string_locations_concatenation_2): Likewise.
18593 (test_lexer_string_locations_concatenation_3): Likewise.
18594 * input.h (BUILTINS_LOCATION): Likewise.
18595 (class string_concat_db): Likewise.
18596 * internal-fn.cc (expand_MUL_OVERFLOW): Likewise.
18597 (expand_LOOP_VECTORIZED): Likewise.
18598 * ipa-cp.cc (make_pass_ipa_cp): Likewise.
18599 * ipa-fnsummary.cc (remap_freqcounting_preds_after_dup): Likewise.
18600 (ipa_fn_summary_t::duplicate): Likewise.
18601 (make_pass_ipa_fn_summary): Likewise.
18602 * ipa-fnsummary.h (enum ipa_hints_vals): Likewise.
18603 * ipa-free-lang-data.cc (fld_simplified_type): Likewise.
18604 (free_lang_data_in_decl): Likewise.
18605 * ipa-inline.cc (compute_inlined_call_time): Likewise.
18606 (inline_always_inline_functions): Likewise.
18607 * ipa-inline.h (free_growth_caches): Likewise.
18608 (inline_account_function_p): Likewise.
18609 * ipa-modref.cc (modref_access_analysis::analyze_stmt): Likewise.
18610 (modref_eaf_analysis::analyze_ssa_name): Likewise.
18611 * ipa-param-manipulation.cc (ipa_param_body_adjustments::mark_dead_statements): Likewise.
18612 (ipa_param_body_adjustments::remap_with_debug_expressions): Likewise.
18613 * ipa-prop.cc (ipa_set_node_agg_value_chain): Likewise.
18614 * ipa-prop.h (IPA_UNDESCRIBED_USE): Likewise.
18615 (unadjusted_ptr_and_unit_offset): Likewise.
18616 * ipa-reference.cc (make_pass_ipa_reference): Likewise.
18617 * ipa-reference.h (GCC_IPA_REFERENCE_H): Likewise.
18618 * ipa-split.cc (consider_split): Likewise.
18619 * ipa-sra.cc (isra_read_node_info): Likewise.
18620 * ipa-utils.h (struct ipa_dfs_info): Likewise.
18621 (recursive_call_p): Likewise.
18622 (ipa_make_function_pure): Likewise.
18623 * ira-build.cc (ira_create_allocno): Likewise.
18624 (ira_flattening): Likewise.
18625 * ira-color.cc (do_coloring): Likewise.
18626 (update_curr_costs): Likewise.
18627 * ira-conflicts.cc (process_regs_for_copy): Likewise.
18628 * ira-int.h (struct ira_emit_data): Likewise.
18629 (ira_prohibited_mode_move_regs): Likewise.
18630 (ira_get_dup_out_num): Likewise.
18631 (ira_destroy): Likewise.
18632 (ira_tune_allocno_costs): Likewise.
18633 (ira_implicitly_set_insn_hard_regs): Likewise.
18634 (ira_build_conflicts): Likewise.
18635 (ira_color): Likewise.
18636 * ira-lives.cc (process_bb_node_lives): Likewise.
18637 * ira.cc (class ira_spilled_reg_stack_slot): Likewise.
18638 (setup_uniform_class_p): Likewise.
18639 (def_dominates_uses): Likewise.
18640 * ira.h (ira_nullify_asm_goto): Likewise.
18641 * langhooks.cc (lhd_post_options): Likewise.
18642 * langhooks.h (class substring_loc): Likewise.
18643 (struct lang_hooks_for_tree_inlining): Likewise.
18644 (struct lang_hooks_for_types): Likewise.
18645 (struct lang_hooks): Likewise.
18646 * libfuncs.h (synchronize_libfunc): Likewise.
18647 * loop-doloop.cc (doloop_condition_get): Likewise.
18648 * loop-init.cc (fix_loop_structure): Likewise.
18649 * loop-invariant.cc: Likewise.
18650 * lower-subreg.h: Likewise.
18651 * lra-constraints.cc (curr_insn_transform): Likewise.
18652 * lra-int.h (struct lra_insn_reg): Likewise.
18653 (lra_undo_inheritance): Likewise.
18654 (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
18655 (lra_split_hard_reg_for): Likewise.
18656 (lra_coalesce): Likewise.
18657 (lra_final_code_change): Likewise.
18658 * lra-spills.cc (lra_final_code_change): Likewise.
18659 * lra.cc (lra_process_new_insns): Likewise.
18660 * lto-compress.h (struct lto_compression_stream): Likewise.
18661 * lto-streamer-out.cc (DFS::DFS_write_tree_body): Likewise.
18662 (write_symbol): Likewise.
18663 * lto-streamer.h (enum LTO_tags): Likewise.
18664 (lto_value_range_error): Likewise.
18665 (lto_append_block): Likewise.
18666 (lto_streamer_hooks_init): Likewise.
18667 (stream_read_tree_ref): Likewise.
18668 (lto_prepare_function_for_streaming): Likewise.
18669 (select_what_to_stream): Likewise.
18670 (omp_lto_input_declare_variant_alt): Likewise.
18671 (cl_optimization_stream_in): Likewise.
18672 * lto-wrapper.cc (append_compiler_options): Likewise.
18673 * machmode.def: Likewise.
18674 * machmode.h (struct int_n_data_t): Likewise.
18675 * main.cc (main): Likewise.
18676 * match.pd: Likewise.
18677 * omp-builtins.def (BUILT_IN_GOMP_CRITICAL_NAME_END): Likewise.
18678 (BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): Likewise.
18679 * omp-expand.cc (expand_omp_atomic_fetch_op): Likewise.
18680 (make_pass_expand_omp_ssa): Likewise.
18681 * omp-low.cc (struct omp_context): Likewise.
18682 (struct omp_taskcopy_context): Likewise.
18683 (lower_omp): Likewise.
18684 * omp-oacc-neuter-broadcast.cc (omp_sese_active_worker_call): Likewise.
18685 (mask_name): Likewise.
18686 (omp_sese_dump_pars): Likewise.
18687 (worker_single_simple): Likewise.
18688 * omp-offload.cc (omp_finish_file): Likewise.
18689 (execute_oacc_loop_designation): Likewise.
18690 * optabs-query.cc (lshift_cheap_p): Likewise.
18691 * optc-gen.awk: Likewise.
18692 * optc-save-gen.awk: Likewise.
18693 * optinfo-emit-json.cc (optrecord_json_writer::optrecord_json_writer): Likewise.
18694 * opts-common.cc: Likewise.
18695 * output.h (app_enable): Likewise.
18696 (output_operand_lossage): Likewise.
18697 (insn_current_reference_address): Likewise.
18698 (get_insn_template): Likewise.
18699 (output_quoted_string): Likewise.
18700 * pass_manager.h (struct register_pass_info): Likewise.
18701 * plugin.cc: Likewise.
18702 * plugin.def (PLUGIN_ANALYZER_INIT): Likewise.
18703 * plugin.h (invoke_plugin_callbacks): Likewise.
18704 * pointer-query.cc (handle_mem_ref): Likewise.
18705 * postreload-gcse.cc (alloc_mem): Likewise.
18706 * predict.h (enum prediction): Likewise.
18707 (add_reg_br_prob_note): Likewise.
18708 * prefix.h: Likewise.
18709 * profile.h (get_working_sets): Likewise.
18710 * read-md.cc: Likewise.
18711 * read-md.h (struct mapping): Likewise.
18712 (class md_reader): Likewise.
18713 (class noop_reader): Likewise.
18714 * read-rtl-function.cc (function_reader::create_function): Likewise.
18715 (function_reader::extra_parsing_for_operand_code_0): Likewise.
18716 * read-rtl.cc (initialize_iterators): Likewise.
18717 * real.cc: Likewise.
18718 * real.h (struct real_value): Likewise.
18719 (format_helper::format_helper): Likewise.
18720 (real_hash): Likewise.
18721 (real_can_shorten_arithmetic): Likewise.
18722 * recog.cc (struct target_recog): Likewise.
18723 (offsettable_nonstrict_memref_p): Likewise.
18724 (constrain_operands): Likewise.
18725 * recog.h (MAX_RECOG_ALTERNATIVES): Likewise.
18726 (which_op_alt): Likewise.
18727 (struct insn_gen_fn): Likewise.
18728 * reg-notes.def (REG_NOTE): Likewise.
18729 * reg-stack.cc: Likewise.
18730 * regs.h (reg_is_parm_p): Likewise.
18731 * regset.h: Likewise.
18732 * reload.cc (push_reload): Likewise.
18733 (find_reloads): Likewise.
18734 (find_reloads_address_1): Likewise.
18735 (find_replacement): Likewise.
18736 (refers_to_regno_for_reload_p): Likewise.
18737 (refers_to_mem_for_reload_p): Likewise.
18738 * reload.h (push_reload): Likewise.
18739 (deallocate_reload_reg): Likewise.
18740 * reload1.cc (emit_input_reload_insns): Likewise.
18741 * reorg.cc (relax_delay_slots): Likewise.
18742 * rtl.def (UNKNOWN): Likewise.
18743 (SEQUENCE): Likewise.
18744 (BARRIER): Likewise.
18745 (ASM_OPERANDS): Likewise.
18746 (EQ_ATTR_ALT): Likewise.
18747 * rtl.h (struct GTY): Likewise.
18748 (LABEL_NAME): Likewise.
18749 (LABEL_ALT_ENTRY_P): Likewise.
18750 (SUBREG_BYTE): Likewise.
18751 (get_stack_check_protect): Likewise.
18752 (dump_rtx_statistics): Likewise.
18753 (unwrap_const_vec_duplicate): Likewise.
18754 (subreg_promoted_mode): Likewise.
18755 (gen_lowpart_common): Likewise.
18756 (operand_subword): Likewise.
18757 (immed_wide_int_const): Likewise.
18758 (decide_function_section): Likewise.
18759 (active_insn_p): Likewise.
18760 (delete_related_insns): Likewise.
18761 (try_split): Likewise.
18762 (val_signbit_known_clear_p): Likewise.
18763 (simplifiable_subregs): Likewise.
18764 (set_insn_deleted): Likewise.
18765 (subreg_get_info): Likewise.
18766 (remove_free_EXPR_LIST_node): Likewise.
18767 (finish_subregs_of_mode): Likewise.
18768 (get_mem_attrs): Likewise.
18769 (lookup_constant_def): Likewise.
18770 (rtx_to_tree_code): Likewise.
18771 (hash_rtx): Likewise.
18772 (condjump_in_parallel_p): Likewise.
18773 (validate_subreg): Likewise.
18774 (make_compound_operation): Likewise.
18775 (schedule_ebbs): Likewise.
18776 (print_inline_rtx): Likewise.
18777 (fixup_args_size_notes): Likewise.
18778 (expand_dec): Likewise.
18779 (prepare_copy_insn): Likewise.
18780 (mark_elimination): Likewise.
18781 (valid_mode_changes_for_regno): Likewise.
18782 (make_debug_expr_from_rtl): Likewise.
18783 (delete_vta_debug_insns): Likewise.
18784 (simplify_using_condition): Likewise.
18785 (set_insn_locations): Likewise.
18786 (fatal_insn_not_found): Likewise.
18787 (word_register_operation_p): Likewise.
18788 * rtlanal.cc (get_call_fndecl): Likewise.
18789 (side_effects_p): Likewise.
18790 (subreg_nregs): Likewise.
18791 (rtx_cost): Likewise.
18792 (canonicalize_condition): Likewise.
18793 * rtlanal.h (rtx_properties::try_to_add_note): Likewise.
18794 * run-rtl-passes.cc (run_rtl_passes): Likewise.
18795 * sanitizer.def (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Likewise.
18796 * sched-deps.cc (add_dependence_1): Likewise.
18797 * sched-ebb.cc (begin_move_insn): Likewise.
18798 (add_deps_for_risky_insns): Likewise.
18799 (advance_target_bb): Likewise.
18800 * sched-int.h (reemit_notes): Likewise.
18801 (struct _haifa_insn_data): Likewise.
18802 (HID): Likewise.
18803 (DEP_CANCELLED): Likewise.
18804 (debug_ds): Likewise.
18805 (number_in_ready): Likewise.
18806 (schedule_ebbs_finish): Likewise.
18807 (find_modifiable_mems): Likewise.
18808 * sched-rgn.cc (debug_rgn_dependencies): Likewise.
18809 * sel-sched-dump.cc (dump_lv_set): Likewise.
18810 * sel-sched-dump.h: Likewise.
18811 * sel-sched-ir.cc (sel_insn_rtx_cost): Likewise.
18812 (setup_id_reg_sets): Likewise.
18813 (has_dependence_p): Likewise.
18814 (sel_num_cfg_preds_gt_1): Likewise.
18815 (bb_ends_ebb_p): Likewise.
18816 * sel-sched-ir.h (struct _list_node): Likewise.
18817 (struct idata_def): Likewise.
18818 (bb_next_bb): Likewise.
18819 * sel-sched.cc (vinsn_writes_one_of_regs_p): Likewise.
18820 (choose_best_pseudo_reg): Likewise.
18821 (verify_target_availability): Likewise.
18822 (can_speculate_dep_p): Likewise.
18823 (sel_rank_for_schedule): Likewise.
18824 * selftest-run-tests.cc (selftest::run_tests): Likewise.
18825 * selftest.h (class auto_fix_quotes): Likewise.
18826 * shrink-wrap.cc (handle_simple_exit): Likewise.
18827 * shrink-wrap.h: Likewise.
18828 * simplify-rtx.cc (simplify_context::simplify_associative_operation): Likewise.
18829 (simplify_context::simplify_gen_vec_select): Likewise.
18830 * spellcheck-tree.h: Likewise.
18831 * spellcheck.h: Likewise.
18832 * statistics.h (struct function): Likewise.
18833 * stmt.cc (conditional_probability): Likewise.
18834 * stmt.h: Likewise.
18835 * stor-layout.h: Likewise.
18836 * streamer-hooks.h: Likewise.
18837 * stringpool.h: Likewise.
18838 * symtab.cc (symbol_table::change_decl_assembler_name): Likewise.
18839 * target.def (HOOK_VECTOR_END): Likewise.
18840 (type.): Likewise.
18841 * target.h (union cumulative_args_t): Likewise.
18842 (by_pieces_ninsns): Likewise.
18843 (class predefined_function_abi): Likewise.
18844 * targhooks.cc (default_translate_mode_attribute): Likewise.
18845 * timevar.def: Likewise.
18846 * timevar.h (class timer): Likewise.
18847 * toplev.h (enable_rtl_dump_file): Likewise.
18848 * trans-mem.cc (collect_bb2reg): Likewise.
18849 * tree-call-cdce.cc (gen_conditions_for_pow): Likewise.
18850 * tree-cfg.cc (remove_bb): Likewise.
18851 (verify_gimple_debug): Likewise.
18852 (remove_edge_and_dominated_blocks): Likewise.
18853 (push_fndecl): Likewise.
18854 * tree-cfgcleanup.h (GCC_TREE_CFGCLEANUP_H): Likewise.
18855 * tree-complex.cc (expand_complex_multiplication): Likewise.
18856 (expand_complex_div_straight): Likewise.
18857 * tree-core.h (enum tree_index): Likewise.
18858 (enum operand_equal_flag): Likewise.
18859 * tree-eh.cc (honor_protect_cleanup_actions): Likewise.
18860 * tree-if-conv.cc (if_convertible_gimple_assign_stmt_p): Likewise.
18861 * tree-inline.cc (initialize_inlined_parameters): Likewise.
18862 * tree-inline.h (force_value_to_type): Likewise.
18863 * tree-nested.cc (get_chain_decl): Likewise.
18864 (walk_all_functions): Likewise.
18865 * tree-object-size.h: Likewise.
18866 * tree-outof-ssa.cc: Likewise.
18867 * tree-parloops.cc (create_parallel_loop): Likewise.
18868 * tree-pretty-print.cc (print_generic_expr_to_str): Likewise.
18869 (dump_generic_node): Likewise.
18870 * tree-profile.cc (tree_profiling): Likewise.
18871 * tree-sra.cc (maybe_add_sra_candidate): Likewise.
18872 * tree-ssa-address.cc: Likewise.
18873 * tree-ssa-alias.cc: Likewise.
18874 * tree-ssa-alias.h (ao_ref::max_size_known_p): Likewise.
18875 (dump_alias_stats): Likewise.
18876 * tree-ssa-ccp.cc: Likewise.
18877 * tree-ssa-coalesce.h: Likewise.
18878 * tree-ssa-live.cc (remove_unused_scope_block_p): Likewise.
18879 * tree-ssa-loop-manip.cc (copy_phi_node_args): Likewise.
18880 * tree-ssa-loop-unswitch.cc: Likewise.
18881 * tree-ssa-math-opts.cc: Likewise.
18882 * tree-ssa-operands.cc (class operands_scanner): Likewise.
18883 * tree-ssa-pre.cc: Likewise.
18884 * tree-ssa-reassoc.cc (optimize_ops_list): Likewise.
18885 (debug_range_entry): Likewise.
18886 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Likewise.
18887 * tree-ssa-sccvn.h (TREE_SSA_SCCVN_H): Likewise.
18888 * tree-ssa-scopedtables.cc (add_expr_commutative): Likewise.
18889 (equal_mem_array_ref_p): Likewise.
18890 * tree-ssa-strlen.cc (is_strlen_related_p): Likewise.
18891 * tree-ssa-strlen.h (get_range_strlen_dynamic): Likewise.
18892 * tree-ssa-tail-merge.cc (stmt_local_def): Likewise.
18893 * tree-ssa-ter.h: Likewise.
18894 * tree-ssa-threadupdate.h (enum bb_dom_status): Likewise.
18895 * tree-streamer-in.cc (lto_input_ts_block_tree_pointers): Likewise.
18896 * tree-streamer-out.cc (pack_ts_block_value_fields): Likewise.
18897 (write_ts_block_tree_pointers): Likewise.
18898 * tree-streamer.h (struct streamer_tree_cache_d): Likewise.
18899 (streamer_read_tree_bitfields): Likewise.
18900 (streamer_write_integer_cst): Likewise.
18901 * tree-vect-patterns.cc (apply_binop_and_append_stmt): Likewise.
18902 (vect_synth_mult_by_constant): Likewise.
18903 * tree-vect-stmts.cc (vectorizable_operation): Likewise.
18904 * tree-vectorizer.cc: Likewise.
18905 * tree-vectorizer.h (class auto_purge_vect_location): Likewise.
18906 (vect_update_inits_of_drs): Likewise.
18907 (vect_get_mask_type_for_stmt): Likewise.
18908 (vect_rgroup_iv_might_wrap_p): Likewise.
18909 (cse_and_gimplify_to_preheader): Likewise.
18910 (vect_free_slp_tree): Likewise.
18911 (vect_pattern_recog): Likewise.
18912 (vect_stmt_dominates_stmt_p): Likewise.
18913 * tree.cc (initialize_tree_contains_struct): Likewise.
18914 (need_assembler_name_p): Likewise.
18915 (type_with_interoperable_signedness): Likewise.
18916 * tree.def (SWITCH_EXPR): Likewise.
18917 * tree.h (TYPE_SYMTAB_ADDRESS): Likewise.
18918 (poly_int_tree_p): Likewise.
18919 (inlined_function_outer_scope_p): Likewise.
18920 (tree_code_for_canonical_type_merging): Likewise.
18921 * value-prof.cc: Likewise.
18922 * value-prof.h (get_nth_most_common_value): Likewise.
18923 (find_func_by_profile_id): Likewise.
18924 * value-range.cc (vrp_operand_equal_p): Likewise.
18925 * value-range.h: Likewise.
18926 * var-tracking.cc: Likewise.
18927 * varasm.cc (default_function_section): Likewise.
18928 (function_section_1): Likewise.
18929 (assemble_variable): Likewise.
18930 (handle_vtv_comdat_section): Likewise.
18931 * vec.h (struct vec_prefix): Likewise.
18932 * vmsdbgout.cc (full_name): Likewise.
18933 * vtable-verify.cc: Likewise.
18934 * vtable-verify.h (struct vtv_graph_node): Likewise.
18935 * xcoffout.cc: Likewise.
18936 * xcoffout.h (DEBUG_SYMS_TEXT): Likewise.
18937
18938 2022-01-17 Martin Liska <mliska@suse.cz>
18939
18940 * adjust-alignment.c: Moved to...
18941 * adjust-alignment.cc: ...here.
18942 * alias.c: Moved to...
18943 * alias.cc: ...here.
18944 * alloc-pool.c: Moved to...
18945 * alloc-pool.cc: ...here.
18946 * asan.c: Moved to...
18947 * asan.cc: ...here.
18948 * attribs.c: Moved to...
18949 * attribs.cc: ...here.
18950 * auto-inc-dec.c: Moved to...
18951 * auto-inc-dec.cc: ...here.
18952 * auto-profile.c: Moved to...
18953 * auto-profile.cc: ...here.
18954 * bb-reorder.c: Moved to...
18955 * bb-reorder.cc: ...here.
18956 * bitmap.c: Moved to...
18957 * bitmap.cc: ...here.
18958 * btfout.c: Moved to...
18959 * btfout.cc: ...here.
18960 * builtins.c: Moved to...
18961 * builtins.cc: ...here.
18962 * caller-save.c: Moved to...
18963 * caller-save.cc: ...here.
18964 * calls.c: Moved to...
18965 * calls.cc: ...here.
18966 * ccmp.c: Moved to...
18967 * ccmp.cc: ...here.
18968 * cfg.c: Moved to...
18969 * cfg.cc: ...here.
18970 * cfganal.c: Moved to...
18971 * cfganal.cc: ...here.
18972 * cfgbuild.c: Moved to...
18973 * cfgbuild.cc: ...here.
18974 * cfgcleanup.c: Moved to...
18975 * cfgcleanup.cc: ...here.
18976 * cfgexpand.c: Moved to...
18977 * cfgexpand.cc: ...here.
18978 * cfghooks.c: Moved to...
18979 * cfghooks.cc: ...here.
18980 * cfgloop.c: Moved to...
18981 * cfgloop.cc: ...here.
18982 * cfgloopanal.c: Moved to...
18983 * cfgloopanal.cc: ...here.
18984 * cfgloopmanip.c: Moved to...
18985 * cfgloopmanip.cc: ...here.
18986 * cfgrtl.c: Moved to...
18987 * cfgrtl.cc: ...here.
18988 * cgraph.c: Moved to...
18989 * cgraph.cc: ...here.
18990 * cgraphbuild.c: Moved to...
18991 * cgraphbuild.cc: ...here.
18992 * cgraphclones.c: Moved to...
18993 * cgraphclones.cc: ...here.
18994 * cgraphunit.c: Moved to...
18995 * cgraphunit.cc: ...here.
18996 * collect-utils.c: Moved to...
18997 * collect-utils.cc: ...here.
18998 * collect2-aix.c: Moved to...
18999 * collect2-aix.cc: ...here.
19000 * collect2.c: Moved to...
19001 * collect2.cc: ...here.
19002 * combine-stack-adj.c: Moved to...
19003 * combine-stack-adj.cc: ...here.
19004 * combine.c: Moved to...
19005 * combine.cc: ...here.
19006 * common/common-targhooks.c: Moved to...
19007 * common/common-targhooks.cc: ...here.
19008 * common/config/aarch64/aarch64-common.c: Moved to...
19009 * common/config/aarch64/aarch64-common.cc: ...here.
19010 * common/config/alpha/alpha-common.c: Moved to...
19011 * common/config/alpha/alpha-common.cc: ...here.
19012 * common/config/arc/arc-common.c: Moved to...
19013 * common/config/arc/arc-common.cc: ...here.
19014 * common/config/arm/arm-common.c: Moved to...
19015 * common/config/arm/arm-common.cc: ...here.
19016 * common/config/avr/avr-common.c: Moved to...
19017 * common/config/avr/avr-common.cc: ...here.
19018 * common/config/bfin/bfin-common.c: Moved to...
19019 * common/config/bfin/bfin-common.cc: ...here.
19020 * common/config/bpf/bpf-common.c: Moved to...
19021 * common/config/bpf/bpf-common.cc: ...here.
19022 * common/config/c6x/c6x-common.c: Moved to...
19023 * common/config/c6x/c6x-common.cc: ...here.
19024 * common/config/cr16/cr16-common.c: Moved to...
19025 * common/config/cr16/cr16-common.cc: ...here.
19026 * common/config/cris/cris-common.c: Moved to...
19027 * common/config/cris/cris-common.cc: ...here.
19028 * common/config/csky/csky-common.c: Moved to...
19029 * common/config/csky/csky-common.cc: ...here.
19030 * common/config/default-common.c: Moved to...
19031 * common/config/default-common.cc: ...here.
19032 * common/config/epiphany/epiphany-common.c: Moved to...
19033 * common/config/epiphany/epiphany-common.cc: ...here.
19034 * common/config/fr30/fr30-common.c: Moved to...
19035 * common/config/fr30/fr30-common.cc: ...here.
19036 * common/config/frv/frv-common.c: Moved to...
19037 * common/config/frv/frv-common.cc: ...here.
19038 * common/config/gcn/gcn-common.c: Moved to...
19039 * common/config/gcn/gcn-common.cc: ...here.
19040 * common/config/h8300/h8300-common.c: Moved to...
19041 * common/config/h8300/h8300-common.cc: ...here.
19042 * common/config/i386/i386-common.c: Moved to...
19043 * common/config/i386/i386-common.cc: ...here.
19044 * common/config/ia64/ia64-common.c: Moved to...
19045 * common/config/ia64/ia64-common.cc: ...here.
19046 * common/config/iq2000/iq2000-common.c: Moved to...
19047 * common/config/iq2000/iq2000-common.cc: ...here.
19048 * common/config/lm32/lm32-common.c: Moved to...
19049 * common/config/lm32/lm32-common.cc: ...here.
19050 * common/config/m32r/m32r-common.c: Moved to...
19051 * common/config/m32r/m32r-common.cc: ...here.
19052 * common/config/m68k/m68k-common.c: Moved to...
19053 * common/config/m68k/m68k-common.cc: ...here.
19054 * common/config/mcore/mcore-common.c: Moved to...
19055 * common/config/mcore/mcore-common.cc: ...here.
19056 * common/config/microblaze/microblaze-common.c: Moved to...
19057 * common/config/microblaze/microblaze-common.cc: ...here.
19058 * common/config/mips/mips-common.c: Moved to...
19059 * common/config/mips/mips-common.cc: ...here.
19060 * common/config/mmix/mmix-common.c: Moved to...
19061 * common/config/mmix/mmix-common.cc: ...here.
19062 * common/config/mn10300/mn10300-common.c: Moved to...
19063 * common/config/mn10300/mn10300-common.cc: ...here.
19064 * common/config/msp430/msp430-common.c: Moved to...
19065 * common/config/msp430/msp430-common.cc: ...here.
19066 * common/config/nds32/nds32-common.c: Moved to...
19067 * common/config/nds32/nds32-common.cc: ...here.
19068 * common/config/nios2/nios2-common.c: Moved to...
19069 * common/config/nios2/nios2-common.cc: ...here.
19070 * common/config/nvptx/nvptx-common.c: Moved to...
19071 * common/config/nvptx/nvptx-common.cc: ...here.
19072 * common/config/or1k/or1k-common.c: Moved to...
19073 * common/config/or1k/or1k-common.cc: ...here.
19074 * common/config/pa/pa-common.c: Moved to...
19075 * common/config/pa/pa-common.cc: ...here.
19076 * common/config/pdp11/pdp11-common.c: Moved to...
19077 * common/config/pdp11/pdp11-common.cc: ...here.
19078 * common/config/pru/pru-common.c: Moved to...
19079 * common/config/pru/pru-common.cc: ...here.
19080 * common/config/riscv/riscv-common.c: Moved to...
19081 * common/config/riscv/riscv-common.cc: ...here.
19082 * common/config/rs6000/rs6000-common.c: Moved to...
19083 * common/config/rs6000/rs6000-common.cc: ...here.
19084 * common/config/rx/rx-common.c: Moved to...
19085 * common/config/rx/rx-common.cc: ...here.
19086 * common/config/s390/s390-common.c: Moved to...
19087 * common/config/s390/s390-common.cc: ...here.
19088 * common/config/sh/sh-common.c: Moved to...
19089 * common/config/sh/sh-common.cc: ...here.
19090 * common/config/sparc/sparc-common.c: Moved to...
19091 * common/config/sparc/sparc-common.cc: ...here.
19092 * common/config/tilegx/tilegx-common.c: Moved to...
19093 * common/config/tilegx/tilegx-common.cc: ...here.
19094 * common/config/tilepro/tilepro-common.c: Moved to...
19095 * common/config/tilepro/tilepro-common.cc: ...here.
19096 * common/config/v850/v850-common.c: Moved to...
19097 * common/config/v850/v850-common.cc: ...here.
19098 * common/config/vax/vax-common.c: Moved to...
19099 * common/config/vax/vax-common.cc: ...here.
19100 * common/config/visium/visium-common.c: Moved to...
19101 * common/config/visium/visium-common.cc: ...here.
19102 * common/config/xstormy16/xstormy16-common.c: Moved to...
19103 * common/config/xstormy16/xstormy16-common.cc: ...here.
19104 * common/config/xtensa/xtensa-common.c: Moved to...
19105 * common/config/xtensa/xtensa-common.cc: ...here.
19106 * compare-elim.c: Moved to...
19107 * compare-elim.cc: ...here.
19108 * config/aarch64/aarch64-bti-insert.c: Moved to...
19109 * config/aarch64/aarch64-bti-insert.cc: ...here.
19110 * config/aarch64/aarch64-builtins.c: Moved to...
19111 * config/aarch64/aarch64-builtins.cc: ...here.
19112 * config/aarch64/aarch64-c.c: Moved to...
19113 * config/aarch64/aarch64-c.cc: ...here.
19114 * config/aarch64/aarch64-d.c: Moved to...
19115 * config/aarch64/aarch64-d.cc: ...here.
19116 * config/aarch64/aarch64.c: Moved to...
19117 * config/aarch64/aarch64.cc: ...here.
19118 * config/aarch64/cortex-a57-fma-steering.c: Moved to...
19119 * config/aarch64/cortex-a57-fma-steering.cc: ...here.
19120 * config/aarch64/driver-aarch64.c: Moved to...
19121 * config/aarch64/driver-aarch64.cc: ...here.
19122 * config/aarch64/falkor-tag-collision-avoidance.c: Moved to...
19123 * config/aarch64/falkor-tag-collision-avoidance.cc: ...here.
19124 * config/aarch64/host-aarch64-darwin.c: Moved to...
19125 * config/aarch64/host-aarch64-darwin.cc: ...here.
19126 * config/alpha/alpha.c: Moved to...
19127 * config/alpha/alpha.cc: ...here.
19128 * config/alpha/driver-alpha.c: Moved to...
19129 * config/alpha/driver-alpha.cc: ...here.
19130 * config/arc/arc-c.c: Moved to...
19131 * config/arc/arc-c.cc: ...here.
19132 * config/arc/arc.c: Moved to...
19133 * config/arc/arc.cc: ...here.
19134 * config/arc/driver-arc.c: Moved to...
19135 * config/arc/driver-arc.cc: ...here.
19136 * config/arm/aarch-common.c: Moved to...
19137 * config/arm/aarch-common.cc: ...here.
19138 * config/arm/arm-builtins.c: Moved to...
19139 * config/arm/arm-builtins.cc: ...here.
19140 * config/arm/arm-c.c: Moved to...
19141 * config/arm/arm-c.cc: ...here.
19142 * config/arm/arm-d.c: Moved to...
19143 * config/arm/arm-d.cc: ...here.
19144 * config/arm/arm.c: Moved to...
19145 * config/arm/arm.cc: ...here.
19146 * config/arm/driver-arm.c: Moved to...
19147 * config/arm/driver-arm.cc: ...here.
19148 * config/avr/avr-c.c: Moved to...
19149 * config/avr/avr-c.cc: ...here.
19150 * config/avr/avr-devices.c: Moved to...
19151 * config/avr/avr-devices.cc: ...here.
19152 * config/avr/avr-log.c: Moved to...
19153 * config/avr/avr-log.cc: ...here.
19154 * config/avr/avr.c: Moved to...
19155 * config/avr/avr.cc: ...here.
19156 * config/avr/driver-avr.c: Moved to...
19157 * config/avr/driver-avr.cc: ...here.
19158 * config/avr/gen-avr-mmcu-specs.c: Moved to...
19159 * config/avr/gen-avr-mmcu-specs.cc: ...here.
19160 * config/avr/gen-avr-mmcu-texi.c: Moved to...
19161 * config/avr/gen-avr-mmcu-texi.cc: ...here.
19162 * config/bfin/bfin.c: Moved to...
19163 * config/bfin/bfin.cc: ...here.
19164 * config/bpf/bpf.c: Moved to...
19165 * config/bpf/bpf.cc: ...here.
19166 * config/bpf/coreout.c: Moved to...
19167 * config/bpf/coreout.cc: ...here.
19168 * config/c6x/c6x.c: Moved to...
19169 * config/c6x/c6x.cc: ...here.
19170 * config/cr16/cr16.c: Moved to...
19171 * config/cr16/cr16.cc: ...here.
19172 * config/cris/cris.c: Moved to...
19173 * config/cris/cris.cc: ...here.
19174 * config/csky/csky.c: Moved to...
19175 * config/csky/csky.cc: ...here.
19176 * config/darwin-c.c: Moved to...
19177 * config/darwin-c.cc: ...here.
19178 * config/darwin-d.c: Moved to...
19179 * config/darwin-d.cc: ...here.
19180 * config/darwin-driver.c: Moved to...
19181 * config/darwin-driver.cc: ...here.
19182 * config/darwin-f.c: Moved to...
19183 * config/darwin-f.cc: ...here.
19184 * config/darwin.c: Moved to...
19185 * config/darwin.cc: ...here.
19186 * config/default-c.c: Moved to...
19187 * config/default-c.cc: ...here.
19188 * config/default-d.c: Moved to...
19189 * config/default-d.cc: ...here.
19190 * config/dragonfly-d.c: Moved to...
19191 * config/dragonfly-d.cc: ...here.
19192 * config/epiphany/epiphany.c: Moved to...
19193 * config/epiphany/epiphany.cc: ...here.
19194 * config/epiphany/mode-switch-use.c: Moved to...
19195 * config/epiphany/mode-switch-use.cc: ...here.
19196 * config/epiphany/resolve-sw-modes.c: Moved to...
19197 * config/epiphany/resolve-sw-modes.cc: ...here.
19198 * config/fr30/fr30.c: Moved to...
19199 * config/fr30/fr30.cc: ...here.
19200 * config/freebsd-d.c: Moved to...
19201 * config/freebsd-d.cc: ...here.
19202 * config/frv/frv.c: Moved to...
19203 * config/frv/frv.cc: ...here.
19204 * config/ft32/ft32.c: Moved to...
19205 * config/ft32/ft32.cc: ...here.
19206 * config/gcn/driver-gcn.c: Moved to...
19207 * config/gcn/driver-gcn.cc: ...here.
19208 * config/gcn/gcn-run.c: Moved to...
19209 * config/gcn/gcn-run.cc: ...here.
19210 * config/gcn/gcn-tree.c: Moved to...
19211 * config/gcn/gcn-tree.cc: ...here.
19212 * config/gcn/gcn.c: Moved to...
19213 * config/gcn/gcn.cc: ...here.
19214 * config/gcn/mkoffload.c: Moved to...
19215 * config/gcn/mkoffload.cc: ...here.
19216 * config/glibc-c.c: Moved to...
19217 * config/glibc-c.cc: ...here.
19218 * config/glibc-d.c: Moved to...
19219 * config/glibc-d.cc: ...here.
19220 * config/h8300/h8300.c: Moved to...
19221 * config/h8300/h8300.cc: ...here.
19222 * config/host-darwin.c: Moved to...
19223 * config/host-darwin.cc: ...here.
19224 * config/host-hpux.c: Moved to...
19225 * config/host-hpux.cc: ...here.
19226 * config/host-linux.c: Moved to...
19227 * config/host-linux.cc: ...here.
19228 * config/host-netbsd.c: Moved to...
19229 * config/host-netbsd.cc: ...here.
19230 * config/host-openbsd.c: Moved to...
19231 * config/host-openbsd.cc: ...here.
19232 * config/host-solaris.c: Moved to...
19233 * config/host-solaris.cc: ...here.
19234 * config/i386/djgpp.c: Moved to...
19235 * config/i386/djgpp.cc: ...here.
19236 * config/i386/driver-i386.c: Moved to...
19237 * config/i386/driver-i386.cc: ...here.
19238 * config/i386/driver-mingw32.c: Moved to...
19239 * config/i386/driver-mingw32.cc: ...here.
19240 * config/i386/gnu-property.c: Moved to...
19241 * config/i386/gnu-property.cc: ...here.
19242 * config/i386/host-cygwin.c: Moved to...
19243 * config/i386/host-cygwin.cc: ...here.
19244 * config/i386/host-i386-darwin.c: Moved to...
19245 * config/i386/host-i386-darwin.cc: ...here.
19246 * config/i386/host-mingw32.c: Moved to...
19247 * config/i386/host-mingw32.cc: ...here.
19248 * config/i386/i386-builtins.c: Moved to...
19249 * config/i386/i386-builtins.cc: ...here.
19250 * config/i386/i386-c.c: Moved to...
19251 * config/i386/i386-c.cc: ...here.
19252 * config/i386/i386-d.c: Moved to...
19253 * config/i386/i386-d.cc: ...here.
19254 * config/i386/i386-expand.c: Moved to...
19255 * config/i386/i386-expand.cc: ...here.
19256 * config/i386/i386-features.c: Moved to...
19257 * config/i386/i386-features.cc: ...here.
19258 * config/i386/i386-options.c: Moved to...
19259 * config/i386/i386-options.cc: ...here.
19260 * config/i386/i386.c: Moved to...
19261 * config/i386/i386.cc: ...here.
19262 * config/i386/intelmic-mkoffload.c: Moved to...
19263 * config/i386/intelmic-mkoffload.cc: ...here.
19264 * config/i386/msformat-c.c: Moved to...
19265 * config/i386/msformat-c.cc: ...here.
19266 * config/i386/winnt-cxx.c: Moved to...
19267 * config/i386/winnt-cxx.cc: ...here.
19268 * config/i386/winnt-d.c: Moved to...
19269 * config/i386/winnt-d.cc: ...here.
19270 * config/i386/winnt-stubs.c: Moved to...
19271 * config/i386/winnt-stubs.cc: ...here.
19272 * config/i386/winnt.c: Moved to...
19273 * config/i386/winnt.cc: ...here.
19274 * config/i386/x86-tune-sched-atom.c: Moved to...
19275 * config/i386/x86-tune-sched-atom.cc: ...here.
19276 * config/i386/x86-tune-sched-bd.c: Moved to...
19277 * config/i386/x86-tune-sched-bd.cc: ...here.
19278 * config/i386/x86-tune-sched-core.c: Moved to...
19279 * config/i386/x86-tune-sched-core.cc: ...here.
19280 * config/i386/x86-tune-sched.c: Moved to...
19281 * config/i386/x86-tune-sched.cc: ...here.
19282 * config/ia64/ia64-c.c: Moved to...
19283 * config/ia64/ia64-c.cc: ...here.
19284 * config/ia64/ia64.c: Moved to...
19285 * config/ia64/ia64.cc: ...here.
19286 * config/iq2000/iq2000.c: Moved to...
19287 * config/iq2000/iq2000.cc: ...here.
19288 * config/linux.c: Moved to...
19289 * config/linux.cc: ...here.
19290 * config/lm32/lm32.c: Moved to...
19291 * config/lm32/lm32.cc: ...here.
19292 * config/m32c/m32c-pragma.c: Moved to...
19293 * config/m32c/m32c-pragma.cc: ...here.
19294 * config/m32c/m32c.c: Moved to...
19295 * config/m32c/m32c.cc: ...here.
19296 * config/m32r/m32r.c: Moved to...
19297 * config/m32r/m32r.cc: ...here.
19298 * config/m68k/m68k.c: Moved to...
19299 * config/m68k/m68k.cc: ...here.
19300 * config/mcore/mcore.c: Moved to...
19301 * config/mcore/mcore.cc: ...here.
19302 * config/microblaze/microblaze-c.c: Moved to...
19303 * config/microblaze/microblaze-c.cc: ...here.
19304 * config/microblaze/microblaze.c: Moved to...
19305 * config/microblaze/microblaze.cc: ...here.
19306 * config/mips/driver-native.c: Moved to...
19307 * config/mips/driver-native.cc: ...here.
19308 * config/mips/frame-header-opt.c: Moved to...
19309 * config/mips/frame-header-opt.cc: ...here.
19310 * config/mips/mips-d.c: Moved to...
19311 * config/mips/mips-d.cc: ...here.
19312 * config/mips/mips.c: Moved to...
19313 * config/mips/mips.cc: ...here.
19314 * config/mmix/mmix.c: Moved to...
19315 * config/mmix/mmix.cc: ...here.
19316 * config/mn10300/mn10300.c: Moved to...
19317 * config/mn10300/mn10300.cc: ...here.
19318 * config/moxie/moxie.c: Moved to...
19319 * config/moxie/moxie.cc: ...here.
19320 * config/msp430/driver-msp430.c: Moved to...
19321 * config/msp430/driver-msp430.cc: ...here.
19322 * config/msp430/msp430-c.c: Moved to...
19323 * config/msp430/msp430-c.cc: ...here.
19324 * config/msp430/msp430-devices.c: Moved to...
19325 * config/msp430/msp430-devices.cc: ...here.
19326 * config/msp430/msp430.c: Moved to...
19327 * config/msp430/msp430.cc: ...here.
19328 * config/nds32/nds32-cost.c: Moved to...
19329 * config/nds32/nds32-cost.cc: ...here.
19330 * config/nds32/nds32-fp-as-gp.c: Moved to...
19331 * config/nds32/nds32-fp-as-gp.cc: ...here.
19332 * config/nds32/nds32-intrinsic.c: Moved to...
19333 * config/nds32/nds32-intrinsic.cc: ...here.
19334 * config/nds32/nds32-isr.c: Moved to...
19335 * config/nds32/nds32-isr.cc: ...here.
19336 * config/nds32/nds32-md-auxiliary.c: Moved to...
19337 * config/nds32/nds32-md-auxiliary.cc: ...here.
19338 * config/nds32/nds32-memory-manipulation.c: Moved to...
19339 * config/nds32/nds32-memory-manipulation.cc: ...here.
19340 * config/nds32/nds32-pipelines-auxiliary.c: Moved to...
19341 * config/nds32/nds32-pipelines-auxiliary.cc: ...here.
19342 * config/nds32/nds32-predicates.c: Moved to...
19343 * config/nds32/nds32-predicates.cc: ...here.
19344 * config/nds32/nds32-relax-opt.c: Moved to...
19345 * config/nds32/nds32-relax-opt.cc: ...here.
19346 * config/nds32/nds32-utils.c: Moved to...
19347 * config/nds32/nds32-utils.cc: ...here.
19348 * config/nds32/nds32.c: Moved to...
19349 * config/nds32/nds32.cc: ...here.
19350 * config/netbsd-d.c: Moved to...
19351 * config/netbsd-d.cc: ...here.
19352 * config/netbsd.c: Moved to...
19353 * config/netbsd.cc: ...here.
19354 * config/nios2/nios2.c: Moved to...
19355 * config/nios2/nios2.cc: ...here.
19356 * config/nvptx/mkoffload.c: Moved to...
19357 * config/nvptx/mkoffload.cc: ...here.
19358 * config/nvptx/nvptx-c.c: Moved to...
19359 * config/nvptx/nvptx-c.cc: ...here.
19360 * config/nvptx/nvptx.c: Moved to...
19361 * config/nvptx/nvptx.cc: ...here.
19362 * config/openbsd-d.c: Moved to...
19363 * config/openbsd-d.cc: ...here.
19364 * config/or1k/or1k.c: Moved to...
19365 * config/or1k/or1k.cc: ...here.
19366 * config/pa/pa-d.c: Moved to...
19367 * config/pa/pa-d.cc: ...here.
19368 * config/pa/pa.c: Moved to...
19369 * config/pa/pa.cc: ...here.
19370 * config/pdp11/pdp11.c: Moved to...
19371 * config/pdp11/pdp11.cc: ...here.
19372 * config/pru/pru-passes.c: Moved to...
19373 * config/pru/pru-passes.cc: ...here.
19374 * config/pru/pru-pragma.c: Moved to...
19375 * config/pru/pru-pragma.cc: ...here.
19376 * config/pru/pru.c: Moved to...
19377 * config/pru/pru.cc: ...here.
19378 * config/riscv/riscv-builtins.c: Moved to...
19379 * config/riscv/riscv-builtins.cc: ...here.
19380 * config/riscv/riscv-c.c: Moved to...
19381 * config/riscv/riscv-c.cc: ...here.
19382 * config/riscv/riscv-d.c: Moved to...
19383 * config/riscv/riscv-d.cc: ...here.
19384 * config/riscv/riscv-shorten-memrefs.c: Moved to...
19385 * config/riscv/riscv-shorten-memrefs.cc: ...here.
19386 * config/riscv/riscv-sr.c: Moved to...
19387 * config/riscv/riscv-sr.cc: ...here.
19388 * config/riscv/riscv.c: Moved to...
19389 * config/riscv/riscv.cc: ...here.
19390 * config/rl78/rl78-c.c: Moved to...
19391 * config/rl78/rl78-c.cc: ...here.
19392 * config/rl78/rl78.c: Moved to...
19393 * config/rl78/rl78.cc: ...here.
19394 * config/rs6000/driver-rs6000.c: Moved to...
19395 * config/rs6000/driver-rs6000.cc: ...here.
19396 * config/rs6000/host-darwin.c: Moved to...
19397 * config/rs6000/host-darwin.cc: ...here.
19398 * config/rs6000/host-ppc64-darwin.c: Moved to...
19399 * config/rs6000/host-ppc64-darwin.cc: ...here.
19400 * config/rs6000/rbtree.c: Moved to...
19401 * config/rs6000/rbtree.cc: ...here.
19402 * config/rs6000/rs6000-c.c: Moved to...
19403 * config/rs6000/rs6000-c.cc: ...here.
19404 * config/rs6000/rs6000-call.c: Moved to...
19405 * config/rs6000/rs6000-call.cc: ...here.
19406 * config/rs6000/rs6000-d.c: Moved to...
19407 * config/rs6000/rs6000-d.cc: ...here.
19408 * config/rs6000/rs6000-gen-builtins.c: Moved to...
19409 * config/rs6000/rs6000-gen-builtins.cc: ...here.
19410 * config/rs6000/rs6000-linux.c: Moved to...
19411 * config/rs6000/rs6000-linux.cc: ...here.
19412 * config/rs6000/rs6000-logue.c: Moved to...
19413 * config/rs6000/rs6000-logue.cc: ...here.
19414 * config/rs6000/rs6000-p8swap.c: Moved to...
19415 * config/rs6000/rs6000-p8swap.cc: ...here.
19416 * config/rs6000/rs6000-pcrel-opt.c: Moved to...
19417 * config/rs6000/rs6000-pcrel-opt.cc: ...here.
19418 * config/rs6000/rs6000-string.c: Moved to...
19419 * config/rs6000/rs6000-string.cc: ...here.
19420 * config/rs6000/rs6000.c: Moved to...
19421 * config/rs6000/rs6000.cc: ...here.
19422 * config/rx/rx.c: Moved to...
19423 * config/rx/rx.cc: ...here.
19424 * config/s390/driver-native.c: Moved to...
19425 * config/s390/driver-native.cc: ...here.
19426 * config/s390/s390-c.c: Moved to...
19427 * config/s390/s390-c.cc: ...here.
19428 * config/s390/s390-d.c: Moved to...
19429 * config/s390/s390-d.cc: ...here.
19430 * config/s390/s390.c: Moved to...
19431 * config/s390/s390.cc: ...here.
19432 * config/sh/divtab-sh4-300.c: Moved to...
19433 * config/sh/divtab-sh4-300.cc: ...here.
19434 * config/sh/divtab-sh4.c: Moved to...
19435 * config/sh/divtab-sh4.cc: ...here.
19436 * config/sh/divtab.c: Moved to...
19437 * config/sh/divtab.cc: ...here.
19438 * config/sh/sh-c.c: Moved to...
19439 * config/sh/sh-c.cc: ...here.
19440 * config/sh/sh.c: Moved to...
19441 * config/sh/sh.cc: ...here.
19442 * config/sol2-c.c: Moved to...
19443 * config/sol2-c.cc: ...here.
19444 * config/sol2-cxx.c: Moved to...
19445 * config/sol2-cxx.cc: ...here.
19446 * config/sol2-d.c: Moved to...
19447 * config/sol2-d.cc: ...here.
19448 * config/sol2-stubs.c: Moved to...
19449 * config/sol2-stubs.cc: ...here.
19450 * config/sol2.c: Moved to...
19451 * config/sol2.cc: ...here.
19452 * config/sparc/driver-sparc.c: Moved to...
19453 * config/sparc/driver-sparc.cc: ...here.
19454 * config/sparc/sparc-c.c: Moved to...
19455 * config/sparc/sparc-c.cc: ...here.
19456 * config/sparc/sparc-d.c: Moved to...
19457 * config/sparc/sparc-d.cc: ...here.
19458 * config/sparc/sparc.c: Moved to...
19459 * config/sparc/sparc.cc: ...here.
19460 * config/stormy16/stormy16.c: Moved to...
19461 * config/stormy16/stormy16.cc: ...here.
19462 * config/tilegx/mul-tables.c: Moved to...
19463 * config/tilegx/mul-tables.cc: ...here.
19464 * config/tilegx/tilegx-c.c: Moved to...
19465 * config/tilegx/tilegx-c.cc: ...here.
19466 * config/tilegx/tilegx.c: Moved to...
19467 * config/tilegx/tilegx.cc: ...here.
19468 * config/tilepro/mul-tables.c: Moved to...
19469 * config/tilepro/mul-tables.cc: ...here.
19470 * config/tilepro/tilepro-c.c: Moved to...
19471 * config/tilepro/tilepro-c.cc: ...here.
19472 * config/tilepro/tilepro.c: Moved to...
19473 * config/tilepro/tilepro.cc: ...here.
19474 * config/v850/v850-c.c: Moved to...
19475 * config/v850/v850-c.cc: ...here.
19476 * config/v850/v850.c: Moved to...
19477 * config/v850/v850.cc: ...here.
19478 * config/vax/vax.c: Moved to...
19479 * config/vax/vax.cc: ...here.
19480 * config/visium/visium.c: Moved to...
19481 * config/visium/visium.cc: ...here.
19482 * config/vms/vms-c.c: Moved to...
19483 * config/vms/vms-c.cc: ...here.
19484 * config/vms/vms-f.c: Moved to...
19485 * config/vms/vms-f.cc: ...here.
19486 * config/vms/vms.c: Moved to...
19487 * config/vms/vms.cc: ...here.
19488 * config/vxworks-c.c: Moved to...
19489 * config/vxworks-c.cc: ...here.
19490 * config/vxworks.c: Moved to...
19491 * config/vxworks.cc: ...here.
19492 * config/winnt-c.c: Moved to...
19493 * config/winnt-c.cc: ...here.
19494 * config/xtensa/xtensa.c: Moved to...
19495 * config/xtensa/xtensa.cc: ...here.
19496 * context.c: Moved to...
19497 * context.cc: ...here.
19498 * convert.c: Moved to...
19499 * convert.cc: ...here.
19500 * coverage.c: Moved to...
19501 * coverage.cc: ...here.
19502 * cppbuiltin.c: Moved to...
19503 * cppbuiltin.cc: ...here.
19504 * cppdefault.c: Moved to...
19505 * cppdefault.cc: ...here.
19506 * cprop.c: Moved to...
19507 * cprop.cc: ...here.
19508 * cse.c: Moved to...
19509 * cse.cc: ...here.
19510 * cselib.c: Moved to...
19511 * cselib.cc: ...here.
19512 * ctfc.c: Moved to...
19513 * ctfc.cc: ...here.
19514 * ctfout.c: Moved to...
19515 * ctfout.cc: ...here.
19516 * data-streamer-in.c: Moved to...
19517 * data-streamer-in.cc: ...here.
19518 * data-streamer-out.c: Moved to...
19519 * data-streamer-out.cc: ...here.
19520 * data-streamer.c: Moved to...
19521 * data-streamer.cc: ...here.
19522 * dbgcnt.c: Moved to...
19523 * dbgcnt.cc: ...here.
19524 * dbxout.c: Moved to...
19525 * dbxout.cc: ...here.
19526 * dce.c: Moved to...
19527 * dce.cc: ...here.
19528 * ddg.c: Moved to...
19529 * ddg.cc: ...here.
19530 * debug.c: Moved to...
19531 * debug.cc: ...here.
19532 * df-core.c: Moved to...
19533 * df-core.cc: ...here.
19534 * df-problems.c: Moved to...
19535 * df-problems.cc: ...here.
19536 * df-scan.c: Moved to...
19537 * df-scan.cc: ...here.
19538 * dfp.c: Moved to...
19539 * dfp.cc: ...here.
19540 * diagnostic-color.c: Moved to...
19541 * diagnostic-color.cc: ...here.
19542 * diagnostic-show-locus.c: Moved to...
19543 * diagnostic-show-locus.cc: ...here.
19544 * diagnostic-spec.c: Moved to...
19545 * diagnostic-spec.cc: ...here.
19546 * diagnostic.c: Moved to...
19547 * diagnostic.cc: ...here.
19548 * dojump.c: Moved to...
19549 * dojump.cc: ...here.
19550 * dominance.c: Moved to...
19551 * dominance.cc: ...here.
19552 * domwalk.c: Moved to...
19553 * domwalk.cc: ...here.
19554 * double-int.c: Moved to...
19555 * double-int.cc: ...here.
19556 * dse.c: Moved to...
19557 * dse.cc: ...here.
19558 * dumpfile.c: Moved to...
19559 * dumpfile.cc: ...here.
19560 * dwarf2asm.c: Moved to...
19561 * dwarf2asm.cc: ...here.
19562 * dwarf2cfi.c: Moved to...
19563 * dwarf2cfi.cc: ...here.
19564 * dwarf2ctf.c: Moved to...
19565 * dwarf2ctf.cc: ...here.
19566 * dwarf2out.c: Moved to...
19567 * dwarf2out.cc: ...here.
19568 * early-remat.c: Moved to...
19569 * early-remat.cc: ...here.
19570 * edit-context.c: Moved to...
19571 * edit-context.cc: ...here.
19572 * emit-rtl.c: Moved to...
19573 * emit-rtl.cc: ...here.
19574 * errors.c: Moved to...
19575 * errors.cc: ...here.
19576 * et-forest.c: Moved to...
19577 * et-forest.cc: ...here.
19578 * except.c: Moved to...
19579 * except.cc: ...here.
19580 * explow.c: Moved to...
19581 * explow.cc: ...here.
19582 * expmed.c: Moved to...
19583 * expmed.cc: ...here.
19584 * expr.c: Moved to...
19585 * expr.cc: ...here.
19586 * fibonacci_heap.c: Moved to...
19587 * fibonacci_heap.cc: ...here.
19588 * file-find.c: Moved to...
19589 * file-find.cc: ...here.
19590 * file-prefix-map.c: Moved to...
19591 * file-prefix-map.cc: ...here.
19592 * final.c: Moved to...
19593 * final.cc: ...here.
19594 * fixed-value.c: Moved to...
19595 * fixed-value.cc: ...here.
19596 * fold-const-call.c: Moved to...
19597 * fold-const-call.cc: ...here.
19598 * fold-const.c: Moved to...
19599 * fold-const.cc: ...here.
19600 * fp-test.c: Moved to...
19601 * fp-test.cc: ...here.
19602 * function-tests.c: Moved to...
19603 * function-tests.cc: ...here.
19604 * function.c: Moved to...
19605 * function.cc: ...here.
19606 * fwprop.c: Moved to...
19607 * fwprop.cc: ...here.
19608 * gcc-ar.c: Moved to...
19609 * gcc-ar.cc: ...here.
19610 * gcc-main.c: Moved to...
19611 * gcc-main.cc: ...here.
19612 * gcc-rich-location.c: Moved to...
19613 * gcc-rich-location.cc: ...here.
19614 * gcc.c: Moved to...
19615 * gcc.cc: ...here.
19616 * gcov-dump.c: Moved to...
19617 * gcov-dump.cc: ...here.
19618 * gcov-io.c: Moved to...
19619 * gcov-io.cc: ...here.
19620 * gcov-tool.c: Moved to...
19621 * gcov-tool.cc: ...here.
19622 * gcov.c: Moved to...
19623 * gcov.cc: ...here.
19624 * gcse-common.c: Moved to...
19625 * gcse-common.cc: ...here.
19626 * gcse.c: Moved to...
19627 * gcse.cc: ...here.
19628 * genattr-common.c: Moved to...
19629 * genattr-common.cc: ...here.
19630 * genattr.c: Moved to...
19631 * genattr.cc: ...here.
19632 * genattrtab.c: Moved to...
19633 * genattrtab.cc: ...here.
19634 * genautomata.c: Moved to...
19635 * genautomata.cc: ...here.
19636 * gencfn-macros.c: Moved to...
19637 * gencfn-macros.cc: ...here.
19638 * gencheck.c: Moved to...
19639 * gencheck.cc: ...here.
19640 * genchecksum.c: Moved to...
19641 * genchecksum.cc: ...here.
19642 * gencodes.c: Moved to...
19643 * gencodes.cc: ...here.
19644 * genconditions.c: Moved to...
19645 * genconditions.cc: ...here.
19646 * genconfig.c: Moved to...
19647 * genconfig.cc: ...here.
19648 * genconstants.c: Moved to...
19649 * genconstants.cc: ...here.
19650 * genemit.c: Moved to...
19651 * genemit.cc: ...here.
19652 * genenums.c: Moved to...
19653 * genenums.cc: ...here.
19654 * generic-match-head.c: Moved to...
19655 * generic-match-head.cc: ...here.
19656 * genextract.c: Moved to...
19657 * genextract.cc: ...here.
19658 * genflags.c: Moved to...
19659 * genflags.cc: ...here.
19660 * gengenrtl.c: Moved to...
19661 * gengenrtl.cc: ...here.
19662 * gengtype-parse.c: Moved to...
19663 * gengtype-parse.cc: ...here.
19664 * gengtype-state.c: Moved to...
19665 * gengtype-state.cc: ...here.
19666 * gengtype.c: Moved to...
19667 * gengtype.cc: ...here.
19668 * genhooks.c: Moved to...
19669 * genhooks.cc: ...here.
19670 * genmatch.c: Moved to...
19671 * genmatch.cc: ...here.
19672 * genmddeps.c: Moved to...
19673 * genmddeps.cc: ...here.
19674 * genmddump.c: Moved to...
19675 * genmddump.cc: ...here.
19676 * genmodes.c: Moved to...
19677 * genmodes.cc: ...here.
19678 * genopinit.c: Moved to...
19679 * genopinit.cc: ...here.
19680 * genoutput.c: Moved to...
19681 * genoutput.cc: ...here.
19682 * genpeep.c: Moved to...
19683 * genpeep.cc: ...here.
19684 * genpreds.c: Moved to...
19685 * genpreds.cc: ...here.
19686 * genrecog.c: Moved to...
19687 * genrecog.cc: ...here.
19688 * gensupport.c: Moved to...
19689 * gensupport.cc: ...here.
19690 * gentarget-def.c: Moved to...
19691 * gentarget-def.cc: ...here.
19692 * genversion.c: Moved to...
19693 * genversion.cc: ...here.
19694 * ggc-common.c: Moved to...
19695 * ggc-common.cc: ...here.
19696 * ggc-none.c: Moved to...
19697 * ggc-none.cc: ...here.
19698 * ggc-page.c: Moved to...
19699 * ggc-page.cc: ...here.
19700 * ggc-tests.c: Moved to...
19701 * ggc-tests.cc: ...here.
19702 * gimple-builder.c: Moved to...
19703 * gimple-builder.cc: ...here.
19704 * gimple-expr.c: Moved to...
19705 * gimple-expr.cc: ...here.
19706 * gimple-fold.c: Moved to...
19707 * gimple-fold.cc: ...here.
19708 * gimple-iterator.c: Moved to...
19709 * gimple-iterator.cc: ...here.
19710 * gimple-laddress.c: Moved to...
19711 * gimple-laddress.cc: ...here.
19712 * gimple-loop-jam.c: Moved to...
19713 * gimple-loop-jam.cc: ...here.
19714 * gimple-low.c: Moved to...
19715 * gimple-low.cc: ...here.
19716 * gimple-match-head.c: Moved to...
19717 * gimple-match-head.cc: ...here.
19718 * gimple-pretty-print.c: Moved to...
19719 * gimple-pretty-print.cc: ...here.
19720 * gimple-ssa-backprop.c: Moved to...
19721 * gimple-ssa-backprop.cc: ...here.
19722 * gimple-ssa-evrp-analyze.c: Moved to...
19723 * gimple-ssa-evrp-analyze.cc: ...here.
19724 * gimple-ssa-evrp.c: Moved to...
19725 * gimple-ssa-evrp.cc: ...here.
19726 * gimple-ssa-isolate-paths.c: Moved to...
19727 * gimple-ssa-isolate-paths.cc: ...here.
19728 * gimple-ssa-nonnull-compare.c: Moved to...
19729 * gimple-ssa-nonnull-compare.cc: ...here.
19730 * gimple-ssa-split-paths.c: Moved to...
19731 * gimple-ssa-split-paths.cc: ...here.
19732 * gimple-ssa-sprintf.c: Moved to...
19733 * gimple-ssa-sprintf.cc: ...here.
19734 * gimple-ssa-store-merging.c: Moved to...
19735 * gimple-ssa-store-merging.cc: ...here.
19736 * gimple-ssa-strength-reduction.c: Moved to...
19737 * gimple-ssa-strength-reduction.cc: ...here.
19738 * gimple-ssa-warn-alloca.c: Moved to...
19739 * gimple-ssa-warn-alloca.cc: ...here.
19740 * gimple-ssa-warn-restrict.c: Moved to...
19741 * gimple-ssa-warn-restrict.cc: ...here.
19742 * gimple-streamer-in.c: Moved to...
19743 * gimple-streamer-in.cc: ...here.
19744 * gimple-streamer-out.c: Moved to...
19745 * gimple-streamer-out.cc: ...here.
19746 * gimple-walk.c: Moved to...
19747 * gimple-walk.cc: ...here.
19748 * gimple-warn-recursion.c: Moved to...
19749 * gimple-warn-recursion.cc: ...here.
19750 * gimple.c: Moved to...
19751 * gimple.cc: ...here.
19752 * gimplify-me.c: Moved to...
19753 * gimplify-me.cc: ...here.
19754 * gimplify.c: Moved to...
19755 * gimplify.cc: ...here.
19756 * godump.c: Moved to...
19757 * godump.cc: ...here.
19758 * graph.c: Moved to...
19759 * graph.cc: ...here.
19760 * graphds.c: Moved to...
19761 * graphds.cc: ...here.
19762 * graphite-dependences.c: Moved to...
19763 * graphite-dependences.cc: ...here.
19764 * graphite-isl-ast-to-gimple.c: Moved to...
19765 * graphite-isl-ast-to-gimple.cc: ...here.
19766 * graphite-optimize-isl.c: Moved to...
19767 * graphite-optimize-isl.cc: ...here.
19768 * graphite-poly.c: Moved to...
19769 * graphite-poly.cc: ...here.
19770 * graphite-scop-detection.c: Moved to...
19771 * graphite-scop-detection.cc: ...here.
19772 * graphite-sese-to-poly.c: Moved to...
19773 * graphite-sese-to-poly.cc: ...here.
19774 * graphite.c: Moved to...
19775 * graphite.cc: ...here.
19776 * haifa-sched.c: Moved to...
19777 * haifa-sched.cc: ...here.
19778 * hash-map-tests.c: Moved to...
19779 * hash-map-tests.cc: ...here.
19780 * hash-set-tests.c: Moved to...
19781 * hash-set-tests.cc: ...here.
19782 * hash-table.c: Moved to...
19783 * hash-table.cc: ...here.
19784 * hooks.c: Moved to...
19785 * hooks.cc: ...here.
19786 * host-default.c: Moved to...
19787 * host-default.cc: ...here.
19788 * hw-doloop.c: Moved to...
19789 * hw-doloop.cc: ...here.
19790 * hwint.c: Moved to...
19791 * hwint.cc: ...here.
19792 * ifcvt.c: Moved to...
19793 * ifcvt.cc: ...here.
19794 * inchash.c: Moved to...
19795 * inchash.cc: ...here.
19796 * incpath.c: Moved to...
19797 * incpath.cc: ...here.
19798 * init-regs.c: Moved to...
19799 * init-regs.cc: ...here.
19800 * input.c: Moved to...
19801 * input.cc: ...here.
19802 * internal-fn.c: Moved to...
19803 * internal-fn.cc: ...here.
19804 * intl.c: Moved to...
19805 * intl.cc: ...here.
19806 * ipa-comdats.c: Moved to...
19807 * ipa-comdats.cc: ...here.
19808 * ipa-cp.c: Moved to...
19809 * ipa-cp.cc: ...here.
19810 * ipa-devirt.c: Moved to...
19811 * ipa-devirt.cc: ...here.
19812 * ipa-fnsummary.c: Moved to...
19813 * ipa-fnsummary.cc: ...here.
19814 * ipa-icf-gimple.c: Moved to...
19815 * ipa-icf-gimple.cc: ...here.
19816 * ipa-icf.c: Moved to...
19817 * ipa-icf.cc: ...here.
19818 * ipa-inline-analysis.c: Moved to...
19819 * ipa-inline-analysis.cc: ...here.
19820 * ipa-inline-transform.c: Moved to...
19821 * ipa-inline-transform.cc: ...here.
19822 * ipa-inline.c: Moved to...
19823 * ipa-inline.cc: ...here.
19824 * ipa-modref-tree.c: Moved to...
19825 * ipa-modref-tree.cc: ...here.
19826 * ipa-modref.c: Moved to...
19827 * ipa-modref.cc: ...here.
19828 * ipa-param-manipulation.c: Moved to...
19829 * ipa-param-manipulation.cc: ...here.
19830 * ipa-polymorphic-call.c: Moved to...
19831 * ipa-polymorphic-call.cc: ...here.
19832 * ipa-predicate.c: Moved to...
19833 * ipa-predicate.cc: ...here.
19834 * ipa-profile.c: Moved to...
19835 * ipa-profile.cc: ...here.
19836 * ipa-prop.c: Moved to...
19837 * ipa-prop.cc: ...here.
19838 * ipa-pure-const.c: Moved to...
19839 * ipa-pure-const.cc: ...here.
19840 * ipa-ref.c: Moved to...
19841 * ipa-ref.cc: ...here.
19842 * ipa-reference.c: Moved to...
19843 * ipa-reference.cc: ...here.
19844 * ipa-split.c: Moved to...
19845 * ipa-split.cc: ...here.
19846 * ipa-sra.c: Moved to...
19847 * ipa-sra.cc: ...here.
19848 * ipa-utils.c: Moved to...
19849 * ipa-utils.cc: ...here.
19850 * ipa-visibility.c: Moved to...
19851 * ipa-visibility.cc: ...here.
19852 * ipa.c: Moved to...
19853 * ipa.cc: ...here.
19854 * ira-build.c: Moved to...
19855 * ira-build.cc: ...here.
19856 * ira-color.c: Moved to...
19857 * ira-color.cc: ...here.
19858 * ira-conflicts.c: Moved to...
19859 * ira-conflicts.cc: ...here.
19860 * ira-costs.c: Moved to...
19861 * ira-costs.cc: ...here.
19862 * ira-emit.c: Moved to...
19863 * ira-emit.cc: ...here.
19864 * ira-lives.c: Moved to...
19865 * ira-lives.cc: ...here.
19866 * ira.c: Moved to...
19867 * ira.cc: ...here.
19868 * jump.c: Moved to...
19869 * jump.cc: ...here.
19870 * langhooks.c: Moved to...
19871 * langhooks.cc: ...here.
19872 * lcm.c: Moved to...
19873 * lcm.cc: ...here.
19874 * lists.c: Moved to...
19875 * lists.cc: ...here.
19876 * loop-doloop.c: Moved to...
19877 * loop-doloop.cc: ...here.
19878 * loop-init.c: Moved to...
19879 * loop-init.cc: ...here.
19880 * loop-invariant.c: Moved to...
19881 * loop-invariant.cc: ...here.
19882 * loop-iv.c: Moved to...
19883 * loop-iv.cc: ...here.
19884 * loop-unroll.c: Moved to...
19885 * loop-unroll.cc: ...here.
19886 * lower-subreg.c: Moved to...
19887 * lower-subreg.cc: ...here.
19888 * lra-assigns.c: Moved to...
19889 * lra-assigns.cc: ...here.
19890 * lra-coalesce.c: Moved to...
19891 * lra-coalesce.cc: ...here.
19892 * lra-constraints.c: Moved to...
19893 * lra-constraints.cc: ...here.
19894 * lra-eliminations.c: Moved to...
19895 * lra-eliminations.cc: ...here.
19896 * lra-lives.c: Moved to...
19897 * lra-lives.cc: ...here.
19898 * lra-remat.c: Moved to...
19899 * lra-remat.cc: ...here.
19900 * lra-spills.c: Moved to...
19901 * lra-spills.cc: ...here.
19902 * lra.c: Moved to...
19903 * lra.cc: ...here.
19904 * lto-cgraph.c: Moved to...
19905 * lto-cgraph.cc: ...here.
19906 * lto-compress.c: Moved to...
19907 * lto-compress.cc: ...here.
19908 * lto-opts.c: Moved to...
19909 * lto-opts.cc: ...here.
19910 * lto-section-in.c: Moved to...
19911 * lto-section-in.cc: ...here.
19912 * lto-section-out.c: Moved to...
19913 * lto-section-out.cc: ...here.
19914 * lto-streamer-in.c: Moved to...
19915 * lto-streamer-in.cc: ...here.
19916 * lto-streamer-out.c: Moved to...
19917 * lto-streamer-out.cc: ...here.
19918 * lto-streamer.c: Moved to...
19919 * lto-streamer.cc: ...here.
19920 * lto-wrapper.c: Moved to...
19921 * lto-wrapper.cc: ...here.
19922 * main.c: Moved to...
19923 * main.cc: ...here.
19924 * mcf.c: Moved to...
19925 * mcf.cc: ...here.
19926 * mode-switching.c: Moved to...
19927 * mode-switching.cc: ...here.
19928 * modulo-sched.c: Moved to...
19929 * modulo-sched.cc: ...here.
19930 * multiple_target.c: Moved to...
19931 * multiple_target.cc: ...here.
19932 * omp-expand.c: Moved to...
19933 * omp-expand.cc: ...here.
19934 * omp-general.c: Moved to...
19935 * omp-general.cc: ...here.
19936 * omp-low.c: Moved to...
19937 * omp-low.cc: ...here.
19938 * omp-offload.c: Moved to...
19939 * omp-offload.cc: ...here.
19940 * omp-simd-clone.c: Moved to...
19941 * omp-simd-clone.cc: ...here.
19942 * opt-suggestions.c: Moved to...
19943 * opt-suggestions.cc: ...here.
19944 * optabs-libfuncs.c: Moved to...
19945 * optabs-libfuncs.cc: ...here.
19946 * optabs-query.c: Moved to...
19947 * optabs-query.cc: ...here.
19948 * optabs-tree.c: Moved to...
19949 * optabs-tree.cc: ...here.
19950 * optabs.c: Moved to...
19951 * optabs.cc: ...here.
19952 * opts-common.c: Moved to...
19953 * opts-common.cc: ...here.
19954 * opts-global.c: Moved to...
19955 * opts-global.cc: ...here.
19956 * opts.c: Moved to...
19957 * opts.cc: ...here.
19958 * passes.c: Moved to...
19959 * passes.cc: ...here.
19960 * plugin.c: Moved to...
19961 * plugin.cc: ...here.
19962 * postreload-gcse.c: Moved to...
19963 * postreload-gcse.cc: ...here.
19964 * postreload.c: Moved to...
19965 * postreload.cc: ...here.
19966 * predict.c: Moved to...
19967 * predict.cc: ...here.
19968 * prefix.c: Moved to...
19969 * prefix.cc: ...here.
19970 * pretty-print.c: Moved to...
19971 * pretty-print.cc: ...here.
19972 * print-rtl-function.c: Moved to...
19973 * print-rtl-function.cc: ...here.
19974 * print-rtl.c: Moved to...
19975 * print-rtl.cc: ...here.
19976 * print-tree.c: Moved to...
19977 * print-tree.cc: ...here.
19978 * profile-count.c: Moved to...
19979 * profile-count.cc: ...here.
19980 * profile.c: Moved to...
19981 * profile.cc: ...here.
19982 * read-md.c: Moved to...
19983 * read-md.cc: ...here.
19984 * read-rtl-function.c: Moved to...
19985 * read-rtl-function.cc: ...here.
19986 * read-rtl.c: Moved to...
19987 * read-rtl.cc: ...here.
19988 * real.c: Moved to...
19989 * real.cc: ...here.
19990 * realmpfr.c: Moved to...
19991 * realmpfr.cc: ...here.
19992 * recog.c: Moved to...
19993 * recog.cc: ...here.
19994 * ree.c: Moved to...
19995 * ree.cc: ...here.
19996 * reg-stack.c: Moved to...
19997 * reg-stack.cc: ...here.
19998 * regcprop.c: Moved to...
19999 * regcprop.cc: ...here.
20000 * reginfo.c: Moved to...
20001 * reginfo.cc: ...here.
20002 * regrename.c: Moved to...
20003 * regrename.cc: ...here.
20004 * regstat.c: Moved to...
20005 * regstat.cc: ...here.
20006 * reload.c: Moved to...
20007 * reload.cc: ...here.
20008 * reload1.c: Moved to...
20009 * reload1.cc: ...here.
20010 * reorg.c: Moved to...
20011 * reorg.cc: ...here.
20012 * resource.c: Moved to...
20013 * resource.cc: ...here.
20014 * rtl-error.c: Moved to...
20015 * rtl-error.cc: ...here.
20016 * rtl-tests.c: Moved to...
20017 * rtl-tests.cc: ...here.
20018 * rtl.c: Moved to...
20019 * rtl.cc: ...here.
20020 * rtlanal.c: Moved to...
20021 * rtlanal.cc: ...here.
20022 * rtlhash.c: Moved to...
20023 * rtlhash.cc: ...here.
20024 * rtlhooks.c: Moved to...
20025 * rtlhooks.cc: ...here.
20026 * rtx-vector-builder.c: Moved to...
20027 * rtx-vector-builder.cc: ...here.
20028 * run-rtl-passes.c: Moved to...
20029 * run-rtl-passes.cc: ...here.
20030 * sancov.c: Moved to...
20031 * sancov.cc: ...here.
20032 * sanopt.c: Moved to...
20033 * sanopt.cc: ...here.
20034 * sbitmap.c: Moved to...
20035 * sbitmap.cc: ...here.
20036 * sched-deps.c: Moved to...
20037 * sched-deps.cc: ...here.
20038 * sched-ebb.c: Moved to...
20039 * sched-ebb.cc: ...here.
20040 * sched-rgn.c: Moved to...
20041 * sched-rgn.cc: ...here.
20042 * sel-sched-dump.c: Moved to...
20043 * sel-sched-dump.cc: ...here.
20044 * sel-sched-ir.c: Moved to...
20045 * sel-sched-ir.cc: ...here.
20046 * sel-sched.c: Moved to...
20047 * sel-sched.cc: ...here.
20048 * selftest-diagnostic.c: Moved to...
20049 * selftest-diagnostic.cc: ...here.
20050 * selftest-rtl.c: Moved to...
20051 * selftest-rtl.cc: ...here.
20052 * selftest-run-tests.c: Moved to...
20053 * selftest-run-tests.cc: ...here.
20054 * selftest.c: Moved to...
20055 * selftest.cc: ...here.
20056 * sese.c: Moved to...
20057 * sese.cc: ...here.
20058 * shrink-wrap.c: Moved to...
20059 * shrink-wrap.cc: ...here.
20060 * simplify-rtx.c: Moved to...
20061 * simplify-rtx.cc: ...here.
20062 * sparseset.c: Moved to...
20063 * sparseset.cc: ...here.
20064 * spellcheck-tree.c: Moved to...
20065 * spellcheck-tree.cc: ...here.
20066 * spellcheck.c: Moved to...
20067 * spellcheck.cc: ...here.
20068 * sreal.c: Moved to...
20069 * sreal.cc: ...here.
20070 * stack-ptr-mod.c: Moved to...
20071 * stack-ptr-mod.cc: ...here.
20072 * statistics.c: Moved to...
20073 * statistics.cc: ...here.
20074 * stmt.c: Moved to...
20075 * stmt.cc: ...here.
20076 * stor-layout.c: Moved to...
20077 * stor-layout.cc: ...here.
20078 * store-motion.c: Moved to...
20079 * store-motion.cc: ...here.
20080 * streamer-hooks.c: Moved to...
20081 * streamer-hooks.cc: ...here.
20082 * stringpool.c: Moved to...
20083 * stringpool.cc: ...here.
20084 * substring-locations.c: Moved to...
20085 * substring-locations.cc: ...here.
20086 * symtab.c: Moved to...
20087 * symtab.cc: ...here.
20088 * target-globals.c: Moved to...
20089 * target-globals.cc: ...here.
20090 * targhooks.c: Moved to...
20091 * targhooks.cc: ...here.
20092 * timevar.c: Moved to...
20093 * timevar.cc: ...here.
20094 * toplev.c: Moved to...
20095 * toplev.cc: ...here.
20096 * tracer.c: Moved to...
20097 * tracer.cc: ...here.
20098 * trans-mem.c: Moved to...
20099 * trans-mem.cc: ...here.
20100 * tree-affine.c: Moved to...
20101 * tree-affine.cc: ...here.
20102 * tree-call-cdce.c: Moved to...
20103 * tree-call-cdce.cc: ...here.
20104 * tree-cfg.c: Moved to...
20105 * tree-cfg.cc: ...here.
20106 * tree-cfgcleanup.c: Moved to...
20107 * tree-cfgcleanup.cc: ...here.
20108 * tree-chrec.c: Moved to...
20109 * tree-chrec.cc: ...here.
20110 * tree-complex.c: Moved to...
20111 * tree-complex.cc: ...here.
20112 * tree-data-ref.c: Moved to...
20113 * tree-data-ref.cc: ...here.
20114 * tree-dfa.c: Moved to...
20115 * tree-dfa.cc: ...here.
20116 * tree-diagnostic.c: Moved to...
20117 * tree-diagnostic.cc: ...here.
20118 * tree-dump.c: Moved to...
20119 * tree-dump.cc: ...here.
20120 * tree-eh.c: Moved to...
20121 * tree-eh.cc: ...here.
20122 * tree-emutls.c: Moved to...
20123 * tree-emutls.cc: ...here.
20124 * tree-if-conv.c: Moved to...
20125 * tree-if-conv.cc: ...here.
20126 * tree-inline.c: Moved to...
20127 * tree-inline.cc: ...here.
20128 * tree-into-ssa.c: Moved to...
20129 * tree-into-ssa.cc: ...here.
20130 * tree-iterator.c: Moved to...
20131 * tree-iterator.cc: ...here.
20132 * tree-loop-distribution.c: Moved to...
20133 * tree-loop-distribution.cc: ...here.
20134 * tree-nested.c: Moved to...
20135 * tree-nested.cc: ...here.
20136 * tree-nrv.c: Moved to...
20137 * tree-nrv.cc: ...here.
20138 * tree-object-size.c: Moved to...
20139 * tree-object-size.cc: ...here.
20140 * tree-outof-ssa.c: Moved to...
20141 * tree-outof-ssa.cc: ...here.
20142 * tree-parloops.c: Moved to...
20143 * tree-parloops.cc: ...here.
20144 * tree-phinodes.c: Moved to...
20145 * tree-phinodes.cc: ...here.
20146 * tree-predcom.c: Moved to...
20147 * tree-predcom.cc: ...here.
20148 * tree-pretty-print.c: Moved to...
20149 * tree-pretty-print.cc: ...here.
20150 * tree-profile.c: Moved to...
20151 * tree-profile.cc: ...here.
20152 * tree-scalar-evolution.c: Moved to...
20153 * tree-scalar-evolution.cc: ...here.
20154 * tree-sra.c: Moved to...
20155 * tree-sra.cc: ...here.
20156 * tree-ssa-address.c: Moved to...
20157 * tree-ssa-address.cc: ...here.
20158 * tree-ssa-alias.c: Moved to...
20159 * tree-ssa-alias.cc: ...here.
20160 * tree-ssa-ccp.c: Moved to...
20161 * tree-ssa-ccp.cc: ...here.
20162 * tree-ssa-coalesce.c: Moved to...
20163 * tree-ssa-coalesce.cc: ...here.
20164 * tree-ssa-copy.c: Moved to...
20165 * tree-ssa-copy.cc: ...here.
20166 * tree-ssa-dce.c: Moved to...
20167 * tree-ssa-dce.cc: ...here.
20168 * tree-ssa-dom.c: Moved to...
20169 * tree-ssa-dom.cc: ...here.
20170 * tree-ssa-dse.c: Moved to...
20171 * tree-ssa-dse.cc: ...here.
20172 * tree-ssa-forwprop.c: Moved to...
20173 * tree-ssa-forwprop.cc: ...here.
20174 * tree-ssa-ifcombine.c: Moved to...
20175 * tree-ssa-ifcombine.cc: ...here.
20176 * tree-ssa-live.c: Moved to...
20177 * tree-ssa-live.cc: ...here.
20178 * tree-ssa-loop-ch.c: Moved to...
20179 * tree-ssa-loop-ch.cc: ...here.
20180 * tree-ssa-loop-im.c: Moved to...
20181 * tree-ssa-loop-im.cc: ...here.
20182 * tree-ssa-loop-ivcanon.c: Moved to...
20183 * tree-ssa-loop-ivcanon.cc: ...here.
20184 * tree-ssa-loop-ivopts.c: Moved to...
20185 * tree-ssa-loop-ivopts.cc: ...here.
20186 * tree-ssa-loop-manip.c: Moved to...
20187 * tree-ssa-loop-manip.cc: ...here.
20188 * tree-ssa-loop-niter.c: Moved to...
20189 * tree-ssa-loop-niter.cc: ...here.
20190 * tree-ssa-loop-prefetch.c: Moved to...
20191 * tree-ssa-loop-prefetch.cc: ...here.
20192 * tree-ssa-loop-split.c: Moved to...
20193 * tree-ssa-loop-split.cc: ...here.
20194 * tree-ssa-loop-unswitch.c: Moved to...
20195 * tree-ssa-loop-unswitch.cc: ...here.
20196 * tree-ssa-loop.c: Moved to...
20197 * tree-ssa-loop.cc: ...here.
20198 * tree-ssa-math-opts.c: Moved to...
20199 * tree-ssa-math-opts.cc: ...here.
20200 * tree-ssa-operands.c: Moved to...
20201 * tree-ssa-operands.cc: ...here.
20202 * tree-ssa-phiopt.c: Moved to...
20203 * tree-ssa-phiopt.cc: ...here.
20204 * tree-ssa-phiprop.c: Moved to...
20205 * tree-ssa-phiprop.cc: ...here.
20206 * tree-ssa-pre.c: Moved to...
20207 * tree-ssa-pre.cc: ...here.
20208 * tree-ssa-propagate.c: Moved to...
20209 * tree-ssa-propagate.cc: ...here.
20210 * tree-ssa-reassoc.c: Moved to...
20211 * tree-ssa-reassoc.cc: ...here.
20212 * tree-ssa-sccvn.c: Moved to...
20213 * tree-ssa-sccvn.cc: ...here.
20214 * tree-ssa-scopedtables.c: Moved to...
20215 * tree-ssa-scopedtables.cc: ...here.
20216 * tree-ssa-sink.c: Moved to...
20217 * tree-ssa-sink.cc: ...here.
20218 * tree-ssa-strlen.c: Moved to...
20219 * tree-ssa-strlen.cc: ...here.
20220 * tree-ssa-structalias.c: Moved to...
20221 * tree-ssa-structalias.cc: ...here.
20222 * tree-ssa-tail-merge.c: Moved to...
20223 * tree-ssa-tail-merge.cc: ...here.
20224 * tree-ssa-ter.c: Moved to...
20225 * tree-ssa-ter.cc: ...here.
20226 * tree-ssa-threadbackward.c: Moved to...
20227 * tree-ssa-threadbackward.cc: ...here.
20228 * tree-ssa-threadedge.c: Moved to...
20229 * tree-ssa-threadedge.cc: ...here.
20230 * tree-ssa-threadupdate.c: Moved to...
20231 * tree-ssa-threadupdate.cc: ...here.
20232 * tree-ssa-uncprop.c: Moved to...
20233 * tree-ssa-uncprop.cc: ...here.
20234 * tree-ssa-uninit.c: Moved to...
20235 * tree-ssa-uninit.cc: ...here.
20236 * tree-ssa.c: Moved to...
20237 * tree-ssa.cc: ...here.
20238 * tree-ssanames.c: Moved to...
20239 * tree-ssanames.cc: ...here.
20240 * tree-stdarg.c: Moved to...
20241 * tree-stdarg.cc: ...here.
20242 * tree-streamer-in.c: Moved to...
20243 * tree-streamer-in.cc: ...here.
20244 * tree-streamer-out.c: Moved to...
20245 * tree-streamer-out.cc: ...here.
20246 * tree-streamer.c: Moved to...
20247 * tree-streamer.cc: ...here.
20248 * tree-switch-conversion.c: Moved to...
20249 * tree-switch-conversion.cc: ...here.
20250 * tree-tailcall.c: Moved to...
20251 * tree-tailcall.cc: ...here.
20252 * tree-vect-data-refs.c: Moved to...
20253 * tree-vect-data-refs.cc: ...here.
20254 * tree-vect-generic.c: Moved to...
20255 * tree-vect-generic.cc: ...here.
20256 * tree-vect-loop-manip.c: Moved to...
20257 * tree-vect-loop-manip.cc: ...here.
20258 * tree-vect-loop.c: Moved to...
20259 * tree-vect-loop.cc: ...here.
20260 * tree-vect-patterns.c: Moved to...
20261 * tree-vect-patterns.cc: ...here.
20262 * tree-vect-slp-patterns.c: Moved to...
20263 * tree-vect-slp-patterns.cc: ...here.
20264 * tree-vect-slp.c: Moved to...
20265 * tree-vect-slp.cc: ...here.
20266 * tree-vect-stmts.c: Moved to...
20267 * tree-vect-stmts.cc: ...here.
20268 * tree-vector-builder.c: Moved to...
20269 * tree-vector-builder.cc: ...here.
20270 * tree-vectorizer.c: Moved to...
20271 * tree-vectorizer.cc: ...here.
20272 * tree-vrp.c: Moved to...
20273 * tree-vrp.cc: ...here.
20274 * tree.c: Moved to...
20275 * tree.cc: ...here.
20276 * tsan.c: Moved to...
20277 * tsan.cc: ...here.
20278 * typed-splay-tree.c: Moved to...
20279 * typed-splay-tree.cc: ...here.
20280 * ubsan.c: Moved to...
20281 * ubsan.cc: ...here.
20282 * valtrack.c: Moved to...
20283 * valtrack.cc: ...here.
20284 * value-prof.c: Moved to...
20285 * value-prof.cc: ...here.
20286 * var-tracking.c: Moved to...
20287 * var-tracking.cc: ...here.
20288 * varasm.c: Moved to...
20289 * varasm.cc: ...here.
20290 * varpool.c: Moved to...
20291 * varpool.cc: ...here.
20292 * vec-perm-indices.c: Moved to...
20293 * vec-perm-indices.cc: ...here.
20294 * vec.c: Moved to...
20295 * vec.cc: ...here.
20296 * vmsdbgout.c: Moved to...
20297 * vmsdbgout.cc: ...here.
20298 * vr-values.c: Moved to...
20299 * vr-values.cc: ...here.
20300 * vtable-verify.c: Moved to...
20301 * vtable-verify.cc: ...here.
20302 * web.c: Moved to...
20303 * web.cc: ...here.
20304 * xcoffout.c: Moved to...
20305 * xcoffout.cc: ...here.
20306
20307 2022-01-17 qing zhao <qing.zhao@oracle.com>
20308
20309 * tree-ssa-uninit.c (warn_uninit): Delete the 4th parameter. Handle
20310 .DEFERRED_INIT call with an anonymous SSA_NAME specially.
20311 (check_defs): Handle .DEFERRED_INIT call with an anonymous SSA_NAME
20312 specially.
20313 (warn_uninit_phi_uses): Delete the 4th actual when call warn_uninit.
20314 (warn_uninitialized_vars): Likewise.
20315 (warn_uninitialized_phi): Likewise.
20316
20317 2022-01-17 Jason Merrill <jason@redhat.com>
20318
20319 * diagnostic.h (struct diagnostic_context): Add includes_seen.
20320 * diagnostic.c (diagnostic_initialize): Initialize it.
20321 (diagnostic_finish): Clean it up.
20322 (includes_seen): New function.
20323 (diagnostic_report_current_module): Use it.
20324
20325 2022-01-17 Richard Biener <rguenther@suse.de>
20326
20327 PR middle-end/101292
20328 * diagnostic-spec.c (copy_warning): Make sure to not
20329 reference old hashtable content on possible resize.
20330 * warning-control.cc (copy_warning): Likewise.
20331
20332 2022-01-17 Jakub Jelinek <jakub@redhat.com>
20333
20334 PR target/103973
20335 * tree-cfg.h (cond_only_block_p): Declare.
20336 * tree-ssa-phiopt.c (cond_only_block_p): Move function to ...
20337 * tree-cfg.c (cond_only_block_p): ... here. No longer static.
20338 * optabs.def (spaceship_optab): New optab.
20339 * internal-fn.def (SPACESHIP): New internal function.
20340 * internal-fn.h (expand_SPACESHIP): Declare.
20341 * internal-fn.c (expand_PHI): Formatting fix.
20342 (expand_SPACESHIP): New function.
20343 * tree-ssa-math-opts.c (optimize_spaceship): New function.
20344 (math_opts_dom_walker::after_dom_children): Use it.
20345 * config/i386/i386.md (spaceship<mode>3): New define_expand.
20346 * config/i386/i386-protos.h (ix86_expand_fp_spaceship): Declare.
20347 * config/i386/i386-expand.c (ix86_expand_fp_spaceship): New function.
20348 * doc/md.texi (spaceship@var{m}3): Document.
20349
20350 2022-01-17 Kewen Lin <linkw@linux.ibm.com>
20351
20352 * config/rs6000/altivec.md (altivec_vreveti2): Remove.
20353 * config/rs6000/vsx.md (*vsx_extract_si, *vsx_extract_si_<uns>float_df,
20354 *vsx_extract_si_<uns>float_<mode>, *vsx_insert_extract_v4sf_p9): Use
20355 known constant values to simplify code.
20356
20357 2022-01-17 Haochen Gui <guihaoc@gcc.gnu.org>
20358
20359 PR target/103124
20360 * config/rs6000/vsx.md (split pattern for TI to V1TI move): Defined.
20361
20362 2022-01-16 wwwhhhyyy <hongyu.wang@intel.com>
20363
20364 * config/i386/i386.h (TARGET_DEST_FALSE_DEP_FOR_GLC): New macro.
20365 * config/i386/sse.md (<avx512>_<complexopname>_<mode><maskc_name><round_name>):
20366 Insert zero-idiom in output template when attr enabled, set new attribute to
20367 true for non-mask/maskz insn.
20368 (avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>):
20369 Likewise.
20370 (avx512dq_mul<mode>3<mask_name>): Likewise.
20371 (<avx2_avx512>_permvar<mode><mask_name>): Likewise.
20372 (avx2_perm<mode>_1<mask_name>): Likewise.
20373 (avx512f_perm<mode>_1<mask_name>): Likewise.
20374 (avx512dq_rangep<mode><mask_name><round_saeonly_name>): Likewise.
20375 (avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>):
20376 Likewise.
20377 (<avx512>_getmant<mode><mask_name><round_saeonly_name>): Likewise.
20378 (avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
20379 Likewise.
20380 * config/i386/subst.md (mask3_dest_false_dep_for_glc_cond): New
20381 subst_attr.
20382 (mask4_dest_false_dep_for_glc_cond): Likewise.
20383 (mask6_dest_false_dep_for_glc_cond): Likewise.
20384 (mask10_dest_false_dep_for_glc_cond): Likewise.
20385 (maskc_dest_false_dep_for_glc_cond): Likewise.
20386 (mask_scalar4_dest_false_dep_for_glc_cond): Likewise.
20387 (mask_scalarc_dest_false_dep_for_glc_cond): Likewise.
20388 * config/i386/x86-tune.def (X86_TUNE_DEST_FALSE_DEP_FOR_GLC): New
20389 DEF_TUNE enabled for m_SAPPHIRERAPIDS and m_ALDERLAKE
20390
20391 2022-01-15 Martin Sebor <msebor@redhat.com>
20392
20393 PR c/63272
20394 * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
20395 -Wdangling-pointer.
20396 * doc/invoke.texi (-Wdangling-pointer): Document new option.
20397 * gimple-ssa-warn-access.cc (pass_waccess::clone): Set new member.
20398 (pass_waccess::check_pointer_uses): New function.
20399 (pass_waccess::gimple_call_return_arg): New function.
20400 (pass_waccess::gimple_call_return_arg_ref): New function.
20401 (pass_waccess::check_call_dangling): New function.
20402 (pass_waccess::check_dangling_uses): New function overloads.
20403 (pass_waccess::check_dangling_stores): New function.
20404 (pass_waccess::check_dangling_stores): New function.
20405 (pass_waccess::m_clobbers): New data member.
20406 (pass_waccess::m_func): New data member.
20407 (pass_waccess::m_run_number): New data member.
20408 (pass_waccess::m_check_dangling_p): New data member.
20409 (pass_waccess::check_alloca): Check m_early_checks_p.
20410 (pass_waccess::check_alloc_size_call): Same.
20411 (pass_waccess::check_strcat): Same.
20412 (pass_waccess::check_strncat): Same.
20413 (pass_waccess::check_stxcpy): Same.
20414 (pass_waccess::check_stxncpy): Same.
20415 (pass_waccess::check_strncmp): Same.
20416 (pass_waccess::check_memop_access): Same.
20417 (pass_waccess::check_read_access): Same.
20418 (pass_waccess::check_builtin): Call check_pointer_uses.
20419 (pass_waccess::warn_invalid_pointer): Add arguments.
20420 (is_auto_decl): New function.
20421 (pass_waccess::check_stmt): New function.
20422 (pass_waccess::check_block): Call check_stmt.
20423 (pass_waccess::execute): Call check_dangling_uses,
20424 check_dangling_stores. Empty m_clobbers.
20425 * passes.def (pass_warn_access): Invoke pass two more times.
20426
20427 2022-01-15 Martin Sebor <msebor@redhat.com>
20428
20429 PR tree-optimization/80532
20430 * common.opt (-Wuse-after-free): New options.
20431 * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
20432 OPT_Wreturn_local_addr and OPT_Wuse_after_free_.
20433 * diagnostic-spec.h (NW_DANGLING): New enumerator.
20434 * doc/invoke.texi (-Wuse-after-free): Document new option.
20435 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Rename...
20436 (pass_waccess::check_call_access): ...to this.
20437 (pass_waccess::check): Rename...
20438 (pass_waccess::check_block): ...to this.
20439 (pass_waccess::check_pointer_uses): New function.
20440 (pass_waccess::gimple_call_return_arg): New function.
20441 (pass_waccess::warn_invalid_pointer): New function.
20442 (pass_waccess::check_builtin): Handle free and realloc.
20443 (gimple_use_after_inval_p): New function.
20444 (get_realloc_lhs): New function.
20445 (maybe_warn_mismatched_realloc): New function.
20446 (pointers_related_p): New function.
20447 (pass_waccess::check_call): Call check_pointer_uses.
20448 (pass_waccess::execute): Compute and free dominance info.
20449
20450 2022-01-15 Uroš Bizjak <ubizjak@gmail.com>
20451
20452 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
20453 expand_simple_unop and expand_simple_binop instead of manually
20454 constructing NOT, AND and IOR RTXes. Use vector_all_ones_operand
20455 consistently. Eliminate common subexpressions and simplify code.
20456 * config/i386/sse.md (<any_logic:code><MODEF:mode>3): New expander.
20457 (<any_logic:code><MODEF:mode>3): Make public.
20458
20459 2022-01-14 Eric Botcazou <ebotcazou@adacore.com>
20460
20461 * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Dump
20462 reverse flag as "reverse" for the sake of consistency.
20463 * ipa-sra.c: Fix copyright year.
20464 (ipa_sra_function_summaries::duplicate): Copy the reverse flag.
20465 (dump_isra_access): Tweak dump line.
20466 (isra_write_node_summary): Write the reverse flag.
20467 (isra_read_node_info): Read it.
20468 (pull_accesses_from_callee): Test its consistency and copy it.
20469
20470 2022-01-14 Richard Sandiford <richard.sandiford@arm.com>
20471
20472 PR middle-end/104026
20473 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
20474 partial_load_store_bias.
20475
20476 2022-01-14 Martin Sebor <msebor@redhat.com>
20477
20478 PR middle-end/101475
20479 * pointer-query.cc (handle_component_ref): Use the size of
20480 the enclosing object if it's smaller than the member.
20481
20482 2022-01-14 Martin Liska <mliska@suse.cz>
20483
20484 * configure: Regenerate.
20485
20486 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
20487
20488 * config/i386/i386.md (*add<mode>_1_slp"):
20489 Mark alternative 1 output operand earlyclobbered.
20490 (*sub<mode>_1_slp): Ditto.
20491 (*and<mode>_1_slp): Ditto.
20492 (*<code><mode>_1_slp): Ditto.
20493 (*neg<mode>_1_slp): Ditto.
20494 (*one_cmpl<mode>_1_slp): Ditto.
20495 (*ashl<mode>3_1_slp): Ditto.
20496 (*<insn><mode>3_1_slp): Ditto.
20497 (*<insn><mode>3_1_slp): Ditto.
20498
20499 2022-01-14 Kewen Lin <linkw@linux.ibm.com>
20500
20501 PR tree-optimization/104015
20502 * tree-vect-loop.c (vect_analyze_loop): Check
20503 param_vect_partial_vector_usage for supports_partial_vectors.
20504
20505 2022-01-14 Jakub Jelinek <jakub@redhat.com>
20506
20507 PR c++/89074
20508 * fold-const.c (address_compare): Punt on comparison of address of
20509 one object with address of end of another object if
20510 folding_initializer.
20511
20512 2022-01-14 Jakub Jelinek <jakub@redhat.com>
20513
20514 PR target/98737
20515 * tree-ssa-forwprop.c (simplify_builtin_call): Canonicalize
20516 __atomic_fetch_op (p, x, y) op x into __atomic_op_fetch (p, x, y)
20517 and __atomic_op_fetch (p, x, y) iop x into
20518 __atomic_fetch_op (p, x, y).
20519
20520 2022-01-14 Claudiu Zissulescu <claziss@synopsys.com>
20521
20522 * config/arc/arc.h (DWARF_FRAME_REGNUM): Update definition.
20523 (DWARF_FRAME_RETURN_COLUMN): Use RETURN_ADDR_REGNUM macro.
20524 (INCOMING_RETURN_ADDR_RTX): Likewise.
20525 (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
20526
20527 2022-01-14 Claudiu Zissulescu <claziss@synopsys.com>
20528
20529 * config/arc/arc.c (arc_compute_frame_size): Remove condition when
20530 computin checking accumulator regs.
20531 (arc_expand_prologue): Update comments.
20532 (arc_expand_epilogue): Likewise.
20533
20534 2022-01-14 Roger Sayle <roger@nextmovesoftware.com>
20535 Uroš Bizjak <ubizjak@gmail.com>
20536
20537 * config/i386/i386-expand.c (ix86_expand_v1ti_to_ti): Use force_reg.
20538 (ix86_expand_ti_to_v1ti): Use force_reg.
20539 (ix86_expand_v1ti_shift): Use force_reg.
20540 (ix86_expand_v1ti_rotate): Use force_reg.
20541 (ix86_expand_v1ti_ashiftrt): Provide new three operation
20542 implementations for shifts by 111..126 bits. Use force_reg.
20543
20544 2022-01-14 Martin Liska <mliska@suse.cz>
20545
20546 * common/config/arm/arm-common.c (arm_target_mode): Fix
20547 warning: unterminated quoting directive [-Wformat=].
20548
20549 2022-01-14 Siddhesh Poyarekar <siddhesh@gotplt.org>
20550
20551 PR tree-optimization/104009
20552 * tree-object-size.c (compute_builtin_object_size): Bail out on
20553 negative offset.
20554 (plus_stmt_object_size): Return maximum of wholesize and minimum
20555 of 0 for negative offset.
20556
20557 2022-01-14 liuhongt <hongtao.liu@intel.com>
20558
20559 PR target/104001
20560 PR target/94790
20561 PR target/104014
20562 * config/i386/i386.md (*xor2andn): Refine predicate of
20563 operands[0] from nonimmediate_operand to
20564 register_operand, remove TARGET_AVX512BW from condition.
20565
20566 2022-01-14 David Malcolm <dmalcolm@redhat.com>
20567
20568 * doc/extend.texi (Function Attributes): Note that "tainted_args" can
20569 be used on field decls.
20570 (Common Function Attributes): Add entry on "tainted_args" attribute.
20571
20572 2022-01-13 Anthony Sharp <anthonysharp15@gmail.com>
20573 Jason Merrill <jason@redhat.com>
20574
20575 PR c++/70417
20576 * doc/invoke.texi: Documentation for Wmissing-template-keyword.
20577
20578 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
20579
20580 PR target/103861
20581 * config/i386/i386.md (*ashlqi_ext<mode>_2): New insn pattern.
20582 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
20583 * config/i386/mmx.md (<any_shift:insn>v2qi):
20584 New insn_and_split pattern.
20585
20586 2022-01-13 Robin Dapp <rdapp@linux.ibm.com>
20587
20588 * internal-fn.c (expand_partial_load_optab_fn): Add bias.
20589 (expand_partial_store_optab_fn): Likewise.
20590 (internal_len_load_store_bias): New function.
20591 * internal-fn.h (VECT_PARTIAL_BIAS_UNSUPPORTED): New define.
20592 (internal_len_load_store_bias): New function.
20593 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Set bias.
20594 (vect_set_loop_condition_partial_vectors): Add header_seq parameter.
20595 * tree-vect-loop.c (vect_verify_loop_lens): Verify bias.
20596 (vect_estimate_min_profitable_iters): Account for bias.
20597 (vect_get_loop_len): Add bias-adjusted length.
20598 * tree-vect-stmts.c (vectorizable_store): Use.
20599 (vectorizable_load): Use.
20600 * tree-vectorizer.h (struct rgroup_controls): Add bias-adjusted length.
20601 (LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS): New macro.
20602 * config/rs6000/vsx.md: Use const0 bias predicate.
20603 * doc/md.texi: Document bias value.
20604
20605 2022-01-13 Andrew MacLeod <amacleod@redhat.com>
20606
20607 PR tree-optimization/83072
20608 PR tree-optimization/83073
20609 PR tree-optimization/97909
20610 * fold-const.c (expr_not_equal_to): Use a multi-range class.
20611
20612 2022-01-13 Andrew MacLeod <amacleod@redhat.com>
20613
20614 PR tree-optimization/96707
20615 * range-op.cc (operator_rshift::lhs_op1_relation): New.
20616
20617 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
20618
20619 * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
20620 Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
20621 (negv2qi splitters): Use lowpart_subreg instead of
20622 gen_lowpart to create subreg.
20623 (<plusminus:insn>v2qi3): Disparage GPR alternative a bit.
20624 Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
20625 (<plusminus:insn>v2qi3 splitters): Use lowpart_subreg instead of
20626 gen_lowpart to create subreg.
20627 * config/i386/i386.md (*subqi_ext<mode>_2): Move.
20628
20629 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
20630
20631 PR target/104003
20632 * config/i386/mmx.md (*xop_pcmov_<mode>): Use VI_16_32 mode iterator.
20633
20634 2022-01-13 Martin Liska <mliska@suse.cz>
20635
20636 * common/config/arm/arm-common.c (arm_target_mode): Wrap
20637 keywords with %<, %> and remove trailing punctuation char.
20638 (arm_canon_arch_option_1): Likewise.
20639 (arm_asm_auto_mfpu): Likewise.
20640 * config/arm/arm-builtins.c (arm_expand_builtin): Likewise.
20641 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Likewise.
20642 (use_vfp_abi): Likewise.
20643 (aapcs_vfp_is_call_or_return_candidate): Likewise.
20644 (arm_handle_cmse_nonsecure_entry): Likewise.
20645 (arm_handle_cmse_nonsecure_call): Likewise.
20646 (thumb1_md_asm_adjust): Likewise.
20647
20648 2022-01-13 Paul A. Clarke <pc@us.ibm.com>
20649
20650 * config/rs6000/smmintrin.h (_mm_round_pd, _mm_round_ps,
20651 _mm_round_sd, _mm_round_ss, _MM_FROUND_TO_NEAREST_INT,
20652 _MM_FROUND_TO_ZERO, _MM_FROUND_TO_POS_INF, _MM_FROUND_TO_NEG_INF,
20653 _MM_FROUND_CUR_DIRECTION, _MM_FROUND_RAISE_EXC, _MM_FROUND_NO_EXC,
20654 _MM_FROUND_NINT, _MM_FROUND_FLOOR, _MM_FROUND_CEIL, _MM_FROUND_TRUNC,
20655 _MM_FROUND_RINT, _MM_FROUND_NEARBYINT): New.
20656 (_mm_ceil_pd, _mm_ceil_ps, _mm_ceil_sd, _mm_ceil_ss, _mm_floor_pd,
20657 _mm_floor_ps, _mm_floor_sd, _mm_floor_ss): Convert from function to
20658 macro.
20659
20660 2022-01-13 Jakub Jelinek <jakub@redhat.com>
20661
20662 PR tree-optimization/103989
20663 * tree-inline.c (setup_one_parameter): Don't copy parms with
20664 empty type.
20665
20666 2022-01-13 Thomas Schwinge <thomas@codesourcery.com>
20667
20668 * tree-streamer-out.c (pack_ts_base_value_fields): Don't pack
20669 'TYPE_ADDR_SPACE' for offloading.
20670 * tree-streamer-in.c (unpack_ts_base_value_fields): Don't unpack
20671 'TYPE_ADDR_SPACE' for offloading.
20672
20673 2022-01-13 Julian Brown <julian@codesourcery.com>
20674 Thomas Schwinge <thomas@codesourcery.com>
20675
20676 * omp-oacc-kernels-decompose.cc (add_wait): New function, split out
20677 of...
20678 (add_async_clauses_and_wait): ...here. Call new outlined function.
20679 (decompose_kernels_region_body): Add wait at the end of
20680 explicitly-asynchronous kernels regions.
20681
20682 2022-01-13 Thomas Schwinge <thomas@codesourcery.com>
20683
20684 PR middle-end/100280
20685 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
20686 Mark variables used in synthesized data clauses as addressable.
20687
20688 2022-01-13 Martin Liska <mliska@suse.cz>
20689
20690 * config/epiphany/epiphany.c (epiphany_mode_priority):
20691 Use gcc_unreachable for not handled cases.
20692
20693 2022-01-13 Martin Liska <mliska@suse.cz>
20694
20695 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
20696 Use %qs format specifier.
20697 (epiphany_override_options): Wrap keyword in %<, %>.
20698
20699 2022-01-13 Haochen Jiang <haochen.jiang@intel.com>
20700
20701 PR target/94790
20702 * config/i386/i386.md (*xor2andn): New define_insn_and_split.
20703
20704 2022-01-13 Xionghu Luo <luoxhu@linux.ibm.com>
20705
20706 * config/rs6000/altivec.md (sldoi_to_mov<mode>): New.
20707
20708 2022-01-12 Uroš Bizjak <ubizjak@gmail.com>
20709
20710 PR target/100637
20711 PR target/103861
20712 * config/i386/i386-expand.c (ix86_emit_vec_binop): New static function.
20713 (ix86_expand_sse_movcc): Use ix86_emit_vec_binop instead of gen_rtx_X
20714 when constructing vector logic RTXes.
20715 (expand_vec_perm_pshufb2): Ditto.
20716 * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
20717 (<plusminus:insn>v2qi3): Ditto.
20718 (vcond<mode><mode>): Re-enable for TARGET_SSE2.
20719 (vcondu<mode><mode>): Ditto.
20720 (vcond_mask_<mode><mode>): Ditto.
20721 (one_cmpl<VI_32:mode>2): Remove expander.
20722 (one_cmpl<VI_16_32:mode>2): Rename from one_cmplv2qi.
20723 Use VI_16_32 mode iterator.
20724 (one_cmpl<VI_16_32:mode>2 splitters): Use VI_16_32 mode iterator.
20725 Use lowpart_subreg instead of gen_lowpart to create subreg.
20726 (*andnot<VI_16_32:mode>3): Merge from "*andnot<VI_32:mode>" and
20727 "*andnotv2qi3" insn patterns using VI_16_32 mode iterator.
20728 Disparage GPR alternative a bit. Add CC clobber.
20729 (*andnot<VI_16_32:mode>3 splitters): Use VI_16_32 mode iterator.
20730 Use lowpart_subreg instead of gen_lowpart to create subreg.
20731 (*<any_logic:code><VI_16_32:mode>3): Merge from
20732 "*<any_logic:code><VI_32:mode>" and "*<any_logic:code>v2qi3" insn patterns
20733 using VI_16_32 mode iterator. Disparage GPR alternative a bit.
20734 Add CC clobber.
20735 (*<any_logic:code><VI_16_32:mode>3 splitters):Use VI_16_32 mode
20736 iterator. Use lowpart_subreg instead of gen_lowpart to create subreg.
20737
20738 2022-01-12 Clément Chigot <clement.chigot@atos.net>
20739
20740 * configure.ac: Check sizeof ino_t and dev_t.
20741 (HOST_STAT_FOR_64BIT_INODES): New AC_DEFINE to provide stat
20742 syscall being able to handle 64bit inodes.
20743 * config.in: Regenerate.
20744 * configure: Regenerate.
20745 * incpath.c (HOST_STAT_FOR_64BIT_INODES): New define.
20746 (remove_duplicates): Use it.
20747
20748 2022-01-12 Andrew MacLeod <amacleod@redhat.com>
20749
20750 PR tree-optimization/103551
20751 * tree-vrp.c (execute_ranger_vrp): Always set EDGE_EXECUTABLE.
20752
20753 2022-01-12 Richard Biener <rguenther@suse.de>
20754
20755 PR tree-optimization/103990
20756 * tree-pass.h (tail_merge_optimize): Drop unused argument.
20757 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
20758 * tree-ssa-pre.c (pass_pre::execute): Retain TODO_cleanup_cfg
20759 and adjust call to tail_merge_optimize.
20760
20761 2022-01-12 Andre Vieira <andre.simoesdiasvieira@arm.com>
20762
20763 * tree-vect-loop.c (vect-analyze-loop): Handle scenario where target
20764 does not add autovectorize_vector_modes.
20765
20766 2022-01-12 Martin Liska <mliska@suse.cz>
20767
20768 * config/aarch64/aarch64.c (aarch64_parse_boolean_options): Use
20769 %qs where possible.
20770 (aarch64_parse_sve_width_string): Likewise.
20771 (aarch64_override_options_internal): Likewise.
20772 (aarch64_print_hint_for_extensions): Likewise.
20773 (aarch64_validate_sls_mitigation): Likewise.
20774 (aarch64_handle_attr_arch): Likewise.
20775 (aarch64_handle_attr_cpu): Likewise.
20776 (aarch64_handle_attr_tune): Likewise.
20777 (aarch64_handle_attr_isa_flags): Likewise.
20778
20779 2022-01-12 Martin Liska <mliska@suse.cz>
20780
20781 * config.gcc: Include elfos.h before ${tm_file}.
20782
20783 2022-01-12 Hans-Peter Nilsson <hp@axis.com>
20784
20785 * config/cris/cris.c: Quote identifiers in parameters to error
20786 and internal_error, and remove extraneous spaces with punctuation.
20787 * config/cris/cris.h (CRIS_ASSERT): When passing on stringified
20788 expression to internal_error, pass it as a parameter instead of
20789 appending it to the format part.
20790
20791 2022-01-12 Hans-Peter Nilsson <hp@axis.com>
20792
20793 * config/cris/cris.c (cris_postdbr_cmpelim): Parenthesize
20794 parameter to as_a.
20795
20796 2022-01-11 qing zhao <qing.zhao@oracle.com>
20797
20798 * gimplify.c (gimple_add_init_for_auto_var): Delete the 3rd argument.
20799 Change the 3rd argument of function .DEFERRED_INIT to the name of the
20800 decl.
20801 (gimplify_decl_expr): Delete the 3rd argument when call
20802 gimple_add_init_for_auto_var.
20803 * internal-fn.c (expand_DEFERRED_INIT): Update comments to reflect
20804 the 3rd argument change of function .DEFERRED_INIT.
20805 * tree-cfg.c (verify_gimple_call): Update comments and verification
20806 to reflect the 3rd argument change of function .DEFERRED_INIT.
20807 * tree-sra.c (generate_subtree_deferred_init): Delete the 3rd argument.
20808 (sra_modify_deferred_init): Change the 3rd argument of function
20809 .DEFERRED_INIT to the name of the decl.
20810
20811 2022-01-11 Thomas Koenig <tkoenig@gcc.gnu.org>
20812
20813 * flag-types.h (enum gfc_convert): Add flags for
20814 conversion.
20815
20816 2022-01-11 Michael Meissner <meissner@the-meissners.org>
20817
20818 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
20819 checks for only C/C++ front ends before allowing the long double
20820 format to change without a warning.
20821
20822 2022-01-11 Richard Sandiford <richard.sandiford@arm.com>
20823
20824 PR rtl-optimization/103974
20825 * ira-int.h (ira_subloop_allocnos_can_differ_p): Take an
20826 extra argument, default true, that says whether old-reload
20827 targets should be excluded.
20828 * ira-color.c (color_pass): Pass false.
20829
20830 2022-01-11 Uroš Bizjak <ubizjak@gmail.com>
20831
20832 PR target/103861
20833 * config/i386/mmx.md (vcond<mode><mode>):
20834 Use VI_16_32 mode iterator. Enable for TARGET_SSE4_1.
20835 (vcondu<mode><mode>): Ditto.
20836 (vcond_mask_<mode><mode>): Ditto.
20837 (mmx_pblendvb_v8qi): Rename from mmx_pblendvb64.
20838 (mmx_pblendvb_<mode>): Rename from mmx_pblendvb32.
20839 Use VI_16_32 mode iterator.
20840 * config/i386/i386-expand.c (ix86_expand_sse_movcc):
20841 Update for rename. Handle V2QImode.
20842 (expand_vec_perm_blend): Update for rename.
20843
20844 2022-01-11 Jakub Jelinek <jakub@redhat.com>
20845
20846 PR c++/101597
20847 * tree.def (OBJ_TYPE_REF): Document type of OBJ_TYPE_REF_TOKEN.
20848
20849 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
20850
20851 PR middle-end/70090
20852 * tree-object-size.c (size_valid_p): New function.
20853 (size_for_offset): Remove OFFSET constness assertion.
20854 (addr_object_size): Build dynamic expressions for object
20855 sizes and use size_valid_p to decide if it is valid for the
20856 given OBJECT_SIZE_TYPE.
20857 (compute_builtin_object_size): Allow dynamic offsets when
20858 computing size at O0.
20859 (call_object_size): Call size_valid_p.
20860 (plus_stmt_object_size): Allow non-constant offset and use
20861 size_valid_p to decide if it is valid for the given
20862 OBJECT_SIZE_TYPE.
20863
20864 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
20865
20866 PR middle-end/70090
20867 * tree-object-size.c (alloc_object_size): Make and return
20868 non-constant size expression.
20869 (call_object_size): Return expression or unknown based on
20870 whether dynamic object size is requested.
20871
20872 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
20873
20874 PR middle-end/70090
20875 * tree-object-size.c: Include tree-dfa.h.
20876 (parm_object_size): New function.
20877 (collect_object_sizes_for): Call it.
20878
20879 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
20880
20881 PR middle-end/70090
20882 * builtins.c (fold_builtin_object_size): Adjust for dynamic size
20883 expressions.
20884 * tree-object-size.c: Include gimplify-me.h.
20885 (struct object_size_info): New member UNKNOWNS.
20886 (size_initval_p, size_usable_p, object_sizes_get_raw): New
20887 functions.
20888 (object_sizes_get): Return suitable gimple variable for
20889 object size.
20890 (bundle_sizes): New function.
20891 (object_sizes_set): Use it and handle dynamic object size
20892 expressions.
20893 (object_sizes_set_temp): New function.
20894 (size_for_offset): Adjust for dynamic size expressions.
20895 (emit_phi_nodes, propagate_unknowns, gimplify_size_expressions):
20896 New functions.
20897 (compute_builtin_object_size): Call gimplify_size_expressions
20898 for OST_DYNAMIC.
20899 (dynamic_object_size): New function.
20900 (cond_expr_object_size): Use it.
20901 (phi_dynamic_object_size): New function.
20902 (collect_object_sizes_for): Call it for OST_DYNAMIC. Adjust to
20903 accommodate dynamic object sizes.
20904
20905 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
20906 Jakub Jelinek <jakub@redhat.com>
20907
20908 PR tree-optimization/103961
20909 * tree-object-size.c (plus_stmt_object_size): Always avoid
20910 computing offset for -1 size.
20911
20912 2022-01-11 Andrew MacLeod <amacleod@redhat.com>
20913
20914 PR tree-optimization/103821
20915 * range-op.cc (range_operator::fold_range): Only do precise ranges
20916 when there are not too many subranges.
20917
20918 2022-01-11 Richard Sandiford <richard.sandiford@arm.com>
20919
20920 * ira-costs.c (ira_tune_allocno_costs): Fix missing rclass
20921 definition in IRA_HARD_REGNO_ADD_COST_MULTIPLIER code.
20922
20923 2022-01-11 Roger Sayle <roger@nextmovesoftware.com>
20924 Richard Biener <rguenther@suse.de>
20925
20926 * tree-ssa-math-opts.c (struct widen_mul_stats): Add a
20927 highpart_mults_inserted field.
20928 (convert_mult_to_highpart): New function to convert right shift
20929 of a widening multiply into a MULT_HIGHPART_EXPR.
20930 (math_opts_dom_walker::after_dom_children) [RSHIFT_EXPR]:
20931 Call new convert_mult_to_highpart function.
20932 (pass_optimize_widening_mul::execute): Add a statistics counter
20933 for tracking "highpart multiplications inserted" events.
20934
20935 2022-01-11 Xionghu Luo <luoxhu@linux.ibm.com>
20936
20937 PR target/102239
20938 * config/rs6000/rs6000-protos.h (rs6000_is_valid_rotate_dot_mask): New
20939 declare.
20940 * config/rs6000/rs6000.c (rs6000_is_valid_rotate_dot_mask): New
20941 function.
20942 * config/rs6000/rs6000.md (*branch_anddi3_dot): New.
20943
20944 2022-01-11 Olivier Hainque <hainque@adacore.com>
20945
20946 * gcc.c (driver_handle_option): State --sysroot as
20947 validated.
20948
20949 2022-01-11 Kewen Lin <linkw@linux.ibm.com>
20950
20951 * config/rs6000/rs6000.c (rs6000_disable_incompatible_switches): Remove
20952 useless related to option -mno-power10.
20953
20954 2022-01-11 Haochen Jiang <haochen.jiang@intel.com>
20955
20956 PR target/53652
20957 * config/i386/sse.md (*andnot<mode>3): Extend predicate of
20958 operands[1] from register_operand to vector_operand.
20959
20960 2022-01-10 Uroš Bizjak <ubizjak@gmail.com>
20961
20962 PR target/103861
20963 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
20964 Handle V2QImode.
20965 * config/i386/mmx.md (<sat_plusminus:insn><mode>3):
20966 Use VI1_16_32 mode iterator.
20967 (*eq<mode>3): Ditto.
20968 (*gt<mode>3): Ditto.
20969 (*xop_maskcmp<mode>3): Ditto.
20970 (*xop_maskcmp_uns<mode>3): Ditto.
20971 (vec_cmp<mode><mode>): Ditto.
20972 (vec_cmpu<mode><mode>): Ditto.
20973
20974 2022-01-10 Richard Biener <rguenther@suse.de>
20975
20976 PR tree-optimization/103948
20977 * tree-vect-generic.c (expand_vector_condition): Return true if
20978 all ones vector is returned for true, all zeros vector for false
20979 and the target defines corresponding vec_cmp{,u}MN named RTX pattern.
20980
20981 2022-01-10 Paul A. Clarke <pc@us.ibm.com>
20982
20983 * config/rs6000/smmintrin.h (_mm_blendv_epi8): Use vec_blendv
20984 when _ARCH_PWR10. Use signed types.
20985 (_mm_blendv_ps): Use vec_blendv when _ARCH_PWR10.
20986 (_mm_blendv_pd): Likewise.
20987
20988 2022-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
20989
20990 * tree-vectorizer.c (better_epilogue_loop_than_p): Round factors up for
20991 epilogue costing.
20992 * tree-vect-loop.c (vect_analyze_loop): Re-analyze all modes for
20993 epilogues, unless we are guaranteed that we can't have partial vectors.
20994 * genopinit.c: (partial_vectors_supported): Generate new function.
20995
20996 2022-01-10 Jakub Jelinek <jakub@redhat.com>
20997
20998 PR target/102024
20999 * config/i386/i386.c (classify_argument): Add zero_width_bitfields
21000 argument, when seeing DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD bitfields,
21001 always ignore them, when seeing other zero sized bitfields, either
21002 set zero_width_bitfields to 1 and ignore it or if equal to 2 process
21003 it. Pass it to recursive calls. Add wrapper
21004 with old arguments and diagnose ABI differences for C structures
21005 with zero width bitfields. Formatting fixes.
21006
21007 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
21008
21009 PR rtl-optimization/98782
21010 * ira-int.h (ira_soft_conflict): Declare.
21011 * ira-color.c (max_soft_conflict_loop_depth): New constant.
21012 (ira_soft_conflict): New function.
21013 (spill_soft_conflicts): Likewise.
21014 (assign_hard_reg): Use them to handle the case described by
21015 the comment above ira_soft_conflict.
21016 (improve_allocation): Likewise.
21017 * ira.c (check_allocation): Allow allocnos with "soft" conflicts
21018 to share the same register.
21019
21020 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
21021
21022 PR rtl-optimization/98782
21023 * ira-int.h (ira_caller_save_cost): New function.
21024 (ira_caller_save_loop_spill_p): Likewise.
21025 * ira-build.c (ira_propagate_hard_reg_costs): Test whether it is
21026 cheaper to spill a call-clobbered register throughout a loop rather
21027 than spill it around each individual call. If so, treat all
21028 call-clobbered registers as conflicts and...
21029 (propagate_allocno_info): ...do not propagate call information
21030 from the child to the parent.
21031 * ira-color.c (move_spill_restore): Update accordingly.
21032 * ira-costs.c (ira_tune_allocno_costs): Use ira_caller_save_cost.
21033
21034 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
21035
21036 PR rtl-optimization/98782
21037 * ira-int.h (ira_allocno::might_conflict_with_parent_p): New field.
21038 (ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P): New macro.
21039 (ira_single_region_allocno_p): New function.
21040 (ira_total_conflict_hard_regs): Likewise.
21041 * ira-build.c (ira_create_allocno): Initialize
21042 ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P.
21043 (ira_propagate_hard_reg_costs): New function.
21044 (propagate_allocno_info): Use it. Try to avoid propagating
21045 hard register conflicts to parent allocnos if we can handle
21046 the conflicts by spilling instead. Limit the propagated
21047 register costs to the cost of spilling throughout the child loop.
21048 * ira-color.c (color_pass): Use ira_single_region_allocno_p to
21049 test whether a child and parent allocno can share the same
21050 register.
21051 (move_spill_restore): Adjust for the new behavior of
21052 propagate_allocno_info.
21053
21054 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
21055
21056 PR rtl-optimization/98782
21057 * ira-int.h (ira_subloop_allocnos_can_differ_p): New function,
21058 extracted from...
21059 * ira-color.c (color_pass): ...here.
21060
21061 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
21062
21063 PR rtl-optimization/98782
21064 * ira-color.c (color_pass): Add comments to describe the spill costs.
21065 (move_spill_restore): Likewise. Fix reversed calculation.
21066
21067 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
21068
21069 PR rtl-optimization/98782
21070 * ira-int.h (ira_loop_border_costs): New class.
21071 * ira-color.c (ira_loop_border_costs::ira_loop_border_costs):
21072 New constructor.
21073 (calculate_allocno_spill_cost): Use ira_loop_border_costs.
21074 (color_pass): Likewise.
21075 (move_spill_restore): Likewise.
21076
21077 2022-01-10 Eric Botcazou <ebotcazou@adacore.com>
21078
21079 PR target/103465
21080 * coretypes.h (unwind_info_type): Swap UI_SEH and UI_TARGET.
21081
21082 2022-01-10 Richard Biener <rguenther@suse.de>
21083
21084 PR tree-optimization/100359
21085 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
21086 Allow non-growing peeling with !allow_peel and UL_ALL.
21087
21088 2022-01-08 Roger Sayle <roger@nextmovesoftware.com>
21089
21090 * config/i386/i386-expand.c (ix86_expand_vector_move): Add
21091 special case for TImode to V1TImode moves, going via V2DImode.
21092
21093 2022-01-08 Jakub Jelinek <jakub@redhat.com>
21094
21095 PR c++/89074
21096 * match.pd ((ptr) (x p+ y) p+ z -> (ptr) (x p+ (y + z))): New GENERIC
21097 simplification.
21098
21099 2022-01-08 David Malcolm <dmalcolm@redhat.com>
21100
21101 * doc/analyzer.texi
21102 (Special Functions for Debugging the Analyzer): Document
21103 __analyzer_dump_escaped.
21104
21105 2022-01-08 David Malcolm <dmalcolm@redhat.com>
21106
21107 * doc/analyzer.texi (Other Debugging Techniques): Document
21108 region::is_named_decl_p.
21109
21110 2022-01-07 Andrew Pinski <apinski@marvell.com>
21111
21112 PR target/102941
21113 * config/arm/aarch-common.c (arm_md_asm_adjust):
21114 Use a temp if !REG_P.
21115
21116 2022-01-07 Uroš Bizjak <ubizjak@gmail.com>
21117
21118 * config/i386/mmx.md (*move<V_32:mode>_internal): Add isa attribute.
21119 (*movv2qi_internal): Remve sse2 requirement for alternatives 4,5.
21120
21121 2022-01-07 liuhongt <hongtao.liu@intel.com>
21122
21123 PR rtl-optimization/103750
21124 * fwprop.c (forward_propagate_into): Allow propagations from
21125 inner loop to outer loop.
21126
21127 2022-01-07 Roger Sayle <roger@nextmovesoftware.com>
21128
21129 * config/nvptx/nvptx.md (*cnot<mode>2): New define_insn.
21130
21131 2022-01-07 Haochen Gui <guihaoc@gcc.gnu.org>
21132
21133 * config/rs6000/rs6000.md (rs6000_mffscrni): Define.
21134 (rs6000_set_fpscr_rn): Change the type of operand[0] from DI to SI.
21135 Call gen_rs6000_mffscrni when operand[0] is a const_0_to_3_operand.
21136
21137 2022-01-07 liuhongt <hongtao.liu@intel.com>
21138
21139 * config/i386/sse.md
21140 (*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Extend to
21141 UNSPEC_PCMP_UNSIGNED.
21142
21143 2022-01-07 liuhongt <hongtao.liu@intel.com>
21144
21145 PR target/103753
21146 * config/i386/i386-expand.c (ix86_expand_vector_set): Not use
21147 gen_avx2_pblendph_1 when elt == 0.
21148 * config/i386/sse.md (avx2_pblendph): Rename to ..
21149 (avx2_pblend<ssemodesuffix>_1).. this, and extend to V16HI.
21150 (*avx2_pblendw): Rename to ..
21151 (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
21152 (avx2_pblendw): Rename to ..
21153 (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
21154 (blendsuf): Removed.
21155 (sse4_1_pblend<blendsuf>): Renamed to ..
21156 (sse4_1_pblend<ssemodesuffix>): .. this.
21157
21158 2022-01-06 H.J. Lu <hjl.tools@gmail.com>
21159
21160 PR target/103925
21161 * config/i386/i386.c (ix86_output_indirect_function_return):
21162 Generate INT3 after indirect jmp for -mharden-sls=indirect-jmp.
21163
21164 2022-01-06 H.J. Lu <hjl.tools@gmail.com>
21165
21166 PR target/102952
21167 * config/i386/i386-opts.h (harden_sls): Replace
21168 harden_sls_indirect_branch with harden_sls_indirect_jmp.
21169 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect):
21170 Likewise.
21171 (ix86_output_indirect_jmp): Likewise.
21172 (ix86_output_call_insn): Likewise.
21173 * config/i386/i386.opt: Replace indirect-branch with
21174 indirect-jmp. Replace harden_sls_indirect_branch with
21175 harden_sls_indirect_jmp.
21176 * doc/invoke.texi (-harden-sls=): Replace indirect-branch with
21177 indirect-jmp.
21178
21179 2022-01-06 Uroš Bizjak <ubizjak@gmail.com>
21180
21181 * config/i386/i386.c (ix86_output_ssemov) <MODE_DI>:
21182 Add %q modifier for operands in general registers.
21183 <MODE_SI>: Add %q modifier for operands in general registers.
21184 * config/i386/i386.md (*movhi_internal): Change type attribute of
21185 xmm-gpr interunit alternatives 9,10 to ssemov and mode attribute
21186 to SImode for non-avx512fp16 targets.
21187 (*movhf_internal): Ditto for xmm-gpr interunit alternatives 6,8.
21188 * config/i386/mmx.md (*movv2qi_internal):
21189 Ditto for xmm-gpr interunit alternatives 8,9.
21190
21191 2022-01-06 Kito Cheng <kito.cheng@sifive.com>
21192
21193 * common/config/riscv/riscv-common.c (riscv_implied_info): Add
21194 vector extensions.
21195 (riscv_ext_version_table): Add version info for vector extensions.
21196 (riscv_ext_flag_table): Add option mask for vector extensions.
21197 * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): New.
21198 (MASK_VECTOR_EEW_64): New.
21199 (MASK_VECTOR_EEW_FP_32): New.
21200 (MASK_VECTOR_EEW_FP_64): New.
21201 (MASK_ZVL32B): New.
21202 (MASK_ZVL64B): New.
21203 (MASK_ZVL128B): New.
21204 (MASK_ZVL256B): New.
21205 (MASK_ZVL512B): New.
21206 (MASK_ZVL1024B): New.
21207 (MASK_ZVL2048B): New.
21208 (MASK_ZVL4096B): New.
21209 (MASK_ZVL8192B): New.
21210 (MASK_ZVL16384B): New.
21211 (MASK_ZVL32768B): New.
21212 (MASK_ZVL65536B): New.
21213 (TARGET_ZVL32B): New.
21214 (TARGET_ZVL64B): New.
21215 (TARGET_ZVL128B): New.
21216 (TARGET_ZVL256B): New.
21217 (TARGET_ZVL512B): New.
21218 (TARGET_ZVL1024B): New.
21219 (TARGET_ZVL2048B): New.
21220 (TARGET_ZVL4096B): New.
21221 (TARGET_ZVL8192B): New.
21222 (TARGET_ZVL16384B): New.
21223 (TARGET_ZVL32768B): New.
21224 (TARGET_ZVL65536B): New.
21225 * config/riscv/riscv.opt (Mask(VECTOR)): New.
21226 (riscv_vector_eew_flags): New.
21227 (riscv_zvl_flags): New.
21228
21229 2022-01-06 Kito Cheng <kito.cheng@sifive.com>
21230
21231 * common/config/riscv/riscv-common.c
21232 (riscv_subset_list::parse_multiletter_ext): Allow ext. name has
21233 digit.
21234
21235 2022-01-06 Jakub Jelinek <jakub@redhat.com>
21236
21237 PR tree-optimization/103899
21238 * expr.c (expand_expr_real_1): Add a workaround for bogus uninit
21239 warning by moving context variable to the only spot where it is used
21240 and moving gcc_assert into if body.
21241
21242 2022-01-06 Jakub Jelinek <jakub@redhat.com>
21243
21244 PR rtl-optimization/103908
21245 * ifcvt.c (bb_valid_for_noce_process_p): Punt on bbs ending with
21246 asm goto.
21247
21248 2022-01-05 Bill Schmidt <wschmidt@linux.ibm.com>
21249
21250 PR target/103622
21251 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
21252 Skip over instances with undefined function types.
21253
21254 2022-01-05 Andrew Pinski <apinski@marvell.com>
21255
21256 PR target/103910
21257 * config/i386/i386.h (x86_mfence): Mark with GTY.
21258
21259 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
21260
21261 PR target/103861
21262 * config/i386/mmx.md (VI_16_32): New mode iterator.
21263 (VI1_16_32): Ditto.
21264 (mmxvecsize): Handle V2QI mode.
21265 (<smaxmin:code><mode>3): Rename from <smaxmin:code>v4qi3.
21266 Use VI1_16_32 mode iterator.
21267 (<umaxmin:code><mode>3): Rename from <umaxmin:code>v4qi3.
21268 Use VI1_16_32 mode iterator.
21269 (abs<mode>2): Use VI_16_32 mode iterator.
21270 (uavgv2qi3_ceil): New insn pattern.
21271
21272 2022-01-05 Martin Sebor <msebor@redhat.com>
21273
21274 * gimple-ssa-warn-access.cc (pass_waccess::maybe_warn_memmodel): Use
21275 %qs to avoid -Wformat-diag.
21276
21277 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
21278
21279 PR target/103915
21280 * config/i386/mmx.md (one_cmplv2qi2): Change
21281 alternatives 1,2 type from sselog to sselog1.
21282
21283 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
21284
21285 PR target/103905
21286 * config/i386/i386-expand.c (expand_vec_perm_pshufb): Fix number of
21287 narrow mode remapped elements for !one_operand_p case.
21288
21289 2022-01-05 Richard Biener <rguenther@suse.de>
21290
21291 PR tree-optimization/103816
21292 * tree-vect-data-refs.c (vect_analyze_group_access_1): Also
21293 check DR_GROUP_GAP compute for overflow and representability.
21294
21295 2022-01-05 Jakub Jelinek <jakub@redhat.com>
21296
21297 PR fortran/103691
21298 * gimple-fold.c (fold_stmt_1): Don't call maybe_fold_reference
21299 for DEBUG stmts with ADDR_EXPR gimple_debug_bind_get_value,
21300 it can do unwanted rhs folding like &a[0] into &2.0 etc.
21301
21302 2022-01-05 Kewen Lin <linkw@linux.ibm.com>
21303
21304 PR ipa/102059
21305 * config/rs6000/rs6000.c (TARGET_NEED_IPA_FN_TARGET_INFO): New macro.
21306 (TARGET_UPDATE_IPA_FN_TARGET_INFO): Likewise.
21307 (rs6000_need_ipa_fn_target_info): New function.
21308 (rs6000_update_ipa_fn_target_info): Likewise.
21309 (rs6000_can_inline_p): Adjust for ipa function summary target info.
21310 * config/rs6000/rs6000.h (RS6000_FN_TARGET_INFO_HTM): New macro.
21311 * ipa-fnsummary.c (ipa_dump_fn_summary): Adjust for ipa function
21312 summary target info.
21313 (analyze_function_body): Adjust for ipa function summary target info
21314 and call hook rs6000_need_ipa_fn_target_info and
21315 rs6000_update_ipa_fn_target_info.
21316 (ipa_merge_fn_summary_after_inlining): Adjust for ipa function summary
21317 target info.
21318 (inline_read_section): Likewise.
21319 (ipa_fn_summary_write): Likewise.
21320 * ipa-fnsummary.h (ipa_fn_summary::target_info): New member.
21321 * doc/tm.texi: Regenerate.
21322 * doc/tm.texi.in (TARGET_UPDATE_IPA_FN_TARGET_INFO): Document new hook.
21323 (TARGET_NEED_IPA_FN_TARGET_INFO): Likewise.
21324 * target.def (update_ipa_fn_target_info): New hook.
21325 (need_ipa_fn_target_info): Likewise.
21326 * targhooks.c (default_need_ipa_fn_target_info): New function.
21327 (default_update_ipa_fn_target_info): Likewise.
21328 * targhooks.h (default_update_ipa_fn_target_info): New declare.
21329 (default_need_ipa_fn_target_info): Likewise.
21330
21331 2022-01-04 Martin Sebor <msebor@redhat.com>
21332
21333 PR middle-end/99612
21334 * builtins.c (get_memmodel): Move warning code to
21335 gimple-ssa-warn-access.cc.
21336 (expand_builtin_atomic_compare_exchange): Same.
21337 (expand_ifn_atomic_compare_exchange): Same.
21338 (expand_builtin_atomic_load): Same.
21339 (expand_builtin_atomic_store): Same.
21340 (expand_builtin_atomic_clear): Same.
21341 * doc/extend.texi (__atomic_exchange_n): Update valid memory
21342 models.
21343 * gimple-ssa-warn-access.cc (memmodel_to_uhwi): New function.
21344 (struct memmodel_pair): New struct.
21345 (memmodel_name): New function.
21346 (pass_waccess::maybe_warn_memmodel): New function.
21347 (pass_waccess::check_atomic_memmodel): New function.
21348 (pass_waccess::check_atomic_builtin): Handle memory model.
21349 * input.c (expansion_point_location_if_in_system_header): Return
21350 original location if expansion location is in a system header.
21351
21352 2022-01-04 Uroš Bizjak <ubizjak@gmail.com>
21353
21354 PR target/103861
21355 * config/i386/mmx.md (one_cmplv2qi3): New insn pattern.
21356 (one_cmplv2qi3 splitters): New post-reload splitters.
21357 (*andnotv2qi3): New insn pattern.
21358 (andnotv2qi3 splitters): New post-reload splitters.
21359 (<any_logic:code>v2qi3): New insn pattern.
21360 (<any_logic:insn>v2qi3 splitters): New post-reload splitters.
21361
21362 2022-01-04 Richard Biener <rguenther@suse.de>
21363
21364 PR tree-optimization/103800
21365 * tree-vect-loop.c (vectorizable_phi): Remove assert and
21366 expand comment.
21367
21368 2022-01-04 Richard Biener <rguenther@suse.de>
21369
21370 PR tree-optimization/103690
21371 * tree-pass.h (tail_merge_optimize): Adjust.
21372 * tree-ssa-tail-merge.c (tail_merge_optimize): Pass in whether
21373 to re-split critical edges, move CFG cleanup ...
21374 * tree-ssa-pre.c (pass_pre::execute): ... here, before
21375 simple_dce_from_worklist and delay freeing inserted_exprs from
21376 ...
21377 (fini_pre): .. here.
21378
21379 2022-01-04 Roger Sayle <roger@nextmovesoftware.com>
21380
21381 * config/nvptx/nvptx.h (STORE_FLAG_VALUE): Change to 1.
21382 * config/nvptx/nvptx.md (movbi): Use P1 constraint for true.
21383 (setcc_from_bi): Remove SImode specific pattern.
21384 (setcc<mode>_from_bi): Provide more general HSDIM pattern.
21385 (extendbi<mode>2, zeroextendbi<mode>2): Provide instructions
21386 for sign- and zero-extending BImode predicates to integers.
21387 (setcc_int<mode>): Remove previous (-1-based) instructions.
21388 (cstorebi4): Remove BImode to SImode specific expander.
21389 (cstore<mode>4): Fix indentation. Expand using setccsi_from_bi.
21390 (cstore<mode>4): For both integer and floating point modes.
21391
21392 2022-01-04 Olivier Hainque <hainque@adacore.com>
21393
21394 * gcc.c (driver_handle_option): do_save --sysroot.
21395
21396 2022-01-04 Richard Biener <rguenther@suse.de>
21397
21398 PR tree-optimization/103864
21399 PR tree-optimization/103544
21400 * tree-vect-slp.c (vect_analyze_slp_instance): Exclude
21401 reductions wrapped in conversions from SLP handling.
21402 (vect_analyze_slp): Revert PR103544 change.
21403
21404 2022-01-04 Jakub Jelinek <jakub@redhat.com>
21405
21406 PR rtl-optimization/103860
21407 * shrink-wrap.c (try_shrink_wrapping): Don't call can_get_prologue
21408 uselessly for blocks for which it has been called already.
21409
21410 2022-01-04 Cui,Lili <lili.cui@intel.com>
21411
21412 * common/config/i386/cpuinfo.h (get_intel_cpu): Add new model values
21413 to Alderlake and Rocketlake.
21414
21415 2022-01-04 Chung-Lin Tang <cltang@codesourcery.com>
21416
21417 PR middle-end/103643
21418 * gimplify.c (gimplify_omp_affinity): Adjust gimplify_expr of entire
21419 OMP_CLAUSE_DECL to use 'is_gimple_lvalue, fb_lvalue'
21420
21421 2022-01-04 liuhongt <hongtao.liu@intel.com>
21422
21423 PR target/103895
21424 * config/i386/sse.md (*bit_and_float_vector_all_ones):
21425 Force_reg operand 1 to avoid ICE.
21426
21427 2022-01-04 Jason Merrill <jason@redhat.com>
21428
21429 * tree-pretty-print.c (do_niy): Add spc parameter.
21430 (NIY): Pass it.
21431 (print_call_name): Add spc local variable.
21432
21433 2022-01-03 Uroš Bizjak <ubizjak@gmail.com>
21434
21435 PR target/103894
21436 * config/i386/mmx.md (mov<V_32:mode>): Remove TARGET_SSE2 constraint.
21437 (mov<V_32:mode>_internal): Ditto.
21438 (*push<V_32:mode>_rex64): Ditto.
21439 (movmisalign<V_32:mode>): Ditto.
21440 (*push<V_32:mode>_rex64 splitter): Enable for
21441 TARGET_64BIT && TARGET_SSE.
21442 (*push<V_32:mode>2): Remove insn pattern.
21443
21444 2022-01-03 Andrew Pinski <apinski@marvell.com>
21445
21446 PR c/33193
21447 * doc/extend.texi: Extend the documentation about Complex
21448 types for casting and also rewrite the __real__/__imag__
21449 expression portion to use tables.
21450 Move __builtin_complex to the Complex type section.
21451
21452 2022-01-03 Jakub Jelinek <jakub@redhat.com>
21453
21454 PR target/98737
21455 * internal-fn.def (ATOMIC_ADD_FETCH_CMP_0, ATOMIC_SUB_FETCH_CMP_0,
21456 ATOMIC_AND_FETCH_CMP_0, ATOMIC_OR_FETCH_CMP_0, ATOMIC_XOR_FETCH_CMP_0):
21457 New internal fns.
21458 * internal-fn.h (ATOMIC_OP_FETCH_CMP_0_EQ, ATOMIC_OP_FETCH_CMP_0_NE,
21459 ATOMIC_OP_FETCH_CMP_0_LT, ATOMIC_OP_FETCH_CMP_0_LE,
21460 ATOMIC_OP_FETCH_CMP_0_GT, ATOMIC_OP_FETCH_CMP_0_GE): New enumerators.
21461 * internal-fn.c (expand_ATOMIC_ADD_FETCH_CMP_0,
21462 expand_ATOMIC_SUB_FETCH_CMP_0, expand_ATOMIC_AND_FETCH_CMP_0,
21463 expand_ATOMIC_OR_FETCH_CMP_0, expand_ATOMIC_XOR_FETCH_CMP_0): New
21464 functions.
21465 * optabs.def (atomic_add_fetch_cmp_0_optab,
21466 atomic_sub_fetch_cmp_0_optab, atomic_and_fetch_cmp_0_optab,
21467 atomic_or_fetch_cmp_0_optab, atomic_xor_fetch_cmp_0_optab): New
21468 direct optabs.
21469 * builtins.h (expand_ifn_atomic_op_fetch_cmp_0): Declare.
21470 * builtins.c (expand_ifn_atomic_op_fetch_cmp_0): New function.
21471 * tree-ssa-ccp.c: Include internal-fn.h.
21472 (optimize_atomic_bit_test_and): Add . before internal fn call
21473 in function comment. Change return type from void to bool and
21474 return true only if successfully replaced.
21475 (optimize_atomic_op_fetch_cmp_0): New function.
21476 (pass_fold_builtins::execute): Use optimize_atomic_op_fetch_cmp_0
21477 for BUILT_IN_ATOMIC_{ADD,SUB,AND,OR,XOR}_FETCH_{1,2,4,8,16} and
21478 BUILT_IN_SYNC_{ADD,SUB,AND,OR,XOR}_AND_FETCH_{1,2,4,8,16},
21479 for *XOR* ones only if optimize_atomic_bit_test_and failed.
21480 * config/i386/sync.md (atomic_<plusminus_mnemonic>_fetch_cmp_0<mode>,
21481 atomic_<logic>_fetch_cmp_0<mode>): New define_expand patterns.
21482 (atomic_add_fetch_cmp_0<mode>_1, atomic_sub_fetch_cmp_0<mode>_1,
21483 atomic_<logic>_fetch_cmp_0<mode>_1): New define_insn patterns.
21484 * doc/md.texi (atomic_add_fetch_cmp_0<mode>,
21485 atomic_sub_fetch_cmp_0<mode>, atomic_and_fetch_cmp_0<mode>,
21486 atomic_or_fetch_cmp_0<mode>, atomic_xor_fetch_cmp_0<mode>): Document
21487 new named patterns.
21488
21489 2022-01-03 Richard Biener <rguenther@suse.de>
21490
21491 PR middle-end/103851
21492 * tree-cfg.c (move_sese_region_to_fn): Always release SSA names.
21493
21494 2022-01-03 Jakub Jelinek <jakub@redhat.com>
21495
21496 PR c++/94716
21497 * symtab.c: Include fold-const.h.
21498 (symtab_node::equal_address_to): If folding_initializer is true,
21499 handle it like memory_accessed. Simplify.
21500
21501 2022-01-03 Martin Liska <mliska@suse.cz>
21502
21503 * doc/extend.texi: Use ; for function declarations.
21504
21505 2022-01-03 Jakub Jelinek <jakub@redhat.com>
21506
21507 PR c++/103600
21508 * symtab.c (symtab_node::equal_address_to): Return 0 if one of
21509 VAR_DECLs has "non overlapping" attribute and rs1 != rs2.
21510
21511 2022-01-03 Jakub Jelinek <jakub@redhat.com>
21512
21513 * gcc.c (process_command): Update copyright notice dates.
21514 * gcov-dump.c (print_version): Ditto.
21515 * gcov.c (print_version): Ditto.
21516 * gcov-tool.c (print_version): Ditto.
21517 * gengtype.c (create_file): Ditto.
21518 * doc/cpp.texi: Bump @copying's copyright year.
21519 * doc/cppinternals.texi: Ditto.
21520 * doc/gcc.texi: Ditto.
21521 * doc/gccint.texi: Ditto.
21522 * doc/gcov.texi: Ditto.
21523 * doc/install.texi: Ditto.
21524 * doc/invoke.texi: Ditto.
21525
21526 2022-01-02 Uroš Bizjak <ubizjak@gmail.com>
21527
21528 PR target/103861
21529 * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V2QImode.
21530 (VALID_INT_MODE_P): Ditto.
21531 * config/i386/i386.c (ix86_secondary_reload): Handle
21532 V2QImode reloads from SSE register to memory.
21533 (vector_mode_supported_p): Always return true for V2QImode.
21534 * config/i386/i386.md (*subqi_ext<mode>_2): New insn pattern.
21535 (*negqi_ext<mode>_2): Ditto.
21536 * config/i386/mmx.md (movv2qi): New expander.
21537 (movmisalignv2qi): Ditto.
21538 (*movv2qi_internal): New insn pattern.
21539 (*pushv2qi2): Ditto.
21540 (negv2qi2 and splitters): Ditto.
21541 (<plusminus:insn>v2qi3 and splitters): Ditto.
21542
21543 2022-01-02 John David Anglin <danglin@gcc.gnu.org>
21544
21545 * config/pa/pa.md (atomic_storeq): Use optab_libfunc to access
21546 sync_lock_test_and_set libfunc. Call convert_memory_address to
21547 convert memory address to Pmode.
21548 (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
21549
21550 \f
21551 Copyright (C) 2022 Free Software Foundation, Inc.
21552
21553 Copying and distribution of this file, with or without modification,
21554 are permitted in any medium without royalty provided the copyright
21555 notice and this notice are preserved.
This page took 0.89182 seconds and 6 git commands to generate.