]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / ChangeLog
1 2021-03-04 Martin Sebor <msebor@redhat.com>
2
3 PR middle-end/96963
4 PR middle-end/94655
5 * builtins.c (handle_array_ref): New helper.
6 (handle_mem_ref): New helper.
7 (compute_objsize_r): Factor out ARRAY_REF and MEM_REF handling
8 into new helper functions. Correct a workaround for vectorized
9 assignments.
10
11 2021-03-03 Pat Haugen <pthaugen@linux.ibm.com>
12
13 * config/rs6000/dfp.md (extendddtd2, trunctddd2, *cmp<mode>_internal1,
14 floatditd2, ftrunc<mode>2, fix<mode>di2, dfp_ddedpd_<mode>,
15 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>,
16 *dfp_sgnfcnc_<mode>, dfp_dscli_<mode>, dfp_dscri_<mode>): Update size
17 attribute for Power10.
18 * config/rs6000/mma.md (*movoo): Likewise.
19 * config/rs6000/rs6000.md (define_attr "size"): Add 256.
20 (define_mode_attr bits): Add DD/TD modes.
21 * config/rs6000/sync.md (load_quadpti, store_quadpti, load_lockedpti,
22 store_conditionalpti): Update size attribute for Power10.
23
24 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25
26 PR bootstrap/92002
27 * config/sparc/t-sparc (tree-ssanames.o-warn): Don't error for
28 -Wuninitialized, -Wmaybe-uninitialized.
29 (wide-int.o-warn): Likewise.
30
31 2021-03-03 Richard Earnshaw <rearnsha@arm.com>
32
33 * common/config/arm/arm-common.c: Include configargs.h.
34 (arm_config_default): New function.
35 (arm_target_mode): Renamed from arm_target_thumb_only. Handle
36 processors that do not support Thumb. Take into account the
37 --with-mode configuration setting for selecting the default.
38 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Remove entry for 'mode'.
39 (TARGET_MODE_SPEC_FUNCTIONS): Update for function name change.
40
41 2021-03-03 Martin Liska <mliska@suse.cz>
42
43 PR gcov-profile/97461
44 * gcov-io.h (GCOV_PREALLOCATED_KVP): Remove.
45
46 2021-03-03 Eric Botcazou <ebotcazou@adacore.com>
47
48 PR target/99234
49 * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
50 point back the hard frame pointer to its default location when the
51 frame is larger than SEH_MAX_FRAME_SIZE.
52
53 2021-03-03 Jakub Jelinek <jakub@redhat.com>
54
55 PR target/99321
56 * config/i386/predicates.md (logic_operator): New define_predicate.
57 * config/i386/i386.md (mov + mem using comm arith peephole2):
58 Punt if operands[1] is EXT_REX_SSE_REGNO_P, AVX512BW is not enabled
59 and the inner mode is [QH]Imode.
60
61 2021-03-03 Jakub Jelinek <jakub@redhat.com>
62
63 PR debug/99090
64 * dwarf2out.c (dw_loc_list_struct): Add end_entry member.
65 (new_loc_list): Clear end_entry.
66 (output_loc_list): Only use DW_LLE_startx_length for -gsplit-dwarf
67 if HAVE_AS_LEB128, otherwise use DW_LLE_startx_endx. Fix comment
68 typo.
69 (index_location_lists): For dwarf_version >= 5 without HAVE_AS_LEB128,
70 initialize also end_entry.
71
72 2021-03-03 Jakub Jelinek <jakub@redhat.com>
73
74 PR target/99085
75 * cfgrtl.c (fixup_partitions): When changing some bbs from hot to cold
76 partitions, if in non-layout mode after reorder_blocks also move
77 affected blocks to ensure a single partition transition.
78
79 2021-03-03 Jason Merrill <jason@redhat.com>
80
81 PR c++/96078
82 * cgraphunit.c (process_function_and_variable_attributes): Don't
83 warn about flatten on an alias if the target also has it.
84 * cgraph.h (symtab_node::get_alias_target_tree): New.
85
86 2021-03-02 David Edelsohn <dje.gcc@gmail.com>
87
88 * config/rs6000/rs6000.md (tls_get_tpointer_internal): Prepend
89 period to symbol name.
90 (tls_get_addr_internal<mode>): Same.
91
92 2021-03-02 David Malcolm <dmalcolm@redhat.com>
93
94 PR c/99323
95 * diagnostic-show-locus.c
96 (selftest::test_one_liner_many_fixits_2): Fix accidental usage of
97 column 0.
98
99 2021-03-02 Martin Sebor <msebor@redhat.com>
100
101 PR middle-end/99276
102 * builtins.c (warn_for_access): Remove stray warning text.
103
104 2021-03-02 Martin Sebor <msebor@redhat.com>
105
106 PR middle-end/99295
107 * doc/extend.texi (attribute malloc): Reword and clarify nonaliasing
108 property.
109
110 2021-03-02 Jakub Jelinek <jakub@redhat.com>
111
112 PR debug/99319
113 * dwarf2out.c (output_macinfo_op): Use DW_MACRO_*_str* even with
114 -gdwarf-5 -gstrict-dwarf. For -gsplit-dwarf -gdwarf-5 use
115 DW_MACRO_*_strx instead of DW_MACRO_*_strp. Handle
116 DW_MACRO_define_strx and DW_MACRO_undef_strx.
117 (save_macinfo_strings): Use DW_MACRO_*_str* even with
118 -gdwarf-5 -gstrict-dwarf. Handle DW_MACRO_define_strx and
119 DW_MACRO_undef_strx.
120
121 2021-03-02 Andreas Krebbel <krebbel@linux.ibm.com>
122
123 * config/s390/s390-builtin-types.def (BT_FN_V4SF_V8HI_UINT): New
124 builtin signature.
125 (BT_FN_V8HI_V8HI_UINT): Likewise.
126 (BT_FN_V8HI_V4SF_V4SF_UINT): Likewise.
127 * config/s390/s390-builtins.def (B_NNPA): New macro definition.
128 (s390_vclfnhs, s390_vclfnls, s390_vcrnfs, s390_vcfn, s390_vcnf):
129 New builtin definitions.
130 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Bump
131 vector extension version.
132 * config/s390/s390.c (s390_expand_builtin): Check if builtins are
133 available with current -march level.
134 * config/s390/s390.md (UNSPEC_NNPA_VCLFNHS_V8HI)
135 (UNSPEC_NNPA_VCLFNLS_V8HI, UNSPEC_NNPA_VCRNFS_V8HI)
136 (UNSPEC_NNPA_VCFN_V8HI, UNSPEC_NNPA_VCNF_V8HI): New constants.
137 * config/s390/vecintrin.h (vec_extend_to_fp32_hi): New macro.
138 (vec_extend_to_fp32_lo): Likewise.
139 (vec_round_from_fp32): Likewise.
140 (vec_convert_to_fp16): Likewise.
141 (vec_convert_from_fp16): Likewise.
142 * config/s390/vx-builtins.md (vclfnhs_v8hi): New insn pattern.
143 (vclfnls_v8hi): Likewise.
144 (vcrnfs_v8hi): Likewise.
145 (vcfn_v8hi): Likewise.
146 (vcnf_v8hi): Likewise.
147
148 2021-03-02 Andreas Krebbel <krebbel@linux.ibm.com>
149
150 * common/config/s390/s390-common.c (processor_flags_table): New entry.
151 * config.gcc: Enable arch14 for --with-arch and --with-tune.
152 * config/s390/driver-native.c (s390_host_detect_local_cpu): Pick
153 arch14 for unknown CPU models.
154 * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH14.
155 * config/s390/s390.c (s390_issue_rate): Add case for PROCESSOR_ARCH14.
156 (s390_get_sched_attrmask): Likewise.
157 (s390_get_unit_mask): Likewise.
158 * config/s390/s390.h (enum processor_flags): Add PF_NNPA and PF_ARCH14.
159 (TARGET_CPU_ARCH14, TARGET_CPU_ARCH14_P, TARGET_CPU_NNPA)
160 (TARGET_CPU_NNPA_P, TARGET_ARCH14, TARGET_ARCH14_P, TARGET_NNPA)
161 (TARGET_NNPA_P): New macro definitions.
162 * config/s390/s390.md ("cpu_facility", "enabled"): Add arch14 and nnpa.
163 * config/s390/s390.opt: Add PROCESSOR_ARCH14.
164
165 2021-03-02 Jakub Jelinek <jakub@redhat.com>
166
167 PR middle-end/95757
168 * tree-vrp.c (register_edge_assert_for): Remove superfluous ()s around
169 condition. Call register_edge_assert_for_1 for == 0, != 0, == 1 and
170 != 1 comparisons if name is lhs of a comparison.
171
172 2021-03-01 Iain Sandoe <iain@sandoe.co.uk>
173
174 PR target/44107
175 PR target/48097
176 * config/darwin-protos.h (darwin_should_restore_cfa_state): New.
177 * config/darwin.c (darwin_should_restore_cfa_state): New.
178 * config/darwin.h (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New.
179 * doc/tm.texi: Regenerated.
180 * doc/tm.texi.in: Document TARGET_ASM_SHOULD_RESTORE_CFA_STATE.
181 * dwarf2cfi.c (connect_traces): If the target requests, restore
182 the CFA expression after a DW_CFA_restore.
183 * target.def (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New hook.
184
185 2021-03-01 Martin Liska <mliska@suse.cz>
186
187 PR target/99313
188 * optc-save-gen.awk: Add 4 more exceptions.
189
190 2021-03-01 Nathan Sidwell <nathan@acm.org>
191
192 PR c++/99294
193 * tree.h (TYPE_ALIGN_RAW): New accessor.
194 (TYPE_ALIGN): Use it.
195
196 2021-03-01 Jan Hubicka <jh@suse.cz>
197
198 PR ipa/98338
199 * ipa-fnsummary.c (compute_fn_summary): Fix sanity check.
200
201 2021-03-01 Eric Botcazou <ebotcazou@adacore.com>
202
203 PR target/99234
204 * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
205 point the hard frame pointer to the SSE register save area instead
206 of the general register save area. Perform only minimal adjustment
207 for small frames if it is initially not correctly aligned.
208 (ix86_expand_prologue): Remove early saves for a SEH target.
209 * config/i386/winnt.c (struct seh_frame_state): Document constraint.
210
211 2021-02-28 Jakub Jelinek <jakub@redhat.com>
212
213 PR c/99304
214 * ipa.c (symbol_table::remove_unreachable_nodes): Fix a comment
215 typo - referneced -> referenced.
216 * tree.c (component_ref_size): Fix comment typo -
217 refernce -> reference.
218 * tree-ssa-alias.c (access_path_may_continue_p): Fix comment typo -
219 traling -> trailing.
220 (aliasing_component_refs_p): Fix comment typos -
221 refernce -> reference and refernece -> reference and
222 traling -> trailing.
223 (nonoverlapping_refs_since_match_p): Fix comment typo -
224 referneces -> references.
225 * doc/invoke.texi (--param modref-max-bases): Fix a typo -
226 referneces -> references.
227
228 2021-02-27 Iain Sandoe <iain@sandoe.co.uk>
229
230 * config/host-darwin.c (darwin_gt_pch_use_address): Modify
231 diagnostic message to avoid use of a contraction and format
232 warning.
233
234 2021-02-27 Jakub Jelinek <jakub@redhat.com>
235
236 PR other/99288
237 * gcse.c (gcse_or_cprop_is_too_expensive): Use %wu instead of
238 HOST_WIDE_INT_PRINT_UNSIGNED in warning format string.
239 * ipa-devirt.c (ipa_odr_read_section): Use %wd instead of
240 HOST_WIDE_INT_PRINT_DEC in inform format string. Fix comment
241 typos.
242
243 2021-02-26 Richard Biener <rguenther@suse.de>
244
245 PR middle-end/99281
246 * expr.c (store_field): For calls with return-slot optimization
247 and addressable return type expand the store directly.
248
249 2021-02-26 Richard Biener <rguenther@suse.de>
250
251 PR c/99275
252 * builtins.c (warn_string_no_nul): Fix diagnostic formatting.
253
254 2021-02-26 Peter Bergner <bergner@linux.ibm.com>
255
256 PR target/99279
257 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Replace assert
258 with an "if" test.
259
260 2021-02-26 Aaron Sawdey <acsawdey@linux.ibm.com>
261
262 * config.gcc: Add rs6000-pcrel-opt.o.
263 * config/rs6000/rs6000-pcrel-opt.c: New file.
264 * config/rs6000/pcrel-opt.md: New file.
265 * config/rs6000/predicates.md: Add d_form_memory predicate.
266 * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_PCREL_OPT.
267 * config/rs6000/rs6000-passes.def: Add pass_pcrel_opt.
268 * config/rs6000/rs6000-protos.h: Add reg_to_non_prefixed(),
269 pcrel_opt_valid_mem_p(), output_pcrel_opt_reloc(),
270 and make_pass_pcrel_opt().
271 * config/rs6000/rs6000.c (reg_to_non_prefixed): Make global.
272 (rs6000_option_override_internal): Add pcrel-opt.
273 (rs6000_delegitimize_address): Support pcrel-opt.
274 (rs6000_opt_masks): Add pcrel-opt.
275 (pcrel_opt_valid_mem_p): New function.
276 (reg_to_non_prefixed): Make global.
277 (rs6000_asm_output_opcode): Reset prepend_p_to_next_insn.
278 (output_pcrel_opt_reloc): New function.
279 * config/rs6000/rs6000.md (loads_extern_addr): New attr.
280 (pcrel_extern_addr): Set loads_extern_addr.
281 Add include for pcrel-opt.md.
282 * config/rs6000/rs6000.opt: Add -mpcrel-opt.
283 * config/rs6000/t-rs6000: Add rules for pcrel-opt.c and
284 pcrel-opt.md.
285
286 2021-02-26 YunQiang Su <yunqiang.su@cipunited.com>
287
288 PR target/98996
289 * config/mips/mips.c (mips_expand_ext_as_unaligned_load):
290 If TARGET_64BIT and dest is SUBREG, we check the width, if it
291 equal to SImode, we use SImode operation, just like what we are
292 doing for REG one.
293
294 2021-02-26 Marek Polacek <polacek@redhat.com>
295
296 * builtins.c (warn_for_access): Fix typos.
297
298 2021-02-25 Iain Sandoe <iain@sandoe.co.uk>
299
300 * config/aarch64/aarch64.md (<optab>_rol<mode>3): Add a '#'
301 mark in front of the immediate quantity.
302 (<optab>_rolsi3_uxtw): Likewise.
303
304 2021-02-25 Richard Earnshaw <rearnsha@arm.com>
305
306 PR target/99271
307 * config/arm/thumb2.md (nonsecure_call_reg_thumb2_fpcxt): New pattern.
308 (nonsecure_call_value_reg_thumb2_fpcxt): Likewise.
309 (nonsecure_call_reg_thumb2): Restrict to using r4 for the callee
310 address and disable when the FPCXT is not available.
311 (nonsecure_call_value_reg_thumb2): Likewise.
312
313 2021-02-25 Nathan Sidwell <nathan@acm.org>
314
315 PR c++/99166
316 * doc/invoke.texi (flang-info-module-cmi): Renamed option.
317
318 2021-02-25 Tamar Christina <tamar.christina@arm.com>
319
320 * tree-vect-slp.c (optimize_load_redistribution_1): Abort on NULL nodes.
321
322 2021-02-25 Richard Biener <rguenther@suse.de>
323
324 PR tree-optimization/99253
325 * tree-vect-loop.c (check_reduction_path): First compute
326 code, then verify out-of-loop uses.
327
328 2021-02-25 Jakub Jelinek <jakub@redhat.com>
329
330 PR target/95798
331 * match.pd ((T)(A) + CST -> (T)(A + CST)): Add :s to convert.
332
333 2021-02-25 Jakub Jelinek <jakub@redhat.com>
334
335 PR tree-optimization/80635
336 * tree-vrp.c (vrp_simplify_cond_using_ranges): Also handle
337 VIEW_CONVERT_EXPR if modes are the same, innerop is integral and
338 has mode precision.
339
340 2021-02-25 Richard Biener <rguenther@suse.de>
341
342 * tree-vect-slp.c (optimize_load_redistribution_1): Delay
343 load_map population.
344 (vect_match_slp_patterns_2): Revert part of last change.
345 (vect_analyze_slp): Do not interleave optimize_load_redistribution
346 with pattern detection but do it afterwards. Dump the
347 whole SLP graph after pattern recognition and load
348 redistribution optimization finished.
349
350 2021-02-24 Jakub Jelinek <jakub@redhat.com>
351
352 PR fortran/99226
353 * omp-low.c (struct omp_context): Add teams_nested_p and
354 nonteams_nested_p members.
355 (scan_omp_target): Diagnose teams nested inside of target with other
356 directives strictly nested inside of the same target.
357 (check_omp_nesting_restrictions): Set ctx->teams_nested_p or
358 ctx->nonteams_nested_p as needed.
359
360 2021-02-24 Vladimir N. Makarov <vmakarov@redhat.com>
361
362 PR inline-asm/99123
363 * lra-constraints.c (uses_hard_regs_p): Don't use decompose_mem_address.
364
365 2021-02-24 Hans-Peter Nilsson <hp@axis.com>
366
367 * config/cris/cris.c (cris_expand_prologue): Set
368 current_function_static_stack_size, if flag_stack_usage_info.
369
370 2021-02-24 Pat Haugen <pthaugen@linux.ibm.com>
371
372 * config/rs6000/rs6000.c (next_insn_prefixed_p): Rename.
373 (rs6000_final_prescan_insn): Adjust.
374 (rs6000_asm_output_opcode): Likewise.
375
376 2021-02-24 Martin Sebor <msebor@redhat.com>
377
378 PR middle-end/97172
379 * attribs.c (attr_access::free_lang_data): Clear attribute arg spec
380 from function arguments.
381
382 2021-02-24 Tamar Christina <tamar.christina@arm.com>
383
384 PR tree-optimization/99220
385 * tree-vect-slp.c (optimize_load_redistribution_1): Remove
386 node from cache when it's about to be deleted.
387
388 2021-02-24 Jakub Jelinek <jakub@redhat.com>
389
390 PR tree-optimization/99225
391 * fold-const.c (fold_binary_loc) <case NE_EXPR>: In (x & (1 << y)) != 0
392 to ((x >> y) & 1) != 0 simplifications use build_one_cst instead of
393 build_int_cst (..., 1). Formatting fixes.
394
395 2021-02-24 Tamar Christina <tamar.christina@arm.com>
396
397 PR tree-optimization/99149
398 * tree-vect-slp-patterns.c (vect_detect_pair_op): Don't recreate the
399 buffer.
400 (vect_slp_reset_pattern): Remove.
401 (complex_fma_pattern::matches): Remove call to vect_slp_reset_pattern.
402 (complex_mul_pattern::build, complex_fma_pattern::build,
403 complex_fms_pattern::build): Fix ref counts.
404 * tree-vect-slp.c (vect_free_slp_tree): Undo SLP only pattern relevancy
405 when node is being deleted.
406 (vect_match_slp_patterns_2): Correct result of cache hit on patterns.
407 (vect_schedule_slp): Invalidate SLP_TREE_REPRESENTATIVE of removed
408 stores.
409 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize value.
410
411 2021-02-24 Matthias Klose <doko@ubuntu.com>
412
413 Revert:
414 2020-12-07 Matthias Klose <doko@ubuntu.com>
415
416 * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING
417 and ENABLE_RTL_FLAG_CHECKING.
418
419 2021-02-24 Richard Biener <rguenther@suse.de>
420
421 PR c/99224
422 * builtins.c (fold_builtin_next_arg): Avoid NULL arg.
423
424 2021-02-23 Peter Bergner <bergner@linux.ibm.com>
425
426 * config/rs6000/mma.md (mma_assemble_pair): Rename from this...
427 (vsx_assemble_pair): ...to this.
428 (*mma_assemble_pair): Rename from this...
429 (*vsx_assemble_pair): ...to this.
430 (mma_disassemble_pair): Rename from this...
431 (vsx_disassemble_pair): ...to this.
432 (*mma_disassemble_pair): Rename from this...
433 (*vsx_disassemble_pair): ...to this.
434 * config/rs6000/rs6000-builtin.def (BU_MMA_V2, BU_MMA_V3,
435 BU_COMPAT): New macros.
436 (mma_assemble_pair): Rename from this...
437 (vsx_assemble_pair): ...to this.
438 (mma_disassemble_pair): Rename from this...
439 (vsx_disassemble_pair): ...to this.
440 (mma_assemble_pair): New compatibility built-in.
441 (mma_disassemble_pair): Likewise.
442 * config/rs6000/rs6000-call.c (struct builtin_compatibility): New.
443 (RS6000_BUILTIN_COMPAT): Define.
444 (bdesc_compat): New.
445 (mma_expand_builtin): Use VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
446 (rs6000_gimple_fold_mma_builtin): Use MMA_BUILTIN_DISASSEMBLE_PAIR
447 and VSX_BUILTIN_ASSEMBLE_PAIR.
448 (rs6000_init_builtins): Register compatibility built-ins.
449 (mma_init_builtins): Use VSX_BUILTIN_ASSEMBLE_PAIR,
450 VSX_BUILTIN_ASSEMBLE_PAIR_INTERNAL, VSX_BUILTIN_DISASSEMBLE_PAIR and
451 VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
452 * doc/extend.texi (__builtin_mma_assemble_pair): Rename from this...
453 (__builtin_vsx_assemble_pair): ...to this.
454 (__builtin_mma_disassemble_pair): Rename from this...
455 (__builtin_vsx_disassemble_pair): ...to this.
456
457 2021-02-23 Martin Liska <mliska@suse.cz>
458
459 PR sanitizer/99168
460 * ipa-icf.c (sem_variable::merge): Do not merge 2 variables
461 with different alignment. That leads to an invalid red zone
462 size allocated in runtime.
463
464 2021-02-23 Jakub Jelinek <jakub@redhat.com>
465
466 PR tree-optimization/99204
467 * fold-const.c (fold_read_from_constant_string): Check that
468 tree_fits_uhwi_p (index) rather than just that index is INTEGER_CST.
469
470 2021-02-23 Segher Boessenkool <segher@kernel.crashing.org>
471 Kewen Lin <linkw@gcc.gnu.org>
472
473 * config/rs6000/rs6000.md (*rotl<mode>3_insert_3): Renamed to...
474 (rotl<mode>3_insert_3): ...this.
475 (plus_ior_xor): New code_iterator.
476 (define_split for GPR rl*imi): New splitter.
477 * config/rs6000/vsx.md (vsx_init_v4si): Use gen_rotldi3_insert_3
478 for integer merging.
479
480 2021-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
481
482 * config/aarch64/aarch64-tuning-flags.def (cse_sve_vl_constants):
483 Define.
484 * config/aarch64/aarch64.md (add<mode>3): Force CONST_POLY_INT immediates
485 into a register when the above is enabled.
486 * config/aarch64/aarch64.c (neoversev1_tunings):
487 AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
488 (aarch64_rtx_costs): Use AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
489
490 2021-02-22 Hans-Peter Nilsson <hp@axis.com>
491
492 * config/cris/cris.c (cris_print_operand) <'T'>: Change
493 valid operand from is now an addi mult-value to shift-value.
494 * config/cris/cris.md (*addi): Change expression of scaled
495 operand from mult to ashift.
496 * config/cris/cris.md (*addi_reload): New insn_and_split.
497
498 2021-02-22 John David Anglin <danglin@gcc.gnu.org>
499
500 PR target/85074
501 * config/pa/pa.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define as
502 hook_bool_const_tree_hwi_hwi_const_tree_true.
503 (pa_asm_output_mi_thunk): Add support for nonzero vcall_offset.
504
505 2021-02-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
506
507 PR rtl-optimization/98791
508 * ira-conflicts.c (process_regs_for_copy): Don't create allocno copies
509 for unordered modes.
510
511 2021-02-22 Martin Liska <mliska@suse.cz>
512
513 * tree-inline.c (inline_forbidden_p): Set
514 inline_forbidden_reason.
515
516 2021-02-22 Richard Biener <rguenther@suse.de>
517
518 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Dump
519 costed subgraph.
520
521 2021-02-22 Richard Biener <rguenther@suse.de>
522
523 PR tree-optimization/99165
524 * gimple-ssa-store-merging.c (pass_store_merging::process_store):
525 Accumulate changed to ret.
526
527 2021-02-21 Uros Bizjak <ubizjak@gmail.com>
528
529 Revert:
530 2020-12-09 Uroš Bizjak <ubizjak@gmail.com>
531
532 * config/i386/i386.h (REG_ALLOC_ORDER): Remove
533
534 2021-02-20 Ilya Leoshkevich <iii@linux.ibm.com>
535
536 PR target/99134
537 * config/s390/vector.md (trunctf<DFP_ALL:mode>2_vr): New
538 pattern.
539 (trunctf<DFP_ALL:mode>2): Likewise.
540 (trunctdtf2_vr): Likewise.
541 (trunctdtf2): Likewise.
542 (extend<DFP_ALL:mode>tf2_vr): Likewise.
543 (extend<DFP_ALL:mode>tf2): Likewise.
544 (extendtftd2_vr): Likewise.
545 (extendtftd2): Likewise.
546
547 2021-02-20 Ilya Leoshkevich <iii@linux.ibm.com>
548
549 * config/s390/vector.md (*fprx2_to_tf): Rename to fprx2_to_tf,
550 add memory alternative.
551 (tf_to_fprx2): New pattern.
552
553 2021-02-19 Martin Sebor <msebor@redhat.com>
554
555 PR c/97172
556 * attribs.c (init_attr_rdwr_indices): Guard vblist use.
557 (attr_access::free_lang_data): Remove a spurious test.
558
559 2021-02-19 Nathan Sidwell <nathan@acm.org>
560
561 * doc/invoke.texi (flang-info-module-read): Document.
562
563 2021-02-19 Martin Liska <mliska@suse.cz>
564
565 PR translation/99167
566 * params.opt: Fix typo.
567
568 2021-02-19 Richard Biener <rguenther@suse.de>
569
570 PR middle-end/99122
571 * tree-inline.c (inline_forbidden_p): Do not inline functions
572 with VLA arguments or return value.
573
574 2021-02-19 Jakub Jelinek <jakub@redhat.com>
575
576 PR target/98998
577 * config/arm/arm.md (*stack_protect_combined_set_insn,
578 *stack_protect_combined_test_insn): If force_const_mem result
579 is not valid general operand, force its address into the destination
580 register first.
581
582 2021-02-19 Jakub Jelinek <jakub@redhat.com>
583
584 PR ipa/99034
585 * tree-cfg.c (gimple_merge_blocks): If bb a starts with eh landing
586 pad or non-local label, put FORCED_LABELs from bb b after that label
587 rather than before it.
588
589 2021-02-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
590
591 PR target/98657
592 * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3): Use
593 expand_vector_broadcast' to emit the vec_duplicate operand.
594
595 2021-02-18 Vladimir N. Makarov <vmakarov@redhat.com>
596
597 PR rtl-optimization/96264
598 * lra-remat.c (reg_overlap_for_remat_p): Check also output insn
599 hard regs.
600
601 2021-02-18 H.J. Lu <hjl.tools@gmail.com>
602
603 PR target/99113
604 * varasm.c (get_section): Replace SUPPORTS_SHF_GNU_RETAIN with
605 looking up the retain attribute.
606 (resolve_unique_section): Likewise.
607 (get_variable_section): Likewise.
608 (switch_to_section): Likewise. Warn when a symbol without the
609 retain attribute and a symbol with the retain attribute are
610 placed in the section with the same name, instead of the used
611 attribute.
612 * doc/extend.texi: Document the "retain" attribute.
613
614 2021-02-18 Nathan Sidwell <nathan@acm.org>
615
616 PR c++/99023
617 * doc/invoke.texi (flang-info-include-translate): Document header
618 lookup behaviour.
619
620 2021-02-18 Richard Biener <rguenther@suse.de>
621
622 PR middle-end/99122
623 * ipa-fnsummary.c (analyze_function_body): Set
624 CIF_FUNCTION_NOT_INLINABLE for VLA parameter calls.
625 * tree-inline.c (insert_init_debug_bind): Pass NULL for
626 error_mark_node values.
627 (force_value_to_type): Do not build V_C_Es for WITH_SIZE_EXPR
628 values.
629 (setup_one_parameter): Delay force_value_to_type until when
630 it's needed.
631
632 2021-02-18 Hans-Peter Nilsson <hp@axis.com>
633
634 PR tree-optimization/99142
635 * match.pd (clz cmp 0): Gate replacement on single_use of clz result.
636
637 2021-02-18 Jakub Jelinek <jakub@redhat.com>
638
639 * wide-int-bitmask.h (wide_int_bitmask::wide_int_bitmask (),
640 wide_int_bitmask::wide_int_bitmask (uint64_t),
641 wide_int_bitmask::wide_int_bitmask (uint64_t, uint64_t),
642 wide_int_bitmask::operator ~ () const,
643 wide_int_bitmask::operator | (wide_int_bitmask) const,
644 wide_int_bitmask::operator & (wide_int_bitmask) const): Use constexpr
645 instead of inline.
646 * config/i386/i386.h (PTA_3DNOW, PTA_3DNOW_A, PTA_64BIT, PTA_ABM,
647 PTA_AES, PTA_AVX, PTA_BMI, PTA_CX16, PTA_F16C, PTA_FMA, PTA_FMA4,
648 PTA_FSGSBASE, PTA_LWP, PTA_LZCNT, PTA_MMX, PTA_MOVBE, PTA_NO_SAHF,
649 PTA_PCLMUL, PTA_POPCNT, PTA_PREFETCH_SSE, PTA_RDRND, PTA_SSE, PTA_SSE2,
650 PTA_SSE3, PTA_SSE4_1, PTA_SSE4_2, PTA_SSE4A, PTA_SSSE3, PTA_TBM,
651 PTA_XOP, PTA_AVX2, PTA_BMI2, PTA_RTM, PTA_HLE, PTA_PRFCHW, PTA_RDSEED,
652 PTA_ADX, PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT, PTA_AVX512F, PTA_AVX512ER,
653 PTA_AVX512PF, PTA_AVX512CD, PTA_NO_TUNE, PTA_SHA, PTA_PREFETCHWT1,
654 PTA_CLFLUSHOPT, PTA_XSAVEC, PTA_XSAVES, PTA_AVX512DQ, PTA_AVX512BW,
655 PTA_AVX512VL, PTA_AVX512IFMA, PTA_AVX512VBMI, PTA_CLWB, PTA_MWAITX,
656 PTA_CLZERO, PTA_NO_80387, PTA_PKU, PTA_AVX5124VNNIW, PTA_AVX5124FMAPS,
657 PTA_AVX512VPOPCNTDQ, PTA_SGX, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES,
658 PTA_AVX512VBMI2, PTA_VPCLMULQDQ, PTA_AVX512BITALG, PTA_RDPID,
659 PTA_PCONFIG, PTA_WBNOINVD, PTA_AVX512VP2INTERSECT, PTA_PTWRITE,
660 PTA_AVX512BF16, PTA_WAITPKG, PTA_MOVDIRI, PTA_MOVDIR64B, PTA_ENQCMD,
661 PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK, PTA_AMX_TILE, PTA_AMX_INT8,
662 PTA_AMX_BF16, PTA_UINTR, PTA_HRESET, PTA_KL, PTA_WIDEKL, PTA_AVXVNNI,
663 PTA_X86_64_BASELINE, PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4,
664 PTA_CORE2, PTA_NEHALEM, PTA_WESTMERE, PTA_SANDYBRIDGE, PTA_IVYBRIDGE,
665 PTA_HASWELL, PTA_BROADWELL, PTA_SKYLAKE, PTA_SKYLAKE_AVX512,
666 PTA_CASCADELAKE, PTA_COOPERLAKE, PTA_CANNONLAKE, PTA_ICELAKE_CLIENT,
667 PTA_ICELAKE_SERVER, PTA_TIGERLAKE, PTA_SAPPHIRERAPIDS, PTA_ALDERLAKE,
668 PTA_KNL, PTA_BONNELL, PTA_SILVERMONT, PTA_GOLDMONT, PTA_GOLDMONT_PLUS,
669 PTA_TREMONT, PTA_KNM): Use constexpr instead of const.
670
671 2021-02-18 Jakub Jelinek <jakub@redhat.com>
672
673 PR middle-end/99109
674 * gimple-array-bounds.cc (build_zero_elt_array_type): Rename to ...
675 (build_printable_array_type): ... this. Add nelts argument. For
676 overaligned eltype, use TYPE_MAIN_VARIANT (eltype) instead. If
677 nelts, call build_array_type_nelts.
678 (array_bounds_checker::check_mem_ref): Use build_printable_array_type
679 instead of build_zero_elt_array_type and build_array_type_nelts.
680
681 2021-02-18 Jakub Jelinek <jakub@redhat.com>
682
683 PR target/99104
684 * config/i386/i386.c (distance_non_agu_define): Don't call
685 extract_insn_cached here.
686 (ix86_lea_outperforms): Save and restore recog_data around call
687 to distance_non_agu_define and distance_agu_use.
688 (ix86_ok_to_clobber_flags): Remove.
689 (ix86_avoid_lea_for_add): Don't call ix86_ok_to_clobber_flags.
690 (ix86_avoid_lea_for_addr): Likewise. Adjust function comment.
691 * config/i386/i386.md (*lea<mode>): Change from define_insn_and_split
692 into define_insn. Move the splitting to define_peephole2 and
693 check there using peep2_regno_dead_p if FLAGS_REG is dead.
694
695 2021-02-17 Julian Brown <julian@codesourcery.com>
696
697 * gimplify.c (gimplify_scan_omp_clauses): Handle ATTACH_DETACH
698 for non-decls.
699
700 2021-02-17 Xi Ruoyao <xry111@mengyan1223.wang>
701
702 PR target/98491
703 * config/mips/mips.c (mips_symbol_insns): Do not use
704 MSA_SUPPORTED_MODE_P if mode is MAX_MACHINE_MODE.
705
706 2021-02-16 Vladimir N. Makarov <vmakarov@redhat.com>
707
708 PR inline-asm/98096
709 * stmt.c (resolve_operand_name_1): Take inout operands into account
710 for access to labels by names.
711 * doc/extend.texi: Describe counting operands for accessing labels.
712
713 2021-02-16 Richard Biener <rguenther@suse.de>
714
715 PR tree-optimization/38474
716 * tree-ssa-structalias.c (variable_info::address_taken): New.
717 (new_var_info): Initialize address_taken.
718 (process_constraint): Set address_taken.
719 (solve_constraints): Use the new address_taken flag rather
720 than is_reg_var for sorting variables.
721 (dump_constraint): Dump the variable number if the name
722 is just NULL.
723
724 2021-02-16 Jakub Jelinek <jakub@redhat.com>
725
726 PR target/99100
727 * tree-vect-stmts.c (vectorizable_simd_clone_call): For num_calls != 1
728 multiply by 4096 and for inbranch by 8192.
729 * config/i386/i386.c (ix86_simd_clone_usable): For TARGET_AVX512F,
730 return 3, 2 or 1 for mangle letters 'b', 'c' or 'd'.
731
732 2021-02-15 Maya Rashish <coypu@sdf.org>
733
734 * config/aarch64/aarch64.c (aarch64_init_builtins):
735 Call SUBTARGET_INIT_BUILTINS.
736
737 2021-02-15 Peter Bergner <bergner@linux.ibm.com>
738
739 PR rtl-optimization/98872
740 * init-regs.c (initialize_uninitialized_regs): Skip initialization
741 if CONST0_RTX is NULL.
742
743 2021-02-15 Richard Sandiford <richard.sandiford@arm.com>
744
745 PR rtl-optimization/98863
746 * rtl-ssa/functions.h (function_info::bb_live_out_info): Delete.
747 (function_info::build_info): Turn into a declaration, moving the
748 definition to internals.h.
749 (function_info::bb_walker): Declare.
750 (function_info::create_reg_use): Likewise.
751 (function_info::calculate_potential_phi_regs): Take a build_info
752 parameter.
753 (function_info::place_phis, function_info::create_ebbs): Declare.
754 (function_info::calculate_ebb_live_in_for_debug): Likewise.
755 (function_info::populate_backedge_phis): Delete.
756 (function_info::start_block, function_info::end_block): Declare.
757 (function_info::populate_phi_inputs): Delete.
758 (function_info::m_potential_phi_regs): Move information to build_info.
759 * rtl-ssa/internals.h: New file.
760 (function_info::bb_phi_info): New class.
761 (function_info::build_info): Moved from functions.h.
762 Add a constructor and destructor.
763 (function_info::build_info::ebb_use): Delete.
764 (function_info::build_info::ebb_def): Likewise.
765 (function_info::build_info::bb_live_out): Likewise.
766 (function_info::build_info::tmp_ebb_live_in_for_debug): New variable.
767 (function_info::build_info::potential_phi_regs): Likewise.
768 (function_info::build_info::potential_phi_regs_for_debug): Likewise.
769 (function_info::build_info::ebb_def_regs): Likewise.
770 (function_info::build_info::bb_phis): Likewise.
771 (function_info::build_info::bb_mem_live_out): Likewise.
772 (function_info::build_info::bb_to_rpo): Likewise.
773 (function_info::build_info::def_stack): Likewise.
774 (function_info::build_info::old_def_stack_limit): Likewise.
775 * rtl-ssa/internals.inl (function_info::build_info::record_reg_def):
776 Remove the regno argument. Push the previous definition onto the
777 definition stack where necessary.
778 * rtl-ssa/accesses.cc: Include internals.h.
779 * rtl-ssa/changes.cc: Likewise.
780 * rtl-ssa/blocks.cc: Likewise.
781 (function_info::build_info::build_info): Define.
782 (function_info::build_info::~build_info): Likewise.
783 (function_info::bb_walker): New class.
784 (function_info::bb_walker::bb_walker): Define.
785 (function_info::add_live_out_use): Convert a logarithmic-complexity
786 test into a linear one. Allow the same definition to be passed
787 multiple times.
788 (function_info::calculate_potential_phi_regs): Moved from
789 functions.cc. Take a build_info parameter and store the
790 information there instead.
791 (function_info::place_phis): New function.
792 (function_info::add_entry_block_defs): Update call to record_reg_def.
793 (function_info::calculate_ebb_live_in_for_debug): New function.
794 (function_info::add_phi_nodes): Use bb_phis to decide which
795 registers need phi nodes and initialize ebb_def_regs accordingly.
796 Do not add degenerate phis here.
797 (function_info::add_artificial_accesses): Use create_reg_use.
798 Assert that all definitions are listed in the DF LR sets.
799 Update call to record_reg_def.
800 (function_info::record_block_live_out): Record live-out register
801 values in the phis of successor blocks. Use the live-out set
802 when processing the last block in an EBB, instead of always
803 using the live-in sets of successor blocks. AND the live sets
804 with the set of registers that have been defined in the EBB,
805 rather than with all potential phi registers. Cope correctly
806 with branches back to the start of the current EBB.
807 (function_info::start_block): New function.
808 (function_info::end_block): Likewise.
809 (function_info::populate_phi_inputs): Likewise.
810 (function_info::create_ebbs): Likewise.
811 (function_info::process_all_blocks): Rewrite into a multi-phase
812 process.
813 * rtl-ssa/functions.cc: Include internals.h.
814 (function_info::calculate_potential_phi_regs): Move to blocks.cc.
815 (function_info::init_function_data): Remove caller.
816 * rtl-ssa/insns.cc: Include internals.h
817 (function_info::create_reg_use): New function. Lazily any
818 degenerate phis needed by the linear RPO view.
819 (function_info::record_use): Use create_reg_use. When processing
820 debug uses, use potential_phi_regs and test it before checking
821 whether the register is live on entry to the current EBB. Lazily
822 calculate ebb_live_in_for_debug.
823 (function_info::record_call_clobbers): Update call to record_reg_def.
824 (function_info::record_def): Likewise.
825
826 2021-02-15 Martin Liska <mliska@suse.cz>
827
828 * toplev.c (init_asm_output): Free output of
829 gen_command_line_string function.
830 (process_options): Likewise.
831
832 2021-02-15 Martin Liska <mliska@suse.cz>
833
834 * params.opt: Add 2 missing Param keywords.
835
836 2021-02-15 Eric Botcazou <ebotcazou@adacore.com>
837
838 * df-core.c (df_worklist_dataflow_doublequeue): Use proper cast.
839
840 2021-02-15 Jakub Jelinek <jakub@redhat.com>
841
842 PR tree-optimization/99079
843 * match.pd (A % (pow2pcst << N) -> A & ((pow2pcst << N) - 1)): Remove
844 useless tree_nop_conversion_p (type, TREE_TYPE (@3)) check. Instead
845 require both type and TREE_TYPE (@1) to be integral types and either
846 type having smaller or equal precision, or TREE_TYPE (@1) being
847 unsigned type, or type being signed type. If TREE_TYPE (@1)
848 doesn't have wrapping overflow, perform the subtraction of one in
849 unsigned type.
850
851 2021-02-14 Jan Hubicka <hubicka@ucw.cz>
852 Richard Biener <rguether@suse.de>
853
854 PR ipa/97346
855 * ipa-reference.c (ipa_init): Only conditinally initialize
856 reference_vars_to_consider.
857 (propagate): Conditionally deninitialize reference_vars_to_consider.
858 (ipa_reference_write_optimization_summary): Sanity check that
859 reference_vars_to_consider is not allocated.
860
861 2021-02-13 Levy Hsu <admin@levyhsu.com>
862
863 PR target/97417
864 * config/riscv/riscv-shorten-memrefs.c (pass_shorten_memrefs): Add
865 extend parameter to get_si_mem_base_reg declaration.
866 (get_si_mem_base_reg): Add extend parameter. Set it.
867 (analyze): Pass extend arg to get_si_mem_base_reg.
868 (transform): Likewise. Use it when rewriting mems.
869 * config/riscv/riscv.c (riscv_legitimize_move): Check for subword
870 loads and emit sign/zero extending load followed by subreg move.
871
872 2021-02-13 Jim Wilson <jimw@sifive.com>
873
874 PR target/97417
875 * config/riscv/riscv.c (riscv_compressed_lw_address_p): Drop early
876 exit when !reload_completed. Only perform check for compressed reg
877 if reload_completed.
878 (riscv_rtx_costs): In MEM case, when optimizing for size and
879 shorten memrefs, if not compressible, then increase cost.
880
881 2021-02-13 Jakub Jelinek <jakub@redhat.com>
882
883 PR rtl-optimization/98439
884 * recog.c (pass_split_before_regstack::gate): Enable even when
885 pass_split_before_sched2 is enabled if -fselective-scheduling2 is
886 on.
887
888 2021-02-13 Jakub Jelinek <jakub@redhat.com>
889
890 PR target/96166
891 * config/i386/mmx.md (*mmx_pshufd_1): Add a combine splitter for
892 swap of V2SImode elements in memory into DImode memory rotate by 32.
893
894 2021-02-12 Martin Sebor <msebor@redhat.com>
895
896 * tree-pretty-print.c (print_generic_expr_to_str): Update comment.
897
898 2021-02-12 Richard Sandiford <richard.sandiford@arm.com>
899
900 * rtl-ssa/accesses.cc (function_info::make_use_available): Use
901 m_temp_obstack rather than m_obstack to allocate the temporary use.
902
903 2021-02-12 Richard Sandiford <richard.sandiford@arm.com>
904
905 * df-problems.c (df_lr_bb_local_compute): Treat partial definitions
906 as read-modify operations.
907
908 2021-02-12 Richard Biener <rguenther@suse.de>
909
910 PR middle-end/38474
911 * ipa-fnsummary.c (unmodified_parm_1): Only walk when
912 fbi->aa_walk_budget is bigger than zero. Update
913 fbi->aa_walk_budget.
914 (param_change_prob): Likewise.
915 * ipa-prop.c (detect_type_change_from_memory_writes):
916 Properly account walk_aliased_vdefs.
917 (parm_preserved_before_stmt_p): Canonicalize updates.
918 (parm_ref_data_preserved_p): Likewise.
919 (parm_ref_data_pass_through_p): Likewise.
920 (determine_known_aggregate_parts): Account own alias queries.
921
922 2021-02-12 Martin Liska <mliska@suse.cz>
923
924 * opts-common.c (decode_cmdline_option): Release werror_arg.
925 * opts.c (gen_producer_string): Release output of
926 gen_command_line_string.
927
928 2021-02-12 Richard Biener <rguenther@suse.de>
929
930 PR tree-optimization/38474
931 * params.opt (-param=max-store-chains-to-track=): New param.
932 (-param=max-stores-to-track=): Likewise.
933 * doc/invoke.texi (max-store-chains-to-track): Document.
934 (max-stores-to-track): Likewise.
935 * gimple-ssa-store-merging.c (pass_store_merging::m_n_chains):
936 New.
937 (pass_store_merging::m_n_stores): Likewise.
938 (pass_store_merging::terminate_and_process_chain): Update
939 m_n_stores and m_n_chains.
940 (pass_store_merging::process_store): Likewise. Terminate
941 oldest chains if the number of stores or chains get too large.
942 (imm_store_chain_info::terminate_and_process_chain): Dump
943 chain length.
944
945 2021-02-11 Eric Botcazou <ebotcazou@adacore.com>
946
947 * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to
948 the cold section, emit a nop before the directive if the previous
949 active instruction can throw.
950
951 2021-02-11 Peter Bergner <bergner@linux.ibm.com>
952
953 PR target/99041
954 * config/rs6000/predicates.md (mma_assemble_input_operand): Restrict
955 memory addresses that are legal for quad word accesses.
956
957 2021-02-11 Andrea Corallo <andrea.corallo@arm.com>
958
959 PR target/98931
960 * config/arm/thumb2.md (*doloop_end_internal): Generate
961 alternative sequence to handle long range branches.
962
963 2021-02-11 Joel Hutton <joel.hutton@arm.com>
964
965 PR tree-optimization/98772
966 * optabs-tree.c (supportable_half_widening_operation): New function
967 to check for supportable V8QI->V8HI widening patterns.
968 * optabs-tree.h (supportable_half_widening_operation): New function.
969 * tree-vect-stmts.c (vect_create_half_widening_stmts): New function
970 to create promotion stmts for V8QI->V8HI widening patterns.
971 (vectorizable_conversion): Add case for V8QI->V8HI.
972
973 2021-02-11 Richard Biener <rguenther@suse.de>
974
975 * sparseset.h (SPARSESET_ELT_BITS): Remove.
976 (SPARSESET_ELT_TYPE): Use unsigned int.
977 * fwprop.c: Do not include sparseset.h.
978
979 2021-02-10 Jakub Jelinek <jakub@redhat.com>
980
981 PR c++/99035
982 * varasm.c (declare_weak): For -fsyntax-only, allow even
983 TREE_ASM_WRITTEN function decls.
984
985 2021-02-10 Jakub Jelinek <jakub@redhat.com>
986
987 PR target/99025
988 * config/i386/sse.md (fix<fixunssuffix>_truncv2sfv2di2,
989 <insn>v8qiv8hi2, <insn>v8qiv8si2, <insn>v4qiv4si2, <insn>v4hiv4si2,
990 <insn>v8qiv8di2, <insn>v4qiv4di2, <insn>v2qiv2di2, <insn>v4hiv4di2,
991 <insn>v2hiv2di2, <insn>v2siv2di2): Force operands[1] into REG before
992 calling simplify_gen_subreg on it.
993
994 2021-02-10 Martin Liska <mliska@suse.cz>
995
996 * config/nvptx/nvptx.c (nvptx_option_override): Use
997 flag_patchable_function_entry instead of the removed
998 function_entry_patch_area_size.
999
1000 2021-02-10 Martin Liska <mliska@suse.cz>
1001
1002 PR tree-optimization/99002
1003 PR tree-optimization/99026
1004 * gimple-if-to-switch.cc (if_chain::is_beneficial): Fix memory
1005 leak when adjacent cases are merged.
1006 * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement): Use
1007 release_clusters.
1008 (make_pass_lower_switch): Remove trailing whitespace.
1009 * tree-switch-conversion.h (release_clusters): New.
1010
1011 2021-02-10 Richard Biener <rguenther@suse.de>
1012
1013 PR rtl-optimization/99054
1014 * cfgrtl.c (rtl-optimization/99054): Return an auto_vec.
1015 (fixup_partitions): Adjust.
1016 (rtl_verify_edges): Likewise.
1017
1018 2021-02-10 Jakub Jelinek <jakub@redhat.com>
1019
1020 PR middle-end/99007
1021 * gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions,
1022 temporarily disable gimplify_ctxp->into_ssa around gimplify_expr
1023 calls.
1024
1025 2021-02-10 Richard Biener <rguenther@suse.de>
1026
1027 PR ipa/99029
1028 * ipa-pure-const.c (propagate_malloc): Use an auto_vec<>
1029 for callees.
1030
1031 2021-02-10 Richard Biener <rguenther@suse.de>
1032
1033 PR tree-optimization/99024
1034 * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Only
1035 clear loop->aux if it is associated with the destroyed loop_vinfo.
1036
1037 2021-02-10 Martin Liska <mliska@suse.cz>
1038
1039 PR tree-optimization/99002
1040 * gimple-if-to-switch.cc (find_conditions): Fix memory leak
1041 in the function.
1042
1043 2021-02-10 Martin Liska <mliska@suse.cz>
1044
1045 PR ipa/99003
1046 * ipa-icf.c (sem_item::add_reference): Fix memory leak when
1047 a reference exists.
1048
1049 2021-02-10 Jakub Jelinek <jakub@redhat.com>
1050
1051 PR debug/98755
1052 * dwarf2out.c (prune_unused_types_walk): Mark DW_TAG_variable DIEs
1053 at class scope for DWARF5+.
1054
1055 2021-02-09 Eric Botcazou <ebotcazou@adacore.com>
1056
1057 PR rtl-optimization/96015
1058 * reorg.c (skip_consecutive_labels): Minor comment tweaks.
1059 (relax_delay_slots): When deleting a jump to the next active
1060 instruction over a barrier, first delete the barrier if the
1061 jump is the only way to reach the target label.
1062
1063 2021-02-09 Andre Vieira <andre.simoesdiasvieira@arm.com>
1064
1065 * config/aarch64/aarch64-cost-tables.h: Add entries for vect.mul.
1066 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Use vect.mul for
1067 vector multiplies and vect.alu for SSRA.
1068 * config/arm/aarch-common-protos.h (struct vector_cost_table): Define
1069 vect.mul cost field.
1070 * config/arm/aarch-cost-tables.h: Add entries for vect.mul.
1071 * config/arm/arm.c: Likewise.
1072
1073 2021-02-09 Richard Biener <rguenther@suse.de>
1074
1075 PR tree-optimization/98863
1076 * tree-ssa-sccvn.h (vn_avail::next_undo): Add.
1077 * tree-ssa-sccvn.c (last_pushed_avail): New global.
1078 (rpo_elim::eliminate_push_avail): Chain pushed avails.
1079 (unwind_state::avail_top): Add.
1080 (do_unwind): Rewrite unwinding of avail entries.
1081 (do_rpo_vn): Initialize last_pushed_avail and
1082 avail_top of the undo state.
1083
1084 2021-02-09 Jakub Jelinek <jakub@redhat.com>
1085
1086 PR middle-end/99004
1087 * calls.c (maybe_warn_rdwr_sizes): Change s0 and s1 type from
1088 const char * to char * and free those pointers after use.
1089
1090 2021-02-09 Richard Biener <rguenther@suse.de>
1091
1092 PR tree-optimization/99017
1093 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Allow
1094 zero vector cost entries.
1095
1096 2021-02-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
1097
1098 PR middle-end/98974
1099 * tree-vect-stmts.c (vectorizable_condition): Remove shadow vec_num
1100 parameter in vectorizable_condition.
1101
1102 2021-02-08 Richard Biener <rguenther@suse.de>
1103
1104 PR lto/96591
1105 * tree.c (walk_tree_1): Walk VECTOR_CST elements.
1106
1107 2021-02-08 Martin Liska <mliska@suse.cz>
1108
1109 PR lto/98971
1110 * cfgexpand.c (pass_expand::execute): Parse per-function option
1111 flag_patchable_function_entry and use it.
1112 * common.opt: Remove function_entry_patch_area_size and
1113 function_entry_patch_area_start global variables.
1114 * opts.c (parse_and_check_patch_area): New function.
1115 (common_handle_option): Use it.
1116 * opts.h (parse_and_check_patch_area): New function.
1117 * toplev.c (process_options): Parse and use
1118 function_entry_patch_area_size.
1119
1120 2021-02-08 Martin Sebor <msebor@redhat.com>
1121
1122 * doc/extend.texi (attribute malloc): Correct typos.
1123
1124 2021-02-05 Nathan Sidwell <nathan@acm.org>
1125
1126 PR driver/98943
1127 * gcc.c (driver::maybe_run_linker): Check for input file
1128 accessibility if not linking.
1129
1130 2021-02-05 Richard Biener <rguenther@suse.de>
1131
1132 PR tree-optimization/98855
1133 * tree-vectorizer.h (add_stmt_cost): New overload.
1134 * tree-vect-slp.c (li_cost_vec_cmp): New.
1135 (vect_bb_slp_scalar_cost): Cost individual loop regions
1136 separately. Account for the scalar instance root stmt.
1137
1138 2021-02-05 Tom de Vries <tdevries@suse.de>
1139
1140 PR debug/98656
1141 * tree-switch-conversion.c (jump_table_cluster::emit): Add loc
1142 argument.
1143 (bit_test_cluster::emit): Reuse location_t for newly created
1144 gswitch statement.
1145 (switch_decision_tree::try_switch_expansion): Preserve
1146 location_t.
1147 * tree-switch-conversion.h: Change function signatures.
1148
1149 2021-02-05 Jakub Jelinek <jakub@redhat.com>
1150
1151 PR target/98957
1152 * config/i386/i386-options.c (m_NONE, m_ALL): Define.
1153 * config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS,
1154 X86_TUNE_PROMOTE_QI_REGS): Use m_NONE instead of 0U.
1155 (X86_TUNE_QIMODE_MATH): Use m_ALL instead of ~0U.
1156
1157 2021-02-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1158
1159 * config/aarch64/aarch64-simd-builtins.def (get_high): Define builtin.
1160 * config/aarch64/aarch64-simd.md (aarch64_get_high<mode>): Define.
1161 * config/aarch64/arm_neon.h (__GET_HIGH): Delete.
1162 (vget_high_f16): Reimplement using new builtin.
1163 (vget_high_f32): Likewise.
1164 (vget_high_f64): Likewise.
1165 (vget_high_p8): Likewise.
1166 (vget_high_p16): Likewise.
1167 (vget_high_p64): Likewise.
1168 (vget_high_s8): Likewise.
1169 (vget_high_s16): Likewise.
1170 (vget_high_s32): Likewise.
1171 (vget_high_s64): Likewise.
1172 (vget_high_u8): Likewise.
1173 (vget_high_u16): Likewise.
1174 (vget_high_u32): Likewise.
1175 (vget_high_u64): Likewise.
1176
1177 2021-02-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1178
1179 * config/aarch64/aarch64-simd-builtins.def (get_low): Define builtin.
1180 * config/aarch64/aarch64-simd.md (aarch64_get_low<mode>): Define.
1181 * config/aarch64/arm_neon.h (__GET_LOW): Delete.
1182 (vget_low_f16): Reimplement using new builtin.
1183 (vget_low_f32): Likewise.
1184 (vget_low_f64): Likewise.
1185 (vget_low_p8): Likewise.
1186 (vget_low_p16): Likewise.
1187 (vget_low_p64): Likewise.
1188 (vget_low_s8): Likewise.
1189 (vget_low_s16): Likewise.
1190 (vget_low_s32): Likewise.
1191 (vget_low_s64): Likewise.
1192 (vget_low_u8): Likewise.
1193 (vget_low_u16): Likewise.
1194 (vget_low_u32): Likewise.
1195 (vget_low_u64): Likewise.
1196
1197 2021-02-05 Kito Cheng <kito.cheng@sifive.com>
1198
1199 * gcc.c (print_multilib_info): Check all required argument is provided
1200 by default arg.
1201
1202 2021-02-05 liuhongt <hongtao.liu@intel.com>
1203
1204 PR target/98537
1205 * config/i386/i386-expand.c (ix86_expand_sse_cmp): Don't
1206 generate integer mask comparison for 128/256-bits vector when
1207 op_true/op_false is NULL_RTX or CONSTM1_RTX/CONST0_RTX. Also
1208 delete redundant !maskcmp condition.
1209 (ix86_expand_int_vec_cmp): Ditto but no redundant deletion
1210 here.
1211 (ix86_expand_sse_movcc): Delete definition of maskcmp, add the
1212 condition directly to if (maskcmp), add extra check for
1213 cmpmode, it should be MODE_INT.
1214 (ix86_expand_fp_vec_cmp): Pass NULL to ix86_expand_sse_cmp's
1215 parameters op_true/op_false.
1216 (ix86_use_mask_cmp_p): New.
1217
1218 2021-02-05 liuhongt <hongtao.liu@intel.com>
1219
1220 PR target/98172
1221 * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL):
1222 Remove m_GENERIC from ~list.
1223 (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Ditto.
1224
1225 2021-02-04 David Malcolm <dmalcolm@redhat.com>
1226
1227 PR c/97932
1228 * diagnostic-show-locus.c (compatible_locations_p): Require
1229 locations in the same macro map to be either both from the
1230 macro definition, or both from the macro arguments.
1231
1232 2021-02-04 Jonathan Wright <jonathan.wright@arm.com>
1233
1234 * config/aarch64/aarch64-simd-builtins.def: Add
1235 [su]mull_hi_lane[q] builtin generator macros.
1236 * config/aarch64/aarch64-simd.md
1237 (aarch64_<su>mull_hi_lane<mode>_insn): Define.
1238 (aarch64_<su>mull_hi_lane<mode>): Define.
1239 (aarch64_<su>mull_hi_laneq<mode>_insn): Define.
1240 (aarch64_<su>mull_hi_laneq<mode>): Define.
1241 * config/aarch64/arm_neon.h (vmull_high_lane_s16): Use RTL
1242 builtin instead of inline asm.
1243 (vmull_high_lane_s32): Likewise.
1244 (vmull_high_lane_u16): Likewise.
1245 (vmull_high_lane_u32): Likewise.
1246 (vmull_high_laneq_s16): Likewise.
1247 (vmull_high_laneq_s32): Likewise.
1248 (vmull_high_laneq_u16): Likewise.
1249 (vmull_high_laneq_u32): Liekwise.
1250
1251 2021-02-04 Jonathan Wright <jonathan.wright@arm.com>
1252
1253 * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_hi_n
1254 builtin generator macros.
1255 * config/aarch64/aarch64-simd.md
1256 (aarch64_<su>mull_hi_n<mode>_insn): Define.
1257 (aarch64_<su>mull_hi_n<mode>): Define.
1258 * config/aarch64/arm_neon.h (vmull_high_n_s16): Use RTL builtin
1259 instead of inline asm.
1260 (vmull_high_n_s32): Likewise.
1261 (vmull_high_n_u16): Likewise.
1262 (vmull_high_n_u32): Likewise.
1263
1264 2021-02-04 Richard Biener <rguenther@suse.de>
1265
1266 PR tree-optimization/98855
1267 * tree-vect-loop.c (vectorizable_phi): Do not cost
1268 single-argument PHIs.
1269 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise.
1270 * tree-vect-stmts.c (vectorizable_bswap): Also perform
1271 costing for SLP operation.
1272
1273 2021-02-04 Martin Liska <mliska@suse.cz>
1274
1275 * doc/extend.texi: Mention -mprefer-vector-width in target
1276 attributes.
1277
1278 2021-02-03 Martin Sebor <msebor@redhat.com>
1279
1280 PR tree-optimization/98937
1281 * tree-ssa-strlen.c (strlen_dom_walker::~strlen_dom_walker): Define.
1282 Flush pointer_query cache.
1283
1284 2021-02-03 Aaron Sawdey <acsawdey@linux.ibm.com>
1285
1286 * config/rs6000/genfusion.pl (gen_2logical): Add missing
1287 fixes based on patch review.
1288 * config/rs6000/fusion.md: Regenerate file.
1289
1290 2021-02-03 Aaron Sawdey <acsawdey@linux.ibm.com>
1291
1292 * config/rs6000/t-rs6000: Comment out auto generation of
1293 fusion.md for now.
1294
1295 2021-02-03 Andrew Stubbs <ams@codesourcery.com>
1296
1297 * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX908.
1298 * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Add gfx908.
1299 (output_file_start): Add gfx908.
1300 * config/gcn/gcn.opt (gpu_type): Add gfx908.
1301 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add march=gfx908.
1302 (MULTILIB_DIRNAMES): Add gfx908.
1303 * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): New define.
1304 (main): Recognize gfx908.
1305 * config/gcn/t-omp-device: Add gfx908.
1306
1307 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
1308
1309 * config/aarch64/aarch64-simd-builtins.def: Add
1310 [su]mlsl_hi_lane[q] builtin macro generators.
1311 * config/aarch64/aarch64-simd.md
1312 (aarch64_<su>mlsl_hi_lane<mode>_insn): Define.
1313 (aarch64_<su>mlsl_hi_lane<mode>): Define.
1314 (aarch64_<su>mlsl_hi_laneq<mode>_insn): Define.
1315 (aarch64_<su>mlsl_hi_laneq<mode>): Define.
1316 * config/aarch64/arm_neon.h (vmlsl_high_lane_s16): Use RTL
1317 builtin instead of inline asm.
1318 (vmlsl_high_lane_s32): Likewise.
1319 (vmlsl_high_lane_u16): Likewise.
1320 (vmlsl_high_lane_u32): Likewise.
1321 (vmlsl_high_laneq_s16): Likewise.
1322 (vmlsl_high_laneq_s32): Likewise.
1323 (vmlsl_high_laneq_u16): Likewise.
1324 (vmlsl_high_laneq_u32): Likewise.
1325 (vmlal_high_laneq_u32): Likewise.
1326
1327 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
1328
1329 * config/aarch64/aarch64-simd-builtins.def: Add
1330 [su]mlal_hi_lane[q] builtin generator macros.
1331 * config/aarch64/aarch64-simd.md
1332 (aarch64_<su>mlal_hi_lane<mode>_insn): Define.
1333 (aarch64_<su>mlal_hi_lane<mode>): Define.
1334 (aarch64_<su>mlal_hi_laneq<mode>_insn): Define.
1335 (aarch64_<su>mlal_hi_laneq<mode>): Define.
1336 * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Use RTL
1337 builtin instead of inline asm.
1338 (vmlal_high_lane_s32): Likewise.
1339 (vmlal_high_lane_u16): Likewise.
1340 (vmlal_high_lane_u32): Likewise.
1341 (vmlal_high_laneq_s16): Likewise.
1342 (vmlal_high_laneq_s32): Likewise.
1343 (vmlal_high_laneq_u16): Likewise.
1344 (vmlal_high_laneq_u32): Likewise.
1345
1346 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
1347
1348 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_hi_n
1349 builtin generator macros.
1350 * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_hi_n<mode>_insn):
1351 Define.
1352 (aarch64_<su>mlsl_hi_n<mode>): Define.
1353 * config/aarch64/arm_neon.h (vmlsl_high_n_s16): Use RTL builtin
1354 instead of inline asm.
1355 (vmlsl_high_n_s32): Likewise.
1356 (vmlsl_high_n_u16): Likewise.
1357 (vmlsl_high_n_u32): Likewise.
1358
1359 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
1360
1361 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_hi_n
1362 builtin generator macros.
1363 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_hi_n<mode>_insn):
1364 Define.
1365 (aarch64_<su>mlal_hi_n<mode>): Define.
1366 * config/aarch64/arm_neon.h (vmlal_high_n_s16): Use RTL builtin
1367 instead of inline asm.
1368 (vmlal_high_n_s32): Likewise.
1369 (vmlal_high_n_u16): Likewise.
1370 (vmlal_high_n_u32): Likewise.
1371
1372 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
1373
1374 * config/aarch64/aarch64-simd-builtins.def: Add RTL builtin
1375 generator macros.
1376 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal_hi<mode>):
1377 Rename to...
1378 (aarch64_<su>mlal_hi<mode>_insn): This.
1379 (aarch64_<su>mlal_hi<mode>): Define.
1380 * config/aarch64/arm_neon.h (vmlal_high_s8): Use RTL builtin
1381 instead of inline asm.
1382 (vmlal_high_s16): Likewise.
1383 (vmlal_high_s32): Likewise.
1384 (vmlal_high_u8): Likewise.
1385 (vmlal_high_u16): Likewise.
1386 (vmlal_high_u32): Likewise.
1387
1388 2021-02-03 Ilya Leoshkevich <iii@linux.ibm.com>
1389
1390 * lra-spills.c (remove_pseudos): Call lra_update_insn_recog_data()
1391 after calling alter_subreg() on a (mem).
1392
1393 2021-02-03 Martin Liska <mliska@suse.cz>
1394
1395 PR lto/98912
1396 * lto-streamer-out.c (produce_lto_section): Fill up missing
1397 padding.
1398 * lto-streamer.h (struct lto_section): Add _padding field.
1399
1400 2021-02-03 Richard Biener <rguenther@suse.de>
1401
1402 * lto-streamer.c (lto_get_section_name): Free temporary
1403 buffer.
1404 * tree-loop-distribution.c
1405 (loop_distribution::merge_dep_scc_partitions): Free edge data.
1406
1407 2021-02-03 Jakub Jelinek <jakub@redhat.com>
1408
1409 PR middle-end/97487
1410 * ifcvt.c (noce_can_force_operand): New function.
1411 (noce_emit_move_insn): Use it.
1412 (noce_try_sign_mask): Likewise. Formatting fix.
1413
1414 2021-02-03 Jakub Jelinek <jakub@redhat.com>
1415
1416 PR middle-end/97971
1417 * lra-constraints.c (process_alt_operands): For inline asm, don't call
1418 fatal_insn, but instead return false.
1419
1420 2021-02-03 Jakub Jelinek <jakub@redhat.com>
1421
1422 PR tree-optimization/98287
1423 * config/i386/mmx.md (<insn><mode>3): For shifts don't enable expander
1424 for V1DImode.
1425
1426 2021-02-03 Tamar Christina <tamar.christina@arm.com>
1427
1428 PR tree-optimization/98928
1429 * tree-vect-loop.c (vect_analyze_loop_2): Change
1430 STMT_VINFO_SLP_VECT_ONLY to STMT_VINFO_SLP_VECT_ONLY_PATTERN.
1431 * tree-vect-slp-patterns.c (complex_pattern::build): Likewise.
1432 * tree-vectorizer.h (STMT_VINFO_SLP_VECT_ONLY_PATTERN): New.
1433 (class _stmt_vec_info): Add slp_vect_pattern_only_p.
1434
1435 2021-02-02 Richard Biener <rguenther@suse.de>
1436
1437 * gimple-loop-interchange.cc (prepare_data_references):
1438 Release vectors.
1439 * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
1440 * tree-ssa-loop-im.c (hoist_memory_references): Likewise.
1441 * tree-vect-stmts.c (vectorizable_condition): Do not
1442 allocate vectors.
1443 (vectorizable_comparison): Likewise.
1444
1445 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1446
1447 * config/aarch64/aarch64-simd-builtins.def (ursqrte): Define builtin.
1448 * config/aarch64/aarch64-simd.md (aarch64_ursqrte<mode>): New pattern.
1449 * config/aarch64/arm_neon.h (vrsqrte_u32): Reimplement using builtin.
1450 (vrsqrteq_u32): Likewise.
1451
1452 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1453
1454 * config/aarch64/aarch64-simd-builtins.def (sqxtun2): Define builtin.
1455 * config/aarch64/aarch64-simd.md (aarch64_sqxtun2<mode>_le): Define.
1456 (aarch64_sqxtun2<mode>_be): Likewise.
1457 (aarch64_sqxtun2<mode>): Likewise.
1458 * config/aarch64/arm_neon.h (vqmovun_high_s16): Reimplement using builtin.
1459 (vqmovun_high_s32): Likewise.
1460 (vqmovun_high_s64): Likewise.
1461 * config/aarch64/iterators.md (UNSPEC_SQXTUN2): Define.
1462
1463 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1464
1465 * config/aarch64/aarch64-simd-builtins.def (bfdot_lane, bfdot_laneq): Use
1466 AUTO_FP flags.
1467 (bfmlalb_lane, bfmlalt_lane, bfmlalb_lane_q, bfmlalt_lane_q): Use FP flags.
1468
1469 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1470
1471 * config/aarch64/aarch64-simd-builtins.def (fcmla_lane0, fcmla_lane90,
1472 fcmla_lane180, fcmla_lane270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
1473 fcmlaq_lane270, scvtf, ucvtf, fcvtzs, fcvtzu, scvtfsi, scvtfdi, ucvtfsi,
1474 ucvtfdi, fcvtzshf, fcvtzuhf, fmlal_lane_low, fmlsl_lane_low,
1475 fmlal_laneq_low, fmlsl_laneq_low, fmlalq_lane_low, fmlslq_lane_low,
1476 fmlalq_laneq_low, fmlslq_laneq_low, fmlal_lane_high, fmlsl_lane_high,
1477 fmlal_laneq_high, fmlsl_laneq_high, fmlalq_lane_high, fmlslq_lane_high,
1478 fmlalq_laneq_high, fmlslq_laneq_high): Use FP flags.
1479
1480 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1481
1482 * config/aarch64/aarch64-builtins.c (FLAG_LOAD): Define.
1483 * config/aarch64/aarch64-simd-builtins.def (ld1x2, ld2, ld3, ld4, ld2r,
1484 ld3r, ld4r, ld1, ld1x3, ld1x4): Use LOAD flags.
1485
1486 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1487
1488 * config/aarch64/aarch64-simd-builtins.def (combine, zip1, zip2,
1489 uzp1, uzp2, trn1, trn2, simd_bsl): Use AUTO_FP flags.
1490
1491 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1492
1493 * config/aarch64/aarch64-simd-builtins.def (clrsb, clz, ctz, popcount,
1494 vec_smult_lane_, vec_smlal_lane_, vec_smult_laneq_, vec_smlal_laneq_,
1495 vec_umult_lane_, vec_umlal_lane_, vec_umult_laneq_, vec_umlal_laneq_,
1496 ashl, sshl, ushl, srshl, urshl, sdot_lane, udot_lane, sdot_laneq,
1497 udot_laneq, usdot_lane, usdot_laneq, sudot_lane, sudot_laneq, ashr,
1498 ashr_simd, lshr, lshr_simd, srshr_n, urshr_n, ssra_n, usra_n, srsra_n,
1499 ursra_n, sshll_n, ushll_n, sshll2_n, ushll2_n, ssri_n, usri_n, ssli_n,
1500 ssli_n, usli_n, bswap, rbit, simd_bsl, eor3q, rax1q, xarq, bcaxq): Use
1501 NONE builtin flags.
1502
1503 2021-02-02 Jakub Jelinek <jakub@redhat.com>
1504
1505 PR tree-optimization/98848
1506 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Punt if
1507 STMT_VINFO_DEF_TYPE (last_stmt_info) is vect_reduction_def.
1508
1509 2021-02-02 Kito Cheng <kito.cheng@sifive.com>
1510
1511 PR target/98743
1512 * expr.c: Check mode before calling store_expr.
1513
1514 2021-02-02 Christophe Lyon <christophe.lyon@linaro.org>
1515
1516 * config/arm/iterators.md (supf): Remove VORNQ_S and VORNQ_U.
1517 (VORNQ): Remove.
1518 * config/arm/mve.md (mve_vornq_s<mode>): New entry for vorn
1519 instruction using expression ior.
1520 (mve_vornq_u<mode>): New expander.
1521 (mve_vornq_f<mode>): Use ior code instead of unspec.
1522 * config/arm/unspecs.md (VORNQ_S, VORNQ_U, VORNQ_F): Remove.
1523
1524 2021-02-02 Alexandre Oliva <oliva@adacore.com>
1525
1526 * tree-nested.c (convert_nonlocal_reference_op): Move
1527 current_function_decl restore after re-gimplification.
1528 (convert_local_reference_op): Likewise.
1529
1530 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1531
1532 * config/aarch64/aarch64-simd-builtins.def (rshrn, rshrn2):
1533 Define builtins.
1534 * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le):
1535 Define.
1536 (aarch64_rshrn<mode>_insn_be): Likewise.
1537 (aarch64_rshrn<mode>): Likewise.
1538 (aarch64_rshrn2<mode>_insn_le): Likewise.
1539 (aarch64_rshrn2<mode>_insn_be): Likewise.
1540 (aarch64_rshrn2<mode>): Likewise.
1541 * config/aarch64/aarch64.md (unspec): Add UNSPEC_RSHRN.
1542 * config/aarch64/arm_neon.h (vrshrn_high_n_s16): Reimplement
1543 using builtin.
1544 (vrshrn_high_n_s32): Likewise.
1545 (vrshrn_high_n_s64): Likewise.
1546 (vrshrn_high_n_u16): Likewise.
1547 (vrshrn_high_n_u32): Likewise.
1548 (vrshrn_high_n_u64): Likewise.
1549 (vrshrn_n_s16): Likewise.
1550 (vrshrn_n_s32): Likewise.
1551 (vrshrn_n_s64): Likewise.
1552 (vrshrn_n_u16): Likewise.
1553 (vrshrn_n_u32): Likewise.
1554 (vrshrn_n_u64): Likewise.
1555
1556 2021-02-01 Sergei Trofimovich <siarheit@google.com>
1557
1558 PR tree-optimization/98499
1559 * ipa-modref.c (analyze_ssa_name_flags): treat RVO
1560 conservatively and assume all possible side-effects.
1561
1562 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1563
1564 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi,
1565 vec_unpacku_hi_): Define builtins.
1566 * config/aarch64/arm_neon.h (vmovl_high_s8): Reimplement using
1567 builtin.
1568 (vmovl_high_s16): Likewise.
1569 (vmovl_high_s32): Likewise.
1570 (vmovl_high_u8): Likewise.
1571 (vmovl_high_u16): Likewise.
1572 (vmovl_high_u32): Likewise.
1573
1574 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1575
1576 * config/aarch64/aarch64-simd-builtins.def (sabdl, uabdl):
1577 Define builtins.
1578 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): New
1579 pattern.
1580 * config/aarch64/aarch64.md (unspec): Define UNSPEC_SABDL,
1581 UNSPEC_UABDL.
1582 * config/aarch64/arm_neon.h (vabdl_s8): Reimplemet using
1583 builtin.
1584 (vabdl_s16): Likewise.
1585 (vabdl_s32): Likewise.
1586 (vabdl_u8): Likewise.
1587 (vabdl_u16): Likewise.
1588 (vabdl_u32): Likewise.
1589 * config/aarch64/iterators.md (ABDL): New int iterator.
1590 (sur): Handle UNSPEC_SABDL, UNSPEC_UABDL.
1591
1592 2021-02-01 Martin Sebor <msebor@redhat.com>
1593
1594 * tree.h (BLOCK_VARS): Add comment.
1595 (BLOCK_SUBBLOCKS): Same.
1596 (BLOCK_SUPERCONTEXT): Same.
1597 (BLOCK_ABSTRACT_ORIGIN): Same.
1598 (inlined_function_outer_scope_p): Same.
1599
1600 2021-02-01 Martin Sebor <msebor@redhat.com>
1601
1602 PR middle-end/97172
1603 * attribs.c (attr_access::free_lang_data): Define new function.
1604 * attribs.h (attr_access::free_lang_data): Declare new function.
1605
1606 2021-02-01 Richard Biener <rguenther@suse.de>
1607
1608 * vec.h (auto_vec::auto_vec): Add memory stat parameters
1609 and pass them on.
1610 * bitmap.h (auto_bitmap::auto_bitmap): Likewise.
1611
1612 2021-02-01 Tamar Christina <tamar.christina@arm.com>
1613
1614 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>,
1615 aarch64_<su>mlsl<mode>, aarch64_<su>mlsl_n<mode>): Flip mult operands.
1616
1617 2021-02-01 Richard Biener <rguenther@suse.de>
1618
1619 PR rtl-optimization/98863
1620 * config/i386/i386-features.c (convert_scalars_to_vector):
1621 Set DF_RD_PRUNE_DEAD_DEFS.
1622
1623 2021-01-31 Eric Botcazou <ebotcazou@adacore.com>
1624
1625 * system.h (SIZE_MAX): Define if not already defined.
1626
1627 2021-01-30 Aaron Sawdey <acsawdey@linux.ibm.com>
1628
1629 * config/rs6000/genfusion.pl (gen_2logical): New function to
1630 generate patterns for logical-logical fusion.
1631 * config/rs6000/fusion.md: Regenerated patterns.
1632 * config/rs6000/rs6000-cpus.def: Add
1633 OPTION_MASK_P10_FUSION_2LOGICAL.
1634 * config/rs6000/rs6000.c (rs6000_option_override_internal):
1635 Enable logical-logical fusion for p10.
1636 * config/rs6000/rs6000.opt: Add -mpower10-fusion-2logical.
1637
1638 2021-01-30 David Edelsohn <dje.gcc@gmail.com>
1639
1640 * config/rs6000/rs6000.opt: Add periods to new AIX options.
1641
1642 2021-01-30 David Edelsohn <dje.gcc@gmail.com>
1643
1644 * config/rs6000/rs6000.opt (mabi=vec-extabi): New.
1645 (mabi=vec-default): New.
1646 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
1647 __EXTABI__ for AIX Vector extended ABI.
1648 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print AIX Vector
1649 extabi info.
1650 (conditional_register_usage): If AIX vec_extabi enabled, vs20-vs31
1651 are non-volatile.
1652 * doc/invoke.texi (PowerPC mabi): Add AIX vec-extabi and vec-default.
1653
1654 2021-01-30 Jakub Jelinek <jakub@redhat.com>
1655
1656 * config/i386/i386-features.c (remove_partial_avx_dependency): Clear
1657 DF_DEFER_INSN_RESCAN after calling df_process_deferred_rescans.
1658
1659 2021-01-29 Vladimir N. Makarov <vmakarov@redhat.com>
1660
1661 PR target/97701
1662 * lra-constraints.c (in_class_p): Don't narrow class only for REG
1663 or MEM.
1664
1665 2021-01-29 Will Schmidt <will_schmidt@vnet.ibm.com>
1666
1667 * config/rs6000/rs6000-call.c (rs6000_expand_binup_builtin): Add
1668 clauses for CODE_FOR_vsx_xvcvuxddp_scale and
1669 CODE_FOR_vsx_xvcvsxddp_scale to the parameter checking code.
1670
1671 2021-01-29 Andrew MacLeod <amacleod@redhat.com>
1672
1673 PR tree-optimization/98866
1674 * gimple-range-gori.h (gori_compute:set_range_invariant): New.
1675 * gimple-range-gori.cc (gori_map::set_range_invariant): New.
1676 (gori_map::m_maybe_invariant): Rename from all_outgoing.
1677 (gori_map::gori_map): Rename all_outgoing to m_maybe_invariant.
1678 (gori_map::is_export_p): Ditto.
1679 (gori_map::calculate_gori): Ditto.
1680 (gori_compute::set_range_invariant): New.
1681 * gimple-range.cc (gimple_ranger::range_of_stmt): Set range
1682 invariant for pointers evaluating to [1, +INF].
1683
1684 2021-01-29 Richard Biener <rguenther@suse.de>
1685
1686 PR rtl-optimization/98863
1687 * config/i386/i386-features.c (remove_partial_avx_dependency):
1688 Do not perform DF analysis.
1689 (pass_data_remove_partial_avx_dependency): Remove
1690 TODO_df_finish.
1691
1692 2021-01-29 Jonathan Wright <jonathan.wright@arm.com>
1693
1694 * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_n
1695 builtin generator macros.
1696 * config/aarch64/aarch64-simd.md (aarch64_<su>mull_n<mode>):
1697 Define.
1698 * config/aarch64/arm_neon.h (vmull_n_s16): Use RTL builtin
1699 instead of inline asm.
1700 (vmull_n_s32): Likewise.
1701 (vmull_n_u16): Likewise.
1702 (vmull_n_u32): Likewise.
1703
1704 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1705
1706 * config/aarch64/aarch64-simd-builtins.def (sabdl2, uabdl2):
1707 Define builtins.
1708 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3):
1709 Rename to...
1710 (aarch64_<sur>abdl2<mode>): ... This.
1711 (<sur>sadv16qi): Adjust use of above.
1712 * config/aarch64/arm_neon.h (vabdl_high_s8): Reimplement using
1713 builtin.
1714 (vabdl_high_s16): Likewise.
1715 (vabdl_high_s32): Likewise.
1716 (vabdl_high_u8): Likewise.
1717 (vabdl_high_u16): Likewise.
1718 (vabdl_high_u32): Likewise.
1719
1720 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1721
1722 * config/aarch64/aarch64-simd-builtins.def (sabal2): Define
1723 builtin.
1724 (uabal2): Likewise.
1725 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): New
1726 pattern.
1727 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SABAL2 and
1728 UNSPEC_UABAL2.
1729 * config/aarch64/arm_neon.h (vabal_high_s8): Reimplement using
1730 builtin.
1731 (vabal_high_s16): Likewise.
1732 (vabal_high_s32): Likewise.
1733 (vabal_high_u8): Likewise.
1734 (vabal_high_u16): Likewise.
1735 (vabal_high_u32): Likewise.
1736 * config/aarch64/iterators.md (ABAL2): New mode iterator.
1737 (sur): Handle UNSPEC_SABAL2, UNSPEC_UABAL2.
1738
1739 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1740
1741 * config/aarch64/aarch64-simd-builtins.def (sabal): Define
1742 builtin.
1743 (uabal): Likewise.
1744 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>_4):
1745 Rename to...
1746 (aarch64_<sur>abal<mode>): ... This
1747 (<sur>sadv16qi): Adust use of the above.
1748 * config/aarch64/arm_neon.h (vabal_s8): Reimplement using
1749 builtin.
1750 (vabal_s16): Likewise.
1751 (vabal_s32): Likewise.
1752 (vabal_u8): Likewise.
1753 (vabal_u16): Likewise.
1754 (vabal_u32): Likewise.
1755
1756 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1757
1758 * config/aarch64/aarch64-simd-builtins.def (saddlv, uaddlv):
1759 Define builtins.
1760 * config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
1761 Define.
1762 * config/aarch64/arm_neon.h (vaddlv_s8): Reimplement using
1763 builtin.
1764 (vaddlv_s16): Likewise.
1765 (vaddlv_u8): Likewise.
1766 (vaddlv_u16): Likewise.
1767 (vaddlvq_s8): Likewise.
1768 (vaddlvq_s16): Likewise.
1769 (vaddlvq_s32): Likewise.
1770 (vaddlvq_u8): Likewise.
1771 (vaddlvq_u16): Likewise.
1772 (vaddlvq_u32): Likewise.
1773 (vaddlv_s32): Likewise.
1774 (vaddlv_u32): Likewise.
1775 * config/aarch64/iterators.md (VDQV_L): New mode iterator.
1776 (unspec): Add UNSPEC_SADDLV, UNSPEC_UADDLV.
1777 (Vwstype): New mode attribute.
1778 (Vwsuf): Likewise.
1779 (VWIDE_S): Likewise.
1780 (USADDLV): New int iterator.
1781 (su): Handle UNSPEC_SADDLV, UNSPEC_UADDLV.
1782
1783 2021-01-29 Jonathan Wright <jonathan.wright@arm.com>
1784
1785 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_lane[q]
1786 builtin generator macros.
1787 * config/aarch64/aarch64-simd.md (aarch64_vec_<su>mlsl_lane<Qlane>):
1788 Define.
1789 * config/aarch64/arm_neon.h (vmlsl_lane_s16): Use RTL builtin
1790 instead of inline asm.
1791 (vmlsl_lane_s32): Likewise.
1792 (vmlsl_lane_u16): Likewise.
1793 (vmlsl_lane_u32): Likewise.
1794 (vmlsl_laneq_s16): Likewise.
1795 (vmlsl_laneq_s32): Likewise.
1796 (vmlsl_laneq_u16): Likewise.
1797 (vmlsl_laneq_u32): Likewise.
1798
1799 2021-01-29 Richard Biener <rguenther@suse.de>
1800
1801 * doc/invoke.texi (--param max-gcse-memory): Document unit
1802 of size.
1803 * gcse.c (gcse_or_cprop_is_too_expensive): Adjust.
1804 * params.opt (--param max-gcse-memory): Adjust default and
1805 document unit of size.
1806
1807 2021-01-29 Richard Biener <rguenther@suse.de>
1808
1809 PR rtl-optimization/98863
1810 * gcse.c (gcse_or_cprop_is_too_expensive): Use unsigned
1811 HOST_WIDE_INT for the memory estimate.
1812
1813 2021-01-29 Bin Cheng <bin.cheng@linux.alibaba.com>
1814 Richard Biener <rguenther@suse.de>
1815
1816 PR tree-optimization/97627
1817 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
1818 Do not analyze fake edges.
1819
1820 2021-01-29 Richard Biener <rguenther@suse.de>
1821
1822 PR rtl-optimization/98144
1823 * df.h (df_mir_bb_info): Add con_visited member.
1824 * df-problems.c (df_mir_alloc): Initialize con_visited,
1825 do not fully populate IN and OUT.
1826 (df_mir_reset): Likewise.
1827 (df_mir_confluence_0): Set con_visited.
1828 (df_mir_confluence_n): Properly handle implicitely
1829 fully populated IN and OUT as designated by con_visited
1830 and update con_visited accordingly.
1831
1832 2021-01-29 Jakub Jelinek <jakub@redhat.com>
1833
1834 PR target/98849
1835 * config/arm/vec-common.md (mve_vshlq_<supf><mode>,
1836 vashl<mode>3, vashr<mode>3, vlshr<mode>3): Add
1837 && !TARGET_REALLY_IWMMXT to conditions.
1838
1839 2021-01-29 Jakub Jelinek <jakub@redhat.com>
1840
1841 PR debug/98331
1842 * cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing
1843 a BARRIER.
1844
1845 2021-01-28 Marek Polacek <polacek@redhat.com>
1846
1847 PR c++/94775
1848 * stor-layout.c (finalize_type_size): If we reset TYPE_USER_ALIGN in
1849 the main variant, maybe reset it in its variants too.
1850 * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
1851 (check_aligned_type): Check if TYPE_USER_ALIGN match.
1852
1853 2021-01-28 Christophe Lyon <christophe.lyon@linaro.org>
1854
1855 PR target/98730
1856 * config/arm/arm.c (arm_rtx_costs_internal): Adjust cost of vector
1857 of constant zero for comparisons.
1858
1859 2021-01-28 Michael Meissner <meissner@linux.ibm.com>
1860
1861 * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Add
1862 support for mapping built-in function names for long double
1863 built-in functions if long double is IEEE 128-bit.
1864
1865 2021-01-28 Jonathan Wright <jonathan.wright@arm.com>
1866
1867 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_n
1868 builtin generator macros.
1869 * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_n<mode>):
1870 Define.
1871 * config/aarch64/arm_neon.h (vmlsl_n_s16): Use RTL builtin
1872 instead of inline asm.
1873 (vmlsl_n_s32): Likewise.
1874 (vmlsl_n_u16): Likewise.
1875 (vmlsl_n_u32): Likewise.
1876
1877 2021-01-28 Jonathan Wright <jonathan.wright@arm.com>
1878
1879 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_n
1880 builtin generator macros.
1881 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>):
1882 Define.
1883 * config/aarch64/arm_neon.h (vmlal_n_s16): Use RTL builtin
1884 instead of inline asm.
1885 (vmlal_n_s32): Likewise.
1886 (vmlal_n_u16): Likewise.
1887 (vmlal_n_u32): Likewise.
1888
1889 2021-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1890
1891 * config/aarch64/aarch64-simd-builtins.def (shrn2): Define
1892 builtin.
1893 * config/aarch64/aarch64-simd.md (aarch64_shrn2<mode>_insn_le):
1894 Define.
1895 (aarch64_shrn2<mode>_insn_be): Likewise.
1896 (aarch64_shrn2<mode>): Likewise.
1897 * config/aarch64/arm_neon.h (vshrn_high_n_s16): Reimlplement
1898 using builtins.
1899 (vshrn_high_n_s32): Likewise.
1900 (vshrn_high_n_s64): Likewise.
1901 (vshrn_high_n_u16): Likewise.
1902 (vshrn_high_n_u32): Likewise.
1903 (vshrn_high_n_u64): Likewise.
1904
1905 2021-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1906
1907 * config/aarch64/aarch64-simd-builtins.def (shrn): Define
1908 builtin.
1909 * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le):
1910 Define.
1911 (aarch64_shrn<mode>_insn_be): Likewise.
1912 (aarch64_shrn<mode>): Likewise.
1913 * config/aarch64/arm_neon.h (vshrn_n_s16): Reimplement using
1914 builtins.
1915 (vshrn_n_s32): Likewise.
1916 (vshrn_n_s64): Likewise.
1917 (vshrn_n_u16): Likewise.
1918 (vshrn_n_u32): Likewise.
1919 (vshrn_n_u64): Likewise.
1920 * config/aarch64/iterators.md (vn_mode): New mode attribute.
1921
1922 2021-01-28 Richard Biener <rguenther@suse.de>
1923
1924 PR rtl-optimization/80960
1925 * dse.c (check_mem_read_rtx): Call get_addr on the
1926 offsetted address.
1927
1928 2021-01-28 Xionghu Luo <luoxhu@linux.ibm.com>
1929 David Edelsohn <dje.gcc@gmail.com>
1930
1931 PR target/98799
1932 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1933 Don't generate VIEW_CONVERT_EXPR for fcode ALTIVEC_BUILTIN_VEC_INSERT
1934 when -m32.
1935 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
1936 Delete.
1937 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Remove the
1938 wrapper call rs6000_expand_vector_set_var for cleanup. Call
1939 rs6000_expand_vector_set_var_p9 and rs6000_expand_vector_set_var_p8
1940 directly.
1941 (rs6000_expand_vector_set_var): Delete.
1942 (rs6000_expand_vector_set_var_p9): Make static.
1943 (rs6000_expand_vector_set_var_p8): Make static.
1944
1945 2021-01-28 Xing GUO <higuoxing@gmail.com>
1946
1947 * common/config/riscv/riscv-common.c
1948 (riscv_subset_list::parsing_subset_version): Fix -march option parsing
1949 when `p` extension exists.
1950
1951 2021-01-27 Vladimir N. Makarov <vmakarov@redhat.com>
1952
1953 PR rtl-optimization/97684
1954 * ira.c (ira): Call ira_set_pseudo_classes before
1955 update_equiv_regs when it is necessary.
1956
1957 2021-01-27 Jakub Jelinek <jakub@redhat.com>
1958
1959 PR target/98853
1960 * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Use
1961 %w0, %w1 and %2 instead of %0, %1 and %2.
1962
1963 2021-01-27 Aaron Sawdey <acsawdey@linux.ibm.com>
1964
1965 * config/rs6000/genfusion.pl: New script to generate
1966 define_insn_and_split patterns so combine can arrange fused
1967 instructions next to each other.
1968 * config/rs6000/fusion.md: New file, generated fused instruction
1969 patterns for combine.
1970 * config/rs6000/predicates.md (const_m1_to_1_operand): New predicate.
1971 (non_update_memory_operand): New predicate.
1972 * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_P10_FUSION and
1973 OPTION_MASK_P10_FUSION_LD_CMPI to ISA_3_1_MASKS_SERVER and
1974 POWERPC_MASKS.
1975 * config/rs6000/rs6000-protos.h (address_is_non_pfx_d_or_x): Add
1976 prototype.
1977 * config/rs6000/rs6000.c (rs6000_option_override_internal):
1978 Automatically set OPTION_MASK_P10_FUSION and
1979 OPTION_MASK_P10_FUSION_LD_CMPI if target is power10.
1980 (rs600_opt_masks): Allow -mpower10-fusion
1981 in function attributes.
1982 (address_is_non_pfx_d_or_x): New function.
1983 * config/rs6000/rs6000.h: Add MASK_P10_FUSION.
1984 * config/rs6000/rs6000.md: Include fusion.md.
1985 * config/rs6000/rs6000.opt: Add -mpower10-fusion
1986 and -mpower10-fusion-ld-cmpi.
1987 * config/rs6000/t-rs6000: Add dependencies involving fusion.md.
1988
1989 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
1990
1991 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal
1992 builtin generator macros.
1993 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal<mode>):
1994 Rename to...
1995 (aarch64_<su>mlal<mode>): This.
1996 * config/aarch64/arm_neon.h (vmlal_s8): Use RTL builtin
1997 instead of inline asm.
1998 (vmlal_s16): Likewise.
1999 (vmlal_s32): Likewise.
2000 (vmlal_u8): Likewise.
2001 (vmlal_u16): Likewise.
2002 (vmlal_u32): Likewise.
2003
2004 2021-01-27 Richard Biener <rguenther@suse.de>
2005
2006 PR tree-optimization/98854
2007 * tree-vect-slp.c (vect_build_slp_tree_2): Also build
2008 PHIs from scalars when the number of CTORs matches the
2009 number of children.
2010
2011 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
2012
2013 * config/aarch64/aarch64-simd-builtins.def: Add mls_n builtin
2014 generator macro.
2015 * config/aarch64/aarch64-simd.md (*aarch64_mls_elt_merge<mode>):
2016 Rename to...
2017 (aarch64_mls_n<mode>): This.
2018 * config/aarch64/arm_neon.h (vmls_n_s16): Use RTL builtin
2019 instead of asm.
2020 (vmls_n_s32): Likewise.
2021 (vmls_n_u16): Likewise.
2022 (vmls_n_u32): Likewise.
2023 (vmlsq_n_s16): Likewise.
2024 (vmlsq_n_s32): Likewise.
2025 (vmlsq_n_u16): Likewise.
2026 (vmlsq_n_u32): Likewise.
2027
2028 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
2029
2030 * config/aarch64/aarch64-simd-builtins.def: Add mls builtin
2031 generator macro.
2032 * config/aarch64/arm_neon.h (vmls_s8): Use RTL builtin rather
2033 than asm.
2034 (vmls_s16): Likewise.
2035 (vmls_s32): Likewise.
2036 (vmls_u8): Likewise.
2037 (vmls_u16): Likewise.
2038 (vmls_u32): Likewise.
2039 (vmlsq_s8): Likewise.
2040 (vmlsq_s16): Likewise.
2041 (vmlsq_s32): Likewise.
2042 (vmlsq_u8): Likewise.
2043 (vmlsq_u16): Likewise.
2044 (vmlsq_u32): Likewise.
2045
2046 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
2047
2048 * config/aarch64/aarch64-simd-builtins.def: Add mla_n builtin
2049 generator macro.
2050 * config/aarch64/aarch64-simd.md (*aarch64_mla_elt_merge<mode>):
2051 Rename to...
2052 (aarch64_mla_n<mode>): This.
2053 * config/aarch64/arm_neon.h (vmla_n_s16): Use RTL builtin
2054 instead of asm.
2055 (vmla_n_s32): Likewise.
2056 (vmla_n_u16): Likewise.
2057 (vmla_n_u32): Likewise.
2058 (vmlaq_n_s16): Likewise.
2059 (vmlaq_n_s32): Likewise.
2060 (vmlaq_n_u16): Likewise.
2061 (vmlaq_n_u32): Likewise.
2062
2063 2021-01-27 liuhongt <hongtao.liu@intel.com>
2064
2065 PR target/98833
2066 * config/i386/sse.md (sse2_gt<mode>3): Drop !TARGET_XOP in condition.
2067 (*sse2_eq<mode>3): Ditto.
2068
2069 2021-01-27 Jakub Jelinek <jakub@redhat.com>
2070
2071 * tree-pass.h (PROP_trees): Rename to ...
2072 (PROP_gimple): ... this.
2073 * cfgexpand.c (pass_data_expand): Replace PROP_trees with PROP_gimple.
2074 * passes.c (execute_function_dump, execute_function_todo,
2075 execute_one_ipa_transform_pass, execute_one_pass): Likewise.
2076 * varpool.c (ctor_for_folding): Likewise.
2077
2078 2021-01-27 Jakub Jelinek <jakub@redhat.com>
2079
2080 PR tree-optimization/97260
2081 * varpool.c: Include tree-pass.h.
2082 (ctor_for_folding): In GENERIC return DECL_INITIAL for TREE_READONLY
2083 non-TREE_SIDE_EFFECTS automatic variables.
2084
2085 2021-01-26 Paul Fee <paul.f.fee@gmail.com>
2086
2087 * doc/cpp.texi (__cplusplus): Document value for -std=c++23
2088 or -std=gnu++23.
2089 * doc/invoke.texi: Document -std=c++23 and -std=gnu++23.
2090 * dwarf2out.c (highest_c_language): Recognise C++20 and C++23.
2091 (gen_compile_unit_die): Recognise C++23.
2092
2093 2021-01-26 Jakub Jelinek <jakub@redhat.com>
2094
2095 PR bootstrap/98839
2096 * dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int
2097 in comparison.
2098
2099 2021-01-26 Jakub Jelinek <jakub@redhat.com>
2100
2101 PR target/98681
2102 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
2103 Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt)
2104 and INTVAL (mask). Add && INTVAL (mask) > 0 condition.
2105
2106 2021-01-26 Richard Biener <rguenther@suse.de>
2107
2108 * gimple-pretty-print.c (dump_binary_rhs): Handle
2109 VEC_WIDEN_{PLUS,MINUS}_{LO,HI}_EXPR.
2110
2111 2021-01-26 Richard Biener <rguenther@suse.de>
2112
2113 PR middle-end/98726
2114 * tree.h (vector_cst_int_elt): Remove.
2115 * tree.c (vector_cst_int_elt): Use poly_wide_int for computations,
2116 make static.
2117
2118 2021-01-26 Andrew Stubbs <ams@codesourcery.com>
2119
2120 * config/gcn/gcn.c (gcn_expand_reduc_scalar): Use move instructions
2121 for V64DFmode min/max reductions.
2122
2123 2021-01-26 Jakub Jelinek <jakub@redhat.com>
2124
2125 * dwarf2asm.c (dw2_assemble_integer): Handle size twice as large
2126 as DWARF2_ADDR_SIZE if x is not a scalar int by emitting it as
2127 two halves, one with x and the other with const0_rtx, ordered
2128 depending on endianity.
2129
2130 2021-01-26 Alexandre Oliva <oliva@adacore.com>
2131
2132 * gimplify.c (gimplify_decl_expr): Skip asan marking calls for
2133 temporaries not seen in binding block, and not about to be
2134 added as gimple variables.
2135
2136 2021-01-25 Martin Sebor <msebor@redhat.com>
2137
2138 PR c++/98646
2139 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust warning text.
2140
2141 2021-01-25 Martin Liska <mliska@suse.cz>
2142
2143 * value-prof.c (get_nth_most_common_value): Use %s instead
2144 of %qs string.
2145
2146 2021-01-25 Jakub Jelinek <jakub@redhat.com>
2147
2148 PR debug/98811
2149 * configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG): Only define if
2150 readelf -wi is able to read the emitted .debug_info back.
2151 * configure: Regenerated.
2152
2153 2021-01-25 Martin Liska <mliska@suse.cz>
2154
2155 PR gcov-profile/98739
2156 * common.opt: Add missing sign symbol.
2157 * value-prof.c (get_nth_most_common_value): Restore handling
2158 of PROFILE_REPRODUCIBILITY_PARALLEL_RUNS and
2159 PROFILE_REPRODUCIBILITY_MULTITHREADED.
2160
2161 2021-01-25 Richard Biener <rguenther@suse.de>
2162
2163 PR middle-end/98807
2164 * tree.c (vector_element_bits): Always use precision of
2165 the element type for boolean vectors.
2166
2167 2021-01-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
2168
2169 * config/rtems.h (STARTFILE_SPEC): Remove qnolinkcmds.
2170 (ENDFILE_SPEC): Evaluate qnolinkcmds.
2171
2172 2021-01-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
2173
2174 * config/rtems.h (STARTFILE_SPEC): Remove nostdlib and
2175 nostartfiles handling since this is already done by
2176 LINK_COMMAND_SPEC. Evaluate qnolinkcmds.
2177 (ENDFILE_SPEC): Remove nostdlib and nostartfiles handling since this
2178 is already done by LINK_COMMAND_SPEC.
2179 (LIB_SPECS): Remove nostdlib and nodefaultlibs handling since
2180 this is already done by LINK_COMMAND_SPEC. Remove qnolinkcmds
2181 evaluation.
2182
2183 2021-01-25 Jakub Jelinek <jakub@redhat.com>
2184
2185 PR testsuite/98771
2186 * fold-const-call.c (host_size_t_cst_p): Renamed to ...
2187 (size_t_cst_p): ... this. Check and store unsigned HOST_WIDE_INT
2188 value rather than host size_t.
2189 (fold_const_call): Change type of s2 from size_t to
2190 unsigned HOST_WIDE_INT. Use size_t_cst_p instead of
2191 host_size_t_cst_p. For strncmp calls, pass MIN (s2, SIZE_MAX)
2192 instead of s2 as last argument.
2193
2194 2021-01-25 Tamar Christina <tamar.christina@arm.com>
2195
2196 * config/arm/iterators.md (rotsplit1, rotsplit2, conj_op, fcmac1,
2197 VCMLA_OP, VCMUL_OP): New.
2198 * config/arm/mve.md (mve_vcmlaq<mve_rot><mode>): Support vec_dup 0.
2199 * config/arm/neon.md (cmul<conj_op><mode>3): New.
2200 * config/arm/unspecs.md (UNSPEC_VCMLA_CONJ, UNSPEC_VCMLA180_CONJ,
2201 UNSPEC_VCMUL_CONJ): New.
2202 * config/arm/vec-common.md (cmul<conj_op><mode>3, arm_vcmla<rot><mode>,
2203 cml<fcmac1><conj_op><mode>4): New.
2204
2205 2021-01-23 Jakub Jelinek <jakub@redhat.com>
2206
2207 PR testsuite/97301
2208 * config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute.
2209
2210 2021-01-22 Jonathan Wright <jonathan.wright@arm.com>
2211
2212 * config/aarch64/aarch64-simd-builtins.def: Add mla builtin
2213 generator macro.
2214 * config/aarch64/arm_neon.h (vmla_s8): Use RTL builtin rather
2215 than asm.
2216 (vmla_s16): Likewise.
2217 (vmla_s32): Likewise.
2218 (vmla_u8): Likewise.
2219 (vmla_u16): Likewise.
2220 (vmla_u32): Likewise.
2221 (vmlaq_s8): Likewise.
2222 (vmlaq_s16): Likewise.
2223 (vmlaq_s32): Likewise.
2224 (vmlaq_u8): Likewise.
2225 (vmlaq_u16): Likewise.
2226 (vmlaq_u32): Likewise.
2227
2228 2021-01-22 David Malcolm <dmalcolm@redhat.com>
2229
2230 * doc/invoke.texi (GCC_EXTRA_DIAGNOSTIC_OUTPUT): Add @findex
2231 directive.
2232
2233 2021-01-22 Jakub Jelinek <jakub@redhat.com>
2234
2235 PR debug/98796
2236 * dwarf2out.c (output_file_names): For -gdwarf-5, if there are no
2237 filenames to emit, still emit the required 0 index directory and
2238 filename entries that match DW_AT_comp_dir and DW_AT_name of the
2239 compilation unit.
2240
2241 2021-01-22 Marek Polacek <polacek@redhat.com>
2242
2243 PR c++/98545
2244 * doc/invoke.texi: Update C++ ABI Version 15 description.
2245
2246 2021-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2247
2248 PR tree-optimization/98766
2249 * tree-ssa-math-opts.c (convert_mult_to_fma): Use maybe_le when
2250 comparing against type size with param_avoid_fma_max_bits.
2251
2252 2021-01-22 Richard Biener <rguenther@suse.de>
2253
2254 PR middle-end/98793
2255 * tree.c (vector_element_bits): Key single-bit bool vector on
2256 integer mode rather than not vector mode.
2257
2258 2021-01-22 Xionghu Luo <luoxhu@linux.ibm.com>
2259
2260 PR target/98093
2261 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2262 Generate ARRAY_REF(VIEW_CONVERT_EXPR) for P8 and later
2263 platforms.
2264 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): Update
2265 to call different path for P8 and P9.
2266 (rs6000_expand_vector_set_var_p9): New function.
2267 (rs6000_expand_vector_set_var_p8): New function.
2268
2269 2021-01-22 Xionghu Luo <luoxhu@linux.ibm.com>
2270
2271 PR target/79251
2272 PR target/98065
2273 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2274 Ajdust variable index vec_insert from address dereference to
2275 ARRAY_REF(VIEW_CONVERT_EXPR) tree expression.
2276 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
2277 New declaration.
2278 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): New function.
2279
2280 2021-01-22 Martin Liska <mliska@suse.cz>
2281
2282 PR gcov-profile/98739
2283 * profile.c (compute_value_histograms): Drop time profile for
2284 -fprofile-reproducible=multithreaded.
2285
2286 2021-01-22 Nathan Sidwell <nathan@acm.org>
2287
2288 * gcc.c (process_command): Don't check OPT_SPECIAL_input_file
2289 existence here.
2290
2291 2021-01-22 Richard Biener <rguenther@suse.de>
2292
2293 PR middle-end/98773
2294 * tree-data-ref.c (initalize_matrix_A): Revert previous
2295 change, retaining failing on HOST_WIDE_INT_MIN CHREC_RIGHT.
2296
2297 2021-01-22 Jakub Jelinek <jakub@redhat.com>
2298
2299 PR tree-optimization/90248
2300 * match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X),
2301 X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove
2302 simplifications.
2303 (X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X),
2304 X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications.
2305
2306 2021-01-22 Jakub Jelinek <jakub@redhat.com>
2307
2308 PR tree-optimization/98255
2309 * tree-dfa.c (get_ref_base_and_extent): For ARRAY_REFs, sign
2310 extend index - low_bound from sizetype's precision rather than index
2311 precision.
2312 (get_addr_base_and_unit_offset_1): Likewise.
2313 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Likewise.
2314 * gimple-fold.c (fold_const_aggregate_ref_1): Likewise.
2315
2316 2021-01-22 Richard Biener <rguenther@suse.de>
2317
2318 PR tree-optimization/98786
2319 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid
2320 adding new uses of abnormals. Verify we deal with a conditional
2321 conversion.
2322
2323 2021-01-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2324
2325 PR target/98636
2326 * optc-save-gen.awk: Add arm_fp16_format to checked_options.
2327
2328 2021-01-22 liuhongt <hongtao.liu@intel.com>
2329
2330 PR target/96891
2331 PR target/98348
2332 * config/i386/sse.md (VI_128_256): New mode iterator.
2333 (*avx_cmp<mode>3_1, *avx_cmp<mode>3_2, *avx_cmp<mode>3_3,
2334 *avx_cmp<mode>3_4, *avx2_eq<mode>3, *avx2_pcmp<mode>3_1,
2335 *avx2_pcmp<mode>3_2, *avx2_gt<mode>3): New
2336 define_insn_and_split to lower avx512 vector comparison to avx
2337 version when dest is vector.
2338 (*<avx512>_cmp<mode>3,*<avx512>_cmp<mode>3,*<avx512>_ucmp<mode>3):
2339 define_insn_and_split for negating the comparison result.
2340 * config/i386/predicates.md (float_vector_all_ones_operand):
2341 New predicate.
2342 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
2343 general NOT operator without UNSPEC_MASKOP.
2344
2345 2021-01-21 Vladimir N. Makarov <vmakarov@redhat.com>
2346
2347 PR rtl-optimization/98777
2348 * lra-int.h (lra_pmode_pseudo): New extern.
2349 * lra.c (lra_pmode_pseudo): New global.
2350 (lra): Set it up.
2351 * lra-eliminations.c (eliminate_regs_in_insn): Use it.
2352
2353 2021-01-21 Ilya Leoshkevich <iii@linux.ibm.com>
2354
2355 * fwprop.c (fwprop_propagation::classify_result): Allow
2356 (subreg (mem)) simplifications.
2357
2358 2021-01-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2359
2360 * config/aarch64/aarch64-simd.md (aarch64_sqdml<SBINQOPS:as>l<mode>):
2361 Split into...
2362 (aarch64_sqdmlal<mode>): ... This...
2363 (aarch64_sqdmlsl<mode>): ... And this.
2364 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Split into...
2365 (aarch64_sqdmlal_lane<mode>): ... This...
2366 (aarch64_sqdmlsl_lane<mode>): ... And this.
2367 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Split into...
2368 (aarch64_sqdmlsl_laneq<mode>): ... This...
2369 (aarch64_sqdmlal_laneq<mode>): ... And this.
2370 (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Split into...
2371 (aarch64_sqdmlsl_n<mode>): ... This...
2372 (aarch64_sqdmlal_n<mode>): ... And this.
2373 (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Split into...
2374 (aarch64_sqdmlal2<mode>_internal): ... This...
2375 (aarch64_sqdmlsl2<mode>_internal): ... And this.
2376
2377 2021-01-21 Christophe Lyon <christophe.lyon@linaro.org>
2378
2379 * config/arm/arm_mve.h (__arm_vcmpneq_s8): Fix return type.
2380
2381 2021-01-21 Andrea Corallo <andrea.corallo@arm.com>
2382
2383 PR target/96372
2384 * doc/sourcebuild.texi (arm_thumb2_no_arm_v8_1_lob): Document.
2385
2386 2021-01-21 liuhongt <hongtao.liu@intel.com>
2387
2388 PR rtl-optimization/98694
2389 * regcprop.c (copy_value): If SRC had been assigned a mode
2390 narrower than the copy, we can't link DEST into the chain even
2391 they have same hard_regno_nregs(i.e. HImode/SImode in i386
2392 backend).
2393
2394 2021-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2395
2396 * config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>):
2397 Convert to define_insn_and_split. Split into simple move when moving
2398 bottom element.
2399
2400 2021-01-20 Segher Boessenkool <segher@kernel.crashing.org>
2401
2402 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Change assert.
2403 Adjust comment. Simplify code.
2404
2405 2021-01-20 Jakub Jelinek <jakub@redhat.com>
2406
2407 PR debug/98765
2408 * dwarf2out.c (reset_indirect_string): Also reset indirect strings
2409 with DW_FORM_line_strp form.
2410 (prune_unused_types_update_strings): Don't add into debug_str_hash
2411 indirect strings with DW_FORM_line_strp form.
2412 (adjust_name_comp_dir): New function.
2413 (dwarf2out_finish): Call it on CU DIEs after resetting
2414 debug_line_str_hash.
2415
2416 2021-01-20 Vladimir N. Makarov <vmakarov@redhat.com>
2417
2418 PR rtl-optimization/98722
2419 * lra-eliminations.c (eliminate_regs_in_insn): Check that target
2420 has no 3-op add insn to transform insns containing two pluses.
2421
2422 2021-01-20 Richard Biener <rguenther@suse.de>
2423
2424 * hwint.h (add_hwi): New function.
2425 (mul_hwi): Likewise.
2426 * tree-data-ref.c (initialize_matrix_A): Properly translate
2427 tree constants and avoid HOST_WIDE_INT_MIN.
2428 (lambda_matrix_row_add): Avoid undefined integer overflow
2429 and return true on such overflow.
2430 (lambda_matrix_right_hermite): Handle overflow from
2431 lambda_matrix_row_add gracefully. Simplify previous fix.
2432 (analyze_subscript_affine_affine): Likewise.
2433
2434 2021-01-20 Eugene Rozenfeld <erozen@microsoft.com>
2435
2436 PR tree-optimization/96674
2437 * match.pd: New patterns: x < y || y == XXX_MIN --> x <= y - 1
2438 x >= y && y != XXX_MIN --> x > y - 1
2439
2440 2021-01-20 Richard Sandiford <richard.sandiford@arm.com>
2441
2442 PR tree-optimization/98535
2443 * tree-vect-slp.c (duplicate_and_interleave): Use quick_grow_cleared.
2444 If the high and low permutes are the same, remove the high permutes
2445 from the working set and only continue with the low ones.
2446
2447 2021-01-20 Jakub Jelinek <jakub@redhat.com>
2448
2449 PR tree-optimization/98721
2450 * builtins.c (access_ref::inform_access): Don't assume
2451 SSA_NAME_IDENTIFIER must be non-NULL. Print messages about
2452 object whenever allocfn is NULL, rather than only when DECL_P
2453 is true. Use %qE instead of %qD for that. Formatting fixes.
2454
2455 2021-01-20 Richard Biener <rguenther@suse.de>
2456
2457 PR tree-optimization/98758
2458 * tree-data-ref.c (int_divides_p): Use lambda_int arguments.
2459 (lambda_matrix_right_hermite): Avoid undefinedness with
2460 signed integer abs and multiplication.
2461 (analyze_subscript_affine_affine): Use lambda_int.
2462
2463 2021-01-20 David Malcolm <dmalcolm@redhat.com>
2464
2465 PR debug/98751
2466 * dwarf2out.c (output_line_info): Rename static variable
2467 "generation", moving it out of the function to...
2468 (output_line_info_generation): New.
2469 (init_sections_and_labels): Likewise, renaming the variable to...
2470 (init_sections_and_labels_generation): New.
2471 (dwarf2out_c_finalize): Reset the new variables.
2472
2473 2021-01-19 Martin Sebor <msebor@redhat.com>
2474
2475 PR middle-end/98664
2476 * tree-ssa-live.c (remove_unused_scope_block_p): Keep scopes for
2477 all functions, even if they're not declared artificial or inline.
2478 * tree.c (tree_inlined_location): Use macro expansion location
2479 only if scope traversal fails to expose one.
2480
2481 2021-01-19 Richard Sandiford <richard.sandiford@arm.com>
2482
2483 PR rtl-optimization/92294
2484 * alias.c (compare_base_symbol_refs): Take an extra parameter
2485 and add the distance between two symbols to it. Enshrine in
2486 comments that -1 means "either 0 or 1, but we can't tell
2487 which at compile time".
2488 (memrefs_conflict_p): Update call accordingly.
2489 (rtx_equal_for_memref_p): Likewise. Take the distance between symbols
2490 into account.
2491
2492 2021-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2493
2494 * config/aarch64/aarch64-simd-builtins.def (sqshl, uqshl,
2495 sqrshl, uqrshl, sqadd, uqadd, sqsub, uqsub, suqadd, usqadd, sqmovn,
2496 uqmovn, sqxtn2, uqxtn2, sqabs, sqneg, sqdmlal, sqdmlsl, sqdmlal_lane,
2497 sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq, sqdmlal_n, sqdmlsl_n,
2498 sqdmlal2, sqdmlsl2, sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq,
2499 sqdmlsl2_laneq, sqdmlal2_n, sqdmlsl2_n, sqdmull, sqdmull_lane,
2500 sqdmull_laneq, sqdmull_n, sqdmull2, sqdmull2_lane, sqdmull2_laneq,
2501 sqdmull2_n, sqdmulh, sqrdmulh, sqdmulh_lane, sqdmulh_laneq,
2502 sqrdmulh_lane, sqrdmulh_laneq, sqshrun_n, sqrshrun_n, sqshrn_n,
2503 uqshrn_n, sqrshrn_n, uqrshrn_n, sqshlu_n, sqshl_n, uqshl_n, sqrdmlah,
2504 sqrdmlsh, sqrdmlah_lane, sqrdmlsh_lane, sqrdmlah_laneq, sqrdmlsh_laneq,
2505 sqmovun): Use NONE flags.
2506
2507 2021-01-19 Richard Biener <rguenther@suse.de>
2508
2509 PR ipa/98330
2510 * ipa-modref.c (analyze_stmt): Only record a summary for a
2511 direct call.
2512
2513 2021-01-19 Richard Biener <rguenther@suse.de>
2514
2515 PR middle-end/98638
2516 * tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT.
2517
2518 2021-01-19 Daniel Hellstrom <daniel@gaisler.com>
2519
2520 * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
2521 built-in define __FIX_LEON3FT_TN0018.
2522
2523 2021-01-19 Richard Biener <rguenther@suse.de>
2524
2525 PR ipa/97673
2526 * tree-inline.c (tree_function_versioning): Set input_location
2527 to UNKNOWN_LOCATION throughout the function.
2528
2529 2021-01-19 Tobias Burnus <tobias@codesourcery.com>
2530
2531 PR fortran/98476
2532 * omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr.
2533
2534 2021-01-19 Martin Jambor <mjambor@suse.cz>
2535
2536 PR ipa/98690
2537 * ipa-sra.c (ssa_name_only_returned_p): New parameter fun. Check
2538 whether non-call exceptions allow removal of a statement.
2539 (isra_analyze_call): Pass the appropriate function to
2540 ssa_name_only_returned_p.
2541
2542 2021-01-19 Geng Qi <gengqi@linux.alibaba.com>
2543
2544 * config/riscv/arch-canonicalize (longext_sort): New function for
2545 sorting 'multi-letter'.
2546 * config/riscv/multilib-generator: Adjusting the loop of 'alt' in
2547 'alts'. The 'arch' may not be the first of 'alts'.
2548 (_expand_combination): Add underline for the 'ext' without '*'.
2549 This is because, a single-letter extension can always be treated well
2550 with a '_' prefix, but it cannot be separated out if it is appended
2551 to a multi-letter.
2552
2553 2021-01-18 Vladimir N. Makarov <vmakarov@redhat.com>
2554
2555 PR target/97847
2556 * ira.c (ira): Skip abnormal critical edge splitting.
2557
2558 2021-01-18 Jakub Jelinek <jakub@redhat.com>
2559
2560 PR tree-optimization/98727
2561 * tree-ssa-math-opts.c (match_arith_overflow): Fix up computation of
2562 second .MUL_OVERFLOW operand for signed multiplication with overflow
2563 checking if the second operand of multiplication is not constant.
2564
2565 2021-01-18 David Edelsohn <dje.gcc@gmail.com>
2566
2567 * doc/invoke.texi (-gdwarf): TPF defaults to version 2 and AIX
2568 defaults to version 4.
2569
2570 2021-01-18 David Malcolm <dmalcolm@redhat.com>
2571
2572 * attribs.h (fndecl_dealloc_argno): New decl.
2573 * builtins.c (call_dealloc_argno): Split out second half of
2574 function into...
2575 (fndecl_dealloc_argno): New.
2576 * doc/extend.texi (Common Function Attributes): Document the
2577 interaction between the analyzer and the malloc attribute.
2578 * doc/invoke.texi (Static Analyzer Options): Likewise.
2579
2580 2021-01-17 David Edelsohn <dje.gcc@gmail.com>
2581
2582 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Override
2583 dwarf_version to 4.
2584 * config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
2585
2586 2021-01-17 Martin Jambor <mjambor@suse.cz>
2587
2588 PR ipa/98222
2589 * cgraph.c (clone_of_p): Check also former_clone_of as we climb
2590 the clone tree.
2591
2592 2021-01-17 Mark Wielaard <mark@klomp.org>
2593
2594 * common.opt (gdwarf-): Init(5).
2595 * doc/invoke.texi (-gdwarf): Document default to 5.
2596
2597 2021-01-16 Kwok Cheung Yeung <kcy@codesourcery.com>
2598
2599 * builtin-types.def
2600 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
2601 to...
2602 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR):
2603 ...this. Add extra argument.
2604 * gimplify.c (omp_default_clause): Ensure that event handle is
2605 firstprivate in a task region.
2606 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DETACH.
2607 (gimplify_adjust_omp_clauses): Likewise.
2608 * omp-builtins.def (BUILT_IN_GOMP_TASK): Change function type to
2609 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR.
2610 * omp-expand.c (expand_task_call): Add GOMP_TASK_FLAG_DETACH to flags
2611 if detach clause specified. Add detach argument when generating
2612 call to GOMP_task.
2613 * omp-low.c (scan_sharing_clauses): Setup data environment for detach
2614 clause.
2615 (finish_taskreg_scan): Move field for variable containing the event
2616 handle to the front of the struct.
2617 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DETACH. Fix
2618 ordering.
2619 * tree-nested.c (convert_nonlocal_omp_clauses): Handle
2620 OMP_CLAUSE_DETACH clause.
2621 (convert_local_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
2622 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_DETACH.
2623 * tree.c (omp_clause_num_ops): Add entry for OMP_CLAUSE_DETACH.
2624 Fix ordering.
2625 (omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH. Fix
2626 ordering.
2627 (walk_tree_1): Handle OMP_CLAUSE_DETACH.
2628
2629 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
2630
2631 * config/nios2/t-rtems: Reset all MULTILIB_* variables. Shorten
2632 multilib directory names. Use MULTILIB_REQUIRED instead of
2633 MULTILIB_EXCEPTIONS. Add -mhw-mul -mhw-mulx -mhw-div
2634 -mcustom-fpu-cfg=fph2 multilib.
2635
2636 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
2637
2638 * config/nios2/nios2.c (NIOS2_FPU_CONFIG_NUM): Adjust value.
2639 (nios2_init_fpu_configs): Provide register values for new
2640 -mcustom-fpu-cfg=fph2 option variant.
2641 * doc/invoke.texi (-mcustom-fpu-cfg=fph2): Document new option
2642 variant.
2643
2644 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
2645
2646 * config/nios2/nios2.c (nios2_custom_check_insns): Remove
2647 custom instruction warnings.
2648
2649 2021-01-16 Jakub Jelinek <jakub@redhat.com>
2650
2651 PR tree-optimization/96669
2652 * match.pd ((CST << x) & 1 -> x == 0): New simplification.
2653
2654 2021-01-16 Jakub Jelinek <jakub@redhat.com>
2655
2656 PR tree-optimization/96271
2657 * passes.def: Pass false argument to first two pass_cd_dce
2658 instances and true to last instance. Add comment that
2659 last instance rewrites no longer addressed locals.
2660 * tree-ssa-dce.c (pass_cd_dce): Add update_address_taken_p member and
2661 initialize it.
2662 (pass_cd_dce::set_pass_param): New method.
2663 (pass_cd_dce::execute): Return TODO_update_address_taken from
2664 last cd_dce instance.
2665
2666 2021-01-15 Carl Love <cel@us.ibm.com>
2667
2668 * config/rs6000/altivec.h (vec_mulh, vec_div, vec_dive, vec_mod):
2669 New defines.
2670 * config/rs6000/altivec.md (VIlong): Move define to file vsx.md.
2671 * config/rs6000/rs6000-builtin.def (DIVES_V4SI, DIVES_V2DI,
2672 DIVEU_V4SI, DIVEU_V2DI, DIVS_V4SI, DIVS_V2DI, DIVU_V4SI,
2673 DIVU_V2DI, MODS_V2DI, MODS_V4SI, MODU_V2DI, MODU_V4SI,
2674 MULHS_V2DI, MULHS_V4SI, MULHU_V2DI, MULHU_V4SI, MULLD_V2DI):
2675 Add builtin define.
2676 (MULH, DIVE, MOD): Add new BU_P10_OVERLOAD_2 definitions.
2677 * config/rs6000/rs6000-call.c (VSX_BUILTIN_VEC_DIV,
2678 VSX_BUILTIN_VEC_DIVE, P10_BUILTIN_VEC_MOD, P10_BUILTIN_VEC_MULH):
2679 New overloaded definitions.
2680 (builtin_function_type) [P10V_BUILTIN_DIVEU_V4SI,
2681 P10V_BUILTIN_DIVEU_V2DI, P10V_BUILTIN_DIVU_V4SI,
2682 P10V_BUILTIN_DIVU_V2DI, P10V_BUILTIN_MODU_V2DI,
2683 P10V_BUILTIN_MODU_V4SI, P10V_BUILTIN_MULHU_V2DI,
2684 P10V_BUILTIN_MULHU_V4SI]: Add case
2685 statement for builtins.
2686 * config/rs6000/rs6000.md (bits): Add new attribute sizes V4SI, V2DI.
2687 * config/rs6000/vsx.md (VIlong): Moved from config/rs6000/altivec.md.
2688 (UNSPEC_VDIVES, UNSPEC_VDIVEU): New unspec definitions.
2689 (vsx_mul_v2di): Add if TARGET_POWER10 statement.
2690 (vsx_udiv_v2di): Add if TARGET_POWER10 statement.
2691 (dives_<mode>, diveu_<mode>, div<mode>3, uvdiv<mode>3,
2692 mods_<mode>, modu_<mode>, mulhs_<mode>, mulhu_<mode>, mulv2di3):
2693 Add define_insn, mode is VIlong.
2694 * doc/extend.texi (vec_mulh, vec_mul, vec_div, vec_dive, vec_mod):
2695 Add builtin descriptions.
2696
2697 2021-01-15 Eric Botcazou <ebotcazou@adacore.com>
2698
2699 * final.c (final_start_function_1): Reset force_source_line.
2700
2701 2021-01-15 Jakub Jelinek <jakub@redhat.com>
2702
2703 PR tree-optimization/96669
2704 * match.pd (((1 << A) & 1) != 0 -> A == 0,
2705 ((1 << A) & 1) == 0 -> A != 0): Generalize for 1s replaced by
2706 possibly different power of two constants and to right shift too.
2707
2708 2021-01-15 Jakub Jelinek <jakub@redhat.com>
2709
2710 PR tree-optimization/96681
2711 * match.pd ((x < 0) ^ (y < 0) to (x ^ y) < 0): New simplification.
2712 ((x >= 0) ^ (y >= 0) to (x ^ y) < 0): Likewise.
2713 ((x < 0) ^ (y >= 0) to (x ^ y) >= 0): Likewise.
2714 ((x >= 0) ^ (y < 0) to (x ^ y) >= 0): Likewise.
2715
2716 2021-01-15 Alexandre Oliva <oliva@adacore.com>
2717
2718 * opts.c (gen_command_line_string): Exclude -dumpbase-ext.
2719
2720 2021-01-15 Tamar Christina <tamar.christina@arm.com>
2721
2722 * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4,
2723 cmul<conj_op><mode>3): New.
2724 * config/aarch64/iterators.md (UNSPEC_FCMUL,
2725 UNSPEC_FCMUL180, UNSPEC_FCMLA_CONJ, UNSPEC_FCMLA180_CONJ,
2726 UNSPEC_CMLA_CONJ, UNSPEC_CMLA180_CONJ, UNSPEC_CMUL, UNSPEC_CMUL180,
2727 FCMLA_OP, FCMUL_OP, conj_op, rotsplit1, rotsplit2, fcmac1, sve_rot1,
2728 sve_rot2, SVE2_INT_CMLA_OP, SVE2_INT_CMUL_OP, SVE2_INT_CADD_OP): New.
2729 (rot): Add UNSPEC_FCMUL, UNSPEC_FCMUL180.
2730 (rot_op): Renamed to conj_op.
2731 * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4,
2732 cmul<conj_op><mode>3): New.
2733 * config/aarch64/aarch64-sve2.md (cml<fcmac1><conj_op><mode>4,
2734 cmul<conj_op><mode>3): New.
2735
2736 2021-01-15 David Malcolm <dmalcolm@redhat.com>
2737
2738 PR bootstrap/98696
2739 * diagnostic.c
2740 (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
2741 Escape the tempfile name when constructing the expected output.
2742
2743 2021-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2744
2745 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlsl_hi<mode>):
2746 Rename to...
2747 (aarch64_<su>mlsl_hi<mode>): ... This.
2748 (aarch64_<su>mlsl_hi<mode>): Define.
2749 (*aarch64_<su>mlsl<mode): Rename to...
2750 (aarch64_<su>mlsl<mode): ... This.
2751 * config/aarch64/aarch64-simd-builtins.def (smlsl, umlsl,
2752 smlsl_hi, umlsl_hi): Define builtins.
2753 * config/aarch64/arm_neon.h (vmlsl_high_s8, vmlsl_high_s16,
2754 vmlsl_high_s32, vmlsl_high_u8, vmlsl_high_u16, vmlsl_high_u32,
2755 vmlsl_s8, vmlsl_s16, vmlsl_s32, vmlsl_u8,
2756 vmlsl_u16, vmlsl_u32): Reimplement with builtins.
2757
2758 2021-01-15 Uroš Bizjak <ubizjak@gmail.com>
2759
2760 * config/i386/i386-c.c (ix86_target_macros):
2761 Use cpp_define_formatted for __SIZEOF_FLOAT80__ definition.
2762
2763 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
2764
2765 PR target/88836
2766 * config.gcc (aarch64*-*-*): Add aarch64-cc-fusion.o to extra_objs.
2767 * Makefile.in (RTL_SSA_H): New variable.
2768 * config/aarch64/t-aarch64 (aarch64-cc-fusion.o): New rule.
2769 * config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Declare.
2770 * config/aarch64/aarch64-passes.def: Add pass_cc_fusion after
2771 pass_combine.
2772 * config/aarch64/aarch64-cc-fusion.cc: New file.
2773
2774 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
2775
2776 * recog.h (insn_change_watermark::~insn_change_watermark): Avoid
2777 calling cancel_changes for changes that no longer exist.
2778
2779 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
2780
2781 * rtl-ssa/functions.h (function_info::ref_defs): Rename to...
2782 (function_info::reg_defs): ...this.
2783 * rtl-ssa/member-fns.inl (function_info::ref_defs): Rename to...
2784 (function_info::reg_defs): ...this.
2785
2786 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
2787
2788 PR target/71233
2789 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
2790
2791 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
2792
2793 Revert:
2794 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
2795
2796 PR target/71233
2797 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
2798
2799 2021-01-15 Richard Biener <rguenther@suse.de>
2800
2801 PR tree-optimization/96376
2802 * tree-vect-stmts.c (get_load_store_type): Disregard alignment
2803 for VMAT_INVARIANT.
2804
2805 2021-01-15 Martin Liska <mliska@suse.cz>
2806
2807 * doc/install.texi: Document that some tests need pytest module.
2808 * doc/sourcebuild.texi: Likewise.
2809
2810 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
2811
2812 PR target/71233
2813 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
2814
2815 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
2816
2817 * config/arm/mve.md (mve_vshrq_n_s<mode>_imm): New entry.
2818 (mve_vshrq_n_u<mode>_imm): Likewise.
2819 * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Move to ...
2820 * config/arm/vec-common.md: ... here.
2821
2822 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
2823
2824 * config/arm/mve.md (mve_vshlq_<supf><mode>): Move to
2825 vec-commond.md.
2826 * config/arm/neon.md (vashl<mode>3): Delete.
2827 * config/arm/vec-common.md (mve_vshlq_<supf><mode>): New.
2828 (vasl<mode>3): New expander.
2829
2830 2021-01-15 Richard Biener <rguenther@suse.de>
2831
2832 PR tree-optimization/98685
2833 * tree-vect-slp.c (vect_schedule_slp_node): Refactor handling
2834 of vector extern defs.
2835
2836 2021-01-14 David Malcolm <dmalcolm@redhat.com>
2837
2838 PR jit/98586
2839 * diagnostic.c (diagnostic_kind_text): Break out this array
2840 from...
2841 (diagnostic_build_prefix): ...here.
2842 (fancy_abort): Detect when diagnostic_initialize has not yet been
2843 called and fall back to a minimal implementation of printing the
2844 ICE, rather than segfaulting in internal_error.
2845
2846 2021-01-14 David Malcolm <dmalcolm@redhat.com>
2847
2848 * diagnostic.c (diagnostic_initialize): Eliminate
2849 parseable_fixits_p in favor of initializing extra_output_kind from
2850 GCC_EXTRA_DIAGNOSTIC_OUTPUT.
2851 (convert_column_unit): New function, split out from...
2852 (diagnostic_converted_column): ...this.
2853 (print_parseable_fixits): Add "column_unit" and "tabstop" params.
2854 Use them to call convert_column_unit on the column values.
2855 (diagnostic_report_diagnostic): Eliminate conditional on
2856 parseable_fixits_p in favor of a switch statement on
2857 extra_output_kind, passing the appropriate values to the new
2858 params of print_parseable_fixits.
2859 (selftest::test_print_parseable_fixits_none): Update for new
2860 params of print_parseable_fixits.
2861 (selftest::test_print_parseable_fixits_insert): Likewise.
2862 (selftest::test_print_parseable_fixits_remove): Likewise.
2863 (selftest::test_print_parseable_fixits_replace): Likewise.
2864 (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
2865 New.
2866 (selftest::diagnostic_c_tests): Call it.
2867 * diagnostic.h (enum diagnostics_extra_output_kind): New.
2868 (diagnostic_context::parseable_fixits_p): Delete field in favor
2869 of...
2870 (diagnostic_context::extra_output_kind): ...this new field.
2871 * doc/invoke.texi (Environment Variables): Add
2872 GCC_EXTRA_DIAGNOSTIC_OUTPUT.
2873 * opts.c (common_handle_option): Update handling of
2874 OPT_fdiagnostics_parseable_fixits for change to diagnostic_context
2875 fields.
2876
2877 2021-01-14 Tamar Christina <tamar.christina@arm.com>
2878
2879 * tree-vect-slp-patterns.c (class complex_operations_pattern,
2880 complex_operations_pattern::matches,
2881 complex_operations_pattern::recognize,
2882 complex_operations_pattern::build): New.
2883 (slp_patterns): Use it.
2884
2885 2021-01-14 Tamar Christina <tamar.christina@arm.com>
2886
2887 * internal-fn.def (COMPLEX_FMS, COMPLEX_FMS_CONJ): New.
2888 * optabs.def (cmls_optab, cmls_conj_optab): New.
2889 * doc/md.texi: Document them.
2890 * tree-vect-slp-patterns.c (class complex_fms_pattern,
2891 complex_fms_pattern::matches, complex_fms_pattern::recognize,
2892 complex_fms_pattern::build): New.
2893
2894 2021-01-14 Tamar Christina <tamar.christina@arm.com>
2895
2896 * internal-fn.def (COMPLEX_FMA, COMPLEX_FMA_CONJ): New.
2897 * optabs.def (cmla_optab, cmla_conj_optab): New.
2898 * doc/md.texi: Document them.
2899 * tree-vect-slp-patterns.c (vect_match_call_p,
2900 class complex_fma_pattern, vect_slp_reset_pattern,
2901 complex_fma_pattern::matches, complex_fma_pattern::recognize,
2902 complex_fma_pattern::build): New.
2903
2904 2021-01-14 Tamar Christina <tamar.christina@arm.com>
2905
2906 * internal-fn.def (COMPLEX_MUL, COMPLEX_MUL_CONJ): New.
2907 * optabs.def (cmul_optab, cmul_conj_optab): New.
2908 * doc/md.texi: Document them.
2909 * tree-vect-slp-patterns.c (vect_match_call_complex_mla,
2910 vect_normalize_conj_loc, is_eq_or_top, vect_validate_multiplication,
2911 vect_build_combine_node, class complex_mul_pattern,
2912 complex_mul_pattern::matches, complex_mul_pattern::recognize,
2913 complex_mul_pattern::build): New.
2914
2915 2021-01-14 Tamar Christina <tamar.christina@arm.com>
2916
2917 * tree-vect-slp.c (optimize_load_redistribution_1): New.
2918 (optimize_load_redistribution, vect_is_slp_load_node): New.
2919 (vect_match_slp_patterns): Use it.
2920
2921 2021-01-14 Tamar Christina <tamar.christina@arm.com>
2922
2923 * tree-vect-slp-patterns.c (complex_add_pattern::build):
2924 Elide nodes.
2925
2926 2021-01-14 Thomas Schwinge <thomas@codesourcery.com>
2927
2928 * config/gcn/mkoffload.c (main): Create an offload image only in
2929 64-bit configurations.
2930
2931 2021-01-14 H.J. Lu <hjl.tools@gmail.com>
2932
2933 PR target/98667
2934 * config/i386/i386-options.c (ix86_option_override_internal):
2935 Issue an error for -fcf-protection with CF_BRANCH when compiling
2936 for 32-bit non-TARGET_CMOV targets.
2937
2938 2021-01-14 Uroš Bizjak <ubizjak@gmail.com>
2939
2940 PR target/98671
2941 * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
2942 Remove declaration and initialization of shadow variable "ret".
2943 (ix86_option_override_internal): Remove delcaration of
2944 shadow variable "i". Redeclare shadowed variable to unsigned.
2945 * common/config/i386/i386-common.c (pta_size): Redeclare to unsigned.
2946 * config/i386/i386-builtins.c (get_builtin_code_for_version):
2947 Update for redeclaration.
2948 * config/i386/i386.h (pta_size): Ditto.
2949
2950 2021-01-14 Richard Biener <rguenther@suse.de>
2951
2952 PR tree-optimization/98674
2953 * tree-data-ref.c (base_supports_access_fn_components_p): New.
2954 (initialize_data_dependence_relation): For two bases without
2955 possible access fns resort to type size equality when determining
2956 shape compatibility.
2957
2958 2021-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2959
2960 PR target/66791
2961 * config/arm/arm_neon.h: Replace calls to __builtin_vcge* by
2962 <=, >= operators in vcle and vcge intrinsics respectively.
2963 * config/arm/arm_neon_builtins.def: Remove entry for
2964 vcge and vcgeu.
2965
2966 2021-01-14 Uroš Bizjak <ubizjak@gmail.com>
2967
2968 PR target/98671
2969 * config/i386/i386-options.c (ix86_function_specific_save):
2970 Remove redundant assignment to opts->x_ix86_branch_cost.
2971 * config/i386/i386.c (ix86_prefetch_sse):
2972 Rename from x86_prefetch_sse. Update all uses.
2973 * config/i386/i386.h: Update for rename.
2974 * config/i386/i386-options.h: Ditto.
2975
2976 2021-01-14 Jakub Jelinek <jakub@redhat.com>
2977
2978 PR target/98670
2979 * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3,
2980 *sse4_1_zero_extendv4hiv4si2_3, *sse4_1_zero_extendv2siv2di2_3):
2981 Use Bm instead of m for non-avx. Add isa attribute.
2982
2983 2021-01-14 Jakub Jelinek <jakub@redhat.com>
2984
2985 PR tree-optimization/96688
2986 * match.pd (~(X >> Y) -> ~X >> Y): New simplification if
2987 ~X can be simplified.
2988
2989 2021-01-14 Richard Sandiford <richard.sandiford@arm.com>
2990
2991 * tree-vect-stmts.c (vect_model_load_cost): Account for unused
2992 IFN_LOAD_LANES results.
2993
2994 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2995
2996 * config/aarch64/aarch64-simd.md (aarch64_<su>xtl<mode>):
2997 Define.
2998 (aarch64_xtn<mode>): Likewise.
2999 * config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn):
3000 Define
3001 builtins.
3002 * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
3003 builtin.
3004 (vmovl_s16): Likewise.
3005 (vmovl_s32): Likewise.
3006 (vmovl_u8): Likewise.
3007 (vmovl_u16): Likewise.
3008 (vmovl_u32): Likewise.
3009 (vmovn_s16): Likewise.
3010 (vmovn_s32): Likewise.
3011 (vmovn_s64): Likewise.
3012 (vmovn_u16): Likewise.
3013 (vmovn_u32): Likewise.
3014 (vmovn_u64): Likewise.
3015
3016 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3017
3018 * config/aarch64/aarch64-simd.md (aarch64_<su>qxtn2<mode>_le):
3019 Define.
3020 (aarch64_<su>qxtn2<mode>_be): Likewise.
3021 (aarch64_<su>qxtn2<mode>): Likewise.
3022 * config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2):
3023 Define builtins.
3024 * config/aarch64/iterators.md (SAT_TRUNC): Define code_iterator.
3025 (su): Handle ss_truncate and us_truncate.
3026 * config/aarch64/arm_neon.h (vqmovn_high_s16): Reimplement using
3027 builtin.
3028 (vqmovn_high_s32): Likewise.
3029 (vqmovn_high_s64): Likewise.
3030 (vqmovn_high_u16): Likewise.
3031 (vqmovn_high_u32): Likewise.
3032 (vqmovn_high_u64): Likewise.
3033
3034 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3035
3036 * config/aarch64/aarch64-simd.md (aarch64_xtn2<mode>_le):
3037 Define.
3038 (aarch64_xtn2<mode>_be): Likewise.
3039 (aarch64_xtn2<mode>): Likewise.
3040 * config/aarch64/aarch64-simd-builtins.def (xtn2): Define
3041 builtins.
3042 * config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using
3043 builtins.
3044 (vmovn_high_s32): Likewise.
3045 (vmovn_high_s64): Likewise.
3046 (vmovn_high_u16): Likewise.
3047 (vmovn_high_u32): Likewise.
3048 (vmovn_high_u64): Likewise.
3049
3050 2021-01-13 Stafford Horne <shorne@gmail.com>
3051
3052 * config/or1k/or1k.h (ASM_PREFERRED_EH_DATA_FORMAT): New macro.
3053
3054 2021-01-13 Stafford Horne <shorne@gmail.com>
3055
3056 * config/or1k/linux.h (TARGET_ASM_FILE_END): Define macro.
3057
3058 2021-01-13 Stafford Horne <shorne@gmail.com>
3059
3060 * config/or1k/or1k.h (TARGET_CPU_CPP_BUILTINS): Add builtin
3061 define for __or1k_hard_float__.
3062
3063 2021-01-13 Stafford Horne <shorne@gmail.com>
3064
3065 * config/or1k/or1k.h (NO_PROFILE_COUNTERS): Define as 1.
3066 (PROFILE_HOOK): Define to call _mcount.
3067 (FUNCTION_PROFILER): Change from abort to no-op.
3068
3069 2021-01-13 Jakub Jelinek <jakub@redhat.com>
3070
3071 PR tree-optimization/96691
3072 * match.pd ((~X | C) ^ D -> (X | C) ^ (~D ^ C),
3073 (~X & C) ^ D -> (X & C) ^ (D ^ C)): New simplifications if
3074 (~D ^ C) or (D ^ C) can be simplified.
3075
3076 2021-01-13 Richard Biener <rguenther@suse.de>
3077
3078 PR tree-optimization/92645
3079 * match.pd (BIT_FIELD_REF to conversion): Delay canonicalization
3080 until after vector lowering.
3081
3082 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
3083
3084 * config/aarch64/aarch64-sve.md (fnma<mode>4): Extend from SVE_FULL_I
3085 to SVE_I.
3086 (@aarch64_pred_fnma<mode>, cond_fnma<mode>, *cond_fnma<mode>_2)
3087 (*cond_fnma<mode>_4, *cond_fnma<mode>_any): Likewise.
3088
3089 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
3090
3091 * config/aarch64/aarch64-sve.md (fma<mode>4): Extend from SVE_FULL_I
3092 to SVE_I.
3093 (@aarch64_pred_fma<mode>, cond_fma<mode>, *cond_fma<mode>_2)
3094 (*cond_fma<mode>_4, *cond_fma<mode>_any): Likewise.
3095
3096 2021-01-13 Richard Biener <rguenther@suse.de>
3097
3098 PR tree-optimization/92645
3099 * tree-vect-slp.c (vect_build_slp_tree_1): Relax supported
3100 BIT_FIELD_REF argument.
3101 (vect_build_slp_tree_2): Record the desired vector type
3102 on the external vector def.
3103 (vectorizable_slp_permutation): Handle required punning
3104 of existing vector defs.
3105
3106 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
3107
3108 * rtl-ssa/accesses.h (def_lookup): Fix order of comparison results.
3109
3110 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
3111
3112 * config/sh/sh.md (movsf_ie): Remove operands[2] test.
3113
3114 2021-01-13 Samuel Thibault <samuel.thibault@ens-lyon.org>
3115
3116 * config.gcc [$target == *-*-gnu*]: Enable
3117 'default_gnu_indirect_function'.
3118
3119 2021-01-13 Jakub Jelinek <jakub@redhat.com>
3120
3121 PR target/95905
3122 * optabs.c (expand_vec_perm_const): Don't force v0 and v1 into
3123 registers before calling targetm.vectorize.vec_perm_const, only after
3124 that.
3125 * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): Handle
3126 two argument permutation when one operand is zero vector and only
3127 after that force operands into registers.
3128 * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1): New
3129 define_insn_and_split pattern.
3130 (*avx512bw_zero_extendv32qiv32hi2_1): Likewise.
3131 (*avx512f_zero_extendv16hiv16si2_1): Likewise.
3132 (*avx2_zero_extendv8hiv8si2_1): Likewise.
3133 (*avx512f_zero_extendv8siv8di2_1): Likewise.
3134 (*avx2_zero_extendv4siv4di2_1): Likewise.
3135 * config/mips/mips.c (mips_vectorize_vec_perm_const): Force operands
3136 into registers.
3137 * config/arm/arm.c (arm_vectorize_vec_perm_const): Likewise.
3138 * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Likewise.
3139 * config/ia64/ia64.c (ia64_vectorize_vec_perm_const): Likewise.
3140 * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const): Likewise.
3141 * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const): Likewise.
3142 * config/gcn/gcn.c (gcn_vectorize_vec_perm_const): Likewise. Use std::swap.
3143
3144 2021-01-13 Martin Liska <mliska@suse.cz>
3145
3146 PR tree-optimization/98455
3147 * gimple-if-to-switch.cc (condition_info::record_phi_mapping):
3148 Record also virtual PHIs.
3149 (pass_if_to_switch::execute): Return TODO_cleanup_cfg only
3150 conditionally.
3151
3152 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
3153
3154 * doc/invoke.texi (C++ Modules): Fix typos.
3155
3156 2021-01-13 Richard Biener <rguenther@suse.de>
3157
3158 PR tree-optimization/98640
3159 * tree-ssa-sccvn.c (visit_nary_op): Do not try to
3160 handle plus or minus from a truncated operand to be
3161 sign-extended.
3162
3163 2021-01-13 Jakub Jelinek <jakub@redhat.com>
3164
3165 PR target/96938
3166 * config/i386/i386.md (*btr<mode>_1, *btr<mode>_2): New
3167 define_insn_and_split patterns.
3168 (splitter after *btr<mode>_2): New splitter.
3169
3170 2021-01-13 Martin Liska <mliska@suse.cz>
3171
3172 PR ipa/98652
3173 * cgraphunit.c (analyze_functions): Remove dead code.
3174
3175 2021-01-13 Qian Jianhua <qianjh@cn.fujitsu.com>
3176
3177 * config/aarch64/aarch64-cost-tables.h (a64fx_extra_costs): New.
3178 * config/aarch64/aarch64.c (a64fx_addrcost_table): New.
3179 (a64fx_regmove_cost, a64fx_vector_cost): New.
3180 (a64fx_tunings): Use the new added cost tables.
3181
3182 2021-01-13 Jakub Jelinek <jakub@redhat.com>
3183
3184 PR target/95905
3185 * config/i386/predicates.md (pmovzx_parallel): New predicate.
3186 * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): New
3187 define_insn_and_split pattern.
3188 (*sse4_1_zero_extendv4hiv4si2_3): Likewise.
3189 (*sse4_1_zero_extendv2siv2di2_3): Likewise.
3190
3191 2021-01-13 Julian Brown <julian@codesourcery.com>
3192
3193 * config/gcn/gcn.c (gcn_conditional_register_usage): Remove dead code
3194 to fix v0 register.
3195
3196 2021-01-13 Julian Brown <julian@codesourcery.com>
3197
3198 * config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live
3199 on entry to a BB.
3200
3201 2021-01-13 Julian Brown <julian@codesourcery.com>
3202
3203 * config/gcn/gcn-valu.md (recip<mode>2<exec>, recip<mode>2): Use unspec
3204 for reciprocal-approximation instructions.
3205 (div<mode>3): Use fused multiply-accumulate operations for reciprocal
3206 refinement and division result.
3207 * config/gcn/gcn.md (UNSPEC_RCP): New unspec constant.
3208
3209 2021-01-13 Julian Brown <julian@codesourcery.com>
3210
3211 * config/gcn/gcn-valu.md (subdf): Rename to...
3212 (subdf3): This.
3213
3214 2021-01-12 Martin Liska <mliska@suse.cz>
3215
3216 * gcov.c (source_info::debug): Fix printf format for 32-bit hosts.
3217
3218 2021-01-12 Andrea Corallo <andrea.corallo@arm.com>
3219
3220 * function-abi.h: Fix typo.
3221
3222 2021-01-12 Christophe Lyon <christophe.lyon@linaro.org>
3223
3224 PR target/97875
3225 PR target/97875
3226 * config/arm/arm.h (ARM_HAVE_NEON_V8QI_LDST): New macro.
3227 (ARM_HAVE_NEON_V16QI_LDST, ARM_HAVE_NEON_V4HI_LDST): Likewise.
3228 (ARM_HAVE_NEON_V8HI_LDST, ARM_HAVE_NEON_V2SI_LDST): Likewise.
3229 (ARM_HAVE_NEON_V4SI_LDST, ARM_HAVE_NEON_V4HF_LDST): Likewise.
3230 (ARM_HAVE_NEON_V8HF_LDST, ARM_HAVE_NEON_V4BF_LDST): Likewise.
3231 (ARM_HAVE_NEON_V8BF_LDST, ARM_HAVE_NEON_V2SF_LDST): Likewise.
3232 (ARM_HAVE_NEON_V4SF_LDST, ARM_HAVE_NEON_DI_LDST): Likewise.
3233 (ARM_HAVE_NEON_V2DI_LDST): Likewise.
3234 (ARM_HAVE_V8QI_LDST, ARM_HAVE_V16QI_LDST): Likewise.
3235 (ARM_HAVE_V4HI_LDST, ARM_HAVE_V8HI_LDST): Likewise.
3236 (ARM_HAVE_V2SI_LDST, ARM_HAVE_V4SI_LDST, ARM_HAVE_V4HF_LDST): Likewise.
3237 (ARM_HAVE_V8HF_LDST, ARM_HAVE_V4BF_LDST, ARM_HAVE_V8BF_LDST): Likewise.
3238 (ARM_HAVE_V2SF_LDST, ARM_HAVE_V4SF_LDST, ARM_HAVE_DI_LDST): Likewise.
3239 (ARM_HAVE_V2DI_LDST): Likewise.
3240 * config/arm/mve.md (*movmisalign<mode>_mve_store): New pattern.
3241 (*movmisalign<mode>_mve_load): New pattern.
3242 * config/arm/neon.md (movmisalign<mode>): Move to ...
3243 * config/arm/vec-common.md: ... here.
3244
3245 2021-01-12 Vladimir N. Makarov <vmakarov@redhat.com>
3246
3247 PR target/97969
3248 * lra-eliminations.c (eliminate_regs_in_insn): Add transformation
3249 of pattern 'plus (plus (hard reg, const), pseudo)'.
3250
3251 2021-01-12 Richard Biener <rguenther@suse.de>
3252
3253 PR tree-optimization/98550
3254 * tree-vect-slp.c (vect_record_max_nunits): Check whether
3255 the group size is a multiple of the vector element count.
3256 (vect_build_slp_tree_1): When we need to fail because
3257 the vector type choosen causes unrolling do so lazily
3258 without affecting matches only at the end to guide group splitting.
3259
3260 2021-01-12 Martin Liska <mliska@suse.cz>
3261
3262 PR c++/97284
3263 * optc-save-gen.awk: Compare also n_target_save vars with
3264 strcmp.
3265
3266 2021-01-12 Martin Liska <mliska@suse.cz>
3267
3268 * gcov.c (source_info::debug): New.
3269 (print_usage): Add --debug (-D) option.
3270 (process_args): Likewise.
3271 (generate_results): Call src->debug after
3272 accumulate_line_counts.
3273 (read_graph_file): Properly assign id for EXIT_BLOCK.
3274 * profile.c (branch_prob): Dump function body before it is
3275 instrumented.
3276
3277 2021-01-12 Jakub Jelinek <jakub@redhat.com>
3278
3279 PR tree-optimization/98629
3280 * tree-ssa-math-opts.c (arith_overflow_check_p): Don't update use_stmt
3281 unless returning non-zero.
3282
3283 2021-01-12 Jakub Jelinek <jakub@redhat.com>
3284
3285 PR tree-optimization/95731
3286 * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Also optimize
3287 x < 0 && y < 0 && z < 0 into (x | y | z) < 0 for signed x, y, z.
3288 (optimize_range_tests): Call optimize_range_tests_cmp_bitwise
3289 only after optimize_range_tests_var_bound.
3290
3291 2021-01-12 Jakub Jelinek <jakub@redhat.com>
3292
3293 * configure.ac: Ensure c/Make-lang.in comes first in @all_lang_makefrags@.
3294 * configure: Regenerated.
3295
3296 2021-01-12 liuhongt <hongtao.liu@intel.com>
3297
3298 PR target/98612
3299 * config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS):
3300 Deleted.
3301 * config/i386/i386-expand.c (ix86_expand_sse_comi): Delete
3302 dead code.
3303
3304 2021-01-12 Alexandre Oliva <oliva@adacore.com>
3305
3306 * ssa-iterators.h (end_imm_use_stmt_traverse): Forward
3307 declare.
3308 (auto_end_imm_use_stmt_traverse): New struct.
3309 (FOR_EACH_IMM_USE_STMT): Use it.
3310 (BREAK_FROM_IMM_USE_STMT, RETURN_FROM_IMM_USE_STMT): Remove,
3311 along with uses...
3312 * gimple-ssa-strength-reduction.c: ... here, ...
3313 * graphite-scop-detection.c: ... here, ...
3314 * ipa-modref.c, ipa-pure-const.c, ipa-sra.c: ... here, ...
3315 * tree-predcom.c, tree-ssa-ccp.c: ... here, ...
3316 * tree-ssa-dce.c, tree-ssa-dse.c: ... here, ...
3317 * tree-ssa-loop-ivopts.c, tree-ssa-math-opts.c: ... here, ...
3318 * tree-ssa-phiprop.c, tree-ssa.c: ... here, ...
3319 * tree-vect-slp.c: ... and here, ...
3320 * doc/tree-ssa.texi: ... and the example here.
3321
3322 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
3323
3324 * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3): Extend from
3325 SVE_FULL_I to SVE_I. Generate an UNSPEC_PRED_X.
3326 (*sdiv_pow2<mode>3): New pattern.
3327 (@cond_<sve_int_op><mode>): Extend from SVE_FULL_I to SVE_I.
3328 Wrap the ASRD in an UNSPEC_PRED_X.
3329 (*cond_<sve_int_op><mode>_2): Likewise. Replace the UNSPEC_PRED_X
3330 predicate with a constant PTRUE, if it isn't already.
3331 (*cond_<sve_int_op><mode>_z): Replace with...
3332 (*cond_<sve_int_op><mode>_any): ...this new pattern.
3333
3334 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
3335
3336 * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2): Extend from
3337 SVE_FULL_I to SVE_I.
3338 (*cond_bic<mode>_any): Likewise.
3339
3340 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
3341
3342 * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart)
3343 (@aarch64_pred_<MUL_HIGHPART:optab><mode>): Extend from SVE_FULL_I
3344 to SVE_I.
3345
3346 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
3347
3348 * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): Extend from
3349 SVE_FULL_I to SVE_I.
3350 (*aarch64_cond_<su>abd<mode>_2): Likewise.
3351 (*aarch64_cond_<su>abd<mode>_any): Likewise.
3352 (@aarch64_pred_<su>abd<mode>): Likewise. Use UNSPEC_PRED_X
3353 for the max and min but not for the minus.
3354 (*aarch64_cond_<su>abd<mode>_3): New pattern.
3355
3356 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
3357
3358 * config/aarch64/iterators.md (SVE_24I): New iterator.
3359 * config/aarch64/aarch64-sve.md (*aarch64_adr<mode>_shift): Extend from
3360 SVE_FULL_SDI to SVE_24I. Use containers rather than elements.
3361
3362 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
3363
3364 * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_BINARY:optab><mode>)
3365 (*cond_<SVE_INT_BINARY:optab><mode>_2): Extend from SVE_FULL_I
3366 to SVE_I.
3367 (*cond_<SVE_INT_BINARY:optab><mode>_3): Likewise.
3368 (*cond_<SVE_INT_BINARY:optab><mode>_any): Likewise.
3369 (*cond_<SVE_INT_BINARY:optab><mode>_2_const): Likewise.
3370 (*cond_<SVE_INT_BINARY:optab><mode>_any_const): Likewise.
3371
3372 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
3373
3374 * config/aarch64/aarch64-sve.md (<SVE_INT_BINARY_IMM:optab><mode>3)
3375 (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>)
3376 (*post_ra_<SVE_INT_BINARY_IMM:optab><mode>3): Extend from SVE_FULL_I
3377 to SVE_I.
3378
3379 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
3380
3381 * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3)
3382 (v<ASHIFT:optab><mode>3, @aarch64_pred_<optab><mode>)
3383 (*post_ra_v<ASHIFT:optab><mode>3): Extend from SVE_FULL_I to SVE_I.
3384
3385 2021-01-11 Martin Liska <mliska@suse.cz>
3386
3387 PR jit/98615
3388 * symtab-clones.h (clone_info::release): Release
3389 symtab::m_clones with ggc_delete as it's a GGC memory.
3390
3391 2021-01-11 Matthias Klose <doko@ubuntu.com>
3392
3393 * Makefile.in (LINK_PROGRESS): Show the link target.
3394
3395 2021-01-11 Richard Biener <rguenther@suse.de>
3396
3397 PR tree-optimization/91403
3398 * tree-vect-data-refs.c (vect_analyze_group_access_1): Cap
3399 single-element interleaving group size at 4096 elements.
3400
3401 2021-01-11 Richard Biener <rguenther@suse.de>
3402
3403 PR tree-optimization/98526
3404 * tree-vect-loop.c (vect_model_reduction_cost): Remove costing
3405 of the actual reduction op for the regular case.
3406 (vectorizable_reduction): Cost the stmts
3407 vect_transform_reduction produces here.
3408
3409 2021-01-11 Andreas Krebbel <krebbel@linux.ibm.com>
3410
3411 * tree-ssa-forwprop.c (simplify_vector_constructor): For
3412 big-endian, use UNPACK[_FLOAT]_HI.
3413
3414 2021-01-11 Tamar Christina <tamar.christina@arm.com>
3415
3416 * tree-vect-slp-patterns.c (class complex_pattern,
3417 class complex_add_pattern): Add parameters to matches.
3418 (complex_add_pattern::build): Free memory.
3419 (complex_add_pattern::matches): Move validation end of match.
3420 (complex_add_pattern::recognize): Likewise.
3421
3422 2021-01-11 Tamar Christina <tamar.christina@arm.com>
3423
3424 * tree-vect-slp-patterns.c (linear_loads_p): Fix externals.
3425
3426 2021-01-11 Tamar Christina <tamar.christina@arm.com>
3427
3428 * tree-vect-slp-patterns.c (is_linear_load_p): Fix ambiguity.
3429
3430 2021-01-11 Jakub Jelinek <jakub@redhat.com>
3431
3432 PR tree-optimization/95867
3433 * tree-ssa-math-opts.h: New header.
3434 * tree-ssa-math-opts.c: Include tree-ssa-math-opts.h.
3435 (powi_as_mults): No longer static. Use build_one_cst instead of
3436 build_real. Formatting fix.
3437 * tree-ssa-reassoc.c: Include tree-ssa-math-opts.h.
3438 (attempt_builtin_powi): Handle multiplication reassociation without
3439 powi_fndecl using powi_as_mults.
3440 (reassociate_bb): For integral types don't require
3441 -funsafe-math-optimizations to call attempt_builtin_powi.
3442
3443 2021-01-11 Jakub Jelinek <jakub@redhat.com>
3444
3445 PR tree-optimization/95852
3446 * tree-ssa-math-opts.c (maybe_optimize_guarding_check): Change
3447 mul_stmts parameter type to vec<gimple *> &. Before cond_stmt
3448 allow in the bb any of the stmts in that vector, div_stmt and
3449 up to 3 cast stmts.
3450 (arith_cast_equal_p): New function.
3451 (arith_overflow_check_p): Add cast_stmt argument, handle signed
3452 multiply overflow checks.
3453 (match_arith_overflow): Adjust caller. Handle signed multiply
3454 overflow checks.
3455
3456 2021-01-11 Jakub Jelinek <jakub@redhat.com>
3457
3458 PR tree-optimization/95852
3459 * tree-ssa-math-opts.c (maybe_optimize_guarding_check): New function.
3460 (uaddsub_overflow_check_p): Renamed to ...
3461 (arith_overflow_check_p): ... this. Handle also multiplication
3462 with overflow check.
3463 (match_uaddsub_overflow): Renamed to ...
3464 (match_arith_overflow): ... this. Add cfg_changed argument. Handle
3465 also multiplication with overflow check. Adjust function comment.
3466 (math_opts_dom_walker::after_dom_children): Adjust callers. Call
3467 match_arith_overflow also for MULT_EXPR.
3468
3469 2021-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3470
3471 * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
3472 __builtin_convertvector.
3473 (vmovl_s16): Likewise.
3474 (vmovl_s32): Likewise.
3475 (vmovl_u8): Likewise.
3476 (vmovl_u16): Likewise.
3477 (vmovl_u32): Likewise.
3478 (vmovn_s16): Likewise.
3479 (vmovn_s32): Likewise.
3480 (vmovn_s64): Likewise.
3481 (vmovn_u16): Likewise.
3482 (vmovn_u32): Likewise.
3483 (vmovn_u64): Likewise.
3484
3485 2021-01-11 Martin Liska <mliska@suse.cz>
3486
3487 * gimple-if-to-switch.cc (struct condition_info): Use auto_var.
3488 (if_chain::is_beneficial): Delete clusters
3489 (find_conditions): Make second argument of conditions_in_bbs a
3490 pointer so that we control over it's lifetime.
3491 (pass_if_to_switch::execute): Delete them.
3492
3493 2021-01-11 Kewen Lin <linkw@linux.ibm.com>
3494
3495 * ira.c (move_unallocated_pseudos): Check other_reg and skip if
3496 it isn't set.
3497
3498 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
3499
3500 * config/vax/vax.md (cc): Remove mode attribute.
3501 (subst_<cc>, subst_f<cc>): Rename to...
3502 (subst_<mode>, subst_f<VAXccnz:mode>): ... these respectively.
3503 (*cbranch<VAXint:mode>4_<VAXcc:mode>): Update for `cc' removal.
3504 (*cbranch<VAXfp:mode>4_<VAXccnz:mode>): Likewise.
3505 (*branch_<mode>, *branch_<mode>_reversed): Likewise.
3506
3507 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
3508
3509 * config/vax/vax.md (subst_f<cc>): Add mode to operands and
3510 `const_double_zero'.
3511
3512 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
3513
3514 * config/pdp11/pdp11.md (PDPfp): New mode iterator.
3515 (fcc_cc, fcc_ccnz): Use it. Add mode to `const_double_zero' and
3516 operands.
3517
3518 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
3519
3520 * genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero'
3521 rtx.
3522 * read-rtl.c (rtx_reader::read_rtx_code): Handle machine mode
3523 with `const_double_zero'.
3524 * doc/rtl.texi (Constant Expression Types): Document it.
3525
3526 2021-01-09 Jakub Jelinek <jakub@redhat.com>
3527
3528 PR c++/98556
3529 * tree-cfg.c (verify_gimple_assign_binary): Allow lhs of
3530 POINTER_DIFF_EXPR to be any integral type.
3531
3532 2021-01-09 Jakub Jelinek <jakub@redhat.com>
3533
3534 PR rtl-optimization/98603
3535 * function.c (instantiate_virtual_regs_in_insn): For asm goto
3536 with impossible constraints, drop all SETs, CLOBBERs, drop PARALLEL
3537 if any, set ASM_OPERANDS mode to VOIDmode and change
3538 ASM_OPERANDS_OUTPUT_CONSTRAINT and ASM_OPERANDS_OUTPUT_IDX.
3539
3540 2021-01-09 Alexandre Oliva <oliva@gnu.org>
3541
3542 PR debug/97714
3543 * final.c (notice_source_line): Narrow down the condition to
3544 skip a line-0 marker.
3545
3546 2021-01-08 Sergei Trofimovich <siarheit@google.com>
3547
3548 * ipa-modref.c (merge_call_side_effects): Fix
3549 linebreak split by reordering two print calls.
3550
3551 2021-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
3552
3553 * config/s390/vector.md (*tf_to_fprx2_0): Rename from
3554 "*mov_tf_to_fprx2_0" for consistency, fix constraint.
3555 (*tf_to_fprx2_1): Rename from "*mov_tf_to_fprx2_1" for
3556 consistency, fix constraint.
3557
3558 2021-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
3559
3560 * config/s390/s390-c.c (s390_def_or_undef_macro): Accept
3561 callables instead of mask values.
3562 (struct target_flag_set_p): New predicate.
3563 (s390_cpu_cpp_builtins_internal): Define or undefine
3564 __LONG_DOUBLE_VX__ macro.
3565
3566 2021-01-08 H.J. Lu <hjl.tools@gmail.com>
3567
3568 PR target/98482
3569 * config/i386/i386.c (x86_function_profiler): Use R10 and R11
3570 to call mcount in large model with PIC for NO_PROFILE_COUNTERS
3571 targets.
3572
3573 2021-01-08 Richard Biener <rguenther@suse.de>
3574
3575 * tree-ssa-sccvn.c (pass_fre::execute): Reset the SCEV hash table.
3576
3577 2021-01-08 Richard Biener <rguenther@suse.de>
3578
3579 * tree-vect-slp.c (scalar_stmts_to_slp_tree_map_t): Fix.
3580 (vect_build_slp_tree): On cache hit release the matched
3581 scalar stmts vector.
3582 * tree-vect-stmts.c (vectorizable_store): Properly free
3583 vec_oprnds before possibly gathering them again.
3584
3585 2021-01-08 Richard Biener <rguenther@suse.de>
3586
3587 PR tree-optimization/98544
3588 * tree-vect-slp.c (vect_optimize_slp): Always materialize
3589 permutes at a permute node.
3590
3591 2021-01-08 H.J. Lu <hjl.tools@gmail.com>
3592
3593 PR target/98482
3594 * config/i386/i386.c (x86_function_profiler): Use R10 to call
3595 mcount in large model. Sorry for large model with PIC.
3596
3597 2021-01-08 Jakub Jelinek <jakub@redhat.com>
3598
3599 PR target/98585
3600 * config/i386/i386.opt (ix86_cmodel, ix86_incoming_stack_boundary_arg,
3601 ix86_pmode, ix86_preferred_stack_boundary_arg, ix86_regparm,
3602 ix86_veclibabi_type): Remove x_ prefix, use TargetVariable instead of
3603 TargetSave and initialize for variables with enum types.
3604 (mfentry, mstack-protector-guard-reg=, mstack-protector-guard-offset=,
3605 mstack-protector-guard-symbol=): Add Save.
3606 * config/i386/i386-options.c (ix86_function_specific_save,
3607 ix86_function_specific_restore): Don't save or restore x_ix86_cmodel,
3608 x_ix86_incoming_stack_boundary_arg, x_ix86_pmode,
3609 x_ix86_preferred_stack_boundary_arg, x_ix86_regparm,
3610 x_ix86_veclibabi_type.
3611
3612 2021-01-08 Richard Sandiford <richard.sandiford@arm.com>
3613
3614 * config/aarch64/aarch64-sve.md (*cnot<mode>): Extend from
3615 SVE_FULL_I to SVE_I.
3616 (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
3617
3618 2021-01-08 Richard Sandiford <richard.sandiford@arm.com>
3619
3620 * config/aarch64/aarch64-sve.md (*cond_uxt<mode>_2): Extend from
3621 SVE_FULL_I to SVE_I.
3622 (*cond_uxt<mode>_any): Likewise.
3623
3624 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3625
3626 * config/aarch64/iterators.md (Vwhalf): New iterator.
3627 * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>_3):
3628 Rename to...
3629 (aarch64_<sur>adalp<mode>): ... This. Make more
3630 builtin-friendly.
3631 (<sur>sadv16qi): Adjust callsite of the above.
3632 * config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New
3633 builtins.
3634 * config/aarch64/arm_neon.h (vpadal_s8): Reimplement using
3635 builtins.
3636 (vpadal_s16): Likewise.
3637 (vpadal_u8): Likewise.
3638 (vpadal_u16): Likewise.
3639 (vpadalq_s8): Likewise.
3640 (vpadalq_s16): Likewise.
3641 (vpadalq_s32): Likewise.
3642 (vpadalq_u8): Likewise.
3643 (vpadalq_u16): Likewise.
3644 (vpadalq_u32): Likewise.
3645
3646 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3647
3648 * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>_3):
3649 Rename to...
3650 (aarch64_<su>abd<mode>): ... This.
3651 (<sur>sadv16qi): Adjust callsite of the above.
3652 * config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define
3653 builtins.
3654 * config/aarch64/arm_neon.h (vabd_s8): Reimplement using
3655 builtin.
3656 (vabd_s16): Likewise.
3657 (vabd_s32): Likewise.
3658 (vabd_u8): Likewise.
3659 (vabd_u16): Likewise.
3660 (vabd_u32): Likewise.
3661 (vabdq_s8): Likewise.
3662 (vabdq_s16): Likewise.
3663 (vabdq_s32): Likewise.
3664 (vabdq_u8): Likewise.
3665 (vabdq_u16): Likewise.
3666 (vabdq_u32): Likewise.
3667
3668 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3669
3670 * config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define
3671 builtins.
3672 * config/aarch64/arm_neon.h (vaba_s8): Implement using builtin.
3673 (vaba_s16): Likewise.
3674 (vaba_s32): Likewise.
3675 (vaba_u8): Likewise.
3676 (vaba_u16): Likewise.
3677 (vaba_u32): Likewise.
3678 (vabaq_s8): Likewise.
3679 (vabaq_s16): Likewise.
3680 (vabaq_s32): Likewise.
3681 (vabaq_u8): Likewise.
3682 (vabaq_u16): Likewise.
3683 (vabaq_u32): Likewise.
3684
3685 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3686
3687 * config/aarch64/aarch64-simd.md (aba<mode>_3): Rename to...
3688 (aarch64_<su>aba<mode>): ... This. Handle uaba as well.
3689 Change RTL pattern to match.
3690
3691 2021-01-08 Kito Cheng <kito.cheng@sifive.com>
3692
3693 * common/config/riscv/riscv-common.c (riscv_current_subset_list): New.
3694 * config/riscv/riscv-c.c (riscv-subset.h): New.
3695 (INCLUDE_STRING): Define.
3696 (riscv_cpu_cpp_builtins): Add new style architecture extension
3697 test macros.
3698 * config/riscv/riscv-subset.h (riscv_subset_list::begin): New.
3699 (riscv_subset_list::end): New.
3700 (riscv_current_subset_list): New.
3701
3702 2021-01-08 Kito Cheng <kito.cheng@sifive.com>
3703
3704 * common/config/riscv/riscv-common.c (RISCV_DONT_CARE_VERSION):
3705 Move to riscv-subset.h.
3706 (struct riscv_subset_t): Ditto.
3707 (class riscv_subset_list): Ditto.
3708 * config/riscv/riscv-subset.h (RISCV_DONT_CARE_VERSION): Move
3709 from riscv-common.c.
3710 (struct riscv_subset_t): Ditto.
3711 (class riscv_subset_list): Ditto.
3712 * config/riscv/t-riscv ($(common_out_file)): Add file
3713 dependency.
3714
3715 2021-01-07 Jakub Jelinek <jakub@redhat.com>
3716
3717 PR target/98567
3718 * config/i386/i386.md (*bmi_blsi_<mode>_cmp, *bmi_blsi_<mode>_ccno):
3719 New define_insn patterns.
3720
3721 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
3722
3723 * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_UNARY:optab><mode>)
3724 (*cond_<SVE_INT_UNARY:optab><mode>_2): Extend from SVE_FULL_I to SVE_I.
3725 (*cond_<SVE_INT_UNARY:optab><mode>_any): Likewise.
3726
3727 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
3728
3729 PR tree-optimization/98560
3730 * internal-fn.def (IFN_VCONDU, IFN_VCONDEQ): Use type vec_cond.
3731 * internal-fn.c (vec_cond_mask_direct): Get the data mode from
3732 argument 1.
3733 (vec_cond_direct): Likewise argument 2.
3734 (vec_condu_direct, vec_condeq_direct): Delete.
3735 (expand_vect_cond_optab_fn): Rename to...
3736 (expand_vec_cond_optab_fn): ...this, replacing old macro.
3737 (expand_vec_condu_optab_fn, expand_vec_condeq_optab_fn): Delete.
3738 (expand_vect_cond_mask_optab_fn): Rename to...
3739 (expand_vec_cond_mask_optab_fn): ...this, replacing old macro.
3740 (direct_vec_cond_mask_optab_supported_p): Treat the optab as a
3741 convert optab.
3742 (direct_vec_cond_optab_supported_p): Likewise.
3743 (direct_vec_condu_optab_supported_p): Delete.
3744 (direct_vec_condeq_optab_supported_p): Delete.
3745 * gimple-isel.cc: Include internal-fn.h.
3746 (gimple_expand_vec_cond_expr): Check that IFN_VCONDEQ is supported
3747 before using it.
3748
3749 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
3750
3751 PR tree-optimization/98560
3752 * gimple-isel.cc (gimple_expand_vec_cond_expr): If we fail to use
3753 IFN_VCOND{,U,EQ}, fall back on IFN_VCOND_MASK.
3754
3755 2021-01-07 Uroš Bizjak <ubizjak@gmail.com>
3756
3757 * config/i386/i386.md (insn): Merge from plusminus_insn, shift_insn,
3758 rotate_insn and optab code attributes.
3759 Update all uses to merged code attribute.
3760 * config/i386/sse.md: Update all uses to merged code attribute.
3761 * config/i386/mmx.md: Update all uses to merged code attribute.
3762
3763 2021-01-07 Jakub Jelinek <jakub@redhat.com>
3764
3765 PR tree-optimization/98568
3766 * gimple-ssa-store-merging.c (bswap_view_convert): New function.
3767 (bswap_replace): Use it.
3768
3769 2021-01-06 Vladimir N. Makarov <vmakarov@redhat.com>
3770
3771 PR rtl-optimization/97978
3772 * lra-int.h (lra_hard_reg_split_p): New external.
3773 * lra.c (lra_hard_reg_split_p): New global.
3774 (lra): Set up lra_hard_reg_split_p after splitting a hard reg.
3775 * lra-assigns.c (lra_assign): Don't check allocation correctness
3776 after hard reg splitting.
3777
3778 2021-01-06 Martin Sebor <msebor@redhat.com>
3779
3780 PR c++/98305
3781 * builtins.c (new_delete_mismatch_p): New overload.
3782 (new_delete_mismatch_p (tree, tree)): Call it.
3783
3784 2021-01-06 Alexandre Oliva <oliva@adacore.com>
3785
3786 * Makefile.in (T_GLIMITS_H): New.
3787 (stmp-int-hdrs): Depend on it, use it.
3788 * config/t-vxworks (T_GLIMITS_H): Override it.
3789 (vxw-glimits.h): New.
3790
3791 2021-01-06 Richard Biener <rguenther@suse.de>
3792
3793 PR tree-optimization/98513
3794 * value-range.cc (intersect_ranges): Compare the upper bounds
3795 for the expected relation.
3796
3797 2021-01-06 Gerald Pfeifer <gerald@pfeifer.com>
3798
3799 Revert:
3800 2020-12-28 Gerald Pfeifer <gerald@pfeifer.com>
3801
3802 * doc/standards.texi (HSAIL): Remove section.
3803
3804 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
3805
3806 * configure: Re-generate.
3807
3808 2021-01-05 Jakub Jelinek <jakub@redhat.com>
3809
3810 * doc/invoke.texi (-std=c++20): Adjust for the publication of
3811 ISO 14882:2020 standard.
3812 * doc/standards.texi: Likewise.
3813
3814 2021-01-05 Jakub Jelinek <jakub@redhat.com>
3815
3816 PR tree-optimization/94802
3817 * expr.h (maybe_optimize_sub_cmp_0): Declare.
3818 * expr.c: Include tree-pretty-print.h and flags.h.
3819 (maybe_optimize_sub_cmp_0): New function.
3820 (do_store_flag): Use it.
3821 * cfgexpand.c (expand_gimple_cond): Likewise.
3822
3823 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
3824
3825 * mux-utils.h (pointer_mux::m_ptr): Tweak description of contents.
3826 * rtlanal.c (simple_regno_set): Tweak description to clarify the
3827 RMW condition.
3828
3829 2021-01-05 Richard Biener <rguenther@suse.de>
3830
3831 PR tree-optimization/98516
3832 * tree-vect-slp.c (vect_optimize_slp): Permute the incoming
3833 lanes when materializing on a VEC_PERM node.
3834 (vectorizable_slp_permutation): Dump the permute properly.
3835
3836 2021-01-05 Richard Biener <rguenther@suse.de>
3837
3838 * tree-vect-slp.c (vect_slp_region): Move debug counter
3839 to cover individual subgraphs.
3840
3841 2021-01-05 Richard Biener <rguenther@suse.de>
3842
3843 PR tree-optimization/98428
3844 * tree-vect-slp.c (vect_build_slp_tree_1): Properly reject
3845 vector lane extracts for loop vectorization.
3846
3847 2021-01-05 Jakub Jelinek <jakub@redhat.com>
3848
3849 PR tree-optimization/98514
3850 * tree-ssa-reassoc.c (bb_rank): Change type from long * to
3851 int64_t *.
3852 (operand_rank): Change type from hash_map<tree, long> to
3853 hash_map<tree, int64_t>.
3854 (phi_rank): Change return type from long to int64_t.
3855 (loop_carried_phi): Change block_rank variable type from long to
3856 int64_t.
3857 (propagate_rank): Change return type, rank parameter type and
3858 op_rank variable type from long to int64_t.
3859 (find_operand_rank): Change return type from long to int64_t
3860 and change slot variable type from long * to int64_t *.
3861 (insert_operand_rank): Change rank parameter type from long to
3862 int64_t.
3863 (get_rank): Change return type and rank variable type from long to
3864 int64_t. Use PRId64 instead of ld to print the rank.
3865 (init_reassoc): Change rank variable type from long to int64_t
3866 and adjust correspondingly bb_rank and operand_rank initialization.
3867
3868 2021-01-05 Jakub Jelinek <jakub@redhat.com>
3869
3870 PR tree-optimization/96928
3871 * tree-ssa-phiopt.c (xor_replacement): New function.
3872 (tree_ssa_phiopt_worker): Call it.
3873
3874 2021-01-05 Jakub Jelinek <jakub@redhat.com>
3875
3876 PR tree-optimization/96930
3877 * match.pd ((A / (1 << B)) -> (A >> B)): If A is extended
3878 from narrower value which has the same type as 1 << B, perform
3879 the right shift on the narrower value followed by extension.
3880
3881 2021-01-05 Jakub Jelinek <jakub@redhat.com>
3882
3883 PR tree-optimization/96239
3884 * gimple-ssa-store-merging.c (maybe_optimize_vector_constructor): New
3885 function.
3886 (get_status_for_store_merging): Don't return BB_INVALID for blocks
3887 with potential bswap optimizable CONSTRUCTORs.
3888 (pass_store_merging::execute): Optimize vector CONSTRUCTORs with bswap
3889 if possible.
3890
3891 2021-01-05 Richard Biener <rguenther@suse.de>
3892
3893 PR tree-optimization/98381
3894 * tree.c (vector_element_bits): Properly compute bool vector
3895 element size.
3896 * tree-vect-loop.c (vectorizable_live_operation): Properly
3897 compute the last lane bit offset.
3898
3899 2021-01-05 Uroš Bizjak <ubizjak@gmail.com>
3900
3901 PR target/98522
3902 * config/i386/sse.md (sse_cvtps2pi): Redefine as define_insn_and_split.
3903 Clear the top 64 bytes of the input XMM register.
3904 (sse_cvttps2pi): Ditto.
3905
3906 2021-01-05 Uroš Bizjak <ubizjak@gmail.com>
3907
3908 PR target/98521
3909 * config/i386/xopintrin.h (_mm256_cmov_si256): New.
3910
3911 2021-01-05 H.J. Lu <hjl.tools@gmail.com>
3912
3913 PR target/98495
3914 * config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned
3915 short first.
3916
3917 2021-01-05 Claudiu Zissulescu <claziss@synopsys.com>
3918
3919 * config/arc/arc.md (maddsidi4_split): Use ACC_REG_FIRST.
3920 (umaddsidi4_split): Likewise.
3921
3922 2021-01-05 liuhongt <hongtao.liu@intel.com>
3923
3924 PR target/98461
3925 * config/i386/sse.md (*sse2_pmovskb_zexthisi): New
3926 define_insn_and_split for zero_extend of subreg HI of pmovskb
3927 result.
3928 (*sse2_pmovskb_zexthisi): Add new combine splitters for
3929 zero_extend of not of subreg HI of pmovskb result.
3930
3931 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
3932
3933 PR target/97269
3934 * explow.c (convert_memory_address_addr_space_1): Handle UNSPECs
3935 nested in CONSTs.
3936 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Use
3937 convert_memory_address to convert symbolic immediates to ptr_mode
3938 before forcing them to memory.
3939
3940 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
3941
3942 PR rtl-optimization/97144
3943 * recog.c (constrain_operands): Initialize matching_operand
3944 for each alternative, rather than only doing it once.
3945
3946 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
3947
3948 PR rtl-optimization/98403
3949 * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Explain
3950 why we don't remove call clobbers.
3951 (function_info::apply_changes_to_insn): Don't attempt to add
3952 call clobbers here.
3953
3954 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
3955
3956 PR tree-optimization/98371
3957 * tree-vect-loop.c (vect_reanalyze_as_main_loop): New function.
3958 (vect_analyze_loop): If an epilogue loop appears to be cheaper
3959 than the main loop, re-analyze it as a main loop before adopting
3960 it as a main loop.
3961
3962 2021-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3963
3964 PR c++/98316
3965 * configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL.
3966 * aclocal.m4, configure: Regenerate.
3967 * Makefile.in (NETLIBS): Define.
3968 (BACKEND): Remove $(CODYLIB).
3969
3970 2021-01-05 Jakub Jelinek <jakub@redhat.com>
3971
3972 PR rtl-optimization/98334
3973 * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
3974 Optimize (X - 1) * Y + Y to X * Y or (X + 1) * Y - Y to X * Y.
3975
3976 2021-01-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
3977
3978 * tree-inline.c (expand_call_inline): Restore input_location.
3979 Return result from recursive call.
3980
3981 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
3982
3983 PR tree-optimization/95401
3984 * config/aarch64/aarch64-sve-builtins.cc
3985 (gimple_folder::load_store_cookie): Use bits rather than bytes
3986 for the alignment argument to IFN_MASK_LOAD and IFN_MASK_STORE.
3987 * gimple-fold.c (gimple_fold_mask_load_store_mem_ref): Likewise.
3988 * tree-vect-stmts.c (vectorizable_store): Likewise.
3989 (vectorizable_load): Likewise.
3990
3991 2021-01-04 Richard Biener <rguenther@suse.de>
3992
3993 PR tree-optimization/98308
3994 * tree-vect-stmts.c (vectorizable_load): Set invariant mask
3995 SLP vectype.
3996
3997 2021-01-04 Jakub Jelinek <jakub@redhat.com>
3998
3999 PR tree-optimization/95771
4000 * tree-ssa-loop-niter.c (number_of_iterations_popcount): Handle types
4001 with precision smaller than int's precision and types with precision
4002 twice as large as long long. Formatting fixes.
4003
4004 2021-01-04 Richard Biener <rguenther@suse.de>
4005
4006 PR tree-optimization/98464
4007 * tree-ssa-sccvn.c (vn_valueize_for_srt): Rename from ...
4008 (vn_valueize_wrapper): ... this. Temporarily adjust vn_context_bb.
4009 (process_bb): Adjust.
4010
4011 2021-01-04 Matthew Malcomson <matthew.malcomson@arm.com>
4012
4013 PR other/98437
4014 * doc/invoke.texi (-fsanitize=address): Fix wording describing
4015 clash with -fsanitize=hwaddress.
4016
4017 2021-01-04 Richard Biener <rguenther@suse.de>
4018
4019 PR tree-optimization/98282
4020 * tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on
4021 invariants as VN_NARY.
4022
4023 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
4024
4025 PR target/89057
4026 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Accept
4027 aarch64_simd_reg_or_zero for operand 2. Use the combinez patterns
4028 to handle zero operands.
4029
4030 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
4031
4032 * config/aarch64/aarch64.c (offset_6bit_signed_scaled_p): New function.
4033 (offset_6bit_unsigned_scaled_p): Fix typo in comment.
4034 (aarch64_sve_prefetch_operand_p): Accept MUL VLs in the range
4035 [-32, 31].
4036
4037 2021-01-04 Richard Biener <rguenther@suse.de>
4038
4039 PR tree-optimization/98393
4040 * tree-vect-slp.c (vect_build_slp_tree): Properly zero matches
4041 when hitting the limit.
4042
4043 2021-01-04 Richard Biener <rguenther@suse.de>
4044
4045 PR tree-optimization/98291
4046 * tree-vect-loop.c (vectorizable_reduction): Bypass
4047 associativity check for SLP reductions with VF 1.
4048
4049 2021-01-04 Jakub Jelinek <jakub@redhat.com>
4050
4051 PR tree-optimization/96782
4052 * match.pd (x == ~x -> false, x != ~x -> true): New simplifications.
4053
4054 2021-01-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
4055
4056 * collect-utils.c (collect_execute): Check dumppfx.
4057 * collect2.c (maybe_run_lto_and_relink, do_link): Pass atsuffix
4058 to collect_execute.
4059 (do_link): Add new parameter atsuffix.
4060 (main): Handle -dumpdir option. Skip one argument for
4061 -o, -isystem and -B options.
4062 * gcc.c (make_at_file): New helper function.
4063 (close_at_file): Use it.
4064
4065 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
4066
4067 * config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust.
4068 Amend handling for LD64_VERSION fallback defaults.
4069
4070 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
4071
4072 * config.gcc: Compute default version information
4073 from the configured target. Likewise defaults for
4074 ld64.
4075 * config/darwin10.h: Removed.
4076 * config/darwin12.h: Removed.
4077 * config/darwin9.h: Removed.
4078 * config/rs6000/darwin8.h: Removed.
4079
4080 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
4081
4082 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
4083
4084 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
4085
4086 * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here..
4087 * config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here.
4088
4089 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
4090
4091 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from
4092 here...
4093 * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here.
4094
4095 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
4096
4097 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move the spec
4098 for the Darwin10 unwinder stub from here ...
4099 * config/darwin.h (LINK_COMMAND_SPEC_A): ... to here.
4100
4101 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
4102
4103 * config/darwin.h (DSYMUTIL_SPEC): Default to DWARF
4104 (ASM_DEBUG_SPEC):Only define if the assembler supports
4105 stabs.
4106 (PREFERRED_DEBUGGING_TYPE): Default to DWARF.
4107 (DARWIN_PREFER_DWARF): Define.
4108 * config/darwin9.h (PREFERRED_DEBUGGING_TYPE): Remove.
4109 (DARWIN_PREFER_DWARF): Likewise
4110 (DSYMUTIL_SPEC): Likewise.
4111 (COLLECT_RUN_DSYMUTIL): Likewise.
4112 (ASM_DEBUG_SPEC): Likewise.
4113 (ASM_DEBUG_OPTION_SPEC): Likewise.
4114
4115 2021-01-02 Jan Hubicka <jh@suse.cz>
4116
4117 * cfg.c (free_block): ggc_free bb.
4118
4119 2021-01-01 Jakub Jelinek <jakub@redhat.com>
4120
4121 * gcc.c (process_command): Update copyright notice dates.
4122 * gcov-dump.c (print_version): Ditto.
4123 * gcov.c (print_version): Ditto.
4124 * gcov-tool.c (print_version): Ditto.
4125 * gengtype.c (create_file): Ditto.
4126 * doc/cpp.texi: Bump @copying's copyright year.
4127 * doc/cppinternals.texi: Ditto.
4128 * doc/gcc.texi: Ditto.
4129 * doc/gccint.texi: Ditto.
4130 * doc/gcov.texi: Ditto.
4131 * doc/install.texi: Ditto.
4132 * doc/invoke.texi: Ditto.
4133
4134 2021-01-01 Jakub Jelinek <jakub@redhat.com>
4135
4136 * ChangeLog-2020: Rotate ChangeLog. New file.
4137
4138 \f
4139 Copyright (C) 2021 Free Software Foundation, Inc.
4140
4141 Copying and distribution of this file, with or without modification,
4142 are permitted in any medium without royalty provided the copyright
4143 notice and this notice are preserved.