1 2021-04-06 Vladimir N. Makarov <vmakarov@redhat.com>
4 * lra-constraints.c (split_reg): Don't check paradoxical_subreg_p.
5 * lra-lives.c (clear_sparseset_regnos, regnos_in_sparseset_p): New
7 (process_bb_lives): Don't update biggest mode of hard reg for
8 implicit in multi-register group. Use the new functions for
9 updating dead_set and unused_set by register notes.
11 2021-04-06 Xianmiao Qu <xianmiao_qu@c-sky.com>
13 * config/csky/csky_pipeline_ck802.md : Use insn reservation name
16 2021-04-06 H.J. Lu <hjl.tools@gmail.com>
18 * config/i386/x86-tune-costs.h (skylake_memcpy): Updated.
19 (skylake_memset): Likewise.
20 (skylake_cost): Change CLEAR_RATIO to 17.
21 * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
22 Replace m_CANNONLAKE, m_ICELAKE_CLIENT, m_ICELAKE_SERVER,
23 m_TIGERLAKE and m_SAPPHIRERAPIDS with m_SKYLAKE and m_CORE_AVX512.
25 2021-04-06 Richard Biener <rguenther@suse.de>
27 PR tree-optimization/99880
28 * tree-vect-loop.c (maybe_set_vectorized_backedge_value): Only
29 set vectorized defs of relevant PHIs.
31 2021-04-06 Richard Biener <rguenther@suse.de>
33 PR tree-optimization/99924
34 * tree-vect-slp.c (vect_bb_partition_graph_r): Do not mark
35 nodes w/o scalar stmts as visited.
37 2021-04-06 Alex Coplan <alex.coplan@arm.com>
40 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Also use base
41 PCS for [su]fix_optab.
43 2021-04-03 Iain Sandoe <iain@sandoe.co.uk>
45 * config/darwin.c (machopic_legitimize_pic_address): Check
46 that the current pic register is one of the hard reg set
47 before setting liveness.
49 2021-04-03 Iain Sandoe <iain@sandoe.co.uk>
51 * config/darwin.c (machopic_legitimize_pic_address): Fix
52 whitespace, remove unused code.
54 2021-04-03 Jakub Jelinek <jakub@redhat.com>
56 PR tree-optimization/99882
57 * gimple-ssa-store-merging.c (bswap_view_convert): Handle val with
60 2021-04-03 Jakub Jelinek <jakub@redhat.com>
62 PR rtl-optimization/99863
63 * dse.c (replace_read): Drop regs_live argument. Instead of
64 regs_live, use store_insn->fixed_regs_live if non-NULL,
65 otherwise punt if insns sequence clobbers or sets any hard
68 2021-04-03 Jakub Jelinek <jakub@redhat.com>
71 * targhooks.h (default_print_patchable_function_entry_1): Declare.
72 * targhooks.c (default_print_patchable_function_entry_1): New function,
73 copied from default_print_patchable_function_entry with an added flags
75 (default_print_patchable_function_entry): Rewritten into a small
76 wrapper around default_print_patchable_function_entry_1.
77 * config/rs6000/rs6000.c (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
79 (rs6000_print_patchable_function_entry): New function.
81 2021-04-02 Eric Botcazou <ebotcazou@adacore.com>
83 * doc/invoke.texi (fdelete-dead-exceptions): Minor tweak.
85 2021-04-01 Jason Merrill <jason@redhat.com>
88 * common.opt: Document v15 and v16.
90 2021-04-01 Richard Biener <rguenther@suse.de>
92 PR tree-optimization/99863
93 * gimplify.c (gimplify_init_constructor): Recompute vector
96 2021-04-01 Jakub Jelinek <jakub@redhat.com>
98 * doc/extend.texi (symver attribute): Fix up syntax errors
101 2021-04-01 Jakub Jelinek <jakub@redhat.com>
103 PR tree-optimization/96573
104 * gimple-ssa-store-merging.c (init_symbolic_number): Handle
107 2021-04-01 Richard Biener <rguenther@suse.de>
109 PR tree-optimization/99856
110 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Promote
111 precision to vector element precision.
113 2021-04-01 Martin Jambor <mjambor@suse.cz>
115 PR tree-optimization/97009
116 * tree-sra.c (access_or_its_child_written): New function.
117 (propagate_subaccesses_from_rhs): Use it instead of a simple grp_write
120 2021-03-31 Jan Hubicka <hubicka@ucw.cz>
123 * cif-code.def (USES_COMDAT_LOCAL): Make CIF_FINAL_NORMAL.
125 2021-03-31 Pat Haugen <pthaugen@linux.ibm.com>
128 * config/rs6000/altivec.md (xxspltiw_v4si, xxspltiw_v4sf_inst,
129 xxspltidp_v2df_inst, xxsplti32dx_v4si_inst, xxsplti32dx_v4sf_inst,
130 xxblend_<mode>, xxpermx_inst, xxeval): Mark prefixed.
131 * config/rs6000/mma.md (mma_<vvi4i4i8>, mma_<avvi4i4i8>,
132 mma_<vvi4i4i2>, mma_<avvi4i4i2>, mma_<vvi4i4>, mma_<avvi4i4>,
133 mma_<pvi4i2>, mma_<apvi4i2>, mma_<vvi4i4i4>, mma_<avvi4i4i4>):
135 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Adjust test.
136 * config/rs6000/rs6000.md (define_attr "maybe_prefixed"): New.
137 (define_attr "prefixed"): Update initializer.
139 2021-03-31 Jakub Jelinek <jakub@redhat.com>
142 * dwarf2out.c (debug_ranges_dwo_section): New variable.
143 (DW_RANGES_IDX_SKELETON): Define.
144 (struct dw_ranges): Add begin_entry and end_entry members.
145 (DEBUG_DWO_RNGLISTS_SECTION): Define.
146 (add_ranges_num): Adjust r initializer for addition of *_entry
148 (add_ranges_by_labels): For -gsplit-dwarf and force_direct,
149 set idx to DW_RANGES_IDX_SKELETON.
150 (use_distinct_base_address_for_range): New function.
151 (index_rnglists): Don't set r->idx if it is equal to
152 DW_RANGES_IDX_SKELETON. Initialize r->begin_entry and
153 r->end_entry for -gsplit-dwarf if those will be needed by
155 (output_rnglists): Add DWO argument. If true, switch to
156 debug_ranges_dwo_section rather than debug_ranges_section.
157 Adjust l1/l2 label indexes. Only output the offset table when
158 dwo is true and don't include in there the skeleton range
159 entry if present. For -gsplit-dwarf, skip ranges that belong
160 to the other rnglists section. Change return type from void
161 to bool and return true if there are any range entries for
162 the other section. For dwarf_split_debug_info use
163 DW_RLE_startx_endx, DW_RLE_startx_length and DW_RLE_base_addressx
164 entries instead of DW_RLE_start_end, DW_RLE_start_length and
165 DW_RLE_base_address. Use use_distinct_base_address_for_range.
166 (init_sections_and_labels): Initialize debug_ranges_dwo_section
167 if -gsplit-dwarf and DWARF >= 5. Adjust ranges_section_label
168 and range_base_label indexes.
169 (dwarf2out_finish): Call index_rnglists earlier before finalizing
170 .debug_addr. Never emit DW_AT_rnglists_base attribute. For
171 -gsplit-dwarf and DWARF >= 5 call output_rnglists up to twice
172 with different dwo arguments.
173 (dwarf2out_c_finalize): Clear debug_ranges_dwo_section.
175 2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
177 PR tree-optimization/98268
178 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Call
179 recompute_tree_invariant_for_addr_expr after successfully
180 folding a TARGET_MEM_REF that occurs inside an ADDR_EXPR.
182 2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
184 PR tree-optimization/99726
185 * tree-data-ref.c (create_intersect_range_checks_index): Bail
186 out if there is more than one access function SCEV for the loop
189 2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
191 PR rtl-optimization/97141
192 PR rtl-optimization/98726
193 * emit-rtl.c (valid_for_const_vector_p): Return true for
195 * rtx-vector-builder.h (rtx_vector_builder::step): Return a
196 poly_wide_int instead of a wide_int.
197 (rtx_vector_builder::apply_set): Take a poly_wide_int instead
199 * rtx-vector-builder.c (rtx_vector_builder::apply_set): Likewise.
200 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Return
201 false for CONST_VECTORs that cannot be forced to memory.
202 * config/aarch64/aarch64-simd.md (mov<mode>): If a CONST_VECTOR
203 is too complex to force to memory, build it up from individual
206 2021-03-31 Jan Hubicka <jh@suse.cz>
209 * cgraph.c (cgraph_node::release_body): Fix overactive check.
211 2021-03-31 Christophe Lyon <christophe.lyon@linaro.org>
214 * config/arm/vec-common.md (mul<mode>3): Disable on iwMMXT, expect
217 2021-03-31 H.J. Lu <hjl.tools@gmail.com>
219 * config/i386/i386-expand.c (expand_set_or_cpymem_via_rep):
220 For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, don't convert QImode
222 (decide_alg): For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, use
223 "rep movsb/stosb" only for known sizes.
224 * config/i386/i386-options.c (processor_cost_table): Use Ice
225 Lake cost for Cannon Lake, Ice Lake, Tiger Lake, Sapphire
226 Rapids and Alder Lake.
227 * config/i386/i386.h (TARGET_PREFER_KNOWN_REP_MOVSB_STOSB): New.
228 * config/i386/x86-tune-costs.h (icelake_memcpy): New.
229 (icelake_memset): Likewise.
230 (icelake_cost): Likewise.
231 * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
234 2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
237 * config/aarch64/aarch64.c
238 (aarch64_vectorize_preferred_vector_alignment): Query the size
239 of the provided SVE vector; do not assume that all SVE vectors
242 2021-03-31 Jan Hubicka <jh@suse.cz>
245 * cgraph.c (cgraph_node::release_body): Remove all callers and
247 * cgraphclones.c (cgraph_node::materialize_clone): Do not do it here.
248 * cgraphunit.c (cgraph_node::expand): And here.
250 2021-03-31 Martin Liska <mliska@suse.cz>
252 * ipa-modref.c (analyze_ssa_name_flags): Fix coding style
253 and one negated condition.
255 2021-03-31 Jakub Jelinek <jakub@redhat.com>
256 Richard Sandiford <richard.sandiford@arm.com>
259 * config/aarch64/aarch64.md (*add<mode>3_poly_1): Swap Uai and Uav
260 constraints on operands[2] and similarly 0 and rk constraints
261 on operands[1] corresponding to that.
263 2021-03-31 Jakub Jelinek <jakub@redhat.com>
266 * configure.ac (HAVE_LD_BROKEN_PE_DWARF5): New AC_DEFINE if PECOFF
267 linker doesn't support DWARF sections new in DWARF5.
268 * config/i386/i386-options.c (ix86_option_override_internal): Default
269 to dwarf_version 4 if HAVE_LD_BROKEN_PE_DWARF5 for TARGET_PECOFF
271 * config.in: Regenerated.
272 * configure: Regenerated.
274 2021-03-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
277 * config/aarch64/aarch64.c (aarch64_analyze_loop_vinfo): Check for
278 available issue_info before using it.
280 2021-03-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
283 * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): Do not allow zero
286 2021-03-30 Xionghu Luo <luoxhu@linux.ibm.com>
289 * config/rs6000/altivec.md (altivec_lvsl_reg): Change to ...
290 (altivec_lvsl_reg_<mode>): ... this.
291 (altivec_lvsr_reg): Change to ...
292 (altivec_lvsr_reg_<mode>): ... this.
293 * config/rs6000/predicates.md (vec_set_index_operand): New.
294 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
295 Enable 32bit variable vec_insert for all TARGET_VSX.
296 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
297 Enable 32bit variable vec_insert for p9 and above.
298 (rs6000_expand_vector_set_var_p8): Rename to ...
299 (rs6000_expand_vector_set_var_p7): ... this.
300 (rs6000_expand_vector_set): Use TARGET_VSX and adjust assert
302 * config/rs6000/vector.md (vec_set<mode>): Use vec_set_index_operand.
303 * config/rs6000/vsx.md (xl_len_r): Use gen_altivec_lvsl_reg_di and
304 gen_altivec_lvsr_reg_di.
306 2021-03-30 H.J. Lu <hjl.tools@gmail.com>
309 * config/i386/ia32intrin.h (__rdtsc): Defined as macro.
310 (__rdtscp): Likewise.
312 2021-03-30 Tamar Christina <tamar.christina@arm.com>
314 PR tree-optimization/99825
315 * tree-vect-slp-patterns.c (vect_check_evenodd_blend):
316 Reject non-mult 2 lanes.
318 2021-03-30 Richard Earnshaw <rearnsha@arm.com>
321 * config/arm/arm.c (arm_file_start): Fix emission of
322 Tag_ABI_VFP_args attribute.
324 2021-03-30 Richard Biener <rguenther@suse.de>
326 PR tree-optimization/99824
327 * stor-layout.c (set_min_and_max_values_for_integral_type):
328 Assert the precision is within the bounds of
329 WIDE_INT_MAX_PRECISION.
330 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use
331 the outermost component ref only to lower the access size
332 and initialize that from the access type.
334 2021-03-30 Richard Sandiford <richard.sandiford@arm.com>
337 * config/aarch64/aarch64.md (mov<mode>): Pass multi-instruction
338 CONST_INTs to aarch64_expand_mov_immediate when called after RA.
340 2021-03-30 Mihailo Stojanovic <mihailo.stojanovic@typhoon-hil.com>
342 * config/aarch64/aarch64.md
343 (<optab>_trunc<fcvt_target><GPI:mode>2): Set the "arch"
344 attribute to disambiguate between SIMD and FP variants of the
347 2021-03-29 Jan Hubicka <hubicka@ucw.cz>
349 * ipa-modref.c (merge_call_lhs_flags): Correct handling of deref.
350 (analyze_ssa_name_flags): Fix typo in comment.
352 2021-03-29 Alex Coplan <alex.coplan@arm.com>
355 * config/aarch64/aarch64-sve-builtins.cc
356 (function_builder::add_function): Add placeholder_p argument, use
357 placeholder decls if this is set.
358 (function_builder::add_unique_function): Instead of conditionally adding
359 direct overloads, unconditionally add either a direct overload or a
361 (function_builder::add_overloaded_function): Set placeholder_p if we're
362 using C++ overloads. Use the obstack for string storage instead
363 of relying on the tree nodes.
364 (function_builder::add_overloaded_functions): Don't return early for
365 m_direct_overloads: we need to add placeholders.
366 * config/aarch64/aarch64-sve-builtins.h
367 (function_builder::add_function): Add placeholder_p argument.
369 2021-03-29 Richard Biener <rguenther@suse.de>
371 PR tree-optimization/99807
372 * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Move
373 assert below VEC_PERM handling.
375 2021-03-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
378 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Use
379 aarch64_simd_or_scalar_imm_zero to match zeroes. Remove pattern
380 matching const_int 0.
381 (move_lo_quad_internal_be_<mode>): Likewise.
382 (move_lo_quad_<mode>): Update for the above.
383 * config/aarch64/iterators.md (VQ_2E): Delete.
385 2021-03-29 Jakub Jelinek <jakub@redhat.com>
387 PR tree-optimization/99777
388 * fold-const.c (extract_muldiv_1): For conversions, punt on casts from
389 types other than scalar integral types.
391 2021-03-28 David Edelsohn <dje.gcc@gmail.com>
393 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Do not add
394 XCOFF TLS reloc decorations.
396 2021-03-28 Gerald Pfeifer <gerald@pfeifer.com>
398 * doc/analyzer.texi (Analyzer Internals): Update link to
399 "A Memory Model for Static Analysis of C Programs".
401 2021-03-26 David Edelsohn <dje.gcc@gmail.com>
403 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Call function.
404 * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align):
406 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align): New.
407 (rs6000_special_round_type_align): Recursively check innermost first
410 2021-03-26 Jakub Jelinek <jakub@redhat.com>
413 * dwarf2out.h (struct dw_fde_node): Add rule18 member.
414 * dwarf2cfi.c (dwarf2out_frame_debug_expr): When handling (set hfp sp)
415 assignment with drap_reg active, queue reg save for hfp with offset 0
416 and flush queued reg saves. When handling a push with rule18,
417 defer queueing reg save for hfp and just assert the offset is 0.
418 (scan_trace): Assert that fde->rule18 is false.
420 2021-03-26 Vladimir Makarov <vmakarov@redhat.com>
423 * ira-costs.c (record_reg_classes): Put case with
424 CT_RELAXED_MEMORY adjacent to one with CT_MEMORY.
425 * ira.c (ira_setup_alts): Ditto.
426 * lra-constraints.c (process_alt_operands): Ditto.
427 * recog.c (asm_operand_ok): Ditto.
428 * reload.c (find_reloads): Ditto.
430 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
432 * config/aarch64/aarch64-protos.h
433 (cpu_addrcost_table::post_modify_ld3_st3): New member variable.
434 (cpu_addrcost_table::post_modify_ld4_st4): Likewise.
435 * config/aarch64/aarch64.c (generic_addrcost_table): Update
436 accordingly, using the same costs as for post_modify.
437 (exynosm1_addrcost_table, xgene1_addrcost_table): Likewise.
438 (thunderx2t99_addrcost_table, thunderx3t110_addrcost_table):
439 (tsv110_addrcost_table, qdf24xx_addrcost_table): Likewise.
440 (a64fx_addrcost_table): Likewise.
441 (neoversev1_addrcost_table): New.
442 (neoversev1_tunings): Use neoversev1_addrcost_table.
443 (aarch64_address_cost): Use the new post_modify costs for CImode
446 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
448 * config/aarch64/aarch64.opt
449 (-param=aarch64-loop-vect-issue-rate-niters=): New parameter.
450 * doc/invoke.texi: Document it.
451 * config/aarch64/aarch64-protos.h (aarch64_base_vec_issue_info)
452 (aarch64_scalar_vec_issue_info, aarch64_simd_vec_issue_info)
453 (aarch64_advsimd_vec_issue_info, aarch64_sve_vec_issue_info)
454 (aarch64_vec_issue_info): New structures.
455 (cpu_vector_cost): Write comments above the variables rather
457 (cpu_vector_cost::issue_info): New member variable.
458 * config/aarch64/aarch64.c: Include gimple-pretty-print.h
459 and tree-ssa-loop-niter.h.
460 (generic_vector_cost, a64fx_vector_cost, qdf24xx_vector_cost)
461 (thunderx_vector_cost, tsv110_vector_cost, cortexa57_vector_cost)
462 (exynosm1_vector_cost, xgene1_vector_cost, thunderx2t99_vector_cost)
463 (thunderx3t110_vector_cost): Initialize issue_info to null.
464 (neoversev1_scalar_issue_info, neoversev1_advsimd_issue_info)
465 (neoversev1_sve_issue_info, neoversev1_vec_issue_info): New structures.
466 (neoversev1_vector_cost): Use them.
467 (aarch64_vec_op_count, aarch64_sve_op_count): New structures.
468 (aarch64_vector_costs::saw_sve_only_op): New member variable.
469 (aarch64_vector_costs::num_vector_iterations): Likewise.
470 (aarch64_vector_costs::scalar_ops): Likewise.
471 (aarch64_vector_costs::advsimd_ops): Likewise.
472 (aarch64_vector_costs::sve_ops): Likewise.
473 (aarch64_vector_costs::seen_loads): Likewise.
474 (aarch64_simd_vec_costs_for_flags): New function.
475 (aarch64_analyze_loop_vinfo): Initialize num_vector_iterations.
476 Count the number of predicate operations required by SVE WHILE
478 (aarch64_comparison_type, aarch64_multiply_add_p): New functions.
479 (aarch64_sve_only_stmt_p, aarch64_in_loop_reduction_latency): Likewise.
480 (aarch64_count_ops): Likewise.
481 (aarch64_add_stmt_cost): Record whether see an SVE operation
482 that cannot currently be implementing using Advanced SIMD.
483 Record issue information about the scalar, Advanced SIMD
484 and (where relevant) SVE versions of a loop.
485 (aarch64_vec_op_count::dump): New function.
486 (aarch64_sve_op_count::dump): Likewise.
487 (aarch64_estimate_min_cycles_per_iter): Likewise.
488 (aarch64_adjust_body_cost): If issue information is available,
489 try to compare the issue rates of the various loop implementations
490 and increase or decrease the vector body cost accordingly.
492 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
494 * config/aarch64/aarch64.c (aarch64_detect_vector_stmt_subtype):
495 Assume a zero cost for induction phis.
497 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
499 * config/aarch64/aarch64.c (aarch64_embedded_comparison_type): New
501 (aarch64_adjust_stmt_cost): Add the costs of embedded scalar and
504 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
506 * config/aarch64/aarch64.c (aarch64_detect_scalar_stmt_subtype):
508 (aarch64_add_stmt_cost): Call it.
510 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
512 * config/aarch64/aarch64-tuning-flags.def (matched_vector_throughput):
513 New tuning parameter.
514 * config/aarch64/aarch64.c (neoversev1_tunings): Use it.
515 (aarch64_estimated_sve_vq): New function.
516 (aarch64_vector_costs::analyzed_vinfo): New member variable.
517 (aarch64_vector_costs::is_loop): Likewise.
518 (aarch64_vector_costs::unrolled_advsimd_niters): Likewise.
519 (aarch64_vector_costs::unrolled_advsimd_stmts): Likewise.
520 (aarch64_record_potential_advsimd_unrolling): New function.
521 (aarch64_analyze_loop_vinfo, aarch64_analyze_bb_vinfo): Likewise.
522 (aarch64_add_stmt_cost): Call aarch64_analyze_loop_vinfo or
523 aarch64_analyze_bb_vinfo on the first use of a costs structure.
524 Detect whether we're vectorizing a loop for SVE that might be
525 completely unrolled if it used Advanced SIMD instead.
526 (aarch64_adjust_body_cost_for_latency): New function.
527 (aarch64_finish_cost): Call it.
529 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
531 * config/aarch64/aarch64.c (aarch64_vector_costs): New structure.
532 (aarch64_init_cost): New function.
533 (aarch64_add_stmt_cost): Use aarch64_vector_costs instead of
534 the default unsigned[3].
535 (aarch64_finish_cost, aarch64_destroy_cost_data): New functions.
536 (TARGET_VECTORIZE_INIT_COST): Override.
537 (TARGET_VECTORIZE_FINISH_COST): Likewise.
538 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
540 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
542 * config/aarch64/aarch64.c (neoversev1_advsimd_vector_cost)
543 (neoversev1_sve_vector_cost): New cost structures.
544 (neoversev1_vector_cost): Likewise.
545 (neoversev1_tunings): Use them. Enable use_new_vector_costs.
547 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
549 * config/aarch64/aarch64-protos.h
550 (sve_vec_cost::scatter_store_elt_cost): New member variable.
551 * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
552 accordingly, taking the cost from the cost of a scalar_store.
553 (a64fx_sve_vector_cost): Likewise.
554 (aarch64_detect_vector_stmt_subtype): Detect scatter stores.
556 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
558 * config/aarch64/aarch64-protos.h
559 (simd_vec_cost::store_elt_extra_cost): New member variable.
560 * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
561 accordingly, using the vec_to_scalar cost for the new field.
562 (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
563 (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
564 (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
565 (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
566 (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
567 (thunderx3t110_advsimd_vector_cost): Likewise.
568 (aarch64_detect_vector_stmt_subtype): Detect single-element stores.
570 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
572 * config/aarch64/aarch64-protos.h (simd_vec_cost::ld2_st2_permute_cost)
573 (simd_vec_cost::ld3_st3_permute_cost): New member variables.
574 (simd_vec_cost::ld4_st4_permute_cost): Likewise.
575 * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
576 accordingly, using zero for the new costs.
577 (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
578 (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
579 (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
580 (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
581 (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
582 (thunderx3t110_advsimd_vector_cost): Likewise.
583 (aarch64_ld234_st234_vectors): New function.
584 (aarch64_adjust_stmt_cost): Likewise.
585 (aarch64_add_stmt_cost): Call aarch64_adjust_stmt_cost if using
586 the new vector costs.
588 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
590 * config/aarch64/aarch64-protos.h (sve_vec_cost): Turn into a
591 derived class of simd_vec_cost. Add information about CLAST[AB]
592 and FADDA instructions.
593 * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
594 accordingly, using the vec_to_scalar costs for the new fields.
595 (a64fx_sve_vector_cost): Likewise.
596 (aarch64_reduc_type): New function.
597 (aarch64_sve_in_loop_reduction_latency): Likewise.
598 (aarch64_detect_vector_stmt_subtype): Take a vinfo parameter.
599 Use aarch64_sve_in_loop_reduction_latency to handle SVE reductions
600 that occur in the loop body.
601 (aarch64_add_stmt_cost): Update call accordingly.
603 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
605 * config/aarch64/aarch64-tuning-flags.def (use_new_vector_costs):
607 * config/aarch64/aarch64-protos.h (simd_vec_cost): Put comments
608 above the fields rather than to the right.
609 (simd_vec_cost::reduc_i8_cost): New member variable.
610 (simd_vec_cost::reduc_i16_cost): Likewise.
611 (simd_vec_cost::reduc_i32_cost): Likewise.
612 (simd_vec_cost::reduc_i64_cost): Likewise.
613 (simd_vec_cost::reduc_f16_cost): Likewise.
614 (simd_vec_cost::reduc_f32_cost): Likewise.
615 (simd_vec_cost::reduc_f64_cost): Likewise.
616 * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
617 accordingly, using the vec_to_scalar_cost for the new fields.
618 (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
619 (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
620 (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
621 (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
622 (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
623 (thunderx3t110_advsimd_vector_cost): Likewise.
624 (aarch64_use_new_vector_costs_p): New function.
625 (aarch64_simd_vec_costs): New function, split out from...
626 (aarch64_builtin_vectorization_cost): ...here.
627 (aarch64_is_reduction): New function.
628 (aarch64_detect_vector_stmt_subtype): Likewise.
629 (aarch64_add_stmt_cost): Call aarch64_detect_vector_stmt_subtype if
630 using the new vector costs.
632 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
635 * tree-emutls.c (get_emutls_init_templ_addr): Mark initializer of weak
636 TLS declarations as public.
638 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
640 * config/aarch64/aarch64-d.c (IN_TARGET_CODE): Define.
641 * config/arm/arm-d.c (IN_TARGET_CODE): Likewise.
642 * config/i386/i386-d.c (IN_TARGET_CODE): Likewise.
643 * config/mips/mips-d.c (IN_TARGET_CODE): Likewise.
644 * config/pa/pa-d.c (IN_TARGET_CODE): Likewise.
645 * config/riscv/riscv-d.c (IN_TARGET_CODE): Likewise.
646 * config/rs6000/rs6000-d.c (IN_TARGET_CODE): Likewise.
647 * config/s390/s390-d.c (IN_TARGET_CODE): Likewise.
648 * config/sparc/sparc-d.c (IN_TARGET_CODE): Likewise.
650 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
653 * config.gcc (*-*-cygwin*): Add winnt-d.o
654 (*-*-mingw*): Likewise.
655 * config/i386/cygwin.h (EXTRA_TARGET_D_OS_VERSIONS): New macro.
656 * config/i386/mingw32.h (EXTRA_TARGET_D_OS_VERSIONS): Likewise.
657 * config/i386/t-cygming: Add winnt-d.o.
658 * config/i386/winnt-d.c: New file.
660 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
662 * config/freebsd-d.c: Include memmodel.h.
664 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
667 * config.gcc (*-*-openbsd*): Add openbsd-d.o.
668 * config/t-openbsd: Add openbsd-d.o.
669 * config/openbsd-d.c: New file.
671 2021-03-25 Stam Markianos-Wright <stam.markianos-wright@arm.com>
673 PR tree-optimization/96974
674 * tree-vect-stmts.c (vect_get_vector_types_for_stmt): Replace assert
677 2021-03-25 H.J. Lu <hjl.tools@gmail.com>
680 2021-03-25 H.J. Lu <hjl.tools@gmail.com>
684 * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
685 always_inline in system headers.
687 2021-03-25 Kewen Lin <linkw@linux.ibm.com>
689 * tree-vect-loop.c (vect_model_reduction_cost): Init inside_cost.
691 2021-03-25 Jakub Jelinek <jakub@redhat.com>
694 * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF_SAME_FIELD.
695 * fold-const.c (operand_compare::operand_equal_p): Don't compare
696 field offsets if OEP_ADDRESS_OF_SAME_FIELD.
698 2021-03-25 H.J. Lu <hjl.tools@gmail.com>
702 * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
703 always_inline in system headers.
705 2021-03-25 Richard Biener <rguenther@suse.de>
707 PR tree-optimization/99746
708 * tree-vect-slp-patterns.c (complex_pattern::build): Do not mark
709 the scalar stmt as patterned. Instead set up required things
712 2021-03-25 Xionghu Luo <luoxhu@linux.ibm.com>
714 * config/rs6000/rs6000.c (power8_costs): Change l2 cache
717 2021-03-24 Martin Liska <mliska@suse.cz>
720 * common/config/i386/i386-common.c (ARRAY_SIZE): Fix off-by-one
722 * config/i386/i386-options.c (ix86_option_override_internal):
725 2021-03-24 Martin Jambor <mjambor@suse.cz>
728 * ipa-cp.c (initialize_node_lattices): Mark as bottom all
729 parameters with unknown type.
730 (ipacp_value_safe_for_type): New function.
731 (propagate_vals_across_arith_jfunc): Verify that the constant type
732 can be used for a type of the formal parameter.
733 (propagate_vals_across_ancestor): Likewise.
734 (propagate_scalar_across_jump_function): Likewise. Pass the type
735 also to propagate_vals_across_ancestor.
737 2021-03-24 Christophe Lyon <christophe.lyon@linaro.org>
740 * config/arm/mve.md (movmisalign<mode>_mve_store): Use Ux
742 (movmisalign<mode>_mve_load): Likewise.
744 2021-03-24 Jakub Jelinek <jakub@redhat.com>
747 * config/arm/vec-common.md (one_cmpl<mode>2, neg<mode>2,
748 movmisalign<mode>): Disable expanders for TARGET_REALLY_IWMMXT.
750 2021-03-24 Alexandre Oliva <oliva@adacore.com>
752 * doc/sourcebuild.texi (sysconf): New effective target.
754 2021-03-24 Alexandre Oliva <oliva@adacore.com>
756 * config/i386/predicates.md (reg_or_const_vec_operand): New.
757 * config/i386/sse.md (ssse3_pshufbv8qi3): Add an expander for
758 the now *-prefixed insn_and_split, turn the splitter const vec
759 into an input for the insn, making it an ignored immediate for
760 non-split cases, and loaded into the scratch register
763 2021-03-23 Vladimir N. Makarov <vmakarov@redhat.com>
766 * config/aarch64/constraints.md (Utq, UOb, UOh, UOw, UOd, UOty):
767 Use define_relaxed_memory_constraint for them.
769 2021-03-23 Iain Sandoe <iain@sandoe.co.uk>
772 * config/host-darwin.c (darwin_gt_pch_use_address): Add a
773 colon to the diagnostic message.
775 2021-03-23 Ilya Leoshkevich <iii@linux.ibm.com>
777 * fwprop.c (fwprop_propagation::fwprop_propagation): Look at
779 (try_fwprop_subst_note): Use set_info instead of insn_info.
780 (try_fwprop_subst_pattern): Likewise.
781 (try_fwprop_subst_notes): Likewise.
782 (try_fwprop_subst): Likewise.
783 (forward_propagate_subreg): Likewise.
784 (forward_propagate_and_simplify): Likewise.
785 (forward_propagate_into): Likewise.
786 * rtl-ssa/accesses.h (set_info::single_nondebug_use) New
788 (set_info::single_nondebug_insn_use): Likewise.
789 (set_info::single_phi_use): Likewise.
790 * rtl-ssa/member-fns.inl (set_info::single_nondebug_use) New
792 (set_info::single_nondebug_insn_use): Likewise.
793 (set_info::single_phi_use): Likewise.
795 2021-03-23 Christophe Lyon <christophe.lyon@linaro.org>
797 * doc/sourcebuild.texi (arm_dsp_ok, arm_dsp): Document.
799 2021-03-23 Jakub Jelinek <jakub@redhat.com>
802 * config/aarch64/aarch64.c (aarch64_add_offset): Tell
803 expand_mult to perform an unsigned rather than a signed
806 2021-03-23 H.J. Lu <hjl.tools@gmail.com>
809 * config/i386/cpuid.h (__cpuid): Add __volatile__.
810 (__cpuid_count): Likewise.
812 2021-03-23 Richard Biener <rguenther@suse.de>
814 PR tree-optimization/99721
815 * tree-vect-slp.c (vect_slp_analyze_node_operations):
816 Make sure we can schedule the node.
818 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
820 * config/riscv/riscv.c (riscv_subword): Take endianness into
821 account when calculating the byte offset.
823 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
825 * config/riscv/predicates.md (subreg_lowpart_operator): New predicate
826 * config/riscv/riscv.md (*addsi3_extended2, *subsi3_extended2)
827 (*negsi2_extended2, *mulsi3_extended2, *<optab>si3_mask)
828 (*<optab>si3_mask_1, *<optab>di3_mask, *<optab>di3_mask_1)
829 (*<optab>si3_extend_mask, *<optab>si3_extend_mask_1): Use
830 new predicate "subreg_lowpart_operator"
832 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
834 * config/riscv/riscv.c (riscv_swap_instruction): New function
835 to byteswap an SImode rtx containing an instruction.
836 (riscv_trampoline_init): Byteswap the generated instructions
839 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
841 * common/config/riscv/riscv-common.c
842 (TARGET_DEFAULT_TARGET_FLAGS): Set default endianness.
843 * config.gcc (riscv32be-*, riscv64be-*): Set
844 TARGET_BIG_ENDIAN_DEFAULT to 1.
845 * config/riscv/elf.h (LINK_SPEC): Change -melf* value
846 depending on default endianness.
847 * config/riscv/freebsd.h (LINK_SPEC): Likewise.
848 * config/riscv/linux.h (LINK_SPEC): Likewise.
849 * config/riscv/riscv.c (TARGET_DEFAULT_TARGET_FLAGS): Set
851 * config/riscv/riscv.h (DEFAULT_ENDIAN_SPEC): New macro.
853 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
855 * config/riscv/elf.h (LINK_SPEC): Pass linker endianness flag.
856 * config/riscv/freebsd.h (LINK_SPEC): Likewise.
857 * config/riscv/linux.h (LINK_SPEC): Likewise.
858 * config/riscv/riscv.h (ASM_SPEC): Pass -mbig-endian and
860 (BYTES_BIG_ENDIAN): Handle big endian.
861 (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
862 * config/riscv/riscv.opt (-mbig-endian, -mlittle-endian): New
864 * doc/invoke.texi (-mbig-endian, -mlittle-endian): Document.
866 2021-03-23 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
868 * regcprop.c (find_oldest_value_reg): Ask target whether
869 different mode is fine for replacement register.
871 2021-03-23 Aldy Hernandez <aldyh@redhat.com>
873 PR tree-optimization/99296
874 * value-range.cc (irange::irange_set_1bit_anti_range): New.
875 (irange::irange_set_anti_range): Call irange_set_1bit_anti_range
876 * value-range.h (irange::irange_set_1bit_anti_range): New.
878 2021-03-22 Vladimir N. Makarov <vmakarov@redhat.com>
881 * config/aarch64/constraints.md (UtQ): Use
882 define_relaxed_memory_constraint for it.
883 * doc/md.texi (define_relaxed_memory_constraint): Describe it.
884 * genoutput.c (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
885 * genpreds.c (constraint_data): Add bitfield is_relaxed_memory.
886 (have_relaxed_memory_constraints): New static var.
887 (relaxed_memory_start, relaxed_memory_end): Ditto.
888 (add_constraint): Add arg is_relaxed_memory. Check name for
889 relaxed memory. Set up is_relaxed_memory in constraint_data and
890 have_relaxed_memory_constraints. Adjust calls.
891 (choose_enum_order): Process relaxed memory.
892 (write_tm_preds_h): Ditto.
893 (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
894 * gensupport.c (process_rtx): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
895 * ira-costs.c (record_reg_classes): Process CT_RELAXED_MEMORY.
896 * ira-lives.c (single_reg_class): Use
897 insn_extra_relaxed_memory_constraint.
898 * ira.c (ira_setup_alts): CT_RELAXED_MEMORY.
899 * lra-constraints.c (valid_address_p): Use
900 insn_extra_relaxed_memory_constraint instead of other memory
902 (process_alt_operands): Process CT_RELAXED_MEMORY.
903 (curr_insn_transform): Use insn_extra_relaxed_memory_constraint.
904 * recog.c (asm_operand_ok, preprocess_constraints): Process
906 * reload.c (find_reloads): Ditto.
907 * rtl.def (DEFINE_RELAXED_MEMORY_CONSTRAINT): New.
908 * stmt.c (parse_input_constraint): Use
909 insn_extra_relaxed_memory_constraint.
911 2021-03-22 Segher Boessenkool <segher@kernel.crashing.org>
914 * ubsan.c (ubsan_instrument_float_cast): Don't test for unordered if
917 2021-03-22 Alex Coplan <alex.coplan@arm.com>
920 * config/arm/arm-protos.h (neon_make_constant): Add generate
921 argument to guard emitting insns, default to true.
922 * config/arm/arm.c (arm_legitimate_constant_p_1): Reject
923 CONST_VECTORs which neon_make_constant can't handle.
924 (neon_vdup_constant): Add generate argument, avoid emitting
925 insns if it's not set.
926 (neon_make_constant): Plumb new generate argument through.
927 * config/arm/constraints.md (Ui): New. Use it...
928 * config/arm/mve.md (*mve_mov<mode>): ... here.
929 * config/arm/vec-common.md (movv8hf): Use neon_make_constant to
930 synthesize constants.
932 2021-03-22 Richard Biener <rguenther@suse.de>
934 * debug.h: Add deprecation warning.
936 2021-03-22 Richard Biener <rguenther@suse.de>
938 PR tree-optimization/99694
939 * tree-ssa-sccvn.c (visit_phi): Ignore edges with the
942 2021-03-22 Kito Cheng <kito.cheng@sifive.com>
945 * config/riscv/riscv.c (riscv_expand_block_move): Get RTL value
948 2021-03-22 Jakub Jelinek <jakub@redhat.com>
952 * dwarf2out.c (get_full_len): Use get_precision rather than
954 (add_const_value_attribute): Make sure add_AT_wide argument has
955 precision prec rather than some very wide one.
957 2021-03-22 Kewen Lin <linkw@linux.ibm.com>
959 * config/rs6000/rs6000.md (*rotldi3_insert_sf,
960 *mov<SFDF:mode><SFDF2:mode>cc_p9, floatsi<mode>2_lfiwax,
961 floatsi<mode>2_lfiwax_mem, floatunssi<mode>2_lfiwzx,
962 floatunssi<mode>2_lfiwzx_mem, *floatsidf2_internal,
963 *floatunssidf2_internal, fix_trunc<mode>si2_stfiwx,
964 fix_trunc<mode>si2_internal, fixuns_trunc<mode>si2_stfiwx,
965 *round32<mode>2_fprs, *roundu32<mode>2_fprs,
966 *fix_trunc<mode>si2_internal): Fix empty split condition.
967 * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
968 vsx_reduc_<VEC_reduc_name>_v2df, vsx_reduc_<VEC_reduc_name>_v4sf,
969 *vsx_reduc_<VEC_reduc_name>_v2df_scalar,
970 *vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Likewise.
972 2021-03-22 Xionghu Luo <luoxhu@linux.ibm.com>
975 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
976 Convert idx to DImode.
977 (rs6000_expand_vector_set_var_p8): Likewise.
979 2021-03-21 Jakub Jelinek <jakub@redhat.com>
982 * dwarf2out.c (insert_float): Change return type from void to
983 unsigned, handle GET_MODE_SIZE (mode) == 2 and return element size.
984 (mem_loc_descriptor, loc_descriptor, add_const_value_attribute):
987 2021-03-20 H.J. Lu <hjl.tools@gmail.com>
990 * config/i386/i386.c (construct_container): Check cfun != NULL
991 before accessing silent_p.
993 2021-03-20 Ahamed Husni <ahamedhusni73@gmail.com>
995 * asan.c: Fix typos in comments.
997 2021-03-20 Vladimir N. Makarov <vmakarov@redhat.com>
999 PR rtl-optimization/99680
1000 * lra-constraints.c (skip_contraint_modifiers): Rename to skip_constraint_modifiers.
1001 (process_address_1): Check empty constraint before using
1004 2021-03-19 Pat Haugen <pthaugen@linux.ibm.com>
1006 * config/rs6000/rs6000.c (power10_cost): New.
1007 (rs6000_option_override_internal): Set Power10 costs.
1008 (rs6000_issue_rate): Set Power10 issue rate.
1009 * config/rs6000/power10.md: Rewrite for Power10.
1011 2021-03-19 Vladimir N. Makarov <vmakarov@redhat.com>
1014 * lra-constraints.c (process_address_1): Don't use unknown
1015 constraint for address constraint.
1017 2021-03-19 Iain Sandoe <iain@sandoe.co.uk>
1020 * config.gcc (powerpc-*-darwin8): Delete the reference to
1021 the now removed darwin8.h.
1023 2021-03-19 Olivier Hainque <hainque@adacore.com>
1026 * config/vxworksae.h (VX_CPU_PREFIX): Define.
1028 2021-03-19 John David Anglin <danglin@gcc.gnu.org>
1030 * config/pa/pa.c (import_milli): Use memcpy instead of strncpy.
1032 2021-03-19 Tamar Christina <tamar.christina@arm.com>
1034 PR tree-optimization/99656
1035 * tree-vect-slp-patterns.c (linear_loads_p,
1036 complex_add_pattern::matches, is_eq_or_top,
1037 vect_validate_multiplication, complex_mul_pattern::matches,
1038 complex_fms_pattern::matches): Remove complex_perm_kinds_t.
1039 * tree-vectorizer.h: (complex_load_perm_t): Removed.
1040 (slp_tree_to_load_perm_map_t): Use complex_perm_kinds_t instead of
1041 complex_load_perm_t.
1043 2021-03-19 H.J. Lu <hjl.tools@gmail.com>
1046 * config/i386/i386-options.c (ix86_init_machine_status): Set
1048 * config/i386/i386.c (init_cumulative_args): Set silent_p to
1050 (construct_container): Return early for return and argument
1051 errors if silent_p is true.
1052 * config/i386/i386.h (machine_function): Add silent_p.
1054 2021-03-19 Jakub Jelinek <jakub@redhat.com>
1057 * config/arm/constraints.md (Ds): New constraint.
1058 * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Use w,Ds
1059 constraint instead of w,Dm.
1061 2021-03-19 Andrew Stubbs <ams@codesourcery.com>
1063 * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Fix quotes
1066 2021-03-19 Eric Botcazou <ebotcazou@adacore.com>
1069 * fold-const.c (native_encode_initializer) <CONSTRUCTOR>: For an
1070 array type, do the computation of the current position in sizetype.
1072 2021-03-18 Vladimir N. Makarov <vmakarov@redhat.com>
1075 * lra-constraints.c (process_address_1): Use lookup_constraint
1076 only for a single constraint.
1078 2021-03-18 Martin Sebor <msebor@redhat.com>
1081 * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): Rename...
1082 (inbounds_memaccess_p): ...to this. Check the ending offset of
1083 the accessed member.
1085 2021-03-18 Andrew Stubbs <ams@codesourcery.com>
1087 * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Add %< and
1088 %> quote markers to error messages.
1089 (gcn_goacc_validate_dims): Likewise.
1090 (gcn_conditional_register_usage): Remove exclaimation mark from error
1092 (gcn_vectorize_vec_perm_const): Ensure perm is fully uninitialized.
1094 2021-03-18 Jan Hubicka <hubicka@ucw.cz>
1096 * config/i386/x86-tune-costs.h (struct processor_costs): Fix costs of
1099 2021-03-18 Sinan Lin <sinan@isrc.iscas.ac.cn>
1100 Kito Cheng <kito.cheng@sifive.com>
1102 * config/riscv/riscv.c (riscv_block_move_straight): Change type
1103 to unsigned HOST_WIDE_INT for parameter and local variable with
1105 (riscv_adjust_block_mem): Ditto.
1106 (riscv_block_move_loop): Ditto.
1107 (riscv_expand_block_move): Ditto.
1109 2021-03-18 Nick Clifton <nickc@redhat.com>
1111 * config/v850/v850.c (construct_restore_jr): Increase static
1113 (construct_save_jarl): Likewise.
1114 * config/v850/v850.h (DWARF2_DEBUGGING_INFO): Define.
1116 2021-03-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1118 * config/aarch64/aarch64.c (aarch64_adjust_generic_arch_tuning): Define.
1119 (aarch64_override_options_internal): Use it.
1120 (generic_tunings): Add AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS to
1123 2021-03-17 Sandra Loosemore <sandra@codesourcery.com>
1125 * config/nios2/nios2.c (nios2_custom_check_insns): Clean up
1126 error message format issues.
1127 (nios2_option_override): Likewise.
1128 (nios2_expand_fpu_builtin): Likewise.
1129 (nios2_init_custom_builtins): Adjust to avoid bogus strncpy
1131 (nios2_expand_custom_builtin): More error message format fixes.
1132 (nios2_expand_rdwrctl_builtin): Likewise.
1133 (nios2_expand_rdprs_builtin): Likewise.
1134 (nios2_expand_eni_builtin): Likewise.
1135 (nios2_expand_builtin): Likewise.
1136 (nios2_register_custom_code): Likewise.
1137 (nios2_valid_target_attribute_rec): Likewise.
1138 (nios2_add_insn_asm): Fix uninitialized variable warning.
1140 2021-03-17 Jan Hubicka <jh@suse.cz>
1142 * config/i386/x86-tune-costs.h (struct processor_costs): Update costs
1143 of gather to match reality.
1144 * config/i386/x86-tune.def (X86_TUNE_USE_GATHER): Enable for znver3.
1146 2021-03-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1148 * config/aarch64/aarch64-builtins.c (aarch64_expand_rng_builtin): Use EQ
1149 to compare against CC_REG rather than NE.
1151 2021-03-17 H.J. Lu <hjl.tools@gmail.com>
1154 * config/i386/i386.c (ix86_force_load_from_GOT_p): Support
1155 inline assembly statements.
1156 (ix86_print_operand): Update 'P' handling for -fno-plt.
1158 2021-03-17 Tamar Christina <tamar.christina@arm.com>
1161 * config/aarch64/aarch64.c
1162 (aarch64_simd_clone_compute_vecsize_and_simdlen): Remove unused var.
1164 2021-03-16 Segher Boessenkool <segher@kernel.crashing.org>
1167 * config/rs6000/predicates.md (branch_comparison_operator): Allow
1168 ordered and unordered for CCFPmode, if flag_finite_math_only.
1170 2021-03-16 Jakub Jelinek <jakub@redhat.com>
1173 * config/i386/i386-expand.c (ix86_split_lea_for_addr): Emit a MULT
1175 * config/i386/i386.md (mult by 1248 into ashift): New splitter.
1177 2021-03-16 Martin Liska <mliska@suse.cz>
1180 * optc-save-gen.awk: Add flag_ipa_ra to exceptions for
1181 cl_optimization_compare function.
1183 2021-03-16 Ilya Leoshkevich <iii@linux.ibm.com>
1185 * config/s390/s390.c (f_constraint_p): Treat "fv" constraints
1188 2021-03-16 Jakub Jelinek <jakub@redhat.com>
1191 * config/i386/i386.h (struct machine_function): Add
1192 has_explicit_vzeroupper bitfield.
1193 * config/i386/i386-expand.c (ix86_expand_builtin): Set
1194 cfun->machine->has_explicit_vzeroupper when expanding
1195 IX86_BUILTIN_VZEROUPPER.
1196 * config/i386/i386-features.c (rest_of_handle_insert_vzeroupper):
1197 Do the mode switching only when TARGET_VZEROUPPER, expensive
1198 optimizations turned on and not optimizing for size.
1199 (pass_insert_vzeroupper::gate): Enable even when
1200 cfun->machine->has_explicit_vzeroupper is set.
1202 2021-03-16 Jakub Jelinek <jakub@redhat.com>
1205 * config/aarch64/aarch64.c
1206 (aarch64_simd_clone_compute_vecsize_and_simdlen): If not a function
1207 definition, walk TYPE_ARG_TYPES list if non-NULL for argument types
1208 instead of DECL_ARGUMENTS. Ignore types for uniform arguments.
1210 2021-03-15 Richard Biener <rguenther@suse.de>
1212 PR tree-optimization/98834
1213 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle missing
1214 subsetting by truncating the access size.
1216 2021-03-15 Jan Hubicka <hubicka@ucw.cz>
1218 * config/i386/i386-options.c (processor_cost_table): Add znver3_cost.
1219 * config/i386/x86-tune-costs.h (znver3_cost): New gobal variable; copy
1222 2021-03-15 Martin Liska <mliska@suse.cz>
1224 * spellcheck.c: Add missing comma in initialization.
1226 2021-03-14 Uroš Bizjak <ubizjak@gmail.com>
1228 * config/i386/sse.md (*vec_extract<mode>): Merge alternative 0 with
1229 alternative 2 and alternative 1 with alternative 3 using
1230 YW register constraint.
1231 (*vec_extract<PEXTR_MODE12:mode>_zext): Merge alternatives
1232 using YW register constraint.
1233 (*vec_extractv16qi_zext): Ditto.
1234 (*vec_extractv4si): Merge alternatives 4 and 5
1235 using Yw register constraint.
1236 (*ssse3_palignr<mode>_perm): Use Yw instead of v for alternative 3.
1238 2021-03-13 Martin Sebor <msebor@redhat.com>
1240 PR tree-optimization/99489
1241 * builtins.c (gimple_call_alloc_size): Fail gracefully when argument
1242 is not a call statement.
1244 2021-03-13 Jakub Jelinek <jakub@redhat.com>
1246 PR tree-optimization/99544
1247 * match.pd (X + (X << C) -> X * (1 + (1 << C))): Don't simplify
1248 if for vector types multiplication can't be done in type's mode.
1250 2021-03-12 Eric Botcazou <ebotcazou@adacore.com>
1253 * config/sparc/constraints.md (w): Rename to...
1254 (W): ... this and ditch previous implementation.
1255 * config/sparc/sparc.md (*movdi_insn_sp64): Replace W with m.
1256 (*movdf_insn_sp64): Likewise.
1257 (*mov<VM64:mode>_insn_sp64): Likewise.
1258 * config/sparc/sync.md (*atomic_compare_and_swap<mode>_1): Replace
1260 (atomic_compare_and_swap_leon3_1): Likewise.
1261 (*atomic_compare_and_swapdi_v8plus): Likewise.
1262 * config/sparc/sparc.c (memory_ok_for_ldd): Remove useless test on
1263 architecture and add missing address validity check during LRA.
1265 2021-03-12 Tobias Burnus <tobias@codesourcery.com>
1268 * gimplify.c (omp_add_variable): Handle NULL_TREE as size
1269 occuring for assumed-size arrays in use_device_{ptr,addr}.
1271 2021-03-12 Jakub Jelinek <jakub@redhat.com>
1274 * config/i386/constraints.md (YW): New internal constraint.
1275 * config/i386/sse.md (v_Yw): Add V4TI, V2TI, V1TI and TI cases.
1276 (*<sse2_avx2>_<insn><mode>3<mask_name>,
1277 *<sse2_avx2>_uavg<mode>3<mask_name>, *abs<mode>2,
1278 *<s>mul<mode>3_highpart<mask_name>): Use <v_Yw> instead of v in
1280 (<sse2_avx2>_psadbw): Use YW instead of v in constraints.
1281 (*avx2_pmaddwd, *sse2_pmaddwd, *<code>v8hi3, *<code>v16qi3,
1282 avx2_pmaddubsw256, ssse3_pmaddubsw128): Merge last two alternatives
1283 into one, use Yw instead of former x,v.
1284 (ashr<mode>3, <insn><mode>3): Use <v_Yw> instead of x in constraints of
1285 the last alternative.
1286 (<sse2_avx2>_packsswb<mask_name>, <sse2_avx2>_packssdw<mask_name>,
1287 <sse2_avx2>_packuswb<mask_name>, <sse4_1_avx2>_packusdw<mask_name>,
1288 *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, <ssse3_avx2>_palignr<mode>,
1289 <ssse3_avx2>_pshufb<mode>3<mask_name>): Merge last two alternatives
1290 into one, use <v_Yw> instead of former x,v.
1291 (avx2_interleave_highv32qi<mask_name>,
1292 vec_interleave_highv16qi<mask_name>): Use Yw instead of v in
1293 constraints. Add && <mask_avx512bw_condition> to condition.
1294 (avx2_interleave_lowv32qi<mask_name>,
1295 vec_interleave_lowv16qi<mask_name>,
1296 avx2_interleave_highv16hi<mask_name>,
1297 vec_interleave_highv8hi<mask_name>,
1298 avx2_interleave_lowv16hi<mask_name>, vec_interleave_lowv8hi<mask_name>,
1299 avx2_pshuflw_1<mask_name>, sse2_pshuflw_1<mask_name>,
1300 avx2_pshufhw_1<mask_name>, sse2_pshufhw_1<mask_name>,
1301 avx2_<code>v16qiv16hi2<mask_name>, sse4_1_<code>v8qiv8hi2<mask_name>,
1302 *sse4_1_<code>v8qiv8hi2<mask_name>_1, <sse2_avx2>_<insn><mode>3): Use
1303 Yw instead of v in constraints.
1304 * config/i386/mmx.md (Yv_Yw): New define_mode_attr.
1305 (*mmx_<insn><mode>3, mmx_ashr<mode>3, mmx_<insn><mode>3): Use <Yv_Yw>
1306 instead of Yv in constraints.
1307 (*mmx_<insn><mode>3, *mmx_mulv4hi3, *mmx_smulv4hi3_highpart,
1308 *mmx_umulv4hi3_highpart, *mmx_pmaddwd, *mmx_<code>v4hi3,
1309 *mmx_<code>v8qi3, mmx_pack<s_trunsuffix>swb, mmx_packssdw,
1310 mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
1311 *mmx_uavgv8qi3, *mmx_uavgv4hi3, mmx_psadbw): Use Yw instead of Yv in
1313 (*mmx_pinsrw, *mmx_pinsrb, *mmx_pextrw, *mmx_pextrw_zext, *mmx_pextrb,
1314 *mmx_pextrb_zext): Use YW instead of Yv in constraints.
1315 (*mmx_eq<mode>3, mmx_gt<mode>3): Use x instead of Yv in constraints.
1316 (mmx_andnot<mode>3, *mmx_<code><mode>3): Split last alternative into
1317 two, one with just x, another isa avx512vl with v.
1319 2021-03-12 Martin Liska <mliska@suse.cz>
1321 * doc/invoke.texi: Add missing param documentation.
1323 2021-03-11 David Malcolm <dmalcolm@redhat.com>
1326 * Makefile.in (ANALYZER_OBJS): Add analyzer/feasible-graph.o and
1327 analyzer/trimmed-graph.o.
1328 * doc/analyzer.texi (Analyzer Paths): Rewrite description of
1329 feasibility checking to reflect new implementation.
1330 * doc/invoke.texi (-fdump-analyzer-feasibility): Document new
1332 * shortest-paths.h (shortest_paths::get_shortest_distance): New.
1334 2021-03-11 David Malcolm <dmalcolm@redhat.com>
1336 * digraph.cc (selftest::test_shortest_paths): Update
1337 shortest_paths init for new param. Add test of
1338 SPS_TO_GIVEN_TARGET.
1339 * shortest-paths.h (enum shortest_path_sense): New.
1340 (shortest_paths::shortest_paths): Add "sense" param.
1341 Update for renamings. Generalize to use "sense" param.
1342 (shortest_paths::get_shortest_path): Rename param.
1343 (shortest_paths::m_sense): New field.
1344 (shortest_paths::m_prev): Rename...
1345 (shortest_paths::m_best_edge): ...to this.
1346 (shortest_paths::get_shortest_path): Update for renamings.
1347 Conditionalize flipping of path on sense of traversal.
1349 2021-03-11 David Malcolm <dmalcolm@redhat.com>
1351 * digraph.cc (selftest::test_shortest_paths): Add test coverage
1352 for paths from B and C.
1353 * shortest-paths.h (shortest_paths::shortest_paths): Handle
1354 unreachable nodes, rather than asserting.
1356 2021-03-11 David Edelsohn <dje.gcc@gmail.com>
1359 * config/rs6000/rs6000.c (rs6000_xcoff_file_start): Don't create
1360 xcoff_tbss_section_name.
1361 * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .lcomm.
1362 * xcoffout.c (xcoff_tbss_section_name): Delete.
1363 * xcoffout.h (xcoff_tbss_section_name): Delete.
1365 2021-03-11 Richard Biener <rguenther@suse.de>
1367 PR tree-optimization/99523
1368 * tree-cfg.c (dump_function_to_file): Dump SSA names
1369 w/o identifier to the decls section as well, not only those
1372 2021-03-11 Jakub Jelinek <jakub@redhat.com>
1375 * ipa-icf-gimple.c (func_checker::compare_gimple_call): For internal
1376 function calls with lhs fail if the lhs don't have compatible types.
1378 2021-03-11 Hans-Peter Nilsson <hp@axis.com>
1380 * config/cris/cris.h (HARD_FRAME_POINTER_REGNUM): Define.
1381 Change FRAME_POINTER_REGNUM to correspond to a new faked
1382 register faked_fp, part of GENNONACR_REGS like faked_ap.
1383 (CRIS_FAKED_REGS_CONTENTS): New helper macro.
1384 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS):
1385 (REG_ALLOC_ORDER, REG_CLASS_CONTENTS, REGNO_OK_FOR_BASE_P)
1386 (ELIMINABLE_REGS, REGISTER_NAMES): Adjust accordingly.
1387 * config/cris/cris.md (CRIS_FP_REGNUM): Renumber to new faked
1389 (CRIS_REAL_FP_REGNUM): New constant.
1390 * config/cris/cris.c (cris_reg_saved_in_regsave_area): Check
1391 for HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
1392 (cris_initial_elimination_offset): Handle elimination changes
1393 to HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM
1394 and add one from FRAME_POINTER_REGNUM to
1395 HARD_FRAME_POINTER_REGNUM.
1396 (cris_expand_prologue, cris_expand_epilogue): Emit code for
1397 hard_frame_pointer_rtx instead of frame_pointer_rtx.
1399 2021-03-10 David Edelsohn <dje.gcc@gmail.com>
1402 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Add check for DCmode.
1403 * config/rs6000/rs6000.c (rs6000_special_round_type_align): Same.
1405 2021-03-10 Vladimir N. Makarov <vmakarov@redhat.com>
1408 * lra-constraints.c (process_address_1): Don't check unknown
1409 constraint, use X for empty constraint.
1411 2021-03-10 Alex Coplan <alex.coplan@arm.com>
1413 * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
1414 Fix typo in comment describing "is_ha" argument.
1416 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
1418 * doc/sourcebuild.texi: Document LRA target selector.
1420 2021-03-10 David Malcolm <dmalcolm@redhat.com>
1422 * doc/ux.texi: Add subsection contrasting interactive versus
1425 2021-03-10 Joel Hutton <joel.hutton@arm.com>
1428 * tree-vect-stmts.c (vectorizable_store): Fix scatter store mask
1430 (vectorizable_load): Fix gather load mask check condition.
1432 2021-03-10 Richard Biener <rguenther@suse.de>
1434 PR tree-optimization/99510
1435 * tree.c (check_aligned_type): Check that the candidate
1436 has TYPE_USER_ALIGN set instead of matching with the
1439 2021-03-10 Eric Botcazou <ebotcazou@adacore.com>
1441 * config/sparc/sparc.c (sparc_regmode_natural_size): Return 4 for
1442 float and vector integer modes only if the mode is not larger.
1444 2021-03-10 Hans-Peter Nilsson <hp@axis.com>
1446 * config/cris/cris.h (DWARF_FRAME_REGISTERS): Define.
1448 2021-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
1450 * ira.c (ira_setup_alts, ira_get_dup_out_num): Process digital
1452 * ira-lives.c (single_reg_class): Ditto.
1454 2021-03-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
1456 * config.gcc (aarch64-*-rtems*): Include general rtems.h after
1457 the architecture-specific rtems.h.
1458 (aarch64-*-rtems*): Likewise.
1459 (arm*-*-rtems*): Likewise.
1460 (epiphany-*-rtems*): Likewise.
1461 (riscv*-*-rtems*): Likewise.
1463 2021-03-09 Jakub Jelinek <jakub@redhat.com>
1465 PR tree-optimization/99305
1466 * tree-ssa-phiopt.c (conditional_replacement): Test integer_pow2p
1467 before integer_all_onesp instead of vice versa.
1469 2021-03-09 Richard Earnshaw <rearnsha@arm.com>
1471 * common/config/arm/arm-common.c (arm_config_default): Change type
1474 2021-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
1477 * lra-constraints.c (process_address_1): Process constraint 'g'
1478 separately and digital constraints containing more one digit.
1480 2021-03-09 Nick Clifton <nickc@redhat.com>
1482 * config/rx/rx.h (DBX_DEBUGGING_INFO): Define.
1483 (DWARF"_DEBUGGING_INFO): Define.
1485 2021-03-09 Eric Botcazou <ebotcazou@adacore.com>
1488 * calls.c (initialize_argument_information): When the argument
1489 is passed by reference, do not make a copy in a thunk only if
1490 the argument is already in memory. Remove redundant test for
1491 the case of callee copy.
1493 2021-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
1496 * lra-constraints.c (process_address_1): Process 0..9 constraints
1497 in process_address_1.
1499 2021-03-09 Andreas Krebbel <krebbel@linux.ibm.com>
1501 * config/s390/s390.c (struct s390_processor processor_table):
1502 Binutils name string must not be empty.
1504 2021-03-09 Claudiu Zissulescu <claziss@synopsys.com>
1506 * config/arc/arc.c (arc_attr_type): Remove function.
1508 2021-03-09 Martin Liska <mliska@suse.cz>
1511 * config/i386/i386-options.c (ix86_option_override_internal):
1512 Set isa_flags for OPTS argument and not for the global
1515 2021-03-09 Aaron Sawdey <acsawdey@linux.ibm.com>
1517 * config/rs6000/predicates.md (ds_form_mem_operand): Check
1520 2021-03-09 Aaron Sawdey <acsawdey@linux.ibm.com>
1523 * config/rs6000/predicates.md (ds_form_mem_operand) New
1525 * config/rs6000/genfusion.pl (gen_ld_cmpi_p10) Use
1526 ds_form_mem_operand in ld/lwa patterns.
1527 * config/rs6000/fusion.md: Regenerate file.
1529 2021-03-08 Martin Sebor <msebor@redhat.com>
1532 * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): New function.
1533 (array_bounds_checker::check_array_bounds): Call it.
1535 2021-03-08 Martin Sebor <msebor@redhat.com>
1538 * tree-ssa-strlen.c (maybe_warn_overflow): Test rawmem.
1539 (handle_builtin_stxncpy_strncat): Rename locals. Determine
1540 destination size from allocation calls. Issue a more appropriate
1542 (handle_builtin_memcpy): Pass true as rawmem to maybe_warn_overflow.
1543 (handle_builtin_memset): Same.
1545 2021-03-08 Peter Bergner <bergner@linux.ibm.com>
1548 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_permute): Add an assert
1549 to ensure we do not have an Altivec style address.
1550 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): Disable if passed
1551 an Altivec style address.
1552 (*vsx_le_perm_store_<mode>): Likewise.
1553 (splitters after *vsx_le_perm_store_<mode>): Likewise.
1554 (vsx_load_<mode>): Disable special expander if passed an Altivec
1556 (vsx_store_<mode>): Likewise.
1558 2021-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1561 * config/aarch64/predicates.md (aarch64_simd_shift_imm_vec_qi): Define.
1562 (aarch64_simd_shift_imm_vec_hi): Likewise.
1563 (aarch64_simd_shift_imm_vec_si): Likewise.
1564 (aarch64_simd_shift_imm_vec_di): Likewise.
1565 * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le): Use
1566 predicate from above.
1567 (aarch64_shrn<mode>_insn_be): Likewise.
1568 (aarch64_rshrn<mode>_insn_le): Likewise.
1569 (aarch64_rshrn<mode>_insn_be): Likewise.
1570 (aarch64_shrn2<mode>_insn_le): Likewise.
1571 (aarch64_shrn2<mode>_insn_be): Likewise.
1572 (aarch64_rshrn2<mode>_insn_le): Likewise.
1573 (aarch64_rshrn2<mode>_insn_be): Likewise.
1575 2021-03-08 Vladimir N. Makarov <vmakarov@redhat.com>
1578 * lra-constraints.c (skip_contraint_modifiers): New function.
1579 (process_address_1): Use it before lookup_constraint call.
1581 2021-03-08 Martin Liska <mliska@suse.cz>
1584 * config/i386/i386-options.c (ix86_option_override_internal):
1585 Enable UINTR and HRESET for -march that supports it.
1587 2021-03-08 Ilya Leoshkevich <iii@linux.ibm.com>
1589 * config/s390/s390.c (f_constraint_p): New function.
1590 (s390_md_asm_adjust): Implement TARGET_MD_ASM_ADJUST.
1591 (TARGET_MD_ASM_ADJUST): Likewise.
1593 2021-03-08 Tobias Burnus <tobias@codesourcery.com>
1596 * tree-nested.c (convert_local_reference_stmt): Avoid calling
1597 lookup_field_for_decl for Fortran module (= namespace context).
1599 2021-03-08 Andreas Krebbel <krebbel@linux.ibm.com>
1601 * config/s390/s390.c (s390_expand_vec_compare): Implement <0
1602 comparison with arithmetic right shift.
1603 (s390_expand_vcond): No need for a force_reg anymore.
1604 s390_vec_compare will do it.
1605 * config/s390/vector.md ("vec_cmp<mode><tointvec>"): Accept also
1608 2021-03-07 Jakub Jelinek <jakub@redhat.com>
1611 * config/i386/constraints.md (Yw): Use SSE_REGS if TARGET_SSE
1612 but TARGET_AVX512BW or TARGET_AVX512VL is not set. Adjust description
1614 * config/i386/sse.md (v_Yw): New define_mode_attr.
1615 (*<insn><mode>3, *mul<mode>3<mask_name>, *avx2_<code><mode>3,
1616 *sse4_1_<code><mode>3<mask_name>): Use <v_Yw> instead of v
1618 * config/i386/mmx.md (mmx_pshufw_1, *vec_dupv4hi): Use Yw instead of
1621 2021-03-06 Julian Brown <julian@codesourcery.com>
1623 * tree-pretty-print.c (dump_generic_node): Emit non-generic
1624 address space info for aggregates.
1626 2021-03-06 Hans-Peter Nilsson <hp@axis.com>
1628 * config/cris/cris.h (MAX_FIXED_MODE_SIZE): Don't define.
1630 2021-03-05 Jakub Jelinek <jakub@redhat.com>
1633 * tree-cfg.c (bb_to_omp_idx): New variable.
1634 (execute_build_cfg): Release the bb_to_omp_idx vector after
1635 cleanup_tree_cfg returns.
1636 (handle_abnormal_edges): Remove bb_to_omp_idx argument, adjust
1637 for bb_to_omp_idx being a vec<int> instead of pointer to array
1639 (make_edges): Remove bb_to_omp_idx local variable, don't pass
1640 it to handle_abnormal_edges, adjust for bb_to_omp_idx being a
1641 vec<int> instead of pointer to array of ints and don't free/release
1643 (remove_bb): When removing a bb and placing forced label somewhere
1644 else, ensure it is put into the same OpenMP region during cfg
1645 pass if possible or to entry successor as fallback. Unregister
1646 bb from bb_to_omp_idx.
1648 2021-03-05 Vladimir N. Makarov <vmakarov@redhat.com>
1651 * lra-constraints.c (process_address_1): Skip decomposing address
1652 for asm insn operand with unknown constraint.
1654 2021-03-05 Martin Jambor <mjambor@suse.cz>
1657 * cgraph.c (cgraph_edge::set_call_stmt): Do not update all
1658 corresponding speculative edges if we are about to resolve
1659 sepculation. Make edge direct (and so resolve speculations) before
1660 removing it from call_site_hash.
1661 (cgraph_edge::make_direct): Relax the initial assert to allow calling
1662 the function on speculative direct edges.
1664 2021-03-05 Eric Botcazou <ebotcazou@adacore.com>
1666 PR rtl-optimization/99376
1667 * rtlanal.c (nonzero_bits1) <arithmetic operators>: If the number
1668 of low-order zero bits is too large, set the result to 0 directly.
1670 2021-03-04 Jakub Jelinek <jakub@redhat.com>
1673 * expmed.c (store_bit_field_using_insv): Return false of xop0 is a
1674 SUBREG and a SUBREG to op_mode can't be created.
1676 2021-03-04 Alex Coplan <alex.coplan@arm.com>
1679 * config/aarch64/aarch64-sve-builtins.cc
1680 (function_resolver::require_vector_type): Handle error_mark_node.
1682 2021-03-04 Ilya Leoshkevich <iii@linux.ibm.com>
1684 * cfgexpand.c (expand_asm_loc): Pass new parameter.
1685 (expand_asm_stmt): Likewise.
1686 * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Add new
1688 * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
1689 * config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
1690 * config/cris/cris.c (cris_md_asm_adjust): Likewise.
1691 * config/i386/i386.c (ix86_md_asm_adjust): Likewise.
1692 * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
1693 * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
1694 * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
1695 * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
1696 * config/vax/vax.c (vax_md_asm_adjust): Likewise.
1697 * config/visium/visium.c (visium_md_asm_adjust): Likewise.
1698 * doc/tm.texi (md_asm_adjust): Likewise.
1699 * target.def (md_asm_adjust): Likewise.
1701 2021-03-04 Richard Biener <rguenther@suse.de>
1704 * tree-pretty-print.c: Poison pp_printf.
1705 (dump_decl_name): Avoid use of pp_printf.
1706 (dump_block_node): Likewise.
1707 (dump_generic_node): Likewise.
1709 2021-03-04 Martin Sebor <msebor@redhat.com>
1713 * builtins.c (handle_array_ref): New helper.
1714 (handle_mem_ref): New helper.
1715 (compute_objsize_r): Factor out ARRAY_REF and MEM_REF handling
1716 into new helper functions. Correct a workaround for vectorized
1719 2021-03-03 Pat Haugen <pthaugen@linux.ibm.com>
1721 * config/rs6000/dfp.md (extendddtd2, trunctddd2, *cmp<mode>_internal1,
1722 floatditd2, ftrunc<mode>2, fix<mode>di2, dfp_ddedpd_<mode>,
1723 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>,
1724 *dfp_sgnfcnc_<mode>, dfp_dscli_<mode>, dfp_dscri_<mode>): Update size
1725 attribute for Power10.
1726 * config/rs6000/mma.md (*movoo): Likewise.
1727 * config/rs6000/rs6000.md (define_attr "size"): Add 256.
1728 (define_mode_attr bits): Add DD/TD modes.
1729 * config/rs6000/sync.md (load_quadpti, store_quadpti, load_lockedpti,
1730 store_conditionalpti): Update size attribute for Power10.
1732 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1735 * config/sparc/t-sparc (tree-ssanames.o-warn): Don't error for
1736 -Wuninitialized, -Wmaybe-uninitialized.
1737 (wide-int.o-warn): Likewise.
1739 2021-03-03 Richard Earnshaw <rearnsha@arm.com>
1741 * common/config/arm/arm-common.c: Include configargs.h.
1742 (arm_config_default): New function.
1743 (arm_target_mode): Renamed from arm_target_thumb_only. Handle
1744 processors that do not support Thumb. Take into account the
1745 --with-mode configuration setting for selecting the default.
1746 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Remove entry for 'mode'.
1747 (TARGET_MODE_SPEC_FUNCTIONS): Update for function name change.
1749 2021-03-03 Martin Liska <mliska@suse.cz>
1751 PR gcov-profile/97461
1752 * gcov-io.h (GCOV_PREALLOCATED_KVP): Remove.
1754 2021-03-03 Eric Botcazou <ebotcazou@adacore.com>
1757 * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
1758 point back the hard frame pointer to its default location when the
1759 frame is larger than SEH_MAX_FRAME_SIZE.
1761 2021-03-03 Jakub Jelinek <jakub@redhat.com>
1764 * config/i386/predicates.md (logic_operator): New define_predicate.
1765 * config/i386/i386.md (mov + mem using comm arith peephole2):
1766 Punt if operands[1] is EXT_REX_SSE_REGNO_P, AVX512BW is not enabled
1767 and the inner mode is [QH]Imode.
1769 2021-03-03 Jakub Jelinek <jakub@redhat.com>
1772 * dwarf2out.c (dw_loc_list_struct): Add end_entry member.
1773 (new_loc_list): Clear end_entry.
1774 (output_loc_list): Only use DW_LLE_startx_length for -gsplit-dwarf
1775 if HAVE_AS_LEB128, otherwise use DW_LLE_startx_endx. Fix comment
1777 (index_location_lists): For dwarf_version >= 5 without HAVE_AS_LEB128,
1778 initialize also end_entry.
1780 2021-03-03 Jakub Jelinek <jakub@redhat.com>
1783 * cfgrtl.c (fixup_partitions): When changing some bbs from hot to cold
1784 partitions, if in non-layout mode after reorder_blocks also move
1785 affected blocks to ensure a single partition transition.
1787 2021-03-03 Jason Merrill <jason@redhat.com>
1790 * cgraphunit.c (process_function_and_variable_attributes): Don't
1791 warn about flatten on an alias if the target also has it.
1792 * cgraph.h (symtab_node::get_alias_target_tree): New.
1794 2021-03-02 David Edelsohn <dje.gcc@gmail.com>
1796 * config/rs6000/rs6000.md (tls_get_tpointer_internal): Prepend
1797 period to symbol name.
1798 (tls_get_addr_internal<mode>): Same.
1800 2021-03-02 David Malcolm <dmalcolm@redhat.com>
1803 * diagnostic-show-locus.c
1804 (selftest::test_one_liner_many_fixits_2): Fix accidental usage of
1807 2021-03-02 Martin Sebor <msebor@redhat.com>
1810 * builtins.c (warn_for_access): Remove stray warning text.
1812 2021-03-02 Martin Sebor <msebor@redhat.com>
1815 * doc/extend.texi (attribute malloc): Reword and clarify nonaliasing
1818 2021-03-02 Jakub Jelinek <jakub@redhat.com>
1821 * dwarf2out.c (output_macinfo_op): Use DW_MACRO_*_str* even with
1822 -gdwarf-5 -gstrict-dwarf. For -gsplit-dwarf -gdwarf-5 use
1823 DW_MACRO_*_strx instead of DW_MACRO_*_strp. Handle
1824 DW_MACRO_define_strx and DW_MACRO_undef_strx.
1825 (save_macinfo_strings): Use DW_MACRO_*_str* even with
1826 -gdwarf-5 -gstrict-dwarf. Handle DW_MACRO_define_strx and
1827 DW_MACRO_undef_strx.
1829 2021-03-02 Andreas Krebbel <krebbel@linux.ibm.com>
1831 * config/s390/s390-builtin-types.def (BT_FN_V4SF_V8HI_UINT): New
1833 (BT_FN_V8HI_V8HI_UINT): Likewise.
1834 (BT_FN_V8HI_V4SF_V4SF_UINT): Likewise.
1835 * config/s390/s390-builtins.def (B_NNPA): New macro definition.
1836 (s390_vclfnhs, s390_vclfnls, s390_vcrnfs, s390_vcfn, s390_vcnf):
1837 New builtin definitions.
1838 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Bump
1839 vector extension version.
1840 * config/s390/s390.c (s390_expand_builtin): Check if builtins are
1841 available with current -march level.
1842 * config/s390/s390.md (UNSPEC_NNPA_VCLFNHS_V8HI)
1843 (UNSPEC_NNPA_VCLFNLS_V8HI, UNSPEC_NNPA_VCRNFS_V8HI)
1844 (UNSPEC_NNPA_VCFN_V8HI, UNSPEC_NNPA_VCNF_V8HI): New constants.
1845 * config/s390/vecintrin.h (vec_extend_to_fp32_hi): New macro.
1846 (vec_extend_to_fp32_lo): Likewise.
1847 (vec_round_from_fp32): Likewise.
1848 (vec_convert_to_fp16): Likewise.
1849 (vec_convert_from_fp16): Likewise.
1850 * config/s390/vx-builtins.md (vclfnhs_v8hi): New insn pattern.
1851 (vclfnls_v8hi): Likewise.
1852 (vcrnfs_v8hi): Likewise.
1853 (vcfn_v8hi): Likewise.
1854 (vcnf_v8hi): Likewise.
1856 2021-03-02 Andreas Krebbel <krebbel@linux.ibm.com>
1858 * common/config/s390/s390-common.c (processor_flags_table): New entry.
1859 * config.gcc: Enable arch14 for --with-arch and --with-tune.
1860 * config/s390/driver-native.c (s390_host_detect_local_cpu): Pick
1861 arch14 for unknown CPU models.
1862 * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH14.
1863 * config/s390/s390.c (s390_issue_rate): Add case for PROCESSOR_ARCH14.
1864 (s390_get_sched_attrmask): Likewise.
1865 (s390_get_unit_mask): Likewise.
1866 * config/s390/s390.h (enum processor_flags): Add PF_NNPA and PF_ARCH14.
1867 (TARGET_CPU_ARCH14, TARGET_CPU_ARCH14_P, TARGET_CPU_NNPA)
1868 (TARGET_CPU_NNPA_P, TARGET_ARCH14, TARGET_ARCH14_P, TARGET_NNPA)
1869 (TARGET_NNPA_P): New macro definitions.
1870 * config/s390/s390.md ("cpu_facility", "enabled"): Add arch14 and nnpa.
1871 * config/s390/s390.opt: Add PROCESSOR_ARCH14.
1873 2021-03-02 Jakub Jelinek <jakub@redhat.com>
1876 * tree-vrp.c (register_edge_assert_for): Remove superfluous ()s around
1877 condition. Call register_edge_assert_for_1 for == 0, != 0, == 1 and
1878 != 1 comparisons if name is lhs of a comparison.
1880 2021-03-01 Iain Sandoe <iain@sandoe.co.uk>
1884 * config/darwin-protos.h (darwin_should_restore_cfa_state): New.
1885 * config/darwin.c (darwin_should_restore_cfa_state): New.
1886 * config/darwin.h (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New.
1887 * doc/tm.texi: Regenerated.
1888 * doc/tm.texi.in: Document TARGET_ASM_SHOULD_RESTORE_CFA_STATE.
1889 * dwarf2cfi.c (connect_traces): If the target requests, restore
1890 the CFA expression after a DW_CFA_restore.
1891 * target.def (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New hook.
1893 2021-03-01 Martin Liska <mliska@suse.cz>
1896 * optc-save-gen.awk: Add 4 more exceptions.
1898 2021-03-01 Nathan Sidwell <nathan@acm.org>
1901 * tree.h (TYPE_ALIGN_RAW): New accessor.
1902 (TYPE_ALIGN): Use it.
1904 2021-03-01 Jan Hubicka <jh@suse.cz>
1907 * ipa-fnsummary.c (compute_fn_summary): Fix sanity check.
1909 2021-03-01 Eric Botcazou <ebotcazou@adacore.com>
1912 * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
1913 point the hard frame pointer to the SSE register save area instead
1914 of the general register save area. Perform only minimal adjustment
1915 for small frames if it is initially not correctly aligned.
1916 (ix86_expand_prologue): Remove early saves for a SEH target.
1917 * config/i386/winnt.c (struct seh_frame_state): Document constraint.
1919 2021-02-28 Jakub Jelinek <jakub@redhat.com>
1922 * ipa.c (symbol_table::remove_unreachable_nodes): Fix a comment
1923 typo - referneced -> referenced.
1924 * tree.c (component_ref_size): Fix comment typo -
1925 refernce -> reference.
1926 * tree-ssa-alias.c (access_path_may_continue_p): Fix comment typo -
1927 traling -> trailing.
1928 (aliasing_component_refs_p): Fix comment typos -
1929 refernce -> reference and refernece -> reference and
1930 traling -> trailing.
1931 (nonoverlapping_refs_since_match_p): Fix comment typo -
1932 referneces -> references.
1933 * doc/invoke.texi (--param modref-max-bases): Fix a typo -
1934 referneces -> references.
1936 2021-02-27 Iain Sandoe <iain@sandoe.co.uk>
1938 * config/host-darwin.c (darwin_gt_pch_use_address): Modify
1939 diagnostic message to avoid use of a contraction and format
1942 2021-02-27 Jakub Jelinek <jakub@redhat.com>
1945 * gcse.c (gcse_or_cprop_is_too_expensive): Use %wu instead of
1946 HOST_WIDE_INT_PRINT_UNSIGNED in warning format string.
1947 * ipa-devirt.c (ipa_odr_read_section): Use %wd instead of
1948 HOST_WIDE_INT_PRINT_DEC in inform format string. Fix comment
1951 2021-02-26 Richard Biener <rguenther@suse.de>
1954 * expr.c (store_field): For calls with return-slot optimization
1955 and addressable return type expand the store directly.
1957 2021-02-26 Richard Biener <rguenther@suse.de>
1960 * builtins.c (warn_string_no_nul): Fix diagnostic formatting.
1962 2021-02-26 Peter Bergner <bergner@linux.ibm.com>
1965 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Replace assert
1968 2021-02-26 Aaron Sawdey <acsawdey@linux.ibm.com>
1970 * config.gcc: Add rs6000-pcrel-opt.o.
1971 * config/rs6000/rs6000-pcrel-opt.c: New file.
1972 * config/rs6000/pcrel-opt.md: New file.
1973 * config/rs6000/predicates.md: Add d_form_memory predicate.
1974 * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_PCREL_OPT.
1975 * config/rs6000/rs6000-passes.def: Add pass_pcrel_opt.
1976 * config/rs6000/rs6000-protos.h: Add reg_to_non_prefixed(),
1977 pcrel_opt_valid_mem_p(), output_pcrel_opt_reloc(),
1978 and make_pass_pcrel_opt().
1979 * config/rs6000/rs6000.c (reg_to_non_prefixed): Make global.
1980 (rs6000_option_override_internal): Add pcrel-opt.
1981 (rs6000_delegitimize_address): Support pcrel-opt.
1982 (rs6000_opt_masks): Add pcrel-opt.
1983 (pcrel_opt_valid_mem_p): New function.
1984 (reg_to_non_prefixed): Make global.
1985 (rs6000_asm_output_opcode): Reset prepend_p_to_next_insn.
1986 (output_pcrel_opt_reloc): New function.
1987 * config/rs6000/rs6000.md (loads_extern_addr): New attr.
1988 (pcrel_extern_addr): Set loads_extern_addr.
1989 Add include for pcrel-opt.md.
1990 * config/rs6000/rs6000.opt: Add -mpcrel-opt.
1991 * config/rs6000/t-rs6000: Add rules for pcrel-opt.c and
1994 2021-02-26 YunQiang Su <yunqiang.su@cipunited.com>
1997 * config/mips/mips.c (mips_expand_ext_as_unaligned_load):
1998 If TARGET_64BIT and dest is SUBREG, we check the width, if it
1999 equal to SImode, we use SImode operation, just like what we are
2002 2021-02-26 Marek Polacek <polacek@redhat.com>
2004 * builtins.c (warn_for_access): Fix typos.
2006 2021-02-25 Iain Sandoe <iain@sandoe.co.uk>
2008 * config/aarch64/aarch64.md (<optab>_rol<mode>3): Add a '#'
2009 mark in front of the immediate quantity.
2010 (<optab>_rolsi3_uxtw): Likewise.
2012 2021-02-25 Richard Earnshaw <rearnsha@arm.com>
2015 * config/arm/thumb2.md (nonsecure_call_reg_thumb2_fpcxt): New pattern.
2016 (nonsecure_call_value_reg_thumb2_fpcxt): Likewise.
2017 (nonsecure_call_reg_thumb2): Restrict to using r4 for the callee
2018 address and disable when the FPCXT is not available.
2019 (nonsecure_call_value_reg_thumb2): Likewise.
2021 2021-02-25 Nathan Sidwell <nathan@acm.org>
2024 * doc/invoke.texi (flang-info-module-cmi): Renamed option.
2026 2021-02-25 Tamar Christina <tamar.christina@arm.com>
2028 * tree-vect-slp.c (optimize_load_redistribution_1): Abort on NULL nodes.
2030 2021-02-25 Richard Biener <rguenther@suse.de>
2032 PR tree-optimization/99253
2033 * tree-vect-loop.c (check_reduction_path): First compute
2034 code, then verify out-of-loop uses.
2036 2021-02-25 Jakub Jelinek <jakub@redhat.com>
2039 * match.pd ((T)(A) + CST -> (T)(A + CST)): Add :s to convert.
2041 2021-02-25 Jakub Jelinek <jakub@redhat.com>
2043 PR tree-optimization/80635
2044 * tree-vrp.c (vrp_simplify_cond_using_ranges): Also handle
2045 VIEW_CONVERT_EXPR if modes are the same, innerop is integral and
2048 2021-02-25 Richard Biener <rguenther@suse.de>
2050 * tree-vect-slp.c (optimize_load_redistribution_1): Delay
2051 load_map population.
2052 (vect_match_slp_patterns_2): Revert part of last change.
2053 (vect_analyze_slp): Do not interleave optimize_load_redistribution
2054 with pattern detection but do it afterwards. Dump the
2055 whole SLP graph after pattern recognition and load
2056 redistribution optimization finished.
2058 2021-02-24 Jakub Jelinek <jakub@redhat.com>
2061 * omp-low.c (struct omp_context): Add teams_nested_p and
2062 nonteams_nested_p members.
2063 (scan_omp_target): Diagnose teams nested inside of target with other
2064 directives strictly nested inside of the same target.
2065 (check_omp_nesting_restrictions): Set ctx->teams_nested_p or
2066 ctx->nonteams_nested_p as needed.
2068 2021-02-24 Vladimir N. Makarov <vmakarov@redhat.com>
2071 * lra-constraints.c (uses_hard_regs_p): Don't use decompose_mem_address.
2073 2021-02-24 Hans-Peter Nilsson <hp@axis.com>
2075 * config/cris/cris.c (cris_expand_prologue): Set
2076 current_function_static_stack_size, if flag_stack_usage_info.
2078 2021-02-24 Pat Haugen <pthaugen@linux.ibm.com>
2080 * config/rs6000/rs6000.c (next_insn_prefixed_p): Rename.
2081 (rs6000_final_prescan_insn): Adjust.
2082 (rs6000_asm_output_opcode): Likewise.
2084 2021-02-24 Martin Sebor <msebor@redhat.com>
2087 * attribs.c (attr_access::free_lang_data): Clear attribute arg spec
2088 from function arguments.
2090 2021-02-24 Tamar Christina <tamar.christina@arm.com>
2092 PR tree-optimization/99220
2093 * tree-vect-slp.c (optimize_load_redistribution_1): Remove
2094 node from cache when it's about to be deleted.
2096 2021-02-24 Jakub Jelinek <jakub@redhat.com>
2098 PR tree-optimization/99225
2099 * fold-const.c (fold_binary_loc) <case NE_EXPR>: In (x & (1 << y)) != 0
2100 to ((x >> y) & 1) != 0 simplifications use build_one_cst instead of
2101 build_int_cst (..., 1). Formatting fixes.
2103 2021-02-24 Tamar Christina <tamar.christina@arm.com>
2105 PR tree-optimization/99149
2106 * tree-vect-slp-patterns.c (vect_detect_pair_op): Don't recreate the
2108 (vect_slp_reset_pattern): Remove.
2109 (complex_fma_pattern::matches): Remove call to vect_slp_reset_pattern.
2110 (complex_mul_pattern::build, complex_fma_pattern::build,
2111 complex_fms_pattern::build): Fix ref counts.
2112 * tree-vect-slp.c (vect_free_slp_tree): Undo SLP only pattern relevancy
2113 when node is being deleted.
2114 (vect_match_slp_patterns_2): Correct result of cache hit on patterns.
2115 (vect_schedule_slp): Invalidate SLP_TREE_REPRESENTATIVE of removed
2117 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize value.
2119 2021-02-24 Matthias Klose <doko@ubuntu.com>
2122 2020-12-07 Matthias Klose <doko@ubuntu.com>
2124 * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING
2125 and ENABLE_RTL_FLAG_CHECKING.
2127 2021-02-24 Richard Biener <rguenther@suse.de>
2130 * builtins.c (fold_builtin_next_arg): Avoid NULL arg.
2132 2021-02-23 Peter Bergner <bergner@linux.ibm.com>
2134 * config/rs6000/mma.md (mma_assemble_pair): Rename from this...
2135 (vsx_assemble_pair): ...to this.
2136 (*mma_assemble_pair): Rename from this...
2137 (*vsx_assemble_pair): ...to this.
2138 (mma_disassemble_pair): Rename from this...
2139 (vsx_disassemble_pair): ...to this.
2140 (*mma_disassemble_pair): Rename from this...
2141 (*vsx_disassemble_pair): ...to this.
2142 * config/rs6000/rs6000-builtin.def (BU_MMA_V2, BU_MMA_V3,
2143 BU_COMPAT): New macros.
2144 (mma_assemble_pair): Rename from this...
2145 (vsx_assemble_pair): ...to this.
2146 (mma_disassemble_pair): Rename from this...
2147 (vsx_disassemble_pair): ...to this.
2148 (mma_assemble_pair): New compatibility built-in.
2149 (mma_disassemble_pair): Likewise.
2150 * config/rs6000/rs6000-call.c (struct builtin_compatibility): New.
2151 (RS6000_BUILTIN_COMPAT): Define.
2152 (bdesc_compat): New.
2153 (mma_expand_builtin): Use VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
2154 (rs6000_gimple_fold_mma_builtin): Use MMA_BUILTIN_DISASSEMBLE_PAIR
2155 and VSX_BUILTIN_ASSEMBLE_PAIR.
2156 (rs6000_init_builtins): Register compatibility built-ins.
2157 (mma_init_builtins): Use VSX_BUILTIN_ASSEMBLE_PAIR,
2158 VSX_BUILTIN_ASSEMBLE_PAIR_INTERNAL, VSX_BUILTIN_DISASSEMBLE_PAIR and
2159 VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
2160 * doc/extend.texi (__builtin_mma_assemble_pair): Rename from this...
2161 (__builtin_vsx_assemble_pair): ...to this.
2162 (__builtin_mma_disassemble_pair): Rename from this...
2163 (__builtin_vsx_disassemble_pair): ...to this.
2165 2021-02-23 Martin Liska <mliska@suse.cz>
2168 * ipa-icf.c (sem_variable::merge): Do not merge 2 variables
2169 with different alignment. That leads to an invalid red zone
2170 size allocated in runtime.
2172 2021-02-23 Jakub Jelinek <jakub@redhat.com>
2174 PR tree-optimization/99204
2175 * fold-const.c (fold_read_from_constant_string): Check that
2176 tree_fits_uhwi_p (index) rather than just that index is INTEGER_CST.
2178 2021-02-23 Segher Boessenkool <segher@kernel.crashing.org>
2179 Kewen Lin <linkw@gcc.gnu.org>
2181 * config/rs6000/rs6000.md (*rotl<mode>3_insert_3): Renamed to...
2182 (rotl<mode>3_insert_3): ...this.
2183 (plus_ior_xor): New code_iterator.
2184 (define_split for GPR rl*imi): New splitter.
2185 * config/rs6000/vsx.md (vsx_init_v4si): Use gen_rotldi3_insert_3
2186 for integer merging.
2188 2021-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2190 * config/aarch64/aarch64-tuning-flags.def (cse_sve_vl_constants):
2192 * config/aarch64/aarch64.md (add<mode>3): Force CONST_POLY_INT immediates
2193 into a register when the above is enabled.
2194 * config/aarch64/aarch64.c (neoversev1_tunings):
2195 AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
2196 (aarch64_rtx_costs): Use AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
2198 2021-02-22 Hans-Peter Nilsson <hp@axis.com>
2200 * config/cris/cris.c (cris_print_operand) <'T'>: Change
2201 valid operand from is now an addi mult-value to shift-value.
2202 * config/cris/cris.md (*addi): Change expression of scaled
2203 operand from mult to ashift.
2204 * config/cris/cris.md (*addi_reload): New insn_and_split.
2206 2021-02-22 John David Anglin <danglin@gcc.gnu.org>
2209 * config/pa/pa.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define as
2210 hook_bool_const_tree_hwi_hwi_const_tree_true.
2211 (pa_asm_output_mi_thunk): Add support for nonzero vcall_offset.
2213 2021-02-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
2215 PR rtl-optimization/98791
2216 * ira-conflicts.c (process_regs_for_copy): Don't create allocno copies
2217 for unordered modes.
2219 2021-02-22 Martin Liska <mliska@suse.cz>
2221 * tree-inline.c (inline_forbidden_p): Set
2222 inline_forbidden_reason.
2224 2021-02-22 Richard Biener <rguenther@suse.de>
2226 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Dump
2229 2021-02-22 Richard Biener <rguenther@suse.de>
2231 PR tree-optimization/99165
2232 * gimple-ssa-store-merging.c (pass_store_merging::process_store):
2233 Accumulate changed to ret.
2235 2021-02-21 Uros Bizjak <ubizjak@gmail.com>
2238 2020-12-09 Uroš Bizjak <ubizjak@gmail.com>
2240 * config/i386/i386.h (REG_ALLOC_ORDER): Remove
2242 2021-02-20 Ilya Leoshkevich <iii@linux.ibm.com>
2245 * config/s390/vector.md (trunctf<DFP_ALL:mode>2_vr): New
2247 (trunctf<DFP_ALL:mode>2): Likewise.
2248 (trunctdtf2_vr): Likewise.
2249 (trunctdtf2): Likewise.
2250 (extend<DFP_ALL:mode>tf2_vr): Likewise.
2251 (extend<DFP_ALL:mode>tf2): Likewise.
2252 (extendtftd2_vr): Likewise.
2253 (extendtftd2): Likewise.
2255 2021-02-20 Ilya Leoshkevich <iii@linux.ibm.com>
2257 * config/s390/vector.md (*fprx2_to_tf): Rename to fprx2_to_tf,
2258 add memory alternative.
2259 (tf_to_fprx2): New pattern.
2261 2021-02-19 Martin Sebor <msebor@redhat.com>
2264 * attribs.c (init_attr_rdwr_indices): Guard vblist use.
2265 (attr_access::free_lang_data): Remove a spurious test.
2267 2021-02-19 Nathan Sidwell <nathan@acm.org>
2269 * doc/invoke.texi (flang-info-module-read): Document.
2271 2021-02-19 Martin Liska <mliska@suse.cz>
2273 PR translation/99167
2274 * params.opt: Fix typo.
2276 2021-02-19 Richard Biener <rguenther@suse.de>
2279 * tree-inline.c (inline_forbidden_p): Do not inline functions
2280 with VLA arguments or return value.
2282 2021-02-19 Jakub Jelinek <jakub@redhat.com>
2285 * config/arm/arm.md (*stack_protect_combined_set_insn,
2286 *stack_protect_combined_test_insn): If force_const_mem result
2287 is not valid general operand, force its address into the destination
2290 2021-02-19 Jakub Jelinek <jakub@redhat.com>
2293 * tree-cfg.c (gimple_merge_blocks): If bb a starts with eh landing
2294 pad or non-local label, put FORCED_LABELs from bb b after that label
2295 rather than before it.
2297 2021-02-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
2300 * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3): Use
2301 expand_vector_broadcast' to emit the vec_duplicate operand.
2303 2021-02-18 Vladimir N. Makarov <vmakarov@redhat.com>
2305 PR rtl-optimization/96264
2306 * lra-remat.c (reg_overlap_for_remat_p): Check also output insn
2309 2021-02-18 H.J. Lu <hjl.tools@gmail.com>
2312 * varasm.c (get_section): Replace SUPPORTS_SHF_GNU_RETAIN with
2313 looking up the retain attribute.
2314 (resolve_unique_section): Likewise.
2315 (get_variable_section): Likewise.
2316 (switch_to_section): Likewise. Warn when a symbol without the
2317 retain attribute and a symbol with the retain attribute are
2318 placed in the section with the same name, instead of the used
2320 * doc/extend.texi: Document the "retain" attribute.
2322 2021-02-18 Nathan Sidwell <nathan@acm.org>
2325 * doc/invoke.texi (flang-info-include-translate): Document header
2328 2021-02-18 Richard Biener <rguenther@suse.de>
2331 * ipa-fnsummary.c (analyze_function_body): Set
2332 CIF_FUNCTION_NOT_INLINABLE for VLA parameter calls.
2333 * tree-inline.c (insert_init_debug_bind): Pass NULL for
2334 error_mark_node values.
2335 (force_value_to_type): Do not build V_C_Es for WITH_SIZE_EXPR
2337 (setup_one_parameter): Delay force_value_to_type until when
2340 2021-02-18 Hans-Peter Nilsson <hp@axis.com>
2342 PR tree-optimization/99142
2343 * match.pd (clz cmp 0): Gate replacement on single_use of clz result.
2345 2021-02-18 Jakub Jelinek <jakub@redhat.com>
2347 * wide-int-bitmask.h (wide_int_bitmask::wide_int_bitmask (),
2348 wide_int_bitmask::wide_int_bitmask (uint64_t),
2349 wide_int_bitmask::wide_int_bitmask (uint64_t, uint64_t),
2350 wide_int_bitmask::operator ~ () const,
2351 wide_int_bitmask::operator | (wide_int_bitmask) const,
2352 wide_int_bitmask::operator & (wide_int_bitmask) const): Use constexpr
2354 * config/i386/i386.h (PTA_3DNOW, PTA_3DNOW_A, PTA_64BIT, PTA_ABM,
2355 PTA_AES, PTA_AVX, PTA_BMI, PTA_CX16, PTA_F16C, PTA_FMA, PTA_FMA4,
2356 PTA_FSGSBASE, PTA_LWP, PTA_LZCNT, PTA_MMX, PTA_MOVBE, PTA_NO_SAHF,
2357 PTA_PCLMUL, PTA_POPCNT, PTA_PREFETCH_SSE, PTA_RDRND, PTA_SSE, PTA_SSE2,
2358 PTA_SSE3, PTA_SSE4_1, PTA_SSE4_2, PTA_SSE4A, PTA_SSSE3, PTA_TBM,
2359 PTA_XOP, PTA_AVX2, PTA_BMI2, PTA_RTM, PTA_HLE, PTA_PRFCHW, PTA_RDSEED,
2360 PTA_ADX, PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT, PTA_AVX512F, PTA_AVX512ER,
2361 PTA_AVX512PF, PTA_AVX512CD, PTA_NO_TUNE, PTA_SHA, PTA_PREFETCHWT1,
2362 PTA_CLFLUSHOPT, PTA_XSAVEC, PTA_XSAVES, PTA_AVX512DQ, PTA_AVX512BW,
2363 PTA_AVX512VL, PTA_AVX512IFMA, PTA_AVX512VBMI, PTA_CLWB, PTA_MWAITX,
2364 PTA_CLZERO, PTA_NO_80387, PTA_PKU, PTA_AVX5124VNNIW, PTA_AVX5124FMAPS,
2365 PTA_AVX512VPOPCNTDQ, PTA_SGX, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES,
2366 PTA_AVX512VBMI2, PTA_VPCLMULQDQ, PTA_AVX512BITALG, PTA_RDPID,
2367 PTA_PCONFIG, PTA_WBNOINVD, PTA_AVX512VP2INTERSECT, PTA_PTWRITE,
2368 PTA_AVX512BF16, PTA_WAITPKG, PTA_MOVDIRI, PTA_MOVDIR64B, PTA_ENQCMD,
2369 PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK, PTA_AMX_TILE, PTA_AMX_INT8,
2370 PTA_AMX_BF16, PTA_UINTR, PTA_HRESET, PTA_KL, PTA_WIDEKL, PTA_AVXVNNI,
2371 PTA_X86_64_BASELINE, PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4,
2372 PTA_CORE2, PTA_NEHALEM, PTA_WESTMERE, PTA_SANDYBRIDGE, PTA_IVYBRIDGE,
2373 PTA_HASWELL, PTA_BROADWELL, PTA_SKYLAKE, PTA_SKYLAKE_AVX512,
2374 PTA_CASCADELAKE, PTA_COOPERLAKE, PTA_CANNONLAKE, PTA_ICELAKE_CLIENT,
2375 PTA_ICELAKE_SERVER, PTA_TIGERLAKE, PTA_SAPPHIRERAPIDS, PTA_ALDERLAKE,
2376 PTA_KNL, PTA_BONNELL, PTA_SILVERMONT, PTA_GOLDMONT, PTA_GOLDMONT_PLUS,
2377 PTA_TREMONT, PTA_KNM): Use constexpr instead of const.
2379 2021-02-18 Jakub Jelinek <jakub@redhat.com>
2382 * gimple-array-bounds.cc (build_zero_elt_array_type): Rename to ...
2383 (build_printable_array_type): ... this. Add nelts argument. For
2384 overaligned eltype, use TYPE_MAIN_VARIANT (eltype) instead. If
2385 nelts, call build_array_type_nelts.
2386 (array_bounds_checker::check_mem_ref): Use build_printable_array_type
2387 instead of build_zero_elt_array_type and build_array_type_nelts.
2389 2021-02-18 Jakub Jelinek <jakub@redhat.com>
2392 * config/i386/i386.c (distance_non_agu_define): Don't call
2393 extract_insn_cached here.
2394 (ix86_lea_outperforms): Save and restore recog_data around call
2395 to distance_non_agu_define and distance_agu_use.
2396 (ix86_ok_to_clobber_flags): Remove.
2397 (ix86_avoid_lea_for_add): Don't call ix86_ok_to_clobber_flags.
2398 (ix86_avoid_lea_for_addr): Likewise. Adjust function comment.
2399 * config/i386/i386.md (*lea<mode>): Change from define_insn_and_split
2400 into define_insn. Move the splitting to define_peephole2 and
2401 check there using peep2_regno_dead_p if FLAGS_REG is dead.
2403 2021-02-17 Julian Brown <julian@codesourcery.com>
2405 * gimplify.c (gimplify_scan_omp_clauses): Handle ATTACH_DETACH
2408 2021-02-17 Xi Ruoyao <xry111@mengyan1223.wang>
2411 * config/mips/mips.c (mips_symbol_insns): Do not use
2412 MSA_SUPPORTED_MODE_P if mode is MAX_MACHINE_MODE.
2414 2021-02-16 Vladimir N. Makarov <vmakarov@redhat.com>
2417 * stmt.c (resolve_operand_name_1): Take inout operands into account
2418 for access to labels by names.
2419 * doc/extend.texi: Describe counting operands for accessing labels.
2421 2021-02-16 Richard Biener <rguenther@suse.de>
2423 PR tree-optimization/38474
2424 * tree-ssa-structalias.c (variable_info::address_taken): New.
2425 (new_var_info): Initialize address_taken.
2426 (process_constraint): Set address_taken.
2427 (solve_constraints): Use the new address_taken flag rather
2428 than is_reg_var for sorting variables.
2429 (dump_constraint): Dump the variable number if the name
2432 2021-02-16 Jakub Jelinek <jakub@redhat.com>
2435 * tree-vect-stmts.c (vectorizable_simd_clone_call): For num_calls != 1
2436 multiply by 4096 and for inbranch by 8192.
2437 * config/i386/i386.c (ix86_simd_clone_usable): For TARGET_AVX512F,
2438 return 3, 2 or 1 for mangle letters 'b', 'c' or 'd'.
2440 2021-02-15 Maya Rashish <coypu@sdf.org>
2442 * config/aarch64/aarch64.c (aarch64_init_builtins):
2443 Call SUBTARGET_INIT_BUILTINS.
2445 2021-02-15 Peter Bergner <bergner@linux.ibm.com>
2447 PR rtl-optimization/98872
2448 * init-regs.c (initialize_uninitialized_regs): Skip initialization
2449 if CONST0_RTX is NULL.
2451 2021-02-15 Richard Sandiford <richard.sandiford@arm.com>
2453 PR rtl-optimization/98863
2454 * rtl-ssa/functions.h (function_info::bb_live_out_info): Delete.
2455 (function_info::build_info): Turn into a declaration, moving the
2456 definition to internals.h.
2457 (function_info::bb_walker): Declare.
2458 (function_info::create_reg_use): Likewise.
2459 (function_info::calculate_potential_phi_regs): Take a build_info
2461 (function_info::place_phis, function_info::create_ebbs): Declare.
2462 (function_info::calculate_ebb_live_in_for_debug): Likewise.
2463 (function_info::populate_backedge_phis): Delete.
2464 (function_info::start_block, function_info::end_block): Declare.
2465 (function_info::populate_phi_inputs): Delete.
2466 (function_info::m_potential_phi_regs): Move information to build_info.
2467 * rtl-ssa/internals.h: New file.
2468 (function_info::bb_phi_info): New class.
2469 (function_info::build_info): Moved from functions.h.
2470 Add a constructor and destructor.
2471 (function_info::build_info::ebb_use): Delete.
2472 (function_info::build_info::ebb_def): Likewise.
2473 (function_info::build_info::bb_live_out): Likewise.
2474 (function_info::build_info::tmp_ebb_live_in_for_debug): New variable.
2475 (function_info::build_info::potential_phi_regs): Likewise.
2476 (function_info::build_info::potential_phi_regs_for_debug): Likewise.
2477 (function_info::build_info::ebb_def_regs): Likewise.
2478 (function_info::build_info::bb_phis): Likewise.
2479 (function_info::build_info::bb_mem_live_out): Likewise.
2480 (function_info::build_info::bb_to_rpo): Likewise.
2481 (function_info::build_info::def_stack): Likewise.
2482 (function_info::build_info::old_def_stack_limit): Likewise.
2483 * rtl-ssa/internals.inl (function_info::build_info::record_reg_def):
2484 Remove the regno argument. Push the previous definition onto the
2485 definition stack where necessary.
2486 * rtl-ssa/accesses.cc: Include internals.h.
2487 * rtl-ssa/changes.cc: Likewise.
2488 * rtl-ssa/blocks.cc: Likewise.
2489 (function_info::build_info::build_info): Define.
2490 (function_info::build_info::~build_info): Likewise.
2491 (function_info::bb_walker): New class.
2492 (function_info::bb_walker::bb_walker): Define.
2493 (function_info::add_live_out_use): Convert a logarithmic-complexity
2494 test into a linear one. Allow the same definition to be passed
2496 (function_info::calculate_potential_phi_regs): Moved from
2497 functions.cc. Take a build_info parameter and store the
2498 information there instead.
2499 (function_info::place_phis): New function.
2500 (function_info::add_entry_block_defs): Update call to record_reg_def.
2501 (function_info::calculate_ebb_live_in_for_debug): New function.
2502 (function_info::add_phi_nodes): Use bb_phis to decide which
2503 registers need phi nodes and initialize ebb_def_regs accordingly.
2504 Do not add degenerate phis here.
2505 (function_info::add_artificial_accesses): Use create_reg_use.
2506 Assert that all definitions are listed in the DF LR sets.
2507 Update call to record_reg_def.
2508 (function_info::record_block_live_out): Record live-out register
2509 values in the phis of successor blocks. Use the live-out set
2510 when processing the last block in an EBB, instead of always
2511 using the live-in sets of successor blocks. AND the live sets
2512 with the set of registers that have been defined in the EBB,
2513 rather than with all potential phi registers. Cope correctly
2514 with branches back to the start of the current EBB.
2515 (function_info::start_block): New function.
2516 (function_info::end_block): Likewise.
2517 (function_info::populate_phi_inputs): Likewise.
2518 (function_info::create_ebbs): Likewise.
2519 (function_info::process_all_blocks): Rewrite into a multi-phase
2521 * rtl-ssa/functions.cc: Include internals.h.
2522 (function_info::calculate_potential_phi_regs): Move to blocks.cc.
2523 (function_info::init_function_data): Remove caller.
2524 * rtl-ssa/insns.cc: Include internals.h
2525 (function_info::create_reg_use): New function. Lazily any
2526 degenerate phis needed by the linear RPO view.
2527 (function_info::record_use): Use create_reg_use. When processing
2528 debug uses, use potential_phi_regs and test it before checking
2529 whether the register is live on entry to the current EBB. Lazily
2530 calculate ebb_live_in_for_debug.
2531 (function_info::record_call_clobbers): Update call to record_reg_def.
2532 (function_info::record_def): Likewise.
2534 2021-02-15 Martin Liska <mliska@suse.cz>
2536 * toplev.c (init_asm_output): Free output of
2537 gen_command_line_string function.
2538 (process_options): Likewise.
2540 2021-02-15 Martin Liska <mliska@suse.cz>
2542 * params.opt: Add 2 missing Param keywords.
2544 2021-02-15 Eric Botcazou <ebotcazou@adacore.com>
2546 * df-core.c (df_worklist_dataflow_doublequeue): Use proper cast.
2548 2021-02-15 Jakub Jelinek <jakub@redhat.com>
2550 PR tree-optimization/99079
2551 * match.pd (A % (pow2pcst << N) -> A & ((pow2pcst << N) - 1)): Remove
2552 useless tree_nop_conversion_p (type, TREE_TYPE (@3)) check. Instead
2553 require both type and TREE_TYPE (@1) to be integral types and either
2554 type having smaller or equal precision, or TREE_TYPE (@1) being
2555 unsigned type, or type being signed type. If TREE_TYPE (@1)
2556 doesn't have wrapping overflow, perform the subtraction of one in
2559 2021-02-14 Jan Hubicka <hubicka@ucw.cz>
2560 Richard Biener <rguether@suse.de>
2563 * ipa-reference.c (ipa_init): Only conditinally initialize
2564 reference_vars_to_consider.
2565 (propagate): Conditionally deninitialize reference_vars_to_consider.
2566 (ipa_reference_write_optimization_summary): Sanity check that
2567 reference_vars_to_consider is not allocated.
2569 2021-02-13 Levy Hsu <admin@levyhsu.com>
2572 * config/riscv/riscv-shorten-memrefs.c (pass_shorten_memrefs): Add
2573 extend parameter to get_si_mem_base_reg declaration.
2574 (get_si_mem_base_reg): Add extend parameter. Set it.
2575 (analyze): Pass extend arg to get_si_mem_base_reg.
2576 (transform): Likewise. Use it when rewriting mems.
2577 * config/riscv/riscv.c (riscv_legitimize_move): Check for subword
2578 loads and emit sign/zero extending load followed by subreg move.
2580 2021-02-13 Jim Wilson <jimw@sifive.com>
2583 * config/riscv/riscv.c (riscv_compressed_lw_address_p): Drop early
2584 exit when !reload_completed. Only perform check for compressed reg
2585 if reload_completed.
2586 (riscv_rtx_costs): In MEM case, when optimizing for size and
2587 shorten memrefs, if not compressible, then increase cost.
2589 2021-02-13 Jakub Jelinek <jakub@redhat.com>
2591 PR rtl-optimization/98439
2592 * recog.c (pass_split_before_regstack::gate): Enable even when
2593 pass_split_before_sched2 is enabled if -fselective-scheduling2 is
2596 2021-02-13 Jakub Jelinek <jakub@redhat.com>
2599 * config/i386/mmx.md (*mmx_pshufd_1): Add a combine splitter for
2600 swap of V2SImode elements in memory into DImode memory rotate by 32.
2602 2021-02-12 Martin Sebor <msebor@redhat.com>
2604 * tree-pretty-print.c (print_generic_expr_to_str): Update comment.
2606 2021-02-12 Richard Sandiford <richard.sandiford@arm.com>
2608 * rtl-ssa/accesses.cc (function_info::make_use_available): Use
2609 m_temp_obstack rather than m_obstack to allocate the temporary use.
2611 2021-02-12 Richard Sandiford <richard.sandiford@arm.com>
2613 * df-problems.c (df_lr_bb_local_compute): Treat partial definitions
2614 as read-modify operations.
2616 2021-02-12 Richard Biener <rguenther@suse.de>
2619 * ipa-fnsummary.c (unmodified_parm_1): Only walk when
2620 fbi->aa_walk_budget is bigger than zero. Update
2621 fbi->aa_walk_budget.
2622 (param_change_prob): Likewise.
2623 * ipa-prop.c (detect_type_change_from_memory_writes):
2624 Properly account walk_aliased_vdefs.
2625 (parm_preserved_before_stmt_p): Canonicalize updates.
2626 (parm_ref_data_preserved_p): Likewise.
2627 (parm_ref_data_pass_through_p): Likewise.
2628 (determine_known_aggregate_parts): Account own alias queries.
2630 2021-02-12 Martin Liska <mliska@suse.cz>
2632 * opts-common.c (decode_cmdline_option): Release werror_arg.
2633 * opts.c (gen_producer_string): Release output of
2634 gen_command_line_string.
2636 2021-02-12 Richard Biener <rguenther@suse.de>
2638 PR tree-optimization/38474
2639 * params.opt (-param=max-store-chains-to-track=): New param.
2640 (-param=max-stores-to-track=): Likewise.
2641 * doc/invoke.texi (max-store-chains-to-track): Document.
2642 (max-stores-to-track): Likewise.
2643 * gimple-ssa-store-merging.c (pass_store_merging::m_n_chains):
2645 (pass_store_merging::m_n_stores): Likewise.
2646 (pass_store_merging::terminate_and_process_chain): Update
2647 m_n_stores and m_n_chains.
2648 (pass_store_merging::process_store): Likewise. Terminate
2649 oldest chains if the number of stores or chains get too large.
2650 (imm_store_chain_info::terminate_and_process_chain): Dump
2653 2021-02-11 Eric Botcazou <ebotcazou@adacore.com>
2655 * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to
2656 the cold section, emit a nop before the directive if the previous
2657 active instruction can throw.
2659 2021-02-11 Peter Bergner <bergner@linux.ibm.com>
2662 * config/rs6000/predicates.md (mma_assemble_input_operand): Restrict
2663 memory addresses that are legal for quad word accesses.
2665 2021-02-11 Andrea Corallo <andrea.corallo@arm.com>
2668 * config/arm/thumb2.md (*doloop_end_internal): Generate
2669 alternative sequence to handle long range branches.
2671 2021-02-11 Joel Hutton <joel.hutton@arm.com>
2673 PR tree-optimization/98772
2674 * optabs-tree.c (supportable_half_widening_operation): New function
2675 to check for supportable V8QI->V8HI widening patterns.
2676 * optabs-tree.h (supportable_half_widening_operation): New function.
2677 * tree-vect-stmts.c (vect_create_half_widening_stmts): New function
2678 to create promotion stmts for V8QI->V8HI widening patterns.
2679 (vectorizable_conversion): Add case for V8QI->V8HI.
2681 2021-02-11 Richard Biener <rguenther@suse.de>
2683 * sparseset.h (SPARSESET_ELT_BITS): Remove.
2684 (SPARSESET_ELT_TYPE): Use unsigned int.
2685 * fwprop.c: Do not include sparseset.h.
2687 2021-02-10 Jakub Jelinek <jakub@redhat.com>
2690 * varasm.c (declare_weak): For -fsyntax-only, allow even
2691 TREE_ASM_WRITTEN function decls.
2693 2021-02-10 Jakub Jelinek <jakub@redhat.com>
2696 * config/i386/sse.md (fix<fixunssuffix>_truncv2sfv2di2,
2697 <insn>v8qiv8hi2, <insn>v8qiv8si2, <insn>v4qiv4si2, <insn>v4hiv4si2,
2698 <insn>v8qiv8di2, <insn>v4qiv4di2, <insn>v2qiv2di2, <insn>v4hiv4di2,
2699 <insn>v2hiv2di2, <insn>v2siv2di2): Force operands[1] into REG before
2700 calling simplify_gen_subreg on it.
2702 2021-02-10 Martin Liska <mliska@suse.cz>
2704 * config/nvptx/nvptx.c (nvptx_option_override): Use
2705 flag_patchable_function_entry instead of the removed
2706 function_entry_patch_area_size.
2708 2021-02-10 Martin Liska <mliska@suse.cz>
2710 PR tree-optimization/99002
2711 PR tree-optimization/99026
2712 * gimple-if-to-switch.cc (if_chain::is_beneficial): Fix memory
2713 leak when adjacent cases are merged.
2714 * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement): Use
2716 (make_pass_lower_switch): Remove trailing whitespace.
2717 * tree-switch-conversion.h (release_clusters): New.
2719 2021-02-10 Richard Biener <rguenther@suse.de>
2721 PR rtl-optimization/99054
2722 * cfgrtl.c (rtl-optimization/99054): Return an auto_vec.
2723 (fixup_partitions): Adjust.
2724 (rtl_verify_edges): Likewise.
2726 2021-02-10 Jakub Jelinek <jakub@redhat.com>
2729 * gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions,
2730 temporarily disable gimplify_ctxp->into_ssa around gimplify_expr
2733 2021-02-10 Richard Biener <rguenther@suse.de>
2736 * ipa-pure-const.c (propagate_malloc): Use an auto_vec<>
2739 2021-02-10 Richard Biener <rguenther@suse.de>
2741 PR tree-optimization/99024
2742 * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Only
2743 clear loop->aux if it is associated with the destroyed loop_vinfo.
2745 2021-02-10 Martin Liska <mliska@suse.cz>
2747 PR tree-optimization/99002
2748 * gimple-if-to-switch.cc (find_conditions): Fix memory leak
2751 2021-02-10 Martin Liska <mliska@suse.cz>
2754 * ipa-icf.c (sem_item::add_reference): Fix memory leak when
2757 2021-02-10 Jakub Jelinek <jakub@redhat.com>
2760 * dwarf2out.c (prune_unused_types_walk): Mark DW_TAG_variable DIEs
2761 at class scope for DWARF5+.
2763 2021-02-09 Eric Botcazou <ebotcazou@adacore.com>
2765 PR rtl-optimization/96015
2766 * reorg.c (skip_consecutive_labels): Minor comment tweaks.
2767 (relax_delay_slots): When deleting a jump to the next active
2768 instruction over a barrier, first delete the barrier if the
2769 jump is the only way to reach the target label.
2771 2021-02-09 Andre Vieira <andre.simoesdiasvieira@arm.com>
2773 * config/aarch64/aarch64-cost-tables.h: Add entries for vect.mul.
2774 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Use vect.mul for
2775 vector multiplies and vect.alu for SSRA.
2776 * config/arm/aarch-common-protos.h (struct vector_cost_table): Define
2777 vect.mul cost field.
2778 * config/arm/aarch-cost-tables.h: Add entries for vect.mul.
2779 * config/arm/arm.c: Likewise.
2781 2021-02-09 Richard Biener <rguenther@suse.de>
2783 PR tree-optimization/98863
2784 * tree-ssa-sccvn.h (vn_avail::next_undo): Add.
2785 * tree-ssa-sccvn.c (last_pushed_avail): New global.
2786 (rpo_elim::eliminate_push_avail): Chain pushed avails.
2787 (unwind_state::avail_top): Add.
2788 (do_unwind): Rewrite unwinding of avail entries.
2789 (do_rpo_vn): Initialize last_pushed_avail and
2790 avail_top of the undo state.
2792 2021-02-09 Jakub Jelinek <jakub@redhat.com>
2795 * calls.c (maybe_warn_rdwr_sizes): Change s0 and s1 type from
2796 const char * to char * and free those pointers after use.
2798 2021-02-09 Richard Biener <rguenther@suse.de>
2800 PR tree-optimization/99017
2801 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Allow
2802 zero vector cost entries.
2804 2021-02-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
2807 * tree-vect-stmts.c (vectorizable_condition): Remove shadow vec_num
2808 parameter in vectorizable_condition.
2810 2021-02-08 Richard Biener <rguenther@suse.de>
2813 * tree.c (walk_tree_1): Walk VECTOR_CST elements.
2815 2021-02-08 Martin Liska <mliska@suse.cz>
2818 * cfgexpand.c (pass_expand::execute): Parse per-function option
2819 flag_patchable_function_entry and use it.
2820 * common.opt: Remove function_entry_patch_area_size and
2821 function_entry_patch_area_start global variables.
2822 * opts.c (parse_and_check_patch_area): New function.
2823 (common_handle_option): Use it.
2824 * opts.h (parse_and_check_patch_area): New function.
2825 * toplev.c (process_options): Parse and use
2826 function_entry_patch_area_size.
2828 2021-02-08 Martin Sebor <msebor@redhat.com>
2830 * doc/extend.texi (attribute malloc): Correct typos.
2832 2021-02-05 Nathan Sidwell <nathan@acm.org>
2835 * gcc.c (driver::maybe_run_linker): Check for input file
2836 accessibility if not linking.
2838 2021-02-05 Richard Biener <rguenther@suse.de>
2840 PR tree-optimization/98855
2841 * tree-vectorizer.h (add_stmt_cost): New overload.
2842 * tree-vect-slp.c (li_cost_vec_cmp): New.
2843 (vect_bb_slp_scalar_cost): Cost individual loop regions
2844 separately. Account for the scalar instance root stmt.
2846 2021-02-05 Tom de Vries <tdevries@suse.de>
2849 * tree-switch-conversion.c (jump_table_cluster::emit): Add loc
2851 (bit_test_cluster::emit): Reuse location_t for newly created
2853 (switch_decision_tree::try_switch_expansion): Preserve
2855 * tree-switch-conversion.h: Change function signatures.
2857 2021-02-05 Jakub Jelinek <jakub@redhat.com>
2860 * config/i386/i386-options.c (m_NONE, m_ALL): Define.
2861 * config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS,
2862 X86_TUNE_PROMOTE_QI_REGS): Use m_NONE instead of 0U.
2863 (X86_TUNE_QIMODE_MATH): Use m_ALL instead of ~0U.
2865 2021-02-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2867 * config/aarch64/aarch64-simd-builtins.def (get_high): Define builtin.
2868 * config/aarch64/aarch64-simd.md (aarch64_get_high<mode>): Define.
2869 * config/aarch64/arm_neon.h (__GET_HIGH): Delete.
2870 (vget_high_f16): Reimplement using new builtin.
2871 (vget_high_f32): Likewise.
2872 (vget_high_f64): Likewise.
2873 (vget_high_p8): Likewise.
2874 (vget_high_p16): Likewise.
2875 (vget_high_p64): Likewise.
2876 (vget_high_s8): Likewise.
2877 (vget_high_s16): Likewise.
2878 (vget_high_s32): Likewise.
2879 (vget_high_s64): Likewise.
2880 (vget_high_u8): Likewise.
2881 (vget_high_u16): Likewise.
2882 (vget_high_u32): Likewise.
2883 (vget_high_u64): Likewise.
2885 2021-02-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2887 * config/aarch64/aarch64-simd-builtins.def (get_low): Define builtin.
2888 * config/aarch64/aarch64-simd.md (aarch64_get_low<mode>): Define.
2889 * config/aarch64/arm_neon.h (__GET_LOW): Delete.
2890 (vget_low_f16): Reimplement using new builtin.
2891 (vget_low_f32): Likewise.
2892 (vget_low_f64): Likewise.
2893 (vget_low_p8): Likewise.
2894 (vget_low_p16): Likewise.
2895 (vget_low_p64): Likewise.
2896 (vget_low_s8): Likewise.
2897 (vget_low_s16): Likewise.
2898 (vget_low_s32): Likewise.
2899 (vget_low_s64): Likewise.
2900 (vget_low_u8): Likewise.
2901 (vget_low_u16): Likewise.
2902 (vget_low_u32): Likewise.
2903 (vget_low_u64): Likewise.
2905 2021-02-05 Kito Cheng <kito.cheng@sifive.com>
2907 * gcc.c (print_multilib_info): Check all required argument is provided
2910 2021-02-05 liuhongt <hongtao.liu@intel.com>
2913 * config/i386/i386-expand.c (ix86_expand_sse_cmp): Don't
2914 generate integer mask comparison for 128/256-bits vector when
2915 op_true/op_false is NULL_RTX or CONSTM1_RTX/CONST0_RTX. Also
2916 delete redundant !maskcmp condition.
2917 (ix86_expand_int_vec_cmp): Ditto but no redundant deletion
2919 (ix86_expand_sse_movcc): Delete definition of maskcmp, add the
2920 condition directly to if (maskcmp), add extra check for
2921 cmpmode, it should be MODE_INT.
2922 (ix86_expand_fp_vec_cmp): Pass NULL to ix86_expand_sse_cmp's
2923 parameters op_true/op_false.
2924 (ix86_use_mask_cmp_p): New.
2926 2021-02-05 liuhongt <hongtao.liu@intel.com>
2929 * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL):
2930 Remove m_GENERIC from ~list.
2931 (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Ditto.
2933 2021-02-04 David Malcolm <dmalcolm@redhat.com>
2936 * diagnostic-show-locus.c (compatible_locations_p): Require
2937 locations in the same macro map to be either both from the
2938 macro definition, or both from the macro arguments.
2940 2021-02-04 Jonathan Wright <jonathan.wright@arm.com>
2942 * config/aarch64/aarch64-simd-builtins.def: Add
2943 [su]mull_hi_lane[q] builtin generator macros.
2944 * config/aarch64/aarch64-simd.md
2945 (aarch64_<su>mull_hi_lane<mode>_insn): Define.
2946 (aarch64_<su>mull_hi_lane<mode>): Define.
2947 (aarch64_<su>mull_hi_laneq<mode>_insn): Define.
2948 (aarch64_<su>mull_hi_laneq<mode>): Define.
2949 * config/aarch64/arm_neon.h (vmull_high_lane_s16): Use RTL
2950 builtin instead of inline asm.
2951 (vmull_high_lane_s32): Likewise.
2952 (vmull_high_lane_u16): Likewise.
2953 (vmull_high_lane_u32): Likewise.
2954 (vmull_high_laneq_s16): Likewise.
2955 (vmull_high_laneq_s32): Likewise.
2956 (vmull_high_laneq_u16): Likewise.
2957 (vmull_high_laneq_u32): Liekwise.
2959 2021-02-04 Jonathan Wright <jonathan.wright@arm.com>
2961 * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_hi_n
2962 builtin generator macros.
2963 * config/aarch64/aarch64-simd.md
2964 (aarch64_<su>mull_hi_n<mode>_insn): Define.
2965 (aarch64_<su>mull_hi_n<mode>): Define.
2966 * config/aarch64/arm_neon.h (vmull_high_n_s16): Use RTL builtin
2967 instead of inline asm.
2968 (vmull_high_n_s32): Likewise.
2969 (vmull_high_n_u16): Likewise.
2970 (vmull_high_n_u32): Likewise.
2972 2021-02-04 Richard Biener <rguenther@suse.de>
2974 PR tree-optimization/98855
2975 * tree-vect-loop.c (vectorizable_phi): Do not cost
2976 single-argument PHIs.
2977 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise.
2978 * tree-vect-stmts.c (vectorizable_bswap): Also perform
2979 costing for SLP operation.
2981 2021-02-04 Martin Liska <mliska@suse.cz>
2983 * doc/extend.texi: Mention -mprefer-vector-width in target
2986 2021-02-03 Martin Sebor <msebor@redhat.com>
2988 PR tree-optimization/98937
2989 * tree-ssa-strlen.c (strlen_dom_walker::~strlen_dom_walker): Define.
2990 Flush pointer_query cache.
2992 2021-02-03 Aaron Sawdey <acsawdey@linux.ibm.com>
2994 * config/rs6000/genfusion.pl (gen_2logical): Add missing
2995 fixes based on patch review.
2996 * config/rs6000/fusion.md: Regenerate file.
2998 2021-02-03 Aaron Sawdey <acsawdey@linux.ibm.com>
3000 * config/rs6000/t-rs6000: Comment out auto generation of
3003 2021-02-03 Andrew Stubbs <ams@codesourcery.com>
3005 * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX908.
3006 * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Add gfx908.
3007 (output_file_start): Add gfx908.
3008 * config/gcn/gcn.opt (gpu_type): Add gfx908.
3009 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add march=gfx908.
3010 (MULTILIB_DIRNAMES): Add gfx908.
3011 * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): New define.
3012 (main): Recognize gfx908.
3013 * config/gcn/t-omp-device: Add gfx908.
3015 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
3017 * config/aarch64/aarch64-simd-builtins.def: Add
3018 [su]mlsl_hi_lane[q] builtin macro generators.
3019 * config/aarch64/aarch64-simd.md
3020 (aarch64_<su>mlsl_hi_lane<mode>_insn): Define.
3021 (aarch64_<su>mlsl_hi_lane<mode>): Define.
3022 (aarch64_<su>mlsl_hi_laneq<mode>_insn): Define.
3023 (aarch64_<su>mlsl_hi_laneq<mode>): Define.
3024 * config/aarch64/arm_neon.h (vmlsl_high_lane_s16): Use RTL
3025 builtin instead of inline asm.
3026 (vmlsl_high_lane_s32): Likewise.
3027 (vmlsl_high_lane_u16): Likewise.
3028 (vmlsl_high_lane_u32): Likewise.
3029 (vmlsl_high_laneq_s16): Likewise.
3030 (vmlsl_high_laneq_s32): Likewise.
3031 (vmlsl_high_laneq_u16): Likewise.
3032 (vmlsl_high_laneq_u32): Likewise.
3033 (vmlal_high_laneq_u32): Likewise.
3035 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
3037 * config/aarch64/aarch64-simd-builtins.def: Add
3038 [su]mlal_hi_lane[q] builtin generator macros.
3039 * config/aarch64/aarch64-simd.md
3040 (aarch64_<su>mlal_hi_lane<mode>_insn): Define.
3041 (aarch64_<su>mlal_hi_lane<mode>): Define.
3042 (aarch64_<su>mlal_hi_laneq<mode>_insn): Define.
3043 (aarch64_<su>mlal_hi_laneq<mode>): Define.
3044 * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Use RTL
3045 builtin instead of inline asm.
3046 (vmlal_high_lane_s32): Likewise.
3047 (vmlal_high_lane_u16): Likewise.
3048 (vmlal_high_lane_u32): Likewise.
3049 (vmlal_high_laneq_s16): Likewise.
3050 (vmlal_high_laneq_s32): Likewise.
3051 (vmlal_high_laneq_u16): Likewise.
3052 (vmlal_high_laneq_u32): Likewise.
3054 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
3056 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_hi_n
3057 builtin generator macros.
3058 * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_hi_n<mode>_insn):
3060 (aarch64_<su>mlsl_hi_n<mode>): Define.
3061 * config/aarch64/arm_neon.h (vmlsl_high_n_s16): Use RTL builtin
3062 instead of inline asm.
3063 (vmlsl_high_n_s32): Likewise.
3064 (vmlsl_high_n_u16): Likewise.
3065 (vmlsl_high_n_u32): Likewise.
3067 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
3069 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_hi_n
3070 builtin generator macros.
3071 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_hi_n<mode>_insn):
3073 (aarch64_<su>mlal_hi_n<mode>): Define.
3074 * config/aarch64/arm_neon.h (vmlal_high_n_s16): Use RTL builtin
3075 instead of inline asm.
3076 (vmlal_high_n_s32): Likewise.
3077 (vmlal_high_n_u16): Likewise.
3078 (vmlal_high_n_u32): Likewise.
3080 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
3082 * config/aarch64/aarch64-simd-builtins.def: Add RTL builtin
3084 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal_hi<mode>):
3086 (aarch64_<su>mlal_hi<mode>_insn): This.
3087 (aarch64_<su>mlal_hi<mode>): Define.
3088 * config/aarch64/arm_neon.h (vmlal_high_s8): Use RTL builtin
3089 instead of inline asm.
3090 (vmlal_high_s16): Likewise.
3091 (vmlal_high_s32): Likewise.
3092 (vmlal_high_u8): Likewise.
3093 (vmlal_high_u16): Likewise.
3094 (vmlal_high_u32): Likewise.
3096 2021-02-03 Ilya Leoshkevich <iii@linux.ibm.com>
3098 * lra-spills.c (remove_pseudos): Call lra_update_insn_recog_data()
3099 after calling alter_subreg() on a (mem).
3101 2021-02-03 Martin Liska <mliska@suse.cz>
3104 * lto-streamer-out.c (produce_lto_section): Fill up missing
3106 * lto-streamer.h (struct lto_section): Add _padding field.
3108 2021-02-03 Richard Biener <rguenther@suse.de>
3110 * lto-streamer.c (lto_get_section_name): Free temporary
3112 * tree-loop-distribution.c
3113 (loop_distribution::merge_dep_scc_partitions): Free edge data.
3115 2021-02-03 Jakub Jelinek <jakub@redhat.com>
3118 * ifcvt.c (noce_can_force_operand): New function.
3119 (noce_emit_move_insn): Use it.
3120 (noce_try_sign_mask): Likewise. Formatting fix.
3122 2021-02-03 Jakub Jelinek <jakub@redhat.com>
3125 * lra-constraints.c (process_alt_operands): For inline asm, don't call
3126 fatal_insn, but instead return false.
3128 2021-02-03 Jakub Jelinek <jakub@redhat.com>
3130 PR tree-optimization/98287
3131 * config/i386/mmx.md (<insn><mode>3): For shifts don't enable expander
3134 2021-02-03 Tamar Christina <tamar.christina@arm.com>
3136 PR tree-optimization/98928
3137 * tree-vect-loop.c (vect_analyze_loop_2): Change
3138 STMT_VINFO_SLP_VECT_ONLY to STMT_VINFO_SLP_VECT_ONLY_PATTERN.
3139 * tree-vect-slp-patterns.c (complex_pattern::build): Likewise.
3140 * tree-vectorizer.h (STMT_VINFO_SLP_VECT_ONLY_PATTERN): New.
3141 (class _stmt_vec_info): Add slp_vect_pattern_only_p.
3143 2021-02-02 Richard Biener <rguenther@suse.de>
3145 * gimple-loop-interchange.cc (prepare_data_references):
3147 * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
3148 * tree-ssa-loop-im.c (hoist_memory_references): Likewise.
3149 * tree-vect-stmts.c (vectorizable_condition): Do not
3151 (vectorizable_comparison): Likewise.
3153 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3155 * config/aarch64/aarch64-simd-builtins.def (ursqrte): Define builtin.
3156 * config/aarch64/aarch64-simd.md (aarch64_ursqrte<mode>): New pattern.
3157 * config/aarch64/arm_neon.h (vrsqrte_u32): Reimplement using builtin.
3158 (vrsqrteq_u32): Likewise.
3160 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3162 * config/aarch64/aarch64-simd-builtins.def (sqxtun2): Define builtin.
3163 * config/aarch64/aarch64-simd.md (aarch64_sqxtun2<mode>_le): Define.
3164 (aarch64_sqxtun2<mode>_be): Likewise.
3165 (aarch64_sqxtun2<mode>): Likewise.
3166 * config/aarch64/arm_neon.h (vqmovun_high_s16): Reimplement using builtin.
3167 (vqmovun_high_s32): Likewise.
3168 (vqmovun_high_s64): Likewise.
3169 * config/aarch64/iterators.md (UNSPEC_SQXTUN2): Define.
3171 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3173 * config/aarch64/aarch64-simd-builtins.def (bfdot_lane, bfdot_laneq): Use
3175 (bfmlalb_lane, bfmlalt_lane, bfmlalb_lane_q, bfmlalt_lane_q): Use FP flags.
3177 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3179 * config/aarch64/aarch64-simd-builtins.def (fcmla_lane0, fcmla_lane90,
3180 fcmla_lane180, fcmla_lane270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
3181 fcmlaq_lane270, scvtf, ucvtf, fcvtzs, fcvtzu, scvtfsi, scvtfdi, ucvtfsi,
3182 ucvtfdi, fcvtzshf, fcvtzuhf, fmlal_lane_low, fmlsl_lane_low,
3183 fmlal_laneq_low, fmlsl_laneq_low, fmlalq_lane_low, fmlslq_lane_low,
3184 fmlalq_laneq_low, fmlslq_laneq_low, fmlal_lane_high, fmlsl_lane_high,
3185 fmlal_laneq_high, fmlsl_laneq_high, fmlalq_lane_high, fmlslq_lane_high,
3186 fmlalq_laneq_high, fmlslq_laneq_high): Use FP flags.
3188 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3190 * config/aarch64/aarch64-builtins.c (FLAG_LOAD): Define.
3191 * config/aarch64/aarch64-simd-builtins.def (ld1x2, ld2, ld3, ld4, ld2r,
3192 ld3r, ld4r, ld1, ld1x3, ld1x4): Use LOAD flags.
3194 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3196 * config/aarch64/aarch64-simd-builtins.def (combine, zip1, zip2,
3197 uzp1, uzp2, trn1, trn2, simd_bsl): Use AUTO_FP flags.
3199 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3201 * config/aarch64/aarch64-simd-builtins.def (clrsb, clz, ctz, popcount,
3202 vec_smult_lane_, vec_smlal_lane_, vec_smult_laneq_, vec_smlal_laneq_,
3203 vec_umult_lane_, vec_umlal_lane_, vec_umult_laneq_, vec_umlal_laneq_,
3204 ashl, sshl, ushl, srshl, urshl, sdot_lane, udot_lane, sdot_laneq,
3205 udot_laneq, usdot_lane, usdot_laneq, sudot_lane, sudot_laneq, ashr,
3206 ashr_simd, lshr, lshr_simd, srshr_n, urshr_n, ssra_n, usra_n, srsra_n,
3207 ursra_n, sshll_n, ushll_n, sshll2_n, ushll2_n, ssri_n, usri_n, ssli_n,
3208 ssli_n, usli_n, bswap, rbit, simd_bsl, eor3q, rax1q, xarq, bcaxq): Use
3211 2021-02-02 Jakub Jelinek <jakub@redhat.com>
3213 PR tree-optimization/98848
3214 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Punt if
3215 STMT_VINFO_DEF_TYPE (last_stmt_info) is vect_reduction_def.
3217 2021-02-02 Kito Cheng <kito.cheng@sifive.com>
3220 * expr.c: Check mode before calling store_expr.
3222 2021-02-02 Christophe Lyon <christophe.lyon@linaro.org>
3224 * config/arm/iterators.md (supf): Remove VORNQ_S and VORNQ_U.
3226 * config/arm/mve.md (mve_vornq_s<mode>): New entry for vorn
3227 instruction using expression ior.
3228 (mve_vornq_u<mode>): New expander.
3229 (mve_vornq_f<mode>): Use ior code instead of unspec.
3230 * config/arm/unspecs.md (VORNQ_S, VORNQ_U, VORNQ_F): Remove.
3232 2021-02-02 Alexandre Oliva <oliva@adacore.com>
3234 * tree-nested.c (convert_nonlocal_reference_op): Move
3235 current_function_decl restore after re-gimplification.
3236 (convert_local_reference_op): Likewise.
3238 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3240 * config/aarch64/aarch64-simd-builtins.def (rshrn, rshrn2):
3242 * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le):
3244 (aarch64_rshrn<mode>_insn_be): Likewise.
3245 (aarch64_rshrn<mode>): Likewise.
3246 (aarch64_rshrn2<mode>_insn_le): Likewise.
3247 (aarch64_rshrn2<mode>_insn_be): Likewise.
3248 (aarch64_rshrn2<mode>): Likewise.
3249 * config/aarch64/aarch64.md (unspec): Add UNSPEC_RSHRN.
3250 * config/aarch64/arm_neon.h (vrshrn_high_n_s16): Reimplement
3252 (vrshrn_high_n_s32): Likewise.
3253 (vrshrn_high_n_s64): Likewise.
3254 (vrshrn_high_n_u16): Likewise.
3255 (vrshrn_high_n_u32): Likewise.
3256 (vrshrn_high_n_u64): Likewise.
3257 (vrshrn_n_s16): Likewise.
3258 (vrshrn_n_s32): Likewise.
3259 (vrshrn_n_s64): Likewise.
3260 (vrshrn_n_u16): Likewise.
3261 (vrshrn_n_u32): Likewise.
3262 (vrshrn_n_u64): Likewise.
3264 2021-02-01 Sergei Trofimovich <siarheit@google.com>
3266 PR tree-optimization/98499
3267 * ipa-modref.c (analyze_ssa_name_flags): treat RVO
3268 conservatively and assume all possible side-effects.
3270 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3272 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi,
3273 vec_unpacku_hi_): Define builtins.
3274 * config/aarch64/arm_neon.h (vmovl_high_s8): Reimplement using
3276 (vmovl_high_s16): Likewise.
3277 (vmovl_high_s32): Likewise.
3278 (vmovl_high_u8): Likewise.
3279 (vmovl_high_u16): Likewise.
3280 (vmovl_high_u32): Likewise.
3282 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3284 * config/aarch64/aarch64-simd-builtins.def (sabdl, uabdl):
3286 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): New
3288 * config/aarch64/aarch64.md (unspec): Define UNSPEC_SABDL,
3290 * config/aarch64/arm_neon.h (vabdl_s8): Reimplemet using
3292 (vabdl_s16): Likewise.
3293 (vabdl_s32): Likewise.
3294 (vabdl_u8): Likewise.
3295 (vabdl_u16): Likewise.
3296 (vabdl_u32): Likewise.
3297 * config/aarch64/iterators.md (ABDL): New int iterator.
3298 (sur): Handle UNSPEC_SABDL, UNSPEC_UABDL.
3300 2021-02-01 Martin Sebor <msebor@redhat.com>
3302 * tree.h (BLOCK_VARS): Add comment.
3303 (BLOCK_SUBBLOCKS): Same.
3304 (BLOCK_SUPERCONTEXT): Same.
3305 (BLOCK_ABSTRACT_ORIGIN): Same.
3306 (inlined_function_outer_scope_p): Same.
3308 2021-02-01 Martin Sebor <msebor@redhat.com>
3311 * attribs.c (attr_access::free_lang_data): Define new function.
3312 * attribs.h (attr_access::free_lang_data): Declare new function.
3314 2021-02-01 Richard Biener <rguenther@suse.de>
3316 * vec.h (auto_vec::auto_vec): Add memory stat parameters
3318 * bitmap.h (auto_bitmap::auto_bitmap): Likewise.
3320 2021-02-01 Tamar Christina <tamar.christina@arm.com>
3322 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>,
3323 aarch64_<su>mlsl<mode>, aarch64_<su>mlsl_n<mode>): Flip mult operands.
3325 2021-02-01 Richard Biener <rguenther@suse.de>
3327 PR rtl-optimization/98863
3328 * config/i386/i386-features.c (convert_scalars_to_vector):
3329 Set DF_RD_PRUNE_DEAD_DEFS.
3331 2021-01-31 Eric Botcazou <ebotcazou@adacore.com>
3333 * system.h (SIZE_MAX): Define if not already defined.
3335 2021-01-30 Aaron Sawdey <acsawdey@linux.ibm.com>
3337 * config/rs6000/genfusion.pl (gen_2logical): New function to
3338 generate patterns for logical-logical fusion.
3339 * config/rs6000/fusion.md: Regenerated patterns.
3340 * config/rs6000/rs6000-cpus.def: Add
3341 OPTION_MASK_P10_FUSION_2LOGICAL.
3342 * config/rs6000/rs6000.c (rs6000_option_override_internal):
3343 Enable logical-logical fusion for p10.
3344 * config/rs6000/rs6000.opt: Add -mpower10-fusion-2logical.
3346 2021-01-30 David Edelsohn <dje.gcc@gmail.com>
3348 * config/rs6000/rs6000.opt: Add periods to new AIX options.
3350 2021-01-30 David Edelsohn <dje.gcc@gmail.com>
3352 * config/rs6000/rs6000.opt (mabi=vec-extabi): New.
3353 (mabi=vec-default): New.
3354 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
3355 __EXTABI__ for AIX Vector extended ABI.
3356 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print AIX Vector
3358 (conditional_register_usage): If AIX vec_extabi enabled, vs20-vs31
3360 * doc/invoke.texi (PowerPC mabi): Add AIX vec-extabi and vec-default.
3362 2021-01-30 Jakub Jelinek <jakub@redhat.com>
3364 * config/i386/i386-features.c (remove_partial_avx_dependency): Clear
3365 DF_DEFER_INSN_RESCAN after calling df_process_deferred_rescans.
3367 2021-01-29 Vladimir N. Makarov <vmakarov@redhat.com>
3370 * lra-constraints.c (in_class_p): Don't narrow class only for REG
3373 2021-01-29 Will Schmidt <will_schmidt@vnet.ibm.com>
3375 * config/rs6000/rs6000-call.c (rs6000_expand_binup_builtin): Add
3376 clauses for CODE_FOR_vsx_xvcvuxddp_scale and
3377 CODE_FOR_vsx_xvcvsxddp_scale to the parameter checking code.
3379 2021-01-29 Andrew MacLeod <amacleod@redhat.com>
3381 PR tree-optimization/98866
3382 * gimple-range-gori.h (gori_compute:set_range_invariant): New.
3383 * gimple-range-gori.cc (gori_map::set_range_invariant): New.
3384 (gori_map::m_maybe_invariant): Rename from all_outgoing.
3385 (gori_map::gori_map): Rename all_outgoing to m_maybe_invariant.
3386 (gori_map::is_export_p): Ditto.
3387 (gori_map::calculate_gori): Ditto.
3388 (gori_compute::set_range_invariant): New.
3389 * gimple-range.cc (gimple_ranger::range_of_stmt): Set range
3390 invariant for pointers evaluating to [1, +INF].
3392 2021-01-29 Richard Biener <rguenther@suse.de>
3394 PR rtl-optimization/98863
3395 * config/i386/i386-features.c (remove_partial_avx_dependency):
3396 Do not perform DF analysis.
3397 (pass_data_remove_partial_avx_dependency): Remove
3400 2021-01-29 Jonathan Wright <jonathan.wright@arm.com>
3402 * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_n
3403 builtin generator macros.
3404 * config/aarch64/aarch64-simd.md (aarch64_<su>mull_n<mode>):
3406 * config/aarch64/arm_neon.h (vmull_n_s16): Use RTL builtin
3407 instead of inline asm.
3408 (vmull_n_s32): Likewise.
3409 (vmull_n_u16): Likewise.
3410 (vmull_n_u32): Likewise.
3412 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3414 * config/aarch64/aarch64-simd-builtins.def (sabdl2, uabdl2):
3416 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3):
3418 (aarch64_<sur>abdl2<mode>): ... This.
3419 (<sur>sadv16qi): Adjust use of above.
3420 * config/aarch64/arm_neon.h (vabdl_high_s8): Reimplement using
3422 (vabdl_high_s16): Likewise.
3423 (vabdl_high_s32): Likewise.
3424 (vabdl_high_u8): Likewise.
3425 (vabdl_high_u16): Likewise.
3426 (vabdl_high_u32): Likewise.
3428 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3430 * config/aarch64/aarch64-simd-builtins.def (sabal2): Define
3433 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): New
3435 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SABAL2 and
3437 * config/aarch64/arm_neon.h (vabal_high_s8): Reimplement using
3439 (vabal_high_s16): Likewise.
3440 (vabal_high_s32): Likewise.
3441 (vabal_high_u8): Likewise.
3442 (vabal_high_u16): Likewise.
3443 (vabal_high_u32): Likewise.
3444 * config/aarch64/iterators.md (ABAL2): New mode iterator.
3445 (sur): Handle UNSPEC_SABAL2, UNSPEC_UABAL2.
3447 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3449 * config/aarch64/aarch64-simd-builtins.def (sabal): Define
3452 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>_4):
3454 (aarch64_<sur>abal<mode>): ... This
3455 (<sur>sadv16qi): Adust use of the above.
3456 * config/aarch64/arm_neon.h (vabal_s8): Reimplement using
3458 (vabal_s16): Likewise.
3459 (vabal_s32): Likewise.
3460 (vabal_u8): Likewise.
3461 (vabal_u16): Likewise.
3462 (vabal_u32): Likewise.
3464 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3466 * config/aarch64/aarch64-simd-builtins.def (saddlv, uaddlv):
3468 * config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
3470 * config/aarch64/arm_neon.h (vaddlv_s8): Reimplement using
3472 (vaddlv_s16): Likewise.
3473 (vaddlv_u8): Likewise.
3474 (vaddlv_u16): Likewise.
3475 (vaddlvq_s8): Likewise.
3476 (vaddlvq_s16): Likewise.
3477 (vaddlvq_s32): Likewise.
3478 (vaddlvq_u8): Likewise.
3479 (vaddlvq_u16): Likewise.
3480 (vaddlvq_u32): Likewise.
3481 (vaddlv_s32): Likewise.
3482 (vaddlv_u32): Likewise.
3483 * config/aarch64/iterators.md (VDQV_L): New mode iterator.
3484 (unspec): Add UNSPEC_SADDLV, UNSPEC_UADDLV.
3485 (Vwstype): New mode attribute.
3487 (VWIDE_S): Likewise.
3488 (USADDLV): New int iterator.
3489 (su): Handle UNSPEC_SADDLV, UNSPEC_UADDLV.
3491 2021-01-29 Jonathan Wright <jonathan.wright@arm.com>
3493 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_lane[q]
3494 builtin generator macros.
3495 * config/aarch64/aarch64-simd.md (aarch64_vec_<su>mlsl_lane<Qlane>):
3497 * config/aarch64/arm_neon.h (vmlsl_lane_s16): Use RTL builtin
3498 instead of inline asm.
3499 (vmlsl_lane_s32): Likewise.
3500 (vmlsl_lane_u16): Likewise.
3501 (vmlsl_lane_u32): Likewise.
3502 (vmlsl_laneq_s16): Likewise.
3503 (vmlsl_laneq_s32): Likewise.
3504 (vmlsl_laneq_u16): Likewise.
3505 (vmlsl_laneq_u32): Likewise.
3507 2021-01-29 Richard Biener <rguenther@suse.de>
3509 * doc/invoke.texi (--param max-gcse-memory): Document unit
3511 * gcse.c (gcse_or_cprop_is_too_expensive): Adjust.
3512 * params.opt (--param max-gcse-memory): Adjust default and
3513 document unit of size.
3515 2021-01-29 Richard Biener <rguenther@suse.de>
3517 PR rtl-optimization/98863
3518 * gcse.c (gcse_or_cprop_is_too_expensive): Use unsigned
3519 HOST_WIDE_INT for the memory estimate.
3521 2021-01-29 Bin Cheng <bin.cheng@linux.alibaba.com>
3522 Richard Biener <rguenther@suse.de>
3524 PR tree-optimization/97627
3525 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
3526 Do not analyze fake edges.
3528 2021-01-29 Richard Biener <rguenther@suse.de>
3530 PR rtl-optimization/98144
3531 * df.h (df_mir_bb_info): Add con_visited member.
3532 * df-problems.c (df_mir_alloc): Initialize con_visited,
3533 do not fully populate IN and OUT.
3534 (df_mir_reset): Likewise.
3535 (df_mir_confluence_0): Set con_visited.
3536 (df_mir_confluence_n): Properly handle implicitely
3537 fully populated IN and OUT as designated by con_visited
3538 and update con_visited accordingly.
3540 2021-01-29 Jakub Jelinek <jakub@redhat.com>
3543 * config/arm/vec-common.md (mve_vshlq_<supf><mode>,
3544 vashl<mode>3, vashr<mode>3, vlshr<mode>3): Add
3545 && !TARGET_REALLY_IWMMXT to conditions.
3547 2021-01-29 Jakub Jelinek <jakub@redhat.com>
3550 * cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing
3553 2021-01-28 Marek Polacek <polacek@redhat.com>
3556 * stor-layout.c (finalize_type_size): If we reset TYPE_USER_ALIGN in
3557 the main variant, maybe reset it in its variants too.
3558 * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
3559 (check_aligned_type): Check if TYPE_USER_ALIGN match.
3561 2021-01-28 Christophe Lyon <christophe.lyon@linaro.org>
3564 * config/arm/arm.c (arm_rtx_costs_internal): Adjust cost of vector
3565 of constant zero for comparisons.
3567 2021-01-28 Michael Meissner <meissner@linux.ibm.com>
3569 * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Add
3570 support for mapping built-in function names for long double
3571 built-in functions if long double is IEEE 128-bit.
3573 2021-01-28 Jonathan Wright <jonathan.wright@arm.com>
3575 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_n
3576 builtin generator macros.
3577 * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_n<mode>):
3579 * config/aarch64/arm_neon.h (vmlsl_n_s16): Use RTL builtin
3580 instead of inline asm.
3581 (vmlsl_n_s32): Likewise.
3582 (vmlsl_n_u16): Likewise.
3583 (vmlsl_n_u32): Likewise.
3585 2021-01-28 Jonathan Wright <jonathan.wright@arm.com>
3587 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_n
3588 builtin generator macros.
3589 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>):
3591 * config/aarch64/arm_neon.h (vmlal_n_s16): Use RTL builtin
3592 instead of inline asm.
3593 (vmlal_n_s32): Likewise.
3594 (vmlal_n_u16): Likewise.
3595 (vmlal_n_u32): Likewise.
3597 2021-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3599 * config/aarch64/aarch64-simd-builtins.def (shrn2): Define
3601 * config/aarch64/aarch64-simd.md (aarch64_shrn2<mode>_insn_le):
3603 (aarch64_shrn2<mode>_insn_be): Likewise.
3604 (aarch64_shrn2<mode>): Likewise.
3605 * config/aarch64/arm_neon.h (vshrn_high_n_s16): Reimlplement
3607 (vshrn_high_n_s32): Likewise.
3608 (vshrn_high_n_s64): Likewise.
3609 (vshrn_high_n_u16): Likewise.
3610 (vshrn_high_n_u32): Likewise.
3611 (vshrn_high_n_u64): Likewise.
3613 2021-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3615 * config/aarch64/aarch64-simd-builtins.def (shrn): Define
3617 * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le):
3619 (aarch64_shrn<mode>_insn_be): Likewise.
3620 (aarch64_shrn<mode>): Likewise.
3621 * config/aarch64/arm_neon.h (vshrn_n_s16): Reimplement using
3623 (vshrn_n_s32): Likewise.
3624 (vshrn_n_s64): Likewise.
3625 (vshrn_n_u16): Likewise.
3626 (vshrn_n_u32): Likewise.
3627 (vshrn_n_u64): Likewise.
3628 * config/aarch64/iterators.md (vn_mode): New mode attribute.
3630 2021-01-28 Richard Biener <rguenther@suse.de>
3632 PR rtl-optimization/80960
3633 * dse.c (check_mem_read_rtx): Call get_addr on the
3636 2021-01-28 Xionghu Luo <luoxhu@linux.ibm.com>
3637 David Edelsohn <dje.gcc@gmail.com>
3640 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3641 Don't generate VIEW_CONVERT_EXPR for fcode ALTIVEC_BUILTIN_VEC_INSERT
3643 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
3645 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Remove the
3646 wrapper call rs6000_expand_vector_set_var for cleanup. Call
3647 rs6000_expand_vector_set_var_p9 and rs6000_expand_vector_set_var_p8
3649 (rs6000_expand_vector_set_var): Delete.
3650 (rs6000_expand_vector_set_var_p9): Make static.
3651 (rs6000_expand_vector_set_var_p8): Make static.
3653 2021-01-28 Xing GUO <higuoxing@gmail.com>
3655 * common/config/riscv/riscv-common.c
3656 (riscv_subset_list::parsing_subset_version): Fix -march option parsing
3657 when `p` extension exists.
3659 2021-01-27 Vladimir N. Makarov <vmakarov@redhat.com>
3661 PR rtl-optimization/97684
3662 * ira.c (ira): Call ira_set_pseudo_classes before
3663 update_equiv_regs when it is necessary.
3665 2021-01-27 Jakub Jelinek <jakub@redhat.com>
3668 * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Use
3669 %w0, %w1 and %2 instead of %0, %1 and %2.
3671 2021-01-27 Aaron Sawdey <acsawdey@linux.ibm.com>
3673 * config/rs6000/genfusion.pl: New script to generate
3674 define_insn_and_split patterns so combine can arrange fused
3675 instructions next to each other.
3676 * config/rs6000/fusion.md: New file, generated fused instruction
3677 patterns for combine.
3678 * config/rs6000/predicates.md (const_m1_to_1_operand): New predicate.
3679 (non_update_memory_operand): New predicate.
3680 * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_P10_FUSION and
3681 OPTION_MASK_P10_FUSION_LD_CMPI to ISA_3_1_MASKS_SERVER and
3683 * config/rs6000/rs6000-protos.h (address_is_non_pfx_d_or_x): Add
3685 * config/rs6000/rs6000.c (rs6000_option_override_internal):
3686 Automatically set OPTION_MASK_P10_FUSION and
3687 OPTION_MASK_P10_FUSION_LD_CMPI if target is power10.
3688 (rs600_opt_masks): Allow -mpower10-fusion
3689 in function attributes.
3690 (address_is_non_pfx_d_or_x): New function.
3691 * config/rs6000/rs6000.h: Add MASK_P10_FUSION.
3692 * config/rs6000/rs6000.md: Include fusion.md.
3693 * config/rs6000/rs6000.opt: Add -mpower10-fusion
3694 and -mpower10-fusion-ld-cmpi.
3695 * config/rs6000/t-rs6000: Add dependencies involving fusion.md.
3697 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
3699 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal
3700 builtin generator macros.
3701 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal<mode>):
3703 (aarch64_<su>mlal<mode>): This.
3704 * config/aarch64/arm_neon.h (vmlal_s8): Use RTL builtin
3705 instead of inline asm.
3706 (vmlal_s16): Likewise.
3707 (vmlal_s32): Likewise.
3708 (vmlal_u8): Likewise.
3709 (vmlal_u16): Likewise.
3710 (vmlal_u32): Likewise.
3712 2021-01-27 Richard Biener <rguenther@suse.de>
3714 PR tree-optimization/98854
3715 * tree-vect-slp.c (vect_build_slp_tree_2): Also build
3716 PHIs from scalars when the number of CTORs matches the
3719 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
3721 * config/aarch64/aarch64-simd-builtins.def: Add mls_n builtin
3723 * config/aarch64/aarch64-simd.md (*aarch64_mls_elt_merge<mode>):
3725 (aarch64_mls_n<mode>): This.
3726 * config/aarch64/arm_neon.h (vmls_n_s16): Use RTL builtin
3728 (vmls_n_s32): Likewise.
3729 (vmls_n_u16): Likewise.
3730 (vmls_n_u32): Likewise.
3731 (vmlsq_n_s16): Likewise.
3732 (vmlsq_n_s32): Likewise.
3733 (vmlsq_n_u16): Likewise.
3734 (vmlsq_n_u32): Likewise.
3736 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
3738 * config/aarch64/aarch64-simd-builtins.def: Add mls builtin
3740 * config/aarch64/arm_neon.h (vmls_s8): Use RTL builtin rather
3742 (vmls_s16): Likewise.
3743 (vmls_s32): Likewise.
3744 (vmls_u8): Likewise.
3745 (vmls_u16): Likewise.
3746 (vmls_u32): Likewise.
3747 (vmlsq_s8): Likewise.
3748 (vmlsq_s16): Likewise.
3749 (vmlsq_s32): Likewise.
3750 (vmlsq_u8): Likewise.
3751 (vmlsq_u16): Likewise.
3752 (vmlsq_u32): Likewise.
3754 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
3756 * config/aarch64/aarch64-simd-builtins.def: Add mla_n builtin
3758 * config/aarch64/aarch64-simd.md (*aarch64_mla_elt_merge<mode>):
3760 (aarch64_mla_n<mode>): This.
3761 * config/aarch64/arm_neon.h (vmla_n_s16): Use RTL builtin
3763 (vmla_n_s32): Likewise.
3764 (vmla_n_u16): Likewise.
3765 (vmla_n_u32): Likewise.
3766 (vmlaq_n_s16): Likewise.
3767 (vmlaq_n_s32): Likewise.
3768 (vmlaq_n_u16): Likewise.
3769 (vmlaq_n_u32): Likewise.
3771 2021-01-27 liuhongt <hongtao.liu@intel.com>
3774 * config/i386/sse.md (sse2_gt<mode>3): Drop !TARGET_XOP in condition.
3775 (*sse2_eq<mode>3): Ditto.
3777 2021-01-27 Jakub Jelinek <jakub@redhat.com>
3779 * tree-pass.h (PROP_trees): Rename to ...
3780 (PROP_gimple): ... this.
3781 * cfgexpand.c (pass_data_expand): Replace PROP_trees with PROP_gimple.
3782 * passes.c (execute_function_dump, execute_function_todo,
3783 execute_one_ipa_transform_pass, execute_one_pass): Likewise.
3784 * varpool.c (ctor_for_folding): Likewise.
3786 2021-01-27 Jakub Jelinek <jakub@redhat.com>
3788 PR tree-optimization/97260
3789 * varpool.c: Include tree-pass.h.
3790 (ctor_for_folding): In GENERIC return DECL_INITIAL for TREE_READONLY
3791 non-TREE_SIDE_EFFECTS automatic variables.
3793 2021-01-26 Paul Fee <paul.f.fee@gmail.com>
3795 * doc/cpp.texi (__cplusplus): Document value for -std=c++23
3797 * doc/invoke.texi: Document -std=c++23 and -std=gnu++23.
3798 * dwarf2out.c (highest_c_language): Recognise C++20 and C++23.
3799 (gen_compile_unit_die): Recognise C++23.
3801 2021-01-26 Jakub Jelinek <jakub@redhat.com>
3804 * dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int
3807 2021-01-26 Jakub Jelinek <jakub@redhat.com>
3810 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
3811 Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt)
3812 and INTVAL (mask). Add && INTVAL (mask) > 0 condition.
3814 2021-01-26 Richard Biener <rguenther@suse.de>
3816 * gimple-pretty-print.c (dump_binary_rhs): Handle
3817 VEC_WIDEN_{PLUS,MINUS}_{LO,HI}_EXPR.
3819 2021-01-26 Richard Biener <rguenther@suse.de>
3822 * tree.h (vector_cst_int_elt): Remove.
3823 * tree.c (vector_cst_int_elt): Use poly_wide_int for computations,
3826 2021-01-26 Andrew Stubbs <ams@codesourcery.com>
3828 * config/gcn/gcn.c (gcn_expand_reduc_scalar): Use move instructions
3829 for V64DFmode min/max reductions.
3831 2021-01-26 Jakub Jelinek <jakub@redhat.com>
3833 * dwarf2asm.c (dw2_assemble_integer): Handle size twice as large
3834 as DWARF2_ADDR_SIZE if x is not a scalar int by emitting it as
3835 two halves, one with x and the other with const0_rtx, ordered
3836 depending on endianity.
3838 2021-01-26 Alexandre Oliva <oliva@adacore.com>
3840 * gimplify.c (gimplify_decl_expr): Skip asan marking calls for
3841 temporaries not seen in binding block, and not about to be
3842 added as gimple variables.
3844 2021-01-25 Martin Sebor <msebor@redhat.com>
3847 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust warning text.
3849 2021-01-25 Martin Liska <mliska@suse.cz>
3851 * value-prof.c (get_nth_most_common_value): Use %s instead
3854 2021-01-25 Jakub Jelinek <jakub@redhat.com>
3857 * configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG): Only define if
3858 readelf -wi is able to read the emitted .debug_info back.
3859 * configure: Regenerated.
3861 2021-01-25 Martin Liska <mliska@suse.cz>
3863 PR gcov-profile/98739
3864 * common.opt: Add missing sign symbol.
3865 * value-prof.c (get_nth_most_common_value): Restore handling
3866 of PROFILE_REPRODUCIBILITY_PARALLEL_RUNS and
3867 PROFILE_REPRODUCIBILITY_MULTITHREADED.
3869 2021-01-25 Richard Biener <rguenther@suse.de>
3872 * tree.c (vector_element_bits): Always use precision of
3873 the element type for boolean vectors.
3875 2021-01-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
3877 * config/rtems.h (STARTFILE_SPEC): Remove qnolinkcmds.
3878 (ENDFILE_SPEC): Evaluate qnolinkcmds.
3880 2021-01-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
3882 * config/rtems.h (STARTFILE_SPEC): Remove nostdlib and
3883 nostartfiles handling since this is already done by
3884 LINK_COMMAND_SPEC. Evaluate qnolinkcmds.
3885 (ENDFILE_SPEC): Remove nostdlib and nostartfiles handling since this
3886 is already done by LINK_COMMAND_SPEC.
3887 (LIB_SPECS): Remove nostdlib and nodefaultlibs handling since
3888 this is already done by LINK_COMMAND_SPEC. Remove qnolinkcmds
3891 2021-01-25 Jakub Jelinek <jakub@redhat.com>
3894 * fold-const-call.c (host_size_t_cst_p): Renamed to ...
3895 (size_t_cst_p): ... this. Check and store unsigned HOST_WIDE_INT
3896 value rather than host size_t.
3897 (fold_const_call): Change type of s2 from size_t to
3898 unsigned HOST_WIDE_INT. Use size_t_cst_p instead of
3899 host_size_t_cst_p. For strncmp calls, pass MIN (s2, SIZE_MAX)
3900 instead of s2 as last argument.
3902 2021-01-25 Tamar Christina <tamar.christina@arm.com>
3904 * config/arm/iterators.md (rotsplit1, rotsplit2, conj_op, fcmac1,
3905 VCMLA_OP, VCMUL_OP): New.
3906 * config/arm/mve.md (mve_vcmlaq<mve_rot><mode>): Support vec_dup 0.
3907 * config/arm/neon.md (cmul<conj_op><mode>3): New.
3908 * config/arm/unspecs.md (UNSPEC_VCMLA_CONJ, UNSPEC_VCMLA180_CONJ,
3909 UNSPEC_VCMUL_CONJ): New.
3910 * config/arm/vec-common.md (cmul<conj_op><mode>3, arm_vcmla<rot><mode>,
3911 cml<fcmac1><conj_op><mode>4): New.
3913 2021-01-23 Jakub Jelinek <jakub@redhat.com>
3916 * config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute.
3918 2021-01-22 Jonathan Wright <jonathan.wright@arm.com>
3920 * config/aarch64/aarch64-simd-builtins.def: Add mla builtin
3922 * config/aarch64/arm_neon.h (vmla_s8): Use RTL builtin rather
3924 (vmla_s16): Likewise.
3925 (vmla_s32): Likewise.
3926 (vmla_u8): Likewise.
3927 (vmla_u16): Likewise.
3928 (vmla_u32): Likewise.
3929 (vmlaq_s8): Likewise.
3930 (vmlaq_s16): Likewise.
3931 (vmlaq_s32): Likewise.
3932 (vmlaq_u8): Likewise.
3933 (vmlaq_u16): Likewise.
3934 (vmlaq_u32): Likewise.
3936 2021-01-22 David Malcolm <dmalcolm@redhat.com>
3938 * doc/invoke.texi (GCC_EXTRA_DIAGNOSTIC_OUTPUT): Add @findex
3941 2021-01-22 Jakub Jelinek <jakub@redhat.com>
3944 * dwarf2out.c (output_file_names): For -gdwarf-5, if there are no
3945 filenames to emit, still emit the required 0 index directory and
3946 filename entries that match DW_AT_comp_dir and DW_AT_name of the
3949 2021-01-22 Marek Polacek <polacek@redhat.com>
3952 * doc/invoke.texi: Update C++ ABI Version 15 description.
3954 2021-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3956 PR tree-optimization/98766
3957 * tree-ssa-math-opts.c (convert_mult_to_fma): Use maybe_le when
3958 comparing against type size with param_avoid_fma_max_bits.
3960 2021-01-22 Richard Biener <rguenther@suse.de>
3963 * tree.c (vector_element_bits): Key single-bit bool vector on
3964 integer mode rather than not vector mode.
3966 2021-01-22 Xionghu Luo <luoxhu@linux.ibm.com>
3969 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3970 Generate ARRAY_REF(VIEW_CONVERT_EXPR) for P8 and later
3972 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): Update
3973 to call different path for P8 and P9.
3974 (rs6000_expand_vector_set_var_p9): New function.
3975 (rs6000_expand_vector_set_var_p8): New function.
3977 2021-01-22 Xionghu Luo <luoxhu@linux.ibm.com>
3981 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3982 Ajdust variable index vec_insert from address dereference to
3983 ARRAY_REF(VIEW_CONVERT_EXPR) tree expression.
3984 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
3986 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): New function.
3988 2021-01-22 Martin Liska <mliska@suse.cz>
3990 PR gcov-profile/98739
3991 * profile.c (compute_value_histograms): Drop time profile for
3992 -fprofile-reproducible=multithreaded.
3994 2021-01-22 Nathan Sidwell <nathan@acm.org>
3996 * gcc.c (process_command): Don't check OPT_SPECIAL_input_file
3999 2021-01-22 Richard Biener <rguenther@suse.de>
4002 * tree-data-ref.c (initalize_matrix_A): Revert previous
4003 change, retaining failing on HOST_WIDE_INT_MIN CHREC_RIGHT.
4005 2021-01-22 Jakub Jelinek <jakub@redhat.com>
4007 PR tree-optimization/90248
4008 * match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X),
4009 X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove
4011 (X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X),
4012 X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications.
4014 2021-01-22 Jakub Jelinek <jakub@redhat.com>
4016 PR tree-optimization/98255
4017 * tree-dfa.c (get_ref_base_and_extent): For ARRAY_REFs, sign
4018 extend index - low_bound from sizetype's precision rather than index
4020 (get_addr_base_and_unit_offset_1): Likewise.
4021 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Likewise.
4022 * gimple-fold.c (fold_const_aggregate_ref_1): Likewise.
4024 2021-01-22 Richard Biener <rguenther@suse.de>
4026 PR tree-optimization/98786
4027 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid
4028 adding new uses of abnormals. Verify we deal with a conditional
4031 2021-01-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4034 * optc-save-gen.awk: Add arm_fp16_format to checked_options.
4036 2021-01-22 liuhongt <hongtao.liu@intel.com>
4040 * config/i386/sse.md (VI_128_256): New mode iterator.
4041 (*avx_cmp<mode>3_1, *avx_cmp<mode>3_2, *avx_cmp<mode>3_3,
4042 *avx_cmp<mode>3_4, *avx2_eq<mode>3, *avx2_pcmp<mode>3_1,
4043 *avx2_pcmp<mode>3_2, *avx2_gt<mode>3): New
4044 define_insn_and_split to lower avx512 vector comparison to avx
4045 version when dest is vector.
4046 (*<avx512>_cmp<mode>3,*<avx512>_cmp<mode>3,*<avx512>_ucmp<mode>3):
4047 define_insn_and_split for negating the comparison result.
4048 * config/i386/predicates.md (float_vector_all_ones_operand):
4050 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
4051 general NOT operator without UNSPEC_MASKOP.
4053 2021-01-21 Vladimir N. Makarov <vmakarov@redhat.com>
4055 PR rtl-optimization/98777
4056 * lra-int.h (lra_pmode_pseudo): New extern.
4057 * lra.c (lra_pmode_pseudo): New global.
4059 * lra-eliminations.c (eliminate_regs_in_insn): Use it.
4061 2021-01-21 Ilya Leoshkevich <iii@linux.ibm.com>
4063 * fwprop.c (fwprop_propagation::classify_result): Allow
4064 (subreg (mem)) simplifications.
4066 2021-01-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4068 * config/aarch64/aarch64-simd.md (aarch64_sqdml<SBINQOPS:as>l<mode>):
4070 (aarch64_sqdmlal<mode>): ... This...
4071 (aarch64_sqdmlsl<mode>): ... And this.
4072 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Split into...
4073 (aarch64_sqdmlal_lane<mode>): ... This...
4074 (aarch64_sqdmlsl_lane<mode>): ... And this.
4075 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Split into...
4076 (aarch64_sqdmlsl_laneq<mode>): ... This...
4077 (aarch64_sqdmlal_laneq<mode>): ... And this.
4078 (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Split into...
4079 (aarch64_sqdmlsl_n<mode>): ... This...
4080 (aarch64_sqdmlal_n<mode>): ... And this.
4081 (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Split into...
4082 (aarch64_sqdmlal2<mode>_internal): ... This...
4083 (aarch64_sqdmlsl2<mode>_internal): ... And this.
4085 2021-01-21 Christophe Lyon <christophe.lyon@linaro.org>
4087 * config/arm/arm_mve.h (__arm_vcmpneq_s8): Fix return type.
4089 2021-01-21 Andrea Corallo <andrea.corallo@arm.com>
4092 * doc/sourcebuild.texi (arm_thumb2_no_arm_v8_1_lob): Document.
4094 2021-01-21 liuhongt <hongtao.liu@intel.com>
4096 PR rtl-optimization/98694
4097 * regcprop.c (copy_value): If SRC had been assigned a mode
4098 narrower than the copy, we can't link DEST into the chain even
4099 they have same hard_regno_nregs(i.e. HImode/SImode in i386
4102 2021-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4104 * config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>):
4105 Convert to define_insn_and_split. Split into simple move when moving
4108 2021-01-20 Segher Boessenkool <segher@kernel.crashing.org>
4110 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Change assert.
4111 Adjust comment. Simplify code.
4113 2021-01-20 Jakub Jelinek <jakub@redhat.com>
4116 * dwarf2out.c (reset_indirect_string): Also reset indirect strings
4117 with DW_FORM_line_strp form.
4118 (prune_unused_types_update_strings): Don't add into debug_str_hash
4119 indirect strings with DW_FORM_line_strp form.
4120 (adjust_name_comp_dir): New function.
4121 (dwarf2out_finish): Call it on CU DIEs after resetting
4122 debug_line_str_hash.
4124 2021-01-20 Vladimir N. Makarov <vmakarov@redhat.com>
4126 PR rtl-optimization/98722
4127 * lra-eliminations.c (eliminate_regs_in_insn): Check that target
4128 has no 3-op add insn to transform insns containing two pluses.
4130 2021-01-20 Richard Biener <rguenther@suse.de>
4132 * hwint.h (add_hwi): New function.
4133 (mul_hwi): Likewise.
4134 * tree-data-ref.c (initialize_matrix_A): Properly translate
4135 tree constants and avoid HOST_WIDE_INT_MIN.
4136 (lambda_matrix_row_add): Avoid undefined integer overflow
4137 and return true on such overflow.
4138 (lambda_matrix_right_hermite): Handle overflow from
4139 lambda_matrix_row_add gracefully. Simplify previous fix.
4140 (analyze_subscript_affine_affine): Likewise.
4142 2021-01-20 Eugene Rozenfeld <erozen@microsoft.com>
4144 PR tree-optimization/96674
4145 * match.pd: New patterns: x < y || y == XXX_MIN --> x <= y - 1
4146 x >= y && y != XXX_MIN --> x > y - 1
4148 2021-01-20 Richard Sandiford <richard.sandiford@arm.com>
4150 PR tree-optimization/98535
4151 * tree-vect-slp.c (duplicate_and_interleave): Use quick_grow_cleared.
4152 If the high and low permutes are the same, remove the high permutes
4153 from the working set and only continue with the low ones.
4155 2021-01-20 Jakub Jelinek <jakub@redhat.com>
4157 PR tree-optimization/98721
4158 * builtins.c (access_ref::inform_access): Don't assume
4159 SSA_NAME_IDENTIFIER must be non-NULL. Print messages about
4160 object whenever allocfn is NULL, rather than only when DECL_P
4161 is true. Use %qE instead of %qD for that. Formatting fixes.
4163 2021-01-20 Richard Biener <rguenther@suse.de>
4165 PR tree-optimization/98758
4166 * tree-data-ref.c (int_divides_p): Use lambda_int arguments.
4167 (lambda_matrix_right_hermite): Avoid undefinedness with
4168 signed integer abs and multiplication.
4169 (analyze_subscript_affine_affine): Use lambda_int.
4171 2021-01-20 David Malcolm <dmalcolm@redhat.com>
4174 * dwarf2out.c (output_line_info): Rename static variable
4175 "generation", moving it out of the function to...
4176 (output_line_info_generation): New.
4177 (init_sections_and_labels): Likewise, renaming the variable to...
4178 (init_sections_and_labels_generation): New.
4179 (dwarf2out_c_finalize): Reset the new variables.
4181 2021-01-19 Martin Sebor <msebor@redhat.com>
4184 * tree-ssa-live.c (remove_unused_scope_block_p): Keep scopes for
4185 all functions, even if they're not declared artificial or inline.
4186 * tree.c (tree_inlined_location): Use macro expansion location
4187 only if scope traversal fails to expose one.
4189 2021-01-19 Richard Sandiford <richard.sandiford@arm.com>
4191 PR rtl-optimization/92294
4192 * alias.c (compare_base_symbol_refs): Take an extra parameter
4193 and add the distance between two symbols to it. Enshrine in
4194 comments that -1 means "either 0 or 1, but we can't tell
4195 which at compile time".
4196 (memrefs_conflict_p): Update call accordingly.
4197 (rtx_equal_for_memref_p): Likewise. Take the distance between symbols
4200 2021-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4202 * config/aarch64/aarch64-simd-builtins.def (sqshl, uqshl,
4203 sqrshl, uqrshl, sqadd, uqadd, sqsub, uqsub, suqadd, usqadd, sqmovn,
4204 uqmovn, sqxtn2, uqxtn2, sqabs, sqneg, sqdmlal, sqdmlsl, sqdmlal_lane,
4205 sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq, sqdmlal_n, sqdmlsl_n,
4206 sqdmlal2, sqdmlsl2, sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq,
4207 sqdmlsl2_laneq, sqdmlal2_n, sqdmlsl2_n, sqdmull, sqdmull_lane,
4208 sqdmull_laneq, sqdmull_n, sqdmull2, sqdmull2_lane, sqdmull2_laneq,
4209 sqdmull2_n, sqdmulh, sqrdmulh, sqdmulh_lane, sqdmulh_laneq,
4210 sqrdmulh_lane, sqrdmulh_laneq, sqshrun_n, sqrshrun_n, sqshrn_n,
4211 uqshrn_n, sqrshrn_n, uqrshrn_n, sqshlu_n, sqshl_n, uqshl_n, sqrdmlah,
4212 sqrdmlsh, sqrdmlah_lane, sqrdmlsh_lane, sqrdmlah_laneq, sqrdmlsh_laneq,
4213 sqmovun): Use NONE flags.
4215 2021-01-19 Richard Biener <rguenther@suse.de>
4218 * ipa-modref.c (analyze_stmt): Only record a summary for a
4221 2021-01-19 Richard Biener <rguenther@suse.de>
4224 * tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT.
4226 2021-01-19 Daniel Hellstrom <daniel@gaisler.com>
4228 * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
4229 built-in define __FIX_LEON3FT_TN0018.
4231 2021-01-19 Richard Biener <rguenther@suse.de>
4234 * tree-inline.c (tree_function_versioning): Set input_location
4235 to UNKNOWN_LOCATION throughout the function.
4237 2021-01-19 Tobias Burnus <tobias@codesourcery.com>
4240 * omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr.
4242 2021-01-19 Martin Jambor <mjambor@suse.cz>
4245 * ipa-sra.c (ssa_name_only_returned_p): New parameter fun. Check
4246 whether non-call exceptions allow removal of a statement.
4247 (isra_analyze_call): Pass the appropriate function to
4248 ssa_name_only_returned_p.
4250 2021-01-19 Geng Qi <gengqi@linux.alibaba.com>
4252 * config/riscv/arch-canonicalize (longext_sort): New function for
4253 sorting 'multi-letter'.
4254 * config/riscv/multilib-generator: Adjusting the loop of 'alt' in
4255 'alts'. The 'arch' may not be the first of 'alts'.
4256 (_expand_combination): Add underline for the 'ext' without '*'.
4257 This is because, a single-letter extension can always be treated well
4258 with a '_' prefix, but it cannot be separated out if it is appended
4261 2021-01-18 Vladimir N. Makarov <vmakarov@redhat.com>
4264 * ira.c (ira): Skip abnormal critical edge splitting.
4266 2021-01-18 Jakub Jelinek <jakub@redhat.com>
4268 PR tree-optimization/98727
4269 * tree-ssa-math-opts.c (match_arith_overflow): Fix up computation of
4270 second .MUL_OVERFLOW operand for signed multiplication with overflow
4271 checking if the second operand of multiplication is not constant.
4273 2021-01-18 David Edelsohn <dje.gcc@gmail.com>
4275 * doc/invoke.texi (-gdwarf): TPF defaults to version 2 and AIX
4276 defaults to version 4.
4278 2021-01-18 David Malcolm <dmalcolm@redhat.com>
4280 * attribs.h (fndecl_dealloc_argno): New decl.
4281 * builtins.c (call_dealloc_argno): Split out second half of
4283 (fndecl_dealloc_argno): New.
4284 * doc/extend.texi (Common Function Attributes): Document the
4285 interaction between the analyzer and the malloc attribute.
4286 * doc/invoke.texi (Static Analyzer Options): Likewise.
4288 2021-01-17 David Edelsohn <dje.gcc@gmail.com>
4290 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Override
4292 * config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
4294 2021-01-17 Martin Jambor <mjambor@suse.cz>
4297 * cgraph.c (clone_of_p): Check also former_clone_of as we climb
4300 2021-01-17 Mark Wielaard <mark@klomp.org>
4302 * common.opt (gdwarf-): Init(5).
4303 * doc/invoke.texi (-gdwarf): Document default to 5.
4305 2021-01-16 Kwok Cheung Yeung <kcy@codesourcery.com>
4308 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
4310 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR):
4311 ...this. Add extra argument.
4312 * gimplify.c (omp_default_clause): Ensure that event handle is
4313 firstprivate in a task region.
4314 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DETACH.
4315 (gimplify_adjust_omp_clauses): Likewise.
4316 * omp-builtins.def (BUILT_IN_GOMP_TASK): Change function type to
4317 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR.
4318 * omp-expand.c (expand_task_call): Add GOMP_TASK_FLAG_DETACH to flags
4319 if detach clause specified. Add detach argument when generating
4321 * omp-low.c (scan_sharing_clauses): Setup data environment for detach
4323 (finish_taskreg_scan): Move field for variable containing the event
4324 handle to the front of the struct.
4325 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DETACH. Fix
4327 * tree-nested.c (convert_nonlocal_omp_clauses): Handle
4328 OMP_CLAUSE_DETACH clause.
4329 (convert_local_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
4330 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_DETACH.
4331 * tree.c (omp_clause_num_ops): Add entry for OMP_CLAUSE_DETACH.
4333 (omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH. Fix
4335 (walk_tree_1): Handle OMP_CLAUSE_DETACH.
4337 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
4339 * config/nios2/t-rtems: Reset all MULTILIB_* variables. Shorten
4340 multilib directory names. Use MULTILIB_REQUIRED instead of
4341 MULTILIB_EXCEPTIONS. Add -mhw-mul -mhw-mulx -mhw-div
4342 -mcustom-fpu-cfg=fph2 multilib.
4344 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
4346 * config/nios2/nios2.c (NIOS2_FPU_CONFIG_NUM): Adjust value.
4347 (nios2_init_fpu_configs): Provide register values for new
4348 -mcustom-fpu-cfg=fph2 option variant.
4349 * doc/invoke.texi (-mcustom-fpu-cfg=fph2): Document new option
4352 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
4354 * config/nios2/nios2.c (nios2_custom_check_insns): Remove
4355 custom instruction warnings.
4357 2021-01-16 Jakub Jelinek <jakub@redhat.com>
4359 PR tree-optimization/96669
4360 * match.pd ((CST << x) & 1 -> x == 0): New simplification.
4362 2021-01-16 Jakub Jelinek <jakub@redhat.com>
4364 PR tree-optimization/96271
4365 * passes.def: Pass false argument to first two pass_cd_dce
4366 instances and true to last instance. Add comment that
4367 last instance rewrites no longer addressed locals.
4368 * tree-ssa-dce.c (pass_cd_dce): Add update_address_taken_p member and
4370 (pass_cd_dce::set_pass_param): New method.
4371 (pass_cd_dce::execute): Return TODO_update_address_taken from
4372 last cd_dce instance.
4374 2021-01-15 Carl Love <cel@us.ibm.com>
4376 * config/rs6000/altivec.h (vec_mulh, vec_div, vec_dive, vec_mod):
4378 * config/rs6000/altivec.md (VIlong): Move define to file vsx.md.
4379 * config/rs6000/rs6000-builtin.def (DIVES_V4SI, DIVES_V2DI,
4380 DIVEU_V4SI, DIVEU_V2DI, DIVS_V4SI, DIVS_V2DI, DIVU_V4SI,
4381 DIVU_V2DI, MODS_V2DI, MODS_V4SI, MODU_V2DI, MODU_V4SI,
4382 MULHS_V2DI, MULHS_V4SI, MULHU_V2DI, MULHU_V4SI, MULLD_V2DI):
4384 (MULH, DIVE, MOD): Add new BU_P10_OVERLOAD_2 definitions.
4385 * config/rs6000/rs6000-call.c (VSX_BUILTIN_VEC_DIV,
4386 VSX_BUILTIN_VEC_DIVE, P10_BUILTIN_VEC_MOD, P10_BUILTIN_VEC_MULH):
4387 New overloaded definitions.
4388 (builtin_function_type) [P10V_BUILTIN_DIVEU_V4SI,
4389 P10V_BUILTIN_DIVEU_V2DI, P10V_BUILTIN_DIVU_V4SI,
4390 P10V_BUILTIN_DIVU_V2DI, P10V_BUILTIN_MODU_V2DI,
4391 P10V_BUILTIN_MODU_V4SI, P10V_BUILTIN_MULHU_V2DI,
4392 P10V_BUILTIN_MULHU_V4SI]: Add case
4393 statement for builtins.
4394 * config/rs6000/rs6000.md (bits): Add new attribute sizes V4SI, V2DI.
4395 * config/rs6000/vsx.md (VIlong): Moved from config/rs6000/altivec.md.
4396 (UNSPEC_VDIVES, UNSPEC_VDIVEU): New unspec definitions.
4397 (vsx_mul_v2di): Add if TARGET_POWER10 statement.
4398 (vsx_udiv_v2di): Add if TARGET_POWER10 statement.
4399 (dives_<mode>, diveu_<mode>, div<mode>3, uvdiv<mode>3,
4400 mods_<mode>, modu_<mode>, mulhs_<mode>, mulhu_<mode>, mulv2di3):
4401 Add define_insn, mode is VIlong.
4402 * doc/extend.texi (vec_mulh, vec_mul, vec_div, vec_dive, vec_mod):
4403 Add builtin descriptions.
4405 2021-01-15 Eric Botcazou <ebotcazou@adacore.com>
4407 * final.c (final_start_function_1): Reset force_source_line.
4409 2021-01-15 Jakub Jelinek <jakub@redhat.com>
4411 PR tree-optimization/96669
4412 * match.pd (((1 << A) & 1) != 0 -> A == 0,
4413 ((1 << A) & 1) == 0 -> A != 0): Generalize for 1s replaced by
4414 possibly different power of two constants and to right shift too.
4416 2021-01-15 Jakub Jelinek <jakub@redhat.com>
4418 PR tree-optimization/96681
4419 * match.pd ((x < 0) ^ (y < 0) to (x ^ y) < 0): New simplification.
4420 ((x >= 0) ^ (y >= 0) to (x ^ y) < 0): Likewise.
4421 ((x < 0) ^ (y >= 0) to (x ^ y) >= 0): Likewise.
4422 ((x >= 0) ^ (y < 0) to (x ^ y) >= 0): Likewise.
4424 2021-01-15 Alexandre Oliva <oliva@adacore.com>
4426 * opts.c (gen_command_line_string): Exclude -dumpbase-ext.
4428 2021-01-15 Tamar Christina <tamar.christina@arm.com>
4430 * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4,
4431 cmul<conj_op><mode>3): New.
4432 * config/aarch64/iterators.md (UNSPEC_FCMUL,
4433 UNSPEC_FCMUL180, UNSPEC_FCMLA_CONJ, UNSPEC_FCMLA180_CONJ,
4434 UNSPEC_CMLA_CONJ, UNSPEC_CMLA180_CONJ, UNSPEC_CMUL, UNSPEC_CMUL180,
4435 FCMLA_OP, FCMUL_OP, conj_op, rotsplit1, rotsplit2, fcmac1, sve_rot1,
4436 sve_rot2, SVE2_INT_CMLA_OP, SVE2_INT_CMUL_OP, SVE2_INT_CADD_OP): New.
4437 (rot): Add UNSPEC_FCMUL, UNSPEC_FCMUL180.
4438 (rot_op): Renamed to conj_op.
4439 * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4,
4440 cmul<conj_op><mode>3): New.
4441 * config/aarch64/aarch64-sve2.md (cml<fcmac1><conj_op><mode>4,
4442 cmul<conj_op><mode>3): New.
4444 2021-01-15 David Malcolm <dmalcolm@redhat.com>
4448 (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
4449 Escape the tempfile name when constructing the expected output.
4451 2021-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4453 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlsl_hi<mode>):
4455 (aarch64_<su>mlsl_hi<mode>): ... This.
4456 (aarch64_<su>mlsl_hi<mode>): Define.
4457 (*aarch64_<su>mlsl<mode): Rename to...
4458 (aarch64_<su>mlsl<mode): ... This.
4459 * config/aarch64/aarch64-simd-builtins.def (smlsl, umlsl,
4460 smlsl_hi, umlsl_hi): Define builtins.
4461 * config/aarch64/arm_neon.h (vmlsl_high_s8, vmlsl_high_s16,
4462 vmlsl_high_s32, vmlsl_high_u8, vmlsl_high_u16, vmlsl_high_u32,
4463 vmlsl_s8, vmlsl_s16, vmlsl_s32, vmlsl_u8,
4464 vmlsl_u16, vmlsl_u32): Reimplement with builtins.
4466 2021-01-15 Uroš Bizjak <ubizjak@gmail.com>
4468 * config/i386/i386-c.c (ix86_target_macros):
4469 Use cpp_define_formatted for __SIZEOF_FLOAT80__ definition.
4471 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
4474 * config.gcc (aarch64*-*-*): Add aarch64-cc-fusion.o to extra_objs.
4475 * Makefile.in (RTL_SSA_H): New variable.
4476 * config/aarch64/t-aarch64 (aarch64-cc-fusion.o): New rule.
4477 * config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Declare.
4478 * config/aarch64/aarch64-passes.def: Add pass_cc_fusion after
4480 * config/aarch64/aarch64-cc-fusion.cc: New file.
4482 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
4484 * recog.h (insn_change_watermark::~insn_change_watermark): Avoid
4485 calling cancel_changes for changes that no longer exist.
4487 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
4489 * rtl-ssa/functions.h (function_info::ref_defs): Rename to...
4490 (function_info::reg_defs): ...this.
4491 * rtl-ssa/member-fns.inl (function_info::ref_defs): Rename to...
4492 (function_info::reg_defs): ...this.
4494 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
4497 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
4499 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
4502 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
4505 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
4507 2021-01-15 Richard Biener <rguenther@suse.de>
4509 PR tree-optimization/96376
4510 * tree-vect-stmts.c (get_load_store_type): Disregard alignment
4513 2021-01-15 Martin Liska <mliska@suse.cz>
4515 * doc/install.texi: Document that some tests need pytest module.
4516 * doc/sourcebuild.texi: Likewise.
4518 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
4521 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
4523 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
4525 * config/arm/mve.md (mve_vshrq_n_s<mode>_imm): New entry.
4526 (mve_vshrq_n_u<mode>_imm): Likewise.
4527 * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Move to ...
4528 * config/arm/vec-common.md: ... here.
4530 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
4532 * config/arm/mve.md (mve_vshlq_<supf><mode>): Move to
4534 * config/arm/neon.md (vashl<mode>3): Delete.
4535 * config/arm/vec-common.md (mve_vshlq_<supf><mode>): New.
4536 (vasl<mode>3): New expander.
4538 2021-01-15 Richard Biener <rguenther@suse.de>
4540 PR tree-optimization/98685
4541 * tree-vect-slp.c (vect_schedule_slp_node): Refactor handling
4542 of vector extern defs.
4544 2021-01-14 David Malcolm <dmalcolm@redhat.com>
4547 * diagnostic.c (diagnostic_kind_text): Break out this array
4549 (diagnostic_build_prefix): ...here.
4550 (fancy_abort): Detect when diagnostic_initialize has not yet been
4551 called and fall back to a minimal implementation of printing the
4552 ICE, rather than segfaulting in internal_error.
4554 2021-01-14 David Malcolm <dmalcolm@redhat.com>
4556 * diagnostic.c (diagnostic_initialize): Eliminate
4557 parseable_fixits_p in favor of initializing extra_output_kind from
4558 GCC_EXTRA_DIAGNOSTIC_OUTPUT.
4559 (convert_column_unit): New function, split out from...
4560 (diagnostic_converted_column): ...this.
4561 (print_parseable_fixits): Add "column_unit" and "tabstop" params.
4562 Use them to call convert_column_unit on the column values.
4563 (diagnostic_report_diagnostic): Eliminate conditional on
4564 parseable_fixits_p in favor of a switch statement on
4565 extra_output_kind, passing the appropriate values to the new
4566 params of print_parseable_fixits.
4567 (selftest::test_print_parseable_fixits_none): Update for new
4568 params of print_parseable_fixits.
4569 (selftest::test_print_parseable_fixits_insert): Likewise.
4570 (selftest::test_print_parseable_fixits_remove): Likewise.
4571 (selftest::test_print_parseable_fixits_replace): Likewise.
4572 (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
4574 (selftest::diagnostic_c_tests): Call it.
4575 * diagnostic.h (enum diagnostics_extra_output_kind): New.
4576 (diagnostic_context::parseable_fixits_p): Delete field in favor
4578 (diagnostic_context::extra_output_kind): ...this new field.
4579 * doc/invoke.texi (Environment Variables): Add
4580 GCC_EXTRA_DIAGNOSTIC_OUTPUT.
4581 * opts.c (common_handle_option): Update handling of
4582 OPT_fdiagnostics_parseable_fixits for change to diagnostic_context
4585 2021-01-14 Tamar Christina <tamar.christina@arm.com>
4587 * tree-vect-slp-patterns.c (class complex_operations_pattern,
4588 complex_operations_pattern::matches,
4589 complex_operations_pattern::recognize,
4590 complex_operations_pattern::build): New.
4591 (slp_patterns): Use it.
4593 2021-01-14 Tamar Christina <tamar.christina@arm.com>
4595 * internal-fn.def (COMPLEX_FMS, COMPLEX_FMS_CONJ): New.
4596 * optabs.def (cmls_optab, cmls_conj_optab): New.
4597 * doc/md.texi: Document them.
4598 * tree-vect-slp-patterns.c (class complex_fms_pattern,
4599 complex_fms_pattern::matches, complex_fms_pattern::recognize,
4600 complex_fms_pattern::build): New.
4602 2021-01-14 Tamar Christina <tamar.christina@arm.com>
4604 * internal-fn.def (COMPLEX_FMA, COMPLEX_FMA_CONJ): New.
4605 * optabs.def (cmla_optab, cmla_conj_optab): New.
4606 * doc/md.texi: Document them.
4607 * tree-vect-slp-patterns.c (vect_match_call_p,
4608 class complex_fma_pattern, vect_slp_reset_pattern,
4609 complex_fma_pattern::matches, complex_fma_pattern::recognize,
4610 complex_fma_pattern::build): New.
4612 2021-01-14 Tamar Christina <tamar.christina@arm.com>
4614 * internal-fn.def (COMPLEX_MUL, COMPLEX_MUL_CONJ): New.
4615 * optabs.def (cmul_optab, cmul_conj_optab): New.
4616 * doc/md.texi: Document them.
4617 * tree-vect-slp-patterns.c (vect_match_call_complex_mla,
4618 vect_normalize_conj_loc, is_eq_or_top, vect_validate_multiplication,
4619 vect_build_combine_node, class complex_mul_pattern,
4620 complex_mul_pattern::matches, complex_mul_pattern::recognize,
4621 complex_mul_pattern::build): New.
4623 2021-01-14 Tamar Christina <tamar.christina@arm.com>
4625 * tree-vect-slp.c (optimize_load_redistribution_1): New.
4626 (optimize_load_redistribution, vect_is_slp_load_node): New.
4627 (vect_match_slp_patterns): Use it.
4629 2021-01-14 Tamar Christina <tamar.christina@arm.com>
4631 * tree-vect-slp-patterns.c (complex_add_pattern::build):
4634 2021-01-14 Thomas Schwinge <thomas@codesourcery.com>
4636 * config/gcn/mkoffload.c (main): Create an offload image only in
4637 64-bit configurations.
4639 2021-01-14 H.J. Lu <hjl.tools@gmail.com>
4642 * config/i386/i386-options.c (ix86_option_override_internal):
4643 Issue an error for -fcf-protection with CF_BRANCH when compiling
4644 for 32-bit non-TARGET_CMOV targets.
4646 2021-01-14 Uroš Bizjak <ubizjak@gmail.com>
4649 * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
4650 Remove declaration and initialization of shadow variable "ret".
4651 (ix86_option_override_internal): Remove delcaration of
4652 shadow variable "i". Redeclare shadowed variable to unsigned.
4653 * common/config/i386/i386-common.c (pta_size): Redeclare to unsigned.
4654 * config/i386/i386-builtins.c (get_builtin_code_for_version):
4655 Update for redeclaration.
4656 * config/i386/i386.h (pta_size): Ditto.
4658 2021-01-14 Richard Biener <rguenther@suse.de>
4660 PR tree-optimization/98674
4661 * tree-data-ref.c (base_supports_access_fn_components_p): New.
4662 (initialize_data_dependence_relation): For two bases without
4663 possible access fns resort to type size equality when determining
4664 shape compatibility.
4666 2021-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4669 * config/arm/arm_neon.h: Replace calls to __builtin_vcge* by
4670 <=, >= operators in vcle and vcge intrinsics respectively.
4671 * config/arm/arm_neon_builtins.def: Remove entry for
4674 2021-01-14 Uroš Bizjak <ubizjak@gmail.com>
4677 * config/i386/i386-options.c (ix86_function_specific_save):
4678 Remove redundant assignment to opts->x_ix86_branch_cost.
4679 * config/i386/i386.c (ix86_prefetch_sse):
4680 Rename from x86_prefetch_sse. Update all uses.
4681 * config/i386/i386.h: Update for rename.
4682 * config/i386/i386-options.h: Ditto.
4684 2021-01-14 Jakub Jelinek <jakub@redhat.com>
4687 * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3,
4688 *sse4_1_zero_extendv4hiv4si2_3, *sse4_1_zero_extendv2siv2di2_3):
4689 Use Bm instead of m for non-avx. Add isa attribute.
4691 2021-01-14 Jakub Jelinek <jakub@redhat.com>
4693 PR tree-optimization/96688
4694 * match.pd (~(X >> Y) -> ~X >> Y): New simplification if
4695 ~X can be simplified.
4697 2021-01-14 Richard Sandiford <richard.sandiford@arm.com>
4699 * tree-vect-stmts.c (vect_model_load_cost): Account for unused
4700 IFN_LOAD_LANES results.
4702 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4704 * config/aarch64/aarch64-simd.md (aarch64_<su>xtl<mode>):
4706 (aarch64_xtn<mode>): Likewise.
4707 * config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn):
4710 * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
4712 (vmovl_s16): Likewise.
4713 (vmovl_s32): Likewise.
4714 (vmovl_u8): Likewise.
4715 (vmovl_u16): Likewise.
4716 (vmovl_u32): Likewise.
4717 (vmovn_s16): Likewise.
4718 (vmovn_s32): Likewise.
4719 (vmovn_s64): Likewise.
4720 (vmovn_u16): Likewise.
4721 (vmovn_u32): Likewise.
4722 (vmovn_u64): Likewise.
4724 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4726 * config/aarch64/aarch64-simd.md (aarch64_<su>qxtn2<mode>_le):
4728 (aarch64_<su>qxtn2<mode>_be): Likewise.
4729 (aarch64_<su>qxtn2<mode>): Likewise.
4730 * config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2):
4732 * config/aarch64/iterators.md (SAT_TRUNC): Define code_iterator.
4733 (su): Handle ss_truncate and us_truncate.
4734 * config/aarch64/arm_neon.h (vqmovn_high_s16): Reimplement using
4736 (vqmovn_high_s32): Likewise.
4737 (vqmovn_high_s64): Likewise.
4738 (vqmovn_high_u16): Likewise.
4739 (vqmovn_high_u32): Likewise.
4740 (vqmovn_high_u64): Likewise.
4742 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4744 * config/aarch64/aarch64-simd.md (aarch64_xtn2<mode>_le):
4746 (aarch64_xtn2<mode>_be): Likewise.
4747 (aarch64_xtn2<mode>): Likewise.
4748 * config/aarch64/aarch64-simd-builtins.def (xtn2): Define
4750 * config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using
4752 (vmovn_high_s32): Likewise.
4753 (vmovn_high_s64): Likewise.
4754 (vmovn_high_u16): Likewise.
4755 (vmovn_high_u32): Likewise.
4756 (vmovn_high_u64): Likewise.
4758 2021-01-13 Stafford Horne <shorne@gmail.com>
4760 * config/or1k/or1k.h (ASM_PREFERRED_EH_DATA_FORMAT): New macro.
4762 2021-01-13 Stafford Horne <shorne@gmail.com>
4764 * config/or1k/linux.h (TARGET_ASM_FILE_END): Define macro.
4766 2021-01-13 Stafford Horne <shorne@gmail.com>
4768 * config/or1k/or1k.h (TARGET_CPU_CPP_BUILTINS): Add builtin
4769 define for __or1k_hard_float__.
4771 2021-01-13 Stafford Horne <shorne@gmail.com>
4773 * config/or1k/or1k.h (NO_PROFILE_COUNTERS): Define as 1.
4774 (PROFILE_HOOK): Define to call _mcount.
4775 (FUNCTION_PROFILER): Change from abort to no-op.
4777 2021-01-13 Jakub Jelinek <jakub@redhat.com>
4779 PR tree-optimization/96691
4780 * match.pd ((~X | C) ^ D -> (X | C) ^ (~D ^ C),
4781 (~X & C) ^ D -> (X & C) ^ (D ^ C)): New simplifications if
4782 (~D ^ C) or (D ^ C) can be simplified.
4784 2021-01-13 Richard Biener <rguenther@suse.de>
4786 PR tree-optimization/92645
4787 * match.pd (BIT_FIELD_REF to conversion): Delay canonicalization
4788 until after vector lowering.
4790 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
4792 * config/aarch64/aarch64-sve.md (fnma<mode>4): Extend from SVE_FULL_I
4794 (@aarch64_pred_fnma<mode>, cond_fnma<mode>, *cond_fnma<mode>_2)
4795 (*cond_fnma<mode>_4, *cond_fnma<mode>_any): Likewise.
4797 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
4799 * config/aarch64/aarch64-sve.md (fma<mode>4): Extend from SVE_FULL_I
4801 (@aarch64_pred_fma<mode>, cond_fma<mode>, *cond_fma<mode>_2)
4802 (*cond_fma<mode>_4, *cond_fma<mode>_any): Likewise.
4804 2021-01-13 Richard Biener <rguenther@suse.de>
4806 PR tree-optimization/92645
4807 * tree-vect-slp.c (vect_build_slp_tree_1): Relax supported
4808 BIT_FIELD_REF argument.
4809 (vect_build_slp_tree_2): Record the desired vector type
4810 on the external vector def.
4811 (vectorizable_slp_permutation): Handle required punning
4812 of existing vector defs.
4814 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
4816 * rtl-ssa/accesses.h (def_lookup): Fix order of comparison results.
4818 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
4820 * config/sh/sh.md (movsf_ie): Remove operands[2] test.
4822 2021-01-13 Samuel Thibault <samuel.thibault@ens-lyon.org>
4824 * config.gcc [$target == *-*-gnu*]: Enable
4825 'default_gnu_indirect_function'.
4827 2021-01-13 Jakub Jelinek <jakub@redhat.com>
4830 * optabs.c (expand_vec_perm_const): Don't force v0 and v1 into
4831 registers before calling targetm.vectorize.vec_perm_const, only after
4833 * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): Handle
4834 two argument permutation when one operand is zero vector and only
4835 after that force operands into registers.
4836 * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1): New
4837 define_insn_and_split pattern.
4838 (*avx512bw_zero_extendv32qiv32hi2_1): Likewise.
4839 (*avx512f_zero_extendv16hiv16si2_1): Likewise.
4840 (*avx2_zero_extendv8hiv8si2_1): Likewise.
4841 (*avx512f_zero_extendv8siv8di2_1): Likewise.
4842 (*avx2_zero_extendv4siv4di2_1): Likewise.
4843 * config/mips/mips.c (mips_vectorize_vec_perm_const): Force operands
4845 * config/arm/arm.c (arm_vectorize_vec_perm_const): Likewise.
4846 * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Likewise.
4847 * config/ia64/ia64.c (ia64_vectorize_vec_perm_const): Likewise.
4848 * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const): Likewise.
4849 * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const): Likewise.
4850 * config/gcn/gcn.c (gcn_vectorize_vec_perm_const): Likewise. Use std::swap.
4852 2021-01-13 Martin Liska <mliska@suse.cz>
4854 PR tree-optimization/98455
4855 * gimple-if-to-switch.cc (condition_info::record_phi_mapping):
4856 Record also virtual PHIs.
4857 (pass_if_to_switch::execute): Return TODO_cleanup_cfg only
4860 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
4862 * doc/invoke.texi (C++ Modules): Fix typos.
4864 2021-01-13 Richard Biener <rguenther@suse.de>
4866 PR tree-optimization/98640
4867 * tree-ssa-sccvn.c (visit_nary_op): Do not try to
4868 handle plus or minus from a truncated operand to be
4871 2021-01-13 Jakub Jelinek <jakub@redhat.com>
4874 * config/i386/i386.md (*btr<mode>_1, *btr<mode>_2): New
4875 define_insn_and_split patterns.
4876 (splitter after *btr<mode>_2): New splitter.
4878 2021-01-13 Martin Liska <mliska@suse.cz>
4881 * cgraphunit.c (analyze_functions): Remove dead code.
4883 2021-01-13 Qian Jianhua <qianjh@cn.fujitsu.com>
4885 * config/aarch64/aarch64-cost-tables.h (a64fx_extra_costs): New.
4886 * config/aarch64/aarch64.c (a64fx_addrcost_table): New.
4887 (a64fx_regmove_cost, a64fx_vector_cost): New.
4888 (a64fx_tunings): Use the new added cost tables.
4890 2021-01-13 Jakub Jelinek <jakub@redhat.com>
4893 * config/i386/predicates.md (pmovzx_parallel): New predicate.
4894 * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): New
4895 define_insn_and_split pattern.
4896 (*sse4_1_zero_extendv4hiv4si2_3): Likewise.
4897 (*sse4_1_zero_extendv2siv2di2_3): Likewise.
4899 2021-01-13 Julian Brown <julian@codesourcery.com>
4901 * config/gcn/gcn.c (gcn_conditional_register_usage): Remove dead code
4904 2021-01-13 Julian Brown <julian@codesourcery.com>
4906 * config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live
4909 2021-01-13 Julian Brown <julian@codesourcery.com>
4911 * config/gcn/gcn-valu.md (recip<mode>2<exec>, recip<mode>2): Use unspec
4912 for reciprocal-approximation instructions.
4913 (div<mode>3): Use fused multiply-accumulate operations for reciprocal
4914 refinement and division result.
4915 * config/gcn/gcn.md (UNSPEC_RCP): New unspec constant.
4917 2021-01-13 Julian Brown <julian@codesourcery.com>
4919 * config/gcn/gcn-valu.md (subdf): Rename to...
4922 2021-01-12 Martin Liska <mliska@suse.cz>
4924 * gcov.c (source_info::debug): Fix printf format for 32-bit hosts.
4926 2021-01-12 Andrea Corallo <andrea.corallo@arm.com>
4928 * function-abi.h: Fix typo.
4930 2021-01-12 Christophe Lyon <christophe.lyon@linaro.org>
4934 * config/arm/arm.h (ARM_HAVE_NEON_V8QI_LDST): New macro.
4935 (ARM_HAVE_NEON_V16QI_LDST, ARM_HAVE_NEON_V4HI_LDST): Likewise.
4936 (ARM_HAVE_NEON_V8HI_LDST, ARM_HAVE_NEON_V2SI_LDST): Likewise.
4937 (ARM_HAVE_NEON_V4SI_LDST, ARM_HAVE_NEON_V4HF_LDST): Likewise.
4938 (ARM_HAVE_NEON_V8HF_LDST, ARM_HAVE_NEON_V4BF_LDST): Likewise.
4939 (ARM_HAVE_NEON_V8BF_LDST, ARM_HAVE_NEON_V2SF_LDST): Likewise.
4940 (ARM_HAVE_NEON_V4SF_LDST, ARM_HAVE_NEON_DI_LDST): Likewise.
4941 (ARM_HAVE_NEON_V2DI_LDST): Likewise.
4942 (ARM_HAVE_V8QI_LDST, ARM_HAVE_V16QI_LDST): Likewise.
4943 (ARM_HAVE_V4HI_LDST, ARM_HAVE_V8HI_LDST): Likewise.
4944 (ARM_HAVE_V2SI_LDST, ARM_HAVE_V4SI_LDST, ARM_HAVE_V4HF_LDST): Likewise.
4945 (ARM_HAVE_V8HF_LDST, ARM_HAVE_V4BF_LDST, ARM_HAVE_V8BF_LDST): Likewise.
4946 (ARM_HAVE_V2SF_LDST, ARM_HAVE_V4SF_LDST, ARM_HAVE_DI_LDST): Likewise.
4947 (ARM_HAVE_V2DI_LDST): Likewise.
4948 * config/arm/mve.md (*movmisalign<mode>_mve_store): New pattern.
4949 (*movmisalign<mode>_mve_load): New pattern.
4950 * config/arm/neon.md (movmisalign<mode>): Move to ...
4951 * config/arm/vec-common.md: ... here.
4953 2021-01-12 Vladimir N. Makarov <vmakarov@redhat.com>
4956 * lra-eliminations.c (eliminate_regs_in_insn): Add transformation
4957 of pattern 'plus (plus (hard reg, const), pseudo)'.
4959 2021-01-12 Richard Biener <rguenther@suse.de>
4961 PR tree-optimization/98550
4962 * tree-vect-slp.c (vect_record_max_nunits): Check whether
4963 the group size is a multiple of the vector element count.
4964 (vect_build_slp_tree_1): When we need to fail because
4965 the vector type choosen causes unrolling do so lazily
4966 without affecting matches only at the end to guide group splitting.
4968 2021-01-12 Martin Liska <mliska@suse.cz>
4971 * optc-save-gen.awk: Compare also n_target_save vars with
4974 2021-01-12 Martin Liska <mliska@suse.cz>
4976 * gcov.c (source_info::debug): New.
4977 (print_usage): Add --debug (-D) option.
4978 (process_args): Likewise.
4979 (generate_results): Call src->debug after
4980 accumulate_line_counts.
4981 (read_graph_file): Properly assign id for EXIT_BLOCK.
4982 * profile.c (branch_prob): Dump function body before it is
4985 2021-01-12 Jakub Jelinek <jakub@redhat.com>
4987 PR tree-optimization/98629
4988 * tree-ssa-math-opts.c (arith_overflow_check_p): Don't update use_stmt
4989 unless returning non-zero.
4991 2021-01-12 Jakub Jelinek <jakub@redhat.com>
4993 PR tree-optimization/95731
4994 * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Also optimize
4995 x < 0 && y < 0 && z < 0 into (x | y | z) < 0 for signed x, y, z.
4996 (optimize_range_tests): Call optimize_range_tests_cmp_bitwise
4997 only after optimize_range_tests_var_bound.
4999 2021-01-12 Jakub Jelinek <jakub@redhat.com>
5001 * configure.ac: Ensure c/Make-lang.in comes first in @all_lang_makefrags@.
5002 * configure: Regenerated.
5004 2021-01-12 liuhongt <hongtao.liu@intel.com>
5007 * config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS):
5009 * config/i386/i386-expand.c (ix86_expand_sse_comi): Delete
5012 2021-01-12 Alexandre Oliva <oliva@adacore.com>
5014 * ssa-iterators.h (end_imm_use_stmt_traverse): Forward
5016 (auto_end_imm_use_stmt_traverse): New struct.
5017 (FOR_EACH_IMM_USE_STMT): Use it.
5018 (BREAK_FROM_IMM_USE_STMT, RETURN_FROM_IMM_USE_STMT): Remove,
5020 * gimple-ssa-strength-reduction.c: ... here, ...
5021 * graphite-scop-detection.c: ... here, ...
5022 * ipa-modref.c, ipa-pure-const.c, ipa-sra.c: ... here, ...
5023 * tree-predcom.c, tree-ssa-ccp.c: ... here, ...
5024 * tree-ssa-dce.c, tree-ssa-dse.c: ... here, ...
5025 * tree-ssa-loop-ivopts.c, tree-ssa-math-opts.c: ... here, ...
5026 * tree-ssa-phiprop.c, tree-ssa.c: ... here, ...
5027 * tree-vect-slp.c: ... and here, ...
5028 * doc/tree-ssa.texi: ... and the example here.
5030 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
5032 * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3): Extend from
5033 SVE_FULL_I to SVE_I. Generate an UNSPEC_PRED_X.
5034 (*sdiv_pow2<mode>3): New pattern.
5035 (@cond_<sve_int_op><mode>): Extend from SVE_FULL_I to SVE_I.
5036 Wrap the ASRD in an UNSPEC_PRED_X.
5037 (*cond_<sve_int_op><mode>_2): Likewise. Replace the UNSPEC_PRED_X
5038 predicate with a constant PTRUE, if it isn't already.
5039 (*cond_<sve_int_op><mode>_z): Replace with...
5040 (*cond_<sve_int_op><mode>_any): ...this new pattern.
5042 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
5044 * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2): Extend from
5045 SVE_FULL_I to SVE_I.
5046 (*cond_bic<mode>_any): Likewise.
5048 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
5050 * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart)
5051 (@aarch64_pred_<MUL_HIGHPART:optab><mode>): Extend from SVE_FULL_I
5054 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
5056 * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): Extend from
5057 SVE_FULL_I to SVE_I.
5058 (*aarch64_cond_<su>abd<mode>_2): Likewise.
5059 (*aarch64_cond_<su>abd<mode>_any): Likewise.
5060 (@aarch64_pred_<su>abd<mode>): Likewise. Use UNSPEC_PRED_X
5061 for the max and min but not for the minus.
5062 (*aarch64_cond_<su>abd<mode>_3): New pattern.
5064 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
5066 * config/aarch64/iterators.md (SVE_24I): New iterator.
5067 * config/aarch64/aarch64-sve.md (*aarch64_adr<mode>_shift): Extend from
5068 SVE_FULL_SDI to SVE_24I. Use containers rather than elements.
5070 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
5072 * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_BINARY:optab><mode>)
5073 (*cond_<SVE_INT_BINARY:optab><mode>_2): Extend from SVE_FULL_I
5075 (*cond_<SVE_INT_BINARY:optab><mode>_3): Likewise.
5076 (*cond_<SVE_INT_BINARY:optab><mode>_any): Likewise.
5077 (*cond_<SVE_INT_BINARY:optab><mode>_2_const): Likewise.
5078 (*cond_<SVE_INT_BINARY:optab><mode>_any_const): Likewise.
5080 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
5082 * config/aarch64/aarch64-sve.md (<SVE_INT_BINARY_IMM:optab><mode>3)
5083 (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>)
5084 (*post_ra_<SVE_INT_BINARY_IMM:optab><mode>3): Extend from SVE_FULL_I
5087 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
5089 * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3)
5090 (v<ASHIFT:optab><mode>3, @aarch64_pred_<optab><mode>)
5091 (*post_ra_v<ASHIFT:optab><mode>3): Extend from SVE_FULL_I to SVE_I.
5093 2021-01-11 Martin Liska <mliska@suse.cz>
5096 * symtab-clones.h (clone_info::release): Release
5097 symtab::m_clones with ggc_delete as it's a GGC memory.
5099 2021-01-11 Matthias Klose <doko@ubuntu.com>
5101 * Makefile.in (LINK_PROGRESS): Show the link target.
5103 2021-01-11 Richard Biener <rguenther@suse.de>
5105 PR tree-optimization/91403
5106 * tree-vect-data-refs.c (vect_analyze_group_access_1): Cap
5107 single-element interleaving group size at 4096 elements.
5109 2021-01-11 Richard Biener <rguenther@suse.de>
5111 PR tree-optimization/98526
5112 * tree-vect-loop.c (vect_model_reduction_cost): Remove costing
5113 of the actual reduction op for the regular case.
5114 (vectorizable_reduction): Cost the stmts
5115 vect_transform_reduction produces here.
5117 2021-01-11 Andreas Krebbel <krebbel@linux.ibm.com>
5119 * tree-ssa-forwprop.c (simplify_vector_constructor): For
5120 big-endian, use UNPACK[_FLOAT]_HI.
5122 2021-01-11 Tamar Christina <tamar.christina@arm.com>
5124 * tree-vect-slp-patterns.c (class complex_pattern,
5125 class complex_add_pattern): Add parameters to matches.
5126 (complex_add_pattern::build): Free memory.
5127 (complex_add_pattern::matches): Move validation end of match.
5128 (complex_add_pattern::recognize): Likewise.
5130 2021-01-11 Tamar Christina <tamar.christina@arm.com>
5132 * tree-vect-slp-patterns.c (linear_loads_p): Fix externals.
5134 2021-01-11 Tamar Christina <tamar.christina@arm.com>
5136 * tree-vect-slp-patterns.c (is_linear_load_p): Fix ambiguity.
5138 2021-01-11 Jakub Jelinek <jakub@redhat.com>
5140 PR tree-optimization/95867
5141 * tree-ssa-math-opts.h: New header.
5142 * tree-ssa-math-opts.c: Include tree-ssa-math-opts.h.
5143 (powi_as_mults): No longer static. Use build_one_cst instead of
5144 build_real. Formatting fix.
5145 * tree-ssa-reassoc.c: Include tree-ssa-math-opts.h.
5146 (attempt_builtin_powi): Handle multiplication reassociation without
5147 powi_fndecl using powi_as_mults.
5148 (reassociate_bb): For integral types don't require
5149 -funsafe-math-optimizations to call attempt_builtin_powi.
5151 2021-01-11 Jakub Jelinek <jakub@redhat.com>
5153 PR tree-optimization/95852
5154 * tree-ssa-math-opts.c (maybe_optimize_guarding_check): Change
5155 mul_stmts parameter type to vec<gimple *> &. Before cond_stmt
5156 allow in the bb any of the stmts in that vector, div_stmt and
5158 (arith_cast_equal_p): New function.
5159 (arith_overflow_check_p): Add cast_stmt argument, handle signed
5160 multiply overflow checks.
5161 (match_arith_overflow): Adjust caller. Handle signed multiply
5164 2021-01-11 Jakub Jelinek <jakub@redhat.com>
5166 PR tree-optimization/95852
5167 * tree-ssa-math-opts.c (maybe_optimize_guarding_check): New function.
5168 (uaddsub_overflow_check_p): Renamed to ...
5169 (arith_overflow_check_p): ... this. Handle also multiplication
5170 with overflow check.
5171 (match_uaddsub_overflow): Renamed to ...
5172 (match_arith_overflow): ... this. Add cfg_changed argument. Handle
5173 also multiplication with overflow check. Adjust function comment.
5174 (math_opts_dom_walker::after_dom_children): Adjust callers. Call
5175 match_arith_overflow also for MULT_EXPR.
5177 2021-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5179 * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
5180 __builtin_convertvector.
5181 (vmovl_s16): Likewise.
5182 (vmovl_s32): Likewise.
5183 (vmovl_u8): Likewise.
5184 (vmovl_u16): Likewise.
5185 (vmovl_u32): Likewise.
5186 (vmovn_s16): Likewise.
5187 (vmovn_s32): Likewise.
5188 (vmovn_s64): Likewise.
5189 (vmovn_u16): Likewise.
5190 (vmovn_u32): Likewise.
5191 (vmovn_u64): Likewise.
5193 2021-01-11 Martin Liska <mliska@suse.cz>
5195 * gimple-if-to-switch.cc (struct condition_info): Use auto_var.
5196 (if_chain::is_beneficial): Delete clusters
5197 (find_conditions): Make second argument of conditions_in_bbs a
5198 pointer so that we control over it's lifetime.
5199 (pass_if_to_switch::execute): Delete them.
5201 2021-01-11 Kewen Lin <linkw@linux.ibm.com>
5203 * ira.c (move_unallocated_pseudos): Check other_reg and skip if
5206 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
5208 * config/vax/vax.md (cc): Remove mode attribute.
5209 (subst_<cc>, subst_f<cc>): Rename to...
5210 (subst_<mode>, subst_f<VAXccnz:mode>): ... these respectively.
5211 (*cbranch<VAXint:mode>4_<VAXcc:mode>): Update for `cc' removal.
5212 (*cbranch<VAXfp:mode>4_<VAXccnz:mode>): Likewise.
5213 (*branch_<mode>, *branch_<mode>_reversed): Likewise.
5215 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
5217 * config/vax/vax.md (subst_f<cc>): Add mode to operands and
5218 `const_double_zero'.
5220 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
5222 * config/pdp11/pdp11.md (PDPfp): New mode iterator.
5223 (fcc_cc, fcc_ccnz): Use it. Add mode to `const_double_zero' and
5226 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
5228 * genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero'
5230 * read-rtl.c (rtx_reader::read_rtx_code): Handle machine mode
5231 with `const_double_zero'.
5232 * doc/rtl.texi (Constant Expression Types): Document it.
5234 2021-01-09 Jakub Jelinek <jakub@redhat.com>
5237 * tree-cfg.c (verify_gimple_assign_binary): Allow lhs of
5238 POINTER_DIFF_EXPR to be any integral type.
5240 2021-01-09 Jakub Jelinek <jakub@redhat.com>
5242 PR rtl-optimization/98603
5243 * function.c (instantiate_virtual_regs_in_insn): For asm goto
5244 with impossible constraints, drop all SETs, CLOBBERs, drop PARALLEL
5245 if any, set ASM_OPERANDS mode to VOIDmode and change
5246 ASM_OPERANDS_OUTPUT_CONSTRAINT and ASM_OPERANDS_OUTPUT_IDX.
5248 2021-01-09 Alexandre Oliva <oliva@gnu.org>
5251 * final.c (notice_source_line): Narrow down the condition to
5252 skip a line-0 marker.
5254 2021-01-08 Sergei Trofimovich <siarheit@google.com>
5256 * ipa-modref.c (merge_call_side_effects): Fix
5257 linebreak split by reordering two print calls.
5259 2021-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
5261 * config/s390/vector.md (*tf_to_fprx2_0): Rename from
5262 "*mov_tf_to_fprx2_0" for consistency, fix constraint.
5263 (*tf_to_fprx2_1): Rename from "*mov_tf_to_fprx2_1" for
5264 consistency, fix constraint.
5266 2021-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
5268 * config/s390/s390-c.c (s390_def_or_undef_macro): Accept
5269 callables instead of mask values.
5270 (struct target_flag_set_p): New predicate.
5271 (s390_cpu_cpp_builtins_internal): Define or undefine
5272 __LONG_DOUBLE_VX__ macro.
5274 2021-01-08 H.J. Lu <hjl.tools@gmail.com>
5277 * config/i386/i386.c (x86_function_profiler): Use R10 and R11
5278 to call mcount in large model with PIC for NO_PROFILE_COUNTERS
5281 2021-01-08 Richard Biener <rguenther@suse.de>
5283 * tree-ssa-sccvn.c (pass_fre::execute): Reset the SCEV hash table.
5285 2021-01-08 Richard Biener <rguenther@suse.de>
5287 * tree-vect-slp.c (scalar_stmts_to_slp_tree_map_t): Fix.
5288 (vect_build_slp_tree): On cache hit release the matched
5289 scalar stmts vector.
5290 * tree-vect-stmts.c (vectorizable_store): Properly free
5291 vec_oprnds before possibly gathering them again.
5293 2021-01-08 Richard Biener <rguenther@suse.de>
5295 PR tree-optimization/98544
5296 * tree-vect-slp.c (vect_optimize_slp): Always materialize
5297 permutes at a permute node.
5299 2021-01-08 H.J. Lu <hjl.tools@gmail.com>
5302 * config/i386/i386.c (x86_function_profiler): Use R10 to call
5303 mcount in large model. Sorry for large model with PIC.
5305 2021-01-08 Jakub Jelinek <jakub@redhat.com>
5308 * config/i386/i386.opt (ix86_cmodel, ix86_incoming_stack_boundary_arg,
5309 ix86_pmode, ix86_preferred_stack_boundary_arg, ix86_regparm,
5310 ix86_veclibabi_type): Remove x_ prefix, use TargetVariable instead of
5311 TargetSave and initialize for variables with enum types.
5312 (mfentry, mstack-protector-guard-reg=, mstack-protector-guard-offset=,
5313 mstack-protector-guard-symbol=): Add Save.
5314 * config/i386/i386-options.c (ix86_function_specific_save,
5315 ix86_function_specific_restore): Don't save or restore x_ix86_cmodel,
5316 x_ix86_incoming_stack_boundary_arg, x_ix86_pmode,
5317 x_ix86_preferred_stack_boundary_arg, x_ix86_regparm,
5318 x_ix86_veclibabi_type.
5320 2021-01-08 Richard Sandiford <richard.sandiford@arm.com>
5322 * config/aarch64/aarch64-sve.md (*cnot<mode>): Extend from
5323 SVE_FULL_I to SVE_I.
5324 (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
5326 2021-01-08 Richard Sandiford <richard.sandiford@arm.com>
5328 * config/aarch64/aarch64-sve.md (*cond_uxt<mode>_2): Extend from
5329 SVE_FULL_I to SVE_I.
5330 (*cond_uxt<mode>_any): Likewise.
5332 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5334 * config/aarch64/iterators.md (Vwhalf): New iterator.
5335 * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>_3):
5337 (aarch64_<sur>adalp<mode>): ... This. Make more
5339 (<sur>sadv16qi): Adjust callsite of the above.
5340 * config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New
5342 * config/aarch64/arm_neon.h (vpadal_s8): Reimplement using
5344 (vpadal_s16): Likewise.
5345 (vpadal_u8): Likewise.
5346 (vpadal_u16): Likewise.
5347 (vpadalq_s8): Likewise.
5348 (vpadalq_s16): Likewise.
5349 (vpadalq_s32): Likewise.
5350 (vpadalq_u8): Likewise.
5351 (vpadalq_u16): Likewise.
5352 (vpadalq_u32): Likewise.
5354 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5356 * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>_3):
5358 (aarch64_<su>abd<mode>): ... This.
5359 (<sur>sadv16qi): Adjust callsite of the above.
5360 * config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define
5362 * config/aarch64/arm_neon.h (vabd_s8): Reimplement using
5364 (vabd_s16): Likewise.
5365 (vabd_s32): Likewise.
5366 (vabd_u8): Likewise.
5367 (vabd_u16): Likewise.
5368 (vabd_u32): Likewise.
5369 (vabdq_s8): Likewise.
5370 (vabdq_s16): Likewise.
5371 (vabdq_s32): Likewise.
5372 (vabdq_u8): Likewise.
5373 (vabdq_u16): Likewise.
5374 (vabdq_u32): Likewise.
5376 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5378 * config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define
5380 * config/aarch64/arm_neon.h (vaba_s8): Implement using builtin.
5381 (vaba_s16): Likewise.
5382 (vaba_s32): Likewise.
5383 (vaba_u8): Likewise.
5384 (vaba_u16): Likewise.
5385 (vaba_u32): Likewise.
5386 (vabaq_s8): Likewise.
5387 (vabaq_s16): Likewise.
5388 (vabaq_s32): Likewise.
5389 (vabaq_u8): Likewise.
5390 (vabaq_u16): Likewise.
5391 (vabaq_u32): Likewise.
5393 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5395 * config/aarch64/aarch64-simd.md (aba<mode>_3): Rename to...
5396 (aarch64_<su>aba<mode>): ... This. Handle uaba as well.
5397 Change RTL pattern to match.
5399 2021-01-08 Kito Cheng <kito.cheng@sifive.com>
5401 * common/config/riscv/riscv-common.c (riscv_current_subset_list): New.
5402 * config/riscv/riscv-c.c (riscv-subset.h): New.
5403 (INCLUDE_STRING): Define.
5404 (riscv_cpu_cpp_builtins): Add new style architecture extension
5406 * config/riscv/riscv-subset.h (riscv_subset_list::begin): New.
5407 (riscv_subset_list::end): New.
5408 (riscv_current_subset_list): New.
5410 2021-01-08 Kito Cheng <kito.cheng@sifive.com>
5412 * common/config/riscv/riscv-common.c (RISCV_DONT_CARE_VERSION):
5413 Move to riscv-subset.h.
5414 (struct riscv_subset_t): Ditto.
5415 (class riscv_subset_list): Ditto.
5416 * config/riscv/riscv-subset.h (RISCV_DONT_CARE_VERSION): Move
5417 from riscv-common.c.
5418 (struct riscv_subset_t): Ditto.
5419 (class riscv_subset_list): Ditto.
5420 * config/riscv/t-riscv ($(common_out_file)): Add file
5423 2021-01-07 Jakub Jelinek <jakub@redhat.com>
5426 * config/i386/i386.md (*bmi_blsi_<mode>_cmp, *bmi_blsi_<mode>_ccno):
5427 New define_insn patterns.
5429 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
5431 * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_UNARY:optab><mode>)
5432 (*cond_<SVE_INT_UNARY:optab><mode>_2): Extend from SVE_FULL_I to SVE_I.
5433 (*cond_<SVE_INT_UNARY:optab><mode>_any): Likewise.
5435 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
5437 PR tree-optimization/98560
5438 * internal-fn.def (IFN_VCONDU, IFN_VCONDEQ): Use type vec_cond.
5439 * internal-fn.c (vec_cond_mask_direct): Get the data mode from
5441 (vec_cond_direct): Likewise argument 2.
5442 (vec_condu_direct, vec_condeq_direct): Delete.
5443 (expand_vect_cond_optab_fn): Rename to...
5444 (expand_vec_cond_optab_fn): ...this, replacing old macro.
5445 (expand_vec_condu_optab_fn, expand_vec_condeq_optab_fn): Delete.
5446 (expand_vect_cond_mask_optab_fn): Rename to...
5447 (expand_vec_cond_mask_optab_fn): ...this, replacing old macro.
5448 (direct_vec_cond_mask_optab_supported_p): Treat the optab as a
5450 (direct_vec_cond_optab_supported_p): Likewise.
5451 (direct_vec_condu_optab_supported_p): Delete.
5452 (direct_vec_condeq_optab_supported_p): Delete.
5453 * gimple-isel.cc: Include internal-fn.h.
5454 (gimple_expand_vec_cond_expr): Check that IFN_VCONDEQ is supported
5457 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
5459 PR tree-optimization/98560
5460 * gimple-isel.cc (gimple_expand_vec_cond_expr): If we fail to use
5461 IFN_VCOND{,U,EQ}, fall back on IFN_VCOND_MASK.
5463 2021-01-07 Uroš Bizjak <ubizjak@gmail.com>
5465 * config/i386/i386.md (insn): Merge from plusminus_insn, shift_insn,
5466 rotate_insn and optab code attributes.
5467 Update all uses to merged code attribute.
5468 * config/i386/sse.md: Update all uses to merged code attribute.
5469 * config/i386/mmx.md: Update all uses to merged code attribute.
5471 2021-01-07 Jakub Jelinek <jakub@redhat.com>
5473 PR tree-optimization/98568
5474 * gimple-ssa-store-merging.c (bswap_view_convert): New function.
5475 (bswap_replace): Use it.
5477 2021-01-06 Vladimir N. Makarov <vmakarov@redhat.com>
5479 PR rtl-optimization/97978
5480 * lra-int.h (lra_hard_reg_split_p): New external.
5481 * lra.c (lra_hard_reg_split_p): New global.
5482 (lra): Set up lra_hard_reg_split_p after splitting a hard reg.
5483 * lra-assigns.c (lra_assign): Don't check allocation correctness
5484 after hard reg splitting.
5486 2021-01-06 Martin Sebor <msebor@redhat.com>
5489 * builtins.c (new_delete_mismatch_p): New overload.
5490 (new_delete_mismatch_p (tree, tree)): Call it.
5492 2021-01-06 Alexandre Oliva <oliva@adacore.com>
5494 * Makefile.in (T_GLIMITS_H): New.
5495 (stmp-int-hdrs): Depend on it, use it.
5496 * config/t-vxworks (T_GLIMITS_H): Override it.
5497 (vxw-glimits.h): New.
5499 2021-01-06 Richard Biener <rguenther@suse.de>
5501 PR tree-optimization/98513
5502 * value-range.cc (intersect_ranges): Compare the upper bounds
5503 for the expected relation.
5505 2021-01-06 Gerald Pfeifer <gerald@pfeifer.com>
5508 2020-12-28 Gerald Pfeifer <gerald@pfeifer.com>
5510 * doc/standards.texi (HSAIL): Remove section.
5512 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
5514 * configure: Re-generate.
5516 2021-01-05 Jakub Jelinek <jakub@redhat.com>
5518 * doc/invoke.texi (-std=c++20): Adjust for the publication of
5519 ISO 14882:2020 standard.
5520 * doc/standards.texi: Likewise.
5522 2021-01-05 Jakub Jelinek <jakub@redhat.com>
5524 PR tree-optimization/94802
5525 * expr.h (maybe_optimize_sub_cmp_0): Declare.
5526 * expr.c: Include tree-pretty-print.h and flags.h.
5527 (maybe_optimize_sub_cmp_0): New function.
5528 (do_store_flag): Use it.
5529 * cfgexpand.c (expand_gimple_cond): Likewise.
5531 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
5533 * mux-utils.h (pointer_mux::m_ptr): Tweak description of contents.
5534 * rtlanal.c (simple_regno_set): Tweak description to clarify the
5537 2021-01-05 Richard Biener <rguenther@suse.de>
5539 PR tree-optimization/98516
5540 * tree-vect-slp.c (vect_optimize_slp): Permute the incoming
5541 lanes when materializing on a VEC_PERM node.
5542 (vectorizable_slp_permutation): Dump the permute properly.
5544 2021-01-05 Richard Biener <rguenther@suse.de>
5546 * tree-vect-slp.c (vect_slp_region): Move debug counter
5547 to cover individual subgraphs.
5549 2021-01-05 Richard Biener <rguenther@suse.de>
5551 PR tree-optimization/98428
5552 * tree-vect-slp.c (vect_build_slp_tree_1): Properly reject
5553 vector lane extracts for loop vectorization.
5555 2021-01-05 Jakub Jelinek <jakub@redhat.com>
5557 PR tree-optimization/98514
5558 * tree-ssa-reassoc.c (bb_rank): Change type from long * to
5560 (operand_rank): Change type from hash_map<tree, long> to
5561 hash_map<tree, int64_t>.
5562 (phi_rank): Change return type from long to int64_t.
5563 (loop_carried_phi): Change block_rank variable type from long to
5565 (propagate_rank): Change return type, rank parameter type and
5566 op_rank variable type from long to int64_t.
5567 (find_operand_rank): Change return type from long to int64_t
5568 and change slot variable type from long * to int64_t *.
5569 (insert_operand_rank): Change rank parameter type from long to
5571 (get_rank): Change return type and rank variable type from long to
5572 int64_t. Use PRId64 instead of ld to print the rank.
5573 (init_reassoc): Change rank variable type from long to int64_t
5574 and adjust correspondingly bb_rank and operand_rank initialization.
5576 2021-01-05 Jakub Jelinek <jakub@redhat.com>
5578 PR tree-optimization/96928
5579 * tree-ssa-phiopt.c (xor_replacement): New function.
5580 (tree_ssa_phiopt_worker): Call it.
5582 2021-01-05 Jakub Jelinek <jakub@redhat.com>
5584 PR tree-optimization/96930
5585 * match.pd ((A / (1 << B)) -> (A >> B)): If A is extended
5586 from narrower value which has the same type as 1 << B, perform
5587 the right shift on the narrower value followed by extension.
5589 2021-01-05 Jakub Jelinek <jakub@redhat.com>
5591 PR tree-optimization/96239
5592 * gimple-ssa-store-merging.c (maybe_optimize_vector_constructor): New
5594 (get_status_for_store_merging): Don't return BB_INVALID for blocks
5595 with potential bswap optimizable CONSTRUCTORs.
5596 (pass_store_merging::execute): Optimize vector CONSTRUCTORs with bswap
5599 2021-01-05 Richard Biener <rguenther@suse.de>
5601 PR tree-optimization/98381
5602 * tree.c (vector_element_bits): Properly compute bool vector
5604 * tree-vect-loop.c (vectorizable_live_operation): Properly
5605 compute the last lane bit offset.
5607 2021-01-05 Uroš Bizjak <ubizjak@gmail.com>
5610 * config/i386/sse.md (sse_cvtps2pi): Redefine as define_insn_and_split.
5611 Clear the top 64 bytes of the input XMM register.
5612 (sse_cvttps2pi): Ditto.
5614 2021-01-05 Uroš Bizjak <ubizjak@gmail.com>
5617 * config/i386/xopintrin.h (_mm256_cmov_si256): New.
5619 2021-01-05 H.J. Lu <hjl.tools@gmail.com>
5622 * config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned
5625 2021-01-05 Claudiu Zissulescu <claziss@synopsys.com>
5627 * config/arc/arc.md (maddsidi4_split): Use ACC_REG_FIRST.
5628 (umaddsidi4_split): Likewise.
5630 2021-01-05 liuhongt <hongtao.liu@intel.com>
5633 * config/i386/sse.md (*sse2_pmovskb_zexthisi): New
5634 define_insn_and_split for zero_extend of subreg HI of pmovskb
5636 (*sse2_pmovskb_zexthisi): Add new combine splitters for
5637 zero_extend of not of subreg HI of pmovskb result.
5639 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
5642 * explow.c (convert_memory_address_addr_space_1): Handle UNSPECs
5644 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Use
5645 convert_memory_address to convert symbolic immediates to ptr_mode
5646 before forcing them to memory.
5648 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
5650 PR rtl-optimization/97144
5651 * recog.c (constrain_operands): Initialize matching_operand
5652 for each alternative, rather than only doing it once.
5654 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
5656 PR rtl-optimization/98403
5657 * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Explain
5658 why we don't remove call clobbers.
5659 (function_info::apply_changes_to_insn): Don't attempt to add
5662 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
5664 PR tree-optimization/98371
5665 * tree-vect-loop.c (vect_reanalyze_as_main_loop): New function.
5666 (vect_analyze_loop): If an epilogue loop appears to be cheaper
5667 than the main loop, re-analyze it as a main loop before adopting
5670 2021-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5673 * configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL.
5674 * aclocal.m4, configure: Regenerate.
5675 * Makefile.in (NETLIBS): Define.
5676 (BACKEND): Remove $(CODYLIB).
5678 2021-01-05 Jakub Jelinek <jakub@redhat.com>
5680 PR rtl-optimization/98334
5681 * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
5682 Optimize (X - 1) * Y + Y to X * Y or (X + 1) * Y - Y to X * Y.
5684 2021-01-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
5686 * tree-inline.c (expand_call_inline): Restore input_location.
5687 Return result from recursive call.
5689 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
5691 PR tree-optimization/95401
5692 * config/aarch64/aarch64-sve-builtins.cc
5693 (gimple_folder::load_store_cookie): Use bits rather than bytes
5694 for the alignment argument to IFN_MASK_LOAD and IFN_MASK_STORE.
5695 * gimple-fold.c (gimple_fold_mask_load_store_mem_ref): Likewise.
5696 * tree-vect-stmts.c (vectorizable_store): Likewise.
5697 (vectorizable_load): Likewise.
5699 2021-01-04 Richard Biener <rguenther@suse.de>
5701 PR tree-optimization/98308
5702 * tree-vect-stmts.c (vectorizable_load): Set invariant mask
5705 2021-01-04 Jakub Jelinek <jakub@redhat.com>
5707 PR tree-optimization/95771
5708 * tree-ssa-loop-niter.c (number_of_iterations_popcount): Handle types
5709 with precision smaller than int's precision and types with precision
5710 twice as large as long long. Formatting fixes.
5712 2021-01-04 Richard Biener <rguenther@suse.de>
5714 PR tree-optimization/98464
5715 * tree-ssa-sccvn.c (vn_valueize_for_srt): Rename from ...
5716 (vn_valueize_wrapper): ... this. Temporarily adjust vn_context_bb.
5717 (process_bb): Adjust.
5719 2021-01-04 Matthew Malcomson <matthew.malcomson@arm.com>
5722 * doc/invoke.texi (-fsanitize=address): Fix wording describing
5723 clash with -fsanitize=hwaddress.
5725 2021-01-04 Richard Biener <rguenther@suse.de>
5727 PR tree-optimization/98282
5728 * tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on
5729 invariants as VN_NARY.
5731 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
5734 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Accept
5735 aarch64_simd_reg_or_zero for operand 2. Use the combinez patterns
5736 to handle zero operands.
5738 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
5740 * config/aarch64/aarch64.c (offset_6bit_signed_scaled_p): New function.
5741 (offset_6bit_unsigned_scaled_p): Fix typo in comment.
5742 (aarch64_sve_prefetch_operand_p): Accept MUL VLs in the range
5745 2021-01-04 Richard Biener <rguenther@suse.de>
5747 PR tree-optimization/98393
5748 * tree-vect-slp.c (vect_build_slp_tree): Properly zero matches
5749 when hitting the limit.
5751 2021-01-04 Richard Biener <rguenther@suse.de>
5753 PR tree-optimization/98291
5754 * tree-vect-loop.c (vectorizable_reduction): Bypass
5755 associativity check for SLP reductions with VF 1.
5757 2021-01-04 Jakub Jelinek <jakub@redhat.com>
5759 PR tree-optimization/96782
5760 * match.pd (x == ~x -> false, x != ~x -> true): New simplifications.
5762 2021-01-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
5764 * collect-utils.c (collect_execute): Check dumppfx.
5765 * collect2.c (maybe_run_lto_and_relink, do_link): Pass atsuffix
5767 (do_link): Add new parameter atsuffix.
5768 (main): Handle -dumpdir option. Skip one argument for
5769 -o, -isystem and -B options.
5770 * gcc.c (make_at_file): New helper function.
5771 (close_at_file): Use it.
5773 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
5775 * config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust.
5776 Amend handling for LD64_VERSION fallback defaults.
5778 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
5780 * config.gcc: Compute default version information
5781 from the configured target. Likewise defaults for
5783 * config/darwin10.h: Removed.
5784 * config/darwin12.h: Removed.
5785 * config/darwin9.h: Removed.
5786 * config/rs6000/darwin8.h: Removed.
5788 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
5790 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
5792 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
5794 * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here..
5795 * config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here.
5797 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
5799 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from
5801 * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here.
5803 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
5805 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move the spec
5806 for the Darwin10 unwinder stub from here ...
5807 * config/darwin.h (LINK_COMMAND_SPEC_A): ... to here.
5809 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
5811 * config/darwin.h (DSYMUTIL_SPEC): Default to DWARF
5812 (ASM_DEBUG_SPEC):Only define if the assembler supports
5814 (PREFERRED_DEBUGGING_TYPE): Default to DWARF.
5815 (DARWIN_PREFER_DWARF): Define.
5816 * config/darwin9.h (PREFERRED_DEBUGGING_TYPE): Remove.
5817 (DARWIN_PREFER_DWARF): Likewise
5818 (DSYMUTIL_SPEC): Likewise.
5819 (COLLECT_RUN_DSYMUTIL): Likewise.
5820 (ASM_DEBUG_SPEC): Likewise.
5821 (ASM_DEBUG_OPTION_SPEC): Likewise.
5823 2021-01-02 Jan Hubicka <jh@suse.cz>
5825 * cfg.c (free_block): ggc_free bb.
5827 2021-01-01 Jakub Jelinek <jakub@redhat.com>
5829 * gcc.c (process_command): Update copyright notice dates.
5830 * gcov-dump.c (print_version): Ditto.
5831 * gcov.c (print_version): Ditto.
5832 * gcov-tool.c (print_version): Ditto.
5833 * gengtype.c (create_file): Ditto.
5834 * doc/cpp.texi: Bump @copying's copyright year.
5835 * doc/cppinternals.texi: Ditto.
5836 * doc/gcc.texi: Ditto.
5837 * doc/gccint.texi: Ditto.
5838 * doc/gcov.texi: Ditto.
5839 * doc/install.texi: Ditto.
5840 * doc/invoke.texi: Ditto.
5842 2021-01-01 Jakub Jelinek <jakub@redhat.com>
5844 * ChangeLog-2020: Rotate ChangeLog. New file.
5847 Copyright (C) 2021 Free Software Foundation, Inc.
5849 Copying and distribution of this file, with or without modification,
5850 are permitted in any medium without royalty provided the copyright
5851 notice and this notice are preserved.