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