Daily bump.
[gcc.git] / gcc / ChangeLog
1 2021-01-23 Jakub Jelinek <jakub@redhat.com>
2
3 PR testsuite/97301
4 * config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute.
5
6 2021-01-22 Jonathan Wright <jonathan.wright@arm.com>
7
8 * config/aarch64/aarch64-simd-builtins.def: Add mla builtin
9 generator macro.
10 * config/aarch64/arm_neon.h (vmla_s8): Use RTL builtin rather
11 than asm.
12 (vmla_s16): Likewise.
13 (vmla_s32): Likewise.
14 (vmla_u8): Likewise.
15 (vmla_u16): Likewise.
16 (vmla_u32): Likewise.
17 (vmlaq_s8): Likewise.
18 (vmlaq_s16): Likewise.
19 (vmlaq_s32): Likewise.
20 (vmlaq_u8): Likewise.
21 (vmlaq_u16): Likewise.
22 (vmlaq_u32): Likewise.
23
24 2021-01-22 David Malcolm <dmalcolm@redhat.com>
25
26 * doc/invoke.texi (GCC_EXTRA_DIAGNOSTIC_OUTPUT): Add @findex
27 directive.
28
29 2021-01-22 Jakub Jelinek <jakub@redhat.com>
30
31 PR debug/98796
32 * dwarf2out.c (output_file_names): For -gdwarf-5, if there are no
33 filenames to emit, still emit the required 0 index directory and
34 filename entries that match DW_AT_comp_dir and DW_AT_name of the
35 compilation unit.
36
37 2021-01-22 Marek Polacek <polacek@redhat.com>
38
39 PR c++/98545
40 * doc/invoke.texi: Update C++ ABI Version 15 description.
41
42 2021-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
43
44 PR tree-optimization/98766
45 * tree-ssa-math-opts.c (convert_mult_to_fma): Use maybe_le when
46 comparing against type size with param_avoid_fma_max_bits.
47
48 2021-01-22 Richard Biener <rguenther@suse.de>
49
50 PR middle-end/98793
51 * tree.c (vector_element_bits): Key single-bit bool vector on
52 integer mode rather than not vector mode.
53
54 2021-01-22 Xionghu Luo <luoxhu@linux.ibm.com>
55
56 PR target/98093
57 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
58 Generate ARRAY_REF(VIEW_CONVERT_EXPR) for P8 and later
59 platforms.
60 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): Update
61 to call different path for P8 and P9.
62 (rs6000_expand_vector_set_var_p9): New function.
63 (rs6000_expand_vector_set_var_p8): New function.
64
65 2021-01-22 Xionghu Luo <luoxhu@linux.ibm.com>
66
67 PR target/79251
68 PR target/98065
69 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
70 Ajdust variable index vec_insert from address dereference to
71 ARRAY_REF(VIEW_CONVERT_EXPR) tree expression.
72 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
73 New declaration.
74 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): New function.
75
76 2021-01-22 Martin Liska <mliska@suse.cz>
77
78 PR gcov-profile/98739
79 * profile.c (compute_value_histograms): Drop time profile for
80 -fprofile-reproducible=multithreaded.
81
82 2021-01-22 Nathan Sidwell <nathan@acm.org>
83
84 * gcc.c (process_command): Don't check OPT_SPECIAL_input_file
85 existence here.
86
87 2021-01-22 Richard Biener <rguenther@suse.de>
88
89 PR middle-end/98773
90 * tree-data-ref.c (initalize_matrix_A): Revert previous
91 change, retaining failing on HOST_WIDE_INT_MIN CHREC_RIGHT.
92
93 2021-01-22 Jakub Jelinek <jakub@redhat.com>
94
95 PR tree-optimization/90248
96 * match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X),
97 X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove
98 simplifications.
99 (X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X),
100 X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications.
101
102 2021-01-22 Jakub Jelinek <jakub@redhat.com>
103
104 PR tree-optimization/98255
105 * tree-dfa.c (get_ref_base_and_extent): For ARRAY_REFs, sign
106 extend index - low_bound from sizetype's precision rather than index
107 precision.
108 (get_addr_base_and_unit_offset_1): Likewise.
109 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Likewise.
110 * gimple-fold.c (fold_const_aggregate_ref_1): Likewise.
111
112 2021-01-22 Richard Biener <rguenther@suse.de>
113
114 PR tree-optimization/98786
115 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid
116 adding new uses of abnormals. Verify we deal with a conditional
117 conversion.
118
119 2021-01-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
120
121 PR target/98636
122 * optc-save-gen.awk: Add arm_fp16_format to checked_options.
123
124 2021-01-22 liuhongt <hongtao.liu@intel.com>
125
126 PR target/96891
127 PR target/98348
128 * config/i386/sse.md (VI_128_256): New mode iterator.
129 (*avx_cmp<mode>3_1, *avx_cmp<mode>3_2, *avx_cmp<mode>3_3,
130 *avx_cmp<mode>3_4, *avx2_eq<mode>3, *avx2_pcmp<mode>3_1,
131 *avx2_pcmp<mode>3_2, *avx2_gt<mode>3): New
132 define_insn_and_split to lower avx512 vector comparison to avx
133 version when dest is vector.
134 (*<avx512>_cmp<mode>3,*<avx512>_cmp<mode>3,*<avx512>_ucmp<mode>3):
135 define_insn_and_split for negating the comparison result.
136 * config/i386/predicates.md (float_vector_all_ones_operand):
137 New predicate.
138 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
139 general NOT operator without UNSPEC_MASKOP.
140
141 2021-01-21 Vladimir N. Makarov <vmakarov@redhat.com>
142
143 PR rtl-optimization/98777
144 * lra-int.h (lra_pmode_pseudo): New extern.
145 * lra.c (lra_pmode_pseudo): New global.
146 (lra): Set it up.
147 * lra-eliminations.c (eliminate_regs_in_insn): Use it.
148
149 2021-01-21 Ilya Leoshkevich <iii@linux.ibm.com>
150
151 * fwprop.c (fwprop_propagation::classify_result): Allow
152 (subreg (mem)) simplifications.
153
154 2021-01-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
155
156 * config/aarch64/aarch64-simd.md (aarch64_sqdml<SBINQOPS:as>l<mode>):
157 Split into...
158 (aarch64_sqdmlal<mode>): ... This...
159 (aarch64_sqdmlsl<mode>): ... And this.
160 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Split into...
161 (aarch64_sqdmlal_lane<mode>): ... This...
162 (aarch64_sqdmlsl_lane<mode>): ... And this.
163 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Split into...
164 (aarch64_sqdmlsl_laneq<mode>): ... This...
165 (aarch64_sqdmlal_laneq<mode>): ... And this.
166 (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Split into...
167 (aarch64_sqdmlsl_n<mode>): ... This...
168 (aarch64_sqdmlal_n<mode>): ... And this.
169 (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Split into...
170 (aarch64_sqdmlal2<mode>_internal): ... This...
171 (aarch64_sqdmlsl2<mode>_internal): ... And this.
172
173 2021-01-21 Christophe Lyon <christophe.lyon@linaro.org>
174
175 * config/arm/arm_mve.h (__arm_vcmpneq_s8): Fix return type.
176
177 2021-01-21 Andrea Corallo <andrea.corallo@arm.com>
178
179 PR target/96372
180 * doc/sourcebuild.texi (arm_thumb2_no_arm_v8_1_lob): Document.
181
182 2021-01-21 liuhongt <hongtao.liu@intel.com>
183
184 PR rtl-optimization/98694
185 * regcprop.c (copy_value): If SRC had been assigned a mode
186 narrower than the copy, we can't link DEST into the chain even
187 they have same hard_regno_nregs(i.e. HImode/SImode in i386
188 backend).
189
190 2021-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
191
192 * config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>):
193 Convert to define_insn_and_split. Split into simple move when moving
194 bottom element.
195
196 2021-01-20 Segher Boessenkool <segher@kernel.crashing.org>
197
198 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Change assert.
199 Adjust comment. Simplify code.
200
201 2021-01-20 Jakub Jelinek <jakub@redhat.com>
202
203 PR debug/98765
204 * dwarf2out.c (reset_indirect_string): Also reset indirect strings
205 with DW_FORM_line_strp form.
206 (prune_unused_types_update_strings): Don't add into debug_str_hash
207 indirect strings with DW_FORM_line_strp form.
208 (adjust_name_comp_dir): New function.
209 (dwarf2out_finish): Call it on CU DIEs after resetting
210 debug_line_str_hash.
211
212 2021-01-20 Vladimir N. Makarov <vmakarov@redhat.com>
213
214 PR rtl-optimization/98722
215 * lra-eliminations.c (eliminate_regs_in_insn): Check that target
216 has no 3-op add insn to transform insns containing two pluses.
217
218 2021-01-20 Richard Biener <rguenther@suse.de>
219
220 * hwint.h (add_hwi): New function.
221 (mul_hwi): Likewise.
222 * tree-data-ref.c (initialize_matrix_A): Properly translate
223 tree constants and avoid HOST_WIDE_INT_MIN.
224 (lambda_matrix_row_add): Avoid undefined integer overflow
225 and return true on such overflow.
226 (lambda_matrix_right_hermite): Handle overflow from
227 lambda_matrix_row_add gracefully. Simplify previous fix.
228 (analyze_subscript_affine_affine): Likewise.
229
230 2021-01-20 Eugene Rozenfeld <erozen@microsoft.com>
231
232 PR tree-optimization/96674
233 * match.pd: New patterns: x < y || y == XXX_MIN --> x <= y - 1
234 x >= y && y != XXX_MIN --> x > y - 1
235
236 2021-01-20 Richard Sandiford <richard.sandiford@arm.com>
237
238 PR tree-optimization/98535
239 * tree-vect-slp.c (duplicate_and_interleave): Use quick_grow_cleared.
240 If the high and low permutes are the same, remove the high permutes
241 from the working set and only continue with the low ones.
242
243 2021-01-20 Jakub Jelinek <jakub@redhat.com>
244
245 PR tree-optimization/98721
246 * builtins.c (access_ref::inform_access): Don't assume
247 SSA_NAME_IDENTIFIER must be non-NULL. Print messages about
248 object whenever allocfn is NULL, rather than only when DECL_P
249 is true. Use %qE instead of %qD for that. Formatting fixes.
250
251 2021-01-20 Richard Biener <rguenther@suse.de>
252
253 PR tree-optimization/98758
254 * tree-data-ref.c (int_divides_p): Use lambda_int arguments.
255 (lambda_matrix_right_hermite): Avoid undefinedness with
256 signed integer abs and multiplication.
257 (analyze_subscript_affine_affine): Use lambda_int.
258
259 2021-01-20 David Malcolm <dmalcolm@redhat.com>
260
261 PR debug/98751
262 * dwarf2out.c (output_line_info): Rename static variable
263 "generation", moving it out of the function to...
264 (output_line_info_generation): New.
265 (init_sections_and_labels): Likewise, renaming the variable to...
266 (init_sections_and_labels_generation): New.
267 (dwarf2out_c_finalize): Reset the new variables.
268
269 2021-01-19 Martin Sebor <msebor@redhat.com>
270
271 PR middle-end/98664
272 * tree-ssa-live.c (remove_unused_scope_block_p): Keep scopes for
273 all functions, even if they're not declared artificial or inline.
274 * tree.c (tree_inlined_location): Use macro expansion location
275 only if scope traversal fails to expose one.
276
277 2021-01-19 Richard Sandiford <richard.sandiford@arm.com>
278
279 PR rtl-optimization/92294
280 * alias.c (compare_base_symbol_refs): Take an extra parameter
281 and add the distance between two symbols to it. Enshrine in
282 comments that -1 means "either 0 or 1, but we can't tell
283 which at compile time".
284 (memrefs_conflict_p): Update call accordingly.
285 (rtx_equal_for_memref_p): Likewise. Take the distance between symbols
286 into account.
287
288 2021-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
289
290 * config/aarch64/aarch64-simd-builtins.def (sqshl, uqshl,
291 sqrshl, uqrshl, sqadd, uqadd, sqsub, uqsub, suqadd, usqadd, sqmovn,
292 uqmovn, sqxtn2, uqxtn2, sqabs, sqneg, sqdmlal, sqdmlsl, sqdmlal_lane,
293 sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq, sqdmlal_n, sqdmlsl_n,
294 sqdmlal2, sqdmlsl2, sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq,
295 sqdmlsl2_laneq, sqdmlal2_n, sqdmlsl2_n, sqdmull, sqdmull_lane,
296 sqdmull_laneq, sqdmull_n, sqdmull2, sqdmull2_lane, sqdmull2_laneq,
297 sqdmull2_n, sqdmulh, sqrdmulh, sqdmulh_lane, sqdmulh_laneq,
298 sqrdmulh_lane, sqrdmulh_laneq, sqshrun_n, sqrshrun_n, sqshrn_n,
299 uqshrn_n, sqrshrn_n, uqrshrn_n, sqshlu_n, sqshl_n, uqshl_n, sqrdmlah,
300 sqrdmlsh, sqrdmlah_lane, sqrdmlsh_lane, sqrdmlah_laneq, sqrdmlsh_laneq,
301 sqmovun): Use NONE flags.
302
303 2021-01-19 Richard Biener <rguenther@suse.de>
304
305 PR ipa/98330
306 * ipa-modref.c (analyze_stmt): Only record a summary for a
307 direct call.
308
309 2021-01-19 Richard Biener <rguenther@suse.de>
310
311 PR middle-end/98638
312 * tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT.
313
314 2021-01-19 Daniel Hellstrom <daniel@gaisler.com>
315
316 * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
317 built-in define __FIX_LEON3FT_TN0018.
318
319 2021-01-19 Richard Biener <rguenther@suse.de>
320
321 PR ipa/97673
322 * tree-inline.c (tree_function_versioning): Set input_location
323 to UNKNOWN_LOCATION throughout the function.
324
325 2021-01-19 Tobias Burnus <tobias@codesourcery.com>
326
327 PR fortran/98476
328 * omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr.
329
330 2021-01-19 Martin Jambor <mjambor@suse.cz>
331
332 PR ipa/98690
333 * ipa-sra.c (ssa_name_only_returned_p): New parameter fun. Check
334 whether non-call exceptions allow removal of a statement.
335 (isra_analyze_call): Pass the appropriate function to
336 ssa_name_only_returned_p.
337
338 2021-01-19 Geng Qi <gengqi@linux.alibaba.com>
339
340 * config/riscv/arch-canonicalize (longext_sort): New function for
341 sorting 'multi-letter'.
342 * config/riscv/multilib-generator: Adjusting the loop of 'alt' in
343 'alts'. The 'arch' may not be the first of 'alts'.
344 (_expand_combination): Add underline for the 'ext' without '*'.
345 This is because, a single-letter extension can always be treated well
346 with a '_' prefix, but it cannot be separated out if it is appended
347 to a multi-letter.
348
349 2021-01-18 Vladimir N. Makarov <vmakarov@redhat.com>
350
351 PR target/97847
352 * ira.c (ira): Skip abnormal critical edge splitting.
353
354 2021-01-18 Jakub Jelinek <jakub@redhat.com>
355
356 PR tree-optimization/98727
357 * tree-ssa-math-opts.c (match_arith_overflow): Fix up computation of
358 second .MUL_OVERFLOW operand for signed multiplication with overflow
359 checking if the second operand of multiplication is not constant.
360
361 2021-01-18 David Edelsohn <dje.gcc@gmail.com>
362
363 * doc/invoke.texi (-gdwarf): TPF defaults to version 2 and AIX
364 defaults to version 4.
365
366 2021-01-18 David Malcolm <dmalcolm@redhat.com>
367
368 * attribs.h (fndecl_dealloc_argno): New decl.
369 * builtins.c (call_dealloc_argno): Split out second half of
370 function into...
371 (fndecl_dealloc_argno): New.
372 * doc/extend.texi (Common Function Attributes): Document the
373 interaction between the analyzer and the malloc attribute.
374 * doc/invoke.texi (Static Analyzer Options): Likewise.
375
376 2021-01-17 David Edelsohn <dje.gcc@gmail.com>
377
378 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Override
379 dwarf_version to 4.
380 * config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
381
382 2021-01-17 Martin Jambor <mjambor@suse.cz>
383
384 PR ipa/98222
385 * cgraph.c (clone_of_p): Check also former_clone_of as we climb
386 the clone tree.
387
388 2021-01-17 Mark Wielaard <mark@klomp.org>
389
390 * common.opt (gdwarf-): Init(5).
391 * doc/invoke.texi (-gdwarf): Document default to 5.
392
393 2021-01-16 Kwok Cheung Yeung <kcy@codesourcery.com>
394
395 * builtin-types.def
396 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
397 to...
398 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR):
399 ...this. Add extra argument.
400 * gimplify.c (omp_default_clause): Ensure that event handle is
401 firstprivate in a task region.
402 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DETACH.
403 (gimplify_adjust_omp_clauses): Likewise.
404 * omp-builtins.def (BUILT_IN_GOMP_TASK): Change function type to
405 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR.
406 * omp-expand.c (expand_task_call): Add GOMP_TASK_FLAG_DETACH to flags
407 if detach clause specified. Add detach argument when generating
408 call to GOMP_task.
409 * omp-low.c (scan_sharing_clauses): Setup data environment for detach
410 clause.
411 (finish_taskreg_scan): Move field for variable containing the event
412 handle to the front of the struct.
413 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DETACH. Fix
414 ordering.
415 * tree-nested.c (convert_nonlocal_omp_clauses): Handle
416 OMP_CLAUSE_DETACH clause.
417 (convert_local_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
418 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_DETACH.
419 * tree.c (omp_clause_num_ops): Add entry for OMP_CLAUSE_DETACH.
420 Fix ordering.
421 (omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH. Fix
422 ordering.
423 (walk_tree_1): Handle OMP_CLAUSE_DETACH.
424
425 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
426
427 * config/nios2/t-rtems: Reset all MULTILIB_* variables. Shorten
428 multilib directory names. Use MULTILIB_REQUIRED instead of
429 MULTILIB_EXCEPTIONS. Add -mhw-mul -mhw-mulx -mhw-div
430 -mcustom-fpu-cfg=fph2 multilib.
431
432 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
433
434 * config/nios2/nios2.c (NIOS2_FPU_CONFIG_NUM): Adjust value.
435 (nios2_init_fpu_configs): Provide register values for new
436 -mcustom-fpu-cfg=fph2 option variant.
437 * doc/invoke.texi (-mcustom-fpu-cfg=fph2): Document new option
438 variant.
439
440 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
441
442 * config/nios2/nios2.c (nios2_custom_check_insns): Remove
443 custom instruction warnings.
444
445 2021-01-16 Jakub Jelinek <jakub@redhat.com>
446
447 PR tree-optimization/96669
448 * match.pd ((CST << x) & 1 -> x == 0): New simplification.
449
450 2021-01-16 Jakub Jelinek <jakub@redhat.com>
451
452 PR tree-optimization/96271
453 * passes.def: Pass false argument to first two pass_cd_dce
454 instances and true to last instance. Add comment that
455 last instance rewrites no longer addressed locals.
456 * tree-ssa-dce.c (pass_cd_dce): Add update_address_taken_p member and
457 initialize it.
458 (pass_cd_dce::set_pass_param): New method.
459 (pass_cd_dce::execute): Return TODO_update_address_taken from
460 last cd_dce instance.
461
462 2021-01-15 Carl Love <cel@us.ibm.com>
463
464 * config/rs6000/altivec.h (vec_mulh, vec_div, vec_dive, vec_mod):
465 New defines.
466 * config/rs6000/altivec.md (VIlong): Move define to file vsx.md.
467 * config/rs6000/rs6000-builtin.def (DIVES_V4SI, DIVES_V2DI,
468 DIVEU_V4SI, DIVEU_V2DI, DIVS_V4SI, DIVS_V2DI, DIVU_V4SI,
469 DIVU_V2DI, MODS_V2DI, MODS_V4SI, MODU_V2DI, MODU_V4SI,
470 MULHS_V2DI, MULHS_V4SI, MULHU_V2DI, MULHU_V4SI, MULLD_V2DI):
471 Add builtin define.
472 (MULH, DIVE, MOD): Add new BU_P10_OVERLOAD_2 definitions.
473 * config/rs6000/rs6000-call.c (VSX_BUILTIN_VEC_DIV,
474 VSX_BUILTIN_VEC_DIVE, P10_BUILTIN_VEC_MOD, P10_BUILTIN_VEC_MULH):
475 New overloaded definitions.
476 (builtin_function_type) [P10V_BUILTIN_DIVEU_V4SI,
477 P10V_BUILTIN_DIVEU_V2DI, P10V_BUILTIN_DIVU_V4SI,
478 P10V_BUILTIN_DIVU_V2DI, P10V_BUILTIN_MODU_V2DI,
479 P10V_BUILTIN_MODU_V4SI, P10V_BUILTIN_MULHU_V2DI,
480 P10V_BUILTIN_MULHU_V4SI]: Add case
481 statement for builtins.
482 * config/rs6000/rs6000.md (bits): Add new attribute sizes V4SI, V2DI.
483 * config/rs6000/vsx.md (VIlong): Moved from config/rs6000/altivec.md.
484 (UNSPEC_VDIVES, UNSPEC_VDIVEU): New unspec definitions.
485 (vsx_mul_v2di): Add if TARGET_POWER10 statement.
486 (vsx_udiv_v2di): Add if TARGET_POWER10 statement.
487 (dives_<mode>, diveu_<mode>, div<mode>3, uvdiv<mode>3,
488 mods_<mode>, modu_<mode>, mulhs_<mode>, mulhu_<mode>, mulv2di3):
489 Add define_insn, mode is VIlong.
490 * doc/extend.texi (vec_mulh, vec_mul, vec_div, vec_dive, vec_mod):
491 Add builtin descriptions.
492
493 2021-01-15 Eric Botcazou <ebotcazou@adacore.com>
494
495 * final.c (final_start_function_1): Reset force_source_line.
496
497 2021-01-15 Jakub Jelinek <jakub@redhat.com>
498
499 PR tree-optimization/96669
500 * match.pd (((1 << A) & 1) != 0 -> A == 0,
501 ((1 << A) & 1) == 0 -> A != 0): Generalize for 1s replaced by
502 possibly different power of two constants and to right shift too.
503
504 2021-01-15 Jakub Jelinek <jakub@redhat.com>
505
506 PR tree-optimization/96681
507 * match.pd ((x < 0) ^ (y < 0) to (x ^ y) < 0): New simplification.
508 ((x >= 0) ^ (y >= 0) to (x ^ y) < 0): Likewise.
509 ((x < 0) ^ (y >= 0) to (x ^ y) >= 0): Likewise.
510 ((x >= 0) ^ (y < 0) to (x ^ y) >= 0): Likewise.
511
512 2021-01-15 Alexandre Oliva <oliva@adacore.com>
513
514 * opts.c (gen_command_line_string): Exclude -dumpbase-ext.
515
516 2021-01-15 Tamar Christina <tamar.christina@arm.com>
517
518 * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4,
519 cmul<conj_op><mode>3): New.
520 * config/aarch64/iterators.md (UNSPEC_FCMUL,
521 UNSPEC_FCMUL180, UNSPEC_FCMLA_CONJ, UNSPEC_FCMLA180_CONJ,
522 UNSPEC_CMLA_CONJ, UNSPEC_CMLA180_CONJ, UNSPEC_CMUL, UNSPEC_CMUL180,
523 FCMLA_OP, FCMUL_OP, conj_op, rotsplit1, rotsplit2, fcmac1, sve_rot1,
524 sve_rot2, SVE2_INT_CMLA_OP, SVE2_INT_CMUL_OP, SVE2_INT_CADD_OP): New.
525 (rot): Add UNSPEC_FCMUL, UNSPEC_FCMUL180.
526 (rot_op): Renamed to conj_op.
527 * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4,
528 cmul<conj_op><mode>3): New.
529 * config/aarch64/aarch64-sve2.md (cml<fcmac1><conj_op><mode>4,
530 cmul<conj_op><mode>3): New.
531
532 2021-01-15 David Malcolm <dmalcolm@redhat.com>
533
534 PR bootstrap/98696
535 * diagnostic.c
536 (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
537 Escape the tempfile name when constructing the expected output.
538
539 2021-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
540
541 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlsl_hi<mode>):
542 Rename to...
543 (aarch64_<su>mlsl_hi<mode>): ... This.
544 (aarch64_<su>mlsl_hi<mode>): Define.
545 (*aarch64_<su>mlsl<mode): Rename to...
546 (aarch64_<su>mlsl<mode): ... This.
547 * config/aarch64/aarch64-simd-builtins.def (smlsl, umlsl,
548 smlsl_hi, umlsl_hi): Define builtins.
549 * config/aarch64/arm_neon.h (vmlsl_high_s8, vmlsl_high_s16,
550 vmlsl_high_s32, vmlsl_high_u8, vmlsl_high_u16, vmlsl_high_u32,
551 vmlsl_s8, vmlsl_s16, vmlsl_s32, vmlsl_u8,
552 vmlsl_u16, vmlsl_u32): Reimplement with builtins.
553
554 2021-01-15 Uroš Bizjak <ubizjak@gmail.com>
555
556 * config/i386/i386-c.c (ix86_target_macros):
557 Use cpp_define_formatted for __SIZEOF_FLOAT80__ definition.
558
559 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
560
561 PR target/88836
562 * config.gcc (aarch64*-*-*): Add aarch64-cc-fusion.o to extra_objs.
563 * Makefile.in (RTL_SSA_H): New variable.
564 * config/aarch64/t-aarch64 (aarch64-cc-fusion.o): New rule.
565 * config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Declare.
566 * config/aarch64/aarch64-passes.def: Add pass_cc_fusion after
567 pass_combine.
568 * config/aarch64/aarch64-cc-fusion.cc: New file.
569
570 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
571
572 * recog.h (insn_change_watermark::~insn_change_watermark): Avoid
573 calling cancel_changes for changes that no longer exist.
574
575 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
576
577 * rtl-ssa/functions.h (function_info::ref_defs): Rename to...
578 (function_info::reg_defs): ...this.
579 * rtl-ssa/member-fns.inl (function_info::ref_defs): Rename to...
580 (function_info::reg_defs): ...this.
581
582 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
583
584 PR target/71233
585 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
586
587 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
588
589 Revert:
590 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
591
592 PR target/71233
593 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
594
595 2021-01-15 Richard Biener <rguenther@suse.de>
596
597 PR tree-optimization/96376
598 * tree-vect-stmts.c (get_load_store_type): Disregard alignment
599 for VMAT_INVARIANT.
600
601 2021-01-15 Martin Liska <mliska@suse.cz>
602
603 * doc/install.texi: Document that some tests need pytest module.
604 * doc/sourcebuild.texi: Likewise.
605
606 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
607
608 PR target/71233
609 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
610
611 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
612
613 * config/arm/mve.md (mve_vshrq_n_s<mode>_imm): New entry.
614 (mve_vshrq_n_u<mode>_imm): Likewise.
615 * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Move to ...
616 * config/arm/vec-common.md: ... here.
617
618 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
619
620 * config/arm/mve.md (mve_vshlq_<supf><mode>): Move to
621 vec-commond.md.
622 * config/arm/neon.md (vashl<mode>3): Delete.
623 * config/arm/vec-common.md (mve_vshlq_<supf><mode>): New.
624 (vasl<mode>3): New expander.
625
626 2021-01-15 Richard Biener <rguenther@suse.de>
627
628 PR tree-optimization/98685
629 * tree-vect-slp.c (vect_schedule_slp_node): Refactor handling
630 of vector extern defs.
631
632 2021-01-14 David Malcolm <dmalcolm@redhat.com>
633
634 PR jit/98586
635 * diagnostic.c (diagnostic_kind_text): Break out this array
636 from...
637 (diagnostic_build_prefix): ...here.
638 (fancy_abort): Detect when diagnostic_initialize has not yet been
639 called and fall back to a minimal implementation of printing the
640 ICE, rather than segfaulting in internal_error.
641
642 2021-01-14 David Malcolm <dmalcolm@redhat.com>
643
644 * diagnostic.c (diagnostic_initialize): Eliminate
645 parseable_fixits_p in favor of initializing extra_output_kind from
646 GCC_EXTRA_DIAGNOSTIC_OUTPUT.
647 (convert_column_unit): New function, split out from...
648 (diagnostic_converted_column): ...this.
649 (print_parseable_fixits): Add "column_unit" and "tabstop" params.
650 Use them to call convert_column_unit on the column values.
651 (diagnostic_report_diagnostic): Eliminate conditional on
652 parseable_fixits_p in favor of a switch statement on
653 extra_output_kind, passing the appropriate values to the new
654 params of print_parseable_fixits.
655 (selftest::test_print_parseable_fixits_none): Update for new
656 params of print_parseable_fixits.
657 (selftest::test_print_parseable_fixits_insert): Likewise.
658 (selftest::test_print_parseable_fixits_remove): Likewise.
659 (selftest::test_print_parseable_fixits_replace): Likewise.
660 (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
661 New.
662 (selftest::diagnostic_c_tests): Call it.
663 * diagnostic.h (enum diagnostics_extra_output_kind): New.
664 (diagnostic_context::parseable_fixits_p): Delete field in favor
665 of...
666 (diagnostic_context::extra_output_kind): ...this new field.
667 * doc/invoke.texi (Environment Variables): Add
668 GCC_EXTRA_DIAGNOSTIC_OUTPUT.
669 * opts.c (common_handle_option): Update handling of
670 OPT_fdiagnostics_parseable_fixits for change to diagnostic_context
671 fields.
672
673 2021-01-14 Tamar Christina <tamar.christina@arm.com>
674
675 * tree-vect-slp-patterns.c (class complex_operations_pattern,
676 complex_operations_pattern::matches,
677 complex_operations_pattern::recognize,
678 complex_operations_pattern::build): New.
679 (slp_patterns): Use it.
680
681 2021-01-14 Tamar Christina <tamar.christina@arm.com>
682
683 * internal-fn.def (COMPLEX_FMS, COMPLEX_FMS_CONJ): New.
684 * optabs.def (cmls_optab, cmls_conj_optab): New.
685 * doc/md.texi: Document them.
686 * tree-vect-slp-patterns.c (class complex_fms_pattern,
687 complex_fms_pattern::matches, complex_fms_pattern::recognize,
688 complex_fms_pattern::build): New.
689
690 2021-01-14 Tamar Christina <tamar.christina@arm.com>
691
692 * internal-fn.def (COMPLEX_FMA, COMPLEX_FMA_CONJ): New.
693 * optabs.def (cmla_optab, cmla_conj_optab): New.
694 * doc/md.texi: Document them.
695 * tree-vect-slp-patterns.c (vect_match_call_p,
696 class complex_fma_pattern, vect_slp_reset_pattern,
697 complex_fma_pattern::matches, complex_fma_pattern::recognize,
698 complex_fma_pattern::build): New.
699
700 2021-01-14 Tamar Christina <tamar.christina@arm.com>
701
702 * internal-fn.def (COMPLEX_MUL, COMPLEX_MUL_CONJ): New.
703 * optabs.def (cmul_optab, cmul_conj_optab): New.
704 * doc/md.texi: Document them.
705 * tree-vect-slp-patterns.c (vect_match_call_complex_mla,
706 vect_normalize_conj_loc, is_eq_or_top, vect_validate_multiplication,
707 vect_build_combine_node, class complex_mul_pattern,
708 complex_mul_pattern::matches, complex_mul_pattern::recognize,
709 complex_mul_pattern::build): New.
710
711 2021-01-14 Tamar Christina <tamar.christina@arm.com>
712
713 * tree-vect-slp.c (optimize_load_redistribution_1): New.
714 (optimize_load_redistribution, vect_is_slp_load_node): New.
715 (vect_match_slp_patterns): Use it.
716
717 2021-01-14 Tamar Christina <tamar.christina@arm.com>
718
719 * tree-vect-slp-patterns.c (complex_add_pattern::build):
720 Elide nodes.
721
722 2021-01-14 Thomas Schwinge <thomas@codesourcery.com>
723
724 * config/gcn/mkoffload.c (main): Create an offload image only in
725 64-bit configurations.
726
727 2021-01-14 H.J. Lu <hjl.tools@gmail.com>
728
729 PR target/98667
730 * config/i386/i386-options.c (ix86_option_override_internal):
731 Issue an error for -fcf-protection with CF_BRANCH when compiling
732 for 32-bit non-TARGET_CMOV targets.
733
734 2021-01-14 Uroš Bizjak <ubizjak@gmail.com>
735
736 PR target/98671
737 * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
738 Remove declaration and initialization of shadow variable "ret".
739 (ix86_option_override_internal): Remove delcaration of
740 shadow variable "i". Redeclare shadowed variable to unsigned.
741 * common/config/i386/i386-common.c (pta_size): Redeclare to unsigned.
742 * config/i386/i386-builtins.c (get_builtin_code_for_version):
743 Update for redeclaration.
744 * config/i386/i386.h (pta_size): Ditto.
745
746 2021-01-14 Richard Biener <rguenther@suse.de>
747
748 PR tree-optimization/98674
749 * tree-data-ref.c (base_supports_access_fn_components_p): New.
750 (initialize_data_dependence_relation): For two bases without
751 possible access fns resort to type size equality when determining
752 shape compatibility.
753
754 2021-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
755
756 PR target/66791
757 * config/arm/arm_neon.h: Replace calls to __builtin_vcge* by
758 <=, >= operators in vcle and vcge intrinsics respectively.
759 * config/arm/arm_neon_builtins.def: Remove entry for
760 vcge and vcgeu.
761
762 2021-01-14 Uroš Bizjak <ubizjak@gmail.com>
763
764 PR target/98671
765 * config/i386/i386-options.c (ix86_function_specific_save):
766 Remove redundant assignment to opts->x_ix86_branch_cost.
767 * config/i386/i386.c (ix86_prefetch_sse):
768 Rename from x86_prefetch_sse. Update all uses.
769 * config/i386/i386.h: Update for rename.
770 * config/i386/i386-options.h: Ditto.
771
772 2021-01-14 Jakub Jelinek <jakub@redhat.com>
773
774 PR target/98670
775 * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3,
776 *sse4_1_zero_extendv4hiv4si2_3, *sse4_1_zero_extendv2siv2di2_3):
777 Use Bm instead of m for non-avx. Add isa attribute.
778
779 2021-01-14 Jakub Jelinek <jakub@redhat.com>
780
781 PR tree-optimization/96688
782 * match.pd (~(X >> Y) -> ~X >> Y): New simplification if
783 ~X can be simplified.
784
785 2021-01-14 Richard Sandiford <richard.sandiford@arm.com>
786
787 * tree-vect-stmts.c (vect_model_load_cost): Account for unused
788 IFN_LOAD_LANES results.
789
790 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
791
792 * config/aarch64/aarch64-simd.md (aarch64_<su>xtl<mode>):
793 Define.
794 (aarch64_xtn<mode>): Likewise.
795 * config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn):
796 Define
797 builtins.
798 * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
799 builtin.
800 (vmovl_s16): Likewise.
801 (vmovl_s32): Likewise.
802 (vmovl_u8): Likewise.
803 (vmovl_u16): Likewise.
804 (vmovl_u32): Likewise.
805 (vmovn_s16): Likewise.
806 (vmovn_s32): Likewise.
807 (vmovn_s64): Likewise.
808 (vmovn_u16): Likewise.
809 (vmovn_u32): Likewise.
810 (vmovn_u64): Likewise.
811
812 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
813
814 * config/aarch64/aarch64-simd.md (aarch64_<su>qxtn2<mode>_le):
815 Define.
816 (aarch64_<su>qxtn2<mode>_be): Likewise.
817 (aarch64_<su>qxtn2<mode>): Likewise.
818 * config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2):
819 Define builtins.
820 * config/aarch64/iterators.md (SAT_TRUNC): Define code_iterator.
821 (su): Handle ss_truncate and us_truncate.
822 * config/aarch64/arm_neon.h (vqmovn_high_s16): Reimplement using
823 builtin.
824 (vqmovn_high_s32): Likewise.
825 (vqmovn_high_s64): Likewise.
826 (vqmovn_high_u16): Likewise.
827 (vqmovn_high_u32): Likewise.
828 (vqmovn_high_u64): Likewise.
829
830 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
831
832 * config/aarch64/aarch64-simd.md (aarch64_xtn2<mode>_le):
833 Define.
834 (aarch64_xtn2<mode>_be): Likewise.
835 (aarch64_xtn2<mode>): Likewise.
836 * config/aarch64/aarch64-simd-builtins.def (xtn2): Define
837 builtins.
838 * config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using
839 builtins.
840 (vmovn_high_s32): Likewise.
841 (vmovn_high_s64): Likewise.
842 (vmovn_high_u16): Likewise.
843 (vmovn_high_u32): Likewise.
844 (vmovn_high_u64): Likewise.
845
846 2021-01-13 Stafford Horne <shorne@gmail.com>
847
848 * config/or1k/or1k.h (ASM_PREFERRED_EH_DATA_FORMAT): New macro.
849
850 2021-01-13 Stafford Horne <shorne@gmail.com>
851
852 * config/or1k/linux.h (TARGET_ASM_FILE_END): Define macro.
853
854 2021-01-13 Stafford Horne <shorne@gmail.com>
855
856 * config/or1k/or1k.h (TARGET_CPU_CPP_BUILTINS): Add builtin
857 define for __or1k_hard_float__.
858
859 2021-01-13 Stafford Horne <shorne@gmail.com>
860
861 * config/or1k/or1k.h (NO_PROFILE_COUNTERS): Define as 1.
862 (PROFILE_HOOK): Define to call _mcount.
863 (FUNCTION_PROFILER): Change from abort to no-op.
864
865 2021-01-13 Jakub Jelinek <jakub@redhat.com>
866
867 PR tree-optimization/96691
868 * match.pd ((~X | C) ^ D -> (X | C) ^ (~D ^ C),
869 (~X & C) ^ D -> (X & C) ^ (D ^ C)): New simplifications if
870 (~D ^ C) or (D ^ C) can be simplified.
871
872 2021-01-13 Richard Biener <rguenther@suse.de>
873
874 PR tree-optimization/92645
875 * match.pd (BIT_FIELD_REF to conversion): Delay canonicalization
876 until after vector lowering.
877
878 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
879
880 * config/aarch64/aarch64-sve.md (fnma<mode>4): Extend from SVE_FULL_I
881 to SVE_I.
882 (@aarch64_pred_fnma<mode>, cond_fnma<mode>, *cond_fnma<mode>_2)
883 (*cond_fnma<mode>_4, *cond_fnma<mode>_any): Likewise.
884
885 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
886
887 * config/aarch64/aarch64-sve.md (fma<mode>4): Extend from SVE_FULL_I
888 to SVE_I.
889 (@aarch64_pred_fma<mode>, cond_fma<mode>, *cond_fma<mode>_2)
890 (*cond_fma<mode>_4, *cond_fma<mode>_any): Likewise.
891
892 2021-01-13 Richard Biener <rguenther@suse.de>
893
894 PR tree-optimization/92645
895 * tree-vect-slp.c (vect_build_slp_tree_1): Relax supported
896 BIT_FIELD_REF argument.
897 (vect_build_slp_tree_2): Record the desired vector type
898 on the external vector def.
899 (vectorizable_slp_permutation): Handle required punning
900 of existing vector defs.
901
902 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
903
904 * rtl-ssa/accesses.h (def_lookup): Fix order of comparison results.
905
906 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
907
908 * config/sh/sh.md (movsf_ie): Remove operands[2] test.
909
910 2021-01-13 Samuel Thibault <samuel.thibault@ens-lyon.org>
911
912 * config.gcc [$target == *-*-gnu*]: Enable
913 'default_gnu_indirect_function'.
914
915 2021-01-13 Jakub Jelinek <jakub@redhat.com>
916
917 PR target/95905
918 * optabs.c (expand_vec_perm_const): Don't force v0 and v1 into
919 registers before calling targetm.vectorize.vec_perm_const, only after
920 that.
921 * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): Handle
922 two argument permutation when one operand is zero vector and only
923 after that force operands into registers.
924 * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1): New
925 define_insn_and_split pattern.
926 (*avx512bw_zero_extendv32qiv32hi2_1): Likewise.
927 (*avx512f_zero_extendv16hiv16si2_1): Likewise.
928 (*avx2_zero_extendv8hiv8si2_1): Likewise.
929 (*avx512f_zero_extendv8siv8di2_1): Likewise.
930 (*avx2_zero_extendv4siv4di2_1): Likewise.
931 * config/mips/mips.c (mips_vectorize_vec_perm_const): Force operands
932 into registers.
933 * config/arm/arm.c (arm_vectorize_vec_perm_const): Likewise.
934 * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Likewise.
935 * config/ia64/ia64.c (ia64_vectorize_vec_perm_const): Likewise.
936 * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const): Likewise.
937 * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const): Likewise.
938 * config/gcn/gcn.c (gcn_vectorize_vec_perm_const): Likewise. Use std::swap.
939
940 2021-01-13 Martin Liska <mliska@suse.cz>
941
942 PR tree-optimization/98455
943 * gimple-if-to-switch.cc (condition_info::record_phi_mapping):
944 Record also virtual PHIs.
945 (pass_if_to_switch::execute): Return TODO_cleanup_cfg only
946 conditionally.
947
948 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
949
950 * doc/invoke.texi (C++ Modules): Fix typos.
951
952 2021-01-13 Richard Biener <rguenther@suse.de>
953
954 PR tree-optimization/98640
955 * tree-ssa-sccvn.c (visit_nary_op): Do not try to
956 handle plus or minus from a truncated operand to be
957 sign-extended.
958
959 2021-01-13 Jakub Jelinek <jakub@redhat.com>
960
961 PR target/96938
962 * config/i386/i386.md (*btr<mode>_1, *btr<mode>_2): New
963 define_insn_and_split patterns.
964 (splitter after *btr<mode>_2): New splitter.
965
966 2021-01-13 Martin Liska <mliska@suse.cz>
967
968 PR ipa/98652
969 * cgraphunit.c (analyze_functions): Remove dead code.
970
971 2021-01-13 Qian Jianhua <qianjh@cn.fujitsu.com>
972
973 * config/aarch64/aarch64-cost-tables.h (a64fx_extra_costs): New.
974 * config/aarch64/aarch64.c (a64fx_addrcost_table): New.
975 (a64fx_regmove_cost, a64fx_vector_cost): New.
976 (a64fx_tunings): Use the new added cost tables.
977
978 2021-01-13 Jakub Jelinek <jakub@redhat.com>
979
980 PR target/95905
981 * config/i386/predicates.md (pmovzx_parallel): New predicate.
982 * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): New
983 define_insn_and_split pattern.
984 (*sse4_1_zero_extendv4hiv4si2_3): Likewise.
985 (*sse4_1_zero_extendv2siv2di2_3): Likewise.
986
987 2021-01-13 Julian Brown <julian@codesourcery.com>
988
989 * config/gcn/gcn.c (gcn_conditional_register_usage): Remove dead code
990 to fix v0 register.
991
992 2021-01-13 Julian Brown <julian@codesourcery.com>
993
994 * config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live
995 on entry to a BB.
996
997 2021-01-13 Julian Brown <julian@codesourcery.com>
998
999 * config/gcn/gcn-valu.md (recip<mode>2<exec>, recip<mode>2): Use unspec
1000 for reciprocal-approximation instructions.
1001 (div<mode>3): Use fused multiply-accumulate operations for reciprocal
1002 refinement and division result.
1003 * config/gcn/gcn.md (UNSPEC_RCP): New unspec constant.
1004
1005 2021-01-13 Julian Brown <julian@codesourcery.com>
1006
1007 * config/gcn/gcn-valu.md (subdf): Rename to...
1008 (subdf3): This.
1009
1010 2021-01-12 Martin Liska <mliska@suse.cz>
1011
1012 * gcov.c (source_info::debug): Fix printf format for 32-bit hosts.
1013
1014 2021-01-12 Andrea Corallo <andrea.corallo@arm.com>
1015
1016 * function-abi.h: Fix typo.
1017
1018 2021-01-12 Christophe Lyon <christophe.lyon@linaro.org>
1019
1020 PR target/97875
1021 PR target/97875
1022 * config/arm/arm.h (ARM_HAVE_NEON_V8QI_LDST): New macro.
1023 (ARM_HAVE_NEON_V16QI_LDST, ARM_HAVE_NEON_V4HI_LDST): Likewise.
1024 (ARM_HAVE_NEON_V8HI_LDST, ARM_HAVE_NEON_V2SI_LDST): Likewise.
1025 (ARM_HAVE_NEON_V4SI_LDST, ARM_HAVE_NEON_V4HF_LDST): Likewise.
1026 (ARM_HAVE_NEON_V8HF_LDST, ARM_HAVE_NEON_V4BF_LDST): Likewise.
1027 (ARM_HAVE_NEON_V8BF_LDST, ARM_HAVE_NEON_V2SF_LDST): Likewise.
1028 (ARM_HAVE_NEON_V4SF_LDST, ARM_HAVE_NEON_DI_LDST): Likewise.
1029 (ARM_HAVE_NEON_V2DI_LDST): Likewise.
1030 (ARM_HAVE_V8QI_LDST, ARM_HAVE_V16QI_LDST): Likewise.
1031 (ARM_HAVE_V4HI_LDST, ARM_HAVE_V8HI_LDST): Likewise.
1032 (ARM_HAVE_V2SI_LDST, ARM_HAVE_V4SI_LDST, ARM_HAVE_V4HF_LDST): Likewise.
1033 (ARM_HAVE_V8HF_LDST, ARM_HAVE_V4BF_LDST, ARM_HAVE_V8BF_LDST): Likewise.
1034 (ARM_HAVE_V2SF_LDST, ARM_HAVE_V4SF_LDST, ARM_HAVE_DI_LDST): Likewise.
1035 (ARM_HAVE_V2DI_LDST): Likewise.
1036 * config/arm/mve.md (*movmisalign<mode>_mve_store): New pattern.
1037 (*movmisalign<mode>_mve_load): New pattern.
1038 * config/arm/neon.md (movmisalign<mode>): Move to ...
1039 * config/arm/vec-common.md: ... here.
1040
1041 2021-01-12 Vladimir N. Makarov <vmakarov@redhat.com>
1042
1043 PR target/97969
1044 * lra-eliminations.c (eliminate_regs_in_insn): Add transformation
1045 of pattern 'plus (plus (hard reg, const), pseudo)'.
1046
1047 2021-01-12 Richard Biener <rguenther@suse.de>
1048
1049 PR tree-optimization/98550
1050 * tree-vect-slp.c (vect_record_max_nunits): Check whether
1051 the group size is a multiple of the vector element count.
1052 (vect_build_slp_tree_1): When we need to fail because
1053 the vector type choosen causes unrolling do so lazily
1054 without affecting matches only at the end to guide group splitting.
1055
1056 2021-01-12 Martin Liska <mliska@suse.cz>
1057
1058 PR c++/97284
1059 * optc-save-gen.awk: Compare also n_target_save vars with
1060 strcmp.
1061
1062 2021-01-12 Martin Liska <mliska@suse.cz>
1063
1064 * gcov.c (source_info::debug): New.
1065 (print_usage): Add --debug (-D) option.
1066 (process_args): Likewise.
1067 (generate_results): Call src->debug after
1068 accumulate_line_counts.
1069 (read_graph_file): Properly assign id for EXIT_BLOCK.
1070 * profile.c (branch_prob): Dump function body before it is
1071 instrumented.
1072
1073 2021-01-12 Jakub Jelinek <jakub@redhat.com>
1074
1075 PR tree-optimization/98629
1076 * tree-ssa-math-opts.c (arith_overflow_check_p): Don't update use_stmt
1077 unless returning non-zero.
1078
1079 2021-01-12 Jakub Jelinek <jakub@redhat.com>
1080
1081 PR tree-optimization/95731
1082 * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Also optimize
1083 x < 0 && y < 0 && z < 0 into (x | y | z) < 0 for signed x, y, z.
1084 (optimize_range_tests): Call optimize_range_tests_cmp_bitwise
1085 only after optimize_range_tests_var_bound.
1086
1087 2021-01-12 Jakub Jelinek <jakub@redhat.com>
1088
1089 * configure.ac: Ensure c/Make-lang.in comes first in @all_lang_makefrags@.
1090 * configure: Regenerated.
1091
1092 2021-01-12 liuhongt <hongtao.liu@intel.com>
1093
1094 PR target/98612
1095 * config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS):
1096 Deleted.
1097 * config/i386/i386-expand.c (ix86_expand_sse_comi): Delete
1098 dead code.
1099
1100 2021-01-12 Alexandre Oliva <oliva@adacore.com>
1101
1102 * ssa-iterators.h (end_imm_use_stmt_traverse): Forward
1103 declare.
1104 (auto_end_imm_use_stmt_traverse): New struct.
1105 (FOR_EACH_IMM_USE_STMT): Use it.
1106 (BREAK_FROM_IMM_USE_STMT, RETURN_FROM_IMM_USE_STMT): Remove,
1107 along with uses...
1108 * gimple-ssa-strength-reduction.c: ... here, ...
1109 * graphite-scop-detection.c: ... here, ...
1110 * ipa-modref.c, ipa-pure-const.c, ipa-sra.c: ... here, ...
1111 * tree-predcom.c, tree-ssa-ccp.c: ... here, ...
1112 * tree-ssa-dce.c, tree-ssa-dse.c: ... here, ...
1113 * tree-ssa-loop-ivopts.c, tree-ssa-math-opts.c: ... here, ...
1114 * tree-ssa-phiprop.c, tree-ssa.c: ... here, ...
1115 * tree-vect-slp.c: ... and here, ...
1116 * doc/tree-ssa.texi: ... and the example here.
1117
1118 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
1119
1120 * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3): Extend from
1121 SVE_FULL_I to SVE_I. Generate an UNSPEC_PRED_X.
1122 (*sdiv_pow2<mode>3): New pattern.
1123 (@cond_<sve_int_op><mode>): Extend from SVE_FULL_I to SVE_I.
1124 Wrap the ASRD in an UNSPEC_PRED_X.
1125 (*cond_<sve_int_op><mode>_2): Likewise. Replace the UNSPEC_PRED_X
1126 predicate with a constant PTRUE, if it isn't already.
1127 (*cond_<sve_int_op><mode>_z): Replace with...
1128 (*cond_<sve_int_op><mode>_any): ...this new pattern.
1129
1130 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
1131
1132 * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2): Extend from
1133 SVE_FULL_I to SVE_I.
1134 (*cond_bic<mode>_any): Likewise.
1135
1136 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
1137
1138 * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart)
1139 (@aarch64_pred_<MUL_HIGHPART:optab><mode>): Extend from SVE_FULL_I
1140 to SVE_I.
1141
1142 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
1143
1144 * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): Extend from
1145 SVE_FULL_I to SVE_I.
1146 (*aarch64_cond_<su>abd<mode>_2): Likewise.
1147 (*aarch64_cond_<su>abd<mode>_any): Likewise.
1148 (@aarch64_pred_<su>abd<mode>): Likewise. Use UNSPEC_PRED_X
1149 for the max and min but not for the minus.
1150 (*aarch64_cond_<su>abd<mode>_3): New pattern.
1151
1152 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
1153
1154 * config/aarch64/iterators.md (SVE_24I): New iterator.
1155 * config/aarch64/aarch64-sve.md (*aarch64_adr<mode>_shift): Extend from
1156 SVE_FULL_SDI to SVE_24I. Use containers rather than elements.
1157
1158 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
1159
1160 * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_BINARY:optab><mode>)
1161 (*cond_<SVE_INT_BINARY:optab><mode>_2): Extend from SVE_FULL_I
1162 to SVE_I.
1163 (*cond_<SVE_INT_BINARY:optab><mode>_3): Likewise.
1164 (*cond_<SVE_INT_BINARY:optab><mode>_any): Likewise.
1165 (*cond_<SVE_INT_BINARY:optab><mode>_2_const): Likewise.
1166 (*cond_<SVE_INT_BINARY:optab><mode>_any_const): Likewise.
1167
1168 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
1169
1170 * config/aarch64/aarch64-sve.md (<SVE_INT_BINARY_IMM:optab><mode>3)
1171 (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>)
1172 (*post_ra_<SVE_INT_BINARY_IMM:optab><mode>3): Extend from SVE_FULL_I
1173 to SVE_I.
1174
1175 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
1176
1177 * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3)
1178 (v<ASHIFT:optab><mode>3, @aarch64_pred_<optab><mode>)
1179 (*post_ra_v<ASHIFT:optab><mode>3): Extend from SVE_FULL_I to SVE_I.
1180
1181 2021-01-11 Martin Liska <mliska@suse.cz>
1182
1183 PR jit/98615
1184 * symtab-clones.h (clone_info::release): Release
1185 symtab::m_clones with ggc_delete as it's a GGC memory.
1186
1187 2021-01-11 Matthias Klose <doko@ubuntu.com>
1188
1189 * Makefile.in (LINK_PROGRESS): Show the link target.
1190
1191 2021-01-11 Richard Biener <rguenther@suse.de>
1192
1193 PR tree-optimization/91403
1194 * tree-vect-data-refs.c (vect_analyze_group_access_1): Cap
1195 single-element interleaving group size at 4096 elements.
1196
1197 2021-01-11 Richard Biener <rguenther@suse.de>
1198
1199 PR tree-optimization/98526
1200 * tree-vect-loop.c (vect_model_reduction_cost): Remove costing
1201 of the actual reduction op for the regular case.
1202 (vectorizable_reduction): Cost the stmts
1203 vect_transform_reduction produces here.
1204
1205 2021-01-11 Andreas Krebbel <krebbel@linux.ibm.com>
1206
1207 * tree-ssa-forwprop.c (simplify_vector_constructor): For
1208 big-endian, use UNPACK[_FLOAT]_HI.
1209
1210 2021-01-11 Tamar Christina <tamar.christina@arm.com>
1211
1212 * tree-vect-slp-patterns.c (class complex_pattern,
1213 class complex_add_pattern): Add parameters to matches.
1214 (complex_add_pattern::build): Free memory.
1215 (complex_add_pattern::matches): Move validation end of match.
1216 (complex_add_pattern::recognize): Likewise.
1217
1218 2021-01-11 Tamar Christina <tamar.christina@arm.com>
1219
1220 * tree-vect-slp-patterns.c (linear_loads_p): Fix externals.
1221
1222 2021-01-11 Tamar Christina <tamar.christina@arm.com>
1223
1224 * tree-vect-slp-patterns.c (is_linear_load_p): Fix ambiguity.
1225
1226 2021-01-11 Jakub Jelinek <jakub@redhat.com>
1227
1228 PR tree-optimization/95867
1229 * tree-ssa-math-opts.h: New header.
1230 * tree-ssa-math-opts.c: Include tree-ssa-math-opts.h.
1231 (powi_as_mults): No longer static. Use build_one_cst instead of
1232 build_real. Formatting fix.
1233 * tree-ssa-reassoc.c: Include tree-ssa-math-opts.h.
1234 (attempt_builtin_powi): Handle multiplication reassociation without
1235 powi_fndecl using powi_as_mults.
1236 (reassociate_bb): For integral types don't require
1237 -funsafe-math-optimizations to call attempt_builtin_powi.
1238
1239 2021-01-11 Jakub Jelinek <jakub@redhat.com>
1240
1241 PR tree-optimization/95852
1242 * tree-ssa-math-opts.c (maybe_optimize_guarding_check): Change
1243 mul_stmts parameter type to vec<gimple *> &. Before cond_stmt
1244 allow in the bb any of the stmts in that vector, div_stmt and
1245 up to 3 cast stmts.
1246 (arith_cast_equal_p): New function.
1247 (arith_overflow_check_p): Add cast_stmt argument, handle signed
1248 multiply overflow checks.
1249 (match_arith_overflow): Adjust caller. Handle signed multiply
1250 overflow checks.
1251
1252 2021-01-11 Jakub Jelinek <jakub@redhat.com>
1253
1254 PR tree-optimization/95852
1255 * tree-ssa-math-opts.c (maybe_optimize_guarding_check): New function.
1256 (uaddsub_overflow_check_p): Renamed to ...
1257 (arith_overflow_check_p): ... this. Handle also multiplication
1258 with overflow check.
1259 (match_uaddsub_overflow): Renamed to ...
1260 (match_arith_overflow): ... this. Add cfg_changed argument. Handle
1261 also multiplication with overflow check. Adjust function comment.
1262 (math_opts_dom_walker::after_dom_children): Adjust callers. Call
1263 match_arith_overflow also for MULT_EXPR.
1264
1265 2021-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1266
1267 * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
1268 __builtin_convertvector.
1269 (vmovl_s16): Likewise.
1270 (vmovl_s32): Likewise.
1271 (vmovl_u8): Likewise.
1272 (vmovl_u16): Likewise.
1273 (vmovl_u32): Likewise.
1274 (vmovn_s16): Likewise.
1275 (vmovn_s32): Likewise.
1276 (vmovn_s64): Likewise.
1277 (vmovn_u16): Likewise.
1278 (vmovn_u32): Likewise.
1279 (vmovn_u64): Likewise.
1280
1281 2021-01-11 Martin Liska <mliska@suse.cz>
1282
1283 * gimple-if-to-switch.cc (struct condition_info): Use auto_var.
1284 (if_chain::is_beneficial): Delete clusters
1285 (find_conditions): Make second argument of conditions_in_bbs a
1286 pointer so that we control over it's lifetime.
1287 (pass_if_to_switch::execute): Delete them.
1288
1289 2021-01-11 Kewen Lin <linkw@linux.ibm.com>
1290
1291 * ira.c (move_unallocated_pseudos): Check other_reg and skip if
1292 it isn't set.
1293
1294 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
1295
1296 * config/vax/vax.md (cc): Remove mode attribute.
1297 (subst_<cc>, subst_f<cc>): Rename to...
1298 (subst_<mode>, subst_f<VAXccnz:mode>): ... these respectively.
1299 (*cbranch<VAXint:mode>4_<VAXcc:mode>): Update for `cc' removal.
1300 (*cbranch<VAXfp:mode>4_<VAXccnz:mode>): Likewise.
1301 (*branch_<mode>, *branch_<mode>_reversed): Likewise.
1302
1303 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
1304
1305 * config/vax/vax.md (subst_f<cc>): Add mode to operands and
1306 `const_double_zero'.
1307
1308 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
1309
1310 * config/pdp11/pdp11.md (PDPfp): New mode iterator.
1311 (fcc_cc, fcc_ccnz): Use it. Add mode to `const_double_zero' and
1312 operands.
1313
1314 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
1315
1316 * genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero'
1317 rtx.
1318 * read-rtl.c (rtx_reader::read_rtx_code): Handle machine mode
1319 with `const_double_zero'.
1320 * doc/rtl.texi (Constant Expression Types): Document it.
1321
1322 2021-01-09 Jakub Jelinek <jakub@redhat.com>
1323
1324 PR c++/98556
1325 * tree-cfg.c (verify_gimple_assign_binary): Allow lhs of
1326 POINTER_DIFF_EXPR to be any integral type.
1327
1328 2021-01-09 Jakub Jelinek <jakub@redhat.com>
1329
1330 PR rtl-optimization/98603
1331 * function.c (instantiate_virtual_regs_in_insn): For asm goto
1332 with impossible constraints, drop all SETs, CLOBBERs, drop PARALLEL
1333 if any, set ASM_OPERANDS mode to VOIDmode and change
1334 ASM_OPERANDS_OUTPUT_CONSTRAINT and ASM_OPERANDS_OUTPUT_IDX.
1335
1336 2021-01-09 Alexandre Oliva <oliva@gnu.org>
1337
1338 PR debug/97714
1339 * final.c (notice_source_line): Narrow down the condition to
1340 skip a line-0 marker.
1341
1342 2021-01-08 Sergei Trofimovich <siarheit@google.com>
1343
1344 * ipa-modref.c (merge_call_side_effects): Fix
1345 linebreak split by reordering two print calls.
1346
1347 2021-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
1348
1349 * config/s390/vector.md (*tf_to_fprx2_0): Rename from
1350 "*mov_tf_to_fprx2_0" for consistency, fix constraint.
1351 (*tf_to_fprx2_1): Rename from "*mov_tf_to_fprx2_1" for
1352 consistency, fix constraint.
1353
1354 2021-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
1355
1356 * config/s390/s390-c.c (s390_def_or_undef_macro): Accept
1357 callables instead of mask values.
1358 (struct target_flag_set_p): New predicate.
1359 (s390_cpu_cpp_builtins_internal): Define or undefine
1360 __LONG_DOUBLE_VX__ macro.
1361
1362 2021-01-08 H.J. Lu <hjl.tools@gmail.com>
1363
1364 PR target/98482
1365 * config/i386/i386.c (x86_function_profiler): Use R10 and R11
1366 to call mcount in large model with PIC for NO_PROFILE_COUNTERS
1367 targets.
1368
1369 2021-01-08 Richard Biener <rguenther@suse.de>
1370
1371 * tree-ssa-sccvn.c (pass_fre::execute): Reset the SCEV hash table.
1372
1373 2021-01-08 Richard Biener <rguenther@suse.de>
1374
1375 * tree-vect-slp.c (scalar_stmts_to_slp_tree_map_t): Fix.
1376 (vect_build_slp_tree): On cache hit release the matched
1377 scalar stmts vector.
1378 * tree-vect-stmts.c (vectorizable_store): Properly free
1379 vec_oprnds before possibly gathering them again.
1380
1381 2021-01-08 Richard Biener <rguenther@suse.de>
1382
1383 PR tree-optimization/98544
1384 * tree-vect-slp.c (vect_optimize_slp): Always materialize
1385 permutes at a permute node.
1386
1387 2021-01-08 H.J. Lu <hjl.tools@gmail.com>
1388
1389 PR target/98482
1390 * config/i386/i386.c (x86_function_profiler): Use R10 to call
1391 mcount in large model. Sorry for large model with PIC.
1392
1393 2021-01-08 Jakub Jelinek <jakub@redhat.com>
1394
1395 PR target/98585
1396 * config/i386/i386.opt (ix86_cmodel, ix86_incoming_stack_boundary_arg,
1397 ix86_pmode, ix86_preferred_stack_boundary_arg, ix86_regparm,
1398 ix86_veclibabi_type): Remove x_ prefix, use TargetVariable instead of
1399 TargetSave and initialize for variables with enum types.
1400 (mfentry, mstack-protector-guard-reg=, mstack-protector-guard-offset=,
1401 mstack-protector-guard-symbol=): Add Save.
1402 * config/i386/i386-options.c (ix86_function_specific_save,
1403 ix86_function_specific_restore): Don't save or restore x_ix86_cmodel,
1404 x_ix86_incoming_stack_boundary_arg, x_ix86_pmode,
1405 x_ix86_preferred_stack_boundary_arg, x_ix86_regparm,
1406 x_ix86_veclibabi_type.
1407
1408 2021-01-08 Richard Sandiford <richard.sandiford@arm.com>
1409
1410 * config/aarch64/aarch64-sve.md (*cnot<mode>): Extend from
1411 SVE_FULL_I to SVE_I.
1412 (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
1413
1414 2021-01-08 Richard Sandiford <richard.sandiford@arm.com>
1415
1416 * config/aarch64/aarch64-sve.md (*cond_uxt<mode>_2): Extend from
1417 SVE_FULL_I to SVE_I.
1418 (*cond_uxt<mode>_any): Likewise.
1419
1420 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1421
1422 * config/aarch64/iterators.md (Vwhalf): New iterator.
1423 * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>_3):
1424 Rename to...
1425 (aarch64_<sur>adalp<mode>): ... This. Make more
1426 builtin-friendly.
1427 (<sur>sadv16qi): Adjust callsite of the above.
1428 * config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New
1429 builtins.
1430 * config/aarch64/arm_neon.h (vpadal_s8): Reimplement using
1431 builtins.
1432 (vpadal_s16): Likewise.
1433 (vpadal_u8): Likewise.
1434 (vpadal_u16): Likewise.
1435 (vpadalq_s8): Likewise.
1436 (vpadalq_s16): Likewise.
1437 (vpadalq_s32): Likewise.
1438 (vpadalq_u8): Likewise.
1439 (vpadalq_u16): Likewise.
1440 (vpadalq_u32): Likewise.
1441
1442 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1443
1444 * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>_3):
1445 Rename to...
1446 (aarch64_<su>abd<mode>): ... This.
1447 (<sur>sadv16qi): Adjust callsite of the above.
1448 * config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define
1449 builtins.
1450 * config/aarch64/arm_neon.h (vabd_s8): Reimplement using
1451 builtin.
1452 (vabd_s16): Likewise.
1453 (vabd_s32): Likewise.
1454 (vabd_u8): Likewise.
1455 (vabd_u16): Likewise.
1456 (vabd_u32): Likewise.
1457 (vabdq_s8): Likewise.
1458 (vabdq_s16): Likewise.
1459 (vabdq_s32): Likewise.
1460 (vabdq_u8): Likewise.
1461 (vabdq_u16): Likewise.
1462 (vabdq_u32): Likewise.
1463
1464 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1465
1466 * config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define
1467 builtins.
1468 * config/aarch64/arm_neon.h (vaba_s8): Implement using builtin.
1469 (vaba_s16): Likewise.
1470 (vaba_s32): Likewise.
1471 (vaba_u8): Likewise.
1472 (vaba_u16): Likewise.
1473 (vaba_u32): Likewise.
1474 (vabaq_s8): Likewise.
1475 (vabaq_s16): Likewise.
1476 (vabaq_s32): Likewise.
1477 (vabaq_u8): Likewise.
1478 (vabaq_u16): Likewise.
1479 (vabaq_u32): Likewise.
1480
1481 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1482
1483 * config/aarch64/aarch64-simd.md (aba<mode>_3): Rename to...
1484 (aarch64_<su>aba<mode>): ... This. Handle uaba as well.
1485 Change RTL pattern to match.
1486
1487 2021-01-08 Kito Cheng <kito.cheng@sifive.com>
1488
1489 * common/config/riscv/riscv-common.c (riscv_current_subset_list): New.
1490 * config/riscv/riscv-c.c (riscv-subset.h): New.
1491 (INCLUDE_STRING): Define.
1492 (riscv_cpu_cpp_builtins): Add new style architecture extension
1493 test macros.
1494 * config/riscv/riscv-subset.h (riscv_subset_list::begin): New.
1495 (riscv_subset_list::end): New.
1496 (riscv_current_subset_list): New.
1497
1498 2021-01-08 Kito Cheng <kito.cheng@sifive.com>
1499
1500 * common/config/riscv/riscv-common.c (RISCV_DONT_CARE_VERSION):
1501 Move to riscv-subset.h.
1502 (struct riscv_subset_t): Ditto.
1503 (class riscv_subset_list): Ditto.
1504 * config/riscv/riscv-subset.h (RISCV_DONT_CARE_VERSION): Move
1505 from riscv-common.c.
1506 (struct riscv_subset_t): Ditto.
1507 (class riscv_subset_list): Ditto.
1508 * config/riscv/t-riscv ($(common_out_file)): Add file
1509 dependency.
1510
1511 2021-01-07 Jakub Jelinek <jakub@redhat.com>
1512
1513 PR target/98567
1514 * config/i386/i386.md (*bmi_blsi_<mode>_cmp, *bmi_blsi_<mode>_ccno):
1515 New define_insn patterns.
1516
1517 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
1518
1519 * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_UNARY:optab><mode>)
1520 (*cond_<SVE_INT_UNARY:optab><mode>_2): Extend from SVE_FULL_I to SVE_I.
1521 (*cond_<SVE_INT_UNARY:optab><mode>_any): Likewise.
1522
1523 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
1524
1525 PR tree-optimization/98560
1526 * internal-fn.def (IFN_VCONDU, IFN_VCONDEQ): Use type vec_cond.
1527 * internal-fn.c (vec_cond_mask_direct): Get the data mode from
1528 argument 1.
1529 (vec_cond_direct): Likewise argument 2.
1530 (vec_condu_direct, vec_condeq_direct): Delete.
1531 (expand_vect_cond_optab_fn): Rename to...
1532 (expand_vec_cond_optab_fn): ...this, replacing old macro.
1533 (expand_vec_condu_optab_fn, expand_vec_condeq_optab_fn): Delete.
1534 (expand_vect_cond_mask_optab_fn): Rename to...
1535 (expand_vec_cond_mask_optab_fn): ...this, replacing old macro.
1536 (direct_vec_cond_mask_optab_supported_p): Treat the optab as a
1537 convert optab.
1538 (direct_vec_cond_optab_supported_p): Likewise.
1539 (direct_vec_condu_optab_supported_p): Delete.
1540 (direct_vec_condeq_optab_supported_p): Delete.
1541 * gimple-isel.cc: Include internal-fn.h.
1542 (gimple_expand_vec_cond_expr): Check that IFN_VCONDEQ is supported
1543 before using it.
1544
1545 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
1546
1547 PR tree-optimization/98560
1548 * gimple-isel.cc (gimple_expand_vec_cond_expr): If we fail to use
1549 IFN_VCOND{,U,EQ}, fall back on IFN_VCOND_MASK.
1550
1551 2021-01-07 Uroš Bizjak <ubizjak@gmail.com>
1552
1553 * config/i386/i386.md (insn): Merge from plusminus_insn, shift_insn,
1554 rotate_insn and optab code attributes.
1555 Update all uses to merged code attribute.
1556 * config/i386/sse.md: Update all uses to merged code attribute.
1557 * config/i386/mmx.md: Update all uses to merged code attribute.
1558
1559 2021-01-07 Jakub Jelinek <jakub@redhat.com>
1560
1561 PR tree-optimization/98568
1562 * gimple-ssa-store-merging.c (bswap_view_convert): New function.
1563 (bswap_replace): Use it.
1564
1565 2021-01-06 Vladimir N. Makarov <vmakarov@redhat.com>
1566
1567 PR rtl-optimization/97978
1568 * lra-int.h (lra_hard_reg_split_p): New external.
1569 * lra.c (lra_hard_reg_split_p): New global.
1570 (lra): Set up lra_hard_reg_split_p after splitting a hard reg.
1571 * lra-assigns.c (lra_assign): Don't check allocation correctness
1572 after hard reg splitting.
1573
1574 2021-01-06 Martin Sebor <msebor@redhat.com>
1575
1576 PR c++/98305
1577 * builtins.c (new_delete_mismatch_p): New overload.
1578 (new_delete_mismatch_p (tree, tree)): Call it.
1579
1580 2021-01-06 Alexandre Oliva <oliva@adacore.com>
1581
1582 * Makefile.in (T_GLIMITS_H): New.
1583 (stmp-int-hdrs): Depend on it, use it.
1584 * config/t-vxworks (T_GLIMITS_H): Override it.
1585 (vxw-glimits.h): New.
1586
1587 2021-01-06 Richard Biener <rguenther@suse.de>
1588
1589 PR tree-optimization/98513
1590 * value-range.cc (intersect_ranges): Compare the upper bounds
1591 for the expected relation.
1592
1593 2021-01-06 Gerald Pfeifer <gerald@pfeifer.com>
1594
1595 Revert:
1596 2020-12-28 Gerald Pfeifer <gerald@pfeifer.com>
1597
1598 * doc/standards.texi (HSAIL): Remove section.
1599
1600 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
1601
1602 * configure: Re-generate.
1603
1604 2021-01-05 Jakub Jelinek <jakub@redhat.com>
1605
1606 * doc/invoke.texi (-std=c++20): Adjust for the publication of
1607 ISO 14882:2020 standard.
1608 * doc/standards.texi: Likewise.
1609
1610 2021-01-05 Jakub Jelinek <jakub@redhat.com>
1611
1612 PR tree-optimization/94802
1613 * expr.h (maybe_optimize_sub_cmp_0): Declare.
1614 * expr.c: Include tree-pretty-print.h and flags.h.
1615 (maybe_optimize_sub_cmp_0): New function.
1616 (do_store_flag): Use it.
1617 * cfgexpand.c (expand_gimple_cond): Likewise.
1618
1619 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
1620
1621 * mux-utils.h (pointer_mux::m_ptr): Tweak description of contents.
1622 * rtlanal.c (simple_regno_set): Tweak description to clarify the
1623 RMW condition.
1624
1625 2021-01-05 Richard Biener <rguenther@suse.de>
1626
1627 PR tree-optimization/98516
1628 * tree-vect-slp.c (vect_optimize_slp): Permute the incoming
1629 lanes when materializing on a VEC_PERM node.
1630 (vectorizable_slp_permutation): Dump the permute properly.
1631
1632 2021-01-05 Richard Biener <rguenther@suse.de>
1633
1634 * tree-vect-slp.c (vect_slp_region): Move debug counter
1635 to cover individual subgraphs.
1636
1637 2021-01-05 Richard Biener <rguenther@suse.de>
1638
1639 PR tree-optimization/98428
1640 * tree-vect-slp.c (vect_build_slp_tree_1): Properly reject
1641 vector lane extracts for loop vectorization.
1642
1643 2021-01-05 Jakub Jelinek <jakub@redhat.com>
1644
1645 PR tree-optimization/98514
1646 * tree-ssa-reassoc.c (bb_rank): Change type from long * to
1647 int64_t *.
1648 (operand_rank): Change type from hash_map<tree, long> to
1649 hash_map<tree, int64_t>.
1650 (phi_rank): Change return type from long to int64_t.
1651 (loop_carried_phi): Change block_rank variable type from long to
1652 int64_t.
1653 (propagate_rank): Change return type, rank parameter type and
1654 op_rank variable type from long to int64_t.
1655 (find_operand_rank): Change return type from long to int64_t
1656 and change slot variable type from long * to int64_t *.
1657 (insert_operand_rank): Change rank parameter type from long to
1658 int64_t.
1659 (get_rank): Change return type and rank variable type from long to
1660 int64_t. Use PRId64 instead of ld to print the rank.
1661 (init_reassoc): Change rank variable type from long to int64_t
1662 and adjust correspondingly bb_rank and operand_rank initialization.
1663
1664 2021-01-05 Jakub Jelinek <jakub@redhat.com>
1665
1666 PR tree-optimization/96928
1667 * tree-ssa-phiopt.c (xor_replacement): New function.
1668 (tree_ssa_phiopt_worker): Call it.
1669
1670 2021-01-05 Jakub Jelinek <jakub@redhat.com>
1671
1672 PR tree-optimization/96930
1673 * match.pd ((A / (1 << B)) -> (A >> B)): If A is extended
1674 from narrower value which has the same type as 1 << B, perform
1675 the right shift on the narrower value followed by extension.
1676
1677 2021-01-05 Jakub Jelinek <jakub@redhat.com>
1678
1679 PR tree-optimization/96239
1680 * gimple-ssa-store-merging.c (maybe_optimize_vector_constructor): New
1681 function.
1682 (get_status_for_store_merging): Don't return BB_INVALID for blocks
1683 with potential bswap optimizable CONSTRUCTORs.
1684 (pass_store_merging::execute): Optimize vector CONSTRUCTORs with bswap
1685 if possible.
1686
1687 2021-01-05 Richard Biener <rguenther@suse.de>
1688
1689 PR tree-optimization/98381
1690 * tree.c (vector_element_bits): Properly compute bool vector
1691 element size.
1692 * tree-vect-loop.c (vectorizable_live_operation): Properly
1693 compute the last lane bit offset.
1694
1695 2021-01-05 Uroš Bizjak <ubizjak@gmail.com>
1696
1697 PR target/98522
1698 * config/i386/sse.md (sse_cvtps2pi): Redefine as define_insn_and_split.
1699 Clear the top 64 bytes of the input XMM register.
1700 (sse_cvttps2pi): Ditto.
1701
1702 2021-01-05 Uroš Bizjak <ubizjak@gmail.com>
1703
1704 PR target/98521
1705 * config/i386/xopintrin.h (_mm256_cmov_si256): New.
1706
1707 2021-01-05 H.J. Lu <hjl.tools@gmail.com>
1708
1709 PR target/98495
1710 * config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned
1711 short first.
1712
1713 2021-01-05 Claudiu Zissulescu <claziss@synopsys.com>
1714
1715 * config/arc/arc.md (maddsidi4_split): Use ACC_REG_FIRST.
1716 (umaddsidi4_split): Likewise.
1717
1718 2021-01-05 liuhongt <hongtao.liu@intel.com>
1719
1720 PR target/98461
1721 * config/i386/sse.md (*sse2_pmovskb_zexthisi): New
1722 define_insn_and_split for zero_extend of subreg HI of pmovskb
1723 result.
1724 (*sse2_pmovskb_zexthisi): Add new combine splitters for
1725 zero_extend of not of subreg HI of pmovskb result.
1726
1727 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
1728
1729 PR target/97269
1730 * explow.c (convert_memory_address_addr_space_1): Handle UNSPECs
1731 nested in CONSTs.
1732 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Use
1733 convert_memory_address to convert symbolic immediates to ptr_mode
1734 before forcing them to memory.
1735
1736 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
1737
1738 PR rtl-optimization/97144
1739 * recog.c (constrain_operands): Initialize matching_operand
1740 for each alternative, rather than only doing it once.
1741
1742 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
1743
1744 PR rtl-optimization/98403
1745 * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Explain
1746 why we don't remove call clobbers.
1747 (function_info::apply_changes_to_insn): Don't attempt to add
1748 call clobbers here.
1749
1750 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
1751
1752 PR tree-optimization/98371
1753 * tree-vect-loop.c (vect_reanalyze_as_main_loop): New function.
1754 (vect_analyze_loop): If an epilogue loop appears to be cheaper
1755 than the main loop, re-analyze it as a main loop before adopting
1756 it as a main loop.
1757
1758 2021-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1759
1760 PR c++/98316
1761 * configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL.
1762 * aclocal.m4, configure: Regenerate.
1763 * Makefile.in (NETLIBS): Define.
1764 (BACKEND): Remove $(CODYLIB).
1765
1766 2021-01-05 Jakub Jelinek <jakub@redhat.com>
1767
1768 PR rtl-optimization/98334
1769 * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
1770 Optimize (X - 1) * Y + Y to X * Y or (X + 1) * Y - Y to X * Y.
1771
1772 2021-01-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
1773
1774 * tree-inline.c (expand_call_inline): Restore input_location.
1775 Return result from recursive call.
1776
1777 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
1778
1779 PR tree-optimization/95401
1780 * config/aarch64/aarch64-sve-builtins.cc
1781 (gimple_folder::load_store_cookie): Use bits rather than bytes
1782 for the alignment argument to IFN_MASK_LOAD and IFN_MASK_STORE.
1783 * gimple-fold.c (gimple_fold_mask_load_store_mem_ref): Likewise.
1784 * tree-vect-stmts.c (vectorizable_store): Likewise.
1785 (vectorizable_load): Likewise.
1786
1787 2021-01-04 Richard Biener <rguenther@suse.de>
1788
1789 PR tree-optimization/98308
1790 * tree-vect-stmts.c (vectorizable_load): Set invariant mask
1791 SLP vectype.
1792
1793 2021-01-04 Jakub Jelinek <jakub@redhat.com>
1794
1795 PR tree-optimization/95771
1796 * tree-ssa-loop-niter.c (number_of_iterations_popcount): Handle types
1797 with precision smaller than int's precision and types with precision
1798 twice as large as long long. Formatting fixes.
1799
1800 2021-01-04 Richard Biener <rguenther@suse.de>
1801
1802 PR tree-optimization/98464
1803 * tree-ssa-sccvn.c (vn_valueize_for_srt): Rename from ...
1804 (vn_valueize_wrapper): ... this. Temporarily adjust vn_context_bb.
1805 (process_bb): Adjust.
1806
1807 2021-01-04 Matthew Malcomson <matthew.malcomson@arm.com>
1808
1809 PR other/98437
1810 * doc/invoke.texi (-fsanitize=address): Fix wording describing
1811 clash with -fsanitize=hwaddress.
1812
1813 2021-01-04 Richard Biener <rguenther@suse.de>
1814
1815 PR tree-optimization/98282
1816 * tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on
1817 invariants as VN_NARY.
1818
1819 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
1820
1821 PR target/89057
1822 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Accept
1823 aarch64_simd_reg_or_zero for operand 2. Use the combinez patterns
1824 to handle zero operands.
1825
1826 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
1827
1828 * config/aarch64/aarch64.c (offset_6bit_signed_scaled_p): New function.
1829 (offset_6bit_unsigned_scaled_p): Fix typo in comment.
1830 (aarch64_sve_prefetch_operand_p): Accept MUL VLs in the range
1831 [-32, 31].
1832
1833 2021-01-04 Richard Biener <rguenther@suse.de>
1834
1835 PR tree-optimization/98393
1836 * tree-vect-slp.c (vect_build_slp_tree): Properly zero matches
1837 when hitting the limit.
1838
1839 2021-01-04 Richard Biener <rguenther@suse.de>
1840
1841 PR tree-optimization/98291
1842 * tree-vect-loop.c (vectorizable_reduction): Bypass
1843 associativity check for SLP reductions with VF 1.
1844
1845 2021-01-04 Jakub Jelinek <jakub@redhat.com>
1846
1847 PR tree-optimization/96782
1848 * match.pd (x == ~x -> false, x != ~x -> true): New simplifications.
1849
1850 2021-01-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
1851
1852 * collect-utils.c (collect_execute): Check dumppfx.
1853 * collect2.c (maybe_run_lto_and_relink, do_link): Pass atsuffix
1854 to collect_execute.
1855 (do_link): Add new parameter atsuffix.
1856 (main): Handle -dumpdir option. Skip one argument for
1857 -o, -isystem and -B options.
1858 * gcc.c (make_at_file): New helper function.
1859 (close_at_file): Use it.
1860
1861 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
1862
1863 * config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust.
1864 Amend handling for LD64_VERSION fallback defaults.
1865
1866 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
1867
1868 * config.gcc: Compute default version information
1869 from the configured target. Likewise defaults for
1870 ld64.
1871 * config/darwin10.h: Removed.
1872 * config/darwin12.h: Removed.
1873 * config/darwin9.h: Removed.
1874 * config/rs6000/darwin8.h: Removed.
1875
1876 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
1877
1878 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
1879
1880 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
1881
1882 * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here..
1883 * config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here.
1884
1885 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
1886
1887 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from
1888 here...
1889 * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here.
1890
1891 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
1892
1893 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move the spec
1894 for the Darwin10 unwinder stub from here ...
1895 * config/darwin.h (LINK_COMMAND_SPEC_A): ... to here.
1896
1897 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
1898
1899 * config/darwin.h (DSYMUTIL_SPEC): Default to DWARF
1900 (ASM_DEBUG_SPEC):Only define if the assembler supports
1901 stabs.
1902 (PREFERRED_DEBUGGING_TYPE): Default to DWARF.
1903 (DARWIN_PREFER_DWARF): Define.
1904 * config/darwin9.h (PREFERRED_DEBUGGING_TYPE): Remove.
1905 (DARWIN_PREFER_DWARF): Likewise
1906 (DSYMUTIL_SPEC): Likewise.
1907 (COLLECT_RUN_DSYMUTIL): Likewise.
1908 (ASM_DEBUG_SPEC): Likewise.
1909 (ASM_DEBUG_OPTION_SPEC): Likewise.
1910
1911 2021-01-02 Jan Hubicka <jh@suse.cz>
1912
1913 * cfg.c (free_block): ggc_free bb.
1914
1915 2021-01-01 Jakub Jelinek <jakub@redhat.com>
1916
1917 * gcc.c (process_command): Update copyright notice dates.
1918 * gcov-dump.c (print_version): Ditto.
1919 * gcov.c (print_version): Ditto.
1920 * gcov-tool.c (print_version): Ditto.
1921 * gengtype.c (create_file): Ditto.
1922 * doc/cpp.texi: Bump @copying's copyright year.
1923 * doc/cppinternals.texi: Ditto.
1924 * doc/gcc.texi: Ditto.
1925 * doc/gccint.texi: Ditto.
1926 * doc/gcov.texi: Ditto.
1927 * doc/install.texi: Ditto.
1928 * doc/invoke.texi: Ditto.
1929
1930 2021-01-01 Jakub Jelinek <jakub@redhat.com>
1931
1932 * ChangeLog-2020: Rotate ChangeLog. New file.
1933
1934 \f
1935 Copyright (C) 2021 Free Software Foundation, Inc.
1936
1937 Copying and distribution of this file, with or without modification,
1938 are permitted in any medium without royalty provided the copyright
1939 notice and this notice are preserved.