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