combine: Fix find_split_point handling of constant store into ZERO_EXTRACT [PR93908]
[gcc.git] / gcc / ChangeLog
1 2020-02-25 Jakub Jelinek <jakub@redhat.com>
2
3 PR rtl-optimization/93908
4 * combine.c (find_split_point): For store into ZERO_EXTRACT, and src
5 with mask.
6
7 2019-02-25 Eric Botcazou <ebotcazou@adacore.com>
8
9 * dwarf2out.c (dwarf2out_size_function): Run in early-DWARF mode.
10
11 2020-02-25 Roman Zhuykov <zhroma@ispras.ru>
12
13 * doc/install.texi (--enable-checking): Adjust wording.
14
15 2020-02-25 Richard Biener <rguenther@suse.de>
16
17 PR tree-optimization/93868
18 * tree-vect-slp.c (slp_copy_subtree): New function.
19 (vect_attempt_slp_rearrange_stmts): Copy the SLP tree before
20 re-arranging stmts in it.
21
22 2020-02-25 Jakub Jelinek <jakub@redhat.com>
23
24 PR middle-end/93874
25 * passes.c (pass_manager::dump_passes): Create a cgraph node for the
26 dummy function and remove it at the end.
27
28 PR translation/93864
29 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Fix comment typo
30 paramter -> parameter.
31 * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Likewise.
32 * ipa-prop.h (struct ipa_agg_replacement_value): Likewise.
33
34 2020-02-24 Roman Zhuykov <zhroma@ispras.ru>
35
36 * doc/install.texi (--enable-checking): Properly document current
37 behavior.
38 (--enable-stage1-checking): Minor clarification about bootstrap.
39
40 2020-02-24 David Malcolm <dmalcolm@redhat.com>
41
42 PR analyzer/93032
43 * doc/invoke.texi (-Wnanalyzer-tainted-array-index): Note that
44 -fanalyzer-checker=taint is also required.
45 (-fanalyzer-checker=): Note that providing this option enables the
46 given checker, and doing so may be required for checkers that are
47 disabled by default.
48
49 2020-02-24 David Malcolm <dmalcolm@redhat.com>
50
51 * doc/invoke.texi (-fanalyzer-verbosity=): "2" only shows
52 significant control flow events; add a "3" which shows all
53 control flow events; the old "3" becomes "4".
54
55 2020-02-24 Jakub Jelinek <jakub@redhat.com>
56
57 PR tree-optimization/93582
58 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Consider
59 pd.offset and pd.size to be counted in bits rather than bytes, add
60 support for maxsizei that is not a multiple of BITS_PER_UNIT and
61 handle bitfield stores and loads.
62 (vn_reference_lookup_3): Don't call ranges_known_overlap_p with
63 uncomparable quantities - bytes vs. bits. Allow push_partial_def
64 on offsets/sizes that aren't multiple of BITS_PER_UNIT and adjust
65 pd.offset/pd.size to be counted in bits rather than bytes.
66 Formatting fix. Rename shadowed len variable to buflen.
67
68 2020-02-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
69 Kugan Vivekandarajah <kugan.vivekanandarajah@linaro.org>
70
71 PR driver/47785
72 * gcc.c (putenv_COLLECT_AS_OPTIONS): New function.
73 (driver::main): Call putenv_COLLECT_AS_OPTIONS.
74 * opts-common.c (parse_options_from_collect_gcc_options): New function.
75 (prepend_xassembler_to_collect_as_options): Likewise.
76 * opts.h (parse_options_from_collect_gcc_options): Declare prototype.
77 (prepend_xassembler_to_collect_as_options): Likewise.
78 * lto-opts.c (lto_write_options): Stream assembler options
79 in COLLECT_AS_OPTIONS.
80 * lto-wrapper.c (xassembler_options_error): New static variable.
81 (get_options_from_collect_gcc_options): Move parsing options code to
82 parse_options_from_collect_gcc_options and call it.
83 (merge_and_complain): Validate -Xassembler options.
84 (append_compiler_options): Handle OPT_Xassembler.
85 (run_gcc): Append command line -Xassembler options to
86 collect_gcc_options.
87 * doc/invoke.texi: Add documentation about using Xassembler
88 options with LTO.
89
90 2020-02-24 Kito Cheng <kito.cheng@sifive.com>
91
92 * config/riscv/riscv.c (riscv_emit_float_compare): Change the code gen
93 for LTGT.
94 (riscv_rtx_costs): Update cost model for LTGT.
95
96 2020-02-23 Vladimir Makarov <vmakarov@redhat.com>
97
98 PR rtl-optimization/93564
99 * ira-color.c (struct update_cost_queue_elem): New member start.
100 (queue_update_cost, get_next_update_cost): Add new arg start.
101 (allocnos_conflict_p): New function.
102 (update_costs_from_allocno): Add new arg conflict_cost_update_p.
103 Add checking conflicts with allocnos_conflict_p.
104 (update_costs_from_prefs, restore_costs_from_copies): Adjust
105 update_costs_from_allocno calls.
106 (update_conflict_hard_regno_costs): Add checking conflicts with
107 allocnos_conflict_p. Adjust calls of queue_update_cost and
108 get_next_update_cost.
109 (assign_hard_reg): Adjust calls of queue_update_cost. Add
110 debugging print.
111 (bucket_allocno_compare_func): Restore previous version.
112
113 2020-02-21 John David Anglin <danglin@gcc.gnu.org>
114
115 * gcc/config/pa/pa.c (pa_function_value): Fix check for word and
116 double-word size when handling aggregate return values.
117 * gcc/config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Fix to indicate
118 that homogeneous SFmode and DFmode aggregates are passed and returned
119 in general registers.
120
121 2020-02-21 Jakub Jelinek <jakub@redhat.com>
122
123 PR translation/93759
124 * opts.c (print_filtered_help): Translate help before appending
125 messages to it rather than after that.
126
127 2020-02-19 Richard Sandiford <richard.sandiford@arm.com>
128
129 PR rtl-optimization/PR92989
130 * lra-lives.c (process_bb_lives): Restore the original order
131 of the bb liveness update. Call make_hard_regno_dead for each
132 register clobbered at the start of an EH receiver.
133
134 2020-02-18 Feng Xue <fxue@os.amperecomputing.com>
135
136 PR ipa/93763
137 * ipa-cp.c (self_recursively_generated_p): Mark self-dependent value as
138 self-recursively generated.
139
140 2020-02-21 Iain Sandoe <iain@sandoe.co.uk>
141
142 PR target/93860
143 * config/darwin-c.c (pop_field_alignment): Adjust quoting of
144 error string.
145
146 2020-02-21 Mihail Ionescu <mihail.ionescu@arm.com>
147
148 * doc/sourcebuild.texi (arm_v8_1m_mve_ok):
149 Document new target supports option.
150
151 2020-02-21 Dennis Zhang <dennis.zhang@arm.com>
152
153 * config/arm/arm_neon.h (vmmlaq_s32, vmmlaq_u32, vusmmlaq_s32): New.
154 * config/arm/arm_neon_builtins.def (smmla, ummla, usmmla): New.
155 * config/arm/iterators.md (MATMUL): New iterator.
156 (sup): Add UNSPEC_MATMUL_S, UNSPEC_MATMUL_U, and UNSPEC_MATMUL_US.
157 (mmla_sfx): New attribute.
158 * config/arm/neon.md (neon_<sup>mmlav16qi): New.
159 * config/arm/unspecs.md (UNSPEC_MATMUL_S, UNSPEC_MATMUL_U): New.
160 (UNSPEC_MATMUL_US): New.
161
162 2020-02-21 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
163
164 * config/arm/arm.md: Prevent scalar shifts from being used when big
165 endian is enabled.
166
167 2020-02-21 Jan Hubicka <hubicka@ucw.cz>
168 Richard Biener <rguenther@suse.de>
169
170 PR tree-optimization/93586
171 * tree-ssa-alias.c (nonoverlapping_array_refs_p): Finish array walk
172 after mismatched array refs; do not sure type size information to
173 recover from unmatched referneces with !flag_strict_aliasing_p.
174
175 2020-02-21 Andrew Stubbs <ams@codesourcery.com>
176
177 * config/gcn/gcn-valu.md (gather_load<mode>): Rename to ...
178 (gather_load<mode>v64si): ... this and set operand 2 to V64SI.
179 (scatter_store<mode>): Rename to ...
180 (scatter_store<mode>v64si): ... this and set operand 1 to V64SI.
181 (scatter<mode>_exec): Delete. Move contents ...
182 (mask_scatter_store<mode>): ... here, and rename that to ...
183 (mask_gather_load<mode>v64si): ... this. Set operand 2 to V64SI.
184 Remove mode conversion.
185 (mask_gather_load<mode>): Rename to ...
186 (mask_scatter_store<mode>v64si): ... this. Set operand 1 to V64SI.
187 Remove mode conversion.
188 * config/gcn/gcn.c (gcn_expand_scaled_offsets): Remove mode conversion.
189
190 2020-02-21 Martin Jambor <mjambor@suse.cz>
191
192 PR tree-optimization/93845
193 * tree-sra.c (verify_sra_access_forest): Only test access size of
194 scalar types.
195
196 2020-02-21 Andrew Stubbs <ams@codesourcery.com>
197
198 * config/gcn/gcn.c (gcn_hard_regno_mode_ok): Align VGPR pairs.
199 * config/gcn/gcn-valu.md (addv64di3): Remove early-clobber.
200 (addv64di3_exec): Likewise.
201 (subv64di3): Likewise.
202 (subv64di3_exec): Likewise.
203 (addv64di3_zext): Likewise.
204 (addv64di3_zext_exec): Likewise.
205 (addv64di3_zext_dup): Likewise.
206 (addv64di3_zext_dup_exec): Likewise.
207 (addv64di3_zext_dup2): Likewise.
208 (addv64di3_zext_dup2_exec): Likewise.
209 (addv64di3_sext_dup2): Likewise.
210 (addv64di3_sext_dup2_exec): Likewise.
211 (<expander>v64di3): Likewise.
212 (<expander>v64di3_exec): Likewise.
213 (*<reduc_op>_dpp_shr_v64di): Likewise.
214 (*plus_carry_dpp_shr_v64di): Likewise.
215 * config/gcn/gcn.md (adddi3): Likewise.
216 (addptrdi3): Likewise.
217 (<expander>di3): Likewise.
218
219 2020-02-21 Andrew Stubbs <ams@codesourcery.com>
220
221 * config/gcn/gcn-valu.md (vec_seriesv64di): Use gen_vec_duplicatev64di.
222
223 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
224
225 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Add SVE
226 support. Use aarch64_emit_mult instead of emitting multiplication
227 instructions directly.
228 * config/aarch64/aarch64-sve.md (sqrt<mode>2, rsqrt<mode>2)
229 (@aarch64_rsqrte<mode>, @aarch64_rsqrts<mode>): New expanders.
230
231 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
232
233 * config/aarch64/aarch64.c (aarch64_emit_mult): New function.
234 (aarch64_emit_approx_div): Add SVE support. Use aarch64_emit_mult
235 instead of emitting multiplication instructions directly.
236 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_OPTAB): New iterator.
237 * config/aarch64/aarch64-sve.md (div<mode>3, @aarch64_frecpe<mode>)
238 (@aarch64_frecps<mode>): New expanders.
239
240 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
241
242 * config/aarch64/aarch64-protos.h (AARCH64_APPROX_MODE): Operate
243 on and produce uint64_ts rather than ints.
244 (AARCH64_APPROX_NONE, AARCH64_APPROX_ALL): Change to uint64_ts.
245 (cpu_approx_modes): Change the fields from unsigned int to uint64_t.
246
247 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
248
249 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Don't create
250 an unused xmsk register when handling approximate rsqrt.
251
252 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
253
254 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Fix inverted
255 flag_finite_math_only condition.
256
257 2020-02-20 Uroš Bizjak <ubizjak@gmail.com>
258
259 PR target/93828
260 * config/i386/mmx.md (*vec_extractv2sf_1): Match source operand
261 to destination operand for shufps alternative.
262 (*vec_extractv2si_1): Ditto.
263
264 2020-02-20 Peter Bergner <bergner@linux.ibm.com>
265
266 PR target/93658
267 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX
268 vector modes.
269
270 2020-02-20 Martin Liska <mliska@suse.cz>
271
272 PR translation/93831
273 * config/darwin.c (darwin_override_options): Change 64b to 64-bit mode.
274
275 2020-02-20 Martin Liska <mliska@suse.cz>
276
277 PR translation/93830
278 * common/config/avr/avr-common.c: Remote trailing "|".
279
280 2020-02-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
281
282 * collect2.c (maybe_run_lto_and_relink): Fix typo in
283 comment.
284
285 2020-02-19 Richard Sandiford <richard.sandiford@arm.com>
286
287 PR tree-optimization/93767
288 * tree-vect-data-refs.c (vect_compile_time_alias): Remove the
289 access-size bias from the offset calculations for negative strides.
290
291 2020-02-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
292
293 * collect2.c (c_file, o_file): Make const again.
294 (ldout,lderrout, dump_ld_file): Remove.
295 (tool_cleanup): Avoid calling not signal-safe functions.
296 (maybe_run_lto_and_relink): Avoid possible signal handler
297 access to unintialzed memory (lto_o_files).
298 (main): Avoid leaking temp files in $TMPDIR.
299 Initialize c_file/o_file with concat, which avoids exposing
300 uninitialized memory to signal handler, which calls unlink(!).
301 Avoid calling maybe_unlink when the main function returns,
302 since the atexit handler is already doing this.
303 * collect2.h (dump_ld_file, ldout, lderrout): Remove.
304
305 2020-02-19 Martin Jambor <mjambor@suse.cz>
306
307 PR tree-optimization/93776
308 * tree-sra.c (create_access): Do not create zero size accesses.
309 (get_access_for_expr): Do not search for zero sized accesses.
310
311 2020-02-19 Martin Jambor <mjambor@suse.cz>
312
313 PR tree-optimization/93667
314 * tree-sra.c (scalarizable_type_p): Return false if record fields
315 do not follow wach other.
316
317 2020-01-21 Kito Cheng <kito.cheng@sifive.com>
318
319 * config/riscv/riscv.c (riscv_output_move) Using fmv.x.w/fmv.w.x
320 rather than fmv.x.s/fmv.s.x.
321
322 2020-02-18 James Greenhalgh <james.greenhalgh@arm.com>
323
324 * config/aarch64/aarch64-simd-builtins.def
325 (intrinsic_vec_smult_lo_): New.
326 (intrinsic_vec_umult_lo_): Likewise.
327 (vec_widen_smult_hi_): Likewise.
328 (vec_widen_umult_hi_): Likewise.
329 * config/aarch64/aarch64-simd.md
330 (aarch64_intrinsic_vec_<su>mult_lo_<mode>): New.
331 * config/aarch64/arm_neon.h (vmull_high_s8): Use intrinsics.
332 (vmull_high_s16): Likewise.
333 (vmull_high_s32): Likewise.
334 (vmull_high_u8): Likewise.
335 (vmull_high_u16): Likewise.
336 (vmull_high_u32): Likewise.
337 (vmull_s8): Likewise.
338 (vmull_s16): Likewise.
339 (vmull_s32): Likewise.
340 (vmull_u8): Likewise.
341 (vmull_u16): Likewise.
342 (vmull_u32): Likewise.
343
344 2020-02-18 Martin Liska <mliska@suse.cz>
345
346 * value-prof.c (stream_out_histogram_value): Restore LTO PGO
347 bootstrap by missing removal of invalid sanity check.
348
349 2020-02-18 Martin Liska <mliska@suse.cz>
350
351 PR ipa/92518
352 * ipa-icf-gimple.c (func_checker::compare_gimple_assign):
353 Always compare LHS of gimple_assign.
354
355 2020-02-18 Martin Liska <mliska@suse.cz>
356
357 PR ipa/93583
358 * cgraph.c (cgraph_node::verify_node): Verify MALLOC attribute
359 and return type of functions.
360 * ipa-param-manipulation.c (ipa_param_adjustments::adjust_decl):
361 Drop MALLOC attribute for void functions.
362 * ipa-pure-const.c (funct_state_summary_t::duplicate): Drop
363 malloc_state for a new VOID clone.
364
365 2020-02-18 Martin Liska <mliska@suse.cz>
366
367 PR ipa/92924
368 * common.opt: Add -fprofile-reproducibility.
369 * doc/invoke.texi: Document it.
370 * value-prof.c (dump_histogram_value):
371 Document and support behavior for counters[0]
372 being a negative value.
373 (get_nth_most_common_value): Handle negative
374 counters[0] in respect to flag_profile_reproducible.
375
376 2020-02-18 Jakub Jelinek <jakub@redhat.com>
377
378 PR ipa/93797
379 * cgraph.c (verify_speculative_call): Use speculative_id instead of
380 speculative_uid in messages. Remove trailing whitespace from error
381 message. Use num_speculative_call_targets instead of
382 num_speculative_targets in a message.
383 (cgraph_node::verify_node): Use call_stmt instead of cal_stmt in
384 edge messages and stmt instead of cal_stmt in reference message.
385
386 PR tree-optimization/93780
387 * tree-ssa.c (non_rewritable_lvalue_p): Check valid_vector_subparts_p
388 before calling build_vector_type.
389 (execute_update_addresses_taken): Likewise.
390
391 PR driver/93796
392 * params.opt (-param=ipa-max-switch-predicate-bounds=): Fix help
393 typo, functoin -> function.
394 * tree.c (free_lang_data_in_decl): Fix comment typo,
395 functoin -> function.
396 * ipa-visibility.c (cgraph_externally_visible_p): Likewise.
397
398 2020-02-17 David Malcolm <dmalcolm@redhat.com>
399
400 * diagnostic.c (print_any_cwe): Don't call get_cwe_url if URLs
401 won't be printed.
402 (print_option_information): Don't call get_option_url if URLs
403 won't be printed.
404
405 2020-02-17 Alexandre Oliva <oliva@adacore.com>
406
407 * tree-emutls.c (new_emutls_decl, emutls_common_1): Complete
408 handling of register_common-less targets.
409
410 2020-02-17 Martin Liska <mliska@suse.cz>
411
412 PR ipa/93760
413 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar.
414
415 2020-02-17 Martin Liska <mliska@suse.cz>
416
417 PR translation/93755
418 * config/rs6000/rs6000.c (rs6000_option_override_internal):
419 Fix double quotes.
420
421 2020-02-17 Martin Liska <mliska@suse.cz>
422
423 PR other/93756
424 * config/rx/elf.opt: Fix typo.
425
426 2020-02-17 Richard Biener <rguenther@suse.de>
427
428 PR c/86134
429 * opts-global.c (print_ignored_options): Use inform and
430 amend message.
431
432 2020-02-17 Jiufu Guo <guojiufu@linux.ibm.com>
433
434 PR target/93047
435 * config/rs6000/rs6000.md (untyped_call): Add emit_clobber.
436
437 2020-02-16 Uroš Bizjak <ubizjak@gmail.com>
438
439 PR target/93743
440 * config/i386/i386.md (atan2xf3): Swap operands 1 and 2.
441 (atan2<mode>3): Update operand order in the call to gen_atan2xf3.
442
443 2020-02-15 Jason Merrill <jason@redhat.com>
444
445 * doc/invoke.texi (C Dialect Options): Add -std=c++20.
446
447 2020-02-15 Jakub Jelinek <jakub@redhat.com>
448
449 PR tree-optimization/93744
450 * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0,
451 A - ((A - B) & -(C cmp D)) -> (C cmp D) ? B : A,
452 A + ((B - A) & -(C cmp D)) -> (C cmp D) ? B : A): For GENERIC, make
453 sure @2 in the first and @1 in the other patterns has no side-effects.
454
455 2020-02-15 David Malcolm <dmalcolm@redhat.com>
456 Bernd Edlinger <bernd.edlinger@hotmail.de>
457
458 PR 87488
459 PR other/93168
460 * config.in (DIAGNOSTICS_URLS_DEFAULT): New define.
461 * configure.ac (--with-diagnostics-urls): New configuration
462 option, based on --with-diagnostics-color.
463 (DIAGNOSTICS_URLS_DEFAULT): New define.
464 * config.h: Regenerate.
465 * configure: Regenerate.
466 * diagnostic.c (diagnostic_urls_init): Handle -1 for
467 DIAGNOSTICS_URLS_DEFAULT from configure-time
468 --with-diagnostics-urls=auto-if-env by querying for a GCC_URLS
469 and TERM_URLS environment variable.
470 * diagnostic-url.h (diagnostic_url_format): New enum type.
471 (diagnostic_urls_enabled_p): rename to...
472 (determine_url_format): ... this, and change return type.
473 * diagnostic-color.c (parse_env_vars_for_urls): New helper function.
474 (auto_enable_urls): Disable URLs on xfce4-terminal, gnome-terminal,
475 the linux console, and mingw.
476 (diagnostic_urls_enabled_p): rename to...
477 (determine_url_format): ... this, and adjust.
478 * pretty-print.h (pretty_printer::show_urls): rename to...
479 (pretty_printer::url_format): ... this, and change to enum.
480 * pretty-print.c (pretty_printer::pretty_printer,
481 pp_begin_url, pp_end_url, test_urls): Adjust.
482 * doc/install.texi (--with-diagnostics-urls): Document the new
483 configuration option.
484 (--with-diagnostics-color): Document the existing interaction
485 with GCC_COLORS better.
486 * doc/invoke.texi (-fdiagnostics-urls): Add GCC_URLS and TERM_URLS
487 vindex reference. Update description of defaults based on the above.
488 (-fdiagnostics-color): Update description of how -fdiagnostics-color
489 interacts with GCC_COLORS.
490
491 2020-02-14 Eric Botcazou <ebotcazou@adacore.com>
492
493 PR target/93704
494 * config/sparc/sparc.c (eligible_for_call_delay): Test HAVE_GNU_LD in
495 conjunction with TARGET_GNU_TLS in early return.
496
497 2020-02-14 Alexander Monakov <amonakov@ispras.ru>
498
499 * rtlanal.c (rtx_cost): Handle a SET up front. Avoid division if
500 the mode is not wider than UNITS_PER_WORD.
501
502 2020-02-14 Martin Jambor <mjambor@suse.cz>
503
504 PR tree-optimization/93516
505 * tree-sra.c (propagate_subaccesses_from_rhs): Do not create
506 access of the same type as the parent.
507 (propagate_subaccesses_from_lhs): Likewise.
508
509 2020-02-14 Hongtao Liu <hongtao.liu@intel.com>
510
511 PR target/93724
512 * config/i386/avx512vbmi2intrin.h
513 (_mm512_shrdi_epi16, _mm512_mask_shrdi_epi16,
514 _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32,
515 _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32,
516 _m512_shrdi_epi64, _m512_mask_shrdi_epi64,
517 _m512_maskz_shrdi_epi64, _mm512_shldi_epi16,
518 _mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16,
519 _mm512_shldi_epi32, _mm512_mask_shldi_epi32,
520 _mm512_maskz_shldi_epi32, _mm512_shldi_epi64,
521 _mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): Fix typo
522 of lacking a closing parenthesis.
523 * config/i386/avx512vbmi2vlintrin.h
524 (_mm256_shrdi_epi16, _mm256_mask_shrdi_epi16,
525 _mm256_maskz_shrdi_epi16, _mm256_shrdi_epi32,
526 _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32,
527 _m256_shrdi_epi64, _m256_mask_shrdi_epi64,
528 _m256_maskz_shrdi_epi64, _mm256_shldi_epi16,
529 _mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16,
530 _mm256_shldi_epi32, _mm256_mask_shldi_epi32,
531 _mm256_maskz_shldi_epi32, _mm256_shldi_epi64,
532 _mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64,
533 _mm_shrdi_epi16, _mm_mask_shrdi_epi16,
534 _mm_maskz_shrdi_epi16, _mm_shrdi_epi32,
535 _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32,
536 _mm_shrdi_epi64, _mm_mask_shrdi_epi64,
537 _m_maskz_shrdi_epi64, _mm_shldi_epi16,
538 _mm_mask_shldi_epi16, _mm_maskz_shldi_epi16,
539 _mm_shldi_epi32, _mm_mask_shldi_epi32,
540 _mm_maskz_shldi_epi32, _mm_shldi_epi64,
541 _mm_mask_shldi_epi64, _mm_maskz_shldi_epi64): Ditto.
542
543 2020-02-13 H.J. Lu <hongjiu.lu@intel.com>
544
545 PR target/93656
546 * config/i386/i386.c (ix86_trampoline_init): Skip ENDBR32 at
547 the target function entry.
548
549 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
550
551 * common/config/arc/arc-common.c (arc_option_optimization_table):
552 Disable if-conversion step when optimized for size.
553
554 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
555
556 * config/arc/arc.c (arc_conditional_register_usage): R0-R3 and
557 R12-R15 are always in ARCOMPACT16_REGS register class.
558 * config/arc/arc.opt (mq-class): Deprecate.
559 * config/arc/constraint.md ("q"): Remove dependency on mq-class
560 option.
561 * doc/invoke.texi (mq-class): Update text.
562 * common/config/arc/arc-common.c (arc_option_optimization_table):
563 Update list.
564
565 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
566
567 * config/arc/arc.c (arc_insn_cost): New function.
568 (TARGET_INSN_COST): Define.
569 * config/arc/arc.md (cost): New attribute.
570 (add_n): Use arc_nonmemory_operand.
571 (ashlsi3_insn): Likewise, also update constraints.
572 (ashrsi3_insn): Likewise.
573 (rotrsi3): Likewise.
574 (add_shift): Likewise.
575 * config/arc/predicates.md (arc_nonmemory_operand): New predicate.
576
577 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
578
579 * config/arc/arc.md (mulsidi_600): Correctly select mlo/mhi
580 registers.
581 (umulsidi_600): Likewise.
582
583 2020-02-13 Jakub Jelinek <jakub@redhat.com>
584
585 PR target/93696
586 * config/i386/avx512bitalgintrin.h (_mm512_mask_popcnt_epi8,
587 _mm512_mask_popcnt_epi16, _mm256_mask_popcnt_epi8,
588 _mm256_mask_popcnt_epi16, _mm_mask_popcnt_epi8,
589 _mm_mask_popcnt_epi16): Rename __B argument to __A and __A to __W,
590 pass __A to the builtin followed by __W instead of __A followed by
591 __B.
592 * config/i386/avx512vpopcntdqintrin.h (_mm512_mask_popcnt_epi32,
593 _mm512_mask_popcnt_epi64): Likewise.
594 * config/i386/avx512vpopcntdqvlintrin.h (_mm_mask_popcnt_epi32,
595 _mm256_mask_popcnt_epi32, _mm_mask_popcnt_epi64,
596 _mm256_mask_popcnt_epi64): Likewise.
597
598 PR tree-optimization/93582
599 * fold-const.h (shift_bytes_in_array_left,
600 shift_bytes_in_array_right): Declare.
601 * fold-const.c (shift_bytes_in_array_left,
602 shift_bytes_in_array_right): New function, moved from
603 gimple-ssa-store-merging.c, no longer static.
604 * gimple-ssa-store-merging.c (shift_bytes_in_array): Move
605 to gimple-ssa-store-merging.c and rename to shift_bytes_in_array_left.
606 (shift_bytes_in_array_right): Move to gimple-ssa-store-merging.c.
607 (encode_tree_to_bitpos): Use shift_bytes_in_array_left instead of
608 shift_bytes_in_array.
609 (verify_shift_bytes_in_array): Rename to ...
610 (verify_shift_bytes_in_array_left): ... this. Use
611 shift_bytes_in_array_left instead of shift_bytes_in_array.
612 (store_merging_c_tests): Call verify_shift_bytes_in_array_left
613 instead of verify_shift_bytes_in_array.
614 * tree-ssa-sccvn.c (vn_reference_lookup_3): For native_encode_expr
615 / native_interpret_expr where the store covers all needed bits,
616 punt on PDP-endian, otherwise allow all involved offsets and sizes
617 not to be byte-aligned.
618
619 PR target/93673
620 * config/i386/sse.md (k<code><mode>): Drop mode from last operand and
621 use const_0_to_255_operand predicate instead of immediate_operand.
622 (avx512dq_fpclass<mode><mask_scalar_merge_name>,
623 avx512dq_vmfpclass<mode><mask_scalar_merge_name>,
624 vgf2p8affineinvqb_<mode><mask_name>,
625 vgf2p8affineqb_<mode><mask_name>): Drop mode from
626 const_0_to_255_operand predicated operands.
627
628 2020-02-12 Jeff Law <law@redhat.com>
629
630 * config/h8300/h8300.md (comparison shortening peepholes): Use
631 a mode iterator to merge the HImode and SImode peepholes.
632
633 2020-02-12 Jakub Jelinek <jakub@redhat.com>
634
635 PR middle-end/93663
636 * real.c (is_even): Make static. Function comment fix.
637 (is_halfway_below): Make static, don't assert R is not inf/nan,
638 instead return false for those. Small formatting fixes.
639
640 2020-02-12 Martin Sebor <msebor@redhat.com>
641
642 PR middle-end/93646
643 * tree-ssa-strlen.c (handle_builtin_stxncpy): Rename...
644 (handle_builtin_stxncpy_strncat): ...to this. Change first argument.
645 Issue only -Wstringop-overflow strncat, never -Wstringop-truncation.
646 (strlen_check_and_optimize_call): Adjust callee name.
647
648 2020-02-12 Jeff Law <law@redhat.com>
649
650 * config/h8300/h8300.md (comparison shortening peepholes): Drop
651 (and (xor)) variant. Combine other two into single peephole.
652
653 2020-02-12 Wilco Dijkstra <wdijkstr@arm.com>
654
655 PR rtl-optimization/93565
656 * config/aarch64/aarch64.c (aarch64_rtx_costs): Add CTZ costs.
657
658 2020-02-12 Wilco Dijkstra <wdijkstr@arm.com>
659
660 * config/aarch64/aarch64-simd.md
661 (aarch64_zero_extend<GPI:mode>_reduc_plus_<VDQV_E:mode>): New pattern.
662 * config/aarch64/aarch64.md (popcount<mode>2): Use it instead of
663 generating separate ADDV and zero_extend patterns.
664 * config/aarch64/iterators.md (VDQV_E): New iterator.
665
666 2020-02-12 Jeff Law <law@redhat.com>
667
668 * config/h8300/h8300.md (cpymemsi, movmd): Remove dead patterns,
669 expanders, splits, etc.
670 (movmd_internal_<mode>, movmd splitter, movstr, movsd): Likewise.
671 (stpcpy_internal_<mode>, stpcpy splitter): Likewise.
672 (peepholes to convert QI/HI mode pushes to SI mode pushes): Likewise.
673 * config/h8300/h8300.c (h8300_swap_into_er6): Remove unused function.
674 (h8300_swap_out_of_er6, h8sx_emit_movmd): Likewise
675 * config/h8300/h8300-protos.h (h8300_swap_into_er6): Remove unused
676 function prototype.
677 (h8300_swap_out_of_er6, h8sx_emit_movmd): Likewise.
678
679 2020-02-12 Jakub Jelinek <jakub@redhat.com>
680
681 PR target/93670
682 * config/i386/sse.md (VI48F_256_DQ): New mode iterator.
683 (avx512vl_vextractf128<mode>): Use it instead of VI48F_256. Remove
684 TARGET_AVX512DQ from condition.
685 (vec_extract_lo_<mode><mask_name>): Use <mask_avx512dq_condition>
686 instead of <mask_mode512bit_condition> in condition. If
687 TARGET_AVX512DQ is false, emit vextract*64x4 instead of
688 vextract*32x8.
689 (vec_extract_lo_<mode><mask_name>): Drop <mask_avx512dq_condition>
690 from condition.
691
692 2020-02-12 Kewen Lin <linkw@gcc.gnu.org>
693
694 PR target/91052
695 * ira.c (combine_and_move_insns): Skip multiple_sets def_insn.
696
697 2020-02-12 Segher Boessenkool <segher@kernel.crashing.org>
698
699 * config/rs6000/rs6000.c (rs6000_debug_print_mode): Don't use sizeof
700 where strlen is more legible.
701 (rs6000_builtin_vectorized_libmass): Ditto.
702 (rs6000_print_options_internal): Ditto.
703
704 2020-02-11 Martin Sebor <msebor@redhat.com>
705
706 PR tree-optimization/93683
707 * tree-ssa-alias.c (stmt_kills_ref_p): Avoid using LHS when not set.
708
709 2020-02-11 Michael Meissner <meissner@linux.ibm.com>
710
711 * config/rs6000/predicates.md (cint34_operand): Rename the
712 -mprefixed-addr option to be -mprefixed.
713 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Rename
714 the -mprefixed-addr option to be -mprefixed.
715 (OTHER_FUTURE_MASKS): Likewise.
716 (POWERPC_MASKS): Likewise.
717 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rename
718 the -mprefixed-addr option to be -mprefixed. Change error
719 messages to refer to -mprefixed.
720 (num_insns_constant_gpr): Rename the -mprefixed-addr option to be
721 -mprefixed.
722 (rs6000_legitimate_offset_address_p): Likewise.
723 (rs6000_mode_dependent_address): Likewise.
724 (rs6000_opt_masks): Change the spelling of "-mprefixed-addr" to be
725 "-mprefixed" for target attributes and pragmas.
726 (address_to_insn_form): Rename the -mprefixed-addr option to be
727 -mprefixed.
728 (rs6000_adjust_insn_length): Likewise.
729 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Rename the
730 -mprefixed-addr option to be -mprefixed.
731 (ASM_OUTPUT_OPCODE): Likewise.
732 * config/rs6000/rs6000.md (prefixed insn attribute): Rename the
733 -mprefixed-addr option to be -mprefixed.
734 * config/rs6000/rs6000.opt (-mprefixed): Rename the
735 -mprefixed-addr option to be prefixed. Change the option from
736 being undocumented to being documented.
737 * doc/invoke.texi (RS/6000 and PowerPC Options): Document the
738 -mprefixed option. Update the -mpcrel documentation to mention
739 -mprefixed.
740
741 2020-02-11 Hans-Peter Nilsson <hp@axis.com>
742
743 * ira-conflicts.c (print_hard_reg_set): Correct output for sets
744 including FIRST_PSEUDO_REGISTER - 1.
745 * ira-color.c (print_hard_reg_set): Ditto.
746
747 2020-02-11 Stam Markianos-Wright <stam.markianos-wright@arm.com>
748
749 * config/arm/arm-builtins.c (enum arm_type_qualifiers):
750 (USTERNOP_QUALIFIERS): New define.
751 (USMAC_LANE_QUADTUP_QUALIFIERS): New define.
752 (SUMAC_LANE_QUADTUP_QUALIFIERS): New define.
753 (arm_expand_builtin_args): Add case ARG_BUILTIN_LANE_QUADTUP_INDEX.
754 (arm_expand_builtin_1): Add qualifier_lane_quadtup_index.
755 * config/arm/arm_neon.h (vusdot_s32): New.
756 (vusdot_lane_s32): New.
757 (vusdotq_lane_s32): New.
758 (vsudot_lane_s32): New.
759 (vsudotq_lane_s32): New.
760 * config/arm/arm_neon_builtins.def (usdot, usdot_lane,sudot_lane): New.
761 * config/arm/iterators.md (DOTPROD_I8MM): New.
762 (sup, opsuffix): Add <us/su>.
763 * config/arm/neon.md (neon_usdot, <us/su>dot_lane: New.
764 * config/arm/unspecs.md (UNSPEC_DOT_US, UNSPEC_DOT_SU): New.
765
766 2020-02-11 Richard Biener <rguenther@suse.de>
767
768 PR tree-optimization/93661
769 PR tree-optimization/93662
770 * tree-ssa-sccvn.c (vn_reference_lookup_3): Properly guard
771 tree_to_poly_int64.
772 * tree-sra.c (get_access_for_expr): Likewise.
773
774 2020-02-10 Jakub Jelinek <jakub@redhat.com>
775
776 PR target/93637
777 * config/i386/sse.md (VI_256_AVX2): New mode iterator.
778 (vcond_mask_<mode><sseintvecmodelower>): Use it instead of VI_256.
779 Change condition from TARGET_AVX2 to TARGET_AVX.
780
781 2020-02-10 Iain Sandoe <iain@sandoe.co.uk>
782
783 PR other/93641
784 * config/darwin-c.c (darwin_cfstring_ref_p): Fix up last
785 argument of strncmp.
786
787 2020-02-10 Hans-Peter Nilsson <hp@axis.com>
788
789 Try to generate zero-based comparisons.
790 * config/cris/cris.c (cris_reduce_compare): New function.
791 * config/cris/cris-protos.h (cris_reduce_compare): Add prototype.
792 * config/cris/cris.md ("cbranch<mode>4", "cbranchdi4", "cstoredi4")
793 (cstore<mode>4"): Apply cris_reduce_compare in expanders.
794
795 2020-02-10 Richard Earnshaw <rearnsha@arm.com>
796
797 PR target/91913
798 * config/arm/arm.md (movsi_compare0): Allow SP as a source register
799 in Thumb state and also as a destination in Arm state. Add T16
800 variants.
801
802 2020-02-10 Hans-Peter Nilsson <hp@axis.com>
803
804 * md.texi (Define Subst): Match closing paren in example.
805
806 2020-02-10 Jakub Jelinek <jakub@redhat.com>
807
808 PR target/58218
809 PR other/93641
810 * config/i386/i386.c (x86_64_elf_section_type_flags): Fix up last
811 arguments of strncmp.
812
813 2020-02-10 Feng Xue <fxue@os.amperecomputing.com>
814
815 PR ipa/93203
816 * ipa-cp.c (ipcp_lattice::add_value): Add source with same call edge
817 but different source value.
818 (adjust_callers_for_value_intersection): New function.
819 (gather_edges_for_value): Adjust order of callers to let a
820 non-self-recursive caller be the first element.
821 (self_recursive_pass_through_p): Add a new parameter "simple", and
822 check generalized self-recursive pass-through jump function.
823 (self_recursive_agg_pass_through_p): Likewise.
824 (find_more_scalar_values_for_callers_subset): Compute value from
825 pass-through jump function for self-recursive.
826 (intersect_with_plats): Cleanup previous implementation code for value
827 itersection with self-recursive call edge.
828 (intersect_with_agg_replacements): Likewise.
829 (intersect_aggregates_with_edge): Deduce value from pass-through jump
830 function for self-recursive call edge. Cleanup previous implementation
831 code for value intersection with self-recursive call edge.
832 (decide_whether_version_node): Remove dead callers and adjust order
833 to let a non-self-recursive caller be the first element.
834
835 2020-02-09 Uroš Bizjak <ubizjak@gmail.com>
836
837 * recog.c: Move pass_split_before_sched2 code in front of
838 pass_split_before_regstack.
839 (pass_data_split_before_sched2): Rename pass to split3 from split4.
840 (pass_data_split_before_regstack): Rename pass to split4 from split3.
841 (rest_of_handle_split_before_sched2): Remove.
842 (pass_split_before_sched2::execute): Unconditionally call
843 split_all_insns.
844 (enable_split_before_sched2): New function.
845 (pass_split_before_sched2::gate): Use enable_split_before_sched2.
846 (pass_split_before_regstack::gate): Ditto.
847 * config/nds32/nds32.c (nds32_split_double_word_load_store_p):
848 Update name check for renamed split4 pass.
849 * config/sh/sh.c (register_sh_passes): Update pass insertion
850 point for renamed split4 pass.
851
852 2020-02-09 Jakub Jelinek <jakub@redhat.com>
853
854 * gimplify.c (gimplify_adjust_omp_clauses_1): Promote
855 DECL_IN_CONSTANT_POOL variables into "omp declare target" to avoid
856 copying them around between host and target.
857
858 2020-02-08 Andrew Pinski <apinski@marvell.com>
859
860 PR target/91927
861 * config/aarch64/aarch64-simd.md (movmisalign<mode>): Check
862 STRICT_ALIGNMENT also.
863
864 2020-02-08 Jim Wilson <jimw@sifive.com>
865
866 PR target/93532
867 * config/riscv/riscv.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
868
869 2020-02-08 Uroš Bizjak <ubizjak@gmail.com>
870 Jakub Jelinek <jakub@redhat.com>
871
872 PR target/65782
873 * config/i386/i386.h (CALL_USED_REGISTERS): Make
874 xmm16-xmm31 call-used even in 64-bit ms-abi.
875
876 2020-02-07 Dennis Zhang <dennis.zhang@arm.com>
877
878 * config/aarch64/aarch64-simd-builtins.def (simd_smmla): New entry.
879 (simd_ummla, simd_usmmla): Likewise.
880 * config/aarch64/aarch64-simd.md (aarch64_simd_<sur>mmlav16qi): New.
881 * config/aarch64/arm_neon.h (vmmlaq_s32, vmmlaq_u32): New.
882 (vusmmlaq_s32): New.
883
884 2020-02-07 Richard Biener <rguenther@suse.de>
885
886 PR middle-end/93519
887 * tree-inline.c (fold_marked_statements): Do a PRE walk,
888 skipping unreachable regions.
889 (optimize_inline_calls): Skip folding stmts when we didn't
890 inline.
891
892 2020-02-07 H.J. Lu <hongjiu.lu@intel.com>
893
894 PR target/85667
895 * config/i386/i386.c (function_arg_ms_64): Add a type argument.
896 Don't return aggregates with only SFmode and DFmode in SSE
897 register.
898 (ix86_function_arg): Pass arg.type to function_arg_ms_64.
899
900 2020-02-07 Jakub Jelinek <jakub@redhat.com>
901
902 PR target/93122
903 * config/rs6000/rs6000-logue.c
904 (rs6000_emit_probe_stack_range_stack_clash): Always use gen_add3_insn,
905 if it fails, move rs into end_addr and retry. Add
906 REG_FRAME_RELATED_EXPR note whenever it returns more than one insn or
907 the insn pattern doesn't describe well what exactly happens to
908 dwarf2cfi.c.
909
910 PR target/93594
911 * config/i386/predicates.md (avx_identity_operand): Remove.
912 * config/i386/sse.md (*avx_vec_concat<mode>_1): Remove.
913 (avx_<castmode><avxsizesuffix>_<castmode>,
914 avx512f_<castmode><avxsizesuffix>_256<castmode>): Change patterns to
915 a VEC_CONCAT of the operand and UNSPEC_CAST.
916 (avx512f_<castmode><avxsizesuffix>_<castmode>): Change pattern to
917 a VEC_CONCAT of VEC_CONCAT of the operand and UNSPEC_CAST with
918 UNSPEC_CAST.
919
920 PR target/93611
921 * config/i386/i386.c (ix86_lea_outperforms): Make sure to clear
922 recog_data.insn if distance_non_agu_define changed it.
923
924 2020-02-06 Michael Meissner <meissner@linux.ibm.com>
925
926 PR target/93569
927 * config/rs6000/rs6000.c (reg_to_non_prefixed): Before ISA 3.0
928 we only had X-FORM (reg+reg) addressing for vectors. Also before
929 ISA 3.0, we only had X-FORM addressing for scalars in the
930 traditional Altivec registers.
931
932 2020-02-06 <zhongyunde@huawei.com>
933 Vladimir Makarov <vmakarov@redhat.com>
934
935 PR rtl-optimization/93561
936 * lra-assigns.c (spill_for): Check that tested hard regno is not out of
937 hard register range.
938
939 2020-02-06 Richard Sandiford <richard.sandiford@arm.com>
940
941 * config/aarch64/aarch64.md (aarch64_movk<mode>): Add a type
942 attribute.
943
944 2020-02-06 Segher Boessenkool <segher@kernel.crashing.org>
945
946 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Handle the case
947 where the low and the high 32 bits are equal to each other specially,
948 with an rldimi instruction.
949
950 2020-02-06 Mihail Ionescu <mihail.ionescu@arm.com>
951
952 * config/arm/arm-cpus.in: Set profile M for armv8.1-m.main.
953
954 2020-02-06 Mihail Ionescu <mihail.ionescu@arm.com>
955
956 * config/arm/arm-tables.opt: Regenerate.
957
958 2020-02-06 Richard Sandiford <richard.sandiford@arm.com>
959
960 PR target/87763
961 * config/aarch64/aarch64-protos.h (aarch64_movk_shift): Declare.
962 * config/aarch64/aarch64.c (aarch64_movk_shift): New function.
963 * config/aarch64/aarch64.md (aarch64_movk<mode>): New pattern.
964
965 2020-02-06 Richard Sandiford <richard.sandiford@arm.com>
966
967 PR rtl-optimization/87763
968 * config/aarch64/aarch64.md (*ashiftsi_extvdi_bfiz): New pattern.
969
970 2020-02-06 Delia Burduv <delia.burduv@arm.com>
971
972 * config/aarch64/aarch64-simd-builtins.def
973 (bfmlaq): New built-in function.
974 (bfmlalb): New built-in function.
975 (bfmlalt): New built-in function.
976 (bfmlalb_lane): New built-in function.
977 (bfmlalt_lane): New built-in function.
978 * config/aarch64/aarch64-simd.md
979 (aarch64_bfmmlaqv4sf): New pattern.
980 (aarch64_bfmlal<bt>v4sf): New pattern.
981 (aarch64_bfmlal<bt>_lane<q>v4sf): New pattern.
982 * config/aarch64/arm_neon.h (vbfmmlaq_f32): New intrinsic.
983 (vbfmlalbq_f32): New intrinsic.
984 (vbfmlaltq_f32): New intrinsic.
985 (vbfmlalbq_lane_f32): New intrinsic.
986 (vbfmlaltq_lane_f32): New intrinsic.
987 (vbfmlalbq_laneq_f32): New intrinsic.
988 (vbfmlaltq_laneq_f32): New intrinsic.
989 * config/aarch64/iterators.md (BF_MLA): New int iterator.
990 (bt): New int attribute.
991
992 2020-02-06 Uroš Bizjak <ubizjak@gmail.com>
993
994 * config/i386/i386.md (*pushtf): Emit "#" instead of
995 calling gcc_unreachable in insn output.
996 (*pushxf): Ditto.
997 (*pushdf): Ditto.
998 (*pushsf_rex64): Ditto for alternatives other than 1.
999 (*pushsf): Ditto for alternatives other than 1.
1000
1001 2020-02-06 Martin Liska <mliska@suse.cz>
1002
1003 PR gcov-profile/91971
1004 PR gcov-profile/93466
1005 * coverage.c (coverage_init): Revert mangling of
1006 path into filename. It can lead to huge filename length.
1007 Creation of subfolders seem more natural.
1008
1009 2020-02-06 Stam Markianos-Wright <stam.markianos-wright@arm.com>
1010
1011 PR target/93300
1012 * config/arm/arm.c (arm_block_arith_comp_libfuncs_for_mode): New.
1013 (arm_init_libfuncs): Add BFmode support to block spurious BF libfuncs.
1014 Use arm_block_arith_comp_libfuncs_for_mode for HFmode.
1015
1016 2020-02-06 Jakub Jelinek <jakub@redhat.com>
1017
1018 PR target/93594
1019 * config/i386/predicates.md (avx_identity_operand): New predicate.
1020 * config/i386/sse.md (*avx_vec_concat<mode>_1): New
1021 define_insn_and_split.
1022
1023 PR libgomp/93515
1024 * omp-low.c (use_pointer_for_field): For nested constructs, also
1025 look for map clauses on target construct.
1026 (scan_omp_1_stmt) <case GIMPLE_OMP_TARGET>: Bump temporarily
1027 taskreg_nesting_level.
1028
1029 PR libgomp/93515
1030 * gimplify.c (gimplify_scan_omp_clauses) <do_notice>: If adding
1031 shared clause, call omp_notice_variable on outer context if any.
1032
1033 2020-02-05 Jason Merrill <jason@redhat.com>
1034
1035 PR c++/92003
1036 * symtab.c (symtab_node::nonzero_address): A DECL_COMDAT decl has
1037 non-zero address even if weak and not yet defined.
1038
1039 2020-02-05 Martin Sebor <msebor@redhat.com>
1040
1041 PR tree-optimization/92765
1042 * gimple-fold.c (get_range_strlen_tree): Handle MEM_REF and PARM_DECL.
1043 * tree-ssa-strlen.c (compute_string_length): Remove.
1044 (determine_min_objsize): Remove.
1045 (get_len_or_size): Add an argument. Call get_range_strlen_dynamic.
1046 Avoid using type size as the upper bound on string length.
1047 (handle_builtin_string_cmp): Add an argument. Adjust.
1048 (strlen_check_and_optimize_call): Pass additional argument to
1049 handle_builtin_string_cmp.
1050
1051 2020-02-05 Uroš Bizjak <ubizjak@gmail.com>
1052
1053 * config/i386/i386.md (*pushdi2_rex64 peephole2): Remove.
1054 (*pushdi2_rex64 peephole2): Unconditionally split after
1055 epilogue_completed.
1056 (*ashl<mode>3_doubleword): Ditto.
1057 (*<shift_insn><mode>3_doubleword): Ditto.
1058
1059 2020-02-05 Michael Meissner <meissner@linux.ibm.com>
1060
1061 PR target/93568
1062 * config/rs6000/rs6000.c (get_vector_offset): Fix
1063
1064 2020-02-05 Andrew Stubbs <ams@codesourcery.com>
1065
1066 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Use / not space.
1067
1068 2020-02-05 David Malcolm <dmalcolm@redhat.com>
1069
1070 * doc/analyzer.texi
1071 (Special Functions for Debugging the Analyzer): Update description
1072 of __analyzer_dump_exploded_nodes.
1073
1074 2020-02-05 Jakub Jelinek <jakub@redhat.com>
1075
1076 PR target/92190
1077 * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper): Only
1078 include sets and not clobbers in the vzeroupper pattern.
1079 * config/i386/sse.md (*avx_vzeroupper): Require in insn condition that
1080 the parallel has 17 (64-bit) or 9 (32-bit) elts.
1081 (*avx_vzeroupper_1): New define_insn_and_split.
1082
1083 PR target/92190
1084 * recog.c (pass_split_after_reload::gate): For STACK_REGS targets,
1085 don't run when !optimize.
1086 (pass_split_before_regstack::gate): For STACK_REGS targets, run even
1087 when !optimize.
1088
1089 2020-02-05 Richard Biener <rguenther@suse.de>
1090
1091 PR middle-end/90648
1092 * genmatch.c (dt_node::gen_kids_1): Emit number of argument
1093 checks before matching calls.
1094
1095 2020-02-05 Jakub Jelinek <jakub@redhat.com>
1096
1097 * tree-ssa-alias.c (aliasing_matching_component_refs_p): Fix up
1098 function comment typo.
1099
1100 PR middle-end/93555
1101 * omp-simd-clone.c (expand_simd_clones): If simd_clone_mangle or
1102 simd_clone_create failed when i == 0, adjust clone->nargs by
1103 clone->inbranch.
1104
1105 2020-02-05 Martin Liska <mliska@suse.cz>
1106
1107 PR c++/92717
1108 * doc/invoke.texi: Document that one should
1109 not combine ASLR and -fpch.
1110
1111 2020-02-04 Richard Biener <rguenther@suse.de>
1112
1113 PR tree-optimization/93538
1114 * match.pd (addr EQ/NE ptr): Amend to handle &ptr->x EQ/NE ptr.
1115
1116 2020-02-04 Richard Biener <rguenther@suse.de>
1117
1118 PR tree-optimization/91123
1119 * tree-ssa-sccvn.c (vn_walk_cb_data::finish): New method.
1120 (vn_walk_cb_data::last_vuse): New member.
1121 (vn_walk_cb_data::saved_operands): Likewsie.
1122 (vn_walk_cb_data::~vn_walk_cb_data): Release saved_operands.
1123 (vn_walk_cb_data::push_partial_def): Use finish.
1124 (vn_reference_lookup_2): Update last_vuse and use finish if
1125 we've saved operands.
1126 (vn_reference_lookup_3): Use finish and update calls to
1127 push_partial_defs everywhere. When translating through
1128 memcpy or aggregate copies save off operands and alias-set.
1129 (eliminate_dom_walker::eliminate_stmt): Restore VN_WALKREWRITE
1130 operation for redundant store removal.
1131
1132 2020-02-04 Richard Biener <rguenther@suse.de>
1133
1134 PR tree-optimization/92819
1135 * tree-ssa-forwprop.c (simplify_vector_constructor): Avoid
1136 generating more stmts than before.
1137
1138 2020-02-04 Martin Liska <mliska@suse.cz>
1139
1140 * config/arm/arm.c (arm_gen_far_branch): Move the function
1141 outside of selftests.
1142
1143 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
1144
1145 * config/rs6000/rs6000.c (adjust_vec_address_pcrel): New helper
1146 function to adjust PC-relative vector addresses.
1147 (rs6000_adjust_vec_address): Call adjust_vec_address_pcrel to
1148 handle vectors with PC-relative addresses.
1149
1150 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
1151
1152 * config/rs6000/rs6000.c (reg_to_non_prefixed): Add forward
1153 reference.
1154 (hard_reg_and_mode_to_addr_mask): Delete.
1155 (rs6000_adjust_vec_address): If the original vector address
1156 was REG+REG or REG+OFFSET and the element is not zero, do the add
1157 of the elements in the original address before adding the offset
1158 for the vector element. Use address_to_insn_form to validate the
1159 address using the register being loaded, rather than guessing
1160 whether the address is a DS-FORM or DQ-FORM address.
1161
1162 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
1163
1164 * config/rs6000/rs6000.c (get_vector_offset): New helper function
1165 to calculate the offset in memory from the start of a vector of a
1166 particular element. Add code to keep the element number in
1167 bounds if the element number is variable.
1168 (rs6000_adjust_vec_address): Move calculation of offset of the
1169 vector element to get_vector_offset.
1170 (rs6000_split_vec_extract_var): Do not do the initial AND of
1171 element here, move the code to get_vector_offset.
1172
1173 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
1174
1175 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add some
1176 gcc_asserts.
1177
1178 2020-02-03 Segher Boessenkool <segher@kernel.crashing.org>
1179
1180 * config/rs6000/constraints.md: Improve documentation.
1181
1182 2020-02-03 Richard Earnshaw <rearnsha@arm.com>
1183
1184 PR target/93548
1185 * config/arm/t-arm: ($(srcdir)/config/arm/arm-tune.md)
1186 ($(srcdir)/config/arm/arm-tables.opt): Use move-if-change.
1187
1188 2020-02-03 Andrew Stubbs <ams@codesourcery.com>
1189
1190 * config.gcc: Remove "carrizo" support.
1191 * config/gcn/gcn-opts.h (processor_type): Likewise.
1192 * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Likewise.
1193 * config/gcn/gcn.opt (gpu_type): Likewise.
1194 * config/gcn/t-omp-device: Likewise.
1195
1196 2020-02-03 Stam Markianos-Wright <stam.markianos-wright@arm.com>
1197
1198 PR target/91816
1199 * config/arm/arm-protos.h: New function arm_gen_far_branch prototype.
1200 * config/arm/arm.c (arm_gen_far_branch): New function
1201 arm_gen_far_branch.
1202 * config/arm/arm.md: Update b<cond> for Thumb2 range checks.
1203
1204 2020-02-03 Julian Brown <julian@codesourcery.com>
1205 Tobias Burnus <tobias@codesourcery.com>
1206
1207 * doc/invoke.texi: Update mention of OpenACC version to 2.6.
1208
1209 2020-02-03 Jakub Jelinek <jakub@redhat.com>
1210
1211 PR target/93533
1212 * config/s390/s390.md (popcounthi2_z196): Fix up expander to emit
1213 valid RTL to sum up the lowest and second lowest bytes of the popcnt
1214 result.
1215
1216 2020-02-02 Vladimir Makarov <vmakarov@redhat.com>
1217
1218 PR rtl-optimization/91333
1219 * ira-color.c (struct allocno_color_data): Add member
1220 hard_reg_prefs.
1221 (init_allocno_threads): Set the member up.
1222 (bucket_allocno_compare_func): Add compare hard reg
1223 prefs.
1224
1225 2020-01-31 Sandra Loosemore <sandra@codesourcery.com>
1226
1227 nios2: Support for GOT-relative DW_EH_PE_datarel encoding.
1228
1229 * configure.ac [nios2-*-*]: Check HAVE_AS_NIOS2_GOTOFF_RELOCATION.
1230 * config.in: Regenerated.
1231 * configure: Regenerated.
1232 * config/nios2/nios2.h (ASM_PREFERRED_EH_DATA_FORMAT): Fix handling
1233 for PIC when HAVE_AS_NIOS2_GOTOFF_RELOCATION.
1234 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New.
1235
1236 2020-02-01 Andrew Burgess <andrew.burgess@embecosm.com>
1237
1238 * configure: Regenerate.
1239
1240 2020-01-31 Vladimir Makarov <vmakarov@redhat.com>
1241
1242 PR rtl-optimization/91333
1243 * ira-color.c (bucket_allocno_compare_func): Move conflict hard
1244 reg preferences comparison up.
1245
1246 2020-01-31 Richard Sandiford <richard.sandiford@arm.com>
1247
1248 * config/aarch64/aarch64.h (TARGET_SVE_BF16): New macro.
1249 * config/aarch64/aarch64-sve-builtins-sve2.h (svcvtnt): Move to
1250 aarch64-sve-builtins-base.h.
1251 * config/aarch64/aarch64-sve-builtins-sve2.cc (svcvtnt): Move to
1252 aarch64-sve-builtins-base.cc.
1253 * config/aarch64/aarch64-sve-builtins-base.h (svbfdot, svbfdot_lane)
1254 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla)
1255 (svcvtnt): Declare.
1256 * config/aarch64/aarch64-sve-builtins-base.cc (svbfdot, svbfdot_lane)
1257 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla)
1258 (svcvtnt): New functions.
1259 * config/aarch64/aarch64-sve-builtins-base.def (svbfdot, svbfdot_lane)
1260 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla)
1261 (svcvtnt): New functions.
1262 (svcvt): Add a form that converts f32 to bf16.
1263 * config/aarch64/aarch64-sve-builtins-shapes.h (ternary_bfloat)
1264 (ternary_bfloat_lane, ternary_bfloat_lanex2, ternary_bfloat_opt_n):
1265 Declare.
1266 * config/aarch64/aarch64-sve-builtins-shapes.cc (parse_element_type):
1267 Treat B as bfloat16_t.
1268 (ternary_bfloat_lane_base): New class.
1269 (ternary_bfloat_def): Likewise.
1270 (ternary_bfloat): New shape.
1271 (ternary_bfloat_lane_def): New class.
1272 (ternary_bfloat_lane): New shape.
1273 (ternary_bfloat_lanex2_def): New class.
1274 (ternary_bfloat_lanex2): New shape.
1275 (ternary_bfloat_opt_n_def): New class.
1276 (ternary_bfloat_opt_n): New shape.
1277 * config/aarch64/aarch64-sve-builtins.cc (TYPES_cvt_bfloat): New macro.
1278 * config/aarch64/aarch64-sve.md (@aarch64_sve_<sve_fp_op>vnx4sf)
1279 (@aarch64_sve_<sve_fp_op>_lanevnx4sf): New patterns.
1280 (@aarch64_sve_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>)
1281 (@cond_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>): Likewise.
1282 (*cond_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>): Likewise.
1283 (@aarch64_sve_cvtnt<VNx8BF_ONLY:mode>): Likewise.
1284 * config/aarch64/aarch64-sve2.md (@aarch64_sve2_cvtnt<mode>): Key
1285 the pattern off the narrow mode instead of the wider one.
1286 * config/aarch64/iterators.md (VNx8BF_ONLY): New mode iterator.
1287 (UNSPEC_BFMLALB, UNSPEC_BFMLALT, UNSPEC_BFMMLA): New unspecs.
1288 (sve_fp_op): Handle them.
1289 (SVE_BFLOAT_TERNARY_LONG): New int itertor.
1290 (SVE_BFLOAT_TERNARY_LONG_LANE): Likewise.
1291
1292 2020-01-31 Richard Sandiford <richard.sandiford@arm.com>
1293
1294 * config/aarch64/arm_sve.h: Include arm_bf16.h.
1295 * config/aarch64/aarch64-modes.def (BF): Move definition before
1296 VECTOR_MODES. Remove separate VECTOR_MODES for V4BF and V8BF.
1297 (SVE_MODES): Handle BF modes.
1298 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle
1299 BF modes.
1300 (aarch64_full_sve_mode): Likewise.
1301 * config/aarch64/iterators.md (SVE_STRUCT): Add VNx16BF, VNx24BF
1302 and VNx32BF.
1303 (SVE_FULL, SVE_FULL_HSD, SVE_ALL): Add VNx8BF.
1304 (Vetype, Vesize, Vctype, VEL, Vel, VEL_INT, V128, v128, vwcore)
1305 (V_INT_EQUIV, v_int_equiv, V_FP_EQUIV, v_fp_equiv, vector_count)
1306 (insn_length, VSINGLE, vsingle, VPRED, vpred, VDOUBLE): Handle the
1307 new SVE BF modes.
1308 * config/aarch64/aarch64-sve-builtins.h (TYPE_bfloat): New
1309 type_class_index.
1310 * config/aarch64/aarch64-sve-builtins.cc (TYPES_all_arith): New macro.
1311 (TYPES_all_data): Add bf16.
1312 (TYPES_reinterpret1, TYPES_reinterpret): Likewise.
1313 (register_tuple_type): Increase buffer size.
1314 * config/aarch64/aarch64-sve-builtins.def (svbfloat16_t): New type.
1315 (bf16): New type suffix.
1316 * config/aarch64/aarch64-sve-builtins-base.def (svabd, svadd, svaddv)
1317 (svcmpeq, svcmpge, svcmpgt, svcmple, svcmplt, svcmpne, svmad, svmax)
1318 (svmaxv, svmin, svminv, svmla, svmls, svmsb, svmul, svsub, svsubr):
1319 Change type from all_data to all_arith.
1320 * config/aarch64/aarch64-sve-builtins-sve2.def (svaddp, svmaxp)
1321 (svminp): Likewise.
1322
1323 2020-01-31 Dennis Zhang <dennis.zhang@arm.com>
1324 Matthew Malcomson <matthew.malcomson@arm.com>
1325 Richard Sandiford <richard.sandiford@arm.com>
1326
1327 * doc/invoke.texi (f32mm): Document new AArch64 -march= extension.
1328 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
1329 __ARM_FEATURE_SVE_MATMUL_INT8, __ARM_FEATURE_SVE_MATMUL_FP32 and
1330 __ARM_FEATURE_SVE_MATMUL_FP64 as appropriate. Don't define
1331 __ARM_FEATURE_MATMUL_FP64.
1332 * config/aarch64/aarch64-option-extensions.def (fp, simd, fp16)
1333 (sve): Add AARCH64_FL_F32MM to the list of extensions that should
1334 be disabled at the same time.
1335 (f32mm): New extension.
1336 * config/aarch64/aarch64.h (AARCH64_FL_F32MM): New macro.
1337 (AARCH64_FL_F64MM): Bump to the next bit up.
1338 (AARCH64_ISA_F32MM, TARGET_SVE_I8MM, TARGET_F32MM, TARGET_SVE_F32MM)
1339 (TARGET_SVE_F64MM): New macros.
1340 * config/aarch64/iterators.md (SVE_MATMULF): New mode iterator.
1341 (UNSPEC_FMMLA, UNSPEC_SMATMUL, UNSPEC_UMATMUL, UNSPEC_USMATMUL)
1342 (UNSPEC_TRN1Q, UNSPEC_TRN2Q, UNSPEC_UZP1Q, UNSPEC_UZP2Q, UNSPEC_ZIP1Q)
1343 (UNSPEC_ZIP2Q): New unspeccs.
1344 (DOTPROD_US_ONLY, PERMUTEQ, MATMUL, FMMLA): New int iterators.
1345 (optab, sur, perm_insn): Handle the new unspecs.
1346 (sve_fp_op): Handle UNSPEC_FMMLA. Resort.
1347 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): Use
1348 TARGET_SVE_F64MM instead of separate tests.
1349 (@aarch64_<DOTPROD_US_ONLY:sur>dot_prod<vsi2qi>): New pattern.
1350 (@aarch64_<DOTPROD_US_ONLY:sur>dot_prod_lane<vsi2qi>): Likewise.
1351 (@aarch64_sve_add_<MATMUL:optab><vsi2qi>): Likewise.
1352 (@aarch64_sve_<FMMLA:sve_fp_op><mode>): Likewise.
1353 (@aarch64_sve_<PERMUTEQ:optab><mode>): Likewise.
1354 * config/aarch64/aarch64-sve-builtins.cc (TYPES_s_float): New macro.
1355 (TYPES_s_float_hsd_integer, TYPES_s_float_sd_integer): Use it.
1356 (TYPES_s_signed): New macro.
1357 (TYPES_s_integer): Use it.
1358 (TYPES_d_float): New macro.
1359 (TYPES_d_data): Use it.
1360 * config/aarch64/aarch64-sve-builtins-shapes.h (mmla): Declare.
1361 (ternary_intq_uintq_lane, ternary_intq_uintq_opt_n, ternary_uintq_intq)
1362 (ternary_uintq_intq_lane, ternary_uintq_intq_opt_n): Likewise.
1363 * config/aarch64/aarch64-sve-builtins-shapes.cc (mmla_def): New class.
1364 (svmmla): New shape.
1365 (ternary_resize2_opt_n_base): Add TYPE_CLASS2 and TYPE_CLASS3
1366 template parameters.
1367 (ternary_resize2_lane_base): Likewise.
1368 (ternary_resize2_base): New class.
1369 (ternary_qq_lane_base): Likewise.
1370 (ternary_intq_uintq_lane_def): Likewise.
1371 (ternary_intq_uintq_lane): New shape.
1372 (ternary_intq_uintq_opt_n_def): New class
1373 (ternary_intq_uintq_opt_n): New shape.
1374 (ternary_qq_lane_def): Inherit from ternary_qq_lane_base.
1375 (ternary_uintq_intq_def): New class.
1376 (ternary_uintq_intq): New shape.
1377 (ternary_uintq_intq_lane_def): New class.
1378 (ternary_uintq_intq_lane): New shape.
1379 (ternary_uintq_intq_opt_n_def): New class.
1380 (ternary_uintq_intq_opt_n): New shape.
1381 * config/aarch64/aarch64-sve-builtins-base.h (svmmla, svsudot)
1382 (svsudot_lane, svtrn1q, svtrn2q, svusdot, svusdot_lane, svusmmla)
1383 (svuzp1q, svuzp2q, svzip1q, svzip2q): Declare.
1384 * config/aarch64/aarch64-sve-builtins-base.cc (svdot_lane_impl):
1385 Generalize to...
1386 (svdotprod_lane_impl): ...this new class.
1387 (svmmla_impl, svusdot_impl): New classes.
1388 (svdot_lane): Update to use svdotprod_lane_impl.
1389 (svmmla, svsudot, svsudot_lane, svtrn1q, svtrn2q, svusdot)
1390 (svusdot_lane, svusmmla, svuzp1q, svuzp2q, svzip1q, svzip2q): New
1391 functions.
1392 * config/aarch64/aarch64-sve-builtins-base.def (svmmla): New base
1393 function, with no types defined.
1394 (svmmla, svusmmla, svsudot, svsudot_lane, svusdot, svusdot_lane): New
1395 AARCH64_FL_I8MM functions.
1396 (svmmla): New AARCH64_FL_F32MM function.
1397 (svld1ro): Depend only on AARCH64_FL_F64MM, not on AARCH64_FL_V8_6.
1398 (svmmla, svtrn1q, svtrn2q, svuz1q, svuz2q, svzip1q, svzip2q): New
1399 AARCH64_FL_F64MM function.
1400 (REQUIRED_EXTENSIONS):
1401
1402 2020-01-31 Andrew Stubbs <ams@codesourcery.com>
1403
1404 * config/gcn/gcn-valu.md (addv64di3_exec): Allow one '0' in each
1405 alternative only.
1406
1407 2020-01-31 Uroš Bizjak <ubizjak@gmail.com>
1408
1409 * config/i386/i386.md (*movoi_internal_avx): Do not check for
1410 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL. Remove MODE_V8SF handling.
1411 (*movti_internal): Do not check for
1412 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
1413 (*movtf_internal): Move check for TARGET_SSE2 and size optimization
1414 just after check for TARGET_AVX.
1415 (*movdf_internal): Ditto.
1416 * config/i386/mmx.md (*mov<mode>_internal): Do not check for
1417 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
1418 * config/i386/sse.md (mov<mode>_internal): Only check
1419 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL with V2DFmode. Move check
1420 for TARGET_SSE2 and size optimization just after check for TARGET_AVX.
1421 (<sse>_andnot<mode>3<mask_name>): Move check for
1422 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL after check for TARGET_AVX.
1423 (<code><mode>3<mask_name>): Ditto.
1424 (*andnot<mode>3): Ditto.
1425 (*andnottf3): Ditto.
1426 (*<code><mode>3): Ditto.
1427 (*<code>tf3): Ditto.
1428 (*andnot<VI:mode>3): Remove
1429 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling.
1430 (<mask_codefor><code><VI48_AVX_AVX512F:mode>3<mask_name>): Ditto.
1431 (*<code><VI12_AVX_AVX512F:mode>3): Ditto.
1432 (sse4_1_blendv<ssemodesuffix>): Ditto.
1433 * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL):
1434 Explain that tune applies to 128bit instructions only.
1435
1436 2020-01-31 Kwok Cheung Yeung <kcy@codesourcery.com>
1437
1438 * config/gcn/mkoffload.c (process_asm): Add sgpr_count and vgpr_count
1439 to definition of hsa_kernel_description. Parse assembly to find SGPR
1440 and VGPR count of kernel and store in hsa_kernel_description.
1441
1442 2020-01-31 Tamar Christina <tamar.christina@arm.com>
1443
1444 PR rtl-optimization/91838
1445 * simplify-rtx.c (simplify_binary_operation_1): Update LSHIFTRT case
1446 to truncate if allowed or reject combination.
1447
1448 2020-01-31 Andrew Stubbs <ams@codesourcery.com>
1449
1450 * tree-ssa-loop-ivopts.c (get_iv): Use sizetype for zero-step.
1451 (find_inv_vars_cb): Likewise.
1452
1453 2020-01-31 David Malcolm <dmalcolm@redhat.com>
1454
1455 * calls.c (special_function_p): Split out the check for DECL_NAME
1456 being non-NULL and fndecl being extern at file scope into a
1457 new maybe_special_function_p and call it. Drop check for fndecl
1458 being non-NULL that was after a usage of DECL_NAME (fndecl).
1459 * tree.h (maybe_special_function_p): New inline function.
1460
1461 2020-01-30 Andrew Stubbs <ams@codesourcery.com>
1462
1463 * config/gcn/gcn-valu.md (gather<mode>_exec): Move contents ...
1464 (mask_gather_load<mode>): ... here, and zero-initialize the
1465 destination.
1466 (maskload<mode>di): Zero-initialize the destination.
1467 * config/gcn/gcn.c:
1468
1469 2020-01-30 David Malcolm <dmalcolm@redhat.com>
1470
1471 PR analyzer/93356
1472 * doc/analyzer.texi (Limitations): Note that constraints on
1473 floating-point values are currently ignored.
1474
1475 2020-01-30 Jakub Jelinek <jakub@redhat.com>
1476
1477 PR lto/93384
1478 * symtab.c (symtab_node::noninterposable_alias): If localalias
1479 already exists, but is not usable, append numbers after it until
1480 a unique name is found. Formatting fix.
1481
1482 PR middle-end/93505
1483 * combine.c (simplify_comparison) <case ROTATE>: Punt on out of range
1484 rotate counts.
1485
1486 2020-01-30 Andrew Stubbs <ams@codesourcery.com>
1487
1488 * config/gcn/gcn.c (print_operand): Handle LTGT.
1489 * config/gcn/predicates.md (gcn_fp_compare_operator): Allow ltgt.
1490
1491 2020-01-30 Richard Biener <rguenther@suse.de>
1492
1493 * tree-pretty-print.c (dump_generic_node): Wrap VECTOR_CST
1494 and CONSTRUCTOR in _Literal (type) with TDF_GIMPLE.
1495
1496 2020-01-30 John David Anglin <danglin@gcc.gnu.org>
1497
1498 * config/pa/pa.c (pa_elf_select_rtx_section): Place function pointers
1499 without a DECL in .data.rel.ro.local.
1500
1501 2020-01-30 Jakub Jelinek <jakub@redhat.com>
1502
1503 PR target/93494
1504 * config/arm/arm.md (uaddvdi4): Actually emit what gen_uaddvsi4
1505 returned.
1506
1507 PR target/91824
1508 * config/i386/sse.md
1509 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext): Renamed to ...
1510 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext): ... this. Use
1511 any_extend code iterator instead of always zero_extend.
1512 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_lt): Renamed to ...
1513 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_lt): ... this.
1514 Use any_extend code iterator instead of always zero_extend.
1515 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_shift): Renamed to ...
1516 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_shift): ... this.
1517 Use any_extend code iterator instead of always zero_extend.
1518 (*sse2_pmovmskb_ext): New define_insn.
1519 (*sse2_pmovmskb_ext_lt): New define_insn_and_split.
1520
1521 PR target/91824
1522 * config/i386/i386.md (*popcountsi2_zext): New define_insn_and_split.
1523 (*popcountsi2_zext_falsedep): New define_insn.
1524
1525 2020-01-30 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
1526
1527 * config.in: Regenerated.
1528 * configure: Regenerated.
1529
1530 2020-01-29 Tobias Burnus <tobias@codesourcery.com>
1531
1532 PR bootstrap/93409
1533 * config/gcn/gcn-hsa.h (ASM_SPEC): Add -mattr=-code-object-v3 as
1534 LLVM's assembler changed the default in version 9.
1535
1536 2020-01-24 Jeff Law <law@redhat.com>
1537
1538 PR tree-optimization/89689
1539 * builtins.def (BUILT_IN_OBJECT_SIZE): Make it const rather than pure.
1540
1541 2020-01-29 Richard Sandiford <richard.sandiford@arm.com>
1542
1543 Revert:
1544
1545 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
1546
1547 PR rtl-optimization/87763
1548 * simplify-rtx.c (simplify_truncation): Extend sign/zero_extract
1549 simplification to handle subregs as well as bare regs.
1550 * config/i386/i386.md (*testqi_ext_3): Match QI extracts too.
1551
1552 2020-01-29 Joel Hutton <Joel.Hutton@arm.com>
1553
1554 PR target/93221
1555 * ira.c (ira): Revert use of simplified LRA algorithm.
1556
1557 2020-01-29 Martin Jambor <mjambor@suse.cz>
1558
1559 PR tree-optimization/92706
1560 * tree-sra.c (struct access): Fields first_link, last_link,
1561 next_queued and grp_queued renamed to first_rhs_link, last_rhs_link,
1562 next_rhs_queued and grp_rhs_queued respectively, new fields
1563 first_lhs_link, last_lhs_link, next_lhs_queued and grp_lhs_queued.
1564 (struct assign_link): Field next renamed to next_rhs, new field
1565 next_lhs. Updated comment.
1566 (work_queue_head): Renamed to rhs_work_queue_head.
1567 (lhs_work_queue_head): New variable.
1568 (add_link_to_lhs): New function.
1569 (relink_to_new_repr): Also relink LHS lists.
1570 (add_access_to_work_queue): Renamed to add_access_to_rhs_work_queue.
1571 (add_access_to_lhs_work_queue): New function.
1572 (pop_access_from_work_queue): Renamed to
1573 pop_access_from_rhs_work_queue.
1574 (pop_access_from_lhs_work_queue): New function.
1575 (build_accesses_from_assign): Also add links to LHS lists and to LHS
1576 work_queue.
1577 (child_would_conflict_in_lacc): Renamed to
1578 child_would_conflict_in_acc. Adjusted parameter names.
1579 (create_artificial_child_access): New parameter set_grp_read, use it.
1580 (subtree_mark_written_and_enqueue): Renamed to
1581 subtree_mark_written_and_rhs_enqueue.
1582 (propagate_subaccesses_across_link): Renamed to
1583 propagate_subaccesses_from_rhs.
1584 (propagate_subaccesses_from_lhs): New function.
1585 (propagate_all_subaccesses): Also propagate subaccesses from LHSs to
1586 RHSs.
1587
1588 2020-01-29 Martin Jambor <mjambor@suse.cz>
1589
1590 PR tree-optimization/92706
1591 * tree-sra.c (struct access): Adjust comment of
1592 grp_total_scalarization.
1593 (find_access_in_subtree): Look for single children spanning an entire
1594 access.
1595 (scalarizable_type_p): Allow register accesses, adjust callers.
1596 (completely_scalarize): Remove function.
1597 (scalarize_elem): Likewise.
1598 (create_total_scalarization_access): Likewise.
1599 (sort_and_splice_var_accesses): Do not track total scalarization
1600 flags.
1601 (analyze_access_subtree): New parameter totally, adjust to new meaning
1602 of grp_total_scalarization.
1603 (analyze_access_trees): Pass new parameter to analyze_access_subtree.
1604 (can_totally_scalarize_forest_p): New function.
1605 (create_total_scalarization_access): Likewise.
1606 (create_total_access_and_reshape): Likewise.
1607 (total_should_skip_creating_access): Likewise.
1608 (totally_scalarize_subtree): Likewise.
1609 (analyze_all_variable_accesses): Perform total scalarization after
1610 subaccess propagation using the new functions above.
1611 (initialize_constant_pool_replacements): Output initializers by
1612 traversing the access tree.
1613
1614 2020-01-29 Martin Jambor <mjambor@suse.cz>
1615
1616 * tree-sra.c (verify_sra_access_forest): New function.
1617 (verify_all_sra_access_forests): Likewise.
1618 (create_artificial_child_access): Set parent.
1619 (analyze_all_variable_accesses): Call the verifier.
1620
1621 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
1622
1623 * cgraph.c (cgraph_edge::resolve_speculation): Only lookup direct edge
1624 if called on indirect edge.
1625 (cgraph_edge::redirect_call_stmt_to_callee): Lookup indirect edge of
1626 speculative call if needed.
1627
1628 2020-01-29 Richard Biener <rguenther@suse.de>
1629
1630 PR tree-optimization/93428
1631 * tree-vect-slp.c (vect_build_slp_tree_2): Compute the load
1632 permutation when the load node is created.
1633 (vect_analyze_slp_instance): Re-use it here.
1634
1635 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
1636
1637 * ipa-prop.c (update_indirect_edges_after_inlining): Fix warning.
1638
1639 2020-01-28 Vladimir Makarov <vmakarov@redhat.com>
1640
1641 PR rtl-optimization/93272
1642 * ira-lives.c (process_out_of_region_eh_regs): New function.
1643 (process_bb_node_lives): Call it.
1644
1645 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
1646
1647 * coverage.c (read_counts_file): Make error message lowercase.
1648
1649 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
1650
1651 * profile-count.c (profile_quality_display_names): Fix ordering.
1652
1653 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
1654
1655 PR lto/93318
1656 * cgraph.c (cgraph_add_edge_to_call_site_hash): Update call site
1657 hash only when edge is first within the sequence.
1658 (cgraph_edge::set_call_stmt): Update handling of speculative calls.
1659 (symbol_table::create_edge): Do not set target_prob.
1660 (cgraph_edge::remove_caller): Watch for speculative calls when updating
1661 the call site hash.
1662 (cgraph_edge::make_speculative): Drop target_prob parameter.
1663 (cgraph_edge::speculative_call_info): Remove.
1664 (cgraph_edge::first_speculative_call_target): New member function.
1665 (update_call_stmt_hash_for_removing_direct_edge): New function.
1666 (cgraph_edge::resolve_speculation): Rewrite to new API.
1667 (cgraph_edge::speculative_call_for_target): New member function.
1668 (cgraph_edge::make_direct): Rewrite to new API; fix handling of
1669 multiple speculation targets.
1670 (cgraph_edge::redirect_call_stmt_to_callee): Likewise; fix updating
1671 of profile.
1672 (verify_speculative_call): Verify that targets form an interval.
1673 * cgraph.h (cgraph_edge::speculative_call_info): Remove.
1674 (cgraph_edge::first_speculative_call_target): New member function.
1675 (cgraph_edge::next_speculative_call_target): New member function.
1676 (cgraph_edge::speculative_call_target_ref): New member function.
1677 (cgraph_edge;:speculative_call_indirect_edge): New member funtion.
1678 (cgraph_edge): Remove target_prob.
1679 * cgraphclones.c (cgraph_node::set_call_stmt_including_clones):
1680 Fix handling of speculative calls.
1681 * ipa-devirt.c (ipa_devirt): Fix handling of speculative cals.
1682 * ipa-fnsummary.c (analyze_function_body): Likewise.
1683 * ipa-inline.c (speculation_useful_p): Use new speculative call API.
1684 * ipa-profile.c (dump_histogram): Fix formating.
1685 (ipa_profile_generate_summary): Watch for overflows.
1686 (ipa_profile): Do not require probablity to be 1/2; update to new API.
1687 * ipa-prop.c (ipa_make_edge_direct_to_target): Update to new API.
1688 (update_indirect_edges_after_inlining): Update to new API.
1689 * ipa-utils.c (ipa_merge_profiles): Rewrite merging of speculative call
1690 profiles.
1691 * profile-count.h: (profile_probability::adjusted): New.
1692 * tree-inline.c (copy_bb): Update to new speculative call API; fix
1693 updating of profile.
1694 * value-prof.c (gimple_ic_transform): Rename to ...
1695 (dump_ic_profile): ... this one; update dumping.
1696 (stream_in_histogram_value): Fix formating.
1697 (gimple_value_profile_transformations): Update.
1698
1699 2020-01-28 H.J. Lu <hongjiu.lu@intel.com>
1700
1701 PR target/91461
1702 * config/i386/i386.md (*movoi_internal_avx): Remove
1703 TARGET_SSE_TYPELESS_STORES check.
1704 (*movti_internal): Prefer TARGET_AVX over
1705 TARGET_SSE_TYPELESS_STORES.
1706 (*movtf_internal): Likewise.
1707 * config/i386/sse.md (mov<mode>_internal): Prefer TARGET_AVX over
1708 TARGET_SSE_TYPELESS_STORES. Remove "<MODE_SIZE> == 16" check
1709 from TARGET_SSE_TYPELESS_STORES.
1710
1711 2020-01-28 David Malcolm <dmalcolm@redhat.com>
1712
1713 * diagnostic-core.h (warning_at): Rename overload to...
1714 (warning_meta): ...this.
1715 (emit_diagnostic_valist): Delete decl of overload taking
1716 diagnostic_metadata.
1717 * diagnostic.c (emit_diagnostic_valist): Likewise for defn.
1718 (warning_at): Rename overload taking diagnostic_metadata to...
1719 (warning_meta): ...this.
1720
1721 2020-01-28 Richard Biener <rguenther@suse.de>
1722
1723 PR tree-optimization/93439
1724 * tree-parloops.c (create_loop_fn): Move clique bookkeeping...
1725 * tree-cfg.c (move_sese_region_to_fn): ... here.
1726 (verify_types_in_gimple_reference): Verify used cliques are
1727 tracked.
1728
1729 2020-01-28 H.J. Lu <hongjiu.lu@intel.com>
1730
1731 PR target/91399
1732 * config/i386/i386-options.c (set_ix86_tune_features): Add an
1733 argument of a pointer to struct gcc_options and pass it to
1734 parse_mtune_ctrl_str.
1735 (ix86_function_specific_restore): Pass opts to
1736 set_ix86_tune_features.
1737 (ix86_option_override_internal): Likewise.
1738 (parse_mtune_ctrl_str): Add an argument of a pointer to struct
1739 gcc_options and use it for x_ix86_tune_ctrl_string.
1740
1741 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
1742
1743 PR rtl-optimization/87763
1744 * simplify-rtx.c (simplify_truncation): Extend sign/zero_extract
1745 simplification to handle subregs as well as bare regs.
1746 * config/i386/i386.md (*testqi_ext_3): Match QI extracts too.
1747
1748 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
1749
1750 * tree-vect-loop.c (vectorizable_reduction): Fail gracefully
1751 for reduction chains that (now) include a call.
1752
1753 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
1754
1755 PR tree-optimization/92822
1756 * tree-ssa-forwprop.c (simplify_vector_constructor): When filling
1757 out the don't-care elements of a vector whose significant elements
1758 are duplicates, make the don't-care elements duplicates too.
1759
1760 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
1761
1762 PR tree-optimization/93434
1763 * tree-predcom.c (split_data_refs_to_components): Record which
1764 components have had aliasing loads removed. Prevent store-store
1765 commoning for all such components.
1766
1767 2020-01-28 Jakub Jelinek <jakub@redhat.com>
1768
1769 PR target/93418
1770 * config/i386/i386.c (ix86_fold_builtin) <do_shift>: If mask is not
1771 -1 or is_vshift is true, use new_vector with number of elts npatterns
1772 rather than new_unary_operation.
1773
1774 PR tree-optimization/93454
1775 * gimple-fold.c (fold_array_ctor_reference): Perform
1776 elt_size.to_uhwi () just once, instead of calling it in every
1777 iteration. Punt if that value is above size of the temporary
1778 buffer. Decrease third native_encode_expr argument when
1779 bufoff + elt_sz is above size of buf.
1780
1781 2020-01-27 Joseph Myers <joseph@codesourcery.com>
1782
1783 * config/mips/mips.c (mips_declare_object_name)
1784 [USE_GNU_UNIQUE_OBJECT]: Support use of gnu_unique_object.
1785
1786 2020-01-27 Martin Liska <mliska@suse.cz>
1787
1788 PR gcov-profile/93403
1789 * tree-profile.c (gimple_init_gcov_profiler): Generate
1790 both __gcov_indirect_call_profiler_v4 and
1791 __gcov_indirect_call_profiler_v4_atomic.
1792
1793 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
1794
1795 PR target/92822
1796 * config/aarch64/aarch64-simd.md (aarch64_get_half<mode>): New
1797 expander.
1798 (@aarch64_split_simd_mov<mode>): Use it.
1799 (aarch64_simd_mov_from_<mode>low): Add a GPR alternative.
1800 Leave the vec_extract patterns to handle 2-element vectors.
1801 (aarch64_simd_mov_from_<mode>high): Likewise.
1802 (vec_extract<VQMOV_NO2E:mode><Vhalf>): New expander.
1803 (vec_extractv2dfv1df): Likewise.
1804
1805 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
1806
1807 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Match
1808 jump conditions for *compare_condjump<GPI:mode>.
1809
1810 2020-01-27 David Malcolm <dmalcolm@redhat.com>
1811
1812 PR analyzer/93276
1813 * digraph.cc (test_edge::test_edge): Specify template for base
1814 class initializer.
1815
1816 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com>
1817
1818 * config/arc/arc.c (arc_rtx_costs): Update mul64 cost.
1819
1820 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com>
1821
1822 * config/arc/arc-protos.h (gen_mlo): Remove.
1823 (gen_mhi): Likewise.
1824 * config/arc/arc.c (AUX_MULHI): Define.
1825 (arc_must_save_reister): Special handling for r58/59.
1826 (arc_compute_frame_size): Consider mlo/mhi registers.
1827 (arc_save_callee_saves): Emit fp/sp move only when emit_move
1828 paramter is true.
1829 (arc_conditional_register_usage): Remove TARGET_BIG_ENDIAN from
1830 mlo/mhi name selection.
1831 (arc_restore_callee_saves): Don't early restore blink when ISR.
1832 (arc_expand_prologue): Add mlo/mhi saving.
1833 (arc_expand_epilogue): Add mlo/mhi restoring.
1834 (gen_mlo): Remove.
1835 (gen_mhi): Remove.
1836 * config/arc/arc.h (DBX_REGISTER_NUMBER): Correct register
1837 numbering when MUL64 option is used.
1838 (DWARF2_FRAME_REG_OUT): Define.
1839 * config/arc/arc.md (arc600_stall): New pattern.
1840 (VUNSPEC_ARC_ARC600_STALL): Define.
1841 (mulsi64): Use correct mlo/mhi registers.
1842 (mulsi_600): Clean it up.
1843 * config/arc/predicates.md (mlo_operand): Remove any dependency on
1844 TARGET_BIG_ENDIAN.
1845 (mhi_operand): Likewise.
1846
1847 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com>
1848 Petro Karashchenko <petro.karashchenko@ring.com>
1849
1850 * config/arc/arc.c (arc_is_uncached_mem_p): Check struct
1851 attributes if needed.
1852 (prepare_move_operands): Generate special unspec instruction for
1853 direct access.
1854 (arc_isuncached_mem_p): Propagate uncached attribute to each
1855 structure member.
1856 * config/arc/arc.md (VUNSPEC_ARC_LDDI): Define.
1857 (VUNSPEC_ARC_STDI): Likewise.
1858 (ALLI): New mode iterator.
1859 (mALLI): New mode attribute.
1860 (lddi): New instruction pattern.
1861 (stdi): Likewise.
1862 (stdidi_split): Split instruction for architectures which are not
1863 supporting ll64 option.
1864 (lddidi_split): Likewise.
1865
1866 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
1867
1868 PR rtl-optimization/92989
1869 * lra-lives.c (process_bb_lives): Update the live-in set before
1870 processing additional clobbers.
1871
1872 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
1873
1874 PR rtl-optimization/93170
1875 * cselib.c (cselib_invalidate_regno_val): New function, split out
1876 from...
1877 (cselib_invalidate_regno): ...here.
1878 (cselib_invalidated_by_call_p): New function.
1879 (cselib_process_insn): Iterate over all the hard-register entries in
1880 REG_VALUES and invalidate any that cross call-clobbered registers.
1881
1882 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
1883
1884 * dojump.c (split_comparison): Use HONOR_NANS rather than
1885 HONOR_SNANS when splitting LTGT.
1886
1887 2020-01-27 Martin Liska <mliska@suse.cz>
1888
1889 PR driver/91220
1890 * opts.c (print_filtered_help): Exclude language-specific
1891 options from --help=common unless enabled in all FEs.
1892
1893 2020-01-27 Martin Liska <mliska@suse.cz>
1894
1895 * opts.c (print_help): Exclude params from
1896 all except --help=param.
1897
1898 2020-01-27 Martin Liska <mliska@suse.cz>
1899
1900 PR target/93274
1901 * config/i386/i386-features.c (make_resolver_func):
1902 Align the code with ppc64 target implementation.
1903 Do not generate a unique name for resolver function.
1904
1905 2020-01-27 Richard Biener <rguenther@suse.de>
1906
1907 PR tree-optimization/93397
1908 * tree-vect-slp.c (vect_analyze_slp_instance): Delay
1909 converted reduction chain SLP graph adjustment.
1910
1911 2020-01-26 Marek Polacek <polacek@redhat.com>
1912
1913 PR sanitizer/93436
1914 * sanopt.c (sanitize_rewrite_addressable_params): Avoid crash on
1915 null DECL_NAME.
1916
1917 2020-01-26 Jason Merrill <jason@redhat.com>
1918
1919 PR c++/92601
1920 * tree.c (verify_type_variant): Only verify TYPE_NEEDS_CONSTRUCTING
1921 of complete types.
1922
1923 2020-01-26 Darius Galis <darius.galis@cyberthorstudios.com>
1924
1925 * config/rx/rx.md (setmemsi): Added rx_allow_string_insns constraint
1926 (rx_setmem): Likewise.
1927
1928 2020-01-26 Jakub Jelinek <jakub@redhat.com>
1929
1930 PR target/93412
1931 * config/i386/i386.md (*addv<dwi>4_doubleword, *subv<dwi>4_doubleword):
1932 Use nonimmediate_operand instead of x86_64_hilo_general_operand and
1933 drop <di> from constraint of last operand.
1934
1935 PR target/93430
1936 * config/i386/sse.md (*avx_vperm_broadcast_<mode>): Disallow for
1937 TARGET_AVX2 and V4DFmode not in the split condition, but in the
1938 pattern condition, though allow { 0, 0, 0, 0 } broadcast always.
1939
1940 2020-01-25 Feng Xue <fxue@os.amperecomputing.com>
1941
1942 PR ipa/93166
1943 * ipa-cp.c (get_info_about_necessary_edges): Remove value
1944 check assertion.
1945
1946 2020-01-24 Jeff Law <law@redhat.com>
1947
1948 PR tree-optimization/92788
1949 * tree-ssa-threadedge.c (thread_across_edge): Check EDGE_COMPLEX
1950 not EDGE_ABNORMAL.
1951
1952 2020-01-24 Jakub Jelinek <jakub@redhat.com>
1953
1954 PR target/93395
1955 * config/i386/sse.md (*avx_vperm_broadcast_v4sf,
1956 *avx_vperm_broadcast_<mode>,
1957 <sse2_avx_avx512f>_vpermil<mode><mask_name>,
1958 *<sse2_avx_avx512f>_vpermilp<mode><mask_name>):
1959 Move before avx2_perm<mode>/avx512f_perm<mode>.
1960
1961 PR target/93376
1962 * simplify-rtx.c (simplify_const_unary_operation,
1963 simplify_const_binary_operation): Punt for mode precision above
1964 MAX_BITSIZE_MODE_ANY_INT.
1965
1966 2020-01-24 Andrew Pinski <apinski@marvell.com>
1967
1968 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Change
1969 alu.shift_reg to 0.
1970
1971 2020-01-24 Jeff Law <law@redhat.com>
1972
1973 PR target/13721
1974 * config/h8300/h8300.c (h8300_print_operand): Only call byte_reg
1975 for REGs. Call output_operand_lossage to get more reasonable
1976 diagnostics.
1977
1978 2020-01-24 Andrew Stubbs <ams@codesourcery.com>
1979
1980 * config/gcn/gcn-valu.md (vec_cmp<mode>di): Use
1981 gcn_fp_compare_operator.
1982 (vec_cmpu<mode>di): Use gcn_compare_operator.
1983 (vec_cmp<u>v64qidi): Use gcn_compare_operator.
1984 (vec_cmp<mode>di_exec): Use gcn_fp_compare_operator.
1985 (vec_cmpu<mode>di_exec): Use gcn_compare_operator.
1986 (vec_cmp<u>v64qidi_exec): Use gcn_compare_operator.
1987 (vec_cmp<mode>di_dup): Use gcn_fp_compare_operator.
1988 (vec_cmp<mode>di_dup_exec): Use gcn_fp_compare_operator.
1989 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>): Use
1990 gcn_fp_compare_operator.
1991 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>_exec): Use
1992 gcn_fp_compare_operator.
1993 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>): Use
1994 gcn_fp_compare_operator.
1995 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>_exec): Use
1996 gcn_fp_compare_operator.
1997
1998 2020-01-24 Maciej W. Rozycki <macro@wdc.com>
1999
2000 * doc/install.texi (Cross-Compiler-Specific Options): Document
2001 `--with-toolexeclibdir' option.
2002
2003 2020-01-24 Hans-Peter Nilsson <hp@axis.com>
2004
2005 * target.def (flags_regnum): Also mention effect on delay slot filling.
2006 * doc/tm.texi: Regenerate.
2007
2008 2020-01-23 Jeff Law <law@redhat.com>
2009
2010 PR translation/90162
2011 * config/h8300/h8300.c (h8300_option_override): Fix diagnostic text.
2012
2013 2020-01-23 Mikael Tillenius <mti-1@tillenius.com>
2014
2015 PR target/92269
2016 * config/h8300/h8300.h (FUNCTION_PROFILER): Fix emission of
2017 profiling label
2018
2019 2020-01-23 Jakub Jelinek <jakub@redhat.com>
2020
2021 PR rtl-optimization/93402
2022 * postreload.c (reload_combine_recognize_pattern): Don't try to adjust
2023 USE insns.
2024
2025 2020-01-23 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
2026
2027 * config.in: Regenerated.
2028 * config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to 1
2029 for TARGET_LIBC_GNUSTACK.
2030 * configure: Regenerated.
2031 * configure.ac: Define TARGET_LIBC_GNUSTACK if glibc version is
2032 found to be 2.31 or greater.
2033
2034 2020-01-23 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
2035
2036 * config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to
2037 TARGET_SOFT_FLOAT.
2038 * config/mips/mips.c (TARGET_ASM_FILE_END): Define to ...
2039 (mips_asm_file_end): New function. Delegate to
2040 file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK is true.
2041 * config/mips/mips.h (NEED_INDICATE_EXEC_STACK): Define to 0.
2042
2043 2020-01-23 Jakub Jelinek <jakub@redhat.com>
2044
2045 PR target/93376
2046 * config/i386/i386-modes.def (POImode): New mode.
2047 (MAX_BITSIZE_MODE_ANY_INT): Change from 128 to 160.
2048 * config/i386/i386.md (DPWI): New mode attribute.
2049 (addv<mode>4, subv<mode>4): Use <DPWI> instead of <DWI>.
2050 (QWI): Rename to...
2051 (QPWI): ... this. Use POI instead of OI for TImode.
2052 (*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1,
2053 *subv<dwi>4_doubleword, *subv<dwi>4_doubleword_1): Use <QPWI>
2054 instead of <QWI>.
2055
2056 2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
2057
2058 PR target/93341
2059 * config/aarch64/aarch64.md (UNSPEC_SPECULATION_TRACKER_REV): New
2060 unspec.
2061 (speculation_tracker_rev): New pattern.
2062 * config/aarch64/aarch64-speculation.cc (aarch64_do_track_speculation):
2063 Use speculation_tracker_rev to track the inverse condition.
2064
2065 2020-01-23 Richard Biener <rguenther@suse.de>
2066
2067 PR tree-optimization/93381
2068 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Take
2069 alias-set of the def as argument and record the first one.
2070 (vn_walk_cb_data::first_set): New member.
2071 (vn_reference_lookup_3): Pass the alias-set of the current def
2072 to push_partial_def. Fix alias-set used in the aggregate copy
2073 case.
2074 (vn_reference_lookup): Consistently set *last_vuse_ptr.
2075 * real.c (clear_significand_below): Fix out-of-bound access.
2076
2077 2020-01-23 Jakub Jelinek <jakub@redhat.com>
2078
2079 PR target/93346
2080 * config/i386/i386.md (*bmi2_bzhi_<mode>3_2, *bmi2_bzhi_<mode>3_3):
2081 New define_insn patterns.
2082
2083 2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
2084
2085 * doc/sourcebuild.texi (check-function-bodies): Add an
2086 optional target/xfail selector.
2087
2088 2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
2089
2090 PR rtl-optimization/93124
2091 * auto-inc-dec.c (merge_in_block): Don't add auto inc/decs to
2092 bare USE and CLOBBER insns.
2093
2094 2020-01-22 Andrew Pinski <apinski@marvell.com>
2095
2096 * config/arc/arc.c (output_short_suffix): Check insn for nullness.
2097
2098 2020-01-22 David Malcolm <dmalcolm@redhat.com>
2099
2100 PR analyzer/93307
2101 * gdbinit.in (break-on-saved-diagnostic): Update for move of
2102 diagnostic_manager into "ana" namespace.
2103 * selftest-run-tests.c (selftest::run_tests): Update for move of
2104 selftest::run_analyzer_selftests to
2105 ana::selftest::run_analyzer_selftests.
2106
2107 2020-01-22 Richard Sandiford <richard.sandiford@arm.com>
2108
2109 * cfgexpand.c (union_stack_vars): Update the size.
2110
2111 2020-01-22 Richard Biener <rguenther@suse.de>
2112
2113 PR tree-optimization/93381
2114 * tree-ssa-structalias.c (find_func_aliases): Assume offsetting
2115 throughout, handle all conversions the same.
2116
2117 2020-01-22 Jakub Jelinek <jakub@redhat.com>
2118
2119 PR target/93335
2120 * config/aarch64/aarch64.c (aarch64_expand_subvti): Only use
2121 gen_subdi3_compare1_imm if low_in2 satisfies aarch64_plus_immediate
2122 predicate, not whenever it is CONST_INT. Otherwise, force_reg it.
2123 Call force_reg on high_in2 unconditionally.
2124
2125 2020-01-22 Martin Liska <mliska@suse.cz>
2126
2127 PR tree-optimization/92924
2128 * profile.c (compute_value_histograms): Divide
2129 all counter values.
2130
2131 2020-01-22 Jakub Jelinek <jakub@redhat.com>
2132
2133 PR target/91298
2134 * output.h (assemble_name_resolve): Declare.
2135 * varasm.c (assemble_name_resolve): New function.
2136 (assemble_name): Use it.
2137 * config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Define.
2138
2139 2020-01-22 Joseph Myers <joseph@codesourcery.com>
2140
2141 * doc/sourcebuild.texi (Texinfo Manuals, Front End): Refer to
2142 update_web_docs_git instead of update_web_docs_svn.
2143
2144 2020-01-21 Andrew Pinski <apinski@marvell.com>
2145
2146 PR target/9311
2147 * config/aarch64/aarch64.md (tlsgd_small_<mode>): Have operand 0
2148 as PTR mode. Have operand 1 as being modeless, it can be P mode.
2149 (*tlsgd_small_<mode>): Likewise.
2150 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately)
2151 <case SYMBOL_SMALL_TLSGD>: Call gen_tlsgd_small_* with a ptr_mode
2152 register. Convert that register back to dest using convert_mode.
2153
2154 2020-01-21 Jim Wilson <jimw@sifive.com>
2155
2156 * config/riscv/riscv-sr.c (riscv_sr_match_prologue): Use INTVAL
2157 instead of XINT.
2158
2159 2020-01-21 H.J. Lu <hongjiu.lu@intel.com>
2160 Uros Bizjak <ubizjak@gmail.com>
2161
2162 PR target/93319
2163 * config/i386/i386.c (ix86_tls_module_base): Replace Pmode
2164 with ptr_mode.
2165 (legitimize_tls_address): Do GNU2 TLS address computation in
2166 ptr_mode and zero-extend result to Pmode.
2167 * config/i386/i386.md (@tls_dynamic_gnu2_64_<mode>): Replace
2168 :P with :PTR and Pmode with ptr_mode.
2169 (*tls_dynamic_gnu2_lea_64_<mode>): Likewise.
2170 (*tls_dynamic_gnu2_call_64_<mode>): Likewise.
2171 (*tls_dynamic_gnu2_combine_64_<mode>): Likewise.
2172
2173 2020-01-21 Jakub Jelinek <jakub@redhat.com>
2174
2175 PR target/93333
2176 * config/riscv/riscv.c (riscv_rtx_costs) <case ZERO_EXTRACT>: Verify
2177 the last two operands are CONST_INT_P before using them as such.
2178
2179 2020-01-21 Richard Sandiford <richard.sandiford@arm.com>
2180
2181 * config/aarch64/aarch64-sve-builtins.def: Use get_typenode_from_name
2182 to get the integer element types.
2183
2184 2020-01-21 Richard Sandiford <richard.sandiford@arm.com>
2185
2186 * config/aarch64/aarch64-sve-builtins.h
2187 (function_expander::convert_to_pmode): Declare.
2188 * config/aarch64/aarch64-sve-builtins.cc
2189 (function_expander::convert_to_pmode): New function.
2190 (function_expander::get_contiguous_base): Use it.
2191 (function_expander::prepare_gather_address_operands): Likewise.
2192 * config/aarch64/aarch64-sve-builtins-sve2.cc
2193 (svwhilerw_svwhilewr_impl::expand): Likewise.
2194
2195 2020-01-21 Szabolcs Nagy <szabolcs.nagy@arm.com>
2196
2197 PR target/92424
2198 * config/aarch64/aarch64.c (aarch64_declare_function_name): Set
2199 cfun->machine->label_is_assembled.
2200 (aarch64_print_patchable_function_entry): New.
2201 (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): Define.
2202 * config/aarch64/aarch64.h (struct machine_function): New field,
2203 label_is_assembled.
2204
2205 2020-01-21 David Malcolm <dmalcolm@redhat.com>
2206
2207 PR ipa/93315
2208 * ipa-profile.c (ipa_profile): Delete call_sums and set it to
2209 NULL on exit.
2210
2211 2020-01-18 Jan Hubicka <hubicka@ucw.cz>
2212
2213 PR lto/93318
2214 * cgraph.c (cgraph_edge::resolve_speculation,
2215 cgraph_edge::redirect_call_stmt_to_callee): Fix update of
2216 call_stmt_site_hash.
2217
2218 2020-01-21 Martin Liska <mliska@suse.cz>
2219
2220 * config/rs6000/rs6000.c (common_mode_defined): Remove
2221 unused variable.
2222
2223 2020-01-21 Richard Biener <rguenther@suse.de>
2224
2225 PR tree-optimization/92328
2226 * tree-ssa-sccvn.c (vn_reference_lookup_3): Preserve
2227 type when value-numbering same-sized store by inserting a
2228 VIEW_CONVERT_EXPR.
2229 (eliminate_dom_walker::eliminate_stmt): When eliminating
2230 a redundant store handle bit-reinterpretation of the same value.
2231
2232 2020-01-21 Andrew Pinski <apinski@marvel.com>
2233
2234 PR tree-opt/93321
2235 * tree-into-ssa.c (prepare_block_for_update_1): Split out
2236 from ...
2237 (prepare_block_for_update): This. Use a worklist instead of
2238 recursing.
2239
2240 2020-01-21 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
2241
2242 * gcc/config/arm/arm.c (clear_operation_p):
2243 Initialise last_regno, skip first iteration
2244 based on the first_set value and use ints instead
2245 of the unnecessary HOST_WIDE_INTs.
2246
2247 2020-01-21 Jakub Jelinek <jakub@redhat.com>
2248
2249 PR target/93073
2250 * config/rs6000/rs6000.c (rs6000_emit_cmove): If using fsel, punt for
2251 compare_mode other than SFmode or DFmode.
2252
2253 2020-01-21 Kito Cheng <kito.cheng@sifive.com>
2254
2255 PR target/93304
2256 * config/riscv/riscv-protos.h (riscv_hard_regno_rename_ok): New.
2257 * config/riscv/riscv.c (riscv_hard_regno_rename_ok): New.
2258 * config/riscv/riscv.h (HARD_REGNO_RENAME_OK): Defined.
2259
2260 2020-01-20 Wilco Dijkstra <wdijkstr@arm.com>
2261
2262 * config/aarch64/aarch64.c (neoversen1_tunings): Set jump_align to 4.
2263
2264 2020-01-20 Andrew Pinski <apinski@marvell.com>
2265
2266 PR middle-end/93242
2267 * targhooks.c (default_print_patchable_function_entry): Use
2268 output_asm_insn to emit the nop instruction.
2269
2270 2020-01-20 Fangrui Song <maskray@google.com>
2271
2272 PR middle-end/93194
2273 * targhooks.c (default_print_patchable_function_entry): Align to
2274 POINTER_SIZE.
2275
2276 2020-01-20 H.J. Lu <hongjiu.lu@intel.com>
2277
2278 PR target/93319
2279 * config/i386/i386.c (legitimize_tls_address): Pass Pmode to
2280 gen_tls_dynamic_gnu2_64. Compute GNU2 TLS address in ptr_mode.
2281 * config/i386/i386.md (tls_dynamic_gnu2_64): Renamed to ...
2282 (@tls_dynamic_gnu2_64_<mode>): This. Replace DI with P.
2283 (*tls_dynamic_gnu2_lea_64): Renamed to ...
2284 (*tls_dynamic_gnu2_lea_64_<mode>): This. Replace DI with P.
2285 Remove the {q} suffix from lea.
2286 (*tls_dynamic_gnu2_call_64): Renamed to ...
2287 (*tls_dynamic_gnu2_call_64_<mode>): This. Replace DI with P.
2288 (*tls_dynamic_gnu2_combine_64): Renamed to ...
2289 (*tls_dynamic_gnu2_combine_64_<mode>): This. Replace DI with P.
2290 Pass Pmode to gen_tls_dynamic_gnu2_64.
2291
2292 2020-01-20 Wilco Dijkstra <wdijkstr@arm.com>
2293
2294 * config/aarch64/aarch64.h (SLOW_BYTE_ACCESS): Set to 1.
2295
2296 2020-01-20 Richard Sandiford <richard.sandiford@arm.com>
2297
2298 * config/aarch64/aarch64-sve-builtins-base.cc
2299 (svld1ro_impl::memory_vector_mode): Remove parameter name.
2300
2301 2020-01-20 Richard Biener <rguenther@suse.de>
2302
2303 PR debug/92763
2304 * dwarf2out.c (prune_unused_types): Unconditionally mark
2305 called function DIEs.
2306
2307 2020-01-20 Martin Liska <mliska@suse.cz>
2308
2309 PR tree-optimization/93199
2310 * tree-eh.c (struct leh_state): Add
2311 new field outer_non_cleanup.
2312 (cleanup_is_dead_in): Pass leh_state instead
2313 of eh_region. Add a checking that state->outer_non_cleanup
2314 points to outer non-clean up region.
2315 (lower_try_finally): Record outer_non_cleanup
2316 for this_state.
2317 (lower_catch): Likewise.
2318 (lower_eh_filter): Likewise.
2319 (lower_eh_must_not_throw): Likewise.
2320 (lower_cleanup): Likewise.
2321
2322 2020-01-20 Richard Biener <rguenther@suse.de>
2323
2324 PR tree-optimization/93094
2325 * tree-vectorizer.h (vect_loop_versioning): Adjust.
2326 (vect_transform_loop): Likewise.
2327 * tree-vectorizer.c (try_vectorize_loop_1): Pass down
2328 loop_vectorized_call to vect_transform_loop.
2329 * tree-vect-loop.c (vect_transform_loop): Pass down
2330 loop_vectorized_call to vect_loop_versioning.
2331 * tree-vect-loop-manip.c (vect_loop_versioning): Use
2332 the earlier discovered loop_vectorized_call.
2333
2334 2020-01-19 Eric S. Raymond <esr@thyrsus.com>
2335
2336 * doc/contribute.texi: Update for SVN -> Git transition.
2337 * doc/install.texi: Likewise.
2338
2339 2020-01-18 Jan Hubicka <hubicka@ucw.cz>
2340
2341 PR lto/93318
2342 * cgraph.c (cgraph_edge::make_speculative): Increase number of
2343 speculative targets.
2344 (verify_speculative_call): New function
2345 (cgraph_node::verify_node): Use it.
2346 * ipa-profile.c (ipa_profile): Fix formating; do not set number of
2347 speculations.
2348
2349 2020-01-18 Jan Hubicka <hubicka@ucw.cz>
2350
2351 PR lto/93318
2352 * cgraph.c (cgraph_edge::resolve_speculation): Fix foramting.
2353 (cgraph_edge::make_direct): Remove all indirect targets.
2354 (cgraph_edge::redirect_call_stmt_to_callee): Use make_direct..
2355 (cgraph_node::verify_node): Verify that only one call_stmt or
2356 lto_stmt_uid is set.
2357 * cgraphclones.c (cgraph_edge::clone): Set only one call_stmt or
2358 lto_stmt_uid.
2359 * lto-cgraph.c (lto_output_edge): Simplify streaming of stmt.
2360 (lto_output_ref): Simplify streaming of stmt.
2361 * lto-streamer-in.c (fixup_call_stmt_edges_1): Clear lto_stmt_uid.
2362
2363 2020-01-18 Tamar Christina <tamar.christina@arm.com>
2364
2365 * config/aarch64/aarch64-sve-builtins-base.cc (memory_vector_mode):
2366 Mark parameter unused.
2367
2368 2020-01-18 Hans-Peter Nilsson <hp@axis.com>
2369
2370 * config.gcc <obsolete targets>: Add crisv32-*-* and cris-*-linux*
2371
2372 2019-01-18 Gerald Pfeifer <gerald@pfeifer.com>
2373
2374 * varpool.c (ctor_useable_for_folding_p): Fix grammar.
2375
2376 2020-01-18 Iain Sandoe <iain@sandoe.co.uk>
2377
2378 * Makefile.in: Add coroutine-passes.o.
2379 * builtin-types.def (BT_CONST_SIZE): New.
2380 (BT_FN_BOOL_PTR): New.
2381 (BT_FN_PTR_PTR_CONST_SIZE_BOOL): New.
2382 * builtins.def (DEF_COROUTINE_BUILTIN): New.
2383 * coroutine-builtins.def: New file.
2384 * coroutine-passes.cc: New file.
2385 * function.h (struct GTY function): Add a bit to indicate that the
2386 function is a coroutine component.
2387 * internal-fn.c (expand_CO_FRAME): New.
2388 (expand_CO_YIELD): New.
2389 (expand_CO_SUSPN): New.
2390 (expand_CO_ACTOR): New.
2391 * internal-fn.def (CO_ACTOR): New.
2392 (CO_YIELD): New.
2393 (CO_SUSPN): New.
2394 (CO_FRAME): New.
2395 * passes.def: Add pass_coroutine_lower_builtins,
2396 pass_coroutine_early_expand_ifns.
2397 * tree-pass.h (make_pass_coroutine_lower_builtins): New.
2398 (make_pass_coroutine_early_expand_ifns): New.
2399 * doc/invoke.texi: Document the fcoroutines command line
2400 switch.
2401
2402 2020-01-18 Jakub Jelinek <jakub@redhat.com>
2403
2404 * config/arm/vfp.md (*clear_vfp_multiple): Remove unused variable.
2405
2406 PR target/93312
2407 * config/arm/arm.c (clear_operation_p): Don't use REGNO until
2408 after checking the argument is a REG. Don't use REGNO (reg)
2409 again to set last_regno, reuse regno variable instead.
2410
2411 2020-01-17 David Malcolm <dmalcolm@redhat.com>
2412
2413 * doc/analyzer.texi (Limitations): Add note about NaN.
2414
2415 2020-01-17 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
2416 Sudakshina Das <sudi.das@arm.com>
2417
2418 * config/arm/arm.md (ashldi3): Generate thumb2_lsll for both reg
2419 and valid immediate.
2420 (ashrdi3): Generate thumb2_asrl for both reg and valid immediate.
2421 (lshrdi3): Generate thumb2_lsrl for valid immediates.
2422 * config/arm/constraints.md (Pg): New.
2423 * config/arm/predicates.md (long_shift_imm): New.
2424 (arm_reg_or_long_shift_imm): Likewise.
2425 * config/arm/thumb2.md (thumb2_asrl): New immediate alternative.
2426 (thumb2_lsll): Likewise.
2427 (thumb2_lsrl): New.
2428
2429 2020-01-17 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
2430 Sudakshina Das <sudi.das@arm.com>
2431
2432 * config/arm/arm.md (ashldi3): Generate thumb2_lsll for TARGET_HAVE_MVE.
2433 (ashrdi3): Generate thumb2_asrl for TARGET_HAVE_MVE.
2434 * config/arm/arm.c (arm_hard_regno_mode_ok): Allocate even odd
2435 register pairs for doubleword quantities for ARMv8.1M-Mainline.
2436 * config/arm/thumb2.md (thumb2_asrl): New.
2437 (thumb2_lsll): Likewise.
2438
2439 2020-01-17 Jakub Jelinek <jakub@redhat.com>
2440
2441 * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear): Remove
2442 unused variable.
2443
2444 2020-01-17 Alexander Monakov <amonakov@ispras.ru>
2445
2446 * gdbinit.in (help-gcc-hooks): New command.
2447 (pp, pr, prl, pt, pct, pgg, pgq, pgs, pge, pmz, ptc, pdn, ptn, pdd, prc,
2448 pi, pbm, pel, trt): Take $arg0 instead of $ if supplied. Update
2449 documentation.
2450
2451 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com>
2452
2453 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): Use the
2454 correct target macro.
2455
2456 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com>
2457
2458 * config/aarch64/aarch64-protos.h
2459 (aarch64_sve_ld1ro_operand_p): New.
2460 * config/aarch64/aarch64-sve-builtins-base.cc
2461 (class load_replicate): New.
2462 (class svld1ro_impl): New.
2463 (class svld1rq_impl): Change to inherit from load_replicate.
2464 (svld1ro): New sve intrinsic function base.
2465 * config/aarch64/aarch64-sve-builtins-base.def (svld1ro):
2466 New DEF_SVE_FUNCTION.
2467 * config/aarch64/aarch64-sve-builtins-base.h
2468 (svld1ro): New decl.
2469 * config/aarch64/aarch64-sve-builtins.cc
2470 (function_expander::add_mem_operand): Modify assert to allow
2471 OImode.
2472 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): New
2473 pattern.
2474 * config/aarch64/aarch64.c
2475 (aarch64_sve_ld1rq_operand_p): Implement in terms of ...
2476 (aarch64_sve_ld1rq_ld1ro_operand_p): This.
2477 (aarch64_sve_ld1ro_operand_p): New.
2478 * config/aarch64/aarch64.md (UNSPEC_LD1RO): New unspec.
2479 * config/aarch64/constraints.md (UOb,UOh,UOw,UOd): New.
2480 * config/aarch64/predicates.md
2481 (aarch64_sve_ld1ro_operand_{b,h,w,d}): New.
2482
2483 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com>
2484
2485 * config/aarch64/aarch64-c.c (_ARM_FEATURE_MATMUL_FLOAT64):
2486 Introduce this ACLE specified predefined macro.
2487 * config/aarch64/aarch64-option-extensions.def (f64mm): New.
2488 (fp): Disabling this disables f64mm.
2489 (simd): Disabling this disables f64mm.
2490 (fp16): Disabling this disables f64mm.
2491 (sve): Disabling this disables f64mm.
2492 * config/aarch64/aarch64.h (AARCH64_FL_F64MM): New.
2493 (AARCH64_ISA_F64MM): New.
2494 (TARGET_F64MM): New.
2495 * doc/invoke.texi (f64mm): Document new option.
2496
2497 2020-01-17 Wilco Dijkstra <wdijkstr@arm.com>
2498
2499 * config/aarch64/aarch64.c (generic_tunings): Add branch fusion.
2500 (neoversen1_tunings): Likewise.
2501
2502 2020-01-17 Wilco Dijkstra <wdijkstr@arm.com>
2503
2504 PR target/92692
2505 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap)
2506 Add assert to ensure prolog has been emitted.
2507 (aarch64_split_atomic_op): Likewise.
2508 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>)
2509 Use epilogue_completed rather than reload_completed.
2510 (aarch64_atomic_exchange<mode>): Likewise.
2511 (aarch64_atomic_<atomic_optab><mode>): Likewise.
2512 (atomic_nand<mode>): Likewise.
2513 (aarch64_atomic_fetch_<atomic_optab><mode>): Likewise.
2514 (atomic_fetch_nand<mode>): Likewise.
2515 (aarch64_atomic_<atomic_optab>_fetch<mode>): Likewise.
2516 (atomic_nand_fetch<mode>): Likewise.
2517
2518 2020-01-17 Richard Sandiford <richard.sandiford@arm.com>
2519
2520 PR target/93133
2521 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Return false
2522 for FP modes.
2523 (REVERSE_CONDITION): Delete.
2524 * config/aarch64/iterators.md (CC_ONLY): New mode iterator.
2525 (CCFP_CCFPE): Likewise.
2526 (e): New mode attribute.
2527 * config/aarch64/aarch64.md (ccmp<GPI:mode>): Rename to...
2528 (@ccmp<CC_ONLY:mode><GPI:mode>): ...this, using CC_ONLY instead of CC.
2529 (fccmp<GPF:mode>, fccmpe<GPF:mode>): Merge into...
2530 (@ccmp<CCFP_CCFPE:mode><GPF:mode>): ...this combined pattern.
2531 (@ccmp<CC_ONLY:mode><GPI:mode>_rev): New pattern.
2532 (@ccmp<CCFP_CCFPE:mode><GPF:mode>_rev): Likewise.
2533 * config/aarch64/aarch64.c (aarch64_gen_compare_reg): Update
2534 name of generator from gen_ccmpdi to gen_ccmpccdi.
2535 (aarch64_gen_ccmp_next): Use code_for_ccmp. If we want to reverse
2536 the previous comparison but aren't able to, use the new ccmp_rev
2537 patterns instead.
2538
2539 2020-01-17 Richard Sandiford <richard.sandiford@arm.com>
2540
2541 * gimplify.c (gimplify_return_expr): Use poly_int_tree_p rather
2542 than testing directly for INTEGER_CST.
2543 (gimplify_target_expr, gimplify_omp_depend): Likewise.
2544
2545 2020-01-17 Jakub Jelinek <jakub@redhat.com>
2546
2547 PR tree-optimization/93292
2548 * tree-vect-stmts.c (vectorizable_comparison): Punt also if
2549 get_vectype_for_scalar_type returns NULL.
2550
2551 2020-01-16 Jan Hubicka <hubicka@ucw.cz>
2552
2553 * params.opt (-param=max-predicted-iterations): Increase range from 0.
2554 * predict.c (estimate_loops): Add 1 to param_max_predicted_iterations.
2555
2556 2020-01-16 Jan Hubicka <hubicka@ucw.cz>
2557
2558 * ipa-fnsummary.c (estimate_calls_size_and_time): Fix formating of
2559 dump.
2560 * params.opt: (max-predicted-iterations): Set bounds.
2561 * predict.c (real_almost_one, real_br_prob_base,
2562 real_inv_br_prob_base, real_one_half, real_bb_freq_max): Remove.
2563 (propagate_freq): Add max_cyclic_prob parameter; cap cyclic
2564 probabilities; do not truncate to reg_br_prob_bases.
2565 (estimate_loops_at_level): Pass max_cyclic_prob.
2566 (estimate_loops): Compute max_cyclic_prob.
2567 (estimate_bb_frequencies): Do not initialize real_*; update calculation
2568 of back edge prob.
2569 * profile-count.c (profile_probability::to_sreal): New.
2570 * profile-count.h (class sreal): Move up in file.
2571 (profile_probability::to_sreal): Declare.
2572
2573 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
2574
2575 * config/arm/arm.c
2576 (arm_invalid_conversion): New function for target hook.
2577 (arm_invalid_unary_op): New function for target hook.
2578 (arm_invalid_binary_op): New function for target hook.
2579
2580 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
2581
2582 * config.gcc: Add arm_bf16.h.
2583 * config/arm/arm-builtins.c (arm_mangle_builtin_type): Fix comment.
2584 (arm_simd_builtin_std_type): Add BFmode.
2585 (arm_init_simd_builtin_types): Define element types for vector types.
2586 (arm_init_bf16_types): New function.
2587 (arm_init_builtins): Add arm_init_bf16_types function call.
2588 * config/arm/arm-modes.def: Add BFmode and V4BF, V8BF vector modes.
2589 * config/arm/arm-simd-builtin-types.def: Add V4BF, V8BF.
2590 * config/arm/arm.c (aapcs_vfp_sub_candidate): Add BFmode.
2591 (arm_hard_regno_mode_ok): Add BFmode and tidy up statements.
2592 (arm_vector_mode_supported_p): Add V4BF, V8BF.
2593 (arm_mangle_type): Add __bf16.
2594 * config/arm/arm.h: Add V4BF, V8BF to VALID_NEON_DREG_MODE,
2595 VALID_NEON_QREG_MODE respectively. Add export arm_bf16_type_node,
2596 arm_bf16_ptr_type_node.
2597 * config/arm/arm.md: Add BFmode to movhf expand, mov pattern and
2598 define_split between ARM registers.
2599 * config/arm/arm_bf16.h: New file.
2600 * config/arm/arm_neon.h: Add arm_bf16.h and Bfloat vector types.
2601 * config/arm/iterators.md: (ANY64_BF, VDXMOV, VHFBF, HFBF, fporbf): New.
2602 (VQXMOV): Add V8BF.
2603 * config/arm/neon.md: Add BF vector types to movhf NEON move patterns.
2604 * config/arm/vfp.md: Add BFmode to movhf patterns.
2605
2606 2020-01-16 Mihail Ionescu <mihail.ionescu@arm.com>
2607 Andre Vieira <andre.simoesdiasvieira@arm.com>
2608
2609 * config/arm/arm-cpus.in (mve, mve_float): New features.
2610 (dsp, mve, mve.fp): New options.
2611 * config/arm/arm.h (TARGET_HAVE_MVE, TARGET_HAVE_MVE_FLOAT): Define.
2612 * config/arm/t-rmprofile: Map v8.1-M multilibs to v8-M.
2613 * doc/invoke.texi: Document the armv8.1-m mve and dps options.
2614
2615 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
2616 Thomas Preud'homme <thomas.preudhomme@arm.com>
2617
2618 * config/arm/arm-cpus.in (ARMv8_1m_main): Redefine as an extension to
2619 Armv8-M Mainline.
2620 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Remove
2621 error for using -mcmse when targeting Armv8.1-M Mainline.
2622
2623 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
2624 Thomas Preud'homme <thomas.preudhomme@arm.com>
2625
2626 * config/arm/arm.md (nonsecure_call_internal): Do not force memory
2627 address in r4 when targeting Armv8.1-M Mainline.
2628 (nonsecure_call_value_internal): Likewise.
2629 * config/arm/thumb2.md (nonsecure_call_reg_thumb2): Make memory address
2630 a register match_operand again. Emit BLXNS when targeting
2631 Armv8.1-M Mainline.
2632 (nonsecure_call_value_reg_thumb2): Likewise.
2633
2634 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
2635 Thomas Preud'homme <thomas.preudhomme@arm.com>
2636
2637 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): Declare early.
2638 (cmse_nonsecure_call_inline_register_clear): Define new lazy_fpclear
2639 variable as true when floating-point ABI is not hard. Replace
2640 check against TARGET_HARD_FLOAT_ABI by checks against lazy_fpclear.
2641 Generate VLSTM and VLLDM instruction respectively before and
2642 after a function call to cmse_nonsecure_call function.
2643 * config/arm/unspecs.md (VUNSPEC_VLSTM): Define unspec.
2644 (VUNSPEC_VLLDM): Likewise.
2645 * config/arm/vfp.md (lazy_store_multiple_insn): New define_insn.
2646 (lazy_load_multiple_insn): Likewise.
2647
2648 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
2649 Thomas Preud'homme <thomas.preudhomme@arm.com>
2650
2651 * config/arm/arm.c (vfp_emit_fstmd): Declare early.
2652 (arm_emit_vfp_multi_reg_pop): Likewise.
2653 (cmse_nonsecure_call_inline_register_clear): Abstract number of VFP
2654 registers to clear in max_fp_regno. Emit VPUSH and VPOP to save and
2655 restore callee-saved VFP registers.
2656
2657 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
2658 Thomas Preud'homme <thomas.preudhomme@arm.com>
2659
2660 * config/arm/arm.c (arm_emit_multi_reg_pop): Declare early.
2661 (cmse_nonsecure_call_clear_caller_saved): Rename into ...
2662 (cmse_nonsecure_call_inline_register_clear): This. Save and clear
2663 callee-saved GPRs as well as clear ip register before doing a nonsecure
2664 call then restore callee-saved GPRs after it when targeting
2665 Armv8.1-M Mainline.
2666 (arm_reorg): Adapt to function rename.
2667
2668 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
2669 Thomas Preud'homme <thomas.preudhomme@arm.com>
2670
2671 * config/arm/arm-protos.h (clear_operation_p): Adapt prototype.
2672 * config/arm/arm.c (clear_operation_p): Extend to be able to check a
2673 clear_vfp_multiple pattern based on a new vfp parameter.
2674 (cmse_clear_registers): Generate VSCCLRM to clear VFP registers when
2675 targeting Armv8.1-M Mainline.
2676 (cmse_nonsecure_entry_clear_before_return): Clear VFP registers
2677 unconditionally when targeting Armv8.1-M Mainline architecture. Check
2678 whether VFP registers are available before looking call_used_regs for a
2679 VFP register.
2680 * config/arm/predicates.md (clear_multiple_operation): Adapt to change
2681 of prototype of clear_operation_p.
2682 (clear_vfp_multiple_operation): New predicate.
2683 * config/arm/unspecs.md (VUNSPEC_VSCCLRM_VPR): New volatile unspec.
2684 * config/arm/vfp.md (clear_vfp_multiple): New define_insn.
2685
2686 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
2687 Thomas Preud'homme <thomas.preudhomme@arm.com>
2688
2689 * config/arm/arm-protos.h (clear_operation_p): Declare.
2690 * config/arm/arm.c (clear_operation_p): New function.
2691 (cmse_clear_registers): Generate clear_multiple instruction pattern if
2692 targeting Armv8.1-M Mainline or successor.
2693 (output_return_instruction): Only output APSR register clearing if
2694 Armv8.1-M Mainline instructions not available.
2695 (thumb_exit): Likewise.
2696 * config/arm/predicates.md (clear_multiple_operation): New predicate.
2697 * config/arm/thumb2.md (clear_apsr): New define_insn.
2698 (clear_multiple): Likewise.
2699 * config/arm/unspecs.md (VUNSPEC_CLRM_APSR): New volatile unspec.
2700
2701 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
2702 Thomas Preud'homme <thomas.preudhomme@arm.com>
2703
2704 * config/arm/arm.c (fp_sysreg_names): Declare and define.
2705 (use_return_insn): Also return false for Armv8.1-M Mainline.
2706 (output_return_instruction): Skip FPSCR clearing if Armv8.1-M
2707 Mainline instructions are available.
2708 (arm_compute_frame_layout): Allocate space in frame for FPCXTNS
2709 when targeting Armv8.1-M Mainline Security Extensions.
2710 (arm_expand_prologue): Save FPCXTNS if this is an Armv8.1-M
2711 Mainline entry function.
2712 (cmse_nonsecure_entry_clear_before_return): Clear IP and r4 if
2713 targeting Armv8.1-M Mainline or successor.
2714 (arm_expand_epilogue): Fix indentation of caller-saved register
2715 clearing. Restore FPCXTNS if this is an Armv8.1-M Mainline
2716 entry function.
2717 * config/arm/arm.h (TARGET_HAVE_FP_CMSE): New macro.
2718 (FP_SYSREGS): Likewise.
2719 (enum vfp_sysregs_encoding): Define enum.
2720 (fp_sysreg_names): Declare.
2721 * config/arm/unspecs.md (VUNSPEC_VSTR_VLDR): New volatile unspec.
2722 * config/arm/vfp.md (push_fpsysreg_insn): New define_insn.
2723 (pop_fpsysreg_insn): Likewise.
2724
2725 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
2726 Thomas Preud'homme <thomas.preudhomme@arm.com>
2727
2728 * config/arm/arm-cpus.in (armv8_1m_main): New feature.
2729 (ARMv4, ARMv4t, ARMv5t, ARMv5te, ARMv5tej, ARMv6, ARMv6j, ARMv6k,
2730 ARMv6z, ARMv6kz, ARMv6zk, ARMv6t2, ARMv6m, ARMv7, ARMv7a, ARMv7ve,
2731 ARMv7r, ARMv7m, ARMv7em, ARMv8a, ARMv8_1a, ARMv8_2a, ARMv8_3a,
2732 ARMv8_4a, ARMv8_5a, ARMv8m_base, ARMv8m_main, ARMv8r): Reindent.
2733 (ARMv8_1m_main): New feature group.
2734 (armv8.1-m.main): New architecture.
2735 * config/arm/arm-tables.opt: Regenerate.
2736 * config/arm/arm.c (arm_arch8_1m_main): Define and default initialize.
2737 (arm_option_reconfigure_globals): Initialize arm_arch8_1m_main.
2738 (arm_options_perform_arch_sanity_checks): Error out when targeting
2739 Armv8.1-M Mainline Security Extensions.
2740 * config/arm/arm.h (arm_arch8_1m_main): Declare.
2741
2742 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
2743
2744 * config/aarch64/aarch64-simd-builtins.def (aarch64_bfdot,
2745 aarch64_bfdot_lane, aarch64_bfdot_laneq): New.
2746 * config/aarch64/aarch64-simd.md (aarch64_bfdot, aarch64_bfdot_lane,
2747 aarch64_bfdot_laneq): New.
2748 * config/aarch64/arm_bf16.h (vbfdot_f32, vbfdotq_f32,
2749 vbfdot_lane_f32, vbfdotq_lane_f32, vbfdot_laneq_f32,
2750 vbfdotq_laneq_f32): New.
2751 * config/aarch64/iterators.md (UNSPEC_BFDOT, Vbfdottype,
2752 VBFMLA_W, VBF): New.
2753 (isquadop): Add V4BF, V8BF.
2754
2755 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
2756
2757 * config/aarch64/aarch64-builtins.c: (enum aarch64_type_qualifiers):
2758 New qualifier_lane_quadtup_index, TYPES_TERNOP_SSUS,
2759 TYPES_QUADOPSSUS_LANE_QUADTUP, TYPES_QUADOPSSSU_LANE_QUADTUP.
2760 (aarch64_simd_expand_args): Add case SIMD_ARG_LANE_QUADTUP_INDEX.
2761 (aarch64_simd_expand_builtin): Add qualifier_lane_quadtup_index.
2762 * config/aarch64/aarch64-simd-builtins.def (usdot, usdot_lane,
2763 usdot_laneq, sudot_lane,sudot_laneq): New.
2764 * config/aarch64/aarch64-simd.md (aarch64_usdot): New.
2765 (aarch64_<sur>dot_lane): New.
2766 * config/aarch64/arm_neon.h (vusdot_s32): New.
2767 (vusdotq_s32): New.
2768 (vusdot_lane_s32): New.
2769 (vsudot_lane_s32): New.
2770 * config/aarch64/iterators.md (DOTPROD_I8MM): New iterator.
2771 (UNSPEC_USDOT, UNSPEC_SUDOT): New unspecs.
2772
2773 2020-01-16 Martin Liska <mliska@suse.cz>
2774
2775 * value-prof.c (dump_histogram_value): Fix
2776 obvious spacing issue.
2777
2778 2020-01-16 Andrew Pinski <apinski@marvell.com>
2779
2780 * tree-ssa-sccvn.c(vn_reference_lookup_3): Check lhs for
2781 !storage_order_barrier_p.
2782
2783 2020-01-16 Andrew Pinski <apinski@marvell.com>
2784
2785 * sched-int.h (_dep): Add unused bit-field field for the padding.
2786 * sched-deps.c (init_dep_1): Init unused field.
2787
2788 2020-01-16 Andrew Pinski <apinski@marvell.com>
2789
2790 * optabs.h (create_expand_operand): Initialize target field also.
2791
2792 2020-01-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
2793
2794 PR tree-optimization/92429
2795 * tree-ssa-loop-niter.h (simplify_replace_tree): Add parameter.
2796 * tree-ssa-loop-niter.c (simplify_replace_tree): Add parameter to
2797 control folding.
2798 * tree-vect-loop.c (update_epilogue_vinfo): Do not fold when replacing
2799 tree.
2800
2801 2020-01-16 Richard Sandiford <richard.sandiford@arm.com>
2802
2803 * config/aarch64/aarch64.c (aarch64_split_sve_subreg_move): Apply
2804 aarch64_sve_int_mode to each mode.
2805
2806 2020-01-15 David Malcolm <dmalcolm@redhat.com>
2807
2808 * doc/analyzer.texi (Overview): Add note about
2809 -fdump-ipa-analyzer.
2810
2811 2020-01-15 Wilco Dijkstra <wdijkstr@arm.com>
2812
2813 PR tree-optimization/93231
2814 * tree-ssa-forwprop.c (optimize_count_trailing_zeroes): Check
2815 input_type is unsigned. Use tree_to_shwi for shift constant.
2816 Check CST_STRING element size is CHAR_TYPE_SIZE bits.
2817 (simplify_count_trailing_zeroes): Add test to handle known non-zero
2818 inputs more efficiently.
2819
2820 2020-01-15 Uroš Bizjak <ubizjak@gmail.com>
2821
2822 * config/i386/i386.md (*movsf_internal): Do not require
2823 SSE2 ISA for alternatives 14 and 15.
2824
2825 2020-01-15 Richard Biener <rguenther@suse.de>
2826
2827 PR middle-end/93273
2828 * tree-eh.c (sink_clobbers): If we already visited the destination
2829 block do not defer insertion.
2830 (pass_lower_eh_dispatch::execute): Maintain BB_VISITED for
2831 the purpose of defered insertion.
2832
2833 2020-01-15 Jakub Jelinek <jakub@redhat.com>
2834
2835 * BASE-VER: Bump to 10.0.1.
2836
2837 2020-01-15 Richard Sandiford <richard.sandiford@arm.com>
2838
2839 PR tree-optimization/93247
2840 * tree-vect-loop.c (update_epilogue_loop_vinfo): Check the access
2841 type of the stmt that we're going to vectorize.
2842
2843 2020-01-15 Richard Sandiford <richard.sandiford@arm.com>
2844
2845 * tree-vect-slp.c (vectorize_slp_instance_root_stmt): Use a
2846 VIEW_CONVERT_EXPR if the vectorized constructor has a diffeent
2847 type from the lhs.
2848
2849 2020-01-15 Martin Liska <mliska@suse.cz>
2850
2851 * ipa-profile.c (ipa_profile_read_edge_summary): Do not allow
2852 2 calls of streamer_read_hwi in a function call.
2853
2854 2020-01-15 Richard Biener <rguenther@suse.de>
2855
2856 * alias.c (record_alias_subset): Avoid redundant work when
2857 subset is already recorded.
2858
2859 2020-01-14 David Malcolm <dmalcolm@redhat.com>
2860
2861 * doc/invoke.texi (-fdiagnostics-show-cwe): Add note that some of
2862 the analyzer options provide CWE identifiers.
2863
2864 2020-01-14 David Malcolm <dmalcolm@redhat.com>
2865
2866 * tree-diagnostic-path.cc (path_summary::event_range::print):
2867 When testing for UNKNOWN_LOCATION, look through ad-hoc wrappers
2868 using get_pure_location.
2869
2870 2020-01-15 Jakub Jelinek <jakub@redhat.com>
2871
2872 PR tree-optimization/93262
2873 * tree-ssa-dse.c (maybe_trim_memstar_call): For *_chk builtins,
2874 perform head trimming only if the last argument is constant,
2875 either all ones, or larger or equal to head trim, in the latter
2876 case decrease the last argument by head_trim.
2877
2878 PR tree-optimization/93249
2879 * tree-ssa-dse.c: Include builtins.h and gimple-fold.h.
2880 (maybe_trim_memstar_call): Move head_trim and tail_trim vars to
2881 function body scope, reindent. For BUILTIN_IN_STRNCPY*, don't
2882 perform head trim unless we can prove there are no '\0' chars
2883 from the source among the first head_trim chars.
2884
2885 2020-01-14 David Malcolm <dmalcolm@redhat.com>
2886
2887 * Makefile.in (ANALYZER_OBJS): Add analyzer/function-set.o.
2888
2889 2020-01-15 Jakub Jelinek <jakub@redhat.com>
2890
2891 PR target/93009
2892 * config/i386/sse.md
2893 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1,
2894 *<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1,
2895 *<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1,
2896 *<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1): Use
2897 just a single alternative instead of two, make operands 1 and 2
2898 commutative.
2899
2900 2020-01-14 Jan Hubicka <hubicka@ucw.cz>
2901
2902 PR lto/91576
2903 * ipa-devirt.c (odr_types_equivalent_p): Compare TREE_ADDRESSABLE and
2904 TYPE_MODE.
2905
2906 2020-01-14 David Malcolm <dmalcolm@redhat.com>
2907
2908 * Makefile.in (lang_opt_files): Add analyzer.opt.
2909 (ANALYZER_OBJS): New.
2910 (OBJS): Add digraph.o, graphviz.o, ordered-hash-map-tests.o,
2911 tristate.o and ANALYZER_OBJS.
2912 (TEXI_GCCINT_FILES): Add analyzer.texi.
2913 * common.opt (-fanalyzer): New driver option.
2914 * config.in: Regenerate.
2915 * configure: Regenerate.
2916 * configure.ac (--disable-analyzer, ENABLE_ANALYZER): New option.
2917 (gccdepdir): Also create depdir for "analyzer" subdir.
2918 * digraph.cc: New file.
2919 * digraph.h: New file.
2920 * doc/analyzer.texi: New file.
2921 * doc/gccint.texi ("Static Analyzer") New menu item.
2922 (analyzer.texi): Include it.
2923 * doc/invoke.texi ("Static Analyzer Options"): New list and new section.
2924 ("Warning Options"): Add static analysis warnings to the list.
2925 (-Wno-analyzer-double-fclose): New option.
2926 (-Wno-analyzer-double-free): New option.
2927 (-Wno-analyzer-exposure-through-output-file): New option.
2928 (-Wno-analyzer-file-leak): New option.
2929 (-Wno-analyzer-free-of-non-heap): New option.
2930 (-Wno-analyzer-malloc-leak): New option.
2931 (-Wno-analyzer-possible-null-argument): New option.
2932 (-Wno-analyzer-possible-null-dereference): New option.
2933 (-Wno-analyzer-null-argument): New option.
2934 (-Wno-analyzer-null-dereference): New option.
2935 (-Wno-analyzer-stale-setjmp-buffer): New option.
2936 (-Wno-analyzer-tainted-array-index): New option.
2937 (-Wno-analyzer-use-after-free): New option.
2938 (-Wno-analyzer-use-of-pointer-in-stale-stack-frame): New option.
2939 (-Wno-analyzer-use-of-uninitialized-value): New option.
2940 (-Wanalyzer-too-complex): New option.
2941 (-fanalyzer-call-summaries): New warning.
2942 (-fanalyzer-checker=): New warning.
2943 (-fanalyzer-fine-grained): New warning.
2944 (-fno-analyzer-state-merge): New warning.
2945 (-fno-analyzer-state-purge): New warning.
2946 (-fanalyzer-transitivity): New warning.
2947 (-fanalyzer-verbose-edges): New warning.
2948 (-fanalyzer-verbose-state-changes): New warning.
2949 (-fanalyzer-verbosity=): New warning.
2950 (-fdump-analyzer): New warning.
2951 (-fdump-analyzer-callgraph): New warning.
2952 (-fdump-analyzer-exploded-graph): New warning.
2953 (-fdump-analyzer-exploded-nodes): New warning.
2954 (-fdump-analyzer-exploded-nodes-2): New warning.
2955 (-fdump-analyzer-exploded-nodes-3): New warning.
2956 (-fdump-analyzer-supergraph): New warning.
2957 * doc/sourcebuild.texi (dg-require-dot): New.
2958 (dg-check-dot): New.
2959 * gdbinit.in (break-on-saved-diagnostic): New command.
2960 * graphviz.cc: New file.
2961 * graphviz.h: New file.
2962 * ordered-hash-map-tests.cc: New file.
2963 * ordered-hash-map.h: New file.
2964 * passes.def (pass_analyzer): Add before
2965 pass_ipa_whole_program_visibility.
2966 * selftest-run-tests.c (selftest::run_tests): Call
2967 selftest::ordered_hash_map_tests_cc_tests.
2968 * selftest.h (selftest::ordered_hash_map_tests_cc_tests): New
2969 decl.
2970 * shortest-paths.h: New file.
2971 * timevar.def (TV_ANALYZER): New timevar.
2972 (TV_ANALYZER_SUPERGRAPH): Likewise.
2973 (TV_ANALYZER_STATE_PURGE): Likewise.
2974 (TV_ANALYZER_PLAN): Likewise.
2975 (TV_ANALYZER_SCC): Likewise.
2976 (TV_ANALYZER_WORKLIST): Likewise.
2977 (TV_ANALYZER_DUMP): Likewise.
2978 (TV_ANALYZER_DIAGNOSTICS): Likewise.
2979 (TV_ANALYZER_SHORTEST_PATHS): Likewise.
2980 * tree-pass.h (make_pass_analyzer): New decl.
2981 * tristate.cc: New file.
2982 * tristate.h: New file.
2983
2984 2020-01-14 Uroš Bizjak <ubizjak@gmail.com>
2985
2986 PR target/93254
2987 * config/i386/i386.md (*movsf_internal): Require SSE2 ISA for
2988 alternatives 9 and 10.
2989
2990 2020-01-14 David Malcolm <dmalcolm@redhat.com>
2991
2992 * attribs.c (excl_hash_traits::empty_zero_p): New static constant.
2993 * gcov.c (function_start_pair_hash::empty_zero_p): Likewise.
2994 * graphite.c (struct sese_scev_hash::empty_zero_p): Likewise.
2995 * hash-map-tests.c (selftest::test_nonzero_empty_key): New selftest.
2996 (selftest::hash_map_tests_c_tests): Call it.
2997 * hash-map-traits.h (simple_hashmap_traits::empty_zero_p):
2998 New static constant, using the value of = H::empty_zero_p.
2999 (unbounded_hashmap_traits::empty_zero_p): Likewise, using the value
3000 from default_hash_traits <Value>.
3001 * hash-map.h (hash_map::empty_zero_p): Likewise, using the value
3002 from Traits.
3003 * hash-set-tests.c (value_hash_traits::empty_zero_p): Likewise.
3004 * hash-table.h (hash_table::alloc_entries): Guard the loop of
3005 calls to mark_empty with !Descriptor::empty_zero_p.
3006 (hash_table::empty_slow): Conditionalize the memset call with a
3007 check that Descriptor::empty_zero_p; otherwise, loop through the
3008 entries calling mark_empty on them.
3009 * hash-traits.h (int_hash::empty_zero_p): New static constant.
3010 (pointer_hash::empty_zero_p): Likewise.
3011 (pair_hash::empty_zero_p): Likewise.
3012 * ipa-devirt.c (default_hash_traits <type_pair>::empty_zero_p):
3013 Likewise.
3014 * ipa-prop.c (ipa_bit_ggc_hash_traits::empty_zero_p): Likewise.
3015 (ipa_vr_ggc_hash_traits::empty_zero_p): Likewise.
3016 * profile.c (location_triplet_hash::empty_zero_p): Likewise.
3017 * sanopt.c (sanopt_tree_triplet_hash::empty_zero_p): Likewise.
3018 (sanopt_tree_couple_hash::empty_zero_p): Likewise.
3019 * tree-hasher.h (int_tree_hasher::empty_zero_p): Likewise.
3020 * tree-ssa-sccvn.c (vn_ssa_aux_hasher::empty_zero_p): Likewise.
3021 * tree-vect-slp.c (bst_traits::empty_zero_p): Likewise.
3022 * tree-vectorizer.h
3023 (default_hash_traits<scalar_cond_masked_key>::empty_zero_p):
3024 Likewise.
3025
3026 2020-01-14 Kewen Lin <linkw@gcc.gnu.org>
3027
3028 * cfgloopanal.c (average_num_loop_insns): Free bbs when early return,
3029 fix typo on return value.
3030
3031 2020-01-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
3032
3033 PR ipa/69678
3034 * cgraph.c (symbol_table::create_edge): Init speculative_id and
3035 target_prob.
3036 (cgraph_edge::make_speculative): Add param for setting speculative_id
3037 and target_prob.
3038 (cgraph_edge::speculative_call_info): Update comments and find reference
3039 by speculative_id for multiple indirect targets.
3040 (cgraph_edge::resolve_speculation): Decrease the speculations
3041 for indirect edge, drop it's speculative if not direct target
3042 left. Update comments.
3043 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
3044 (cgraph_node::dump): Print num_speculative_call_targets.
3045 (cgraph_node::verify_node): Don't report error if speculative
3046 edge not include statement.
3047 (cgraph_edge::num_speculative_call_targets_p): New function.
3048 * cgraph.h (int common_target_id): Remove.
3049 (int common_target_probability): Remove.
3050 (num_speculative_call_targets): New variable.
3051 (make_speculative): Add param for setting speculative_id.
3052 (cgraph_edge::num_speculative_call_targets_p): New declare.
3053 (target_prob): New variable.
3054 (speculative_id): New variable.
3055 * ipa-fnsummary.c (analyze_function_body): Create and duplicate
3056 call summaries for multiple speculative call targets.
3057 * cgraphclones.c (cgraph_node::create_clone): Clone speculative_id.
3058 * ipa-profile.c (struct speculative_call_target): New struct.
3059 (class speculative_call_summary): New class.
3060 (class speculative_call_summaries): New class.
3061 (call_sums): New variable.
3062 (ipa_profile_generate_summary): Generate indirect multiple targets summaries.
3063 (ipa_profile_write_edge_summary): New function.
3064 (ipa_profile_write_summary): Stream out indirect multiple targets summaries.
3065 (ipa_profile_dump_all_summaries): New function.
3066 (ipa_profile_read_edge_summary): New function.
3067 (ipa_profile_read_summary_section): New function.
3068 (ipa_profile_read_summary): Stream in indirect multiple targets summaries.
3069 (ipa_profile): Generate num_speculative_call_targets from
3070 profile summaries.
3071 * ipa-ref.h (speculative_id): New variable.
3072 * ipa-utils.c (ipa_merge_profiles): Update with target_prob.
3073 * lto-cgraph.c (lto_output_edge): Remove indirect common_target_id and
3074 common_target_probability. Stream out speculative_id and
3075 num_speculative_call_targets.
3076 (input_edge): Likewise.
3077 * predict.c (dump_prediction): Remove edges count assert to be
3078 precise.
3079 * symtab.c (symtab_node::create_reference): Init speculative_id.
3080 (symtab_node::clone_references): Clone speculative_id.
3081 (symtab_node::clone_referring): Clone speculative_id.
3082 (symtab_node::clone_reference): Clone speculative_id.
3083 (symtab_node::clear_stmts_in_references): Clear speculative_id.
3084 * tree-inline.c (copy_bb): Duplicate all the speculative edges
3085 if indirect call contains multiple speculative targets.
3086 * value-prof.h (check_ic_target): Remove.
3087 * value-prof.c (gimple_value_profile_transformations):
3088 Use void function gimple_ic_transform.
3089 * value-prof.c (gimple_ic_transform): Handle topn case.
3090 Fix comment typos. Change it to a void function.
3091
3092 2020-01-13 Andrew Pinski <apinski@marvell.com>
3093
3094 * config/aarch64/aarch64-cores.def (octeontx2): New define.
3095 (octeontx2t98): New define.
3096 (octeontx2t96): New define.
3097 (octeontx2t93): New define.
3098 (octeontx2f95): New define.
3099 (octeontx2f95n): New define.
3100 (octeontx2f95mm): New define.
3101 * config/aarch64/aarch64-tune.md: Regenerate.
3102 * doc/invoke.texi (-mcpu=): Document the new cpu types.
3103
3104 2020-01-13 Jason Merrill <jason@redhat.com>
3105
3106 PR c++/33799 - destroy return value if local cleanup throws.
3107 * gimplify.c (gimplify_return_expr): Handle COMPOUND_EXPR.
3108
3109 2020-01-13 Martin Liska <mliska@suse.cz>
3110
3111 * ipa-cp.c (get_max_overall_size): Use newly
3112 renamed param param_ipa_cp_unit_growth.
3113 * params.opt: Remove legacy param name.
3114
3115 2020-01-13 Martin Sebor <msebor@redhat.com>
3116
3117 PR tree-optimization/93213
3118 * tree-ssa-strlen.c (handle_store): Only allow single-byte nul-over-nul
3119 stores to be eliminated.
3120
3121 2020-01-13 Martin Liska <mliska@suse.cz>
3122
3123 * opts.c (print_help): Do not print CL_PARAM
3124 and CL_WARNING for CL_OPTIMIZATION.
3125
3126 2020-01-13 Jonathan Wakely <jwakely@redhat.com>
3127
3128 PR driver/92757
3129 * doc/invoke.texi (Warning Options): Add caveat about some warnings
3130 depending on optimization settings.
3131
3132 2020-01-13 Jakub Jelinek <jakub@redhat.com>
3133
3134 PR tree-optimization/90838
3135 * tree-ssa-forwprop.c (simplify_count_trailing_zeroes): Use
3136 SCALAR_INT_TYPE_MODE directly in CTZ_DEFINED_VALUE_AT_ZERO macro
3137 argument rather than to initialize temporary for targets that
3138 don't use the mode argument at all. Initialize ctzval to avoid
3139 warning at -O0.
3140
3141 2020-01-10 Thomas Schwinge <thomas@codesourcery.com>
3142
3143 * tree.h (OMP_CLAUSE_USE_DEVICE_PTR_IF_PRESENT): New definition.
3144 * tree-core.h: Document it.
3145 * gimplify.c (gimplify_omp_workshare): Set it.
3146 * omp-low.c (lower_omp_target): Use it.
3147 * tree-pretty-print.c (dump_omp_clause): Print it.
3148
3149 * omp-low.c (lower_omp_target) <OMP_CLAUSE_USE_DEVICE_PTR etc.>:
3150 Assert that for OpenACC we always have 'GOMP_MAP_USE_DEVICE_PTR'.
3151
3152 2020-01-10 David Malcolm <dmalcolm@redhat.com>
3153
3154 * Makefile.in (OBJS): Add tree-diagnostic-path.o.
3155 * common.opt (fdiagnostics-path-format=): New option.
3156 (diagnostic_path_format): New enum.
3157 (fdiagnostics-show-path-depths): New option.
3158 * coretypes.h (diagnostic_event_id_t): New forward decl.
3159 * diagnostic-color.c (color_dict): Add "path".
3160 * diagnostic-event-id.h: New file.
3161 * diagnostic-format-json.cc (json_from_expanded_location): Make
3162 non-static.
3163 (json_end_diagnostic): Call context->make_json_for_path if it
3164 exists and the diagnostic has a path.
3165 (diagnostic_output_format_init): Clear context->print_path.
3166 * diagnostic-path.h: New file.
3167 * diagnostic-show-locus.c (colorizer::set_range): Special-case
3168 when printing a run of events in a diagnostic_path so that they
3169 all get the same color.
3170 (layout::m_diagnostic_path_p): New field.
3171 (layout::layout): Initialize it.
3172 (layout::print_any_labels): Don't colorize the label text for an
3173 event in a diagnostic_path.
3174 (gcc_rich_location::add_location_if_nearby): Add
3175 "restrict_to_current_line_spans" and "label" params. Pass the
3176 former to layout.maybe_add_location_range; pass the latter
3177 when calling add_range.
3178 * diagnostic.c: Include "diagnostic-path.h".
3179 (diagnostic_initialize): Initialize context->path_format and
3180 context->show_path_depths.
3181 (diagnostic_show_any_path): New function.
3182 (diagnostic_path::interprocedural_p): New function.
3183 (diagnostic_report_diagnostic): Call diagnostic_show_any_path.
3184 (simple_diagnostic_path::num_events): New function.
3185 (simple_diagnostic_path::get_event): New function.
3186 (simple_diagnostic_path::add_event): New function.
3187 (simple_diagnostic_event::simple_diagnostic_event): New ctor.
3188 (simple_diagnostic_event::~simple_diagnostic_event): New dtor.
3189 (debug): New overload taking a diagnostic_path *.
3190 * diagnostic.def (DK_DIAGNOSTIC_PATH): New.
3191 * diagnostic.h (enum diagnostic_path_format): New enum.
3192 (json::value): New forward decl.
3193 (diagnostic_context::path_format): New field.
3194 (diagnostic_context::show_path_depths): New field.
3195 (diagnostic_context::print_path): New callback field.
3196 (diagnostic_context::make_json_for_path): New callback field.
3197 (diagnostic_show_any_path): New decl.
3198 (json_from_expanded_location): New decl.
3199 * doc/invoke.texi (-fdiagnostics-path-format=): New option.
3200 (-fdiagnostics-show-path-depths): New option.
3201 (-fdiagnostics-color): Add "path" to description of default
3202 GCC_COLORS; describe it.
3203 (-fdiagnostics-format=json): Document how diagnostic paths are
3204 represented in the JSON output format.
3205 * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
3206 Add optional params "restrict_to_current_line_spans" and "label".
3207 * opts.c (common_handle_option): Handle
3208 OPT_fdiagnostics_path_format_ and
3209 OPT_fdiagnostics_show_path_depths.
3210 * pretty-print.c: Include "diagnostic-event-id.h".
3211 (pp_format): Implement "%@" format code for printing
3212 diagnostic_event_id_t *.
3213 (selftest::test_pp_format): Add tests for "%@".
3214 * selftest-run-tests.c (selftest::run_tests): Call
3215 selftest::tree_diagnostic_path_cc_tests.
3216 * selftest.h (selftest::tree_diagnostic_path_cc_tests): New decl.
3217 * toplev.c (general_init): Initialize global_dc->path_format and
3218 global_dc->show_path_depths.
3219 * tree-diagnostic-path.cc: New file.
3220 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Make
3221 non-static. Drop "diagnostic" param in favor of storing the
3222 original value of "where" and re-using it.
3223 (virt_loc_aware_diagnostic_finalizer): Update for dropped param of
3224 maybe_unwind_expanded_macro_loc.
3225 (tree_diagnostics_defaults): Initialize context->print_path and
3226 context->make_json_for_path.
3227 * tree-diagnostic.h (default_tree_diagnostic_path_printer): New
3228 decl.
3229 (default_tree_make_json_for_path): New decl.
3230 (maybe_unwind_expanded_macro_loc): New decl.
3231
3232 2020-01-10 Jakub Jelinek <jakub@redhat.com>
3233
3234 PR tree-optimization/93210
3235 * fold-const.h (native_encode_initializer,
3236 can_native_interpret_type_p): Declare.
3237 * fold-const.c (native_encode_string): Fix up handling with off != -1,
3238 simplify.
3239 (native_encode_initializer): New function, moved from dwarf2out.c.
3240 Adjust to native_encode_expr compatible arguments, including dry-run
3241 and partial extraction modes. Don't handle STRING_CST.
3242 (can_native_interpret_type_p): No longer static.
3243 * gimple-fold.c (fold_ctor_reference): For native_encode_expr, verify
3244 offset / BITS_PER_UNIT fits into int and don't call it if
3245 can_native_interpret_type_p fails. If suboff is NULL and for
3246 CONSTRUCTOR fold_{,non}array_ctor_reference returns NULL, retry with
3247 native_encode_initializer.
3248 (fold_const_aggregate_ref_1): Formatting fix.
3249 * dwarf2out.c (native_encode_initializer): Moved to fold-const.c.
3250 (tree_add_const_value_attribute): Adjust caller.
3251
3252 PR tree-optimization/90838
3253 * tree-ssa-forwprop.c (simplify_count_trailing_zeroes): Use
3254 SCALAR_INT_TYPE_MODE instead of TYPE_MODE as operand of
3255 CTZ_DEFINED_VALUE_AT_ZERO.
3256
3257 2020-01-10 Vladimir Makarov <vmakarov@redhat.com>
3258
3259 PR inline-asm/93027
3260 * lra-constraints.c (match_reload): Permit input operands have the
3261 same mode as output while other input operands have a different
3262 mode.
3263
3264 2020-01-10 Wilco Dijkstra <wdijkstr@arm.com>
3265
3266 PR tree-optimization/90838
3267 * tree-ssa-forwprop.c (check_ctz_array): Add new function.
3268 (check_ctz_string): Likewise.
3269 (optimize_count_trailing_zeroes): Likewise.
3270 (simplify_count_trailing_zeroes): Likewise.
3271 (pass_forwprop::execute): Try ctz simplification.
3272 * match.pd: Add matching for ctz idioms.
3273
3274 2020-01-10 Stam Markianos-Wright <stam.markianos-wright@arm.com>
3275
3276 * config/aarch64/aarch64.c (aarch64_invalid_conversion): New function
3277 for target hook.
3278 (aarch64_invalid_unary_op): New function for target hook.
3279 (aarch64_invalid_binary_op): New function for target hook.
3280
3281 2020-01-10 Stam Markianos-Wright <stam.markianos-wright@arm.com>
3282
3283 * config.gcc: Add arm_bf16.h.
3284 * config/aarch64/aarch64-builtins.c
3285 (aarch64_simd_builtin_std_type): Add BFmode.
3286 (aarch64_init_simd_builtin_types): Define element types for vector
3287 types.
3288 (aarch64_init_bf16_types): New function.
3289 (aarch64_general_init_builtins): Add arm_init_bf16_types function call.
3290 * config/aarch64/aarch64-modes.def: Add BFmode and V4BF, V8BF vector
3291 modes.
3292 * config/aarch64/aarch64-simd-builtin-types.def: Add BF SIMD types.
3293 * config/aarch64/aarch64-simd.md: Add BF vector types to NEON move
3294 patterns.
3295 * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): Add V4BF.
3296 (AARCH64_VALID_SIMD_QREG_MODE): Add V8BF.
3297 * config/aarch64/aarch64.c
3298 (aarch64_classify_vector_mode): Add support for BF types.
3299 (aarch64_gimplify_va_arg_expr): Add support for BF types.
3300 (aarch64_vq_mode): Add support for BF types.
3301 (aarch64_simd_container_mode): Add support for BF types.
3302 (aarch64_mangle_type): Add support for BF scalar type.
3303 * config/aarch64/aarch64.md: Add BFmode to movhf pattern.
3304 * config/aarch64/arm_bf16.h: New file.
3305 * config/aarch64/arm_neon.h: Add arm_bf16.h and Bfloat vector types.
3306 * config/aarch64/iterators.md: Add BF types to mode attributes.
3307 (HFBF, GPF_TF_F16_MOV, VDMOV, VQMOV, VQMOV_NO2Em VALL_F16MOV): New.
3308
3309 2020-01-10 Jason Merrill <jason@redhat.com>
3310
3311 PR c++/93173 - incorrect tree sharing.
3312 * gimplify.c (copy_if_shared): No longer static.
3313 * gimplify.h: Declare it.
3314
3315 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
3316
3317 * doc/invoke.texi (-msve-vector-bits=): Document that
3318 -msve-vector-bits=128 now generates VL-specific code for
3319 little-endian targets.
3320 * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): Use
3321 build_vector_type_for_mode to construct the data vector types.
3322 * config/aarch64/aarch64.c (aarch64_convert_sve_vector_bits): Generate
3323 VL-specific code for -msve-vector-bits=128 on little-endian targets.
3324 (aarch64_simd_container_mode): Always prefer Advanced SIMD modes
3325 for 128-bit vectors.
3326
3327 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
3328
3329 * config/aarch64/aarch64.c (aarch64_evpc_sel): Fix gen_vcond_mask
3330 invocation.
3331
3332 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
3333
3334 * config/aarch64/aarch64-builtins.c
3335 (aarch64_builtin_vectorized_function): Check for specific vector modes,
3336 rather than checking the number of elements and the element mode.
3337
3338 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
3339
3340 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
3341 get_related_vectype_for_scalar_type rather than build_vector_type
3342 to create the index type for a conditional reduction.
3343
3344 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
3345
3346 * tree-vect-loop.c (update_epilogue_loop_vinfo): Update DR_REF
3347 for any type of gather or scatter, including strided accesses.
3348
3349 2020-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
3350
3351 * tree-vectorizer.h (get_dr_vinfo_offset): Add missing function
3352 comment.
3353
3354 2020-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
3355
3356 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Use
3357 get_dr_vinfo_offset
3358 * tree-vect-loop.c (update_epilogue_loop_vinfo): Remove orig_drs_init
3359 parameter and its use to reset DR_OFFSET's.
3360 (vect_transform_loop): Remove orig_drs_init argument.
3361 * tree-vect-loop-manip.c (vect_update_init_of_dr): Update the offset
3362 member of dr_vec_info rather than the offset of the associated
3363 data_reference's innermost_loop_behavior.
3364 (vect_update_init_of_dr): Pass dr_vec_info instead of data_reference.
3365 (vect_do_peeling): Remove orig_drs_init parameter and its construction.
3366 * tree-vect-stmts.c (check_scan_store): Replace use of DR_OFFSET with
3367 get_dr_vinfo_offset.
3368 (vectorizable_store): Likewise.
3369 (vectorizable_load): Likewise.
3370
3371 2020-01-10 Richard Biener <rguenther@suse.de>
3372
3373 * gimple-ssa-store-merging
3374 (pass_store_merging::terminate_all_aliasing_chains): Cache alias info.
3375
3376 2020-01-10 Martin Liska <mliska@suse.cz>
3377
3378 PR ipa/93217
3379 * ipa-inline-analysis.c (offline_size): Make proper parenthesis
3380 encapsulation that was there before r280040.
3381
3382 2020-01-10 Richard Biener <rguenther@suse.de>
3383
3384 PR middle-end/93199
3385 * tree-eh.c (sink_clobbers): Move clobbers to out-of-IL
3386 sequences to avoid walking them again for secondary opportunities.
3387 (pass_lower_eh_dispatch::execute): Instead actually insert
3388 them here.
3389
3390 2020-01-10 Richard Biener <rguenther@suse.de>
3391
3392 PR middle-end/93199
3393 * tree-eh.c (redirect_eh_edge_1): Avoid some work if possible.
3394 (cleanup_all_empty_eh): Walk landing pads in reverse order to
3395 avoid quadraticness.
3396
3397 2020-01-10 Martin Jambor <mjambor@suse.cz>
3398
3399 * params.opt (param_ipa_sra_max_replacements): Mark as Optimization.
3400 * ipa-sra.c (pull_accesses_from_callee): New parameter caller, use it
3401 to get param_ipa_sra_max_replacements.
3402 (param_splitting_across_edge): Pass the caller to
3403 pull_accesses_from_callee.
3404
3405 2020-01-10 Martin Jambor <mjambor@suse.cz>
3406
3407 * params.opt (param_ipcp_unit_growth): Mark as Optimization.
3408 * ipa-cp.c (max_new_size): Removed.
3409 (orig_overall_size): New variable.
3410 (get_max_overall_size): New function.
3411 (estimate_local_effects): Use it. Adjust dump.
3412 (decide_about_value): Likewise.
3413 (ipcp_propagate_stage): Do not calculate max_new_size, just store
3414 orig_overall_size. Adjust dump.
3415 (ipa_cp_c_finalize): Clear orig_overall_size instead of max_new_size.
3416
3417 2020-01-10 Martin Jambor <mjambor@suse.cz>
3418
3419 * params.opt (param_ipa_max_agg_items): Mark as Optimization
3420 * ipa-cp.c (merge_agg_lats_step): New parameter max_agg_items, use
3421 instead of param_ipa_max_agg_items.
3422 (merge_aggregate_lattices): Extract param_ipa_max_agg_items from
3423 optimization info for the callee.
3424
3425 2020-01-09 Kwok Cheung Yeung <kcy@codesourcery.com>
3426
3427 * lto-streamer-in.c (input_function): Remove streamed-in inline debug
3428 markers if debug_inline_points is false.
3429
3430 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
3431
3432 * config.gcc (aarch64*-*-*): Add aarch64-sve-builtins-sve2.o to
3433 extra_objs.
3434 * config/aarch64/t-aarch64 (aarch64-sve-builtins.o): Depend on
3435 aarch64-sve-builtins-base.def, aarch64-sve-builtins-sve2.def and
3436 aarch64-sve-builtins-sve2.h.
3437 (aarch64-sve-builtins-sve2.o): New rule.
3438 * config/aarch64/aarch64.h (AARCH64_ISA_SVE2_AES): New macro.
3439 (AARCH64_ISA_SVE2_BITPERM, AARCH64_ISA_SVE2_SHA3): Likewise.
3440 (AARCH64_ISA_SVE2_SM4, TARGET_SVE2_AES, TARGET_SVE2_BITPERM): Likewise.
3441 (TARGET_SVE2_SHA, TARGET_SVE2_SM4): Likewise.
3442 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Handle
3443 TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3 and
3444 TARGET_SVE2_SM4.
3445 * config/aarch64/aarch64-sve.md: Update comments with SVE2
3446 instructions that are handled here.
3447 (@cond_asrd<mode>): Generalize to...
3448 (@cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>): ...this.
3449 (*cond_asrd<mode>_2): Generalize to...
3450 (*cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>_2): ...this.
3451 (*cond_asrd<mode>_z): Generalize to...
3452 (*cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>_z): ...this.
3453 * config/aarch64/aarch64.md (UNSPEC_LDNT1_GATHER): New unspec.
3454 (UNSPEC_STNT1_SCATTER, UNSPEC_WHILEGE, UNSPEC_WHILEGT): Likewise.
3455 (UNSPEC_WHILEHI, UNSPEC_WHILEHS): Likewise.
3456 * config/aarch64/aarch64-sve2.md (@aarch64_gather_ldnt<mode>): New
3457 pattern.
3458 (@aarch64_gather_ldnt_<ANY_EXTEND:optab><SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>)
3459 (@aarch64_scatter_stnt<mode>): Likewise.
3460 (@aarch64_scatter_stnt_<SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>)
3461 (@aarch64_mul_lane_<mode>): Likewise.
3462 (@aarch64_sve_suqadd<mode>_const): Likewise.
3463 (*<sur>h<addsub><mode>): Generalize to...
3464 (@aarch64_pred_<SVE2_COND_INT_BINARY_REV:sve_int_op><mode>): ...this
3465 new pattern.
3466 (@cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>): New expander.
3467 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_2): New pattern.
3468 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_3): Likewise.
3469 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_any): Likewise.
3470 (*cond_<SVE2_COND_INT_BINARY_NOREV:sve_int_op><mode>_z): Likewise.
3471 (@aarch64_sve_<SVE2_INT_BINARY:sve_int_op><mode>):: Likewise.
3472 (@aarch64_sve_<SVE2_INT_BINARY:sve_int_op>_lane_<mode>): Likewise.
3473 (@aarch64_pred_<SVE2_COND_INT_SHIFT:sve_int_op><mode>): Likewise.
3474 (@cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>): New expander.
3475 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_2): New pattern.
3476 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_3): Likewise.
3477 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_any): Likewise.
3478 (@aarch64_sve_<SVE2_INT_TERNARY:sve_int_op><mode>): Likewise.
3479 (@aarch64_sve_<SVE2_INT_TERNARY_LANE:sve_int_op>_lane_<mode>)
3480 (@aarch64_sve_add_mul_lane_<mode>): Likewise.
3481 (@aarch64_sve_sub_mul_lane_<mode>): Likewise.
3482 (@aarch64_sve2_xar<mode>): Likewise.
3483 (@aarch64_sve2_bcax<mode>): Likewise.
3484 (*aarch64_sve2_eor3<mode>): Rename to...
3485 (@aarch64_sve2_eor3<mode>): ...this.
3486 (@aarch64_sve2_bsl<mode>): New expander.
3487 (@aarch64_sve2_nbsl<mode>): Likewise.
3488 (@aarch64_sve2_bsl1n<mode>): Likewise.
3489 (@aarch64_sve2_bsl2n<mode>): Likewise.
3490 (@aarch64_sve_add_<SHIFTRT:sve_int_op><mode>): Likewise.
3491 (*aarch64_sve2_sra<mode>): Add MOVPRFX support.
3492 (@aarch64_sve_add_<VRSHR_N:sve_int_op><mode>): New pattern.
3493 (@aarch64_sve_<SVE2_INT_SHIFT_INSERT:sve_int_op><mode>): Likewise.
3494 (@aarch64_sve2_<USMAX:su>aba<mode>): New expander.
3495 (*aarch64_sve2_<USMAX:su>aba<mode>): New pattern.
3496 (@aarch64_sve_<SVE2_INT_BINARY_WIDE:sve_int_op><mode>): Likewise.
3497 (<su>mull<bt><Vwide>): Generalize to...
3498 (@aarch64_sve_<SVE2_INT_BINARY_LONG:sve_int_op><mode>): ...this new
3499 pattern.
3500 (@aarch64_sve_<SVE2_INT_BINARY_LONG_lANE:sve_int_op>_lane_<mode>)
3501 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_LONG:sve_int_op><mode>)
3502 (@aarch64_sve_add_<SVE2_INT_ADD_BINARY_LONG:sve_int_op><mode>)
3503 (@aarch64_sve_add_<SVE2_INT_ADD_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
3504 (@aarch64_sve_qadd_<SVE2_INT_QADD_BINARY_LONG:sve_int_op><mode>)
3505 (@aarch64_sve_qadd_<SVE2_INT_QADD_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
3506 (@aarch64_sve_sub_<SVE2_INT_SUB_BINARY_LONG:sve_int_op><mode>)
3507 (@aarch64_sve_sub_<SVE2_INT_SUB_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
3508 (@aarch64_sve_qsub_<SVE2_INT_QSUB_BINARY_LONG:sve_int_op><mode>)
3509 (@aarch64_sve_qsub_<SVE2_INT_QSUB_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
3510 (@aarch64_sve_<SVE2_FP_TERNARY_LONG:sve_fp_op><mode>): New patterns.
3511 (@aarch64_<SVE2_FP_TERNARY_LONG_LANE:sve_fp_op>_lane_<mode>)
3512 (@aarch64_sve_<SVE2_INT_UNARY_NARROWB:sve_int_op><mode>): Likewise.
3513 (@aarch64_sve_<SVE2_INT_UNARY_NARROWT:sve_int_op><mode>): Likewise.
3514 (@aarch64_sve_<SVE2_INT_BINARY_NARROWB:sve_int_op><mode>): Likewise.
3515 (@aarch64_sve_<SVE2_INT_BINARY_NARROWT:sve_int_op><mode>): Likewise.
3516 (<SHRNB:r>shrnb<mode>): Generalize to...
3517 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_NARROWB:sve_int_op><mode>): ...this
3518 new pattern.
3519 (<SHRNT:r>shrnt<mode>): Generalize to...
3520 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_NARROWT:sve_int_op><mode>): ...this
3521 new pattern.
3522 (@aarch64_pred_<SVE2_INT_BINARY_PAIR:sve_int_op><mode>): New pattern.
3523 (@aarch64_pred_<SVE2_FP_BINARY_PAIR:sve_fp_op><mode>): Likewise.
3524 (@cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>): New expander.
3525 (*cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>_2): New pattern.
3526 (*cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>_z): Likewise.
3527 (@aarch64_sve_<SVE2_INT_CADD:optab><mode>): Likewise.
3528 (@aarch64_sve_<SVE2_INT_CMLA:optab><mode>): Likewise.
3529 (@aarch64_<SVE2_INT_CMLA:optab>_lane_<mode>): Likewise.
3530 (@aarch64_sve_<SVE2_INT_CDOT:optab><mode>): Likewise.
3531 (@aarch64_<SVE2_INT_CDOT:optab>_lane_<mode>): Likewise.
3532 (@aarch64_pred_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): Likewise.
3533 (@cond_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): New expander.
3534 (*cond_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): New pattern.
3535 (@aarch64_sve2_cvtnt<mode>): Likewise.
3536 (@aarch64_pred_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): Likewise.
3537 (@cond_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): New expander.
3538 (*cond_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>_any): New pattern.
3539 (@aarch64_sve2_cvtxnt<mode>): Likewise.
3540 (@aarch64_pred_<SVE2_U32_UNARY:sve_int_op><mode>): Likewise.
3541 (@cond_<SVE2_U32_UNARY:sve_int_op><mode>): New expander.
3542 (*cond_<SVE2_U32_UNARY:sve_int_op><mode>): New pattern.
3543 (@aarch64_pred_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): Likewise.
3544 (@cond_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): New expander.
3545 (*cond_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): New pattern.
3546 (@aarch64_sve2_pmul<mode>): Likewise.
3547 (@aarch64_sve_<SVE2_PMULL:optab><mode>): Likewise.
3548 (@aarch64_sve_<SVE2_PMULL_PAIR:optab><mode>): Likewise.
3549 (@aarch64_sve2_tbl2<mode>): Likewise.
3550 (@aarch64_sve2_tbx<mode>): Likewise.
3551 (@aarch64_sve_<SVE2_INT_BITPERM:sve_int_op><mode>): Likewise.
3552 (@aarch64_sve2_histcnt<mode>): Likewise.
3553 (@aarch64_sve2_histseg<mode>): Likewise.
3554 (@aarch64_pred_<SVE2_MATCH:sve_int_op><mode>): Likewise.
3555 (*aarch64_pred_<SVE2_MATCH:sve_int_op><mode>_cc): Likewise.
3556 (*aarch64_pred_<SVE2_MATCH:sve_int_op><mode>_ptest): Likewise.
3557 (aarch64_sve2_aes<CRYPTO_AES:aes_op>): Likewise.
3558 (aarch64_sve2_aes<CRYPTO_AESMC:aesmc_op>): Likewise.
3559 (*aarch64_sve2_aese_fused, *aarch64_sve2_aesd_fused): Likewise.
3560 (aarch64_sve2_rax1, aarch64_sve2_sm4e, aarch64_sve2_sm4ekey): Likewise.
3561 (<su>mulh<r>s<mode>3): Update after above pattern name changes.
3562 * config/aarch64/iterators.md (VNx16QI_ONLY, VNx4SF_ONLY)
3563 (SVE_STRUCT2, SVE_FULL_BHI, SVE_FULL_HSI, SVE_FULL_HDI)
3564 (SVE2_PMULL_PAIR_I): New mode iterators.
3565 (UNSPEC_ADCLB, UNSPEC_ADCLT, UNSPEC_ADDHNB, UNSPEC_ADDHNT, UNSPEC_BDEP)
3566 (UNSPEC_BEXT, UNSPEC_BGRP, UNSPEC_CADD90, UNSPEC_CADD270, UNSPEC_CDOT)
3567 (UNSPEC_CDOT90, UNSPEC_CDOT180, UNSPEC_CDOT270, UNSPEC_CMLA)
3568 (UNSPEC_CMLA90, UNSPEC_CMLA180, UNSPEC_CMLA270, UNSPEC_COND_FCVTLT)
3569 (UNSPEC_COND_FCVTNT, UNSPEC_COND_FCVTX, UNSPEC_COND_FCVTXNT)
3570 (UNSPEC_COND_FLOGB, UNSPEC_EORBT, UNSPEC_EORTB, UNSPEC_FADDP)
3571 (UNSPEC_FMAXP, UNSPEC_FMAXNMP, UNSPEC_FMLALB, UNSPEC_FMLALT)
3572 (UNSPEC_FMLSLB, UNSPEC_FMLSLT, UNSPEC_FMINP, UNSPEC_FMINNMP)
3573 (UNSPEC_HISTCNT, UNSPEC_HISTSEG, UNSPEC_MATCH, UNSPEC_NMATCH)
3574 (UNSPEC_PMULLB, UNSPEC_PMULLB_PAIR, UNSPEC_PMULLT, UNSPEC_PMULLT_PAIR)
3575 (UNSPEC_RADDHNB, UNSPEC_RADDHNT, UNSPEC_RSUBHNB, UNSPEC_RSUBHNT)
3576 (UNSPEC_SLI, UNSPEC_SRI, UNSPEC_SABDLB, UNSPEC_SABDLT, UNSPEC_SADDLB)
3577 (UNSPEC_SADDLBT, UNSPEC_SADDLT, UNSPEC_SADDWB, UNSPEC_SADDWT)
3578 (UNSPEC_SBCLB, UNSPEC_SBCLT, UNSPEC_SMAXP, UNSPEC_SMINP)
3579 (UNSPEC_SQCADD90, UNSPEC_SQCADD270, UNSPEC_SQDMULLB, UNSPEC_SQDMULLBT)
3580 (UNSPEC_SQDMULLT, UNSPEC_SQRDCMLAH, UNSPEC_SQRDCMLAH90)
3581 (UNSPEC_SQRDCMLAH180, UNSPEC_SQRDCMLAH270, UNSPEC_SQRSHRNB)
3582 (UNSPEC_SQRSHRNT, UNSPEC_SQRSHRUNB, UNSPEC_SQRSHRUNT, UNSPEC_SQSHRNB)
3583 (UNSPEC_SQSHRNT, UNSPEC_SQSHRUNB, UNSPEC_SQSHRUNT, UNSPEC_SQXTNB)
3584 (UNSPEC_SQXTNT, UNSPEC_SQXTUNB, UNSPEC_SQXTUNT, UNSPEC_SSHLLB)
3585 (UNSPEC_SSHLLT, UNSPEC_SSUBLB, UNSPEC_SSUBLBT, UNSPEC_SSUBLT)
3586 (UNSPEC_SSUBLTB, UNSPEC_SSUBWB, UNSPEC_SSUBWT, UNSPEC_SUBHNB)
3587 (UNSPEC_SUBHNT, UNSPEC_TBL2, UNSPEC_UABDLB, UNSPEC_UABDLT)
3588 (UNSPEC_UADDLB, UNSPEC_UADDLT, UNSPEC_UADDWB, UNSPEC_UADDWT)
3589 (UNSPEC_UMAXP, UNSPEC_UMINP, UNSPEC_UQRSHRNB, UNSPEC_UQRSHRNT)
3590 (UNSPEC_UQSHRNB, UNSPEC_UQSHRNT, UNSPEC_UQXTNB, UNSPEC_UQXTNT)
3591 (UNSPEC_USHLLB, UNSPEC_USHLLT, UNSPEC_USUBLB, UNSPEC_USUBLT)
3592 (UNSPEC_USUBWB, UNSPEC_USUBWT): New unspecs.
3593 (UNSPEC_SMULLB, UNSPEC_SMULLT, UNSPEC_UMULLB, UNSPEC_UMULLT)
3594 (UNSPEC_SMULHS, UNSPEC_SMULHRS, UNSPEC_UMULHS, UNSPEC_UMULHRS)
3595 (UNSPEC_RSHRNB, UNSPEC_RSHRNT, UNSPEC_SHRNB, UNSPEC_SHRNT): Move
3596 further down file.
3597 (VNARROW, Ventype): New mode attributes.
3598 (Vewtype): Handle VNx2DI. Fix typo in comment.
3599 (VDOUBLE): New mode attribute.
3600 (sve_lane_con): Handle VNx8HI.
3601 (SVE_INT_UNARY): Include ss_abs and ss_neg for TARGET_SVE2.
3602 (SVE_INT_BINARY): Likewise ss_plus, us_plus, ss_minus and us_minus.
3603 (sve_int_op, sve_int_op_rev): Handle the above codes.
3604 (sve_pred_int_rhs2_operand): Likewise.
3605 (MULLBT, SHRNB, SHRNT): Delete.
3606 (SVE_INT_SHIFT_IMM): New int iterator.
3607 (SVE_WHILE): Add UNSPEC_WHILEGE, UNSPEC_WHILEGT, UNSPEC_WHILEHI
3608 and UNSPEC_WHILEHS for TARGET_SVE2.
3609 (SVE2_U32_UNARY, SVE2_INT_UNARY_NARROWB, SVE2_INT_UNARY_NARROWT)
3610 (SVE2_INT_BINARY, SVE2_INT_BINARY_LANE, SVE2_INT_BINARY_LONG)
3611 (SVE2_INT_BINARY_LONG_LANE, SVE2_INT_BINARY_NARROWB)
3612 (SVE2_INT_BINARY_NARROWT, SVE2_INT_BINARY_PAIR, SVE2_FP_BINARY_PAIR)
3613 (SVE2_INT_BINARY_PAIR_LONG, SVE2_INT_BINARY_WIDE): New int iterators.
3614 (SVE2_INT_SHIFT_IMM_LONG, SVE2_INT_SHIFT_IMM_NARROWB): Likewise.
3615 (SVE2_INT_SHIFT_IMM_NARROWT, SVE2_INT_SHIFT_INSERT, SVE2_INT_CADD)
3616 (SVE2_INT_BITPERM, SVE2_INT_TERNARY, SVE2_INT_TERNARY_LANE): Likewise.
3617 (SVE2_FP_TERNARY_LONG, SVE2_FP_TERNARY_LONG_LANE, SVE2_INT_CMLA)
3618 (SVE2_INT_CDOT, SVE2_INT_ADD_BINARY_LONG, SVE2_INT_QADD_BINARY_LONG)
3619 (SVE2_INT_SUB_BINARY_LONG, SVE2_INT_QSUB_BINARY_LONG): Likewise.
3620 (SVE2_INT_ADD_BINARY_LONG_LANE, SVE2_INT_QADD_BINARY_LONG_LANE)
3621 (SVE2_INT_SUB_BINARY_LONG_LANE, SVE2_INT_QSUB_BINARY_LONG_LANE)
3622 (SVE2_COND_INT_UNARY_FP, SVE2_COND_FP_UNARY_LONG): Likewise.
3623 (SVE2_COND_FP_UNARY_NARROWB, SVE2_COND_INT_BINARY): Likewise.
3624 (SVE2_COND_INT_BINARY_NOREV, SVE2_COND_INT_BINARY_REV): Likewise.
3625 (SVE2_COND_INT_SHIFT, SVE2_MATCH, SVE2_PMULL): Likewise.
3626 (optab): Handle the new unspecs.
3627 (su, r): Remove entries for UNSPEC_SHRNB, UNSPEC_SHRNT, UNSPEC_RSHRNB
3628 and UNSPEC_RSHRNT.
3629 (lr): Handle the new unspecs.
3630 (bt): Delete.
3631 (cmp_op, while_optab_cmp, sve_int_op): Handle the new unspecs.
3632 (sve_int_op_rev, sve_int_add_op, sve_int_qadd_op, sve_int_sub_op)
3633 (sve_int_qsub_op): New int attributes.
3634 (sve_fp_op, rot): Handle the new unspecs.
3635 * config/aarch64/aarch64-sve-builtins.h
3636 (function_resolver::require_matching_pointer_type): Declare.
3637 (function_resolver::resolve_unary): Add an optional boolean argument.
3638 (function_resolver::finish_opt_n_resolution): Add an optional
3639 type_suffix_index argument.
3640 (gimple_folder::redirect_call): Declare.
3641 (gimple_expander::prepare_gather_address_operands): Add an optional
3642 bool parameter.
3643 * config/aarch64/aarch64-sve-builtins.cc: Include
3644 aarch64-sve-builtins-sve2.h.
3645 (TYPES_b_unsigned, TYPES_b_integer, TYPES_bh_integer): New macros.
3646 (TYPES_bs_unsigned, TYPES_hs_signed, TYPES_hs_integer): Likewise.
3647 (TYPES_hd_unsigned, TYPES_hsd_signed): Likewise.
3648 (TYPES_hsd_integer): Use TYPES_hsd_signed.
3649 (TYPES_s_float_hsd_integer, TYPES_s_float_sd_integer): New macros.
3650 (TYPES_s_unsigned): Likewise.
3651 (TYPES_s_integer): Use TYPES_s_unsigned.
3652 (TYPES_sd_signed, TYPES_sd_unsigned): New macros.
3653 (TYPES_sd_integer): Use them.
3654 (TYPES_d_unsigned): New macro.
3655 (TYPES_d_integer): Use it.
3656 (TYPES_d_data, TYPES_cvt_long, TYPES_cvt_narrow_s): New macros.
3657 (TYPES_cvt_narrow): Likewise.
3658 (DEF_SVE_TYPES_ARRAY): Include the new types macros above.
3659 (preds_mx): New variable.
3660 (function_builder::add_overloaded_function): Allow the new feature
3661 set to be more restrictive than the original one.
3662 (function_resolver::infer_pointer_type): Remove qualifiers from
3663 the pointer type before printing it.
3664 (function_resolver::require_matching_pointer_type): New function.
3665 (function_resolver::resolve_sv_displacement): Handle functions
3666 that don't support 32-bit vector indices or svint32_t vector offsets.
3667 (function_resolver::finish_opt_n_resolution): Take the inferred type
3668 as a separate argument.
3669 (function_resolver::resolve_unary): Optionally treat all forms in
3670 the same way as normal merging functions.
3671 (gimple_folder::redirect_call): New function.
3672 (function_expander::prepare_gather_address_operands): Add an argument
3673 that says whether scaled forms are available. If they aren't,
3674 handle scaling of vector indices and don't add the extension and
3675 scaling operands.
3676 (function_expander::map_to_unspecs): If aarch64_sve isn't available,
3677 fall back to using cond_* instead.
3678 * config/aarch64/aarch64-sve-builtins-functions.h (rtx_code_function):
3679 Split out the member variables into...
3680 (rtx_code_function_base): ...this new base class.
3681 (rtx_code_function_rotated): Inherit rtx_code_function_base.
3682 (unspec_based_function): Split out the member variables into...
3683 (unspec_based_function_base): ...this new base class.
3684 (unspec_based_function_rotated): Inherit unspec_based_function_base.
3685 (unspec_based_function_exact_insn): New class.
3686 (unspec_based_add_function, unspec_based_add_lane_function)
3687 (unspec_based_lane_function, unspec_based_pred_function)
3688 (unspec_based_qadd_function, unspec_based_qadd_lane_function)
3689 (unspec_based_qsub_function, unspec_based_qsub_lane_function)
3690 (unspec_based_sub_function, unspec_based_sub_lane_function): New
3691 typedefs.
3692 (unspec_based_fused_function): New class.
3693 (unspec_based_mla_function, unspec_based_mls_function): New typedefs.
3694 (unspec_based_fused_lane_function): New class.
3695 (unspec_based_mla_lane_function, unspec_based_mls_lane_function): New
3696 typedefs.
3697 (CODE_FOR_MODE1): New macro.
3698 (fixed_insn_function): New class.
3699 (while_comparison): Likewise.
3700 * config/aarch64/aarch64-sve-builtins-shapes.h (binary_long_lane)
3701 (binary_long_opt_n, binary_narrowb_opt_n, binary_narrowt_opt_n)
3702 (binary_to_uint, binary_wide, binary_wide_opt_n, compare, compare_ptr)
3703 (load_ext_gather_index_restricted, load_ext_gather_offset_restricted)
3704 (load_gather_sv_restricted, shift_left_imm_long): Declare.
3705 (shift_left_imm_to_uint, shift_right_imm_narrowb): Likewise.
3706 (shift_right_imm_narrowt, shift_right_imm_narrowb_to_uint): Likewise.
3707 (shift_right_imm_narrowt_to_uint, store_scatter_index_restricted)
3708 (store_scatter_offset_restricted, tbl_tuple, ternary_long_lane)
3709 (ternary_long_opt_n, ternary_qq_lane_rotate, ternary_qq_rotate)
3710 (ternary_shift_left_imm, ternary_shift_right_imm, ternary_uint)
3711 (unary_convert_narrowt, unary_long, unary_narrowb, unary_narrowt)
3712 (unary_narrowb_to_uint, unary_narrowt_to_uint, unary_to_int): Likewise.
3713 * config/aarch64/aarch64-sve-builtins-shapes.cc (apply_predication):
3714 Also add an initial argument for unary_convert_narrowt, regardless
3715 of the predication type.
3716 (build_32_64): Allow loads and stores to specify MODE_none.
3717 (build_sv_index64, build_sv_uint_offset): New functions.
3718 (long_type_suffix): New function.
3719 (binary_imm_narrowb_base, binary_imm_narrowt_base): New classes.
3720 (binary_imm_long_base, load_gather_sv_base): Likewise.
3721 (shift_right_imm_narrow_wrapper, ternary_shift_imm_base): Likewise.
3722 (ternary_resize2_opt_n_base, ternary_resize2_lane_base): Likewise.
3723 (unary_narrowb_base, unary_narrowt_base): Likewise.
3724 (binary_long_lane_def, binary_long_lane): New shape.
3725 (binary_long_opt_n_def, binary_long_opt_n): Likewise.
3726 (binary_narrowb_opt_n_def, binary_narrowb_opt_n): Likewise.
3727 (binary_narrowt_opt_n_def, binary_narrowt_opt_n): Likewise.
3728 (binary_to_uint_def, binary_to_uint): Likewise.
3729 (binary_wide_def, binary_wide): Likewise.
3730 (binary_wide_opt_n_def, binary_wide_opt_n): Likewise.
3731 (compare_def, compare): Likewise.
3732 (compare_ptr_def, compare_ptr): Likewise.
3733 (load_ext_gather_index_restricted_def,
3734 load_ext_gather_index_restricted): Likewise.
3735 (load_ext_gather_offset_restricted_def,
3736 load_ext_gather_offset_restricted): Likewise.
3737 (load_gather_sv_def): Inherit from load_gather_sv_base.
3738 (load_gather_sv_restricted_def, load_gather_sv_restricted): New shape.
3739 (shift_left_imm_def, shift_left_imm): Likewise.
3740 (shift_left_imm_long_def, shift_left_imm_long): Likewise.
3741 (shift_left_imm_to_uint_def, shift_left_imm_to_uint): Likewise.
3742 (store_scatter_index_restricted_def,
3743 store_scatter_index_restricted): Likewise.
3744 (store_scatter_offset_restricted_def,
3745 store_scatter_offset_restricted): Likewise.
3746 (tbl_tuple_def, tbl_tuple): Likewise.
3747 (ternary_long_lane_def, ternary_long_lane): Likewise.
3748 (ternary_long_opt_n_def, ternary_long_opt_n): Likewise.
3749 (ternary_qq_lane_def): Inherit from ternary_resize2_lane_base.
3750 (ternary_qq_lane_rotate_def, ternary_qq_lane_rotate): New shape
3751 (ternary_qq_opt_n_def): Inherit from ternary_resize2_opt_n_base.
3752 (ternary_qq_rotate_def, ternary_qq_rotate): New shape.
3753 (ternary_shift_left_imm_def, ternary_shift_left_imm): Likewise.
3754 (ternary_shift_right_imm_def, ternary_shift_right_imm): Likewise.
3755 (ternary_uint_def, ternary_uint): Likewise.
3756 (unary_convert): Fix typo in comment.
3757 (unary_convert_narrowt_def, unary_convert_narrowt): New shape.
3758 (unary_long_def, unary_long): Likewise.
3759 (unary_narrowb_def, unary_narrowb): Likewise.
3760 (unary_narrowt_def, unary_narrowt): Likewise.
3761 (unary_narrowb_to_uint_def, unary_narrowb_to_uint): Likewise.
3762 (unary_narrowt_to_uint_def, unary_narrowt_to_uint): Likewise.
3763 (unary_to_int_def, unary_to_int): Likewise.
3764 * config/aarch64/aarch64-sve-builtins-base.cc (unspec_cmla)
3765 (unspec_fcmla, unspec_cond_fcmla, expand_mla_mls_lane): New functions.
3766 (svasrd_impl): Delete.
3767 (svcadd_impl::expand): Handle integer operations too.
3768 (svcmla_impl::expand, svcmla_lane::expand): Likewise, using the
3769 new functions to derive the unspec numbers.
3770 (svmla_svmls_lane_impl): Replace with...
3771 (svmla_lane_impl, svmls_lane_impl): ...these new classes. Handle
3772 integer operations too.
3773 (svwhile_impl): Rename to...
3774 (svwhilelx_impl): ...this and inherit from while_comparison.
3775 (svasrd): Use unspec_based_function.
3776 (svmla_lane): Use svmla_lane_impl.
3777 (svmls_lane): Use svmls_lane_impl.
3778 (svrecpe, svrsqrte): Handle unsigned integer operations too.
3779 (svwhilele, svwhilelt): Use svwhilelx_impl.
3780 * config/aarch64/aarch64-sve-builtins-sve2.h: New file.
3781 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
3782 * config/aarch64/aarch64-sve-builtins-sve2.def: Likewise.
3783 * config/aarch64/aarch64-sve-builtins.def: Include
3784 aarch64-sve-builtins-sve2.def.
3785
3786 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
3787
3788 * config/aarch64/aarch64-protos.h (aarch64_sve_arith_immediate_p)
3789 (aarch64_sve_sqadd_sqsub_immediate_p): Add a machine_mode argument.
3790 * config/aarch64/aarch64.c (aarch64_sve_arith_immediate_p)
3791 (aarch64_sve_sqadd_sqsub_immediate_p): Likewise. Handle scalar
3792 immediates as well as vector ones.
3793 * config/aarch64/predicates.md (aarch64_sve_arith_immediate)
3794 (aarch64_sve_sub_arith_immediate, aarch64_sve_qadd_immediate)
3795 (aarch64_sve_qsub_immediate): Update calls accordingly.
3796
3797 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
3798
3799 * config/aarch64/aarch64-sve2.md: Add banner comments.
3800 (<su>mulh<r>s<mode>3): Move further up file.
3801 (<su>mull<bt><Vwide>, <r>shrnb<mode>, <r>shrnt<mode>)
3802 (*aarch64_sve2_sra<mode>): Move further down file.
3803 * config/aarch64/t-aarch64 (s-check-sve-md): Check aarch64-sve2.md too.
3804
3805 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
3806
3807 * config/aarch64/iterators.md (SVE_WHILE): Add UNSPEC_WHILERW
3808 and UNSPEC_WHILEWR.
3809 (while_optab_cmp): Handle them.
3810 * config/aarch64/aarch64-sve.md
3811 (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_ptest): Make public
3812 and add a "@" marker.
3813 * config/aarch64/aarch64-sve2.md (check_<raw_war>_ptrs<mode>): Use it
3814 instead of gen_aarch64_sve2_while_ptest.
3815 (@aarch64_sve2_while<cmp_op><GPI:mode><PRED_ALL:mode>_ptest): Delete.
3816
3817 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
3818
3819 * config/aarch64/aarch64.md (UNSPEC_WHILE_LE): Rename to...
3820 (UNSPEC_WHILELE): ...this.
3821 (UNSPEC_WHILE_LO): Rename to...
3822 (UNSPEC_WHILELO): ...this.
3823 (UNSPEC_WHILE_LS): Rename to...
3824 (UNSPEC_WHILELS): ...this.
3825 (UNSPEC_WHILE_LT): Rename to...
3826 (UNSPEC_WHILELT): ...this.
3827 * config/aarch64/iterators.md (SVE_WHILE): Update accordingly.
3828 (cmp_op, while_optab_cmp): Likewise.
3829 * config/aarch64/aarch64.c (aarch64_sve_move_pred_via_while): Likewise.
3830 * config/aarch64/aarch64-sve-builtins-base.cc (svwhilele): Likewise.
3831 (svwhilelt): Likewise.
3832
3833 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
3834
3835 * config/aarch64/aarch64-sve-builtins-shapes.h (unary_count): Delete.
3836 (unary_to_uint): Define.
3837 * config/aarch64/aarch64-sve-builtins-shapes.cc (unary_count_def)
3838 (unary_count): Rename to...
3839 (unary_to_uint_def, unary_to_uint): ...this.
3840 * config/aarch64/aarch64-sve-builtins-base.def: Update accordingly.
3841
3842 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
3843
3844 * config/aarch64/aarch64-sve-builtins-functions.h
3845 (code_for_mode_function): New class.
3846 (CODE_FOR_MODE0, QUIET_CODE_FOR_MODE0): New macros.
3847 * config/aarch64/aarch64-sve-builtins-base.cc (svcompact_impl)
3848 (svext_impl, svmul_lane_impl, svsplice_impl, svtmad_impl): Delete.
3849 (svcompact, svext, svsplice): Use QUIET_CODE_FOR_MODE0.
3850 (svmul_lane, svtmad): Use CODE_FOR_MODE0.
3851
3852 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
3853
3854 * config/aarch64/iterators.md (addsub): New code attribute.
3855 * config/aarch64/aarch64-simd.md (aarch64_<su_optab><optab><mode>):
3856 Re-express as...
3857 (aarch64_<su_optab>q<addsub><mode>): ...this, making the same change
3858 in the asm string and attributes. Fix indentation.
3859 * config/aarch64/aarch64-sve.md (@aarch64_<su_optab><optab><mode>):
3860 Re-express as...
3861 (@aarch64_sve_<optab><mode>): ...this.
3862 * config/aarch64/aarch64-sve-builtins.h
3863 (function_expander::expand_signed_unpred_op): Delete.
3864 * config/aarch64/aarch64-sve-builtins.cc
3865 (function_expander::expand_signed_unpred_op): Likewise.
3866 (function_expander::map_to_rtx_codes): If the optab isn't defined,
3867 try using code_for_aarch64_sve instead.
3868 * config/aarch64/aarch64-sve-builtins-base.cc (svqadd_impl): Delete.
3869 (svqsub_impl): Likewise.
3870 (svqadd, svqsub): Use rtx_code_function instead.
3871
3872 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
3873
3874 * config/aarch64/iterators.md (SRHSUB, URHSUB): Delete.
3875 (HADDSUB, sur, addsub): Remove them.
3876
3877 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
3878
3879 * tree-nrv.c (pass_return_slot::execute): Handle all internal
3880 functions the same way, rather than singling out those that
3881 aren't mapped directly to optabs.
3882
3883 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
3884
3885 * target.def (compatible_vector_types_p): New target hook.
3886 * hooks.h (hook_bool_const_tree_const_tree_true): Declare.
3887 * hooks.c (hook_bool_const_tree_const_tree_true): New function.
3888 * doc/tm.texi.in (TARGET_COMPATIBLE_VECTOR_TYPES_P): New hook.
3889 * doc/tm.texi: Regenerate.
3890 * gimple-expr.c: Include target.h.
3891 (useless_type_conversion_p): Use targetm.compatible_vector_types_p.
3892 * config/aarch64/aarch64.c (aarch64_compatible_vector_types_p): New
3893 function.
3894 (TARGET_COMPATIBLE_VECTOR_TYPES_P): Define.
3895 * config/aarch64/aarch64-sve-builtins.cc (gimple_folder::convert_pred):
3896 Use the original predicate if it already has a suitable type.
3897
3898 2020-01-09 Martin Jambor <mjambor@suse.cz>
3899
3900 * cgraph.h (cgraph_edge): Make remove, set_call_stmt, make_direct,
3901 resolve_speculation and redirect_call_stmt_to_callee static. Change
3902 return type of set_call_stmt to cgraph_edge *.
3903 * auto-profile.c (afdo_indirect_call): Adjust call to
3904 redirect_call_stmt_to_callee.
3905 * cgraph.c (cgraph_edge::set_call_stmt): Make return cgraph-edge *,
3906 make the this pointer explicit, adjust self-recursive calls and the
3907 call top make_direct. Return the resulting edge.
3908 (cgraph_edge::remove): Make this pointer explicit.
3909 (cgraph_edge::resolve_speculation): Likewise, adjust call to remove.
3910 (cgraph_edge::make_direct): Likewise, adjust call to
3911 resolve_speculation.
3912 (cgraph_edge::redirect_call_stmt_to_callee): Likewise, also adjust
3913 call to set_call_stmt.
3914 (cgraph_update_edges_for_call_stmt_node): Update call to
3915 set_call_stmt and remove.
3916 * cgraphclones.c (cgraph_node::set_call_stmt_including_clones):
3917 Renamed edge to master_edge. Adjusted calls to set_call_stmt.
3918 (cgraph_node::create_edge_including_clones): Moved "first" definition
3919 of edge to the block where it was used. Adjusted calls to
3920 set_call_stmt.
3921 (cgraph_node::remove_symbol_and_inline_clones): Adjust call to
3922 cgraph_edge::remove.
3923 * cgraphunit.c (walk_polymorphic_call_targets): Adjusted calls to
3924 make_direct and redirect_call_stmt_to_callee.
3925 * ipa-fnsummary.c (redirect_to_unreachable): Adjust calls to
3926 resolve_speculation and make_direct.
3927 * ipa-inline-transform.c (inline_transform): Adjust call to
3928 redirect_call_stmt_to_callee.
3929 (check_speculations_1):: Adjust call to resolve_speculation.
3930 * ipa-inline.c (resolve_noninline_speculation): Adjust call to
3931 resolve-speculation.
3932 (inline_small_functions): Adjust call to resolve_speculation.
3933 (ipa_inline): Likewise.
3934 * ipa-prop.c (ipa_make_edge_direct_to_target): Adjust call to
3935 make_direct.
3936 * ipa-visibility.c (function_and_variable_visibility): Make iteration
3937 safe with regards to edge removal, adjust calls to
3938 redirect_call_stmt_to_callee.
3939 * ipa.c (walk_polymorphic_call_targets): Adjust calls to make_direct
3940 and redirect_call_stmt_to_callee.
3941 * multiple_target.c (create_dispatcher_calls): Adjust call to
3942 redirect_call_stmt_to_callee
3943 (redirect_to_specific_clone): Likewise.
3944 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
3945 Adjust calls to cgraph_edge::remove.
3946 * tree-inline.c (copy_bb): Adjust call to set_call_stmt.
3947 (redirect_all_calls): Adjust call to redirect_call_stmt_to_callee.
3948 (expand_call_inline): Adjust call to cgraph_edge::remove.
3949
3950 2020-01-09 Martin Liska <mliska@suse.cz>
3951
3952 * params.opt: Set Optimization for
3953 param_max_speculative_devirt_maydefs.
3954
3955 2020-01-09 Martin Sebor <msebor@redhat.com>
3956
3957 PR middle-end/93200
3958 PR fortran/92956
3959 * builtins.c (compute_objsize): Avoid handling MEM_REFs of vector type.
3960
3961 2020-01-09 Martin Liska <mliska@suse.cz>
3962
3963 * auto-profile.c (auto_profile): Use opt_for_fn
3964 for a parameter.
3965 * ipa-cp.c (ipcp_lattice::add_value): Likewise.
3966 (propagate_vals_across_arith_jfunc): Likewise.
3967 (hint_time_bonus): Likewise.
3968 (incorporate_penalties): Likewise.
3969 (good_cloning_opportunity_p): Likewise.
3970 (perform_estimation_of_a_value): Likewise.
3971 (estimate_local_effects): Likewise.
3972 (ipcp_propagate_stage): Likewise.
3973 * ipa-fnsummary.c (decompose_param_expr): Likewise.
3974 (set_switch_stmt_execution_predicate): Likewise.
3975 (analyze_function_body): Likewise.
3976 * ipa-inline-analysis.c (offline_size): Likewise.
3977 * ipa-inline.c (early_inliner): Likewise.
3978 * ipa-prop.c (ipa_analyze_node): Likewise.
3979 (ipcp_transform_function): Likewise.
3980 * ipa-sra.c (process_scan_results): Likewise.
3981 (ipa_sra_summarize_function): Likewise.
3982 * params.opt: Rename ipcp-unit-growth to
3983 ipa-cp-unit-growth. Add Optimization for various
3984 IPA-related parameters.
3985
3986 2020-01-09 Richard Biener <rguenther@suse.de>
3987
3988 PR middle-end/93054
3989 * gimplify.c (gimplify_expr): Deal with NOP definitions.
3990
3991 2020-01-09 Richard Biener <rguenther@suse.de>
3992
3993 PR tree-optimization/93040
3994 * gimple-ssa-store-merging.c (find_bswap_or_nop): Raise search limit.
3995
3996 2020-01-09 Georg-Johann Lay <avr@gjlay.de>
3997
3998 * common/config/avr/avr-common.c (avr_option_optimization_table)
3999 [OPT_LEVELS_1_PLUS]: Set -fsplit-wide-types-early.
4000
4001 2020-01-09 Martin Liska <mliska@suse.cz>
4002
4003 * cgraphclones.c (symbol_table::materialize_all_clones):
4004 Use cgraph_node::dump_name.
4005
4006 2020-01-09 Jakub Jelinek <jakub@redhat.com>
4007
4008 PR inline-asm/93202
4009 * config/riscv/riscv.c (riscv_print_operand_reloc): Use
4010 output_operand_lossage instead of gcc_unreachable.
4011 * doc/md.texi (riscv f constraint): Fix typo.
4012
4013 PR target/93141
4014 * config/i386/i386.md (subv<mode>4): Use SWIDWI iterator instead of
4015 SWI. Use <general_hilo_operand> instead of <general_operand>. Use
4016 CONST_SCALAR_INT_P instead of CONST_INT_P.
4017 (*subv<mode>4_1): Rename to ...
4018 (subv<mode>4_1): ... this.
4019 (*subv<dwi>4_doubleword, *addv<dwi>4_doubleword_1): New
4020 define_insn_and_split patterns.
4021 (*subv<mode>4_overflow_1, *addv<mode>4_overflow_2): New define_insn
4022 patterns.
4023
4024 2020-01-08 David Malcolm <dmalcolm@redhat.com>
4025
4026 * vec.c (class selftest::count_dtor): New class.
4027 (selftest::test_auto_delete_vec): New test.
4028 (selftest::vec_c_tests): Call it.
4029 * vec.h (class auto_delete_vec): New class template.
4030 (auto_delete_vec<T>::~auto_delete_vec): New dtor.
4031
4032 2020-01-08 David Malcolm <dmalcolm@redhat.com>
4033
4034 * sbitmap.h (auto_sbitmap): Add operator const_sbitmap.
4035
4036 2020-01-08 Jim Wilson <jimw@sifive.com>
4037
4038 * config/riscv/riscv.c (riscv_legitimize_tls_address): Ifdef out
4039 use of TLS_MODEL_LOCAL_EXEC when not pic.
4040
4041 2020-01-08 David Malcolm <dmalcolm@redhat.com>
4042
4043 * hash-map-tests.c (selftest::test_map_of_strings_to_int): Fix
4044 memory leak.
4045
4046 2020-01-08 Jakub Jelinek <jakub@redhat.com>
4047
4048 PR target/93187
4049 * config/i386/i386.md (*stack_protect_set_2_<mode> peephole2,
4050 *stack_protect_set_3 peephole2): Also check that the second
4051 insns source is general_operand.
4052
4053 PR target/93174
4054 * config/i386/i386.md (addcarry<mode>_0): Use nonimmediate_operand
4055 predicate for output operand instead of register_operand.
4056 (addcarry<mode>, addcarry<mode>_1): Likewise. Add alternative with
4057 memory destination and non-memory operands[2].
4058
4059 2020-01-08 Martin Liska <mliska@suse.cz>
4060
4061 * cgraph.c (cgraph_node::dump): Use ::dump_name or
4062 ::dump_asm_name instead of (::name or ::asm_name).
4063 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
4064 * cgraphunit.c (walk_polymorphic_call_targets): Likewise.
4065 (analyze_functions): Likewise.
4066 (expand_all_functions): Likewise.
4067 * ipa-cp.c (ipcp_cloning_candidate_p): Likewise.
4068 (propagate_bits_across_jump_function): Likewise.
4069 (dump_profile_updates): Likewise.
4070 (ipcp_store_bits_results): Likewise.
4071 (ipcp_store_vr_results): Likewise.
4072 * ipa-devirt.c (dump_targets): Likewise.
4073 * ipa-fnsummary.c (analyze_function_body): Likewise.
4074 * ipa-hsa.c (check_warn_node_versionable): Likewise.
4075 (process_hsa_functions): Likewise.
4076 * ipa-icf.c (sem_item_optimizer::merge_classes): Likewise.
4077 (set_alias_uids): Likewise.
4078 * ipa-inline-transform.c (save_inline_function_body): Likewise.
4079 * ipa-inline.c (recursive_inlining): Likewise.
4080 (inline_to_all_callers_1): Likewise.
4081 (ipa_inline): Likewise.
4082 * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
4083 (ipa_propagate_frequency): Likewise.
4084 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
4085 (remove_described_reference): Likewise.
4086 * ipa-pure-const.c (worse_state): Likewise.
4087 (check_retval_uses): Likewise.
4088 (analyze_function): Likewise.
4089 (propagate_pure_const): Likewise.
4090 (propagate_nothrow): Likewise.
4091 (dump_malloc_lattice): Likewise.
4092 (propagate_malloc): Likewise.
4093 (pass_local_pure_const::execute): Likewise.
4094 * ipa-visibility.c (optimize_weakref): Likewise.
4095 (function_and_variable_visibility): Likewise.
4096 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
4097 (ipa_discover_variable_flags): Likewise.
4098 * lto-streamer-out.c (output_function): Likewise.
4099 (output_constructor): Likewise.
4100 * tree-inline.c (copy_bb): Likewise.
4101 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
4102 * varpool.c (symbol_table::remove_unreferenced_decls): Likewise.
4103
4104 2020-01-08 Richard Biener <rguenther@suse.de>
4105
4106 PR middle-end/93199
4107 * tree-eh.c (sink_clobbers): Update virtual operands for
4108 the first and last stmt only. Add a dry-run capability.
4109 (pass_lower_eh_dispatch::execute): Perform clobber sinking
4110 after CFG manipulations and in RPO order to catch all
4111 secondary opportunities reliably.
4112
4113 2020-01-08 Georg-Johann Lay <avr@gjlay.de>
4114
4115 PR target/93182
4116 * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document.
4117
4118 2019-01-08 Richard Biener <rguenther@suse.de>
4119
4120 PR middle-end/93199
4121 * gimple-fold.c (rewrite_to_defined_overflow): Mark stmt modified.
4122 * tree-ssa-loop-im.c (move_computations_worker): Properly adjust
4123 virtual operand, also updating SSA use.
4124 * gimple-loop-interchange.cc (loop_cand::undo_simple_reduction):
4125 Update stmt after resetting virtual operand.
4126 (tree_loop_interchange::move_code_to_inner_loop): Likewise.
4127 * gimple-iterator.c (gsi_remove): When not removing the stmt
4128 permanently do not delink immediate uses or mark the stmt modified.
4129
4130 2020-01-08 Martin Liska <mliska@suse.cz>
4131
4132 * ipa-fnsummary.c (dump_ipa_call_summary): Use symtab_node::dump_name.
4133 (ipa_call_context::estimate_size_and_time): Likewise.
4134 (inline_analyze_function): Likewise.
4135
4136 2020-01-08 Martin Liska <mliska@suse.cz>
4137
4138 * cgraph.c (cgraph_node::dump): Use systematically
4139 dump_asm_name.
4140
4141 2020-01-08 Georg-Johann Lay <avr@gjlay.de>
4142
4143 Add -nodevicespecs option for avr.
4144
4145 PR target/93182
4146 * config/avr/avr.opt (-nodevicespecs): New driver option.
4147 * config/avr/driver-avr.c (avr_devicespecs_file): Only issue
4148 "-specs=device-specs/..." if that option is not set.
4149 * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document.
4150
4151 2020-01-08 Georg-Johann Lay <avr@gjlay.de>
4152
4153 Implement 64-bit double functions for avr.
4154
4155 PR target/92055
4156 * config.gcc (tm_defines) [target=avr]: Support --with-libf7,
4157 --with-double-comparison.
4158 * doc/install.texi: Document them.
4159 * config/avr/avr-c.c (avr_cpu_cpp_builtins)
4160 <WITH_LIBF7_LIBGCC, WITH_LIBF7_MATH, WITH_LIBF7_MATH_SYMBOLS>
4161 <WITH_DOUBLE_COMPARISON>: New built-in defines.
4162 * doc/invoke.texi (AVR Built-in Macros): Document them.
4163 * config/avr/avr-protos.h (avr_float_lib_compare_returns_bool): New.
4164 * config/avr/avr.c (avr_float_lib_compare_returns_bool): New function.
4165 * config/avr/avr.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): New macro.
4166
4167 2020-01-08 Richard Earnshaw <rearnsha@arm.com>
4168
4169 PR target/93188
4170 * config/arm/t-multilib (MULTILIB_MATCHES): Add rules to match
4171 armv7-a{+mp,+sec,+mp+sec} to appropriate armv7 multilib variants
4172 when only building rm-profile multilibs.
4173
4174 2020-01-08 Feng Xue <fxue@os.amperecomputing.com>
4175
4176 PR ipa/93084
4177 * ipa-cp.c (self_recursively_generated_p): Find matched aggregate
4178 lattice for a value to check.
4179 (propagate_vals_across_arith_jfunc): Add an assertion to ensure
4180 finite propagation in self-recursive scc.
4181
4182 2020-01-08 Luo Xiong Hu <luoxhu@linux.ibm.com>
4183
4184 * ipa-inline.c (caller_growth_limits): Restore the AND.
4185
4186 2020-01-07 Andrew Stubbs <ams@codesourcery.com>
4187
4188 * config/gcn/gcn-valu.md (VEC_1REG_INT_ALT): Delete iterator.
4189 (VEC_ALLREG_ALT): New iterator.
4190 (VEC_ALLREG_INT_MODE): New iterator.
4191 (VCMP_MODE): New iterator.
4192 (VCMP_MODE_INT): New iterator.
4193 (vec_cmpu<mode>di): Use VCMP_MODE_INT.
4194 (vec_cmp<u>v64qidi): New define_expand.
4195 (vec_cmp<mode>di_exec): Use VCMP_MODE.
4196 (vec_cmpu<mode>di_exec): New define_expand.
4197 (vec_cmp<u>v64qidi_exec): New define_expand.
4198 (vec_cmp<mode>di_dup): Use VCMP_MODE.
4199 (vec_cmp<mode>di_dup_exec): Use VCMP_MODE.
4200 (vcond<VEC_ALL1REG_MODE:mode><VEC_1REG_ALT:mode>): Rename ...
4201 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>): ... to this.
4202 (vcond<VEC_ALL1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Rename ...
4203 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>_exec): ... to this.
4204 (vcondu<VEC_ALL1REG_MODE:mode><VEC_1REG_INT_ALT:mode>): Rename ...
4205 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>): ... to this.
4206 (vcondu<VEC_ALL1REG_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Rename ...
4207 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>_exec): ... to
4208 this.
4209 * config/gcn/gcn.c (print_operand): Fix 8 and 16 bit suffixes.
4210 * config/gcn/gcn.md (expander): Add sign_extend and zero_extend.
4211
4212 2020-01-07 Andrew Stubbs <ams@codesourcery.com>
4213
4214 * config/gcn/constraints.md (DA): Update description and match.
4215 (DB): Likewise.
4216 (Db): New constraint.
4217 * config/gcn/gcn-protos.h (gcn_inline_constant64_p): Add second
4218 parameter.
4219 * config/gcn/gcn.c (gcn_inline_constant64_p): Add 'mixed' parameter.
4220 Implement 'Db' mixed immediate type.
4221 * config/gcn/gcn-valu.md (addcv64si3<exec_vcc>): Rework constraints.
4222 (addcv64si3_dup<exec_vcc>): Delete.
4223 (subcv64si3<exec_vcc>): Rework constraints.
4224 (addv64di3): Rework constraints.
4225 (addv64di3_exec): Rework constraints.
4226 (subv64di3): Rework constraints.
4227 (addv64di3_dup): Delete.
4228 (addv64di3_dup_exec): Delete.
4229 (addv64di3_zext): Rework constraints.
4230 (addv64di3_zext_exec): Rework constraints.
4231 (addv64di3_zext_dup): Rework constraints.
4232 (addv64di3_zext_dup_exec): Rework constraints.
4233 (addv64di3_zext_dup2): Rework constraints.
4234 (addv64di3_zext_dup2_exec): Rework constraints.
4235 (addv64di3_sext_dup2): Rework constraints.
4236 (addv64di3_sext_dup2_exec): Rework constraints.
4237
4238 2020-01-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
4239
4240 * doc/sourcebuild.texi (arm_little_endian, arm_nothumb): Documented
4241 existing target checks.
4242
4243 2020-01-07 Richard Biener <rguenther@suse.de>
4244
4245 * doc/install.texi: Bump minimal supported MPC version.
4246
4247 2020-01-07 Richard Sandiford <richard.sandiford@arm.com>
4248
4249 * langhooks-def.h (lhd_simulate_enum_decl): Declare.
4250 (LANG_HOOKS_SIMULATE_ENUM_DECL): Use it.
4251 * langhooks.c: Include stor-layout.h.
4252 (lhd_simulate_enum_decl): New function.
4253 * config/aarch64/aarch64-sve-builtins.cc (init_builtins): Call
4254 handle_arm_sve_h for the LTO frontend.
4255 (register_vector_type): Cope with null returns from pushdecl.
4256
4257 2020-01-07 Richard Sandiford <richard.sandiford@arm.com>
4258
4259 * config/aarch64/aarch64-protos.h (aarch64_sve::svbool_type_p)
4260 (aarch64_sve::nvectors_if_data_type): Replace with...
4261 (aarch64_sve::builtin_type_p): ...this.
4262 * config/aarch64/aarch64-sve-builtins.cc: Include attribs.h.
4263 (find_vector_type): Delete.
4264 (add_sve_type_attribute): New function.
4265 (lookup_sve_type_attribute): Likewise.
4266 (register_builtin_types): Add an "SVE type" attribute to each type.
4267 (register_tuple_type): Likewise.
4268 (svbool_type_p, nvectors_if_data_type): Delete.
4269 (mangle_builtin_type): Use lookup_sve_type_attribute.
4270 (builtin_type_p): Likewise. Add an overload that returns the
4271 number of constituent vector and predicate registers.
4272 * config/aarch64/aarch64.c (aarch64_sve_argument_p): Delete.
4273 (aarch64_returns_value_in_sve_regs_p): Use aarch64_sve::builtin_type_p
4274 instead of aarch64_sve_argument_p.
4275 (aarch64_takes_arguments_in_sve_regs_p): Likewise.
4276 (aarch64_pass_by_reference): Likewise.
4277 (aarch64_function_value_1): Likewise.
4278 (aarch64_return_in_memory): Likewise.
4279 (aarch64_layout_arg): Likewise.
4280
4281 2020-01-07 Jakub Jelinek <jakub@redhat.com>
4282
4283 PR tree-optimization/93156
4284 * tree-ssa-ccp.c (bit_value_binop): For x * x note that the second
4285 least significant bit is always clear.
4286
4287 PR tree-optimization/93118
4288 * match.pd ((x >> c) << c -> x & (-1<<c)): Add nop_convert?. Add new
4289 simplifier with two intermediate conversions.
4290
4291 2020-01-07 Martin Liska <mliska@suse.cz>
4292
4293 * params.opt: Add Optimization for various parameters.
4294
4295 2020-01-07 Martin Liska <mliska@suse.cz>
4296
4297 PR ipa/83411
4298 * doc/extend.texi: Explain cloning for target_clone
4299 attribute.
4300
4301 2020-01-07 Martin Liska <mliska@suse.cz>
4302
4303 PR tree-optimization/92860
4304 * common.opt: Make in Optimization option
4305 as it is affected by -O0, which is an Optimization
4306 option.
4307 * tree-inline.c (tree_inlinable_function_p):
4308 Use opt_for_fn for warn_inline.
4309 (expand_call_inline): Likewise.
4310
4311 2020-01-07 Martin Liska <mliska@suse.cz>
4312
4313 PR tree-optimization/92860
4314 * common.opt: Make flag_ree as optimization
4315 attribute.
4316
4317 2020-01-07 Martin Liska <mliska@suse.cz>
4318
4319 PR optimization/92860
4320 * params.opt: Mark param_min_crossjump_insns with Optimization
4321 keyword.
4322
4323 2020-01-07 Luo Xiong Hu <luoxhu@linux.ibm.com>
4324
4325 * ipa-inline-analysis.c (estimate_growth): Fix typo.
4326 * ipa-inline.c (caller_growth_limits): Use OR instead of AND.
4327
4328 2020-01-06 Michael Meissner <meissner@linux.ibm.com>
4329
4330 * config/rs6000/rs6000.c (hard_reg_and_mode_to_addr_mask): New
4331 helper function to return the valid addressing formats for a given
4332 hard register and mode.
4333 (rs6000_adjust_vec_address): Call hard_reg_and_mode_to_addr_mask.
4334
4335 * config/rs6000/constraints.md (Q constraint): Update
4336 documentation.
4337 * doc/md.texi (RS/6000 constraints): Update 'Q' cosntraint
4338 documentation.
4339
4340 * config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
4341 Use 'Q' for doing vector extract from memory.
4342 (vsx_extract_v4sf_var): Use 'Q' for doing vector extract from
4343 memory.
4344 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for
4345 doing vector extract from memory.
4346 (vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector
4347 extract from memory.
4348
4349 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add support
4350 for the offset being 34-bits when -mcpu=future is used.
4351
4352 2020-01-06 John David Anglin <danglin@gcc.gnu.org>
4353
4354 * config/pa/pa.md: Revert change to use ordered_comparison_operator
4355 instead of cmpib_comparison_operator in cmpib patterns.
4356 * config/pa/predicates.md (cmpib_comparison_operator): Revert removal
4357 of cmpib_comparison_operator. Revise comment.
4358
4359 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
4360
4361 * tree-vect-slp.c (vect_build_slp_tree_1): Require all shifts
4362 in an IFN_DIV_POW2 node to be equal.
4363
4364 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
4365
4366 * tree-vect-stmts.c (vect_check_load_store_mask): Rename to...
4367 (vect_check_scalar_mask): ...this.
4368 (vectorizable_store, vectorizable_load): Update call accordingly.
4369 (vectorizable_call): Use vect_check_scalar_mask to check the mask
4370 argument in calls to conditional internal functions.
4371
4372 2020-01-06 Andrew Stubbs <ams@codesourcery.com>
4373
4374 * config/gcn/gcn-valu.md (subv64di3): Use separate alternatives for
4375 '0' matching inputs.
4376 (subv64di3_exec): Likewise.
4377
4378 2020-01-06 Bryan Stenson <bryan@siliconvortex.com>
4379
4380 * config/mips/mips.c (vr4130_align_insns): Fix typo.
4381 * doc/md.texi (movstr): Likewise.
4382
4383 2020-01-06 Andrew Stubbs <ams@codesourcery.com>
4384
4385 * config/gcn/gcn-valu.md (vec_extract<mode><scalar_mode>): Add early
4386 clobber.
4387
4388 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
4389
4390 * config/aarch64/t-aarch64 ($(srcdir)/config/aarch64/aarch64-tune.md):
4391 Depend on...
4392 (s-aarch64-tune-md): ...this new stamp file. Pipe the new contents
4393 to a temporary file and use move-if-change to update the real
4394 file where necessary.
4395
4396 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
4397
4398 * config/aarch64/aarch64-sve.md (@aarch64_sel_dup<mode>): Use Upl
4399 rather than Upa for CPY /M.
4400
4401 2020-01-06 Andrew Stubbs <ams@codesourcery.com>
4402
4403 * config/gcn/gcn.c (gcn_inline_constant_p): Allow 64 as an inline
4404 immediate.
4405
4406 2020-01-06 Martin Liska <mliska@suse.cz>
4407
4408 PR tree-optimization/92860
4409 * params.opt: Mark param_max_combine_insns with Optimization
4410 keyword.
4411
4412 2020-01-05 Jakub Jelinek <jakub@redhat.com>
4413
4414 PR target/93141
4415 * config/i386/i386.md (SWIDWI): New mode iterator.
4416 (DWI, dwi): Add TImode variants.
4417 (addv<mode>4): Use SWIDWI iterator instead of SWI. Use
4418 <general_hilo_operand> instead of <general_operand>. Use
4419 CONST_SCALAR_INT_P instead of CONST_INT_P.
4420 (*addv<mode>4_1): Rename to ...
4421 (addv<mode>4_1): ... this.
4422 (QWI): New mode attribute.
4423 (*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1): New
4424 define_insn_and_split patterns.
4425 (*addv<mode>4_overflow_1, *addv<mode>4_overflow_2): New define_insn
4426 patterns.
4427 (uaddv<mode>4): Use SWIDWI iterator instead of SWI. Use
4428 <general_hilo_operand> instead of <general_operand>.
4429 (*addcarry<mode>_1): New define_insn.
4430 (*add<dwi>3_doubleword_cc_overflow_1): New define_insn_and_split.
4431
4432 2020-01-03 Konstantin Kharlamov <Hi-Angel@yandex.ru>
4433
4434 * gdbinit.in (pr, prl, pt, pct, pgg, pgq, pgs, pge, pmz, pdd, pbs, pbm):
4435 Use "call" instead of "set".
4436
4437 2020-01-03 Martin Jambor <mjambor@suse.cz>
4438
4439 PR ipa/92917
4440 * ipa-cp.c (print_all_lattices): Skip functions without info.
4441
4442 2020-01-03 Jakub Jelinek <jakub@redhat.com>
4443
4444 PR target/93089
4445 * config/i386/i386-options.c (ix86_simd_clone_adjust): If
4446 TARGET_PREFER_AVX128, use prefer-vector-width=256 for 'c' and 'd'
4447 simd clones. If TARGET_PREFER_AVX256, use prefer-vector-width=512
4448 for 'e' simd clones.
4449
4450 PR target/93089
4451 * config/i386/i386.opt (x_prefer_vector_width_type): Remove TargetSave
4452 entry.
4453 (mprefer-vector-width=): Add Save.
4454 * config/i386/i386-options.c (ix86_target_string): Add PVW argument, print
4455 -mprefer-vector-width= if non-zero. Fix up -mfpmath= comment.
4456 (ix86_debug_options, ix86_function_specific_print): Adjust
4457 ix86_target_string callers.
4458 (ix86_valid_target_attribute_inner_p): Handle prefer-vector-width=.
4459 (ix86_valid_target_attribute_tree): Likewise.
4460 * config/i386/i386-options.h (ix86_target_string): Add PVW argument.
4461 * config/i386/i386-expand.c (ix86_expand_builtin): Adjust
4462 ix86_target_string caller.
4463
4464 PR target/93110
4465 * config/i386/i386.md (abs<mode>2): Use expand_simple_binop instead of
4466 emitting ASHIFTRT, XOR and MINUS by hand. Use gen_int_mode with QImode
4467 instead of gen_int_shift_amount + convert_modes.
4468
4469 PR rtl-optimization/93088
4470 * loop-iv.c (find_single_def_src): Punt after looking through
4471 128 reg copies for regs with single definitions. Move definitions
4472 to first uses.
4473
4474 2020-01-02 Dennis Zhang <dennis.zhang@arm.com>
4475
4476 * config/arm/arm-c.c (arm_cpu_builtins): Define
4477 __ARM_FEATURE_MATMUL_INT8, __ARM_FEATURE_BF16_VECTOR_ARITHMETIC,
4478 __ARM_FEATURE_BF16_SCALAR_ARITHMETIC, and
4479 __ARM_BF16_FORMAT_ALTERNATIVE when enabled.
4480 * config/arm/arm-cpus.in (armv8_6, i8mm, bf16): New features.
4481 * config/arm/arm-tables.opt: Regenerated.
4482 * config/arm/arm.c (arm_option_reconfigure_globals): Initialize
4483 arm_arch_i8mm and arm_arch_bf16 when enabled.
4484 * config/arm/arm.h (TARGET_I8MM): New macro.
4485 (TARGET_BF16_FP, TARGET_BF16_SIMD): Likewise.
4486 * config/arm/t-aprofile: Add matching rules for -march=armv8.6-a.
4487 * config/arm/t-arm-elf (all_v8_archs): Add armv8.6-a.
4488 * config/arm/t-multilib: Add matching rules for -march=armv8.6-a.
4489 (v8_6_a_simd_variants): New.
4490 (v8_*_a_simd_variants): Add i8mm and bf16.
4491 * doc/invoke.texi (armv8.6-a, i8mm, bf16): Document new options.
4492
4493 2020-01-02 Jakub Jelinek <jakub@redhat.com>
4494
4495 PR ipa/93087
4496 * predict.c (compute_function_frequency): Don't call
4497 warn_function_cold on functions that already have cold attribute.
4498
4499 2020-01-01 John David Anglin <danglin@gcc.gnu.org>
4500
4501 PR target/67834
4502 * config/pa/pa.c (pa_elf_select_rtx_section): New. Put references to
4503 COMDAT group function labels in .data.rel.ro.local section.
4504 * config/pa/pa32-linux.h (TARGET_ASM_SELECT_RTX_SECTION): Define.
4505
4506 PR target/93111
4507 * config/pa/pa.md (scc): Use ordered_comparison_operator instead of
4508 comparison_operator in B and S integer comparisons. Likewise, use
4509 ordered_comparison_operator instead of cmpib_comparison_operator in
4510 cmpib patterns.
4511 * config/pa/predicates.md (cmpib_comparison_operator): Remove.
4512
4513 2020-01-01 Jakub Jelinek <jakub@redhat.com>
4514
4515 Update copyright years.
4516
4517 * gcc.c (process_command): Update copyright notice dates.
4518 * gcov-dump.c (print_version): Ditto.
4519 * gcov.c (print_version): Ditto.
4520 * gcov-tool.c (print_version): Ditto.
4521 * gengtype.c (create_file): Ditto.
4522 * doc/cpp.texi: Bump @copying's copyright year.
4523 * doc/cppinternals.texi: Ditto.
4524 * doc/gcc.texi: Ditto.
4525 * doc/gccint.texi: Ditto.
4526 * doc/gcov.texi: Ditto.
4527 * doc/install.texi: Ditto.
4528 * doc/invoke.texi: Ditto.
4529
4530 2020-01-01 Jan Hubicka <hubicka@ucw.cz>
4531
4532 * ipa.c (walk_polymorphic_call_targets): Fix updating of overall
4533 summary.
4534
4535 2020-01-01 Jakub Jelinek <jakub@redhat.com>
4536
4537 PR tree-optimization/93098
4538 * match.pd (popcount): For shift amounts, use integer_onep
4539 or wi::to_widest () == cst instead of tree_to_uhwi () == cst
4540 tests. Make sure that precision is power of two larger than or equal
4541 to 16. Ensure shift is never negative. Use HOST_WIDE_INT_UC macro
4542 instead of ULL suffixed constants. Formatting fixes.
4543 \f
4544 Copyright (C) 2020 Free Software Foundation, Inc.
4545
4546 Copying and distribution of this file, with or without modification,
4547 are permitted in any medium without royalty provided the copyright
4548 notice and this notice are preserved.