1 2021-08-05 H.J. Lu <hjl.tools@gmail.com>
4 * config/i386/i386.c (ix86_can_inline_p): Ignore MASK_80387 if
6 * config/i386/ia32intrin.h: Revert commit 5463cee2770.
7 * config/i386/serializeintrin.h: Revert commit 71958f740f1.
8 * config/i386/x86gprintrin.h: Add
9 #pragma GCC target("general-regs-only") and #pragma GCC pop_options
10 to disable non-GPR ISAs.
12 2021-08-05 Richard Sandiford <richard.sandiford@arm.com>
15 * doc/md.texi (cond_ashl, cond_ashr, cond_lshr): Document.
17 2021-08-05 Richard Sandiford <richard.sandiford@arm.com>
19 * tree-vectorizer.h (vect_is_store_elt_extraction, vect_is_reduction)
20 (vect_reduc_type, vect_embedded_comparison_type, vect_comparison_type)
21 (vect_is_extending_load, vect_is_integer_truncation): New functions,
22 moved from aarch64.c but given different names.
23 * config/aarch64/aarch64.c (aarch64_is_store_elt_extraction)
24 (aarch64_is_reduction, aarch64_reduc_type)
25 (aarch64_embedded_comparison_type, aarch64_comparison_type)
26 (aarch64_extending_load_p, aarch64_integer_truncation_p): Delete
27 in favor of the above. Update callers accordingly.
29 2021-08-05 Richard Earnshaw <rearnsha@arm.com>
32 * config/arm/arm-cpus.in (generic-armv7-a): Add quirk to suppress
33 writing .cpu directive in asm output.
34 * config/arm/arm.c (arm_identify_fpu_from_isa): New variable.
35 (arm_last_printed_arch_string): Delete.
36 (arm_last-printed_fpu_string): Delete.
37 (arm_configure_build_target): If use of floating-point/SIMD is
38 disabled, remove all fp/simd related features from the target ISA.
39 (last_arm_targ_options): New variable.
40 (arm_print_asm_arch_directives): Add new parameters. Change order
41 of emitted directives and handle all cases here.
42 (arm_file_start): Always call arm_print_asm_arch_directives, move
43 all generation of .arch/.arch_extension here.
44 (arm_file_end): Call arm_print_asm_arch.
45 (arm_declare_function_name): Call arm_print_asm_arch_directives
46 instead of printing .arch/.fpu directives directly.
48 2021-08-05 Richard Earnshaw <rearnsha@arm.com>
50 * config/arm/arm.c (arm_configure_build_target): Don't call
51 arm_option_reconfigure_globals.
52 (arm_option_restore): Call arm_option_reconfigure_globals after
53 reconfiguring the target.
54 * config/arm/arm-c.c (arm_pragma_target_parse): Likewise.
56 2021-08-05 Richard Earnshaw <rearnsha@arm.com>
58 * config/arm/arm.c (arm_configure_build_target): Ensure the target's
59 arch_name is always set.
61 2021-08-05 Jonathan Wright <jonathan.wright@arm.com>
63 * config/aarch64/aarch64.c: Traverse RTL tree to prevent cost
64 of vec_select high-half from being added into Neon subtract
67 2021-08-05 Jonathan Wright <jonathan.wright@arm.com>
69 * config/aarch64/aarch64.c: Traverse RTL tree to prevent cost
70 of vec_select high-half from being added into Neon add cost.
72 2021-08-05 Kewen Lin <linkw@linux.ibm.com>
74 * cfgloop.h (loops_list::loops_list): Add one optional argument
75 root and adjust accordingly, update loop tree walking and factor
77 * cfgloop.c (loops_list::walk_loop_tree): ... this. New function.
79 2021-08-05 Eric Botcazou <ebotcazou@gcc.gnu.org>
81 PR tree-optimization/101626
82 * tree-sra.c (propagate_subaccesses_from_rhs): Do not set the
83 reverse scalar storage order on a pointer or vector component.
85 2021-08-05 liuhongt <hongtao.liu@intel.com>
87 * config/i386/sse.md (cond_<code><mode>): New expander.
89 2021-08-05 liuhongt <hongtao.liu@intel.com>
91 * config/i386/sse.md (cond_<code><mode>): New expander.
93 2021-08-05 liuhongt <hongtao.liu@intel.com>
95 * config/i386/sse.md (cond_<code><mode>): New expander.
97 2021-08-04 David Malcolm <dmalcolm@redhat.com>
100 * Makefile.in (ANALYZER_OBJS): Add analyzer/region-model-asm.o.
102 2021-08-04 H.J. Lu <hjl.tools@gmail.com>
105 * config/i386/i386.h (STORE_MAX_PIECES): Allow 16/32/64 bytes
106 only if TARGET_INTER_UNIT_MOVES_TO_VEC is true.
108 2021-08-04 H.J. Lu <hjl.tools@gmail.com>
111 * config/i386/i386-expand.c (ix86_expand_vector_move): Call
112 ix86_gen_scratch_sse_rtx to get a scratch SSE register to copy
113 data with SSE register from one memory location to another.
115 2021-08-04 Andreas Krebbel <krebbel@linux.ibm.com>
117 * config/s390/s390.c (expand_perm_with_vpdi): New function.
118 (vectorize_vec_perm_const_1): Call expand_perm_with_vpdi.
119 * config/s390/vector.md (*vpdi1<mode>, @vpdi1<mode>): Enable a
120 parameterized expander.
121 (*vpdi4<mode>, @vpdi4<mode>): Likewise.
123 2021-08-04 Andreas Krebbel <krebbel@linux.ibm.com>
125 * config/s390/s390.c (MAX_VECT_LEN): Define macro.
126 (struct expand_vec_perm_d): Define struct.
127 (expand_perm_with_merge): New function.
128 (vectorize_vec_perm_const_1): New function.
129 (s390_vectorize_vec_perm_const): New function.
130 (TARGET_VECTORIZE_VEC_PERM_CONST): Define target macro.
132 2021-08-04 Andreas Krebbel <krebbel@linux.ibm.com>
134 * config/s390/vector.md (V_HW_64): Remove mode iterator.
135 (*vec_load_pair<mode>): Use V_HW_2 instead of V_HW_64.
136 * config/s390/vx-builtins.md
137 (vec_scatter_element<V_HW_2:mode>_SI): Use V_HW_2 instead of
140 2021-08-04 Andreas Krebbel <krebbel@linux.ibm.com>
142 * config/s390/s390.md (UNSPEC_VEC_PERMI): Remove constant
144 * config/s390/vector.md (*vpdi1<mode>, *vpdi4<mode>): New pattern
146 * config/s390/vx-builtins.md (*vec_permi<mode>): Emit generic rtx
147 instead of an unspec.
149 2021-08-04 Andreas Krebbel <krebbel@linux.ibm.com>
151 * config/s390/s390-modes.def: Add more vector modes to support
152 concatenation of two vectors.
153 * config/s390/s390-protos.h (s390_expand_merge_perm_const): Add
155 (s390_expand_merge): Likewise.
156 * config/s390/s390.c (s390_expand_merge_perm_const): New function.
157 (s390_expand_merge): New function.
158 * config/s390/s390.md (UNSPEC_VEC_MERGEH, UNSPEC_VEC_MERGEL):
159 Remove constant definitions.
160 * config/s390/vector.md (V_HW_2): Add mode iterators.
161 (VI_HW_4, V_HW_4): Rename VI_HW_4 to V_HW_4.
162 (vec_2x_nelts, vec_2x_wide): New mode attributes.
163 (*vmrhb, *vmrlb, *vmrhh, *vmrlh, *vmrhf, *vmrlf, *vmrhg, *vmrlg):
164 New pattern definitions.
165 (vec_widen_umult_lo_<mode>, vec_widen_umult_hi_<mode>)
166 (vec_widen_smult_lo_<mode>, vec_widen_smult_hi_<mode>)
167 (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf, vec_unpacks_lo_v2df)
168 (vec_unpacks_hi_v2df): Adjust expanders to emit non-unspec RTX for
170 * config/s390/vx-builtins.md (V_HW_4): Remove mode iterator. Now
172 (vec_mergeh<mode>, vec_mergel<mode>): Use s390_expand_merge to
173 emit vec merge pattern.
175 2021-08-04 Jonathan Wright <jonathan.wright@arm.com>
177 * config/aarch64/aarch64.c (aarch64_strip_extend_vec_half):
179 (aarch64_rtx_mult_cost): Traverse RTL tree to prevent cost of
180 vec_select high-half from being added into Neon multiply
182 * rtlanal.c (vec_series_highpart_p): Define.
183 * rtlanal.h (vec_series_highpart_p): Declare.
185 2021-08-04 Jonathan Wright <jonathan.wright@arm.com>
187 * config/aarch64/aarch64.c (aarch64_strip_duplicate_vec_elt):
189 (aarch64_rtx_mult_cost): Traverse RTL tree to prevent
190 vec_select cost from being added into Neon multiply cost.
192 2021-08-04 Richard Sandiford <richard.sandiford@arm.com>
194 * tree-vect-loop.c (vect_better_loop_vinfo_p): Detect cases in
195 which old_loop_vinfo is an epilogue loop that handles a constant
196 number of iterations.
198 2021-08-04 Richard Sandiford <richard.sandiford@arm.com>
200 * tree-vect-loop.c (vect_analyze_loop): Print a dump message
201 when a reanalyzed loop fails to be cheaper than the current
204 2021-08-04 Richard Sandiford <richard.sandiford@arm.com>
206 * config/aarch64/aarch64.c: Fix a typo.
208 2021-08-04 Vincent Lefèvre <vincent-gcc@vinc17.net>
210 PR gcov-profile/101773
211 * gcov-io.c (gcov_close): Check return code of a fclose.
213 2021-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
216 * dwarf2out.c (dwarf2out_assembly_start): Emit a dummy
217 .file statement when needed.
219 2021-08-04 Richard Biener <rguenther@suse.de>
221 * tree-vect-data-refs.c (vect_check_gather_scatter):
222 Include widening conversions only when the result is
223 still handed by native gather or the current offset
224 size not already matches the data size.
225 Also succeed analysis in case there's no native support,
226 noted by a IFN_LAST ifn and a NULL decl.
227 (vect_analyze_data_refs): Always consider gathers.
228 * tree-vect-patterns.c (vect_recog_gather_scatter_pattern):
229 Test for no IFN gather rather than decl gather.
230 * tree-vect-stmts.c (vect_model_load_cost): Pass in the
231 gather-scatter info and cost emulated gathers accordingly.
232 (vect_truncate_gather_scatter_offset): Properly test for
234 (vect_use_strided_gather_scatters_p): Likewise.
235 (get_load_store_type): Handle emulated gathers and its
237 (vectorizable_load): Likewise. Emulate them by extracting
238 scalar offsets, doing scalar loads and a vector construct.
240 2021-08-04 H.J. Lu <hjl.tools@gmail.com>
243 * expr.c (op_by_pieces_d::op_by_pieces_d): Add a max_pieces
244 argument to set m_max_size.
245 (move_by_pieces_d): Pass MOVE_MAX_PIECES to op_by_pieces_d.
246 (store_by_pieces_d): Pass STORE_MAX_PIECES to op_by_pieces_d.
247 (compare_by_pieces_d): Pass COMPARE_MAX_PIECES to op_by_pieces_d.
249 2021-08-04 Roger Sayle <roger@nextmovesoftware.com>
250 Marc Glisse <marc.glisse@inria.fr>
252 * match.pd (bit_ior, bit_xor): Canonicalize (X*C1)|(X*C2) and
253 (X*C1)^(X*C2) as X*(C1+C2), and related variants, using
254 tree_nonzero_bits to ensure that operands are bit-wise disjoint.
256 2021-08-04 Richard Biener <rguenther@suse.de>
258 * tree-ssa-forwprop.c (pass_forwprop::execute): Split
259 out code to decompose vector loads ...
260 (optimize_vector_load): ... here. Generalize it to
261 handle intermediate widening and TARGET_MEM_REF loads
262 and apply it to loads with a supported vector mode as well.
264 2021-08-04 Richard Biener <rguenther@suse.de>
266 PR tree-optimization/101756
267 * tree-vect-slp.c (vectorizable_bb_reduc_epilogue): Make sure
268 the result of the reduction epilogue is compatible to the original
271 2021-08-04 liuhongt <hongtao.liu@intel.com>
274 * config/i386/i386.md (peephole2): Refine predicate from
275 register_operand to general_reg_operand.
277 2021-08-04 Aldy Hernandez <aldyh@redhat.com>
279 * gimple-range-path.h (path_range_query::dump): Mark override.
281 2021-08-04 Richard Biener <rguenther@suse.de>
283 PR tree-optimization/101769
284 * tree-tailcall.c (eliminate_tail_call): Add the created loop
285 for the first recursion and return it via the new output parameter.
286 (optimize_tail_call): Pass through new output param.
287 (tree_optimize_tail_calls_1): After creating all latches,
288 add the created loop to the loop tree. Do not mark loops for fixup.
290 2021-08-04 Martin Liska <mliska@suse.cz>
292 * doc/invoke.texi: Document threader-mode param.
294 2021-08-04 liuhongt <hongtao.liu@intel.com>
296 * config/i386/sse.md (cond_fma<mode>): New expander.
297 (cond_fms<mode>): Ditto.
298 (cond_fnma<mode>): Ditto.
299 (cond_fnms<mode>): Ditto.
301 2021-08-03 Segher Boessenkool <segher@kernel.crashing.org>
303 * config/rs6000/vsx.md (*vsx_le_perm_store_<mode>): Use && instead of &.
305 2021-08-03 Segher Boessenkool <segher@kernel.crashing.org>
307 * config/rs6000/constraints.md: Remove "e" from the list of available
308 constraint characters.
310 2021-08-03 Eugene Rozenfeld <erozen@microsoft.com>
312 PR gcov-profile/71672
313 * auto-profile.c (afdo_indirect_call): Fix setup of the historgram value for indirect calls.
315 2021-08-03 Paul A. Clarke <pc@us.ibm.com>
317 * config/rs6000/smmintrin.h (_mm_minpos_epu16): New.
319 2021-08-03 H.J. Lu <hjl.tools@gmail.com>
321 * config/i386/i386.c (ix86_gen_scratch_sse_rtx): In 64-bit mode,
322 try XMM31 to avoid vzeroupper.
324 2021-08-03 Richard Sandiford <richard.sandiford@arm.com>
326 * doc/invoke.texi: Document -mtune=neoverse-512tvb and
327 -mcpu=neoverse-512tvb.
328 * config/aarch64/aarch64-cores.def (neoverse-512tvb): New entry.
329 * config/aarch64/aarch64-tune.md: Regenerate.
330 * config/aarch64/aarch64.c (neoverse512tvb_sve_vector_cost)
331 (neoverse512tvb_sve_issue_info, neoverse512tvb_vec_issue_info)
332 (neoverse512tvb_vector_cost, neoverse512tvb_tunings): New structures.
333 (aarch64_adjust_body_cost_sve): Handle -mtune=neoverse-512tvb.
334 (aarch64_adjust_body_cost): Likewise.
336 2021-08-03 Richard Sandiford <richard.sandiford@arm.com>
338 * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Only
339 record issue information for operations that occur in the
342 2021-08-03 Richard Sandiford <richard.sandiford@arm.com>
344 * config/aarch64/aarch64.c (aarch64_multiply_add_p): Add a vec_flags
345 parameter. Detect cases in which an Advanced SIMD MLA would almost
346 certainly require a MOV.
347 (aarch64_count_ops): Update accordingly.
349 2021-08-03 Richard Sandiford <richard.sandiford@arm.com>
351 * config/aarch64/aarch64.c (aarch64_is_store_elt_extraction): New
352 function, split out from...
353 (aarch64_detect_vector_stmt_subtype): ...here.
354 (aarch64_add_stmt_cost): Treat extracting element 0 as free.
356 2021-08-03 Richard Sandiford <richard.sandiford@arm.com>
358 * config/aarch64/aarch64-protos.h (sve_vec_cost):
359 Add gather_load_x32_cost and gather_load_x64_cost.
360 * config/aarch64/aarch64.c (generic_sve_vector_cost)
361 (a64fx_sve_vector_cost, neoversev1_sve_vector_cost): Update
362 accordingly, using the values given by the scalar_load * number
363 of elements calculation that we used previously.
364 (aarch64_detect_vector_stmt_subtype): Use the new fields.
366 2021-08-03 Richard Sandiford <richard.sandiford@arm.com>
368 * config/aarch64/aarch64.c (aarch64_adjust_body_cost_sve): New
369 function, split out from...
370 (aarch64_adjust_body_cost): ...here.
372 2021-08-03 Richard Sandiford <richard.sandiford@arm.com>
374 * config/aarch64/fractional-cost.h: New file.
375 * config/aarch64/aarch64.c: Include <algorithm> (indirectly)
377 (vec_cost_fraction): New typedef.
378 (aarch64_detect_scalar_stmt_subtype): Use it for statement costs.
379 (aarch64_detect_vector_stmt_subtype): Likewise.
380 (aarch64_sve_adjust_stmt_cost, aarch64_adjust_stmt_cost): Likewise.
381 (aarch64_estimate_min_cycles_per_iter): Use vec_cost_fraction
383 (aarch64_adjust_body_cost): Likewise.
384 (aarch64_test_cost_fraction): New function.
385 (aarch64_run_selftests): Call it.
387 2021-08-03 Richard Sandiford <richard.sandiford@arm.com>
389 * config/aarch64/aarch64-protos.h (tune_params::sve_width): Turn
391 * config/aarch64/aarch64.c (aarch64_cmp_autovec_modes): Update
393 (aarch64_estimated_poly_value): Likewise. Use the least significant
394 set bit for the minimum and likely values. Use the most significant
395 set bit for the maximum value.
397 2021-08-03 liuhongt <hongtao.liu@intel.com>
399 * config/i386/sse.md (cond_<insn><mode>): New expander.
400 (cond_mul<mode>): Ditto.
402 2021-08-03 Kewen Lin <linkw@linux.ibm.com>
404 * tree-cfg.c (move_sese_region_to_fn): Fix typos on dloop.
406 2021-08-03 liuhongt <hongtao.liu@intel.com>
408 * config/i386/sse.md (cond_<insn><mode>):New expander.
409 (cond_mul<mode>): Ditto.
410 (cond_div<mode>): Ditto.
412 2021-08-02 H.J. Lu <hjl.tools@gmail.com>
414 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Also
415 check stack_realign_needed for stack realignment.
416 (ix86_legitimate_constant_p): Always allow CONST_WIDE_INT smaller
417 than the largest integer supported by vector register.
418 * config/i386/i386.h (MAX_MOVE_MAX): New. Set to 64.
419 (MOVE_MAX): Set to bytes of the largest integer supported by
421 (STORE_MAX_PIECES): New.
423 2021-08-02 H.J. Lu <hjl.tools@gmail.com>
425 * config/i386/i386-expand.c (ix86_expand_vector_move): Call
426 ix86_gen_scratch_sse_rtx to get a scratch SSE register to copy
427 data from one memory location to another.
429 2021-08-02 H.J. Lu <hjl.tools@gmail.com>
432 * config/i386/i386.c (TARGET_GEN_MEMSET_SCRATCH_RTX): New.
434 2021-08-02 Aldy Hernandez <aldyh@redhat.com>
436 PR tree-optimization/101724
437 * params.opt: Remove --param=threader-iterative.
438 * tree-ssa-threadbackward.c (pass_thread_jumps::execute): Remove
441 2021-08-02 Tom de Vries <tdevries@suse.de>
444 * doc/extend.texi (nonnull attribute): Improve documentation.
446 2021-08-02 Andrew Pinski <apinski@marvell.com>
448 PR rtl-optimization/101683
449 * rtlanal.c (may_trap_p_1): Handle UNSIGNED_FIX.
451 2021-08-02 Roger Sayle <roger@nextmovesoftware.com>
453 * tree-ssa-phiopt.c (cond_removal_in_builtin_zero_pattern):
454 Renamed from cond_removal_in_popcount_clz_ctz_pattern.
455 Add support for BSWAP, FFS, PARITY and CLRSB builtins.
456 (tree_ssa_phiop_worker): Update call to function above.
458 2021-08-01 H.J. Lu <hjl.tools@gmail.com>
461 * config/i386/i386.md (bsr_rex64_1_zext): New.
462 (combine splitter for constant - clzll): Replace gen_bsr_rex64_1
463 with gen_bsr_rex64_1_zext.
465 2021-07-31 Jakub Jelinek <jakub@redhat.com>
468 * config/i386/i386.md (bsr_rex64_1, bsr_1, bsr_zext_1): New
469 define_insn patterns.
470 (*bsr_rex64_2, *bsr_2): New define_insn_and_split patterns.
471 Add combine splitters for constant - clz.
472 (clz<mode>2): Use a temporary pseudo for bsr result.
474 2021-07-30 Paul A. Clarke <pc@us.ibm.com>
476 * config/rs6000/smmintrin.h (_mm_floor_pd, _mm_floor_ps,
477 _mm_floor_sd, _mm_floor_ss): New.
479 2021-07-30 Paul A. Clarke <pc@us.ibm.com>
481 * config/rs6000/smmintrin.h (_mm_ceil_pd, _mm_ceil_ps,
482 _mm_ceil_sd, _mm_ceil_ss): New.
484 2021-07-30 Paul A. Clarke <pc@us.ibm.com>
486 * config/rs6000/smmintrin.h (_mm_blend_pd, _mm_blendv_pd,
487 _mm_blend_ps, _mm_blendv_ps): New.
489 2021-07-30 Roger Sayle <roger@nextmovesoftware.com>
490 Uroš Bizjak <ubizjak@gmail.com>
492 * config/i386/i386.md (*dec_cmov<mode>): New define_insn_and_split
493 to generate a conditional move using the carry flag after sub $1.
494 (peephole2): Eliminate a register-to-register move by inverting
495 the condition of a conditional move.
497 2021-07-30 Hans-Peter Nilsson <hp@bitrange.com>
499 * config/mmix/mmix.md ("call", "call_value", "*call_real")
500 ("*call_value_real"): Don't generate rtx mentioning the generic
501 operands 1 and 2 to "call", and similarly for "call_value".
502 * config/mmix/mmix.c (mmix_print_operand_punct_valid_p)
503 (mmix_print_operand): Use '!' instead of 'p'.
505 2021-07-30 Hans-Peter Nilsson <hp@bitrange.com>
507 * doc/md.texi (call): Correct information about operand 2.
508 * config/mmix/mmix.md ("call", "call_value"): Remove fixed FIXMEs.
510 2021-07-30 Andrew MacLeod <amacleod@redhat.com>
512 * range-op.cc (operator_trunc_mod::wi_fold): Fold constants.
514 2021-07-30 Andrew MacLeod <amacleod@redhat.com>
516 * range-op.cc (operator_div::wi_fold): Return UNDEFINED for [0, 0] divisor.
518 2021-07-30 Andrew MacLeod <amacleod@redhat.com>
520 * gimple-range-cache.cc (*::set_bb_range): Change const basic_block to
522 (*::get_bb_range): Ditto.
523 (*::bb_range_p): Ditto.
524 * gimple-range-cache.h: Change prototypes.
526 2021-07-30 H.J. Lu <hjl.tools@gmail.com>
529 * builtins.c (builtin_memcpy_read_str): Change the mode argument
530 from scalar_int_mode to fixed_size_mode.
531 (builtin_strncpy_read_str): Likewise.
532 (gen_memset_value_from_prev): New function.
533 (builtin_memset_read_str): Change the mode argument from
534 scalar_int_mode to fixed_size_mode. Use gen_memset_value_from_prev
535 and support CONST_VECTOR.
536 (builtin_memset_gen_str): Likewise.
537 (try_store_by_multiple_pieces): Use by_pieces_constfn to declare
539 * builtins.h (builtin_strncpy_read_str): Replace scalar_int_mode
540 with fixed_size_mode.
541 (builtin_memset_read_str): Likewise.
542 * expr.c (widest_int_mode_for_size): Renamed to ...
543 (widest_fixed_size_mode_for_size): Add a bool argument to
544 indicate if QI vector mode can be used.
545 (by_pieces_ninsns): Call widest_fixed_size_mode_for_size
546 instead of widest_int_mode_for_size.
547 (pieces_addr::adjust): Change the mode argument from
548 scalar_int_mode to fixed_size_mode.
549 (op_by_pieces_d): Make m_len read-only. Add a bool member,
550 m_qi_vector_mode, to indicate that QI vector mode can be used.
551 (op_by_pieces_d::op_by_pieces_d): Add a bool argument to
552 initialize m_qi_vector_mode. Call widest_fixed_size_mode_for_size
553 instead of widest_int_mode_for_size.
554 (op_by_pieces_d::get_usable_mode): Change the mode argument from
555 scalar_int_mode to fixed_size_mode. Call
556 widest_fixed_size_mode_for_size instead of
557 widest_int_mode_for_size.
558 (op_by_pieces_d::smallest_fixed_size_mode_for_size): New member
559 function to return the smallest integer or QI vector mode.
560 (op_by_pieces_d::run): Call widest_fixed_size_mode_for_size
561 instead of widest_int_mode_for_size. Call
562 smallest_fixed_size_mode_for_size instead of
563 smallest_int_mode_for_size.
564 (store_by_pieces_d::store_by_pieces_d): Add a bool argument to
565 indicate that QI vector mode can be used and pass it to
566 op_by_pieces_d::op_by_pieces_d.
567 (can_store_by_pieces): Call widest_fixed_size_mode_for_size
568 instead of widest_int_mode_for_size. Pass memsetp to
569 widest_fixed_size_mode_for_size to support QI vector mode.
570 Allow all CONST_VECTORs for memset if vec_duplicate is supported.
571 (store_by_pieces): Pass memsetp to
572 store_by_pieces_d::store_by_pieces_d.
573 (clear_by_pieces_1): Removed.
574 (clear_by_pieces): Replace clear_by_pieces_1 with
575 builtin_memset_read_str and pass true to store_by_pieces_d to
576 support vector mode broadcast.
577 (string_cst_read_str): Change the mode argument from
578 scalar_int_mode to fixed_size_mode.
579 * expr.h (by_pieces_constfn): Change scalar_int_mode to
581 (by_pieces_prev): Likewise.
582 * rtl.h (lowpart_subreg_regno): New.
583 * rtlanal.c (lowpart_subreg_regno): New. A wrapper around
584 simplify_subreg_regno.
585 * target.def (gen_memset_scratch_rtx): New hook.
586 * doc/tm.texi.in: Add TARGET_GEN_MEMSET_SCRATCH_RTX.
587 * doc/tm.texi: Regenerated.
589 2021-07-30 Xi Ruoyao <xry111@mengyan1223.wang>
592 * config/mips/mips.c (mips_atomic_assign_expand_fenv): Use
593 TARGET_EXPR instead of MODIFY_EXPR.
595 2021-07-30 Xi Ruoyao <xry111@mengyan1223.wang>
598 * config/mips/mips-protos.h (mips_expand_vec_cmp_expr): Declare.
599 * config/mips/mips.c (mips_expand_vec_cmp_expr): New function.
600 * config/mips/mips-msa.md (vec_cmp<MSA:mode><mode_i>): New
602 (vec_cmpu<IMSA:mode><mode_i>): New expander.
604 2021-07-30 H.J. Lu <hjl.tools@gmail.com>
607 * config/i386/i386-options.c (ix86_option_override_internal):
608 Don't enable LZCNT/POPCNT if they have been disabled explicitly.
610 2021-07-30 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org>
613 * config/arm/arm_neon.h (vld1_p64): Replace call to builtin by
614 explicitly dereferencing __a.
615 (vld1_s64): Likewise.
616 (vld1_u64): Likewise.
617 * config/arm/arm_neon_builtins.def (vld1): Remove entry for di
620 2021-07-30 Aldy Hernandez <aldyh@redhat.com>
622 * gimple-loop-versioning.cc (lv_dom_walker::lv_dom_walker): Remove
623 use of m_range_analyzer.
624 (loop_versioning::lv_dom_walker::before_dom_children): Same.
625 (loop_versioning::lv_dom_walker::after_dom_children): Remove.
626 (loop_versioning::prune_loop_conditions): Replace vr_values use
627 with range_query interface.
628 (pass_loop_versioning::execute): Use ranger.
630 2021-07-30 Xi Ruoyao <xry111@mengyan1223.wang>
633 * ipa-devirt.c (ipa_odr_read_section): Compare the precision of
634 enum values, and emit a warning if they mismatch.
636 2021-07-30 Kewen Lin <linkw@linux.ibm.com>
638 * cfgloop.h (as_const): New function.
639 (class loop_iterator): Rename to ...
640 (class loops_list): ... this.
641 (loop_iterator::next): Rename to ...
642 (loops_list::Iter::fill_curr_loop): ... this and adjust.
643 (loop_iterator::loop_iterator): Rename to ...
644 (loops_list::loops_list): ... this and adjust.
645 (loops_list::Iter): New class.
646 (loops_list::iterator): New type.
647 (loops_list::const_iterator): New type.
648 (loops_list::begin): New function.
649 (loops_list::end): Likewise.
650 (loops_list::begin const): Likewise.
651 (loops_list::end const): Likewise.
652 (FOR_EACH_LOOP): Remove.
653 (FOR_EACH_LOOP_FN): Remove.
654 * cfgloop.c (flow_loops_dump): Adjust FOR_EACH_LOOP* with range-based
655 for loop with loops_list instance.
656 (sort_sibling_loops): Likewise.
657 (disambiguate_loops_with_multiple_latches): Likewise.
658 (verify_loop_structure): Likewise.
659 * cfgloopmanip.c (create_preheaders): Likewise.
660 (force_single_succ_latches): Likewise.
661 * config/aarch64/falkor-tag-collision-avoidance.c
662 (execute_tag_collision_avoidance): Likewise.
663 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Likewise.
664 * config/s390/s390.c (s390_adjust_loops): Likewise.
665 * doc/loop.texi: Likewise.
666 * gimple-loop-interchange.cc (pass_linterchange::execute): Likewise.
667 * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
668 * gimple-loop-versioning.cc (loop_versioning::analyze_blocks): Likewise.
669 (loop_versioning::make_versioning_decisions): Likewise.
670 * gimple-ssa-split-paths.c (split_paths): Likewise.
671 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): Likewise.
672 * graphite.c (canonicalize_loop_form): Likewise.
673 (graphite_transform_loops): Likewise.
674 * ipa-fnsummary.c (analyze_function_body): Likewise.
675 * ipa-pure-const.c (analyze_function): Likewise.
676 * loop-doloop.c (doloop_optimize_loops): Likewise.
677 * loop-init.c (loop_optimizer_finalize): Likewise.
678 (fix_loop_structure): Likewise.
679 * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
680 (move_loop_invariants): Likewise.
681 * loop-unroll.c (decide_unrolling): Likewise.
682 (unroll_loops): Likewise.
683 * modulo-sched.c (sms_schedule): Likewise.
684 * predict.c (predict_loops): Likewise.
685 (pass_profile::execute): Likewise.
686 * profile.c (branch_prob): Likewise.
687 * sel-sched-ir.c (sel_finish_pipelining): Likewise.
688 (sel_find_rgns): Likewise.
689 * tree-cfg.c (replace_loop_annotate): Likewise.
690 (replace_uses_by): Likewise.
691 (move_sese_region_to_fn): Likewise.
692 * tree-if-conv.c (pass_if_conversion::execute): Likewise.
693 * tree-loop-distribution.c (loop_distribution::execute): Likewise.
694 * tree-parloops.c (parallelize_loops): Likewise.
695 * tree-predcom.c (tree_predictive_commoning): Likewise.
696 * tree-scalar-evolution.c (scev_initialize): Likewise.
697 (scev_reset): Likewise.
698 * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
699 * tree-ssa-live.c (remove_unused_locals): Likewise.
700 * tree-ssa-loop-ch.c (ch_base::copy_headers): Likewise.
701 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
702 (tree_ssa_lim_initialize): Likewise.
703 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Likewise.
704 * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Likewise.
705 * tree-ssa-loop-manip.c (get_loops_exits): Likewise.
706 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations): Likewise.
707 (free_numbers_of_iterations_estimates): Likewise.
708 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
709 * tree-ssa-loop-split.c (tree_ssa_split_loops): Likewise.
710 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Likewise.
711 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
712 (pass_scev_cprop::execute): Likewise.
713 * tree-ssa-propagate.c (clean_up_loop_closed_phi): Likewise.
714 * tree-ssa-sccvn.c (do_rpo_vn): Likewise.
715 * tree-ssa-threadupdate.c
716 (jump_thread_path_registry::thread_through_all_blocks): Likewise.
717 * tree-vectorizer.c (vectorize_loops): Likewise.
718 * tree-vrp.c (vrp_asserts::find_assert_locations): Likewise.
720 2021-07-29 Hans-Peter Nilsson <hp@bitrange.com>
722 * config/mmix/mmix.c (mmix_function_arg_1): Avoid
723 generating a VOIDmode register for e.g the
724 function_arg_info::end_marker.
726 2021-07-29 Jeff Law <jeffreyalaw@gmail.com>
728 * config/h8300/h8300-modes.def: Add CCZ, CCV and CCC, drop CCZNV.
729 * config/h8300/h8300.md (H8cc mode iterator): Add CCZ.
730 (cc mode_attr): Similarly.
731 (ccz subst_attr): Similarly.
732 * config/h8300/jumpcall.md: Add new patterns for branch-on-bit.
733 * config/h8300/testcompare.md: Remove various cc0 based patterns
734 that had been commented out. Add pattern to set CCZ from a bit
737 2021-07-29 Thomas Schwinge <thomas@codesourcery.com>
738 Julian Brown <julian@codesourcery.com>
739 Kwok Cheung Yeung <kcy@codesourcery.com>
741 * omp-offload.c (oacc_loop_xform_head_tail, oacc_loop_process):
742 'update_stmt' after modification.
743 (pass_oacc_loop_designation): New function, extracted out of...
744 (pass_oacc_device_lower): ... this.
745 (pass_data_oacc_loop_designation, pass_oacc_loop_designation)
746 (make_pass_oacc_loop_designation): New
747 * passes.def: Add it.
748 * tree-parloops.c (create_parallel_loop): Adjust.
749 * tree-pass.h (make_pass_oacc_loop_designation): New.
751 2021-07-29 Aldy Hernandez <aldyh@redhat.com>
753 * flag-types.h (enum threader_mode): New.
754 * params.opt: Add entry for --param=threader-mode.
755 * tree-ssa-threadbackward.c (THREADER_ITERATIVE_MODE): New.
756 (class back_threader): New.
757 (back_threader::back_threader): New.
758 (back_threader::~back_threader): New.
759 (back_threader::maybe_register_path): New.
760 (back_threader::find_taken_edge): New.
761 (back_threader::find_taken_edge_switch): New.
762 (back_threader::find_taken_edge_cond): New.
763 (back_threader::resolve_def): New.
764 (back_threader::resolve_phi): New.
765 (back_threader::find_paths_to_names): New.
766 (back_threader::find_paths): New.
769 (thread_jumps::find_jump_threads_backwards): Call ranger threader.
770 (thread_jumps::find_jump_threads_backwards_with_ranger): New.
771 (pass_thread_jumps::execute): Abstract out code...
772 (try_thread_blocks): ...here.
773 * tree-ssa-threadedge.c (jump_threader::thread_outgoing_edges):
774 Abstract out threading candidate code to...
775 (single_succ_to_potentially_threadable_block): ...here.
776 * tree-ssa-threadedge.h (single_succ_to_potentially_threadable_block):
778 * tree-ssa-threadupdate.c (register_jump_thread): Return boolean.
779 * tree-ssa-threadupdate.h (class jump_thread_path_registry):
780 Return bool from register_jump_thread.
782 2021-07-29 Andreas Krebbel <krebbel@linux.ibm.com>
784 * target.def: in0 and in1 do not need to be registers.
785 * doc/tm.texi: Regenerate.
787 2021-07-29 liuhongt <hongtao.liu@intel.com>
790 * config/i386/i386.c (ix86_widen_mult_cost): New function.
791 (ix86_add_stmt_cost): Use ix86_widen_mult_cost for
794 2021-07-29 Jiufu Guo <guojiufu@linux.ibm.com>
797 * config/rs6000/rs6000.c (TARGET_PREFERRED_DOLOOP_MODE): New hook.
798 (rs6000_preferred_doloop_mode): New hook.
799 * doc/tm.texi: Regenerate.
800 * doc/tm.texi.in: Add hook preferred_doloop_mode.
801 * target.def (preferred_doloop_mode): New hook.
802 * targhooks.c (default_preferred_doloop_mode): New hook.
803 * targhooks.h (default_preferred_doloop_mode): New hook.
804 * tree-ssa-loop-ivopts.c (compute_doloop_base_on_mode): New function.
805 (add_iv_candidate_for_doloop): Call targetm.preferred_doloop_mode
806 and compute_doloop_base_on_mode.
808 2021-07-28 Martin Sebor <msebor@redhat.com>
811 * tree-ssa-uninit.c (maybe_warn_operand): Correct object offset
812 and size computation.
814 2021-07-28 Martin Sebor <msebor@redhat.com>
817 * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Remove
819 Handle pointers to functions.
821 2021-07-28 Martin Sebor <msebor@redhat.com>
823 * Makefile.in (OBJS): Add gimple-ssa-warn-access.o and pointer-query.o.
824 * attribs.h (fndecl_dealloc_argno): Move fndecl_dealloc_argno to tree.h.
825 * builtins.c (compute_objsize_r): Move to pointer-query.cc.
826 (access_ref::access_ref): Same.
827 (access_ref::phi): Same.
828 (access_ref::get_ref): Same.
829 (access_ref::size_remaining): Same.
830 (access_ref::offset_in_range): Same.
831 (access_ref::add_offset): Same.
832 (access_ref::inform_access): Same.
833 (ssa_name_limit_t::visit_phi): Same.
834 (ssa_name_limit_t::leave_phi): Same.
835 (ssa_name_limit_t::next): Same.
836 (ssa_name_limit_t::next_phi): Same.
837 (ssa_name_limit_t::~ssa_name_limit_t): Same.
838 (pointer_query::pointer_query): Same.
839 (pointer_query::get_ref): Same.
840 (pointer_query::put_ref): Same.
841 (pointer_query::flush_cache): Same.
842 (warn_string_no_nul): Move to gimple-ssa-warn-access.cc.
843 (check_nul_terminated_array): Same.
844 (unterminated_array): Same.
845 (maybe_warn_for_bound): Same.
846 (check_read_access): Same.
847 (warn_for_access): Same.
848 (get_size_range): Same.
849 (check_access): Same.
850 (gimple_call_alloc_size): Move to tree.c.
851 (gimple_parm_array_size): Move to pointer-query.cc.
852 (get_offset_range): Same.
853 (gimple_call_return_array): Same.
854 (handle_min_max_size): Same.
855 (handle_array_ref): Same.
856 (handle_mem_ref): Same.
857 (compute_objsize): Same.
858 (gimple_call_alloc_p): Move to gimple-ssa-warn-access.cc.
859 (call_dealloc_argno): Same.
860 (fndecl_dealloc_argno): Same.
861 (new_delete_mismatch_p): Same.
862 (matching_alloc_calls_p): Same.
863 (warn_dealloc_offset): Same.
864 (maybe_emit_free_warning): Same.
865 * builtins.h (check_nul_terminated_array): Move to
866 gimple-ssa-warn-access.h.
867 (check_nul_terminated_array): Same.
868 (warn_string_no_nul): Same.
869 (unterminated_array): Same.
870 (class ssa_name_limit_t): Same.
871 (class pointer_query): Same.
872 (struct access_ref): Same.
873 (class range_query): Same.
874 (struct access_data): Same.
875 (gimple_call_alloc_size): Same.
876 (gimple_parm_array_size): Same.
877 (compute_objsize): Same.
878 (class access_data): Same.
879 (maybe_emit_free_warning): Same.
880 * calls.c (initialize_argument_information): Remove call to
881 maybe_emit_free_warning.
882 * gimple-array-bounds.cc: Include new header..
883 * gimple-fold.c: Same.
884 * gimple-ssa-sprintf.c: Same.
885 * gimple-ssa-warn-restrict.c: Same.
886 * passes.def: Add pass_warn_access.
887 * tree-pass.h (make_pass_warn_access): Declare.
888 * tree-ssa-strlen.c: Include new headers.
889 * tree.c (fndecl_dealloc_argno): Move here from builtins.c.
890 * tree.h (fndecl_dealloc_argno): Move here from attribs.h.
891 * gimple-ssa-warn-access.cc: New file.
892 * gimple-ssa-warn-access.h: New file.
893 * pointer-query.cc: New file.
894 * pointer-query.h: New file.
896 2021-07-28 Jakub Jelinek <jakub@redhat.com>
899 * ubsan.c (maybe_instrument_pointer_overflow,
900 instrument_object_size): Only test DECL_REGISTER on VAR_DECLs,
901 PARM_DECLs or RESULT_DECLs.
902 * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Likewise.
904 2021-07-28 Jakub Jelinek <jakub@redhat.com>
907 * match.pd (bswap16 (x) == bswap16 (y)): Cast both operands
908 to type of bswap16 for comparison.
909 (bswap16 (x) == cst): Cast bswap16 operand to type of cst.
911 2021-07-28 Richard Biener <rguenther@suse.de>
913 PR tree-optimization/101615
914 * tree-vect-slp.c (vect_optimize_slp): Materialize permutes
915 at CTOR SLP graph entries.
917 2021-07-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
919 * config/aarch64/aarch64.md (*extend<SHORT:mode><GPI:mode>2_aarch64):
920 Add "r,w" alternative.
922 2021-07-28 H.J. Lu <hjl.tools@gmail.com>
925 * config/i386/i386.c (ix86_avx_u128_mode_needed): Don't set
926 AVX_U128_DIRTY when all bits are zero.
928 2021-07-28 Richard Biener <rguenther@suse.de>
930 PR tree-optimization/101615
931 * tree-vect-slp.c (vect_optimize_slp): Pre-existing vector
932 external nodes cannot be permuted so make them perm_out 0.
934 2021-07-28 Andrew Stubbs <ams@codesourcery.com>
937 * config.in: Regenerate.
938 * config/gcn/gcn-hsa.h (A_FIJI): New define.
942 (ASM_SPEC): Use A_FIJI, A_900, A_906 and A_908.
943 * config/gcn/gcn.c (output_file_start): Adjust attributes according
944 to the assembler capabilities.
945 * config/gcn/mkoffload.c (main): Likewise.
946 * configure: Regenerate.
947 * configure.ac: Add tests for LLVM assembler attribute features.
949 2021-07-28 Andrew MacLeod <amacleod@redhat.com>
951 * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Check for
952 cond_false and cond_true on branches.
954 2021-07-28 Bin Cheng <bin.cheng@linux.alibaba.com>
956 * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): use
959 2021-07-28 Bin Cheng <bin.cheng@linux.alibaba.com>
961 * alias.c (init_alias_analysis): Don't skip prologue/epilogue.
963 2021-07-28 Jakub Jelinek <jakub@redhat.com>
966 * config/i386/sse.md (vashr<mode>3): Split into vashrv8di3 expander
967 and vashrv4di3 expander, where the latter requires just TARGET_AVX2
968 and has special !TARGET_AVX512VL expansion.
969 (vashrv2di3<mask_name>): Rename to ...
970 (vashrv2di3): ... this. Change condition to TARGET_XOP || TARGET_AVX2
971 and add special !TARGET_XOP && !TARGET_AVX512VL expansion.
973 2021-07-28 Martin Uecker <muecker@gwdg.de>
975 * calls.c (maybe_warn_rdwr_sizes): Correct argument
976 numbers in warning that were switched.
978 2021-07-28 Kewen Lin <linkw@linux.ibm.com>
980 PR tree-optimization/101596
981 * tree-vect-patterns.c (vect_recog_mulhs_pattern): Fix wrong check
982 by using new_type's precision instead.
984 2021-07-28 liuhongt <hongtao.liu@intel.com>
987 * config/i386/i386.h (processor_costs): Add new member
989 * config/i386/x86-tune-costs.h (ix86_size_cost, i386_cost,
990 i486_cost, pentium_cost, lakemont_cost, pentiumpro_cost,
991 geode_cost, k6_cost, athlon_cost, k8_cost, amdfam10_cost,
992 bdver_cost, znver1_cost, znver2_cost, znver3_cost,
993 btver1_cost, btver2_cost, btver3_cost, pentium4_cost,
994 nocona_cost, atom_cost, atom_cost, slm_cost, intel_cost,
995 generic_cost, core_cost): Initialize integer_to_sse same value
997 (skylake_cost): Initialize integer_to_sse twice as much as sse_op.
998 * config/i386/i386.c (ix86_builtin_vectorization_cost):
999 Use integer_to_sse instead of sse_op to calculate the cost of
1002 2021-07-27 Bill Schmidt <wschmidt@linux.ibm.com>
1004 * config/rs6000/rs6000-gen-builtins.c (write_ovld_static_init): New
1006 (write_init_file): Call write_ovld_static_init.
1008 2021-07-27 Bill Schmidt <wschmidt@linux.ibm.com>
1010 * config/rs6000/rs6000-gen-builtins.c (write_bif_static_init): New
1012 (write_init_file): Call write_bif_static_init.
1014 2021-07-27 Bill Schmidt <wschmidt@linux.ibm.com>
1016 * config/rs6000/rs6000-gen-builtins.c (typemap): New struct.
1017 (TYPE_MAP_SIZE): New macro.
1018 (type_map): New initialized variable.
1019 (typemap_cmp): New function.
1020 (write_type_node): Likewise.
1021 (write_fntype_init): Implement.
1023 2021-07-27 Martin Sebor <msebor@redhat.com>
1025 PR tree-optimization/101584
1026 * tree-ssa-uninit.c (builtin_call_nomodifying_p): New function.
1027 (check_defs): Call it.
1029 2021-07-27 Aldy Hernandez <aldyh@redhat.com>
1031 * tree-ssa-dom.c (dom_jump_threader_simplifier):
1032 Put avail_exprs_stack in the class, instead of passing it to
1033 jump_threader_simplifier.
1034 (dom_jump_threader_simplifier::simplify): Add state argument.
1035 (dom_opt_dom_walker): Add state.
1036 (pass_dominator::execute): Pass state to threader.
1037 (dom_opt_dom_walker::before_dom_children): Use state.
1038 * tree-ssa-threadedge.c (jump_threader::jump_threader): Replace
1040 (jump_threader::record_temporary_equivalences_from_phis):
1041 Register equivalences through the state variable.
1042 (jump_threader::record_temporary_equivalences_from_stmts_at_dest):
1043 Record ranges in a statement through the state variable.
1044 (jump_threader::simplify_control_stmt_condition): Pass state to
1046 (jump_threader::simplify_control_stmt_condition_1): Same.
1047 (jump_threader::thread_around_empty_blocks): Remove obsolete
1049 (jump_threader::thread_through_normal_block): Record equivalences
1050 on edge through the state variable.
1051 (jump_threader::thread_across_edge): Abstract state pushing.
1052 (jt_state::jt_state): New.
1053 (jt_state::push): New.
1054 (jt_state::pop): New.
1055 (jt_state::register_equiv): New.
1056 (jt_state::record_ranges_from_stmt): New.
1057 (jt_state::register_equivs_on_edge): New.
1058 (jump_threader_simplifier::jump_threader_simplifier): Move from
1060 (jump_threader_simplifier::simplify): Add state argument.
1061 * tree-ssa-threadedge.h (class jt_state): New.
1062 (class jump_threader): Add state to constructor.
1063 (class jump_threader_simplifier): Add state to simplify. Remove
1064 avail_exprs_stack from class.
1065 * tree-vrp.c (vrp_jump_threader_simplifier::simplify): Add state
1067 (vrp_jump_threader::vrp_jump_threader): Add state.
1068 (vrp_jump_threader::~vrp_jump_threader): Cleanup state.
1070 2021-07-27 Aldy Hernandez <aldyh@redhat.com>
1072 * Makefile.in (OBJS): Add gimple-range-path.o.
1073 * gimple-range-path.cc: New file.
1074 * gimple-range-path.h: New file.
1076 2021-07-27 Jonathan Wright <jonathan.wright@arm.com>
1078 * config/aarch64/aarch64-simd.md: Push sign/zero-extension
1079 inside vec_duplicate for all patterns.
1080 * simplify-rtx.c (simplify_context::simplify_unary_operation_1):
1081 Push sign/zero-extension inside vec_duplicate.
1083 2021-07-27 Richard Biener <rguenther@suse.de>
1085 PR tree-optimization/101573
1086 * tree-ssa-uninit.c (warn_uninit_phi_uses): New function
1087 looking at uninitialized PHI arg defs in some constrained cases.
1088 (warn_uninitialized_vars): Call it.
1089 (execute_early_warn_uninitialized): Calculate dominators.
1091 2021-07-27 Richard Biener <rguenther@suse.de>
1093 PR tree-optimization/39821
1094 * tree-vect-stmts.c (vect_model_promotion_demotion_cost): Use
1095 vector_stmt for widening arithmetic.
1096 (vectorizable_conversion): Adjust.
1098 2021-07-27 Martin Jambor <mjambor@suse.cz>
1100 * cgraph.h (ipa_replace_map): New field force_load_ref.
1101 * ipa-prop.h (ipa_param_descriptor): Reduce precision of move_cost,
1102 aded new flag load_dereferenced, adjusted comments.
1103 (ipa_get_param_dereferenced): New function.
1104 (ipa_set_param_dereferenced): Likewise.
1105 * cgraphclones.c (cgraph_node::create_virtual_clone): Follow it.
1106 * ipa-cp.c: Include gimple.h.
1107 (ipcp_discover_new_direct_edges): Take into account dereferenced flag.
1108 (get_replacement_map): New parameter force_load_ref, set the
1109 appropriate flag in ipa_replace_map if set.
1110 (struct symbol_and_index_together): New type.
1111 (adjust_refs_in_act_callers): New function.
1112 (adjust_references_in_caller): Likewise.
1113 (create_specialized_node): When appropriate, call
1114 adjust_references_in_caller and force only load references.
1115 * ipa-prop.c (load_from_dereferenced_name): New function.
1116 (ipa_analyze_controlled_uses): Also detect loads from a
1117 dereference, harden testing of call statements.
1118 (ipa_write_node_info): Stream the dereferenced flag.
1119 (ipa_read_node_info): Likewise.
1120 (ipa_set_jf_constant): Also create refdesc when jump function
1121 references a variable.
1122 (cgraph_node_for_jfunc): Rename to symtab_node_for_jfunc, work
1123 also on references of variables and return a symtab_node. Adjust
1125 (propagate_controlled_uses): Also remove references to VAR_DECLs.
1127 2021-07-27 Jakub Jelinek <jakub@redhat.com>
1129 PR middle-end/101586
1130 * gimple-fold.c (clear_padding_type): Ignore FIELD_DECLs with byte
1131 positions above or equal to sz except for diagnostics of flexible
1134 2021-07-26 Andrew MacLeod <amacleod@redhat.com>
1136 PR tree-optimization/78888
1137 * gimple-range-fold.cc (get_letter_range): New.
1138 (fold_using_range::range_of_builtin_call): Call get_letter_range.
1140 2021-07-26 Andrew MacLeod <amacleod@redhat.com>
1142 PR tree-optimization/78888
1143 * gimple-range-fold.cc (fold_using_range::range_of_builtin_call): Add cases
1144 for CFN_BUILT_IN_TOUPPER and CFN_BUILT_IN_TOLOWER.
1146 2021-07-26 Roger Sayle <roger@nextmovesoftware.com>
1147 Marc Glisse <marc.glisse@inria.fr>
1149 * match.pd (rotate): Simplify equality/inequality of rotations.
1150 (bswap): Simplify equality/inequality tests of byte swapping.
1152 2021-07-26 Aldy Hernandez <aldyh@redhat.com>
1154 * range-op.cc (operator_bitwise_xor::op1_op2_relation_effect):
1157 2021-07-26 Aldy Hernandez <aldyh@redhat.com>
1159 * range-op.cc (operator_lshift::fold_range): Pass rel to
1160 base class fold_range.
1161 (operator_rshift::fold_range): Same.
1163 2021-07-26 Ashimida <ashimida@linux.alibaba.com>
1166 * toplev.h (min_align_loops_log): Remove declaration.
1167 (min_align_jumps_log, min_align_labels_log): Likewise.
1168 (min_align_functions_log): Likewise.
1170 2021-07-26 Aldy Hernandez <aldyh@redhat.com>
1172 * tree-vrp.c (vrp_simplify_cond_using_ranges): Rename vr_values
1174 (execute_vrp): Abstract out simplification of conditionals...
1175 (simplify_casted_conds): ...here.
1177 2021-07-26 Aldy Hernandez <aldyh@redhat.com>
1179 * gimple-array-bounds.cc (array_bounds_checker::get_value_range):
1180 Add gimple argument.
1181 (array_bounds_checker::check_array_ref): Same.
1182 (array_bounds_checker::check_addr_expr): Same.
1183 (array_bounds_checker::check_array_bounds): Pass statement to
1184 check_array_bounds and check_addr_expr.
1185 * gimple-array-bounds.h (check_array_bounds): Add gimple argument.
1186 (check_addr_expr): Same.
1187 (get_value_range): Same.
1189 2021-07-26 Tamar Christina <tamar.christina@arm.com>
1191 * config/aarch64/aarch64-simd-builtins.def (sdot, udot): Rename to..
1192 (sdot_prod, udot_prod): ... This.
1193 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): Merged
1195 (<sur>dot_prod<vsi2qi>): ... this.
1196 (aarch64_<sur>dot_lane<vsi2qi>, aarch64_<sur>dot_laneq<vsi2qi>):
1197 Change operands order.
1198 (<sur>sadv16qi): Use new operands order.
1199 * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32,
1200 vdotq_s32): Use new RTL ordering.
1202 2021-07-26 Tamar Christina <tamar.christina@arm.com>
1204 * config/aarch64/aarch64-builtins.c (TYPES_TERNOP_SUSS,
1205 aarch64_types_ternop_suss_qualifiers): New.
1206 * config/aarch64/aarch64-simd-builtins.def (usdot_prod): Use it.
1207 * config/aarch64/aarch64-simd.md (usdot_prod<vsi2qi>): Re-organize RTL.
1208 * config/aarch64/arm_neon.h (vusdot_s32, vusdotq_s32): Use it.
1210 2021-07-23 Jakub Jelinek <jakub@redhat.com>
1212 PR rtl-optimization/101562
1213 * expmed.c (store_integral_bit_field): Only use movstrict_optab
1214 if the operand isn't paradoxical.
1216 2021-07-23 Aldy Hernandez <aldyh@redhat.com>
1218 * gimple-array-bounds.h (class array_bounds_checker): Change
1219 ranges type to range_query.
1221 2021-07-23 Jonathan Wright <jonathan.wright@arm.com>
1223 * config/aarch64/arm_neon.h (vst1_s64_x2): Use
1224 __builtin_memcpy instead of constructing
1225 __builtin_aarch64_simd_oi one vector at a time.
1226 (vst1_u64_x2): Likewise.
1227 (vst1_f64_x2): Likewise.
1228 (vst1_s8_x2): Likewise.
1229 (vst1_p8_x2): Likewise.
1230 (vst1_s16_x2): Likewise.
1231 (vst1_p16_x2): Likewise.
1232 (vst1_s32_x2): Likewise.
1233 (vst1_u8_x2): Likewise.
1234 (vst1_u16_x2): Likewise.
1235 (vst1_u32_x2): Likewise.
1236 (vst1_f16_x2): Likewise.
1237 (vst1_f32_x2): Likewise.
1238 (vst1_p64_x2): Likewise.
1239 (vst1q_s8_x2): Likewise.
1240 (vst1q_p8_x2): Likewise.
1241 (vst1q_s16_x2): Likewise.
1242 (vst1q_p16_x2): Likewise.
1243 (vst1q_s32_x2): Likewise.
1244 (vst1q_s64_x2): Likewise.
1245 (vst1q_u8_x2): Likewise.
1246 (vst1q_u16_x2): Likewise.
1247 (vst1q_u32_x2): Likewise.
1248 (vst1q_u64_x2): Likewise.
1249 (vst1q_f16_x2): Likewise.
1250 (vst1q_f32_x2): Likewise.
1251 (vst1q_f64_x2): Likewise.
1252 (vst1q_p64_x2): Likewise.
1254 2021-07-23 Jonathan Wright <jonathan.wright@arm.com>
1256 * config/aarch64/arm_neon.h (vst1_s64_x3): Use
1257 __builtin_memcpy instead of constructing
1258 __builtin_aarch64_simd_ci one vector at a time.
1259 (vst1_u64_x3): Likewise.
1260 (vst1_f64_x3): Likewise.
1261 (vst1_s8_x3): Likewise.
1262 (vst1_p8_x3): Likewise.
1263 (vst1_s16_x3): Likewise.
1264 (vst1_p16_x3): Likewise.
1265 (vst1_s32_x3): Likewise.
1266 (vst1_u8_x3): Likewise.
1267 (vst1_u16_x3): Likewise.
1268 (vst1_u32_x3): Likewise.
1269 (vst1_f16_x3): Likewise.
1270 (vst1_f32_x3): Likewise.
1271 (vst1_p64_x3): Likewise.
1272 (vst1q_s8_x3): Likewise.
1273 (vst1q_p8_x3): Likewise.
1274 (vst1q_s16_x3): Likewise.
1275 (vst1q_p16_x3): Likewise.
1276 (vst1q_s32_x3): Likewise.
1277 (vst1q_s64_x3): Likewise.
1278 (vst1q_u8_x3): Likewise.
1279 (vst1q_u16_x3): Likewise.
1280 (vst1q_u32_x3): Likewise.
1281 (vst1q_u64_x3): Likewise.
1282 (vst1q_f16_x3): Likewise.
1283 (vst1q_f32_x3): Likewise.
1284 (vst1q_f64_x3): Likewise.
1285 (vst1q_p64_x3): Likewise.
1287 2021-07-23 H.J. Lu <hjl.tools@gmail.com>
1290 * config/i386/i386.c (ix86_gen_scratch_sse_rtx): Don't return
1291 hard register when LRA is in progress.
1293 2021-07-23 Jonathan Wright <jonathan.wright@arm.com>
1295 * config/aarch64/arm_neon.h (vst1_s8_x4): Use
1296 __builtin_memcpy instead of using a union.
1297 (vst1q_s8_x4): Likewise.
1298 (vst1_s16_x4): Likewise.
1299 (vst1q_s16_x4): Likewise.
1300 (vst1_s32_x4): Likewise.
1301 (vst1q_s32_x4): Likewise.
1302 (vst1_u8_x4): Likewise.
1303 (vst1q_u8_x4): Likewise.
1304 (vst1_u16_x4): Likewise.
1305 (vst1q_u16_x4): Likewise.
1306 (vst1_u32_x4): Likewise.
1307 (vst1q_u32_x4): Likewise.
1308 (vst1_f16_x4): Likewise.
1309 (vst1q_f16_x4): Likewise.
1310 (vst1_f32_x4): Likewise.
1311 (vst1q_f32_x4): Likewise.
1312 (vst1_p8_x4): Likewise.
1313 (vst1q_p8_x4): Likewise.
1314 (vst1_p16_x4): Likewise.
1315 (vst1q_p16_x4): Likewise.
1316 (vst1_s64_x4): Likewise.
1317 (vst1_u64_x4): Likewise.
1318 (vst1_p64_x4): Likewise.
1319 (vst1q_s64_x4): Likewise.
1320 (vst1q_u64_x4): Likewise.
1321 (vst1q_p64_x4): Likewise.
1322 (vst1_f64_x4): Likewise.
1323 (vst1q_f64_x4): Likewise.
1325 2021-07-23 Jonathan Wrightt <jonathan.wright@arm.com>
1327 * config/aarch64/arm_neon.h (vst2_s64): Use __builtin_memcpy
1328 instead of constructing __builtin_aarch64_simd_oi one vector
1330 (vst2_u64): Likewise.
1331 (vst2_f64): Likewise.
1332 (vst2_s8): Likewise.
1333 (vst2_p8): Likewise.
1334 (vst2_s16): Likewise.
1335 (vst2_p16): Likewise.
1336 (vst2_s32): Likewise.
1337 (vst2_u8): Likewise.
1338 (vst2_u16): Likewise.
1339 (vst2_u32): Likewise.
1340 (vst2_f16): Likewise.
1341 (vst2_f32): Likewise.
1342 (vst2_p64): Likewise.
1343 (vst2q_s8): Likewise.
1344 (vst2q_p8): Likewise.
1345 (vst2q_s16): Likewise.
1346 (vst2q_p16): Likewise.
1347 (vst2q_s32): Likewise.
1348 (vst2q_s64): Likewise.
1349 (vst2q_u8): Likewise.
1350 (vst2q_u16): Likewise.
1351 (vst2q_u32): Likewise.
1352 (vst2q_u64): Likewise.
1353 (vst2q_f16): Likewise.
1354 (vst2q_f32): Likewise.
1355 (vst2q_f64): Likewise.
1356 (vst2q_p64): Likewise.
1358 2021-07-23 Jonathan Wright <jonathan.wright@arm.com>
1360 * config/aarch64/arm_neon.h (vst3_s64): Use __builtin_memcpy
1361 instead of constructing __builtin_aarch64_simd_ci one vector
1363 (vst3_u64): Likewise.
1364 (vst3_f64): Likewise.
1365 (vst3_s8): Likewise.
1366 (vst3_p8): Likewise.
1367 (vst3_s16): Likewise.
1368 (vst3_p16): Likewise.
1369 (vst3_s32): Likewise.
1370 (vst3_u8): Likewise.
1371 (vst3_u16): Likewise.
1372 (vst3_u32): Likewise.
1373 (vst3_f16): Likewise.
1374 (vst3_f32): Likewise.
1375 (vst3_p64): Likewise.
1376 (vst3q_s8): Likewise.
1377 (vst3q_p8): Likewise.
1378 (vst3q_s16): Likewise.
1379 (vst3q_p16): Likewise.
1380 (vst3q_s32): Likewise.
1381 (vst3q_s64): Likewise.
1382 (vst3q_u8): Likewise.
1383 (vst3q_u16): Likewise.
1384 (vst3q_u32): Likewise.
1385 (vst3q_u64): Likewise.
1386 (vst3q_f16): Likewise.
1387 (vst3q_f32): Likewise.
1388 (vst3q_f64): Likewise.
1389 (vst3q_p64): Likewise.
1391 2021-07-23 Jonathan Wright <jonathan.wright@arm.com>
1393 * config/aarch64/arm_neon.h (vst4_s64): Use __builtin_memcpy
1394 instead of constructing __builtin_aarch64_simd_xi one vector
1396 (vst4_u64): Likewise.
1397 (vst4_f64): Likewise.
1398 (vst4_s8): Likewise.
1399 (vst4_p8): Likewise.
1400 (vst4_s16): Likewise.
1401 (vst4_p16): Likewise.
1402 (vst4_s32): Likewise.
1403 (vst4_u8): Likewise.
1404 (vst4_u16): Likewise.
1405 (vst4_u32): Likewise.
1406 (vst4_f16): Likewise.
1407 (vst4_f32): Likewise.
1408 (vst4_p64): Likewise.
1409 (vst4q_s8): Likewise.
1410 (vst4q_p8): Likewise.
1411 (vst4q_s16): Likewise.
1412 (vst4q_p16): Likewise.
1413 (vst4q_s32): Likewise.
1414 (vst4q_s64): Likewise.
1415 (vst4q_u8): Likewise.
1416 (vst4q_u16): Likewise.
1417 (vst4q_u32): Likewise.
1418 (vst4q_u64): Likewise.
1419 (vst4q_f16): Likewise.
1420 (vst4q_f32): Likewise.
1421 (vst4q_f64): Likewise.
1422 (vst4q_p64): Likewise.
1424 2021-07-23 Jonathan Wright <jonathan.wright@arm.com>
1426 * config/aarch64/arm_neon.h (vtbx4_s8): Use __builtin_memcpy
1427 instead of constructing __builtin_aarch64_simd_oi one vector
1429 (vtbx4_u8): Likewise.
1430 (vtbx4_p8): Likewise.
1432 2021-07-23 Jonathan Wright <jonathan.wright@arm.com>
1434 * config/aarch64/arm_neon.h (vtbl3_s8): Use __builtin_memcpy
1435 instead of constructing __builtin_aarch64_simd_oi one vector
1437 (vtbl3_u8): Likewise.
1438 (vtbl3_p8): Likewise.
1439 (vtbl4_s8): Likewise.
1440 (vtbl4_u8): Likewise.
1441 (vtbl4_p8): Likewise.
1443 2021-07-23 Jonathan Wright <jonathan.wright@arm.com>
1445 * config/aarch64/arm_neon.h (vqtbx2_s8): Use __builtin_memcpy
1446 instead of constructing __builtin_aarch64_simd_oi one vector
1448 (vqtbx2_u8): Likewise.
1449 (vqtbx2_p8): Likewise.
1450 (vqtbx2q_s8): Likewise.
1451 (vqtbx2q_u8): Likewise.
1452 (vqtbx2q_p8): Likewise.
1453 (vqtbx3_s8): Use __builtin_memcpy instead of constructing
1454 __builtin_aarch64_simd_ci one vector at a time.
1455 (vqtbx3_u8): Likewise.
1456 (vqtbx3_p8): Likewise.
1457 (vqtbx3q_s8): Likewise.
1458 (vqtbx3q_u8): Likewise.
1459 (vqtbx3q_p8): Likewise.
1460 (vqtbx4_s8): Use __builtin_memcpy instead of constructing
1461 __builtin_aarch64_simd_xi one vector at a time.
1462 (vqtbx4_u8): Likewise.
1463 (vqtbx4_p8): Likewise.
1464 (vqtbx4q_s8): Likewise.
1465 (vqtbx4q_u8): Likewise.
1466 (vqtbx4q_p8): Likewise.
1468 2021-07-23 Jonathan Wright <jonathan.wright@arm.com>
1470 * config/aarch64/arm_neon.h (vqtbl2_s8): Use __builtin_memcpy
1471 instead of constructing __builtin_aarch64_simd_oi one vector
1473 (vqtbl2_u8): Likewise.
1474 (vqtbl2_p8): Likewise.
1475 (vqtbl2q_s8): Likewise.
1476 (vqtbl2q_u8): Likewise.
1477 (vqtbl2q_p8): Likewise.
1478 (vqtbl3_s8): Use __builtin_memcpy instead of constructing
1479 __builtin_aarch64_simd_ci one vector at a time.
1480 (vqtbl3_u8): Likewise.
1481 (vqtbl3_p8): Likewise.
1482 (vqtbl3q_s8): Likewise.
1483 (vqtbl3q_u8): Likewise.
1484 (vqtbl3q_p8): Likewise.
1485 (vqtbl4_s8): Use __builtin_memcpy instead of constructing
1486 __builtin_aarch64_simd_xi one vector at a time.
1487 (vqtbl4_u8): Likewise.
1488 (vqtbl4_p8): Likewise.
1489 (vqtbl4q_s8): Likewise.
1490 (vqtbl4q_u8): Likewise.
1491 (vqtbl4q_p8): Likewise.
1493 2021-07-23 Haochen Gui <guihaoc@gcc.gnu.org>
1496 * config/rs6000/rs6000.md (cstore<mode>4): Fix wrong fall through.
1498 2021-07-22 Andrew Pinski <apinski@marvell.com>
1500 PR tree-optimization/10153
1501 * tree-tailcall.c (create_tailcall_accumulator):
1502 Don't call fold_convert as the type should be correct already.
1503 (tree_optimize_tail_calls_1): Use build_{one,zero}_cst instead
1504 of integer_{one,zero}_node for the call of create_tailcall_accumulator.
1506 2021-07-22 Aldy Hernandez <aldyh@redhat.com>
1508 * gimple-range-cache.cc (non_null_ref::adjust_range): Replace
1509 varying_p check for null/non-null check.
1511 2021-07-22 Andrew MacLeod <amacleod@redhat.com>
1513 PR tree-optimization/101511
1514 * value-relation.cc (relation_oracle::query_relation): Check if ssa1
1515 is in ssa2's equiv set, and don't trap if so.
1517 2021-07-22 Andrew MacLeod <amacleod@redhat.com>
1519 PR tree-optimization/101497
1520 * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Check
1523 2021-07-22 Andrew MacLeod <amacleod@redhat.com>
1525 PR tree-optimization/101496
1526 * vr-values.c (simplify_using_ranges::fold_cond): Call range_of_stmt
1527 first, then vrp_visit_cond_Stmt.
1529 2021-07-22 liuhongt <hongtao.liu@intel.com>
1531 * config/i386/i386-expand.c
1532 (ix86_broadcast_from_integer_constant): Rename to ..
1533 (ix86_broadcast_from_constant): .. this, and extend it to
1535 (ix86_expand_vector_move): Extend to float mode.
1536 * config/i386/i386-features.c
1537 (replace_constant_pool_with_broadcast): Remove.
1538 (remove_partial_avx_dependency_gate): Ditto.
1539 (constant_pool_broadcast): Ditto.
1540 (class pass_constant_pool_broadcast): Ditto.
1541 (make_pass_constant_pool_broadcast): Ditto.
1542 (remove_partial_avx_dependency): Adjust gate.
1543 * config/i386/i386-passes.def: Remove pass_constant_pool_broadcast.
1544 * config/i386/i386-protos.h
1545 (make_pass_constant_pool_broadcast): Remove.
1547 2021-07-22 liuhongt <hongtao.liu@intel.com>
1549 * config/i386/constraints.md (Wb): New constraint.
1551 * config/i386/i386.md (*ashlhi3_1): Extend to avx512 mask
1553 (*ashlqi3_1): Ditto.
1554 (*<insn><mode>3_1): Split to ..
1555 (*ashr<mode>3_1): this, ...
1556 (*lshr<mode>3_1): and this, also extend this pattern to avx512
1558 (*<insn><mode>3_1): Split to ..
1559 (*ashr<mode>3_1): this, ...
1560 (*lshrqi3_1): and this, also extend this pattern to avx512
1562 (*lshrhi3_1): And this, also extend this pattern to avx512
1564 * config/i386/sse.md (k<code><mode>): New define_split after
1565 it to convert generic shift pattern to mask shift ones.
1567 2021-07-21 Thomas Schwinge <thomas@codesourcery.com>
1568 Joseph Myers <joseph@codesourcery.com>
1569 Cesar Philippidis <cesar@codesourcery.com>
1571 * tree-core.h (omp_clause_code): Add 'OMP_CLAUSE_NOHOST'.
1572 * tree.c (omp_clause_num_ops, omp_clause_code_name, walk_tree_1):
1574 * tree-pretty-print.c (dump_omp_clause): Likewise.
1575 * omp-general.c (oacc_verify_routine_clauses): Likewise.
1576 * gimplify.c (gimplify_scan_omp_clauses)
1577 (gimplify_adjust_omp_clauses): Likewise.
1578 * tree-nested.c (convert_nonlocal_omp_clauses)
1579 (convert_local_omp_clauses): Likewise.
1580 * omp-low.c (scan_sharing_clauses): Likewise.
1581 * omp-offload.c (execute_oacc_device_lower): Update.
1583 2021-07-21 Martin Sebor <msebor@redhat.com>
1585 * tree-ssa-alias.c (walk_aliased_vdefs_1): Fix typos in a comment.
1587 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
1589 * config/rs6000/rs6000-gen-builtins.c (write_init_bif_table):
1592 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
1594 * config/rs6000/rs6000-gen-builtins.c (write_fntype): New
1596 (write_fntype_init): New stub function.
1597 (write_init_bif_table): Likewise.
1598 (write_init_ovld_table): New function.
1599 (write_init_file): Implement.
1601 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
1603 * config/rs6000/rs6000-gen-builtins.c
1604 (write_autogenerated_header): New function.
1605 (write_decls): Likewise.
1606 (write_extern_fntype): New callback function.
1607 (write_header_file): Implement.
1609 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
1611 * config/rs6000/rs6000-gen-builtins.c (write_defines_file):
1614 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
1616 * config/rs6000/rs6000-gen-builtins.c (complete_vector_type): New
1618 (complete_base_type): Likewise.
1619 (construct_fntype_id): Likewise.
1620 (parse_bif_entry): Call contruct_fntype_id.
1621 (parse_ovld_entry): Likewise.
1623 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
1625 * config/rs6000/rs6000-gen-builtins.c (ovld_stanza): New struct.
1626 (MAXOVLDSTANZAS): New macro.
1627 (ovld_stanzas): New variable.
1628 (curr_ovld_stanza): Likewise.
1629 (MAXOVLDS): New macro.
1630 (ovlddata): New struct.
1631 (ovlds): New variable.
1632 (curr_ovld): Likewise.
1633 (max_ovld_args): Likewise.
1634 (parse_ovld_entry): New function.
1635 (parse_ovld_stanza): Likewise.
1636 (parse_ovld): Implement.
1638 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
1640 * config/rs6000/rs6000-gen-builtins.c (parse_bif_attrs):
1643 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
1645 * config/rs6000/rs6000-gen-builtins.c (parse_args): New function.
1646 (parse_prototype): Implement.
1648 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
1650 * config/rs6000/rs6000-gen-builtins.c (bif_stanza): New enum.
1651 (curr_bif_stanza): New variable.
1652 (stanza_entry): New struct.
1653 (stanza_map): New initialized variable.
1654 (enable_string): Likewise.
1655 (fnkinds): New enum.
1656 (typelist): New struct.
1657 (attrinfo): Likewise.
1658 (MAXRESTROPNDS): New macro.
1659 (prototype): New struct.
1660 (MAXBIFS): New macro.
1661 (bifdata): New struct.
1662 (bifs): New variable.
1663 (curr_bif): Likewise.
1664 (bif_order): Likewise.
1665 (bif_index): Likewise.
1666 (fatal): New function.
1667 (stanza_name_to_stanza): Likewise.
1668 (parse_bif_attrs): New stub function.
1669 (parse_prototype): Likewise.
1670 (parse_bif_entry): New function.
1671 (parse_bif_stanza): Likewise.
1672 (parse_bif): Implement.
1673 (set_bif_order): New function.
1674 (create_bif_order): Implement.
1676 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com>
1678 * config/rs6000/rs6000-gen-builtins.c (rbtree.h): New #include.
1679 (num_bifs): New variable.
1680 (num_ovld_stanzas): Likewise.
1681 (num_ovlds): Likewise.
1682 (parse_codes): New enum.
1683 (bif_rbt): New variable.
1684 (ovld_rbt): Likewise.
1685 (fntype_rbt): Likewise.
1686 (bifo_rbt): Likewise.
1687 (parse_bif): New stub function.
1688 (create_bif_order): Likewise.
1689 (parse_ovld): Likewise.
1690 (write_header_file): Likewise.
1691 (write_init_file): Likewise.
1692 (write_defines_file): Likewise.
1693 (delete_output_files): New function.
1696 2021-07-21 H.J. Lu <hjl.tools@gmail.com>
1699 * config/i386/i386-builtin.def: Remove OPTION_MASK_ISA_SSE4_2
1700 from CRC32 _builtin functions.
1702 2021-07-21 Sebastian Huber <sebastian.huber@embedded-brains.de>
1704 * coverage.c (build_gcov_info_var_registration): Mark the object placed
1705 in the linker set as referenced so that it does not get optimized away.
1707 2021-07-21 Kito Cheng <kito.cheng@sifive.com>
1710 2021-07-20 Kito Cheng <kito.cheng@sifive.com>
1712 * config.gcc (riscv*-*-*): Detect which python is available.
1714 2021-07-21 Jakub Jelinek <jakub@redhat.com>
1716 PR middle-end/101535
1717 * gimplify.c (omp_check_private): Properly skip ORT_TARGET_DATA
1718 contexts in which decl isn't privatized and for ORT_TARGET return
1719 false if decl is mapped.
1721 2021-07-21 Richard Sandiford <richard.sandiford@arm.com>
1723 * gimple-loop-jam.c: Include tree-ssa-sccvn.h.
1724 (tree_loop_unroll_and_jam): Run value-numbering on a loop that
1725 has been successfully unrolled.
1727 2021-07-21 Richard Sandiford <richard.sandiford@arm.com>
1729 * tree-ssa-loop-manip.c (determine_exit_conditions): Return a null
1730 exit condition if no tail loop is needed, and if the original exit
1731 condition should therefore be kept as-is.
1732 (tree_transform_and_unroll_loop): Handle that case here too.
1734 2021-07-21 Kewen Lin <linkw@linux.ibm.com>
1736 * tree-data-ref.c (free_dependence_relations): Adjust to pass vec
1738 (free_data_refs): Likewise.
1739 * tree-data-ref.h (free_dependence_relations): Likewise.
1740 (free_data_refs): Likewise.
1741 * tree-predcom.c (struct chain): Use auto_vec instead of vec for
1743 (struct component): Likewise.
1744 (pcom_worker::pcom_worker): Adjust for auto_vec and renaming changes.
1745 (pcom_worker::~pcom_worker): Likewise.
1746 (pcom_worker::release_chain): Adjust as auto_vec changes.
1747 (pcom_worker::loop): Rename to ...
1748 (pcom_worker::m_loop): ... this.
1749 (pcom_worker::datarefs): Rename to ...
1750 (pcom_worker::m_datarefs): ... this. Use auto_vec instead of vec.
1751 (pcom_worker::dependences): Rename to ...
1752 (pcom_worker::m_dependences): ... this. Use auto_vec instead of vec.
1753 (pcom_worker::chains): Rename to ...
1754 (pcom_worker::m_chains): ... this. Use auto_vec instead of vec.
1755 (pcom_worker::looparound_phis): Rename to ...
1756 (pcom_worker::m_looparound_phis): ... this. Use auto_vec instead of
1758 (pcom_worker::cache): Rename to ...
1759 (pcom_worker::m_cache): ... this. Use auto_vec instead of vec.
1760 (pcom_worker::release_chain): Adjust for auto_vec changes.
1761 (pcom_worker::release_chains): Adjust for auto_vec and renaming
1763 (release_component): Remove.
1764 (release_components): Adjust for release_component removal.
1765 (component_of): Adjust to use vec.
1766 (merge_comps): Likewise.
1767 (pcom_worker::aff_combination_dr_offset): Adjust for renaming changes.
1768 (pcom_worker::determine_offset): Likewise.
1769 (class comp_ptrs): Remove.
1770 (pcom_worker::split_data_refs_to_components): Adjust for renaming
1771 changes, for comp_ptrs removal with auto_vec.
1772 (pcom_worker::suitable_component_p): Adjust for renaming changes.
1773 (pcom_worker::filter_suitable_components): Adjust for release_component
1775 (pcom_worker::valid_initializer_p): Adjust for renaming changes.
1776 (pcom_worker::find_looparound_phi): Likewise.
1777 (pcom_worker::add_looparound_copies): Likewise.
1778 (pcom_worker::determine_roots_comp): Likewise.
1779 (pcom_worker::single_nonlooparound_use): Likewise.
1780 (pcom_worker::execute_pred_commoning_chain): Likewise.
1781 (pcom_worker::execute_pred_commoning): Likewise.
1782 (pcom_worker::try_combine_chains): Likewise.
1783 (pcom_worker::prepare_initializers_chain): Likewise.
1784 (pcom_worker::prepare_initializers): Likewise.
1785 (pcom_worker::prepare_finalizers_chain): Likewise.
1786 (pcom_worker::prepare_finalizers): Likewise.
1787 (pcom_worker::tree_predictive_commoning_loop): Likewise.
1789 2021-07-20 Martin Sebor <msebor@redhat.com>
1791 PR middle-end/101397
1792 * builtins.c (gimple_call_return_array): Add argument. Correct
1793 offsets for memchr, mempcpy, stpcpy, and stpncpy.
1794 (compute_objsize_r): Adjust offset computation for argument returning
1797 2021-07-20 Martin Sebor <msebor@redhat.com>
1799 PR middle-end/101300
1800 * tree-ssa-uninit.c (check_defs): Handle UBSAN built-ins.
1802 2021-07-20 Jeff Law <jlaw@localhost.localdomain>
1804 * function.c (assign_parm_setup_block): Use adjust_address instead
1805 of change_address to preserve MEM_EXPR and friends.
1807 2021-07-20 Martin Sebor <msebor@redhat.com>
1809 * cfgloop.h (single_likely_exit): Adjust by-value argument to
1811 * cfgloopanal.c (single_likely_exit): Same.
1812 * cgraph.h (struct cgraph_node): Same.
1813 * cgraphclones.c (cgraph_node::create_virtual_clone): Same.
1814 * genautomata.c (merge_states): Same.
1815 * genextract.c (VEC_char_to_string): Same.
1816 * genmatch.c (dt_node::gen_kids_1): Same.
1817 (walk_captures): Adjust by-value argument to by-reference.
1818 * gimple-ssa-store-merging.c (check_no_overlap): Adjust by-value argument
1819 to by-const-reference.
1820 * gimple.c (gimple_build_call_vec): Same.
1821 (gimple_build_call_internal_vec): Same.
1822 (gimple_build_switch): Same.
1823 (sort_case_labels): Same.
1824 (preprocess_case_label_vec_for_gimple): Adjust by-value argument to
1826 * gimple.h (gimple_build_call_vec): Adjust by-value argument to
1828 (gimple_build_call_internal_vec): Same.
1829 (gimple_build_switch): Same.
1830 (sort_case_labels): Same.
1831 (preprocess_case_label_vec_for_gimple): Adjust by-value argument to
1833 * haifa-sched.c (calc_priorities): Adjust by-value argument to
1835 (sched_init_luids): Same.
1836 (haifa_init_h_i_d): Same.
1837 * ipa-cp.c (ipa_get_indirect_edge_target_1): Same.
1838 (adjust_callers_for_value_intersection): Adjust by-value argument to
1840 (find_more_scalar_values_for_callers_subset): Adjust by-value argument to
1842 (find_more_contexts_for_caller_subset): Same.
1843 (find_aggregate_values_for_callers_subset): Same.
1844 (copy_useful_known_contexts): Same.
1845 * ipa-fnsummary.c (remap_edge_summaries): Same.
1846 (remap_freqcounting_predicate): Same.
1847 * ipa-inline.c (add_new_edges_to_heap): Adjust by-value argument to
1849 * ipa-predicate.c (predicate::remap_after_inlining): Adjust by-value argument
1850 to by-const-reference.
1851 * ipa-predicate.h (predicate::remap_after_inlining): Same.
1852 * ipa-prop.c (ipa_find_agg_cst_for_param): Same.
1853 * ipa-prop.h (ipa_find_agg_cst_for_param): Same.
1854 * ira-build.c (ira_loop_tree_body_rev_postorder): Same.
1855 * read-rtl.c (add_overload_instance): Same.
1856 * rtl.h (native_decode_rtx): Same.
1857 (native_decode_vector_rtx): Same.
1858 * sched-int.h (sched_init_luids): Same.
1859 (haifa_init_h_i_d): Same.
1860 * simplify-rtx.c (native_decode_vector_rtx): Same.
1861 (native_decode_rtx): Same.
1862 * tree-call-cdce.c (gen_shrink_wrap_conditions): Same.
1863 (shrink_wrap_one_built_in_call_with_conds): Same.
1864 (shrink_wrap_conditional_dead_built_in_calls): Same.
1865 * tree-data-ref.c (create_runtime_alias_checks): Same.
1866 (compute_all_dependences): Same.
1867 * tree-data-ref.h (compute_all_dependences): Same.
1868 (create_runtime_alias_checks): Same.
1869 (index_in_loop_nest): Same.
1870 * tree-if-conv.c (mask_exists): Same.
1871 * tree-loop-distribution.c (class loop_distribution): Same.
1872 (loop_distribution::create_rdg_vertices): Same.
1873 (dump_rdg_partitions): Same.
1874 (debug_rdg_partitions): Same.
1875 (partition_contains_all_rw): Same.
1876 (loop_distribution::distribute_loop): Same.
1877 * tree-parloops.c (oacc_entry_exit_ok_1): Same.
1878 (oacc_entry_exit_single_gang): Same.
1879 * tree-ssa-loop-im.c (hoist_memory_references): Same.
1880 (loop_suitable_for_sm): Same.
1881 * tree-ssa-loop-niter.c (bound_index): Same.
1882 * tree-ssa-reassoc.c (update_ops): Same.
1883 (swap_ops_for_binary_stmt): Same.
1884 (rewrite_expr_tree): Same.
1885 (rewrite_expr_tree_parallel): Same.
1886 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Same.
1887 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Same.
1888 * tree-ssa-structalias.c (process_all_all_constraints): Same.
1889 (make_constraints_to): Same.
1890 (handle_lhs_call): Same.
1891 (find_func_aliases_for_builtin_call): Same.
1892 (sort_fieldstack): Same.
1893 (check_for_overlaps): Same.
1894 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Same.
1895 (vect_create_cond_for_unequal_addrs): Same.
1896 (vect_create_cond_for_lower_bounds): Same.
1897 (vect_create_cond_for_alias_checks): Same.
1898 * tree-vect-slp-patterns.c (vect_validate_multiplication): Same.
1899 * tree-vect-slp.c (vect_analyze_slp_instance): Same.
1900 (vect_make_slp_decision): Same.
1901 (vect_slp_bbs): Same.
1902 (duplicate_and_interleave): Same.
1903 (vect_transform_slp_perm_load): Same.
1904 (vect_schedule_slp): Same.
1905 * tree-vectorizer.h (vect_transform_slp_perm_load): Same.
1906 (vect_schedule_slp): Same.
1907 (duplicate_and_interleave): Same.
1908 * tree.c (build_vector_from_ctor): Same.
1909 (build_vector): Same.
1910 (check_vector_cst): Same.
1911 (check_vector_cst_duplicate): Same.
1912 (check_vector_cst_fill): Same.
1913 (check_vector_cst_stepped): Same.
1914 * tree.h (build_vector_from_ctor): Same.
1916 2021-07-20 Jakub Jelinek <jakub@redhat.com>
1919 * config/rs6000/rs6000-protos.h (easy_altivec_constant): Change return
1920 type from bool to int.
1921 * config/rs6000/rs6000.c (vspltis_constant): Fix up handling the
1922 EASY_VECTOR_MSB case if either step or copies is not 1.
1923 (vspltis_shifted): Fix comment typo.
1924 (easy_altivec_constant): Change return type from bool to int, instead
1925 of returning true return byte size of the element mode that should be
1926 used to synthetize the constant.
1927 * config/rs6000/predicates.md (easy_vector_constant_msb): Require
1928 that vspltis_shifted is 0, handle the case where easy_altivec_constant
1929 assumes using different vector mode from CONST_VECTOR's mode.
1930 * config/rs6000/altivec.md (easy_vector_constant_msb splitter): Use
1931 easy_altivec_constant to determine mode in which -1 >> -1 should be
1932 performed, use rs6000_expand_vector_init instead of gen_vec_initv4sisi.
1934 2021-07-20 Richard Biener <rguenther@suse.de>
1937 * dwarf2out.h (dwarf_file_data): Add key member.
1938 * dwarf2out.c (dwarf_file_hasher::equal): Compare key.
1939 (dwarf_file_hasher::hash): Hash key.
1940 (lookup_filename): Remap the filename and store it in the
1941 filename member of dwarf_file_data when creating a new
1943 (file_name_acquire): Do not remap the filename again.
1944 (maybe_emit_file): Likewise.
1946 2021-07-20 Jonathan Wright <jonathan.wright@arm.com>
1948 * config/aarch64/aarch64-simd-builtins.def: Use two variant
1949 generators for all TBL/TBX intrinsics and rename to
1950 consistent forms: qtbl[1234] or qtbx[1234].
1951 * config/aarch64/aarch64-simd.md (aarch64_tbl1<mode>):
1953 (aarch64_qtbl1<mode>): This.
1954 (aarch64_tbx1<mode>): Rename to...
1955 (aarch64_qtbx1<mode>): This.
1956 (aarch64_tbl2v16qi): Delete.
1957 (aarch64_tbl3<mode>): Rename to...
1958 (aarch64_qtbl2<mode>): This.
1959 (aarch64_tbx4<mode>): Rename to...
1960 (aarch64_qtbx2<mode>): This.
1961 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Use
1962 renamed qtbl1 and qtbl2 RTL patterns.
1963 * config/aarch64/arm_neon.h (vqtbl1_p8): Use renamed qtbl1
1965 (vqtbl1_s8): Likewise.
1966 (vqtbl1_u8): Likewise.
1967 (vqtbl1q_p8): Likewise.
1968 (vqtbl1q_s8): Likewise.
1969 (vqtbl1q_u8): Likewise.
1970 (vqtbx1_s8): Use renamed qtbx1 RTL pattern.
1971 (vqtbx1_u8): Likewise.
1972 (vqtbx1_p8): Likewise.
1973 (vqtbx1q_s8): Likewise.
1974 (vqtbx1q_u8): Likewise.
1975 (vqtbx1q_p8): Likewise.
1976 (vtbl1_s8): Use renamed qtbl1 RTL pattern.
1977 (vtbl1_u8): Likewise.
1978 (vtbl1_p8): Likewise.
1979 (vtbl2_s8): Likewise
1980 (vtbl2_u8): Likewise.
1981 (vtbl2_p8): Likewise.
1982 (vtbl3_s8): Use renamed qtbl2 RTL pattern.
1983 (vtbl3_u8): Likewise.
1984 (vtbl3_p8): Likewise.
1985 (vtbl4_s8): Likewise.
1986 (vtbl4_u8): Likewise.
1987 (vtbl4_p8): Likewise.
1988 (vtbx2_s8): Use renamed qtbx2 RTL pattern.
1989 (vtbx2_u8): Likewise.
1990 (vtbx2_p8): Likewise.
1991 (vqtbl2_s8): Use renamed qtbl2 RTL pattern.
1992 (vqtbl2_u8): Likewise.
1993 (vqtbl2_p8): Likewise.
1994 (vqtbl2q_s8): Likewise.
1995 (vqtbl2q_u8): Likewise.
1996 (vqtbl2q_p8): Likewise.
1997 (vqtbx2_s8): Use renamed qtbx2 RTL pattern.
1998 (vqtbx2_u8): Likewise.
1999 (vqtbx2_p8): Likewise.
2000 (vqtbx2q_s8): Likewise.
2001 (vqtbx2q_u8): Likewise.
2002 (vqtbx2q_p8): Likewise.
2003 (vtbx4_s8): Likewise.
2004 (vtbx4_u8): Likewise.
2005 (vtbx4_p8): Likewise.
2007 2021-07-20 Uroš Bizjak <ubizjak@gmail.com>
2010 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
2012 (define_peephole2 atomic_loaddi_fpu): Ditto.
2014 2021-07-20 Kito Cheng <kito.cheng@sifive.com>
2016 * config.gcc (riscv*-*-*): Detect which python is available.
2018 2021-07-20 Kewen Lin <linkw@linux.ibm.com>
2020 * config/rs6000/vsx.md (mulhs_<mode>): Rename to...
2021 (smul<mode>3_highpart): ... this.
2022 (mulhu_<mode>): Rename to...
2023 (umul<mode>3_highpart): ... this.
2024 * config/rs6000/rs6000-builtin.def (MULHS_V2DI, MULHS_V4SI,
2025 MULHU_V2DI, MULHU_V4SI): Adjust.
2027 2021-07-20 Kewen Lin <linkw@linux.ibm.com>
2029 PR tree-optimization/100696
2030 * internal-fn.c (first_commutative_argument): Add info for IFN_MULH.
2031 * internal-fn.def (IFN_MULH): New internal function.
2032 * tree-vect-patterns.c (vect_recog_mulhs_pattern): Add support to
2033 recog normal multiply highpart as IFN_MULH.
2034 * config/i386/i386.c (ix86_add_stmt_cost): Adjust for combined
2037 2021-07-19 Indu Bhagat <indu.bhagat@oracle.com>
2039 * config/elfos.h (CTF_DEBUGGING_INFO): New definition.
2040 (BTF_DEBUGGING_INFO): Likewise.
2041 * doc/tm.texi.in: Document the new macros.
2042 * doc/tm.texi: Regenerated.
2043 * toplev.c: Guard initialization of debug hooks.
2045 2021-07-19 Indu Bhagat <indu.bhagat@oracle.com>
2047 * flags.h (ctf_debuginfo_p): New function declaration.
2048 * opts.c (ctf_debuginfo_p): New function definition.
2050 2021-07-19 Andrew Stubbs <ams@codesourcery.com>
2053 * config/gcn/gcn-hsa.h (DRIVER_SELF_SPECS): New.
2054 (ASM_SPEC): Set -mattr for xnack and sram-ecc.
2055 * config/gcn/gcn-opts.h (enum sram_ecc_type): New.
2056 * config/gcn/gcn-valu.md: Add a warning comment.
2057 * config/gcn/gcn.c (gcn_option_override): Add "sorry" for -mxnack.
2058 (output_file_start): Add xnack and sram-ecc state to ".amdgcn_target".
2059 * config/gcn/gcn.md: Add a warning comment.
2060 * config/gcn/gcn.opt: Add -mxnack and -msram-ecc.
2061 * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): Remove
2063 (EF_AMDGPU_XNACK): New.
2064 (EF_AMDGPU_SRAM_ECC): New.
2066 (copy_early_debug_info): Use elf_flags.
2067 (main): Handle -mxnack and -msram-ecc options.
2068 * doc/invoke.texi: Document -mxnack and -msram-ecc.
2070 2021-07-19 Andrew Pinski <apinski@marvell.com>
2073 * config/aarch64/aarch64.md (csneg3_uxtw_insn): Rename to ...
2074 (*cs<neg_not_cs>3_uxtw_insn4): and extend to NEG_NOT.
2076 2021-07-19 Richard Biener <rguenther@suse.de>
2078 PR tree-optimization/101505
2079 * tree-vect-patterns.c (vect_determine_precisions): Walk
2080 PHIs also for loop vectorization.
2082 2021-07-19 Richard Biener <rguenther@suse.de>
2084 * gimple.h (gimple_expr_type): Remove.
2085 * doc/gimple.texi: Remove gimple_expr_type documentation.
2087 2021-07-19 Richard Biener <rguenther@suse.de>
2089 * tree-ssa-sccvn.c (vn_reference_eq): Handle NULL vr->type.
2090 (ao_ref_init_from_vn_reference): Likewise.
2091 (fully_constant_reference): Likewise.
2092 (vn_reference_lookup_call): Do not set vr->type to random
2094 * tree-ssa-pre.c (compute_avail): Do not try to PRE calls
2096 * tree-vect-generic.c (expand_vector_piecewise): Pass in
2097 whether we expanded parallel.
2098 (expand_vector_parallel): Adjust.
2099 (expand_vector_addition): Likewise.
2100 (expand_vector_comparison): Likewise.
2101 (expand_vector_operation): Likewise.
2102 (expand_vector_scalar_condition): Likewise.
2103 (expand_vector_conversion): Likewise.
2105 2021-07-19 Richard Biener <rguenther@suse.de>
2107 * tree-vrp.c (register_edge_assert_for_2): Use the
2109 (vrp_folder::fold_predicate_in): Likewise.
2110 * vr-values.c (gimple_assign_nonzero_p): Likewise.
2111 (vr_values::extract_range_from_comparison): Likewise.
2112 (vr_values::extract_range_from_ubsan_builtin): Use the
2113 type of the first operand.
2114 (vr_values::extract_range_basic): Push down type
2115 computation, use the appropriate LHS.
2116 (vr_values::extract_range_from_assignment): Use the
2119 2021-07-18 H.J. Lu <hjl.tools@gmail.com>
2122 * common/config/i386/i386-common.c (ix86_handle_option): For
2123 -mgeneral-regs-only, enable the GPR only instructions which are
2124 enabled implicitly by SSE ISAs unless they have been disabled
2127 2021-07-18 H.J. Lu <hjl.tools@gmail.com>
2130 * config/i386/i386.c (ix86_check_avx_upper_stores): Moved before
2131 ix86_avx_u128_mode_needed.
2132 (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY if callee
2133 returns AVX register.
2135 2021-07-17 Jan Hubicka <hubicka@ucw.cz>
2137 * tree-ssa-structalias.c (handle_rhs_call): Support EAF_NOT_RETURNED.
2138 (handle_const_call): Liekise
2139 (handle_pure_call): Liekise
2141 2021-07-17 Andrew MacLeod <amacleod@redhat.com>
2143 PR tree-optimization/96542
2144 * range-op.cc (range_operator::wi_fold_in_parts): New.
2145 (range_operator::fold_range): Call wi_fold_in_parts.
2146 (operator_lshift::wi_fold): Fix broken lshift by [0,0].
2147 * range-op.h (wi_fold_in_parts): Add prototype.
2149 2021-07-16 David Malcolm <dmalcolm@redhat.com>
2151 * doc/analyzer.texi: Add __analyzer_dump_state.
2153 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
2155 * config/rs6000/rbtree.c: New file.
2156 * config/rs6000/rbtree.h: New file.
2158 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
2160 * config/rs6000/rs6000-gen-builtins.c (restriction): New enum.
2161 (typeinfo): Add restr field.
2162 (match_bracketed_pair): New function.
2163 (match_const_restriction): Implement.
2165 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
2167 * config/rs6000/rs6000-gen-builtins.c (match_basetype): Implement.
2169 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
2171 * config/rs6000/rs6000-gen-builtins.c (void_status): New enum.
2172 (basetype): Likewise.
2173 (typeinfo): Likewise.
2174 (handle_pointer): New function.
2175 (match_basetype): New stub function.
2176 (match_const_restriction): Likewise.
2177 (match_type): New function.
2179 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
2181 * config/rs6000/rs6000-gen-builtins.c (consume_whitespace): New
2183 (advance_line): Likewise.
2184 (safe_inc_pos): Likewise.
2185 (match_identifier): Likewise.
2186 (match_integer): Likewise.
2187 (match_to_right_bracket): Likewise.
2189 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
2191 * config/rs6000/rs6000-gen-builtins.c (bif_file): New variable.
2192 (ovld_file): Likewise.
2193 (header_file): Likewise.
2194 (init_file): Likewise.
2195 (defines_file): Likewise.
2196 (pgm_path): Likewise.
2197 (bif_path): Likewise.
2198 (ovld_path): Likewise.
2199 (header_path): Likewise.
2200 (init_path): Likewise.
2201 (defines_path): Likewise.
2202 (LINELEN): New macro.
2203 (linebuf): New variable.
2207 (bif_diag): New function.
2208 (ovld_diag): Likewise.
2210 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
2212 * config/rs6000/rs6000-builtin-new.def: New.
2213 * config/rs6000/rs6000-overload.def: New.
2215 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
2217 * config/rs6000/rs6000-gen-builtins.c: New.
2219 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
2221 * Makefile.in (EXTRA_GTYPE_DEPS): New variable.
2222 (s-gtype): Depend on EXTRA_GTYPE_DEPS.
2223 * gengtype-state.c (state_writer::write_state_file_list): Add a
2224 parameter to the fileslist expression for the number of build
2226 (read_state_files_list): Detect build headers and strip the
2227 initial "./" or ".\" from their names.
2228 * gengtype.c (build_headers): New global variable.
2229 (num_build_headers): Likewise.
2230 (open_base_files): Emit #include for each build header.
2231 (main): Detect and count build headers.
2232 * gengtype.h (build_headers): New extern variable.
2233 (num_build_headers): Likewise.
2235 2021-07-16 Richard Biener <rguenther@suse.de>
2237 * gimple-ssa-store-merging.c (verify_symbolic_number_p): Use
2238 the type of the LHS.
2239 (find_bswap_or_nop_1): Likewise.
2240 (find_bswap_or_nop): Likewise.
2241 * tree-vectorizer.h (vect_get_smallest_scalar_type): Adjust
2243 * tree-vect-data-refs.c (vect_get_smallest_scalar_type):
2244 Remove unused parameters, pass in the scalar type. Fix
2245 internal store function handling.
2246 * tree-vect-stmts.c (vect_analyze_stmt): Remove assert.
2247 (vect_get_vector_types_for_stmt): Move down check for
2248 existing vector stmt after we've determined a scalar type.
2249 Pass down the used scalar type to vect_get_smallest_scalar_type.
2250 * tree-vect-generic.c (expand_vector_condition): Use
2251 the type of the LHS.
2252 (expand_vector_scalar_condition): Likewise.
2253 (expand_vector_operations_1): Likewise.
2254 * tree-vect-patterns.c (vect_widened_op_tree): Likewise.
2255 (vect_recog_dot_prod_pattern): Likewise.
2256 (vect_recog_sad_pattern): Likewise.
2257 (vect_recog_widen_op_pattern): Likewise.
2258 (vect_recog_widen_sum_pattern): Likewise.
2259 (vect_recog_mixed_size_cond_pattern): Likewise.
2261 2021-07-16 Jan Hubicka <hubicka@ucw.cz>
2263 * ipa-modref.c (struct escape_entry): Use eaf_fleags_t.
2264 (dump_eaf_flags): Dump EAF_NOT_RETURNED
2265 (eaf_flags_useful_p): Use eaf_fleags_t; handle const functions
2266 and EAF_NOT_RETURNED.
2267 (modref_summary::useful_p): Likewise.
2268 (modref_summary_lto::useful_p): Likewise.
2269 (struct) modref_summary_lto: Use eaf_fleags_t.
2270 (deref_flags): Handle EAF_NOT_RETURNED.
2271 (struct escape_point): Use min_flags.
2272 (modref_lattice::init): Add EAF_NOT_RETURNED.
2273 (merge_call_lhs_flags): Ignore EAF_NOT_RETURNED functions
2274 (analyze_ssa_name_flags): Clear EAF_NOT_RETURNED on return;
2276 (analyze_parms): Also analyze const functions; update conition on
2278 (modref_write): Update streaming.
2279 (read_section): Update streaming.
2280 (remap_arg_flags): Use eaf_flags_t.
2281 (modref_merge_call_site_flags): Hanlde EAF_NOT_RETURNED.
2282 * ipa-modref.h: (eaf_flags_t): New typedef.
2283 (struct modref_summary): Use eaf_flags_t.
2284 * tree-core.h (EAF_NOT_RETURNED): New constant.
2286 2021-07-16 Richard Biener <rguenther@suse.de>
2288 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Use
2289 the type of the LHS.
2290 (gimple_assign_nonnegative_warnv_p): Likewise.
2291 (gimple_call_nonnegative_warnv_p): Likewise. Return false
2292 if the call has no LHS.
2293 * gimple.c (gimple_could_trap_p_1): Use the type of the LHS.
2294 * tree-eh.c (stmt_could_throw_1_p): Likewise.
2295 * tree-inline.c (insert_init_stmt): Likewise.
2296 * tree-ssa-loop-niter.c (get_val_for): Likewise.
2297 * tree-outof-ssa.c (ssa_is_replaceable_p): Use the type of
2299 * tree-ssa-sccvn.c (init_vn_nary_op_from_stmt): Take a
2300 gassign *. Use the type of the lhs.
2301 (vn_nary_op_lookup_stmt): Adjust.
2302 (vn_nary_op_insert_stmt): Likewise.
2304 2021-07-16 Ilya Leoshkevich <iii@linux.ibm.com>
2306 * config/s390/predicates.md (bras_sym_operand): Accept all
2307 functions in 64-bit mode, use UNSPEC_PLT31.
2308 (larl_operand): Use UNSPEC_PLT31.
2309 * config/s390/s390.c (s390_loadrelative_operand_p): Likewise.
2310 (legitimize_pic_address): Likewise.
2311 (s390_emit_tls_call_insn): Mark __tls_get_offset as function,
2313 (s390_delegitimize_address): Use UNSPEC_PLT31.
2314 (s390_output_addr_const_extra): Likewise.
2315 (print_operand): Add @PLT to TLS calls, handle %K.
2316 (s390_function_profiler): Mark __fentry__/_mcount as function,
2317 use %K, use UNSPEC_PLT31.
2318 (s390_output_mi_thunk): Use only UNSPEC_GOT, use %K.
2319 (s390_emit_call): Use UNSPEC_PLT31.
2320 (s390_emit_tpf_eh_return): Mark __tpf_eh_return as function.
2321 * config/s390/s390.md (UNSPEC_PLT31): Rename from UNSPEC_PLT.
2322 (*movdi_64): Use %K.
2323 (reload_base_64): Likewise.
2324 (*sibcall_brc): Likewise.
2325 (*sibcall_brcl): Likewise.
2326 (*sibcall_value_brc): Likewise.
2327 (*sibcall_value_brcl): Likewise.
2330 (*bras_r): Likewise.
2331 (*brasl_r): Likewise.
2332 (*bras_tls): Likewise.
2333 (*brasl_tls): Likewise.
2334 (main_base_64): Likewise.
2335 (reload_base_64): Likewise.
2336 (@split_stack_call<mode>): Likewise.
2338 2021-07-16 Richard Biener <rguenther@suse.de>
2340 PR tree-optimization/101467
2341 * tree-vect-stmts.c (vect_gen_while): Properly guard
2342 make_temp_ssa_name usage.
2344 2021-07-16 Cooper Qu <cooper.qu@linux.alibaba.com>
2346 * config.gcc: Don't use forked print-sysroot-suffix.sh and
2347 t-sysroot-suffix for C-SKY.
2348 * config/csky/print-sysroot-suffix.sh: Delete.
2349 * config/csky/t-csky-linux: Delete.
2350 * config/csky/t-sysroot-suffix: Define MULTILIB_DIRNAMES
2351 instead of CSKY_MULTILIB_DIRNAMES.
2353 2021-07-16 Richard Biener <rguenther@suse.de>
2355 * tree-vect-loop.c (vect_transform_cycle_phi): Correct sign
2356 conversion issues with the partial reduction of the reused
2359 2021-07-16 Richard Biener <rguenther@suse.de>
2361 * config/i386/i386-options.c (ix86_option_override_internal): Set
2362 param_vect_partial_vector_usage to zero if not set.
2364 2021-07-15 Uroš Bizjak <ubizjak@gmail.com>
2367 * config/i386/i386.h (VALID_SSE_REG_MODE): Add TDmode.
2368 (VALID_INT_MODE_P): Add SDmode and DDmode.
2369 Add TDmode for TARGET_64BIT.
2370 (VALID_DFP_MODE_P): Remove.
2371 * config/i386/i386.c (ix86_hard_regno_mode_ok):
2372 Do not use VALID_DFP_MODE_P.
2374 2021-07-15 Andrew MacLeod <amacleod@redhat.com>
2376 * gimple-range-fold.cc (adjust_pointer_diff_expr): Use
2378 (fold_using_range::fold_stmt): Ditto.
2379 (fold_using_range::range_of_range_op): Ditto.
2380 (fold_using_range::range_of_phi): Ditto.
2381 (fold_using_range::range_of_call): Ditto.
2382 (fold_using_range::range_of_builtin_ubsan_call): Ditto.
2383 (fold_using_range::range_of_builtin_call): Ditto.
2384 (fold_using_range::range_of_cond_expr): Ditto.
2385 * gimple-range-fold.h (gimple_range_type): New.
2387 2021-07-15 Martin Sebor <msebor@redhat.com>
2390 * tree-ssa-strlen.c (handle_assign): New function.
2391 (maybe_warn_overflow): Add argument.
2392 (nonzero_bytes_for_type): New function.
2393 (count_nonzero_bytes): Handle more tree types. Call
2394 nonzero_bytes_for_tye.
2395 (count_nonzero_bytes): Handle types.
2396 (handle_store): Handle stores from function calls.
2397 (strlen_check_and_optimize_call): Move code to handle_assign. Call
2398 it for assignments from function calls.
2400 2021-07-15 David Malcolm <dmalcolm@redhat.com>
2405 * doc/invoke.texi: Add -Wanalyzer-use-of-uninitialized-value.
2407 2021-07-15 David Malcolm <dmalcolm@redhat.com>
2409 * doc/invoke.texi (-fdump-analyzer-exploded-paths): New.
2411 2021-07-15 Martin Sebor <msebor@redhat.com>
2415 * fold-const.c (operand_compare::operand_equal_p): Handle OEP_DECL_NAME.
2416 (operand_compare::verify_hash_value): Same.
2417 * tree-core.h (OEP_DECL_NAME): New.
2419 2021-07-15 Martin Jambor <mjambor@suse.cz>
2421 * profile-count.h (profile_count::value): Change the return type to
2423 * gimple-pretty-print.c (dump_gimple_bb_header): Adjust print
2425 * tree-cfg.c (dump_function_to_file): Likewise.
2427 2021-07-15 Bill Schmidt <wschmidt@linux.ibm.com>
2430 * config/rs6000/rs6000-p8swap.c (has_part_mult): New.
2431 (rs6000_analyze_swaps): Insns containing a subreg of a mult are
2434 2021-07-15 Richard Biener <rguenther@suse.de>
2436 * tree-vectorizer.h (vect_gen_while): Match up with
2438 * tree-vect-stmts.c (vect_gen_while): Adjust API to that
2439 of vect_gen_while_not.
2440 (vect_gen_while_not): Adjust.
2441 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Likewise.
2443 2021-07-15 Aldy Hernandez <aldyh@redhat.com>
2445 * gimple-range-cache.cc (non_null_ref::adjust_range): New.
2446 (ranger_cache::range_of_def): Call adjust_range.
2447 (ranger_cache::entry_range): Same.
2448 * gimple-range-cache.h (non_null_ref::adjust_range): New.
2449 * gimple-range.cc (gimple_ranger::range_of_expr): Call
2451 (gimple_ranger::range_on_entry): Same.
2453 2021-07-15 Tamar Christina <tamar.christina@arm.com>
2456 2021-07-14 Tamar Christina <tamar.christina@arm.com>
2458 * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements.
2460 2021-07-15 Tamar Christina <tamar.christina@arm.com>
2463 2021-07-14 Tamar Christina <tamar.christina@arm.com>
2465 * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to...
2466 (sdot_prod, udot_prod): ...These.
2467 * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove.
2468 (aarch64_<sur>dot<vsi2qi>): Rename to...
2469 (<sur>dot_prod<vsi2qi>): ...This.
2470 * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
2473 2021-07-15 Jakub Jelinek <jakub@redhat.com>
2475 PR middle-end/101437
2476 * gimplify.c (gimplify_expr): Throw away volatile reads from empty
2477 types even if they have non-BLKmode TYPE_MODE.
2479 2021-07-15 Richard Biener <rguenther@suse.de>
2482 * gcc.c (process_command): Process -gtoggle like process_options
2483 would after parsing options.
2485 2021-07-15 Trevor Saunders <tbsaunde@tbsaunde.org>
2487 * cfgexpand.c (expand_asm_loc): Adjust.
2488 (expand_asm_stmt): Likewise.
2489 * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Likewise.
2490 * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
2491 * config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
2492 * config/avr/avr.c (avr_md_asm_adjust): Likewise.
2493 * config/cris/cris.c (cris_md_asm_adjust): Likewise.
2494 * config/i386/i386.c (ix86_md_asm_adjust): Likewise.
2495 * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
2496 * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
2497 * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
2498 * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
2499 * config/s390/s390.c (s390_md_asm_adjust): Likewise.
2500 * config/vax/vax.c (vax_md_asm_adjust): Likewise.
2501 * config/visium/visium.c (visium_md_asm_adjust): Likewise.
2502 * doc/tm.texi: Regenerate.
2503 * target.def: Add location argument to md_asm_adjust.
2505 2021-07-15 Trevor Saunders <tbsaunde@tbsaunde.org>
2507 * tree-diagnostic.c (diagnostic_report_current_function): Use the
2508 diagnostic's location, not input_location.
2510 2021-07-15 Trevor Saunders <tbsaunde@tbsaunde.org>
2512 * cfgexpand.c (tree_conflicts_with_clobbers_p): Pass location to
2514 (expand_asm_stmt): Likewise.
2516 2021-07-14 Peter Bergner <bergner@linux.ibm.com>
2518 * config/rs6000/rs6000.c (adjacent_mem_locations): Return the lower
2519 addressed memory rtx, if any.
2520 (rs6000_split_multireg_move): Fix code formatting.
2521 Handle MMA build built-ins with operands in adjacent memory locations.
2523 2021-07-14 Peter Bergner <bergner@linux.ibm.com>
2525 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Move to later
2528 2021-07-14 Jason Merrill <jason@redhat.com>
2530 * sel-sched-ir.h (get_all_loop_exits): Use auto_vec.
2532 2021-07-14 Jason Merrill <jason@redhat.com>
2534 * doc/invoke.texi: -fdelete-dead-exceptions is on by default for
2537 2021-07-14 Tamar Christina <tamar.christina@arm.com>
2539 * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
2540 Remove erroneous line.
2542 2021-07-14 Andrew MacLeod <amacleod@redhat.com>
2544 * params.opt (param_evrp_mode): Change default.
2546 2021-07-14 Tamar Christina <tamar.christina@arm.com>
2548 * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to...
2549 (sdot_prod, udot_prod): ...These.
2550 * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove.
2551 (aarch64_<sur>dot<vsi2qi>): Rename to...
2552 (<sur>dot_prod<vsi2qi>): ...This.
2553 * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
2556 2021-07-14 Tamar Christina <tamar.christina@arm.com>
2558 * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements.
2560 2021-07-14 Tamar Christina <tamar.christina@arm.com>
2562 * doc/sourcebuild.texi (arm_v8_2a_i8mm_neon_hw): Document.
2564 2021-07-14 Tamar Christina <tamar.christina@arm.com>
2566 * config/arm/neon.md (usdot_prod<vsi2qi>): New.
2568 2021-07-14 Tamar Christina <tamar.christina@arm.com>
2570 * config/aarch64/aarch64-simd.md (aarch64_usdot<vsi2qi>): Rename to...
2571 (usdot_prod<vsi2qi>): ... This.
2572 * config/aarch64/aarch64-simd-builtins.def (usdot): Rename to...
2573 (usdot_prod): ...This.
2574 * config/aarch64/arm_neon.h (vusdot_s32, vusdotq_s32): Likewise.
2575 * config/aarch64/aarch64-sve.md (@aarch64_<sur>dot_prod<vsi2qi>):
2577 (@<sur>dot_prod<vsi2qi>): ...This.
2578 * config/aarch64/aarch64-sve-builtins-base.cc
2579 (svusdot_impl::expand): Use it.
2581 2021-07-14 Tamar Christina <tamar.christina@arm.com>
2583 * optabs.def (usdot_prod_optab): New.
2584 * doc/md.texi: Document it and clarify other dot prod optabs.
2585 * optabs-tree.h (enum optab_subtype): Add optab_vector_mixed_sign.
2586 * optabs-tree.c (optab_for_tree_code): Support usdot_prod_optab.
2587 * optabs.c (expand_widen_pattern_expr): Likewise.
2588 * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
2589 * tree-vect-loop.c (vectorizable_reduction): Query dot-product kind.
2590 * tree-vect-patterns.c (vect_supportable_direct_optab_p): Take optional
2592 (vect_widened_op_tree): Optionally ignore
2594 (vect_recog_dot_prod_pattern): Support usdot_prod_optab.
2596 2021-07-14 H.J. Lu <hjl.tools@gmail.com>
2599 * config/i386/driver-i386.c (host_detect_local_cpu): Check
2600 "arch [32|64]" and "tune [32|64]" for 32-bit and 64-bit codegen.
2601 Enable UINTR only for 64-bit codegen.
2602 * config/i386/i386-options.c
2603 (ix86_option_override_internal::DEF_PTA): Skip PTA_UINTR if not
2605 * config/i386/i386.h (ARCH_ARG): New.
2606 (CC1_CPU_SPEC): Pass "[arch|tune] 32" for 32-bit codegen and
2607 "[arch|tune] 64" for 64-bit codegen.
2609 2021-07-14 Richard Biener <rguenther@suse.de>
2611 PR tree-optimization/101445
2612 * tree-vect-stmts.c (vectorizable_load): Do the gap adjustment
2613 of the IV in the correct direction for negative stride
2616 2021-07-14 Jakub Jelinek <jakub@redhat.com>
2619 * godump.c (godump_str_hash): New type.
2620 (godump_container::pot_dummy_types): Use string_hash instead of
2621 ptr_hash in the hash_set.
2623 2021-07-14 Richard Biener <rguenther@suse.de>
2625 * tree-vect-loop.c (vect_find_reusable_accumulator): Handle
2626 vector types where the old vector type has a multiple of
2627 the new vector type elements.
2628 (vect_create_partial_epilog): New function, split out from...
2629 (vect_create_epilog_for_reduction): ... here.
2630 (vect_transform_cycle_phi): Reduce the re-used accumulator
2631 to the new vector type.
2633 2021-07-14 Alexandre Oliva <oliva@adacore.com>
2635 * tree-ssa-alias.c (attr_fnspec::verify): Fix index in
2636 non-'t'-sized arg check.
2638 2021-07-14 Alexandre Oliva <oliva@adacore.com>
2640 * tree-cfg.c (cleanup_dead_labels_eh): Update
2641 post_landing_pad label upon change of landing pad block's
2643 (cleanup_dead_labels): Check that a removed label is not that
2646 2021-07-13 Jonathan Wright <jonathan.wright@arm.com>
2648 * combine.c (combine_simplify_rtx): Add vec_select -> subreg
2650 * config/aarch64/aarch64.md (*zero_extend<SHORT:mode><GPI:mode>2_aarch64):
2651 Add Neon to general purpose register case for zero-extend
2653 * config/arm/vfp.md (*arm_movsi_vfp): Remove "*" from *t -> r
2654 case to prevent some cases opting to go through memory.
2655 * cse.c (fold_rtx): Add vec_select -> subreg simplification.
2656 * rtl.c (rtvec_series_p): Define predicate to determine
2657 whether a vector contains a linear series of integers.
2658 * rtl.h (rtvec_series_p): Define.
2659 * rtlanal.c (vec_series_lowpart_p): Define predicate to
2660 determine if a vector selection is equivalent to the low part
2662 * rtlanal.h (vec_series_lowpart_p): Define.
2663 * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
2664 Add vec_select -> subreg simplification.
2666 2021-07-13 Paul A. Clarke <pc@us.ibm.com>
2668 * config/rs6000/smmintrin.h (_mm_testz_si128, _mm_testc_si128,
2669 _mm_testnzc_si128, _mm_test_all_ones, _mm_test_all_zeros,
2670 _mm_test_mix_ones_zeros): New.
2672 2021-07-13 Roger Sayle <roger@nextmovesoftware.com>
2673 Richard Biener <rguenther@suse.de>
2675 * gimple.c (gimple_could_trap_p_1): Make S argument a
2676 "const gimple*". Preserve constness in call to
2677 gimple_asm_volatile_p.
2678 (gimple_could_trap_p): Make S argument a "const gimple*".
2679 * gimple.h (gimple_could_trap_p_1, gimple_could_trap_p):
2680 Update function prototypes.
2682 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
2684 * tree-vectorizer.h (vect_reusable_accumulator): New structure.
2685 (_loop_vec_info::main_loop_edge): New field.
2686 (_loop_vec_info::skip_main_loop_edge): Likewise.
2687 (_loop_vec_info::skip_this_loop_edge): Likewise.
2688 (_loop_vec_info::reusable_accumulators): Likewise.
2689 (_stmt_vec_info::reduc_scalar_results): Likewise.
2690 (_stmt_vec_info::reused_accumulator): Likewise.
2691 (vect_get_main_loop_result): Declare.
2692 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
2693 reduc_scalar_inputs.
2694 (vec_info::free_stmt_vec_info): Free reduc_scalar_inputs.
2695 * tree-vect-loop-manip.c (vect_get_main_loop_result): New function.
2696 (vect_do_peeling): Fill an epilogue loop's main_loop_edge,
2697 skip_main_loop_edge and skip_this_loop_edge fields.
2698 * tree-vect-loop.c (INCLUDE_ALGORITHM): Define.
2699 (vect_emit_reduction_init_stmts): New function.
2700 (get_initial_def_for_reduction): Use it.
2701 (get_initial_defs_for_reduction): Likewise. Change the vinfo
2702 parameter to a loop_vec_info.
2703 (vect_create_epilog_for_reduction): Store the scalar results
2704 in the reduc_info. If an epilogue loop is reusing an accumulator
2705 from the main loop, and if the epilogue loop can also be skipped,
2706 try to place the reduction code in the join block. Record
2707 accumulators that could potentially be reused by epilogue loops.
2708 (vect_transform_cycle_phi): When vectorizing epilogue loops,
2709 try to reuse accumulators from the main loop. Record the initial
2710 value in reduc_info for non-SLP reductions too.
2712 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
2714 * tree-vect-loop.c (get_initial_def_for_reduction): Remove
2715 adjustment handling. Take the neutral value as an argument,
2716 in place of the code argument.
2717 (vect_transform_cycle_phi): Update accordingly. Handle the
2718 initial values of cond reductions separately from code reductions.
2719 Choose the adjustment here rather than in
2720 get_initial_def_for_reduction. Sink the splat of vec_initial_def.
2722 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
2724 * tree-vect-loop.c (neutral_op_for_slp_reduction): Replace with...
2725 (neutral_op_for_reduction): ...this, providing a more general
2727 (vect_create_epilog_for_reduction): Update accordingly.
2728 (vectorizable_reduction): Likewise.
2729 (vect_transform_cycle_phi): Likewise.
2731 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
2733 * tree-vect-loop.c (get_initial_def_for_reduction): Take the
2734 reduc_info instead of the original stmt_vec_info.
2735 (vect_transform_cycle_phi): Update accordingly.
2737 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
2739 * tree-vect-loop.c (get_initial_defs_for_reduction): Take the
2740 reduc_info as an additional parameter.
2741 (vect_transform_cycle_phi): Update accordingly.
2743 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
2745 * tree-vectorizer.h: Include tree-ssa-operands.h.
2746 (vect_phi_initial_value): New function.
2747 * tree-vect-loop.c (neutral_op_for_slp_reduction): Use it.
2748 (get_initial_defs_for_reduction, info_for_reduction): Likewise.
2749 (vect_create_epilog_for_reduction, vectorizable_reduction): Likewise.
2750 (vect_transform_cycle_phi, vectorizable_induction): Likewise.
2752 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
2754 * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
2755 the phi results to vectype after creating them. Remove later
2756 conversion code that thus becomes redundant.
2758 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
2760 * tree-vect-loop.c (vect_create_epilog_for_reduction): Replace
2761 the new_phis vector with a reduc_inputs vector. Combine handling
2762 of reduction chains and ncopies > 1.
2764 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
2766 * tree-vect-loop.c (vect_create_epilog_for_reduction): Truncate
2767 scalar_results to group_size elements after reducing down from
2768 N*group_size elements. Construct an array_slice of the live-out
2769 stmts and assert that there is one stmt per scalar result.
2771 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
2773 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
2774 nested_in_vect_loop and use double_reduc everywhere. Remove dead
2775 assignment to "loop".
2777 2021-07-13 Richard Sandiford <richard.sandiford@arm.com>
2779 * internal-fn.c (vectorized_internal_fn_supported_p): Handle
2780 vector types first. For scalar types, consider both the preferred
2781 vector mode and the alternative vector modes.
2782 * optabs-query.c (can_vec_mask_load_store_p): Use the same
2783 structure as above, in particular using related_vector_mode
2784 for modes provided by autovectorize_vector_modes.
2786 2021-07-13 Jakub Jelinek <jakub@redhat.com>
2787 Richard Biener <rguenther@suse.de>
2789 PR tree-optimization/101419
2790 * tree-pass.h (PROP_objsz): Define.
2791 (make_pass_early_object_sizes): Declare.
2792 * passes.def (pass_all_early_optimizations): Rename pass_object_sizes
2793 there to pass_early_object_sizes, drop parameter.
2794 (pass_all_optimizations): Move pass_object_sizes right after pass_ccp,
2795 drop parameter, move pass_post_ipa_warn right after that.
2796 * tree-object-size.c (pass_object_sizes::execute): Rename to...
2797 (object_sizes_execute): ... this. Add insert_min_max_p argument.
2798 (pass_data_object_sizes): Move after object_sizes_execute.
2799 (pass_object_sizes): Likewise. In execute method call
2800 object_sizes_execute, drop set_pass_param method and insert_min_max_p
2801 non-static data member and its initializer in the ctor.
2802 (pass_data_early_object_sizes, pass_early_object_sizes,
2803 make_pass_early_object_sizes): New.
2804 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use
2805 (cfun->curr_properties & PROP_objsz) instead of cfun->after_inlining.
2807 2021-07-13 Kito Cheng <kito.cheng@sifive.com>
2810 * config/riscv/constraints.md ("S"): Update description and remove
2812 * doc/md.texi (Machine Constraints): Document the 'S' constraints
2815 2021-07-13 Richard Biener <rguenther@suse.de>
2818 2021-07-12 Richard Biener <rguenther@suse.de>
2820 * tree-vect-slp.c (vect_slp_region): Show the number of
2821 SLP graph entries in the optimization message.
2823 2021-07-13 Michael Meissner <meissner@linux.ibm.com>
2825 * config/rs6000/altivec.md (xxspltiw_v4sf): Change local variable
2827 * config/rs6000/rs6000-protos.h (rs6000_const_f32_to_i32): Change
2828 return type to long.
2829 * config/rs6000/rs6000.c (rs6000_const_f32_to_i32): Change return
2832 2021-07-12 Andrew MacLeod <amacleod@redhat.com>
2834 * gimple-range-fold.cc (fold_using_range::range_of_builtin_ubsan_call):
2835 Query relation between the 2 operands and use it.
2837 2021-07-12 Sergei Trofimovich <siarheit@google.com>
2839 * doc/cfg.texi: Fix s/ei_safe_safe/ei_safe_edge/ typo.
2841 2021-07-12 Uroš Bizjak <ubizjak@gmail.com>
2844 * config/i386/predicates.md (vec_setm_sse41_operand):
2845 Rename from vec_setm_operand.
2846 (vec_setm_avx2_operand): New predicate.
2847 * config/i386/sse.md (vec_set<V_128:mode>): Use V_128 mode iterator.
2848 Use vec_setm_sse41_operand as operand 2 predicate.
2849 (vec_set<V_256_512:mode): New expander.
2850 * config/i386/mmx.md (vec_setv2hi): Use vec_setm_sse41_operand
2851 as operand 2 predicate.
2853 2021-07-12 Andrew MacLeod <amacleod@redhat.com>
2855 PR tree-optimization/101335
2856 * range-op.cc (operator_cast::lhs_op1_relation): Delete.
2858 2021-07-12 Andrew Pinski <apinski@marvell.com>
2860 * tree-ssa-phiopt.c (match_simplify_replacement): Move
2861 insert of the sequence before the movement of the
2862 statement. Check if to see if the statement is used
2863 outside of the original phi to see if we should move it.
2865 2021-07-12 Richard Biener <rguenther@suse.de>
2867 * dump-context.h (debug_dump_context::debug_dump_context):
2868 Add FILE * parameter defaulted to stderr.
2869 * dumpfile.c (debug_dump_context::debug_dump_context): Adjust.
2870 * tree-vect-slp.c (dot_slp_tree): New functions.
2872 2021-07-12 Richard Biener <rguenther@suse.de>
2874 PR tree-optimization/101373
2875 * tree-ssa-pre.c (prune_clobbered_mems): Also prune trapping
2876 references when the BB may not return.
2877 (compute_avail): Pass in the function we're working on and
2878 replace cfun references with it. Externally throwing
2879 const calls also possibly terminate the function.
2880 (pass_pre::execute): Pass down the function we're working on.
2881 * gcse.c (compute_hash_table_work): Externally throwing
2882 const/pure calls also need record_last_mem_set_info.
2883 * postreload-gcse.c (record_opr_changes): Looping or externally
2884 throwing const/pure calls also need record_last_mem_set_info.
2886 2021-07-12 Uroš Bizjak <ubizjak@gmail.com>
2888 * recog.c (memory_address_addr_space_p): Change the type to bool.
2889 Return true/false instead of 1/0.
2890 (offsettable_memref_p): Ditto.
2891 (offsettable_nonstrict_memref_p): Ditto.
2892 (offsettable_address_addr_space_p): Ditto.
2893 Change the type of addressp indirect function to bool.
2894 * recog.h (memory_address_addr_space_p): Change the type to bool.
2895 (strict_memory_address_addr_space_p): Ditto.
2896 (offsettable_memref_p): Ditto.
2897 (offsettable_nonstrict_memref_p): Ditto.
2898 (offsettable_address_addr_space_p): Ditto.
2899 * reload.c (maybe_memory_address_addr_space_p): Ditto.
2900 (strict_memory_address_addr_space_p): Change the type to bool.
2901 Return true/false instead of 1/0.
2902 (maybe_memory_address_addr_space_p): Change the type to bool.
2904 2021-07-12 Richard Biener <rguenther@suse.de>
2906 * tree-vect-slp.c (vect_slp_region): Show the number of
2907 SLP graph entries in the optimization message.
2909 2021-07-12 Richard Biener <rguenther@suse.de>
2911 PR tree-optimization/101394
2912 * tree-ssa-pre.c (do_pre_regular_insertion): Avoid inserting
2913 copies from abnormals for a full redundancy.
2915 2021-07-12 Richard Biener <rguenther@suse.de>
2917 PR middle-end/101423
2918 * gimple.c (gimple_could_trap_p_1): Internal function calls
2920 * tree-eh.c (tree_could_trap_p): Likewise.
2922 2021-07-12 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org>
2925 * config/arm/arm_neon.h (vmul_n_u32): Replace call to builtin with
2927 (vmulq_n_u32): Likewise.
2928 (vmul_n_f32): Gate __a * __b on __FAST_MATH__.
2929 (vmulq_n_f32): Likewise.
2930 (vmul_n_f16): Likewise.
2931 (vmulq_n_f16): Likewise.
2933 2021-07-12 Martin Liska <mliska@suse.cz>
2936 * gcc.c (check_offload_target_name): Call
2937 candidates_list_and_hint only if we have a candidate.
2939 2021-07-12 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org>
2942 * config/arm/neon.md (vec_init): Move to ...
2943 * config/arm/vec-common.md (vec_init): ... here.
2944 Change the pattern's mode to VDQX and gate it on VALID_MVE_MODE.
2946 2021-07-12 Roger Sayle <roger@nextmovesoftware.com>
2948 PR tree-optimization/101403
2949 * match.pd ((T)bswap(X)>>C): Correctly handle cases where
2950 signedness of the shift is not the same as the signedness of
2953 2021-07-09 Roger Sayle <roger@nextmovesoftware.com>
2954 Uroš Bizjak <ubizjak@gmail.com>
2956 * config/i386/i386.md (*divmodsi4_const): Optimize SImode
2957 divmod of a constant numerator with new define_insn_and_split.
2959 2021-07-09 Iain Sandoe <iain@sandoe.co.uk>
2962 * config/i386/i386-expand.c (ix86_expand_call): If a call is
2963 to a non-local-binding, or local but to a public symbol, then
2964 assume that it might be indirected via the lazy symbol binder.
2965 Mark R10 and R10 as clobbered in that case.
2967 2021-07-09 Eric Botcazou <ebotcazou@adacore.com>
2970 * gcc.c (ASM_DEBUG_DWARF_OPTION): Set again to --gdwarf2 in
2971 the case where HAVE_AS_WORKING_DWARF_N_FLAG is not defined
2972 and HAVE_LD_BROKEN_PE_DWARF5 is defined.
2974 2021-07-09 Uroš Bizjak <ubizjak@gmail.com>
2976 * config/i386/i386.md (*udivmodsi4_pow2_zext_1): Limit the
2977 log2 range of operands[3] to [1,31].
2978 (*udivmodsi4_pow2_zext_2): Ditto. Correct insn RTX pattern.
2980 2021-07-09 Sergei Trofimovich <siarheit@google.com>
2982 * doc/md.texi: Don't split @smallexample in multiple @groups.
2984 2021-07-09 Sergei Trofimovich <siarheit@google.com>
2986 * doc/md.texi: Add missing 'see' word.
2988 2021-07-09 Andrew Pinski <apinski@marvell.com>
2990 * tree-ssa-phiopt.c (phiopt_early_allow): Change arguments
2991 to take sequence and gimple_match_op. Accept the case where
2992 op is a SSA_NAME and one statement in the sequence.
2993 Also allow constants.
2994 (gimple_simplify_phiopt): Always pass a sequence to resimplify.
2995 Update call to phiopt_early_allow. Discard the sequence if not
2998 2021-07-09 Xi Ruoyao <xry111@mengyan1223.wang>
3003 * config/mips/mips.c (mips_const_insns): Use MSA_SUPPORTED_MODE_P
3004 instead of ISA_HAS_MSA.
3005 (mips_expand_vec_unpack): Likewise.
3006 (mips_expand_vector_init): Likewise.
3008 2021-07-09 Kewen Lin <linkw@linux.ibm.com>
3010 * config/rs6000/vsx.md (mods_<mode>): Rename to...
3011 (mod<mode>3): ... this.
3012 (modu_<mode>): Rename to...
3013 (umod<mode>3): ... this.
3014 * config/rs6000/rs6000-builtin.def (MODS_V2DI, MODS_V4SI, MODU_V2DI,
3017 2021-07-08 Jeff Law <jeffreyalaw@gmail.com>
3019 * config/h8300/shiftrotate.md (variable shifts): Expose condition
3020 code handling for the test before the loop.
3022 2021-07-08 Martin Jambor <mjambor@suse.cz>
3025 * ipa-sra.c (class isra_call_summary): New member
3026 m_before_any_store, initialize it in the constructor.
3027 (isra_call_summary::dump): Dump the new field.
3028 (ipa_sra_call_summaries::duplicate): Copy it.
3029 (process_scan_results): Set it.
3030 (isra_write_edge_summary): Stream it.
3031 (isra_read_edge_summary): Likewise.
3032 (param_splitting_across_edge): Only override
3033 safe_to_import_accesses if m_before_any_store is set.
3035 2021-07-08 Martin Sebor <msebor@redhat.com>
3038 * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
3039 Use Object Size Type 0 instead of 1.
3041 2021-07-08 Richard Sandiford <richard.sandiford@arm.com>
3043 * tree-vect-loop.c (vectorizable_reduction): Remove always-true
3046 2021-07-08 Richard Sandiford <richard.sandiford@arm.com>
3048 * match.pd: Simplify an extend-operate-truncate sequence involving
3051 2021-07-08 Roger Sayle <roger@nextmovesoftware.com>
3052 Richard Biener <rguenther@suse.de>
3054 PR tree-optimization/40210
3055 * match.pd (bswap optimizations): Simplify (bswap(x)>>C1)&C2 as
3056 (x>>C3)&C2 when possible. Simplify bswap(x)>>C1 as ((T)x)>>C2
3057 when possible. Simplify bswap(x)&C1 as (x>>C2)&C1 when 0<=C1<=255.
3059 2021-07-08 Uroš Bizjak <ubizjak@gmail.com>
3062 * config/i386/i386-expand.c (ix86_expand_sse_unpack):
3064 * config/i386/mmx.md (V_32): New mode iterator.
3065 (mov<V_32:mode>): Use V_32 mode iterator.
3066 (*mov<V_32:mode>_internal): Ditto.
3067 (*push<V_32:mode>2_rex64): Ditto.
3068 (*push<V_32:mode>2): Ditto.
3069 (movmisalign<V_32:mode>): Ditto.
3070 (mmx_<any_shiftrt:insn>v1si3): New insn pattern.
3071 (sse4_1_<any_extend:code>v2qiv2hi2): Ditto.
3072 (vec_unpacks_lo_v4qi): New expander.
3073 (vec_unpacks_hi_v4qi): Ditto.
3074 (vec_unpacku_lo_v4qi): Ditto.
3075 (vec_unpacku_hi_v4qi): Ditto.
3076 * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V1SImode.
3077 (VALID_INT_MODE_P): Ditto.
3079 2021-07-08 Michael Meissner <meissner@linux.ibm.com>
3082 * config/rs6000/rs6000.md (udivti3): New insn.
3084 (umodti3): New insn.
3087 2021-07-07 Martin Sebor <msebor@redhat.com>
3089 PR tree-optimization/100137
3090 PR tree-optimization/99121
3091 PR tree-optimization/97027
3092 * builtins.c (access_ref::access_ref): Also set offmax.
3093 (access_ref::offset_in_range): Define new function.
3094 (access_ref::add_offset): Set offmax.
3095 (access_ref::inform_access): Handle access_none.
3096 (handle_mem_ref): Clear ostype.
3097 (compute_objsize_r): Handle ASSERT_EXPR.
3098 * builtins.h (struct access_ref): Add offmax member.
3099 * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Use
3100 compute_objsize() and simplify.
3102 2021-07-07 Peter Bergner <bergner@linux.ibm.com>
3104 * config/rs6000/rs6000-call.c (mma_init_builtins): Use VSX_BUILTIN_LXVP
3105 and VSX_BUILTIN_STXVP.
3107 2021-07-07 Martin Sebor <msebor@redhat.com>
3110 * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Remove
3111 a stray %K from error_at() missed in r12-2088.
3113 2021-07-07 Richard Biener <rguenther@suse.de>
3115 PR tree-optimization/99728
3116 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Record
3118 (mem_refs_may_alias_p): Add assert we handled aggregate
3120 (sm_seq_valid_bb): Give up when running into aggregate copies.
3121 (ref_indep_loop_p): Handle aggregate copies as never
3122 being invariant themselves but allow other refs to be
3123 disambiguated against them.
3124 (can_sm_ref_p): Do not try to apply store-motion to aggregate
3127 2021-07-06 Indu Bhagat <indu.bhagat@oracle.com>
3130 * dwarf2ctf.c (ctf_get_AT_data_member_location): Multiply by 8 to get
3133 2021-07-06 Martin Sebor <msebor@redhat.com>
3135 * gimple-pretty-print.c (percent_G_format): Remove.
3136 * tree-diagnostic.c (default_tree_printer): Remove calls.
3137 * tree-pretty-print.c (percent_K_format): Remove.
3138 * tree-pretty-print.h (percent_K_format): Remove.
3140 2021-07-06 Martin Sebor <msebor@redhat.com>
3142 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
3143 Remove %K and use error_at.
3144 (aarch64_expand_fcmla_builtin): Same.
3145 (aarch64_expand_builtin_tme): Same.
3146 (aarch64_expand_builtin_memtag): Same.
3147 * config/arm/arm-builtins.c (arm_expand_acle_builtin): Same.
3148 (arm_expand_builtin): Same.
3149 * config/arm/arm.c (bounds_check): Same.
3151 2021-07-06 Martin Sebor <msebor@redhat.com>
3153 * builtins.c (warn_string_no_nul): Remove %G.
3154 (maybe_warn_for_bound): Same.
3155 (warn_for_access): Same.
3156 (check_access): Same.
3157 (check_strncat_sizes): Same.
3158 (expand_builtin_strncat): Same.
3159 (expand_builtin_strncmp): Same.
3160 (expand_builtin): Same.
3161 (expand_builtin_object_size): Same.
3162 (warn_dealloc_offset): Same.
3163 (maybe_emit_free_warning): Same.
3164 * calls.c (maybe_warn_alloc_args_overflow): Same.
3165 (maybe_warn_nonstring_arg): Same.
3166 (maybe_warn_rdwr_sizes): Same.
3167 * expr.c (expand_expr_real_1): Remove %K.
3168 * gimple-fold.c (gimple_fold_builtin_strncpy): Remove %G.
3169 (gimple_fold_builtin_strncat): Same.
3170 * gimple-ssa-sprintf.c (format_directive): Same.
3171 (handle_printf_call): Same.
3172 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Same.
3173 * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same.
3174 (maybe_diag_access_bounds): Same. Call gimple_location.
3175 (check_bounds_or_overlap): Same.
3176 * trans-mem.c (ipa_tm_scan_irr_block): Remove %K. Simplify.
3177 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Remove %G.
3178 * tree-ssa-strlen.c (maybe_warn_overflow): Same.
3179 (maybe_diag_stxncpy_trunc): Same.
3180 (handle_builtin_stxncpy_strncat): Same.
3181 (maybe_warn_pointless_strcmp): Same.
3182 * tree-ssa-uninit.c (maybe_warn_operand): Same.
3184 2021-07-06 Uroš Bizjak <ubizjak@gmail.com>
3187 * config/i386/predicates.md (vec_setm_operand): Enable
3188 register_operand for TARGET_SSE4_1.
3189 * config/i386/mmx.md (vec_setv2hi): Use vec_setm_operand
3190 as operand 2 predicate. Call ix86_expand_vector_set_var
3191 for non-constant index operand.
3192 (vec_setv4qi): Use vec_setm_mmx_operand as operand 2 predicate.
3193 Call ix86_expand_vector_set_var for non-constant index operand.
3195 2021-07-06 Jeff Law <jeffreyalaw@gmail.com>
3197 * config/h8300/jumpcall.md (*branch): When possible, generate
3198 the comparison in CCZN mode.
3199 * config/h8300/predicates.md (simple_memory_operand): Reject all
3200 auto-increment addressing modes.
3202 2021-07-06 Iain Sandoe <iain@sandoe.co.uk>
3205 * config/i386/i386.h (struct stringop_algs): Define a CTOR for
3208 2021-07-06 Richard Biener <rguenther@suse.de>
3210 * doc/md.texi (vec_fmaddsub<mode>4): Document.
3211 (vec_fmsubadd<mode>4): Likewise.
3212 * optabs.def (vec_fmaddsub$a4): Add.
3213 (vec_fmsubadd$a4): Likewise.
3214 * internal-fn.def (IFN_VEC_FMADDSUB): Add.
3215 (IFN_VEC_FMSUBADD): Likewise.
3216 * tree-vect-slp-patterns.c (addsub_pattern::recognize):
3217 Refactor to handle IFN_VEC_FMADDSUB and IFN_VEC_FMSUBADD.
3218 (addsub_pattern::build): Likewise.
3219 * tree-vect-slp.c (vect_optimize_slp): CFN_VEC_FMADDSUB
3220 and CFN_VEC_FMSUBADD are not transparent for permutes.
3221 * config/i386/sse.md (vec_fmaddsub<mode>4): New expander.
3222 (vec_fmsubadd<mode>4): Likewise.
3224 2021-07-06 Richard Biener <rguenther@suse.de>
3226 * doc/invoke.texi (fmove-loop-stores): Document.
3227 * common.opt (fmove-loop-stores): New option.
3228 * opts.c (default_options_table): Enable -fmove-loop-stores
3230 * tree-ssa-loop-im.c (pass_lim::execute): Pass
3231 flag_move_loop_stores instead of true to
3232 loop_invariant_motion_in_fun.
3234 2021-07-06 Iain Sandoe <iain@sandoe.co.uk>
3236 * doc/install.texi: Document --with-dsymutil.
3238 2021-07-06 Andrew Pinski <apinski@marvell.com>
3240 PR tree-optimization/101256
3241 * dbgcnt.def (phiopt_edge_range): New counter.
3242 * tree-ssa-phiopt.c (replace_phi_edge_with_variable):
3243 Check to make sure the new name is defined in the same
3244 bb as the conditional before duplicating range info.
3245 Also add debug counter.
3247 2021-07-06 Kewen Lin <linkw@linux.ibm.com>
3249 PR rtl-optimization/100328
3250 * config/i386/i386-options.c (ix86_option_override_internal):
3251 Set param_ira_consider_dup_in_all_alts to 0.
3253 2021-07-06 Kewen Lin <linkw@linux.ibm.com>
3255 PR rtl-optimization/100328
3256 * doc/invoke.texi (ira-consider-dup-in-all-alts): Document new
3258 * ira.c (ira_get_dup_out_num): Adjust as parameter
3259 param_ira_consider_dup_in_all_alts.
3260 * params.opt (ira-consider-dup-in-all-alts): New.
3261 * ira-conflicts.c (process_regs_for_copy): Add one parameter
3262 single_input_op_has_cstr_p.
3263 (get_freq_for_shuffle_copy): New function.
3264 (add_insn_allocno_copies): Adjust as single_input_op_has_cstr_p.
3265 * ira-int.h (ira_get_dup_out_num): Add one bool parameter.
3267 2021-07-05 Jeff Law <jeffreyalaw@gmail.com>
3269 * config/h8300/shiftrotate.md (shift-by-variable patterns): Update to
3270 generate condition code aware RTL directly.
3272 2021-07-05 Andrew Pinski <apinski@marvell.com>
3274 PR tree-optimization/101039
3275 * match.pd (A CMP 0 ? A : -A): New patterns.
3276 * tree-ssa-phiopt.c (abs_replacement): Delete function.
3277 (tree_ssa_phiopt_worker): Don't call abs_replacement.
3278 Update comment about abs_replacement.
3280 2021-07-05 Andrew Pinski <apinski@marvell.com>
3282 * tree-ssa-phiopt.c (gimple_simplify_phiopt):
3283 If "A ? B : C" fails to simplify, try "(!A) ? C : B".
3285 2021-07-05 Andrew Pinski <apinski@marvell.com>
3287 * tree-ssa-phiopt.c (match_simplify_replacement):
3288 Add early_p argument. Call gimple_simplify_phiopt
3289 instead of gimple_simplify.
3290 (tree_ssa_phiopt_worker): Update call to
3291 match_simplify_replacement and allow unconditionally.
3292 (phiopt_early_allow): New function.
3293 (gimple_simplify_phiopt): New function.
3295 2021-07-05 Andrew Pinski <apinski@marvell.com>
3297 PR middle-end/101237
3298 * fold-const.c (negate_expr_p): Remove call to element_mode
3299 and TREE_MODE/TREE_TYPE when calling HONOR_SIGNED_ZEROS,
3300 HONOR_SIGN_DEPENDENT_ROUNDING, and HONOR_SNANS.
3301 (fold_negate_expr_1): Likewise.
3302 (const_unop): Likewise.
3303 (fold_cond_expr_with_comparison): Likewise.
3304 (fold_binary_loc): Likewise.
3305 (fold_ternary_loc): Likewise.
3306 (tree_call_nonnegative_warnv_p): Likewise.
3307 * match.pd (-(A + B) -> (-B) - A): Likewise.
3309 2021-07-05 Iain Sandoe <iain@sandoe.co.uk>
3311 * configure.ac: Handle --with-dsymutil in the same way as we
3312 do for the assembler and linker. (DEFAULT_DSYMUTIL): New.
3313 Extract the type and version for the dsymutil configured or
3314 found by the default searches.
3315 * config.in: Regenerated.
3316 * configure: Regenerated.
3317 * collect2.c (do_dsymutil): Handle locating dsymutil in the
3318 same way as for the assembler and linker.
3319 * config/darwin.h (DSYMUTIL): Delete.
3320 * gcc.c: Report a configured dsymutil correctly.
3321 * exec-tool.in: Allow for dsymutil.
3323 2021-07-05 Uroš Bizjak <ubizjak@gmail.com>
3325 * config/i386/i386-expand.c (ix86_split_mmx_punpck):
3326 Handle V4QI and V2HI modes.
3327 (expand_vec_perm_blend): Allow 4-byte vector modes with TARGET_SSE4_1.
3328 Handle V4QI mode. Emit mmx_pblendvb32 for 4-byte modes.
3329 (expand_vec_perm_pshufb): Rewrite to use switch statemets.
3330 Handle 4-byte dual operands with TARGET_XOP and single operands
3331 with TARGET_SSSE3. Emit mmx_ppermv32 for TARGET_XOP and
3332 mmx_pshufbv4qi3 for TARGET_SSSE3.
3333 (expand_vec_perm_pblendv): Allow 4-byte vector modes with TARGET_SSE4_1.
3334 (expand_vec_perm_interleave2): Allow 4-byte vector modes.
3335 (expand_vec_perm_pshufb2): Allow 4-byte vector modes with TARGET_SSSE3.
3336 (expand_vec_perm_even_odd_1): Handle V4QI mode.
3337 (expand_vec_perm_broadcast_1): Handle V4QI mode.
3338 (ix86_vectorize_vec_perm_const): Handle V4QI mode.
3339 * config/i386/mmx.md (mmx_ppermv32): New insn pattern.
3340 (mmx_pshufbv4qi3): Ditto.
3341 (*mmx_pblendw32): Ditto.
3342 (*mmx_pblendw64): Rename from *mmx_pblendw.
3343 (mmx_punpckhbw_low): New insn_and_split pattern.
3344 (mmx_punpcklbw_low): Ditto.
3346 2021-07-05 Richard Biener <rguenther@suse.de>
3348 * tree-vect-loop-manip.c (vect_loop_versioning): Do not
3349 set LOOP_C_INFINITE on the vectorized loop.
3351 2021-07-05 Richard Biener <rguenther@suse.de>
3353 PR middle-end/101291
3354 * cfgloopmanip.c (loop_version): Set the loop copy of the
3355 versioned loop to the new loop.
3357 2021-07-04 Iain Sandoe <iain@sandoe.co.uk>
3360 * config.gcc: Ensure that Darwin biarch definitions are
3361 added before i386.h.
3362 * config/i386/darwin.h (TARGET_64BIT): Remove.
3363 (PR80556_WORKAROUND): New.
3364 (REAL_LIBGCC_SPEC): Amend to use PR80556_WORKAROUND.
3365 (DARWIN_SUBARCH_SPEC): New.
3366 * config/i386/darwin32-biarch.h (TARGET_64BIT_DEFAULT,
3367 TARGET_BI_ARCH, PR80556_WORKAROUND): New.
3368 (REAL_LIBGCC_SPEC): Remove.
3369 * config/i386/darwin64-biarch.h (TARGET_64BIT_DEFAULT,
3370 TARGET_BI_ARCH, PR80556_WORKAROUND): New.
3371 (REAL_LIBGCC_SPEC): Remove.
3373 2021-07-03 H.J. Lu <hjl.tools@gmail.com>
3375 PR middle-end/101294
3376 * expr.c (store_constructor): Don't use vec_duplicate on vector.
3378 2021-07-02 Martin Sebor <msebor@redhat.com>
3382 * diagnostic.c (get_any_inlining_info): New.
3383 (update_effective_level_from_pragmas): Handle inlining context.
3384 (diagnostic_enabled): Same.
3385 (diagnostic_report_diagnostic): Same.
3386 * diagnostic.h (struct diagnostic_info): Add ctor.
3387 (struct diagnostic_context): Add new member.
3388 * tree-diagnostic.c (set_inlining_locations): New.
3389 (tree_diagnostics_defaults): Set new callback pointer.
3391 2021-07-02 Peter Bergner <bergner@linux.ibm.com>
3393 * config/rs6000/rs6000-builtin.def (BU_MMA_PAIR_LD, BU_MMA_PAIR_ST):
3395 (__builtin_vsx_lxvp, __builtin_vsx_stxvp): New built-ins.
3396 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Expand
3397 lxvp and stxvp built-ins.
3398 (mma_init_builtins): Handle lxvp and stxvp built-ins.
3399 (builtin_function_type): Likewise.
3400 * doc/extend.texi (__builtin_vsx_lxvp, __builtin_mma_stxvp): Document.
3402 2021-07-02 Jeff Law <jeffreyalaw@gmail.com>
3404 * config/h8300/h8300-protos.h (compute_a_shift_cc): Accept
3405 additional argument for the code.
3406 * config/h8300/h8300.c (compute_a_shift_cc): Accept additional
3407 argument for the code. Just return if the ZN bits are useful or
3408 not rather than the old style CC_* enums.
3409 * config/h8300/shiftrotate.md (shiftqi_noscratch): Move before
3410 more generic shiftqi patterns.
3411 (shifthi_noscratch, shiftsi_noscratch): Similarly.
3412 (shiftqi_noscratch_set_flags): New pattern.
3413 (shifthi_noscratch_set_flags, shiftsi_noscratch_set_flags): Likewise.
3415 2021-07-02 Andrew MacLeod <amacleod@redhat.com>
3417 PR tree-optimization/101223
3418 * range-op.cc (build_lt): Add -1 for signed values.
3419 (built_gt): Subtract -1 for signed values.
3421 2021-07-02 David Faust <david.faust@oracle.com>
3423 * btfout.c (get_btf_kind): Support BTF_KIND_FLOAT.
3424 (btf_asm_type): Likewise.
3426 2021-07-02 Jeff Law <jeffreyalaw@gmail.com>
3428 * config/h8300/h8300-protos.h (output_a_shift): Make first argument
3429 an array of rtx rather than a pointer to rtx. Add code argument.
3430 (compute_a_shift_length): Similarly.
3431 * config/h8300/h8300.c (h8300_shift_costs): Adjust now that the
3432 shift itself isn't an operand. Create dummy operand[0] to carry
3433 a mode and pass a suitable rtx code to compute_a_shift_length.
3434 (get_shift_alg): Adjust operand number of clobber in output templates.
3435 (output_a_shift): Make first argument an array of rtx rather than
3436 a pointer to rtx. Add code argument for the type of shift.
3437 Adjust now that the shift itself is no longer an operand.
3438 (compute_a_shift_length): Similarly.
3439 * config/h8300/shiftrotate.md (shiftqi, shifthi, shiftsi): Use an
3440 iterator rather than nshift_operator.
3441 (shiftqi_noscratch, shifthi_noscratch, shiftsi_noscratch): Likewise.
3442 (shiftqi_clobber_flags): Adjust to API changes in output_a_shift
3443 and compute_a_shift_length.
3444 (shiftqi_noscratch_clobber_flags): Likewise.
3445 (shifthi_noscratch_clobber_flags): Likewise.
3446 (shiftsi_noscratch_clobber_flags): Likewise.
3448 2021-07-02 Iain Sandoe <iain@sandoe.co.uk>
3451 * config/darwin.h (DSYMUTIL_SPEC): Do not try to run
3452 dsymutil for BTF/CTF.
3454 2021-07-02 Iain Sandoe <iain@sandoe.co.uk>
3457 * config/darwin.h (CTF_INFO_SECTION_NAME): Update the
3458 segment to include BTF.
3459 (BTF_INFO_SECTION_NAME): New.
3461 2021-07-02 Jeff Law <jeffreyalaw@gmail.com>
3463 * config/m32r/m32r-protos.h (call_operand): Adjust return type.
3464 (small_data_operand, memreg_operand, small_insn_p): Likewise.
3465 * config/m32r/m32r.c (call_operand): Adjust return type.
3466 (small_data_operand, memreg_operand): Likewise.
3468 2021-07-02 Jeff Law <jeffreyalaw@gmail.com>
3470 * config/frv/frv-protos.h (integer_register_operand): Adjust return
3472 (frv_load_operand, gpr_or_fpr_operand, gpr_no_subreg_operand): Likewise.
3473 (fpr_or_int6_operand, gpr_or_int_operand); Likewise.
3474 (gpr_or_int12_operand, gpr_or_int10_operand); Likewise.
3475 (move_source_operand, move_destination_operand): Likewise.
3476 (condexec_source_operand, condexec_dest_operand): Likewise.
3477 (lr_operand, gpr_or_memory_operand, fpr_or_memory_operand): Likewise.
3478 (reg_or_0_operand, fcc_operand, icc_operand, cc_operand): Likewise.
3479 (fcr_operand, icr_operand, cr_operand, call_operand): Likewise.
3480 (fpr_operand, even_reg_operand, odd_reg_operand): Likewise.
3481 (even_gpr_operand, odd_gpr_operand, quad_fpr_operand): Likewise.
3482 (even_fpr_operand, odd_fpr_operand): Likewise.
3483 (dbl_memory_one_insn_operand, dbl_memory_two_insn_operand): Likewise.
3484 (int12_operand, int6_operand, int5_operand, uint5_operand): Likewise.
3485 (uint4_operand, uint1_operand, int_2word_operand): Likewise
3486 (upper_int16_operand, uint16_operand, symbolic_operand): Likewise.
3487 (relational_operator, float_relational_operator): Likewise.
3488 (ccr_eqne_operator, minmax_operator): Likewise.
3489 (condexec_si_binary_operator, condexec_si_media_operator): Likewise.
3490 (condexec_si_divide_operator, condexec_si_unary_operator): Likewise.
3491 (condexec_sf_conv_operator, condexec_sf_add_operator): Likewise.
3492 (intop_compare_operator, acc_operand, even_acc_operand): Likewise.
3493 (quad_acc_operand, accg_operand): Likewise.
3495 2021-07-02 Jeff Law <jeffreyalaw@gmail.com>
3497 * config/stormy16/stormy16-protos.h (xstormy16_below_100_symbol): Change
3498 return type to a bool.
3499 (nonimmediate_nonstack_operand): Likewise.
3500 (xstormy16_splittable_below100_operand): Likewise.
3501 * config/stormy16/stormy16.c (xstormy16_below_100_symbol): Fix
3503 (xstormy16_splittable_below100_operand): Likewise.
3505 2021-07-02 Richard Biener <rguenther@suse.de>
3507 PR tree-optimization/101293
3508 * tree-ssa-loop-im.c (mem_ref_hasher::equal): Compare MEM_REF bases
3509 with combined offsets.
3510 (gather_mem_refs_stmt): Hash MEM_REFs as if their offset were
3511 combined with the rest of the offset.
3513 2021-07-02 Eric Botcazou <ebotcazou@adacore.com>
3515 * config/i386/i386.c (asm_preferred_eh_data_format): Always use the
3516 PIC encodings for PE-COFF targets.
3518 2021-07-02 Jakub Jelinek <jakub@redhat.com>
3521 * config/i386/i386-expand.c (ix86_broadcast_from_integer_constant):
3522 Return nullptr for TImode inner mode.
3524 2021-07-02 Richard Biener <rguenther@suse.de>
3526 PR tree-optimization/101280
3527 PR tree-optimization/101173
3528 * gimple-loop-interchange.cc
3529 (tree_loop_interchange::valid_data_dependences): Properly
3530 guard all dependence checks with DDR_REVERSED_P or its
3533 2021-07-02 Hongyu Wang <hongyu.wang@intel.com>
3535 * config/i386/i386-expand.c (ix86_expand_builtin):
3536 Add branch to clear odata when ZF is set for asedecenc_expand
3537 and wideaesdecenc_expand.
3539 2021-07-02 Eugene Rozenfeld <erozen@microsoft.com>
3541 * config/i386/gcc-auto-profile: regenerate
3543 2021-07-02 liuhongt <hongtao.liu@intel.com>
3545 * config/i386/sse.md (trunc<mode><pmov_dst_4>2): Refined to ..
3546 (trunc<mode><pmov_dst_4_lower>2): this.
3548 2021-07-01 David Malcolm <dmalcolm@redhat.com>
3550 * diagnostic.h (diagnostic_context::m_file_cache): New field.
3551 * input.c (class fcache): Rename to...
3552 (class file_cache_slot): ...this, making most members private and
3553 prefixing fields with "m_".
3554 (file_cache_slot::get_file_path): New accessor.
3555 (file_cache_slot::get_use_count): New accessor.
3556 (file_cache_slot::missing_trailing_newline_p): New accessor.
3557 (file_cache_slot::inc_use_count): New.
3558 (fcache_buffer_size): Move to...
3559 (file_cache_slot::buffer_size): ...here.
3560 (fcache_line_record_size): Move to...
3561 (file_cache_slot::line_record_size): ...here.
3562 (fcache_tab): Delete, in favor of global_dc->m_file_cache.
3563 (fcache_tab_size): Move to file_cache::num_file_slots.
3564 (diagnostic_file_cache_init): Update for move of fcache_tab
3565 to global_dc->m_file_cache.
3566 (diagnostic_file_cache_fini): Likewise.
3567 (lookup_file_in_cache_tab): Convert to...
3568 (file_cache::lookup_file): ...this.
3569 (diagnostics_file_cache_forcibly_evict_file): Update for move of
3570 fcache_tab to global_dc->m_file_cache, moving most of
3571 implementation to...
3572 (file_cache::forcibly_evict_file): ...this new function and...
3573 (file_cache_slot::evict): ...this new function.
3574 (evicted_cache_tab_entry): Convert to...
3575 (file_cache::evicted_cache_tab_entry): ...this.
3576 (add_file_to_cache_tab): Convert to...
3577 (file_cache::add_file): ...this, moving bulk of implementation
3579 (file_cache_slot::create): ..this new function.
3580 (file_cache::file_cache): New.
3581 (file_cache::~file_cache): New.
3582 (lookup_or_add_file_to_cache_tab): Convert to...
3583 (file_cache::lookup_or_add_file): ..this new function.
3584 (fcache::fcache): Rename to...
3585 (file_cache_slot::file_cache_slot): ...this, adding "m_" prefixes
3587 (fcache::~fcache): Rename to...
3588 (file_cache_slot::~file_cache_slot): ...this, adding "m_" prefixes
3590 (needs_read): Convert to...
3591 (file_cache_slot::needs_read_p): ...this.
3592 (needs_grow): Convert to...
3593 (file_cache_slot::needs_grow_p): ...this.
3594 (maybe_grow): Convert to...
3595 (file_cache_slot::maybe_grow): ...this.
3596 (read_data): Convert to...
3597 (file_cache_slot::read_data): ...this.
3598 (maybe_read_data): Convert to...
3599 (file_cache_slot::maybe_read_data): ...this.
3600 (get_next_line): Convert to...
3601 (file_cache_slot::get_next_line): ...this.
3602 (goto_next_line): Convert to...
3603 (file_cache_slot::goto_next_line): ...this.
3604 (read_line_num): Convert to...
3605 (file_cache_slot::read_line_num): ...this.
3606 (location_get_source_line): Update for moving of globals to
3607 global_dc->m_file_cache.
3608 (location_missing_trailing_newline): Likewise.
3609 * input.h (class file_cache_slot): New forward decl.
3610 (class file_cache): New.
3612 2021-07-01 Michael Meissner <meissner@linux.ibm.com>
3614 * config/rs6000/rs6000.c (rs6000_maybe_emit_fp_cmove): Add IEEE
3615 128-bit floating point conditional move support.
3616 (have_compare_and_set_mask): Add IEEE 128-bit floating point
3618 * config/rs6000/rs6000.md (mov<mode>cc, IEEE128 iterator): New insn.
3619 (mov<mode>cc_p10, IEEE128 iterator): New insn.
3620 (mov<mode>cc_invert_p10, IEEE128 iterator): New insn.
3621 (fpmask<mode>, IEEE128 iterator): New insn.
3622 (xxsel<mode>, IEEE128 iterator): New insn.
3624 2021-07-01 Iain Sandoe <iain@sandoe.co.uk>
3627 * config/darwin.h (CTF_INFO_SECTION_NAME): New.
3629 2021-07-01 H.J. Lu <hjl.tools@gmail.com>
3631 * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
3633 * config/i386/i386-protos.h (ix86_expand_vector_init_duplicate):
3635 * config/i386/sse.md (INT_BROADCAST_MODE): New mode iterator.
3636 (vec_duplicate<mode>): New expander.
3638 2021-07-01 H.J. Lu <hjl.tools@gmail.com>
3641 * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
3643 (ix86_byte_broadcast): New function.
3644 (ix86_convert_const_wide_int_to_broadcast): Likewise.
3645 (ix86_expand_move): Convert CONST_WIDE_INT to broadcast if mode
3646 size is 16 bytes or bigger.
3647 (ix86_broadcast_from_integer_constant): New function.
3648 (ix86_expand_vector_move): Convert CONST_WIDE_INT and CONST_VECTOR
3649 to broadcast if mode size is 16 bytes or bigger.
3650 * config/i386/i386-protos.h (ix86_gen_scratch_sse_rtx): New
3652 * config/i386/i386.c (ix86_gen_scratch_sse_rtx): New function.
3654 2021-07-01 Uroš Bizjak <ubizjak@gmail.com>
3656 * config/i386/predicates.md (ix86_endbr_immediate_operand):
3657 Return true/false instead of 1/0.
3658 (movq_parallel): Ditto.
3660 2021-07-01 Uroš Bizjak <ubizjak@gmail.com>
3662 * recog.c (general_operand): Return true/false instead of 1/0.
3663 (register_operand): Ditto.
3664 (immediate_operand): Ditto.
3665 (const_int_operand): Ditto.
3666 (const_scalar_int_operand): Ditto.
3667 (const_double_operand): Ditto.
3668 (push_operand): Ditto.
3669 (pop_operand): Ditto.
3670 (memory_operand): Ditto.
3671 (indirect_operand): Ditto.
3673 2021-07-01 Uroš Bizjak <ubizjak@gmail.com>
3675 * genpreds.c (write_predicate_subfunction):
3676 Change the type of written subfunction to bool.
3677 (write_one_predicate_function):
3678 Change the type of written function to bool.
3679 (write_tm_preds_h): Ditto.
3680 * recog.h (*insn_operand_predicate_fn): Change the type to bool.
3681 * recog.c (general_operand): Change the type to bool.
3682 (address_operand): Ditto.
3683 (register_operand): Ditto.
3684 (pmode_register_operand): Ditto.
3685 (scratch_operand): Ditto.
3686 (immediate_operand): Ditto.
3687 (const_int_operand): Ditto.
3688 (const_scalar_int_operand): Ditto.
3689 (const_double_operand): Ditto.
3690 (nonimmediate_operand): Ditto.
3691 (nonmemory_operand): Ditto.
3692 (push_operand): Ditto.
3693 (pop_operand): Ditto.
3694 (memory_operand): Ditto.
3695 (indirect_operand): Ditto.
3696 (ordered_comparison_operator): Ditto.
3697 (comparison_operator): Ditto.
3698 * config/i386/i386-expand.c (ix86_expand_sse_cmp):
3699 Change the type of indirect predicate function to bool.
3700 * config/rs6000/rs6000.c (easy_vector_constant):
3701 Change the type to bool.
3702 * config/mips/mips-protos.h (m16_based_address_p):
3703 Change the type of operand 3 to bool.
3705 2021-07-01 Richard Biener <rguenther@suse.de>
3707 PR tree-optimization/101280
3708 PR tree-optimization/101173
3709 * gimple-loop-interchange.cc
3710 (tree_loop_interchange::valid_data_dependences): Revert
3711 previous change and instead correctly handle DDR_REVERSED_P
3714 2021-07-01 Richard Biener <rguenther@suse.de>
3716 PR tree-optimization/101278
3717 * tree-ssa-dse.c (dse_classify_store): First check for
3718 uses, then ignore stmt for chaining purposes.
3720 2021-07-01 Richard Biener <rguenther@suse.de>
3722 PR tree-optimization/100778
3723 * tree-vect-slp.c (vect_schedule_slp_node): Do not place trapping
3724 vectorized ops ahead of their scalar BB.
3726 2021-07-01 Uroš Bizjak <ubizjak@gmail.com>
3729 * config/i386/i386.md (*nabs<dwi>2_doubleword):
3730 New insn_and_split pattern.
3731 (*nabs<dwi>2_1): Ditto.
3732 * config/i386/i386-features.c
3733 (general_scalar_chain::compute_convert_gain):
3734 Handle (NEG (ABS (...))) RTX. Rewrite src code
3735 scanner as switch statement.
3736 (general_scalar_chain::convert_insn):
3737 Handle (NEG (ABS (...))) RTX.
3738 (general_scalar_to_vector_candidate_p):
3739 Detect (NEG (ABS (...))) RTX. Reorder case statements
3740 for (AND (NOT (...) ...)) fallthrough.
3742 2021-07-01 Richard Biener <rguenther@suse.de>
3744 PR tree-optimization/101178
3745 * tree-vect-slp.c (slpg_vertex::materialize): Remove.
3746 (slpg::perm_in): Add.
3747 (slpg::get_perm_in): Remove.
3748 (slpg::get_perm_materialized): Add.
3749 (vect_optimize_slp): Handle VEC_PERM nodes more optimally
3750 during permute propagation and materialization.
3752 2021-07-01 Jakub Jelinek <jakub@redhat.com>
3755 * dwarf2out.c (loc_list_from_tree_1): Handle COMPOUND_LITERAL_EXPR.
3757 2021-07-01 Jakub Jelinek <jakub@redhat.com>
3760 * omp-low.c (lower_rec_input_clauses): Rename is_fp_and_or to
3761 is_truth_op, set it for TRUTH_*IF_EXPR regardless of new_var's type,
3762 use boolean_type_node instead of integer_type_node as NE_EXPR type.
3763 (lower_reduction_clauses): Likewise.
3765 2021-06-30 Hafiz Abid Qadeer <abidh@codesourcery.com>
3767 * config/gcn/gcn.c: Include dwarf2.h.
3768 (gcn_addr_space_debug): New function.
3769 (TARGET_ADDR_SPACE_DEBUG): New hook.
3771 2021-06-30 Hafiz Abid Qadeer <abidh@codesourcery.com>
3773 * common/config/gcn/gcn-common.c
3774 (gcn_option_optimization_table): Change OPT_fomit_frame_pointer to -O3.
3775 * config/gcn/gcn.c (gcn_expand_prologue): Prefer the frame pointer
3777 (gcn_expand_prologue): Prefer the frame pointer when emitting CFI.
3778 (gcn_frame_pointer_rqd): New function.
3779 (TARGET_FRAME_POINTER_REQUIRED): New hook.
3781 2021-06-30 Hafiz Abid Qadeer <abidh@codesourcery.com>
3783 * config/gcn/gcn.c (move_callee_saved_registers): Emit CFI notes for
3784 prologue register saves.
3785 (gcn_debug_unwind_info): Use UI_DWARF2.
3786 (gcn_dwarf_register_number): Map DWARF_LINK_REGISTER to DWARF PC.
3787 (gcn_dwarf_register_span): DWARF_LINK_REGISTER doesn't span.
3788 * config/gcn/gcn.h: (DWARF_FRAME_RETURN_COLUMN): New define.
3789 (DWARF_LINK_REGISTER): New define.
3790 (FIRST_PSEUDO_REGISTER): Increment.
3791 (FIXED_REGISTERS): Add entry for DWARF_LINK_REGISTER.
3792 (CALL_USED_REGISTERS): Likewise.
3793 (REGISTER_NAMES): Likewise.
3795 2021-06-30 Richard Biener <rguenther@suse.de>
3797 PR tree-optimization/101267
3798 * tree-vect-stmts.c (vect_check_scalar_mask): Adjust
3799 API and use SLP compatible interface of vect_is_simple_use.
3800 Reject not vectorized SLP defs for callers that do not support
3802 (vect_check_store_rhs): Handle masked stores and pass down
3803 the appropriate operator index.
3804 (vectorizable_call): Adjust.
3805 (vectorizable_store): Likewise.
3806 (vectorizable_load): Likewise. Handle SLP pecularity of
3808 (vect_is_simple_use): Remove special-casing of masked stores.
3810 2021-06-30 Tobias Burnus <tobias@codesourcery.com>
3812 * common.opt (foffload): Remove help as Driver only.
3813 * gcc.c (display_help): Add -foffload.
3815 2021-06-30 Tobias Burnus <tobias@codesourcery.com>
3817 * gcc.c (close_at_file, execute): Replace alloca by XALLOCAVEC.
3818 (check_offload_target_name): Fix splitting OFFLOAD_TARGETS into
3819 a candidate list; better inform no offload target is configured
3820 and fix hint extraction when passed target is not '\0' at [len].
3821 * common.opt (foffload): Add tailing '.'.
3822 (foffload-options): Likewise; fix flag name in the help string.
3824 2021-06-30 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org>
3827 * config/arm/arm_neon.h: Move vabs intrinsics before vcage_f32.
3828 (vcage_f32): Gate comparison on __FAST_MATH__.
3829 (vcageq_f32): Likewise.
3830 (vcale_f32): Likewise.
3831 (vcaleq_f32): Likewise.
3832 (vcagt_f32): Likewise.
3833 (vcagtq_f32): Likewise.
3834 (vcalt_f32): Likewise.
3835 (vcaltq_f32): Likewise.
3836 (vcage_f16): Likewise.
3837 (vcageq_f16): Likewise.
3838 (vcale_f16): Likewise.
3839 (vcaleq_f16): Likewise.
3840 (vcagt_f16): Likewise.
3841 (vcagtq_f16): Likewise.
3842 (vcalt_f16): Likewise.
3843 (vcaltq_f16): Likewise.
3845 2021-06-30 Richard Biener <rguenther@suse.de>
3847 PR tree-optimization/101264
3848 * tree-vect-slp.c (vect_optimize_slp): Propagate the
3849 computed perm_in to all "any" permute successors
3850 we cannot de-duplicate immediately.
3852 2021-06-30 liuhongt <hongtao.liu@intel.com>
3855 * config/i386/sse.md
3856 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>):
3858 (avx512f_sfixupimm<mode><maskz_scalar_name><round_saeonly_name>):
3860 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>"): Refined.
3861 * config/i386/subst.md (maskz_scalar): New define_subst.
3862 (maskz_scalar_name): New subst_attr.
3863 (maskz_scalar_op5): Ditto.
3864 (round_saeonly_maskz_scalar_op5): Ditto.
3865 (round_saeonly_maskz_scalar_operand5): Ditto.
3867 2021-06-30 David Edelsohn <dje.gcc@gmail.com>
3869 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags):
3870 Increase code CSECT alignment to at least 32 bytes.
3871 * config/rs6000/xcoff.h (TEXT_SECTION_ASM_OP): Add 32 byte
3872 alignment designation.
3874 2021-06-29 Sergei Trofimovich <siarheit@google.com>
3876 * doc/generic.texi: Fix s/net yet/not yet/ typo.
3878 2021-06-29 Andrew MacLeod <amacleod@redhat.com>
3880 PR tree-optimization/101254
3881 * range-op.cc (operator_minus::op1_op2_relation_effect): Check for
3882 wrapping/non-wrapping when setting the result range.
3884 2021-06-29 Andrew MacLeod <amacleod@redhat.com>
3886 * value-query.cc (gimple_range_global): Allow phis.
3888 2021-06-29 Andrew MacLeod <amacleod@redhat.com>
3890 * vr-values.c (vr_values::vrp_stmt_computes_nonzero): Use stmt.
3891 (simplify_using_ranges::op_with_boolean_value_range_p): Add a
3892 statement for location context.
3893 (check_for_binary_op_overflow): Ditto.
3894 (simplify_using_ranges::get_vr_for_comparison): Ditto.
3895 (simplify_using_ranges::compare_name_with_value): Ditto.
3896 (simplify_using_ranges::compare_names): Ditto.
3897 (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Ditto.
3898 (simplify_using_ranges::simplify_truth_ops_using_ranges): Ditto.
3899 (simplify_using_ranges::simplify_min_or_max_using_ranges): Ditto.
3900 (simplify_using_ranges::simplify_internal_call_using_ranges): Ditto.
3901 (simplify_using_ranges::two_valued_val_range_p): Ditto.
3902 (simplify_using_ranges::simplify): Ditto.
3903 * vr-values.h: Adjust prototypes.
3905 2021-06-29 Uroš Bizjak <ubizjak@gmail.com>
3908 * config/i386/mmx.md (vec_addsubv2sf3): New insn pattern.
3910 2021-06-29 Julian Brown <julian@codesourcery.com>
3912 * config/gcn/gcn.c (gcn_init_libfuncs): New function.
3913 (TARGET_INIT_LIBFUNCS): Define target hook using above function.
3914 * config/gcn/gcn.h (UNITS_PER_WORD): Define to 8 for IN_LIBGCC2, 4
3916 (LIBGCC2_UNITS_PER_WORD, BITS_PER_WORD): Remove definitions.
3917 (MAX_FIXED_MODE_SIZE): Change to 128.
3919 2021-06-29 Julian Brown <julian@codesourcery.com>
3921 * config/gcn/gcn.md (UNSPEC_FLBIT_INT): New unspec constant.
3922 (s_mnemonic): Add clrsb.
3923 (gcn_flbit<mode>_int): Add insn pattern for SImode/DImode.
3924 (clrsb<mode>2): Add expander for SImode/DImode.
3926 2021-06-29 Julian Brown <julian@codesourcery.com>
3928 * config/gcn/gcn.md (<su>mulsidi3, <su>mulsidi3_reg, <su>mulsidi3_imm,
3929 muldi3): Add patterns.
3931 2021-06-29 Julian Brown <julian@codesourcery.com>
3933 * config/gcn/gcn.md (<su>mulsi3_highpart): Change to expander.
3934 (<su>mulsi3_highpart_reg, <su>mulsi3_highpart_imm): New patterns.
3936 2021-06-29 Julian Brown <julian@codesourcery.com>
3938 * config/gcn/gcn.md (mulsi3): Make s_mulk_i32 variant clobber SCC.
3940 2021-06-29 Joseph Myers <joseph@codesourcery.com>
3942 * btfout.c, ctfout.c: Include "memmodel.h".
3944 2021-06-29 Tobias Burnus <tobias@codesourcery.com>
3946 * gcc.c (check_offload_target_name): Cast len argument to
3947 %q.*s to 'int'; avoid -Wstringop-truncation warning.
3949 2021-06-29 Richard Biener <rguenther@suse.de>
3951 * tree-vect-slp.c (vect_optimize_slp): Forward propagate
3952 to "any" permute nodes and relax "any" permute proapgation
3953 during iterative backward propagation.
3955 2021-06-29 Tobias Burnus <tobias@codesourcery.com>
3958 * common.opt (-foffload=): Update description.
3959 (-foffload-options=): New.
3960 * doc/invoke.texi (C Language Options): Document
3961 -foffload and -foffload-options.
3962 * gcc.c (check_offload_target_name): New, split off from
3963 handle_foffload_option.
3964 (check_foffload_target_names): New.
3965 (handle_foffload_option): Handle -foffload=default.
3966 (driver_handle_option): Update for -foffload-options.
3967 * lto-opts.c (lto_write_options): Use -foffload-options
3968 instead of -foffload.
3969 * lto-wrapper.c (merge_and_complain, append_offload_options):
3971 * opts.c (common_handle_option): Likewise.
3973 2021-06-29 Tobias Burnus <tobias@codesourcery.com>
3975 * doc/invoke.texi (C Language Options): Sort options
3976 alphabetically in optlist and also the description itself.
3977 Remove leftover -fallow-single-precision from and add missing
3978 -fgnu-tm to the optlist.
3980 2021-06-29 Richard Biener <rguenther@suse.de>
3982 * tree-vect-slp.c (slpg_vertex::visited): Remove.
3983 (vect_slp_perms_eq): Handle -1 permutes.
3984 (vect_optimize_slp): Rewrite permute propagation.
3986 2021-06-29 Jakub Jelinek <jakub@redhat.com>
3989 * match.pd ((intptr_t)x eq/ne CST to x eq/ne (typeof x) CST): Don't
3990 perform the optimization in GENERIC when sanitizing and x has a
3993 2021-06-29 Richard Biener <rguenther@suse.de>
3995 PR tree-optimization/101242
3996 * tree-vect-slp.c (vect_slp_build_vertices): Force-add
3997 PHIs with not represented initial values as leafs.
3999 2021-06-29 Jan-Benedict Glaw <jbglaw@getslash.de>
4001 * config/pdp11/pdp11.h (ASM_OUTPUT_SKIP): Fix signedness warning.
4002 * config/pdp11/pdp11.c (pdp11_asm_print_operand_punct_valid_p): Remove
4004 (pdp11_initial_elimination_offset) Remove unused variable.
4005 (pdp11_cmp_length) Ditto.
4006 (pdp11_insn_cost): Ditto, and fix signedness warning.
4008 2021-06-29 David Edelsohn <dje.gcc@gmail.com>
4010 * btfout.c: Include tm_p.h.
4013 2021-06-28 Indu Bhagat <indu.bhagat@oracle.com>
4015 * config/bpf/bpf.c (bpf_expand_prologue): Do not mark insns as
4017 (bpf_expand_epilogue): Likewise.
4018 * config/bpf/bpf.h (DWARF2_FRAME_INFO): Define to 0.
4019 Do not define DBX_DEBUGGING_INFO.
4021 2021-06-28 Indu Bhagat <indu.bhagat@oracle.com>
4023 * doc/invoke.texi: Document the CTF and BTF debug info options.
4025 2021-06-28 Indu Bhagat <indu.bhagat@oracle.com>
4026 David Faust <david.faust@oracle.com>
4027 Jose E. Marchesi <jose.marchesi@oracle.com>
4028 Weimin Pan <weimin.pan@oracle.com>
4030 * Makefile.in: Add ctfc.*, ctfout.c and btfout.c files to
4031 GTFILES. Add new object files.
4032 * common.opt: Add CTF and BTF debug info options.
4033 * btfout.c: New file.
4036 * ctfout.c: Likewise.
4037 * dwarf2ctf.c: Likewise.
4038 * dwarf2ctf.h: Likewise.
4039 * dwarf2cfi.c (dwarf2out_do_frame): Acknowledge CTF_DEBUG and
4041 * dwarf2out.c (dwarf2out_source_line): Likewise.
4042 (dwarf2out_finish): Skip emitting DWARF if CTF or BTF are to
4044 (debug_format_do_cu): New function.
4045 (dwarf2out_early_finish): Traverse DIEs and emit CTF/BTF for
4047 Include dwarf2ctf.c.
4048 * final.c (dwarf2_debug_info_emitted_p): Acknowledge DWARF-based debug
4050 * flag-types.h (enum debug_info_type): Add CTF_DEBUG and BTF_DEBUG.
4051 (CTF_DEBUG): New bitmask.
4052 (BTF_DEBUG): Likewise.
4053 (enum ctf_debug_info_levels): New enum.
4054 * gengtype.c (open_base_files): Handle ctfc.h.
4055 (main): Handle uint32_t type.
4056 * flags.h (btf_debuginfo_p): New definition.
4057 (dwarf_based_debuginfo_p): Likewise.
4058 * opts.c (debug_type_names): Add entries for CTF and BTF.
4059 (btf_debuginfo_p): New function.
4060 (dwarf_based_debuginfo_p): Likewise.
4061 (common_handle_option): Handle -gctfN and -gbtf options.
4062 (set_debug_level): Set CTF_DEBUG, BTF_DEBUG whenever appropriate.
4063 * toplev.c (process_options): Inform the user and ignore -gctfLEVEL if
4066 2021-06-28 Jose E. Marchesi <jose.marchesi@oracle.com>
4068 * dwarf2out.c (AT_class): Function is no longer static.
4070 (AT_unsigned): Likewise.
4073 (get_AT_string): Likewise.
4074 (get_AT_flag): Likewise.
4075 (get_AT_unsigned): Likewise.
4076 (get_AT_ref): Likewise.
4077 (new_die_raw): Likewise.
4078 (lookup_decl_die): Likewise.
4079 (base_type_die): Likewise.
4080 (add_name_attribute): Likewise.
4081 (add_AT_int): Likewise.
4082 (add_AT_unsigned): Likewise.
4083 (add_AT_loc): Likewise.
4084 (dw_get_die_tag): New function.
4085 (dw_get_die_child): Likewise.
4086 (dw_get_die_sib): Likewise.
4087 (struct dwarf_file_data): Move from here to dwarf2out.h
4088 (struct dw_attr_struct): Likewise.
4089 * dwarf2out.h: Analogous changes.
4091 2021-06-28 Martin Jambor <mjambor@suse.cz>
4094 * ipa-param-manipulation.h (class ipa_param_body_adjustments): New
4095 members m_dead_stmts and m_dead_ssas.
4096 * ipa-param-manipulation.c
4097 (ipa_param_body_adjustments::mark_dead_statements): New function.
4098 (ipa_param_body_adjustments::common_initialization): Call it on
4099 all removed but not split parameters.
4100 (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
4102 (ipa_param_body_adjustments::modify_call_stmt): Remove arguments that
4104 * tree-inline.c (remap_gimple_stmt): Do not copy dead statements, reset
4105 dead debug statements.
4106 (copy_phis_for_bb): Do not copy dead PHI nodes.
4108 2021-06-28 Martin Jambor <mjambor@suse.cz>
4111 * symtab-clones.h (clone_info): Removed member param_adjustments.
4112 * ipa-param-manipulation.h: Adjust initial comment to reflect how we
4113 deal with pass-through splits now.
4114 (ipa_param_performed_split): Removed.
4115 (ipa_param_adjustments::modify_call): Adjusted parameters.
4116 (class ipa_param_body_adjustments): Adjusted parameters of
4117 register_replacement, modify_gimple_stmt and modify_call_stmt.
4118 (ipa_verify_edge_has_no_modifications): Declare.
4119 (ipa_edge_modifications_finalize): Declare.
4120 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Remove
4121 performed_splits processing, pas only edge to padjs->modify_call,
4122 check that call arguments were not modified if they should not have
4124 * cgraphclones.c (cgraph_node::create_clone): Do not copy performed
4126 * ipa-param-manipulation.c (struct pass_through_split_map): New type.
4127 (ipa_edge_modification_info): Likewise.
4128 (ipa_edge_modification_sum): Likewise.
4129 (ipa_edge_modifications): New edge summary.
4130 (ipa_verify_edge_has_no_modifications): New function.
4131 (transitive_split_p): Removed.
4132 (transitive_split_map): Likewise.
4133 (init_transitive_splits): Likewise.
4134 (ipa_param_adjustments::modify_call): Adjusted to use the new edge
4135 summary instead of performed_splits.
4136 (ipa_param_body_adjustments::register_replacement): Drop dummy
4137 parameter, set base_index of the created ipa_param_body_replacement.
4138 (phi_arg_will_live_p): New function.
4139 (ipa_param_body_adjustments::common_initialization): Do not create
4140 IPA_SRA dummy decls.
4141 (simple_tree_swap_info): Removed.
4142 (remap_split_decl_to_dummy): Likewise.
4143 (record_argument_state_1): New function.
4144 (record_argument_state): Likewise.
4145 (ipa_param_body_adjustments::modify_call_stmt): New parameter
4146 orig_stmt. Do not work with dummy decls, save necessary info about
4147 changes to ipa_edge_modifications.
4148 (ipa_param_body_adjustments::modify_gimple_stmt): New parameter
4149 orig_stmt, pass it to modify_call_stmt.
4150 (ipa_param_body_adjustments::modify_cfun_body): Adjust call to
4152 (ipa_edge_modifications_finalize): New function.
4153 * tree-inline.c (remap_gimple_stmt): Pass original statement to
4155 (copy_phis_for_bb): Do not copy dead PHI nodes.
4156 (expand_call_inline): Do not remap performed_splits.
4157 (update_clone_info): Likewise.
4158 * toplev.c: Include ipa-param-manipulation.h.
4159 (toplev::finalize): Call ipa_edge_modifications_finalize.
4161 2021-06-28 Andrew Pinski <apinski@marvell.com>
4163 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Duplicate range
4164 info if we're the only things setting the target PHI.
4165 (value_replacement): Don't duplicate range here.
4166 (minmax_replacement): Likewise.
4168 2021-06-28 Richard Biener <rguenther@suse.de>
4170 PR tree-optimization/101229
4171 * gimple-walk.c (gimple_walk_op): Handle PHIs.
4173 2021-06-28 Martin Liska <mliska@suse.cz>
4175 * config/v850/v850.c (construct_dispose_instruction): Allocate
4177 (construct_prepare_instruction): Likewise.
4179 2021-06-28 Martin Liska <mliska@suse.cz>
4181 * config/v850/v850.c (v850_option_override): Build default
4183 (v850_can_inline_p): New. Allow MASK_PROLOG_FUNCTION to be
4184 ignored for inlining.
4185 (TARGET_CAN_INLINE_P): New.
4187 2021-06-28 Richard Biener <rguenther@suse.de>
4189 PR tree-optimization/101207
4190 * tree-vect-slp.c (vect_optimize_slp): Do BB reduction
4191 permute eliding for load permutations properly.
4193 2021-06-28 Richard Biener <rguenther@suse.de>
4195 PR tree-optimization/101173
4196 * gimple-loop-interchange.cc
4197 (tree_loop_interchange::valid_data_dependences): Disallow outer
4198 loop dependence distance of zero.
4200 2021-06-28 liuhongt <hongtao.liu@intel.com>
4203 * config/i386/sse.md (*avx_cmp<mode>3_lt): New
4204 define_insn_and_split.
4205 (*avx_cmp<mode>3_ltint): Ditto.
4206 (*avx2_pcmp<mode>3_3): Ditto.
4207 (*avx2_pcmp<mode>3_4): Ditto.
4208 (*avx2_pcmp<mode>3_5): Ditto.
4210 2021-06-28 liuhongt <hongtao.liu@intel.com>
4212 * config/i386/i386-builtin.def (IX86_BUILTIN_BLENDVPD256,
4213 IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_PBLENDVB256,
4214 IX86_BUILTIN_BLENDVPD, IX86_BUILTIN_BLENDVPS,
4215 IX86_BUILTIN_PBLENDVB128): Replace icode with
4217 * config/i386/i386.c (ix86_gimple_fold_builtin): Fold blendv
4219 * config/i386/sse.md (*<sse4_1_avx2>_pblendvb_lt_subreg_not):
4220 New pre_reload splitter.
4222 2021-06-27 Andrew Pinski <apinski@marvell.com>
4224 PR middle-end/101230
4225 * fold-const.c (fold_ternary_loc): Check
4226 the return value of invert_tree_comparison.
4228 2021-06-27 David Edelsohn <dje.gcc@gmail.com>
4230 * config.gcc: Add SPDX License Identifier.
4231 (powerpc-ibm-aix789): Default to aix73.h.
4232 (powerpc-ibm-aix7.2.*.*): New stanza.
4233 * config/rs6000/aix72.h: Add SPDX License Identifier.
4234 * config/rs6000/aix73.h: New file.
4236 2021-06-26 Jason Merrill <jason@redhat.com>
4238 * except.c: #include "dwarf2.h" instead of "dwarf2out.h".
4240 2021-06-26 Andrew Pinski <apinski@marvell.com>
4242 * genmatch.c (lower_cond): Copy for_subst_vec
4243 for the simplify also.
4244 (lower): Swap the order for lower_for and lower_cond.
4246 2021-06-26 Andrew Pinski <apinski@marvell.com>
4248 * tree-ssa-phiopt.c (match_simplify_replacement): Reset
4249 flow senatitive info on the moved ssa set.
4251 2021-06-26 Andrew Pinski <apinski@marvell.com>
4253 * fold-const.c (fold_cond_expr_with_comparison):
4254 Exand arg0 into comp_code, arg00, and arg01.
4255 (fold_ternary_loc): Use invert_tree_comparison
4256 instead of fold_invert_truthvalue for the case
4257 where we have A CMP B ? C : A.
4259 2021-06-25 Martin Sebor <msebor@redhat.com>
4261 PR middle-end/101216
4262 * calls.c (maybe_warn_rdwr_sizes): Use the no_warning constant.
4264 2021-06-25 Jeff Law <jeffreyalaw@gmail.com>
4266 * config/h8300/h8300.c (select_cc_mode): Handle ASHIFTRT and LSHIFTRT.
4268 2021-06-25 Richard Biener <rguenther@suse.de>
4270 PR tree-optimization/101202
4271 * tree-vect-slp.c (vect_optimize_slp): Explicitely handle
4274 2021-06-25 Richard Biener <rguenther@suse.de>
4276 * tree-vect-slp-patterns.c (addsub_pattern::build): Copy
4277 STMT_VINFO_REDUC_DEF from the original representative.
4279 2021-06-25 Martin Sebor <msebor@redhat.com>
4281 * builtins.c (warn_string_no_nul): Replace uses of TREE_NO_WARNING,
4282 gimple_no_warning_p and gimple_set_no_warning with
4283 warning_suppressed_p, and suppress_warning.
4285 (maybe_warn_for_bound): Same.
4286 (warn_for_access): Same.
4287 (check_access): Same.
4288 (expand_builtin_strncmp): Same.
4289 (fold_builtin_varargs): Same.
4290 * calls.c (maybe_warn_nonstring_arg): Same.
4291 (maybe_warn_rdwr_sizes): Same.
4292 * cfgexpand.c (expand_call_stmt): Same.
4293 * cgraphunit.c (check_global_declaration): Same.
4294 * fold-const.c (fold_undefer_overflow_warnings): Same.
4295 (fold_truth_not_expr): Same.
4296 (fold_unary_loc): Same.
4297 (fold_checksum_tree): Same.
4298 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref): Same.
4299 (array_bounds_checker::check_mem_ref): Same.
4300 (array_bounds_checker::check_addr_expr): Same.
4301 (array_bounds_checker::check_array_bounds): Same.
4302 * gimple-expr.c (copy_var_decl): Same.
4303 * gimple-fold.c (gimple_fold_builtin_strcpy): Same.
4304 (gimple_fold_builtin_strncat): Same.
4305 (gimple_fold_builtin_stxcpy_chk): Same.
4306 (gimple_fold_builtin_stpcpy): Same.
4307 (gimple_fold_builtin_sprintf): Same.
4308 (fold_stmt_1): Same.
4309 * gimple-ssa-isolate-paths.c (diag_returned_locals): Same.
4310 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
4311 * gimple-ssa-sprintf.c (handle_printf_call): Same.
4312 * gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_store): Same.
4313 * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same.
4314 * gimple-ssa-warn-restrict.h: Adjust declarations.
4315 (maybe_diag_access_bounds): Replace uses of TREE_NO_WARNING,
4316 gimple_no_warning_p and gimple_set_no_warning with
4317 warning_suppressed_p, and suppress_warning.
4319 (check_bounds_or_overlap): Same.
4320 * gimple.c (gimple_build_call_from_tree): Same.
4321 * gimplify.c (gimplify_return_expr): Same.
4322 (gimplify_cond_expr): Same.
4323 (gimplify_modify_expr_complex_part): Same.
4324 (gimplify_modify_expr): Same.
4325 (gimple_push_cleanup): Same.
4326 (gimplify_expr): Same.
4327 * omp-expand.c (expand_omp_for_generic): Same.
4328 (expand_omp_taskloop_for_outer): Same.
4329 * omp-low.c (lower_rec_input_clauses): Same.
4330 (lower_lastprivate_clauses): Same.
4331 (lower_send_clauses): Same.
4332 (lower_omp_target): Same.
4333 * tree-cfg.c (pass_warn_function_return::execute): Same.
4334 * tree-complex.c (create_one_component_var): Same.
4335 * tree-inline.c (remap_gimple_op_r): Same.
4336 (copy_tree_body_r): Same.
4337 (declare_return_variable): Same.
4338 (expand_call_inline): Same.
4339 * tree-nested.c (lookup_field_for_decl): Same.
4340 * tree-sra.c (create_access_replacement): Same.
4341 (generate_subtree_copies): Same.
4342 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Same.
4343 * tree-ssa-forwprop.c (combine_cond_expr_cond): Same.
4344 * tree-ssa-loop-ch.c (ch_base::copy_headers): Same.
4345 * tree-ssa-loop-im.c (execute_sm): Same.
4346 * tree-ssa-phiopt.c (cond_store_replacement): Same.
4347 * tree-ssa-strlen.c (maybe_warn_overflow): Same.
4348 (handle_builtin_strcpy): Same.
4349 (maybe_diag_stxncpy_trunc): Same.
4350 (handle_builtin_stxncpy_strncat): Same.
4351 (handle_builtin_strcat): Same.
4352 * tree-ssa-uninit.c (get_no_uninit_warning): Same.
4353 (set_no_uninit_warning): Same.
4354 (uninit_undefined_value_p): Same.
4355 (warn_uninit): Same.
4356 (maybe_warn_operand): Same.
4357 * tree-vrp.c (compare_values_warnv): Same.
4358 * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr): Same.
4359 (test_for_singularity): Same.
4360 * gimple.h (warning_suppressed_p): New function.
4361 (suppress_warning): Same.
4362 (copy_no_warning): Same.
4363 (gimple_set_block): Call gimple_set_location.
4364 (gimple_set_location): Call copy_warning.
4366 2021-06-25 Martin Sebor <msebor@redhat.com>
4368 * tree.h (warning_suppressed_at, copy_warning,
4369 warning_suppressed_p, suppress_warning): New functions.
4371 2021-06-25 Martin Sebor <msebor@redhat.com>
4373 * Makefile.in (OBJS-libcommon): Add diagnostic-spec.o.
4374 * gengtype.c (open_base_files): Add diagnostic-spec.h.
4375 * diagnostic-spec.c: New file.
4376 * diagnostic-spec.h: New file.
4377 * tree.h (no_warning, all_warnings, suppress_warning_at): New
4379 * warning-control.cc: New file.
4381 2021-06-25 liuhongt <hongtao.liu@intel.com>
4384 * config/i386/i386.c (x86_order_regs_for_local_alloc):
4387 2021-06-24 Andrew MacLeod <amacleod@redhat.com>
4389 PR tree-optimization/101189
4390 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Pass
4391 LHS range of condition to postfold routine.
4392 (fold_using_range::postfold_gcond_edges): Only process the TRUE or
4393 FALSE edge if the LHS range supports it being taken.
4394 * gimple-range-fold.h (postfold_gcond_edges): Add range parameter.
4396 2021-06-24 Andrew MacLeod <amacleod@redhat.com>
4398 * value-relation.cc (equiv_oracle::dump): Do not dump NULL blocks.
4399 (relation_oracle::find_relation_block): Check correct bitmap.
4400 (relation_oracle::dump): Do not dump NULL blocks.
4402 2021-06-24 Andrew MacLeod <amacleod@redhat.com>
4404 * gimple-range-cache.cc (ranger_cache::propagate_cache): Call
4405 range_on_edge instead of manually calculating.
4407 2021-06-24 Andrew MacLeod <amacleod@redhat.com>
4409 * range-op.cc: Fix comment.
4411 2021-06-24 Uroš Bizjak <ubizjak@gmail.com>
4414 * config/i386/i386-expand.c (ix86_expand_sse_unpack):
4415 Handle V8QI and V4HI modes.
4416 * config/i386/mmx.md (sse4_1_<any_extend:code>v4qiv4hi2):
4418 (sse4_1_<any_extend:code>v4qiv4hi2): Ditto.
4419 (mmxpackmode): New mode attribute.
4420 (vec_pack_trunc_<mmxpackmode:mode>): New expander.
4421 (mmxunpackmode): New mode attribute.
4422 (vec_unpacks_lo_<mmxunpackmode:mode>): New expander.
4423 (vec_unpacks_hi_<mmxunpackmode:mode>): Ditto.
4424 (vec_unpacku_lo_<mmxunpackmode:mode>): Ditto.
4425 (vec_unpacku_hi_<mmxunpackmode:mode>): Ditto.
4426 * config/i386/i386.md (extsuffix): Move from ...
4427 * config/i386/sse.md: ... here.
4429 2021-06-24 Eric Botcazou <ebotcazou@adacore.com>
4431 * dwarf2out.c (dwarf2out_assembly_start): Emit .file 0 marker here..
4432 (dwarf2out_finish): ...instead of here.
4434 2021-06-24 Eric Botcazou <ebotcazou@adacore.com>
4436 * configure.ac (--gdwarf-5 option): Use objdump instead of readelf.
4437 (working --gdwarf-4/--gdwarf-5 for all sources): Likewise.
4438 (--gdwarf-4 not refusing generated .debug_line): Adjust for Windows.
4439 * configure: Regenerate.
4441 2021-06-24 Richard Biener <rguenther@suse.de>
4443 * config/i386/sse.md (vec_addsubv4df3, vec_addsubv2df3,
4444 vec_addsubv8sf3, vec_addsubv4sf3): Merge into ...
4445 (vec_addsub<mode>3): ... using a new addsub_cst mode attribute.
4447 2021-06-24 Richard Biener <rguenther@suse.de>
4449 * config/i386/sse.md (avx_addsubv4df3): Rename to
4451 (avx_addsubv8sf3): Rename to vec_addsubv8sf3.
4452 (sse3_addsubv2df3): Rename to vec_addsubv2df3.
4453 (sse3_addsubv4sf3): Rename to vec_addsubv4sf3.
4454 * config/i386/i386-builtin.def: Adjust.
4455 * internal-fn.def (VEC_ADDSUB): New internal optab fn.
4456 * optabs.def (vec_addsub_optab): New optab.
4457 * tree-vect-slp-patterns.c (class addsub_pattern): New.
4458 (slp_patterns): Add addsub_pattern.
4459 * tree-vect-slp.c (vect_optimize_slp): Disable propagation
4460 across CFN_VEC_ADDSUB.
4461 * tree-vectorizer.h (vect_pattern::vect_pattern): Make
4463 * doc/md.texi (vec_addsub<mode>3): Document.
4465 2021-06-24 Jakub Jelinek <jakub@redhat.com>
4467 PR middle-end/101170
4468 * df-scan.c (df_ref_record): For paradoxical big-endian SUBREGs
4469 where regno + subreg_regno_offset wraps around use 0 as starting
4472 2021-06-24 Jakub Jelinek <jakub@redhat.com>
4474 PR middle-end/101172
4475 * stor-layout.c (finish_bitfield_representative): If nextf has
4476 error_mark_node type, set repr type to error_mark_node too.
4478 2021-06-24 Ilya Leoshkevich <iii@linux.ibm.com>
4480 * config/s390/s390.c (s390_function_profiler): Ignore labelno
4482 * config/s390/s390.h (NO_PROFILE_COUNTERS): Define.
4484 2021-06-24 Richard Biener <rguenther@suse.de>
4486 * tree-vect-slp.c (vect_optimize_slp): Do not propagate
4487 across operations that have different semantics on different
4490 2021-06-24 Jakub Jelinek <jakub@redhat.com>
4492 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): Document meaning for OpenMP.
4493 * gimplify.c (gimplify_scan_omp_clauses): For OpenMP map clauses
4494 with OMP_CLAUSE_MAP_IN_REDUCTION flag partially defer gimplification
4495 of non-decl OMP_CLAUSE_DECL. For OMP_CLAUSE_IN_REDUCTION on
4496 OMP_TARGET user outer_ctx instead of ctx for placeholders and
4497 initializer/combiner gimplification.
4498 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_MAP_IN_REDUCTION
4499 on target constructs.
4500 (lower_rec_input_clauses): Likewise.
4501 (lower_omp_target): Likewise.
4502 * omp-expand.c (expand_omp_target): Temporarily ignore nowait clause
4503 on target if in_reduction is present.
4505 2021-06-24 Kewen Lin <linkw@linux.ibm.com>
4507 * tree-predcom.c (class pcom_worker): New class.
4508 (release_chain): Renamed to...
4509 (pcom_worker::release_chain): ...this.
4510 (release_chains): Renamed to...
4511 (pcom_worker::release_chains): ...this.
4512 (aff_combination_dr_offset): Renamed to...
4513 (pcom_worker::aff_combination_dr_offset): ...this.
4514 (determine_offset): Renamed to...
4515 (pcom_worker::determine_offset): ...this.
4516 (class comp_ptrs): New class.
4517 (split_data_refs_to_components): Renamed to...
4518 (pcom_worker::split_data_refs_to_components): ...this,
4519 and update with class comp_ptrs.
4520 (suitable_component_p): Renamed to...
4521 (pcom_worker::suitable_component_p): ...this.
4522 (filter_suitable_components): Renamed to...
4523 (pcom_worker::filter_suitable_components): ...this.
4524 (valid_initializer_p): Renamed to...
4525 (pcom_worker::valid_initializer_p): ...this.
4526 (find_looparound_phi): Renamed to...
4527 (pcom_worker::find_looparound_phi): ...this.
4528 (add_looparound_copies): Renamed to...
4529 (pcom_worker::add_looparound_copies): ...this.
4530 (determine_roots_comp): Renamed to...
4531 (pcom_worker::determine_roots_comp): ...this.
4532 (determine_roots): Renamed to...
4533 (pcom_worker::determine_roots): ...this.
4534 (single_nonlooparound_use): Renamed to...
4535 (pcom_worker::single_nonlooparound_use): ...this.
4536 (remove_stmt): Renamed to...
4537 (pcom_worker::remove_stmt): ...this.
4538 (execute_pred_commoning_chain): Renamed to...
4539 (pcom_worker::execute_pred_commoning_chain): ...this.
4540 (execute_pred_commoning): Renamed to...
4541 (pcom_worker::execute_pred_commoning): ...this.
4542 (struct epcc_data): New member worker.
4543 (execute_pred_commoning_cbck): Call execute_pred_commoning
4544 with pcom_worker pointer.
4545 (find_use_stmt): Renamed to...
4546 (pcom_worker::find_use_stmt): ...this.
4547 (find_associative_operation_root): Renamed to...
4548 (pcom_worker::find_associative_operation_root): ...this.
4549 (find_common_use_stmt): Renamed to...
4550 (pcom_worker::find_common_use_stmt): ...this.
4551 (combinable_refs_p): Renamed to...
4552 (pcom_worker::combinable_refs_p): ...this.
4553 (reassociate_to_the_same_stmt): Renamed to...
4554 (pcom_worker::reassociate_to_the_same_stmt): ...this.
4555 (stmt_combining_refs): Renamed to...
4556 (pcom_worker::stmt_combining_refs): ...this.
4557 (combine_chains): Renamed to...
4558 (pcom_worker::combine_chains): ...this.
4559 (try_combine_chains): Renamed to...
4560 (pcom_worker::try_combine_chains): ...this.
4561 (prepare_initializers_chain): Renamed to...
4562 (pcom_worker::prepare_initializers_chain): ...this.
4563 (prepare_initializers): Renamed to...
4564 (pcom_worker::prepare_initializers): ...this.
4565 (prepare_finalizers_chain): Renamed to...
4566 (pcom_worker::prepare_finalizers_chain): ...this.
4567 (prepare_finalizers): Renamed to...
4568 (pcom_worker::prepare_finalizers): ...this.
4569 (tree_predictive_commoning_loop): Renamed to...
4570 (pcom_worker::tree_predictive_commoning_loop): ...this, adjust
4571 some calls and remove some cleanup code.
4572 (tree_predictive_commoning): Adjusted to use pcom_worker instance.
4573 (static variable looparound_phis): Remove.
4574 (static variable name_expansions): Remove.
4576 2021-06-24 Richard Biener <rguenther@suse.de>
4578 * tree-vect-slp.c (slpg_vertex): New struct.
4579 (vect_slp_build_vertices): Adjust.
4580 (vect_optimize_slp): Likewise. Maintain an outgoing permute
4581 and a materialized one.
4583 2021-06-24 Richard Biener <rguenther@suse.de>
4585 PR tree-optimization/101105
4586 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
4587 Only ignore steps when they are equal or scalar order is preserved.
4589 2021-06-24 liuhongt <hongtao.liu@intel.com>
4592 * config/i386/i386-expand.c (ix86_expand_vec_interleave):
4593 Adjust comments for ix86_expand_vecop_qihi2.
4594 (ix86_expand_vecmul_qihi): Renamed to ..
4595 (ix86_expand_vecop_qihi2): Adjust function prototype to
4596 support shift operation, add static to definition.
4597 (ix86_expand_vec_shift_qihi_constant): Add static to definition.
4598 (ix86_expand_vecop_qihi): Call ix86_expand_vecop_qihi2 and
4599 ix86_expand_vec_shift_qihi_constant.
4600 * config/i386/i386-protos.h (ix86_expand_vecmul_qihi): Deleted.
4601 (ix86_expand_vec_shift_qihi_constant): Deleted.
4602 * config/i386/sse.md (VI12_256_512_AVX512VL): New mode
4604 (mulv8qi3): Call ix86_expand_vecop_qihi directly, add
4605 condition TARGET_64BIT.
4606 (mul<mode>3): Ditto.
4607 (<insn><mode>3): Ditto.
4608 (vlshr<mode>3): Extend to support avx512 vlshr.
4609 (v<insn><mode>3): New expander for
4611 (v<insn>v8qi3): Ditto.
4612 (vashrv8hi3<mask_name>): Renamed to ..
4613 (vashr<mode>3): And extend to support V16QImode for avx512.
4614 (vashrv16qi3): Deleted.
4615 (vashrv2di3<mask_name>): Extend expander to support avx512
4618 2021-06-23 Dimitar Dimitrov <dimitar@dinux.eu>
4620 * doc/lto.texi (Design Overview): Update that slim objects are
4623 2021-06-23 Aaron Sawdey <acsawdey@linux.ibm.com>
4625 * config/rs6000/rs6000-cpus.def: Take OPTION_MASK_PCREL_OPT out
4626 of OTHER_POWER10_MASKS so it will not be enabled by default.
4628 2021-06-23 Richard Biener <rguenther@suse.de>
4629 Martin Jambor <mjambor@suse.cz>
4631 * tree-inline.c (setup_one_parameter): Set TREE_READONLY of the
4632 param replacement unconditionally. Adjust comment.
4634 2021-06-23 Andrew MacLeod <amacleod@redhat.com>
4636 * Makefile.in (OBJS): Add gimple-range-fold.o
4637 * gimple-range-fold.cc: New.
4638 * gimple-range-fold.h: New.
4639 * gimple-range-gori.cc (gimple_range_calc_op1): Move to here.
4640 (gimple_range_calc_op2): Ditto.
4641 * gimple-range-gori.h: Move prototypes to here.
4642 * gimple-range.cc: Adjust include files.
4643 (fur_source:fur_source): Relocate to gimple-range-fold.cc.
4644 (fur_source::get_operand): Ditto.
4645 (fur_source::get_phi_operand): Ditto.
4646 (fur_source::query_relation): Ditto.
4647 (fur_source::register_relation): Ditto.
4648 (class fur_edge): Ditto.
4649 (fur_edge::fur_edge): Ditto.
4650 (fur_edge::get_operand): Ditto.
4651 (fur_edge::get_phi_operand): Ditto.
4652 (fur_stmt::fur_stmt): Ditto.
4653 (fur_stmt::get_operand): Ditto.
4654 (fur_stmt::get_phi_operand): Ditto.
4655 (fur_stmt::query_relation): Ditto.
4656 (class fur_depend): Relocate to gimple-range-fold.h.
4657 (fur_depend::fur_depend): Relocate to gimple-range-fold.cc.
4658 (fur_depend::register_relation): Ditto.
4659 (fur_depend::register_relation): Ditto.
4660 (class fur_list): Ditto.
4661 (fur_list::fur_list): Ditto.
4662 (fur_list::get_operand): Ditto.
4663 (fur_list::get_phi_operand): Ditto.
4664 (fold_range): Ditto.
4665 (adjust_pointer_diff_expr): Ditto.
4666 (gimple_range_adjustment): Ditto.
4667 (gimple_range_base_of_assignment): Ditto.
4668 (gimple_range_operand1): Ditto.
4669 (gimple_range_operand2): Ditto.
4670 (gimple_range_calc_op1): Relocate to gimple-range-gori.cc.
4671 (gimple_range_calc_op2): Ditto.
4672 (fold_using_range::fold_stmt): Relocate to gimple-range-fold.cc.
4673 (fold_using_range::range_of_range_op): Ditto.
4674 (fold_using_range::range_of_address): Ditto.
4675 (fold_using_range::range_of_phi): Ditto.
4676 (fold_using_range::range_of_call): Ditto.
4677 (fold_using_range::range_of_builtin_ubsan_call): Ditto.
4678 (fold_using_range::range_of_builtin_call): Ditto.
4679 (fold_using_range::range_of_cond_expr): Ditto.
4680 (fold_using_range::range_of_ssa_name_with_loop_info): Ditto.
4681 (fold_using_range::relation_fold_and_or): Ditto.
4682 (fold_using_range::postfold_gcond_edges): Ditto.
4683 * gimple-range.h: Add gimple-range-fold.h to include files. Change
4684 GIMPLE_RANGE_STMT_H to GIMPLE_RANGE_H.
4685 (gimple_range_handler): Relocate to gimple-range-fold.h.
4686 (gimple_range_ssa_p): Ditto.
4687 (range_compatible_p): Ditto.
4688 (class fur_source): Ditto.
4689 (class fur_stmt): Ditto.
4690 (class fold_using_range): Ditto.
4691 (gimple_range_calc_op1): Relocate to gimple-range-gori.h
4692 (gimple_range_calc_op2): Ditto.
4694 2021-06-23 Andrew MacLeod <amacleod@redhat.com>
4696 PR tree-optimization/101148
4697 PR tree-optimization/101014
4698 * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust.
4699 (ranger_cache::~ranger_cache): Adjust.
4700 (ranger_cache::block_range): Check if propagation disallowed.
4701 (ranger_cache::propagate_cache): Disallow propagation if new value
4702 can't be stored properly.
4703 * gimple-range-cache.h (ranger_cache::m_propfail): New member.
4705 2021-06-23 Andrew MacLeod <amacleod@redhat.com>
4707 * gimple-range-cache.cc (class ssa_block_ranges): Adjust prototype.
4708 (sbr_vector::set_bb_range): Return true.
4709 (class sbr_sparse_bitmap): Adjust.
4710 (sbr_sparse_bitmap::set_bb_range): Return value.
4711 (block_range_cache::set_bb_range): Return value.
4712 (ranger_cache::propagate_cache): Use return value to print msg.
4713 * gimple-range-cache.h (class block_range_cache): Adjust.
4715 2021-06-23 Andrew MacLeod <amacleod@redhat.com>
4717 * gimple-range.cc (dump_bb): Use range_on_edge from the cache.
4719 2021-06-23 Jeff Law <jeffreyalaw@gmail.com>
4721 * config/h8300/logical.md (<code><mode>3<ccnz>): Use <cczn>
4722 so this pattern can be used for test/compare removal. Pass
4723 current insn to compute_logical_op_length and output_logical_op.
4724 * config/h8300/h8300.c (compute_logical_op_cc): Remove.
4725 (h8300_and_costs): Add argument to compute_logical_op_length.
4726 (output_logical_op): Add new argument. Use it to determine if the
4727 condition codes are used and adjust the output accordingly.
4728 (compute_logical_op_length): Add new argument and update length
4729 computations when condition codes are used.
4730 * config/h8300/h8300-protos.h (compute_logical_op_length): Update
4732 (output_logical_op): Likewise.
4734 2021-06-23 Uroš Bizjak <ubizjak@gmail.com>
4737 * config/i386/i386-expand.c (expand_vec_perm_pshufb):
4738 Handle 64bit modes for TARGET_XOP. Use indirect gen_* functions.
4739 * config/i386/mmx.md (mmx_ppermv64): New insn pattern.
4740 * config/i386/i386.md (unspec): Move UNSPEC_XOP_PERMUTE from ...
4741 * config/i386/sse.md (unspec): ... here.
4743 2021-06-23 Martin Liska <mliska@suse.cz>
4746 * optc-save-gen.awk: Put back arm_fp16_format to
4749 2021-06-23 Uroš Bizjak <ubizjak@gmail.com>
4752 * config/i386/i386.md (bsr_rex64): Add zero-flag setting RTX.
4755 (clz<mode>2): Update RTX pattern for additions.
4757 2021-06-23 Jakub Jelinek <jakub@redhat.com>
4759 PR middle-end/101167
4760 * omp-low.c (lower_omp_regimplify_p): Regimplify also PARM_DECLs
4761 and RESULT_DECLs that have DECL_HAS_VALUE_EXPR_P set.
4763 2021-06-22 Sergei Trofimovich <siarheit@google.com>
4765 * doc/rtl.texi: drop unbalanced parenthesis.
4767 2021-06-22 Richard Biener <rguenther@suse.de>
4769 PR middle-end/101156
4770 * gimplify.c (gimplify_expr): Remove premature incorrect
4773 2021-06-22 Jakub Jelinek <jakub@redhat.com>
4775 PR tree-optimization/101159
4776 * tree-vect-patterns.c (vect_recog_popcount_pattern): Fix some
4779 2021-06-22 Jakub Jelinek <jakub@redhat.com>
4781 PR middle-end/101160
4782 * function.c (assign_parms): For decl_result with TYPE_EMPTY_P type
4783 clear crtl->return_rtx instead of keeping it referencing a pseudo.
4785 2021-06-22 Jakub Jelinek <jakub@redhat.com>
4786 Andrew Pinski <apinski@marvell.com>
4788 PR tree-optimization/101162
4789 * fold-const.c (range_check_type): Handle OFFSET_TYPE like pointer
4792 2021-06-22 Andrew MacLeod <amacleod@redhat.com>
4794 * range-op.cc (range_relational_tests): New.
4795 (range_op_tests): Call range_relational_tests.
4797 2021-06-22 Andrew MacLeod <amacleod@redhat.com>
4799 * range-op.cc (operator_cast::lhs_op1_relation): New.
4800 (operator_identity::lhs_op1_relation): Mew.
4802 2021-06-22 Andrew MacLeod <amacleod@redhat.com>
4804 * range-op.cc (operator_minus::op1_op2_relation_effect): New.
4806 2021-06-22 Andrew MacLeod <amacleod@redhat.com>
4808 * range-op.cc (operator_plus::lhs_op1_relation): New.
4809 (operator_plus::lhs_op2_relation): New.
4811 2021-06-22 Andrew MacLeod <amacleod@redhat.com>
4813 * gimple-range-cache.cc (ranger_cache::ranger_cache): Create a
4814 relation_oracle if dominators exist.
4815 (ranger_cache::~ranger_cache): Dispose of oracle.
4816 (ranger_cache::dump_bb): Dump oracle.
4817 * gimple-range.cc (fur_source::fur_source): New.
4818 (fur_source::get_operand): Use mmeber query.
4819 (fur_source::get_phi_operand): Use member_query.
4820 (fur_source::query_relation): New.
4821 (fur_source::register_dependency): Delete.
4822 (fur_source::register_relation): New.
4823 (fur_edge::fur_edge): Adjust.
4824 (fur_edge::get_phi_operand): Fix comment.
4825 (fur_edge::query): Delete.
4826 (fur_stmt::fur_stmt): Adjust.
4827 (fur_stmt::query): Delete.
4828 (fur_depend::fur_depend): Adjust.
4829 (fur_depend::register_relation): New.
4830 (fur_depend::register_relation): New.
4831 (fur_list::fur_list): Adjust.
4832 (fur_list::get_operand): Use member query.
4833 (fold_using_range::range_of_range_op): Process and query relations.
4834 (fold_using_range::range_of_address): Adjust dependency call.
4835 (fold_using_range::range_of_phi): Ditto.
4836 (gimple_ranger::gimple_ranger): New. Use ranger_ache oracle.
4837 (fold_using_range::relation_fold_and_or): New.
4838 (fold_using_range::postfold_gcond_edges): New.
4839 * gimple-range.h (class gimple_ranger): Adjust.
4840 (class fur_source): Adjust members.
4841 (class fur_stmt): Ditto.
4842 (class fold_using_range): Ditto.
4844 2021-06-22 Andrew MacLeod <amacleod@redhat.com>
4846 * range-op.cc (range_operator::wi_fold): Apply relation effect.
4847 (range_operator::fold_range): Adjust and apply relation effect.
4848 (*::fold_range): Add relation parameters.
4849 (*::op1_range): Ditto.
4850 (*::op2_range): Ditto.
4851 (range_operator::lhs_op1_relation): New.
4852 (range_operator::lhs_op2_relation): New.
4853 (range_operator::op1_op2_relation): New.
4854 (range_operator::op1_op2_relation_effect): New.
4855 (relop_early_resolve): New.
4856 (operator_equal::op1_op2_relation): New.
4857 (operator_equal::fold_range): Call relop_early_resolve.
4858 (operator_not_equal::op1_op2_relation): New.
4859 (operator_not_equal::fold_range): Call relop_early_resolve.
4860 (operator_lt::op1_op2_relation): New.
4861 (operator_lt::fold_range): Call relop_early_resolve.
4862 (operator_le::op1_op2_relation): New.
4863 (operator_le::fold_range): Call relop_early_resolve.
4864 (operator_gt::op1_op2_relation): New.
4865 (operator_gt::fold_range): Call relop_early_resolve.
4866 (operator_ge::op1_op2_relation): New.
4867 (operator_ge::fold_range): Call relop_early_resolve.
4868 * range-op.h (class range_operator): Adjust parameters and methods.
4870 2021-06-22 Andrew MacLeod <amacleod@redhat.com>
4872 * Makefile.in (OBJS): Add value-relation.o.
4873 * gimple-range.h: Adjust include files.
4874 * tree-data-ref.c: Adjust include file order.
4875 * value-query.cc (range_query::get_value_range): Default to no oracle.
4876 (range_query::query_relation): New.
4877 (range_query::query_relation): New.
4878 * value-query.h (class range_query): Adjust.
4879 * value-relation.cc: New.
4880 * value-relation.h: New.
4882 2021-06-22 Richard Biener <rguenther@suse.de>
4884 PR tree-optimization/101151
4885 * tree-ssa-sink.c (statement_sink_location): Expand irreducible
4888 2021-06-22 Jojo R <rjiejie@linux.alibaba.com>
4890 * config/riscv/riscv.c (thead_c906_tune_info): New.
4891 (riscv_tune_info_table): Use new tune.
4893 2021-06-22 Richard Biener <rguenther@suse.de>
4895 PR tree-optimization/101158
4896 * tree-vect-slp.c (vect_build_slp_tree_1): Move same operand
4897 checking after checking for matching operation.
4899 2021-06-22 Richard Biener <rguenther@suse.de>
4901 PR tree-optimization/101159
4902 * tree-vect-patterns.c (vect_recog_popcount_pattern): Add
4903 missing NULL vectype check.
4905 2021-06-22 Richard Biener <rguenther@suse.de>
4907 PR tree-optimization/101154
4908 * tree-vect-slp.c (vect_build_slp_tree_2): Fix out-of-bound access.
4910 2021-06-22 Jakub Jelinek <jakub@redhat.com>
4913 * config/i386/i386-protos.h (ix86_last_zero_store_uid): Declare.
4914 * config/i386/i386-expand.c (ix86_last_zero_store_uid): New variable.
4915 * config/i386/i386.c (ix86_expand_prologue): Clear it.
4916 * config/i386/i386.md (peephole2s for 1/2/4 stores of const0_rtx):
4917 Remove "" from match_operand. Emit new insns using emit_move_insn and
4918 set ix86_last_zero_store_uid to INSN_UID of the last store.
4919 Add peephole2s for 1/2/4 stores of const0_rtx following previous
4922 2021-06-22 Martin Liska <mliska@suse.cz>
4924 * auto-profile.c (AUTO_PROFILE_VERSION): Bump as string format
4927 2021-06-22 Martin Liska <mliska@suse.cz>
4929 * gcov-io.h: Remove padding entries.
4931 2021-06-22 liuhongt <hongtao.liu@intel.com>
4933 PR tree-optimization/97770
4934 * tree-vect-patterns.c (vect_recog_popcount_pattern):
4936 (vect_recog_func vect_vect_recog_func_ptrs): Add new pattern.
4938 2021-06-22 liuhongt <hongtao.liu@intel.com>
4941 * config/i386/i386-builtin.def (BDESC): Adjust builtin name.
4942 * config/i386/sse.md (<avx512>_expand<mode>_mask): Rename to ..
4943 (expand<mode>_mask): this ..
4944 (*expand<mode>_mask): New pre_reload splitter to transform
4945 v{,p}expand* to vmov* when mask is zero, all ones, or has all
4946 ones in it's lower part, otherwise still generate
4949 2021-06-22 liuhongt <hongtao.liu@intel.com>
4952 * config/i386/i386-expand.c
4953 (ix86_expand_special_args_builtin): Keep constm1_operand only
4954 if it satisfies insn's operand predicate.
4956 2021-06-21 Jason Merrill <jason@redhat.com>
4959 * df-scan.c (df_ref_record): Check that regno < endregno.
4960 * function.c (assign_parms, expand_function_end): Do nothing with a
4961 TYPE_EMPTY_P result.
4963 2021-06-21 Richard Biener <rguenther@suse.de>
4965 PR tree-optimization/101120
4966 * tree-vect-data-refs.c (bump_vector_ptr): Fold the
4968 * tree-vect-slp.c (vect_transform_slp_perm_load): Add
4969 DR chain DCE capability.
4970 * tree-vectorizer.h (vect_transform_slp_perm_load): Adjust.
4971 * tree-vect-stmts.c (vectorizable_load): Remove unused
4972 loads in the DR chain for SLP.
4974 2021-06-21 Jakub Jelinek <jakub@redhat.com>
4976 PR inline-asm/100785
4977 * gimplify.c (gimplify_asm_expr): Don't diagnose errors if
4978 output or input operands were already error_mark_node.
4979 * cfgexpand.c (expand_asm_stmt): If errors are emitted,
4980 remove all inputs, outputs and clobbers from the asm and
4983 2021-06-21 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org>
4985 * config/arm/arm_neon.h (vceq_s8): Replace builtin with __a == __b.
4986 (vceq_s16): Likewise.
4987 (vceq_s32): Likewise.
4988 (vceq_u8): Likewise.
4989 (vceq_u16): Likewise.
4990 (vceq_u32): Likewise.
4991 (vceq_p8): Likewise.
4992 (vceqq_s8): Likewise.
4993 (vceqq_s16): Likewise.
4994 (vceqq_s32): Likewise.
4995 (vceqq_u8): Likewise.
4996 (vceqq_u16): Likewise.
4997 (vceqq_u32): Likewise.
4998 (vceqq_p8): Likewise.
4999 (vceq_f32): Gate __a == __b on __FAST_MATH__.
5000 (vceqq_f32): Likewise.
5001 (vceq_f16): Likewise.
5002 (vceqq_f16): Likewise.
5004 2021-06-21 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org>
5007 * config/arm/iterators.md (NEON_VACMP): Remove.
5008 * config/arm/neon.md (neon_vca<cmp_op><mode>): Use GLTE instead of GTGE
5010 (neon_vca<cmp_op><mode>_insn): Likewise.
5011 (neon_vca<cmp_op_unsp><mode>_insn_unspec): Use NEON_VAGLTE instead of
5014 2021-06-21 Richard Biener <rguenther@suse.de>
5016 PR tree-optimization/101121
5017 * tree-vect-slp.c (vect_build_slp_tree_2): To not fail fatally
5018 when we just lack a stmt with the desired op when doing permutation.
5019 (vect_build_slp_tree): When caching a failed SLP build attempt
5020 assert that at least one lane is marked as not matching.
5022 2021-06-21 liuhongt <hongtao.liu@intel.com>
5025 * config/i386/i386.md: (*anddi_1): Disparage slightly the mask
5026 register alternative.
5027 (*and<mode>_1): Ditto.
5029 (*andn<mode>_1): Ditto.
5030 (*<code><mode>_1): Ditto.
5031 (*<code>qi_1): Ditto.
5032 (*one_cmpl<mode>2_1): Ditto.
5033 (*one_cmplsi2_1_zext): Ditto.
5034 (*one_cmplqi2_1): Ditto.
5035 * config/i386/i386.c (x86_order_regs_for_local_alloc): Change
5036 the order of mask registers to be before general registers.
5038 2021-06-21 Roger Sayle <roger@nextmovesoftware.com>
5041 * config/i386/i386.md: New define_peephole2s to shrink writing
5042 1, 2 or 4 consecutive zeros to memory when optimizing for size.
5044 2021-06-18 Jeff Law <jeffreyalaw@gmail.com>
5046 * config/h8300/h8300.c (h8300_select_cc_mode): Handle SYMBOL_REF.
5047 * config/h8300/logical.md (<code><mode>3 logcial expander): Generate
5048 more efficient code when the source can be trivially simplified.
5050 2021-06-18 Andrew MacLeod <amacleod@redhat.com>
5052 * gimple-range-cache.cc (ranger_cache::range_of_def): Calculate
5053 a range if global is not available.
5054 (ranger_cache::entry_range): Fallback to range_of_def.
5055 * gimple-range-cache.h (range_of_def): Adjust prototype.
5057 2021-06-18 Andrew MacLeod <amacleod@redhat.com>
5059 PR tree-optimization/101014
5060 * gimple-range-cache.cc (ranger_cache::ranger_cache): Remove poor
5062 (ranger_cache::~ranger_cache): Ditto.
5063 (ranger_cache::enable_new_values): Delete.
5064 (ranger_cache::push_poor_value): Delete.
5065 (ranger_cache::range_of_def): Remove poor value processing.
5066 (ranger_cache::entry_range): Ditto.
5067 (ranger_cache::fill_block_cache): Ditto.
5068 * gimple-range-cache.h (class ranger_cache): Remove poor value members.
5069 * gimple-range.cc (gimple_ranger::range_of_expr): Remove call.
5070 * gimple-range.h (class gimple_ranger): Adjust.
5072 2021-06-18 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
5075 * common/config/arm/arm-common.c (arm_canon_arch_option_1): New function
5076 derived from arm_canon_arch.
5077 (arm_canon_arch_option): Call it.
5078 (arm_canon_arch_multilib_option): New function.
5079 * config/arm/arm-cpus.in (IGNORE_FOR_MULTILIB): New fgroup.
5080 * config/arm/arm.h (arm_canon_arch_multilib_option): New prototype.
5081 (CANON_ARCH_MULTILIB_SPEC_FUNCTION): New macro.
5082 (MULTILIB_ARCH_CANONICAL_SPECS): New macro.
5083 (DRIVER_SELF_SPECS): Add MULTILIB_ARCH_CANONICAL_SPECS.
5084 * config/arm/arm.opt (mlibarch): New option.
5085 * config/arm/t-rmprofile (MULTILIB_MATCHES): For armv8*-m, replace use
5086 of march on RHS with mlibarch.
5088 2021-06-18 Marcel Vollweiler <marcel@codesourcery.com>
5090 * config.in: Regenerate.
5091 * config/gcn/gcn.c (print_operand_address): Fix for global_load assembler
5093 * configure: Regenerate.
5094 * configure.ac: Fix for global_load assembler functions.
5096 2021-06-18 Richard Biener <rguenther@suse.de>
5098 PR tree-optimization/101112
5099 * tree-vect-slp.c (vect_slp_linearize_chain): Fix condition
5100 to lookup a pattern stmt def.
5102 2021-06-18 Jakub Jelinek <jakub@redhat.com>
5104 PR middle-end/101062
5105 * stor-layout.c (finish_bitfield_layout): Don't add bitfield
5106 representatives in QUAL_UNION_TYPE.
5108 2021-06-18 Andrew Pinski <apinski@marvell.com>
5110 * tree-ssa-phiopt.c (replace_phi_edge_with_variable):
5111 Add counting of how many times it is done.
5112 (factor_out_conditional_conversion): Likewise.
5113 (match_simplify_replacement): Likewise.
5114 (value_replacement): Likewise.
5115 (spaceship_replacement): Likewise.
5116 (cond_store_replacement): Likewise.
5117 (cond_if_else_store_replacement_1): Likewise.
5118 (hoist_adjacent_loads): Likewise.
5120 2021-06-18 Andrew Pinski <apinski@marvell.com>
5122 * tree-cfg.c (verify_gimple_assign_unary): Reject point and offset
5123 types on NEGATE_EXPR, ABS_EXPR, BIT_NOT_EXPR, PAREN_EXPR and CNONJ_EXPR.
5124 (verify_gimple_assign_binary): Reject point and offset types on
5125 MULT_EXPR, MULT_HIGHPART_EXPR, TRUNC_DIV_EXPR, CEIL_DIV_EXPR,
5126 FLOOR_DIV_EXPR, ROUND_DIV_EXPR, TRUNC_MOD_EXPR, CEIL_MOD_EXPR,
5127 FLOOR_MOD_EXPR, ROUND_MOD_EXPR, RDIV_EXPR, and EXACT_DIV_EXPR.
5129 2021-06-18 Michael Meissner <meissner@linux.ibm.com>
5131 * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support for ISA
5132 3.1 IEEE 128-bit floating point xsmaxcqp/xsmincqp instructions.
5133 * config/rs6000/rs6000.md (s<minmax><mode>3, IEEE128 iterator):
5136 2021-06-17 Aaron Sawdey <acsawdey@linux.ibm.com>
5138 * config/rs6000/genfusion.pl (gen_logical_addsubf): Add
5139 earlyclobber to alts 0/1.
5140 (gen_addadd): Add earlyclobber to alts 0/1.
5141 * config/rs6000/fusion.md: Regenerate file.
5143 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org>
5145 * cfgloopanal.c (get_loop_hot_path): Make path an auto_vec.
5147 2021-06-17 Andrew MacLeod <amacleod@redhat.com>
5149 * gimple-range-cache.cc: Comment cleanups.
5150 * gimple-range-gori.cc: Comment cleanups.
5151 * gimple-range.cc: Comment/spacing cleanups
5152 * value-range.h: Comment cleanups.
5154 2021-06-17 H.J. Lu <hjl.tools@gmail.com>
5157 * calls.c (expand_call): Replace PUSH_ARGS with
5158 targetm.calls.push_argument (0).
5159 (emit_library_call_value_1): Likewise.
5160 * defaults.h (PUSH_ARGS): Removed.
5161 (PUSH_ARGS_REVERSED): Replace PUSH_ARGS with
5162 targetm.calls.push_argument (0).
5163 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
5164 (emit_push_insn): Pass the number bytes to push to
5165 targetm.calls.push_argument and pass 0 if ARGS_ADDR is 0.
5166 * hooks.c (hook_bool_uint_true): New.
5167 * hooks.h (hook_bool_uint_true): Likewise.
5168 * rtlanal.c (nonzero_bits1): Replace PUSH_ARGS with
5169 targetm.calls.push_argument (0).
5170 * target.def (push_argument): Add a targetm.calls hook.
5171 * targhooks.c (default_push_argument): New.
5172 * targhooks.h (default_push_argument): Likewise.
5173 * config/bpf/bpf.h (PUSH_ARGS): Removed.
5174 * config/cr16/cr16.c (TARGET_PUSH_ARGUMENT): New.
5175 * config/cr16/cr16.h (PUSH_ARGS): Removed.
5176 * config/i386/i386.c (ix86_push_argument): New.
5177 (TARGET_PUSH_ARGUMENT): Likewise.
5178 * config/i386/i386.h (PUSH_ARGS): Removed.
5179 * config/m32c/m32c.c (TARGET_PUSH_ARGUMENT): New.
5180 * config/m32c/m32c.h (PUSH_ARGS): Removed.
5181 * config/nios2/nios2.h (PUSH_ARGS): Likewise.
5182 * config/pru/pru.h (PUSH_ARGS): Likewise.
5183 * doc/tm.texi.in: Remove PUSH_ARGS documentation. Add
5184 TARGET_PUSH_ARGUMENT hook.
5185 * doc/tm.texi: Regenerated.
5187 2021-06-17 Uroš Bizjak <ubizjak@gmail.com>
5190 * config/i386/i386-expand.c (expand_vector_set_var):
5191 Handle V2FS mode remapping. Pass TARGET_MMX_WITH_SSE to
5192 ix86_expand_vector_init_duplicate.
5193 (ix86_expand_vector_init_duplicate): Emit insv_1 for
5194 QImode for !TARGET_PARTIAL_REG_STALL.
5195 * config/i386/predicates.md (vec_setm_mmx_operand): New predicate.
5196 * config/i386/mmx.md (vec_setv2sf): Use vec_setm_mmx_operand
5197 as operand 2 predicate. Call ix86_expand_vector_set_var
5198 for non-constant index operand.
5199 (vec_setv2si): Ditto.
5200 (vec_setv4hi): Ditto.
5201 (vec_setv8qi): ditto.
5203 2021-06-17 Aldy Hernandez <aldyh@redhat.com>
5205 PR tree-optimization/100790
5206 * gimple-range.cc (range_of_builtin_call): Cleanup clz and ctz
5209 2021-06-17 Martin Liska <mliska@suse.cz>
5211 * doc/invoke.texi: Use consistently -O1 instead of -O.
5213 2021-06-17 Martin Liska <mliska@suse.cz>
5215 * gcov-io.h: Update documentation entry about string format.
5217 2021-06-17 Marius Hillenbrand <mhillen@linux.ibm.com>
5220 * config/s390/vecintrin.h (vec_doublee): Fix to use
5221 __builtin_s390_vflls.
5222 (vec_floate): Fix to use __builtin_s390_vflrd.
5224 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org>
5226 * dominance.c (get_dominated_to_depth): Return auto_vec<basic_block>.
5227 * dominance.h (get_dominated_to_depth): Likewise.
5228 (get_all_dominated_blocks): Likewise.
5229 * cfgcleanup.c (delete_unreachable_blocks): Adjust.
5230 * gcse.c (hoist_code): Likewise.
5231 * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
5232 * tree-parloops.c (oacc_entry_exit_ok): Likewise.
5233 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
5234 * tree-ssa-phiprop.c (pass_phiprop::execute): Likewise.
5236 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org>
5238 * dominance.c (get_dominated_by_region): Return auto_vec<basic_block>.
5239 * dominance.h (get_dominated_by_region): Likewise.
5240 * tree-cfg.c (gimple_duplicate_sese_region): Adjust.
5241 (gimple_duplicate_sese_tail): Likewise.
5242 (move_sese_region_to_fn): Likewise.
5244 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org>
5246 * dominance.c (get_dominated_by): Return auto_vec<basic_block>.
5247 * dominance.h (get_dominated_by): Likewise.
5248 * auto-profile.c (afdo_find_equiv_class): Adjust.
5249 * cfgloopmanip.c (duplicate_loop_to_header_edge): Likewise.
5250 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
5251 * tree-cfg.c (test_linear_chain): Likewise.
5252 (test_diamond): Likewise.
5254 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org>
5256 * cfgloop.h (get_loop_hot_path): Return auto_vec<basic_block>.
5257 * cfgloopanal.c (get_loop_hot_path): Likewise.
5258 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
5260 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org>
5262 * cgraph.c (cgraph_node::collect_callers): Return
5263 auto_vec<cgraph_edge *>.
5264 * cgraph.h (cgraph_node::collect_callers): Likewise.
5265 * ipa-cp.c (create_specialized_node): Adjust.
5266 (decide_about_value): Likewise.
5267 (decide_whether_version_node): Likewise.
5268 * ipa-sra.c (process_isra_node_results): Likewise.
5270 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org>
5272 * vec.h (vl_ptr>::using_auto_storage): Handle null m_vec.
5273 (auto_vec<T, 0>::auto_vec): Define move constructor, and delete copy
5275 (auto_vec<T, 0>::operator=): Define move assignment and delete copy
5278 2021-06-17 Aldy Hernandez <aldyh@redhat.com>
5280 * gimple-range.cc (debug_seed_ranger): New.
5282 (debug_ranger): New.
5284 2021-06-17 Richard Biener <rguenther@suse.de>
5286 PR tree-optimization/54400
5287 * tree-vectorizer.h (enum slp_instance_kind): Add
5288 slp_inst_kind_bb_reduc.
5289 (reduction_fn_for_scalar_code): Declare.
5290 * tree-vect-data-refs.c (vect_slp_analyze_instance_dependence):
5291 Check SLP_INSTANCE_KIND instead of looking at the
5293 (vect_slp_analyze_instance_alignment): Likewise.
5294 * tree-vect-loop.c (reduction_fn_for_scalar_code): Export.
5295 * tree-vect-slp.c (vect_slp_linearize_chain): Split out
5296 chain linearization from vect_build_slp_tree_2 and generalize
5297 for the use of BB reduction vectorization.
5298 (vect_build_slp_tree_2): Adjust accordingly.
5299 (vect_optimize_slp): Elide permutes at the root of BB reduction
5301 (vectorizable_bb_reduc_epilogue): New function.
5302 (vect_slp_prune_covered_roots): Likewise.
5303 (vect_slp_analyze_operations): Use them.
5304 (vect_slp_check_for_constructors): Recognize associatable
5305 chains for BB reduction vectorization.
5306 (vectorize_slp_instance_root_stmt): Generate code for the
5307 BB reduction epilogue.
5309 2021-06-17 Andrew MacLeod <amacleod@redhat.com>
5311 * gimple-range-gori.cc (gori_compute::has_edge_range_p): Check with
5313 (gori_compute::may_recompute_p): New.
5314 (gori_compute::outgoing_edge_range_p): Perform recomputations.
5315 * gimple-range-gori.h (class gori_compute): Add prototype.
5317 2021-06-17 Andrew MacLeod <amacleod@redhat.com>
5319 * gimple-range-cache.cc (ranger_cache::range_on_edge): Always return
5320 true when a range can be calculated.
5321 * gimple-range.cc (gimple_ranger::dump_bb): Check has_edge_range_p.
5323 2021-06-16 Martin Sebor <msebor@redhat.com>
5325 * doc/invoke.texi (-Wmismatched-dealloc, -Wmismatched-new-delete):
5326 Correct documented defaults.
5328 2021-06-16 Andrew MacLeod <amacleod@redhat.com>
5330 * gimple-range-cache.cc (ranger_cache::ranger_cache): Initialize
5331 m_new_value_p directly.
5333 2021-06-16 Uroš Bizjak <ubizjak@gmail.com>
5336 * config/i386/i386-expand.c (expand_vec_perm_2perm_pblendv):
5337 Handle 64bit modes for TARGET_SSE4_1.
5338 (expand_vec_perm_pshufb2): Handle 64bit modes for TARGET_SSSE3.
5339 (expand_vec_perm_even_odd_pack): Handle V4HI mode.
5340 (expand_vec_perm_even_odd_1) <case E_V4HImode>: Expand via
5341 expand_vec_perm_pshufb2 for TARGET_SSSE3 and via
5342 expand_vec_perm_even_odd_pack for TARGET_SSE4_1.
5343 * config/i386/mmx.md (mmx_packusdw): New insn pattern.
5345 2021-06-16 Jonathan Wright <jonathan.wright@arm.com>
5347 * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn<mode>):
5348 Change to an expander that emits the correct instruction
5349 depending on endianness.
5350 (aarch64_<sur><addsub>hn<mode>_insn_le): Define.
5351 (aarch64_<sur><addsub>hn<mode>_insn_be): Define.
5353 2021-06-16 Jonathan Wright <jonathan.wright@arm.com>
5355 * config/aarch64/aarch64-simd-builtins.def: Split generator
5356 for aarch64_<su>qmovn builtins into scalar and vector
5358 * config/aarch64/aarch64-simd.md (aarch64_<su>qmovn<mode>_insn_le):
5360 (aarch64_<su>qmovn<mode>_insn_be): Define.
5361 (aarch64_<su>qmovn<mode>): Split into scalar and vector
5362 variants. Change vector variant to an expander that emits the
5363 correct instruction depending on endianness.
5365 2021-06-16 Jonathan Wright <jonathan.wright@arm.com>
5367 * config/aarch64/aarch64-simd-builtins.def: Split generator
5368 for aarch64_sqmovun builtins into scalar and vector variants.
5369 * config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode>):
5370 Split into scalar and vector variants. Change vector variant
5371 to an expander that emits the correct instruction depending
5373 (aarch64_sqmovun<mode>_insn_le): Define.
5374 (aarch64_sqmovun<mode>_insn_be): Define.
5376 2021-06-16 Jonathan Wright <jonathan.wright@arm.com>
5378 * config/aarch64/aarch64-simd.md (aarch64_xtn<mode>_insn_le):
5379 Define - modeling zero-high-half semantics.
5380 (aarch64_xtn<mode>): Change to an expander that emits the
5381 appropriate instruction depending on endianness.
5382 (aarch64_xtn<mode>_insn_be): Define - modeling zero-high-half
5384 (aarch64_xtn2<mode>_le): Rename to...
5385 (aarch64_xtn2<mode>_insn_le): This.
5386 (aarch64_xtn2<mode>_be): Rename to...
5387 (aarch64_xtn2<mode>_insn_be): This.
5388 (vec_pack_trunc_<mode>): Emit truncation instruction instead
5390 * config/aarch64/iterators.md (Vnarrowd): Add Vnarrowd mode
5393 2021-06-16 Martin Jambor <mjambor@suse.cz>
5395 PR tree-optimization/100453
5396 * tree-sra.c (create_access): Disqualify any const candidates
5397 which are written to.
5398 (sra_modify_expr): Do not store sub-replacements back to a const base.
5399 (handle_unscalarized_data_in_subtree): Likewise.
5400 (sra_modify_assign): Likewise. Earlier, use TREE_READONLy test
5401 instead of constant_decl_p.
5403 2021-06-16 Jakub Jelinek <jakub@redhat.com>
5405 PR middle-end/101062
5406 * stor-layout.c (finish_bitfield_representative): For fields in unions
5407 assume nextf is always NULL.
5408 (finish_bitfield_layout): Compute bit field representatives also in
5409 unions, but handle it as if each bitfield was the only field in the
5412 2021-06-16 Richard Biener <rguenther@suse.de>
5414 PR tree-optimization/101088
5415 * tree-ssa-loop-im.c (sm_seq_valid_bb): Only look for
5416 supported refs on edges. Do not assert same ref but
5417 different kind stores are unsuported but mark them so.
5418 (hoist_memory_references): Only look for supported refs
5421 2021-06-16 Roger Sayle <roger@nextmovesoftware.com>
5423 PR rtl-optimization/46235
5424 * config/i386/i386.md: New define_split for bt followed by cmov.
5425 (*bt<mode>_setcqi): New define_insn_and_split for bt followed by setc.
5426 (*bt<mode>_setncqi): New define_insn_and_split for bt then setnc.
5427 (*bt<mode>_setnc<mode>): New define_insn_and_split for bt followed
5428 by setnc with zero extension.
5430 2021-06-16 Richard Biener <rguenther@suse.de>
5432 PR tree-optimization/101083
5433 * tree-vect-slp.c (vect_slp_build_two_operator_nodes): Get
5434 vectype as argument.
5435 (vect_build_slp_tree_2): Adjust.
5437 2021-06-15 Martin Sebor <msebor@redhat.com>
5439 PR middle-end/100876
5440 * builtins.c: (gimple_call_return_array): Account for size_t
5441 mangling as either unsigned int or unsigned long
5443 2021-06-15 Jeff Law <jeffreyalaw@gmail.com>
5445 * compare-elim.c (try_eliminate_compare): Run DCE to clean things
5446 up before eliminating comparisons.
5448 2021-06-15 Aldy Hernandez <aldyh@redhat.com>
5450 * range-op.cc (operator_bitwise_or::wi_fold): Make sure
5451 nonzero|X is nonzero.
5452 (range_op_bitwise_and_tests): Add tests for above.
5454 2021-06-15 Carl Love <cel@us.ibm.com>
5457 * config/rs6000/rs6000-builtin.def (VCMPEQUT): Fix the ICODE for the
5459 (VRLQ, VSLQ, VSRQ, VSRAQ): Remove unused BU_P10_OVERLOAD_2
5462 2021-06-15 Tobias Burnus <tobias@codesourcery.com>
5465 * gimplify.c (enum gimplify_defaultmap_kind): Add GDMK_SCALAR_TARGET.
5466 (struct gimplify_omp_ctx): Extend defaultmap array by one.
5467 (new_omp_context): Init defaultmap[GDMK_SCALAR_TARGET].
5468 (omp_notice_variable): Update type classification for Fortran.
5469 (gimplify_scan_omp_clauses): Update calls for new argument; handle
5470 GDMK_SCALAR_TARGET; for Fortran, GDMK_POINTER avoid GOVD_MAP_0LEN_ARRAY.
5471 * langhooks-def.h (lhd_omp_scalar_p): Add 'ptr_ok' argument.
5472 * langhooks.c (lhd_omp_scalar_p): Likewise.
5473 (LANG_HOOKS_OMP_ALLOCATABLE_P, LANG_HOOKS_OMP_SCALAR_TARGET_P): New.
5474 (LANG_HOOKS_DECLS): Add them.
5475 * langhooks.h (struct lang_hooks_for_decls): Add new hooks, update
5476 omp_scalar_p pointer type to include the new bool argument.
5478 2021-06-15 David Malcolm <dmalcolm@redhat.com>
5481 (Special Functions for Debugging the Analyzer): Add
5482 __analyzer_dump_capacity.
5484 2021-06-15 Jakub Jelinek <jakub@redhat.com>
5487 * expr.c (expand_expr_real_2) <case VEC_PACK_FIX_TRUNC_EXPR,
5488 case VEC_PACK_TRUNC_EXPR>: Clear subtarget when changing mode.
5490 2021-06-15 Richard Biener <rguenther@suse.de>
5492 * cfgloopanal.c (mark_irreducible_loops): Use a dominance
5493 check to identify loop latches.
5494 * cfgloop.c (verify_loop_structure): Likewise.
5495 * loop-init.c (apply_loop_flags): Allow marked irreducible
5496 regions even with multiple latches.
5497 * predict.c (rebuild_frequencies): Simplify.
5499 2021-06-15 Richard Biener <rguenther@suse.de>
5501 * tree-ssa-threadupdate.c
5502 (jump_thread_path_registry::mark_threaded_blocks): Assert we
5503 have marked irreducible regions.
5505 2021-06-14 Martin Sebor <msebor@redhat.com>
5508 * builtins.c (gimple_call_return_array): Check for attribute fn spec.
5509 Handle calls to placement new.
5510 (ndecl_dealloc_argno): Avoid placement delete.
5512 2021-06-14 Peter Bergner <bergner@linux.ibm.com>
5515 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Use
5516 create_tmp_reg_or_ssa_name().
5518 2021-06-14 Andrew MacLeod <amacleod@redhat.com>
5520 * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust.
5521 (ranger_cache::enable_new_values): Set to specified value and
5522 return the old value.
5523 (ranger_cache::disable_new_values): Delete.
5524 (ranger_cache::fill_block_cache): Disable non 1st order derived
5526 * gimple-range-cache.h (ranger_cache): Adjust prototypes.
5527 * gimple-range.cc (gimple_ranger::range_of_expr): Adjust.
5529 2021-06-14 Uroš Bizjak <ubizjak@gmail.com>
5532 * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const):
5533 Return true early when testing with V2HImode.
5534 * config/i386/mmx.md (*punpckwd): Split to sse2_pshuflw_1.
5536 2021-06-14 Christophe Lyon <christophe.lyon@linaro.org>
5538 * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): New pattern.
5539 (mve_vec_unpack<US>_hi_<mode>): New pattern.
5540 (@mve_vec_pack_trunc_lo_<mode>): New pattern.
5541 (mve_vmovntq_<supf><mode>): Prefix with '@'.
5542 * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move to
5544 (vec_unpack<US>_lo_<mode>): Likewise.
5545 (vec_pack_trunc_<mode>): Rename to
5546 neon_quad_vec_pack_trunc_<mode>.
5547 * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): New
5549 (vec_unpack<US>_lo_<mode>): New.
5550 (vec_pack_trunc_<mode>): New.
5552 2021-06-14 Richard Biener <rguenther@suse.de>
5554 PR tree-optimization/100934
5555 * tree-ssa-dom.c (pass_dominator::execute): Properly
5556 mark irreducible regions.
5558 2021-06-14 Martin Liska <mliska@suse.cz>
5560 * doc/invoke.texi: Put r{...} on the same line as @item.
5562 2021-06-14 Martin Liska <mliska@suse.cz>
5564 * doc/invoke.texi: Add missing newline.
5566 2021-06-14 Martin Liska <mliska@suse.cz>
5568 * doc/invoke.texi: Remove '+' charasters.
5570 2021-06-14 Claudiu Zissulescu <claziss@synopsys.com>
5572 * config.gcc (arc): Add support for with_cpu option.
5573 * config/arc/arc.h (OPTION_DEFAULT_SPECS): Add fpu.
5575 2021-06-14 Richard Biener <rguenther@suse.de>
5577 PR tree-optimization/101031
5578 * tree-ssa-strlen.c (maybe_invalidate): Increment max_size
5579 instead of size when accounting for a possibly string
5582 2021-06-14 Martin Liska <mliska@suse.cz>
5584 * gimple-ssa-evrp.c (pointer_equiv_analyzer::~pointer_equiv_analyzer): Use delete[].
5586 2021-06-14 Aldy Hernandez <aldyh@redhat.com>
5588 * value-query.cc (gimple_range_global): Call get_range_global
5589 if called after inlining.
5591 2021-06-13 Uroš Bizjak <ubizjak@gmail.com>
5594 * config/i386/i386-expand.c (expand_vec_perm_pshufb):
5595 Emit constant permutation insn directly from here.
5597 2021-06-13 Trevor Saunders <tbsaunde@tbsaunde.org>
5599 * attribs.c (find_attribute_namespace): Iterate over vec<> with
5601 * auto-profile.c (afdo_find_equiv_class): Likewise.
5602 * gcc.c (do_specs_vec): Likewise.
5603 (do_spec_1): Likewise.
5604 (driver::set_up_specs): Likewise.
5605 * gimple-loop-jam.c (any_access_function_variant_p): Likewise.
5606 * gimple-ssa-store-merging.c (compatible_load_p): Likewise.
5607 (imm_store_chain_info::try_coalesce_bswap): Likewise.
5608 (imm_store_chain_info::coalesce_immediate_stores): Likewise.
5609 (get_location_for_stmts): Likewise.
5610 * graphite-poly.c (print_iteration_domains): Likewise.
5611 (free_poly_bb): Likewise.
5612 (remove_gbbs_in_scop): Likewise.
5613 (free_scop): Likewise.
5614 (dump_gbb_cases): Likewise.
5615 (dump_gbb_conditions): Likewise.
5616 (print_pdrs): Likewise.
5617 (print_scop): Likewise.
5618 * ifcvt.c (cond_move_process_if_block): Likewise.
5619 * lower-subreg.c (decompose_multiword_subregs): Likewise.
5620 * regcprop.c (pass_cprop_hardreg::execute): Likewise.
5621 * sanopt.c (sanitize_rewrite_addressable_params): Likewise.
5622 * sel-sched-dump.c (dump_insn_vector): Likewise.
5623 * store-motion.c (store_ops_ok): Likewise.
5624 (store_killed_in_insn): Likewise.
5625 * timevar.c (timer::named_items::print): Likewise.
5626 * tree-cfgcleanup.c (cleanup_control_flow_pre): Likewise.
5627 (cleanup_tree_cfg_noloop): Likewise.
5628 * tree-data-ref.c (dump_data_references): Likewise.
5629 (print_dir_vectors): Likewise.
5630 (print_dist_vectors): Likewise.
5631 (dump_data_dependence_relations): Likewise.
5632 (dump_dist_dir_vectors): Likewise.
5633 (dump_ddrs): Likewise.
5634 (create_runtime_alias_checks): Likewise.
5635 (free_subscripts): Likewise.
5636 (save_dist_v): Likewise.
5637 (save_dir_v): Likewise.
5638 (invariant_access_functions): Likewise.
5639 (same_access_functions): Likewise.
5640 (access_functions_are_affine_or_constant_p): Likewise.
5641 (find_data_references_in_stmt): Likewise.
5642 (graphite_find_data_references_in_stmt): Likewise.
5643 (free_dependence_relations): Likewise.
5644 (free_data_refs): Likewise.
5645 * tree-inline.c (copy_debug_stmts): Likewise.
5646 * tree-into-ssa.c (dump_currdefs): Likewise.
5647 (rewrite_update_phi_arguments): Likewise.
5648 * tree-ssa-propagate.c (clean_up_loop_closed_phi): Likewise.
5649 * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
5651 (vect_slp_analyze_node_dependences): Likewise.
5652 (vect_slp_analyze_instance_dependence): Likewise.
5653 (vect_record_base_alignments): Likewise.
5654 (vect_get_peeling_costs_all_drs): Likewise.
5655 (vect_peeling_supportable): Likewise.
5656 * tree-vectorizer.c (vec_info::~vec_info): Likewise.
5657 (vec_info::free_stmt_vec_infos): Likewise.
5659 2021-06-13 Jeff Law <jeffreyalaw@gmail.com>
5661 * config/h8300/logical.md (<code>qi3_1<cczn>): New pattern.
5662 (andqi3_1<cczn>): Removed.
5663 (<ors>qi3_1): Do not split for IOR/XOR a single bit.
5664 (H8/SX bit logicals): Split out from other patterns.
5665 * config/h8300/multiply.md (mulqihi3_const<cczn>): Renamed from
5666 mulqihi3_const_clobber_flags.
5667 (mulqihi3<cczn>, mulhisi3_const<cczn>, mulhisi3<cczn>): Similarly
5669 2021-06-13 H.J. Lu <hjl.tools@gmail.com>
5672 * config/i386/i386.c (ix86_expand_prologue): Set red_zone_used
5673 to true if red zone is used.
5674 (ix86_output_indirect_jmp): Replace ix86_red_zone_size with
5676 * config/i386/i386.h (machine_function): Add red_zone_used.
5677 (ix86_red_zone_size): Removed.
5678 (ix86_red_zone_used): New.
5679 * config/i386/i386.md (peephole2 patterns): Replace
5680 ix86_red_zone_size with ix86_red_zone_used.
5682 2021-06-12 Jason Merrill <jason@redhat.com>
5684 * doc/extend.texi (unused variable attribute): Applies to
5685 structure fields as well.
5687 2021-06-12 Eugene Rozenfeld <erozen@microsoft.com>
5689 * auto-profile.c (read_profile): fix a typo in an error string
5691 2021-06-11 Thomas Schwinge <thomas@codesourcery.com>
5693 * tree-pretty-print.h (dump_omp_clauses): Add 'bool = true'
5695 * tree-pretty-print.c (dump_omp_clauses): Update.
5696 (dump_generic_node) <OMP_CLAUSE>: Use it.
5698 2021-06-11 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
5701 * config/arm/arm_mve.h (__arm_vld1q): Change __ARM_mve_coerce(p0,
5702 int8_t const *) to __ARM_mve_coerce1(p0, int8_t *) in the argument for
5703 the polymorphic variants matching code.
5704 (__arm_vld1q_z): Likewise.
5705 (__arm_vld2q): Likewise.
5706 (__arm_vld4q): Likewise.
5707 (__arm_vldrbq_gather_offset): Likewise.
5708 (__arm_vldrbq_gather_offset_z): Likewise.
5710 2021-06-11 Roger Sayle <roger@nextmovesoftware.com>
5712 PR tree-optimization/96392
5713 * fold-const.h (tree_expr_maybe_real_minus_zero_p): Fix prototype.
5715 2021-06-11 Roger Sayle <roger@nextmovesoftware.com>
5717 PR tree-optimization/96392
5718 * fold-const.c (fold_real_zero_addition_p): Take both arguments
5719 of the addition or subtraction, not just the zero. Use this
5720 other argument in tests for signaling NaNs and signed zeros.
5721 (tree_expr_maybe_real_minus_zero_p): New predicate.
5722 * fold-const.h (fold_real_zero_addition_p): Update prototype.
5723 (tree_expr_maybe_real_minus_zero_p): New function prototype.
5724 * match.pd: Update calls to fold_real_zero_addition_p.
5725 Replace HONOR_NANS with tree_expr_maybe_nan_p.
5726 Replace HONOR_SIGNED_ZEROS with tree_expr_maybe_real_minus_zero_p.
5727 Replace HONOR_SNANS with tree_expr_maybe_signaling_nan_p.
5728 * tree-ssa-reassoc.c (eliminate_using_constants): Update
5729 call to fold_real_zero_addition_p.
5731 2021-06-11 Richard Biener <rguenther@suse.de>
5733 PR tree-optimization/101025
5734 * tree-ssa-loop-im.c (sm_seq_valid_bb): Make sure to process
5735 all refs that require dependence checking.
5737 2021-06-11 Richard Biener <rguenther@suse.de>
5739 PR tree-optimization/101028
5740 * tree-vect-slp.c (vect_build_slp_tree_2): When SLP
5741 reassoc discovery fails fatally, mark appropriate lanes
5744 2021-06-11 Richard Biener <rguenther@suse.de>
5746 PR tree-optimization/101026
5747 * tree-vect-slp.c (vect_build_slp_tree_2): Make sure we
5748 have a representative for the associated chain nodes.
5750 2021-06-11 Jakub Jelinek <jakub@redhat.com>
5752 PR rtl-optimization/101008
5753 * simplify-rtx.c (relational_result): New function.
5754 (simplify_logical_relational_operation,
5755 simplify_relational_operation): Use it.
5757 2021-06-11 Jakub Jelinek <jakub@redhat.com>
5760 * config/i386/sse.md (*vec_concat<mode>_0_1): Require TARGET_SSE2.
5762 2021-06-11 Uroš Bizjak <ubizjak@gmail.com>
5765 * config/i386/i386-expand.c (expand_vec_perm_pshufb): Return
5766 false if the permutation can be implemented with constant
5767 permutation instruction in wider mode.
5768 (canonicalize_vector_int_perm): Move above expand_vec_perm_pshufb.
5769 Handle V8QImode and V4HImode.
5771 2021-06-11 Martin Liska <mliska@suse.cz>
5773 PR gcov-profile/100788
5774 * common.opt: Add new option.
5775 * coverage.c (coverage_begin_function): Emit warning instead on
5776 the internal compiler error.
5777 * doc/invoke.texi: Document the option.
5778 * toplev.c (process_options): Enable it by default.
5780 2021-06-11 Richard Biener <rguenther@suse.de>
5782 PR middle-end/101009
5783 * tree-data-ref.c (build_classic_dist_vector_1): Make sure
5784 to set *init_b to true when we encounter a constant equal
5786 (compute_affine_dependence): Also dump the actual DR_REF.
5788 2021-06-10 Aldy Hernandez <aldyh@redhat.com>
5790 PR tree-optimization/100984
5791 * gimple-ssa-evrp.c (ssa_equiv_stack): Use auto_vec for
5793 (ssa_equiv_stack::~ssa_equiv_stack): Remove.
5795 2021-06-11 Kewen Lin <linkw@linux.ibm.com>
5797 * config/rs6000/rs6000.md
5798 (floatsi<SFDF:mode>2_lfiwax_<QHI:mode>_mem_zext): New
5799 define_insn_and_split.
5801 2021-06-11 Richard Biener <rguenther@suse.de>
5803 * tree-vect-slp.c (vect_build_slp_tree_2): Use stablesort
5804 to sort operands of the associative chain.
5806 2021-06-11 Richard Biener <rguenther@suse.de>
5808 * system.h (gcc_stablesort_r): Declare.
5809 * sort.cc (gcc_sort_r): Support stable sort.
5810 (gcc_stablesort_r): Define.
5811 * vec.h (vec<>::stablesort): Add.
5813 2021-06-10 Uroš Bizjak <ubizjak@gmail.com>
5816 * config/i386/i386-expand.c (ix86_split_mmx_punpck):
5817 Handle V2SF mode. Emit SHUFPS to fixup unpack-high for V2SF mode.
5818 (expand_vec_perm_blend): Handle 64bit modes for TARGET_SSE4_1.
5819 (expand_vec_perm_pshufb): Handle 64bit modes for TARGET_SSSE3.
5820 (expand_vec_perm_pblendv): Handle 64bit modes for TARGET_SSE4_1.
5821 (expand_vec_perm_interleave2): Handle 64bit modes.
5822 (expand_vec_perm_even_odd_pack): Handle V8QI mode.
5823 (expand_vec_perm_even_odd_1): Ditto.
5824 (ix86_vectorize_vec_perm_const): Ditto.
5825 * config/i386/i386.md (UNSPEC_PSHUFB): Move from ...
5826 * config/i386/sse.md: ... here.
5827 * config/i386/mmx.md (*vec_interleave_lowv2sf):
5828 New insn_and_split pattern.
5829 (*vec_interleave_highv2sf): Ditto.
5830 (mmx_pshufbv8qi3): New insn pattern.
5831 (*mmx_pblendw): Ditto.
5833 2021-06-10 Peter Bergner <bergner@linux.ibm.com>
5835 * config/rs6000/rs6000-builtin.def (build_pair): New built-in.
5836 (build_acc): Likewise.
5837 * config/rs6000/rs6000-call.c (mma_expand_builtin): Swap assemble
5838 source operands in little-endian mode.
5839 (rs6000_gimple_fold_mma_builtin): Handle VSX_BUILTIN_BUILD_PAIR.
5840 (mma_init_builtins): Likewise.
5841 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Handle endianness
5842 ordering for the MMA assemble and build source operands.
5843 * doc/extend.texi (__builtin_vsx_build_acc, __builtin_mma_build_pair):
5845 (__builtin_mma_assemble_acc, __builtin_mma_assemble_pair): Remove
5848 2021-06-10 Jeff Law <jeffreyalaw@gmail.com>
5850 * config/h8300/h8300.c (select_cc_mode): Handle MEM. Use
5852 * config/h8300/extensions.md: Replace _clobber_flags patterns
5855 2021-06-10 Robin Dapp <rdapp@linux.ibm.com>
5857 * config/s390/vector.md (vcond_mask_<mode><mode>): Change to
5858 (vcond_mask_<mode><tointvec>): this.
5860 2021-06-10 Andrew Stubbs <ams@codesourcery.com>
5861 Thomas Schwinge <thomas@codesourcery.com>
5863 * omp-builtins.def (BUILT_IN_GOACC_ENTER_EXIT_DATA): Split into...
5864 (BUILT_IN_GOACC_ENTER_DATA, BUILT_IN_GOACC_EXIT_DATA): ... these.
5865 * gimple.h (enum gf_mask): Split
5866 'GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA' into
5867 'GF_OMP_TARGET_KIND_OACC_ENTER_DATA' and
5868 'GF_OMP_TARGET_KIND_OACC_EXIT_DATA'.
5869 (is_gimple_omp_oacc): Update.
5870 * gimple-pretty-print.c (dump_gimple_omp_target): Likewise.
5871 * gimplify.c (gimplify_omp_target_update): Likewise.
5872 * omp-expand.c (expand_omp_target, build_omp_regions_1)
5873 (omp_make_gimple_edges): Likewise.
5874 * omp-low.c (check_omp_nesting_restrictions, lower_omp_target):
5877 2021-06-10 Aldy Hernandez <aldyh@redhat.com>
5879 * value-query.cc (value_query::value_on_edge): Rename name to
5881 (range_query::range_on_edge): Same.
5882 (range_query::value_of_expr): Same.
5883 (range_query::value_on_edge): Same.
5884 * value-query.h (class value_query): Same.
5885 (class range_query): Same.
5887 2021-06-10 Richard Biener <rguenther@suse.de>
5889 PR tree-optimization/101003
5890 * tree-vect-slp.c (vect_build_slp_tree_2): Appropriately
5891 use the pattern stmt defs when linearizing a chain.
5893 2021-06-10 Jakub Jelinek <jakub@redhat.com>
5896 * ifcvt.c (noce_get_alt_condition, noce_try_abs): Use
5897 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
5899 2021-06-10 Clement Chigot <clement.chigot@atos.net>
5901 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add Power10 directive.
5902 * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise.
5904 2021-06-09 Andrew Pinski <apinski@marvell.com>
5906 PR tree-optimization/100925
5907 * match.pd (a ? CST1 : CST2): Limit transformations
5908 that would produce a negative to integeral types only.
5909 Change !POINTER_TYPE_P to INTEGRAL_TYPE_P also.
5911 2021-06-09 Jeff Law <jeffreyalaw@gmail.com>
5914 2021-06-09 Jeff Law <jeffreyalaw@gmail.com>
5916 * doc/tm.texi: Correctly update.
5918 2021-06-09 Jeff Law <jeffreyalaw@gmail.com>
5920 * doc/tm.texi: Correctly update.
5922 2021-06-09 H.J. Lu <hjl.tools@gmail.com>
5925 * doc/tm.texi.in (Trampolines): Add a missing blank line.
5927 2021-06-09 Paul Eggert <eggert@cs.ucla.edu>
5930 * doc/invoke.texi (Code Gen Options); Document that -fno-trampolines
5931 and -ftrampolines work only with Ada.
5932 * doc/tm.texi.in (Trampolines): Likewise.
5933 * doc/tm.texi: Regenerated.
5935 2021-06-09 Carl Love <cel@us.ibm.com>
5937 * config/rs6000/altivec.h (vec_signextll, vec_signexti, vec_signextq):
5938 Add define for new builtins.
5939 * config/rs6000/altivec.md(altivec_vreveti2): Add define_expand.
5940 * config/rs6000/rs6000-builtin.def (VSIGNEXTI, VSIGNEXTLL): Add
5941 overloaded builtin definitions.
5942 (VSIGNEXTSB2W, VSIGNEXTSH2W, VSIGNEXTSB2D, VSIGNEXTSH2D,VSIGNEXTSW2D,
5943 VSIGNEXTSD2Q): Add builtin expansions.
5944 (SIGNEXT): Add P10 overload definition.
5945 * config/rs6000/rs6000-call.c (P9V_BUILTIN_VEC_VSIGNEXTI, P9V_BUILTIN_VEC_VSIGNEXTLL,
5946 P10_BUILTIN_VEC_SIGNEXT): Add overloaded argument definitions.
5947 * config/rs6000/vsx.md (vsx_sign_extend_v2di_v1ti): Add define_insn.
5948 (vsignextend_v2di_v1ti, vsignextend_qi_<mode>, vsignextend_hi_<mode>,
5949 vsignextend_si_v2di)[VIlong]: Add define_expand.
5950 Make define_insn vsx_sign_extend_si_v2di visible.
5951 * doc/extend.texi: Add documentation for the vec_signexti,
5952 vec_signextll builtins and vec_signextq.
5954 2021-06-09 Carl Love <cel@us.ibm.com>
5956 * config/rs6000/rs6000.c (__fixkfti, __fixunskfti, __floattikf,
5957 __floatuntikf): Names changed to __fixkfti_sw, __fixunskfti_sw,
5958 __floattikf_sw, __floatuntikf_sw respectively.
5959 * config/rs6000/rs6000.md (floatti<mode>2, floatunsti<mode>2,
5960 fix_trunc<mode>ti2, fixuns_trunc<mode>ti2): Add
5961 define_insn for mode IEEE 128.
5963 2021-06-09 Carl Love <cel@us.ibm.com>
5965 * config/rs6000/altivec.md (altivec_vslq, altivec_vsrq):
5966 Rename to altivec_vslq_<mode>, altivec_vsrq_<mode>, mode VEC_TI.
5967 * config/rs6000/vector.md (VEC_TI): Was named VSX_TI in vsx.md.
5968 (vashlv1ti3): Change to vashl<mode>3, mode VEC_TI.
5969 (vlshrv1ti3): Change to vlshr<mode>3, mode VEC_TI.
5970 * config/rs6000/vsx.md (VSX_TI): Remove define_mode_iterator. Update
5971 uses of VSX_TI to VEC_TI.
5973 2021-06-09 Carl Love <cel@us.ibm.com>
5975 * config/rs6000/dfp.md (floattitd2, fixtdti2): New define_insns.
5977 2021-06-09 Carl Love <cel@us.ibm.com>
5979 * config/rs6000/altivec.h (vec_dive, vec_mod): Add define for new
5981 * config/rs6000/altivec.md (UNSPEC_VMULEUD, UNSPEC_VMULESD,
5982 UNSPEC_VMULOUD, UNSPEC_VMULOSD): New unspecs.
5983 (altivec_eqv1ti, altivec_gtv1ti, altivec_gtuv1ti, altivec_vmuleud,
5984 altivec_vmuloud, altivec_vmulesd, altivec_vmulosd, altivec_vrlq,
5985 altivec_vrlqmi, altivec_vrlqmi_inst, altivec_vrlqnm,
5986 altivec_vrlqnm_inst, altivec_vslq, altivec_vsrq, altivec_vsraq,
5987 altivec_vcmpequt_p, altivec_vcmpgtst_p, altivec_vcmpgtut_p): New
5989 (vec_widen_umult_even_v2di, vec_widen_smult_even_v2di,
5990 vec_widen_umult_odd_v2di, vec_widen_smult_odd_v2di, altivec_vrlqmi,
5991 altivec_vrlqnm): New define_expands.
5992 * config/rs6000/rs6000-builtin.def (VCMPEQUT_P, VCMPGTST_P,
5993 VCMPGTUT_P): Add macro expansions.
5994 (BU_P10V_AV_P): Add builtin predicate definition.
5995 (VCMPGTUT, VCMPGTST, VCMPEQUT, CMPNET, CMPGE_1TI,
5996 CMPGE_U1TI, CMPLE_1TI, CMPLE_U1TI, VNOR_V1TI_UNS, VNOR_V1TI, VCMPNET_P,
5997 VCMPAET_P, VMULEUD, VMULESD, VMULOUD, VMULOSD, VRLQ,
5998 VSLQ, VSRQ, VSRAQ, VRLQNM, DIV_V1TI, UDIV_V1TI, DIVES_V1TI, DIVEU_V1TI,
5999 MODS_V1TI, MODU_V1TI, VRLQMI): New macro expansions.
6000 (VRLQ, VSLQ, VSRQ, VSRAQ, DIVE, MOD): New overload expansions.
6001 * config/rs6000/rs6000-call.c (P10_BUILTIN_VCMPEQUT,
6002 P10V_BUILTIN_CMPGE_1TI, P10V_BUILTIN_CMPGE_U1TI,
6003 P10V_BUILTIN_VCMPGTUT, P10V_BUILTIN_VCMPGTST,
6004 P10V_BUILTIN_CMPLE_1TI, P10V_BUILTIN_VCMPLE_U1TI,
6005 P10V_BUILTIN_DIV_V1TI, P10V_BUILTIN_UDIV_V1TI,
6006 P10V_BUILTIN_VMULESD, P10V_BUILTIN_VMULEUD,
6007 P10V_BUILTIN_VMULOSD, P10V_BUILTIN_VMULOUD,
6008 P10V_BUILTIN_VNOR_V1TI, P10V_BUILTIN_VNOR_V1TI_UNS,
6009 P10V_BUILTIN_VRLQ, P10V_BUILTIN_VRLQMI,
6010 P10V_BUILTIN_VRLQNM, P10V_BUILTIN_VSLQ,
6011 P10V_BUILTIN_VSRQ, P10V_BUILTIN_VSRAQ,
6012 P10V_BUILTIN_VCMPGTUT_P, P10V_BUILTIN_VCMPGTST_P,
6013 P10V_BUILTIN_VCMPEQUT_P, P10V_BUILTIN_VCMPGTUT_P,
6014 P10V_BUILTIN_VCMPGTST_P, P10V_BUILTIN_CMPNET,
6015 P10V_BUILTIN_VCMPNET_P, P10V_BUILTIN_VCMPAET_P,
6016 P10V_BUILTIN_DIVES_V1TI, P10V_BUILTIN_MODS_V1TI,
6017 P10V_BUILTIN_MODU_V1TI):
6018 New overloaded definitions.
6019 (rs6000_gimple_fold_builtin) [P10V_BUILTIN_VCMPEQUT,
6020 P10V_BUILTIN_CMPNET, P10V_BUILTIN_CMPGE_1TI,
6021 P10V_BUILTIN_CMPGE_U1TI, P10V_BUILTIN_VCMPGTUT,
6022 P10V_BUILTIN_VCMPGTST, P10V_BUILTIN_CMPLE_1TI,
6023 P10V_BUILTIN_CMPLE_U1TI]: New case statements.
6024 (rs6000_init_builtins) [bool_V1TI_type_node, int_ftype_int_v1ti_v1ti]:
6026 (altivec_init_builtins): New E_V1TImode case statement.
6027 (builtin_function_type)[P10_BUILTIN_128BIT_VMULEUD,
6028 P10_BUILTIN_128BIT_VMULOUD, P10_BUILTIN_128BIT_DIVEU_V1TI,
6029 P10_BUILTIN_128BIT_MODU_V1TI, P10_BUILTIN_CMPGE_U1TI,
6030 P10_BUILTIN_VCMPGTUT, P10_BUILTIN_VCMPEQUT]: New case statements.
6031 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute) [E_TImode,
6032 E_V1TImode]: New case statements.
6033 * config/rs6000/rs6000.h (rs6000_builtin_type_index): New enum
6034 value RS6000_BTI_bool_V1TI.
6035 * config/rs6000/vector.md (vector_gtv1ti,vector_nltv1ti,
6036 vector_gtuv1ti, vector_nltuv1ti, vector_ngtv1ti, vector_ngtuv1ti,
6037 vector_eq_v1ti_p, vector_ne_v1ti_p, vector_ae_v1ti_p,
6038 vector_gt_v1ti_p, vector_gtu_v1ti_p, vrotlv1ti3, vashlv1ti3,
6039 vlshrv1ti3, vashrv1ti3): New define_expands.
6040 * config/rs6000/vsx.md (UNSPEC_VSX_DIVSQ, UNSPEC_VSX_DIVUQ,
6041 UNSPEC_VSX_DIVESQ, UNSPEC_VSX_DIVEUQ, UNSPEC_VSX_MODSQ,
6042 UNSPEC_VSX_MODUQ): New unspecs.
6043 (mulv2di3, vsx_div_v1ti, vsx_udiv_v1ti, vsx_dives_v1ti,
6044 vsx_diveu_v1ti, vsx_mods_v1ti, vsx_modu_v1ti, xxswapd_v1ti): New
6046 (vcmpnet): New define_expand.
6047 * doc/extend.texi: Add documentation for the new builtins vec_rl,
6048 vec_rlmi, vec_rlnm, vec_sl, vec_sr, vec_sra, vec_mule, vec_mulo,
6049 vec_div, vec_dive, vec_mod, vec_cmpeq, vec_cmpne, vec_cmpgt, vec_cmplt,
6050 vec_cmpge, vec_cmple, vec_all_eq, vec_all_ne, vec_all_gt, vec_all_lt,
6051 vec_all_ge, vec_all_le, vec_any_eq, vec_any_ne, vec_any_gt, vec_any_lt,
6052 vec_any_ge, vec_any_le.
6054 2021-06-09 Carl Love <cel@us.ibm.com>
6056 * config/rs6000/altivec.md (altivec_vrl<VI_char>mi): Fix
6057 bug in argument generation.
6059 2021-06-09 Christophe Lyon <christophe.lyon@linaro.org>
6061 * config/arm/iterators.md (<supf>): Remove VCLZQ_U, VCLZQ_S.
6063 * config/arm/mve.md (mve_vclzq_<supf><mode>): Add '@' prefix,
6064 remove <supf> iterator.
6065 (mve_vclzq_u<mode>): New.
6066 * config/arm/neon.md (clz<mode>2): Rename to neon_vclz<mode>.
6067 (neon_vclz<mode): Move to ...
6068 * config/arm/unspecs.md (VCLZQ_U, VCLZQ_S): Remove.
6069 * config/arm/vec-common.md: ... here. Add support for MVE.
6071 2021-06-09 Christophe Lyon <christophe.lyon@linaro.org>
6073 * config/arm/mve.md (mve_vhaddq_<supf><mode>): Prefix with '@'.
6074 (@mve_vrhaddq_<supf><mode): Likewise.
6075 * config/arm/neon.md (neon_v<r>hadd<sup><mode>): Likewise.
6076 * config/arm/vec-common.md (avg<mode>3_floor, uavg<mode>3_floor)
6077 (avg<mode>3_ceil", uavg<mode>3_ceil): New patterns.
6079 2021-06-09 imba-tjd <109224573@qq.com>
6081 * doc/invoke.texi: Fix typo.
6083 2021-06-09 Roger Sayle <roger@nextmovesoftware.com>
6086 * fold-const-call.c (fold_const_call_sss) [CASE_CFN_FMOD]:
6087 Support evaluation of fmod/fmodf/fmodl at compile-time.
6089 2021-06-09 Richard Biener <rguenther@suse.de>
6091 PR tree-optimization/100981
6092 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
6093 gimple_get_lhs to also handle calls.
6094 * tree-vect-slp-patterns.c (complex_pattern::build): Transfer
6097 2021-06-09 Richard Biener <rguenther@suse.de>
6099 PR tree-optimization/97832
6100 * tree-vectorizer.h (_slp_tree::failed): New.
6101 * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize
6103 (_slp_tree::~_slp_tree): Free failed.
6104 (vect_build_slp_tree): Retain failed nodes and record
6105 matches in them, copying that back out when running
6106 into a cached fail. Dump start and end of discovery.
6108 (vect_build_slp_tree_2): Handle associatable chains
6109 together doing more aggressive operand swapping.
6111 2021-06-09 H.J. Lu <hjl.tools@gmail.com>
6114 * config.gcc (gcc_cv_initfini_array): Set to yes for Linux and
6116 * doc/install.texi: Require glibc 2.1 and binutils 2.12 for
6117 Linux and GNU targets.
6119 2021-06-09 Richard Biener <rguenther@suse.de>
6121 * tree-vect-stmts.c (vect_is_simple_use): Always get dt
6124 2021-06-09 Claudiu Zissulescu <claziss@synopsys.com>
6126 * config/arc/arc.md (loop_end): Change it to
6127 define_insn_and_split.
6129 2021-06-09 Claudiu Zissulescu <claziss@synopsys.com>
6131 * config/arc/arc.md (maddhisi4): Use VMAC2H instruction.
6132 (machi): New pattern.
6133 (umaddhisi4): Use VMAC2HU instruction.
6134 (umachi): New pattern.
6136 2021-06-09 Claudiu Zissulescu <claziss@synopsys.com>
6138 * config/arc/arc-protos.h (arc_split_move_p): New prototype.
6139 * config/arc/arc.c (arc_split_move_p): New function.
6140 (arc_split_move): Clean up.
6141 * config/arc/arc.md (movdi_insn): Clean up, use arc_split_move_p.
6142 (movdf_insn): Likewise.
6143 * config/arc/simdext.md (mov<VWH>_insn): Likewise.
6145 2021-06-09 Uroš Bizjak <ubizjak@gmail.com>
6148 * config/i386/i386.c (print_operand_address_as): Rename "no_rip"
6149 argument to "raw". Do not emit segment overrides when "raw" is true.
6151 2021-06-09 Martin Liska <mliska@suse.cz>
6153 * doc/gcov.texi: Create a proper JSON files.
6154 * doc/invoke.texi: Remove dots in order to make it a valid
6157 2021-06-09 Xionghu Luo <luoxhu@linux.ibm.com>
6159 * config/rs6000/rs6000-p8swap.c (pattern_is_rotate64): New.
6160 (insn_is_load_p): Use pattern_is_rotate64.
6161 (insn_is_swap_p): Likewise.
6162 (quad_aligned_load_p): Likewise.
6163 (const_load_sequence_p): Likewise.
6164 (replace_swapped_aligned_load): Likewise.
6165 (recombine_lvx_pattern): Likewise.
6166 (recombine_stvx_pattern): Likewise.
6168 2021-06-09 Andrew MacLeod <amacleod@redhat.com>
6170 * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Use a
6171 fur_stmt source record.
6172 * gimple-range.cc (fur_source::get_operand): Generic range query.
6173 (fur_source::get_phi_operand): New.
6174 (fur_source::register_dependency): New.
6175 (fur_source::query): New.
6176 (class fur_edge): New. Edge source for operands.
6177 (fur_edge::fur_edge): New.
6178 (fur_edge::get_operand): New.
6179 (fur_edge::get_phi_operand): New.
6180 (fur_edge::query): New.
6181 (fur_stmt::fur_stmt): New.
6182 (fur_stmt::get_operand): New.
6183 (fur_stmt::get_phi_operand): New.
6184 (fur_stmt::query): New.
6185 (class fur_depend): New. Statement source and process dependencies.
6186 (fur_depend::fur_depend): New.
6187 (fur_depend::register_dependency): New.
6188 (class fur_list): New. List source for operands.
6189 (fur_list::fur_list): New.
6190 (fur_list::get_operand): New.
6191 (fur_list::get_phi_operand): New.
6192 (fold_range): New. Instantiate appropriate fur_source class and fold.
6193 (fold_using_range::range_of_range_op): Use new API.
6194 (fold_using_range::range_of_address): Ditto.
6195 (fold_using_range::range_of_phi): Ditto.
6196 (imple_ranger::fold_range_internal): Use fur_depend class.
6197 (fold_using_range::range_of_ssa_name_with_loop_info): Use new API.
6198 * gimple-range.h (class fur_source): Now a base class.
6199 (class fur_stmt): New.
6200 (fold_range): New prototypes.
6201 (fur_source::fur_source): Delete.
6203 2021-06-08 Andrew Pinski <apinski@marvell.com>
6205 PR tree-optimization/25290
6206 * tree-ssa-phiopt.c (xor_replacement): Delete.
6207 (tree_ssa_phiopt_worker): Delete use of xor_replacement.
6208 (match_simplify_replacement): Allow one cheap preparation
6209 statement that can be moved to before the if.
6211 2021-06-08 Pat Haugen <pthaugen@linux.ibm.com>
6213 * config/rs6000/power10.md (power10-fused-load, power10-fused-store,
6214 power10-fused_alu, power10-fused-vec, power10-fused-branch): New.
6216 2021-06-08 Jeff Law <jeffreyalaw@gmail.com>
6218 * config/h8300/logical.md (andqi3_1): Move BCLR case into define_insn_and_split.
6219 Create length attribute on define_insn_and_split. Only split for cases which we
6221 (andqi3_1<cczn>): Renamed from andqi3_1_clobber_flags. Only handle AND here and
6222 fix length computation.
6223 (b<code><mode>msx): Combine QImode and HImode H8/SX patterns using iterator.
6225 2021-06-08 Richard Biener <rguenther@suse.de>
6227 PR tree-optimization/100923
6228 * tree-ssa-sccvn.c (valueize_refs_1): Take a pointer to
6229 the operand vector to be valueized.
6230 (valueize_refs): Likewise.
6231 (valueize_shared_reference_ops_from_ref): Adjust.
6232 (valueize_shared_reference_ops_from_call): Likewise.
6233 (vn_reference_lookup_3): Likewise.
6234 (vn_reference_lookup_pieces): Likewise. Re-valueize
6235 with honoring availability when we are about to create
6236 the ao_ref and valueized before.
6237 (vn_reference_lookup): Likewise.
6238 (vn_reference_insert_pieces): Adjust.
6240 2021-06-08 Richard Biener <rguenther@suse.de>
6242 * tree-vectorizer.h (_slp_instance::root_stmt): Change to...
6243 (_slp_instance::root_stmts): ... a vector.
6244 (SLP_INSTANCE_ROOT_STMT): Rename to ...
6245 (SLP_INSTANCE_ROOT_STMTS): ... this.
6246 (slp_root::root): Change to...
6247 (slp_root::roots): ... a vector.
6248 (slp_root::slp_root): Adjust.
6249 * tree-vect-slp.c (_slp_instance::location): Adjust.
6250 (vect_free_slp_instance): Release the root stmt vector.
6251 (vect_build_slp_instance): Adjust.
6252 (vect_analyze_slp): Likewise.
6253 (_bb_vec_info::~_bb_vec_info): Likewise.
6254 (vect_slp_analyze_operations): Likewise.
6255 (vect_bb_vectorization_profitable_p): Likewise. Adjust
6256 costs for the root stmt.
6257 (vect_slp_check_for_constructors): Gather all BIT_INSERT_EXPRs
6259 (vect_slp_analyze_bb_1): Simplify by marking all root stmts
6261 (vectorize_slp_instance_root_stmt): Adjust.
6262 (vect_schedule_slp): Likewise.
6264 2021-06-08 Aldy Hernandez <aldyh@redhat.com>
6266 * gimple-ssa-evrp.c (class ssa_equiv_stack): New.
6267 (ssa_equiv_stack::ssa_equiv_stack): New.
6268 (ssa_equiv_stack::~ssa_equiv_stack): New.
6269 (ssa_equiv_stack::enter): New.
6270 (ssa_equiv_stack::leave): New.
6271 (ssa_equiv_stack::push_replacement): New.
6272 (ssa_equiv_stack::get_replacement): New.
6273 (is_pointer_ssa): New.
6274 (class pointer_equiv_analyzer): New.
6275 (pointer_equiv_analyzer::pointer_equiv_analyzer): New.
6276 (pointer_equiv_analyzer::~pointer_equiv_analyzer): New.
6277 (pointer_equiv_analyzer::set_global_equiv): New.
6278 (pointer_equiv_analyzer::set_cond_equiv): New.
6279 (pointer_equiv_analyzer::get_equiv): New.
6280 (pointer_equiv_analyzer::enter): New.
6281 (pointer_equiv_analyzer::leave): New.
6282 (pointer_equiv_analyzer::get_equiv_expr): New.
6283 (pta_valueize): New.
6284 (pointer_equiv_analyzer::visit_stmt): New.
6285 (pointer_equiv_analyzer::visit_edge): New.
6286 (hybrid_folder::value_of_expr): Call PTA.
6287 (hybrid_folder::value_on_edge): Same.
6288 (hybrid_folder::pre_fold_bb): New.
6289 (hybrid_folder::post_fold_bb): New.
6290 (hybrid_folder::pre_fold_stmt): New.
6291 (rvrp_folder::pre_fold_bb): New.
6292 (rvrp_folder::post_fold_bb): New.
6293 (rvrp_folder::pre_fold_stmt): New.
6294 (rvrp_folder::value_of_expr): Call PTA.
6295 (rvrp_folder::value_on_edge): Same.
6297 2021-06-08 Jakub Jelinek <jakub@redhat.com>
6300 * tree-inline.c (copy_tree_body_r): For OMP_CLAUSE_DEPEND don't
6301 check TREE_CODE if OMP_CLAUSE_DECL is NULL.
6303 2021-06-08 Richard Biener <rguenther@suse.de>
6305 PR middle-end/100951
6306 * tree-vect-generic.c (expand_vector_piecewise): Build a
6307 VECTOR_CST if all elements are constant.
6308 (expand_vector_condition): Likewise.
6309 (lower_vec_perm): Likewise.
6310 (expand_vector_conversion): Likewise.
6312 2021-06-08 Martin Liska <mliska@suse.cz>
6314 * doc/invoke.texi: Document new param evrp-sparse-threshold.
6316 2021-06-08 Martin Liska <mliska@suse.cz>
6318 * genautomata.c (create_automata): Fix typo.
6320 2021-06-08 Kewen Lin <linkw@linux.ibm.com>
6322 PR tree-optimization/100794
6323 * tree-predcom.c (tree_predictive_commoning_loop): Add parameter
6324 allow_unroll_p and only allow unrolling when it's true.
6325 (tree_predictive_commoning): Add parameter allow_unroll_p and
6327 (run_tree_predictive_commoning): Likewise.
6328 (pass_predcom::gate): Check flag_tree_loop_vectorize and
6329 global_options_set.x_flag_predictive_commoning.
6330 (pass_predcom::execute): Adjust for allow_unroll_p.
6332 2021-06-08 Kewen Lin <linkw@linux.ibm.com>
6334 * tree-predcom.c (execute_pred_commoning): Remove update_ssa call.
6335 (tree_predictive_commoning_loop): Factor some cleanup stuffs into
6336 lambda function cleanup, remove scev_reset call, and adjust return
6338 (tree_predictive_commoning): Adjust for different changed values,
6339 only set flag TODO_update_ssa_only_virtuals if changed.
6340 (pass_data pass_data_predcom): Remove TODO_update_ssa_only_virtuals
6341 from todo_flags_finish.
6343 2021-06-07 Andrew MacLeod <amacleod@redhat.com>
6345 * gimple-range-cache.cc (class sbr_sparse_bitmap): New.
6346 (sbr_sparse_bitmap::sbr_sparse_bitmap): New.
6347 (sbr_sparse_bitmap::bitmap_set_quad): New.
6348 (sbr_sparse_bitmap::bitmap_get_quad): New.
6349 (sbr_sparse_bitmap::set_bb_range): New.
6350 (sbr_sparse_bitmap::get_bb_range): New.
6351 (sbr_sparse_bitmap::bb_range_p): New.
6352 (block_range_cache::block_range_cache): initialize bitmap obstack.
6353 (block_range_cache::~block_range_cache): Destruct obstack.
6354 (block_range_cache::set_bb_range): Decide when to utilze the
6355 sparse on entry cache.
6356 * gimple-range-cache.h (block_range_cache): Add bitmap obstack.
6357 * params.opt (-param=evrp-sparse-threshold): New.
6359 2021-06-07 Andrew MacLeod <amacleod@redhat.com>
6361 * bitmap.c (bitmap_set_aligned_chunk): New.
6362 (bitmap_get_aligned_chunk): New.
6363 (test_aligned_chunk): New.
6364 (bitmap_c_tests): Call test_aligned_chunk.
6365 * bitmap.h (bitmap_set_aligned_chunk, bitmap_get_aligned_chunk): New.
6367 2021-06-07 Uroš Bizjak <ubizjak@gmail.com>
6370 * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
6372 (ix86_expand_vector_init_one_nonzero): Ditto.
6373 (ix86_expand_vector_init_one_var): Ditto.
6374 (ix86_expand_vector_init_general): Ditto.
6375 * config/i386/mmx.md (vec_initv4qiqi): New expander.
6377 2021-06-07 Jeff Law <jeffreyalaw@gmail.com>
6379 * config/h8300/movepush.md: Change most _clobber_flags
6380 patterns to instead use <cczn> subst.
6381 (movsi_cczn): New pattern with usable CC cases split out.
6382 (movsi_h8sx_cczn): Likewise.
6384 2021-06-07 Martin Liska <mliska@suse.cz>
6386 * common/common-target.def: Split long lines and replace them
6388 * target.def: Likewise.
6389 * doc/tm.texi: Re-generated.
6391 2021-06-07 Jakub Jelinek <jakub@redhat.com>
6394 * fold-const.c (fold_read_from_vector): Return NULL if trying to
6395 read from a CONSTRUCTOR with vector type elements.
6397 2021-06-07 Jakub Jelinek <jakub@redhat.com>
6399 PR middle-end/100898
6400 * tree-inline.c (copy_bb): Only use gimple_call_arg_ptr if memcpy
6401 should copy any arguments. Don't call gimple_call_num_args
6402 on id->call_stmt or call_stmt more than once.
6404 2021-06-07 liuhongt <hongtao.liu@intel.com>
6407 * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): Refine
6409 (<insn>v4siv4di2): Delete constraints for define_expand.
6411 2021-06-07 liuhongt <hongtao.liu@intel.com>
6414 * config/i386/i386-expand.c (ix86_expand_builtin): Remove
6415 assignment of cfun->machine->has_explicit_vzeroupper.
6416 * config/i386/i386-features.c
6417 (ix86_add_reg_usage_to_vzerouppers): Delete.
6418 (ix86_add_reg_usage_to_vzeroupper): Ditto.
6419 (rest_of_handle_insert_vzeroupper): Remove
6420 ix86_add_reg_usage_to_vzerouppers, add df_analyze at the end
6422 (gate): Remove cfun->machine->has_explicit_vzeroupper.
6423 * config/i386/i386-protos.h (ix86_expand_avx_vzeroupper):
6425 * config/i386/i386.c (ix86_insn_callee_abi): New function.
6426 (ix86_initialize_callee_abi): Ditto.
6427 (ix86_expand_avx_vzeroupper): Ditto.
6428 (ix86_hard_regno_call_part_clobbered): Adjust for vzeroupper
6430 (TARGET_INSN_CALLEE_ABI): Define as ix86_insn_callee_abi.
6431 (ix86_emit_mode_set): Call ix86_expand_avx_vzeroupper
6433 * config/i386/i386.h (struct GTY(()) machine_function): Delete
6434 has_explicit_vzeroupper.
6435 * config/i386/i386.md (enum unspec): New member
6437 (ABI_DEFAULT,ABI_VZEROUPPER,ABI_UNKNOWN): New
6438 define_constants for insn callee abi index.
6439 * config/i386/predicates.md (vzeroupper_pattern): Adjust.
6440 * config/i386/sse.md (UNSPECV_VZEROUPPER): Deleted.
6441 (avx_vzeroupper): Call ix86_expand_avx_vzeroupper.
6442 (*avx_vzeroupper): Rename to ..
6443 (avx_vzeroupper_callee_abi): .. this, and adjust pattern as
6444 call_insn which has a special vzeroupper ABI.
6445 (*avx_vzeroupper_1): Deleted.
6447 2021-06-07 liuhongt <hongtao.liu@intel.com>
6450 * df-scan.c (df_get_call_refs): When call_insn is a fake call,
6451 it won't use stack pointer reg.
6452 * final.c (leaf_function_p): When call_insn is a fake call, it
6453 won't affect caller as a leaf function.
6454 * reg-stack.c (callee_clobbers_any_stack_reg): New.
6455 (subst_stack_regs): When call_insn doesn't clobber any stack
6456 reg, don't clear the arguments.
6457 * rtl.c (shallow_copy_rtx): Don't clear flag used when orig is
6459 * shrink-wrap.c (requires_stack_frame_p): No need for stack
6460 frame for a fake call.
6461 * rtl.h (FAKE_CALL_P): New macro.
6463 2021-06-06 Eric Botcazou <ebotcazou@adacore.com>
6465 * config/sparc/sparc-protos.h (order_regs_for_local_alloc): Rename
6467 (sparc_order_regs_for_local_alloc): ...this.
6468 (sparc_leaf_reg_remap): Declare.
6469 * config/sparc/sparc.h (ADJUST_REG_ALLOC_ORDER): Adjust.
6470 (LEAF_REG_REMAP): Reimplement as call to sparc_leaf_reg_remap.
6471 * config/sparc/sparc.c (leaf_reg_remap): Delete.
6472 (order_regs_for_local_alloc): Rename to...
6473 (sparc_order_regs_for_local_alloc): ...this.
6474 (sparc_leaf_reg_remap): New function.
6475 (sparc_conditional_register_usage): Do not modify leaf_reg_remap.
6477 2021-06-06 David Edelsohn <dje.gcc@gmail.com>
6479 * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_aligned_decl_common):
6480 Use assemble_name to output BSS section name.
6482 2021-06-06 Uroš Bizjak <ubizjak@gmail.com>
6484 * config/i386/constraints.md (Bs):
6485 Remove boolean operators from match_test RTX.
6488 (M): Use "mode" variable instead of GET_MODE (op) in match_test RTX.
6491 2021-06-06 Martin Liska <mliska@suse.cz>
6493 * doc/extend.texi: Add missing @headitem.
6494 * doc/invoke.texi: Likewise.
6495 * doc/objc.texi: Likewise.
6497 2021-06-06 Martin Liska <mliska@suse.cz>
6499 * genhooks.c (emit_findices): Remove unused function.
6500 (emit_documentation): Do not call emit_findices
6501 and do not search for @Fcode directives.
6503 2021-06-06 Martin Liska <mliska@suse.cz>
6505 * doc/invoke.texi: Remove extra character.
6507 2021-06-05 Kewen Lin <linkw@linux.ibm.com>
6509 * config/sh/sh.md (doloop_end_split): Fix empty split condition.
6511 2021-06-05 Kewen Lin <linkw@linux.ibm.com>
6513 * config/sparc/sparc.md (*snedi<W:mode>_zero_vis3,
6514 *neg_snedi<W:mode>_zero_subxc, *plus_snedi<W:mode>_zero,
6515 *plus_plus_snedi<W:mode>_zero, *minus_snedi<W:mode>_zero,
6516 *minus_minus_snedi<W:mode>_zero): Fix empty split condition.
6518 2021-06-05 Kewen Lin <linkw@linux.ibm.com>
6520 * config/or1k/or1k.md (*movdi): Fix empty split condition.
6522 2021-06-05 Kewen Lin <linkw@linux.ibm.com>
6524 * config/mips/mips.md (<anonymous>, bswapsi2, bswapdi2): Fix empty
6527 2021-06-05 Kewen Lin <linkw@linux.ibm.com>
6529 * config/m68k/m68k.md (*zero_extend_inc, *zero_extend_dec,
6530 *zero_extendsidi2): Fix empty split condition.
6532 2021-06-05 Jeff Law <jeffreyalaw@gmail.com>
6534 * config/h8300/addsub.md: Fix split condition in define_insn_and_split
6536 * config/h8300/bitfield.md: Likewise.
6537 * config/h8300/combiner.md: Likewise.
6538 * config/h8300/divmod.md: Likewise.
6539 * config/h8300/extensions.md: Likewise.
6540 * config/h8300/jumpcall.md: Likewise.
6541 * config/h8300/movepush.md: Likewise.
6542 * config/h8300/multiply.md: Likewise.
6543 * config/h8300/other.md: Likewise.
6544 * config/h8300/shiftrotate.md: Likewise.
6545 * config/h8300/logical.md: Likewise. Fix split pattern to use
6546 code iterator that somehow slipped through.
6548 2021-06-04 Tobias Burnus <tobias@codesourcery.com>
6550 PR middle-end/100905
6551 * tree-nested.c (convert_nonlocal_omp_clauses,
6552 convert_local_omp_clauses): Handle OMP_CLAUSE_BIND.
6554 2021-06-04 Martin Sebor <msebor@redhat.com>
6556 PR middle-end/100732
6557 * gimple-fold.c (gimple_fold_builtin_sprintf): Avoid folding calls
6558 with either source or destination argument of invalid type.
6559 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Avoid checking
6560 calls with arguments of invalid type.
6562 2021-06-04 Martin Sebor <msebor@redhat.com>
6564 * attribs.c (init_attr_rdwr_indices): Use VLA bounds in the expected
6566 (attr_access::vla_bounds): Also handle VLA bounds.
6568 2021-06-04 Uroš Bizjak <ubizjak@gmail.com>
6570 * config/i386/predicates.md (GOT_memory_operand):
6571 Implement using match_code RTXes.
6572 (GOT32_symbol_operand): Ditto.
6574 2021-06-04 Uroš Bizjak <ubizjak@gmail.com>
6577 * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
6579 (ix86_expand_vector_init_general): Ditto.
6580 Use SImode instead of word_mode for logic operations
6581 when GET_MODE_SIZE (mode) < UNITS_PER_WORD.
6582 (expand_vec_perm_even_odd_1): Assert that V2HI mode should be
6583 implemented by expand_vec_perm_1.
6584 (expand_vec_perm_broadcast_1): Assert that V2HI and V4HI modes
6585 should be implemented using standard shuffle patterns.
6586 (ix86_vectorize_vec_perm_const): Handle V2HImode. Add V4HI and
6587 V2HI modes to modes, implementable with shuffle for one operand.
6588 * config/i386/mmx.md (*punpckwd): New insn_and_split pattern.
6589 (*pshufw_1): New insn pattern.
6590 (*vec_dupv2hi): Ditto.
6591 (vec_initv2hihi): New expander.
6593 2021-06-04 Kewen Lin <linkw@linux.ibm.com>
6595 * config/arm/vfp.md (no_literal_pool_df_immediate,
6596 no_literal_pool_sf_immediate): Fix empty split condition.
6598 2021-06-04 Kewen Lin <linkw@linux.ibm.com>
6600 * config/i386/i386.md (*load_tp_x32_zext, *add_tp_x32_zext,
6601 *tls_dynamic_gnu2_combine_32): Fix empty split condition.
6602 * config/i386/sse.md (*<sse2_avx2>_pmovmskb_lt,
6603 *<sse2_avx2>_pmovmskb_zext_lt, *sse2_pmovmskb_ext_lt,
6604 *<sse4_1_avx2>_pblendvb_lt): Likewise.
6606 2021-06-04 Jakub Jelinek <jakub@redhat.com>
6609 * config/i386/i386-expand.c (ix86_expand_vector_init): Handle
6610 concatenation from half-sized modes with TImode elements.
6612 2021-06-04 Claudiu Zissulescu <claziss@synopsys.com>
6614 * config/arc/arc.c (arc_override_options): Disable millicode
6615 thunks when RF16 is on.
6617 2021-06-04 Haochen Gui <guihaoc@gcc.gnu.org>
6619 * config/rs6000/rs6000.h (PROMOTE_MODE): Remove.
6621 2021-06-04 Haochen Gui <guihaoc@gcc.gnu.org>
6623 * config/rs6000/rs6000-call.c (rs6000_promote_function_mode):
6624 Replace PROMOTE_MODE marco with its content.
6626 2021-06-03 Kewen Lin <linkw@linux.ibm.com>
6628 * config/cris/cris.md (*addi_reload): Fix empty split condition.
6630 2021-06-03 Jim Wilson <jimw@sifive.com>
6632 * config.gcc (riscv*-*-*): If --with-riscv-attribute not used,
6633 turn it on for all riscv targets.
6635 2021-06-03 Uroš Bizjak <ubizjak@gmail.com>
6638 * config/i386/i386-expand.c (ix86_expand_vector_set):
6639 Handle V2HI and V4QI modes.
6640 (ix86_expand_vector_extract): Ditto.
6641 * config/i386/mmx.md (*pinsrw): New insn pattern.
6644 (*pextrw_zext): Ditto.
6646 (*pextrb_zext): Ditto.
6647 (vec_setv2hi): New expander.
6648 (vec_extractv2hihi): Ditto.
6649 (vec_setv4qi): Ditto.
6650 (vec_extractv4qiqi): Ditto.
6651 (vec_setv8qi): Enable only for TARGET_SSE4_1.
6652 (vec_extractv8qiqi): Ditto.
6654 2021-06-03 Aaron Sawdey <acsawdey@linux.ibm.com>
6656 * config/rs6000/genfusion.pl (gen_logical_addsubf): Fix input
6657 order to subf instruction.
6658 * config/rs6000/fusion.md: Regenerate.
6660 2021-06-03 Aldy Hernandez <aldyh@redhat.com>
6662 * calls.c (get_size_range): Use range_of_expr instead of
6663 determine_value_range.
6664 * tree-affine.c (expr_to_aff_combination): Same.
6665 * tree-data-ref.c (split_constant_offset): Same.
6666 * tree-vrp.c (determine_value_range_1): Remove.
6667 (determine_value_range): Remove.
6668 * tree-vrp.h (determine_value_range): Remove.
6670 2021-06-03 Aldy Hernandez <aldyh@redhat.com>
6672 * function-tests.c (test_ranges): Call gimple_range_tests.
6673 * gimple-range-cache.cc (ranger_cache::range_of_expr): Pass stmt
6675 * gimple-range.cc (fur_source::get_operand): Do not call
6676 get_tree_range or gimple_range_global.
6678 (get_tree_range): Move to value-query.cc.
6679 Call get_arith_expr_range.
6680 (gimple_ranger::range_of_expr): Add argument to get_tree_range.
6681 Include gimple-range-tests.cc.
6682 * gimple-range.h (fold_range): Add argument.
6683 (get_tree_range): Remove.
6684 * selftest.h (gimple_range_tests): New.
6685 * value-query.cc (global_range_query::range_of_expr): Add
6687 (range_query::get_tree_range): Move from gimple-range.cc.
6688 * value-query.h (class range_query): Add get_tree_range and
6689 get_arith_expr_range. Make fur_source a friend.
6690 * vr-values.c (vr_values::range_of_expr): Pass stmt to
6692 * gimple-range-tests.cc: New file.
6694 2021-06-03 Aldy Hernandez <aldyh@redhat.com>
6696 * gimple-range.cc (gimple_ranger::export_global_ranges): Call
6697 update_global_range.
6698 * value-query.cc (update_global_range): New.
6699 * value-query.h (update_global_range): New.
6701 2021-06-03 David Malcolm <dmalcolm@redhat.com>
6703 * diagnostic-show-locus.c (diagnostic_show_locus): Don't reject
6704 printing the same location twice if there are fix-it hints,
6705 multiple locations, or a label.
6707 2021-06-03 Andre Vieira <andre.simoesdiasvieira@arm.com>
6709 * tree-vect-loop.c (vect_transform_loop): Use main loop's various'
6710 thresholds to narrow the upper bound on epilogue iterations.
6712 2021-06-03 Christophe Lyon <christophe.lyon@linaro.org>
6714 * config/arm/mve.md (mve_vabsq_f<mode>): Use 'abs' instead of unspec.
6715 (mve_vabsq_s<mode>): Likewise.
6716 * config/arm/neon.md (abs<mode>2): Rename to neon_abs<mode>2.
6717 * config/arm/unspecs.md (VABSQ_F, VABSQ_S): Delete.
6718 * config/arm/vec-common.md (neg<mode>2): Rename to
6719 <absneg_str><mode>2.
6721 2021-06-03 Claudiu Zissulescu <claziss@synopsys.com>
6723 * common/config/arc/arc-common.c (arc_option_optimization_table):
6725 * config/arc/arc.c (arc_unalign_branch_p): Remove unused function.
6726 * config/arc/arc.h (TARGET_MIXED_CODE): Remove macro.
6727 (INDEX_REG_CLASS): Only refer to GENERAL_REGS.
6728 * config/arc/arc.md (abssi2_mixed): Remove pattern.
6729 * config/arc/arc.opt (munalign-prob-threshold): Mark it obsolete.
6730 (malign-call): Likewise.
6731 (mmixed-code): Likewise.
6732 * doc/invoke.texi (ARC): Update doc.
6734 2021-06-03 Martin Liska <mliska@suse.cz>
6736 * common.opt: Use proper Enum values.
6737 * opts.c (COVERAGE_SANITIZER_OPT): Remove.
6738 (parse_sanitizer_options): Handle only sanitizer_opts.
6739 (common_handle_option): Just assign value.
6741 2021-06-03 Eric Botcazou <ebotcazou@adacore.com>
6744 * tree-inline.c (inline_forbidden_p): Remove test on return type.
6746 2021-06-03 Eric Botcazou <ebotcazou@adacore.com>
6748 * dwarf2out.c (loc_list_from_tree_1) <FUNCTION_DECL>: Also generate
6749 DW_OP_GNU_variable_value referencing an existing DIE at file scope.
6750 (type_byte_size): Inline into...
6751 (add_byte_size_attribute): ...this and call add_scalar_info.
6753 2021-06-03 Eric Botcazou <ebotcazou@adacore.com>
6755 * dwarf2out.c (mem_loc_descriptor) <UDIV>: Fix typo.
6756 (typed_binop_from_tree): New function.
6757 (loc_list_from_tree_1) <EXACT_DIV_EXPR>: For an unsigned type,
6758 turn a divide by a power of 2 into a shift.
6759 <CEIL_DIV_EXPR>: For an unsigned type, use a signed divide if the
6760 size of the mode is lower than DWARF2_ADDR_SIZE; otherwise, do a
6761 typed divide by calling typed_binop_from_tree.
6763 2021-06-03 Eric Botcazou <ebotcazou@adacore.com>
6765 * dwarf2out.c (scompare_loc_descriptor): Fix head comment.
6766 (is_handled_procedure_type): Likewise.
6767 (struct loc_descr_context): Add strict_signedness field.
6768 (resolve_args_picking_1): Deal with DW_OP_[GNU_]deref_type,
6769 DW_OP_[GNU_]convert and DW_OP_[GNU_]reinterpret.
6770 (resolve_args_picking): Minor tweak.
6771 (function_to_dwarf_procedure): Initialize strict_signedness field.
6772 (type_byte_size): Likewise.
6773 (field_byte_offset): Likewise.
6774 (gen_descr_array_type_die): Likewise.
6775 (gen_variant_part): Likewise.
6776 (loc_list_from_tree_1) <CALL_EXPR>: Tidy up and set strict_signedness
6777 to true when a context is present before evaluating the arguments.
6778 <COND_EXPR>: Do not generate a useless comparison with zero.
6779 When dereferencing an address, if strict_signedness is true and the
6780 type is small and signed, use DW_OP_deref_type to do the dereference
6781 and then DW_OP_convert to convert back to the generic type.
6783 2021-06-03 Jakub Jelinek <jakub@redhat.com>
6786 * tree-inline.c (copy_tree_body_r): Handle iterators on
6787 OMP_CLAUSE_AFFINITY or OMP_CLAUSE_DEPEND.
6789 2021-06-03 Kewen Lin <linkw@linux.ibm.com>
6791 * config/arc/arc.md (*bbit_di): Remove.
6793 2021-06-02 Christoph Muellner <cmuellner@gcc.gnu.org>
6795 PR rtl-optimization/100264
6796 * ree.c (get_sub_rtx): Ignore SET expressions without register
6797 destinations and remove assertion, as it is not valid anymore
6798 with this new behaviour.
6799 (merge_def_and_ext): Eliminate destination check for register
6800 as such SET expressions can't occur anymore.
6801 (combine_reaching_defs): Likewise.
6803 2021-06-02 Jakub Jelinek <jakub@redhat.com>
6806 * config/xtensa/xtensa.h (LEAF_REG_REMAP): Cast REGNO to int to avoid
6807 -Wtype-limits warnings.
6808 (DWARF_FRAME_REGISTER): Rewrite into ternary operator with addition
6809 in operands to avoid -Wsign-compare warnings.
6811 2021-06-02 Pat Haugen <pthaugen@linux.ibm.com>
6813 * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Use
6816 2021-06-02 Vineet Gupta <vgupta@synopsys.com>
6818 * config/arc/arc.h (TARGET_CPU_DEFAULT): Change to hs38_linux.
6820 2021-06-02 Ilya Leoshkevich <iii@linux.ibm.com>
6822 * config/s390/s390.md(*ashrdi3_31<setcc><cconly>): Use a single
6824 * config/s390/subst.md(cconly_subst): Use a single constraint
6827 2021-06-02 Martin Liska <mliska@suse.cz>
6829 * ipa-icf.h: Use auto_vec for memory_access_types.
6831 2021-06-02 Jeff Law <jeffreyalaw@gmail.com>
6833 * config/h8300/h8300-protos.h (compute_a_shift_length): Drop unused
6834 argument from prototype.
6835 (output_logical_op): Add rtx_code argument.
6836 (compute_logical_op_length): Likewise.
6837 * config/h8300/h8300.c (h8300_and_costs): Pass additional argument
6838 to compute_a_shift_length.
6839 (output_logical_op); New argument with the rtx code rather than
6840 extracting it from an operand. Handle QImode too.
6841 (compute_logical_op_length): Similary.
6842 (compute_a_shift_length): Drop unused argument.
6843 * config/h8300/h8300.md (logicals): New code iterator.
6844 * config/h8300/logical.md (<code><mode>3 expander): Combine
6845 the "and" expander with the "ior"/"xor" expander.
6846 (bclr<mode>msx): Combine the QI/HI mode patterns.
6847 (<logical><mode>3 insns): Use code iterator rather than match_operator.
6848 Handle QImode as well. Update call to output_logical_op and
6849 compute_logical_op_length to pass in rtx_code
6850 Fix split condition on all define_insn_and_split patterns.
6851 (one_cmpl<mode>2<cczn>): Use <cczn> to support both clobbering
6852 the flags and setting ZN via existing define_subst.
6853 * config/h8300/shiftrotate.md: Drop unused argument from
6854 calls to compute_a_shift_length.
6855 Signed-off-by: Jeff Law <jeffreyalaw@gmail.com>
6857 2021-06-01 Andrew Pinski <apinski@marvell.com>
6859 PR tree-optimization/25290
6860 * tree-ssa-phiopt.c (match_simplify_replacement):
6862 (tree_ssa_phiopt_worker): Use match_simplify_replacement.
6863 (two_value_replacement): Change the comment about
6864 conditional_replacement.
6865 (conditional_replacement): Delete.
6867 2021-06-01 Andrew Pinski <apinski@marvell.com>
6869 PR tree-optimization/95481
6870 * tree-tailcall.c (find_tail_calls): Handle empty typed
6873 2021-06-01 Andrew Pinski <apinski@marvell.com>
6875 * gimplify.c (zero_sized_field_decl): Delete
6876 (zero_sized_type): Delete
6877 (gimplify_init_ctor_eval): Use is_empty_type instead
6878 of zero_sized_field_decl.
6879 (gimplify_modify_expr): Use is_empty_type instead of
6882 2021-06-01 Jason Merrill <jason@redhat.com>
6885 * tree.h (CALL_FROM_NEW_OR_DELETE_P): Adjust comment.
6887 2021-06-01 Jason Merrill <jason@redhat.com>
6890 * diagnostic.h (warning_enabled_at): Declare.
6891 * diagnostic.c (diagnostic_enabled): Factor out from...
6892 (diagnostic_report_diagnostic): ...here.
6893 (warning_enabled_at): New.
6895 2021-06-01 Aldy Hernandez <aldyh@redhat.com>
6897 * gimple-ssa-evrp.c: Enable exporting of global ranges.
6899 2021-06-01 Martin Liska <mliska@suse.cz>
6902 * doc/invoke.texi: Mention that -fgcse-after-reload
6903 is enabled with -O3.
6905 2021-06-01 liuhongt <hongtao.liu@intel.com>
6907 PR tree-optimization/98365
6908 * tree-if-conv.c (strip_nop_cond_scalar_reduction): New function.
6909 (is_cond_scalar_reduction): Handle nop_expr in cond scalar reduction.
6910 (convert_scalar_cond_reduction): Ditto.
6911 (predicate_scalar_phi): Ditto.
6913 2021-06-01 Andrew MacLeod <amacleod@redhat.com>
6915 PR tree-optimization/100781
6916 * gimple-range-cache.cc (ranger_cache::ranger_cache): Enable new
6917 value calculation by default.
6918 (ranger_cache::enable_new_values): New.
6919 (ranger_cache::disable_new_values): New.
6920 (ranger_cache::push_poor_value): Check if new values are allowed.
6921 * gimple-range-cache.h (class ranger_cache): New member/methods.
6922 * gimple-range.cc (gimple_ranger::range_of_expr): Check for debug
6923 statement, and disable/renable new value calculation.
6925 2021-06-01 Andrew MacLeod <amacleod@redhat.com>
6927 * gimple-range-cache.cc (ranger_cache::ssa_range_in_bb): Delete.
6928 (ranger_cache::range_of_def): New.
6929 (ranger_cache::entry_range): New.
6930 (ranger_cache::exit_range): New.
6931 (ranger_cache::range_of_expr): Adjust.
6932 (ranger_cache::range_on_edge): Adjust.
6933 (ranger_cache::propagate_cache): Call exit_range directly.
6934 * gimple-range-cache.h (class ranger_cache): Adjust.
6936 2021-06-01 Andrew MacLeod <amacleod@redhat.com>
6938 * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust for
6939 gori_compute being a member rather than base class.
6940 dervied call to member call.
6941 (ranger_cache::dump): No longer dump gori_map.
6942 (ranger_cache::dump_bb): New.
6943 (ranger_cache::get_non_stale_global_range): Adjust for gori_compute
6944 being a member rather than base class.
6945 (ranger_cache::set_global_range): Ditto.
6946 (ranger_cache::ssa_range_in_bb): Ditto.
6947 (ranger_cache::range_of_expr): New.
6948 (ranger_cache::range_on_edge): New.
6949 (ranger_cache::block_range): Adjust for gori_computes. Debug changes.
6950 (ranger_cache::propagate_cache): Adjust debugging output.
6951 (ranger_cache::fill_block_cache): Adjust for gori_computes. Debug
6953 * gimple-range-cache.h (class ranger_cache): Make gori_compute a
6954 member, and inherit from range_query instead.
6955 (ranger_cache::dump_bb): New. split from dump.
6956 * gimple-range-gori.cc (gori_compute::ssa_range_in_bb): Delete.
6957 (gori_compute::expr_range_at_stmt): Delete.
6958 (gori_compute::compute_name_range_op): Delete.
6959 (gori_compute::compute_operand_range_switch): Add fur_source.
6960 (gori_compute::compute_operand_range): Add fur_source param, inline
6961 old compute_name_range_op and optimize_logical_operands.
6962 (struct tf_range): Delete.
6963 (gori_compute::logical_combine): Adjust
6964 (gori_compute::optimize_logical_operands): Delete.
6965 (gori_compute::compute_logical_operands_in_chain): Delete.
6966 (gori_compute::compute_logical_operands): Adjust.
6967 (gori_compute::compute_operand1_range): Adjust to fur_source.
6968 (gori_compute::compute_operand2_range): Ditto.
6969 (gori_compute::compute_operand1_and_operand2_range): Ditto.
6970 (gori_compute::outgoing_edge_range_p): Add range_query parameter,
6971 and adjust to fur_source.
6972 * gimple-range-gori.h (class gori_compute): Simplify and adjust to
6973 range_query and fur_source.
6974 * gimple-range.cc (gimple_ranger::range_on_edge): Query range_on_edge
6975 from the ranger_cache..
6976 (gimple_ranger::fold_range_internal): Adjust to base class change of
6978 (gimple_ranger::dump_bb): Adjust dump.
6979 * gimple-range.h (gimple_ranger):export gori computes object.
6981 2021-06-01 Andrew MacLeod <amacleod@redhat.com>
6983 PR tree-optimization/100774
6984 * gimple-range-cache.cc (ranger_cache::get_non_stale_global_range):
6985 Constant values are also not stale.
6986 (ranger_cache::set_global_range): Range invariant values should also
6987 have the correct timestamp.
6989 2021-05-31 Martin Liska <mliska@suse.cz>
6991 * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
6992 Unpack FUNCTION_DECL_DECL_TYPE.
6993 * tree-streamer-out.c (pack_ts_function_decl_value_fields):
6994 Stream FUNCTION_DECL_DECL_TYPE instead of
6995 DECL_IS_OPERATOR_NEW_P.
6996 * tree.h (set_function_decl_type): Use FUNCTION_DECL_DECL_TYPE
6998 (DECL_IS_OPERATOR_NEW_P): Likewise.
6999 (DECL_IS_OPERATOR_DELETE_P): Likewise.
7000 (DECL_LAMBDA_FUNCTION_P): Likewise.
7002 2021-05-31 Richard Biener <rguenther@suse.de>
7005 * internal-fn.c (expand_SHUFFLEVECTOR): Define.
7006 * internal-fn.def (SHUFFLEVECTOR): New.
7007 * internal-fn.h (expand_SHUFFLEVECTOR): Declare.
7008 * doc/extend.texi: Document __builtin_shufflevector.
7010 2021-05-31 Peter Bergner <bergner@linux.ibm.com>
7013 * config/rs6000/predicates.md(mma_assemble_input_operand): Allow
7014 indexed form addresses.
7016 2021-05-29 Jeff Law <jlaw@tachyum.com>
7018 * config/h8300/h8300.c (h8300_emit_stack_adjustment): Drop unused
7019 parameter. Call callers fixed.
7021 (output_plussi): Add FALLTHRU markers.
7022 (h8300_shift_needs_scratch_p): Add gcc_unreachable marker.
7024 2021-05-29 Jakub Jelinek <jakub@redhat.com>
7027 * gimplify.c (gimplify_scan_omp_clauses): For taskloop simd
7028 combined with parallel, make sure to add shared clause to
7029 parallel for explicit linear clause.
7031 2021-05-29 Aldy Hernandez <aldyh@redhat.com>
7033 PR tree-optimization/100787
7034 * gimple-ssa-evrp.c: Disable exporting of global ranges.
7036 2021-05-28 Jason Merrill <jason@redhat.com>
7038 * tree-iterator.h (struct tree_stmt_iterator): Add operator++,
7039 operator--, operator*, operator==, and operator!=.
7040 (class tsi_range): New.
7042 2021-05-28 Richard Biener <rguenther@suse.de>
7044 PR tree-optimization/100778
7045 * tree-vect-slp.c (vect_build_slp_tree_1): Prevent possibly
7046 trapping ops in different BBs.
7048 2021-05-28 Richard Biener <rguenther@suse.de>
7051 * tree-inline.c (copy_bb): When processing __builtin_va_arg_pack
7052 copy fntype from original call.
7054 2021-05-28 Martin Liska <mliska@suse.cz>
7056 PR gcov-profile/100751
7057 * doc/gcov.texi: Revert partially a hunk that was wrong.
7059 2021-05-28 Cooper Qu <cooper.qu@linux.alibaba.com>
7061 * config/csky/csky-linux-elf.h (HAVE_sync_compare_and_swapqi):
7063 (HAVE_sync_compare_and_swaphi): Likewise.
7064 (HAVE_sync_compare_and_swapsi): Likewise.
7066 2021-05-28 Jakub Jelinek <jakub@redhat.com>
7069 * tree.h (OMP_CLAUSE_MAP_IMPLICIT): Define.
7071 2021-05-28 Tobias Burnus <tobias@codesourcery.com>
7073 * gimplify.c (gimplify_omp_affinity): New.
7074 (gimplify_scan_omp_clauses): Call it; remove affinity clause afterwards.
7075 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_AFFINITY.
7076 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_AFFINITY.
7077 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add clause.
7078 (walk_tree_1): Handle OMP_CLAUSE_AFFINITY.
7080 2021-05-28 Joern Rennecke <joern.rennecke@riscy-ip.com>
7081 Richard Biener <rguenther@suse.de>
7083 * match.pd <popcount & / + pattern matching>:
7084 When generating popcount directly fails, try doing it in two halves.
7086 2021-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
7088 * Makefile.in (generated_files): Add gimple-match.c and
7091 2021-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
7093 * gensupport.c (alter_predicate_for_insn): Handle MATCH_DUP.
7095 2021-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
7097 * gensupport.c (alter_constraints): Add MATCH_SCRATCH case.
7099 2021-05-28 Kewen Lin <linkw@linux.ibm.com>
7101 PR tree-optimization/99398
7102 * tree-ssa-forwprop.c (simplify_permutation): Optimize some cases
7103 where the fed operands are CTOR/CST and propagated through
7104 VIEW_CONVERT_EXPR. Call vec_perm_indices::new_shrunk_vector.
7105 * vec-perm-indices.c (vec_perm_indices::new_shrunk_vector): New
7107 * vec-perm-indices.h (vec_perm_indices::new_shrunk_vector): New
7110 2021-05-27 Uroš Bizjak <ubizjak@gmail.com>
7112 * config/i386/mmx.md (addv2sf3): Do not call
7113 ix86_fixup_binary_operands_no_copy.
7116 (<smaxmin:code>v2sf3): Ditto.
7117 (<plusminus:insn><MMXMODEI:mode>3): Ditto.
7118 (<plusminus:insn><VI_32:mode>3): Remove expander.
7119 (<plusminus:insn><VI_32:mode>3): Rename from
7120 "*<plusminus:insn><VI_32:mode>3".
7121 (mulv4hi): Do not call ix86_fixup_binary_operands_no_copy.
7122 (mulv2hi3): Remove expander.
7123 (mulv2hi3): Rename from *mulv2hi3.
7124 (<s>mulv2hi3_highpart): Remove expander.
7125 (<s>mulv2hi3_highpart): Rename from *<s>mulv2hi3_highpart.
7126 (<smaxmin:code><MMXMODE14:mode>3): Rename from
7127 "*mmx_<smaxmin:code><MMXMODE14:mode>3".
7128 (<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Remove expander.
7129 (SMAXMIN_MMXMODEI): Remove mode iterator.
7130 (<smaxmin:code>v4hi3): New expander.
7131 (<smaxmin:code>v4qi3): Rename from *<smaxmin:code>v4qi3.
7132 (<smaxmin:code>v2hi3): Rename from *<smaxmin:code>v2hi3.
7133 (<smaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander.
7134 (SMAXMIN_VI_32): Remove mode iterator.
7135 (<umaxmin:code><MMXMODE24:mode>3): Rename from
7136 "*mmx_<umaxmin:code><MMXMODE24:mode>3".
7137 (<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Remove expander.
7138 (UMAXMIN_MMXMODEI): Remove mode iterator.
7139 (<umaxmin:code>v8qi3): New expander.
7140 (<umaxmin:code>v4qi3): Rename from *<umaxmin:code>v4qi3.
7141 (<umaxmin:code>v2hi3): Rename from *<umaxmin:code>v2hi3.
7142 (<umaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander.
7143 (UMAXMIN_VI_32): Remove mode iterator.
7144 (<any_shift:insn>v2hi3): Remove expander.
7145 (<any_shift:insn>v2hi3): Rename from *<any_shift:insn>v2hi3.
7146 (<any_logic:code><MMXMODEI:mode>3): Do not call
7147 ix86_fixup_binary_operands_no_copy.
7148 (<any_logic:code><VI_32:mode>3): Remove expander.
7149 (<any_logic:code><VI_32:mode>3): Rename from
7150 "*<any_logic:code><VI_32:mode>3".
7151 (uavg<mode>3_ceil): Do not call ix86_fixup_binary_operands_no_copy.
7152 * config/i386/sse.md (div<VF2:mode>3): Do not call
7153 ix86_fixup_binary_operands_no_copy.
7154 (div<VF1:mode>3): Ditto.
7155 (<maxmin:code><VI8_AVX2_AVX512F:mode>3): Ditto.
7156 (smulhrsv4hi3): Ditto.
7157 (smulhrsv2hi3): Ditto.
7159 2021-05-27 Martin Sebor <msebor@redhat.com>
7161 * ggc.h (gt_ggc_mx): Add overloads for all integers.
7163 * hash-map.h (class hash_map): Add pch_nx_helper overloads for all
7165 (hash_map::operator==): New function.
7167 2021-05-27 Uroš Bizjak <ubizjak@gmail.com>
7170 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
7171 For TARGET_XOP bypass SSE comparisons for all supported vector modes.
7172 * config/i386/mmx.md (*xop_maskcmp<MMXMODEI:mode>3): New insn pattern.
7173 (*xop_maskcmp<VI_32:mode>3): Ditto.
7174 (*xop_maskcmp_uns<MMXMODEI:mode>3): Ditto.
7175 (*xop_maskcmp_uns<VI_32:mode>3): Ditto.
7177 2021-05-27 Richard Earnshaw <rearnsha@arm.com>
7180 * config/arm/arm.c (arm_configure_build_target): Remove parameter
7181 opts_set, directly check opts parameters for being non-null.
7182 (arm_option_restore): Update call to arm_configure_build_target.
7183 (arm_option_override): Likewise.
7184 (arm_can_inline_p): Likewise.
7185 (arm_valid_target_attribute_tree): Likewise.
7186 * config/arm/arm-c.c (arm_pragma_target_parse): Likewise.
7187 * config/arm/arm-protos.h (arm_configure_build_target): Adjust
7190 2021-05-27 Aldy Hernandez <aldyh@redhat.com>
7192 * vr-values.c (simplify_conversion_using_ranges): Use
7193 get_range_query instead of get_global_range_query.
7195 2021-05-27 Aldy Hernandez <aldyh@redhat.com>
7197 * gimple-range.cc (get_range_global): Move to value-query.cc.
7198 (gimple_range_global): Same.
7199 (get_global_range_query): Same.
7200 (global_range_query::range_of_expr): Same.
7201 * gimple-range.h (class global_range_query): Move to
7203 (gimple_range_global): Same.
7204 * tree-ssanames.c (get_range_info): Move to value-query.cc.
7205 (get_ptr_nonnull): Same.
7206 * tree-ssanames.h (get_range_info): Remove.
7207 (get_ptr_nonnull): Remove.
7208 * value-query.cc (get_ssa_name_range_info): Move from
7210 (get_ssa_name_ptr_info_nonnull): Same.
7211 (get_range_global): Move from gimple-range.cc.
7212 (gimple_range_global): Same.
7213 (get_global_range_query): Same.
7214 (global_range_query::range_of_expr): Same.
7215 * value-query.h (class global_range_query): Move from
7217 (gimple_range_global): Same.
7219 2021-05-27 Uroš Bizjak <ubizjak@gmail.com>
7222 * config/i386/mmx.md (uavgv4qi3_ceil): New insn pattern.
7223 (uavgv2hi3_ceil): Ditto.
7225 2021-05-26 Eric Botcazou <ebotcazou@adacore.com>
7228 * doc/extend.texi (scalar_storage_order): Rephrase slightly.
7230 2021-05-26 Aldy Hernandez <aldyh@redhat.com>
7232 * tree-ssanames.c (get_range_info): Merge both copies of
7233 get_range_info into one that works with irange.
7234 * tree-ssanames.h (get_range_info): Remove version that works on
7237 2021-05-26 Aldy Hernandez <aldyh@redhat.com>
7239 * builtins.c (check_nul_terminated_array): Convert to get_range_query.
7240 (expand_builtin_strnlen): Same.
7241 (determine_block_size): Same.
7242 * fold-const.c (expr_not_equal_to): Same.
7243 * gimple-fold.c (size_must_be_zero_p): Same.
7244 * gimple-match-head.c: Include gimple-range.h.
7245 * gimple-pretty-print.c (dump_ssaname_info): Convert to get_range_query.
7246 * gimple-ssa-warn-restrict.c
7247 (builtin_memref::extend_offset_range): Same.
7248 * graphite-sese-to-poly.c (add_param_constraints): Same.
7249 * internal-fn.c (get_min_precision): Same.
7250 * ipa-fnsummary.c (set_switch_stmt_execution_predicate): Same.
7251 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Same.
7253 * tree-data-ref.c (split_constant_offset): Same.
7254 (dr_step_indicator): Same.
7255 * tree-dfa.c (get_ref_base_and_extent): Same.
7256 * tree-scalar-evolution.c (iv_can_overflow_p): Same.
7257 * tree-ssa-loop-niter.c (refine_value_range_using_guard): Same.
7258 (determine_value_range): Same.
7259 (record_nonwrapping_iv): Same.
7260 (infer_loop_bounds_from_signedness): Same.
7261 (scev_var_range_cant_overflow): Same.
7262 * tree-ssa-phiopt.c (two_value_replacement): Same.
7263 * tree-ssa-pre.c (insert_into_preds_of_block): Same.
7264 * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Same.
7265 * tree-ssa-strlen.c (handle_builtin_stxncpy_strncat): Same.
7267 (dump_strlen_info): Same.
7268 (set_strlen_range): Same.
7269 (maybe_diag_stxncpy_trunc): Same.
7270 (get_len_or_size): Same.
7271 (handle_integral_assign): Same.
7272 * tree-ssa-structalias.c (find_what_p_points_to): Same.
7273 * tree-ssa-uninit.c (find_var_cmp_const): Same.
7274 * tree-switch-conversion.c (bit_test_cluster::emit): Same.
7275 * tree-vect-patterns.c (vect_get_range_info): Same.
7276 (vect_recog_divmod_pattern): Same.
7277 * tree-vrp.c (intersect_range_with_nonzero_bits): Same.
7278 (register_edge_assert_for_2): Same.
7279 (determine_value_range_1): Same.
7280 * tree.c (get_range_pos_neg): Same.
7281 * vr-values.c (vr_values::get_lattice_entry): Same.
7282 (vr_values::update_value_range): Same.
7283 (simplify_conversion_using_ranges): Same.
7285 2021-05-26 Aldy Hernandez <aldyh@redhat.com>
7287 * gimple-ssa-warn-alloca.c (alloca_call_type): Use
7288 get_range_query instead of query argument.
7289 (pass_walloca::execute): Enable and disable global ranger.
7291 2021-05-26 Aldy Hernandez <aldyh@redhat.com>
7293 * gimple-ssa-evrp.c (rvrp_folder::rvrp_folder): Call
7295 (rvrp_folder::~rvrp_folder): Call disable_ranger.
7296 (hybrid_folder::hybrid_folder): Call enable_ranger.
7297 (hybrid_folder::~hybrid_folder): Call disable_ranger.
7299 2021-05-26 Aldy Hernandez <aldyh@redhat.com>
7301 * function.c (allocate_struct_function): Set cfun->x_range_query.
7302 * function.h (struct function): Declare x_range_query.
7303 (get_range_query): New.
7304 (get_global_range_query): New.
7305 * gimple-range-cache.cc (ssa_global_cache::ssa_global_cache):
7306 Remove call to safe_grow_cleared.
7307 * gimple-range.cc (get_range_global): New.
7308 (gimple_range_global): Move from gimple-range.h.
7309 (get_global_range_query): New.
7310 (global_range_query::range_of_expr): New.
7311 (enable_ranger): New.
7312 (disable_ranger): New.
7313 * gimple-range.h (gimple_range_global): Move to gimple-range.cc.
7314 (class global_range_query): New.
7315 (enable_ranger): New.
7316 (disable_ranger): New.
7317 * gimple-ssa-evrp.c (evrp_folder::~evrp_folder): Rename
7318 dump_all_value_ranges to dump.
7319 * tree-vrp.c (vrp_prop::finalize): Same.
7320 * value-query.cc (range_query::dump): New.
7321 * value-query.h (range_query::dump): New.
7322 * vr-values.c (vr_values::dump_all_value_ranges): Rename to...
7323 (vr_values::dump): ...this.
7324 * vr-values.h (class vr_values): Rename dump_all_value_ranges to
7325 dump and make virtual.
7327 2021-05-26 Uroš Bizjak <ubizjak@gmail.com>
7329 * config/i386/i386.c (ix86_autovectorize_vector_modes):
7330 Add V4QImode and V16QImode for TARGET_SSE2.
7331 * doc/sourcebuild.texi (Vector-specific attributes):
7332 Add vect64 and vect32 description.
7334 2021-05-26 Bernd Edlinger <bernd.edlinger@hotmail.de>
7336 * gimple-range-gori.cc (range_def_chain::register_dependency):
7337 Resize m_def_chain when needed.
7339 2021-05-26 Christophe Lyon <christophe.lyon@linaro.org>
7341 * config/arm/mve.md (mve_vaddvq_<supf><mode>): Prefix with '@'.
7342 * config/arm/neon.md (reduc_plus_scal_<mode>): Move to ..
7343 * config/arm/vec-common.md: .. here. Add support for MVE.
7345 2021-05-26 Jakub Jelinek <jakub@redhat.com>
7347 * config/epiphany/epiphany.c (epiphany_print_operand_address): Remove
7349 * config/microblaze/microblaze.c (microblaze_legitimize_address,
7351 microblaze_option_override, print_operand): Likewise.
7352 * config/microblaze/microblaze.md (call_internal_plt,
7353 call_value_intern_plt, call_value_intern): Likewise.
7354 * config/arm/aout.h (ASM_OUTPUT_ALIGN): Likewise.
7355 * config/iq2000/iq2000.md (call_internal1, call_value_internal1,
7356 call_value_multiple_internal1): Likewise.
7357 * config/bfin/bfin.c (symbolic_reference_mentioned_p): Likewise.
7359 2021-05-26 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7361 * config/arc/arc.c (arc_address_cost, arc_print_operand_address,
7362 arc_ccfsm_advance, symbolic_reference_mentioned_p,
7363 arc_raw_symbolic_reference_mentioned_p): Remove register
7366 2021-05-26 Jakub Jelinek <jakub@redhat.com>
7369 * omp-low.c: Include omp-offload.h.
7370 (create_omp_child_function): If current_function_decl has
7371 "omp declare target" attribute and is_gimple_omp_offloaded,
7372 remove that attribute from the copy of attribute list and
7373 add "omp target entrypoint" attribute instead.
7374 (lower_omp_target): Mark .omp_data_sizes.* and .omp_data_kinds.*
7375 variables for offloading if in omp_maybe_offloaded_ctx.
7376 * omp-offload.c (pass_omp_target_link::execute): Nullify second
7377 argument to GOMP_target_data_ext in offloaded code.
7379 2021-05-26 Geng Qi <gengqi@linux.alibaba.com>
7381 * config/csky/csky.c (csky_can_change_mode_class): Delete.
7382 For csky, HF/SF mode use the low bits of VREGS.
7384 2021-05-26 Eric Botcazou <ebotcazou@adacore.com>
7386 * gimplify.c (gimplify_decl_expr): Do not clear TREE_READONLY on a
7387 DECL which is a reference for OMP.
7389 2021-05-26 Martin Liska <mliska@suse.cz>
7391 PR gcov-profile/100751
7392 * doc/gcov.texi: Document that __gcov_dump can be called just
7393 once and that __gcov_reset resets run-time counters.
7395 2021-05-26 Martin Liska <mliska@suse.cz>
7397 * doc/install.texi: Port relevant part from install-old.texi
7398 and re-generate list of CPUs and systems.
7400 2021-05-26 Martin Liska <mliska@suse.cz>
7402 * Makefile.in: Remove it.
7403 * doc/include/fdl.texi: Update next/previous chapters.
7404 * doc/install.texi: Likewise.
7405 * doc/install-old.texi: Removed.
7407 2021-05-26 Geng Qi <gengqi@linux.alibaba.com>
7409 * config/csky/csky.c (ck810_legitimate_index_p): Support
7410 "base + index" with DF mode.
7411 * config/csky/constraints.md ("Y"): New constraint for memory operands
7412 without index register.
7413 * config/csky/csky_insn_fpuv2.md (fpuv3_movdf): Use "Y" instead of "m"
7414 when mov between memory and general registers, and lower their priority.
7415 * config/csky/csky_insn_fpuv3.md (fpuv2_movdf): Likewise.
7417 2021-05-26 Geng Qi <gengqi@linux.alibaba.com>
7419 * config/csky/csky.c (TARGET_PROMOTE_PROTOTYPES): Delete.
7421 2021-05-26 Geng Qi <gengqi@linux.alibaba.com>
7423 * config/csky/csky.md (untyped_call): Emit clobber for return
7424 registers to mark them used.
7426 2021-05-26 Geng Qi <gengqi@linux.alibaba.com>
7428 * config/csky/csky.md (cskyv2_sextend_ldbs): New.
7430 2021-05-26 Andrew Pinski <apinski@marvell.com>
7432 * match.pd (x < 0 ? ~y : y): New patterns.
7434 2021-05-26 Andrew Pinski <apinski@marvell.com>
7436 * match.pd (A?CST1:CST2): Add simplifcations for A?0:+-1, A?+-1:0,
7437 A?POW2:0 and A?0:POW2.
7439 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
7441 * gimple-range-gori.cc (class logical_stmt_cache): Delete
7442 (logical_stmt_cache::logical_stmt_cache ): Delete.
7443 (logical_stmt_cache::~logical_stmt_cache): Delete.
7444 (logical_stmt_cache::cache_entry::dump): Delete.
7445 (logical_stmt_cache::get_range): Delete.
7446 (logical_stmt_cache::cached_name ): Delete.
7447 (logical_stmt_cache::same_cached_name): Delete.
7448 (logical_stmt_cache::cacheable_p): Delete.
7449 (logical_stmt_cache::slot_diagnostics ): Delete.
7450 (logical_stmt_cache::dump): Delete.
7451 (gori_compute_cache::gori_compute_cache): Delete.
7452 (gori_compute_cache::~gori_compute_cache): Delete.
7453 (gori_compute_cache::compute_operand_range): Delete.
7454 (gori_compute_cache::cache_stmt): Delete.
7455 * gimple-range-gori.h (gori_compute::compute_operand_range): Remove
7457 (class gori_compute_cache): Delete.
7459 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
7461 * gimple-range.cc (fold_using_range::range_of_range_op): Use m_gori
7463 (fold_using_range::range_of_address): Adjust.
7464 (fold_using_range::range_of_phi): Adjust.
7465 * gimple-range.h (class fur_source): Adjust.
7466 (fur_source::fur_source): Adjust.
7468 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
7470 * gimple-range-gori.cc (gori_compute::expr_range_at_stmt): Rename
7471 from expr_range_in_bb and adjust.
7472 (gori_compute::compute_name_range_op): Adjust.
7473 (gori_compute::optimize_logical_operands): Adjust.
7474 (gori_compute::compute_logical_operands_in_chain): Adjust.
7475 (gori_compute::compute_operand1_range): Adjust.
7476 (gori_compute::compute_operand2_range): Adjust.
7477 (ori_compute_cache::cache_stmt): Adjust.
7478 * gimple-range-gori.h (gori_compute): Rename prototype.
7480 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
7482 * gimple-range.cc (gimple_ranger::range_of_expr): Non-null should be
7483 checked only after range_of_stmt, not range_on_entry.
7484 (gimple_ranger::range_on_entry): Check for non-null in any
7485 predecessor block, if it is not already non-null.
7486 (gimple_ranger::range_on_exit): DOnt check for non-null after
7487 range on entry call.
7488 (gimple_ranger::dump_bb): New. Split from dump.
7489 (gimple_ranger::dump): Adjust.
7490 * gimple-range.h (class gimple_ranger): Adjust.
7492 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
7494 * gimple-range-cache.cc (struct range_timestamp): Delete.
7495 (class temporal_cache): Adjust.
7496 (temporal_cache::get_timestamp): Delete.
7497 (temporal_cache::set_dependency): Delete.
7498 (temporal_cache::temporal_value): Adjust.
7499 (temporal_cache::current_p): Take dependencies as params.
7500 (temporal_cache::set_timestamp): Adjust.
7501 (temporal_cache::set_always_current): Adjust.
7502 (ranger_cache::get_non_stale_global_range): Adjust.
7503 (ranger_cache::register_dependency): Delete.
7504 * gimple-range-cache.h (class range_cache): Adjust.
7506 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
7508 * gimple-range-gori.cc (range_def_chain::range_def_chain): init
7510 (range_def_chain::~range_def_chain): Dispose of obstack rather than
7511 each individual bitmap.
7512 (range_def_chain::set_import): New.
7513 (range_def_chain::get_imports): New.
7514 (range_def_chain::chain_import_p): New.
7515 (range_def_chain::register_dependency): Rename from build_def_chain
7517 (range_def_chain::def_chain_in_bitmap_p): New.
7518 (range_def_chain::add_def_chain_to_bitmap): New.
7519 (range_def_chain::has_def_chain): Just check first depenedence.
7520 (range_def_chain::get_def_chain): Process imports, use generic
7521 register_dependency routine.
7522 (range_def_chain::dump): New.
7523 (gori_map::gori_map): Allocate import list.
7524 (gori_map::~gori_map): Release imports.
7525 (gori_map::exports): Check for past allocated block size.
7526 (gori_map::imports): New.
7527 (gori_map::def_chain_in_export_p): Delete.
7528 (gori_map::is_import_p): New.
7529 (gori_map::maybe_add_gori): Handle imports.
7530 (gori_map::dump): Adjust output, add imports.
7531 (gori_compute::has_edge_range_p): Remove def_chain_in_export call.
7532 (gori_export_iterator::gori_export_iterator): New.
7533 (gori_export_iterator::next): New.
7534 (gori_export_iterator::get_name): New.
7535 * gimple-range-gori.h (range_def_chain): Add imports and direct
7536 dependecies via struct rdc.
7537 (range_def_chain::depend1): New.
7538 (range_def_chain::depend2): New.
7539 (class gori_map): Adjust.
7540 (FOR_EACH_GORI_IMPORT_NAME): New.
7541 (FOR_EACH_GORI_EXPORT_NAME): New.
7542 (class gori_export_iterator): New.
7544 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
7546 * gimple-range-cache.cc (ranger_cache::ranger_cache): Move initial
7547 export cache filling to here.
7548 * gimple-range-gori.cc (gori_compute::gori_compute) : From Here.
7550 2021-05-25 Andrew MacLeod <amacleod@redhat.com>
7552 * gimple-range-gori.cc (range_def_chain): Move to gimple-range-gori.h.
7553 (gori_map): Move to gimple-range-gori.h.
7554 (gori_compute::gori_compute): Adjust.
7555 (gori_compute::~gori_compute): Delete.
7556 (gori_compute::compute_operand_range_switch): Adjust.
7557 (gori_compute::compute_operand_range): Adjust.
7558 (gori_compute::compute_logical_operands): Adjust.
7559 (gori_compute::has_edge_range_p ): Adjust.
7560 (gori_compute::set_range_invariant): Delete.
7561 (gori_compute::dump): Adjust.
7562 (gori_compute::outgoing_edge_range_p): Adjust.
7563 * gimple-range-gori.h (class range_def_chain): Relocate here.
7564 (class gori_map): Relocate here.
7565 (class gori_compute): Inherit from gori_map, and adjust.
7567 2021-05-25 Aldy Hernandez <aldyh@redhat.com>
7569 * value-range.cc (range_tests_legacy): Use
7570 build_nonstandard_integer_type instead of int and short.
7572 2021-05-25 Eric Botcazou <ebotcazou@adacore.com>
7574 * gimplify.c (gimplify_decl_expr): Clear TREE_READONLY on the DECL
7575 when really creating an initialization statement for it.
7577 2021-05-25 Eric Botcazou <ebotcazou@adacore.com>
7579 * tree-inline.c (setup_one_parameter): Fix thinko in new condition.
7581 2021-05-25 Kito Cheng <kito.cheng@sifive.com>
7583 * config/riscv/riscv.h (ASM_SPEC): Pass -mno-relax.
7585 2021-05-25 Martin Liska <mliska@suse.cz>
7587 PR tree-optimization/92860
7589 * optc-save-gen.awk: Remove exceptions.
7591 2021-05-25 Martin Liska <mliska@suse.cz>
7593 * asan.h (sanitize_coverage_p): New function.
7594 * doc/extend.texi: Document it.
7595 * fold-const.c (fold_range_test): Use sanitize_flags_p
7596 instead of flag_sanitize_coverage.
7597 (fold_truth_andor): Likewise.
7598 * sancov.c: Likewise.
7599 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
7600 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Handle
7601 -fsanitize-coverage when inlining.
7603 2021-05-25 Cooper Qu <cooper.qu@linux.alibaba.com>
7605 * config/csky/csky-modes.def : Fix copyright.
7607 2021-05-25 Cooper Qu <cooper.qu@linux.alibaba.com>
7609 * config/csky/csky-modes.def : Amend copyright.
7610 * config/csky/csky_insn_fpuv2.md : Likewise.
7611 * config/csky/csky_insn_fpuv3.md : Likewise.
7613 2021-05-25 Richard Biener <rguenther@suse.de>
7615 PR middle-end/100727
7616 * calls.c (initialize_argument_information): Explicitely test
7618 * gimple-expr.c (mark_addressable): Skip outer WITH_SIZE_EXPR.
7620 2021-05-25 Geng Qi <gengqi@linux.alibaba.com>
7622 * config/csky/csky.h (FRAME_POINTER_REGNUM): Use
7623 HARD_FRAME_POINTER_REGNUM and FRAME_POINTER_REGNUM instead of
7624 the signle definition. The signle definition may not work well
7625 at simplify_subreg_regno().
7626 (HARD_FRAME_POINTER_REGNUM): New.
7627 (ELIMINABLE_REGS): Add for HARD_FRAME_POINTER_REGNUM.
7628 * config/csky/csky.c (get_csky_live_regs, csky_can_eliminate,
7629 csky_initial_elimination_offset, csky_expand_prologue,
7630 csky_expand_epilogue): Add for HARD_FRAME_POINTER_REGNUM.
7632 2021-05-25 Geng Qi <gengqi@linux.alibaba.com>
7634 * config/csky/csky.c (csky_option_override):
7635 Init csky_arch_isa_features[] in advance, so TARGET_DSP
7636 and TARGET_DIV can be set well.
7638 2021-05-25 Geng Qi <gengqi@linux.alibaba.com>
7640 * config/csky/constraints.md ("l", "h"): Delete.
7641 * config/csky/csky.h (reg_class, REG_CLASS_NAMES,
7642 REG_CLASS_CONTENTS): Delete LO_REGS and HI_REGS.
7643 * config/csky/csky.c (regno_reg_classm,
7644 csky_secondary_reload, csky_register_move_cost):
7645 Use HILO_REGS instead of LO_REGS and HI_REGS.
7647 2021-05-25 Geng Qi <gengqi@linux.alibaba.com>
7649 * config/csky/constraints.md ("W"): New constriant for mem operand
7650 with base reg, index register.
7651 ("Q"): Renamed and modified "csky_valid_fpuv2_mem_operand" to
7652 "csky_valid_mem_constraint_operand" to deal with both "Q" and "W"
7654 ("Dv"): New constraint for const double value that can be used at
7656 * config/csky/csky-modes.def (HFmode): New mode.
7657 * config/csky/csky-protos.h (csky_valid_fpuv2_mem_operand): Rename
7658 to "csky_valid_mem_constraint_operand" and support new constraint
7660 (csky_get_movedouble_length): New.
7661 (fpuv3_output_move): New.
7662 (fpuv3_const_double): New.
7663 * config/csky/csky.c (csky_option_override): New arch CK860 with fpv3.
7664 (decompose_csky_address): Refine.
7665 (csky_print_operand): New "CONST_DOUBLE" operand.
7666 (csky_output_move): Support fpv3 instructions.
7667 (csky_get_movedouble_length): New.
7668 (fpuv3_output_move): New.
7669 (fpuv3_const_double): New.
7670 (csky_emit_compare): Cover float comparsion.
7671 (csky_emit_compare_float): Refine.
7672 (csky_vaild_fpuv2_mem_operand): Rename to
7673 "csky_valid_mem_constraint_operand" and support new constraint "W".
7674 (ck860_rtx_costs): New.
7675 (csky_rtx_costs): Add the cost calculation of CK860.
7676 (regno_reg_class): New vregs for fpuv3.
7677 (csky_dbx_regno): Likewise.
7678 (csky_cpu_cpp_builtins): New builtin macro for fpuv3.
7679 (csky_conditional_register_usage): Suporrot fpuv3.
7680 (csky_dwarf_register_span): Suporrot fpuv3.
7681 (csky_init_builtins, csky_mangle_type): Support "__fp16" type.
7682 (ck810_legitimate_index_p): Support fp16.
7683 * config/csky/csky.h (TARGET_TLS): ADD CK860.
7684 (CSKY_VREG_P, CSKY_VREG_LO_P, CSKY_VREG_HI_P): Support fpuv3.
7685 (TARGET_SINGLE_FPU): Support fpuv3.
7686 (TARGET_SUPPORT_FPV3): New.
7687 (FIRST_PSEUDO_REGISTER): Change to 202 to hold the new fpuv3 registers.
7688 (FIXED_REGISTERS, CALL_REALLY_USED_REGISTERS, REGISTER_NAMES,
7689 REG_CLASS_CONTENTS): Support fpuv3.
7690 * config/csky/csky.md (movsf): Move to cksy_insn_fpu.md and refine.
7691 (csky_movsf_fpv2): Likewise.
7692 (ck801_movsf): Likewise.
7693 (csky_movsf): Likewise.
7695 (csky_movdf_fpv2): Likewise.
7696 (ck801_movdf): Likewise.
7697 (csky_movdf): Likewise.
7698 (movsicc): Refine. Use "comparison_operatior" instead of
7699 "ordered_comparison_operatior".
7700 (addsicc): Likewise.
7701 (CSKY_FIRST_VFP3_REGNUM, CSKY_LAST_VFP3_REGNUM): New constant.
7702 (call_value_internal_vh): New.
7703 * config/csky/csky_cores.def (CK860): New arch and cpu.
7708 * config/csky/csky_insn_fpu.md: Refactor. Separate all float patterns
7709 into emit-patterns and match-patterns, remain the emit-patterns here,
7710 and move the match-patterns to csky_insn_fpuv2.md or
7712 * config/csky/csky_insn_fpuv2.md: New file for fpuv2 instructions.
7713 * config/csky/csky_insn_fpuv3.md: New file and new patterns for fpuv3
7715 * config/csky/csky_isa.def (fcr): New.
7720 (CK860): New definition for ck860.
7721 * config/csky/csky_tables.opt (ck860): New processors ck860,
7722 ck860f. And new arch ck860.
7727 * config/csky/predicates.md (csky_float_comparsion_operator): Delete
7728 "geu", "gtu", "leu", "ltu", which will never appear at float comparison.
7729 * config/csky/t-csky-elf: Support 860.
7730 * config/csky/t-csky-linux: Likewise.
7731 * doc/md.texi: Add "Q" and "W" constraints for C-SKY.
7733 2021-05-24 Aaron Sawdey <acsawdey@linux.ibm.com>
7735 * config/rs6000/genfusion.pl (gen_logical_addsubf): Refactor to
7736 add generation of logical-add and add-logical fusion pairs.
7737 * config/rs6000/rs6000-cpus.def: Add new fusion to ISA 3.1 mask
7739 * config/rs6000/rs6000.c (rs6000_option_override_internal): Turn on
7740 logical-add and add-logical fusion by default.
7741 * config/rs6000/rs6000.opt: Add -mpower10-fusion-logical-add and
7742 -mpower10-fusion-add-logical options.
7743 * config/rs6000/fusion.md: Regenerate file.
7745 2021-05-24 Aldy Hernandez <aldyh@redhat.com>
7747 * value-range.cc (irange::legacy_equal_p): Check type when
7748 comparing VR_VARYING types.
7749 (range_tests_legacy): Test comparing VARYING ranges of different
7752 2021-05-24 Wilco Dijkstra <wdijkstr@arm.com>
7754 * config/aarch64/aarch64.c (neoversen1_tunings):
7755 Enable AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
7757 2021-05-24 Wilco Dijkstra <wdijkstr@arm.com>
7759 * config/aarch64/aarch64.c (aarch64_classify_symbol): Use GOT for
7760 extern weak symbols. Limit symbol offsets for non-GOT symbols with
7763 2021-05-24 Christophe Lyon <christophe.lyon@linaro.org>
7765 * config/arm/neon.md (vec_load_lanesxi<mode>)
7766 (vec_store_lanexoi<mode>): Move ...
7767 * config/arm/vec-common.md: here.
7769 2021-05-24 Christophe Lyon <christophe.lyon@linaro.org>
7771 * config/arm/neon.md (vec_load_lanesoi<mode>)
7772 (vec_store_lanesoi<mode>): Move ...
7773 * config/arm/vec-common.md: here.
7775 2021-05-24 liuhongt <hongtao.liu@intel.com>
7778 * config/i386/i386.c (ix86_gimple_fold_builtin): Replacing
7779 stmt with GIMPLE_NOP when lhs doesn't exist.
7781 2021-05-23 Uroš Bizjak <ubizjak@gmail.com>
7784 * config/i386/mmx.md (*push<VI_32:mode>2_rex64):
7785 New instruction pattern.
7786 (*push<VI_32:mode>2): Ditto.
7787 (push splitter for SSE registers): New splitter.
7789 2021-05-23 Andrew Pinski <apinski@marvell.com>
7791 * match.pd ((A & C) != 0 ? D : 0): Limit to non pointer types.
7793 2021-05-22 Aaron Sawdey <acsawdey@linux.ibm.com>
7795 * config/rs6000/genfusion.pl (gen_addadd): Fix incorrect attr types.
7796 * config/rs6000/fusion.md: Regenerate file.
7798 2021-05-21 Aaron Sawdey <acsawdey@linux.ibm.com>
7800 * config/rs6000/genfusion.pl (gen_addadd): New function.
7801 * config/rs6000/fusion.md: Regenerate file.
7802 * config/rs6000/rs6000-cpus.def: Add
7803 OPTION_MASK_P10_FUSION_2ADD to masks.
7804 * config/rs6000/rs6000.c (rs6000_option_override_internal):
7805 Handle default value of OPTION_MASK_P10_FUSION_2ADD.
7806 * config/rs6000/rs6000.opt: Add -mpower10-fusion-2add.
7808 2021-05-21 Jakub Jelinek <jakub@redhat.com>
7811 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET): Define.
7812 * gimplify.c (enum gimplify_omp_var_data): Fix up
7813 GOVD_MAP_HAS_ATTACHMENTS value, add GOVD_FIRSTPRIVATE_IMPLICIT.
7814 (omp_lastprivate_for_combined_outer_constructs): If combined target
7815 has GOVD_FIRSTPRIVATE_IMPLICIT set for the decl, change it to
7816 GOVD_MAP | GOVD_SEEN.
7817 (gimplify_scan_omp_clauses): Set GOVD_FIRSTPRIVATE_IMPLICIT for
7818 firstprivate clauses with OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT.
7819 (gimplify_adjust_omp_clauses): For firstprivate clauses with
7820 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT either clear that bit and
7821 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET too, or remove it and
7822 let it be replaced by implicit map clause.
7824 2021-05-21 Jakub Jelinek <jakub@redhat.com>
7827 * gimplify.c (omp_lastprivate_for_combined_outer_constructs): New
7829 (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LASTPRIVATE>: Use it.
7830 (gimplify_omp_for): Likewise.
7832 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
7835 * omp-low.c (oacc_privatization_candidate_p): Reject 'static',
7836 'external' in blocks.
7838 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
7841 * flag-types.h (enum openacc_privatization): New.
7842 * params.opt (-param=openacc-privatization): New.
7843 * doc/invoke.texi (openacc-privatization): Document it.
7844 * omp-general.h (get_openacc_privatization_dump_flags): New
7846 * omp-low.c (oacc_privatization_candidate_p): Add diagnostics.
7847 * omp-offload.c (execute_oacc_device_lower)
7848 <IFN_UNIQUE_OACC_PRIVATE>: Re-work diagnostics.
7849 * target.def (goacc.adjust_private_decl): Add 'location_t'
7851 * doc/tm.texi: Regenerate.
7852 * config/gcn/gcn-protos.h (gcn_goacc_adjust_private_decl): Adjust.
7853 * config/gcn/gcn-tree.c (gcn_goacc_adjust_private_decl): Likewise.
7854 * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl):
7855 Likewise. Preserve it for...
7856 (nvptx_goacc_expand_var_decl): ... use here.
7858 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
7860 * doc/sourcebuild.texi (Other attributes): Document '__OPTIMIZE__'
7863 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
7866 * omp-low.c (oacc_privatization_candidate_p): New function.
7867 (oacc_privatization_scan_clause_chain)
7868 (oacc_privatization_scan_decl_chain): Use it. Also
7869 'gcc_checking_assert' that we're not seeing duplicates.
7871 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
7874 * omp-offload.c (execute_oacc_device_lower): Skip processing if no
7877 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
7880 * omp-offload.c (execute_oacc_device_lower): Explain.
7882 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
7885 * omp-offload.c (execute_oacc_device_lower)
7886 <IFN_UNIQUE_OACC_PRIVATE>: Diagnose and handle for 'level == -1'
7888 * internal-fn.c (expand_UNIQUE): Don't expect
7889 'IFN_UNIQUE_OACC_PRIVATE'.
7891 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
7894 * omp-low.c (lower_omp_for): Don't evaluate OpenMP 'for' clauses.
7896 2021-05-21 Thomas Schwinge <thomas@codesourcery.com>
7899 * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl)
7900 (nvptx_goacc_expand_var_decl): Tighten.
7902 2021-05-21 Julian Brown <julian@codesourcery.com>
7903 Chung-Lin Tang <cltang@codesourcery.com>
7904 Thomas Schwinge <thomas@codesourcery.com>
7907 * doc/tm.texi.in (TARGET_GOACC_EXPAND_VAR_DECL)
7908 (TARGET_GOACC_ADJUST_PRIVATE_DECL): Add documentation hooks.
7909 * doc/tm.texi: Regenerate.
7910 * expr.c (expand_expr_real_1): Expand decls using the
7911 expand_var_decl OpenACC hook if defined.
7912 * internal-fn.c (expand_UNIQUE): Handle IFN_UNIQUE_OACC_PRIVATE.
7913 * internal-fn.h (IFN_UNIQUE_CODES): Add OACC_PRIVATE.
7914 * omp-low.c (omp_context): Add oacc_privatization_candidates
7916 (lower_oacc_reductions): Add PRIVATE_MARKER parameter. Insert
7918 (lower_oacc_head_tail): Add PRIVATE_MARKER parameter. Modify
7919 private marker's gimple call arguments, and pass it to
7920 lower_oacc_reductions.
7921 (oacc_privatization_scan_clause_chain)
7922 (oacc_privatization_scan_decl_chain, lower_oacc_private_marker):
7924 (lower_omp_for, lower_omp_target, lower_omp_1): Use these.
7925 * omp-offload.c (convert.h): Include.
7926 (oacc_loop_xform_head_tail): Treat private-variable markers like
7927 fork/join when transforming head/tail sequences.
7928 (struct var_decl_rewrite_info): Add struct.
7929 (oacc_rewrite_var_decl, is_sync_builtin_call): New functions.
7930 (execute_oacc_device_lower): Support rewriting gang-private
7931 variables using target hook, and fix up addr_expr and var_decl
7933 * target.def (adjust_private_decl, expand_var_decl): New hooks.
7934 * config/gcn/gcn-protos.h (gcn_goacc_adjust_gangprivate_decl):
7936 (gcn_goacc_adjust_private_decl): ...this.
7937 * config/gcn/gcn-tree.c (gcn_goacc_adjust_gangprivate_decl):
7939 (gcn_goacc_adjust_private_decl): ...this. Add LEVEL parameter.
7940 * config/gcn/gcn.c (TARGET_GOACC_ADJUST_GANGPRIVATE_DECL): Rename
7941 definition using gcn_goacc_adjust_gangprivate_decl...
7942 (TARGET_GOACC_ADJUST_PRIVATE_DECL): ...to this, using
7943 gcn_goacc_adjust_private_decl.
7944 * config/nvptx/nvptx.c (tree-pretty-print.h): Include.
7945 (gang_private_shared_size): New global variable.
7946 (gang_private_shared_align): Likewise.
7947 (gang_private_shared_sym): Likewise.
7948 (gang_private_shared_hmap): Likewise.
7949 (nvptx_option_override): Initialize these.
7950 (nvptx_file_end): Output gang_private_shared_sym.
7951 (nvptx_goacc_adjust_private_decl, nvptx_goacc_expand_var_decl):
7953 (nvptx_set_current_function): Clear gang_private_shared_hmap.
7954 (TARGET_GOACC_ADJUST_PRIVATE_DECL): Define hook.
7955 (TARGET_GOACC_EXPAND_VAR_DECL): Likewise.
7957 2021-05-21 H.J. Lu <hjl.tools@gmail.com>
7959 * config/i386/i386-modes.def (MAX_BITSIZE_MODE_ANY_INT): Removed.
7961 2021-05-21 Richard Biener <rguenther@suse.de>
7962 H.J. Lu <hjl.tools@gmail.com>
7965 * expr.c (expand_constructor): Elide expand_constructor if
7966 move by pieces is preferred.
7968 2021-05-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7970 * config/aarch64/aarch64-builtins.c (aarch64_call_properties):
7971 Take a flag and mode value as arguments.
7972 (aarch64_modifies_global_state_p): Likewise.
7973 (aarch64_reads_global_state_p): Likewise.
7974 (aarch64_could_trap_p): Likewise.
7975 (aarch64_get_attributes): Likewise.
7976 (aarch64_init_simd_builtins): Adjust callsite of above.
7977 (aarch64_init_fcmla_laneq_builtins): Use aarch64_get_attributes to get
7978 function attributes to apply to builtins.
7979 (aarch64_init_crc32_builtins): Likewise.
7980 (aarch64_init_builtin_rsqrt): Likewise.
7982 2021-05-21 Aaron Sawdey <acsawdey@linux.ibm.com>
7984 * config/rs6000/rs6000.md (define_attr "type"): Add types for fusion.
7985 * config/rs6000/genfusion.pl (gen_ld_cmpi_p10): Use new fusion types.
7986 (gen_2logical): Use new fusion types.
7987 * config/rs6000/fusion.md: Regenerate.
7989 2021-05-21 Uroš Bizjak <ubizjak@gmail.com>
7992 * config/i386/i386-expand.c (ix86_expand_sse_movcc):
7993 Handle V4QI and V2HI modes.
7994 (ix86_expand_sse_movcc): Ditto.
7995 * config/i386/mmx.md (*<sat_plusminus:insn><VI_32:mode>3):
7996 New instruction pattern.
7997 (*eq<VI_32:mode>3): Ditto.
7998 (*gt<VI_32:mode>3): Ditto.
7999 (*xop_pcmov_<VI_32:mode>): Ditto.
8000 (mmx_pblendvb32): Ditto.
8001 (mmx_pblendvb64): Rename from mmx_pblendvb.
8002 (vec_cmp<VI_32:mode><VI_32:mode>): New expander.
8003 (vec_cmpu<VI_32:mode><VI_32:mode>): Ditto.
8004 (vcond<VI_32:mode><VI_32:mode>): Ditto.
8005 (vcondu<VI_32:mode><VI_32:mode>): Ditto.
8006 (vcond_mask_<VI_32:mode><VI_32:mode>): Ditto.
8008 2021-05-21 Jakub Jelinek <jakub@redhat.com>
8010 PR tree-optimization/94589
8011 * tree-ssa-phiopt.c (spaceship_replacement): For integral rhs1 and
8012 rhs2, treat x <= 4 equivalently to x < 5 etc. In cmp1 and cmp2 (if
8013 not the same as cmp3) treat <= the same as < and >= the same as >.
8014 Don't require that cond2_phi_edge is true edge, instead take
8015 false/true edges into account based on cmp1/cmp2 comparison kinds.
8017 2021-05-21 Uroš Bizjak <ubizjak@gmail.com>
8020 * config/i386/mmx.md (SMAXMIN_MMXMODEI): New mode iterator.
8021 (<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Macroize expander
8022 from <smaxmin:code>v4hi3> and <smaxmin:code><MMXMODE14:mode>3
8023 using SMAXMIN_MMXMODEI mode iterator.
8024 (*<smaxmin:code>v4qi3): New insn pattern.
8025 (*<smaxmin:code>v2hi3): Ditto.
8026 (SMAXMIN_VI_32): New mode iterator.
8027 (<smaxmin:code><SMAXMIN_VI_32>mode3): New expander.
8028 (UMAXMIN_MMXMODEI): New mode iterator.
8029 (<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Macroize expander
8030 from <umaxmin:code>v8qi3> and <umaxmin:code><MMXMODE24:mode>3
8031 using UMAXMIN_MMXMODEI mode iterator.
8032 (*<umaxmin:code>v4qi3): New insn pattern.
8033 (*<umaxmin:code>v2hi3): Ditto.
8034 (UMAXMIN_VI_32): New mode iterator.
8035 (<umaxmin:code><UMAXMIN_VI_32>mode3): New expander.
8036 (abs<VI_32:mode>2): New insn pattern.
8037 (ssse3_abs<MMXMODEI:mode>2, abs<MMXMODEI:mode>2): Move from ...
8038 * config/i386/sse.md: ... here.
8040 2021-05-20 Clement Chigot <clement.chigot@atos.net>
8041 David Edelsohn <dje.gcc@gmail.com>
8043 * collect2.c (scan_prog_file): Issue non-fatal warning for
8046 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
8048 * doc/invoke.texi (-Wno-c++11-extensions)
8049 (-Wno-c++14-extensions, -Wno-c++17-extensions)
8050 (-Wno-c++20-extensions, -Wno-c++23-extensions): Document
8053 2021-05-20 Indu Bhagat <indu.bhagat@oracle.com>
8055 * config/c6x/c6x.c (c6x_output_file_unwind): Use dwarf_debuginfo_p.
8056 * config/darwin.c (darwin_override_options): Likewise.
8057 * config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise.
8058 * config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise.
8059 (DWARF2_FRAME_REG_OUT): Likewise.
8060 * config/mips/mips.c (mips_output_filename): Likewise.
8061 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name):
8063 (rs6000_dbx_register_number): Likewise.
8064 * dbxout.c: Include flags.h.
8065 * dwarf2cfi.c (cfi_label_required_p): Likewise.
8066 (dwarf2out_do_frame): Likewise.
8067 * except.c: Include flags.h.
8068 * final.c (dwarf2_debug_info_emitted_p): Likewise.
8069 (final_scan_insn_1): Likewise.
8070 * flags.h (dwarf_debuginfo_p): New function declaration.
8071 * opts.c (dwarf_debuginfo_p): New function definition.
8072 * targhooks.c (default_debug_unwind_info): Use dwarf_debuginfo_p.
8073 * toplev.c (process_options): Likewise.
8075 2021-05-20 Indu Bhagat <indu.bhagat@oracle.com>
8077 * common.opt: Change type to support bitmasks.
8078 * flag-types.h (enum debug_info_type): Rename enumerator constants.
8079 (NO_DEBUG): New bitmask.
8080 (DBX_DEBUG): Likewise.
8081 (DWARF2_DEBUG): Likewise.
8082 (XCOFF_DEBUG): Likewise.
8083 (VMS_DEBUG): Likewise.
8084 (VMS_AND_DWARF2_DEBUG): Likewise.
8085 * flags.h (debug_set_to_format): New function declaration.
8086 (debug_set_count): Likewise.
8087 (debug_set_names): Likewise.
8088 * opts.c (debug_type_masks): Array of bitmasks for debug formats.
8089 (debug_set_to_format): New function definition.
8090 (debug_set_count): Likewise.
8091 (debug_set_names): Likewise.
8092 (set_debug_level): Update access to debug_type_names.
8093 * toplev.c: Likewise.
8095 2021-05-20 Martin Sebor <msebor@redhat.com>
8097 PR middle-end/100684
8098 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Handle C++ lambda.
8100 2021-05-20 Uroš Bizjak <ubizjak@gmail.com>
8103 * config/i386/i386.md (isa): Remove x64_bmi.
8104 (enabled): Remove x64_bmi.
8105 * config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3):
8106 Remove general register alternative.
8107 (*andnot<VI_32:mode>3): Ditto.
8108 (*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto.
8109 (*<any_logic:code><VI_32:mode>3): Ditto.
8111 2021-05-20 Kewen Lin <linkw@linux.ibm.com>
8113 * config/arm/arm.c: Include head files tree-vectorizer.h and
8116 2021-05-20 Uroš Bizjak <ubizjak@gmail.com>
8119 * config/i386/mmx.md (Yv_Yw): Revert adding V4QI and V2HI modes.
8120 (*<plusminus:insn><VI_32:mode>3): Use Yw instad of <Yv_Yw> constrint.
8121 (<s>mulv4hi3_highpart): New expander.
8122 (*<s>mulv2hi3_highpart): New insn pattern.
8123 (<s>mulv2hi3_higpart): New expander.
8124 (*<any_shift:insn>v2hi3): New insn pattern.
8125 (<any_shift:insn>v2hi3): New expander.
8126 * config/i386/sse.md (smulhrsv2hi3): New expander.
8127 (*smulhrsv2hi3): New insn pattern.
8129 2021-05-20 Kewen Lin <linkw@linux.ibm.com>
8131 * doc/invoke.texi (vect-inner-loop-cost-factor): Document new
8133 * params.opt (vect-inner-loop-cost-factor): New.
8134 * targhooks.c (default_add_stmt_cost): Replace hardcoded factor
8135 50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR, include head file
8136 tree-vectorizer.h and its required ones.
8137 * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Replace
8138 hardcoded factor 50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR.
8139 * config/arm/arm.c (arm_add_stmt_cost): Likewise.
8140 * config/i386/i386.c (ix86_add_stmt_cost): Likewise.
8141 * config/rs6000/rs6000.c (rs6000_add_stmt_cost): Likewise.
8142 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
8144 (_loop_vec_info::_loop_vec_info): Init inner_loop_cost_factor.
8145 * tree-vectorizer.h (_loop_vec_info): Add inner_loop_cost_factor.
8146 (LOOP_VINFO_INNER_LOOP_COST_FACTOR): New macro.
8148 2021-05-20 Christophe Lyon <christophe.lyon@linaro.org>
8149 Torbjörn Svensson <torbjorn.svensson@st.com>
8152 * doc/cpp.texi (Common Predefined Macros): Document __FILE_NAME__.
8154 2021-05-20 Jakub Jelinek <jakub@redhat.com>
8157 * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LINEAR>: For
8158 explicit linear clause when combined with target, make it map(tofrom:)
8159 instead of no clause or firstprivate.
8161 2021-05-20 Jakub Jelinek <jakub@redhat.com>
8163 PR tree-optimization/94589
8164 * match.pd ((X & Y) == X -> (X & ~Y) == 0): Simplify even in presence
8165 of integral conversions.
8167 2021-05-19 Andrew MacLeod <amacleod@redhat.com>
8169 * gimple-range.cc (fur_source::get_operand): New.
8170 (gimple_range_fold): Delete.
8171 (fold_using_range::fold_stmt): Move from gimple_ranger::calc_stmt.
8172 (fold_using_range::range_of_range_op): Move from gimple_ranger.
8173 (fold_using_range::range_of_address): Ditto.
8174 (fold_using_range::range_of_phi): Ditto.
8175 (fold_using_range::range_of_call): Ditto.
8176 (fold_using_range::range_of_builtin_ubsan_call): Move from
8177 range_of_builtin_ubsan_call.
8178 (fold_using_range::range_of_builtin_call): Move from
8179 range_of_builtin_call.
8180 (gimple_ranger::range_of_builtin_call): Delete.
8181 (fold_using_range::range_of_cond_expr): Move from gimple_ranger.
8182 (gimple_ranger::fold_range_internal): New.
8183 (gimple_ranger::range_of_stmt): Use new fold_using_range API.
8184 (fold_using_range::range_of_ssa_name_with_loop_info): Move from
8185 gimple_ranger. Improve ranges of SSA_NAMES when possible.
8186 * gimple-range.h (gimple_ranger): Remove various range_of routines.
8187 (class fur_source): New.
8188 (class fold_using_range): New.
8189 (fur_source::fur_source): New.
8191 * vr-values.c (vr_values::extract_range_basic): Use fold_using_range
8192 instead of range_of_builtin_call.
8194 2021-05-19 Jonathan Wakely <jwakely@redhat.com>
8196 * doc/cpp.texi (Common Predefined Macros): Update documentation
8197 for the __GXX_EXPERIMENTAL_CXX0X__ macro.
8199 2021-05-19 Alex Coplan <alex.coplan@arm.com>
8202 * config/arm/arm.md (nonsecure_call_internal): Always ensure
8203 callee's address is in a register.
8205 2021-05-19 Geng Qi <gengqi@linux.alibaba.com>
8207 * common/config/riscv/riscv-common.c
8208 (riscv_subset_list::parsing_subset_version): Properly parse the letter
8210 (riscv_subset_list::parse_std_ext,
8211 riscv_subset_list::parse_multiletter_ext): To handle errors generated
8212 in riscv_subset_list::parsing_subset_version.
8214 2021-05-19 Jonathan Wright <jonathan.wright@arm.com>
8216 * config/aarch64/aarch64-simd.md: Use "neon_move_narrow_q"
8217 type attribute in patterns generating XTN(2).
8219 2021-05-19 Jonathan Wright <jonathan.wright@arm.com>
8221 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_pack_trunc_<mode>):
8222 Remove as duplicate of...
8223 (aarch64_xtn<mode>): This.
8224 (aarch64_xtn2<mode>_le): Move position in file.
8225 (aarch64_xtn2<mode>_be): Move position in file.
8226 (aarch64_xtn2<mode>): Move position in file.
8227 (vec_pack_trunc_<mode>): Define as an expander.
8229 2021-05-19 Jonathan Wright <jonathan.wright@arm.com>
8231 * config/aarch64/aarch64-simd-builtins.def: Split builtin
8232 generation for aarch64_<sur>q<r>shr<u>n_n<mode> pattern into
8233 separate scalar and vector generators.
8234 * config/aarch64/aarch64-simd.md
8235 (aarch64_<sur>q<r>shr<u>n_n<mode>): Define as an expander and
8237 (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_le): This and...
8238 (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_be): This.
8239 * config/aarch64/iterators.md: Define SD_HSDI iterator.
8241 2021-05-19 Jonathn Wright <jonathan.wright@arm.com>
8243 * config/aarch64/aarch64-simd.md: Use UNSPEC_SQXTUN instead
8245 * config/aarch64/iterators.md: Remove UNSPEC_SQXTUN2.
8247 2021-05-19 Jonathan Wright <jonathan.wright@arm.com>
8249 * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shr<u>n2_n<mode>):
8250 Implement as an expand emitting a big/little endian
8251 instruction pattern.
8252 (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_le): Define.
8253 (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_be): Define.
8255 2021-05-19 Jonathan Wright <jonathan.wright@arm.com>
8257 * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn2<mode>):
8258 Implement as an expand emitting a big/little endian
8259 instruction pattern.
8260 (aarch64_<sur><addsub>hn2<mode>_insn_le): Define.
8261 (aarch64_<sur><addsub>hn2<mode>_insn_be): Define.
8262 * config/aarch64/iterators.md: Remove UNSPEC_[R]ADDHN2 and
8263 UNSPEC_[R]SUBHN2 unspecs and ADDSUBHN2 iterator.
8265 2021-05-19 Richard Biener <rguenther@suse.de>
8267 PR middle-end/100672
8268 * fold-const.c (fold_negate_expr_1): Use element_precision.
8269 (negate_expr_p): Likewise.
8271 2021-05-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
8273 * config/aarch64/iterators.md (SVE_PRED_LOAD): New iterator.
8274 (pred_load): New int attribute.
8275 * config/aarch64/aarch64-sve.md
8276 (aarch64_load_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>): Use
8277 SVE_PRED_LOAD enum iterator and corresponding pred_load attribute.
8278 * config/aarch64/aarch64-sve-builtins-base.cc (expand): Update call to
8279 code_for_aarch64_load.
8281 2021-05-19 Richard Biener <rguenther@suse.de>
8283 * cfgexpand.c (discover_nonconstant_array_refs_r): Make
8284 sure TARGET_MEM_REF bases are expanded as memory.
8285 * tree-ssa-operands.c (operands_scanner::get_tmr_operands):
8286 Do not mark TARGET_MEM_REF bases addressable.
8287 * tree-ssa.c (non_rewritable_mem_ref_base): Handle
8288 TARGET_MEM_REF bases as never rewritable.
8289 * gimple-walk.c (walk_stmt_load_store_addr_ops): Do not
8290 walk TARGET_MEM_REF bases as address-takens.
8291 * tree-ssa-dce.c (ref_may_be_aliased): Handle TARGET_MEM_REF.
8293 2021-05-19 Richard Biener <rguenther@suse.de>
8295 * builtins.c (get_object_alignment_1): Strip outer
8297 * tree-dfa.c (get_ref_base_and_extent): Handle outer
8298 WITH_SIZE_EXPR for size processing and process the
8300 * tree-ssa-alias.c (ao_ref_base_alias_set): Strip
8301 outer WITH_SIZE_EXPR.
8302 (ao_ref_base_alias_ptr_type): Likewise.
8303 (refs_may_alias_p_2): Allow WITH_SIZE_EXPR in ref->ref
8304 and handle that accordingly, stripping it for the
8306 * tree.c (get_base_address): Handle WITH_SIZE_EXPR by
8307 looking through it instead of returning NULL.
8309 2021-05-19 Jakub Jelinek <jakub@redhat.com>
8311 PR middle-end/100576
8312 * builtins.c (check_read_access): Convert bound to size_type_node if
8315 2021-05-19 Richard Biener <rguenther@suse.de>
8317 * tree-cfg.c (verify_types_in_gimple_min_lval): Inline...
8318 (verify_types_in_gimple_reference): ... here. Sanitize.
8319 (verify_gimple_call): Verify references in LHS and arguments.
8320 (verify_gimple_assign_single): Reject WITH_SIZE_EXPR.
8322 2021-05-19 Uroš Bizjak <ubizjak@gmail.com>
8324 * config/i386/i386.h (VALID_INT_MODE_P):
8325 Add V8QI, V4HI and V2SI modes for TARGET_64BIT.
8326 * config/i386/i386.md (isa): Add x64_bmi.
8327 (enabled): Handle x64_bmi.
8328 * config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3):
8329 Add alternative using 64bit general registers.
8330 (*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto.
8332 2021-05-19 Jakub Jelinek <jakub@redhat.com>
8335 * tree.h (OMP_MASTER_COMBINED): Define.
8336 * gimplify.c (gimplify_scan_omp_clauses): Rewrite lastprivate
8337 handling for outer combined/composite constructs to a loop.
8338 Handle lastprivate on combined target.
8339 (gimplify_expr): Formatting fix.
8341 2021-05-19 Xionghu Luo <luoxhu@linux.ibm.com>
8343 * passes.def: Add sink_code pass before store_merging.
8344 * tree-ssa-sink.c (pass_sink_code:clone): New.
8346 2021-05-18 Bill Schmidt <wschmidt@linux.ibm.com>
8348 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Remove call to
8349 rs6000_special_adjust_field_align_p.
8350 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
8351 * config/rs6000/rs6000-call.c (rs6000_function_arg_boundary):
8353 (rs6000_function_arg): Likewise.
8354 * config/rs6000/rs6000-protos.h
8355 (rs6000_special_adjust_field_align_p): Remove prototype.
8356 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
8358 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Remove call to
8359 rs6000_special_adjust_field_align_p.
8361 2021-05-18 Uroš Bizjak <ubizjak@gmail.com>
8364 * config/i386/i386.h (VALID_SSE2_REG_MODE):
8365 Add V4QI and V2HI modes.
8366 (VALID_INT_MODE_P): Ditto.
8367 * config/i386/mmx.md (VI_32): New mode iterator.
8368 (mmxvecsize): Handle V4QI and V2HI.
8370 (mov<VI_32:mode>): New expander.
8371 (*mov<mode>_internal): New insn pattern.
8372 (movmisalign<VI_32:mode>): New expander.
8373 (neg<VI_32:mode>): New expander.
8374 (<plusminus:insn><VI_32:mode>3): New expander.
8375 (*<plusminus:insn><VI_32:mode>3): New insn pattern.
8376 (mulv2hi3): New expander.
8377 (*mulv2hi3): New insn pattern.
8378 (one_cmpl<VI_32:mode>2): New expander.
8379 (*andnot<VI_32:mode>3): New insn pattern.
8380 (<any_logic:code><VI_32:mode>3): New expander.
8381 (*<any_logic:code><VI_32:mode>3): New insn pattern.
8383 2021-05-18 Uroš Bizjak <ubizjak@gmail.com>
8385 * config/i386/sse.md (<any_extend:insn>v4qiv4di2):
8386 Fix a mode mismatch with operand 1.
8388 2021-05-18 Uroš Bizjak <ubizjak@gmail.com>
8391 * config/i386/i386-expand.c (split_double_mode): Return
8392 temporary register when simplify_gen_subreg fails with
8393 the high half od the paradoxical subreg.
8395 2021-05-18 Richard Biener <rguenther@suse.de>
8397 * cfgexpand.c (expand_one_var): Pass in forced_stack_var
8398 and honor it when expanding.
8399 (expand_used_vars_for_block): Pass through forced_stack_var.
8400 (expand_used_vars): Likewise.
8401 (discover_nonconstant_array_refs_r): Set bits in
8402 forced_stack_vars instead of marking vars TREE_ADDRESSABLE.
8403 (avoid_type_punning_on_regs): Likewise.
8404 (discover_nonconstant_array_refs): Likewise.
8405 (pass_expand::execute): Create and pass down forced_stack_var
8406 bitmap. For parameters and returns temporarily set
8407 TREE_ADDRESSABLE when expand_function_start.
8409 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
8411 * doc/sourcebuild.texi: Document 'dg-note'.
8413 2021-05-18 Tobias Burnus <tobias@codesourcery.com>
8416 * configure: Regenerate.
8417 * configure.ac (BUILD_CFLAG, BUILD_CXXFLAGS): Add $(CFLAGS-$@).
8419 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
8421 * gimple.h (is_gimple_omp_oacc): Tighten.
8422 * omp-low.c (check_omp_nesting_restrictions): Adjust.
8424 2021-05-18 Richard Biener <rguenther@suse.de>
8426 * tree-ssa-operands.c (mark_address_taken): Simplify.
8428 2021-05-18 Martin Liska <mliska@suse.cz>
8430 * config/gcn/mkoffload.c (STR): Redefine.
8431 * config/i386/intelmic-mkoffload.c (STR): Likewise.
8432 * config/nvptx/mkoffload.c (STR): Likewise.
8434 2021-05-18 Martin Liska <mliska@suse.cz>
8436 * common/config/aarch64/aarch64-common.c (aarch64_parse_extension):
8437 Use startswith function instead of strncmp.
8438 * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
8439 * common/config/riscv/riscv-common.c (riscv_subset_list::parse): Likewise.
8440 * config/aarch64/aarch64-sve-builtins-shapes.cc (parse_type): Likewise.
8441 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Likewise.
8442 * config/alpha/alpha.c (alpha_elf_section_type_flags): Likewise.
8443 * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
8444 * config/arm/arm.c (arm_file_start): Likewise.
8445 (arm_valid_target_attribute_rec): Likewise.
8446 (thumb1_md_asm_adjust): Likewise.
8447 * config/arm/driver-arm.c (host_detect_local_cpu): Likewise.
8448 * config/avr/avr.c (STR_PREFIX_P): Likewise.
8449 (avr_set_current_function): Likewise.
8450 (avr_handle_addr_attribute): Likewise.
8451 (avr_asm_output_aligned_decl_common): Likewise.
8452 (avr_asm_named_section): Likewise.
8453 (avr_section_type_flags): Likewise.
8454 (avr_asm_select_section): Likewise.
8455 * config/c6x/c6x.c (c6x_in_small_data_p): Likewise.
8456 (c6x_section_type_flags): Likewise.
8457 * config/darwin-c.c (darwin_cfstring_ref_p): Likewise.
8458 (darwin_objc_declare_unresolved_class_reference): Likewise.
8459 (darwin_objc_declare_class_definition): Likewise.
8460 * config/darwin.c (indirect_data): Likewise.
8461 (darwin_encode_section_info): Likewise.
8462 (darwin_objc2_section): Likewise.
8463 (darwin_objc1_section): Likewise.
8464 (machopic_select_section): Likewise.
8465 (darwin_globalize_label): Likewise.
8466 (darwin_label_is_anonymous_local_objc_name): Likewise.
8467 (darwin_asm_named_section): Likewise.
8468 (darwin_asm_output_dwarf_offset): Likewise.
8469 * config/frv/frv.c (frv_string_begins_with): Likewise.
8470 (frv_in_small_data_p): Likewise.
8471 * config/gcn/mkoffload.c (STR): Likewise.
8473 * config/i386/i386-builtins.c (get_builtin_code_for_version): Likewise.
8474 * config/i386/i386-options.c (ix86_option_override_internal): Likewise.
8475 * config/i386/i386.c (x86_64_elf_section_type_flags): Likewise.
8476 (ix86_md_asm_adjust): Likewise.
8477 * config/i386/intelmic-mkoffload.c (STR): Likewise.
8478 * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
8479 (i386_pe_file_end): Likewise.
8480 * config/ia64/ia64.c (ia64_in_small_data_p): Likewise.
8481 (ia64_section_type_flags): Likewise.
8482 * config/mips/driver-native.c (host_detect_local_cpu): Likewise.
8483 * config/mips/mips.c (mips_handle_interrupt_attr): Likewise.
8484 (mips16_stub_function_p): Likewise.
8485 (mips_function_rodata_section): Likewise.
8486 * config/msp430/msp430.c (msp430_mcu_name): Likewise.
8487 (msp430_function_section): Likewise.
8488 (msp430_section_type_flags): Likewise.
8489 (msp430_expand_helper): Likewise.
8490 * config/nios2/nios2.c (nios2_small_section_name_p): Likewise.
8491 (nios2_valid_target_attribute_rec): Likewise.
8492 * config/nvptx/mkoffload.c (process): Likewise.
8494 * config/pa/som.h: Likewise.
8495 * config/pdp11/pdp11.c (pdp11_output_ident): Likewise.
8496 * config/riscv/riscv.c (riscv_elf_select_rtx_section): Likewise.
8497 * config/rs6000/rs6000.c (VTABLE_NAME_P): Likewise.
8498 (rs6000_inner_target_options): Likewise.
8499 * config/s390/driver-native.c (s390_host_detect_local_cpu): Likewise.
8500 * config/sparc/driver-sparc.c (host_detect_local_cpu): Likewise.
8501 * config/vax/vax.c (vax_output_int_move): Likewise.
8502 * config/vms/vms-ld.c (startswith): Likewise.
8503 (process_args): Likewise.
8505 * config/vms/vms.c: Likewise.
8507 2021-05-18 Jakub Jelinek <jakub@redhat.com>
8509 PR rtl-optimization/100590
8510 * regcprop.c (copyprop_hardreg_forward_1): Only DCE dead sets if
8511 they are NONJUMP_INSN_P.
8513 2021-05-18 Jakub Jelinek <jakub@redhat.com>
8516 * function.c (push_dummy_function): Set DECL_ARTIFICIAL and
8517 DECL_ASSEMBLER_NAME on the fn_decl.
8519 2021-05-18 Jakub Jelinek <jakub@redhat.com>
8521 PR tree-optimization/94589
8522 * tree-ssa-phiopt.c (spaceship_replacement): Pattern match
8523 phi result used in (res & ~1) == 0 comparison as res >= 0 as
8524 res == 2 would be UB with -ffinite-math-only.
8526 2021-05-18 Martin Liska <mliska@suse.cz>
8528 * Makefile.in: genversion.o should depend on DATESTAMP.
8530 2021-05-18 Claudiu Zissulescu <claziss@synopsys.com>
8532 * config/arc/simdext.md (negv2si2): Remove round bracket.
8534 2021-05-18 Andreas Krebbel <krebbel@linux.ibm.com>
8536 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Define
8537 _Bool as macro expanding to _Bool.
8539 2021-05-18 Andreas Krebbel <krebbel@linux.ibm.com>
8542 * tree.c (build_reference_type_for_mode)
8543 (build_pointer_type_for_mode): Pick pointer mode if MODE argument
8545 (build_reference_type, build_pointer_type): Invoke
8546 build_*_type_for_mode with VOIDmode.
8548 2021-05-17 Andrew MacLeod <amacleod@redhat.com>
8550 PR tree-optimization/100512
8551 * gimple-range-cache.cc (ranger_cache::set_global_range): Mark const
8552 and non-zero pointer ranges as invariant.
8553 * gimple-range.cc (gimple_ranger::range_of_stmt): Remove pointer
8554 processing from here.
8556 2021-05-17 Tom de Vries <tdevries@suse.de>
8559 * config/nvptx/nvptx-protos.h (nvptx_output_atomic_insn): Declare
8560 * config/nvptx/nvptx.c (nvptx_output_barrier)
8561 (nvptx_output_atomic_insn): New function.
8562 (nvptx_print_operand): Add support for 'B'.
8563 * config/nvptx/nvptx.md: Use nvptx_output_atomic_insn for atomic
8566 2021-05-17 Aldy Hernandez <aldyh@redhat.com>
8568 PR tree-optimization/100349
8569 * vr-values.c (bounds_of_var_in_loop): Bail if scev returns
8572 2021-05-17 Tamar Christina <tamar.christina@arm.com>
8574 * config/aarch64/driver-aarch64.c (DEFAULT_ARCH): New.
8575 (host_detect_local_cpu): Use it.
8577 2021-05-17 Martin Liska <mliska@suse.cz>
8579 * doc/invoke.texi: Add 2 missing dots.
8581 2021-05-17 Marius Hillenbrand <mhillen@linux.ibm.com>
8584 * configure.ac: Replace pattern substitution with call to sed.
8585 * configure: Regenerate.
8587 2021-05-17 Richard Biener <rguenther@suse.de>
8589 PR middle-end/100582
8590 * tree.c (array_at_struct_end_p): Get to the base of the
8591 reference before looking for the underlying decl.
8593 2021-05-17 Joern Rennecke <joern.rennecke@embecosm.com>
8595 * genoutput.c (validate_insn_alternatives) Make "wrong number of
8596 alternatives" message more specific, and remove assumption on where
8599 2021-05-17 Christophe Lyon <christophe.lyon@linaro.org>
8601 * config/arm/iterators.md (V16): New iterator.
8602 (VH_cvtto): New iterator.
8603 (v_cmp_result): Added V4HF and V8HF support.
8604 * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>): Use VDQWH.
8605 (vcond<mode><mode>): Likewise.
8606 (vcond_mask_<mode><v_cmp_result>): Likewise.
8607 (vcond<VH_cvtto><mode>): New expander.
8609 2021-05-17 Christophe Lyon <christophe.lyon@linaro.org>
8611 * config/arm/arm-protos.h (arm_expand_vector_compare): Update
8613 * config/arm/arm.c (arm_expand_vector_compare): Add support for
8615 (arm_expand_vcond): Likewise.
8616 * config/arm/iterators.md (supf): Remove VCMPNEQ_S, VCMPEQQ_S,
8617 VCMPEQQ_N_S, VCMPNEQ_N_S.
8618 (VCMPNEQ, VCMPEQQ, VCMPEQQ_N, VCMPNEQ_N): Remove.
8619 * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>): Add '@' prefix.
8620 (@mve_vcmp<mve_cmp_op>q_f<mode>): Likewise.
8621 (@mve_vcmp<mve_cmp_op>q_n_f<mode>): Likewise.
8622 (@mve_vpselq_<supf><mode>): Likewise.
8623 (@mve_vpselq_f<mode>"): Likewise.
8624 * config/arm/neon.md (vec_cmp<mode><v_cmp_result): Enable for MVE
8625 and move to vec-common.md.
8626 (vec_cmpu<mode><mode>): Likewise.
8627 (vcond<mode><mode>): Likewise.
8628 (vcond<V_cvtto><mode>): Likewise.
8629 (vcondu<mode><v_cmp_result>): Likewise.
8630 (vcond_mask_<mode><v_cmp_result>): Likewise.
8631 * config/arm/unspecs.md (VCMPNEQ_U, VCMPNEQ_S, VCMPEQQ_S)
8632 (VCMPEQQ_N_S, VCMPNEQ_N_S, VCMPEQQ_U, CMPEQQ_N_U, VCMPNEQ_N_U)
8633 (VCMPGEQ_N_S, VCMPGEQ_S, VCMPGTQ_N_S, VCMPGTQ_S, VCMPLEQ_N_S)
8634 (VCMPLEQ_S, VCMPLTQ_N_S, VCMPLTQ_S, VCMPCSQ_N_U, VCMPCSQ_U)
8635 (VCMPHIQ_N_U, VCMPHIQ_U): Remove.
8636 * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result): Moved
8638 (vec_cmpu<mode><mode>): Likewise.
8639 (vcond<mode><mode>): Likewise.
8640 (vcond<V_cvtto><mode>): Likewise.
8641 (vcondu<mode><v_cmp_result>): Likewise.
8642 (vcond_mask_<mode><v_cmp_result>): Likewise. Added unsafe math
8645 2021-05-17 liuhongt <hongtao.liu@intel.com>
8648 * config/i386/i386.c (ix86_gimple_fold_builtin): Use
8649 gsi_insert_seq_before instead.
8651 2021-05-17 Christophe Lyon <christophe.lyon@linaro.org>
8653 * doc/sourcebuild.texi (arm_qbit_ok): Rename into...
8654 (arm_sat_ok): ...this.
8656 2021-05-17 Martin Liska <mliska@suse.cz>
8658 * lto-wrapper.c (merge_flto_options): Factor out a new function.
8659 (merge_and_complain): Use it.
8660 (run_gcc): Merge also linker command line -flto=foo argument
8663 2021-05-16 Christophe Lyon <christophe.lyon@linaro.org>
8665 * config/arm/arm.h (CPP_SPEC): Remove error message about
8666 -mlittle-endian/-mbig-endian conflict.
8668 2021-05-15 Bill Schmidt <wschmidt@linux.ibm.com>
8670 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
8671 __ROP_PROTECT__ if -mrop-protect is selected.
8673 2021-05-15 Bill Schmidt <wschmidt@linux.ibm.com>
8675 * config/rs6000/rs6000-internal.h (rs6000_stack): Add
8676 rop_hash_save_offset and rop_hash_size.
8677 * config/rs6000/rs6000-logue.c (rs6000_stack_info): Compute
8678 rop_hash_size and rop_hash_save_offset.
8679 (debug_stack_info): Dump rop_hash_save_offset and rop_hash_size.
8680 (rs6000_emit_prologue): Emit hashst[p] in prologue.
8681 (rs6000_emit_epilogue): Emit hashchk[p] in epilogue.
8682 * config/rs6000/rs6000.md (unspec): Add UNSPEC_HASHST and
8684 (hashst): New define_insn.
8685 (hashchk): Likewise.
8687 2021-05-15 Bill Schmidt <wschmidt@linux.ibm.com>
8689 * config/rs6000/rs6000.c (rs6000_option_override_internal):
8690 Disable shrink wrap when inserting ROP-protect instructions.
8691 * config/rs6000/rs6000.opt (mrop-protect): New option.
8692 (mprivileged): Likewise.
8693 * doc/invoke.texi: Document mrop-protect and mprivileged.
8695 2021-05-15 Hans-Peter Nilsson <hp@axis.com>
8697 * reorg.c (fill_slots_from_thread): Reinstate code typoed out in
8700 2021-05-15 Martin Jambor <mjambor@suse.cz>
8703 2021-05-13 Martin Jambor <mjambor@suse.cz>
8705 PR tree-optimization/100453
8706 * tree-sra.c (sra_modify_assign): All const base accesses do not
8707 need refreshing, not just those from decl_pool.
8708 (sra_modify_assign): Do not refresh into a const base decl.
8710 2021-05-15 Jakub Jelinek <jakub@redhat.com>
8712 PR rtl-optimization/100342
8713 * regcprop.c (copy_value): When copying a source reg in a wider
8714 mode than it has recorded for the value, adjust recorded destination
8715 mode too or punt if !REG_CAN_CHANGE_MODE_P.
8717 2021-05-14 Jason Merrill <jason@redhat.com>
8719 * intl.h: Add comments.
8721 2021-05-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8723 * config/aarch64/aarch64-simd.md
8724 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Split into...
8725 (aarch64_sqdmlsl2_lane<mode>_internal): ... This...
8726 (aarch64_sqdmlal2_lane<mode>_internal): ... And this.
8727 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Split into ...
8728 (aarch64_sqdmlsl2_laneq<mode>_internal): ... This...
8729 (aarch64_sqdmlal2_laneq<mode>_internal): ... And this.
8730 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Split into...
8731 (aarch64_sqdmlsl2_n<mode>_internal): ... This...
8732 (aarch64_sqdmlal2_n<mode>_internal): ... And this.
8734 2021-05-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8737 * config/arm/arm_neon.h (vtst_s8): Replace call to vtst builtin with it's
8738 boolean logic equivalent.
8739 (vtst_s16): Likewise.
8740 (vtst_s32): Likewise.
8741 (vtst_u8): Likewise.
8742 (vtst_u16): Likewise.
8743 (vtst_u32): Likewise.
8744 (vtst_p8): Likewise.
8745 (vtst_p16): Likewise.
8746 (vtstq_s8): Likewise.
8747 (vtstq_s16): Likewise.
8748 (vtstq_s32): Likewise.
8749 (vtstq_u8): Likewise.
8750 (vtstq_u16): Likewise.
8751 (vtstq_u32): Likewise.
8752 (vtstq_p8): Likewise.
8753 (vtstq_p16): Likewise.
8754 * config/arm/arm_neon_builtins.def: Remove entry for vtst.
8755 * config/arm/neon.md (neon_vtst<mode>): Remove pattern.
8757 2021-05-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8759 * config/aarch64/aarch64-simd.md (aarch64_sqdmlal2<mode>): Merge into...
8760 (aarch64_sqdml<SBINQOPS:as>l2<mode>): ... This.
8761 (aarch64_sqdmlsl2<mode>): Delete.
8762 (aarch64_sqdmlal2_lane<mode>): Merge this...
8763 (aarch64_sqdmlsl2_lane<mode>): ... And this...
8764 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>): ... Into this.
8765 (aarch64_sqdmlal2_laneq<mode>): Merge this...
8766 (aarch64_sqdmlsl2_laneq<mode>): ... And this...
8767 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>): ... Into this.
8768 (aarch64_sqdmlal2_n<mode>): Merge this...
8769 (aarch64_sqdmlsl2_n<mode>): ... And this...
8770 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>): ... Into this.
8772 2021-05-13 Martin Sebor <msebor@redhat.com>
8774 PR middle-end/100574
8775 * builtins.c (access_ref::get_ref): Improve detection of PHIs with
8778 2021-05-13 Martin Sebor <msebor@redhat.com>
8780 PR tree-optimization/93100
8782 * tree-ssa-uninit.c (check_defs): Exclude intrinsic functions that
8783 don't modify referenced objects.
8785 2021-05-13 Martin Jambor <mjambor@suse.cz>
8787 PR tree-optimization/100453
8788 * tree-sra.c (sra_modify_assign): All const base accesses do not
8789 need refreshing, not just those from decl_pool.
8790 (sra_modify_assign): Do not refresh into a const base decl.
8792 2021-05-13 Martin Liska <mliska@suse.cz>
8794 * tree-ssa-dom.c: Remove m_simplifier.
8796 2021-05-13 Richard Earnshaw <rearnsha@arm.com>
8799 * config/arm/arm.c (arm_canonicalize_comparison): Correctly
8800 canonicalize DImode inequality comparisons against the
8801 maximum integral value.
8803 2021-05-13 Jakub Jelinek <jakub@redhat.com>
8805 PR tree-optimization/98856
8806 * config/i386/i386.c (ix86_shift_rotate_cost): Add CODE argument.
8807 Expect V2DI and V4DI arithmetic right shifts to be emulated.
8808 (ix86_rtx_costs, ix86_add_stmt_cost): Adjust ix86_shift_rotate_cost
8810 * config/i386/i386-expand.c (expand_vec_perm_2perm_interleave,
8811 expand_vec_perm_2perm_pblendv): New functions.
8812 (ix86_expand_vec_perm_const_1): Use them.
8813 * config/i386/sse.md (ashr<mode>3<mask_name>): Rename to ...
8814 (<mask_codefor>ashr<mode>3<mask_name>): ... this.
8815 (ashr<mode>3): New define_expand with VI248_AVX512BW iterator.
8816 (ashrv4di3): New define_expand.
8817 (ashrv2di3): Change condition to TARGET_SSE2, handle !TARGET_XOP
8818 and !TARGET_AVX512VL expansion.
8820 2021-05-13 Uroš Bizjak <ubizjak@gmail.com>
8823 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Force mode
8824 sizes < 16 to a register when constructing vpcmov pattern.
8825 * config/i386/mmx.md (*xop_pcmov_<mode>): Use MMXMODE124 mode.
8827 2021-05-13 Martin Liska <mliska@suse.cz>
8829 * gcov-io.c (gcov_write_block): Remove.
8830 (gcov_write_words): Likewise.
8831 (gcov_read_words): Re-implement using gcov_read_bytes.
8832 (gcov_allocate): Remove.
8833 (GCOV_BLOCK_SIZE): Likewise.
8834 (struct gcov_var): Remove most of the fields.
8835 (gcov_position): Implement with ftell.
8836 (gcov_rewrite): Remove setting of start and offset fields.
8837 (from_file): Re-format.
8838 (gcov_open): Remove setbuf call. It should not be needed.
8839 (gcov_close): Remove internal buffer handling.
8840 (gcov_magic): Use __builtin_bswap32.
8841 (gcov_write_counter): Use directly gcov_write_unsigned.
8842 (gcov_write_string): Use direct fwrite and do not round
8844 (gcov_seek): Use directly fseek.
8845 (gcov_write_tag): Use gcov_write_unsigned directly.
8846 (gcov_write_length): Likewise.
8847 (gcov_write_tag_length): Likewise.
8848 (gcov_read_bytes): Use directly fread.
8849 (gcov_read_unsigned): Use gcov_read_words.
8850 (gcov_read_counter): Likewise.
8851 (gcov_read_string): Use gcov_read_bytes.
8852 * gcov-io.h (GCOV_WORD_SIZE): Adjust to reflect
8853 that size is not in bytes, but words (4B).
8854 (GCOV_TAG_FUNCTION_LENGTH): Likewise.
8855 (GCOV_TAG_ARCS_LENGTH): Likewise.
8856 (GCOV_TAG_ARCS_NUM): Likewise.
8857 (GCOV_TAG_COUNTER_LENGTH): Likewise.
8858 (GCOV_TAG_COUNTER_NUM): Likewise.
8859 (GCOV_TAG_SUMMARY_LENGTH): Likewise.
8861 2021-05-13 liuhongt <hongtao.liu@intel.com>
8864 * config/i386/sse.md (ssedoublevecmode): Add attribute for
8865 V64QI/V32HI/V16SI/V4DI.
8866 (ssehalfvecmode): Add attribute for V2DI/V2DF.
8867 (*vec_concatv4si_0): Extend to VI124_128.
8868 (*vec_concat<mode>_0): New pre-reload splitter.
8869 * config/i386/predicates.md (movq_parallel): New predicate.
8871 2021-05-13 Alexandre Oliva <oliva@adacore.com>
8873 * targhooks.c (default_zero_call_used_regs): Retry using
8874 successfully-zeroed registers as sources.
8876 2021-05-12 Tobias Burnus <tobias@codesourcery.com>
8878 * omp-low.c (finish_taskreg_scan): Use the proper detach decl.
8880 2021-05-12 Aldy Hernandez <aldyh@redhat.com>
8883 * gimple-range.cc (range_of_builtin_call): Skip out on
8884 processing __builtin_clz when varying.
8886 2021-05-12 Tom de Vries <tdevries@suse.de>
8889 * config/nvptx/nvptx-opts.h (enum ptx_version): New enum.
8890 * config/nvptx/nvptx.c (nvptx_file_start): Print .version according
8891 to ptx_version_option.
8892 * config/nvptx/nvptx.h (TARGET_PTX_6_3): Define.
8893 * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>")
8894 (define_insn "nvptx_vote_ballot"): Use sync variant for
8896 * config/nvptx/nvptx.opt (ptx_version): Add enum.
8898 * doc/invoke.texi (Nvidia PTX Options): Add mptx item.
8900 2021-05-12 Richard Biener <rguenther@suse.de>
8902 PR tree-optimization/100566
8903 * tree-ssa-sccvn.c (dominated_by_p_w_unex): Properly handle
8904 allow_back for all edge queries.
8906 2021-05-12 liuhongt <hongtao.liu@intel.com>
8909 * config/i386/sse.md (<sse4_1_avx2>_pblendvb): Add
8910 splitters for pblendvb of NOT mask register.
8912 2021-05-12 Richard Biener <rguenther@suse.de>
8914 PR tree-optimization/100519
8915 * tree-ssa-reassoc.c (can_associate_p): Split into...
8916 (can_associate_op_p): ... this
8917 (can_associate_type_p): ... and this.
8918 (is_reassociable_op): Call can_associate_op_p.
8919 (break_up_subtract_bb): Call the appropriate predicates.
8920 (reassociate_bb): Likewise.
8922 2021-05-12 Martin Liska <mliska@suse.cz>
8924 * lto-wrapper.c (merge_and_complain): Merge -flto=arg options.
8925 (run_gcc): Use -flto argument detection for merged
8928 2021-05-12 Martin Liska <mliska@suse.cz>
8930 * lto-wrapper.c (print_lto_docs_link): New function.
8931 (run_gcc): Print warning about missing job server detection
8932 after we know NR of partitions. Do the same for -flto{,=1}.
8933 * opts.c (get_option_html_page): Support -flto option.
8935 2021-05-12 Martin Liska <mliska@suse.cz>
8937 * lto-wrapper.c (get_options_from_collect_gcc_options): Change
8939 (append_option): Remove.
8940 (find_option): Rework to use the vector type.
8941 (remove_option): Remove.
8942 (merge_and_complain): Use vectors for cl_decoded_option data
8944 (append_compiler_options): Likewise.
8945 (append_diag_options): Likewise.
8946 (append_linker_options): Likewise.
8947 (append_offload_options): Likewise.
8948 (compile_offload_image): Likewise.
8949 (compile_images_for_offload_targets): Likewise.
8950 (find_and_merge_options): Likewise.
8951 (run_gcc): Likewise.
8953 2021-05-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
8956 * dwarf2out.c (dwarf2out_finish): Set
8957 have_multiple_function_sections with multi-range text_section.
8959 2021-05-12 Martin Liska <mliska@suse.cz>
8962 * Makefile.in: Remove version.h from linker command line.
8964 2021-05-12 Richard Biener <rguenther@suse.de>
8966 PR middle-end/100547
8967 * rtl.h (rtvec_alloc): Make argument size_t.
8968 * rtl.c (rtvec_alloc): Verify the count is less than INT_MAX.
8970 2021-05-12 Jakub Jelinek <jakub@redhat.com>
8972 PR middle-end/100508
8973 * cfgexpand.c (expand_debug_expr): For DEBUG_EXPR_DECL with vector
8974 type, don't reuse DECL_RTL if it has different mode, instead force
8975 creation of a new DEBUG_EXPR.
8977 2021-05-12 Jakub Jelinek <jakub@redhat.com>
8978 Marc Glisse <marc.glisse@inria.fr>
8980 PR tree-optimization/94589
8981 * match.pd ((X & Y) == X -> (X & ~Y) == 0,
8982 (X | Y) == Y -> (X & ~Y) == 0): New GIMPLE simplifications.
8984 2021-05-12 Uroš Bizjak <ubizjak@gmail.com>
8987 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Handle V2SF mode.
8988 * config/i386/mmx.md (MMXMODE124): New mode iterator.
8990 (mmxintvecmode): New mode attribute.
8991 (mmxintvecmodelower): Ditto.
8992 (*mmx_maskcmpv2sf3_comm): New insn pattern.
8993 (*mmx_maskcmpv2sf3): Ditto.
8994 (vec_cmpv2sfv2si): New expander.
8995 (vcond<V2FI:mode>v2si): Ditto.
8996 (mmx_vlendvps): New insn pattern.
8997 (vcond<MMXMODE124:mode><MMXMODEI:mode>): Also handle V2SFmode.
8998 (vcondu<MMXMODE124:mode><MMXMODEI:mode>): Ditto.
8999 (vcond_mask_<mode><mmxintvecmodelower>): Ditto.
9001 2021-05-11 Martin Sebor <msebor@redhat.com>
9004 * expr.c (expand_expr_real_1): Replace unreachable code with an assert.
9006 2021-05-11 Richard Biener <rguenther@suse.de>
9008 * gimple-fold.c (gimple_fold_call): Do not call
9009 maybe_fold_reference on call arguments or the static chain.
9010 (fold_stmt_1): Do not call maybe_fold_reference on GIMPLE_ASM
9013 2021-05-11 Martin Liska <mliska@suse.cz>
9015 * builtins.def (DEF_HSAIL_BUILTIN): Remove.
9016 (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
9017 (DEF_HSAIL_SAT_BUILTIN): Likewise.
9018 (DEF_HSAIL_INTR_BUILTIN): Likewise.
9019 (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
9020 * doc/frontends.texi: Remove BRIG.
9021 * doc/install.texi: Likewise.
9022 * doc/invoke.texi: Likewise.
9023 * doc/standards.texi: Likewise.
9024 * brig-builtins.def: Removed.
9025 * brig/ChangeLog: Removed.
9026 * brig/Make-lang.in: Removed.
9027 * brig/brig-builtins.h: Removed.
9028 * brig/brig-c.h: Removed.
9029 * brig/brig-lang.c: Removed.
9030 * brig/brigfrontend/brig-arg-block-handler.cc: Removed.
9031 * brig/brigfrontend/brig-atomic-inst-handler.cc: Removed.
9032 * brig/brigfrontend/brig-basic-inst-handler.cc: Removed.
9033 * brig/brigfrontend/brig-branch-inst-handler.cc: Removed.
9034 * brig/brigfrontend/brig-cmp-inst-handler.cc: Removed.
9035 * brig/brigfrontend/brig-code-entry-handler.cc: Removed.
9036 * brig/brigfrontend/brig-code-entry-handler.h: Removed.
9037 * brig/brigfrontend/brig-comment-handler.cc: Removed.
9038 * brig/brigfrontend/brig-control-handler.cc: Removed.
9039 * brig/brigfrontend/brig-copy-move-inst-handler.cc: Removed.
9040 * brig/brigfrontend/brig-cvt-inst-handler.cc: Removed.
9041 * brig/brigfrontend/brig-fbarrier-handler.cc: Removed.
9042 * brig/brigfrontend/brig-function-handler.cc: Removed.
9043 * brig/brigfrontend/brig-function.cc: Removed.
9044 * brig/brigfrontend/brig-function.h: Removed.
9045 * brig/brigfrontend/brig-inst-mod-handler.cc: Removed.
9046 * brig/brigfrontend/brig-label-handler.cc: Removed.
9047 * brig/brigfrontend/brig-lane-inst-handler.cc: Removed.
9048 * brig/brigfrontend/brig-machine.c: Removed.
9049 * brig/brigfrontend/brig-machine.h: Removed.
9050 * brig/brigfrontend/brig-mem-inst-handler.cc: Removed.
9051 * brig/brigfrontend/brig-module-handler.cc: Removed.
9052 * brig/brigfrontend/brig-queue-inst-handler.cc: Removed.
9053 * brig/brigfrontend/brig-seg-inst-handler.cc: Removed.
9054 * brig/brigfrontend/brig-signal-inst-handler.cc: Removed.
9055 * brig/brigfrontend/brig-to-generic.cc: Removed.
9056 * brig/brigfrontend/brig-to-generic.h: Removed.
9057 * brig/brigfrontend/brig-util.cc: Removed.
9058 * brig/brigfrontend/brig-util.h: Removed.
9059 * brig/brigfrontend/brig-variable-handler.cc: Removed.
9060 * brig/brigfrontend/hsa-brig-format.h: Removed.
9061 * brig/brigfrontend/phsa.h: Removed.
9062 * brig/brigspec.c: Removed.
9063 * brig/config-lang.in: Removed.
9064 * brig/gccbrig.texi: Removed.
9065 * brig/lang-specs.h: Removed.
9066 * brig/lang.opt: Removed.
9068 2021-05-11 Richard Biener <rguenther@suse.de>
9071 * ipa-param-manipulation.c
9072 (ipa_param_body_adjustments::modify_call_stmt): Avoid
9073 altering SSA_NAME_DEF_STMT by adjusting the calls LHS
9074 via gimple_call_lhs_ptr.
9076 2021-05-11 Alex Coplan <alex.coplan@arm.com>
9079 * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear):
9080 Avoid emitting CFA adjusts on the sp if we have the fp.
9082 2021-05-11 Richard Sandiford <richard.sandiford@arm.com>
9084 * config/aarch64/iterators.md (VMUL_CHANGE_NLANES): Delete.
9085 (VMULD): New iterator.
9086 (VCOND): Handle V4HF and V8HF.
9087 (VCONQ): Fix entry for V2SF.
9088 * config/aarch64/aarch64-simd.md (mul_lane<mode>3): Use VMULD
9089 instead of VMUL. Use a 64-bit vector mode for the indexed operand.
9090 (*aarch64_mul3_elt_<vswap_width_name><mode>): Merge with...
9091 (mul_laneq<mode>3): ...this define_insn. Use VMUL instead of VDQSF.
9092 Use a 128-bit vector mode for the indexed operand. Use stype for
9093 the scheduling type.
9095 2021-05-11 Richard Biener <rguenther@suse.de>
9097 * gimple-fold.c (maybe_fold_reference): Only return
9098 is_gimple_min_invariant values.
9100 2021-05-11 Richard Biener <rguenther@suse.de>
9102 PR middle-end/100509
9103 * gimple-fold.c (fold_gimple_assign): Only call
9104 get_symbol_constant_value on register type symbols.
9106 2021-05-11 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
9107 Joe Ramsay <joe.ramsay@arm.com>
9110 * config/arm/arm_mve.h (__arm_vstrwq_scatter_offset): Fix wrong arguments.
9111 (__arm_vcmpneq): Remove duplicate definition.
9112 (__arm_vstrwq_scatter_offset_p): Likewise.
9113 (__arm_vmaxq_x): Likewise.
9114 (__arm_vmlsdavaq): Likewise.
9115 (__arm_vmlsdavaxq): Likewise.
9116 (__arm_vmlsdavq_p): Likewise.
9117 (__arm_vmlsdavxq_p): Likewise.
9118 (__arm_vrmlaldavhaq): Likewise.
9119 (__arm_vstrbq_p): Likewise.
9120 (__arm_vstrbq_scatter_offset): Likewise.
9121 (__arm_vstrbq_scatter_offset_p): Likewise.
9122 (__arm_vstrdq_scatter_offset): Likewise.
9123 (__arm_vstrdq_scatter_offset_p): Likewise.
9124 (__arm_vstrdq_scatter_shifted_offset): Likewise.
9125 (__arm_vstrdq_scatter_shifted_offset_p): Likewise.
9127 2021-05-11 Jakub Jelinek <jakub@redhat.com>
9129 PR middle-end/100471
9130 * omp-low.c (lower_omp_task_reductions): For OMP_TASKLOOP, if data
9131 is 0, bypass the reduction loop including
9132 GOMP_taskgroup_reduction_unregister call.
9134 2021-05-11 Kewen Lin <linkw@linux.ibm.com>
9136 * config/rs6000/rs6000.c (struct rs6000_cost_data): New member
9138 (rs6000_density_test): Early return if costing_for_scalar is true.
9139 (rs6000_init_cost): Init costing_for_scalar of rs6000_cost_data.
9141 2021-05-11 Kewen Lin <linkw@linux.ibm.com>
9143 * doc/tm.texi: Regenerated.
9144 * target.def (init_cost): Add new parameter costing_for_scalar.
9145 * targhooks.c (default_init_cost): Adjust for new parameter.
9146 * targhooks.h (default_init_cost): Likewise.
9147 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Likewise.
9148 (vect_compute_single_scalar_iteration_cost): Likewise.
9149 (vect_analyze_loop_2): Likewise.
9150 * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Likewise.
9151 (vect_bb_vectorization_profitable_p): Likewise.
9152 * tree-vectorizer.h (init_cost): Likewise.
9153 * config/aarch64/aarch64.c (aarch64_init_cost): Likewise.
9154 * config/i386/i386.c (ix86_init_cost): Likewise.
9155 * config/rs6000/rs6000.c (rs6000_init_cost): Likewise.
9157 2021-05-11 Kewen Lin <linkw@linux.ibm.com>
9159 * config/rs6000/rs6000.c (rs6000_vect_nonmem): Renamed to
9160 vect_nonmem and moved into...
9161 (struct rs6000_cost_data): ...here.
9162 (rs6000_init_cost): Use vect_nonmem of cost_data instead.
9163 (rs6000_add_stmt_cost): Likewise.
9164 (rs6000_finish_cost): Likewise.
9166 2021-05-10 Eric Botcazou <ebotcazou@adacore.com>
9168 * range-op.cc (get_bool_state): Adjust head comment.
9169 (operator_not_equal::op1_range): Fix comment.
9170 (operator_bitwise_xor::op1_range): Remove call to gcc_unreachable.
9172 2021-05-10 Martin Sebor <msebor@redhat.com>
9174 PR middle-end/100425
9175 PR middle-end/100510
9176 * gimple-ssa-warn-alloca.c (pass_walloca::firast_time_p): Rename...
9177 (pass_walloca::xlimit_certain_p): ...to this.
9178 (pass_walloca::gate): Execute for any kind of handled warning.
9179 (pass_walloca::execute): Avoid issuing "maybe" and "unbounded"
9180 warnings when xlimit_certain_p is set.
9182 2021-05-10 Pat Haugen <pthaugen@linux.ibm.com>
9184 * config/rs6000/rs6000.c (rs6000_ira_change_pseudo_allocno_class):
9185 Return ALTIVEC_REGS if that is best_class.
9186 (rs6000_compute_pressure_classes): Add ALTIVEC_REGS.
9188 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org>
9190 * config/arm/arm.h (CPP_SPEC): Remove error message about
9193 2021-05-10 Martin Jambor <mjambor@suse.cz>
9195 * ipa-prop.h (IPA_NODE_REF): Removed.
9196 (IPA_NODE_REF_GET_CREATE): Likewise.
9197 (IPA_EDGE_REF): Likewise.
9198 (IPA_EDGE_REF_GET_CREATE): Likewise.
9199 (IS_VALID_JUMP_FUNC_INDEX): Likewise.
9200 * ipa-cp.c (print_all_lattices): Replaced IPA_NODE_REF with a direct
9201 use of ipa_node_params_sum.
9202 (ipcp_versionable_function_p): Likewise.
9203 (push_node_to_stack): Likewise.
9204 (pop_node_from_stack): Likewise.
9205 (set_single_call_flag): Replaced two IPA_NODE_REF with one single
9206 direct use of ipa_node_params_sum.
9207 (initialize_node_lattices): Replaced IPA_NODE_REF with a direct use of
9208 ipa_node_params_sum.
9209 (ipa_context_from_jfunc): Replaced IPA_EDGE_REF with a direct use of
9211 (ipcp_verify_propagated_values): Replaced IPA_NODE_REF with a direct
9212 use of ipa_node_params_sum.
9213 (self_recursively_generated_p): Likewise.
9214 (propagate_scalar_across_jump_function): Likewise.
9215 (propagate_context_across_jump_function): Replaced IPA_EDGE_REF with a
9216 direct use of ipa_edge_args_sum, moved the lookup after the early
9217 exit. Replaced IPA_NODE_REF with a direct use of ipa_node_params_sum.
9218 (propagate_bits_across_jump_function): Replaced IPA_NODE_REF with
9219 direct uses of ipa_node_params_sum.
9220 (propagate_vr_across_jump_function): Likewise.
9221 (propagate_aggregate_lattice): Likewise.
9222 (propagate_aggs_across_jump_function): Likewise.
9223 (propagate_constants_across_call): Likewise, also replaced
9224 IPA_EDGE_REF with a direct use of ipa_edge_args_sum.
9225 (good_cloning_opportunity_p): Replaced IPA_NODE_REF with a direct use
9226 of ipa_node_params_sum.
9227 (estimate_local_effects): Likewise.
9228 (add_all_node_vals_to_toposort): Likewise.
9229 (propagate_constants_topo): Likewise.
9230 (ipcp_propagate_stage): Likewise.
9231 (ipcp_discover_new_direct_edges): Likewise.
9232 (calls_same_node_or_its_all_contexts_clone_p): Likewise.
9233 (cgraph_edge_brings_value_p): Likewise (in both overloaded functions).
9234 (get_info_about_necessary_edges): Likewise.
9235 (want_remove_some_param_p): Likewise.
9236 (create_specialized_node): Likewise.
9237 (self_recursive_pass_through_p): Likewise.
9238 (self_recursive_agg_pass_through_p): Likewise.
9239 (find_more_scalar_values_for_callers_subset): Likewise and also
9240 replaced IPA_EDGE_REF with direct uses of ipa_edge_args_sum, in one
9241 case replacing two of those with a single query.
9242 (find_more_contexts_for_caller_subset): Likewise for the
9243 ipa_polymorphic_call_context overload.
9244 (intersect_aggregates_with_edge): Replaced IPA_EDGE_REF with a direct
9245 use of ipa_edge_args_sum. Replaced IPA_NODE_REF with direct uses of
9246 ipa_node_params_sum.
9247 (find_aggregate_values_for_callers_subset): Likewise, also reusing
9248 results of ipa_edge_args_sum->get.
9249 (cgraph_edge_brings_all_scalars_for_node): Replaced IPA_NODE_REF with
9250 direct uses of ipa_node_params_sum, replaced IPA_EDGE_REF with a
9251 direct use of ipa_edge_args_sum.
9252 (cgraph_edge_brings_all_agg_vals_for_node): Likewise, moved node
9253 summary query after the early exit and reused the result later.
9254 (decide_about_value): Replaced IPA_NODE_REF with a direct use of
9255 ipa_node_params_sum.
9256 (decide_whether_version_node): Likewise. Removed re-querying for
9257 summaries after cloning.
9258 (spread_undeadness): Replaced IPA_NODE_REF with a direct use of
9259 ipa_node_params_sum.
9260 (has_undead_caller_from_outside_scc_p): Likewise, reusing results of
9262 (identify_dead_nodes): Likewise.
9263 (ipcp_store_bits_results): Replaced IPA_NODE_REF with direct uses of
9264 ipa_node_params_sum.
9265 (ipcp_store_vr_results): Likewise.
9266 * ipa-fnsummary.c (evaluate_properties_for_edge): Likewise.
9267 (ipa_fn_summary_t::duplicate): Likewise.
9268 (analyze_function_body): Likewise.
9269 (estimate_calls_size_and_time): Likewise.
9270 (ipa_cached_call_context::duplicate_from): Likewise.
9271 (ipa_call_context::equal_to): Likewise.
9272 (remap_edge_params): Likewise.
9273 (ipa_merge_fn_summary_after_inlining): Likewise.
9274 (inline_read_section): Likewise.
9275 * ipa-icf.c (sem_function::param_used_p): Likewise.
9276 * ipa-modref.c (compute_parm_map): Likewise.
9277 (compute_parm_map): Replaced IPA_EDGE_REF with a direct use of
9279 (get_access_for_fnspec): Replaced IPA_NODE_REF with a direct use of
9280 ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of
9282 * ipa-profile.c (check_argument_count): Likewise.
9283 * ipa-prop.c (ipa_alloc_node_params): Replaced IPA_NODE_REF_GET_CREATE
9284 with a direct use of ipa_node_params_sum.
9285 (ipa_initialize_node_params): Likewise.
9286 (ipa_print_node_jump_functions_for_edge): Replaced IPA_EDGE_REF with a
9287 direct use of ipa_edge_args_sum and reused the query result.
9288 (ipa_compute_jump_functions_for_edge): Replaced IPA_NODE_REF with a
9289 direct use of ipa_node_params_sum and replaced IPA_EDGE_REF with a
9290 direct use of ipa_edge_args_sum.
9291 (ipa_note_param_call): Replaced IPA_NODE_REF with a direct use of
9292 ipa_node_params_sum and reused the result of the query.
9293 (ipa_analyze_node): Likewise.
9294 (ipa_analyze_controlled_uses): Replaced IPA_NODE_REF with a direct use
9295 of ipa_node_params_sum.
9296 (update_jump_functions_after_inlining): Replaced IPA_EDGE_REF with
9297 direct uses of ipa_edge_args_sum.
9298 (update_indirect_edges_after_inlining): Replaced IPA_NODE_REF with
9299 direct uses of ipa_node_params_sum and replaced IPA_EDGE_REF with a
9300 direct use of ipa_edge_args_sum. Removed superficial re-querying the
9302 (propagate_controlled_uses): Replaced IPA_NODE_REF with direct uses of
9303 ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of
9305 (ipa_propagate_indirect_call_infos): Replaced IPA_EDGE_REF with a
9306 direct use of ipa_edge_args_sum.
9307 (ipa_edge_args_sum_t::duplicate): Replaced IPA_NODE_REF with a direct
9308 use of ipa_node_params_sum.
9309 (ipa_print_node_params): Likewise.
9310 (ipa_write_node_info): Likewise and also replaced IPA_EDGE_REF with
9311 direct uses of ipa_edge_args_sum.
9312 (ipa_read_edge_info): Replaced IPA_EDGE_REF with a direct use of
9314 (ipa_read_node_info): Replaced IPA_NODE_REF with a direct use of
9315 ipa_node_params_sum.
9316 (ipa_prop_write_jump_functions): Likewise. Move variable node to the
9317 scopes where it is used.
9319 2021-05-10 Uroš Bizjak <ubizjak@gmail.com>
9321 * config/i386/i386-expand.c (ix86_expand_sse_movcc)
9322 <case E_V2SImode>: Force op_true to register.
9324 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org>
9326 * config/arm/iterators.md (MVE_FP_COMPARISONS): New.
9327 * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_f<mode>)
9328 (mve_vcmp<mve_cmp_op>q_n_f<mode>): New, merge all vcmp_*f*
9330 (mve_vcmpeqq_f<mode>, mve_vcmpeqq_n_f<mode>, mve_vcmpgeq_f<mode>)
9331 (mve_vcmpgeq_n_f<mode>, mve_vcmpgtq_f<mode>)
9332 (mve_vcmpgtq_n_f<mode>, mve_vcmpleq_f<mode>)
9333 (mve_vcmpleq_n_f<mode>, mve_vcmpltq_f<mode>)
9334 (mve_vcmpltq_n_f<mode>, mve_vcmpneq_f<mode>)
9335 (mve_vcmpneq_n_f<mode>): Remove.
9336 * config/arm/unspecs.md (VCMPEQQ_F, VCMPEQQ_N_F, VCMPGEQ_F)
9337 (VCMPGEQ_N_F, VCMPGTQ_F, VCMPGTQ_N_F, VCMPLEQ_F, VCMPLEQ_N_F)
9338 (VCMPLTQ_F, VCMPLTQ_N_F, VCMPNEQ_F, VCMPNEQ_N_F): Remove.
9340 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org>
9342 * config/arm/iterators.md (MVE_COMPARISONS): New.
9344 (mve_cmp_type): New.
9345 * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_<mode>): New, merge all
9347 (mve_vcmpneq_<mode>, mve_vcmpcsq_n_<mode>, mve_vcmpcsq_<mode>)
9348 (mve_vcmpeqq_n_<mode>, mve_vcmpeqq_<mode>, mve_vcmpgeq_n_<mode>)
9349 (mve_vcmpgeq_<mode>, mve_vcmpgtq_n_<mode>, mve_vcmpgtq_<mode>)
9350 (mve_vcmphiq_n_<mode>, mve_vcmphiq_<mode>, mve_vcmpleq_n_<mode>)
9351 (mve_vcmpleq_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>)
9352 (mve_vcmpneq_n_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>)
9353 (mve_vcmpneq_n_<mode>): Remove.
9355 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org>
9357 * config/arm/arm_mve.h (__arm_vcmp*): Remove 's' suffix.
9358 * config/arm/arm_mve_builtins.def (vcmp*): Remove 's' suffix.
9359 * config/arm/mve.md (mve_vcmp*): Remove 's' suffix in pattern
9362 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org>
9364 * config/arm/arm_mve_builtins.def (vcmpneq_u): Remove.
9365 (vcmpneq_n_u): Likewise.
9366 (vcmpeqq_u,): Likewise.
9367 (vcmpeqq_n_u): Likewise.
9368 * config/arm/iterators.md (supf): Remove VCMPNEQ_U, VCMPEQQ_U,
9369 VCMPEQQ_N_U and VCMPNEQ_N_U.
9370 * config/arm/mve.md (mve_vcmpneq): Remove <supf> iteration.
9371 (mve_vcmpeqq_n): Likewise.
9372 (mve_vcmpeqq): Likewise.
9373 (mve_vcmpneq_n): Likewise.
9375 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org>
9377 * config/arm/arm_mve.h (__arm_vcmpeq*u*, __arm_vcmpne*u*): Call
9378 the 's' version of the builtin.
9380 2021-05-10 Richard Biener <rguenther@suse.de>
9382 PR tree-optimization/100492
9383 * tree-loop-distribution.c (find_seed_stmts_for_distribution):
9384 Find nothing when the loop contains an irreducible region.
9386 2021-05-10 Richard Biener <rguenther@suse.de>
9388 PR middle-end/100464
9390 * gimple-fold.c (canonicalize_constructor_val): Do not set
9393 2021-05-10 Richard Biener <rguenther@suse.de>
9395 PR tree-optimization/100434
9396 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle
9398 (dse_optimize_stmt): Handle call LHS by dropping the
9399 LHS or the whole call if it doesn't have other
9401 (pass_dse::execute): Adjust.
9403 2021-05-10 Martin Liska <mliska@suse.cz>
9405 * Makefile.in: Add missing genversion rule.
9407 2021-05-10 Alex Coplan <alex.coplan@arm.com>
9410 * config/arm/mve.md (*mve_mov<mode>): Simplify output code. Use
9411 vldrw.u32 and vstrw.32 for V2D[IF]mode loads and stores.
9413 2021-05-10 Martin Liska <mliska@suse.cz>
9415 * builtins.c (is_builtin_name): Use startswith
9416 function instead of strncmp.
9417 * collect2.c (main): Likewise.
9418 (has_lto_section): Likewise.
9419 (scan_libraries): Likewise.
9420 * coverage.c (coverage_checksum_string): Likewise.
9421 (coverage_init): Likewise.
9422 * dwarf2out.c (is_cxx): Likewise.
9423 (gen_compile_unit_die): Likewise.
9424 * gcc-ar.c (main): Likewise.
9425 * gcc.c (init_spec): Likewise.
9426 (read_specs): Likewise.
9427 (execute): Likewise.
9428 (check_live_switch): Likewise.
9429 * genattrtab.c (write_attr_case): Likewise.
9430 (IS_ATTR_GROUP): Likewise.
9431 * gencfn-macros.c (main): Likewise.
9432 * gengtype.c (type_for_name): Likewise.
9433 (gen_rtx_next): Likewise.
9434 (get_file_langdir): Likewise.
9435 (write_local): Likewise.
9436 * genmatch.c (get_operator): Likewise.
9437 (get_operand_type): Likewise.
9438 (expr::gen_transform): Likewise.
9439 * genoutput.c (validate_optab_operands): Likewise.
9440 * incpath.c (add_sysroot_to_chain): Likewise.
9441 * langhooks.c (lang_GNU_C): Likewise.
9442 (lang_GNU_CXX): Likewise.
9443 (lang_GNU_Fortran): Likewise.
9444 (lang_GNU_OBJC): Likewise.
9445 * lto-wrapper.c (run_gcc): Likewise.
9446 * omp-general.c (omp_max_simt_vf): Likewise.
9447 * omp-low.c (omp_runtime_api_call): Likewise.
9448 * opts-common.c (parse_options_from_collect_gcc_options): Likewise.
9449 * read-rtl-function.c (function_reader::read_rtx_operand_r): Likewise.
9450 * real.c (real_from_string): Likewise.
9451 * selftest.c (assert_str_startswith): Likewise.
9452 * timevar.c (timer::validate_phases): Likewise.
9453 * tree.c (get_file_function_name): Likewise.
9454 * ubsan.c (ubsan_use_new_style_p): Likewise.
9455 * varasm.c (default_function_rodata_section): Likewise.
9456 (incorporeal_function_p): Likewise.
9457 (default_section_type_flags): Likewise.
9458 * system.h (startswith): Define startswith.
9460 2021-05-10 Martin Liska <mliska@suse.cz>
9462 * bitmap.h (class auto_bitmap): Remove
9463 __cplusplus >= 201103.
9464 * config/aarch64/aarch64.c: Likewise.
9465 * gimple-ssa-store-merging.c (store_immediate_info::store_immediate_info):
9467 * sbitmap.h: Likewise.
9469 2021-05-10 Martin Liska <mliska@suse.cz>
9471 * Makefile.in: Rename gcov-iov to genversion and depend
9472 on version.h (instead of gcov-iov.h).
9473 * gcov-io.h: Include version.h instread of gcov-iov.h.
9474 * gengtype-state.c (read_state_version): Likewise.
9475 * gcov-iov.c: Moved to...
9476 * genversion.c: ...here.
9477 * lto-streamer.h (LTO_major_version): Define it with
9479 * version.c: Removed.
9480 * version.h: Removed.
9482 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com>
9484 * config/arc/arc.md (UNSPEC_ARC_DMPYWH): Define.
9485 * config/arc/simdext.md (VCT): Add predicates for iterator
9489 (vec_widen_<V_US>mult_hi_v4hi): Change pattern predicate.
9490 (<voptab>v2si3): New patterns.
9492 (reduc_plus_scal_v4hi): Likewise.
9493 (reduc_plus_scal_v2si): Likewise.
9494 (vec_duplicatev2si): Likewise.
9495 (vec_duplicatev4hi): Likewise.
9497 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com>
9499 * config/arc/simdext.md: Format and cleanup file.
9501 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com>
9503 * config/arc/simdext.md (movmisalignv2hi): Allow misaligned access
9504 only when munaligned-access option is on.
9505 (movmisalign<mode>): Likewise.
9507 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com>
9509 * common/config/arc/arc-common.c (arc_handle_option): Remove dot
9511 * config/arc/arc.c (arc_reorg): Remove underscore from string.
9513 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com>
9515 * config/arc/arc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
9516 (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
9517 * config/arc/arc.md (clrsbsi2): Cleanup pattern.
9521 (clzsi2): Use fls instruction when available.
9522 (arc_clzsi2): Likewise.
9524 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com>
9526 * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Add r26 and r27.
9528 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com>
9530 * doc/extend.texi (__builtin_arc_sr): Swap arguments.
9532 2021-05-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
9534 PR middle-end/100467
9535 * toplev.c (compile_file): Call insn_locations_init before
9536 targetm.asm_out.code_end.
9538 2021-05-07 Andrew Stubbs <ams@codesourcery.com>
9541 2021-05-07 Andrew Stubbs <ams@codesourcery.com>
9543 * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode.
9545 2021-05-07 Jakub Jelinek <jakub@redhat.com>
9546 Andrew Stubbs <amd@codesourcery.com>
9549 * builtins.c (try_store_by_multiple_pieces): Use force_operand for
9550 emit_move_insn operands.
9552 2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
9554 * cfgexpand.c (expand_gimple_basic_block): Do not inherit a current
9555 location for the outgoing edges of an empty block.
9556 * dwarf2out.c (add_subscript_info): Retrieve the bounds and index
9557 type by means of the get_array_descr_info langhook, if it is set and
9558 returns true. Remove obsolete code dealing with unnamed subtypes.
9560 2021-05-07 Andrew MacLeod <amacleod@redhat.com>
9562 * gimple-range-cache.cc (ssa_block_ranges): Virtualize.
9563 (sbr_vector): Renamed from ssa_block_cache.
9564 (sbr_vector::sbr_vector): Allocate from obstack abd initialize.
9565 (ssa_block_ranges::~ssa_block_ranges): Remove.
9566 (sbr_vector::set_bb_range): Use varying and undefined cached values.
9567 (ssa_block_ranges::set_bb_varying): Remove.
9568 (sbr_vector::get_bb_range): Adjust assert.
9569 (sbr_vector::bb_range_p): Adjust assert.
9570 (~block_range_cache): No freeing loop required.
9571 (block_range_cache::get_block_ranges): Remove.
9572 (block_range_cache::set_bb_range): Inline get_block_ranges.
9573 (block_range_cache::set_bb_varying): Remove.
9574 * gimple-range-cache.h (set_bb_varying): Remove prototype.
9575 * value-range.h (irange_allocator::get_memory): New.
9577 2021-05-07 Andrew MacLeod <amacleod@redhat.com>
9579 * gimple-range-cache.cc (non_null_ref::non_null_deref_p): Search
9580 dominator tree is available and requested.
9581 (ranger_cache::ssa_range_in_bb): Don't search dom tree here.
9582 (ranger_cache::fill_block_cache): Don't search dom tree here either.
9583 * gimple-range-cache.h (non_null_deref_p): Add dom_search param.
9585 2021-05-07 Andrew MacLeod <amacleod@redhat.com>
9587 * gimple-range.cc (gimple_ranger::range_on_exit): Handle block with
9588 only PHI nodes better.
9590 2021-05-07 Andrew MacLeod <amacleod@redhat.com>
9592 * gimple-range-edge.h (gimple_outgoing_range): Rename from
9594 (gcond_edge_range): Export prototype.
9595 * gimple-range-edge.cc (gcond_edge_range): New.
9596 (gimple_outgoing_range::edge_range_p): Use gcond_edge_range.
9597 * gimple-range-gori.h (gori_compute): Use gimple_outgoing_range.
9599 2021-05-07 Andrew MacLeod <amacleod@redhat.com>
9601 * gimple-range-edge.cc (outgoing_range::calc_switch_ranges): Compute
9602 default range into a temp and allocate only what is needed.
9604 2021-05-07 Andrew MacLeod <amacleod@redhat.com>
9606 * range-op.cc (operator_trunc_mod::wi_fold): x % 0 is UNDEFINED.
9608 2021-05-07 Andrew MacLeod <amacleod@redhat.com>
9610 * gimple-range.h (gimple_range_global): Pick up parameter initial
9611 values, and use-before defined locals are UNDEFINED.
9613 2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
9615 * doc/extend.texi (scalar_storage_order): Mention effect on pointer
9617 * tree.h (reverse_storage_order_for_component_p): Return false if
9618 the type is a pointer.
9620 2021-05-07 Andrew Stubbs <ams@codesourcery.com>
9622 * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode.
9624 2021-05-07 Uroš Bizjak <ubizjak@gmail.com>
9627 * config/i386/i386-expand.c (ix86_expand_sse_movcc):
9628 Handle V8QI, V4HI and V2SI modes.
9629 * config/i386/mmx.md (mmx_pblendvb): New insn pattern.
9630 * config/i386/sse.md (unspec): Move UNSPEC_BLENDV ...
9631 * config/i386/i386.md (unspec): ... here.
9633 2021-05-07 Tobias Burnus <tobias@codesourcery.com>
9634 Tom de Vries <tdevries@suse.de>
9636 * omp-low.c (lower_rec_simd_input_clauses): Set max_vf = 1 if
9637 a truth_value_p reduction variable is nonintegral.
9639 2021-05-07 Uroš Bizjak <ubizjak@gmail.com>
9642 * config/i386/i386-expand.c (ix86_use_mask_cmp_p):
9643 Return false for mode sizes < 16.
9645 2021-05-07 Jakub Jelinek <jakub@redhat.com>
9648 * config/i386/mmx.md (*xop_pcmov_<mode>): New define_insn.
9650 2021-05-06 Martin Jambor <mjambor@suse.cz>
9652 * ipa-sra.c (ipa_sra_dump_all_summaries): Dump edge summaries even
9653 when there is no function summary.
9654 (ipa_sra_summarize_function): produce edge summaries even when
9657 2021-05-06 Tom Tromey <tom@tromey.com>
9659 * godump.c (string_hash_eq): Remove.
9660 (go_finish): Use htab_eq_string.
9662 2021-05-06 Tom Tromey <tom@tromey.com>
9664 * gengtype-state.c (read_state): Use htab_eq_string.
9665 (string_eq): Remove.
9667 2021-05-06 Tom Tromey <tom@tromey.com>
9669 * gensupport.c (htab_eq_string): Remove.
9671 2021-05-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
9674 * debug.h (gcc_debug_hooks): Add set_ignored_loc function pointer.
9675 * dwarf2out.h (dw_fde_node::ignored_debug): New data item.
9676 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Add dummy
9677 set_ignored_loc callbacks.
9678 * debug.c (do_nothing_debug_hooks): Likewise.
9679 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
9680 * dwarf2out.c (text_section_used, cold_text_section_used): Remove.
9681 (in_text_section_p, last_text_label, last_cold_label,
9682 switch_text_ranges, switch_cold_ranges): New data items.
9683 (dwarf2out_note_section_used): Remove.
9684 (dwarf2out_begin_prologue): Set fde->ignored_debug and
9686 (mark_ignored_debug_section): New helper function.
9687 (dwarf2out_end_epilogue, dwarf2out_switch_text_section): Call
9688 mark_ignored_debug_section.
9689 (dwarf2_debug_hooks): Use dwarf2out_set_ignored_loc.
9690 (dwarf2_lineno_debug_hooks): Use dummy for set_ignored_loc.
9691 (size_of_aranges): Adjust formula for multi-part text ranges size.
9692 (output_aranges): Output multi-part text ranges.
9693 (dwarf2out_set_ignored_loc): New callback function.
9694 (dwarf2out_finish): Output multi-part text ranges.
9695 (dwarf2out_c_finalize): Clear new data items.
9696 * final.c (final_start_function_1): Call set_ignored_loc callback.
9697 (final_scan_insn_1): Likewise.
9698 * ggc-page.c (gt_ggc_mx): New helper function.
9699 * stringpool.c (gt_pch_nx): Likewise.
9701 2021-05-06 Richard Biener <rguenther@suse.de>
9703 * timevar.def (TV_TREE_INSERT_PHI_NODES): Remove.
9704 (TV_TREE_SSA_REWRITE_BLOCKS): Likewise.
9705 (TV_TREE_INTO_SSA): New.
9706 * tree-into-ssa.c (insert_phi_nodes): Do not account separately.
9707 (rewrite_blocks): Likewise.
9708 (pass_data_build_ssa): Account to TV_TREE_INTO_SSA.
9710 2021-05-06 Jakub Jelinek <jakub@redhat.com>
9712 * tree-ssa-phiopt.c (value_replacement, minmax_replacement,
9713 abs_replacement, xor_replacement,
9714 cond_removal_in_popcount_clz_ctz_pattern,
9715 replace_phi_edge_with_variable): Change type of phi argument from
9718 2021-05-06 Richard Biener <rguenther@suse.de>
9720 * tree-ssa-loop-split.c (split_loop): Delay updating SSA form.
9721 Output an opt-info message.
9722 (do_split_loop_on_cond): Likewise.
9723 (tree_ssa_split_loops): Update SSA form here.
9725 2021-05-06 Richard Biener <rguenther@suse.de>
9727 * tree-inline.c (tree_function_versioning): Fix DECL_BY_REFERENCE
9728 return variable removal.
9730 2021-05-06 Marius Hillenbrand <mhillen@linux.ibm.com>
9732 * config/s390/s390-builtins.def (O_M5, O1_M5, ...): Remove unused macros.
9733 (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64)
9734 (s390_vec_permi_dbl, s390_vpdi): Use the O3_U2 type for the immediate
9736 * config/s390/s390.c (s390_const_operand_ok): Remove unused
9739 2021-05-06 Jakub Jelinek <jakub@redhat.com>
9741 PR tree-optimization/94589
9742 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
9743 spaceship_replacement.
9744 (cond_only_block_p, spaceship_replacement): New functions.
9746 2021-05-06 Richard Biener <rguenther@suse.de>
9749 * tree-emutls.c (gen_emutls_addr): Pass in whether we're
9750 dealing with a debug use and only query existing addresses
9752 (lower_emutls_1): Avoid splitting out addresses for debug
9753 stmts, reset the debug stmt when we fail to find existing
9755 (lower_emutls_phi_arg): Set wi.stmt.
9757 2021-05-06 Christoph Muellner <cmuellner@gcc.gnu.org>
9760 * config/riscv/riscv.c (riscv_block_move_loop): Use cbranch helper.
9761 * config/riscv/riscv.md (cbranch<mode>4): Generate helpers.
9762 (stack_protect_test): Use cbranch helper.
9764 2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
9767 * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
9768 always return the establisher frame for __builtin_frame_address (0).
9770 2021-05-05 Ivan Sorokin <vanyacpp@gmail.com>
9773 * config/i386/i386-builtins.c (ix86_cpu_model_type_node): New.
9774 (ix86_cpu_model_var): Likewise.
9775 (ix86_cpu_features2_type_node): Likewise.
9776 (ix86_cpu_features2_var): Likewise.
9777 (fold_builtin_cpu): Cache __cpu_model and __cpu_features2 with
9780 2021-05-05 Martin Sebor <msebor@redhat.com>
9782 * passes.def (pass_warn_printf): Run after SSA.
9784 2021-05-05 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9786 * config/arm/neon.md (neon_vtst_combine<mode>): New pattern.
9787 * config/arm/predicates.md (minus_one_operand): New predicate.
9789 2021-05-05 Jeff Law <jlaw@tachyum.com>
9791 * config/avr/avr.md: Remove references to CC_STATUS_INIT.
9793 2021-05-05 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
9795 PR rtl-optimization/100263
9796 * postreload.c (move2add_valid_value_p): Ensure register can
9799 2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
9801 PR rtl-optimization/100411
9802 * cfgcleanup.c (try_crossjump_to_edge): Also skip end of prologue
9803 and beginning of function markers.
9805 2021-05-05 Jeff Law <jlaw@tachyum.com>
9807 * config/cr16/cr16.h (NOTICE_UPDATE_CC): Remove.
9808 * config/cr16/cr16.c (notice_update_cc): Remove.
9809 * config/cr16/cr16-protos.h (notice_update_cc): Remove.
9811 2021-05-05 Uroš Bizjak <ubizjak@gmail.com>
9814 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
9815 Handle V8QI, V4HI and V2SI modes.
9816 * config/i386/i386.c (ix86_build_const_vector): Handle V2SImode.
9817 (ix86_build_signbit_mask): Ditto.
9818 * config/i386/mmx.md (MMXMODE14): New mode iterator.
9819 (<smaxmin:code><MMXMODE14:mode>3): New expander.
9820 (*mmx_<smaxmin:code><MMXMODE14:mode>3): New insn pattern.
9821 (<umaxmin:code><MMXMODE24:mode>3): New expander.
9822 (*mmx_<umaxmin:code><MMXMODE24:mode>3): New insn pattern.
9823 (vec_cmp<MMXMODEI:mode><MMXMODEI:mode>): New expander.
9824 (vec_cmpu<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
9825 (vcond<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
9826 (vcondu<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
9827 (vcond_mask_<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
9829 2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
9831 * dwarf2out.c (loc_list_from_tree_1) <DECL>: During early DWARF, do
9832 not expand the VALUE_EXPR of variables put in the non-local frame.
9833 * gimplify.c (gimplify_type_sizes) <RECORD_TYPE>: If the type is not
9834 to be ignored for debug info, ensure its variable offsets are not.
9836 2021-05-05 Richard Biener <rguenther@suse.de>
9838 PR tree-optimization/79333
9839 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt):
9840 Fold stmt following SSA edges.
9842 2021-05-05 Richard Biener <rguenther@suse.de>
9844 PR middle-end/100394
9845 * calls.c (expand_call): Preserve possibly throwing calls.
9846 * cfgexpand.c (expand_call_stmt): When a call can throw signal
9847 RTL expansion there are side-effects.
9848 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Simplify,
9849 mark all possibly throwing stmts necessary unless we can elide
9851 * tree-ssa-dse.c (pass_dse::execute): Preserve exceptions unless
9852 -fdelete-dead-exceptions.
9853 * tree.h (DECL_PURE_P): Add note about exceptions.
9855 2021-05-05 Alexandre Oliva <oliva@adacore.com>
9857 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Make it
9860 2021-05-04 David Edelsohn <dje.gcc@gmail.com>
9862 * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
9863 get_fnname_from_decl for name of thunk.
9864 * config/rs6000/rs6000.c (rs6000_declare_alias): Use assemble_name
9865 and ASM_OUTPUT_LABEL.
9866 (rs6000_xcoff_declare_function_name): Use assemble_name and
9868 (rs6000_xcoff_declare_object_name): Use ASM_OUTPUT_LABEL.
9869 (rs6000_xcoff_encode_section_info): Don't add mapping class
9870 for aliases. Always add [DS] mapping class to primary
9872 (rs6000_asm_weaken_decl): Don't explicitly add [DS].
9874 2021-05-04 Martin Sebor <msebor@redhat.com>
9876 PR middle-end/100307
9877 * builtins.c (compute_objsize_r): Clear base0 for pointers.
9879 2021-05-04 Jeff Law <jlaw@tachyum.com>
9881 * config/bfin/bfin.h (NOTICE_UPDATE_CC): Remove.
9883 2021-05-04 Segher Boessenkool <segher@kernel.crashing.org>
9885 * caller-save.c: Remove CC0.
9886 * cfgcleanup.c: Remove CC0.
9887 * cfgrtl.c: Remove CC0.
9888 * combine.c: Remove CC0.
9889 * compare-elim.c: Remove CC0.
9890 * conditions.h: Remove CC0.
9891 * config/h8300/h8300.h: Remove CC0.
9892 * config/h8300/h8300-protos.h: Remove CC0.
9893 * config/h8300/peepholes.md: Remove CC0.
9894 * config/i386/x86-tune-sched.c: Remove CC0.
9895 * config/m68k/m68k.c: Remove CC0.
9896 * config/rl78/rl78.c: Remove CC0.
9897 * config/sparc/sparc.c: Remove CC0.
9898 * config/xtensa/xtensa.c: Remove CC0.
9899 (gen_conditional_move): Use pc_rtx instead of cc0_rtx in a piece of
9900 RTL where that is used as a placeholder only.
9901 * cprop.c: Remove CC0.
9902 * cse.c: Remove CC0.
9903 * cselib.c: Remove CC0.
9904 * df-problems.c: Remove CC0.
9905 * df-scan.c: Remove CC0.
9906 * doc/md.texi: Remove CC0. Adjust an example.
9907 * doc/rtl.texi: Remove CC0. Adjust an example.
9908 * doc/tm.texi: Regenerate.
9909 * doc/tm.texi.in: Remove CC0.
9910 * emit-rtl.c: Remove CC0.
9911 * final.c: Remove CC0.
9912 * fwprop.c: Remove CC0.
9913 * gcse-common.c: Remove CC0.
9914 * gcse.c: Remove CC0.
9915 * genattrtab.c: Remove CC0.
9916 * genconfig.c: Remove CC0.
9917 * genemit.c: Remove CC0.
9918 * genextract.c: Remove CC0.
9919 * gengenrtl.c: Remove CC0.
9920 * genrecog.c: Remove CC0.
9921 * haifa-sched.c: Remove CC0.
9922 * ifcvt.c: Remove CC0.
9923 * ira-costs.c: Remove CC0.
9924 * ira.c: Remove CC0.
9925 * jump.c: Remove CC0.
9926 * loop-invariant.c: Remove CC0.
9927 * lra-constraints.c: Remove CC0.
9928 * lra-eliminations.c: Remove CC0.
9929 * optabs.c: Remove CC0.
9930 * postreload-gcse.c: Remove CC0.
9931 * postreload.c: Remove CC0.
9932 * print-rtl.c: Remove CC0.
9933 * read-rtl-function.c: Remove CC0.
9934 * reg-notes.def: Remove CC0.
9935 * reg-stack.c: Remove CC0.
9936 * reginfo.c: Remove CC0.
9937 * regrename.c: Remove CC0.
9938 * reload.c: Remove CC0.
9939 * reload1.c: Remove CC0.
9940 * reorg.c: Remove CC0.
9941 * resource.c: Remove CC0.
9942 * rtl.c: Remove CC0.
9943 * rtl.def: Remove CC0.
9944 * rtl.h: Remove CC0.
9945 * rtlanal.c: Remove CC0.
9946 * sched-deps.c: Remove CC0.
9947 * sched-rgn.c: Remove CC0.
9948 * shrink-wrap.c: Remove CC0.
9949 * simplify-rtx.c: Remove CC0.
9950 * system.h: Remove CC0. Poison NOTICE_UPDATE_CC, CC_STATUS_MDEP_INIT,
9951 CC_STATUS_MDEP, and CC_STATUS.
9952 * target.def: Remove CC0.
9953 * valtrack.c: Remove CC0.
9954 * var-tracking.c: Remove CC0.
9956 2021-05-04 Richard Biener <rguenther@suse.de>
9958 PR tree-optimization/100414
9959 * tree-ssa-phiopt.c (get_non_trapping): Do not compute dominance
9961 (tree_ssa_phiopt_worker): But unconditionally here.
9963 2021-05-04 Tobias Burnus <tobias@codesourcery.com>
9965 * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses): Handle
9966 && and || with floating-point and complex arguments.
9968 2021-05-04 Eric Botcazou <ebotcazou@adacore.com>
9970 * tree-inline.c (insert_debug_decl_map): Delete.
9971 (copy_debug_stmt): Minor tweak.
9972 (setup_one_parameter): Do not use a variable if the value is either
9973 a read-only DECL or a non-addressable local variable in the caller.
9974 In this case, insert the debug-only variable in the map manually.
9975 (expand_call_inline): Do not generate a CLOBBER for these values.
9976 * tree-inline.h (debug_map): Minor tweak.
9978 2021-05-04 Eric Botcazou <ebotcazou@adacore.com>
9980 * builtins.c (builtin_with_linkage_p): Return true for stp[n]cpy.
9981 * symtab.c (symtab_node::output_to_lto_symbol_table_p): Tidy up.
9983 2021-05-04 Richard Biener <rguenther@suse.de>
9985 PR tree-optimization/100329
9986 * tree-ssa-reassoc.c (can_reassociate_p): Do not reassociate
9988 (insert_stmt_after): Assert we're not running into asm goto.
9990 2021-05-04 Richard Biener <rguenther@suse.de>
9992 PR tree-optimization/100398
9993 * tree-ssa-dse.c (pass_dse::execute): Preserve control
9996 2021-05-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9998 * builtins.c (try_store_by_multiple_pieces): Fix constfun's prototype.
10000 2021-05-04 Alexandre Oliva <oliva@adacore.com>
10002 * builtins.c (try_store_by_multiple_pieces): New.
10003 (expand_builtin_memset_args): Use it. If target_char_cast
10004 fails, proceed as for non-constant val. Pass len's ctz to...
10005 * expr.c (clear_storage_hints): ... this. Try store by
10006 multiple pieces after setmem.
10007 (clear_storage): Adjust.
10008 * expr.h (clear_storage_hints): Likewise.
10009 (try_store_by_multiple_pieces): Declare.
10010 * passes.def: Replace the last copy_prop with ccp.
10012 2021-05-03 Tom de Vries <tdevries@suse.de>
10015 * omp-low.c (lower_rec_input_clauses): Disable SIMT for user-defined
10018 2021-05-03 Richard Biener <rguenther@suse.de>
10020 * tree-ssa-dse.c (dse_classify_store): Track two PHI defs.
10022 2021-05-03 Richard Biener <rguenther@suse.de>
10024 * tree-ssa-dse.c: Do not include domwalk.h but cfganal.h.
10025 (dse_dom_walker): Remove.
10026 (dse_dom_walker::dse_optimize_stmt): Rename...
10027 (dse_optimize_stmt): ... to this, pass in live_bytes sbitmap.
10028 (dse_dom_walker::before_dom_children): Inline ...
10029 (pass_dse::execute): ... here. Perform a reverse program
10032 2021-05-03 H.J. Lu <hjl.tools@gmail.com>
10035 * configure: Regenerated.
10037 2021-05-03 Ilya Leoshkevich <iii@linux.ibm.com>
10040 * config/s390/s390.c (s390_hard_fp_reg_p): New function.
10041 (s390_md_asm_adjust): Handle hard registers.
10043 2021-05-03 Jakub Jelinek <jakub@redhat.com>
10045 PR tree-optimization/100382
10046 * tree-ssa-dse.c: Include tree-eh.h.
10047 (dse_dom_walker::before_dom_children): Don't remove stmts if
10048 stmt_unremovable_because_of_non_call_eh_p is true.
10050 2021-05-02 David Edelsohn <dje.gcc@gmail.com>
10052 * varasm.c (compute_reloc_for_var): Split out from...
10053 (get_variable_section): Use it.
10054 * output.h (compute_reloc_for_var): Declare.
10055 * config/rs6000/rs6000-protos.h
10056 (rs6000_xcoff_asm_output_aligned_decl_common): Change alignment to
10058 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address_aix):
10059 Don't append storage mapping class to symbol.
10060 (rs6000_xcoff_asm_named_section): Add BS and UL mapping classes.
10061 Don't convert TLS BSS to common.
10062 (rs6000_xcoff_unique_section): Don't fall back to select_secton.
10063 (rs6000_xcoff_section_type_flags): Add SECTION_BSS if DECL is
10065 (rs6000_xcoff_asm_globalize_decl_name): Don't strip storage
10067 (rs6000_xcoff_asm_output_aligned_decl_common): Align is unsigned int.
10068 If align is 0 from TLS class, use the same rules as varasm.c
10069 If not common, switch to BSS section manually.
10070 If common, emit appropriate comm or lcomm directive.
10071 (rs6000_xcoff_encode_section_info): Add logic to append all
10072 storage mapping classes.
10073 (rs6000_asm_weaken_decl): Adjust for qualname symbols.
10074 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
10075 rs6000_xcoff_asm_output_aligned_decl_common.
10076 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
10077 rs6000_xcoff_asm_output_aligned_decl_common.
10078 (ASM_OUTPUT_TLS_COMMON): Use
10079 rs6000_xcoff_asm_output_aligned_decl_common.
10081 2021-05-02 Jakub Jelinek <jakub@redhat.com>
10084 * config/nvptx/nvptx.c (nvptx_sese_pseudo): Use nullptr instead of 0
10085 as first argument of pseudo_node_t constructors.
10087 2021-05-02 Jakub Jelinek <jakub@redhat.com>
10090 * config/i386/t-i386 (TM_H): Add $(srcdir)/config/i386/i386-isa.def.
10092 2021-05-01 Aldy Hernandez <aldyh@redhat.com>
10094 * value-range.cc (DEFINE_INT_RANGE_GC_STUBS): Remove.
10095 (gt_pch_nx (int_range<1> *&)): New.
10096 (gt_ggc_mx (int_range<1> *&)): New.
10097 * value-range.h (class irange): Add GTY support for
10100 2021-05-01 Geng Qi <gengqi@linux.alibaba.com>
10102 * doc/options.texi (Negative): Change either or to both and.
10104 2021-04-30 Jonathan Wright <jonathan.wright@arm.com>
10106 * config/aarch64/aarch64-simd-builtins.def: Add
10107 float_ml[as][q]_laneq builtin generator macros.
10108 * config/aarch64/aarch64-simd.md (mul_laneq<mode>3): Define.
10109 (aarch64_float_mla_laneq<mode>): Define.
10110 (aarch64_float_mls_laneq<mode>): Define.
10111 * config/aarch64/arm_neon.h (vmla_laneq_f32): Use RTL builtin
10112 instead of GCC vector extensions.
10113 (vmlaq_laneq_f32): Likewise.
10114 (vmls_laneq_f32): Likewise.
10115 (vmlsq_laneq_f32): Likewise.
10117 2021-04-30 Jonathan Wright <jonathan.wright@arm.com>
10119 * config/aarch64/aarch64-simd-builtins.def: Add
10120 float_ml[as]_lane builtin generator macros.
10121 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt<mode>):
10123 (mul_lane<mode>3): This, and re-order arguments.
10124 (aarch64_float_mla_lane<mode>): Define.
10125 (aarch64_float_mls_lane<mode>): Define.
10126 * config/aarch64/arm_neon.h (vmla_lane_f32): Use RTL builtin
10127 instead of GCC vector extensions.
10128 (vmlaq_lane_f32): Likewise.
10129 (vmls_lane_f32): Likewise.
10130 (vmlsq_lane_f32): Likewise.
10132 2021-04-30 Jonathan Wright <jonathan.wright@arm.com>
10134 * config/aarch64/aarch64-simd-builtins.def: Add float_ml[as]
10135 builtin generator macros.
10136 * config/aarch64/aarch64-simd.md (aarch64_float_mla<mode>):
10138 (aarch64_float_mls<mode>): Define.
10139 * config/aarch64/arm_neon.h (vmla_f32): Use RTL builtin
10140 instead of relying on GCC vector extensions.
10141 (vmla_f64): Likewise.
10142 (vmlaq_f32): Likewise.
10143 (vmlaq_f64): Likewise.
10144 (vmls_f32): Likewise.
10145 (vmls_f64): Likewise.
10146 (vmlsq_f32): Likewise.
10147 (vmlsq_f64): Likewise.
10148 * config/aarch64/iterators.md: Define VDQF_DF mode iterator.
10150 2021-04-30 Jonathan Wright <jonathan.wright@arm.com>
10152 * config/aarch64/aarch64-simd-builtins.def: Add
10153 float_ml[as]_n_builtin generator macros.
10154 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_from_dup<mode>):
10156 (mul_n<mode>3): This, and re-order arguments.
10157 (aarch64_float_mla_n<mode>): Define.
10158 (aarch64_float_mls_n<mode>): Define.
10159 * config/aarch64/arm_neon.h (vmla_n_f32): Use RTL builtin
10160 instead of inline asm.
10161 (vmlaq_n_f32): Likewise.
10162 (vmls_n_f32): Likewise.
10163 (vmlsq_n_f32): Likewise.
10165 2021-04-30 Jonathan Wright <joanthan.wright@arm.com>
10167 * config/aarch64/aarch64-simd-builtins.def: Add pmull[2]
10168 builtin generator macros.
10169 * config/aarch64/aarch64-simd.md (aarch64_pmullv8qi): Define.
10170 (aarch64_pmull_hiv16qi_insn): Define.
10171 (aarch64_pmull_hiv16qi): Define.
10172 * config/aarch64/arm_neon.h (vmull_high_p8): Use RTL builtin
10173 instead of inline asm.
10174 (vmull_p8): Likewise.
10176 2021-04-30 Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org>
10178 * config/avr/avr.md: Adjust peepholes to match and
10179 generate parallels with clobber of REG_CC.
10180 (mov<mode>_insn): Rename to mov<mode>_insn_split.
10181 (*mov<mode>_insn): Rename to mov<mode>_insn.
10183 2021-04-30 David Edelsohn <dje.gcc@gmail.com>
10185 * varasm.c (use_blocks_for_decl_p): Don't use section anchors
10186 for VAR_DECLs if -fdata-sections enabled.
10188 2021-04-30 Michael Meissner <meissner@linux.ibm.com>
10190 PR bootstrap/100327
10191 * config/rs6000/rs6000.c
10192 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
10193 (rs6000_libgcc_floating_mode_supported_p): New target hook.
10195 2021-04-30 Aldy Hernandez <aldyh@redhat.com>
10197 * tree-ssa-threadbackward.c (class thread_jumps): Split out code
10199 (class back_threader_registry): ...to here...
10200 (class back_threader_profitability): ...and here...
10201 (thread_jumps::thread_through_all_blocks): Remove argument.
10202 (back_threader_registry::back_threader_registry): New.
10203 (back_threader_registry::~back_threader_registry): New.
10204 (back_threader_registry::thread_through_all_blocks): New.
10205 (thread_jumps::profitable_jump_thread_path): Move from here...
10206 (back_threader_profitability::profitable_path_p): ...to here.
10207 (thread_jumps::find_taken_edge): New.
10208 (thread_jumps::convert_and_register_current_path): Move...
10209 (back_threader_registry::register_path): ...to here.
10210 (thread_jumps::register_jump_thread_path_if_profitable): Move...
10211 (thread_jumps::maybe_register_path): ...to here.
10212 (thread_jumps::handle_phi): Call find_taken_edge and
10213 maybe_register_path.
10214 (thread_jumps::handle_assignment): Same.
10215 (thread_jumps::fsm_find_control_statement_thread_paths): Remove
10216 tree argument to handle_phi and handle_assignment.
10217 (thread_jumps::find_jump_threads_backwards): Set m_name. Remove
10218 set of m_speed_p and m_max_threaded_paths.
10219 (pass_thread_jumps::execute): Remove second argument from
10220 find_jump_threads_backwards.
10221 (pass_early_thread_jumps::execute): Same.
10223 2021-04-30 Aldy Hernandez <aldyh@redhat.com>
10225 * tree-ssa-dom.c (class dom_jump_threader_simplifier): New.
10226 (class dom_opt_dom_walker): Initialize some class variables.
10227 (pass_dominator::execute): Pass evrp_range_analyzer and
10228 dom_jump_threader_simplifier to dom_opt_dom_walker.
10229 Adjust for some functions moving into classes.
10230 (simplify_stmt_for_jump_threading): Adjust and move to...
10231 (jump_threader_simplifier::simplify): ...here.
10232 (dom_opt_dom_walker::before_dom_children): Adjust for
10233 m_evrp_range_analyzer.
10234 (dom_opt_dom_walker::after_dom_children): Remove x_vr_values hack.
10235 (test_for_singularity): Place in dom_opt_dom_walker class.
10236 (dom_opt_dom_walker::optimize_stmt): The argument
10237 evrp_range_analyzer is now a class field.
10238 * tree-ssa-threadbackward.c (class thread_jumps): Add m_registry.
10239 (thread_jumps::thread_through_all_blocks): New.
10240 (thread_jumps::convert_and_register_current_path): Use m_registry.
10241 (pass_thread_jumps::execute): Adjust for thread_through_all_blocks
10242 being in the threader class.
10243 (pass_early_thread_jumps::execute): Same.
10244 * tree-ssa-threadedge.c (threadedge_initialize_values): Move...
10245 (jump_threader::jump_threader): ...here.
10246 (threadedge_finalize_values): Move...
10247 (jump_threader::~jump_threader): ...here.
10248 (jump_threader::remove_jump_threads_including): New.
10249 (jump_threader::thread_through_all_blocks): New.
10250 (record_temporary_equivalences_from_phis): Move...
10251 (jump_threader::record_temporary_equivalences_from_phis): ...here.
10252 (record_temporary_equivalences_from_stmts_at_dest): Move...
10253 (jump_threader::record_temporary_equivalences_from_stmts_at_dest):
10255 (simplify_control_stmt_condition_1): Move to jump_threader class.
10256 (simplify_control_stmt_condition): Move...
10257 (jump_threader::simplify_control_stmt_condition): ...here.
10258 (thread_around_empty_blocks): Move...
10259 (jump_threader::thread_around_empty_blocks): ...here.
10260 (thread_through_normal_block): Move...
10261 (jump_threader::thread_through_normal_block): ...here.
10262 (thread_across_edge): Move...
10263 (jump_threader::thread_across_edge): ...here.
10264 (thread_outgoing_edges): Move...
10265 (jump_threader::thread_outgoing_edges): ...here.
10266 * tree-ssa-threadedge.h: Move externally facing functings...
10267 (class jump_threader): ...here...
10268 (class jump_threader_simplifier): ...and here.
10269 * tree-ssa-threadupdate.c (struct redirection_data): Remove comment.
10270 (jump_thread_path_allocator::jump_thread_path_allocator): New.
10271 (jump_thread_path_allocator::~jump_thread_path_allocator): New.
10272 (jump_thread_path_allocator::allocate_thread_edge): New.
10273 (jump_thread_path_allocator::allocate_thread_path): New.
10274 (jump_thread_path_registry::jump_thread_path_registry): New.
10275 (jump_thread_path_registry::~jump_thread_path_registry): New.
10276 (jump_thread_path_registry::allocate_thread_edge): New.
10277 (jump_thread_path_registry::allocate_thread_path): New.
10278 (dump_jump_thread_path): Make extern.
10279 (debug (const vec<jump_thread_edge *> &path)): New.
10280 (struct removed_edges): Move to tree-ssa-threadupdate.h.
10281 (struct thread_stats_d): Remove.
10282 (remove_ctrl_stmt_and_useless_edges): Make static.
10283 (lookup_redirection_data): Move...
10284 (jump_thread_path_registry::lookup_redirection_data): ...here.
10285 (ssa_redirect_edges): Make static.
10286 (thread_block_1): Move...
10287 (jump_thread_path_registry::thread_block_1): ...here.
10288 (thread_block): Move...
10289 (jump_thread_path_registry::thread_block): ...here.
10290 (thread_through_loop_header): Move...
10291 (jump_thread_path_registry::thread_through_loop_header): ...here.
10292 (mark_threaded_blocks): Move...
10293 (jump_thread_path_registry::mark_threaded_blocks): ...here.
10294 (debug_path): Move...
10295 (jump_thread_path_registry::debug_path): ...here.
10296 (debug_all_paths): Move...
10297 (jump_thread_path_registry::dump): ..here.
10298 (rewire_first_differing_edge): Move...
10299 (jump_thread_path_registry::rewire_first_differing_edge): ...here.
10300 (adjust_paths_after_duplication): Move...
10301 (jump_thread_path_registry::adjust_paths_after_duplication): ...here.
10302 (duplicate_thread_path): Move...
10303 (jump_thread_path_registry::duplicate_thread_path): ..here.
10304 (remove_jump_threads_including): Move...
10305 (jump_thread_path_registry::remove_jump_threads_including): ...here.
10306 (thread_through_all_blocks): Move to...
10307 (jump_thread_path_registry::thread_through_all_blocks): ...here.
10308 (delete_jump_thread_path): Remove.
10309 (register_jump_thread): Move...
10310 (jump_thread_path_registry::register_jump_thread): ...here.
10311 * tree-ssa-threadupdate.h: Move externally facing functions...
10312 (class jump_thread_path_allocator): ...here...
10313 (class jump_thread_path_registry): ...and here.
10314 (thread_through_all_blocks): Remove.
10315 (struct removed_edges): New.
10316 (register_jump_thread): Remove.
10317 (remove_jump_threads_including): Remove.
10318 (delete_jump_thread_path): Remove.
10319 (remove_ctrl_stmt_and_useless_edges): Remove.
10320 (free_dom_edge_info): New prototype.
10321 * tree-vrp.c: Remove x_vr_values hack.
10322 (class vrp_jump_threader_simplifier): New.
10323 (vrp_jump_threader_simplifier::simplify): New.
10324 (vrp_jump_threader::vrp_jump_threader): Adjust method signature.
10325 Remove m_dummy_cond.
10326 Instantiate m_simplifier and m_threader.
10327 (vrp_jump_threader::thread_through_all_blocks): New.
10328 (vrp_jump_threader::simplify_stmt): Remove.
10329 (vrp_jump_threader::after_dom_children): Do not set m_dummy_cond.
10330 Remove x_vr_values hack.
10331 (execute_vrp): Adjust for thread_through_all_blocks being in a
10334 2021-04-30 Christophe Lyon <christophe.lyon@linaro.org>
10336 * genflags.c (gen_insn): Print failed expansion string.
10338 2021-04-30 H.J. Lu <hjl.tools@gmail.com>
10340 * expr.c (alignment_for_piecewise_move): Call mode_for_size
10341 without limit to MAX_FIXED_MODE_SIZE.
10343 2021-04-30 H.J. Lu <hjl.tools@gmail.com>
10345 PR middle-end/90773
10346 * builtins.c (builtin_memset_gen_str): Don't use return from
10347 simplify_gen_subreg.
10349 2021-04-30 Uroš Bizjak <ubizjak@gmail.com>
10352 * config/i386/i386.md (*add<mode>3_carry_0r): New insn pattern.
10353 (*addsi3_carry_zext_0r): Ditto.
10354 (*sub<mode>3_carry_0): Ditto.
10355 (*subsi3_carry_zext_0r): Ditto.
10356 * config/i386/predicates.md (ix86_carry_flag_unset_operator):
10358 * config/i386/i386.c (ix86_rtx_costs) <case PLUS, case MINUS>:
10359 Also consider ix86_carry_flag_unset_operator to calculate
10360 the cost of adc/sbb insn.
10362 2021-04-30 Roman Zhuykov <zhroma@ispras.ru>
10364 PR rtl-optimization/100225
10365 PR rtl-optimization/84878
10366 * modulo-sched.c (sms_schedule): Use note_stores to skip loops
10367 where we have an instruction which touches (writes) any hard
10368 register from df->regular_block_artificial_uses set.
10369 Allow not-single-set instruction only right before basic block
10372 2021-04-30 Geng Qi <gengqi@linux.alibaba.com>
10374 * config/riscv/riscv.opt (march=,mabi=): Negative itself.
10376 2021-04-30 LevyHsu <admin@levyhsu.com>
10378 * config/riscv/riscv.c (riscv_min_arithmetic_precision): New.
10379 * config/riscv/riscv.h (TARGET_MIN_ARITHMETIC_PRECISION): New.
10380 * config/riscv/riscv.md (addv<mode>4, uaddv<mode>4): New.
10381 (subv<mode>4, usubv<mode>4, mulv<mode>4, umulv<mode>4): New.
10383 2021-04-29 Alexandre Oliva <oliva@adacore.com>
10385 * config.gcc: Merged x86 and x86_64 cpu_type-setting cases.
10387 2021-04-29 Alexandre Oliva <oliva@adacore.com>
10389 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Rename to...
10390 (ASM_OUTPUT_MAX_SKIP_ALIGN): ... this. Enclose in do/while(0).
10391 * config/i386/i386.c: Adjust.
10392 * config/i386/i386.md: Adjust.
10393 * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Drop.
10394 * config/i386/dragonfly.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
10395 * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
10396 * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
10397 * config/i386/gnu-user.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
10398 * config/i386/iamcu.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
10399 * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
10400 * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
10401 * config/i386/openbsdelf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
10402 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
10403 (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
10405 2021-04-29 Uroš Bizjak <ubizjak@gmail.com>
10407 * config/i386/i386-expand.c (ix86_expand_int_compare):
10408 Swap operands of GTU and LEU comparison to emit carry flag comparison.
10409 * config/i386/i386.md (*add<mode>3_carry_0): Change insn
10410 predicate to allow more combine opportunities with memory operands.
10411 (*sub<mode>3_carry_0): Ditto.
10413 2021-04-29 Richard Sandiford <richard.sandiford@arm.com>
10415 PR rtl-optimization/100303
10416 * rtl-ssa/accesses.cc (function_info::make_use_available): Take a
10417 boolean that indicates whether the use will only be used in
10418 debug instructions. Treat it in the same way that existing
10419 cross-EBB debug references would be handled if so.
10420 (function_info::make_uses_available): Likewise.
10421 * rtl-ssa/functions.h (function_info::make_uses_available): Update
10422 prototype accordingly.
10423 (function_info::make_uses_available): Likewise.
10424 * fwprop.c (try_fwprop_subst): Update call accordingly.
10426 2021-04-29 Jeff Law <jlaw@tachyum.com>
10428 * config/nios2/nios2-protos.h (nios2_fpu_insn_enabled): Move outside
10431 2021-04-29 Uroš Bizjak <ubizjak@gmail.com>
10432 Richard Biener <rguenther@suse.de>
10435 * config/i386/i386-builtin.def (IX86_BUILTIN_MASKLOADPD)
10436 (IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKLOADPD256)
10437 (IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKLOADD)
10438 (IX86_BUILTIN_MASKLOADQ, IX86_BUILTIN_MASKLOADD256)
10439 (IX86_BUILTIN_MASKLOADQ256): Move from SPECIAL_ARGS
10440 to PURE_ARGS category.
10441 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
10442 Handle PURE_ARGS category.
10443 * config/i386/i386-expand.c (ix86_expand_builtin): Ditto.
10445 2021-04-29 Eric Botcazou <ebotcazou@adacore.com>
10447 * configure.ac: Check for the presence of sys/locking.h header and
10448 for whether _LK_LOCK is supported by _locking.
10449 * configure: Regenerate.
10450 * config.in: Likewise.
10451 * gcov-io.h: Define GCOV_LOCKED_WITH_LOCKING if HOST_HAS_LK_LOCK.
10452 * gcov-io.c (gcov_open): Add support for GCOV_LOCKED_WITH_LOCKING.
10453 * system.h: Include <sys/locking.h> if HAVE_SYS_LOCKING_H.
10455 2021-04-29 Uroš Bizjak <ubizjak@gmail.com>
10457 * config/i386/predicates.md (fcmov_comparison_operator):
10458 Do not check for trivial FP comparison operator.
10459 <case GEU, case LTU>: Allow CCGZmode.
10460 <case GTU, case LEU>: Do not allow CCCmode.
10461 (ix86_comparison_operator) <case GTU, case LEU>: Allow only CCmode.
10462 (ix86_carry_flag_operator): Match only LTU and UNLT code.
10463 Do not check for trivial FP comparison operator. Allow CCGZmode.
10465 2021-04-29 Tom de Vries <tdevries@suse.de>
10467 * omp-expand.c (expand_omp_simd): Add step_orig, and replace uses of
10468 fd->loop.step by either step or orig_step.
10470 2021-04-29 Eric Botcazou <ebotcazou@adacore.com>
10472 * config/sparc/sparc.c (gen_load_pcrel_sym): Delete.
10473 (load_got_register): Do the PIC dance here.
10474 (sparc_legitimize_tls_address): Simplify.
10475 (sparc_emit_probe_stack_range): Likewise.
10476 (sparc32_initialize_trampoline): Likewise.
10477 (sparc64_initialize_trampoline): Likewise.
10478 * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Add @ marker.
10479 (probe_stack_range<P:mode>): Likewise.
10480 (flush<P:mode>): Likewise.
10481 (tgd_hi22<P:mode>): Likewise.
10482 (tgd_lo10<P:mode>): Likewise.
10483 (tgd_add<P:mode>): Likewise.
10484 (tgd_call<P:mode>): Likewise.
10485 (tldm_hi22<P:mode>): Likewise.
10486 (tldm_lo10<P:mode>): Likewise.
10487 (tldm_add<P:mode>): Likewise.
10488 (tldm_call<P:mode>): Likewise.
10489 (tldo_hix22<P:mode>): Likewise.
10490 (tldo_lox10<P:mode>): Likewise.
10491 (tldo_add<P:mode>): Likewise.
10492 (tie_hi22<P:mode>): Likewise.
10493 (tie_lo10<P:mode>): Likewise.
10494 (tie_add<P:mode>): Likewise.
10495 (tle_hix22<P:mode>): Likewise.
10496 (tle_lox10<P:mode>): Likewise.
10497 (stack_protect_setsi): Rename to...
10498 (stack_protect_set32): ...this.
10499 (stack_protect_setdi): Rename to...
10500 (stack_protect_set64): ...this.
10501 (stack_protect_set): Adjust calls to above.
10502 (stack_protect_testsi): Rename to...
10503 (stack_protect_test32): ...this.
10504 (stack_protect_testdi): Rename to...
10505 (stack_protect_test64): ...this.
10506 (stack_protect_test): Adjust calls to above.
10508 2021-04-29 H.J. Lu <hjl.tools@gmail.com>
10510 PR middle-end/90773
10511 * builtins.c (builtin_memcpy_read_str): Add a dummy argument.
10512 (builtin_strncpy_read_str): Likewise.
10513 (builtin_memset_read_str): Add an argument for the previous RTL
10514 information and generate the new RTL from the previous RTL info.
10515 (builtin_memset_gen_str): Likewise.
10516 * builtins.h (builtin_strncpy_read_str): Update the prototype.
10517 (builtin_memset_read_str): Likewise.
10518 * expr.c (by_pieces_ninsns): If targetm.overlap_op_by_pieces_p()
10519 returns true, round up size and alignment to the widest integer
10520 mode for maximum size.
10521 (pieces_addr::adjust): Add a pointer to by_pieces_prev argument
10522 and pass it to m_constfn.
10523 (op_by_pieces_d): Add m_push and m_overlap_op_by_pieces.
10524 (op_by_pieces_d::op_by_pieces_d): Add a bool argument to
10525 initialize m_push. Initialize m_overlap_op_by_pieces with
10526 targetm.overlap_op_by_pieces_p ().
10527 (op_by_pieces_d::run): Pass the previous RTL information to
10528 pieces_addr::adjust and generate overlapping operations if
10529 m_overlap_op_by_pieces is true.
10531 (move_by_pieces_d::move_by_pieces_d): Updated for op_by_pieces_d
10533 (store_by_pieces_d::store_by_pieces_d): Updated for op_by_pieces_d
10535 (can_store_by_pieces): Use by_pieces_constfn on constfun.
10536 (store_by_pieces): Use by_pieces_constfn on constfun. Updated
10537 for op_by_pieces_d change.
10538 (clear_by_pieces_1): Add a dummy argument.
10539 (clear_by_pieces): Updated for op_by_pieces_d change.
10540 (compare_by_pieces_d::compare_by_pieces_d): Likewise.
10541 (string_cst_read_str): Add a dummy argument.
10542 * expr.h (by_pieces_constfn): Add a dummy argument.
10543 (by_pieces_prev): New.
10544 * target.def (overlap_op_by_pieces_p): New target hook.
10545 * config/i386/i386.c (TARGET_OVERLAP_OP_BY_PIECES_P): New.
10546 * doc/tm.texi.in: Add TARGET_OVERLAP_OP_BY_PIECES_P.
10547 * doc/tm.texi: Regenerated.
10549 2021-04-29 Richard Biener <rguenther@suse.de>
10551 PR tree-optimization/100253
10552 * tree-vect-stmts.c (vectorizable_load): Do not assume
10553 element alignment when DR_MISALIGNMENT is -1.
10554 (vectorizable_store): Likewise.
10556 2021-04-29 Jakub Jelinek <jakub@redhat.com>
10559 * config/aarch64/aarch64.c (aarch64_add_offset_1_temporaries): Use
10560 absu_hwi instead of abs_hwi.
10562 2021-04-29 Richard Biener <rguenther@suse.de>
10564 PR middle-end/38474
10565 * tree-ssa-structalias.c (add_graph_edge): Avoid direct
10566 forwarding when indirect forwarding through ESCAPED
10569 2021-04-29 Tom de Vries <tdevries@suse.de>
10572 * internal-fn.c (expand_GOMP_SIMT_ENTER_ALLOC)
10573 (expand_GOMP_SIMT_LAST_LANE, expand_GOMP_SIMT_ORDERED_PRED)
10574 (expand_GOMP_SIMT_VOTE_ANY, expand_GOMP_SIMT_XCHG_BFLY)
10575 (expand_GOMP_SIMT_XCHG_IDX): Ensure target is assigned to.
10577 2021-04-29 Richard Biener <rguenther@suse.de>
10579 PR tree-optimization/99912
10580 * tree-ssa-dse.c (dse_dom_walker::m_need_cfg_cleanup): New.
10581 (dse_dom_walker::todo): Likewise.
10582 (dse_dom_walker::dse_optimize_stmt): Move VDEF check to the
10584 (dse_dom_walker::before_dom_children): Remove trivially
10585 dead SSA defs and schedule CFG cleanup if we removed all
10587 (pass_dse::execute): Get TODO as computed by the DOM walker
10588 and return it. Wipe dominator info earlier.
10590 2021-04-29 Richard Biener <rguenther@suse.de>
10593 * ipa-prop.c (ipcp_modif_dom_walker::before_dom_children):
10594 Track blocks to cleanup EH in new m_need_eh_cleanup.
10595 (ipcp_modif_dom_walker::cleanup_eh): New.
10596 (ipcp_transform_function): Release dominator info before
10599 2021-04-29 Martin Sebor <msebor@redhat.com>
10601 PR middle-end/100250
10602 * attribs.c (attr_access::array_as_string): Avoid dereferencing
10603 a pointer when it's null.
10605 2021-04-29 Martin Sebor <msebor@redhat.com>
10607 * Makefile.in (OBJS): Add ipa-free-lang-data.o.
10608 * ipa-free-lang-data.cc: New file.
10609 * tree.c: Move pass free_lang_data to file above.
10610 (build_array_type_1): Declare extern.
10611 * tree.h (build_array_type_1): Declare.
10613 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
10615 * config/aarch64/aarch64-simd-builtins.def: Modify comment to
10616 make consistent with updated RTL pattern.
10617 * config/aarch64/aarch64-simd.md (aarch64_<sur>qmovn<mode>):
10618 Implement using ss_truncate and us_truncate rather than
10620 * config/aarch64/iterators.md: Remove redundant unspecs and
10621 iterator: UNSPEC_[SU]QXTN and SUQMOVN respectively.
10623 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
10625 * config/aarch64/arm_acle.h (__attribute__): Make intrinsic
10626 attributes consistent with those defined in arm_neon.h.
10628 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
10630 * config/aarch64/arm_fp16.h (__attribute__): Make intrinsic
10631 attributes consistent with those defined in arm_neon.h.
10633 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
10635 * config/aarch64/aarch64-simd-builtins.def: Add
10636 float_trunc_rodd builtin generator macros.
10637 * config/aarch64/aarch64-simd.md (aarch64_float_trunc_rodd_df):
10639 (aarch64_float_trunc_rodd_lo_v2sf): Define.
10640 (aarch64_float_trunc_rodd_hi_v4sf_le): Define.
10641 (aarch64_float_trunc_rodd_hi_v4sf_be): Define.
10642 (aarch64_float_trunc_rodd_hi_v4sf): Define.
10643 * config/aarch64/arm_neon.h (vcvtx_f32_f64): Use RTL builtin
10644 instead of inline asm.
10645 (vcvtx_high_f32_f64): Likewise.
10646 (vcvtxd_f32_f64): Likewise.
10647 * config/aarch64/iterators.md: Add FCVTXN unspec.
10649 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
10651 * config/aarch64/aarch64-simd-builtins.def: Add tbx1 builtin
10653 * config/aarch64/aarch64-simd.md (aarch64_tbx1<mode>):
10655 * config/aarch64/arm_neon.h (vqtbx1_s8): USE RTL builtin
10656 instead of inline asm.
10657 (vqtbx1_u8): Likewise.
10658 (vqtbx1_p8): Likewise.
10659 (vqtbx1q_s8): Likewise.
10660 (vqtbx1q_u8): Likewise.
10661 (vqtbx1q_p8): Likewise.
10662 (vtbx2_s8): Likewise.
10663 (vtbx2_u8): Likewise.
10664 (vtbx2_p8): Likewise.
10666 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
10668 * config/aarch64/aarch64-simd-builtins.def: Add tbl1 builtin
10670 * config/aarch64/arm_neon.h (vqtbl1_p8): Use RTL builtin
10671 instead of inline asm.
10672 (vqtbl1_s8): Likewise.
10673 (vqtbl1_u8): Likewise.
10674 (vqtbl1q_p8): Likewise.
10675 (vqtbl1q_s8): Likewise.
10676 (vqtbl1q_u8): Likewise.
10677 (vtbl1_s8): Likewise.
10678 (vtbl1_u8): Likewise.
10679 (vtbl1_p8): Likewise.
10680 (vtbl2_s8): Likewise.
10681 (vtbl2_u8): Likewise.
10682 (vtbl2_p8): Likewise.
10684 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
10686 * config/aarch64/aarch64-simd-builtins.def: Add polynomial
10687 ssri_n buitin generator macro.
10688 * config/aarch64/arm_neon.h (vsri_n_p8): Use RTL builtin
10689 instead of inline asm.
10690 (vsri_n_p16): Likewise.
10691 (vsri_n_p64): Likewise.
10692 (vsriq_n_p8): Likewise.
10693 (vsriq_n_p16): Likewise.
10694 (vsriq_n_p64): Likewise.
10696 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
10698 * config/aarch64/aarch64-simd-builtins.def: Use VALLP mode
10699 iterator for polynomial ssli_n builtin generator macro.
10700 * config/aarch64/arm_neon.h (vsli_n_p8): Use RTL builtin
10701 instead of inline asm.
10702 (vsli_n_p16): Likewise.
10703 (vsliq_n_p8): Likewise.
10704 (vsliq_n_p16): Likewise.
10705 * config/aarch64/iterators.md: Define VALLP mode iterator.
10707 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
10709 * config/aarch64/aarch64-simd-builtins.def: Use VDQV_L
10710 iterator to generate [su]adalp RTL builtins.
10711 * config/aarch64/aarch64-simd.md: Use VDQV_L iterator in
10712 [su]adalp RTL pattern.
10713 * config/aarch64/arm_neon.h (vpadal_s32): Use RTL builtin
10714 instead of inline asm.
10715 (vpadal_u32): Likewise.
10717 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
10719 * config/aarch64/aarch64-simd-builtins.def: Add [su]addlp
10720 builtin generator macros.
10721 * config/aarch64/aarch64-simd.md (aarch64_<su>addlp<mode>):
10723 * config/aarch64/arm_neon.h (vpaddl_s8): Use RTL builtin
10724 instead of inline asm.
10725 (vpaddl_s16): Likewise.
10726 (vpaddl_s32): Likewise.
10727 (vpaddl_u8): Likewise.
10728 (vpaddl_u16): Likewise.
10729 (vpaddl_u32): Likewise.
10730 (vpaddlq_s8): Likewise.
10731 (vpaddlq_s16): Likewise.
10732 (vpaddlq_s32): Likewise.
10733 (vpaddlq_u8): Likewise.
10734 (vpaddlq_u16): Likewise.
10735 (vpaddlq_u32): Liwewise.
10736 * config/aarch64/iterators.md: Define [SU]ADDLP unspecs with
10737 appropriate attributes.
10739 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
10741 * config/aarch64/aarch64-simd-builtins.def: Use VDQ_I iterator
10742 for aarch64_addp<mode> builtin macro generator.
10743 * config/aarch64/aarch64-simd.md: Use VDQ_I iterator in
10744 aarch64_addp<mode> RTL pattern.
10745 * config/aarch64/arm_neon.h (vpaddq_s8): Use RTL builtin
10746 instead of inline asm.
10747 (vpaddq_s16): Likewise.
10748 (vpaddq_s32): Likewise.
10749 (vpaddq_s64): Likewise.
10750 (vpaddq_u8): Likewise.
10751 (vpaddq_u16): Likewise.
10752 (vpaddq_u32): Likewise.
10753 (vpaddq_u64): Likewise.
10755 2021-04-28 Jonathan Wright <jonathan.wright@arm.com>
10757 * config/aarch64/aarch64-simd-builtins.def: Add sq[r]dmulh_n
10758 builtin generator macros.
10759 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_n<mode>):
10761 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Use RTL builtin
10762 instead of inline asm.
10763 (vqdmulh_n_s32): Likewise.
10764 (vqdmulhq_n_s16): Likewise.
10765 (vqdmulhq_n_s32): Likewise.
10766 (vqrdmulh_n_s16): Likewise.
10767 (vqrdmulh_n_s32): Likewise.
10768 (vqrdmulhq_n_s16): Likewise.
10769 (vqrdmulhq_n_s32): Likewise.
10771 2021-04-28 Tobias Burnus <tobias@codesourcery.com>
10773 * doc/install.texi (--enable-offload-defaulted): Document.
10775 2021-04-28 Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org>
10777 * config/avr/avr-dimode.md: Turn existing patterns into
10778 define_insn_and_split style patterns where the splitter
10779 adds a clobber of the condition code register. Drop "cc"
10780 attribute. Add new patterns to match output of
10782 * config/avr/avr-fixed.md: Likewise.
10783 * config/avr/avr.c (cc_reg_rtx): New.
10784 (avr_parallel_insn_from_insns): Adjust insn count
10785 for removal of set of cc0.
10786 (avr_is_casesi_sequence): Likewise.
10787 (avr_casei_sequence_check_operands): Likewise.
10788 (avr_optimize_casesi): Likewise. Also insert
10789 new insns after jump_insn.
10790 (avr_pass_casesi::avr_rest_of_handle_casesi): Adjust
10791 for removal of set of cc0.
10792 (avr_init_expanders): Initialize cc_reg_rtx.
10793 (avr_regno_reg_class): Handle REG_CC.
10794 (cond_string): Remove usage of CC_OVERFLOW_UNUSABLE.
10795 (avr_notice_update_cc): Remove function.
10796 (ret_cond_branch): Remove usage of CC_OVERFLOW_UNUSABLE.
10797 (compare_condition): Adjust for PARALLEL with
10799 (out_shift_with_cnt): Likewise.
10800 (ashlhi3_out): Likewise.
10801 (ashrhi3_out): Likewise.
10802 (lshrhi3_out): Likewise.
10803 (avr_class_max_nregs): Return single reg for REG_CC.
10804 (avr_compare_pattern): Check for REG_CC instead
10806 (avr_reorg_remove_redundant_compare): Likewise.
10807 (avr_reorg):Adjust for PARALLEL with REG_CC clobber.
10808 (avr_hard_regno_nregs): Return single reg for REG_CC.
10809 (avr_hard_regno_mode_ok): Allow only CCmode for REG_CC.
10810 (avr_md_asm_adjust): Clobber REG_CC.
10811 (TARGET_HARD_REGNO_NREGS): Define.
10812 (TARGET_CLASS_MAX_NREGS): Define.
10813 (TARGET_MD_ASM_ADJUST): Define.
10814 * config/avr/avr.h (FIRST_PSEUDO_REGISTER): Adjust
10816 (enum reg_class): Add CC_REG class.
10817 (NOTICE_UPDATE_CC): Remove.
10818 (CC_OVERFLOW_UNUSABLE): Remove.
10819 (CC_NO_CARRY): Remove.
10820 * config/avr/avr.md: Turn existing patterns into
10821 define_insn_and_split style patterns where the splitter
10822 adds a clobber of the condition code register. Drop "cc"
10823 attribute. Add new patterns to match output of
10825 (sez): Remove unused pattern.
10827 2021-04-28 Richard Earnshaw <rearnsha@arm.com>
10830 * config/arm/arm.c (arm_hard_regno_mode_ok): Only allow VPR to be
10833 2021-04-28 Richard Sandiford <richard.sandiford@arm.com>
10836 * config/aarch64/constraints.md (Utq): Require the address to
10837 be valid for both the element mode and for V2DImode.
10839 2021-04-28 Jakub Jelinek <jakub@redhat.com>
10840 Tobias Burnus <tobias@codesourcery.com>
10842 * configure.ac (OFFLOAD_DEFAULTED): AC_DEFINE if offload-defaulted.
10843 * gcc.c (process_command): New variable.
10844 (driver::maybe_putenv_OFFLOAD_TARGETS): If OFFLOAD_DEFAULTED,
10845 set it if -foffload is defaulted.
10846 * lto-wrapper.c (OFFLOAD_TARGET_DEFAULT_ENV): Define.
10847 (compile_offload_image): If OFFLOAD_DEFAULTED and
10848 OFFLOAD_TARGET_DEFAULT is in the environment, don't fail
10849 if corresponding mkoffload can't be found.
10850 (compile_images_for_offload_targets): Likewise. Free and clear
10851 offload_names if no valid offload is found.
10852 * config.in: Regenerate.
10853 * configure: Regenerate.
10855 2021-04-28 Richard Biener <rguenther@suse.de>
10857 PR tree-optimization/100292
10858 * tree-vect-generic.c (expand_vector_condition): Do not fold
10861 2021-04-27 David Edelsohn <dje.gcc@gmail.com>
10863 * config/rs6000/aix.h (SUBTARGET_DRIVER_SELF_SPECS): New.
10864 * config/rs6000/aix64.opt (m64): New.
10867 2021-04-27 Maciej W. Rozycki <macro@orcam.me.uk>
10869 * config/vax/vax.c (print_operand_address, vax_address_cost_1)
10870 (index_term_p): Handle ASHIFT too.
10872 2021-04-27 Maciej W. Rozycki <macro@orcam.me.uk>
10874 * config/vax/builtins.md (jbb<ccss>i<mode>): Remove operand #3.
10875 (sync_lock_test_and_set<mode>): Adjust accordingly.
10876 (sync_lock_release<mode>): Likewise.
10878 2021-04-27 Maciej W. Rozycki <macro@orcam.me.uk>
10880 * config/vax/vax-protos.h (adjacent_operands_p): Remove
10882 * config/vax/vax.c (adjacent_operands_p): Remove.
10884 2021-04-27 Maciej W. Rozycki <macro@linux-mips.org>
10886 * ifcvt.c (dead_or_predicable) [!IFCVT_MODIFY_TESTS]: Fall
10887 through to the non-conditional execution case if getting the
10888 condition for conditional execution has failed.
10890 2021-04-27 Richard Sandiford <richard.sandiford@arm.com>
10892 PR middle-end/100284
10893 * gimple.c (gimple_could_trap_p_1): Remove VEC_COND_EXPR test.
10894 * tree-eh.c (operation_could_trap_p): Handle VEC_COND_EXPR rather
10895 than asserting on it.
10897 2021-04-27 David Edelsohn <dje.gcc@gmail.com>
10899 * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): Protect
10900 with TARGET_AIX_OS.
10902 2021-04-27 David Edelsohn <dje.gcc@gmail.com>
10905 * calls.c (precompute_register_parameters): Additionally test
10906 targetm.precompute_tls_p to pre-compute argument.
10907 * config/rs6000/aix.h (TARGET_PRECOMPUTE_TLS_P): Define.
10908 * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): New.
10909 * target.def (precompute_tls_p): New.
10910 * doc/tm.texi.in (TARGET_PRECOMPUTE_TLS_P): Add hook documentation.
10911 * doc/tm.texi: Regenerated.
10913 2021-04-27 Jakub Jelinek <jakub@redhat.com>
10916 * config/aarch64/aarch64.c (aarch64_print_operand): Cast -UINTVAL
10917 back to HOST_WIDE_INT.
10919 2021-04-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
10922 * simplify-rtx.c (simplify_context::simplify_subreg): Check the
10923 memory alignment for the outer mode.
10925 2021-04-27 H.J. Lu <hjl.tools@gmail.com>
10927 PR middle-end/90773
10928 * expr.c (op_by_pieces_d::get_usable_mode): New member function.
10929 (op_by_pieces_d::run): Cange a while loop to a do-while loop.
10931 2021-04-27 Alex Coplan <alex.coplan@arm.com>
10934 * config/arm/arm.c (arm_split_compare_and_swap): Fix up codegen
10935 with negative immediates: ensure we expand cbranchsi4_scratch
10936 correctly and ensure we satisfy its constraints.
10937 * config/arm/sync.md
10938 (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Don't
10939 attempt to tie two output operands together with constraints;
10940 collapse two alternatives.
10941 (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise.
10942 * config/arm/thumb1.md (cbranchsi4_neg_late): New.
10944 2021-04-27 Jakub Jelinek <jakub@redhat.com>
10947 * config/aarch64/predicates.md (aarch64_sub_immediate,
10948 aarch64_plus_immediate): Use -UINTVAL instead of -INTVAL.
10949 * config/aarch64/aarch64.md (casesi, rotl<mode>3): Likewise.
10950 * config/aarch64/aarch64.c (aarch64_print_operand,
10951 aarch64_split_atomic_op, aarch64_expand_subvti): Likewise.
10953 2021-04-27 Jakub Jelinek <jakub@redhat.com>
10955 PR tree-optimization/100239
10956 * tree-vect-generic.c (lower_vec_perm): Don't accept constant
10957 permutations with all indices from the first zero element as vec_shl.
10959 2021-04-27 Jakub Jelinek <jakub@redhat.com>
10961 PR rtl-optimization/100254
10962 * cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION on
10963 last1 and last2 insns rather than BB_END (bb1) and BB_END (bb2) insns.
10965 2021-04-27 Richard Biener <rguenther@suse.de>
10967 PR tree-optimization/99912
10968 * passes.def: Add comment about new TODO_remove_unused_locals.
10969 * tree-stdarg.c (pass_data_stdarg): Run TODO_remove_unused_locals
10972 2021-04-27 Richard Biener <rguenther@suse.de>
10974 PR tree-optimization/99912
10975 * passes.def (pass_all_optimizations): Add pass_dse before
10976 the first pass_dce, move the first pass_dse before the
10977 pass_dce following pass_pre.
10979 2021-04-27 Jakub Jelinek <jakub@redhat.com>
10981 PR tree-optimization/95527
10982 * generic-match-head.c: Include tm.h.
10983 * gimple-match-head.c: Include tm.h.
10984 * match.pd (CLZ == INTEGER_CST): Don't use
10985 #ifdef CLZ_DEFINED_VALUE_AT_ZERO, only test CLZ_DEFINED_VALUE_AT_ZERO
10986 if clz == CFN_CLZ. Add missing val declaration.
10987 (CTZ cmp CST): New simplifications.
10989 2021-04-27 Jakub Jelinek <jakub@redhat.com>
10991 PR tree-optimization/96696
10992 * expr.c (expand_expr_divmod): New function.
10993 (expand_expr_real_2) <case TRUNC_DIV_EXPR>: Use it for truncations and
10994 divisions. Formatting fixes.
10995 <case MULT_EXPR>: Optimize x / y * y as x - x % y if the latter is
10998 2021-04-27 Martin Jambor <mjambor@suse.cz>
11001 * ipa-param-manipulation.c (ipa_param_adjustments::modify_call):
11002 If removing a call statement LHS SSA name, release it.
11004 2021-04-27 Richard Earnshaw <rearnsha@arm.com>
11007 * config/arm/arm.c (THUMB2_WORK_REGS): Check PIC_OFFSET_TABLE_REGNUM
11008 is valid before including it in the mask.
11010 2021-04-27 Richard Sandiford <richard.sandiford@arm.com>
11013 * config/aarch64/aarch64.c (aarch64_comp_type_attributes): Handle
11016 2021-04-27 Richard Biener <rguenther@suse.de>
11018 PR tree-optimization/100051
11019 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Add
11020 disambiguator based on access size vs. decl size.
11022 2021-04-27 Richard Biener <rguenther@suse.de>
11024 PR tree-optimization/100278
11025 * tree-ssa-pre.c (compute_avail): Give up when we cannot
11026 adjust TBAA beacuse of mismatching bases.
11028 2021-04-27 Jakub Jelinek <jakub@redhat.com>
11031 * config/i386/i386.md (*<insn><mode>3_mask, *<insn><mode>3_mask_1):
11032 For any_rotate define_insn_split and following splitters, use
11033 SWI iterator instead of SWI48.
11035 2021-04-27 Richard Biener <rguenther@suse.de>
11037 PR tree-optimization/99776
11038 * match.pd (bit_field_ref (ctor)): Relax element extract
11039 type compatibility checks.
11041 2021-04-27 Cui,Lili <lili.cui@intel.com>
11043 * common/config/i386/i386-common.c (processor_names):
11044 Sync processor_names with processor_type.
11045 * config/i386/i386-options.c (processor_cost_table):
11046 Sync processor_cost_table with processor_type.
11048 2021-04-26 Aldy Hernandez <aldyh@redhat.com>
11050 * value-range.cc (irange::irange_set_1bit_anti_range): Add assert.
11051 (irange::set): Call irange_set_1bit_anti_range for handling all
11052 1-bit ranges. Fall through on ~[MIN,MAX].
11054 2021-04-26 Aldy Hernandez <aldyh@redhat.com>
11056 * value-range.cc (irange::legacy_num_pairs): Remove.
11057 (irange::invert): Change gcc_assert to gcc_checking_assert.
11058 * value-range.h (irange::num_pairs): Adjust for a cached
11059 num_pairs(). Also, rename all gcc_assert's to
11060 gcc_checking_assert's.
11062 2021-04-26 Aldy Hernandez <aldyh@redhat.com>
11064 * value-range.cc (irange::operator=): Set m_kind.
11065 (irange::copy_to_legacy): Handle varying and undefined sources
11066 as a legacy copy since they can be easily copied.
11067 (irange::irange_set): Set m_kind.
11068 (irange::irange_set_anti_range): Same.
11069 (irange::set): Rename normalize_min_max to normalize_kind.
11070 (irange::verify_range): Adjust for multi-ranges having the
11072 (irange::irange_union): Set m_kind.
11073 (irange::irange_intersect): Same.
11074 (irange::invert): Same.
11075 * value-range.h (irange::kind): Always return m_kind.
11076 (irange::varying_p): Rename to...
11077 (irange::varying_comptaible_p): ...this.
11078 (irange::undefined_p): Only look at m_kind.
11079 (irange::irange): Always set VR_UNDEFINED if applicable.
11080 (irange::set_undefined): Always set VR_UNDEFINED.
11081 (irange::set_varying): Always set m_kind to VR_VARYING.
11082 (irange::normalize_min_max): Rename to...
11083 (irange::normalize_kind): ...this.
11085 2021-04-26 Aldy Hernandez <aldyh@redhat.com>
11087 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info):
11088 Adjust for constant_p including varying_p.
11089 * tree-vrp.c (vrp_prop::finalize): Same.
11090 (determine_value_range): Same.
11091 * vr-values.c (vr_values::range_of_expr): Same.
11092 * value-range.cc (irange::symbolic_p): Do not check varying_p.
11093 (irange::constant_p): Same.
11095 2021-04-26 Aldy Hernandez <aldyh@redhat.com>
11097 * value-range.cc (irange::legacy_lower_bound): Replace
11098 !undefined_p check with num_ranges > 0.
11099 (irange::legacy_upper_bound): Same.
11100 * value-range.h (irange::type): Same.
11101 (irange::lower_bound): Same.
11102 (irange::upper_bound): Same.
11104 2021-04-26 Richard Biener <rguenther@suse.de>
11106 PR tree-optimization/99956
11107 * gimple-loop-interchange.cc (compute_access_stride):
11108 Try instantiating the access in a shallower loop nest
11109 if instantiating failed.
11110 (compute_access_strides): Pass adjustable loop_nest
11111 to compute_access_stride.
11113 2021-04-26 Christophe Lyon <christophe.lyon@linaro.org>
11115 * doc/sourcebuild.texi (arm_cmse_hw): Document.
11117 2021-04-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11119 * config/aarch64/iterators.md (vwcore): Handle V4BF, V8BF.
11121 2021-04-26 Thomas Schwinge <thomas@codesourcery.com>
11122 Nathan Sidwell <nathan@codesourcery.com>
11123 Tom de Vries <vries@codesourcery.com>
11124 Julian Brown <julian@codesourcery.com>
11125 Kwok Cheung Yeung <kcy@codesourcery.com>
11127 * omp-offload.c (oacc_validate_dims): Implement
11128 '-Wopenacc-parallelism'.
11129 * doc/invoke.texi (-Wopenacc-parallelism): Document.
11131 2021-04-26 Richard Biener <rguenther@suse.de>
11133 * tree-cfg.h (gimplify_build1): Remove.
11134 (gimplify_build2): Likewise.
11135 (gimplify_build3): Likewise.
11136 * tree-cfg.c (gimplify_build1): Move to tree-vect-generic.c.
11137 (gimplify_build2): Likewise.
11138 (gimplify_build3): Likewise.
11139 * tree-vect-generic.c (gimplify_build1): Move from tree-cfg.c.
11141 (gimplify_build2): Likewise.
11142 (gimplify_build3): Likewise.
11143 (tree_vec_extract): Use resimplify with following SSA edges.
11144 (expand_vector_parallel): Avoid passing NULL size/bitpos
11145 to tree_vec_extract.
11146 * expr.c (store_constructor): Deal with zero-element CTORs.
11147 * match.pd (bit_field_ref <vector CTOR>): Make sure to
11148 produce vector constants when possible.
11150 2021-04-26 Richard Biener <rguenther@suse.de>
11152 * tree-complex.c: Include gimple-fold.h.
11153 (expand_complex_addition): Use gimple_build.
11154 (expand_complex_multiplication_components): Likewise.
11155 (expand_complex_multiplication): Likewise.
11156 (expand_complex_div_straight): Likewise.
11157 (expand_complex_div_wide): Likewise.
11158 (expand_complex_division): Likewise.
11159 (expand_complex_conjugate): Likewise.
11160 (expand_complex_comparison): Likewise.
11162 2021-04-26 Richard Biener <rguenther@suse.de>
11164 * tree-ssa-phiopt.c (two_value_replacement): Remove use
11165 of legacy gimplify_buildN API.
11167 2021-04-26 Richard Biener <rguenther@suse.de>
11169 PR tree-optimization/99473
11170 * tree-ssa-phiopt.c (cond_store_replacement): Handle all
11173 2021-04-26 Richard Biener <rguenther@suse.de>
11175 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin):
11176 Use replace_call_with_value.
11178 2021-04-26 Richard Biener <rguenther@suse.de>
11180 * tree-ssa-propagate.h (valid_gimple_rhs_p): Remove.
11181 (update_gimple_call): Likewise.
11182 (update_call_from_tree): Likewise.
11183 * tree-ssa-propagate.c (valid_gimple_rhs_p): Remove.
11184 (valid_gimple_call_p): Likewise.
11185 (move_ssa_defining_stmt_for_defs): Likewise.
11186 (finish_update_gimple_call): Likewise.
11187 (update_gimple_call): Likewise.
11188 (update_call_from_tree): Likewise.
11189 (propagate_tree_value_into_stmt): Use replace_call_with_value.
11190 * gimple-fold.h (update_gimple_call): Declare.
11191 * gimple-fold.c (valid_gimple_rhs_p): Move here from
11192 tree-ssa-propagate.c.
11193 (update_gimple_call): Likewise.
11194 (valid_gimple_call_p): Likewise.
11195 (finish_update_gimple_call): Likewise, and simplify.
11196 (gimplify_and_update_call_from_tree): Implement
11197 update_call_from_tree functionality, avoid excessive
11198 push/pop_gimplify_context.
11199 (gimple_fold_builtin): Use only gimplify_and_update_call_from_tree.
11200 (gimple_fold_call): Likewise.
11201 * gimple-ssa-sprintf.c (try_substitute_return_value): Likewise.
11202 * tree-ssa-ccp.c (ccp_folder::fold_stmt): Likewise.
11203 (pass_fold_builtins::execute): Likewise.
11204 (optimize_stack_restore): Use replace_call_with_value.
11205 * tree-cfg.c (fold_loop_internal_call): Likewise.
11206 * tree-ssa-dce.c (maybe_optimize_arith_overflow): Use
11207 only gimplify_and_update_call_from_tree.
11208 * tree-ssa-strlen.c (handle_builtin_strlen): Likewise.
11209 (handle_builtin_strchr): Likewise.
11210 * tsan.c: Include gimple-fold.h instead of tree-ssa-propagate.h.
11212 2021-04-26 Jakub Jelinek <jakub@redhat.com>
11215 * vmsdbgout.c (ASM_OUTPUT_DEBUG_STRING, vmsdbgout_begin_block,
11216 vmsdbgout_end_block, lookup_filename, vmsdbgout_source_line): Remove
11219 2021-04-25 liuhongt <hongtao.liu@intel.com>
11222 * config/i386/i386-builtin.def (BDESC): Change the icode of
11223 the following builtins to CODE_FOR_nothing.
11224 * config/i386/i386.c (ix86_gimple_fold_builtin): Fold
11225 IX86_BUILTIN_PCMPEQB128, IX86_BUILTIN_PCMPEQW128,
11226 IX86_BUILTIN_PCMPEQD128, IX86_BUILTIN_PCMPEQQ,
11227 IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
11228 IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
11229 IX86_BUILTIN_PCMPGTB128, IX86_BUILTIN_PCMPGTW128,
11230 IX86_BUILTIN_PCMPGTD128, IX86_BUILTIN_PCMPGTQ,
11231 IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
11232 IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256.
11233 * config/i386/sse.md (avx2_eq<mode>3): Deleted.
11234 (sse2_eq<mode>3): Ditto.
11235 (sse4_1_eqv2di3): Ditto.
11236 (sse2_gt<mode>3): Rename to ..
11237 (*sse2_gt<mode>3): .. this.
11239 2021-04-24 Iain Sandoe <iain@sandoe.co.uk>
11242 2021-04-24 Iain Sandoe <iain@sandoe.co.uk>
11245 * config/darwin.c (darwin_binds_local_p): Assume that any
11246 public symbol might be interposed for PIC code. Update function
11247 header comment to reflect current Darwin capability.
11249 2021-04-24 Iain Sandoe <iain@sandoe.co.uk>
11252 * config/darwin.c (darwin_binds_local_p): Assume that any
11253 public symbol might be interposed for PIC code. Update function
11254 header comment to reflect current Darwin capability.
11256 2021-04-24 Richard Sandiford <richard.sandiford@arm.com>
11258 * doc/sourcebuild.texi: Document no-opts and any-opts target
11261 2021-04-23 YiFei Zhu <zhuyifei1999@gmail.com>
11263 * config/bpf/bpf.h (ASM_OUTPUT_ALIGNED_BSS): Use .type and .lcomm.
11265 2021-04-23 YiFei Zhu <zhuyifei1999@gmail.com>
11267 * config/bpf/bpf.h (FUNCTION_BOUNDARY): Set to 64.
11269 2021-04-23 Uroš Bizjak <ubizjak@gmail.com>
11272 * config/i386/i386-options.c (ix86_option_override_internal):
11273 Error out when -m96bit-long-double is used with 64bit targets.
11274 * config/i386/i386.md (*pushxf_rounded): Remove pattern.
11276 2021-04-23 Martin Liska <mliska@suse.cz>
11278 * lto-wrapper.c: Remove FIXME about usage of
11279 hardware_concurrency. The function is not on par with
11282 2021-04-23 Uroš Bizjak <ubizjak@gmail.com>
11285 * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
11286 Copy operand 3 to operand 4. Use sse_reg_operand
11287 as operand 3 predicate.
11288 (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): Ditto.
11289 (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
11290 (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
11291 (FILD_ATOMIC/FIST_ATOMIC FP store peephole2):
11292 Copy operand 1 to operand 0.
11293 (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): Ditto.
11294 (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
11295 (LDX_ATOMIC/LDX_ATOMIC FP store peephole2 with mem blockage): Ditto.
11297 2021-04-23 Alex Coplan <alex.coplan@arm.com>
11299 PR rtl-optimization/100230
11300 * early-remat.c (early_remat::sort_candidates): Use delete[]
11301 instead of delete for array allocated with new[].
11303 2021-04-23 Richard Biener <rguenther@suse.de>
11305 * genmatch.c (lower_cond): Remove VEC_COND_EXPR special-casing.
11306 (capture_info::capture_info): Likewise.
11307 (capture_info::walk_match): Likewise.
11308 (expr::gen_transform): Likewise.
11309 (dt_simplify::gen_1): Likewise.
11310 * gimple-match-head.c (maybe_resimplify_conditional_op):
11311 Remove VEC_COND_EXPR special-casing.
11312 (gimple_simplify): Likewise.
11313 * gimple.c (gimple_could_trap_p_1): Adjust.
11314 * tree-ssa-pre.c (compute_avail): Allow VEC_COND_EXPR
11315 to participate in PRE.
11317 2021-04-23 Richard Biener <rguenther@suse.de>
11319 * cfganal.c (connect_infinite_loops_to_exit): First call
11320 add_noreturn_fake_exit_edges.
11321 * ipa-sra.c (process_scan_results): Do not call the now redundant
11322 add_noreturn_fake_exit_edges.
11323 * predict.c (tree_estimate_probability): Likewise.
11324 (rebuild_frequencies): Likewise.
11325 * store-motion.c (one_store_motion_pass): Likewise.
11327 2021-04-23 Richard Biener <rguenther@suse.de>
11329 PR tree-optimization/100222
11330 * predict.c (pass_profile::execute): Remove redundant call to
11331 mark_irreducible_loops.
11332 (report_predictor_hitrates): Likewise.
11334 2021-04-23 Richard Biener <rguenther@suse.de>
11336 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
11337 valid_gimple_rhs_p by instead gimplifying to one.
11339 2021-04-23 Richard Biener <rguenther@suse.de>
11341 PR tree-optimization/99971
11342 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
11343 Always use TBAA for loads.
11345 2021-04-23 liuhongt <hongtao.liu@intel.com>
11348 * config/i386/i386-options.c (ix86_option_override_internal):
11349 Clear MASK_AVX256_SPLIT_UNALIGNED_LOAD/STORE in x_target_flags
11350 when X86_TUNE_AVX256_UNALIGNED_LOAD/STORE_OPTIMAL is enabled
11351 by target attribute.
11353 2021-04-23 David Edelsohn <dje.gcc@gmail.com>
11355 * config/rs6000/aix71.h (PREFERRED_DEBUGGING_TYPE): Change to
11357 * config/rs6000/aix72.h (PREFERRED_DEBUGGING_TYPE): Same.
11359 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
11361 * config.gcc (powerpc-ibm-aix6.*): Remove.
11362 * config/rs6000/aix61.h: Delete.
11364 2021-04-22 Martin Liska <mliska@suse.cz>
11366 PR testsuite/100159
11367 PR testsuite/100192
11368 * builtins.c (expand_builtin): Fix typos and missing comments.
11369 * dwarf2out.c (gen_subprogram_die): Likewise.
11370 (gen_struct_or_union_type_die): Likewise.
11372 2021-04-22 Uroš Bizjak <ubizjak@gmail.com>
11375 * config/i386/i386-expand.c (ix86_expand_convert_uns_sidf_sse):
11376 Remove the sign with FE_DOWNWARD, where x - x = -0.0.
11378 2021-04-21 Iain Sandoe <iain@sandoe.co.uk>
11380 * config/i386/darwin.h (TARGET_64BIT): Remove definition
11381 based on TARGET_ISA_64BIT.
11382 (TARGET_64BIT_P): Remove definition based on
11383 TARGET_ISA_64BIT_P().
11385 2021-04-21 Martin Liska <mliska@suse.cz>
11388 2021-04-21 Martin Liska <mliska@suse.cz>
11390 * lto-wrapper.c (cpuset_popcount): Remove.
11391 (init_num_threads): Remove and use hardware_concurrency.
11393 2021-04-21 Martin Liska <mliska@suse.cz>
11396 * main.c (main): Call toplev::finalize in CHECKING_P mode.
11397 * ipa-modref.c (ipa_modref_c_finalize): summaries are NULL
11398 when incremental LTO linking happens.
11400 2021-04-21 Martin Liska <mliska@suse.cz>
11402 * lto-wrapper.c (run_gcc): When -flto=jobserver is used, but the
11403 makeserver cannot be detected, then use -flto=N fallback.
11405 2021-04-21 Richard Sandiford <richard.sandiford@arm.com>
11407 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): When cross-compiling,
11408 default to yes for aarch64-linux-gnu.
11409 * configure: Regenerate.
11411 2021-04-21 Martin Liska <mliska@suse.cz>
11413 * lto-wrapper.c (cpuset_popcount): Remove.
11414 (init_num_threads): Remove and use hardware_concurrency.
11416 2021-04-21 Martin Liska <mliska@suse.cz>
11418 * config/i386/i386.c: Remove superfluous || TARGET_MACHO
11419 which remains to be '(... || 0)' and clang complains about it.
11420 * dwarf2out.c (AT_vms_delta): Declare conditionally.
11421 (add_AT_vms_delta): Likewise.
11422 * tree.c (fld_simplified_type): Use rather more common pattern
11423 for disabling of something (#if 0).
11424 (get_tree_code_name): Likewise.
11425 (verify_type_variant): Likewise.
11427 2021-04-21 Martin Liska <mliska@suse.cz>
11429 * config/i386/i386-expand.c (decide_alignment): Use newly named
11430 macro TARGET_CPU_P.
11431 * config/i386/i386.c (ix86_decompose_address): Likewise.
11432 (ix86_address_cost): Likewise.
11433 (ix86_lea_outperforms): Likewise.
11434 (ix86_avoid_lea_for_addr): Likewise.
11435 (ix86_add_stmt_cost): Likewise.
11436 * config/i386/i386.h (TARGET_*): Remove.
11437 (TARGET_CPU_P): New macro.
11438 * config/i386/i386.md: Use newly named macro TARGET_CPU_P.
11439 * config/i386/x86-tune-sched-atom.c (do_reorder_for_imul): Likewise.
11440 (swap_top_of_ready_list): Likewise.
11441 (ix86_atom_sched_reorder): Likewise.
11442 * config/i386/x86-tune-sched-bd.c (ix86_bd_has_dispatch): Likewise.
11443 * config/i386/x86-tune-sched.c (ix86_adjust_cost): Likewise.
11445 2021-04-21 Martin Liska <mliska@suse.cz>
11447 * config/i386/i386-options.c (TARGET_EXPLICIT_NO_SAHF_P):
11449 (SET_TARGET_NO_SAHF): Likewise.
11450 (TARGET_EXPLICIT_PREFETCH_SSE_P): Likewise.
11451 (SET_TARGET_PREFETCH_SSE): Likewise.
11452 (TARGET_EXPLICIT_NO_TUNE_P): Likewise.
11453 (SET_TARGET_NO_TUNE): Likewise.
11454 (TARGET_EXPLICIT_NO_80387_P): Likewise.
11455 (SET_TARGET_NO_80387): Likewise.
11457 * config/i386/i386.h (TARGET_*): Remove.
11458 * opth-gen.awk: Generate new used macros.
11460 2021-04-21 Martin Liska <mliska@suse.cz>
11462 * config/i386/i386.h (PTA_*): Remove.
11463 (enum pta_flag): New.
11464 (DEF_PTA): Generate PTA_* values from i386-isa.def.
11465 * config/i386/i386-isa.def: New file.
11467 2021-04-21 Alex Coplan <alex.coplan@arm.com>
11470 * config/aarch64/aarch64-bti-insert.c (aarch64_bti_j_insn_p): New.
11471 (rest_of_insert_bti): Avoid inserting duplicate bti j insns for
11472 jump table targets.
11474 2021-04-21 H.J. Lu <hjl.tools@gmail.com>
11476 * config.gcc: Install mwaitintrin.h for i[34567]86-*-* and
11477 x86_64-*-* targets.
11478 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_MWAIT_SET):
11480 (OPTION_MASK_ISA2_MWAIT_UNSET): Likewise.
11481 (ix86_handle_option): Handle -mmwait.
11482 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
11483 Replace OPTION_MASK_ISA_SSE3 with OPTION_MASK_ISA2_MWAIT on
11484 __builtin_ia32_monitor and __builtin_ia32_mwait.
11485 * config/i386/i386-options.c (isa2_opts): Add -mmwait.
11486 (ix86_valid_target_attribute_inner_p): Likewise.
11487 (ix86_option_override_internal): Enable mwait/monitor
11488 instructions for -msse3.
11489 * config/i386/i386.h (TARGET_MWAIT): New.
11490 (TARGET_MWAIT_P): Likewise.
11491 * config/i386/i386.opt: Add -mmwait.
11492 * config/i386/mwaitintrin.h: New file.
11493 * config/i386/pmmintrin.h: Include <mwaitintrin.h>.
11494 * config/i386/sse.md (sse3_mwait): Replace TARGET_SSE3 with
11496 (@sse3_monitor_<mode>): Likewise.
11497 * config/i386/x86gprintrin.h: Include <mwaitintrin.h>.
11498 * doc/extend.texi: Document mwait target attribute.
11499 * doc/invoke.texi: Document -mmwait.
11501 2021-04-21 Martin Liska <mliska@suse.cz>
11503 * config/i386/i386-options.c (DEF_ENUM): Remove it.
11504 * config/i386/i386-opts.h (DEF_ENUM): Likewise.
11505 * config/i386/stringop.def (DEF_ENUM): Likewise.
11507 2021-04-21 Martin Liska <mliska@suse.cz>
11509 * tree-cfg.c (gimple_verify_flow_info): Use qD instead
11510 of print_generic_expr.
11512 2021-04-21 Jakub Jelinek <jakub@redhat.com>
11514 PR rtl-optimization/100148
11515 * cprop.c (constprop_register): Use next_nondebug_insn instead of
11518 2021-04-21 Martin Liska <mliska@suse.cz>
11521 * cgraphunit.c (cgraph_node::analyze): Remove duplicate
11522 free_dominance_info calls.
11524 2021-04-21 Richard Biener <rguenther@suse.de>
11526 * gimple-fold.c (maybe_fold_reference): Remove is_lhs
11527 parameter (and assume it to be false).
11528 (fold_gimple_assign): Adjust, remove all callers of
11529 maybe_fold_reference calling it with is_lhs true.
11530 (gimple_fold_call): Likewise.
11531 (fold_stmt_1): Likewise.
11533 2021-04-21 Richard Biener <rguenther@suse.de>
11535 * fold-const.c (pedantic_non_lvalue_loc): Remove.
11536 (fold_binary_loc): Adjust.
11537 (fold_ternary_loc): Likewise.
11539 2021-04-21 Richard Sandiford <richard.sandiford@arm.com>
11541 PR middle-end/100130
11542 * varasm.c (get_block_for_decl): Make sure that any use of the
11543 retain attribute matches the section's retain flag.
11544 (switch_to_section): Check for retain mismatches even when
11545 changing sections, but do not warn if the given decl is the
11546 section's named.decl.
11547 (output_object_block): Pass the first decl in the block (if any)
11548 to switch_to_section.
11550 2021-04-20 H.J. Lu <hjl.tools@gmail.com>
11552 * config/i386/i386-c.c (ix86_target_macros_internal): Define
11553 __CRC32__ for -mcrc32.
11554 * config/i386/i386-options.c (ix86_option_override_internal):
11555 Enable crc32 instruction for -msse4.2.
11556 * config/i386/i386.md (sse4_2_crc32<mode>): Remove TARGET_SSE4_2
11558 (sse4_2_crc32di): Likewise.
11559 * config/i386/ia32intrin.h: Use crc32 target option for CRC32
11562 2021-04-20 Segher Boessenkool <segher@kernel.crashing.org>
11565 * config/rs6000/rs6000.c (rs6000_machine_from_flags): Do not consider
11568 2021-04-20 Martin Liska <mliska@suse.cz>
11570 * doc/invoke.texi: Fix typo.
11571 * params.opt: Likewise.
11573 2021-04-20 Martin Liska <mliska@suse.cz>
11575 * doc/invoke.texi: Document new param.
11577 2021-04-19 Andrew MacLeod <amacleod@redhat.com>
11579 PR tree-optimization/100081
11580 * gimple-range-cache.h (ranger_cache): Inherit from gori_compute
11581 rather than gori_compute_cache.
11582 * gimple-range-gori.cc (is_gimple_logical_p): Move to top of file.
11583 (range_def_chain::m_logical_depth): New member.
11584 (range_def_chain::range_def_chain): Initialize m_logical_depth.
11585 (range_def_chain::get_def_chain): Don't build defchains through more
11586 than LOGICAL_LIMIT logical expressions.
11587 * params.opt (param_ranger_logical_depth): New.
11589 2021-04-19 Richard Earnshaw <rearnsha@arm.com>
11592 * config/arm/arm.c (arm_configure_build_target): Do not strip
11593 extended FPU/SIMD feature bits from the target ISA when -mfpu
11594 is specified (partial revert of r11-8168).
11596 2021-04-19 Thomas Schwinge <thomas@codesourcery.com>
11598 * params.opt (-param=openacc-kernels=): Add.
11599 * omp-oacc-kernels-decompose.cc
11600 (pass_omp_oacc_kernels_decompose::gate): Use it.
11601 * doc/invoke.texi (-fopenacc-kernels=@var{mode}): Move...
11602 (--param): ... here, 'openacc-kernels'.
11604 2021-04-19 Martin Liska <mliska@suse.cz>
11607 * gengtype.c (finish_root_table): Align function arguments
11608 in between declaration and definition.
11610 2021-04-19 Eric Botcazou <ebotcazou@adacore.com>
11612 * config/i386/winnt.c (i386_pe_seh_cold_init): Properly deal with
11613 frames larger than the SEH maximum frame size.
11615 2021-04-18 Segher Boessenkool <segher@kernel.crashing.org>
11617 PR rtl-optimization/99927
11618 * combine.c (distribute_notes) [REG_UNUSED]: If the register already
11619 is dead, just drop it.
11621 2021-04-17 Iain Buclaw <ibuclaw@gdcproject.org>
11624 * config/i386/winnt-d.c (TARGET_D_TEMPLATES_ALWAYS_COMDAT): Define.
11625 * doc/tm.texi: Regenerate.
11626 * doc/tm.texi.in (D language and ABI): Add @hook for
11627 TARGET_D_TEMPLATES_ALWAYS_COMDAT.
11629 2021-04-17 Iain Buclaw <ibuclaw@gdcproject.org>
11631 * config/darwin-d.c (darwin_d_handle_target_object_format): New
11633 (darwin_d_register_target_info): New function.
11634 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
11635 * config/dragonfly-d.c (dragonfly_d_handle_target_object_format): New
11637 (dragonfly_d_register_target_info): New function.
11638 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
11639 * config/freebsd-d.c (freebsd_d_handle_target_object_format): New
11641 (freebsd_d_register_target_info): New function.
11642 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
11643 * config/glibc-d.c (glibc_d_handle_target_object_format): New
11645 (glibc_d_register_target_info): New function.
11646 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
11647 * config/i386/i386-d.c (ix86_d_handle_target_object_format): New
11649 (ix86_d_register_target_info): Add ix86_d_handle_target_object_format
11650 as handler for objectFormat key.
11651 * config/i386/winnt-d.c (winnt_d_handle_target_object_format): New
11653 (winnt_d_register_target_info): New function.
11654 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
11655 * config/netbsd-d.c (netbsd_d_handle_target_object_format): New
11657 (netbsd_d_register_target_info): New function.
11658 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
11659 * config/openbsd-d.c (openbsd_d_handle_target_object_format): New
11661 (openbsd_d_register_target_info): New function.
11662 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
11663 * config/pa/pa-d.c (pa_d_handle_target_object_format): New function.
11664 (pa_d_register_target_info): Add pa_d_handle_target_object_format as
11665 handler for objectFormat key.
11666 * config/rs6000/rs6000-d.c (rs6000_d_handle_target_object_format): New
11668 (rs6000_d_register_target_info): Add
11669 rs6000_d_handle_target_object_format as handler for objectFormat key.
11670 * config/sol2-d.c (solaris_d_handle_target_object_format): New
11672 (solaris_d_register_target_info): New function.
11673 (TARGET_D_REGISTER_OS_TARGET_INFO): Define.
11675 2021-04-16 Jakub Jelinek <jakub@redhat.com>
11678 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Change
11679 abi_break argument from bool * to unsigned *, store there the pre-GCC 9
11681 (aarch64_layout_arg, aarch64_gimplify_va_arg_expr): Adjust callers.
11682 (aarch64_function_arg_regno_p): Likewise. Only emit -Wpsabi note if
11683 the old and new alignment after applying MIN/MAX to it is different.
11685 2021-04-16 Tamar Christina <tamar.christina@arm.com>
11688 * config/aarch64/aarch64-sve.md (@aarch64_sve_trn1_conv<mode>): New.
11689 * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_trn): Use new
11691 * config/aarch64/iterators.md (UNSPEC_TRN1_CONV): New.
11693 2021-04-16 Bill Schmidt <wschmidt@linux.ibm.com>
11695 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Revise
11696 this section and its subsections.
11698 2021-04-16 Jakub Jelinek <jakub@redhat.com>
11701 * config/aarch64/aarch64.md (*neg_asr_si2_extr, *extrsi5_insn_di): New
11702 define_insn patterns.
11704 2021-04-16 Richard Sandiford <richard.sandiford@arm.com>
11706 PR rtl-optimization/98689
11707 * reg-notes.def (UNTYPED_CALL): New note.
11708 * combine.c (distribute_notes): Handle it.
11709 * emit-rtl.c (try_split): Likewise.
11710 * rtlanal.c (rtx_properties::try_to_add_insn): Likewise. Assume
11711 that calls with the note implicitly set all return value registers.
11712 * builtins.c (expand_builtin_apply): Add a REG_UNTYPED_CALL
11715 2021-04-16 Richard Sandiford <richard.sandiford@arm.com>
11717 PR rtl-optimization/99596
11718 * rtlanal.c (rtx_properties::try_to_add_insn): Don't add global
11719 register accesses for const calls. Assume that pure functions
11720 can only read from global registers. Ignore cases in which
11721 the stack pointer has been marked global.
11723 2021-04-16 Jakub Jelinek <jakub@redhat.com>
11726 * tree-vect-loop.c (vect_transform_loop): Don't remove just
11727 dead scalar .MASK_LOAD calls, but also dead .COND_* calls - replace
11728 them by their last argument.
11730 2021-04-15 Martin Liska <mliska@suse.cz>
11732 * doc/invoke.texi: Other params don't use it, remove it.
11734 2021-04-15 Richard Biener <rguenther@suse.de>
11736 * gimple-builder.h: Add deprecation note.
11738 2021-04-15 Richard Sandiford <richard.sandiford@arm.com>
11741 * attribs.h (restrict_type_identity_attributes_to): Declare.
11742 * attribs.c (restrict_type_identity_attributes_to): New function.
11744 2021-04-15 Richard Sandiford <richard.sandiford@arm.com>
11747 * attribs.h (affects_type_identity_attributes): Declare.
11748 * attribs.c (remove_attributes_matching): New function.
11749 (affects_type_identity_attributes): Likewise.
11751 2021-04-15 Jakub Jelinek <jakub@redhat.com>
11754 * config/aarch64/aarch64.md (*<LOGICAL:optab>_<SHIFT:optab><mode>3):
11755 Add combine splitters for *<LOGICAL:optab>_ashl<mode>3 with
11756 ZERO_EXTEND, SIGN_EXTEND or AND.
11758 2021-04-14 Richard Sandiford <richard.sandiford@arm.com>
11760 PR rtl-optimization/99929
11761 * rtl.h (same_vector_encodings_p): New function.
11762 * cse.c (exp_equiv_p): Check that CONST_VECTORs have the same encoding.
11763 * cselib.c (rtx_equal_for_cselib_1): Likewise.
11764 * jump.c (rtx_renumbered_equal_p): Likewise.
11765 * lra-constraints.c (operands_match_p): Likewise.
11766 * reload.c (operands_match_p): Likewise.
11767 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Likewise.
11769 2021-04-14 Richard Sandiford <richard.sandiford@arm.com>
11771 * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Print
11772 more information about variable-length CONST_VECTORs.
11774 2021-04-14 Vladimir N. Makarov <vmakarov@redhat.com>
11776 PR rtl-optimization/100066
11777 * lra-constraints.c (split_reg): Check paradoxical_subreg_p for
11778 ordered modes when choosing splitting mode for hard reg.
11780 2021-04-14 Richard Sandiford <richard.sandiford@arm.com>
11783 * config/aarch64/aarch64.c (aarch64_expand_sve_const_vector_sel):
11785 (aarch64_expand_sve_const_vector): Use it for nelts_per_pattern==2.
11787 2021-04-14 Andreas Krebbel <krebbel@linux.ibm.com>
11789 * config/s390/s390-builtins.def (O_M5, O_M12, ...): Add new macros
11790 for mask operand types.
11791 (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64)
11792 (s390_vec_permi_dbl, s390_vpdi): Use the M5 type for the immediate
11794 (s390_vec_msum_u128, s390_vmslg): Use the M12 type for the
11796 * config/s390/s390.c (s390_const_operand_ok): Check the new
11797 operand types and generate a list of valid values.
11799 2021-04-14 Iain Buclaw <ibuclaw@gdcproject.org>
11801 * doc/tm.texi: Regenerate.
11802 * doc/tm.texi.in (D language and ABI): Add @hook for
11803 TARGET_D_REGISTER_OS_TARGET_INFO.
11805 2021-04-14 Iain Buclaw <ibuclaw@gdcproject.org>
11807 * config/aarch64/aarch64-d.c (aarch64_d_handle_target_float_abi): New
11809 (aarch64_d_register_target_info): New function.
11810 * config/aarch64/aarch64-protos.h (aarch64_d_register_target_info):
11812 * config/aarch64/aarch64.h (TARGET_D_REGISTER_CPU_TARGET_INFO):
11814 * config/arm/arm-d.c (arm_d_handle_target_float_abi): New function.
11815 (arm_d_register_target_info): New function.
11816 * config/arm/arm-protos.h (arm_d_register_target_info): Declare.
11817 * config/arm/arm.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
11818 * config/i386/i386-d.c (ix86_d_handle_target_float_abi): New function.
11819 (ix86_d_register_target_info): New function.
11820 * config/i386/i386-protos.h (ix86_d_register_target_info): Declare.
11821 * config/i386/i386.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
11822 * config/mips/mips-d.c (mips_d_handle_target_float_abi): New function.
11823 (mips_d_register_target_info): New function.
11824 * config/mips/mips-protos.h (mips_d_register_target_info): Declare.
11825 * config/mips/mips.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
11826 * config/pa/pa-d.c (pa_d_handle_target_float_abi): New function.
11827 (pa_d_register_target_info): New function.
11828 * config/pa/pa-protos.h (pa_d_register_target_info): Declare.
11829 * config/pa/pa.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
11830 * config/riscv/riscv-d.c (riscv_d_handle_target_float_abi): New
11832 (riscv_d_register_target_info): New function.
11833 * config/riscv/riscv-protos.h (riscv_d_register_target_info): Declare.
11834 * config/riscv/riscv.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
11835 * config/rs6000/rs6000-d.c (rs6000_d_handle_target_float_abi): New
11837 (rs6000_d_register_target_info): New function.
11838 * config/rs6000/rs6000-protos.h (rs6000_d_register_target_info):
11840 * config/rs6000/rs6000.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
11841 * config/s390/s390-d.c (s390_d_handle_target_float_abi): New function.
11842 (s390_d_register_target_info): New function.
11843 * config/s390/s390-protos.h (s390_d_register_target_info): Declare.
11844 * config/s390/s390.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
11845 * config/sparc/sparc-d.c (sparc_d_handle_target_float_abi): New
11847 (sparc_d_register_target_info): New function.
11848 * config/sparc/sparc-protos.h (sparc_d_register_target_info): Declare.
11849 * config/sparc/sparc.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
11850 * doc/tm.texi: Regenerate.
11851 * doc/tm.texi.in (D language and ABI): Add @hook for
11852 TARGET_D_REGISTER_CPU_TARGET_INFO.
11854 2021-04-14 Iain Buclaw <ibuclaw@gdcproject.org>
11856 * config/i386/i386-d.c (ix86_d_has_stdcall_convention): New function.
11857 * config/i386/i386-protos.h (ix86_d_has_stdcall_convention): Declare.
11858 * config/i386/i386.h (TARGET_D_HAS_STDCALL_CONVENTION): Define.
11859 * doc/tm.texi: Regenerate.
11860 * doc/tm.texi.in (D language and ABI): Add @hook for
11861 TARGET_D_HAS_STDCALL_CONVENTION.
11863 2021-04-14 Richard Biener <rguenther@suse.de>
11865 * tree-cfg.c (verify_gimple_assign_ternary): Verify that
11866 VEC_COND_EXPRs have a gimple_val condition.
11867 * tree-ssa-propagate.c (valid_gimple_rhs_p): VEC_COND_EXPR
11868 can no longer have a GENERIC condition.
11870 2021-04-14 Richard Earnshaw <rearnsha@arm.com>
11873 * config/arm/arm.c (arm_configure_build_target): Strip isa_all_fpbits
11874 from the isa_delta when -mfpu has been used.
11875 (arm_options_perform_arch_sanity_checks): It's the architecture that
11876 lacks an FPU not the processor.
11878 2021-04-13 Richard Biener <rguenther@suse.de>
11880 PR tree-optimization/100053
11881 * tree-ssa-sccvn.c (vn_nary_op_get_predicated_value): Do
11882 not use optimistic dominance queries for backedges to validate
11884 (dominated_by_p_w_unex): Add parameter to ignore executable
11885 state on backedges.
11886 (rpo_elim::eliminate_avail): Adjust.
11888 2021-04-13 Jakub Jelinek <jakub@redhat.com>
11891 * config/aarch64/aarch64.md (*aarch64_bfxil<mode>_extr,
11892 *aarch64_bfxilsi_extrdi): New define_insn patterns.
11894 2021-04-13 Jakub Jelinek <jakub@redhat.com>
11897 * simplify-rtx.c (simplify_immed_subreg): For MODE_COMPOSITE_P
11898 outermode, return NULL if the result doesn't encode back to the
11899 original byte sequence.
11900 (simplify_gen_subreg): Don't create SUBREGs from constants to
11901 MODE_COMPOSITE_P outermode.
11903 2021-04-12 Jakub Jelinek <jakub@redhat.com>
11905 PR rtl-optimization/99905
11906 * combine.c (expand_compound_operation): If pos + len > modewidth,
11907 perform the right shift by pos in inner_mode and then convert to mode,
11908 instead of trying to simplify a shift of rtx with inner_mode by pos
11909 as if it was a shift in mode.
11911 2021-04-12 Jakub Jelinek <jakub@redhat.com>
11914 * combine.c (simplify_and_const_int_1): Don't optimize varop
11915 away if it has side-effects.
11917 2021-04-12 Martin Liska <mliska@suse.cz>
11919 * doc/extend.texi: Escape @smallexample content.
11921 2021-04-12 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
11923 * config/s390/s390.md ("*movdi_31", "*movdi_64"): Add
11924 alternative in order to load a DFP zero.
11926 2021-04-12 Martin Liska <mliska@suse.cz>
11928 * doc/extend.texi: Be more precise in documentation
11929 of symver attribute.
11931 2021-04-12 Martin Liska <mliska@suse.cz>
11934 * gimplify.c (gimplify_expr): Right now, we unpoison all
11935 variables before a goto <dest>. We should not do it if we are
11938 2021-04-12 Cui,Lili <lili.cui@intel.com>
11940 * common/config/i386/cpuinfo.h (get_intel_cpu): Handle
11942 * common/config/i386/i386-common.c (processor_names): Add
11944 (processor_alias_table): Add rocketlake.
11945 * common/config/i386/i386-cpuinfo.h (processor_subtypes): Add
11946 INTEL_COREI7_ROCKETLAKE.
11947 * config.gcc: Add -march=rocketlake.
11948 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
11950 * config/i386/i386-options.c (m_ROCKETLAKE) : Define.
11951 (processor_cost_table): Add rocketlake cost.
11952 * config/i386/i386.h (ix86_size_cost) : Define
11954 (processor_type) : Add PROCESSOR_ROCKETLAKE.
11955 (PTA_ROCKETLAKE): Ditto.
11956 * doc/extend.texi: Add rocketlake.
11957 * doc/invoke.texi: Add rocketlake.
11959 2021-04-12 Cui,Lili <lili.cui@intel.com>
11961 * config/i386/i386.h (PTA_ALDERLAKE): Change alderlake ISA list.
11962 * config/i386/i386-options.c (m_CORE_AVX2): Add m_ALDERLAKE.
11963 * common/config/i386/cpuinfo.h (get_intel_cpu): Add AlderLake model.
11964 * doc/invoke.texi: Change alderlake ISA list.
11966 2021-04-11 Hafiz Abid Qadeer <abidh@codesourcery.com>
11968 PR middle-end/98088
11969 * omp-expand.c (expand_oacc_collapse_init): Update condition in
11972 2021-04-10 H.J. Lu <hjl.tools@gmail.com>
11975 * config/i386/serializeintrin.h (_serialize): Defined as macro.
11977 2021-04-10 Jakub Jelinek <jakub@redhat.com>
11980 * expr.c (expand_expr_addr_expr_1): Test is_global_var rather than
11981 just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs.
11983 2021-04-10 Jakub Jelinek <jakub@redhat.com>
11985 PR middle-end/99989
11986 * gimple-ssa-warn-alloca.c
11987 (alloca_type_and_limit::alloca_type_and_limit): Initialize limit to
11988 0 with integer precision unconditionally.
11990 2021-04-10 Jakub Jelinek <jakub@redhat.com>
11992 PR rtl-optimization/98601
11993 * rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size
11994 not just for BLKmode, but also for VOIDmode. For STRICT_ALIGNMENT
11995 unaligned_mems handle VOIDmode like BLKmode.
11997 2021-04-10 Jan Hubicka <hubicka@ucw.cz>
12000 * tree.c (free_lang_data_in_decl): Do not release body of
12001 declare_variant_alt.
12003 2021-04-09 Richard Sandiford <richard.sandiford@arm.com>
12005 * config/aarch64/aarch64.c (aarch64_option_restore): If the
12006 architecture was specified explicitly and the tuning wasn't,
12007 tune for the architecture rather than the configured default CPU.
12009 2021-04-09 Richard Sandiford <richard.sandiford@arm.com>
12011 * config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use X30
12012 as the temporary register.
12014 2021-04-09 Martin Liska <mliska@suse.cz>
12016 * doc/extend.texi: Move non-target attributes on the top level.
12018 2021-04-09 Martin Liska <mliska@suse.cz>
12020 * doc/invoke.texi: Document minimum and maximum value of the
12021 argument for both supported compression algorithms.
12023 2021-04-08 David Edelsohn <dje.gcc@gmail.com>
12025 * config/rs6000/rs6000.c (rs6000_xcoff_select_section): Select
12026 TLS BSS before TLS data.
12027 * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .comm.
12029 2021-04-08 Richard Sandiford <richard.sandiford@arm.com>
12031 * doc/sourcebuild.texi (stdint_types_mbig_endian): Document.
12033 2021-04-08 Richard Sandiford <richard.sandiford@arm.com>
12035 * match.pd: Extend vec_cond folds to handle shifts.
12037 2021-04-08 Maciej W. Rozycki <macro@orcam.me.uk>
12039 * config/vax/vax.md: Fix comment for `*bit<mode>' pattern's
12042 2021-04-08 Alex Coplan <alex.coplan@arm.com>
12045 * config/arm/iterators.md (MVE_vecs): New.
12046 (V_elem): Also handle V2DF.
12047 * config/arm/mve.md (*mve_mov<mode>): Rename to ...
12048 (*mve_vdup<mode>): ... this. Remove second alternative since
12049 vec_duplicate of const_int is not canonical RTL, and we don't
12050 want to match symbol_refs.
12051 (*mve_vec_duplicate<mode>): Delete (pattern is redundant).
12053 2021-04-08 Xionghu Luo <luoxhu@linux.ibm.com>
12055 * fold-const.c (fold_single_bit_test): Fix typo.
12056 * print-rtl.c (print_rtx_insn_vec): Call print_rtl_single
12059 2021-04-07 Richard Sandiford <richard.sandiford@arm.com>
12061 PR tree-optimization/97513
12062 * tree-vect-slp.c (vect_add_slp_permutation): New function,
12064 (vectorizable_slp_permutation): ...here. Detect cases in which
12065 all VEC_PERM_EXPRs are guaranteed to have the same stepped
12066 permute vector and only generate one permute vector for that case.
12067 Extend that case to handle variable-length vectors.
12069 2021-04-07 Richard Sandiford <richard.sandiford@arm.com>
12071 PR tree-optimization/99873
12072 * tree-vect-slp.c (vect_slp_prefer_store_lanes_p): New function.
12073 (vect_build_slp_instance): Don't split store groups that could
12074 use IFN_STORE_LANES.
12076 2021-04-07 Jakub Jelinek <jakub@redhat.com>
12079 * varasm.c (output_constant_pool_contents): Don't strip name encoding
12080 from XSTR (desc->sym, 0) or from label before passing those to
12083 2021-04-07 Richard Biener <rguenther@suse.de>
12085 PR tree-optimization/99954
12086 * tree-loop-distribution.c: Include tree-affine.h.
12087 (generate_memcpy_builtin): Try using tree-affine to prove
12089 (loop_distribution::classify_builtin_ldst): Always classify
12092 2021-04-07 Richard Biener <rguenther@suse.de>
12094 PR tree-optimization/99947
12095 * tree-vect-loop.c (vectorizable_induction): Pre-allocate
12096 steps vector to avoid pushing elements from the reallocated
12099 2021-04-07 Richard Biener <rguenther@suse.de>
12101 * tree-ssa-sccvn.h (print_vn_reference_ops): Declare.
12102 * tree-ssa-pre.c (print_pre_expr): Factor out VN reference operand
12104 * tree-ssa-sccvn.c (print_vn_reference_ops): ... into this new
12106 (debug_vn_reference_ops): New.
12108 2021-04-07 Bin Cheng <bin.cheng@linux.alibaba.com>
12110 PR tree-optimization/98736
12111 * tree-loop-distribution.c
12112 * (loop_distribution::bb_top_order_init):
12113 Compute RPO with programing order preserved by calling function
12114 rev_post_order_and_mark_dfs_back_seme.
12116 2021-04-06 Vladimir N. Makarov <vmakarov@redhat.com>
12119 * lra-constraints.c (split_reg): Don't check paradoxical_subreg_p.
12120 * lra-lives.c (clear_sparseset_regnos, regnos_in_sparseset_p): New
12122 (process_bb_lives): Don't update biggest mode of hard reg for
12123 implicit in multi-register group. Use the new functions for
12124 updating dead_set and unused_set by register notes.
12126 2021-04-06 Xianmiao Qu <xianmiao_qu@c-sky.com>
12128 * config/csky/csky_pipeline_ck802.md : Use insn reservation name
12131 2021-04-06 H.J. Lu <hjl.tools@gmail.com>
12133 * config/i386/x86-tune-costs.h (skylake_memcpy): Updated.
12134 (skylake_memset): Likewise.
12135 (skylake_cost): Change CLEAR_RATIO to 17.
12136 * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
12137 Replace m_CANNONLAKE, m_ICELAKE_CLIENT, m_ICELAKE_SERVER,
12138 m_TIGERLAKE and m_SAPPHIRERAPIDS with m_SKYLAKE and m_CORE_AVX512.
12140 2021-04-06 Richard Biener <rguenther@suse.de>
12142 PR tree-optimization/99880
12143 * tree-vect-loop.c (maybe_set_vectorized_backedge_value): Only
12144 set vectorized defs of relevant PHIs.
12146 2021-04-06 Richard Biener <rguenther@suse.de>
12148 PR tree-optimization/99924
12149 * tree-vect-slp.c (vect_bb_partition_graph_r): Do not mark
12150 nodes w/o scalar stmts as visited.
12152 2021-04-06 Alex Coplan <alex.coplan@arm.com>
12155 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Also use base
12156 PCS for [su]fix_optab.
12158 2021-04-03 Iain Sandoe <iain@sandoe.co.uk>
12160 * config/darwin.c (machopic_legitimize_pic_address): Check
12161 that the current pic register is one of the hard reg set
12162 before setting liveness.
12164 2021-04-03 Iain Sandoe <iain@sandoe.co.uk>
12166 * config/darwin.c (machopic_legitimize_pic_address): Fix
12167 whitespace, remove unused code.
12169 2021-04-03 Jakub Jelinek <jakub@redhat.com>
12171 PR tree-optimization/99882
12172 * gimple-ssa-store-merging.c (bswap_view_convert): Handle val with
12175 2021-04-03 Jakub Jelinek <jakub@redhat.com>
12177 PR rtl-optimization/99863
12178 * dse.c (replace_read): Drop regs_live argument. Instead of
12179 regs_live, use store_insn->fixed_regs_live if non-NULL,
12180 otherwise punt if insns sequence clobbers or sets any hard
12183 2021-04-03 Jakub Jelinek <jakub@redhat.com>
12186 * targhooks.h (default_print_patchable_function_entry_1): Declare.
12187 * targhooks.c (default_print_patchable_function_entry_1): New function,
12188 copied from default_print_patchable_function_entry with an added flags
12190 (default_print_patchable_function_entry): Rewritten into a small
12191 wrapper around default_print_patchable_function_entry_1.
12192 * config/rs6000/rs6000.c (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
12194 (rs6000_print_patchable_function_entry): New function.
12196 2021-04-02 Eric Botcazou <ebotcazou@adacore.com>
12198 * doc/invoke.texi (fdelete-dead-exceptions): Minor tweak.
12200 2021-04-01 Jason Merrill <jason@redhat.com>
12203 * common.opt: Document v15 and v16.
12205 2021-04-01 Richard Biener <rguenther@suse.de>
12207 PR tree-optimization/99863
12208 * gimplify.c (gimplify_init_constructor): Recompute vector
12211 2021-04-01 Jakub Jelinek <jakub@redhat.com>
12213 * doc/extend.texi (symver attribute): Fix up syntax errors
12216 2021-04-01 Jakub Jelinek <jakub@redhat.com>
12218 PR tree-optimization/96573
12219 * gimple-ssa-store-merging.c (init_symbolic_number): Handle
12220 also pointer types.
12222 2021-04-01 Richard Biener <rguenther@suse.de>
12224 PR tree-optimization/99856
12225 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Promote
12226 precision to vector element precision.
12228 2021-04-01 Martin Jambor <mjambor@suse.cz>
12230 PR tree-optimization/97009
12231 * tree-sra.c (access_or_its_child_written): New function.
12232 (propagate_subaccesses_from_rhs): Use it instead of a simple grp_write
12235 2021-03-31 Jan Hubicka <hubicka@ucw.cz>
12238 * cif-code.def (USES_COMDAT_LOCAL): Make CIF_FINAL_NORMAL.
12240 2021-03-31 Pat Haugen <pthaugen@linux.ibm.com>
12243 * config/rs6000/altivec.md (xxspltiw_v4si, xxspltiw_v4sf_inst,
12244 xxspltidp_v2df_inst, xxsplti32dx_v4si_inst, xxsplti32dx_v4sf_inst,
12245 xxblend_<mode>, xxpermx_inst, xxeval): Mark prefixed.
12246 * config/rs6000/mma.md (mma_<vvi4i4i8>, mma_<avvi4i4i8>,
12247 mma_<vvi4i4i2>, mma_<avvi4i4i2>, mma_<vvi4i4>, mma_<avvi4i4>,
12248 mma_<pvi4i2>, mma_<apvi4i2>, mma_<vvi4i4i4>, mma_<avvi4i4i4>):
12250 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Adjust test.
12251 * config/rs6000/rs6000.md (define_attr "maybe_prefixed"): New.
12252 (define_attr "prefixed"): Update initializer.
12254 2021-03-31 Jakub Jelinek <jakub@redhat.com>
12257 * dwarf2out.c (debug_ranges_dwo_section): New variable.
12258 (DW_RANGES_IDX_SKELETON): Define.
12259 (struct dw_ranges): Add begin_entry and end_entry members.
12260 (DEBUG_DWO_RNGLISTS_SECTION): Define.
12261 (add_ranges_num): Adjust r initializer for addition of *_entry
12263 (add_ranges_by_labels): For -gsplit-dwarf and force_direct,
12264 set idx to DW_RANGES_IDX_SKELETON.
12265 (use_distinct_base_address_for_range): New function.
12266 (index_rnglists): Don't set r->idx if it is equal to
12267 DW_RANGES_IDX_SKELETON. Initialize r->begin_entry and
12268 r->end_entry for -gsplit-dwarf if those will be needed by
12270 (output_rnglists): Add DWO argument. If true, switch to
12271 debug_ranges_dwo_section rather than debug_ranges_section.
12272 Adjust l1/l2 label indexes. Only output the offset table when
12273 dwo is true and don't include in there the skeleton range
12274 entry if present. For -gsplit-dwarf, skip ranges that belong
12275 to the other rnglists section. Change return type from void
12276 to bool and return true if there are any range entries for
12277 the other section. For dwarf_split_debug_info use
12278 DW_RLE_startx_endx, DW_RLE_startx_length and DW_RLE_base_addressx
12279 entries instead of DW_RLE_start_end, DW_RLE_start_length and
12280 DW_RLE_base_address. Use use_distinct_base_address_for_range.
12281 (init_sections_and_labels): Initialize debug_ranges_dwo_section
12282 if -gsplit-dwarf and DWARF >= 5. Adjust ranges_section_label
12283 and range_base_label indexes.
12284 (dwarf2out_finish): Call index_rnglists earlier before finalizing
12285 .debug_addr. Never emit DW_AT_rnglists_base attribute. For
12286 -gsplit-dwarf and DWARF >= 5 call output_rnglists up to twice
12287 with different dwo arguments.
12288 (dwarf2out_c_finalize): Clear debug_ranges_dwo_section.
12290 2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
12292 PR tree-optimization/98268
12293 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Call
12294 recompute_tree_invariant_for_addr_expr after successfully
12295 folding a TARGET_MEM_REF that occurs inside an ADDR_EXPR.
12297 2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
12299 PR tree-optimization/99726
12300 * tree-data-ref.c (create_intersect_range_checks_index): Bail
12301 out if there is more than one access function SCEV for the loop
12304 2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
12306 PR rtl-optimization/97141
12307 PR rtl-optimization/98726
12308 * emit-rtl.c (valid_for_const_vector_p): Return true for
12310 * rtx-vector-builder.h (rtx_vector_builder::step): Return a
12311 poly_wide_int instead of a wide_int.
12312 (rtx_vector_builder::apply_set): Take a poly_wide_int instead
12314 * rtx-vector-builder.c (rtx_vector_builder::apply_set): Likewise.
12315 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Return
12316 false for CONST_VECTORs that cannot be forced to memory.
12317 * config/aarch64/aarch64-simd.md (mov<mode>): If a CONST_VECTOR
12318 is too complex to force to memory, build it up from individual
12321 2021-03-31 Jan Hubicka <jh@suse.cz>
12324 * cgraph.c (cgraph_node::release_body): Fix overactive check.
12326 2021-03-31 Christophe Lyon <christophe.lyon@linaro.org>
12329 * config/arm/vec-common.md (mul<mode>3): Disable on iwMMXT, expect
12332 2021-03-31 H.J. Lu <hjl.tools@gmail.com>
12334 * config/i386/i386-expand.c (expand_set_or_cpymem_via_rep):
12335 For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, don't convert QImode
12337 (decide_alg): For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, use
12338 "rep movsb/stosb" only for known sizes.
12339 * config/i386/i386-options.c (processor_cost_table): Use Ice
12340 Lake cost for Cannon Lake, Ice Lake, Tiger Lake, Sapphire
12341 Rapids and Alder Lake.
12342 * config/i386/i386.h (TARGET_PREFER_KNOWN_REP_MOVSB_STOSB): New.
12343 * config/i386/x86-tune-costs.h (icelake_memcpy): New.
12344 (icelake_memset): Likewise.
12345 (icelake_cost): Likewise.
12346 * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
12349 2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
12352 * config/aarch64/aarch64.c
12353 (aarch64_vectorize_preferred_vector_alignment): Query the size
12354 of the provided SVE vector; do not assume that all SVE vectors
12355 have the same size.
12357 2021-03-31 Jan Hubicka <jh@suse.cz>
12360 * cgraph.c (cgraph_node::release_body): Remove all callers and
12362 * cgraphclones.c (cgraph_node::materialize_clone): Do not do it here.
12363 * cgraphunit.c (cgraph_node::expand): And here.
12365 2021-03-31 Martin Liska <mliska@suse.cz>
12367 * ipa-modref.c (analyze_ssa_name_flags): Fix coding style
12368 and one negated condition.
12370 2021-03-31 Jakub Jelinek <jakub@redhat.com>
12371 Richard Sandiford <richard.sandiford@arm.com>
12374 * config/aarch64/aarch64.md (*add<mode>3_poly_1): Swap Uai and Uav
12375 constraints on operands[2] and similarly 0 and rk constraints
12376 on operands[1] corresponding to that.
12378 2021-03-31 Jakub Jelinek <jakub@redhat.com>
12381 * configure.ac (HAVE_LD_BROKEN_PE_DWARF5): New AC_DEFINE if PECOFF
12382 linker doesn't support DWARF sections new in DWARF5.
12383 * config/i386/i386-options.c (ix86_option_override_internal): Default
12384 to dwarf_version 4 if HAVE_LD_BROKEN_PE_DWARF5 for TARGET_PECOFF
12386 * config.in: Regenerated.
12387 * configure: Regenerated.
12389 2021-03-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12392 * config/aarch64/aarch64.c (aarch64_analyze_loop_vinfo): Check for
12393 available issue_info before using it.
12395 2021-03-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12398 * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): Do not allow zero
12401 2021-03-30 Xionghu Luo <luoxhu@linux.ibm.com>
12404 * config/rs6000/altivec.md (altivec_lvsl_reg): Change to ...
12405 (altivec_lvsl_reg_<mode>): ... this.
12406 (altivec_lvsr_reg): Change to ...
12407 (altivec_lvsr_reg_<mode>): ... this.
12408 * config/rs6000/predicates.md (vec_set_index_operand): New.
12409 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
12410 Enable 32bit variable vec_insert for all TARGET_VSX.
12411 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
12412 Enable 32bit variable vec_insert for p9 and above.
12413 (rs6000_expand_vector_set_var_p8): Rename to ...
12414 (rs6000_expand_vector_set_var_p7): ... this.
12415 (rs6000_expand_vector_set): Use TARGET_VSX and adjust assert
12417 * config/rs6000/vector.md (vec_set<mode>): Use vec_set_index_operand.
12418 * config/rs6000/vsx.md (xl_len_r): Use gen_altivec_lvsl_reg_di and
12419 gen_altivec_lvsr_reg_di.
12421 2021-03-30 H.J. Lu <hjl.tools@gmail.com>
12424 * config/i386/ia32intrin.h (__rdtsc): Defined as macro.
12425 (__rdtscp): Likewise.
12427 2021-03-30 Tamar Christina <tamar.christina@arm.com>
12429 PR tree-optimization/99825
12430 * tree-vect-slp-patterns.c (vect_check_evenodd_blend):
12431 Reject non-mult 2 lanes.
12433 2021-03-30 Richard Earnshaw <rearnsha@arm.com>
12436 * config/arm/arm.c (arm_file_start): Fix emission of
12437 Tag_ABI_VFP_args attribute.
12439 2021-03-30 Richard Biener <rguenther@suse.de>
12441 PR tree-optimization/99824
12442 * stor-layout.c (set_min_and_max_values_for_integral_type):
12443 Assert the precision is within the bounds of
12444 WIDE_INT_MAX_PRECISION.
12445 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use
12446 the outermost component ref only to lower the access size
12447 and initialize that from the access type.
12449 2021-03-30 Richard Sandiford <richard.sandiford@arm.com>
12452 * config/aarch64/aarch64.md (mov<mode>): Pass multi-instruction
12453 CONST_INTs to aarch64_expand_mov_immediate when called after RA.
12455 2021-03-30 Mihailo Stojanovic <mihailo.stojanovic@typhoon-hil.com>
12457 * config/aarch64/aarch64.md
12458 (<optab>_trunc<fcvt_target><GPI:mode>2): Set the "arch"
12459 attribute to disambiguate between SIMD and FP variants of the
12462 2021-03-29 Jan Hubicka <hubicka@ucw.cz>
12464 * ipa-modref.c (merge_call_lhs_flags): Correct handling of deref.
12465 (analyze_ssa_name_flags): Fix typo in comment.
12467 2021-03-29 Alex Coplan <alex.coplan@arm.com>
12470 * config/aarch64/aarch64-sve-builtins.cc
12471 (function_builder::add_function): Add placeholder_p argument, use
12472 placeholder decls if this is set.
12473 (function_builder::add_unique_function): Instead of conditionally adding
12474 direct overloads, unconditionally add either a direct overload or a
12476 (function_builder::add_overloaded_function): Set placeholder_p if we're
12477 using C++ overloads. Use the obstack for string storage instead
12478 of relying on the tree nodes.
12479 (function_builder::add_overloaded_functions): Don't return early for
12480 m_direct_overloads: we need to add placeholders.
12481 * config/aarch64/aarch64-sve-builtins.h
12482 (function_builder::add_function): Add placeholder_p argument.
12484 2021-03-29 Richard Biener <rguenther@suse.de>
12486 PR tree-optimization/99807
12487 * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Move
12488 assert below VEC_PERM handling.
12490 2021-03-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12493 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Use
12494 aarch64_simd_or_scalar_imm_zero to match zeroes. Remove pattern
12495 matching const_int 0.
12496 (move_lo_quad_internal_be_<mode>): Likewise.
12497 (move_lo_quad_<mode>): Update for the above.
12498 * config/aarch64/iterators.md (VQ_2E): Delete.
12500 2021-03-29 Jakub Jelinek <jakub@redhat.com>
12502 PR tree-optimization/99777
12503 * fold-const.c (extract_muldiv_1): For conversions, punt on casts from
12504 types other than scalar integral types.
12506 2021-03-28 David Edelsohn <dje.gcc@gmail.com>
12508 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Do not add
12509 XCOFF TLS reloc decorations.
12511 2021-03-28 Gerald Pfeifer <gerald@pfeifer.com>
12513 * doc/analyzer.texi (Analyzer Internals): Update link to
12514 "A Memory Model for Static Analysis of C Programs".
12516 2021-03-26 David Edelsohn <dje.gcc@gmail.com>
12518 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Call function.
12519 * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align):
12521 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align): New.
12522 (rs6000_special_round_type_align): Recursively check innermost first
12525 2021-03-26 Jakub Jelinek <jakub@redhat.com>
12528 * dwarf2out.h (struct dw_fde_node): Add rule18 member.
12529 * dwarf2cfi.c (dwarf2out_frame_debug_expr): When handling (set hfp sp)
12530 assignment with drap_reg active, queue reg save for hfp with offset 0
12531 and flush queued reg saves. When handling a push with rule18,
12532 defer queueing reg save for hfp and just assert the offset is 0.
12533 (scan_trace): Assert that fde->rule18 is false.
12535 2021-03-26 Vladimir Makarov <vmakarov@redhat.com>
12538 * ira-costs.c (record_reg_classes): Put case with
12539 CT_RELAXED_MEMORY adjacent to one with CT_MEMORY.
12540 * ira.c (ira_setup_alts): Ditto.
12541 * lra-constraints.c (process_alt_operands): Ditto.
12542 * recog.c (asm_operand_ok): Ditto.
12543 * reload.c (find_reloads): Ditto.
12545 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
12547 * config/aarch64/aarch64-protos.h
12548 (cpu_addrcost_table::post_modify_ld3_st3): New member variable.
12549 (cpu_addrcost_table::post_modify_ld4_st4): Likewise.
12550 * config/aarch64/aarch64.c (generic_addrcost_table): Update
12551 accordingly, using the same costs as for post_modify.
12552 (exynosm1_addrcost_table, xgene1_addrcost_table): Likewise.
12553 (thunderx2t99_addrcost_table, thunderx3t110_addrcost_table):
12554 (tsv110_addrcost_table, qdf24xx_addrcost_table): Likewise.
12555 (a64fx_addrcost_table): Likewise.
12556 (neoversev1_addrcost_table): New.
12557 (neoversev1_tunings): Use neoversev1_addrcost_table.
12558 (aarch64_address_cost): Use the new post_modify costs for CImode
12561 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
12563 * config/aarch64/aarch64.opt
12564 (-param=aarch64-loop-vect-issue-rate-niters=): New parameter.
12565 * doc/invoke.texi: Document it.
12566 * config/aarch64/aarch64-protos.h (aarch64_base_vec_issue_info)
12567 (aarch64_scalar_vec_issue_info, aarch64_simd_vec_issue_info)
12568 (aarch64_advsimd_vec_issue_info, aarch64_sve_vec_issue_info)
12569 (aarch64_vec_issue_info): New structures.
12570 (cpu_vector_cost): Write comments above the variables rather
12572 (cpu_vector_cost::issue_info): New member variable.
12573 * config/aarch64/aarch64.c: Include gimple-pretty-print.h
12574 and tree-ssa-loop-niter.h.
12575 (generic_vector_cost, a64fx_vector_cost, qdf24xx_vector_cost)
12576 (thunderx_vector_cost, tsv110_vector_cost, cortexa57_vector_cost)
12577 (exynosm1_vector_cost, xgene1_vector_cost, thunderx2t99_vector_cost)
12578 (thunderx3t110_vector_cost): Initialize issue_info to null.
12579 (neoversev1_scalar_issue_info, neoversev1_advsimd_issue_info)
12580 (neoversev1_sve_issue_info, neoversev1_vec_issue_info): New structures.
12581 (neoversev1_vector_cost): Use them.
12582 (aarch64_vec_op_count, aarch64_sve_op_count): New structures.
12583 (aarch64_vector_costs::saw_sve_only_op): New member variable.
12584 (aarch64_vector_costs::num_vector_iterations): Likewise.
12585 (aarch64_vector_costs::scalar_ops): Likewise.
12586 (aarch64_vector_costs::advsimd_ops): Likewise.
12587 (aarch64_vector_costs::sve_ops): Likewise.
12588 (aarch64_vector_costs::seen_loads): Likewise.
12589 (aarch64_simd_vec_costs_for_flags): New function.
12590 (aarch64_analyze_loop_vinfo): Initialize num_vector_iterations.
12591 Count the number of predicate operations required by SVE WHILE
12593 (aarch64_comparison_type, aarch64_multiply_add_p): New functions.
12594 (aarch64_sve_only_stmt_p, aarch64_in_loop_reduction_latency): Likewise.
12595 (aarch64_count_ops): Likewise.
12596 (aarch64_add_stmt_cost): Record whether see an SVE operation
12597 that cannot currently be implementing using Advanced SIMD.
12598 Record issue information about the scalar, Advanced SIMD
12599 and (where relevant) SVE versions of a loop.
12600 (aarch64_vec_op_count::dump): New function.
12601 (aarch64_sve_op_count::dump): Likewise.
12602 (aarch64_estimate_min_cycles_per_iter): Likewise.
12603 (aarch64_adjust_body_cost): If issue information is available,
12604 try to compare the issue rates of the various loop implementations
12605 and increase or decrease the vector body cost accordingly.
12607 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
12609 * config/aarch64/aarch64.c (aarch64_detect_vector_stmt_subtype):
12610 Assume a zero cost for induction phis.
12612 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
12614 * config/aarch64/aarch64.c (aarch64_embedded_comparison_type): New
12616 (aarch64_adjust_stmt_cost): Add the costs of embedded scalar and
12617 vector comparisons.
12619 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
12621 * config/aarch64/aarch64.c (aarch64_detect_scalar_stmt_subtype):
12623 (aarch64_add_stmt_cost): Call it.
12625 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
12627 * config/aarch64/aarch64-tuning-flags.def (matched_vector_throughput):
12628 New tuning parameter.
12629 * config/aarch64/aarch64.c (neoversev1_tunings): Use it.
12630 (aarch64_estimated_sve_vq): New function.
12631 (aarch64_vector_costs::analyzed_vinfo): New member variable.
12632 (aarch64_vector_costs::is_loop): Likewise.
12633 (aarch64_vector_costs::unrolled_advsimd_niters): Likewise.
12634 (aarch64_vector_costs::unrolled_advsimd_stmts): Likewise.
12635 (aarch64_record_potential_advsimd_unrolling): New function.
12636 (aarch64_analyze_loop_vinfo, aarch64_analyze_bb_vinfo): Likewise.
12637 (aarch64_add_stmt_cost): Call aarch64_analyze_loop_vinfo or
12638 aarch64_analyze_bb_vinfo on the first use of a costs structure.
12639 Detect whether we're vectorizing a loop for SVE that might be
12640 completely unrolled if it used Advanced SIMD instead.
12641 (aarch64_adjust_body_cost_for_latency): New function.
12642 (aarch64_finish_cost): Call it.
12644 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
12646 * config/aarch64/aarch64.c (aarch64_vector_costs): New structure.
12647 (aarch64_init_cost): New function.
12648 (aarch64_add_stmt_cost): Use aarch64_vector_costs instead of
12649 the default unsigned[3].
12650 (aarch64_finish_cost, aarch64_destroy_cost_data): New functions.
12651 (TARGET_VECTORIZE_INIT_COST): Override.
12652 (TARGET_VECTORIZE_FINISH_COST): Likewise.
12653 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
12655 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
12657 * config/aarch64/aarch64.c (neoversev1_advsimd_vector_cost)
12658 (neoversev1_sve_vector_cost): New cost structures.
12659 (neoversev1_vector_cost): Likewise.
12660 (neoversev1_tunings): Use them. Enable use_new_vector_costs.
12662 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
12664 * config/aarch64/aarch64-protos.h
12665 (sve_vec_cost::scatter_store_elt_cost): New member variable.
12666 * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
12667 accordingly, taking the cost from the cost of a scalar_store.
12668 (a64fx_sve_vector_cost): Likewise.
12669 (aarch64_detect_vector_stmt_subtype): Detect scatter stores.
12671 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
12673 * config/aarch64/aarch64-protos.h
12674 (simd_vec_cost::store_elt_extra_cost): New member variable.
12675 * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
12676 accordingly, using the vec_to_scalar cost for the new field.
12677 (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
12678 (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
12679 (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
12680 (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
12681 (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
12682 (thunderx3t110_advsimd_vector_cost): Likewise.
12683 (aarch64_detect_vector_stmt_subtype): Detect single-element stores.
12685 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
12687 * config/aarch64/aarch64-protos.h (simd_vec_cost::ld2_st2_permute_cost)
12688 (simd_vec_cost::ld3_st3_permute_cost): New member variables.
12689 (simd_vec_cost::ld4_st4_permute_cost): Likewise.
12690 * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
12691 accordingly, using zero for the new costs.
12692 (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
12693 (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
12694 (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
12695 (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
12696 (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
12697 (thunderx3t110_advsimd_vector_cost): Likewise.
12698 (aarch64_ld234_st234_vectors): New function.
12699 (aarch64_adjust_stmt_cost): Likewise.
12700 (aarch64_add_stmt_cost): Call aarch64_adjust_stmt_cost if using
12701 the new vector costs.
12703 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
12705 * config/aarch64/aarch64-protos.h (sve_vec_cost): Turn into a
12706 derived class of simd_vec_cost. Add information about CLAST[AB]
12707 and FADDA instructions.
12708 * config/aarch64/aarch64.c (generic_sve_vector_cost): Update
12709 accordingly, using the vec_to_scalar costs for the new fields.
12710 (a64fx_sve_vector_cost): Likewise.
12711 (aarch64_reduc_type): New function.
12712 (aarch64_sve_in_loop_reduction_latency): Likewise.
12713 (aarch64_detect_vector_stmt_subtype): Take a vinfo parameter.
12714 Use aarch64_sve_in_loop_reduction_latency to handle SVE reductions
12715 that occur in the loop body.
12716 (aarch64_add_stmt_cost): Update call accordingly.
12718 2021-03-26 Richard Sandiford <richard.sandiford@arm.com>
12720 * config/aarch64/aarch64-tuning-flags.def (use_new_vector_costs):
12722 * config/aarch64/aarch64-protos.h (simd_vec_cost): Put comments
12723 above the fields rather than to the right.
12724 (simd_vec_cost::reduc_i8_cost): New member variable.
12725 (simd_vec_cost::reduc_i16_cost): Likewise.
12726 (simd_vec_cost::reduc_i32_cost): Likewise.
12727 (simd_vec_cost::reduc_i64_cost): Likewise.
12728 (simd_vec_cost::reduc_f16_cost): Likewise.
12729 (simd_vec_cost::reduc_f32_cost): Likewise.
12730 (simd_vec_cost::reduc_f64_cost): Likewise.
12731 * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
12732 accordingly, using the vec_to_scalar_cost for the new fields.
12733 (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
12734 (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
12735 (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
12736 (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
12737 (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
12738 (thunderx3t110_advsimd_vector_cost): Likewise.
12739 (aarch64_use_new_vector_costs_p): New function.
12740 (aarch64_simd_vec_costs): New function, split out from...
12741 (aarch64_builtin_vectorization_cost): ...here.
12742 (aarch64_is_reduction): New function.
12743 (aarch64_detect_vector_stmt_subtype): Likewise.
12744 (aarch64_add_stmt_cost): Call aarch64_detect_vector_stmt_subtype if
12745 using the new vector costs.
12747 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
12750 * tree-emutls.c (get_emutls_init_templ_addr): Mark initializer of weak
12751 TLS declarations as public.
12753 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
12755 * config/aarch64/aarch64-d.c (IN_TARGET_CODE): Define.
12756 * config/arm/arm-d.c (IN_TARGET_CODE): Likewise.
12757 * config/i386/i386-d.c (IN_TARGET_CODE): Likewise.
12758 * config/mips/mips-d.c (IN_TARGET_CODE): Likewise.
12759 * config/pa/pa-d.c (IN_TARGET_CODE): Likewise.
12760 * config/riscv/riscv-d.c (IN_TARGET_CODE): Likewise.
12761 * config/rs6000/rs6000-d.c (IN_TARGET_CODE): Likewise.
12762 * config/s390/s390-d.c (IN_TARGET_CODE): Likewise.
12763 * config/sparc/sparc-d.c (IN_TARGET_CODE): Likewise.
12765 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
12768 * config.gcc (*-*-cygwin*): Add winnt-d.o
12769 (*-*-mingw*): Likewise.
12770 * config/i386/cygwin.h (EXTRA_TARGET_D_OS_VERSIONS): New macro.
12771 * config/i386/mingw32.h (EXTRA_TARGET_D_OS_VERSIONS): Likewise.
12772 * config/i386/t-cygming: Add winnt-d.o.
12773 * config/i386/winnt-d.c: New file.
12775 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
12777 * config/freebsd-d.c: Include memmodel.h.
12779 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
12782 * config.gcc (*-*-openbsd*): Add openbsd-d.o.
12783 * config/t-openbsd: Add openbsd-d.o.
12784 * config/openbsd-d.c: New file.
12786 2021-03-25 Stam Markianos-Wright <stam.markianos-wright@arm.com>
12788 PR tree-optimization/96974
12789 * tree-vect-stmts.c (vect_get_vector_types_for_stmt): Replace assert
12790 with graceful exit.
12792 2021-03-25 H.J. Lu <hjl.tools@gmail.com>
12795 2021-03-25 H.J. Lu <hjl.tools@gmail.com>
12799 * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
12800 always_inline in system headers.
12802 2021-03-25 Kewen Lin <linkw@linux.ibm.com>
12804 * tree-vect-loop.c (vect_model_reduction_cost): Init inside_cost.
12806 2021-03-25 Jakub Jelinek <jakub@redhat.com>
12809 * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF_SAME_FIELD.
12810 * fold-const.c (operand_compare::operand_equal_p): Don't compare
12811 field offsets if OEP_ADDRESS_OF_SAME_FIELD.
12813 2021-03-25 H.J. Lu <hjl.tools@gmail.com>
12817 * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
12818 always_inline in system headers.
12820 2021-03-25 Richard Biener <rguenther@suse.de>
12822 PR tree-optimization/99746
12823 * tree-vect-slp-patterns.c (complex_pattern::build): Do not mark
12824 the scalar stmt as patterned. Instead set up required things
12827 2021-03-25 Xionghu Luo <luoxhu@linux.ibm.com>
12829 * config/rs6000/rs6000.c (power8_costs): Change l2 cache
12832 2021-03-24 Martin Liska <mliska@suse.cz>
12835 * common/config/i386/i386-common.c (ARRAY_SIZE): Fix off-by-one
12837 * config/i386/i386-options.c (ix86_option_override_internal):
12838 Add run-time assert.
12840 2021-03-24 Martin Jambor <mjambor@suse.cz>
12843 * ipa-cp.c (initialize_node_lattices): Mark as bottom all
12844 parameters with unknown type.
12845 (ipacp_value_safe_for_type): New function.
12846 (propagate_vals_across_arith_jfunc): Verify that the constant type
12847 can be used for a type of the formal parameter.
12848 (propagate_vals_across_ancestor): Likewise.
12849 (propagate_scalar_across_jump_function): Likewise. Pass the type
12850 also to propagate_vals_across_ancestor.
12852 2021-03-24 Christophe Lyon <christophe.lyon@linaro.org>
12855 * config/arm/mve.md (movmisalign<mode>_mve_store): Use Ux
12857 (movmisalign<mode>_mve_load): Likewise.
12859 2021-03-24 Jakub Jelinek <jakub@redhat.com>
12862 * config/arm/vec-common.md (one_cmpl<mode>2, neg<mode>2,
12863 movmisalign<mode>): Disable expanders for TARGET_REALLY_IWMMXT.
12865 2021-03-24 Alexandre Oliva <oliva@adacore.com>
12867 * doc/sourcebuild.texi (sysconf): New effective target.
12869 2021-03-24 Alexandre Oliva <oliva@adacore.com>
12871 * config/i386/predicates.md (reg_or_const_vec_operand): New.
12872 * config/i386/sse.md (ssse3_pshufbv8qi3): Add an expander for
12873 the now *-prefixed insn_and_split, turn the splitter const vec
12874 into an input for the insn, making it an ignored immediate for
12875 non-split cases, and loaded into the scratch register
12878 2021-03-23 Vladimir N. Makarov <vmakarov@redhat.com>
12881 * config/aarch64/constraints.md (Utq, UOb, UOh, UOw, UOd, UOty):
12882 Use define_relaxed_memory_constraint for them.
12884 2021-03-23 Iain Sandoe <iain@sandoe.co.uk>
12887 * config/host-darwin.c (darwin_gt_pch_use_address): Add a
12888 colon to the diagnostic message.
12890 2021-03-23 Ilya Leoshkevich <iii@linux.ibm.com>
12892 * fwprop.c (fwprop_propagation::fwprop_propagation): Look at
12894 (try_fwprop_subst_note): Use set_info instead of insn_info.
12895 (try_fwprop_subst_pattern): Likewise.
12896 (try_fwprop_subst_notes): Likewise.
12897 (try_fwprop_subst): Likewise.
12898 (forward_propagate_subreg): Likewise.
12899 (forward_propagate_and_simplify): Likewise.
12900 (forward_propagate_into): Likewise.
12901 * rtl-ssa/accesses.h (set_info::single_nondebug_use) New
12903 (set_info::single_nondebug_insn_use): Likewise.
12904 (set_info::single_phi_use): Likewise.
12905 * rtl-ssa/member-fns.inl (set_info::single_nondebug_use) New
12907 (set_info::single_nondebug_insn_use): Likewise.
12908 (set_info::single_phi_use): Likewise.
12910 2021-03-23 Christophe Lyon <christophe.lyon@linaro.org>
12912 * doc/sourcebuild.texi (arm_dsp_ok, arm_dsp): Document.
12914 2021-03-23 Jakub Jelinek <jakub@redhat.com>
12917 * config/aarch64/aarch64.c (aarch64_add_offset): Tell
12918 expand_mult to perform an unsigned rather than a signed
12921 2021-03-23 H.J. Lu <hjl.tools@gmail.com>
12924 * config/i386/cpuid.h (__cpuid): Add __volatile__.
12925 (__cpuid_count): Likewise.
12927 2021-03-23 Richard Biener <rguenther@suse.de>
12929 PR tree-optimization/99721
12930 * tree-vect-slp.c (vect_slp_analyze_node_operations):
12931 Make sure we can schedule the node.
12933 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
12935 * config/riscv/riscv.c (riscv_subword): Take endianness into
12936 account when calculating the byte offset.
12938 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
12940 * config/riscv/predicates.md (subreg_lowpart_operator): New predicate
12941 * config/riscv/riscv.md (*addsi3_extended2, *subsi3_extended2)
12942 (*negsi2_extended2, *mulsi3_extended2, *<optab>si3_mask)
12943 (*<optab>si3_mask_1, *<optab>di3_mask, *<optab>di3_mask_1)
12944 (*<optab>si3_extend_mask, *<optab>si3_extend_mask_1): Use
12945 new predicate "subreg_lowpart_operator"
12947 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
12949 * config/riscv/riscv.c (riscv_swap_instruction): New function
12950 to byteswap an SImode rtx containing an instruction.
12951 (riscv_trampoline_init): Byteswap the generated instructions
12954 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
12956 * common/config/riscv/riscv-common.c
12957 (TARGET_DEFAULT_TARGET_FLAGS): Set default endianness.
12958 * config.gcc (riscv32be-*, riscv64be-*): Set
12959 TARGET_BIG_ENDIAN_DEFAULT to 1.
12960 * config/riscv/elf.h (LINK_SPEC): Change -melf* value
12961 depending on default endianness.
12962 * config/riscv/freebsd.h (LINK_SPEC): Likewise.
12963 * config/riscv/linux.h (LINK_SPEC): Likewise.
12964 * config/riscv/riscv.c (TARGET_DEFAULT_TARGET_FLAGS): Set
12965 default endianness.
12966 * config/riscv/riscv.h (DEFAULT_ENDIAN_SPEC): New macro.
12968 2021-03-23 Marcus Comstedt <marcus@mc.pp.se>
12970 * config/riscv/elf.h (LINK_SPEC): Pass linker endianness flag.
12971 * config/riscv/freebsd.h (LINK_SPEC): Likewise.
12972 * config/riscv/linux.h (LINK_SPEC): Likewise.
12973 * config/riscv/riscv.h (ASM_SPEC): Pass -mbig-endian and
12975 (BYTES_BIG_ENDIAN): Handle big endian.
12976 (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
12977 * config/riscv/riscv.opt (-mbig-endian, -mlittle-endian): New
12979 * doc/invoke.texi (-mbig-endian, -mlittle-endian): Document.
12981 2021-03-23 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
12983 * regcprop.c (find_oldest_value_reg): Ask target whether
12984 different mode is fine for replacement register.
12986 2021-03-23 Aldy Hernandez <aldyh@redhat.com>
12988 PR tree-optimization/99296
12989 * value-range.cc (irange::irange_set_1bit_anti_range): New.
12990 (irange::irange_set_anti_range): Call irange_set_1bit_anti_range
12991 * value-range.h (irange::irange_set_1bit_anti_range): New.
12993 2021-03-22 Vladimir N. Makarov <vmakarov@redhat.com>
12996 * config/aarch64/constraints.md (UtQ): Use
12997 define_relaxed_memory_constraint for it.
12998 * doc/md.texi (define_relaxed_memory_constraint): Describe it.
12999 * genoutput.c (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
13000 * genpreds.c (constraint_data): Add bitfield is_relaxed_memory.
13001 (have_relaxed_memory_constraints): New static var.
13002 (relaxed_memory_start, relaxed_memory_end): Ditto.
13003 (add_constraint): Add arg is_relaxed_memory. Check name for
13004 relaxed memory. Set up is_relaxed_memory in constraint_data and
13005 have_relaxed_memory_constraints. Adjust calls.
13006 (choose_enum_order): Process relaxed memory.
13007 (write_tm_preds_h): Ditto.
13008 (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
13009 * gensupport.c (process_rtx): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
13010 * ira-costs.c (record_reg_classes): Process CT_RELAXED_MEMORY.
13011 * ira-lives.c (single_reg_class): Use
13012 insn_extra_relaxed_memory_constraint.
13013 * ira.c (ira_setup_alts): CT_RELAXED_MEMORY.
13014 * lra-constraints.c (valid_address_p): Use
13015 insn_extra_relaxed_memory_constraint instead of other memory
13017 (process_alt_operands): Process CT_RELAXED_MEMORY.
13018 (curr_insn_transform): Use insn_extra_relaxed_memory_constraint.
13019 * recog.c (asm_operand_ok, preprocess_constraints): Process
13021 * reload.c (find_reloads): Ditto.
13022 * rtl.def (DEFINE_RELAXED_MEMORY_CONSTRAINT): New.
13023 * stmt.c (parse_input_constraint): Use
13024 insn_extra_relaxed_memory_constraint.
13026 2021-03-22 Segher Boessenkool <segher@kernel.crashing.org>
13029 * ubsan.c (ubsan_instrument_float_cast): Don't test for unordered if
13032 2021-03-22 Alex Coplan <alex.coplan@arm.com>
13035 * config/arm/arm-protos.h (neon_make_constant): Add generate
13036 argument to guard emitting insns, default to true.
13037 * config/arm/arm.c (arm_legitimate_constant_p_1): Reject
13038 CONST_VECTORs which neon_make_constant can't handle.
13039 (neon_vdup_constant): Add generate argument, avoid emitting
13040 insns if it's not set.
13041 (neon_make_constant): Plumb new generate argument through.
13042 * config/arm/constraints.md (Ui): New. Use it...
13043 * config/arm/mve.md (*mve_mov<mode>): ... here.
13044 * config/arm/vec-common.md (movv8hf): Use neon_make_constant to
13045 synthesize constants.
13047 2021-03-22 Richard Biener <rguenther@suse.de>
13049 * debug.h: Add deprecation warning.
13051 2021-03-22 Richard Biener <rguenther@suse.de>
13053 PR tree-optimization/99694
13054 * tree-ssa-sccvn.c (visit_phi): Ignore edges with the
13057 2021-03-22 Kito Cheng <kito.cheng@sifive.com>
13060 * config/riscv/riscv.c (riscv_expand_block_move): Get RTL value
13061 after type checking.
13063 2021-03-22 Jakub Jelinek <jakub@redhat.com>
13067 * dwarf2out.c (get_full_len): Use get_precision rather than
13069 (add_const_value_attribute): Make sure add_AT_wide argument has
13070 precision prec rather than some very wide one.
13072 2021-03-22 Kewen Lin <linkw@linux.ibm.com>
13074 * config/rs6000/rs6000.md (*rotldi3_insert_sf,
13075 *mov<SFDF:mode><SFDF2:mode>cc_p9, floatsi<mode>2_lfiwax,
13076 floatsi<mode>2_lfiwax_mem, floatunssi<mode>2_lfiwzx,
13077 floatunssi<mode>2_lfiwzx_mem, *floatsidf2_internal,
13078 *floatunssidf2_internal, fix_trunc<mode>si2_stfiwx,
13079 fix_trunc<mode>si2_internal, fixuns_trunc<mode>si2_stfiwx,
13080 *round32<mode>2_fprs, *roundu32<mode>2_fprs,
13081 *fix_trunc<mode>si2_internal): Fix empty split condition.
13082 * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
13083 vsx_reduc_<VEC_reduc_name>_v2df, vsx_reduc_<VEC_reduc_name>_v4sf,
13084 *vsx_reduc_<VEC_reduc_name>_v2df_scalar,
13085 *vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Likewise.
13087 2021-03-22 Xionghu Luo <luoxhu@linux.ibm.com>
13090 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
13091 Convert idx to DImode.
13092 (rs6000_expand_vector_set_var_p8): Likewise.
13094 2021-03-21 Jakub Jelinek <jakub@redhat.com>
13097 * dwarf2out.c (insert_float): Change return type from void to
13098 unsigned, handle GET_MODE_SIZE (mode) == 2 and return element size.
13099 (mem_loc_descriptor, loc_descriptor, add_const_value_attribute):
13102 2021-03-20 H.J. Lu <hjl.tools@gmail.com>
13105 * config/i386/i386.c (construct_container): Check cfun != NULL
13106 before accessing silent_p.
13108 2021-03-20 Ahamed Husni <ahamedhusni73@gmail.com>
13110 * asan.c: Fix typos in comments.
13112 2021-03-20 Vladimir N. Makarov <vmakarov@redhat.com>
13114 PR rtl-optimization/99680
13115 * lra-constraints.c (skip_contraint_modifiers): Rename to skip_constraint_modifiers.
13116 (process_address_1): Check empty constraint before using
13119 2021-03-19 Pat Haugen <pthaugen@linux.ibm.com>
13121 * config/rs6000/rs6000.c (power10_cost): New.
13122 (rs6000_option_override_internal): Set Power10 costs.
13123 (rs6000_issue_rate): Set Power10 issue rate.
13124 * config/rs6000/power10.md: Rewrite for Power10.
13126 2021-03-19 Vladimir N. Makarov <vmakarov@redhat.com>
13129 * lra-constraints.c (process_address_1): Don't use unknown
13130 constraint for address constraint.
13132 2021-03-19 Iain Sandoe <iain@sandoe.co.uk>
13135 * config.gcc (powerpc-*-darwin8): Delete the reference to
13136 the now removed darwin8.h.
13138 2021-03-19 Olivier Hainque <hainque@adacore.com>
13141 * config/vxworksae.h (VX_CPU_PREFIX): Define.
13143 2021-03-19 John David Anglin <danglin@gcc.gnu.org>
13145 * config/pa/pa.c (import_milli): Use memcpy instead of strncpy.
13147 2021-03-19 Tamar Christina <tamar.christina@arm.com>
13149 PR tree-optimization/99656
13150 * tree-vect-slp-patterns.c (linear_loads_p,
13151 complex_add_pattern::matches, is_eq_or_top,
13152 vect_validate_multiplication, complex_mul_pattern::matches,
13153 complex_fms_pattern::matches): Remove complex_perm_kinds_t.
13154 * tree-vectorizer.h: (complex_load_perm_t): Removed.
13155 (slp_tree_to_load_perm_map_t): Use complex_perm_kinds_t instead of
13156 complex_load_perm_t.
13158 2021-03-19 H.J. Lu <hjl.tools@gmail.com>
13161 * config/i386/i386-options.c (ix86_init_machine_status): Set
13163 * config/i386/i386.c (init_cumulative_args): Set silent_p to
13165 (construct_container): Return early for return and argument
13166 errors if silent_p is true.
13167 * config/i386/i386.h (machine_function): Add silent_p.
13169 2021-03-19 Jakub Jelinek <jakub@redhat.com>
13172 * config/arm/constraints.md (Ds): New constraint.
13173 * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Use w,Ds
13174 constraint instead of w,Dm.
13176 2021-03-19 Andrew Stubbs <ams@codesourcery.com>
13178 * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Fix quotes
13181 2021-03-19 Eric Botcazou <ebotcazou@adacore.com>
13183 PR middle-end/99641
13184 * fold-const.c (native_encode_initializer) <CONSTRUCTOR>: For an
13185 array type, do the computation of the current position in sizetype.
13187 2021-03-18 Vladimir N. Makarov <vmakarov@redhat.com>
13190 * lra-constraints.c (process_address_1): Use lookup_constraint
13191 only for a single constraint.
13193 2021-03-18 Martin Sebor <msebor@redhat.com>
13195 PR middle-end/99502
13196 * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): Rename...
13197 (inbounds_memaccess_p): ...to this. Check the ending offset of
13198 the accessed member.
13200 2021-03-18 Andrew Stubbs <ams@codesourcery.com>
13202 * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Add %< and
13203 %> quote markers to error messages.
13204 (gcn_goacc_validate_dims): Likewise.
13205 (gcn_conditional_register_usage): Remove exclaimation mark from error
13207 (gcn_vectorize_vec_perm_const): Ensure perm is fully uninitialized.
13209 2021-03-18 Jan Hubicka <hubicka@ucw.cz>
13211 * config/i386/x86-tune-costs.h (struct processor_costs): Fix costs of
13214 2021-03-18 Sinan Lin <sinan@isrc.iscas.ac.cn>
13215 Kito Cheng <kito.cheng@sifive.com>
13217 * config/riscv/riscv.c (riscv_block_move_straight): Change type
13218 to unsigned HOST_WIDE_INT for parameter and local variable with
13219 HOST_WIDE_INT type.
13220 (riscv_adjust_block_mem): Ditto.
13221 (riscv_block_move_loop): Ditto.
13222 (riscv_expand_block_move): Ditto.
13224 2021-03-18 Nick Clifton <nickc@redhat.com>
13226 * config/v850/v850.c (construct_restore_jr): Increase static
13228 (construct_save_jarl): Likewise.
13229 * config/v850/v850.h (DWARF2_DEBUGGING_INFO): Define.
13231 2021-03-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13233 * config/aarch64/aarch64.c (aarch64_adjust_generic_arch_tuning): Define.
13234 (aarch64_override_options_internal): Use it.
13235 (generic_tunings): Add AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS to
13238 2021-03-17 Sandra Loosemore <sandra@codesourcery.com>
13240 * config/nios2/nios2.c (nios2_custom_check_insns): Clean up
13241 error message format issues.
13242 (nios2_option_override): Likewise.
13243 (nios2_expand_fpu_builtin): Likewise.
13244 (nios2_init_custom_builtins): Adjust to avoid bogus strncpy
13245 truncation warning.
13246 (nios2_expand_custom_builtin): More error message format fixes.
13247 (nios2_expand_rdwrctl_builtin): Likewise.
13248 (nios2_expand_rdprs_builtin): Likewise.
13249 (nios2_expand_eni_builtin): Likewise.
13250 (nios2_expand_builtin): Likewise.
13251 (nios2_register_custom_code): Likewise.
13252 (nios2_valid_target_attribute_rec): Likewise.
13253 (nios2_add_insn_asm): Fix uninitialized variable warning.
13255 2021-03-17 Jan Hubicka <jh@suse.cz>
13257 * config/i386/x86-tune-costs.h (struct processor_costs): Update costs
13258 of gather to match reality.
13259 * config/i386/x86-tune.def (X86_TUNE_USE_GATHER): Enable for znver3.
13261 2021-03-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13263 * config/aarch64/aarch64-builtins.c (aarch64_expand_rng_builtin): Use EQ
13264 to compare against CC_REG rather than NE.
13266 2021-03-17 H.J. Lu <hjl.tools@gmail.com>
13269 * config/i386/i386.c (ix86_force_load_from_GOT_p): Support
13270 inline assembly statements.
13271 (ix86_print_operand): Update 'P' handling for -fno-plt.
13273 2021-03-17 Tamar Christina <tamar.christina@arm.com>
13276 * config/aarch64/aarch64.c
13277 (aarch64_simd_clone_compute_vecsize_and_simdlen): Remove unused var.
13279 2021-03-16 Segher Boessenkool <segher@kernel.crashing.org>
13282 * config/rs6000/predicates.md (branch_comparison_operator): Allow
13283 ordered and unordered for CCFPmode, if flag_finite_math_only.
13285 2021-03-16 Jakub Jelinek <jakub@redhat.com>
13288 * config/i386/i386-expand.c (ix86_split_lea_for_addr): Emit a MULT
13289 rather than ASHIFT.
13290 * config/i386/i386.md (mult by 1248 into ashift): New splitter.
13292 2021-03-16 Martin Liska <mliska@suse.cz>
13295 * optc-save-gen.awk: Add flag_ipa_ra to exceptions for
13296 cl_optimization_compare function.
13298 2021-03-16 Ilya Leoshkevich <iii@linux.ibm.com>
13300 * config/s390/s390.c (f_constraint_p): Treat "fv" constraints
13303 2021-03-16 Jakub Jelinek <jakub@redhat.com>
13306 * config/i386/i386.h (struct machine_function): Add
13307 has_explicit_vzeroupper bitfield.
13308 * config/i386/i386-expand.c (ix86_expand_builtin): Set
13309 cfun->machine->has_explicit_vzeroupper when expanding
13310 IX86_BUILTIN_VZEROUPPER.
13311 * config/i386/i386-features.c (rest_of_handle_insert_vzeroupper):
13312 Do the mode switching only when TARGET_VZEROUPPER, expensive
13313 optimizations turned on and not optimizing for size.
13314 (pass_insert_vzeroupper::gate): Enable even when
13315 cfun->machine->has_explicit_vzeroupper is set.
13317 2021-03-16 Jakub Jelinek <jakub@redhat.com>
13320 * config/aarch64/aarch64.c
13321 (aarch64_simd_clone_compute_vecsize_and_simdlen): If not a function
13322 definition, walk TYPE_ARG_TYPES list if non-NULL for argument types
13323 instead of DECL_ARGUMENTS. Ignore types for uniform arguments.
13325 2021-03-15 Richard Biener <rguenther@suse.de>
13327 PR tree-optimization/98834
13328 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle missing
13329 subsetting by truncating the access size.
13331 2021-03-15 Jan Hubicka <hubicka@ucw.cz>
13333 * config/i386/i386-options.c (processor_cost_table): Add znver3_cost.
13334 * config/i386/x86-tune-costs.h (znver3_cost): New gobal variable; copy
13337 2021-03-15 Martin Liska <mliska@suse.cz>
13339 * spellcheck.c: Add missing comma in initialization.
13341 2021-03-14 Uroš Bizjak <ubizjak@gmail.com>
13343 * config/i386/sse.md (*vec_extract<mode>): Merge alternative 0 with
13344 alternative 2 and alternative 1 with alternative 3 using
13345 YW register constraint.
13346 (*vec_extract<PEXTR_MODE12:mode>_zext): Merge alternatives
13347 using YW register constraint.
13348 (*vec_extractv16qi_zext): Ditto.
13349 (*vec_extractv4si): Merge alternatives 4 and 5
13350 using Yw register constraint.
13351 (*ssse3_palignr<mode>_perm): Use Yw instead of v for alternative 3.
13353 2021-03-13 Martin Sebor <msebor@redhat.com>
13355 PR tree-optimization/99489
13356 * builtins.c (gimple_call_alloc_size): Fail gracefully when argument
13357 is not a call statement.
13359 2021-03-13 Jakub Jelinek <jakub@redhat.com>
13361 PR tree-optimization/99544
13362 * match.pd (X + (X << C) -> X * (1 + (1 << C))): Don't simplify
13363 if for vector types multiplication can't be done in type's mode.
13365 2021-03-12 Eric Botcazou <ebotcazou@adacore.com>
13368 * config/sparc/constraints.md (w): Rename to...
13369 (W): ... this and ditch previous implementation.
13370 * config/sparc/sparc.md (*movdi_insn_sp64): Replace W with m.
13371 (*movdf_insn_sp64): Likewise.
13372 (*mov<VM64:mode>_insn_sp64): Likewise.
13373 * config/sparc/sync.md (*atomic_compare_and_swap<mode>_1): Replace
13375 (atomic_compare_and_swap_leon3_1): Likewise.
13376 (*atomic_compare_and_swapdi_v8plus): Likewise.
13377 * config/sparc/sparc.c (memory_ok_for_ldd): Remove useless test on
13378 architecture and add missing address validity check during LRA.
13380 2021-03-12 Tobias Burnus <tobias@codesourcery.com>
13383 * gimplify.c (omp_add_variable): Handle NULL_TREE as size
13384 occuring for assumed-size arrays in use_device_{ptr,addr}.
13386 2021-03-12 Jakub Jelinek <jakub@redhat.com>
13389 * config/i386/constraints.md (YW): New internal constraint.
13390 * config/i386/sse.md (v_Yw): Add V4TI, V2TI, V1TI and TI cases.
13391 (*<sse2_avx2>_<insn><mode>3<mask_name>,
13392 *<sse2_avx2>_uavg<mode>3<mask_name>, *abs<mode>2,
13393 *<s>mul<mode>3_highpart<mask_name>): Use <v_Yw> instead of v in
13395 (<sse2_avx2>_psadbw): Use YW instead of v in constraints.
13396 (*avx2_pmaddwd, *sse2_pmaddwd, *<code>v8hi3, *<code>v16qi3,
13397 avx2_pmaddubsw256, ssse3_pmaddubsw128): Merge last two alternatives
13398 into one, use Yw instead of former x,v.
13399 (ashr<mode>3, <insn><mode>3): Use <v_Yw> instead of x in constraints of
13400 the last alternative.
13401 (<sse2_avx2>_packsswb<mask_name>, <sse2_avx2>_packssdw<mask_name>,
13402 <sse2_avx2>_packuswb<mask_name>, <sse4_1_avx2>_packusdw<mask_name>,
13403 *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, <ssse3_avx2>_palignr<mode>,
13404 <ssse3_avx2>_pshufb<mode>3<mask_name>): Merge last two alternatives
13405 into one, use <v_Yw> instead of former x,v.
13406 (avx2_interleave_highv32qi<mask_name>,
13407 vec_interleave_highv16qi<mask_name>): Use Yw instead of v in
13408 constraints. Add && <mask_avx512bw_condition> to condition.
13409 (avx2_interleave_lowv32qi<mask_name>,
13410 vec_interleave_lowv16qi<mask_name>,
13411 avx2_interleave_highv16hi<mask_name>,
13412 vec_interleave_highv8hi<mask_name>,
13413 avx2_interleave_lowv16hi<mask_name>, vec_interleave_lowv8hi<mask_name>,
13414 avx2_pshuflw_1<mask_name>, sse2_pshuflw_1<mask_name>,
13415 avx2_pshufhw_1<mask_name>, sse2_pshufhw_1<mask_name>,
13416 avx2_<code>v16qiv16hi2<mask_name>, sse4_1_<code>v8qiv8hi2<mask_name>,
13417 *sse4_1_<code>v8qiv8hi2<mask_name>_1, <sse2_avx2>_<insn><mode>3): Use
13418 Yw instead of v in constraints.
13419 * config/i386/mmx.md (Yv_Yw): New define_mode_attr.
13420 (*mmx_<insn><mode>3, mmx_ashr<mode>3, mmx_<insn><mode>3): Use <Yv_Yw>
13421 instead of Yv in constraints.
13422 (*mmx_<insn><mode>3, *mmx_mulv4hi3, *mmx_smulv4hi3_highpart,
13423 *mmx_umulv4hi3_highpart, *mmx_pmaddwd, *mmx_<code>v4hi3,
13424 *mmx_<code>v8qi3, mmx_pack<s_trunsuffix>swb, mmx_packssdw,
13425 mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
13426 *mmx_uavgv8qi3, *mmx_uavgv4hi3, mmx_psadbw): Use Yw instead of Yv in
13428 (*mmx_pinsrw, *mmx_pinsrb, *mmx_pextrw, *mmx_pextrw_zext, *mmx_pextrb,
13429 *mmx_pextrb_zext): Use YW instead of Yv in constraints.
13430 (*mmx_eq<mode>3, mmx_gt<mode>3): Use x instead of Yv in constraints.
13431 (mmx_andnot<mode>3, *mmx_<code><mode>3): Split last alternative into
13432 two, one with just x, another isa avx512vl with v.
13434 2021-03-12 Martin Liska <mliska@suse.cz>
13436 * doc/invoke.texi: Add missing param documentation.
13438 2021-03-11 David Malcolm <dmalcolm@redhat.com>
13441 * Makefile.in (ANALYZER_OBJS): Add analyzer/feasible-graph.o and
13442 analyzer/trimmed-graph.o.
13443 * doc/analyzer.texi (Analyzer Paths): Rewrite description of
13444 feasibility checking to reflect new implementation.
13445 * doc/invoke.texi (-fdump-analyzer-feasibility): Document new
13447 * shortest-paths.h (shortest_paths::get_shortest_distance): New.
13449 2021-03-11 David Malcolm <dmalcolm@redhat.com>
13451 * digraph.cc (selftest::test_shortest_paths): Update
13452 shortest_paths init for new param. Add test of
13453 SPS_TO_GIVEN_TARGET.
13454 * shortest-paths.h (enum shortest_path_sense): New.
13455 (shortest_paths::shortest_paths): Add "sense" param.
13456 Update for renamings. Generalize to use "sense" param.
13457 (shortest_paths::get_shortest_path): Rename param.
13458 (shortest_paths::m_sense): New field.
13459 (shortest_paths::m_prev): Rename...
13460 (shortest_paths::m_best_edge): ...to this.
13461 (shortest_paths::get_shortest_path): Update for renamings.
13462 Conditionalize flipping of path on sense of traversal.
13464 2021-03-11 David Malcolm <dmalcolm@redhat.com>
13466 * digraph.cc (selftest::test_shortest_paths): Add test coverage
13467 for paths from B and C.
13468 * shortest-paths.h (shortest_paths::shortest_paths): Handle
13469 unreachable nodes, rather than asserting.
13471 2021-03-11 David Edelsohn <dje.gcc@gmail.com>
13474 * config/rs6000/rs6000.c (rs6000_xcoff_file_start): Don't create
13475 xcoff_tbss_section_name.
13476 * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .lcomm.
13477 * xcoffout.c (xcoff_tbss_section_name): Delete.
13478 * xcoffout.h (xcoff_tbss_section_name): Delete.
13480 2021-03-11 Richard Biener <rguenther@suse.de>
13482 PR tree-optimization/99523
13483 * tree-cfg.c (dump_function_to_file): Dump SSA names
13484 w/o identifier to the decls section as well, not only those
13485 without a VAR_DECL.
13487 2021-03-11 Jakub Jelinek <jakub@redhat.com>
13490 * ipa-icf-gimple.c (func_checker::compare_gimple_call): For internal
13491 function calls with lhs fail if the lhs don't have compatible types.
13493 2021-03-11 Hans-Peter Nilsson <hp@axis.com>
13495 * config/cris/cris.h (HARD_FRAME_POINTER_REGNUM): Define.
13496 Change FRAME_POINTER_REGNUM to correspond to a new faked
13497 register faked_fp, part of GENNONACR_REGS like faked_ap.
13498 (CRIS_FAKED_REGS_CONTENTS): New helper macro.
13499 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS):
13500 (REG_ALLOC_ORDER, REG_CLASS_CONTENTS, REGNO_OK_FOR_BASE_P)
13501 (ELIMINABLE_REGS, REGISTER_NAMES): Adjust accordingly.
13502 * config/cris/cris.md (CRIS_FP_REGNUM): Renumber to new faked
13504 (CRIS_REAL_FP_REGNUM): New constant.
13505 * config/cris/cris.c (cris_reg_saved_in_regsave_area): Check
13506 for HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
13507 (cris_initial_elimination_offset): Handle elimination changes
13508 to HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM
13509 and add one from FRAME_POINTER_REGNUM to
13510 HARD_FRAME_POINTER_REGNUM.
13511 (cris_expand_prologue, cris_expand_epilogue): Emit code for
13512 hard_frame_pointer_rtx instead of frame_pointer_rtx.
13514 2021-03-10 David Edelsohn <dje.gcc@gmail.com>
13517 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Add check for DCmode.
13518 * config/rs6000/rs6000.c (rs6000_special_round_type_align): Same.
13520 2021-03-10 Vladimir N. Makarov <vmakarov@redhat.com>
13523 * lra-constraints.c (process_address_1): Don't check unknown
13524 constraint, use X for empty constraint.
13526 2021-03-10 Alex Coplan <alex.coplan@arm.com>
13528 * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
13529 Fix typo in comment describing "is_ha" argument.
13531 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
13533 * doc/sourcebuild.texi: Document LRA target selector.
13535 2021-03-10 David Malcolm <dmalcolm@redhat.com>
13537 * doc/ux.texi: Add subsection contrasting interactive versus
13538 batch usage of GCC.
13540 2021-03-10 Joel Hutton <joel.hutton@arm.com>
13543 * tree-vect-stmts.c (vectorizable_store): Fix scatter store mask
13545 (vectorizable_load): Fix gather load mask check condition.
13547 2021-03-10 Richard Biener <rguenther@suse.de>
13549 PR tree-optimization/99510
13550 * tree.c (check_aligned_type): Check that the candidate
13551 has TYPE_USER_ALIGN set instead of matching with the
13554 2021-03-10 Eric Botcazou <ebotcazou@adacore.com>
13556 * config/sparc/sparc.c (sparc_regmode_natural_size): Return 4 for
13557 float and vector integer modes only if the mode is not larger.
13559 2021-03-10 Hans-Peter Nilsson <hp@axis.com>
13561 * config/cris/cris.h (DWARF_FRAME_REGISTERS): Define.
13563 2021-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
13565 * ira.c (ira_setup_alts, ira_get_dup_out_num): Process digital
13567 * ira-lives.c (single_reg_class): Ditto.
13569 2021-03-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
13571 * config.gcc (aarch64-*-rtems*): Include general rtems.h after
13572 the architecture-specific rtems.h.
13573 (aarch64-*-rtems*): Likewise.
13574 (arm*-*-rtems*): Likewise.
13575 (epiphany-*-rtems*): Likewise.
13576 (riscv*-*-rtems*): Likewise.
13578 2021-03-09 Jakub Jelinek <jakub@redhat.com>
13580 PR tree-optimization/99305
13581 * tree-ssa-phiopt.c (conditional_replacement): Test integer_pow2p
13582 before integer_all_onesp instead of vice versa.
13584 2021-03-09 Richard Earnshaw <rearnsha@arm.com>
13586 * common/config/arm/arm-common.c (arm_config_default): Change type
13587 of 'i' to unsigned.
13589 2021-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
13592 * lra-constraints.c (process_address_1): Process constraint 'g'
13593 separately and digital constraints containing more one digit.
13595 2021-03-09 Nick Clifton <nickc@redhat.com>
13597 * config/rx/rx.h (DBX_DEBUGGING_INFO): Define.
13598 (DWARF"_DEBUGGING_INFO): Define.
13600 2021-03-09 Eric Botcazou <ebotcazou@adacore.com>
13603 * calls.c (initialize_argument_information): When the argument
13604 is passed by reference, do not make a copy in a thunk only if
13605 the argument is already in memory. Remove redundant test for
13606 the case of callee copy.
13608 2021-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
13611 * lra-constraints.c (process_address_1): Process 0..9 constraints
13612 in process_address_1.
13614 2021-03-09 Andreas Krebbel <krebbel@linux.ibm.com>
13616 * config/s390/s390.c (struct s390_processor processor_table):
13617 Binutils name string must not be empty.
13619 2021-03-09 Claudiu Zissulescu <claziss@synopsys.com>
13621 * config/arc/arc.c (arc_attr_type): Remove function.
13623 2021-03-09 Martin Liska <mliska@suse.cz>
13626 * config/i386/i386-options.c (ix86_option_override_internal):
13627 Set isa_flags for OPTS argument and not for the global
13630 2021-03-09 Aaron Sawdey <acsawdey@linux.ibm.com>
13632 * config/rs6000/predicates.md (ds_form_mem_operand): Check
13635 2021-03-09 Aaron Sawdey <acsawdey@linux.ibm.com>
13638 * config/rs6000/predicates.md (ds_form_mem_operand) New
13640 * config/rs6000/genfusion.pl (gen_ld_cmpi_p10) Use
13641 ds_form_mem_operand in ld/lwa patterns.
13642 * config/rs6000/fusion.md: Regenerate file.
13644 2021-03-08 Martin Sebor <msebor@redhat.com>
13646 PR middle-end/98266
13647 * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): New function.
13648 (array_bounds_checker::check_array_bounds): Call it.
13650 2021-03-08 Martin Sebor <msebor@redhat.com>
13652 PR middle-end/97631
13653 * tree-ssa-strlen.c (maybe_warn_overflow): Test rawmem.
13654 (handle_builtin_stxncpy_strncat): Rename locals. Determine
13655 destination size from allocation calls. Issue a more appropriate
13657 (handle_builtin_memcpy): Pass true as rawmem to maybe_warn_overflow.
13658 (handle_builtin_memset): Same.
13660 2021-03-08 Peter Bergner <bergner@linux.ibm.com>
13663 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_permute): Add an assert
13664 to ensure we do not have an Altivec style address.
13665 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): Disable if passed
13666 an Altivec style address.
13667 (*vsx_le_perm_store_<mode>): Likewise.
13668 (splitters after *vsx_le_perm_store_<mode>): Likewise.
13669 (vsx_load_<mode>): Disable special expander if passed an Altivec
13671 (vsx_store_<mode>): Likewise.
13673 2021-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13676 * config/aarch64/predicates.md (aarch64_simd_shift_imm_vec_qi): Define.
13677 (aarch64_simd_shift_imm_vec_hi): Likewise.
13678 (aarch64_simd_shift_imm_vec_si): Likewise.
13679 (aarch64_simd_shift_imm_vec_di): Likewise.
13680 * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le): Use
13681 predicate from above.
13682 (aarch64_shrn<mode>_insn_be): Likewise.
13683 (aarch64_rshrn<mode>_insn_le): Likewise.
13684 (aarch64_rshrn<mode>_insn_be): Likewise.
13685 (aarch64_shrn2<mode>_insn_le): Likewise.
13686 (aarch64_shrn2<mode>_insn_be): Likewise.
13687 (aarch64_rshrn2<mode>_insn_le): Likewise.
13688 (aarch64_rshrn2<mode>_insn_be): Likewise.
13690 2021-03-08 Vladimir N. Makarov <vmakarov@redhat.com>
13693 * lra-constraints.c (skip_contraint_modifiers): New function.
13694 (process_address_1): Use it before lookup_constraint call.
13696 2021-03-08 Martin Liska <mliska@suse.cz>
13699 * config/i386/i386-options.c (ix86_option_override_internal):
13700 Enable UINTR and HRESET for -march that supports it.
13702 2021-03-08 Ilya Leoshkevich <iii@linux.ibm.com>
13704 * config/s390/s390.c (f_constraint_p): New function.
13705 (s390_md_asm_adjust): Implement TARGET_MD_ASM_ADJUST.
13706 (TARGET_MD_ASM_ADJUST): Likewise.
13708 2021-03-08 Tobias Burnus <tobias@codesourcery.com>
13711 * tree-nested.c (convert_local_reference_stmt): Avoid calling
13712 lookup_field_for_decl for Fortran module (= namespace context).
13714 2021-03-08 Andreas Krebbel <krebbel@linux.ibm.com>
13716 * config/s390/s390.c (s390_expand_vec_compare): Implement <0
13717 comparison with arithmetic right shift.
13718 (s390_expand_vcond): No need for a force_reg anymore.
13719 s390_vec_compare will do it.
13720 * config/s390/vector.md ("vec_cmp<mode><tointvec>"): Accept also
13721 immediate operands.
13723 2021-03-07 Jakub Jelinek <jakub@redhat.com>
13726 * config/i386/constraints.md (Yw): Use SSE_REGS if TARGET_SSE
13727 but TARGET_AVX512BW or TARGET_AVX512VL is not set. Adjust description
13729 * config/i386/sse.md (v_Yw): New define_mode_attr.
13730 (*<insn><mode>3, *mul<mode>3<mask_name>, *avx2_<code><mode>3,
13731 *sse4_1_<code><mode>3<mask_name>): Use <v_Yw> instead of v
13733 * config/i386/mmx.md (mmx_pshufw_1, *vec_dupv4hi): Use Yw instead of
13734 xYw in constraints.
13736 2021-03-06 Julian Brown <julian@codesourcery.com>
13738 * tree-pretty-print.c (dump_generic_node): Emit non-generic
13739 address space info for aggregates.
13741 2021-03-06 Hans-Peter Nilsson <hp@axis.com>
13743 * config/cris/cris.h (MAX_FIXED_MODE_SIZE): Don't define.
13745 2021-03-05 Jakub Jelinek <jakub@redhat.com>
13747 PR middle-end/99322
13748 * tree-cfg.c (bb_to_omp_idx): New variable.
13749 (execute_build_cfg): Release the bb_to_omp_idx vector after
13750 cleanup_tree_cfg returns.
13751 (handle_abnormal_edges): Remove bb_to_omp_idx argument, adjust
13752 for bb_to_omp_idx being a vec<int> instead of pointer to array
13754 (make_edges): Remove bb_to_omp_idx local variable, don't pass
13755 it to handle_abnormal_edges, adjust for bb_to_omp_idx being a
13756 vec<int> instead of pointer to array of ints and don't free/release
13758 (remove_bb): When removing a bb and placing forced label somewhere
13759 else, ensure it is put into the same OpenMP region during cfg
13760 pass if possible or to entry successor as fallback. Unregister
13761 bb from bb_to_omp_idx.
13763 2021-03-05 Vladimir N. Makarov <vmakarov@redhat.com>
13766 * lra-constraints.c (process_address_1): Skip decomposing address
13767 for asm insn operand with unknown constraint.
13769 2021-03-05 Martin Jambor <mjambor@suse.cz>
13772 * cgraph.c (cgraph_edge::set_call_stmt): Do not update all
13773 corresponding speculative edges if we are about to resolve
13774 sepculation. Make edge direct (and so resolve speculations) before
13775 removing it from call_site_hash.
13776 (cgraph_edge::make_direct): Relax the initial assert to allow calling
13777 the function on speculative direct edges.
13779 2021-03-05 Eric Botcazou <ebotcazou@adacore.com>
13781 PR rtl-optimization/99376
13782 * rtlanal.c (nonzero_bits1) <arithmetic operators>: If the number
13783 of low-order zero bits is too large, set the result to 0 directly.
13785 2021-03-04 Jakub Jelinek <jakub@redhat.com>
13787 PR middle-end/93235
13788 * expmed.c (store_bit_field_using_insv): Return false of xop0 is a
13789 SUBREG and a SUBREG to op_mode can't be created.
13791 2021-03-04 Alex Coplan <alex.coplan@arm.com>
13794 * config/aarch64/aarch64-sve-builtins.cc
13795 (function_resolver::require_vector_type): Handle error_mark_node.
13797 2021-03-04 Ilya Leoshkevich <iii@linux.ibm.com>
13799 * cfgexpand.c (expand_asm_loc): Pass new parameter.
13800 (expand_asm_stmt): Likewise.
13801 * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Add new
13803 * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
13804 * config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
13805 * config/cris/cris.c (cris_md_asm_adjust): Likewise.
13806 * config/i386/i386.c (ix86_md_asm_adjust): Likewise.
13807 * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
13808 * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
13809 * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
13810 * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
13811 * config/vax/vax.c (vax_md_asm_adjust): Likewise.
13812 * config/visium/visium.c (visium_md_asm_adjust): Likewise.
13813 * doc/tm.texi (md_asm_adjust): Likewise.
13814 * target.def (md_asm_adjust): Likewise.
13816 2021-03-04 Richard Biener <rguenther@suse.de>
13818 PR middle-end/97855
13819 * tree-pretty-print.c: Poison pp_printf.
13820 (dump_decl_name): Avoid use of pp_printf.
13821 (dump_block_node): Likewise.
13822 (dump_generic_node): Likewise.
13824 2021-03-04 Martin Sebor <msebor@redhat.com>
13826 PR middle-end/96963
13827 PR middle-end/94655
13828 * builtins.c (handle_array_ref): New helper.
13829 (handle_mem_ref): New helper.
13830 (compute_objsize_r): Factor out ARRAY_REF and MEM_REF handling
13831 into new helper functions. Correct a workaround for vectorized
13834 2021-03-03 Pat Haugen <pthaugen@linux.ibm.com>
13836 * config/rs6000/dfp.md (extendddtd2, trunctddd2, *cmp<mode>_internal1,
13837 floatditd2, ftrunc<mode>2, fix<mode>di2, dfp_ddedpd_<mode>,
13838 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>,
13839 *dfp_sgnfcnc_<mode>, dfp_dscli_<mode>, dfp_dscri_<mode>): Update size
13840 attribute for Power10.
13841 * config/rs6000/mma.md (*movoo): Likewise.
13842 * config/rs6000/rs6000.md (define_attr "size"): Add 256.
13843 (define_mode_attr bits): Add DD/TD modes.
13844 * config/rs6000/sync.md (load_quadpti, store_quadpti, load_lockedpti,
13845 store_conditionalpti): Update size attribute for Power10.
13847 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13850 * config/sparc/t-sparc (tree-ssanames.o-warn): Don't error for
13851 -Wuninitialized, -Wmaybe-uninitialized.
13852 (wide-int.o-warn): Likewise.
13854 2021-03-03 Richard Earnshaw <rearnsha@arm.com>
13856 * common/config/arm/arm-common.c: Include configargs.h.
13857 (arm_config_default): New function.
13858 (arm_target_mode): Renamed from arm_target_thumb_only. Handle
13859 processors that do not support Thumb. Take into account the
13860 --with-mode configuration setting for selecting the default.
13861 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Remove entry for 'mode'.
13862 (TARGET_MODE_SPEC_FUNCTIONS): Update for function name change.
13864 2021-03-03 Martin Liska <mliska@suse.cz>
13866 PR gcov-profile/97461
13867 * gcov-io.h (GCOV_PREALLOCATED_KVP): Remove.
13869 2021-03-03 Eric Botcazou <ebotcazou@adacore.com>
13872 * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
13873 point back the hard frame pointer to its default location when the
13874 frame is larger than SEH_MAX_FRAME_SIZE.
13876 2021-03-03 Jakub Jelinek <jakub@redhat.com>
13879 * config/i386/predicates.md (logic_operator): New define_predicate.
13880 * config/i386/i386.md (mov + mem using comm arith peephole2):
13881 Punt if operands[1] is EXT_REX_SSE_REGNO_P, AVX512BW is not enabled
13882 and the inner mode is [QH]Imode.
13884 2021-03-03 Jakub Jelinek <jakub@redhat.com>
13887 * dwarf2out.c (dw_loc_list_struct): Add end_entry member.
13888 (new_loc_list): Clear end_entry.
13889 (output_loc_list): Only use DW_LLE_startx_length for -gsplit-dwarf
13890 if HAVE_AS_LEB128, otherwise use DW_LLE_startx_endx. Fix comment
13892 (index_location_lists): For dwarf_version >= 5 without HAVE_AS_LEB128,
13893 initialize also end_entry.
13895 2021-03-03 Jakub Jelinek <jakub@redhat.com>
13898 * cfgrtl.c (fixup_partitions): When changing some bbs from hot to cold
13899 partitions, if in non-layout mode after reorder_blocks also move
13900 affected blocks to ensure a single partition transition.
13902 2021-03-03 Jason Merrill <jason@redhat.com>
13905 * cgraphunit.c (process_function_and_variable_attributes): Don't
13906 warn about flatten on an alias if the target also has it.
13907 * cgraph.h (symtab_node::get_alias_target_tree): New.
13909 2021-03-02 David Edelsohn <dje.gcc@gmail.com>
13911 * config/rs6000/rs6000.md (tls_get_tpointer_internal): Prepend
13912 period to symbol name.
13913 (tls_get_addr_internal<mode>): Same.
13915 2021-03-02 David Malcolm <dmalcolm@redhat.com>
13918 * diagnostic-show-locus.c
13919 (selftest::test_one_liner_many_fixits_2): Fix accidental usage of
13922 2021-03-02 Martin Sebor <msebor@redhat.com>
13924 PR middle-end/99276
13925 * builtins.c (warn_for_access): Remove stray warning text.
13927 2021-03-02 Martin Sebor <msebor@redhat.com>
13929 PR middle-end/99295
13930 * doc/extend.texi (attribute malloc): Reword and clarify nonaliasing
13933 2021-03-02 Jakub Jelinek <jakub@redhat.com>
13936 * dwarf2out.c (output_macinfo_op): Use DW_MACRO_*_str* even with
13937 -gdwarf-5 -gstrict-dwarf. For -gsplit-dwarf -gdwarf-5 use
13938 DW_MACRO_*_strx instead of DW_MACRO_*_strp. Handle
13939 DW_MACRO_define_strx and DW_MACRO_undef_strx.
13940 (save_macinfo_strings): Use DW_MACRO_*_str* even with
13941 -gdwarf-5 -gstrict-dwarf. Handle DW_MACRO_define_strx and
13942 DW_MACRO_undef_strx.
13944 2021-03-02 Andreas Krebbel <krebbel@linux.ibm.com>
13946 * config/s390/s390-builtin-types.def (BT_FN_V4SF_V8HI_UINT): New
13948 (BT_FN_V8HI_V8HI_UINT): Likewise.
13949 (BT_FN_V8HI_V4SF_V4SF_UINT): Likewise.
13950 * config/s390/s390-builtins.def (B_NNPA): New macro definition.
13951 (s390_vclfnhs, s390_vclfnls, s390_vcrnfs, s390_vcfn, s390_vcnf):
13952 New builtin definitions.
13953 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Bump
13954 vector extension version.
13955 * config/s390/s390.c (s390_expand_builtin): Check if builtins are
13956 available with current -march level.
13957 * config/s390/s390.md (UNSPEC_NNPA_VCLFNHS_V8HI)
13958 (UNSPEC_NNPA_VCLFNLS_V8HI, UNSPEC_NNPA_VCRNFS_V8HI)
13959 (UNSPEC_NNPA_VCFN_V8HI, UNSPEC_NNPA_VCNF_V8HI): New constants.
13960 * config/s390/vecintrin.h (vec_extend_to_fp32_hi): New macro.
13961 (vec_extend_to_fp32_lo): Likewise.
13962 (vec_round_from_fp32): Likewise.
13963 (vec_convert_to_fp16): Likewise.
13964 (vec_convert_from_fp16): Likewise.
13965 * config/s390/vx-builtins.md (vclfnhs_v8hi): New insn pattern.
13966 (vclfnls_v8hi): Likewise.
13967 (vcrnfs_v8hi): Likewise.
13968 (vcfn_v8hi): Likewise.
13969 (vcnf_v8hi): Likewise.
13971 2021-03-02 Andreas Krebbel <krebbel@linux.ibm.com>
13973 * common/config/s390/s390-common.c (processor_flags_table): New entry.
13974 * config.gcc: Enable arch14 for --with-arch and --with-tune.
13975 * config/s390/driver-native.c (s390_host_detect_local_cpu): Pick
13976 arch14 for unknown CPU models.
13977 * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH14.
13978 * config/s390/s390.c (s390_issue_rate): Add case for PROCESSOR_ARCH14.
13979 (s390_get_sched_attrmask): Likewise.
13980 (s390_get_unit_mask): Likewise.
13981 * config/s390/s390.h (enum processor_flags): Add PF_NNPA and PF_ARCH14.
13982 (TARGET_CPU_ARCH14, TARGET_CPU_ARCH14_P, TARGET_CPU_NNPA)
13983 (TARGET_CPU_NNPA_P, TARGET_ARCH14, TARGET_ARCH14_P, TARGET_NNPA)
13984 (TARGET_NNPA_P): New macro definitions.
13985 * config/s390/s390.md ("cpu_facility", "enabled"): Add arch14 and nnpa.
13986 * config/s390/s390.opt: Add PROCESSOR_ARCH14.
13988 2021-03-02 Jakub Jelinek <jakub@redhat.com>
13990 PR middle-end/95757
13991 * tree-vrp.c (register_edge_assert_for): Remove superfluous ()s around
13992 condition. Call register_edge_assert_for_1 for == 0, != 0, == 1 and
13993 != 1 comparisons if name is lhs of a comparison.
13995 2021-03-01 Iain Sandoe <iain@sandoe.co.uk>
13999 * config/darwin-protos.h (darwin_should_restore_cfa_state): New.
14000 * config/darwin.c (darwin_should_restore_cfa_state): New.
14001 * config/darwin.h (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New.
14002 * doc/tm.texi: Regenerated.
14003 * doc/tm.texi.in: Document TARGET_ASM_SHOULD_RESTORE_CFA_STATE.
14004 * dwarf2cfi.c (connect_traces): If the target requests, restore
14005 the CFA expression after a DW_CFA_restore.
14006 * target.def (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New hook.
14008 2021-03-01 Martin Liska <mliska@suse.cz>
14011 * optc-save-gen.awk: Add 4 more exceptions.
14013 2021-03-01 Nathan Sidwell <nathan@acm.org>
14016 * tree.h (TYPE_ALIGN_RAW): New accessor.
14017 (TYPE_ALIGN): Use it.
14019 2021-03-01 Jan Hubicka <jh@suse.cz>
14022 * ipa-fnsummary.c (compute_fn_summary): Fix sanity check.
14024 2021-03-01 Eric Botcazou <ebotcazou@adacore.com>
14027 * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
14028 point the hard frame pointer to the SSE register save area instead
14029 of the general register save area. Perform only minimal adjustment
14030 for small frames if it is initially not correctly aligned.
14031 (ix86_expand_prologue): Remove early saves for a SEH target.
14032 * config/i386/winnt.c (struct seh_frame_state): Document constraint.
14034 2021-02-28 Jakub Jelinek <jakub@redhat.com>
14037 * ipa.c (symbol_table::remove_unreachable_nodes): Fix a comment
14038 typo - referneced -> referenced.
14039 * tree.c (component_ref_size): Fix comment typo -
14040 refernce -> reference.
14041 * tree-ssa-alias.c (access_path_may_continue_p): Fix comment typo -
14042 traling -> trailing.
14043 (aliasing_component_refs_p): Fix comment typos -
14044 refernce -> reference and refernece -> reference and
14045 traling -> trailing.
14046 (nonoverlapping_refs_since_match_p): Fix comment typo -
14047 referneces -> references.
14048 * doc/invoke.texi (--param modref-max-bases): Fix a typo -
14049 referneces -> references.
14051 2021-02-27 Iain Sandoe <iain@sandoe.co.uk>
14053 * config/host-darwin.c (darwin_gt_pch_use_address): Modify
14054 diagnostic message to avoid use of a contraction and format
14057 2021-02-27 Jakub Jelinek <jakub@redhat.com>
14060 * gcse.c (gcse_or_cprop_is_too_expensive): Use %wu instead of
14061 HOST_WIDE_INT_PRINT_UNSIGNED in warning format string.
14062 * ipa-devirt.c (ipa_odr_read_section): Use %wd instead of
14063 HOST_WIDE_INT_PRINT_DEC in inform format string. Fix comment
14066 2021-02-26 Richard Biener <rguenther@suse.de>
14068 PR middle-end/99281
14069 * expr.c (store_field): For calls with return-slot optimization
14070 and addressable return type expand the store directly.
14072 2021-02-26 Richard Biener <rguenther@suse.de>
14075 * builtins.c (warn_string_no_nul): Fix diagnostic formatting.
14077 2021-02-26 Peter Bergner <bergner@linux.ibm.com>
14080 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Replace assert
14083 2021-02-26 Aaron Sawdey <acsawdey@linux.ibm.com>
14085 * config.gcc: Add rs6000-pcrel-opt.o.
14086 * config/rs6000/rs6000-pcrel-opt.c: New file.
14087 * config/rs6000/pcrel-opt.md: New file.
14088 * config/rs6000/predicates.md: Add d_form_memory predicate.
14089 * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_PCREL_OPT.
14090 * config/rs6000/rs6000-passes.def: Add pass_pcrel_opt.
14091 * config/rs6000/rs6000-protos.h: Add reg_to_non_prefixed(),
14092 pcrel_opt_valid_mem_p(), output_pcrel_opt_reloc(),
14093 and make_pass_pcrel_opt().
14094 * config/rs6000/rs6000.c (reg_to_non_prefixed): Make global.
14095 (rs6000_option_override_internal): Add pcrel-opt.
14096 (rs6000_delegitimize_address): Support pcrel-opt.
14097 (rs6000_opt_masks): Add pcrel-opt.
14098 (pcrel_opt_valid_mem_p): New function.
14099 (reg_to_non_prefixed): Make global.
14100 (rs6000_asm_output_opcode): Reset prepend_p_to_next_insn.
14101 (output_pcrel_opt_reloc): New function.
14102 * config/rs6000/rs6000.md (loads_extern_addr): New attr.
14103 (pcrel_extern_addr): Set loads_extern_addr.
14104 Add include for pcrel-opt.md.
14105 * config/rs6000/rs6000.opt: Add -mpcrel-opt.
14106 * config/rs6000/t-rs6000: Add rules for pcrel-opt.c and
14109 2021-02-26 YunQiang Su <yunqiang.su@cipunited.com>
14112 * config/mips/mips.c (mips_expand_ext_as_unaligned_load):
14113 If TARGET_64BIT and dest is SUBREG, we check the width, if it
14114 equal to SImode, we use SImode operation, just like what we are
14117 2021-02-26 Marek Polacek <polacek@redhat.com>
14119 * builtins.c (warn_for_access): Fix typos.
14121 2021-02-25 Iain Sandoe <iain@sandoe.co.uk>
14123 * config/aarch64/aarch64.md (<optab>_rol<mode>3): Add a '#'
14124 mark in front of the immediate quantity.
14125 (<optab>_rolsi3_uxtw): Likewise.
14127 2021-02-25 Richard Earnshaw <rearnsha@arm.com>
14130 * config/arm/thumb2.md (nonsecure_call_reg_thumb2_fpcxt): New pattern.
14131 (nonsecure_call_value_reg_thumb2_fpcxt): Likewise.
14132 (nonsecure_call_reg_thumb2): Restrict to using r4 for the callee
14133 address and disable when the FPCXT is not available.
14134 (nonsecure_call_value_reg_thumb2): Likewise.
14136 2021-02-25 Nathan Sidwell <nathan@acm.org>
14139 * doc/invoke.texi (flang-info-module-cmi): Renamed option.
14141 2021-02-25 Tamar Christina <tamar.christina@arm.com>
14143 * tree-vect-slp.c (optimize_load_redistribution_1): Abort on NULL nodes.
14145 2021-02-25 Richard Biener <rguenther@suse.de>
14147 PR tree-optimization/99253
14148 * tree-vect-loop.c (check_reduction_path): First compute
14149 code, then verify out-of-loop uses.
14151 2021-02-25 Jakub Jelinek <jakub@redhat.com>
14154 * match.pd ((T)(A) + CST -> (T)(A + CST)): Add :s to convert.
14156 2021-02-25 Jakub Jelinek <jakub@redhat.com>
14158 PR tree-optimization/80635
14159 * tree-vrp.c (vrp_simplify_cond_using_ranges): Also handle
14160 VIEW_CONVERT_EXPR if modes are the same, innerop is integral and
14161 has mode precision.
14163 2021-02-25 Richard Biener <rguenther@suse.de>
14165 * tree-vect-slp.c (optimize_load_redistribution_1): Delay
14166 load_map population.
14167 (vect_match_slp_patterns_2): Revert part of last change.
14168 (vect_analyze_slp): Do not interleave optimize_load_redistribution
14169 with pattern detection but do it afterwards. Dump the
14170 whole SLP graph after pattern recognition and load
14171 redistribution optimization finished.
14173 2021-02-24 Jakub Jelinek <jakub@redhat.com>
14176 * omp-low.c (struct omp_context): Add teams_nested_p and
14177 nonteams_nested_p members.
14178 (scan_omp_target): Diagnose teams nested inside of target with other
14179 directives strictly nested inside of the same target.
14180 (check_omp_nesting_restrictions): Set ctx->teams_nested_p or
14181 ctx->nonteams_nested_p as needed.
14183 2021-02-24 Vladimir N. Makarov <vmakarov@redhat.com>
14185 PR inline-asm/99123
14186 * lra-constraints.c (uses_hard_regs_p): Don't use decompose_mem_address.
14188 2021-02-24 Hans-Peter Nilsson <hp@axis.com>
14190 * config/cris/cris.c (cris_expand_prologue): Set
14191 current_function_static_stack_size, if flag_stack_usage_info.
14193 2021-02-24 Pat Haugen <pthaugen@linux.ibm.com>
14195 * config/rs6000/rs6000.c (next_insn_prefixed_p): Rename.
14196 (rs6000_final_prescan_insn): Adjust.
14197 (rs6000_asm_output_opcode): Likewise.
14199 2021-02-24 Martin Sebor <msebor@redhat.com>
14201 PR middle-end/97172
14202 * attribs.c (attr_access::free_lang_data): Clear attribute arg spec
14203 from function arguments.
14205 2021-02-24 Tamar Christina <tamar.christina@arm.com>
14207 PR tree-optimization/99220
14208 * tree-vect-slp.c (optimize_load_redistribution_1): Remove
14209 node from cache when it's about to be deleted.
14211 2021-02-24 Jakub Jelinek <jakub@redhat.com>
14213 PR tree-optimization/99225
14214 * fold-const.c (fold_binary_loc) <case NE_EXPR>: In (x & (1 << y)) != 0
14215 to ((x >> y) & 1) != 0 simplifications use build_one_cst instead of
14216 build_int_cst (..., 1). Formatting fixes.
14218 2021-02-24 Tamar Christina <tamar.christina@arm.com>
14220 PR tree-optimization/99149
14221 * tree-vect-slp-patterns.c (vect_detect_pair_op): Don't recreate the
14223 (vect_slp_reset_pattern): Remove.
14224 (complex_fma_pattern::matches): Remove call to vect_slp_reset_pattern.
14225 (complex_mul_pattern::build, complex_fma_pattern::build,
14226 complex_fms_pattern::build): Fix ref counts.
14227 * tree-vect-slp.c (vect_free_slp_tree): Undo SLP only pattern relevancy
14228 when node is being deleted.
14229 (vect_match_slp_patterns_2): Correct result of cache hit on patterns.
14230 (vect_schedule_slp): Invalidate SLP_TREE_REPRESENTATIVE of removed
14232 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize value.
14234 2021-02-24 Matthias Klose <doko@ubuntu.com>
14237 2020-12-07 Matthias Klose <doko@ubuntu.com>
14239 * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING
14240 and ENABLE_RTL_FLAG_CHECKING.
14242 2021-02-24 Richard Biener <rguenther@suse.de>
14245 * builtins.c (fold_builtin_next_arg): Avoid NULL arg.
14247 2021-02-23 Peter Bergner <bergner@linux.ibm.com>
14249 * config/rs6000/mma.md (mma_assemble_pair): Rename from this...
14250 (vsx_assemble_pair): ...to this.
14251 (*mma_assemble_pair): Rename from this...
14252 (*vsx_assemble_pair): ...to this.
14253 (mma_disassemble_pair): Rename from this...
14254 (vsx_disassemble_pair): ...to this.
14255 (*mma_disassemble_pair): Rename from this...
14256 (*vsx_disassemble_pair): ...to this.
14257 * config/rs6000/rs6000-builtin.def (BU_MMA_V2, BU_MMA_V3,
14258 BU_COMPAT): New macros.
14259 (mma_assemble_pair): Rename from this...
14260 (vsx_assemble_pair): ...to this.
14261 (mma_disassemble_pair): Rename from this...
14262 (vsx_disassemble_pair): ...to this.
14263 (mma_assemble_pair): New compatibility built-in.
14264 (mma_disassemble_pair): Likewise.
14265 * config/rs6000/rs6000-call.c (struct builtin_compatibility): New.
14266 (RS6000_BUILTIN_COMPAT): Define.
14267 (bdesc_compat): New.
14268 (mma_expand_builtin): Use VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
14269 (rs6000_gimple_fold_mma_builtin): Use MMA_BUILTIN_DISASSEMBLE_PAIR
14270 and VSX_BUILTIN_ASSEMBLE_PAIR.
14271 (rs6000_init_builtins): Register compatibility built-ins.
14272 (mma_init_builtins): Use VSX_BUILTIN_ASSEMBLE_PAIR,
14273 VSX_BUILTIN_ASSEMBLE_PAIR_INTERNAL, VSX_BUILTIN_DISASSEMBLE_PAIR and
14274 VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
14275 * doc/extend.texi (__builtin_mma_assemble_pair): Rename from this...
14276 (__builtin_vsx_assemble_pair): ...to this.
14277 (__builtin_mma_disassemble_pair): Rename from this...
14278 (__builtin_vsx_disassemble_pair): ...to this.
14280 2021-02-23 Martin Liska <mliska@suse.cz>
14283 * ipa-icf.c (sem_variable::merge): Do not merge 2 variables
14284 with different alignment. That leads to an invalid red zone
14285 size allocated in runtime.
14287 2021-02-23 Jakub Jelinek <jakub@redhat.com>
14289 PR tree-optimization/99204
14290 * fold-const.c (fold_read_from_constant_string): Check that
14291 tree_fits_uhwi_p (index) rather than just that index is INTEGER_CST.
14293 2021-02-23 Segher Boessenkool <segher@kernel.crashing.org>
14294 Kewen Lin <linkw@gcc.gnu.org>
14296 * config/rs6000/rs6000.md (*rotl<mode>3_insert_3): Renamed to...
14297 (rotl<mode>3_insert_3): ...this.
14298 (plus_ior_xor): New code_iterator.
14299 (define_split for GPR rl*imi): New splitter.
14300 * config/rs6000/vsx.md (vsx_init_v4si): Use gen_rotldi3_insert_3
14301 for integer merging.
14303 2021-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14305 * config/aarch64/aarch64-tuning-flags.def (cse_sve_vl_constants):
14307 * config/aarch64/aarch64.md (add<mode>3): Force CONST_POLY_INT immediates
14308 into a register when the above is enabled.
14309 * config/aarch64/aarch64.c (neoversev1_tunings):
14310 AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
14311 (aarch64_rtx_costs): Use AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
14313 2021-02-22 Hans-Peter Nilsson <hp@axis.com>
14315 * config/cris/cris.c (cris_print_operand) <'T'>: Change
14316 valid operand from is now an addi mult-value to shift-value.
14317 * config/cris/cris.md (*addi): Change expression of scaled
14318 operand from mult to ashift.
14319 * config/cris/cris.md (*addi_reload): New insn_and_split.
14321 2021-02-22 John David Anglin <danglin@gcc.gnu.org>
14324 * config/pa/pa.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define as
14325 hook_bool_const_tree_hwi_hwi_const_tree_true.
14326 (pa_asm_output_mi_thunk): Add support for nonzero vcall_offset.
14328 2021-02-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
14330 PR rtl-optimization/98791
14331 * ira-conflicts.c (process_regs_for_copy): Don't create allocno copies
14332 for unordered modes.
14334 2021-02-22 Martin Liska <mliska@suse.cz>
14336 * tree-inline.c (inline_forbidden_p): Set
14337 inline_forbidden_reason.
14339 2021-02-22 Richard Biener <rguenther@suse.de>
14341 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Dump
14344 2021-02-22 Richard Biener <rguenther@suse.de>
14346 PR tree-optimization/99165
14347 * gimple-ssa-store-merging.c (pass_store_merging::process_store):
14348 Accumulate changed to ret.
14350 2021-02-21 Uros Bizjak <ubizjak@gmail.com>
14353 2020-12-09 Uroš Bizjak <ubizjak@gmail.com>
14355 * config/i386/i386.h (REG_ALLOC_ORDER): Remove
14357 2021-02-20 Ilya Leoshkevich <iii@linux.ibm.com>
14360 * config/s390/vector.md (trunctf<DFP_ALL:mode>2_vr): New
14362 (trunctf<DFP_ALL:mode>2): Likewise.
14363 (trunctdtf2_vr): Likewise.
14364 (trunctdtf2): Likewise.
14365 (extend<DFP_ALL:mode>tf2_vr): Likewise.
14366 (extend<DFP_ALL:mode>tf2): Likewise.
14367 (extendtftd2_vr): Likewise.
14368 (extendtftd2): Likewise.
14370 2021-02-20 Ilya Leoshkevich <iii@linux.ibm.com>
14372 * config/s390/vector.md (*fprx2_to_tf): Rename to fprx2_to_tf,
14373 add memory alternative.
14374 (tf_to_fprx2): New pattern.
14376 2021-02-19 Martin Sebor <msebor@redhat.com>
14379 * attribs.c (init_attr_rdwr_indices): Guard vblist use.
14380 (attr_access::free_lang_data): Remove a spurious test.
14382 2021-02-19 Nathan Sidwell <nathan@acm.org>
14384 * doc/invoke.texi (flang-info-module-read): Document.
14386 2021-02-19 Martin Liska <mliska@suse.cz>
14388 PR translation/99167
14389 * params.opt: Fix typo.
14391 2021-02-19 Richard Biener <rguenther@suse.de>
14393 PR middle-end/99122
14394 * tree-inline.c (inline_forbidden_p): Do not inline functions
14395 with VLA arguments or return value.
14397 2021-02-19 Jakub Jelinek <jakub@redhat.com>
14400 * config/arm/arm.md (*stack_protect_combined_set_insn,
14401 *stack_protect_combined_test_insn): If force_const_mem result
14402 is not valid general operand, force its address into the destination
14405 2021-02-19 Jakub Jelinek <jakub@redhat.com>
14408 * tree-cfg.c (gimple_merge_blocks): If bb a starts with eh landing
14409 pad or non-local label, put FORCED_LABELs from bb b after that label
14410 rather than before it.
14412 2021-02-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
14415 * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3): Use
14416 expand_vector_broadcast' to emit the vec_duplicate operand.
14418 2021-02-18 Vladimir N. Makarov <vmakarov@redhat.com>
14420 PR rtl-optimization/96264
14421 * lra-remat.c (reg_overlap_for_remat_p): Check also output insn
14424 2021-02-18 H.J. Lu <hjl.tools@gmail.com>
14427 * varasm.c (get_section): Replace SUPPORTS_SHF_GNU_RETAIN with
14428 looking up the retain attribute.
14429 (resolve_unique_section): Likewise.
14430 (get_variable_section): Likewise.
14431 (switch_to_section): Likewise. Warn when a symbol without the
14432 retain attribute and a symbol with the retain attribute are
14433 placed in the section with the same name, instead of the used
14435 * doc/extend.texi: Document the "retain" attribute.
14437 2021-02-18 Nathan Sidwell <nathan@acm.org>
14440 * doc/invoke.texi (flang-info-include-translate): Document header
14443 2021-02-18 Richard Biener <rguenther@suse.de>
14445 PR middle-end/99122
14446 * ipa-fnsummary.c (analyze_function_body): Set
14447 CIF_FUNCTION_NOT_INLINABLE for VLA parameter calls.
14448 * tree-inline.c (insert_init_debug_bind): Pass NULL for
14449 error_mark_node values.
14450 (force_value_to_type): Do not build V_C_Es for WITH_SIZE_EXPR
14452 (setup_one_parameter): Delay force_value_to_type until when
14455 2021-02-18 Hans-Peter Nilsson <hp@axis.com>
14457 PR tree-optimization/99142
14458 * match.pd (clz cmp 0): Gate replacement on single_use of clz result.
14460 2021-02-18 Jakub Jelinek <jakub@redhat.com>
14462 * wide-int-bitmask.h (wide_int_bitmask::wide_int_bitmask (),
14463 wide_int_bitmask::wide_int_bitmask (uint64_t),
14464 wide_int_bitmask::wide_int_bitmask (uint64_t, uint64_t),
14465 wide_int_bitmask::operator ~ () const,
14466 wide_int_bitmask::operator | (wide_int_bitmask) const,
14467 wide_int_bitmask::operator & (wide_int_bitmask) const): Use constexpr
14469 * config/i386/i386.h (PTA_3DNOW, PTA_3DNOW_A, PTA_64BIT, PTA_ABM,
14470 PTA_AES, PTA_AVX, PTA_BMI, PTA_CX16, PTA_F16C, PTA_FMA, PTA_FMA4,
14471 PTA_FSGSBASE, PTA_LWP, PTA_LZCNT, PTA_MMX, PTA_MOVBE, PTA_NO_SAHF,
14472 PTA_PCLMUL, PTA_POPCNT, PTA_PREFETCH_SSE, PTA_RDRND, PTA_SSE, PTA_SSE2,
14473 PTA_SSE3, PTA_SSE4_1, PTA_SSE4_2, PTA_SSE4A, PTA_SSSE3, PTA_TBM,
14474 PTA_XOP, PTA_AVX2, PTA_BMI2, PTA_RTM, PTA_HLE, PTA_PRFCHW, PTA_RDSEED,
14475 PTA_ADX, PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT, PTA_AVX512F, PTA_AVX512ER,
14476 PTA_AVX512PF, PTA_AVX512CD, PTA_NO_TUNE, PTA_SHA, PTA_PREFETCHWT1,
14477 PTA_CLFLUSHOPT, PTA_XSAVEC, PTA_XSAVES, PTA_AVX512DQ, PTA_AVX512BW,
14478 PTA_AVX512VL, PTA_AVX512IFMA, PTA_AVX512VBMI, PTA_CLWB, PTA_MWAITX,
14479 PTA_CLZERO, PTA_NO_80387, PTA_PKU, PTA_AVX5124VNNIW, PTA_AVX5124FMAPS,
14480 PTA_AVX512VPOPCNTDQ, PTA_SGX, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES,
14481 PTA_AVX512VBMI2, PTA_VPCLMULQDQ, PTA_AVX512BITALG, PTA_RDPID,
14482 PTA_PCONFIG, PTA_WBNOINVD, PTA_AVX512VP2INTERSECT, PTA_PTWRITE,
14483 PTA_AVX512BF16, PTA_WAITPKG, PTA_MOVDIRI, PTA_MOVDIR64B, PTA_ENQCMD,
14484 PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK, PTA_AMX_TILE, PTA_AMX_INT8,
14485 PTA_AMX_BF16, PTA_UINTR, PTA_HRESET, PTA_KL, PTA_WIDEKL, PTA_AVXVNNI,
14486 PTA_X86_64_BASELINE, PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4,
14487 PTA_CORE2, PTA_NEHALEM, PTA_WESTMERE, PTA_SANDYBRIDGE, PTA_IVYBRIDGE,
14488 PTA_HASWELL, PTA_BROADWELL, PTA_SKYLAKE, PTA_SKYLAKE_AVX512,
14489 PTA_CASCADELAKE, PTA_COOPERLAKE, PTA_CANNONLAKE, PTA_ICELAKE_CLIENT,
14490 PTA_ICELAKE_SERVER, PTA_TIGERLAKE, PTA_SAPPHIRERAPIDS, PTA_ALDERLAKE,
14491 PTA_KNL, PTA_BONNELL, PTA_SILVERMONT, PTA_GOLDMONT, PTA_GOLDMONT_PLUS,
14492 PTA_TREMONT, PTA_KNM): Use constexpr instead of const.
14494 2021-02-18 Jakub Jelinek <jakub@redhat.com>
14496 PR middle-end/99109
14497 * gimple-array-bounds.cc (build_zero_elt_array_type): Rename to ...
14498 (build_printable_array_type): ... this. Add nelts argument. For
14499 overaligned eltype, use TYPE_MAIN_VARIANT (eltype) instead. If
14500 nelts, call build_array_type_nelts.
14501 (array_bounds_checker::check_mem_ref): Use build_printable_array_type
14502 instead of build_zero_elt_array_type and build_array_type_nelts.
14504 2021-02-18 Jakub Jelinek <jakub@redhat.com>
14507 * config/i386/i386.c (distance_non_agu_define): Don't call
14508 extract_insn_cached here.
14509 (ix86_lea_outperforms): Save and restore recog_data around call
14510 to distance_non_agu_define and distance_agu_use.
14511 (ix86_ok_to_clobber_flags): Remove.
14512 (ix86_avoid_lea_for_add): Don't call ix86_ok_to_clobber_flags.
14513 (ix86_avoid_lea_for_addr): Likewise. Adjust function comment.
14514 * config/i386/i386.md (*lea<mode>): Change from define_insn_and_split
14515 into define_insn. Move the splitting to define_peephole2 and
14516 check there using peep2_regno_dead_p if FLAGS_REG is dead.
14518 2021-02-17 Julian Brown <julian@codesourcery.com>
14520 * gimplify.c (gimplify_scan_omp_clauses): Handle ATTACH_DETACH
14523 2021-02-17 Xi Ruoyao <xry111@mengyan1223.wang>
14526 * config/mips/mips.c (mips_symbol_insns): Do not use
14527 MSA_SUPPORTED_MODE_P if mode is MAX_MACHINE_MODE.
14529 2021-02-16 Vladimir N. Makarov <vmakarov@redhat.com>
14531 PR inline-asm/98096
14532 * stmt.c (resolve_operand_name_1): Take inout operands into account
14533 for access to labels by names.
14534 * doc/extend.texi: Describe counting operands for accessing labels.
14536 2021-02-16 Richard Biener <rguenther@suse.de>
14538 PR tree-optimization/38474
14539 * tree-ssa-structalias.c (variable_info::address_taken): New.
14540 (new_var_info): Initialize address_taken.
14541 (process_constraint): Set address_taken.
14542 (solve_constraints): Use the new address_taken flag rather
14543 than is_reg_var for sorting variables.
14544 (dump_constraint): Dump the variable number if the name
14547 2021-02-16 Jakub Jelinek <jakub@redhat.com>
14550 * tree-vect-stmts.c (vectorizable_simd_clone_call): For num_calls != 1
14551 multiply by 4096 and for inbranch by 8192.
14552 * config/i386/i386.c (ix86_simd_clone_usable): For TARGET_AVX512F,
14553 return 3, 2 or 1 for mangle letters 'b', 'c' or 'd'.
14555 2021-02-15 Maya Rashish <coypu@sdf.org>
14557 * config/aarch64/aarch64.c (aarch64_init_builtins):
14558 Call SUBTARGET_INIT_BUILTINS.
14560 2021-02-15 Peter Bergner <bergner@linux.ibm.com>
14562 PR rtl-optimization/98872
14563 * init-regs.c (initialize_uninitialized_regs): Skip initialization
14564 if CONST0_RTX is NULL.
14566 2021-02-15 Richard Sandiford <richard.sandiford@arm.com>
14568 PR rtl-optimization/98863
14569 * rtl-ssa/functions.h (function_info::bb_live_out_info): Delete.
14570 (function_info::build_info): Turn into a declaration, moving the
14571 definition to internals.h.
14572 (function_info::bb_walker): Declare.
14573 (function_info::create_reg_use): Likewise.
14574 (function_info::calculate_potential_phi_regs): Take a build_info
14576 (function_info::place_phis, function_info::create_ebbs): Declare.
14577 (function_info::calculate_ebb_live_in_for_debug): Likewise.
14578 (function_info::populate_backedge_phis): Delete.
14579 (function_info::start_block, function_info::end_block): Declare.
14580 (function_info::populate_phi_inputs): Delete.
14581 (function_info::m_potential_phi_regs): Move information to build_info.
14582 * rtl-ssa/internals.h: New file.
14583 (function_info::bb_phi_info): New class.
14584 (function_info::build_info): Moved from functions.h.
14585 Add a constructor and destructor.
14586 (function_info::build_info::ebb_use): Delete.
14587 (function_info::build_info::ebb_def): Likewise.
14588 (function_info::build_info::bb_live_out): Likewise.
14589 (function_info::build_info::tmp_ebb_live_in_for_debug): New variable.
14590 (function_info::build_info::potential_phi_regs): Likewise.
14591 (function_info::build_info::potential_phi_regs_for_debug): Likewise.
14592 (function_info::build_info::ebb_def_regs): Likewise.
14593 (function_info::build_info::bb_phis): Likewise.
14594 (function_info::build_info::bb_mem_live_out): Likewise.
14595 (function_info::build_info::bb_to_rpo): Likewise.
14596 (function_info::build_info::def_stack): Likewise.
14597 (function_info::build_info::old_def_stack_limit): Likewise.
14598 * rtl-ssa/internals.inl (function_info::build_info::record_reg_def):
14599 Remove the regno argument. Push the previous definition onto the
14600 definition stack where necessary.
14601 * rtl-ssa/accesses.cc: Include internals.h.
14602 * rtl-ssa/changes.cc: Likewise.
14603 * rtl-ssa/blocks.cc: Likewise.
14604 (function_info::build_info::build_info): Define.
14605 (function_info::build_info::~build_info): Likewise.
14606 (function_info::bb_walker): New class.
14607 (function_info::bb_walker::bb_walker): Define.
14608 (function_info::add_live_out_use): Convert a logarithmic-complexity
14609 test into a linear one. Allow the same definition to be passed
14611 (function_info::calculate_potential_phi_regs): Moved from
14612 functions.cc. Take a build_info parameter and store the
14613 information there instead.
14614 (function_info::place_phis): New function.
14615 (function_info::add_entry_block_defs): Update call to record_reg_def.
14616 (function_info::calculate_ebb_live_in_for_debug): New function.
14617 (function_info::add_phi_nodes): Use bb_phis to decide which
14618 registers need phi nodes and initialize ebb_def_regs accordingly.
14619 Do not add degenerate phis here.
14620 (function_info::add_artificial_accesses): Use create_reg_use.
14621 Assert that all definitions are listed in the DF LR sets.
14622 Update call to record_reg_def.
14623 (function_info::record_block_live_out): Record live-out register
14624 values in the phis of successor blocks. Use the live-out set
14625 when processing the last block in an EBB, instead of always
14626 using the live-in sets of successor blocks. AND the live sets
14627 with the set of registers that have been defined in the EBB,
14628 rather than with all potential phi registers. Cope correctly
14629 with branches back to the start of the current EBB.
14630 (function_info::start_block): New function.
14631 (function_info::end_block): Likewise.
14632 (function_info::populate_phi_inputs): Likewise.
14633 (function_info::create_ebbs): Likewise.
14634 (function_info::process_all_blocks): Rewrite into a multi-phase
14636 * rtl-ssa/functions.cc: Include internals.h.
14637 (function_info::calculate_potential_phi_regs): Move to blocks.cc.
14638 (function_info::init_function_data): Remove caller.
14639 * rtl-ssa/insns.cc: Include internals.h
14640 (function_info::create_reg_use): New function. Lazily any
14641 degenerate phis needed by the linear RPO view.
14642 (function_info::record_use): Use create_reg_use. When processing
14643 debug uses, use potential_phi_regs and test it before checking
14644 whether the register is live on entry to the current EBB. Lazily
14645 calculate ebb_live_in_for_debug.
14646 (function_info::record_call_clobbers): Update call to record_reg_def.
14647 (function_info::record_def): Likewise.
14649 2021-02-15 Martin Liska <mliska@suse.cz>
14651 * toplev.c (init_asm_output): Free output of
14652 gen_command_line_string function.
14653 (process_options): Likewise.
14655 2021-02-15 Martin Liska <mliska@suse.cz>
14657 * params.opt: Add 2 missing Param keywords.
14659 2021-02-15 Eric Botcazou <ebotcazou@adacore.com>
14661 * df-core.c (df_worklist_dataflow_doublequeue): Use proper cast.
14663 2021-02-15 Jakub Jelinek <jakub@redhat.com>
14665 PR tree-optimization/99079
14666 * match.pd (A % (pow2pcst << N) -> A & ((pow2pcst << N) - 1)): Remove
14667 useless tree_nop_conversion_p (type, TREE_TYPE (@3)) check. Instead
14668 require both type and TREE_TYPE (@1) to be integral types and either
14669 type having smaller or equal precision, or TREE_TYPE (@1) being
14670 unsigned type, or type being signed type. If TREE_TYPE (@1)
14671 doesn't have wrapping overflow, perform the subtraction of one in
14674 2021-02-14 Jan Hubicka <hubicka@ucw.cz>
14675 Richard Biener <rguether@suse.de>
14678 * ipa-reference.c (ipa_init): Only conditinally initialize
14679 reference_vars_to_consider.
14680 (propagate): Conditionally deninitialize reference_vars_to_consider.
14681 (ipa_reference_write_optimization_summary): Sanity check that
14682 reference_vars_to_consider is not allocated.
14684 2021-02-13 Levy Hsu <admin@levyhsu.com>
14687 * config/riscv/riscv-shorten-memrefs.c (pass_shorten_memrefs): Add
14688 extend parameter to get_si_mem_base_reg declaration.
14689 (get_si_mem_base_reg): Add extend parameter. Set it.
14690 (analyze): Pass extend arg to get_si_mem_base_reg.
14691 (transform): Likewise. Use it when rewriting mems.
14692 * config/riscv/riscv.c (riscv_legitimize_move): Check for subword
14693 loads and emit sign/zero extending load followed by subreg move.
14695 2021-02-13 Jim Wilson <jimw@sifive.com>
14698 * config/riscv/riscv.c (riscv_compressed_lw_address_p): Drop early
14699 exit when !reload_completed. Only perform check for compressed reg
14700 if reload_completed.
14701 (riscv_rtx_costs): In MEM case, when optimizing for size and
14702 shorten memrefs, if not compressible, then increase cost.
14704 2021-02-13 Jakub Jelinek <jakub@redhat.com>
14706 PR rtl-optimization/98439
14707 * recog.c (pass_split_before_regstack::gate): Enable even when
14708 pass_split_before_sched2 is enabled if -fselective-scheduling2 is
14711 2021-02-13 Jakub Jelinek <jakub@redhat.com>
14714 * config/i386/mmx.md (*mmx_pshufd_1): Add a combine splitter for
14715 swap of V2SImode elements in memory into DImode memory rotate by 32.
14717 2021-02-12 Martin Sebor <msebor@redhat.com>
14719 * tree-pretty-print.c (print_generic_expr_to_str): Update comment.
14721 2021-02-12 Richard Sandiford <richard.sandiford@arm.com>
14723 * rtl-ssa/accesses.cc (function_info::make_use_available): Use
14724 m_temp_obstack rather than m_obstack to allocate the temporary use.
14726 2021-02-12 Richard Sandiford <richard.sandiford@arm.com>
14728 * df-problems.c (df_lr_bb_local_compute): Treat partial definitions
14729 as read-modify operations.
14731 2021-02-12 Richard Biener <rguenther@suse.de>
14733 PR middle-end/38474
14734 * ipa-fnsummary.c (unmodified_parm_1): Only walk when
14735 fbi->aa_walk_budget is bigger than zero. Update
14736 fbi->aa_walk_budget.
14737 (param_change_prob): Likewise.
14738 * ipa-prop.c (detect_type_change_from_memory_writes):
14739 Properly account walk_aliased_vdefs.
14740 (parm_preserved_before_stmt_p): Canonicalize updates.
14741 (parm_ref_data_preserved_p): Likewise.
14742 (parm_ref_data_pass_through_p): Likewise.
14743 (determine_known_aggregate_parts): Account own alias queries.
14745 2021-02-12 Martin Liska <mliska@suse.cz>
14747 * opts-common.c (decode_cmdline_option): Release werror_arg.
14748 * opts.c (gen_producer_string): Release output of
14749 gen_command_line_string.
14751 2021-02-12 Richard Biener <rguenther@suse.de>
14753 PR tree-optimization/38474
14754 * params.opt (-param=max-store-chains-to-track=): New param.
14755 (-param=max-stores-to-track=): Likewise.
14756 * doc/invoke.texi (max-store-chains-to-track): Document.
14757 (max-stores-to-track): Likewise.
14758 * gimple-ssa-store-merging.c (pass_store_merging::m_n_chains):
14760 (pass_store_merging::m_n_stores): Likewise.
14761 (pass_store_merging::terminate_and_process_chain): Update
14762 m_n_stores and m_n_chains.
14763 (pass_store_merging::process_store): Likewise. Terminate
14764 oldest chains if the number of stores or chains get too large.
14765 (imm_store_chain_info::terminate_and_process_chain): Dump
14768 2021-02-11 Eric Botcazou <ebotcazou@adacore.com>
14770 * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to
14771 the cold section, emit a nop before the directive if the previous
14772 active instruction can throw.
14774 2021-02-11 Peter Bergner <bergner@linux.ibm.com>
14777 * config/rs6000/predicates.md (mma_assemble_input_operand): Restrict
14778 memory addresses that are legal for quad word accesses.
14780 2021-02-11 Andrea Corallo <andrea.corallo@arm.com>
14783 * config/arm/thumb2.md (*doloop_end_internal): Generate
14784 alternative sequence to handle long range branches.
14786 2021-02-11 Joel Hutton <joel.hutton@arm.com>
14788 PR tree-optimization/98772
14789 * optabs-tree.c (supportable_half_widening_operation): New function
14790 to check for supportable V8QI->V8HI widening patterns.
14791 * optabs-tree.h (supportable_half_widening_operation): New function.
14792 * tree-vect-stmts.c (vect_create_half_widening_stmts): New function
14793 to create promotion stmts for V8QI->V8HI widening patterns.
14794 (vectorizable_conversion): Add case for V8QI->V8HI.
14796 2021-02-11 Richard Biener <rguenther@suse.de>
14798 * sparseset.h (SPARSESET_ELT_BITS): Remove.
14799 (SPARSESET_ELT_TYPE): Use unsigned int.
14800 * fwprop.c: Do not include sparseset.h.
14802 2021-02-10 Jakub Jelinek <jakub@redhat.com>
14805 * varasm.c (declare_weak): For -fsyntax-only, allow even
14806 TREE_ASM_WRITTEN function decls.
14808 2021-02-10 Jakub Jelinek <jakub@redhat.com>
14811 * config/i386/sse.md (fix<fixunssuffix>_truncv2sfv2di2,
14812 <insn>v8qiv8hi2, <insn>v8qiv8si2, <insn>v4qiv4si2, <insn>v4hiv4si2,
14813 <insn>v8qiv8di2, <insn>v4qiv4di2, <insn>v2qiv2di2, <insn>v4hiv4di2,
14814 <insn>v2hiv2di2, <insn>v2siv2di2): Force operands[1] into REG before
14815 calling simplify_gen_subreg on it.
14817 2021-02-10 Martin Liska <mliska@suse.cz>
14819 * config/nvptx/nvptx.c (nvptx_option_override): Use
14820 flag_patchable_function_entry instead of the removed
14821 function_entry_patch_area_size.
14823 2021-02-10 Martin Liska <mliska@suse.cz>
14825 PR tree-optimization/99002
14826 PR tree-optimization/99026
14827 * gimple-if-to-switch.cc (if_chain::is_beneficial): Fix memory
14828 leak when adjacent cases are merged.
14829 * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement): Use
14831 (make_pass_lower_switch): Remove trailing whitespace.
14832 * tree-switch-conversion.h (release_clusters): New.
14834 2021-02-10 Richard Biener <rguenther@suse.de>
14836 PR rtl-optimization/99054
14837 * cfgrtl.c (rtl-optimization/99054): Return an auto_vec.
14838 (fixup_partitions): Adjust.
14839 (rtl_verify_edges): Likewise.
14841 2021-02-10 Jakub Jelinek <jakub@redhat.com>
14843 PR middle-end/99007
14844 * gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions,
14845 temporarily disable gimplify_ctxp->into_ssa around gimplify_expr
14848 2021-02-10 Richard Biener <rguenther@suse.de>
14851 * ipa-pure-const.c (propagate_malloc): Use an auto_vec<>
14854 2021-02-10 Richard Biener <rguenther@suse.de>
14856 PR tree-optimization/99024
14857 * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Only
14858 clear loop->aux if it is associated with the destroyed loop_vinfo.
14860 2021-02-10 Martin Liska <mliska@suse.cz>
14862 PR tree-optimization/99002
14863 * gimple-if-to-switch.cc (find_conditions): Fix memory leak
14866 2021-02-10 Martin Liska <mliska@suse.cz>
14869 * ipa-icf.c (sem_item::add_reference): Fix memory leak when
14870 a reference exists.
14872 2021-02-10 Jakub Jelinek <jakub@redhat.com>
14875 * dwarf2out.c (prune_unused_types_walk): Mark DW_TAG_variable DIEs
14876 at class scope for DWARF5+.
14878 2021-02-09 Eric Botcazou <ebotcazou@adacore.com>
14880 PR rtl-optimization/96015
14881 * reorg.c (skip_consecutive_labels): Minor comment tweaks.
14882 (relax_delay_slots): When deleting a jump to the next active
14883 instruction over a barrier, first delete the barrier if the
14884 jump is the only way to reach the target label.
14886 2021-02-09 Andre Vieira <andre.simoesdiasvieira@arm.com>
14888 * config/aarch64/aarch64-cost-tables.h: Add entries for vect.mul.
14889 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Use vect.mul for
14890 vector multiplies and vect.alu for SSRA.
14891 * config/arm/aarch-common-protos.h (struct vector_cost_table): Define
14892 vect.mul cost field.
14893 * config/arm/aarch-cost-tables.h: Add entries for vect.mul.
14894 * config/arm/arm.c: Likewise.
14896 2021-02-09 Richard Biener <rguenther@suse.de>
14898 PR tree-optimization/98863
14899 * tree-ssa-sccvn.h (vn_avail::next_undo): Add.
14900 * tree-ssa-sccvn.c (last_pushed_avail): New global.
14901 (rpo_elim::eliminate_push_avail): Chain pushed avails.
14902 (unwind_state::avail_top): Add.
14903 (do_unwind): Rewrite unwinding of avail entries.
14904 (do_rpo_vn): Initialize last_pushed_avail and
14905 avail_top of the undo state.
14907 2021-02-09 Jakub Jelinek <jakub@redhat.com>
14909 PR middle-end/99004
14910 * calls.c (maybe_warn_rdwr_sizes): Change s0 and s1 type from
14911 const char * to char * and free those pointers after use.
14913 2021-02-09 Richard Biener <rguenther@suse.de>
14915 PR tree-optimization/99017
14916 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Allow
14917 zero vector cost entries.
14919 2021-02-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
14921 PR middle-end/98974
14922 * tree-vect-stmts.c (vectorizable_condition): Remove shadow vec_num
14923 parameter in vectorizable_condition.
14925 2021-02-08 Richard Biener <rguenther@suse.de>
14928 * tree.c (walk_tree_1): Walk VECTOR_CST elements.
14930 2021-02-08 Martin Liska <mliska@suse.cz>
14933 * cfgexpand.c (pass_expand::execute): Parse per-function option
14934 flag_patchable_function_entry and use it.
14935 * common.opt: Remove function_entry_patch_area_size and
14936 function_entry_patch_area_start global variables.
14937 * opts.c (parse_and_check_patch_area): New function.
14938 (common_handle_option): Use it.
14939 * opts.h (parse_and_check_patch_area): New function.
14940 * toplev.c (process_options): Parse and use
14941 function_entry_patch_area_size.
14943 2021-02-08 Martin Sebor <msebor@redhat.com>
14945 * doc/extend.texi (attribute malloc): Correct typos.
14947 2021-02-05 Nathan Sidwell <nathan@acm.org>
14950 * gcc.c (driver::maybe_run_linker): Check for input file
14951 accessibility if not linking.
14953 2021-02-05 Richard Biener <rguenther@suse.de>
14955 PR tree-optimization/98855
14956 * tree-vectorizer.h (add_stmt_cost): New overload.
14957 * tree-vect-slp.c (li_cost_vec_cmp): New.
14958 (vect_bb_slp_scalar_cost): Cost individual loop regions
14959 separately. Account for the scalar instance root stmt.
14961 2021-02-05 Tom de Vries <tdevries@suse.de>
14964 * tree-switch-conversion.c (jump_table_cluster::emit): Add loc
14966 (bit_test_cluster::emit): Reuse location_t for newly created
14968 (switch_decision_tree::try_switch_expansion): Preserve
14970 * tree-switch-conversion.h: Change function signatures.
14972 2021-02-05 Jakub Jelinek <jakub@redhat.com>
14975 * config/i386/i386-options.c (m_NONE, m_ALL): Define.
14976 * config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS,
14977 X86_TUNE_PROMOTE_QI_REGS): Use m_NONE instead of 0U.
14978 (X86_TUNE_QIMODE_MATH): Use m_ALL instead of ~0U.
14980 2021-02-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14982 * config/aarch64/aarch64-simd-builtins.def (get_high): Define builtin.
14983 * config/aarch64/aarch64-simd.md (aarch64_get_high<mode>): Define.
14984 * config/aarch64/arm_neon.h (__GET_HIGH): Delete.
14985 (vget_high_f16): Reimplement using new builtin.
14986 (vget_high_f32): Likewise.
14987 (vget_high_f64): Likewise.
14988 (vget_high_p8): Likewise.
14989 (vget_high_p16): Likewise.
14990 (vget_high_p64): Likewise.
14991 (vget_high_s8): Likewise.
14992 (vget_high_s16): Likewise.
14993 (vget_high_s32): Likewise.
14994 (vget_high_s64): Likewise.
14995 (vget_high_u8): Likewise.
14996 (vget_high_u16): Likewise.
14997 (vget_high_u32): Likewise.
14998 (vget_high_u64): Likewise.
15000 2021-02-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15002 * config/aarch64/aarch64-simd-builtins.def (get_low): Define builtin.
15003 * config/aarch64/aarch64-simd.md (aarch64_get_low<mode>): Define.
15004 * config/aarch64/arm_neon.h (__GET_LOW): Delete.
15005 (vget_low_f16): Reimplement using new builtin.
15006 (vget_low_f32): Likewise.
15007 (vget_low_f64): Likewise.
15008 (vget_low_p8): Likewise.
15009 (vget_low_p16): Likewise.
15010 (vget_low_p64): Likewise.
15011 (vget_low_s8): Likewise.
15012 (vget_low_s16): Likewise.
15013 (vget_low_s32): Likewise.
15014 (vget_low_s64): Likewise.
15015 (vget_low_u8): Likewise.
15016 (vget_low_u16): Likewise.
15017 (vget_low_u32): Likewise.
15018 (vget_low_u64): Likewise.
15020 2021-02-05 Kito Cheng <kito.cheng@sifive.com>
15022 * gcc.c (print_multilib_info): Check all required argument is provided
15025 2021-02-05 liuhongt <hongtao.liu@intel.com>
15028 * config/i386/i386-expand.c (ix86_expand_sse_cmp): Don't
15029 generate integer mask comparison for 128/256-bits vector when
15030 op_true/op_false is NULL_RTX or CONSTM1_RTX/CONST0_RTX. Also
15031 delete redundant !maskcmp condition.
15032 (ix86_expand_int_vec_cmp): Ditto but no redundant deletion
15034 (ix86_expand_sse_movcc): Delete definition of maskcmp, add the
15035 condition directly to if (maskcmp), add extra check for
15036 cmpmode, it should be MODE_INT.
15037 (ix86_expand_fp_vec_cmp): Pass NULL to ix86_expand_sse_cmp's
15038 parameters op_true/op_false.
15039 (ix86_use_mask_cmp_p): New.
15041 2021-02-05 liuhongt <hongtao.liu@intel.com>
15044 * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL):
15045 Remove m_GENERIC from ~list.
15046 (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Ditto.
15048 2021-02-04 David Malcolm <dmalcolm@redhat.com>
15051 * diagnostic-show-locus.c (compatible_locations_p): Require
15052 locations in the same macro map to be either both from the
15053 macro definition, or both from the macro arguments.
15055 2021-02-04 Jonathan Wright <jonathan.wright@arm.com>
15057 * config/aarch64/aarch64-simd-builtins.def: Add
15058 [su]mull_hi_lane[q] builtin generator macros.
15059 * config/aarch64/aarch64-simd.md
15060 (aarch64_<su>mull_hi_lane<mode>_insn): Define.
15061 (aarch64_<su>mull_hi_lane<mode>): Define.
15062 (aarch64_<su>mull_hi_laneq<mode>_insn): Define.
15063 (aarch64_<su>mull_hi_laneq<mode>): Define.
15064 * config/aarch64/arm_neon.h (vmull_high_lane_s16): Use RTL
15065 builtin instead of inline asm.
15066 (vmull_high_lane_s32): Likewise.
15067 (vmull_high_lane_u16): Likewise.
15068 (vmull_high_lane_u32): Likewise.
15069 (vmull_high_laneq_s16): Likewise.
15070 (vmull_high_laneq_s32): Likewise.
15071 (vmull_high_laneq_u16): Likewise.
15072 (vmull_high_laneq_u32): Liekwise.
15074 2021-02-04 Jonathan Wright <jonathan.wright@arm.com>
15076 * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_hi_n
15077 builtin generator macros.
15078 * config/aarch64/aarch64-simd.md
15079 (aarch64_<su>mull_hi_n<mode>_insn): Define.
15080 (aarch64_<su>mull_hi_n<mode>): Define.
15081 * config/aarch64/arm_neon.h (vmull_high_n_s16): Use RTL builtin
15082 instead of inline asm.
15083 (vmull_high_n_s32): Likewise.
15084 (vmull_high_n_u16): Likewise.
15085 (vmull_high_n_u32): Likewise.
15087 2021-02-04 Richard Biener <rguenther@suse.de>
15089 PR tree-optimization/98855
15090 * tree-vect-loop.c (vectorizable_phi): Do not cost
15091 single-argument PHIs.
15092 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise.
15093 * tree-vect-stmts.c (vectorizable_bswap): Also perform
15094 costing for SLP operation.
15096 2021-02-04 Martin Liska <mliska@suse.cz>
15098 * doc/extend.texi: Mention -mprefer-vector-width in target
15101 2021-02-03 Martin Sebor <msebor@redhat.com>
15103 PR tree-optimization/98937
15104 * tree-ssa-strlen.c (strlen_dom_walker::~strlen_dom_walker): Define.
15105 Flush pointer_query cache.
15107 2021-02-03 Aaron Sawdey <acsawdey@linux.ibm.com>
15109 * config/rs6000/genfusion.pl (gen_2logical): Add missing
15110 fixes based on patch review.
15111 * config/rs6000/fusion.md: Regenerate file.
15113 2021-02-03 Aaron Sawdey <acsawdey@linux.ibm.com>
15115 * config/rs6000/t-rs6000: Comment out auto generation of
15118 2021-02-03 Andrew Stubbs <ams@codesourcery.com>
15120 * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX908.
15121 * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Add gfx908.
15122 (output_file_start): Add gfx908.
15123 * config/gcn/gcn.opt (gpu_type): Add gfx908.
15124 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add march=gfx908.
15125 (MULTILIB_DIRNAMES): Add gfx908.
15126 * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): New define.
15127 (main): Recognize gfx908.
15128 * config/gcn/t-omp-device: Add gfx908.
15130 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
15132 * config/aarch64/aarch64-simd-builtins.def: Add
15133 [su]mlsl_hi_lane[q] builtin macro generators.
15134 * config/aarch64/aarch64-simd.md
15135 (aarch64_<su>mlsl_hi_lane<mode>_insn): Define.
15136 (aarch64_<su>mlsl_hi_lane<mode>): Define.
15137 (aarch64_<su>mlsl_hi_laneq<mode>_insn): Define.
15138 (aarch64_<su>mlsl_hi_laneq<mode>): Define.
15139 * config/aarch64/arm_neon.h (vmlsl_high_lane_s16): Use RTL
15140 builtin instead of inline asm.
15141 (vmlsl_high_lane_s32): Likewise.
15142 (vmlsl_high_lane_u16): Likewise.
15143 (vmlsl_high_lane_u32): Likewise.
15144 (vmlsl_high_laneq_s16): Likewise.
15145 (vmlsl_high_laneq_s32): Likewise.
15146 (vmlsl_high_laneq_u16): Likewise.
15147 (vmlsl_high_laneq_u32): Likewise.
15148 (vmlal_high_laneq_u32): Likewise.
15150 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
15152 * config/aarch64/aarch64-simd-builtins.def: Add
15153 [su]mlal_hi_lane[q] builtin generator macros.
15154 * config/aarch64/aarch64-simd.md
15155 (aarch64_<su>mlal_hi_lane<mode>_insn): Define.
15156 (aarch64_<su>mlal_hi_lane<mode>): Define.
15157 (aarch64_<su>mlal_hi_laneq<mode>_insn): Define.
15158 (aarch64_<su>mlal_hi_laneq<mode>): Define.
15159 * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Use RTL
15160 builtin instead of inline asm.
15161 (vmlal_high_lane_s32): Likewise.
15162 (vmlal_high_lane_u16): Likewise.
15163 (vmlal_high_lane_u32): Likewise.
15164 (vmlal_high_laneq_s16): Likewise.
15165 (vmlal_high_laneq_s32): Likewise.
15166 (vmlal_high_laneq_u16): Likewise.
15167 (vmlal_high_laneq_u32): Likewise.
15169 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
15171 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_hi_n
15172 builtin generator macros.
15173 * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_hi_n<mode>_insn):
15175 (aarch64_<su>mlsl_hi_n<mode>): Define.
15176 * config/aarch64/arm_neon.h (vmlsl_high_n_s16): Use RTL builtin
15177 instead of inline asm.
15178 (vmlsl_high_n_s32): Likewise.
15179 (vmlsl_high_n_u16): Likewise.
15180 (vmlsl_high_n_u32): Likewise.
15182 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
15184 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_hi_n
15185 builtin generator macros.
15186 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_hi_n<mode>_insn):
15188 (aarch64_<su>mlal_hi_n<mode>): Define.
15189 * config/aarch64/arm_neon.h (vmlal_high_n_s16): Use RTL builtin
15190 instead of inline asm.
15191 (vmlal_high_n_s32): Likewise.
15192 (vmlal_high_n_u16): Likewise.
15193 (vmlal_high_n_u32): Likewise.
15195 2021-02-03 Jonathan Wright <jonathan.wright@arm.com>
15197 * config/aarch64/aarch64-simd-builtins.def: Add RTL builtin
15199 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal_hi<mode>):
15201 (aarch64_<su>mlal_hi<mode>_insn): This.
15202 (aarch64_<su>mlal_hi<mode>): Define.
15203 * config/aarch64/arm_neon.h (vmlal_high_s8): Use RTL builtin
15204 instead of inline asm.
15205 (vmlal_high_s16): Likewise.
15206 (vmlal_high_s32): Likewise.
15207 (vmlal_high_u8): Likewise.
15208 (vmlal_high_u16): Likewise.
15209 (vmlal_high_u32): Likewise.
15211 2021-02-03 Ilya Leoshkevich <iii@linux.ibm.com>
15213 * lra-spills.c (remove_pseudos): Call lra_update_insn_recog_data()
15214 after calling alter_subreg() on a (mem).
15216 2021-02-03 Martin Liska <mliska@suse.cz>
15219 * lto-streamer-out.c (produce_lto_section): Fill up missing
15221 * lto-streamer.h (struct lto_section): Add _padding field.
15223 2021-02-03 Richard Biener <rguenther@suse.de>
15225 * lto-streamer.c (lto_get_section_name): Free temporary
15227 * tree-loop-distribution.c
15228 (loop_distribution::merge_dep_scc_partitions): Free edge data.
15230 2021-02-03 Jakub Jelinek <jakub@redhat.com>
15232 PR middle-end/97487
15233 * ifcvt.c (noce_can_force_operand): New function.
15234 (noce_emit_move_insn): Use it.
15235 (noce_try_sign_mask): Likewise. Formatting fix.
15237 2021-02-03 Jakub Jelinek <jakub@redhat.com>
15239 PR middle-end/97971
15240 * lra-constraints.c (process_alt_operands): For inline asm, don't call
15241 fatal_insn, but instead return false.
15243 2021-02-03 Jakub Jelinek <jakub@redhat.com>
15245 PR tree-optimization/98287
15246 * config/i386/mmx.md (<insn><mode>3): For shifts don't enable expander
15249 2021-02-03 Tamar Christina <tamar.christina@arm.com>
15251 PR tree-optimization/98928
15252 * tree-vect-loop.c (vect_analyze_loop_2): Change
15253 STMT_VINFO_SLP_VECT_ONLY to STMT_VINFO_SLP_VECT_ONLY_PATTERN.
15254 * tree-vect-slp-patterns.c (complex_pattern::build): Likewise.
15255 * tree-vectorizer.h (STMT_VINFO_SLP_VECT_ONLY_PATTERN): New.
15256 (class _stmt_vec_info): Add slp_vect_pattern_only_p.
15258 2021-02-02 Richard Biener <rguenther@suse.de>
15260 * gimple-loop-interchange.cc (prepare_data_references):
15262 * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
15263 * tree-ssa-loop-im.c (hoist_memory_references): Likewise.
15264 * tree-vect-stmts.c (vectorizable_condition): Do not
15266 (vectorizable_comparison): Likewise.
15268 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15270 * config/aarch64/aarch64-simd-builtins.def (ursqrte): Define builtin.
15271 * config/aarch64/aarch64-simd.md (aarch64_ursqrte<mode>): New pattern.
15272 * config/aarch64/arm_neon.h (vrsqrte_u32): Reimplement using builtin.
15273 (vrsqrteq_u32): Likewise.
15275 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15277 * config/aarch64/aarch64-simd-builtins.def (sqxtun2): Define builtin.
15278 * config/aarch64/aarch64-simd.md (aarch64_sqxtun2<mode>_le): Define.
15279 (aarch64_sqxtun2<mode>_be): Likewise.
15280 (aarch64_sqxtun2<mode>): Likewise.
15281 * config/aarch64/arm_neon.h (vqmovun_high_s16): Reimplement using builtin.
15282 (vqmovun_high_s32): Likewise.
15283 (vqmovun_high_s64): Likewise.
15284 * config/aarch64/iterators.md (UNSPEC_SQXTUN2): Define.
15286 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15288 * config/aarch64/aarch64-simd-builtins.def (bfdot_lane, bfdot_laneq): Use
15290 (bfmlalb_lane, bfmlalt_lane, bfmlalb_lane_q, bfmlalt_lane_q): Use FP flags.
15292 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15294 * config/aarch64/aarch64-simd-builtins.def (fcmla_lane0, fcmla_lane90,
15295 fcmla_lane180, fcmla_lane270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
15296 fcmlaq_lane270, scvtf, ucvtf, fcvtzs, fcvtzu, scvtfsi, scvtfdi, ucvtfsi,
15297 ucvtfdi, fcvtzshf, fcvtzuhf, fmlal_lane_low, fmlsl_lane_low,
15298 fmlal_laneq_low, fmlsl_laneq_low, fmlalq_lane_low, fmlslq_lane_low,
15299 fmlalq_laneq_low, fmlslq_laneq_low, fmlal_lane_high, fmlsl_lane_high,
15300 fmlal_laneq_high, fmlsl_laneq_high, fmlalq_lane_high, fmlslq_lane_high,
15301 fmlalq_laneq_high, fmlslq_laneq_high): Use FP flags.
15303 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15305 * config/aarch64/aarch64-builtins.c (FLAG_LOAD): Define.
15306 * config/aarch64/aarch64-simd-builtins.def (ld1x2, ld2, ld3, ld4, ld2r,
15307 ld3r, ld4r, ld1, ld1x3, ld1x4): Use LOAD flags.
15309 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15311 * config/aarch64/aarch64-simd-builtins.def (combine, zip1, zip2,
15312 uzp1, uzp2, trn1, trn2, simd_bsl): Use AUTO_FP flags.
15314 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15316 * config/aarch64/aarch64-simd-builtins.def (clrsb, clz, ctz, popcount,
15317 vec_smult_lane_, vec_smlal_lane_, vec_smult_laneq_, vec_smlal_laneq_,
15318 vec_umult_lane_, vec_umlal_lane_, vec_umult_laneq_, vec_umlal_laneq_,
15319 ashl, sshl, ushl, srshl, urshl, sdot_lane, udot_lane, sdot_laneq,
15320 udot_laneq, usdot_lane, usdot_laneq, sudot_lane, sudot_laneq, ashr,
15321 ashr_simd, lshr, lshr_simd, srshr_n, urshr_n, ssra_n, usra_n, srsra_n,
15322 ursra_n, sshll_n, ushll_n, sshll2_n, ushll2_n, ssri_n, usri_n, ssli_n,
15323 ssli_n, usli_n, bswap, rbit, simd_bsl, eor3q, rax1q, xarq, bcaxq): Use
15324 NONE builtin flags.
15326 2021-02-02 Jakub Jelinek <jakub@redhat.com>
15328 PR tree-optimization/98848
15329 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Punt if
15330 STMT_VINFO_DEF_TYPE (last_stmt_info) is vect_reduction_def.
15332 2021-02-02 Kito Cheng <kito.cheng@sifive.com>
15335 * expr.c: Check mode before calling store_expr.
15337 2021-02-02 Christophe Lyon <christophe.lyon@linaro.org>
15339 * config/arm/iterators.md (supf): Remove VORNQ_S and VORNQ_U.
15341 * config/arm/mve.md (mve_vornq_s<mode>): New entry for vorn
15342 instruction using expression ior.
15343 (mve_vornq_u<mode>): New expander.
15344 (mve_vornq_f<mode>): Use ior code instead of unspec.
15345 * config/arm/unspecs.md (VORNQ_S, VORNQ_U, VORNQ_F): Remove.
15347 2021-02-02 Alexandre Oliva <oliva@adacore.com>
15349 * tree-nested.c (convert_nonlocal_reference_op): Move
15350 current_function_decl restore after re-gimplification.
15351 (convert_local_reference_op): Likewise.
15353 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15355 * config/aarch64/aarch64-simd-builtins.def (rshrn, rshrn2):
15357 * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le):
15359 (aarch64_rshrn<mode>_insn_be): Likewise.
15360 (aarch64_rshrn<mode>): Likewise.
15361 (aarch64_rshrn2<mode>_insn_le): Likewise.
15362 (aarch64_rshrn2<mode>_insn_be): Likewise.
15363 (aarch64_rshrn2<mode>): Likewise.
15364 * config/aarch64/aarch64.md (unspec): Add UNSPEC_RSHRN.
15365 * config/aarch64/arm_neon.h (vrshrn_high_n_s16): Reimplement
15367 (vrshrn_high_n_s32): Likewise.
15368 (vrshrn_high_n_s64): Likewise.
15369 (vrshrn_high_n_u16): Likewise.
15370 (vrshrn_high_n_u32): Likewise.
15371 (vrshrn_high_n_u64): Likewise.
15372 (vrshrn_n_s16): Likewise.
15373 (vrshrn_n_s32): Likewise.
15374 (vrshrn_n_s64): Likewise.
15375 (vrshrn_n_u16): Likewise.
15376 (vrshrn_n_u32): Likewise.
15377 (vrshrn_n_u64): Likewise.
15379 2021-02-01 Sergei Trofimovich <siarheit@google.com>
15381 PR tree-optimization/98499
15382 * ipa-modref.c (analyze_ssa_name_flags): treat RVO
15383 conservatively and assume all possible side-effects.
15385 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15387 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi,
15388 vec_unpacku_hi_): Define builtins.
15389 * config/aarch64/arm_neon.h (vmovl_high_s8): Reimplement using
15391 (vmovl_high_s16): Likewise.
15392 (vmovl_high_s32): Likewise.
15393 (vmovl_high_u8): Likewise.
15394 (vmovl_high_u16): Likewise.
15395 (vmovl_high_u32): Likewise.
15397 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15399 * config/aarch64/aarch64-simd-builtins.def (sabdl, uabdl):
15401 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): New
15403 * config/aarch64/aarch64.md (unspec): Define UNSPEC_SABDL,
15405 * config/aarch64/arm_neon.h (vabdl_s8): Reimplemet using
15407 (vabdl_s16): Likewise.
15408 (vabdl_s32): Likewise.
15409 (vabdl_u8): Likewise.
15410 (vabdl_u16): Likewise.
15411 (vabdl_u32): Likewise.
15412 * config/aarch64/iterators.md (ABDL): New int iterator.
15413 (sur): Handle UNSPEC_SABDL, UNSPEC_UABDL.
15415 2021-02-01 Martin Sebor <msebor@redhat.com>
15417 * tree.h (BLOCK_VARS): Add comment.
15418 (BLOCK_SUBBLOCKS): Same.
15419 (BLOCK_SUPERCONTEXT): Same.
15420 (BLOCK_ABSTRACT_ORIGIN): Same.
15421 (inlined_function_outer_scope_p): Same.
15423 2021-02-01 Martin Sebor <msebor@redhat.com>
15425 PR middle-end/97172
15426 * attribs.c (attr_access::free_lang_data): Define new function.
15427 * attribs.h (attr_access::free_lang_data): Declare new function.
15429 2021-02-01 Richard Biener <rguenther@suse.de>
15431 * vec.h (auto_vec::auto_vec): Add memory stat parameters
15433 * bitmap.h (auto_bitmap::auto_bitmap): Likewise.
15435 2021-02-01 Tamar Christina <tamar.christina@arm.com>
15437 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>,
15438 aarch64_<su>mlsl<mode>, aarch64_<su>mlsl_n<mode>): Flip mult operands.
15440 2021-02-01 Richard Biener <rguenther@suse.de>
15442 PR rtl-optimization/98863
15443 * config/i386/i386-features.c (convert_scalars_to_vector):
15444 Set DF_RD_PRUNE_DEAD_DEFS.
15446 2021-01-31 Eric Botcazou <ebotcazou@adacore.com>
15448 * system.h (SIZE_MAX): Define if not already defined.
15450 2021-01-30 Aaron Sawdey <acsawdey@linux.ibm.com>
15452 * config/rs6000/genfusion.pl (gen_2logical): New function to
15453 generate patterns for logical-logical fusion.
15454 * config/rs6000/fusion.md: Regenerated patterns.
15455 * config/rs6000/rs6000-cpus.def: Add
15456 OPTION_MASK_P10_FUSION_2LOGICAL.
15457 * config/rs6000/rs6000.c (rs6000_option_override_internal):
15458 Enable logical-logical fusion for p10.
15459 * config/rs6000/rs6000.opt: Add -mpower10-fusion-2logical.
15461 2021-01-30 David Edelsohn <dje.gcc@gmail.com>
15463 * config/rs6000/rs6000.opt: Add periods to new AIX options.
15465 2021-01-30 David Edelsohn <dje.gcc@gmail.com>
15467 * config/rs6000/rs6000.opt (mabi=vec-extabi): New.
15468 (mabi=vec-default): New.
15469 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
15470 __EXTABI__ for AIX Vector extended ABI.
15471 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print AIX Vector
15473 (conditional_register_usage): If AIX vec_extabi enabled, vs20-vs31
15475 * doc/invoke.texi (PowerPC mabi): Add AIX vec-extabi and vec-default.
15477 2021-01-30 Jakub Jelinek <jakub@redhat.com>
15479 * config/i386/i386-features.c (remove_partial_avx_dependency): Clear
15480 DF_DEFER_INSN_RESCAN after calling df_process_deferred_rescans.
15482 2021-01-29 Vladimir N. Makarov <vmakarov@redhat.com>
15485 * lra-constraints.c (in_class_p): Don't narrow class only for REG
15488 2021-01-29 Will Schmidt <will_schmidt@vnet.ibm.com>
15490 * config/rs6000/rs6000-call.c (rs6000_expand_binup_builtin): Add
15491 clauses for CODE_FOR_vsx_xvcvuxddp_scale and
15492 CODE_FOR_vsx_xvcvsxddp_scale to the parameter checking code.
15494 2021-01-29 Andrew MacLeod <amacleod@redhat.com>
15496 PR tree-optimization/98866
15497 * gimple-range-gori.h (gori_compute:set_range_invariant): New.
15498 * gimple-range-gori.cc (gori_map::set_range_invariant): New.
15499 (gori_map::m_maybe_invariant): Rename from all_outgoing.
15500 (gori_map::gori_map): Rename all_outgoing to m_maybe_invariant.
15501 (gori_map::is_export_p): Ditto.
15502 (gori_map::calculate_gori): Ditto.
15503 (gori_compute::set_range_invariant): New.
15504 * gimple-range.cc (gimple_ranger::range_of_stmt): Set range
15505 invariant for pointers evaluating to [1, +INF].
15507 2021-01-29 Richard Biener <rguenther@suse.de>
15509 PR rtl-optimization/98863
15510 * config/i386/i386-features.c (remove_partial_avx_dependency):
15511 Do not perform DF analysis.
15512 (pass_data_remove_partial_avx_dependency): Remove
15515 2021-01-29 Jonathan Wright <jonathan.wright@arm.com>
15517 * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_n
15518 builtin generator macros.
15519 * config/aarch64/aarch64-simd.md (aarch64_<su>mull_n<mode>):
15521 * config/aarch64/arm_neon.h (vmull_n_s16): Use RTL builtin
15522 instead of inline asm.
15523 (vmull_n_s32): Likewise.
15524 (vmull_n_u16): Likewise.
15525 (vmull_n_u32): Likewise.
15527 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15529 * config/aarch64/aarch64-simd-builtins.def (sabdl2, uabdl2):
15531 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3):
15533 (aarch64_<sur>abdl2<mode>): ... This.
15534 (<sur>sadv16qi): Adjust use of above.
15535 * config/aarch64/arm_neon.h (vabdl_high_s8): Reimplement using
15537 (vabdl_high_s16): Likewise.
15538 (vabdl_high_s32): Likewise.
15539 (vabdl_high_u8): Likewise.
15540 (vabdl_high_u16): Likewise.
15541 (vabdl_high_u32): Likewise.
15543 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15545 * config/aarch64/aarch64-simd-builtins.def (sabal2): Define
15547 (uabal2): Likewise.
15548 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): New
15550 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SABAL2 and
15552 * config/aarch64/arm_neon.h (vabal_high_s8): Reimplement using
15554 (vabal_high_s16): Likewise.
15555 (vabal_high_s32): Likewise.
15556 (vabal_high_u8): Likewise.
15557 (vabal_high_u16): Likewise.
15558 (vabal_high_u32): Likewise.
15559 * config/aarch64/iterators.md (ABAL2): New mode iterator.
15560 (sur): Handle UNSPEC_SABAL2, UNSPEC_UABAL2.
15562 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15564 * config/aarch64/aarch64-simd-builtins.def (sabal): Define
15567 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>_4):
15569 (aarch64_<sur>abal<mode>): ... This
15570 (<sur>sadv16qi): Adust use of the above.
15571 * config/aarch64/arm_neon.h (vabal_s8): Reimplement using
15573 (vabal_s16): Likewise.
15574 (vabal_s32): Likewise.
15575 (vabal_u8): Likewise.
15576 (vabal_u16): Likewise.
15577 (vabal_u32): Likewise.
15579 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15581 * config/aarch64/aarch64-simd-builtins.def (saddlv, uaddlv):
15583 * config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
15585 * config/aarch64/arm_neon.h (vaddlv_s8): Reimplement using
15587 (vaddlv_s16): Likewise.
15588 (vaddlv_u8): Likewise.
15589 (vaddlv_u16): Likewise.
15590 (vaddlvq_s8): Likewise.
15591 (vaddlvq_s16): Likewise.
15592 (vaddlvq_s32): Likewise.
15593 (vaddlvq_u8): Likewise.
15594 (vaddlvq_u16): Likewise.
15595 (vaddlvq_u32): Likewise.
15596 (vaddlv_s32): Likewise.
15597 (vaddlv_u32): Likewise.
15598 * config/aarch64/iterators.md (VDQV_L): New mode iterator.
15599 (unspec): Add UNSPEC_SADDLV, UNSPEC_UADDLV.
15600 (Vwstype): New mode attribute.
15602 (VWIDE_S): Likewise.
15603 (USADDLV): New int iterator.
15604 (su): Handle UNSPEC_SADDLV, UNSPEC_UADDLV.
15606 2021-01-29 Jonathan Wright <jonathan.wright@arm.com>
15608 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_lane[q]
15609 builtin generator macros.
15610 * config/aarch64/aarch64-simd.md (aarch64_vec_<su>mlsl_lane<Qlane>):
15612 * config/aarch64/arm_neon.h (vmlsl_lane_s16): Use RTL builtin
15613 instead of inline asm.
15614 (vmlsl_lane_s32): Likewise.
15615 (vmlsl_lane_u16): Likewise.
15616 (vmlsl_lane_u32): Likewise.
15617 (vmlsl_laneq_s16): Likewise.
15618 (vmlsl_laneq_s32): Likewise.
15619 (vmlsl_laneq_u16): Likewise.
15620 (vmlsl_laneq_u32): Likewise.
15622 2021-01-29 Richard Biener <rguenther@suse.de>
15624 * doc/invoke.texi (--param max-gcse-memory): Document unit
15626 * gcse.c (gcse_or_cprop_is_too_expensive): Adjust.
15627 * params.opt (--param max-gcse-memory): Adjust default and
15628 document unit of size.
15630 2021-01-29 Richard Biener <rguenther@suse.de>
15632 PR rtl-optimization/98863
15633 * gcse.c (gcse_or_cprop_is_too_expensive): Use unsigned
15634 HOST_WIDE_INT for the memory estimate.
15636 2021-01-29 Bin Cheng <bin.cheng@linux.alibaba.com>
15637 Richard Biener <rguenther@suse.de>
15639 PR tree-optimization/97627
15640 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
15641 Do not analyze fake edges.
15643 2021-01-29 Richard Biener <rguenther@suse.de>
15645 PR rtl-optimization/98144
15646 * df.h (df_mir_bb_info): Add con_visited member.
15647 * df-problems.c (df_mir_alloc): Initialize con_visited,
15648 do not fully populate IN and OUT.
15649 (df_mir_reset): Likewise.
15650 (df_mir_confluence_0): Set con_visited.
15651 (df_mir_confluence_n): Properly handle implicitely
15652 fully populated IN and OUT as designated by con_visited
15653 and update con_visited accordingly.
15655 2021-01-29 Jakub Jelinek <jakub@redhat.com>
15658 * config/arm/vec-common.md (mve_vshlq_<supf><mode>,
15659 vashl<mode>3, vashr<mode>3, vlshr<mode>3): Add
15660 && !TARGET_REALLY_IWMMXT to conditions.
15662 2021-01-29 Jakub Jelinek <jakub@redhat.com>
15665 * cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing
15668 2021-01-28 Marek Polacek <polacek@redhat.com>
15671 * stor-layout.c (finalize_type_size): If we reset TYPE_USER_ALIGN in
15672 the main variant, maybe reset it in its variants too.
15673 * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
15674 (check_aligned_type): Check if TYPE_USER_ALIGN match.
15676 2021-01-28 Christophe Lyon <christophe.lyon@linaro.org>
15679 * config/arm/arm.c (arm_rtx_costs_internal): Adjust cost of vector
15680 of constant zero for comparisons.
15682 2021-01-28 Michael Meissner <meissner@linux.ibm.com>
15684 * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Add
15685 support for mapping built-in function names for long double
15686 built-in functions if long double is IEEE 128-bit.
15688 2021-01-28 Jonathan Wright <jonathan.wright@arm.com>
15690 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_n
15691 builtin generator macros.
15692 * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_n<mode>):
15694 * config/aarch64/arm_neon.h (vmlsl_n_s16): Use RTL builtin
15695 instead of inline asm.
15696 (vmlsl_n_s32): Likewise.
15697 (vmlsl_n_u16): Likewise.
15698 (vmlsl_n_u32): Likewise.
15700 2021-01-28 Jonathan Wright <jonathan.wright@arm.com>
15702 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_n
15703 builtin generator macros.
15704 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>):
15706 * config/aarch64/arm_neon.h (vmlal_n_s16): Use RTL builtin
15707 instead of inline asm.
15708 (vmlal_n_s32): Likewise.
15709 (vmlal_n_u16): Likewise.
15710 (vmlal_n_u32): Likewise.
15712 2021-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15714 * config/aarch64/aarch64-simd-builtins.def (shrn2): Define
15716 * config/aarch64/aarch64-simd.md (aarch64_shrn2<mode>_insn_le):
15718 (aarch64_shrn2<mode>_insn_be): Likewise.
15719 (aarch64_shrn2<mode>): Likewise.
15720 * config/aarch64/arm_neon.h (vshrn_high_n_s16): Reimlplement
15722 (vshrn_high_n_s32): Likewise.
15723 (vshrn_high_n_s64): Likewise.
15724 (vshrn_high_n_u16): Likewise.
15725 (vshrn_high_n_u32): Likewise.
15726 (vshrn_high_n_u64): Likewise.
15728 2021-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15730 * config/aarch64/aarch64-simd-builtins.def (shrn): Define
15732 * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le):
15734 (aarch64_shrn<mode>_insn_be): Likewise.
15735 (aarch64_shrn<mode>): Likewise.
15736 * config/aarch64/arm_neon.h (vshrn_n_s16): Reimplement using
15738 (vshrn_n_s32): Likewise.
15739 (vshrn_n_s64): Likewise.
15740 (vshrn_n_u16): Likewise.
15741 (vshrn_n_u32): Likewise.
15742 (vshrn_n_u64): Likewise.
15743 * config/aarch64/iterators.md (vn_mode): New mode attribute.
15745 2021-01-28 Richard Biener <rguenther@suse.de>
15747 PR rtl-optimization/80960
15748 * dse.c (check_mem_read_rtx): Call get_addr on the
15751 2021-01-28 Xionghu Luo <luoxhu@linux.ibm.com>
15752 David Edelsohn <dje.gcc@gmail.com>
15755 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15756 Don't generate VIEW_CONVERT_EXPR for fcode ALTIVEC_BUILTIN_VEC_INSERT
15758 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
15760 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Remove the
15761 wrapper call rs6000_expand_vector_set_var for cleanup. Call
15762 rs6000_expand_vector_set_var_p9 and rs6000_expand_vector_set_var_p8
15764 (rs6000_expand_vector_set_var): Delete.
15765 (rs6000_expand_vector_set_var_p9): Make static.
15766 (rs6000_expand_vector_set_var_p8): Make static.
15768 2021-01-28 Xing GUO <higuoxing@gmail.com>
15770 * common/config/riscv/riscv-common.c
15771 (riscv_subset_list::parsing_subset_version): Fix -march option parsing
15772 when `p` extension exists.
15774 2021-01-27 Vladimir N. Makarov <vmakarov@redhat.com>
15776 PR rtl-optimization/97684
15777 * ira.c (ira): Call ira_set_pseudo_classes before
15778 update_equiv_regs when it is necessary.
15780 2021-01-27 Jakub Jelinek <jakub@redhat.com>
15783 * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Use
15784 %w0, %w1 and %2 instead of %0, %1 and %2.
15786 2021-01-27 Aaron Sawdey <acsawdey@linux.ibm.com>
15788 * config/rs6000/genfusion.pl: New script to generate
15789 define_insn_and_split patterns so combine can arrange fused
15790 instructions next to each other.
15791 * config/rs6000/fusion.md: New file, generated fused instruction
15792 patterns for combine.
15793 * config/rs6000/predicates.md (const_m1_to_1_operand): New predicate.
15794 (non_update_memory_operand): New predicate.
15795 * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_P10_FUSION and
15796 OPTION_MASK_P10_FUSION_LD_CMPI to ISA_3_1_MASKS_SERVER and
15798 * config/rs6000/rs6000-protos.h (address_is_non_pfx_d_or_x): Add
15800 * config/rs6000/rs6000.c (rs6000_option_override_internal):
15801 Automatically set OPTION_MASK_P10_FUSION and
15802 OPTION_MASK_P10_FUSION_LD_CMPI if target is power10.
15803 (rs600_opt_masks): Allow -mpower10-fusion
15804 in function attributes.
15805 (address_is_non_pfx_d_or_x): New function.
15806 * config/rs6000/rs6000.h: Add MASK_P10_FUSION.
15807 * config/rs6000/rs6000.md: Include fusion.md.
15808 * config/rs6000/rs6000.opt: Add -mpower10-fusion
15809 and -mpower10-fusion-ld-cmpi.
15810 * config/rs6000/t-rs6000: Add dependencies involving fusion.md.
15812 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
15814 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal
15815 builtin generator macros.
15816 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal<mode>):
15818 (aarch64_<su>mlal<mode>): This.
15819 * config/aarch64/arm_neon.h (vmlal_s8): Use RTL builtin
15820 instead of inline asm.
15821 (vmlal_s16): Likewise.
15822 (vmlal_s32): Likewise.
15823 (vmlal_u8): Likewise.
15824 (vmlal_u16): Likewise.
15825 (vmlal_u32): Likewise.
15827 2021-01-27 Richard Biener <rguenther@suse.de>
15829 PR tree-optimization/98854
15830 * tree-vect-slp.c (vect_build_slp_tree_2): Also build
15831 PHIs from scalars when the number of CTORs matches the
15832 number of children.
15834 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
15836 * config/aarch64/aarch64-simd-builtins.def: Add mls_n builtin
15838 * config/aarch64/aarch64-simd.md (*aarch64_mls_elt_merge<mode>):
15840 (aarch64_mls_n<mode>): This.
15841 * config/aarch64/arm_neon.h (vmls_n_s16): Use RTL builtin
15843 (vmls_n_s32): Likewise.
15844 (vmls_n_u16): Likewise.
15845 (vmls_n_u32): Likewise.
15846 (vmlsq_n_s16): Likewise.
15847 (vmlsq_n_s32): Likewise.
15848 (vmlsq_n_u16): Likewise.
15849 (vmlsq_n_u32): Likewise.
15851 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
15853 * config/aarch64/aarch64-simd-builtins.def: Add mls builtin
15855 * config/aarch64/arm_neon.h (vmls_s8): Use RTL builtin rather
15857 (vmls_s16): Likewise.
15858 (vmls_s32): Likewise.
15859 (vmls_u8): Likewise.
15860 (vmls_u16): Likewise.
15861 (vmls_u32): Likewise.
15862 (vmlsq_s8): Likewise.
15863 (vmlsq_s16): Likewise.
15864 (vmlsq_s32): Likewise.
15865 (vmlsq_u8): Likewise.
15866 (vmlsq_u16): Likewise.
15867 (vmlsq_u32): Likewise.
15869 2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
15871 * config/aarch64/aarch64-simd-builtins.def: Add mla_n builtin
15873 * config/aarch64/aarch64-simd.md (*aarch64_mla_elt_merge<mode>):
15875 (aarch64_mla_n<mode>): This.
15876 * config/aarch64/arm_neon.h (vmla_n_s16): Use RTL builtin
15878 (vmla_n_s32): Likewise.
15879 (vmla_n_u16): Likewise.
15880 (vmla_n_u32): Likewise.
15881 (vmlaq_n_s16): Likewise.
15882 (vmlaq_n_s32): Likewise.
15883 (vmlaq_n_u16): Likewise.
15884 (vmlaq_n_u32): Likewise.
15886 2021-01-27 liuhongt <hongtao.liu@intel.com>
15889 * config/i386/sse.md (sse2_gt<mode>3): Drop !TARGET_XOP in condition.
15890 (*sse2_eq<mode>3): Ditto.
15892 2021-01-27 Jakub Jelinek <jakub@redhat.com>
15894 * tree-pass.h (PROP_trees): Rename to ...
15895 (PROP_gimple): ... this.
15896 * cfgexpand.c (pass_data_expand): Replace PROP_trees with PROP_gimple.
15897 * passes.c (execute_function_dump, execute_function_todo,
15898 execute_one_ipa_transform_pass, execute_one_pass): Likewise.
15899 * varpool.c (ctor_for_folding): Likewise.
15901 2021-01-27 Jakub Jelinek <jakub@redhat.com>
15903 PR tree-optimization/97260
15904 * varpool.c: Include tree-pass.h.
15905 (ctor_for_folding): In GENERIC return DECL_INITIAL for TREE_READONLY
15906 non-TREE_SIDE_EFFECTS automatic variables.
15908 2021-01-26 Paul Fee <paul.f.fee@gmail.com>
15910 * doc/cpp.texi (__cplusplus): Document value for -std=c++23
15912 * doc/invoke.texi: Document -std=c++23 and -std=gnu++23.
15913 * dwarf2out.c (highest_c_language): Recognise C++20 and C++23.
15914 (gen_compile_unit_die): Recognise C++23.
15916 2021-01-26 Jakub Jelinek <jakub@redhat.com>
15919 * dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int
15922 2021-01-26 Jakub Jelinek <jakub@redhat.com>
15925 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
15926 Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt)
15927 and INTVAL (mask). Add && INTVAL (mask) > 0 condition.
15929 2021-01-26 Richard Biener <rguenther@suse.de>
15931 * gimple-pretty-print.c (dump_binary_rhs): Handle
15932 VEC_WIDEN_{PLUS,MINUS}_{LO,HI}_EXPR.
15934 2021-01-26 Richard Biener <rguenther@suse.de>
15936 PR middle-end/98726
15937 * tree.h (vector_cst_int_elt): Remove.
15938 * tree.c (vector_cst_int_elt): Use poly_wide_int for computations,
15941 2021-01-26 Andrew Stubbs <ams@codesourcery.com>
15943 * config/gcn/gcn.c (gcn_expand_reduc_scalar): Use move instructions
15944 for V64DFmode min/max reductions.
15946 2021-01-26 Jakub Jelinek <jakub@redhat.com>
15948 * dwarf2asm.c (dw2_assemble_integer): Handle size twice as large
15949 as DWARF2_ADDR_SIZE if x is not a scalar int by emitting it as
15950 two halves, one with x and the other with const0_rtx, ordered
15951 depending on endianity.
15953 2021-01-26 Alexandre Oliva <oliva@adacore.com>
15955 * gimplify.c (gimplify_decl_expr): Skip asan marking calls for
15956 temporaries not seen in binding block, and not about to be
15957 added as gimple variables.
15959 2021-01-25 Martin Sebor <msebor@redhat.com>
15962 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust warning text.
15964 2021-01-25 Martin Liska <mliska@suse.cz>
15966 * value-prof.c (get_nth_most_common_value): Use %s instead
15969 2021-01-25 Jakub Jelinek <jakub@redhat.com>
15972 * configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG): Only define if
15973 readelf -wi is able to read the emitted .debug_info back.
15974 * configure: Regenerated.
15976 2021-01-25 Martin Liska <mliska@suse.cz>
15978 PR gcov-profile/98739
15979 * common.opt: Add missing sign symbol.
15980 * value-prof.c (get_nth_most_common_value): Restore handling
15981 of PROFILE_REPRODUCIBILITY_PARALLEL_RUNS and
15982 PROFILE_REPRODUCIBILITY_MULTITHREADED.
15984 2021-01-25 Richard Biener <rguenther@suse.de>
15986 PR middle-end/98807
15987 * tree.c (vector_element_bits): Always use precision of
15988 the element type for boolean vectors.
15990 2021-01-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
15992 * config/rtems.h (STARTFILE_SPEC): Remove qnolinkcmds.
15993 (ENDFILE_SPEC): Evaluate qnolinkcmds.
15995 2021-01-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
15997 * config/rtems.h (STARTFILE_SPEC): Remove nostdlib and
15998 nostartfiles handling since this is already done by
15999 LINK_COMMAND_SPEC. Evaluate qnolinkcmds.
16000 (ENDFILE_SPEC): Remove nostdlib and nostartfiles handling since this
16001 is already done by LINK_COMMAND_SPEC.
16002 (LIB_SPECS): Remove nostdlib and nodefaultlibs handling since
16003 this is already done by LINK_COMMAND_SPEC. Remove qnolinkcmds
16006 2021-01-25 Jakub Jelinek <jakub@redhat.com>
16009 * fold-const-call.c (host_size_t_cst_p): Renamed to ...
16010 (size_t_cst_p): ... this. Check and store unsigned HOST_WIDE_INT
16011 value rather than host size_t.
16012 (fold_const_call): Change type of s2 from size_t to
16013 unsigned HOST_WIDE_INT. Use size_t_cst_p instead of
16014 host_size_t_cst_p. For strncmp calls, pass MIN (s2, SIZE_MAX)
16015 instead of s2 as last argument.
16017 2021-01-25 Tamar Christina <tamar.christina@arm.com>
16019 * config/arm/iterators.md (rotsplit1, rotsplit2, conj_op, fcmac1,
16020 VCMLA_OP, VCMUL_OP): New.
16021 * config/arm/mve.md (mve_vcmlaq<mve_rot><mode>): Support vec_dup 0.
16022 * config/arm/neon.md (cmul<conj_op><mode>3): New.
16023 * config/arm/unspecs.md (UNSPEC_VCMLA_CONJ, UNSPEC_VCMLA180_CONJ,
16024 UNSPEC_VCMUL_CONJ): New.
16025 * config/arm/vec-common.md (cmul<conj_op><mode>3, arm_vcmla<rot><mode>,
16026 cml<fcmac1><conj_op><mode>4): New.
16028 2021-01-23 Jakub Jelinek <jakub@redhat.com>
16031 * config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute.
16033 2021-01-22 Jonathan Wright <jonathan.wright@arm.com>
16035 * config/aarch64/aarch64-simd-builtins.def: Add mla builtin
16037 * config/aarch64/arm_neon.h (vmla_s8): Use RTL builtin rather
16039 (vmla_s16): Likewise.
16040 (vmla_s32): Likewise.
16041 (vmla_u8): Likewise.
16042 (vmla_u16): Likewise.
16043 (vmla_u32): Likewise.
16044 (vmlaq_s8): Likewise.
16045 (vmlaq_s16): Likewise.
16046 (vmlaq_s32): Likewise.
16047 (vmlaq_u8): Likewise.
16048 (vmlaq_u16): Likewise.
16049 (vmlaq_u32): Likewise.
16051 2021-01-22 David Malcolm <dmalcolm@redhat.com>
16053 * doc/invoke.texi (GCC_EXTRA_DIAGNOSTIC_OUTPUT): Add @findex
16056 2021-01-22 Jakub Jelinek <jakub@redhat.com>
16059 * dwarf2out.c (output_file_names): For -gdwarf-5, if there are no
16060 filenames to emit, still emit the required 0 index directory and
16061 filename entries that match DW_AT_comp_dir and DW_AT_name of the
16064 2021-01-22 Marek Polacek <polacek@redhat.com>
16067 * doc/invoke.texi: Update C++ ABI Version 15 description.
16069 2021-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16071 PR tree-optimization/98766
16072 * tree-ssa-math-opts.c (convert_mult_to_fma): Use maybe_le when
16073 comparing against type size with param_avoid_fma_max_bits.
16075 2021-01-22 Richard Biener <rguenther@suse.de>
16077 PR middle-end/98793
16078 * tree.c (vector_element_bits): Key single-bit bool vector on
16079 integer mode rather than not vector mode.
16081 2021-01-22 Xionghu Luo <luoxhu@linux.ibm.com>
16084 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
16085 Generate ARRAY_REF(VIEW_CONVERT_EXPR) for P8 and later
16087 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): Update
16088 to call different path for P8 and P9.
16089 (rs6000_expand_vector_set_var_p9): New function.
16090 (rs6000_expand_vector_set_var_p8): New function.
16092 2021-01-22 Xionghu Luo <luoxhu@linux.ibm.com>
16096 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
16097 Ajdust variable index vec_insert from address dereference to
16098 ARRAY_REF(VIEW_CONVERT_EXPR) tree expression.
16099 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
16101 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): New function.
16103 2021-01-22 Martin Liska <mliska@suse.cz>
16105 PR gcov-profile/98739
16106 * profile.c (compute_value_histograms): Drop time profile for
16107 -fprofile-reproducible=multithreaded.
16109 2021-01-22 Nathan Sidwell <nathan@acm.org>
16111 * gcc.c (process_command): Don't check OPT_SPECIAL_input_file
16114 2021-01-22 Richard Biener <rguenther@suse.de>
16116 PR middle-end/98773
16117 * tree-data-ref.c (initalize_matrix_A): Revert previous
16118 change, retaining failing on HOST_WIDE_INT_MIN CHREC_RIGHT.
16120 2021-01-22 Jakub Jelinek <jakub@redhat.com>
16122 PR tree-optimization/90248
16123 * match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X),
16124 X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove
16126 (X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X),
16127 X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications.
16129 2021-01-22 Jakub Jelinek <jakub@redhat.com>
16131 PR tree-optimization/98255
16132 * tree-dfa.c (get_ref_base_and_extent): For ARRAY_REFs, sign
16133 extend index - low_bound from sizetype's precision rather than index
16135 (get_addr_base_and_unit_offset_1): Likewise.
16136 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Likewise.
16137 * gimple-fold.c (fold_const_aggregate_ref_1): Likewise.
16139 2021-01-22 Richard Biener <rguenther@suse.de>
16141 PR tree-optimization/98786
16142 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid
16143 adding new uses of abnormals. Verify we deal with a conditional
16146 2021-01-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16149 * optc-save-gen.awk: Add arm_fp16_format to checked_options.
16151 2021-01-22 liuhongt <hongtao.liu@intel.com>
16155 * config/i386/sse.md (VI_128_256): New mode iterator.
16156 (*avx_cmp<mode>3_1, *avx_cmp<mode>3_2, *avx_cmp<mode>3_3,
16157 *avx_cmp<mode>3_4, *avx2_eq<mode>3, *avx2_pcmp<mode>3_1,
16158 *avx2_pcmp<mode>3_2, *avx2_gt<mode>3): New
16159 define_insn_and_split to lower avx512 vector comparison to avx
16160 version when dest is vector.
16161 (*<avx512>_cmp<mode>3,*<avx512>_cmp<mode>3,*<avx512>_ucmp<mode>3):
16162 define_insn_and_split for negating the comparison result.
16163 * config/i386/predicates.md (float_vector_all_ones_operand):
16165 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
16166 general NOT operator without UNSPEC_MASKOP.
16168 2021-01-21 Vladimir N. Makarov <vmakarov@redhat.com>
16170 PR rtl-optimization/98777
16171 * lra-int.h (lra_pmode_pseudo): New extern.
16172 * lra.c (lra_pmode_pseudo): New global.
16174 * lra-eliminations.c (eliminate_regs_in_insn): Use it.
16176 2021-01-21 Ilya Leoshkevich <iii@linux.ibm.com>
16178 * fwprop.c (fwprop_propagation::classify_result): Allow
16179 (subreg (mem)) simplifications.
16181 2021-01-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16183 * config/aarch64/aarch64-simd.md (aarch64_sqdml<SBINQOPS:as>l<mode>):
16185 (aarch64_sqdmlal<mode>): ... This...
16186 (aarch64_sqdmlsl<mode>): ... And this.
16187 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Split into...
16188 (aarch64_sqdmlal_lane<mode>): ... This...
16189 (aarch64_sqdmlsl_lane<mode>): ... And this.
16190 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Split into...
16191 (aarch64_sqdmlsl_laneq<mode>): ... This...
16192 (aarch64_sqdmlal_laneq<mode>): ... And this.
16193 (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Split into...
16194 (aarch64_sqdmlsl_n<mode>): ... This...
16195 (aarch64_sqdmlal_n<mode>): ... And this.
16196 (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Split into...
16197 (aarch64_sqdmlal2<mode>_internal): ... This...
16198 (aarch64_sqdmlsl2<mode>_internal): ... And this.
16200 2021-01-21 Christophe Lyon <christophe.lyon@linaro.org>
16202 * config/arm/arm_mve.h (__arm_vcmpneq_s8): Fix return type.
16204 2021-01-21 Andrea Corallo <andrea.corallo@arm.com>
16207 * doc/sourcebuild.texi (arm_thumb2_no_arm_v8_1_lob): Document.
16209 2021-01-21 liuhongt <hongtao.liu@intel.com>
16211 PR rtl-optimization/98694
16212 * regcprop.c (copy_value): If SRC had been assigned a mode
16213 narrower than the copy, we can't link DEST into the chain even
16214 they have same hard_regno_nregs(i.e. HImode/SImode in i386
16217 2021-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16219 * config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>):
16220 Convert to define_insn_and_split. Split into simple move when moving
16223 2021-01-20 Segher Boessenkool <segher@kernel.crashing.org>
16225 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Change assert.
16226 Adjust comment. Simplify code.
16228 2021-01-20 Jakub Jelinek <jakub@redhat.com>
16231 * dwarf2out.c (reset_indirect_string): Also reset indirect strings
16232 with DW_FORM_line_strp form.
16233 (prune_unused_types_update_strings): Don't add into debug_str_hash
16234 indirect strings with DW_FORM_line_strp form.
16235 (adjust_name_comp_dir): New function.
16236 (dwarf2out_finish): Call it on CU DIEs after resetting
16237 debug_line_str_hash.
16239 2021-01-20 Vladimir N. Makarov <vmakarov@redhat.com>
16241 PR rtl-optimization/98722
16242 * lra-eliminations.c (eliminate_regs_in_insn): Check that target
16243 has no 3-op add insn to transform insns containing two pluses.
16245 2021-01-20 Richard Biener <rguenther@suse.de>
16247 * hwint.h (add_hwi): New function.
16248 (mul_hwi): Likewise.
16249 * tree-data-ref.c (initialize_matrix_A): Properly translate
16250 tree constants and avoid HOST_WIDE_INT_MIN.
16251 (lambda_matrix_row_add): Avoid undefined integer overflow
16252 and return true on such overflow.
16253 (lambda_matrix_right_hermite): Handle overflow from
16254 lambda_matrix_row_add gracefully. Simplify previous fix.
16255 (analyze_subscript_affine_affine): Likewise.
16257 2021-01-20 Eugene Rozenfeld <erozen@microsoft.com>
16259 PR tree-optimization/96674
16260 * match.pd: New patterns: x < y || y == XXX_MIN --> x <= y - 1
16261 x >= y && y != XXX_MIN --> x > y - 1
16263 2021-01-20 Richard Sandiford <richard.sandiford@arm.com>
16265 PR tree-optimization/98535
16266 * tree-vect-slp.c (duplicate_and_interleave): Use quick_grow_cleared.
16267 If the high and low permutes are the same, remove the high permutes
16268 from the working set and only continue with the low ones.
16270 2021-01-20 Jakub Jelinek <jakub@redhat.com>
16272 PR tree-optimization/98721
16273 * builtins.c (access_ref::inform_access): Don't assume
16274 SSA_NAME_IDENTIFIER must be non-NULL. Print messages about
16275 object whenever allocfn is NULL, rather than only when DECL_P
16276 is true. Use %qE instead of %qD for that. Formatting fixes.
16278 2021-01-20 Richard Biener <rguenther@suse.de>
16280 PR tree-optimization/98758
16281 * tree-data-ref.c (int_divides_p): Use lambda_int arguments.
16282 (lambda_matrix_right_hermite): Avoid undefinedness with
16283 signed integer abs and multiplication.
16284 (analyze_subscript_affine_affine): Use lambda_int.
16286 2021-01-20 David Malcolm <dmalcolm@redhat.com>
16289 * dwarf2out.c (output_line_info): Rename static variable
16290 "generation", moving it out of the function to...
16291 (output_line_info_generation): New.
16292 (init_sections_and_labels): Likewise, renaming the variable to...
16293 (init_sections_and_labels_generation): New.
16294 (dwarf2out_c_finalize): Reset the new variables.
16296 2021-01-19 Martin Sebor <msebor@redhat.com>
16298 PR middle-end/98664
16299 * tree-ssa-live.c (remove_unused_scope_block_p): Keep scopes for
16300 all functions, even if they're not declared artificial or inline.
16301 * tree.c (tree_inlined_location): Use macro expansion location
16302 only if scope traversal fails to expose one.
16304 2021-01-19 Richard Sandiford <richard.sandiford@arm.com>
16306 PR rtl-optimization/92294
16307 * alias.c (compare_base_symbol_refs): Take an extra parameter
16308 and add the distance between two symbols to it. Enshrine in
16309 comments that -1 means "either 0 or 1, but we can't tell
16310 which at compile time".
16311 (memrefs_conflict_p): Update call accordingly.
16312 (rtx_equal_for_memref_p): Likewise. Take the distance between symbols
16315 2021-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16317 * config/aarch64/aarch64-simd-builtins.def (sqshl, uqshl,
16318 sqrshl, uqrshl, sqadd, uqadd, sqsub, uqsub, suqadd, usqadd, sqmovn,
16319 uqmovn, sqxtn2, uqxtn2, sqabs, sqneg, sqdmlal, sqdmlsl, sqdmlal_lane,
16320 sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq, sqdmlal_n, sqdmlsl_n,
16321 sqdmlal2, sqdmlsl2, sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq,
16322 sqdmlsl2_laneq, sqdmlal2_n, sqdmlsl2_n, sqdmull, sqdmull_lane,
16323 sqdmull_laneq, sqdmull_n, sqdmull2, sqdmull2_lane, sqdmull2_laneq,
16324 sqdmull2_n, sqdmulh, sqrdmulh, sqdmulh_lane, sqdmulh_laneq,
16325 sqrdmulh_lane, sqrdmulh_laneq, sqshrun_n, sqrshrun_n, sqshrn_n,
16326 uqshrn_n, sqrshrn_n, uqrshrn_n, sqshlu_n, sqshl_n, uqshl_n, sqrdmlah,
16327 sqrdmlsh, sqrdmlah_lane, sqrdmlsh_lane, sqrdmlah_laneq, sqrdmlsh_laneq,
16328 sqmovun): Use NONE flags.
16330 2021-01-19 Richard Biener <rguenther@suse.de>
16333 * ipa-modref.c (analyze_stmt): Only record a summary for a
16336 2021-01-19 Richard Biener <rguenther@suse.de>
16338 PR middle-end/98638
16339 * tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT.
16341 2021-01-19 Daniel Hellstrom <daniel@gaisler.com>
16343 * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
16344 built-in define __FIX_LEON3FT_TN0018.
16346 2021-01-19 Richard Biener <rguenther@suse.de>
16349 * tree-inline.c (tree_function_versioning): Set input_location
16350 to UNKNOWN_LOCATION throughout the function.
16352 2021-01-19 Tobias Burnus <tobias@codesourcery.com>
16355 * omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr.
16357 2021-01-19 Martin Jambor <mjambor@suse.cz>
16360 * ipa-sra.c (ssa_name_only_returned_p): New parameter fun. Check
16361 whether non-call exceptions allow removal of a statement.
16362 (isra_analyze_call): Pass the appropriate function to
16363 ssa_name_only_returned_p.
16365 2021-01-19 Geng Qi <gengqi@linux.alibaba.com>
16367 * config/riscv/arch-canonicalize (longext_sort): New function for
16368 sorting 'multi-letter'.
16369 * config/riscv/multilib-generator: Adjusting the loop of 'alt' in
16370 'alts'. The 'arch' may not be the first of 'alts'.
16371 (_expand_combination): Add underline for the 'ext' without '*'.
16372 This is because, a single-letter extension can always be treated well
16373 with a '_' prefix, but it cannot be separated out if it is appended
16376 2021-01-18 Vladimir N. Makarov <vmakarov@redhat.com>
16379 * ira.c (ira): Skip abnormal critical edge splitting.
16381 2021-01-18 Jakub Jelinek <jakub@redhat.com>
16383 PR tree-optimization/98727
16384 * tree-ssa-math-opts.c (match_arith_overflow): Fix up computation of
16385 second .MUL_OVERFLOW operand for signed multiplication with overflow
16386 checking if the second operand of multiplication is not constant.
16388 2021-01-18 David Edelsohn <dje.gcc@gmail.com>
16390 * doc/invoke.texi (-gdwarf): TPF defaults to version 2 and AIX
16391 defaults to version 4.
16393 2021-01-18 David Malcolm <dmalcolm@redhat.com>
16395 * attribs.h (fndecl_dealloc_argno): New decl.
16396 * builtins.c (call_dealloc_argno): Split out second half of
16398 (fndecl_dealloc_argno): New.
16399 * doc/extend.texi (Common Function Attributes): Document the
16400 interaction between the analyzer and the malloc attribute.
16401 * doc/invoke.texi (Static Analyzer Options): Likewise.
16403 2021-01-17 David Edelsohn <dje.gcc@gmail.com>
16405 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Override
16406 dwarf_version to 4.
16407 * config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
16409 2021-01-17 Martin Jambor <mjambor@suse.cz>
16412 * cgraph.c (clone_of_p): Check also former_clone_of as we climb
16415 2021-01-17 Mark Wielaard <mark@klomp.org>
16417 * common.opt (gdwarf-): Init(5).
16418 * doc/invoke.texi (-gdwarf): Document default to 5.
16420 2021-01-16 Kwok Cheung Yeung <kcy@codesourcery.com>
16422 * builtin-types.def
16423 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
16425 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR):
16426 ...this. Add extra argument.
16427 * gimplify.c (omp_default_clause): Ensure that event handle is
16428 firstprivate in a task region.
16429 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DETACH.
16430 (gimplify_adjust_omp_clauses): Likewise.
16431 * omp-builtins.def (BUILT_IN_GOMP_TASK): Change function type to
16432 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR.
16433 * omp-expand.c (expand_task_call): Add GOMP_TASK_FLAG_DETACH to flags
16434 if detach clause specified. Add detach argument when generating
16436 * omp-low.c (scan_sharing_clauses): Setup data environment for detach
16438 (finish_taskreg_scan): Move field for variable containing the event
16439 handle to the front of the struct.
16440 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DETACH. Fix
16442 * tree-nested.c (convert_nonlocal_omp_clauses): Handle
16443 OMP_CLAUSE_DETACH clause.
16444 (convert_local_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
16445 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_DETACH.
16446 * tree.c (omp_clause_num_ops): Add entry for OMP_CLAUSE_DETACH.
16448 (omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH. Fix
16450 (walk_tree_1): Handle OMP_CLAUSE_DETACH.
16452 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
16454 * config/nios2/t-rtems: Reset all MULTILIB_* variables. Shorten
16455 multilib directory names. Use MULTILIB_REQUIRED instead of
16456 MULTILIB_EXCEPTIONS. Add -mhw-mul -mhw-mulx -mhw-div
16457 -mcustom-fpu-cfg=fph2 multilib.
16459 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
16461 * config/nios2/nios2.c (NIOS2_FPU_CONFIG_NUM): Adjust value.
16462 (nios2_init_fpu_configs): Provide register values for new
16463 -mcustom-fpu-cfg=fph2 option variant.
16464 * doc/invoke.texi (-mcustom-fpu-cfg=fph2): Document new option
16467 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
16469 * config/nios2/nios2.c (nios2_custom_check_insns): Remove
16470 custom instruction warnings.
16472 2021-01-16 Jakub Jelinek <jakub@redhat.com>
16474 PR tree-optimization/96669
16475 * match.pd ((CST << x) & 1 -> x == 0): New simplification.
16477 2021-01-16 Jakub Jelinek <jakub@redhat.com>
16479 PR tree-optimization/96271
16480 * passes.def: Pass false argument to first two pass_cd_dce
16481 instances and true to last instance. Add comment that
16482 last instance rewrites no longer addressed locals.
16483 * tree-ssa-dce.c (pass_cd_dce): Add update_address_taken_p member and
16485 (pass_cd_dce::set_pass_param): New method.
16486 (pass_cd_dce::execute): Return TODO_update_address_taken from
16487 last cd_dce instance.
16489 2021-01-15 Carl Love <cel@us.ibm.com>
16491 * config/rs6000/altivec.h (vec_mulh, vec_div, vec_dive, vec_mod):
16493 * config/rs6000/altivec.md (VIlong): Move define to file vsx.md.
16494 * config/rs6000/rs6000-builtin.def (DIVES_V4SI, DIVES_V2DI,
16495 DIVEU_V4SI, DIVEU_V2DI, DIVS_V4SI, DIVS_V2DI, DIVU_V4SI,
16496 DIVU_V2DI, MODS_V2DI, MODS_V4SI, MODU_V2DI, MODU_V4SI,
16497 MULHS_V2DI, MULHS_V4SI, MULHU_V2DI, MULHU_V4SI, MULLD_V2DI):
16498 Add builtin define.
16499 (MULH, DIVE, MOD): Add new BU_P10_OVERLOAD_2 definitions.
16500 * config/rs6000/rs6000-call.c (VSX_BUILTIN_VEC_DIV,
16501 VSX_BUILTIN_VEC_DIVE, P10_BUILTIN_VEC_MOD, P10_BUILTIN_VEC_MULH):
16502 New overloaded definitions.
16503 (builtin_function_type) [P10V_BUILTIN_DIVEU_V4SI,
16504 P10V_BUILTIN_DIVEU_V2DI, P10V_BUILTIN_DIVU_V4SI,
16505 P10V_BUILTIN_DIVU_V2DI, P10V_BUILTIN_MODU_V2DI,
16506 P10V_BUILTIN_MODU_V4SI, P10V_BUILTIN_MULHU_V2DI,
16507 P10V_BUILTIN_MULHU_V4SI]: Add case
16508 statement for builtins.
16509 * config/rs6000/rs6000.md (bits): Add new attribute sizes V4SI, V2DI.
16510 * config/rs6000/vsx.md (VIlong): Moved from config/rs6000/altivec.md.
16511 (UNSPEC_VDIVES, UNSPEC_VDIVEU): New unspec definitions.
16512 (vsx_mul_v2di): Add if TARGET_POWER10 statement.
16513 (vsx_udiv_v2di): Add if TARGET_POWER10 statement.
16514 (dives_<mode>, diveu_<mode>, div<mode>3, uvdiv<mode>3,
16515 mods_<mode>, modu_<mode>, mulhs_<mode>, mulhu_<mode>, mulv2di3):
16516 Add define_insn, mode is VIlong.
16517 * doc/extend.texi (vec_mulh, vec_mul, vec_div, vec_dive, vec_mod):
16518 Add builtin descriptions.
16520 2021-01-15 Eric Botcazou <ebotcazou@adacore.com>
16522 * final.c (final_start_function_1): Reset force_source_line.
16524 2021-01-15 Jakub Jelinek <jakub@redhat.com>
16526 PR tree-optimization/96669
16527 * match.pd (((1 << A) & 1) != 0 -> A == 0,
16528 ((1 << A) & 1) == 0 -> A != 0): Generalize for 1s replaced by
16529 possibly different power of two constants and to right shift too.
16531 2021-01-15 Jakub Jelinek <jakub@redhat.com>
16533 PR tree-optimization/96681
16534 * match.pd ((x < 0) ^ (y < 0) to (x ^ y) < 0): New simplification.
16535 ((x >= 0) ^ (y >= 0) to (x ^ y) < 0): Likewise.
16536 ((x < 0) ^ (y >= 0) to (x ^ y) >= 0): Likewise.
16537 ((x >= 0) ^ (y < 0) to (x ^ y) >= 0): Likewise.
16539 2021-01-15 Alexandre Oliva <oliva@adacore.com>
16541 * opts.c (gen_command_line_string): Exclude -dumpbase-ext.
16543 2021-01-15 Tamar Christina <tamar.christina@arm.com>
16545 * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4,
16546 cmul<conj_op><mode>3): New.
16547 * config/aarch64/iterators.md (UNSPEC_FCMUL,
16548 UNSPEC_FCMUL180, UNSPEC_FCMLA_CONJ, UNSPEC_FCMLA180_CONJ,
16549 UNSPEC_CMLA_CONJ, UNSPEC_CMLA180_CONJ, UNSPEC_CMUL, UNSPEC_CMUL180,
16550 FCMLA_OP, FCMUL_OP, conj_op, rotsplit1, rotsplit2, fcmac1, sve_rot1,
16551 sve_rot2, SVE2_INT_CMLA_OP, SVE2_INT_CMUL_OP, SVE2_INT_CADD_OP): New.
16552 (rot): Add UNSPEC_FCMUL, UNSPEC_FCMUL180.
16553 (rot_op): Renamed to conj_op.
16554 * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4,
16555 cmul<conj_op><mode>3): New.
16556 * config/aarch64/aarch64-sve2.md (cml<fcmac1><conj_op><mode>4,
16557 cmul<conj_op><mode>3): New.
16559 2021-01-15 David Malcolm <dmalcolm@redhat.com>
16563 (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
16564 Escape the tempfile name when constructing the expected output.
16566 2021-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16568 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlsl_hi<mode>):
16570 (aarch64_<su>mlsl_hi<mode>): ... This.
16571 (aarch64_<su>mlsl_hi<mode>): Define.
16572 (*aarch64_<su>mlsl<mode): Rename to...
16573 (aarch64_<su>mlsl<mode): ... This.
16574 * config/aarch64/aarch64-simd-builtins.def (smlsl, umlsl,
16575 smlsl_hi, umlsl_hi): Define builtins.
16576 * config/aarch64/arm_neon.h (vmlsl_high_s8, vmlsl_high_s16,
16577 vmlsl_high_s32, vmlsl_high_u8, vmlsl_high_u16, vmlsl_high_u32,
16578 vmlsl_s8, vmlsl_s16, vmlsl_s32, vmlsl_u8,
16579 vmlsl_u16, vmlsl_u32): Reimplement with builtins.
16581 2021-01-15 Uroš Bizjak <ubizjak@gmail.com>
16583 * config/i386/i386-c.c (ix86_target_macros):
16584 Use cpp_define_formatted for __SIZEOF_FLOAT80__ definition.
16586 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
16589 * config.gcc (aarch64*-*-*): Add aarch64-cc-fusion.o to extra_objs.
16590 * Makefile.in (RTL_SSA_H): New variable.
16591 * config/aarch64/t-aarch64 (aarch64-cc-fusion.o): New rule.
16592 * config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Declare.
16593 * config/aarch64/aarch64-passes.def: Add pass_cc_fusion after
16595 * config/aarch64/aarch64-cc-fusion.cc: New file.
16597 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
16599 * recog.h (insn_change_watermark::~insn_change_watermark): Avoid
16600 calling cancel_changes for changes that no longer exist.
16602 2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
16604 * rtl-ssa/functions.h (function_info::ref_defs): Rename to...
16605 (function_info::reg_defs): ...this.
16606 * rtl-ssa/member-fns.inl (function_info::ref_defs): Rename to...
16607 (function_info::reg_defs): ...this.
16609 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
16612 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
16614 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
16617 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
16620 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
16622 2021-01-15 Richard Biener <rguenther@suse.de>
16624 PR tree-optimization/96376
16625 * tree-vect-stmts.c (get_load_store_type): Disregard alignment
16626 for VMAT_INVARIANT.
16628 2021-01-15 Martin Liska <mliska@suse.cz>
16630 * doc/install.texi: Document that some tests need pytest module.
16631 * doc/sourcebuild.texi: Likewise.
16633 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
16636 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
16638 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
16640 * config/arm/mve.md (mve_vshrq_n_s<mode>_imm): New entry.
16641 (mve_vshrq_n_u<mode>_imm): Likewise.
16642 * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Move to ...
16643 * config/arm/vec-common.md: ... here.
16645 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
16647 * config/arm/mve.md (mve_vshlq_<supf><mode>): Move to
16649 * config/arm/neon.md (vashl<mode>3): Delete.
16650 * config/arm/vec-common.md (mve_vshlq_<supf><mode>): New.
16651 (vasl<mode>3): New expander.
16653 2021-01-15 Richard Biener <rguenther@suse.de>
16655 PR tree-optimization/98685
16656 * tree-vect-slp.c (vect_schedule_slp_node): Refactor handling
16657 of vector extern defs.
16659 2021-01-14 David Malcolm <dmalcolm@redhat.com>
16662 * diagnostic.c (diagnostic_kind_text): Break out this array
16664 (diagnostic_build_prefix): ...here.
16665 (fancy_abort): Detect when diagnostic_initialize has not yet been
16666 called and fall back to a minimal implementation of printing the
16667 ICE, rather than segfaulting in internal_error.
16669 2021-01-14 David Malcolm <dmalcolm@redhat.com>
16671 * diagnostic.c (diagnostic_initialize): Eliminate
16672 parseable_fixits_p in favor of initializing extra_output_kind from
16673 GCC_EXTRA_DIAGNOSTIC_OUTPUT.
16674 (convert_column_unit): New function, split out from...
16675 (diagnostic_converted_column): ...this.
16676 (print_parseable_fixits): Add "column_unit" and "tabstop" params.
16677 Use them to call convert_column_unit on the column values.
16678 (diagnostic_report_diagnostic): Eliminate conditional on
16679 parseable_fixits_p in favor of a switch statement on
16680 extra_output_kind, passing the appropriate values to the new
16681 params of print_parseable_fixits.
16682 (selftest::test_print_parseable_fixits_none): Update for new
16683 params of print_parseable_fixits.
16684 (selftest::test_print_parseable_fixits_insert): Likewise.
16685 (selftest::test_print_parseable_fixits_remove): Likewise.
16686 (selftest::test_print_parseable_fixits_replace): Likewise.
16687 (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
16689 (selftest::diagnostic_c_tests): Call it.
16690 * diagnostic.h (enum diagnostics_extra_output_kind): New.
16691 (diagnostic_context::parseable_fixits_p): Delete field in favor
16693 (diagnostic_context::extra_output_kind): ...this new field.
16694 * doc/invoke.texi (Environment Variables): Add
16695 GCC_EXTRA_DIAGNOSTIC_OUTPUT.
16696 * opts.c (common_handle_option): Update handling of
16697 OPT_fdiagnostics_parseable_fixits for change to diagnostic_context
16700 2021-01-14 Tamar Christina <tamar.christina@arm.com>
16702 * tree-vect-slp-patterns.c (class complex_operations_pattern,
16703 complex_operations_pattern::matches,
16704 complex_operations_pattern::recognize,
16705 complex_operations_pattern::build): New.
16706 (slp_patterns): Use it.
16708 2021-01-14 Tamar Christina <tamar.christina@arm.com>
16710 * internal-fn.def (COMPLEX_FMS, COMPLEX_FMS_CONJ): New.
16711 * optabs.def (cmls_optab, cmls_conj_optab): New.
16712 * doc/md.texi: Document them.
16713 * tree-vect-slp-patterns.c (class complex_fms_pattern,
16714 complex_fms_pattern::matches, complex_fms_pattern::recognize,
16715 complex_fms_pattern::build): New.
16717 2021-01-14 Tamar Christina <tamar.christina@arm.com>
16719 * internal-fn.def (COMPLEX_FMA, COMPLEX_FMA_CONJ): New.
16720 * optabs.def (cmla_optab, cmla_conj_optab): New.
16721 * doc/md.texi: Document them.
16722 * tree-vect-slp-patterns.c (vect_match_call_p,
16723 class complex_fma_pattern, vect_slp_reset_pattern,
16724 complex_fma_pattern::matches, complex_fma_pattern::recognize,
16725 complex_fma_pattern::build): New.
16727 2021-01-14 Tamar Christina <tamar.christina@arm.com>
16729 * internal-fn.def (COMPLEX_MUL, COMPLEX_MUL_CONJ): New.
16730 * optabs.def (cmul_optab, cmul_conj_optab): New.
16731 * doc/md.texi: Document them.
16732 * tree-vect-slp-patterns.c (vect_match_call_complex_mla,
16733 vect_normalize_conj_loc, is_eq_or_top, vect_validate_multiplication,
16734 vect_build_combine_node, class complex_mul_pattern,
16735 complex_mul_pattern::matches, complex_mul_pattern::recognize,
16736 complex_mul_pattern::build): New.
16738 2021-01-14 Tamar Christina <tamar.christina@arm.com>
16740 * tree-vect-slp.c (optimize_load_redistribution_1): New.
16741 (optimize_load_redistribution, vect_is_slp_load_node): New.
16742 (vect_match_slp_patterns): Use it.
16744 2021-01-14 Tamar Christina <tamar.christina@arm.com>
16746 * tree-vect-slp-patterns.c (complex_add_pattern::build):
16749 2021-01-14 Thomas Schwinge <thomas@codesourcery.com>
16751 * config/gcn/mkoffload.c (main): Create an offload image only in
16752 64-bit configurations.
16754 2021-01-14 H.J. Lu <hjl.tools@gmail.com>
16757 * config/i386/i386-options.c (ix86_option_override_internal):
16758 Issue an error for -fcf-protection with CF_BRANCH when compiling
16759 for 32-bit non-TARGET_CMOV targets.
16761 2021-01-14 Uroš Bizjak <ubizjak@gmail.com>
16764 * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
16765 Remove declaration and initialization of shadow variable "ret".
16766 (ix86_option_override_internal): Remove delcaration of
16767 shadow variable "i". Redeclare shadowed variable to unsigned.
16768 * common/config/i386/i386-common.c (pta_size): Redeclare to unsigned.
16769 * config/i386/i386-builtins.c (get_builtin_code_for_version):
16770 Update for redeclaration.
16771 * config/i386/i386.h (pta_size): Ditto.
16773 2021-01-14 Richard Biener <rguenther@suse.de>
16775 PR tree-optimization/98674
16776 * tree-data-ref.c (base_supports_access_fn_components_p): New.
16777 (initialize_data_dependence_relation): For two bases without
16778 possible access fns resort to type size equality when determining
16779 shape compatibility.
16781 2021-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16784 * config/arm/arm_neon.h: Replace calls to __builtin_vcge* by
16785 <=, >= operators in vcle and vcge intrinsics respectively.
16786 * config/arm/arm_neon_builtins.def: Remove entry for
16789 2021-01-14 Uroš Bizjak <ubizjak@gmail.com>
16792 * config/i386/i386-options.c (ix86_function_specific_save):
16793 Remove redundant assignment to opts->x_ix86_branch_cost.
16794 * config/i386/i386.c (ix86_prefetch_sse):
16795 Rename from x86_prefetch_sse. Update all uses.
16796 * config/i386/i386.h: Update for rename.
16797 * config/i386/i386-options.h: Ditto.
16799 2021-01-14 Jakub Jelinek <jakub@redhat.com>
16802 * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3,
16803 *sse4_1_zero_extendv4hiv4si2_3, *sse4_1_zero_extendv2siv2di2_3):
16804 Use Bm instead of m for non-avx. Add isa attribute.
16806 2021-01-14 Jakub Jelinek <jakub@redhat.com>
16808 PR tree-optimization/96688
16809 * match.pd (~(X >> Y) -> ~X >> Y): New simplification if
16810 ~X can be simplified.
16812 2021-01-14 Richard Sandiford <richard.sandiford@arm.com>
16814 * tree-vect-stmts.c (vect_model_load_cost): Account for unused
16815 IFN_LOAD_LANES results.
16817 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16819 * config/aarch64/aarch64-simd.md (aarch64_<su>xtl<mode>):
16821 (aarch64_xtn<mode>): Likewise.
16822 * config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn):
16825 * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
16827 (vmovl_s16): Likewise.
16828 (vmovl_s32): Likewise.
16829 (vmovl_u8): Likewise.
16830 (vmovl_u16): Likewise.
16831 (vmovl_u32): Likewise.
16832 (vmovn_s16): Likewise.
16833 (vmovn_s32): Likewise.
16834 (vmovn_s64): Likewise.
16835 (vmovn_u16): Likewise.
16836 (vmovn_u32): Likewise.
16837 (vmovn_u64): Likewise.
16839 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16841 * config/aarch64/aarch64-simd.md (aarch64_<su>qxtn2<mode>_le):
16843 (aarch64_<su>qxtn2<mode>_be): Likewise.
16844 (aarch64_<su>qxtn2<mode>): Likewise.
16845 * config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2):
16847 * config/aarch64/iterators.md (SAT_TRUNC): Define code_iterator.
16848 (su): Handle ss_truncate and us_truncate.
16849 * config/aarch64/arm_neon.h (vqmovn_high_s16): Reimplement using
16851 (vqmovn_high_s32): Likewise.
16852 (vqmovn_high_s64): Likewise.
16853 (vqmovn_high_u16): Likewise.
16854 (vqmovn_high_u32): Likewise.
16855 (vqmovn_high_u64): Likewise.
16857 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16859 * config/aarch64/aarch64-simd.md (aarch64_xtn2<mode>_le):
16861 (aarch64_xtn2<mode>_be): Likewise.
16862 (aarch64_xtn2<mode>): Likewise.
16863 * config/aarch64/aarch64-simd-builtins.def (xtn2): Define
16865 * config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using
16867 (vmovn_high_s32): Likewise.
16868 (vmovn_high_s64): Likewise.
16869 (vmovn_high_u16): Likewise.
16870 (vmovn_high_u32): Likewise.
16871 (vmovn_high_u64): Likewise.
16873 2021-01-13 Stafford Horne <shorne@gmail.com>
16875 * config/or1k/or1k.h (ASM_PREFERRED_EH_DATA_FORMAT): New macro.
16877 2021-01-13 Stafford Horne <shorne@gmail.com>
16879 * config/or1k/linux.h (TARGET_ASM_FILE_END): Define macro.
16881 2021-01-13 Stafford Horne <shorne@gmail.com>
16883 * config/or1k/or1k.h (TARGET_CPU_CPP_BUILTINS): Add builtin
16884 define for __or1k_hard_float__.
16886 2021-01-13 Stafford Horne <shorne@gmail.com>
16888 * config/or1k/or1k.h (NO_PROFILE_COUNTERS): Define as 1.
16889 (PROFILE_HOOK): Define to call _mcount.
16890 (FUNCTION_PROFILER): Change from abort to no-op.
16892 2021-01-13 Jakub Jelinek <jakub@redhat.com>
16894 PR tree-optimization/96691
16895 * match.pd ((~X | C) ^ D -> (X | C) ^ (~D ^ C),
16896 (~X & C) ^ D -> (X & C) ^ (D ^ C)): New simplifications if
16897 (~D ^ C) or (D ^ C) can be simplified.
16899 2021-01-13 Richard Biener <rguenther@suse.de>
16901 PR tree-optimization/92645
16902 * match.pd (BIT_FIELD_REF to conversion): Delay canonicalization
16903 until after vector lowering.
16905 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
16907 * config/aarch64/aarch64-sve.md (fnma<mode>4): Extend from SVE_FULL_I
16909 (@aarch64_pred_fnma<mode>, cond_fnma<mode>, *cond_fnma<mode>_2)
16910 (*cond_fnma<mode>_4, *cond_fnma<mode>_any): Likewise.
16912 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
16914 * config/aarch64/aarch64-sve.md (fma<mode>4): Extend from SVE_FULL_I
16916 (@aarch64_pred_fma<mode>, cond_fma<mode>, *cond_fma<mode>_2)
16917 (*cond_fma<mode>_4, *cond_fma<mode>_any): Likewise.
16919 2021-01-13 Richard Biener <rguenther@suse.de>
16921 PR tree-optimization/92645
16922 * tree-vect-slp.c (vect_build_slp_tree_1): Relax supported
16923 BIT_FIELD_REF argument.
16924 (vect_build_slp_tree_2): Record the desired vector type
16925 on the external vector def.
16926 (vectorizable_slp_permutation): Handle required punning
16927 of existing vector defs.
16929 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
16931 * rtl-ssa/accesses.h (def_lookup): Fix order of comparison results.
16933 2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
16935 * config/sh/sh.md (movsf_ie): Remove operands[2] test.
16937 2021-01-13 Samuel Thibault <samuel.thibault@ens-lyon.org>
16939 * config.gcc [$target == *-*-gnu*]: Enable
16940 'default_gnu_indirect_function'.
16942 2021-01-13 Jakub Jelinek <jakub@redhat.com>
16945 * optabs.c (expand_vec_perm_const): Don't force v0 and v1 into
16946 registers before calling targetm.vectorize.vec_perm_const, only after
16948 * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): Handle
16949 two argument permutation when one operand is zero vector and only
16950 after that force operands into registers.
16951 * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1): New
16952 define_insn_and_split pattern.
16953 (*avx512bw_zero_extendv32qiv32hi2_1): Likewise.
16954 (*avx512f_zero_extendv16hiv16si2_1): Likewise.
16955 (*avx2_zero_extendv8hiv8si2_1): Likewise.
16956 (*avx512f_zero_extendv8siv8di2_1): Likewise.
16957 (*avx2_zero_extendv4siv4di2_1): Likewise.
16958 * config/mips/mips.c (mips_vectorize_vec_perm_const): Force operands
16960 * config/arm/arm.c (arm_vectorize_vec_perm_const): Likewise.
16961 * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Likewise.
16962 * config/ia64/ia64.c (ia64_vectorize_vec_perm_const): Likewise.
16963 * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const): Likewise.
16964 * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const): Likewise.
16965 * config/gcn/gcn.c (gcn_vectorize_vec_perm_const): Likewise. Use std::swap.
16967 2021-01-13 Martin Liska <mliska@suse.cz>
16969 PR tree-optimization/98455
16970 * gimple-if-to-switch.cc (condition_info::record_phi_mapping):
16971 Record also virtual PHIs.
16972 (pass_if_to_switch::execute): Return TODO_cleanup_cfg only
16975 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
16977 * doc/invoke.texi (C++ Modules): Fix typos.
16979 2021-01-13 Richard Biener <rguenther@suse.de>
16981 PR tree-optimization/98640
16982 * tree-ssa-sccvn.c (visit_nary_op): Do not try to
16983 handle plus or minus from a truncated operand to be
16986 2021-01-13 Jakub Jelinek <jakub@redhat.com>
16989 * config/i386/i386.md (*btr<mode>_1, *btr<mode>_2): New
16990 define_insn_and_split patterns.
16991 (splitter after *btr<mode>_2): New splitter.
16993 2021-01-13 Martin Liska <mliska@suse.cz>
16996 * cgraphunit.c (analyze_functions): Remove dead code.
16998 2021-01-13 Qian Jianhua <qianjh@cn.fujitsu.com>
17000 * config/aarch64/aarch64-cost-tables.h (a64fx_extra_costs): New.
17001 * config/aarch64/aarch64.c (a64fx_addrcost_table): New.
17002 (a64fx_regmove_cost, a64fx_vector_cost): New.
17003 (a64fx_tunings): Use the new added cost tables.
17005 2021-01-13 Jakub Jelinek <jakub@redhat.com>
17008 * config/i386/predicates.md (pmovzx_parallel): New predicate.
17009 * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): New
17010 define_insn_and_split pattern.
17011 (*sse4_1_zero_extendv4hiv4si2_3): Likewise.
17012 (*sse4_1_zero_extendv2siv2di2_3): Likewise.
17014 2021-01-13 Julian Brown <julian@codesourcery.com>
17016 * config/gcn/gcn.c (gcn_conditional_register_usage): Remove dead code
17017 to fix v0 register.
17019 2021-01-13 Julian Brown <julian@codesourcery.com>
17021 * config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live
17024 2021-01-13 Julian Brown <julian@codesourcery.com>
17026 * config/gcn/gcn-valu.md (recip<mode>2<exec>, recip<mode>2): Use unspec
17027 for reciprocal-approximation instructions.
17028 (div<mode>3): Use fused multiply-accumulate operations for reciprocal
17029 refinement and division result.
17030 * config/gcn/gcn.md (UNSPEC_RCP): New unspec constant.
17032 2021-01-13 Julian Brown <julian@codesourcery.com>
17034 * config/gcn/gcn-valu.md (subdf): Rename to...
17037 2021-01-12 Martin Liska <mliska@suse.cz>
17039 * gcov.c (source_info::debug): Fix printf format for 32-bit hosts.
17041 2021-01-12 Andrea Corallo <andrea.corallo@arm.com>
17043 * function-abi.h: Fix typo.
17045 2021-01-12 Christophe Lyon <christophe.lyon@linaro.org>
17049 * config/arm/arm.h (ARM_HAVE_NEON_V8QI_LDST): New macro.
17050 (ARM_HAVE_NEON_V16QI_LDST, ARM_HAVE_NEON_V4HI_LDST): Likewise.
17051 (ARM_HAVE_NEON_V8HI_LDST, ARM_HAVE_NEON_V2SI_LDST): Likewise.
17052 (ARM_HAVE_NEON_V4SI_LDST, ARM_HAVE_NEON_V4HF_LDST): Likewise.
17053 (ARM_HAVE_NEON_V8HF_LDST, ARM_HAVE_NEON_V4BF_LDST): Likewise.
17054 (ARM_HAVE_NEON_V8BF_LDST, ARM_HAVE_NEON_V2SF_LDST): Likewise.
17055 (ARM_HAVE_NEON_V4SF_LDST, ARM_HAVE_NEON_DI_LDST): Likewise.
17056 (ARM_HAVE_NEON_V2DI_LDST): Likewise.
17057 (ARM_HAVE_V8QI_LDST, ARM_HAVE_V16QI_LDST): Likewise.
17058 (ARM_HAVE_V4HI_LDST, ARM_HAVE_V8HI_LDST): Likewise.
17059 (ARM_HAVE_V2SI_LDST, ARM_HAVE_V4SI_LDST, ARM_HAVE_V4HF_LDST): Likewise.
17060 (ARM_HAVE_V8HF_LDST, ARM_HAVE_V4BF_LDST, ARM_HAVE_V8BF_LDST): Likewise.
17061 (ARM_HAVE_V2SF_LDST, ARM_HAVE_V4SF_LDST, ARM_HAVE_DI_LDST): Likewise.
17062 (ARM_HAVE_V2DI_LDST): Likewise.
17063 * config/arm/mve.md (*movmisalign<mode>_mve_store): New pattern.
17064 (*movmisalign<mode>_mve_load): New pattern.
17065 * config/arm/neon.md (movmisalign<mode>): Move to ...
17066 * config/arm/vec-common.md: ... here.
17068 2021-01-12 Vladimir N. Makarov <vmakarov@redhat.com>
17071 * lra-eliminations.c (eliminate_regs_in_insn): Add transformation
17072 of pattern 'plus (plus (hard reg, const), pseudo)'.
17074 2021-01-12 Richard Biener <rguenther@suse.de>
17076 PR tree-optimization/98550
17077 * tree-vect-slp.c (vect_record_max_nunits): Check whether
17078 the group size is a multiple of the vector element count.
17079 (vect_build_slp_tree_1): When we need to fail because
17080 the vector type choosen causes unrolling do so lazily
17081 without affecting matches only at the end to guide group splitting.
17083 2021-01-12 Martin Liska <mliska@suse.cz>
17086 * optc-save-gen.awk: Compare also n_target_save vars with
17089 2021-01-12 Martin Liska <mliska@suse.cz>
17091 * gcov.c (source_info::debug): New.
17092 (print_usage): Add --debug (-D) option.
17093 (process_args): Likewise.
17094 (generate_results): Call src->debug after
17095 accumulate_line_counts.
17096 (read_graph_file): Properly assign id for EXIT_BLOCK.
17097 * profile.c (branch_prob): Dump function body before it is
17100 2021-01-12 Jakub Jelinek <jakub@redhat.com>
17102 PR tree-optimization/98629
17103 * tree-ssa-math-opts.c (arith_overflow_check_p): Don't update use_stmt
17104 unless returning non-zero.
17106 2021-01-12 Jakub Jelinek <jakub@redhat.com>
17108 PR tree-optimization/95731
17109 * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Also optimize
17110 x < 0 && y < 0 && z < 0 into (x | y | z) < 0 for signed x, y, z.
17111 (optimize_range_tests): Call optimize_range_tests_cmp_bitwise
17112 only after optimize_range_tests_var_bound.
17114 2021-01-12 Jakub Jelinek <jakub@redhat.com>
17116 * configure.ac: Ensure c/Make-lang.in comes first in @all_lang_makefrags@.
17117 * configure: Regenerated.
17119 2021-01-12 liuhongt <hongtao.liu@intel.com>
17122 * config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS):
17124 * config/i386/i386-expand.c (ix86_expand_sse_comi): Delete
17127 2021-01-12 Alexandre Oliva <oliva@adacore.com>
17129 * ssa-iterators.h (end_imm_use_stmt_traverse): Forward
17131 (auto_end_imm_use_stmt_traverse): New struct.
17132 (FOR_EACH_IMM_USE_STMT): Use it.
17133 (BREAK_FROM_IMM_USE_STMT, RETURN_FROM_IMM_USE_STMT): Remove,
17135 * gimple-ssa-strength-reduction.c: ... here, ...
17136 * graphite-scop-detection.c: ... here, ...
17137 * ipa-modref.c, ipa-pure-const.c, ipa-sra.c: ... here, ...
17138 * tree-predcom.c, tree-ssa-ccp.c: ... here, ...
17139 * tree-ssa-dce.c, tree-ssa-dse.c: ... here, ...
17140 * tree-ssa-loop-ivopts.c, tree-ssa-math-opts.c: ... here, ...
17141 * tree-ssa-phiprop.c, tree-ssa.c: ... here, ...
17142 * tree-vect-slp.c: ... and here, ...
17143 * doc/tree-ssa.texi: ... and the example here.
17145 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
17147 * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3): Extend from
17148 SVE_FULL_I to SVE_I. Generate an UNSPEC_PRED_X.
17149 (*sdiv_pow2<mode>3): New pattern.
17150 (@cond_<sve_int_op><mode>): Extend from SVE_FULL_I to SVE_I.
17151 Wrap the ASRD in an UNSPEC_PRED_X.
17152 (*cond_<sve_int_op><mode>_2): Likewise. Replace the UNSPEC_PRED_X
17153 predicate with a constant PTRUE, if it isn't already.
17154 (*cond_<sve_int_op><mode>_z): Replace with...
17155 (*cond_<sve_int_op><mode>_any): ...this new pattern.
17157 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
17159 * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2): Extend from
17160 SVE_FULL_I to SVE_I.
17161 (*cond_bic<mode>_any): Likewise.
17163 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
17165 * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart)
17166 (@aarch64_pred_<MUL_HIGHPART:optab><mode>): Extend from SVE_FULL_I
17169 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
17171 * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): Extend from
17172 SVE_FULL_I to SVE_I.
17173 (*aarch64_cond_<su>abd<mode>_2): Likewise.
17174 (*aarch64_cond_<su>abd<mode>_any): Likewise.
17175 (@aarch64_pred_<su>abd<mode>): Likewise. Use UNSPEC_PRED_X
17176 for the max and min but not for the minus.
17177 (*aarch64_cond_<su>abd<mode>_3): New pattern.
17179 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
17181 * config/aarch64/iterators.md (SVE_24I): New iterator.
17182 * config/aarch64/aarch64-sve.md (*aarch64_adr<mode>_shift): Extend from
17183 SVE_FULL_SDI to SVE_24I. Use containers rather than elements.
17185 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
17187 * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_BINARY:optab><mode>)
17188 (*cond_<SVE_INT_BINARY:optab><mode>_2): Extend from SVE_FULL_I
17190 (*cond_<SVE_INT_BINARY:optab><mode>_3): Likewise.
17191 (*cond_<SVE_INT_BINARY:optab><mode>_any): Likewise.
17192 (*cond_<SVE_INT_BINARY:optab><mode>_2_const): Likewise.
17193 (*cond_<SVE_INT_BINARY:optab><mode>_any_const): Likewise.
17195 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
17197 * config/aarch64/aarch64-sve.md (<SVE_INT_BINARY_IMM:optab><mode>3)
17198 (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>)
17199 (*post_ra_<SVE_INT_BINARY_IMM:optab><mode>3): Extend from SVE_FULL_I
17202 2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
17204 * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3)
17205 (v<ASHIFT:optab><mode>3, @aarch64_pred_<optab><mode>)
17206 (*post_ra_v<ASHIFT:optab><mode>3): Extend from SVE_FULL_I to SVE_I.
17208 2021-01-11 Martin Liska <mliska@suse.cz>
17211 * symtab-clones.h (clone_info::release): Release
17212 symtab::m_clones with ggc_delete as it's a GGC memory.
17214 2021-01-11 Matthias Klose <doko@ubuntu.com>
17216 * Makefile.in (LINK_PROGRESS): Show the link target.
17218 2021-01-11 Richard Biener <rguenther@suse.de>
17220 PR tree-optimization/91403
17221 * tree-vect-data-refs.c (vect_analyze_group_access_1): Cap
17222 single-element interleaving group size at 4096 elements.
17224 2021-01-11 Richard Biener <rguenther@suse.de>
17226 PR tree-optimization/98526
17227 * tree-vect-loop.c (vect_model_reduction_cost): Remove costing
17228 of the actual reduction op for the regular case.
17229 (vectorizable_reduction): Cost the stmts
17230 vect_transform_reduction produces here.
17232 2021-01-11 Andreas Krebbel <krebbel@linux.ibm.com>
17234 * tree-ssa-forwprop.c (simplify_vector_constructor): For
17235 big-endian, use UNPACK[_FLOAT]_HI.
17237 2021-01-11 Tamar Christina <tamar.christina@arm.com>
17239 * tree-vect-slp-patterns.c (class complex_pattern,
17240 class complex_add_pattern): Add parameters to matches.
17241 (complex_add_pattern::build): Free memory.
17242 (complex_add_pattern::matches): Move validation end of match.
17243 (complex_add_pattern::recognize): Likewise.
17245 2021-01-11 Tamar Christina <tamar.christina@arm.com>
17247 * tree-vect-slp-patterns.c (linear_loads_p): Fix externals.
17249 2021-01-11 Tamar Christina <tamar.christina@arm.com>
17251 * tree-vect-slp-patterns.c (is_linear_load_p): Fix ambiguity.
17253 2021-01-11 Jakub Jelinek <jakub@redhat.com>
17255 PR tree-optimization/95867
17256 * tree-ssa-math-opts.h: New header.
17257 * tree-ssa-math-opts.c: Include tree-ssa-math-opts.h.
17258 (powi_as_mults): No longer static. Use build_one_cst instead of
17259 build_real. Formatting fix.
17260 * tree-ssa-reassoc.c: Include tree-ssa-math-opts.h.
17261 (attempt_builtin_powi): Handle multiplication reassociation without
17262 powi_fndecl using powi_as_mults.
17263 (reassociate_bb): For integral types don't require
17264 -funsafe-math-optimizations to call attempt_builtin_powi.
17266 2021-01-11 Jakub Jelinek <jakub@redhat.com>
17268 PR tree-optimization/95852
17269 * tree-ssa-math-opts.c (maybe_optimize_guarding_check): Change
17270 mul_stmts parameter type to vec<gimple *> &. Before cond_stmt
17271 allow in the bb any of the stmts in that vector, div_stmt and
17272 up to 3 cast stmts.
17273 (arith_cast_equal_p): New function.
17274 (arith_overflow_check_p): Add cast_stmt argument, handle signed
17275 multiply overflow checks.
17276 (match_arith_overflow): Adjust caller. Handle signed multiply
17279 2021-01-11 Jakub Jelinek <jakub@redhat.com>
17281 PR tree-optimization/95852
17282 * tree-ssa-math-opts.c (maybe_optimize_guarding_check): New function.
17283 (uaddsub_overflow_check_p): Renamed to ...
17284 (arith_overflow_check_p): ... this. Handle also multiplication
17285 with overflow check.
17286 (match_uaddsub_overflow): Renamed to ...
17287 (match_arith_overflow): ... this. Add cfg_changed argument. Handle
17288 also multiplication with overflow check. Adjust function comment.
17289 (math_opts_dom_walker::after_dom_children): Adjust callers. Call
17290 match_arith_overflow also for MULT_EXPR.
17292 2021-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17294 * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
17295 __builtin_convertvector.
17296 (vmovl_s16): Likewise.
17297 (vmovl_s32): Likewise.
17298 (vmovl_u8): Likewise.
17299 (vmovl_u16): Likewise.
17300 (vmovl_u32): Likewise.
17301 (vmovn_s16): Likewise.
17302 (vmovn_s32): Likewise.
17303 (vmovn_s64): Likewise.
17304 (vmovn_u16): Likewise.
17305 (vmovn_u32): Likewise.
17306 (vmovn_u64): Likewise.
17308 2021-01-11 Martin Liska <mliska@suse.cz>
17310 * gimple-if-to-switch.cc (struct condition_info): Use auto_var.
17311 (if_chain::is_beneficial): Delete clusters
17312 (find_conditions): Make second argument of conditions_in_bbs a
17313 pointer so that we control over it's lifetime.
17314 (pass_if_to_switch::execute): Delete them.
17316 2021-01-11 Kewen Lin <linkw@linux.ibm.com>
17318 * ira.c (move_unallocated_pseudos): Check other_reg and skip if
17321 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
17323 * config/vax/vax.md (cc): Remove mode attribute.
17324 (subst_<cc>, subst_f<cc>): Rename to...
17325 (subst_<mode>, subst_f<VAXccnz:mode>): ... these respectively.
17326 (*cbranch<VAXint:mode>4_<VAXcc:mode>): Update for `cc' removal.
17327 (*cbranch<VAXfp:mode>4_<VAXccnz:mode>): Likewise.
17328 (*branch_<mode>, *branch_<mode>_reversed): Likewise.
17330 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
17332 * config/vax/vax.md (subst_f<cc>): Add mode to operands and
17333 `const_double_zero'.
17335 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
17337 * config/pdp11/pdp11.md (PDPfp): New mode iterator.
17338 (fcc_cc, fcc_ccnz): Use it. Add mode to `const_double_zero' and
17341 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
17343 * genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero'
17345 * read-rtl.c (rtx_reader::read_rtx_code): Handle machine mode
17346 with `const_double_zero'.
17347 * doc/rtl.texi (Constant Expression Types): Document it.
17349 2021-01-09 Jakub Jelinek <jakub@redhat.com>
17352 * tree-cfg.c (verify_gimple_assign_binary): Allow lhs of
17353 POINTER_DIFF_EXPR to be any integral type.
17355 2021-01-09 Jakub Jelinek <jakub@redhat.com>
17357 PR rtl-optimization/98603
17358 * function.c (instantiate_virtual_regs_in_insn): For asm goto
17359 with impossible constraints, drop all SETs, CLOBBERs, drop PARALLEL
17360 if any, set ASM_OPERANDS mode to VOIDmode and change
17361 ASM_OPERANDS_OUTPUT_CONSTRAINT and ASM_OPERANDS_OUTPUT_IDX.
17363 2021-01-09 Alexandre Oliva <oliva@gnu.org>
17366 * final.c (notice_source_line): Narrow down the condition to
17367 skip a line-0 marker.
17369 2021-01-08 Sergei Trofimovich <siarheit@google.com>
17371 * ipa-modref.c (merge_call_side_effects): Fix
17372 linebreak split by reordering two print calls.
17374 2021-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
17376 * config/s390/vector.md (*tf_to_fprx2_0): Rename from
17377 "*mov_tf_to_fprx2_0" for consistency, fix constraint.
17378 (*tf_to_fprx2_1): Rename from "*mov_tf_to_fprx2_1" for
17379 consistency, fix constraint.
17381 2021-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
17383 * config/s390/s390-c.c (s390_def_or_undef_macro): Accept
17384 callables instead of mask values.
17385 (struct target_flag_set_p): New predicate.
17386 (s390_cpu_cpp_builtins_internal): Define or undefine
17387 __LONG_DOUBLE_VX__ macro.
17389 2021-01-08 H.J. Lu <hjl.tools@gmail.com>
17392 * config/i386/i386.c (x86_function_profiler): Use R10 and R11
17393 to call mcount in large model with PIC for NO_PROFILE_COUNTERS
17396 2021-01-08 Richard Biener <rguenther@suse.de>
17398 * tree-ssa-sccvn.c (pass_fre::execute): Reset the SCEV hash table.
17400 2021-01-08 Richard Biener <rguenther@suse.de>
17402 * tree-vect-slp.c (scalar_stmts_to_slp_tree_map_t): Fix.
17403 (vect_build_slp_tree): On cache hit release the matched
17404 scalar stmts vector.
17405 * tree-vect-stmts.c (vectorizable_store): Properly free
17406 vec_oprnds before possibly gathering them again.
17408 2021-01-08 Richard Biener <rguenther@suse.de>
17410 PR tree-optimization/98544
17411 * tree-vect-slp.c (vect_optimize_slp): Always materialize
17412 permutes at a permute node.
17414 2021-01-08 H.J. Lu <hjl.tools@gmail.com>
17417 * config/i386/i386.c (x86_function_profiler): Use R10 to call
17418 mcount in large model. Sorry for large model with PIC.
17420 2021-01-08 Jakub Jelinek <jakub@redhat.com>
17423 * config/i386/i386.opt (ix86_cmodel, ix86_incoming_stack_boundary_arg,
17424 ix86_pmode, ix86_preferred_stack_boundary_arg, ix86_regparm,
17425 ix86_veclibabi_type): Remove x_ prefix, use TargetVariable instead of
17426 TargetSave and initialize for variables with enum types.
17427 (mfentry, mstack-protector-guard-reg=, mstack-protector-guard-offset=,
17428 mstack-protector-guard-symbol=): Add Save.
17429 * config/i386/i386-options.c (ix86_function_specific_save,
17430 ix86_function_specific_restore): Don't save or restore x_ix86_cmodel,
17431 x_ix86_incoming_stack_boundary_arg, x_ix86_pmode,
17432 x_ix86_preferred_stack_boundary_arg, x_ix86_regparm,
17433 x_ix86_veclibabi_type.
17435 2021-01-08 Richard Sandiford <richard.sandiford@arm.com>
17437 * config/aarch64/aarch64-sve.md (*cnot<mode>): Extend from
17438 SVE_FULL_I to SVE_I.
17439 (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
17441 2021-01-08 Richard Sandiford <richard.sandiford@arm.com>
17443 * config/aarch64/aarch64-sve.md (*cond_uxt<mode>_2): Extend from
17444 SVE_FULL_I to SVE_I.
17445 (*cond_uxt<mode>_any): Likewise.
17447 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17449 * config/aarch64/iterators.md (Vwhalf): New iterator.
17450 * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>_3):
17452 (aarch64_<sur>adalp<mode>): ... This. Make more
17454 (<sur>sadv16qi): Adjust callsite of the above.
17455 * config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New
17457 * config/aarch64/arm_neon.h (vpadal_s8): Reimplement using
17459 (vpadal_s16): Likewise.
17460 (vpadal_u8): Likewise.
17461 (vpadal_u16): Likewise.
17462 (vpadalq_s8): Likewise.
17463 (vpadalq_s16): Likewise.
17464 (vpadalq_s32): Likewise.
17465 (vpadalq_u8): Likewise.
17466 (vpadalq_u16): Likewise.
17467 (vpadalq_u32): Likewise.
17469 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17471 * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>_3):
17473 (aarch64_<su>abd<mode>): ... This.
17474 (<sur>sadv16qi): Adjust callsite of the above.
17475 * config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define
17477 * config/aarch64/arm_neon.h (vabd_s8): Reimplement using
17479 (vabd_s16): Likewise.
17480 (vabd_s32): Likewise.
17481 (vabd_u8): Likewise.
17482 (vabd_u16): Likewise.
17483 (vabd_u32): Likewise.
17484 (vabdq_s8): Likewise.
17485 (vabdq_s16): Likewise.
17486 (vabdq_s32): Likewise.
17487 (vabdq_u8): Likewise.
17488 (vabdq_u16): Likewise.
17489 (vabdq_u32): Likewise.
17491 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17493 * config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define
17495 * config/aarch64/arm_neon.h (vaba_s8): Implement using builtin.
17496 (vaba_s16): Likewise.
17497 (vaba_s32): Likewise.
17498 (vaba_u8): Likewise.
17499 (vaba_u16): Likewise.
17500 (vaba_u32): Likewise.
17501 (vabaq_s8): Likewise.
17502 (vabaq_s16): Likewise.
17503 (vabaq_s32): Likewise.
17504 (vabaq_u8): Likewise.
17505 (vabaq_u16): Likewise.
17506 (vabaq_u32): Likewise.
17508 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17510 * config/aarch64/aarch64-simd.md (aba<mode>_3): Rename to...
17511 (aarch64_<su>aba<mode>): ... This. Handle uaba as well.
17512 Change RTL pattern to match.
17514 2021-01-08 Kito Cheng <kito.cheng@sifive.com>
17516 * common/config/riscv/riscv-common.c (riscv_current_subset_list): New.
17517 * config/riscv/riscv-c.c (riscv-subset.h): New.
17518 (INCLUDE_STRING): Define.
17519 (riscv_cpu_cpp_builtins): Add new style architecture extension
17521 * config/riscv/riscv-subset.h (riscv_subset_list::begin): New.
17522 (riscv_subset_list::end): New.
17523 (riscv_current_subset_list): New.
17525 2021-01-08 Kito Cheng <kito.cheng@sifive.com>
17527 * common/config/riscv/riscv-common.c (RISCV_DONT_CARE_VERSION):
17528 Move to riscv-subset.h.
17529 (struct riscv_subset_t): Ditto.
17530 (class riscv_subset_list): Ditto.
17531 * config/riscv/riscv-subset.h (RISCV_DONT_CARE_VERSION): Move
17532 from riscv-common.c.
17533 (struct riscv_subset_t): Ditto.
17534 (class riscv_subset_list): Ditto.
17535 * config/riscv/t-riscv ($(common_out_file)): Add file
17538 2021-01-07 Jakub Jelinek <jakub@redhat.com>
17541 * config/i386/i386.md (*bmi_blsi_<mode>_cmp, *bmi_blsi_<mode>_ccno):
17542 New define_insn patterns.
17544 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
17546 * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_UNARY:optab><mode>)
17547 (*cond_<SVE_INT_UNARY:optab><mode>_2): Extend from SVE_FULL_I to SVE_I.
17548 (*cond_<SVE_INT_UNARY:optab><mode>_any): Likewise.
17550 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
17552 PR tree-optimization/98560
17553 * internal-fn.def (IFN_VCONDU, IFN_VCONDEQ): Use type vec_cond.
17554 * internal-fn.c (vec_cond_mask_direct): Get the data mode from
17556 (vec_cond_direct): Likewise argument 2.
17557 (vec_condu_direct, vec_condeq_direct): Delete.
17558 (expand_vect_cond_optab_fn): Rename to...
17559 (expand_vec_cond_optab_fn): ...this, replacing old macro.
17560 (expand_vec_condu_optab_fn, expand_vec_condeq_optab_fn): Delete.
17561 (expand_vect_cond_mask_optab_fn): Rename to...
17562 (expand_vec_cond_mask_optab_fn): ...this, replacing old macro.
17563 (direct_vec_cond_mask_optab_supported_p): Treat the optab as a
17565 (direct_vec_cond_optab_supported_p): Likewise.
17566 (direct_vec_condu_optab_supported_p): Delete.
17567 (direct_vec_condeq_optab_supported_p): Delete.
17568 * gimple-isel.cc: Include internal-fn.h.
17569 (gimple_expand_vec_cond_expr): Check that IFN_VCONDEQ is supported
17572 2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
17574 PR tree-optimization/98560
17575 * gimple-isel.cc (gimple_expand_vec_cond_expr): If we fail to use
17576 IFN_VCOND{,U,EQ}, fall back on IFN_VCOND_MASK.
17578 2021-01-07 Uroš Bizjak <ubizjak@gmail.com>
17580 * config/i386/i386.md (insn): Merge from plusminus_insn, shift_insn,
17581 rotate_insn and optab code attributes.
17582 Update all uses to merged code attribute.
17583 * config/i386/sse.md: Update all uses to merged code attribute.
17584 * config/i386/mmx.md: Update all uses to merged code attribute.
17586 2021-01-07 Jakub Jelinek <jakub@redhat.com>
17588 PR tree-optimization/98568
17589 * gimple-ssa-store-merging.c (bswap_view_convert): New function.
17590 (bswap_replace): Use it.
17592 2021-01-06 Vladimir N. Makarov <vmakarov@redhat.com>
17594 PR rtl-optimization/97978
17595 * lra-int.h (lra_hard_reg_split_p): New external.
17596 * lra.c (lra_hard_reg_split_p): New global.
17597 (lra): Set up lra_hard_reg_split_p after splitting a hard reg.
17598 * lra-assigns.c (lra_assign): Don't check allocation correctness
17599 after hard reg splitting.
17601 2021-01-06 Martin Sebor <msebor@redhat.com>
17604 * builtins.c (new_delete_mismatch_p): New overload.
17605 (new_delete_mismatch_p (tree, tree)): Call it.
17607 2021-01-06 Alexandre Oliva <oliva@adacore.com>
17609 * Makefile.in (T_GLIMITS_H): New.
17610 (stmp-int-hdrs): Depend on it, use it.
17611 * config/t-vxworks (T_GLIMITS_H): Override it.
17612 (vxw-glimits.h): New.
17614 2021-01-06 Richard Biener <rguenther@suse.de>
17616 PR tree-optimization/98513
17617 * value-range.cc (intersect_ranges): Compare the upper bounds
17618 for the expected relation.
17620 2021-01-06 Gerald Pfeifer <gerald@pfeifer.com>
17623 2020-12-28 Gerald Pfeifer <gerald@pfeifer.com>
17625 * doc/standards.texi (HSAIL): Remove section.
17627 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
17629 * configure: Re-generate.
17631 2021-01-05 Jakub Jelinek <jakub@redhat.com>
17633 * doc/invoke.texi (-std=c++20): Adjust for the publication of
17634 ISO 14882:2020 standard.
17635 * doc/standards.texi: Likewise.
17637 2021-01-05 Jakub Jelinek <jakub@redhat.com>
17639 PR tree-optimization/94802
17640 * expr.h (maybe_optimize_sub_cmp_0): Declare.
17641 * expr.c: Include tree-pretty-print.h and flags.h.
17642 (maybe_optimize_sub_cmp_0): New function.
17643 (do_store_flag): Use it.
17644 * cfgexpand.c (expand_gimple_cond): Likewise.
17646 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
17648 * mux-utils.h (pointer_mux::m_ptr): Tweak description of contents.
17649 * rtlanal.c (simple_regno_set): Tweak description to clarify the
17652 2021-01-05 Richard Biener <rguenther@suse.de>
17654 PR tree-optimization/98516
17655 * tree-vect-slp.c (vect_optimize_slp): Permute the incoming
17656 lanes when materializing on a VEC_PERM node.
17657 (vectorizable_slp_permutation): Dump the permute properly.
17659 2021-01-05 Richard Biener <rguenther@suse.de>
17661 * tree-vect-slp.c (vect_slp_region): Move debug counter
17662 to cover individual subgraphs.
17664 2021-01-05 Richard Biener <rguenther@suse.de>
17666 PR tree-optimization/98428
17667 * tree-vect-slp.c (vect_build_slp_tree_1): Properly reject
17668 vector lane extracts for loop vectorization.
17670 2021-01-05 Jakub Jelinek <jakub@redhat.com>
17672 PR tree-optimization/98514
17673 * tree-ssa-reassoc.c (bb_rank): Change type from long * to
17675 (operand_rank): Change type from hash_map<tree, long> to
17676 hash_map<tree, int64_t>.
17677 (phi_rank): Change return type from long to int64_t.
17678 (loop_carried_phi): Change block_rank variable type from long to
17680 (propagate_rank): Change return type, rank parameter type and
17681 op_rank variable type from long to int64_t.
17682 (find_operand_rank): Change return type from long to int64_t
17683 and change slot variable type from long * to int64_t *.
17684 (insert_operand_rank): Change rank parameter type from long to
17686 (get_rank): Change return type and rank variable type from long to
17687 int64_t. Use PRId64 instead of ld to print the rank.
17688 (init_reassoc): Change rank variable type from long to int64_t
17689 and adjust correspondingly bb_rank and operand_rank initialization.
17691 2021-01-05 Jakub Jelinek <jakub@redhat.com>
17693 PR tree-optimization/96928
17694 * tree-ssa-phiopt.c (xor_replacement): New function.
17695 (tree_ssa_phiopt_worker): Call it.
17697 2021-01-05 Jakub Jelinek <jakub@redhat.com>
17699 PR tree-optimization/96930
17700 * match.pd ((A / (1 << B)) -> (A >> B)): If A is extended
17701 from narrower value which has the same type as 1 << B, perform
17702 the right shift on the narrower value followed by extension.
17704 2021-01-05 Jakub Jelinek <jakub@redhat.com>
17706 PR tree-optimization/96239
17707 * gimple-ssa-store-merging.c (maybe_optimize_vector_constructor): New
17709 (get_status_for_store_merging): Don't return BB_INVALID for blocks
17710 with potential bswap optimizable CONSTRUCTORs.
17711 (pass_store_merging::execute): Optimize vector CONSTRUCTORs with bswap
17714 2021-01-05 Richard Biener <rguenther@suse.de>
17716 PR tree-optimization/98381
17717 * tree.c (vector_element_bits): Properly compute bool vector
17719 * tree-vect-loop.c (vectorizable_live_operation): Properly
17720 compute the last lane bit offset.
17722 2021-01-05 Uroš Bizjak <ubizjak@gmail.com>
17725 * config/i386/sse.md (sse_cvtps2pi): Redefine as define_insn_and_split.
17726 Clear the top 64 bytes of the input XMM register.
17727 (sse_cvttps2pi): Ditto.
17729 2021-01-05 Uroš Bizjak <ubizjak@gmail.com>
17732 * config/i386/xopintrin.h (_mm256_cmov_si256): New.
17734 2021-01-05 H.J. Lu <hjl.tools@gmail.com>
17737 * config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned
17740 2021-01-05 Claudiu Zissulescu <claziss@synopsys.com>
17742 * config/arc/arc.md (maddsidi4_split): Use ACC_REG_FIRST.
17743 (umaddsidi4_split): Likewise.
17745 2021-01-05 liuhongt <hongtao.liu@intel.com>
17748 * config/i386/sse.md (*sse2_pmovskb_zexthisi): New
17749 define_insn_and_split for zero_extend of subreg HI of pmovskb
17751 (*sse2_pmovskb_zexthisi): Add new combine splitters for
17752 zero_extend of not of subreg HI of pmovskb result.
17754 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
17757 * explow.c (convert_memory_address_addr_space_1): Handle UNSPECs
17759 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Use
17760 convert_memory_address to convert symbolic immediates to ptr_mode
17761 before forcing them to memory.
17763 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
17765 PR rtl-optimization/97144
17766 * recog.c (constrain_operands): Initialize matching_operand
17767 for each alternative, rather than only doing it once.
17769 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
17771 PR rtl-optimization/98403
17772 * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Explain
17773 why we don't remove call clobbers.
17774 (function_info::apply_changes_to_insn): Don't attempt to add
17775 call clobbers here.
17777 2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
17779 PR tree-optimization/98371
17780 * tree-vect-loop.c (vect_reanalyze_as_main_loop): New function.
17781 (vect_analyze_loop): If an epilogue loop appears to be cheaper
17782 than the main loop, re-analyze it as a main loop before adopting
17785 2021-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17788 * configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL.
17789 * aclocal.m4, configure: Regenerate.
17790 * Makefile.in (NETLIBS): Define.
17791 (BACKEND): Remove $(CODYLIB).
17793 2021-01-05 Jakub Jelinek <jakub@redhat.com>
17795 PR rtl-optimization/98334
17796 * simplify-rtx.c (simplify_context::simplify_binary_operation_1):
17797 Optimize (X - 1) * Y + Y to X * Y or (X + 1) * Y - Y to X * Y.
17799 2021-01-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
17801 * tree-inline.c (expand_call_inline): Restore input_location.
17802 Return result from recursive call.
17804 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
17806 PR tree-optimization/95401
17807 * config/aarch64/aarch64-sve-builtins.cc
17808 (gimple_folder::load_store_cookie): Use bits rather than bytes
17809 for the alignment argument to IFN_MASK_LOAD and IFN_MASK_STORE.
17810 * gimple-fold.c (gimple_fold_mask_load_store_mem_ref): Likewise.
17811 * tree-vect-stmts.c (vectorizable_store): Likewise.
17812 (vectorizable_load): Likewise.
17814 2021-01-04 Richard Biener <rguenther@suse.de>
17816 PR tree-optimization/98308
17817 * tree-vect-stmts.c (vectorizable_load): Set invariant mask
17820 2021-01-04 Jakub Jelinek <jakub@redhat.com>
17822 PR tree-optimization/95771
17823 * tree-ssa-loop-niter.c (number_of_iterations_popcount): Handle types
17824 with precision smaller than int's precision and types with precision
17825 twice as large as long long. Formatting fixes.
17827 2021-01-04 Richard Biener <rguenther@suse.de>
17829 PR tree-optimization/98464
17830 * tree-ssa-sccvn.c (vn_valueize_for_srt): Rename from ...
17831 (vn_valueize_wrapper): ... this. Temporarily adjust vn_context_bb.
17832 (process_bb): Adjust.
17834 2021-01-04 Matthew Malcomson <matthew.malcomson@arm.com>
17837 * doc/invoke.texi (-fsanitize=address): Fix wording describing
17838 clash with -fsanitize=hwaddress.
17840 2021-01-04 Richard Biener <rguenther@suse.de>
17842 PR tree-optimization/98282
17843 * tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on
17844 invariants as VN_NARY.
17846 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
17849 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Accept
17850 aarch64_simd_reg_or_zero for operand 2. Use the combinez patterns
17851 to handle zero operands.
17853 2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
17855 * config/aarch64/aarch64.c (offset_6bit_signed_scaled_p): New function.
17856 (offset_6bit_unsigned_scaled_p): Fix typo in comment.
17857 (aarch64_sve_prefetch_operand_p): Accept MUL VLs in the range
17860 2021-01-04 Richard Biener <rguenther@suse.de>
17862 PR tree-optimization/98393
17863 * tree-vect-slp.c (vect_build_slp_tree): Properly zero matches
17864 when hitting the limit.
17866 2021-01-04 Richard Biener <rguenther@suse.de>
17868 PR tree-optimization/98291
17869 * tree-vect-loop.c (vectorizable_reduction): Bypass
17870 associativity check for SLP reductions with VF 1.
17872 2021-01-04 Jakub Jelinek <jakub@redhat.com>
17874 PR tree-optimization/96782
17875 * match.pd (x == ~x -> false, x != ~x -> true): New simplifications.
17877 2021-01-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
17879 * collect-utils.c (collect_execute): Check dumppfx.
17880 * collect2.c (maybe_run_lto_and_relink, do_link): Pass atsuffix
17881 to collect_execute.
17882 (do_link): Add new parameter atsuffix.
17883 (main): Handle -dumpdir option. Skip one argument for
17884 -o, -isystem and -B options.
17885 * gcc.c (make_at_file): New helper function.
17886 (close_at_file): Use it.
17888 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
17890 * config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust.
17891 Amend handling for LD64_VERSION fallback defaults.
17893 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
17895 * config.gcc: Compute default version information
17896 from the configured target. Likewise defaults for
17898 * config/darwin10.h: Removed.
17899 * config/darwin12.h: Removed.
17900 * config/darwin9.h: Removed.
17901 * config/rs6000/darwin8.h: Removed.
17903 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
17905 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
17907 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
17909 * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here..
17910 * config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here.
17912 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
17914 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from
17916 * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here.
17918 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
17920 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move the spec
17921 for the Darwin10 unwinder stub from here ...
17922 * config/darwin.h (LINK_COMMAND_SPEC_A): ... to here.
17924 2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
17926 * config/darwin.h (DSYMUTIL_SPEC): Default to DWARF
17927 (ASM_DEBUG_SPEC):Only define if the assembler supports
17929 (PREFERRED_DEBUGGING_TYPE): Default to DWARF.
17930 (DARWIN_PREFER_DWARF): Define.
17931 * config/darwin9.h (PREFERRED_DEBUGGING_TYPE): Remove.
17932 (DARWIN_PREFER_DWARF): Likewise
17933 (DSYMUTIL_SPEC): Likewise.
17934 (COLLECT_RUN_DSYMUTIL): Likewise.
17935 (ASM_DEBUG_SPEC): Likewise.
17936 (ASM_DEBUG_OPTION_SPEC): Likewise.
17938 2021-01-02 Jan Hubicka <jh@suse.cz>
17940 * cfg.c (free_block): ggc_free bb.
17942 2021-01-01 Jakub Jelinek <jakub@redhat.com>
17944 * gcc.c (process_command): Update copyright notice dates.
17945 * gcov-dump.c (print_version): Ditto.
17946 * gcov.c (print_version): Ditto.
17947 * gcov-tool.c (print_version): Ditto.
17948 * gengtype.c (create_file): Ditto.
17949 * doc/cpp.texi: Bump @copying's copyright year.
17950 * doc/cppinternals.texi: Ditto.
17951 * doc/gcc.texi: Ditto.
17952 * doc/gccint.texi: Ditto.
17953 * doc/gcov.texi: Ditto.
17954 * doc/install.texi: Ditto.
17955 * doc/invoke.texi: Ditto.
17957 2021-01-01 Jakub Jelinek <jakub@redhat.com>
17959 * ChangeLog-2020: Rotate ChangeLog. New file.
17962 Copyright (C) 2021 Free Software Foundation, Inc.
17964 Copying and distribution of this file, with or without modification,
17965 are permitted in any medium without royalty provided the copyright
17966 notice and this notice are preserved.