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