1 2021-01-21 Vladimir N. Makarov <vmakarov@redhat.com>
3 PR rtl-optimization/98777
4 * lra-int.h (lra_pmode_pseudo): New extern.
5 * lra.c (lra_pmode_pseudo): New global.
7 * lra-eliminations.c (eliminate_regs_in_insn): Use it.
9 2021-01-21 Ilya Leoshkevich <iii@linux.ibm.com>
11 * fwprop.c (fwprop_propagation::classify_result): Allow
12 (subreg (mem)) simplifications.
14 2021-01-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16 * config/aarch64/aarch64-simd.md (aarch64_sqdml<SBINQOPS:as>l<mode>):
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.
33 2021-01-21 Christophe Lyon <christophe.lyon@linaro.org>
35 * config/arm/arm_mve.h (__arm_vcmpneq_s8): Fix return type.
37 2021-01-21 Andrea Corallo <andrea.corallo@arm.com>
40 * doc/sourcebuild.texi (arm_thumb2_no_arm_v8_1_lob): Document.
42 2021-01-21 liuhongt <hongtao.liu@intel.com>
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
50 2021-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
52 * config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>):
53 Convert to define_insn_and_split. Split into simple move when moving
56 2021-01-20 Segher Boessenkool <segher@kernel.crashing.org>
58 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Change assert.
59 Adjust comment. Simplify code.
61 2021-01-20 Jakub Jelinek <jakub@redhat.com>
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
72 2021-01-20 Vladimir N. Makarov <vmakarov@redhat.com>
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.
78 2021-01-20 Richard Biener <rguenther@suse.de>
80 * hwint.h (add_hwi): New function.
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.
90 2021-01-20 Eugene Rozenfeld <erozen@microsoft.com>
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
96 2021-01-20 Richard Sandiford <richard.sandiford@arm.com>
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.
103 2021-01-20 Jakub Jelinek <jakub@redhat.com>
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.
111 2021-01-20 Richard Biener <rguenther@suse.de>
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.
119 2021-01-20 David Malcolm <dmalcolm@redhat.com>
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.
129 2021-01-19 Martin Sebor <msebor@redhat.com>
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.
137 2021-01-19 Richard Sandiford <richard.sandiford@arm.com>
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
148 2021-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
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.
163 2021-01-19 Richard Biener <rguenther@suse.de>
166 * ipa-modref.c (analyze_stmt): Only record a summary for a
169 2021-01-19 Richard Biener <rguenther@suse.de>
172 * tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT.
174 2021-01-19 Daniel Hellstrom <daniel@gaisler.com>
176 * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
177 built-in define __FIX_LEON3FT_TN0018.
179 2021-01-19 Richard Biener <rguenther@suse.de>
182 * tree-inline.c (tree_function_versioning): Set input_location
183 to UNKNOWN_LOCATION throughout the function.
185 2021-01-19 Tobias Burnus <tobias@codesourcery.com>
188 * omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr.
190 2021-01-19 Martin Jambor <mjambor@suse.cz>
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.
198 2021-01-19 Geng Qi <gengqi@linux.alibaba.com>
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
209 2021-01-18 Vladimir N. Makarov <vmakarov@redhat.com>
212 * ira.c (ira): Skip abnormal critical edge splitting.
214 2021-01-18 Jakub Jelinek <jakub@redhat.com>
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.
221 2021-01-18 David Edelsohn <dje.gcc@gmail.com>
223 * doc/invoke.texi (-gdwarf): TPF defaults to version 2 and AIX
224 defaults to version 4.
226 2021-01-18 David Malcolm <dmalcolm@redhat.com>
228 * attribs.h (fndecl_dealloc_argno): New decl.
229 * builtins.c (call_dealloc_argno): Split out second half of
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.
236 2021-01-17 David Edelsohn <dje.gcc@gmail.com>
238 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Override
240 * config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
242 2021-01-17 Martin Jambor <mjambor@suse.cz>
245 * cgraph.c (clone_of_p): Check also former_clone_of as we climb
248 2021-01-17 Mark Wielaard <mark@klomp.org>
250 * common.opt (gdwarf-): Init(5).
251 * doc/invoke.texi (-gdwarf): Document default to 5.
253 2021-01-16 Kwok Cheung Yeung <kcy@codesourcery.com>
256 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
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
269 * omp-low.c (scan_sharing_clauses): Setup data environment for detach
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
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.
281 (omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH. Fix
283 (walk_tree_1): Handle OMP_CLAUSE_DETACH.
285 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
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.
292 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
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
300 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
302 * config/nios2/nios2.c (nios2_custom_check_insns): Remove
303 custom instruction warnings.
305 2021-01-16 Jakub Jelinek <jakub@redhat.com>
307 PR tree-optimization/96669
308 * match.pd ((CST << x) & 1 -> x == 0): New simplification.
310 2021-01-16 Jakub Jelinek <jakub@redhat.com>
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
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.
322 2021-01-15 Carl Love <cel@us.ibm.com>
324 * config/rs6000/altivec.h (vec_mulh, vec_div, vec_dive, vec_mod):
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):
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.
353 2021-01-15 Eric Botcazou <ebotcazou@adacore.com>
355 * final.c (final_start_function_1): Reset force_source_line.
357 2021-01-15 Jakub Jelinek <jakub@redhat.com>
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.
364 2021-01-15 Jakub Jelinek <jakub@redhat.com>
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.
372 2021-01-15 Alexandre Oliva <oliva@adacore.com>
374 * opts.c (gen_command_line_string): Exclude -dumpbase-ext.
376 2021-01-15 Tamar Christina <tamar.christina@arm.com>
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.
392 2021-01-15 David Malcolm <dmalcolm@redhat.com>
396 (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
397 Escape the tempfile name when constructing the expected output.
399 2021-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
401 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlsl_hi<mode>):
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.
414 2021-01-15 Uroš Bizjak <ubizjak@gmail.com>
416 * config/i386/i386-c.c (ix86_target_macros):
417 Use cpp_define_formatted for __SIZEOF_FLOAT80__ definition.
419 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
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
428 * config/aarch64/aarch64-cc-fusion.cc: New file.
430 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
432 * recog.h (insn_change_watermark::~insn_change_watermark): Avoid
433 calling cancel_changes for changes that no longer exist.
435 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
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.
442 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
445 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
447 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
450 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
453 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
455 2021-01-15 Richard Biener <rguenther@suse.de>
457 PR tree-optimization/96376
458 * tree-vect-stmts.c (get_load_store_type): Disregard alignment
461 2021-01-15 Martin Liska <mliska@suse.cz>
463 * doc/install.texi: Document that some tests need pytest module.
464 * doc/sourcebuild.texi: Likewise.
466 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
469 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
471 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
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.
478 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
480 * config/arm/mve.md (mve_vshlq_<supf><mode>): Move to
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.
486 2021-01-15 Richard Biener <rguenther@suse.de>
488 PR tree-optimization/98685
489 * tree-vect-slp.c (vect_schedule_slp_node): Refactor handling
490 of vector extern defs.
492 2021-01-14 David Malcolm <dmalcolm@redhat.com>
495 * diagnostic.c (diagnostic_kind_text): Break out this array
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.
502 2021-01-14 David Malcolm <dmalcolm@redhat.com>
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):
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
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
533 2021-01-14 Tamar Christina <tamar.christina@arm.com>
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.
541 2021-01-14 Tamar Christina <tamar.christina@arm.com>
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.
550 2021-01-14 Tamar Christina <tamar.christina@arm.com>
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.
560 2021-01-14 Tamar Christina <tamar.christina@arm.com>
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.
571 2021-01-14 Tamar Christina <tamar.christina@arm.com>
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.
577 2021-01-14 Tamar Christina <tamar.christina@arm.com>
579 * tree-vect-slp-patterns.c (complex_add_pattern::build):
582 2021-01-14 Thomas Schwinge <thomas@codesourcery.com>
584 * config/gcn/mkoffload.c (main): Create an offload image only in
585 64-bit configurations.
587 2021-01-14 H.J. Lu <hjl.tools@gmail.com>
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.
594 2021-01-14 Uroš Bizjak <ubizjak@gmail.com>
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.
606 2021-01-14 Richard Biener <rguenther@suse.de>
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
614 2021-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
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
622 2021-01-14 Uroš Bizjak <ubizjak@gmail.com>
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.
632 2021-01-14 Jakub Jelinek <jakub@redhat.com>
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.
639 2021-01-14 Jakub Jelinek <jakub@redhat.com>
641 PR tree-optimization/96688
642 * match.pd (~(X >> Y) -> ~X >> Y): New simplification if
643 ~X can be simplified.
645 2021-01-14 Richard Sandiford <richard.sandiford@arm.com>
647 * tree-vect-stmts.c (vect_model_load_cost): Account for unused
648 IFN_LOAD_LANES results.
650 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
652 * config/aarch64/aarch64-simd.md (aarch64_<su>xtl<mode>):
654 (aarch64_xtn<mode>): Likewise.
655 * config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn):
658 * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
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.
672 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
674 * config/aarch64/aarch64-simd.md (aarch64_<su>qxtn2<mode>_le):
676 (aarch64_<su>qxtn2<mode>_be): Likewise.
677 (aarch64_<su>qxtn2<mode>): Likewise.
678 * config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2):
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
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.
690 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
692 * config/aarch64/aarch64-simd.md (aarch64_xtn2<mode>_le):
694 (aarch64_xtn2<mode>_be): Likewise.
695 (aarch64_xtn2<mode>): Likewise.
696 * config/aarch64/aarch64-simd-builtins.def (xtn2): Define
698 * config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using
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.
706 2021-01-13 Stafford Horne <shorne@gmail.com>
708 * config/or1k/or1k.h (ASM_PREFERRED_EH_DATA_FORMAT): New macro.
710 2021-01-13 Stafford Horne <shorne@gmail.com>
712 * config/or1k/linux.h (TARGET_ASM_FILE_END): Define macro.
714 2021-01-13 Stafford Horne <shorne@gmail.com>
716 * config/or1k/or1k.h (TARGET_CPU_CPP_BUILTINS): Add builtin
717 define for __or1k_hard_float__.
719 2021-01-13 Stafford Horne <shorne@gmail.com>
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.
725 2021-01-13 Jakub Jelinek <jakub@redhat.com>
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.
732 2021-01-13 Richard Biener <rguenther@suse.de>
734 PR tree-optimization/92645
735 * match.pd (BIT_FIELD_REF to conversion): Delay canonicalization
736 until after vector lowering.
738 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
740 * config/aarch64/aarch64-sve.md (fnma<mode>4): Extend from SVE_FULL_I
742 (@aarch64_pred_fnma<mode>, cond_fnma<mode>, *cond_fnma<mode>_2)
743 (*cond_fnma<mode>_4, *cond_fnma<mode>_any): Likewise.
745 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
747 * config/aarch64/aarch64-sve.md (fma<mode>4): Extend from SVE_FULL_I
749 (@aarch64_pred_fma<mode>, cond_fma<mode>, *cond_fma<mode>_2)
750 (*cond_fma<mode>_4, *cond_fma<mode>_any): Likewise.
752 2021-01-13 Richard Biener <rguenther@suse.de>
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.
762 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
764 * rtl-ssa/accesses.h (def_lookup): Fix order of comparison results.
766 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
768 * config/sh/sh.md (movsf_ie): Remove operands[2] test.
770 2021-01-13 Samuel Thibault <samuel.thibault@ens-lyon.org>
772 * config.gcc [$target == *-*-gnu*]: Enable
773 'default_gnu_indirect_function'.
775 2021-01-13 Jakub Jelinek <jakub@redhat.com>
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
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
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.
800 2021-01-13 Martin Liska <mliska@suse.cz>
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
808 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
810 * doc/invoke.texi (C++ Modules): Fix typos.
812 2021-01-13 Richard Biener <rguenther@suse.de>
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
819 2021-01-13 Jakub Jelinek <jakub@redhat.com>
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.
826 2021-01-13 Martin Liska <mliska@suse.cz>
829 * cgraphunit.c (analyze_functions): Remove dead code.
831 2021-01-13 Qian Jianhua <qianjh@cn.fujitsu.com>
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.
838 2021-01-13 Jakub Jelinek <jakub@redhat.com>
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.
847 2021-01-13 Julian Brown <julian@codesourcery.com>
849 * config/gcn/gcn.c (gcn_conditional_register_usage): Remove dead code
852 2021-01-13 Julian Brown <julian@codesourcery.com>
854 * config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live
857 2021-01-13 Julian Brown <julian@codesourcery.com>
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.
865 2021-01-13 Julian Brown <julian@codesourcery.com>
867 * config/gcn/gcn-valu.md (subdf): Rename to...
870 2021-01-12 Martin Liska <mliska@suse.cz>
872 * gcov.c (source_info::debug): Fix printf format for 32-bit hosts.
874 2021-01-12 Andrea Corallo <andrea.corallo@arm.com>
876 * function-abi.h: Fix typo.
878 2021-01-12 Christophe Lyon <christophe.lyon@linaro.org>
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.
901 2021-01-12 Vladimir N. Makarov <vmakarov@redhat.com>
904 * lra-eliminations.c (eliminate_regs_in_insn): Add transformation
905 of pattern 'plus (plus (hard reg, const), pseudo)'.
907 2021-01-12 Richard Biener <rguenther@suse.de>
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.
916 2021-01-12 Martin Liska <mliska@suse.cz>
919 * optc-save-gen.awk: Compare also n_target_save vars with
922 2021-01-12 Martin Liska <mliska@suse.cz>
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
933 2021-01-12 Jakub Jelinek <jakub@redhat.com>
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.
939 2021-01-12 Jakub Jelinek <jakub@redhat.com>
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.
947 2021-01-12 Jakub Jelinek <jakub@redhat.com>
949 * configure.ac: Ensure c/Make-lang.in comes first in @all_lang_makefrags@.
950 * configure: Regenerated.
952 2021-01-12 liuhongt <hongtao.liu@intel.com>
955 * config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS):
957 * config/i386/i386-expand.c (ix86_expand_sse_comi): Delete
960 2021-01-12 Alexandre Oliva <oliva@adacore.com>
962 * ssa-iterators.h (end_imm_use_stmt_traverse): Forward
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,
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.
978 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
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.
990 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
992 * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2): Extend from
994 (*cond_bic<mode>_any): Likewise.
996 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
998 * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart)
999 (@aarch64_pred_<MUL_HIGHPART:optab><mode>): Extend from SVE_FULL_I
1002 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
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.
1012 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
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.
1018 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
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
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.
1028 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
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
1035 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
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.
1041 2021-01-11 Martin Liska <mliska@suse.cz>
1044 * symtab-clones.h (clone_info::release): Release
1045 symtab::m_clones with ggc_delete as it's a GGC memory.
1047 2021-01-11 Matthias Klose <doko@ubuntu.com>
1049 * Makefile.in (LINK_PROGRESS): Show the link target.
1051 2021-01-11 Richard Biener <rguenther@suse.de>
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.
1057 2021-01-11 Richard Biener <rguenther@suse.de>
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.
1065 2021-01-11 Andreas Krebbel <krebbel@linux.ibm.com>
1067 * tree-ssa-forwprop.c (simplify_vector_constructor): For
1068 big-endian, use UNPACK[_FLOAT]_HI.
1070 2021-01-11 Tamar Christina <tamar.christina@arm.com>
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.
1078 2021-01-11 Tamar Christina <tamar.christina@arm.com>
1080 * tree-vect-slp-patterns.c (linear_loads_p): Fix externals.
1082 2021-01-11 Tamar Christina <tamar.christina@arm.com>
1084 * tree-vect-slp-patterns.c (is_linear_load_p): Fix ambiguity.
1086 2021-01-11 Jakub Jelinek <jakub@redhat.com>
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.
1099 2021-01-11 Jakub Jelinek <jakub@redhat.com>
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
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
1112 2021-01-11 Jakub Jelinek <jakub@redhat.com>
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.
1125 2021-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
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.
1141 2021-01-11 Martin Liska <mliska@suse.cz>
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.
1149 2021-01-11 Kewen Lin <linkw@linux.ibm.com>
1151 * ira.c (move_unallocated_pseudos): Check other_reg and skip if
1154 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
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.
1163 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
1165 * config/vax/vax.md (subst_f<cc>): Add mode to operands and
1166 `const_double_zero'.
1168 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
1170 * config/pdp11/pdp11.md (PDPfp): New mode iterator.
1171 (fcc_cc, fcc_ccnz): Use it. Add mode to `const_double_zero' and
1174 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
1176 * genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero'
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.
1182 2021-01-09 Jakub Jelinek <jakub@redhat.com>
1185 * tree-cfg.c (verify_gimple_assign_binary): Allow lhs of
1186 POINTER_DIFF_EXPR to be any integral type.
1188 2021-01-09 Jakub Jelinek <jakub@redhat.com>
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.
1196 2021-01-09 Alexandre Oliva <oliva@gnu.org>
1199 * final.c (notice_source_line): Narrow down the condition to
1200 skip a line-0 marker.
1202 2021-01-08 Sergei Trofimovich <siarheit@google.com>
1204 * ipa-modref.c (merge_call_side_effects): Fix
1205 linebreak split by reordering two print calls.
1207 2021-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
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.
1214 2021-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
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.
1222 2021-01-08 H.J. Lu <hjl.tools@gmail.com>
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
1229 2021-01-08 Richard Biener <rguenther@suse.de>
1231 * tree-ssa-sccvn.c (pass_fre::execute): Reset the SCEV hash table.
1233 2021-01-08 Richard Biener <rguenther@suse.de>
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.
1241 2021-01-08 Richard Biener <rguenther@suse.de>
1243 PR tree-optimization/98544
1244 * tree-vect-slp.c (vect_optimize_slp): Always materialize
1245 permutes at a permute node.
1247 2021-01-08 H.J. Lu <hjl.tools@gmail.com>
1250 * config/i386/i386.c (x86_function_profiler): Use R10 to call
1251 mcount in large model. Sorry for large model with PIC.
1253 2021-01-08 Jakub Jelinek <jakub@redhat.com>
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.
1268 2021-01-08 Richard Sandiford <richard.sandiford@arm.com>
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.
1274 2021-01-08 Richard Sandiford <richard.sandiford@arm.com>
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.
1280 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1282 * config/aarch64/iterators.md (Vwhalf): New iterator.
1283 * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>_3):
1285 (aarch64_<sur>adalp<mode>): ... This. Make more
1287 (<sur>sadv16qi): Adjust callsite of the above.
1288 * config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New
1290 * config/aarch64/arm_neon.h (vpadal_s8): Reimplement using
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.
1302 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1304 * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>_3):
1306 (aarch64_<su>abd<mode>): ... This.
1307 (<sur>sadv16qi): Adjust callsite of the above.
1308 * config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define
1310 * config/aarch64/arm_neon.h (vabd_s8): Reimplement using
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.
1324 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1326 * config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define
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.
1341 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
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.
1347 2021-01-08 Kito Cheng <kito.cheng@sifive.com>
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
1354 * config/riscv/riscv-subset.h (riscv_subset_list::begin): New.
1355 (riscv_subset_list::end): New.
1356 (riscv_current_subset_list): New.
1358 2021-01-08 Kito Cheng <kito.cheng@sifive.com>
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
1371 2021-01-07 Jakub Jelinek <jakub@redhat.com>
1374 * config/i386/i386.md (*bmi_blsi_<mode>_cmp, *bmi_blsi_<mode>_ccno):
1375 New define_insn patterns.
1377 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
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.
1383 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
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
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
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
1405 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
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.
1411 2021-01-07 Uroš Bizjak <ubizjak@gmail.com>
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.
1419 2021-01-07 Jakub Jelinek <jakub@redhat.com>
1421 PR tree-optimization/98568
1422 * gimple-ssa-store-merging.c (bswap_view_convert): New function.
1423 (bswap_replace): Use it.
1425 2021-01-06 Vladimir N. Makarov <vmakarov@redhat.com>
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.
1434 2021-01-06 Martin Sebor <msebor@redhat.com>
1437 * builtins.c (new_delete_mismatch_p): New overload.
1438 (new_delete_mismatch_p (tree, tree)): Call it.
1440 2021-01-06 Alexandre Oliva <oliva@adacore.com>
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.
1447 2021-01-06 Richard Biener <rguenther@suse.de>
1449 PR tree-optimization/98513
1450 * value-range.cc (intersect_ranges): Compare the upper bounds
1451 for the expected relation.
1453 2021-01-06 Gerald Pfeifer <gerald@pfeifer.com>
1456 2020-12-28 Gerald Pfeifer <gerald@pfeifer.com>
1458 * doc/standards.texi (HSAIL): Remove section.
1460 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
1462 * configure: Re-generate.
1464 2021-01-05 Jakub Jelinek <jakub@redhat.com>
1466 * doc/invoke.texi (-std=c++20): Adjust for the publication of
1467 ISO 14882:2020 standard.
1468 * doc/standards.texi: Likewise.
1470 2021-01-05 Jakub Jelinek <jakub@redhat.com>
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.
1479 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
1481 * mux-utils.h (pointer_mux::m_ptr): Tweak description of contents.
1482 * rtlanal.c (simple_regno_set): Tweak description to clarify the
1485 2021-01-05 Richard Biener <rguenther@suse.de>
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.
1492 2021-01-05 Richard Biener <rguenther@suse.de>
1494 * tree-vect-slp.c (vect_slp_region): Move debug counter
1495 to cover individual subgraphs.
1497 2021-01-05 Richard Biener <rguenther@suse.de>
1499 PR tree-optimization/98428
1500 * tree-vect-slp.c (vect_build_slp_tree_1): Properly reject
1501 vector lane extracts for loop vectorization.
1503 2021-01-05 Jakub Jelinek <jakub@redhat.com>
1505 PR tree-optimization/98514
1506 * tree-ssa-reassoc.c (bb_rank): Change type from long * to
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
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
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.
1524 2021-01-05 Jakub Jelinek <jakub@redhat.com>
1526 PR tree-optimization/96928
1527 * tree-ssa-phiopt.c (xor_replacement): New function.
1528 (tree_ssa_phiopt_worker): Call it.
1530 2021-01-05 Jakub Jelinek <jakub@redhat.com>
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.
1537 2021-01-05 Jakub Jelinek <jakub@redhat.com>
1539 PR tree-optimization/96239
1540 * gimple-ssa-store-merging.c (maybe_optimize_vector_constructor): New
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
1547 2021-01-05 Richard Biener <rguenther@suse.de>
1549 PR tree-optimization/98381
1550 * tree.c (vector_element_bits): Properly compute bool vector
1552 * tree-vect-loop.c (vectorizable_live_operation): Properly
1553 compute the last lane bit offset.
1555 2021-01-05 Uroš Bizjak <ubizjak@gmail.com>
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.
1562 2021-01-05 Uroš Bizjak <ubizjak@gmail.com>
1565 * config/i386/xopintrin.h (_mm256_cmov_si256): New.
1567 2021-01-05 H.J. Lu <hjl.tools@gmail.com>
1570 * config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned
1573 2021-01-05 Claudiu Zissulescu <claziss@synopsys.com>
1575 * config/arc/arc.md (maddsidi4_split): Use ACC_REG_FIRST.
1576 (umaddsidi4_split): Likewise.
1578 2021-01-05 liuhongt <hongtao.liu@intel.com>
1581 * config/i386/sse.md (*sse2_pmovskb_zexthisi): New
1582 define_insn_and_split for zero_extend of subreg HI of pmovskb
1584 (*sse2_pmovskb_zexthisi): Add new combine splitters for
1585 zero_extend of not of subreg HI of pmovskb result.
1587 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
1590 * explow.c (convert_memory_address_addr_space_1): Handle UNSPECs
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.
1596 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
1598 PR rtl-optimization/97144
1599 * recog.c (constrain_operands): Initialize matching_operand
1600 for each alternative, rather than only doing it once.
1602 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
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
1610 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
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
1618 2021-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1621 * configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL.
1622 * aclocal.m4, configure: Regenerate.
1623 * Makefile.in (NETLIBS): Define.
1624 (BACKEND): Remove $(CODYLIB).
1626 2021-01-05 Jakub Jelinek <jakub@redhat.com>
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.
1632 2021-01-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
1634 * tree-inline.c (expand_call_inline): Restore input_location.
1635 Return result from recursive call.
1637 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
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.
1647 2021-01-04 Richard Biener <rguenther@suse.de>
1649 PR tree-optimization/98308
1650 * tree-vect-stmts.c (vectorizable_load): Set invariant mask
1653 2021-01-04 Jakub Jelinek <jakub@redhat.com>
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.
1660 2021-01-04 Richard Biener <rguenther@suse.de>
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.
1667 2021-01-04 Matthew Malcomson <matthew.malcomson@arm.com>
1670 * doc/invoke.texi (-fsanitize=address): Fix wording describing
1671 clash with -fsanitize=hwaddress.
1673 2021-01-04 Richard Biener <rguenther@suse.de>
1675 PR tree-optimization/98282
1676 * tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on
1677 invariants as VN_NARY.
1679 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
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.
1686 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
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
1693 2021-01-04 Richard Biener <rguenther@suse.de>
1695 PR tree-optimization/98393
1696 * tree-vect-slp.c (vect_build_slp_tree): Properly zero matches
1697 when hitting the limit.
1699 2021-01-04 Richard Biener <rguenther@suse.de>
1701 PR tree-optimization/98291
1702 * tree-vect-loop.c (vectorizable_reduction): Bypass
1703 associativity check for SLP reductions with VF 1.
1705 2021-01-04 Jakub Jelinek <jakub@redhat.com>
1707 PR tree-optimization/96782
1708 * match.pd (x == ~x -> false, x != ~x -> true): New simplifications.
1710 2021-01-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
1712 * collect-utils.c (collect_execute): Check dumppfx.
1713 * collect2.c (maybe_run_lto_and_relink, do_link): Pass atsuffix
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.
1721 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
1723 * config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust.
1724 Amend handling for LD64_VERSION fallback defaults.
1726 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
1728 * config.gcc: Compute default version information
1729 from the configured target. Likewise defaults for
1731 * config/darwin10.h: Removed.
1732 * config/darwin12.h: Removed.
1733 * config/darwin9.h: Removed.
1734 * config/rs6000/darwin8.h: Removed.
1736 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
1738 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
1740 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
1742 * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here..
1743 * config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here.
1745 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
1747 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from
1749 * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here.
1751 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
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.
1757 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
1759 * config/darwin.h (DSYMUTIL_SPEC): Default to DWARF
1760 (ASM_DEBUG_SPEC):Only define if the assembler supports
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.
1771 2021-01-02 Jan Hubicka <jh@suse.cz>
1773 * cfg.c (free_block): ggc_free bb.
1775 2021-01-01 Jakub Jelinek <jakub@redhat.com>
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.
1790 2021-01-01 Jakub Jelinek <jakub@redhat.com>
1792 * ChangeLog-2020: Rotate ChangeLog. New file.
1795 Copyright (C) 2021 Free Software Foundation, Inc.
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.