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