Fix more ICEs in -fsave-optimization-record (PR tree-optimization/89235)
[gcc.git] / gcc / ChangeLog
1 2019-02-07 David Malcolm <dmalcolm@redhat.com>
2
3 PR tree-optimization/86637
4 PR tree-optimization/89235
5 * tree-vect-loop.c (optimize_mask_stores): Add an
6 auto_purge_vect_location sentinel to ensure that vect_location is
7 purged on exit.
8 * tree-vectorizer.c
9 (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
10 (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
11 to ensure that vect_location is purged on exit.
12 (pass_slp_vectorize::execute): Likewise, replacing the manual
13 reset.
14 * tree-vectorizer.h (class auto_purge_vect_location): New class.
15
16 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17
18 * config/aarch64/iterators.md (max_opp): New code_attr.
19 (USMAX): New code iterator.
20 * config/aarch64/predicates.md (aarch64_smin): New predicate.
21 (aarch64_smax): Likewise.
22 * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
23 (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
24 MINUS (MAX MIN).
25
26 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
27
28 PR target/89229
29 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
30 for TARGET_AVX512VL.
31 (*movti_internal): Set mode to TI for TARGET_AVX512VL.
32
33 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
34
35 * config/s390/s390-builtin-types.def: Add new types.
36 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
37 (s390_vec_xlw4): Make the memory operand into a const pointer.
38 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
39 float.
40 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
41 a new vector type with the alignment of the scalar memory operand.
42
43 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
44 Jakub Jelinek <jakub@redhat.com>
45
46 PR bootstrap/88714
47 * config/arm/arm-protos.h (valid_operands_ldrd_strd,
48 arm_count_ldrdstrd_insns): New declarations.
49 * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
50 MINUS.
51 (valid_operands_ldrd_strd): New function.
52 (arm_count_ldrdstrd_insns): New function.
53 * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
54 sets instead of single DImode set and define new insns to match this.
55
56 2019-02-07 Tamar Christina <tamar.christina@arm.com>
57
58 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
59 Make it a C initializer.
60
61 2019-02-07 Tamar Christina <tamar.christina@arm.com>
62
63 PR/target 88850
64 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
65
66 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
67
68 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
69 Use neon_dot<q> for type.
70 (neon_<sup>dot_lane<vsi2qi>): Likewise.
71
72 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
73
74 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
75 Use neon_dot<q> for type.
76 (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
77 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
78
79 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
80
81 PR rtl-optimization/89225
82 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
83 sizes check.
84
85 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
86
87 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
88 after restoring registers saved to allocate the frame on Windows.
89
90 2019-02-06 Richard Biener <rguenther@suse.de>
91
92 PR tree-optimization/89182
93 * graphite.h (cached_scalar_evolution_in_region): Declare.
94 * graphite.c (struct seir_cache_key): New.
95 (struct sese_scev_hash): Likewise.
96 (seir_cache): New global.
97 (cached_scalar_evolution_in_region): New function.
98 (graphite_transform_loops): Allocate and release seir_cache.
99 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
100 cached_scalar_evolution_in_region.
101 * graphite-scop-detection.c (scop_detection::can_represent_loop):
102 Simplify.
103 (scop_detection::graphite_can_represent_expr: Use
104 cached_scalar_evolution_in_region.
105 (scop_detection::stmt_simple_for_scop_p): Likewise.
106 (find_params_in_bb): Likewise.
107 (gather_bbs::before_dom_children): Likewise.
108 * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
109 (add_loop_constraints): Likewise.
110
111 2019-02-06 Jakub Jelinek <jakub@redhat.com>
112
113 PR middle-end/89210
114 * fold-const-call.c (fold_const_vec_convert): Pass true as last
115 operand to new_unary_operation only if both element types are integral
116 and it isn't a widening conversion. Return NULL_TREE if
117 new_unary_operation failed.
118
119 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
120
121 PR target/88856
122 * config/s390/s390.md: Remove load and test FP splitter.
123
124 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
125
126 PR target/89112
127 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
128 expand_compare_loop, expand_block_compare_gpr,
129 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
130 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
131 #include "profile-count.h" and "predict.h" for types and functions
132 needed to work with REG_BR_PROB notes.
133
134 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
135
136 PR target/89112
137 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
138 for the long branch case.
139
140 2019-02-05 Jakub Jelinek <jakub@redhat.com>
141
142 PR target/89188
143 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
144 can throw, non-call exceptions are enabled and we can't delete
145 dead exceptions or alter cfg. Set must_clean if
146 delete_insn_and_edges returns true, don't set it blindly for calls.
147 Assert that delete_unreachable_blocks is called only if can_alter_cfg.
148
149 PR rtl-optimization/89195
150 * combine.c (make_extraction): For MEMs, don't extract bytes outside
151 of the original MEM.
152
153 2019-02-05 Martin Liska <mliska@suse.cz>
154
155 PR gcov-profile/89000
156 * gcov.c (function_summary): Remove argument.
157 (file_summary): New function.
158 (print_usage): Replace tabs with spaces.
159 (generate_results): Use new function file_summary.
160
161 2019-02-05 Jakub Jelinek <jakub@redhat.com>
162
163 PR target/89186
164 * optabs.c (prepare_cmp_insn): Pass x and y to
165 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
166
167 2019-02-05 Richard Biener <rguenther@suse.de>
168
169 PR middle-end/89150
170 * bitmap.h (struct bitmap_obstack): Do not mark GTY.
171 (struct bitmap_element): Drop chain_prev so we properly recurse on
172 the prev member, supporting tree views.
173 (struct bitmap_head): GTY skip the obstack member.
174
175 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
176
177 PR c/88698
178 * doc/extend.texi (Vector Extensions): Add an example of using vector
179 types together with x86 intrinsics.
180
181 2019-02-04 Alan Modra <amodra@gmail.com>
182
183 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
184 str[] size to 160, and comment.
185
186 2019-02-04 Alan Modra <amodra@gmail.com>
187
188 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
189 (rs6000_pltseq_template): Guard output of TLS markers with
190 TARGET_TLS_MARKERS.
191 (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
192 (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
193 to use inline PLT sequences.
194 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
195 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
196 (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
197
198 2019-02-04 Martin Liska <mliska@suse.cz>
199
200 PR ipa/88985
201 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
202 out when ipa_fn_summaries does not contain entry for callee.
203
204 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
205
206 * config/sparc/sparc.h: Remove superfluous blank lines.
207 * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
208 (got_register_rtx): ...this.
209 (sparc_got): Adjust to above renaming.
210 (sparc_tls_got): Likewise.
211 (sparc_delegitimize_address): Likewise.
212 (sparc_output_mi_thunk): Likewise.
213 (sparc_init_pic_reg): Likewise.
214 (save_local_or_in_reg_p): Fix test on the GOT register.
215 (USE_HIDDEN_LINKONCE): Move around.
216 (get_pc_thunk_name): Likewise.
217 (gen_load_pcrel_sym): Likewise.
218 (load_got_register): Likewise.
219
220 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
221
222 * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
223 of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
224
225 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
226
227 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
228 into consideration.
229
230 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
231
232 * config.gcc (with_nds32_lib, glibc):
233 Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
234 * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
235 (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
236
237 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
238
239 PR target/89071
240 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
241 Do not prefer (v,v) alternative for non-AVX targets and (m,v)
242 alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
243 (*rcpsf2_sse): Ditto.
244 (*rsqrtsf2_sse): Ditto.
245 (sse4_1_round<mode<2): Ditto.
246
247 2019-02-03 Richard Biener <rguenther@suse.de>
248
249 PR debug/87295
250 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
251 orig.
252
253 2019-02-02 Jakub Jelinek <jakub@redhat.com>
254
255 PR middle-end/87887
256 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
257 Punt with warning on aggregate return or argument types. Ignore
258 type/mode checking for uniform arguments.
259
260 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
261
262 * combine.c (try_combine): Do not print "Can't combine" messages unless
263 printing failed combination attempts.
264
265 2019-02-01 Martin Jambor <mjambor@suse.cz>
266
267 PR hsa/87863
268 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
269 segment and global segment variables before making them static.
270
271 2019-02-01 Martin Jambor <mjambor@suse.cz>
272
273 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
274 missed optimization dump with dump_enabled_p.
275
276 2019-02-01 Richard Biener <rguenther@suse.de>
277
278 PR middle-end/88597
279 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
280 the instantiate cache.
281 (instantiate_scev_binary): Elide second operand procesing
282 if equal to the first.
283 * tree-chrec.c (chrec_contains_symbols): Add visited set.
284 (chrec_contains_undetermined): Likewise.
285 (tree_contains_chrecs): Likewise.
286
287 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
288
289 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
290
291 2019-02-01 Jakub Jelinek <jakub@redhat.com>
292
293 PR tree-optimization/89143
294 * wide-int-range.h (wide_int_range_absu): Declare.
295 * wide-int-range.cc (wide_int_range_absu): New function.
296 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
297
298 PR tree-optimization/88107
299 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
300 instead of assertion that eh_region_outermost is non-NULL, if it
301 is NULL, set *ALL to true and return NULL.
302 (move_sese_region_to_fn): Adjust caller, if all is set, call
303 duplicate_eh_regions with NULL region.
304
305 2019-02-01 Richard Biener <rguenth@suse.de>
306
307 PR rtl-optimization/88593
308 * mode-switching.c (optimize_mode_switching): Free dominators before
309 calling cleanup_cfg.
310
311 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
312
313 PR tree-optimization/88932
314 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
315
316 2019-01-31 Jakub Jelinek <jakub@redhat.com>
317
318 PR middle-end/89137
319 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
320 bogus clang warning.
321
322 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
323
324 PR target/89071
325 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
326 alternative to avoid partial SSE register stall for TARGET_AVX.
327 (truncdfsf2): Ditto.
328 (sse4_1_round<mode>2): Ditto.
329
330 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
331
332 PR tree-optimization/89008
333 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
334 process anything of the form X * 0.
335
336 2019-01-31 Richard Biener <rguenther@suse.de>
337
338 PR tree-optimization/89135
339 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
340 with abnormal preds.
341
342 2019-01-31 Jakub Jelinek <jakub@redhat.com>
343
344 PR sanitizer/89124
345 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
346 always_inline callees into no_sanitize_address callers.
347
348 2019-01-31 Richard Biener <rguenther@suse.de>
349
350 PR rtl-optimization/89115
351 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
352
353 2019-01-30 Martin Sebor <msebor@redhat.com>
354
355 PR other/89106
356 * doc/extend.texi (cast to a union): Correct and expand.
357
358 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
359
360 PR rtl-optimization/87246
361 * lra-constraints.c (simplify_operand_subreg): Reload memory
362 in subreg if the address became invalid.
363
364 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
365
366 PR target/87064
367 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
368 Disable for little-endian.
369
370 2019-01-30 Richard Biener <rguenther@suse.de>
371
372 PR rtl-optimization/89115
373 * opts.c (default_options_optimization): Reduce
374 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
375 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
376 to the default.
377
378 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
379
380 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
381 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
382 type of vector element when vec_extract is implemented by direct
383 move.
384
385 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
386
387 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
388
389 2019-01-30 Richard Biener <rguenther@suse.de>
390
391 PR tree-optimization/89111
392 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
393 canonicalization to appropriately sized access types.
394
395 2019-01-30 Jakub Jelinek <jakub@redhat.com>
396
397 PR c++/89105
398 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
399 for arguments to functions that are TU-local and shouldn't be
400 referenced by assembly.
401
402 2019-01-30 Ulrich Drepper <drepper@redhat.com>
403
404 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
405 after '='.
406
407 2019-01-29 Martin Sebor <msebor@redhat.com>
408
409 PR c/88956
410 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
411
412 2019-01-29 Jakub Jelinek <jakub@redhat.com>
413
414 PR c++/66676
415 PR ipa/89104
416 * omp-simd-clone.c (simd_clone_clauses_extract)
417 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
418 OMP_CLAUSE_ALIGNED_ALIGNMENT.
419
420 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
421
422 * config.gcc: Force .init_array for ARC.
423
424 2019-01-29 Richard Biener <rguenther@suse.de>
425
426 PR debug/87295
427 * dwarf2out.c (collect_skeleton_dies): New helper.
428 (copy_decls_for_unworthy_types): Call it.
429 (build_abbrev_table): Assert we do not try to replace
430 DW_AT_signature refs with local refs.
431
432 2019-01-28 Jakub Jelinek <jakub@redhat.com>
433
434 PR middle-end/89002
435 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
436 for lastprivate/linear IV, push gimplify context around gimplify_assign
437 and, if it needed any temporaries, pop it into a gimple bind around the
438 sequence.
439
440 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
441
442 * common.opt (-Wattribute-alias): Remove "no-" from name.
443 Make -Wattribute-alias command line option and
444 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
445
446 2019-01-28 Jakub Jelinek <jakub@redhat.com>
447
448 PR target/89073
449 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
450 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
451 x86 ISA options.
452 (bmi2): Add missing @opindex.
453 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
454 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
455 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
456 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
457 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
458 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
459 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
460 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
461 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
462 xsavec, xsaveopt and xsaves options.
463
464 2019-01-28 Richard Biener <rguenther@suse.de>
465
466 PR debug/89076
467 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
468 support removal.
469
470 2019-01-28 Richard Biener <rguenther@suse.de>
471
472 PR tree-optimization/88739
473 * tree-cfg.c (verify_types_in_gimple_reference): Verify
474 BIT_FIELD_REFs only are applied to mode-precision operands
475 when they are integral.
476 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
477 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
478 BIT_FIELD_REFs of non-mode-precision integral operands.
479
480 2019-01-27 Jakub Jelinek <jakub@redhat.com>
481
482 PR target/87214
483 * config/i386/sse.md
484 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
485 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
486 first constants in pairs are multiples of 2. Formatting fixes.
487 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
488 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
489 first constants in each quadruple are multiples of 4. Formatting fixes.
490
491 2019-01-26 Martin Jambor <mjambor@suse.cz>
492
493 PR ipa/88933
494 * tree-inline.c: Include tree-cfgcleanup.h.
495 (delete_unreachable_blocks_update_callgraph): Move...
496 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
497 ...here, make externally visible, make second argument bool, adjust
498 all callers.
499 * tree-cfgcleanup.c: Include cgraph.h.
500 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
501 Declare.
502 * ipa-prop.c: Include tree-cfgcleanup.h.
503 (ipcp_transform_function): Call
504 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
505
506 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
507
508 PR rtl-optimization/88846
509 * ira.c (process_set_for_memref_referenced_p): New.
510 (memref_referenced_p): Add new param. Use
511 process_set_for_memref_referenced_p. Add new switch cases.
512 (memref_used_between_p): Pass new arg to memref_referenced_p.
513
514 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
515
516 PR target/88469
517 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
518 argument ABI_BREAK. Set to true if the calculated alignment has
519 changed in gcc-9. Check bit-fields for their base type alignment.
520 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
521 (aarch64_function_arg_boundary): Likewise.
522 (aarch64_gimplify_va_arg_expr): Likewise.
523
524 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
525
526 PR middle-end/89037
527 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
528 instead of accessing TREE_INT_CST_ELT directly.
529
530 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
531
532 * doc/sourcebuild.texi (Environment attributes): Add fenv and
533 fenv_exceptions description.
534
535 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
536
537 PR rtl-optimization/87763
538 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
539 Allow SUBREG when matching CC_NZmode compare.
540
541 2019-01-25 Richard Biener <rguenther@suse.de>
542
543 PR tree-optimization/89049
544 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
545 Look at the pattern stmt to determine if the stmt is vectorized.
546
547 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
548
549 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
550 (pred_mov<mode>): Handle all-register forms using both a new
551 alternative and a split.
552
553 2019-01-25 Richard Biener <rguenther@suse.de>
554
555 PR tree-optimization/86865
556 * graphite-scop-detection.c (scop_detection::can_represent_loop):
557 Reject non-do-while loops.
558
559 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
560
561 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
562 * config/rs6000/constraints.md (Q constraint): Use REG_P.
563 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
564 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
565 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
566 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
567 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
568 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
569 vlogical_operand, gpc_reg_operand, int_reg_operand,
570 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
571 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
572 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
573 (save_world_operation, restore_world_operation, lmw_operation,
574 stmw_operation): Use MEM_P and REG_P.
575 (tie_operand): Use MEM_P.
576 (vrsave_operation, crsave_operation): Use REG_P.
577 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
578 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
579 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
580 (call_operand): Use HARD_REGISTER_P.
581 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
582 Use CONST_INT_P.
583 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
584 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
585 quad_aligned_load_p, replace_swapped_aligned_store,
586 recombine_lvx_pattern, replace_swapped_aligned_load,
587 recombine_stvx_pattern): Use MEM_P.
588 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
589 Use MEM_P and SYMBOL_REF_P.
590 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
591 (insn_is_swappable_p): Use REG_P and MEM_P.
592 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
593 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
594 Use CONST_INT_P.
595 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
596 Use CONST_DOUBLE_P.
597 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
598 CONST_WIDE_INT_P.
599 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
600 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
601 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
602 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
603 reg_or_subregno:
604 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
605 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
606 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
607 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
608 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
609 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
610 rs6000_split_logical_di): Use CONST_INT_P.
611 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
612 REG_P and SYMBOL_REF_P.
613 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
614 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
615 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
616 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
617 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
618 (small_data_operand, print_operand_address): Use CONST_INT_P and
619 SYMBOL_REF_P.
620 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
621 (rs6000_init_hard_regno_mode_ok, direct_move_p):
622 Use HARD_REGISTER_NUM_P.
623 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
624 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
625 SUBREG_P and SYMBOL_REF_P.
626 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
627 and HARD_REGISTER_NUM_P.
628 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
629 reg_or_subregno.
630 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
631 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
632 MEM_P and REG_P.
633 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
634 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
635 find_addr_reg): Use REG_P.
636 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
637 (rs6000_emit_le_vsx_move): Use SUBREG_P.
638 (offsettable_ok_by_alignment, constant_pool_expr_p,
639 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
640 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
641 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
642 rs6000_assemble_integer, create_TOC_reference,
643 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
644 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
645 (rs6000_split_vec_extract_var): Use reg_or_subregno.
646 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
647 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
648 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
649 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
650 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
651 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
652 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
653 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
654 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
655 and cbranch<mode>4): Use CONST_INT_P.
656 (multiple define_splits): Use REG_P and SUBREG_P.
657 (define_expands call, call_value): Use MEM_P.
658 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
659 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
660 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
661 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
662 and HARD_REGISTER_NUM_P.
663 (multiple define_splits): Use HARD_REGISTER_NUM_P.
664
665 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
666
667 PR rtl-optimization/88948
668 * rtl.h (prepare_copy_insn): New prototype.
669 * gcse.c (prepare_copy_insn): New function, split out from
670 process_insert_insn.
671 (process_insert_insn): Use prepare_copy_insn.
672 * store-motion.c (replace_store_insn): Use prepare_copy_insn
673 instead of gen_move_insn.
674
675 2019-01-24 Jakub Jelinek <jakub@redhat.com>
676
677 PR debug/89006
678 * config/i386/i386.c (ix86_pic_register_p): Return true for
679 UNSPEC_SET_GOT too.
680
681 PR tree-optimization/88964
682 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
683 punt if HONOR_SNANS (chrec).
684
685 PR middle-end/89015
686 * tree-nested.c (convert_nonlocal_reference_stmt,
687 convert_local_reference_stmt, convert_tramp_reference_stmt,
688 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
689 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
690 or GIMPLE_OMP_TASK.
691
692 PR tree-optimization/89027
693 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
694 for "omp simd array" variables.
695
696 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
697
698 PR target/88469
699 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
700 force the alignment of m_val.
701
702 2019-01-24 Richard Biener <rguenther@suse.de>
703
704 PR lto/87187
705 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
706 When in "legacy" debug mode make sure to reset self-origins.
707
708 2019-01-24 Martin Liska <mliska@suse.cz>
709
710 PR gcov-profile/88994
711 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
712 result will be always smaller or equal to the original.
713 * gcov.c (mangle_name): Fix else branch where we should
714 also copy to PTR and shift the pointer.
715
716 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
717
718 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
719 * vr-values.c (find_case_label_ranges): Fix a comment typo.
720
721 2019-01-23 Bin Cheng <bin.cheng@arm.com>
722 Steve Ellcey <sellcey@marvell.com>
723
724 PR target/85711
725 * recog.c (address_operand): Return false on wrong mode for address.
726 (constrain_operands): Check for mode with 'p' constraint.
727
728 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
729
730 PR target/88998
731 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
732 Disparage MMX alternative.
733 (sse2_cvtpd2pi): Ditto.
734 (sse2_cvttpd2pi): Ditto.
735
736 2019-01-23 David Malcolm <dmalcolm@redhat.com>
737
738 PR driver/89014
739 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
740 use-after-free of the result of
741 aarch64_get_extension_string_for_isa_flags.
742
743 2019-01-23 Jakub Jelinek <jakub@redhat.com>
744
745 PR c/44715
746 * doc/extend.texi: Document break and continue behavior in
747 statement expressions.
748
749 2019-01-23 Richard Biener <rguenther@suse.de>
750
751 PR tree-optimization/89008
752 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
753 not leave another stray operand.
754
755 2019-01-23 Jakub Jelinek <jakub@redhat.com>
756
757 * BASE-VER: Bump to 9.0.1.
758
759 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
760
761 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
762 thunk that returns by reference, use the type of the return object
763 of the thunk instead of that of the alias to build the dereference.
764
765 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
766
767 * config/arc/atomic.md: Add operand to DMB instruction.
768
769 2019-01-23 Jakub Jelinek <jakub@redhat.com>
770
771 PR tree-optimization/88964
772 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
773 build_zero_cst instead of build_int_cst. Return false for loop
774 invariants which honor signed zeros.
775
776 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
777
778 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
779
780 2019-01-22 Jakub Jelinek <jakub@redhat.com>
781
782 PR target/88965
783 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
784 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
785 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
786
787 PR middle-end/88968
788 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
789 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
790
791 PR target/87064
792 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
793 Disable for little endian.
794
795 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
796
797 PR target/88469
798 * config/arm/arm.c (arm_needs_double_word_align): Check
799 DECL_BIT_FIELD_TYPE.
800
801 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
802 H.J. Lu <hongjiu.lu@intel.com>
803
804 PR target/88909
805 * config/i386/i386-builtin.def: Add mask2 to all builtin
806 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
807 SPECIAL_ARGS.
808 * config/i386/i386.c (BDESC): Add mask2 to the definition.
809 (BDESC_FIRST): Likewise.
810 (define_builtin): Add an argument for mask2. Updated to handle
811 both ix86_isa_flags and ix86_isa_flags2.
812 (define_builtin_const): Likewise.
813 (define_builtin_pure): Likewise.
814 (define_builtin2): Deleted.
815 (define_builtin_const2): Likewise.
816 (builtin_description): Add a member, mask2.
817 (bdesc_*): Add mask2 to builtin initializations.
818 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
819 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
820 support.
821 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
822
823 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
824
825 PR target/88954
826 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
827 noplt attribute.
828
829 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
830
831 PR target/88469
832 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
833 alignment is dominated by a bitfield with 64-bit aligned base type.
834 (arm_function_arg): Emit a warning if the alignment has changed since
835 earlier GCC releases.
836 (arm_function_arg_boundary): Likewise.
837 (arm_setup_incoming_varargs): Likewise.
838
839 2019-01-22 Richard Biener <rguenther@suse.de>
840
841 PR tree-optimization/88862
842 * graphite-scop-detection.c
843 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
844
845 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
846
847 * doc/extend.tex (AMD GCN Function Attributes): New section.
848 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
849 * doc/invoke.texi (AMD GCN Options): New section.
850 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
851
852 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
853
854 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
855 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
856
857 2019-01-22 Jakub Jelinek <jakub@redhat.com>
858
859 PR tree-optimization/88044
860 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
861 is false in the first iteration, but !every_iteration, return false
862 instead of true with niter->niter zero.
863
864 PR rtl-optimization/88904
865 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
866 any nonequal registers before processing BB_END (b).
867
868 PR target/88905
869 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
870 GET_MODE (op0).
871 (expand_binop_directly, expand_doubleword_clz,
872 expand_doubleword_popcount, expand_ctz, expand_ffs,
873 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
874
875 PR rtl-optimization/49429
876 PR target/49454
877 PR rtl-optimization/86334
878 PR target/88906
879 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
880 addressable from here...
881 (emit_block_op_via_libcall): ... to here.
882
883 2019-01-22 Richard Biener <rguenther@suse.de>
884
885 * tree-vect-loop.c (vect_analyze_loop_operations): Use
886 auto_vec for cost vector to fix memleak.
887 (vectorize_fold_left_reduction): Properly gather SLP defs.
888 (vectorizable_comparison): Do not swap operands to properly
889 gather SLP defs.
890
891 2019-01-22 Alan Modra <amodra@gmail.com>
892
893 PR target/88614
894 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
895 stays a reg. Allow a const_int.
896 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
897 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
898 (IS_NOMARK_TLSGETADDR): Define.
899 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
900 (rs6000_output_tlsargs): New function.
901 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
902 __tls_get_addr call takes an arg.
903 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
904 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
905 delete split..
906 (call_value_nonlocal_sysv): ..or here, delete split.
907 (tls_gdld_nomark): Delete.
908 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
909 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
910 (call_value_nonlocal_sysv): Likewise.
911 (call_value_nonlocal_sysv_secure): Likewise.
912 (call_value_nonlocal_aix): Likewise.
913 (call_value_indirect_aix): Likewise.
914 (call_value_indirect_elfv2): Likewise.
915 (call_value_local32, call_value_local64): Disable for no-mark tls.
916 (call_value_local_aix): Likewise.
917
918 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
919
920 PR target/88938
921 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
922 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
923
924 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
925
926 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
927 string contents as hash_map keys.
928
929 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
930
931 PR c/88928
932 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
933 for rvalue context. Handle rvalues correctly. Use min_align_of_type
934 instead of TYPE_ALIGN.
935 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
936 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
937 pointer from TYPE_STUB_DECL.
938
939 2019-01-21 Richard Biener <rguenther@suse.de>
940
941 PR tree-optimization/88934
942 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
943 at the possibly non-constant operand.
944 (vect_get_constant_vectors): Adjust.
945
946 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
947
948 PR target/71659
949 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
950 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
951 instead of _X86INTRIN_H_INCLUDED.
952 * onfig/i386/clwbintrin.h: Likewise.
953 * config/i386/pkuintrin.h: Likewise.
954 * config/i386/prfchwintrin.h: Likewise.
955 * config/i386/rdseedintrin.h: Likewise.
956 * config/i386/wbnoinvdintrin.h: Likewise.
957 * config/i386/xsavecintrin.h: Likewise.
958 * config/i386/xsavesintrin.h: Likewise.
959 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
960 * config/i386/xsaveintrin.h: Likewise.
961 * config/i386/xsaveoptintrin.h: Likewise.
962 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
963 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
964 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
965 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
966 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
967 * config/i386/immintrin.h: Here.
968
969 2019-01-20 Martin Jambor <mjambor@suse.cz>
970
971 PR ipa/87615
972 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
973 with aa_walk_budget.
974 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
975 aa_walk_budget_p parameter.
976 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
977 walk. Updated all callers.
978 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
979 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
980 unmodified_parm.
981 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
982 parameter info. Extract info from fbi. Pass fbi to recursive calls
983 and to unmodified_parm.
984 (phi_result_unknown_predicate): New parameter fbi, removed parameter
985 info, updated call to will_be_nonconstant_expr_predicate.
986 (param_change_prob): New parameter fbi, limit AA walking.
987 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
988 calls to various above functions.
989 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
990 parameter. Use it to limit AA walking.
991 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
992 fbi, limit AA walk.
993 (detect_type_change): New parameter fbi, pass it on to
994 detect_type_change_from_memory_writes.
995 (detect_type_change_ssa): Likewise.
996 (aa_overwalked): Removed.
997 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
998 accordingly, adjust to the neew AA limiting scheme.
999 (parm_ref_data_preserved_p): Likewise.
1000 (ipa_compute_jump_functions_for_edge): Adjust call to
1001 get_dynamic_type.
1002 (ipa_analyze_call_uses): Likewise.
1003 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
1004 (ipa_analyze_node): Initialize aa_walk_budget.
1005 (ipcp_transform_function): Likewise.
1006 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
1007 to get_dynamic_type.
1008
1009 2019-01-19 Jakub Jelinek <jakub@redhat.com>
1010
1011 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
1012 outside of #if CHECKING_P code.
1013
1014 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
1015
1016 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
1017 New function, split out from...
1018 (loop_versioning::analyze_stride): ...here.
1019 (loop_versioning::find_per_loop_multiplication): Use gassign.
1020 (loop_versioning::analyze_term_using_scevs): Return a success code.
1021 (loop_versioning::analyze_arbitrary_term): New function.
1022 (loop_versioning::analyze_address_fragment): Use
1023 analyze_arbitrary_term if all else fails.
1024
1025 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
1026
1027 PR target/88892
1028 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
1029 operands.
1030
1031 2019-01-18 Richard Biener <rguenther@suse.de>
1032
1033 PR tree-optimization/88903
1034 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
1035 scalar stmts a SLP shift amount is composed of when detecting
1036 shifts by scalars.
1037
1038 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
1039
1040 PR target/88799
1041 * config/arm/arm-cpus.in (mp): New feature.
1042 (sec): New feature.
1043 (fgroup ARMv7ve): Add mp and sec features.
1044 (arch armv7-a): Add options to allow mp and sec extensions.
1045 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
1046 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
1047 extenstions to the base architecture.
1048 (cpu cortex-a8): Add sec extension to the base architecture.
1049 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
1050 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
1051 variants down to the base v7-a varaint.
1052 * config/arm/t-multilib (v7_a_arch_variants): New variable.
1053 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
1054 of permitted extensions for -march=armv7-a and for
1055 -mcpu=generic-armv7-a.
1056
1057 2019-01-18 Martin Liska <mliska@suse.cz>
1058
1059 * params.def: Fix comment.
1060 * tree-profile.c (gimple_init_gcov_profiler): Bump function
1061 name.
1062 (gimple_gen_ic_func_profiler): Likewise.
1063
1064 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1065
1066 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
1067 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
1068 and put in error checks for stack protector guard options.
1069 (aarch64_stack_protect_guard): New.
1070 (TARGET_STACK_PROTECT_GUARD): Define.
1071 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
1072 (reg_stack_protect_address<mode>): New.
1073 (stack_protect_set): Adjust for SSP_GLOBAL.
1074 (stack_protect_test): Likewise.
1075 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
1076 (-mstack-protector-guard): Likewise.
1077 (-mstack-protector-guard-offset): Likewise.
1078
1079 2019-01-18 Jakub Jelinek <jakub@redhat.com>
1080
1081 PR tree-optimization/86214
1082 * tree-inline.h (struct copy_body_data): Add
1083 add_clobbers_to_eh_landing_pads member.
1084 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
1085 (copy_edges_for_bb): Call it if EH edge destination is <
1086 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
1087 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
1088 if flag_stack_reuse != SR_NONE and clear it afterwards.
1089
1090 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
1091
1092 PR target/85596
1093 * doc/install.texi (with-multilib-list): Document for aarch64.
1094
1095 2019-01-18 Jakub Jelinek <jakub@redhat.com>
1096
1097 PR target/88734
1098 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
1099 (("..."))) with ("...").
1100
1101 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
1102
1103 * doc/extend.texi (Built-in Functions for Memory Model Aware
1104 Atomic Operations): Document atomic fetch and nand.
1105
1106 2019-01-18 Martin Liska <mliska@suse.cz>
1107 Richard Biener <rguenther@suse.de>
1108
1109 PR middle-end/88587
1110 * cgraph.h (create_version_clone_with_body): Add new argument
1111 with attributes.
1112 * cgraphclones.c (cgraph_node::create_version_clone): Add
1113 DECL_ATTRIBUTES to a newly created decl. And call
1114 valid_attribute_p so that proper cl_target_optimization_node
1115 is set for the newly created declaration.
1116 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
1117 for declaration.
1118 (expand_target_clones): Do not call valid_attribute_p, it must
1119 be already done.
1120 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
1121 vector types.
1122
1123 2019-01-17 Jakub Jelinek <jakub@redhat.com>
1124
1125 PR target/88734
1126 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
1127 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
1128 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
1129
1130 2019-01-17 Martin Sebor <msebor@redhat.com>
1131
1132 PR middle-end/88273
1133 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
1134 Handle anti-ranges the same as no range at all.
1135
1136 2018-01-17 Steve Ellcey <sellcey@cavium.com>
1137
1138 * config/aarch64/aarch64.c (cgraph.h): New include.
1139 (intl.h): New include.
1140 (supported_simd_type): New function.
1141 (currently_supported_simd_type): Ditto.
1142 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
1143 (aarch64_simd_clone_adjust): Ditto.
1144 (aarch64_simd_clone_usable): Ditto.
1145 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
1146 (TARGET_SIMD_CLONE_ADJUST): Ditto.
1147 (TARGET_SIMD_CLONE_USABLE): Ditto.
1148 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
1149 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
1150 call.
1151
1152 2019-01-17 Martin Sebor <msebor@redhat.com>
1153
1154 PR tree-optimization/88800
1155 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
1156 NO_WARNING bit here. Avoid folding out-of-bounds calls.
1157 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
1158 redundant argument. Add new argument and issue diagnostics under
1159 its control. Detect out-of-bounds access even with warnings
1160 disabled.
1161 (check_bounds_or_overlap): Change return type. Add argument.
1162 (wrestrict_dom_walker::check_call): Adjust.
1163 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
1164 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
1165 check_bounds_or_overlap's return value.
1166 (handle_builtin_stxncpy): Same.
1167 (handle_builtin_strcat): Same.
1168
1169 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
1170 Kwok Cheung Yeung <kcy@codesourcery.com>
1171 Julian Brown <julian@codesourcery.com>
1172 Tom de Vries <tom@codesourcery.com>
1173
1174 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
1175
1176 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
1177
1178 * doc/sourcebuild.texi: Document dg-require-effective-target
1179 llvm_binutils and offload_gcn.
1180
1181 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
1182 Kwok Cheung Yeung <kcy@codesourcery.com>
1183 Julian Brown <julian@codesourcery.com>
1184 Tom de Vries <tom@codesourcery.com>
1185
1186 * doc/sourcebuild.texi: Document dg-required-effective-target
1187 exceptions.
1188
1189 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
1190 Kwok Cheung Yeung <kcy@codesourcery.com>
1191 Julian Brown <julian@codesourcery.com>
1192 Tom de Vries <tom@codesourcery.com>
1193 Jan Hubicka <hubicka@ucw.cz>
1194 Martin Jambor <mjambor@suse.cz>
1195
1196 * config.gcc: Add amdgcn*-*-amdhsa configuration.
1197 * configure.ac: Check for dlopen.
1198 * configure: Regenerate.
1199
1200 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
1201 Kwok Cheung Yeung <kcy@codesourcery.com>
1202 Julian Brown <julian@codesourcery.com>
1203 Tom de Vries <tom@codesourcery.com>
1204 Jan Hubicka <hubicka@ucw.cz>
1205 Martin Jambor <mjambor@suse.cz>
1206
1207 * common/config/gcn/gcn-common.c: New file.
1208 * config/gcn/driver-gcn.c: New file.
1209 * config/gcn/gcn-builtins.def: New file.
1210 * config/gcn/gcn-hsa.h: New file.
1211 * config/gcn/gcn-modes.def: New file.
1212 * config/gcn/gcn-opts.h: New file.
1213 * config/gcn/gcn-passes.def: New file.
1214 * config/gcn/gcn-protos.h: New file.
1215 * config/gcn/gcn-run.c: New file.
1216 * config/gcn/gcn-tree.c: New file.
1217 * config/gcn/gcn.c: New file.
1218 * config/gcn/gcn.h: New file.
1219 * config/gcn/gcn.opt: New file.
1220 * config/gcn/t-gcn-hsa: New file.
1221
1222 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
1223 Kwok Cheung Yeung <kcy@codesourcery.com>
1224 Julian Brown <julian@codesourcery.com>
1225 Tom de Vries <tom@codesourcery.com>
1226 Jan Hubicka <hubicka@ucw.cz>
1227 Martin Jambor <mjambor@suse.cz>
1228
1229 * config/gcn/constraints.md: New file.
1230 * config/gcn/gcn-valu.md: New file.
1231 * config/gcn/gcn.md: New file.
1232 * config/gcn/predicates.md: New file.
1233
1234 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
1235
1236 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
1237 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
1238 (stmt_uses_0_or_null_in_undefined_way): Likewise.
1239 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
1240
1241 2019-01-17 Tamar Christina <tamar.christina@arm.com>
1242
1243 PR target/88851
1244 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
1245 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
1246 it and document registers.
1247
1248 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1249
1250 * config/aarch64/aarch64.c (ares_tunings): Define.
1251 * config/aarch64/aarch64-cores.def (ares): Use the above.
1252
1253 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
1254
1255 PR target/88794
1256 Revert:
1257 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
1258
1259 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
1260 (_mm512_fixupimm_round_pd): Update parameters and builtin.
1261 (_mm512_maskz_fixupimm_round_pd): Ditto.
1262 (_mm512_fixupimm_round_ps): Ditto.
1263 (_mm512_maskz_fixupimm_round_ps): Ditto.
1264 (_mm_fixupimm_round_sd): Ditto.
1265 (_mm_maskz_fixupimm_round_sd): Ditto.
1266 (_mm_fixupimm_round_ss): Ditto.
1267 (_mm_maskz_fixupimm_round_ss): Ditto.
1268 (_mm512_fixupimm_pd): Ditto.
1269 (_mm512_maskz_fixupimm_pd): Ditto.
1270 (_mm512_fixupimm_ps): Ditto.
1271 (_mm512_maskz_fixupimm_ps): Ditto.
1272 (_mm_fixupimm_sd): Ditto.
1273 (_mm_maskz_fixupimm_sd): Ditto.
1274 (_mm_fixupimm_ss): Ditto.
1275 (_mm_maskz_fixupimm_ss): Ditto.
1276 (_mm512_mask_fixupimm_round_pd): Update builtin.
1277 (_mm512_mask_fixupimm_round_ps): Ditto.
1278 (_mm_mask_fixupimm_round_sd): Ditto.
1279 (_mm_mask_fixupimm_round_ss): Ditto.
1280 (_mm512_mask_fixupimm_pd): Ditto.
1281 (_mm512_mask_fixupimm_ps): Ditto.
1282 (_mm_mask_fixupimm_sd): Ditto.
1283 (_mm_mask_fixupimm_ss): Ditto.
1284 * config/i386/avx512vlintrin.h:
1285 (_mm256_fixupimm_pd): Update parameters and builtin.
1286 (_mm256_maskz_fixupimm_pd): Ditto.
1287 (_mm256_fixupimm_ps): Ditto.
1288 (_mm256_maskz_fixupimm_ps): Ditto.
1289 (_mm_fixupimm_pd): Ditto.
1290 (_mm_maskz_fixupimm_pd): Ditto.
1291 (_mm_fixupimm_ps): Ditto.
1292 (_mm_maskz_fixupimm_ps): Ditto.
1293 (_mm256_mask_fixupimm_pd): Update builtin.
1294 (_mm256_mask_fixupimm_ps): Ditto.
1295 (_mm_mask_fixupimm_pd): Ditto.
1296 (_mm_mask_fixupimm_ps): Ditto.
1297 * config/i386/i386-builtin-types.def: Add new types and remove useless ones.
1298 * config/i386/i386-builtin.def: Update builtin definitions.
1299 * config/i386/i386.c: Handle new builtin types and remove useless ones.
1300 * config/i386/sse.md: Update VFIXUPIMM* patterns.
1301 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
1302 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
1303 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
1304 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
1305 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
1306 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
1307 * config/i386/subst.md:
1308 (round_saeonly_sd_mask_operand4): Add new subst_attr.
1309 (round_saeonly_sd_mask_op4): Ditto.
1310 (round_saeonly_expand_operand5): Ditto.
1311 (round_saeonly_expand): Update.
1312
1313 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
1314
1315 PR target/88794
1316 Revert:
1317 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
1318
1319 * config/i386/sse.md: Combine VFIXUPIMM* patterns
1320 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
1321 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
1322 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
1323 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
1324 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
1325 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
1326
1327 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
1328
1329 PR target/88794
1330 Revert:
1331 2018-12-15 Jakub Jelinek <jakub@redhat.com>
1332
1333 PR target/88489
1334 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
1335 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
1336 instead of UNSPEC_FIXUPIMM.
1337
1338 2019-01-17 Richard Biener <rguenther@suse.de>
1339
1340 PR lto/86736
1341 * dwarf2out.c (want_pubnames): Never generate pubnames sections
1342 and friends for the LTO part of debug info.
1343
1344 2019-01-17 Jakub Jelinek <jakub@redhat.com>
1345
1346 PR tree-optimization/86214
1347 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
1348 if x == y.
1349
1350 PR rtl-optimization/88870
1351 * dce.c (deletable_insn_p): Never delete const/pure calls that can
1352 throw if we can't alter the cfg or delete dead exceptions.
1353 (mark_insn): Don't call find_call_stack_args for such calls.
1354
1355 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
1356
1357 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
1358 prototypes for vec_st.
1359 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
1360 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
1361 mainly on signed/unsigned long long and double.
1362
1363 2019-01-16 David Malcolm <dmalcolm@redhat.com>
1364
1365 PR target/88861
1366 * combine.c (delete_noop_moves): Convert to "bool" return,
1367 returning true if any edges are eliminated.
1368 (combine_instructions): Also return true if delete_noop_moves
1369 returns true.
1370
1371 2019-01-16 Tamar Christina <tamar.christina@arm.com>
1372
1373 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
1374 correct max nunits for endian swap.
1375 (aarch64_expand_fcmla_builtin): Correct subreg code.
1376 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
1377 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
1378 lane endianness.
1379
1380 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
1381
1382 * config/alpha/alpha.c (alpha_gimplify_va_arg):
1383 Handle split indirect COMPLEX_TYPE arguments.
1384
1385 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
1386
1387 PR target/86891
1388 * config/aarch64/aarch64-modes.def: Add comment about how the carry
1389 bit is set by add and compare.
1390 (CC_ADC): New CC_MODE.
1391 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
1392 to cache the code and mode of X. Adjust the shape of a CC_Cmode
1393 comparison. Add detection for CC_ADCmode.
1394 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
1395 CC_ADCmode.
1396 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
1397 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
1398 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
1399 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
1400 to eliminate the need for zero-extending the operands.
1401 (add<mode>3_compareC_imm): Delete. Merge into ...
1402 (add<mode>3_compareC): ... this. Restructure the comparison to
1403 eliminate the need for zero-extending the operands.
1404 (add<mode>3_carryin): Use LTU for the overflow detection.
1405 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
1406 Reexpress comparison for overflow.
1407 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
1408 (add<mode>3_carryinC): Likewise.
1409 (add<mode>3_carryinV): Use LTU for carry between partials.
1410 * config/aarch64/predicates.md (aarch64_carry_operation): Update
1411 handling of CC_Cmode and add CC_ADCmode.
1412 (aarch64_borrow_operation): Likewise.
1413
1414 2019-01-16 Tamar Christina <tamar.christina@arm.com>
1415
1416 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
1417 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
1418 * config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
1419 neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
1420
1421 2019-01-16 Martin Liska <mliska@suse.cz>
1422
1423 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
1424 for GCC driver.
1425 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
1426 a new argument.
1427 * gcc.c (add_sysrooted_hdrs_prefix): New function.
1428 (path_prefix_reset): Move up in the source file.
1429 (find_fortran_preinclude_file): Make complex search for the
1430 fortran header files.
1431
1432 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
1433
1434 * godump.c (go_output_typedef): When outputting a typedef, refer
1435 to the underlying type by its name and not its structure.
1436
1437 2019-01-15 David Malcolm <dmalcolm@redhat.com>
1438
1439 PR c++/88795
1440 * tree.c (build_function_type): Assert that arg_types is not
1441 error_mark_node.
1442
1443 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
1444
1445 PR inline-asm/52813
1446 * doc/extend.texi: Document that listing the stack pointer in the
1447 clobber list of an asm is a deprecated feature.
1448 * common.opt (Wdeprecated): Moved from c-family/c.opt.
1449 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
1450 warning instead of an error for clobbers of the stack pointer.
1451 Add a note explaining why.
1452
1453 2019-01-15 Richard Biener <rguenther@suse.de>
1454
1455 PR debug/88046
1456 * dwarf2out.c (gen_member_die): Do not generate inheritance
1457 DIEs late.
1458
1459 2019-01-15 Richard Biener <rguenther@suse.de>
1460
1461 PR tree-optimization/88855
1462 * tree-if-conv.c (combine_blocks): Collect
1463 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
1464
1465 2019-01-15 Tom de Vries <tdevries@suse.de>
1466
1467 PR target/80547
1468 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
1469 lhs == NULL_TREE for gang-level reduction.
1470
1471 2019-01-15 Richard Biener <rguenther@suse.de>
1472 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1473
1474 PR ipa/88788
1475 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
1476 return true if SSA_NAME is already marked in visited bitmap.
1477 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
1478
1479 2019-01-15 Jakub Jelinek <jakub@redhat.com>
1480
1481 PR tree-optimization/88775
1482 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
1483 equal == 0 equality pointer comparisons some more if compared in
1484 integral types and either one points to an automatic var and the
1485 other to a global, or we can prove at least one points to the middle
1486 or both point to start or both point to end.
1487
1488 2019-01-14 Andi Kleen <ak@linux.intel.com>
1489
1490 * Makefile.in: Lower autofdo sampling rate by 10x.
1491 * Makefile.tpl: Dito.
1492
1493 2019-01-14 Tom Honermann <tom@honermann.net>
1494
1495 * defaults.h: Define CHAR8_TYPE.
1496
1497 2019-01-14 Martin Sebor <msebor@redhat.com>
1498
1499 PR target/88638
1500 * doc/extend.texi (Darwin Format Checks): Clarify.
1501
1502 2019-01-14 Richard Biener <rguenther@suse.de>
1503
1504 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
1505 whether we are in (simplify ...) or (match ...) context.
1506
1507 2019-01-14 Jakub Jelinek <jakub@redhat.com>
1508
1509 PR rtl-optimization/88796
1510 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
1511 * cfgexpand.c (stack_protect_prologue): Initialize
1512 crtl->stack_protect_guard_decl.
1513 * function.c (stack_protect_epilogue): Use it instead of calling
1514 targetm.stack_protect_guard again.
1515 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
1516 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
1517 crtl->stack_protect_guard_decl.
1518 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
1519 on the returned MEM_EXPR.
1520
1521 2019-01-12 Tom de Vries <tdevries@suse.de>
1522
1523 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
1524 vector length using -fopenacc-dim.
1525
1526 2019-01-12 Tom de Vries <tdevries@suse.de>
1527
1528 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
1529 lengths into account.
1530
1531 2019-01-12 Svante Signell <svante.signell@gmail.com>
1532
1533 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
1534 (TARGET_CAN_SPLIT_STACK): Define.
1535 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
1536
1537 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
1538
1539 * params.def (inline-unit-growth): Set to 40.
1540
1541 2019-01-12 Jakub Jelinek <jakub@redhat.com>
1542
1543 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
1544
1545 2019-01-12 Tom de Vries <tdevries@suse.de>
1546
1547 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
1548 region calling vector-partitionable routine, set default_vector_length
1549 to WARP_SIZE.
1550
1551 2019-01-12 Tom de Vries <tdevries@suse.de>
1552
1553 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
1554 variable default_vector_length.
1555
1556 2019-01-12 Tom de Vries <tdevries@suse.de>
1557
1558 PR middle-end/88703
1559 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
1560 from oacc_default_dims, as oacc_validate_dims would do it, and apply
1561 dimensions limits.
1562
1563 2019-01-12 Tom de Vries <tdevries@suse.de>
1564
1565 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
1566 (nvptx_goacc_validate_dims): Add used parameter.
1567 * doc/tm.texi: Regenerate.
1568 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
1569 argument to call to targetm.goacc.validate_dims.
1570 (default_goacc_validate_dims): Add used
1571 parameter.
1572 * target.def (validate_dims): Add used parameter in DEFHOOK.
1573 * targhooks.h (default_goacc_validate_dims): Add used parameter.
1574
1575 2019-01-11 Jakub Jelinek <jakub@redhat.com>
1576
1577 PR middle-end/85956
1578 PR lto/88733
1579 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
1580 field.
1581 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
1582 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
1583 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
1584 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
1585
1586 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
1587
1588 PR rtl-optimization/87305
1589 * lra-assigns.c
1590 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
1591 for little endian pseudos used as paradoxical subreg.
1592
1593 2019-01-11 Jakub Jelinek <jakub@redhat.com>
1594
1595 PR tree-optimization/88693
1596 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
1597 for STRING_CSTs that don't contain any NUL characters in the first
1598 TREE_STRING_LENGTH bytes.
1599
1600 2019-01-11 Alan Modra <amodra@gmail.com>
1601
1602 PR 88777
1603 PR 88614
1604 * genattrtab.c (min_fn): Don't translate values.
1605 (min_attr_value): Return INT_MAX when the value can't be calculated.
1606 Return minimum among any values that can be calculated.
1607 (max_attr_value): Adjust.
1608
1609 2019-01-11 Jakub Jelinek <jakub@redhat.com>
1610
1611 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
1612
1613 2019-01-11 Steve Ellcey <sellcey@marvell.com>
1614
1615 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
1616 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
1617 (aarch64_return_call_with_max_clobbers): New function.
1618 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
1619 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
1620 argument.
1621 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
1622 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
1623 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
1624 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
1625 * cselib.c (cselib_process_insn): Add argument to
1626 targetm.hard_regno_call_part_clobbered call.
1627 * ira-conflicts.c (ira_build_conflicts): Ditto.
1628 * ira-costs.c (ira_tune_allocno_costs): Ditto.
1629 * lra-constraints.c (inherit_reload_reg): Ditto.
1630 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
1631 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
1632 argument. Call targetm.return_call_with_max_clobbers.
1633 Add argument to targetm.hard_regno_call_part_clobbered call.
1634 (calls_have_same_clobbers_p): New function.
1635 (process_bb_lives): Add call_insn and last_call_insn variables.
1636 Pass call_insn to check_pseudos_live_through_calls.
1637 Modify if stmt to check targetm.return_call_with_max_clobbers.
1638 Update setting of flush variable.
1639 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
1640 to false.
1641 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
1642 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
1643 targetm.hard_regno_call_part_clobbered call.
1644 * reginfo.c (choose_hard_reg_mode): Ditto.
1645 * regrename.c (check_new_reg_p): Ditto.
1646 * reload.c (find_equiv_reg): Ditto.
1647 * reload1.c (emit_reload_insns): Ditto.
1648 * sched-deps.c (deps_analyze_insn): Ditto.
1649 * sel-sched.c (init_regs_for_mode): Ditto.
1650 (mark_unavailable_hard_regs): Ditto.
1651 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
1652 * target.def (hard_regno_call_part_clobbered): Add insn argument.
1653 (return_call_with_max_clobbers): New target function.
1654 * doc/tm.texi: Regenerate.
1655 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
1656 * hooks.c (hook_bool_uint_mode_false): Change to
1657 hook_bool_insn_uint_mode_false.
1658 * hooks.h (hook_bool_uint_mode_false): Ditto.
1659
1660 2019-01-11 Steve Ellcey <sellcey@marvell.com>
1661
1662 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
1663 (aarch64_remove_extra_call_preserved_regs): New function.
1664 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
1665 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
1666 * doc/tm.texi: Regenerate.
1667 * final.c (get_call_reg_set_usage): Call new hook.
1668 * target.def (remove_extra_call_preserved_regs): New hook.
1669 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
1670 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
1671
1672 2019-01-11 Jakub Jelinek <jakub@redhat.com>
1673
1674 PR bootstrap/88714
1675 * passes.c (finish_optimization_passes): Call print_combine_total_stats
1676 inside of pass_combine_1 dump rather than pass_profile_1.
1677
1678 2019-01-11 Tom de Vries <tdevries@suse.de>
1679
1680 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
1681 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
1682 (PTX_NUM_PER_WORKER_BARRIERS): Define.
1683 (nvptx_apply_dim_limits): Prevent vector_length 64 and
1684 num_workers 16.
1685
1686 2019-01-11 Tom de Vries <tdevries@suse.de>
1687
1688 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
1689
1690 2019-01-11 Jan Beulich <jbeulich@suse.com>
1691
1692 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
1693 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
1694 sse2_cvtsi2sd): Add {l}.
1695 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
1696 syntax.
1697
1698 2019-01-10 Jakub Jelinek <jakub@redhat.com>
1699
1700 PR target/88785
1701 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
1702 define_expand.
1703 (*float<floatunssuffix>v2div2sf2): New define_insn.
1704 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
1705 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
1706 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
1707 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
1708 match_operands with "const0_operand" "C".
1709
1710 2019-01-10 Tamar Christina <tamar.christina@arm.com>
1711
1712 * config/aarch64/aarch64-builtins.c
1713 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
1714 (aarch64_init_simd_builtins): ...Here
1715
1716 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
1717
1718 PR rtl-optimization/87305
1719 * lra-assigns.c
1720 (setup_live_pseudos_and_spill_after_risky_transforms): Check
1721 allocation for big endian pseudos used as paradoxical subregs and
1722 spill them if it is wrong.
1723 * lra-constraints.c (lra_constraints): Add a comment.
1724
1725 2019-01-10 Richard Biener <rguenther@suse.de>
1726
1727 PR tree-optimization/88792
1728 * tree-ssa-pre.c (get_representative_for): Do not return a
1729 value-number here.
1730
1731 2019-01-10 Jakub Jelinek <jakub@redhat.com>
1732
1733 PR middle-end/84877
1734 PR bootstrap/88450
1735 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
1736 (assign_parm_setup_block): Do the argument slot realignment here
1737 instead.
1738
1739 2019-01-10 Stefan Agner <stefan@agner.ch>
1740
1741 PR target/88648
1742 * config/arm/arm.c (arm_option_override_internal): Force
1743 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
1744
1745 2019-01-10 Jakub Jelinek <jakub@redhat.com>
1746
1747 PR c/88568
1748 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
1749 DECL_EXTERNAL.
1750
1751 2019-01-10 Tamar Christina <tamar.christina@arm.com>
1752
1753 * config/arm/arm-builtins.c
1754 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
1755 (MAC_LANE_PAIR_QUALIFIERS): New.
1756 (arm_expand_builtin_args): Use it.
1757 (arm_expand_builtin_1): Likewise.
1758 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
1759 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
1760 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
1761 * config/arm/arm_neon.h:
1762 (vcadd_rot90_f16): New.
1763 (vcaddq_rot90_f16): New.
1764 (vcadd_rot270_f16): New.
1765 (vcaddq_rot270_f16): New.
1766 (vcmla_f16): New.
1767 (vcmlaq_f16): New.
1768 (vcmla_lane_f16): New.
1769 (vcmla_laneq_f16): New.
1770 (vcmlaq_lane_f16): New.
1771 (vcmlaq_laneq_f16): New.
1772 (vcmla_rot90_f16): New.
1773 (vcmlaq_rot90_f16): New.
1774 (vcmla_rot90_lane_f16): New.
1775 (vcmla_rot90_laneq_f16): New.
1776 (vcmlaq_rot90_lane_f16): New.
1777 (vcmlaq_rot90_laneq_f16): New.
1778 (vcmla_rot180_f16): New.
1779 (vcmlaq_rot180_f16): New.
1780 (vcmla_rot180_lane_f16): New.
1781 (vcmla_rot180_laneq_f16): New.
1782 (vcmlaq_rot180_lane_f16): New.
1783 (vcmlaq_rot180_laneq_f16): New.
1784 (vcmla_rot270_f16): New.
1785 (vcmlaq_rot270_f16): New.
1786 (vcmla_rot270_lane_f16): New.
1787 (vcmla_rot270_laneq_f16): New.
1788 (vcmlaq_rot270_lane_f16): New.
1789 (vcmlaq_rot270_laneq_f16): New.
1790 (vcadd_rot90_f32): New.
1791 (vcaddq_rot90_f32): New.
1792 (vcadd_rot270_f32): New.
1793 (vcaddq_rot270_f32): New.
1794 (vcmla_f32): New.
1795 (vcmlaq_f32): New.
1796 (vcmla_lane_f32): New.
1797 (vcmla_laneq_f32): New.
1798 (vcmlaq_lane_f32): New.
1799 (vcmlaq_laneq_f32): New.
1800 (vcmla_rot90_f32): New.
1801 (vcmlaq_rot90_f32): New.
1802 (vcmla_rot90_lane_f32): New.
1803 (vcmla_rot90_laneq_f32): New.
1804 (vcmlaq_rot90_lane_f32): New.
1805 (vcmlaq_rot90_laneq_f32): New.
1806 (vcmla_rot180_f32): New.
1807 (vcmlaq_rot180_f32): New.
1808 (vcmla_rot180_lane_f32): New.
1809 (vcmla_rot180_laneq_f32): New.
1810 (vcmlaq_rot180_lane_f32): New.
1811 (vcmlaq_rot180_laneq_f32): New.
1812 (vcmla_rot270_f32): New.
1813 (vcmlaq_rot270_f32): New.
1814 (vcmla_rot270_lane_f32): New.
1815 (vcmla_rot270_laneq_f32): New.
1816 (vcmlaq_rot270_lane_f32): New.
1817 (vcmlaq_rot270_laneq_f32): New.
1818 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
1819 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180, vcmla_lane270,
1820 vcmla_laneq0, vcmla_laneq90, vcmla_laneq180, vcmla_laneq270,
1821 vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180, vcmlaq_lane270): New.
1822 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
1823 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
1824 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
1825 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
1826 (arm_option_reconfigure_globals): Use them.
1827 * config/arm/iterators.md (VDF, VQ_HSF): New.
1828 (VCADD, VCMLA): New.
1829 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
1830 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>): New.
1831 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
1832 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
1833
1834 2019-01-10 Tamar Christina <tamar.christina@arm.com>
1835
1836 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_lane_pair_index.
1837 (emit-rtl.h): Include.
1838 (TYPES_QUADOP_LANE_PAIR): New.
1839 (aarch64_simd_expand_args): Use it.
1840 (aarch64_simd_expand_builtin): Likewise.
1841 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): New.
1842 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
1843 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
1844 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
1845 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
1846 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
1847 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
1848 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
1849 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
1850 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
1851 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
1852 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add __ARM_FEATURE_COMPLEX.
1853 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0, fcmla90,
1854 fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, fcmla_lane270,
1855 fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, fcmla_laneq270,
1856 fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, fcmlaq_lane270): New.
1857 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
1858 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,aarch64_fcadd<rot><mode>,
1859 aarch64_fcmla<rot><mode>): New.
1860 * config/aarch64/arm_neon.h:
1861 (vcadd_rot90_f16): New.
1862 (vcaddq_rot90_f16): New.
1863 (vcadd_rot270_f16): New.
1864 (vcaddq_rot270_f16): New.
1865 (vcmla_f16): New.
1866 (vcmlaq_f16): New.
1867 (vcmla_lane_f16): New.
1868 (vcmla_laneq_f16): New.
1869 (vcmlaq_lane_f16): New.
1870 (vcmlaq_rot90_lane_f16): New.
1871 (vcmla_rot90_laneq_f16): New.
1872 (vcmla_rot90_lane_f16): New.
1873 (vcmlaq_rot90_f16): New.
1874 (vcmla_rot90_f16): New.
1875 (vcmlaq_laneq_f16): New.
1876 (vcmla_rot180_laneq_f16): New.
1877 (vcmla_rot180_lane_f16): New.
1878 (vcmlaq_rot180_f16): New.
1879 (vcmla_rot180_f16): New.
1880 (vcmlaq_rot90_laneq_f16): New.
1881 (vcmlaq_rot270_laneq_f16): New.
1882 (vcmlaq_rot270_lane_f16): New.
1883 (vcmla_rot270_laneq_f16): New.
1884 (vcmlaq_rot270_f16): New.
1885 (vcmla_rot270_f16): New.
1886 (vcmlaq_rot180_laneq_f16): New.
1887 (vcmlaq_rot180_lane_f16): New.
1888 (vcmla_rot270_lane_f16): New.
1889 (vcadd_rot90_f32): New.
1890 (vcaddq_rot90_f32): New.
1891 (vcaddq_rot90_f64): New.
1892 (vcadd_rot270_f32): New.
1893 (vcaddq_rot270_f32): New.
1894 (vcaddq_rot270_f64): New.
1895 (vcmla_f32): New.
1896 (vcmlaq_f32): New.
1897 (vcmlaq_f64): New.
1898 (vcmla_lane_f32): New.
1899 (vcmla_laneq_f32): New.
1900 (vcmlaq_lane_f32): New.
1901 (vcmlaq_laneq_f32): New.
1902 (vcmla_rot90_f32): New.
1903 (vcmlaq_rot90_f32): New.
1904 (vcmlaq_rot90_f64): New.
1905 (vcmla_rot90_lane_f32): New.
1906 (vcmla_rot90_laneq_f32): New.
1907 (vcmlaq_rot90_lane_f32): New.
1908 (vcmlaq_rot90_laneq_f32): New.
1909 (vcmla_rot180_f32): New.
1910 (vcmlaq_rot180_f32): New.
1911 (vcmlaq_rot180_f64): New.
1912 (vcmla_rot180_lane_f32): New.
1913 (vcmla_rot180_laneq_f32): New.
1914 (vcmlaq_rot180_lane_f32): New.
1915 (vcmlaq_rot180_laneq_f32): New.
1916 (vcmla_rot270_f32): New.
1917 (vcmlaq_rot270_f32): New.
1918 (vcmlaq_rot270_f64): New.
1919 (vcmla_rot270_lane_f32): New.
1920 (vcmla_rot270_laneq_f32): New.
1921 (vcmlaq_rot270_lane_f32): New.
1922 (vcmlaq_rot270_laneq_f32): New.
1923 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
1924 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
1925 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
1926 (FCADD, FCMLA): New.
1927 (rot): New.
1928 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
1929
1930 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
1931
1932 PR other/16615
1933
1934 * config/pa/pa.c: Change "can not" to "cannot".
1935 * gimple-ssa-evrp-analyze.c: Likewise.
1936 * ipa-icf.c: Likewise.
1937 * ipa-polymorphic-call.c: Likewise.
1938 * ipa-pure-const.c: Likewise.
1939 * lra-constraints.c: Likewise.
1940 * lra-remat.c: Likewise.
1941 * reload1.c: Likewise.
1942 * reorg.c: Likewise.
1943 * tree-ssa-uninit.c: Likewise.
1944
1945 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
1946
1947 PR other/16615
1948
1949 * Makefile.in: Mechanically replace "can not" with "cannot".
1950 * alias.c: Likewise.
1951 * builtins.c: Likewise.
1952 * calls.c: Likewise.
1953 * cgraph.c: Likewise.
1954 * cgraph.h: Likewise.
1955 * cgraphclones.c: Likewise.
1956 * cgraphunit.c: Likewise.
1957 * combine-stack-adj.c: Likewise.
1958 * combine.c: Likewise.
1959 * common/config/i386/i386-common.c: Likewise.
1960 * config/aarch64/aarch64.c: Likewise.
1961 * config/alpha/sync.md: Likewise.
1962 * config/arc/arc.c: Likewise.
1963 * config/arc/predicates.md: Likewise.
1964 * config/arm/arm-c.c: Likewise.
1965 * config/arm/arm.c: Likewise.
1966 * config/arm/arm.h: Likewise.
1967 * config/arm/arm.md: Likewise.
1968 * config/arm/cortex-r4f.md: Likewise.
1969 * config/csky/csky.c: Likewise.
1970 * config/csky/csky.h: Likewise.
1971 * config/darwin-f.c: Likewise.
1972 * config/epiphany/epiphany.md: Likewise.
1973 * config/i386/i386.c: Likewise.
1974 * config/i386/sol2.h: Likewise.
1975 * config/m68k/m68k.c: Likewise.
1976 * config/mcore/mcore.h: Likewise.
1977 * config/microblaze/microblaze.md: Likewise.
1978 * config/mips/20kc.md: Likewise.
1979 * config/mips/sb1.md: Likewise.
1980 * config/nds32/nds32.c: Likewise.
1981 * config/nds32/predicates.md: Likewise.
1982 * config/pa/pa.c: Likewise.
1983 * config/rs6000/e300c2c3.md: Likewise.
1984 * config/rs6000/rs6000.c: Likewise.
1985 * config/s390/s390.h: Likewise.
1986 * config/sh/sh.c: Likewise.
1987 * config/sh/sh.md: Likewise.
1988 * config/spu/vmx2spu.h: Likewise.
1989 * cprop.c: Likewise.
1990 * dbxout.c: Likewise.
1991 * df-scan.c: Likewise.
1992 * doc/cfg.texi: Likewise.
1993 * doc/extend.texi: Likewise.
1994 * doc/fragments.texi: Likewise.
1995 * doc/gty.texi: Likewise.
1996 * doc/invoke.texi: Likewise.
1997 * doc/lto.texi: Likewise.
1998 * doc/md.texi: Likewise.
1999 * doc/objc.texi: Likewise.
2000 * doc/rtl.texi: Likewise.
2001 * doc/tm.texi: Likewise.
2002 * dse.c: Likewise.
2003 * emit-rtl.c: Likewise.
2004 * emit-rtl.h: Likewise.
2005 * except.c: Likewise.
2006 * expmed.c: Likewise.
2007 * expr.c: Likewise.
2008 * fold-const.c: Likewise.
2009 * genautomata.c: Likewise.
2010 * gimple-fold.c: Likewise.
2011 * hard-reg-set.h: Likewise.
2012 * ifcvt.c: Likewise.
2013 * ipa-comdats.c: Likewise.
2014 * ipa-cp.c: Likewise.
2015 * ipa-devirt.c: Likewise.
2016 * ipa-fnsummary.c: Likewise.
2017 * ipa-icf.c: Likewise.
2018 * ipa-inline-transform.c: Likewise.
2019 * ipa-inline.c: Likewise.
2020 * ipa-polymorphic-call.c: Likewise.
2021 * ipa-profile.c: Likewise.
2022 * ipa-prop.c: Likewise.
2023 * ipa-pure-const.c: Likewise.
2024 * ipa-reference.c: Likewise.
2025 * ipa-split.c: Likewise.
2026 * ipa-visibility.c: Likewise.
2027 * ipa.c: Likewise.
2028 * ira-build.c: Likewise.
2029 * ira-color.c: Likewise.
2030 * ira-conflicts.c: Likewise.
2031 * ira-costs.c: Likewise.
2032 * ira-int.h: Likewise.
2033 * ira-lives.c: Likewise.
2034 * ira.c: Likewise.
2035 * ira.h: Likewise.
2036 * loop-invariant.c: Likewise.
2037 * loop-unroll.c: Likewise.
2038 * lower-subreg.c: Likewise.
2039 * lra-assigns.c: Likewise.
2040 * lra-constraints.c: Likewise.
2041 * lra-eliminations.c: Likewise.
2042 * lra-lives.c: Likewise.
2043 * lra-remat.c: Likewise.
2044 * lra-spills.c: Likewise.
2045 * lra.c: Likewise.
2046 * lto-cgraph.c: Likewise.
2047 * lto-streamer-out.c: Likewise.
2048 * postreload-gcse.c: Likewise.
2049 * predict.c: Likewise.
2050 * profile-count.h: Likewise.
2051 * profile.c: Likewise.
2052 * recog.c: Likewise.
2053 * ree.c: Likewise.
2054 * reload.c: Likewise.
2055 * reload1.c: Likewise.
2056 * reorg.c: Likewise.
2057 * resource.c: Likewise.
2058 * rtl.def: Likewise.
2059 * rtl.h: Likewise.
2060 * rtlanal.c: Likewise.
2061 * sched-deps.c: Likewise.
2062 * sched-ebb.c: Likewise.
2063 * sched-rgn.c: Likewise.
2064 * sel-sched-ir.c: Likewise.
2065 * sel-sched.c: Likewise.
2066 * shrink-wrap.c: Likewise.
2067 * simplify-rtx.c: Likewise.
2068 * symtab.c: Likewise.
2069 * target.def: Likewise.
2070 * toplev.c: Likewise.
2071 * tree-call-cdce.c: Likewise.
2072 * tree-cfg.c: Likewise.
2073 * tree-complex.c: Likewise.
2074 * tree-core.h: Likewise.
2075 * tree-eh.c: Likewise.
2076 * tree-inline.c: Likewise.
2077 * tree-loop-distribution.c: Likewise.
2078 * tree-nrv.c: Likewise.
2079 * tree-profile.c: Likewise.
2080 * tree-sra.c: Likewise.
2081 * tree-ssa-alias.c: Likewise.
2082 * tree-ssa-dce.c: Likewise.
2083 * tree-ssa-dom.c: Likewise.
2084 * tree-ssa-forwprop.c: Likewise.
2085 * tree-ssa-loop-im.c: Likewise.
2086 * tree-ssa-loop-ivcanon.c: Likewise.
2087 * tree-ssa-loop-ivopts.c: Likewise.
2088 * tree-ssa-loop-niter.c: Likewise.
2089 * tree-ssa-phionlycprop.c: Likewise.
2090 * tree-ssa-phiopt.c: Likewise.
2091 * tree-ssa-propagate.c: Likewise.
2092 * tree-ssa-threadedge.c: Likewise.
2093 * tree-ssa-threadupdate.c: Likewise.
2094 * tree-ssa-uninit.c: Likewise.
2095 * tree-ssanames.c: Likewise.
2096 * tree-streamer-out.c: Likewise.
2097 * tree.c: Likewise.
2098 * tree.h: Likewise.
2099 * vr-values.c: Likewise.
2100
2101 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
2102
2103 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
2104 (ix86_split_xorsign): Ditto.
2105 * config/i386/i386.c (ix86_expand_xorsign): New function.
2106 (ix86_split_xorsign): Ditto.
2107 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
2108 (xorsign<mode>3): New expander.
2109 (xorsign<mode>3_1): New insn_and_split pattern.
2110 * config/i386/sse.md (xorsign<mode>3): New expander.
2111
2112 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
2113
2114 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
2115 (*tablejump_sp64): Likewise.
2116 (*tablejump<P:mode>): ...this.
2117 (*call_address_sp32): Merge into...
2118 (*call_address_sp64): Likewise.
2119 (*call_address<P:mode>): ...this.
2120 (*call_symbolic_sp32): Merge into...
2121 (*call_symbolic_sp64): Likewise.
2122 (*call_symbolic<P:mode>): ...this.
2123 (call_value): Remove constraint and add predicate.
2124 (*call_value_address_sp32): Merge into...
2125 (*call_value_address_sp64): Likewise.
2126 (*call_value_address<P:mode>): ...this.
2127 (*call_value_symbolic_sp32): Merge into...
2128 (*call_value_symbolic_sp64): Likewise.
2129 (*call_value_symbolic<P:mode>): ...this.
2130 (*sibcall_symbolic_sp32): Merge into...
2131 (*sibcall_symbolic_sp64): Likewise.
2132 (*sibcall_symbolic<P:mode>): ...this.
2133 (sibcall_value): Remove constraint and add predicate.
2134 (*sibcall_value_symbolic_sp32): Merge into...
2135 (*sibcall_value_symbolic_sp64): Likewise.
2136 (*sibcall_value_symbolic<P:mode>): ...this.
2137 (window_save): Minor tweak.
2138 (*branch_sp32): Merge into...
2139 (*branch_sp64): Likewise.
2140 (*branch<P:mode>): ...this.
2141
2142 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
2143 James Clarke <jrtc27@jrtc27.com>
2144
2145 PR target/84010
2146 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
2147 consistently in TLS address generation and adjust code to the renaming
2148 of patterns. Mark calls to __tls_get_addr as const.
2149 * config/sparc/sparc.md (tgd_hi22): Turn into...
2150 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
2151 (tgd_lo10): Turn into...
2152 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
2153 (tgd_add32): Merge into...
2154 (tgd_add64): Likewise.
2155 (tgd_add<P:mode>): ...this and use Pmode throughout.
2156 (tldm_hi22): Turn into...
2157 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
2158 (tldm_lo10): Turn into...
2159 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
2160 (tldm_add32): Merge into...
2161 (tldm_add64): Likewise.
2162 (tldm_add<P:mode>): ...this and use Pmode throughout.
2163 (tldm_call32): Merge into...
2164 (tldm_call64): Likewise.
2165 (tldm_call<P:mode>): ...this and use Pmode throughout.
2166 (tldo_hix22): Turn into...
2167 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
2168 (tldo_lox10): Turn into...
2169 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
2170 (tldo_add32): Merge into...
2171 (tldo_add64): Likewise.
2172 (tldo_add<P:mode>): ...this and use Pmode throughout.
2173 (tie_hi22): Turn into...
2174 (tie_hi22<P:mode>): ...this and use Pmode throughout.
2175 (tie_lo10): Turn into...
2176 (tie_lo10<P:mode>): ...this and use Pmode throughout.
2177 (tie_ld64): Use DImode throughout.
2178 (tie_add32): Merge into...
2179 (tie_add64): Likewise.
2180 (tie_add<P:mode>): ...this and use Pmode throughout.
2181 (tle_hix22_sp32): Merge into...
2182 (tle_hix22_sp64): Likewise.
2183 (tle_hix22<P:mode>): ...this and use Pmode throughout.
2184 (tle_lox22_sp32): Merge into...
2185 (tle_lox22_sp64): Likewise.
2186 (tle_lox22<P:mode>): ...this and use Pmode throughout.
2187 (*tldo_ldub_sp32): Merge into...
2188 (*tldo_ldub_sp64): Likewise.
2189 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
2190 (*tldo_ldub1_sp32): Merge into...
2191 (*tldo_ldub1_sp64): Likewise.
2192 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
2193 (*tldo_ldub2_sp32): Merge into...
2194 (*tldo_ldub2_sp64): Likewise.
2195 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
2196 (*tldo_ldsb1_sp32): Merge into...
2197 (*tldo_ldsb1_sp64): Likewise.
2198 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
2199 (*tldo_ldsb2_sp32): Merge into...
2200 (*tldo_ldsb2_sp64): Likewise.
2201 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
2202 (*tldo_ldub3_sp64): Use DImode throughout.
2203 (*tldo_ldsb3_sp64): Likewise.
2204 (*tldo_lduh_sp32): Merge into...
2205 (*tldo_lduh_sp64): Likewise.
2206 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
2207 (*tldo_lduh1_sp32): Merge into...
2208 (*tldo_lduh1_sp64): Likewise.
2209 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
2210 (*tldo_ldsh1_sp32): Merge into...
2211 (*tldo_ldsh1_sp64): Likewise.
2212 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
2213 (*tldo_lduh2_sp64): Use DImode throughout.
2214 (*tldo_ldsh2_sp64): Likewise.
2215 (*tldo_lduw_sp32): Merge into...
2216 (*tldo_lduw_sp64): Likewise.
2217 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
2218 (*tldo_lduw1_sp64): Use DImode throughout.
2219 (*tldo_ldsw1_sp64): Likewise.
2220 (*tldo_ldx_sp64): Likewise.
2221 (*tldo_stb_sp32): Merge into...
2222 (*tldo_stb_sp64): Likewise.
2223 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
2224 (*tldo_sth_sp32): Merge into...
2225 (*tldo_sth_sp64): Likewise.
2226 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
2227 (*tldo_stw_sp32): Merge into...
2228 (*tldo_stw_sp64): Likewise.
2229 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
2230 (*tldo_stx_sp64): Use DImode throughout.
2231
2232 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2233
2234 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
2235 check configure option to set BTI and Return Address Signing.
2236 * configure.ac: Add --enable-standard-branch-protection and
2237 --disable-standard-branch-protection.
2238 * configure: Regenerated.
2239 * doc/install.texi: Document the same.
2240
2241 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2242 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2243
2244 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
2245 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
2246 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
2247 if bti is enabled.
2248 * config/aarch64/aarch64-bti-insert.c: New file.
2249 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
2250 pass.
2251 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
2252 new bti pass.
2253 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
2254 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
2255 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
2256 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
2257
2258 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2259
2260 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
2261 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
2262 Disable bti for -mbranch-protection=none.
2263 (aarch64_handle_standard_branch_protection): Enable bti for
2264 -mbranch-protection=standard.
2265 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
2266 -mbranch-protection.
2267 (aarch64_bti_enabled): Check if bti is enabled.
2268 * config/aarch64/aarch64.opt: Declare target variable.
2269 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
2270
2271 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2272
2273 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
2274 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
2275 (aarch64_expand_epilogue): Likewise.
2276 (aarch64_output_mi_thunk): Likewise
2277 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
2278 TAILCALL_ADDR_REGS to x16 and x17.
2279 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
2280
2281 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2282
2283 * config/aarch64/aarch64-option-extensions.def: Define
2284 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
2285 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
2286 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
2287 (AARCH64_FL_PREDRES): New.
2288 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
2289 AARCH64_FL_PREDRES by default.
2290 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
2291
2292 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2293
2294 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
2295 ARMv8.5-A.
2296 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
2297 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
2298 * doc/invoke.texi: Document ARMv8.5-A.
2299
2300 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
2301
2302 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
2303 (xorsign<mode>3): Likewise.
2304
2305 2019-01-09 Jelinek <jakub@redhat.com>
2306
2307 PR middle-end/88758
2308 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
2309 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
2310
2311 PR rtl-optimization/88331
2312 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
2313 not currently_expanding_to_rtl.
2314
2315 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
2316
2317 * doc/invoke.texi (-Os): Remove trailing spaces.
2318 (-finline-functions): Remove reference to -O2.
2319
2320 2019-01-08 Jakub Jelinek <jakub@redhat.com>
2321
2322 PR rtl-optimization/79593
2323 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
2324
2325 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
2326 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
2327
2328 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
2329
2330 PR bootstrap/88721
2331 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
2332 to -1 on entry.
2333
2334 PR debug/88723
2335 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
2336 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
2337
2338 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
2339
2340 PR target/88717
2341 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
2342 ix86_avx_u128_mode_entry.
2343
2344 2019-01-08 Martin Liska <mliska@suse.cz>
2345
2346 PR tree-optimization/88753
2347 * tree-switch-conversion.c (switch_conversion::build_one_array):
2348 Come up with local variable constructor. Convert first to
2349 type of constructor values.
2350
2351 2019-01-08 Richard Biener <rguenther@suse.de>
2352
2353 PR tree-optimization/86554
2354 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
2355 rpo_avail): Move earlier.
2356 (visit_nary_op): When value-numbering to expressions
2357 with different overflow behavior make sure there's an
2358 available expression on the path.
2359
2360 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
2361
2362 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
2363 aarch64_parse_branch_protection,
2364 struct aarch64_branch_protect_type,
2365 aarch64_handle_no_branch_protection,
2366 aarch64_handle_standard_branch_protection,
2367 aarch64_validate_mbranch_protection,
2368 aarch64_handle_pac_ret_protection,
2369 aarch64_handle_attr_branch_protection,
2370 accepted_branch_protection_string,
2371 aarch64_pac_ret_subtypes,
2372 aarch64_branch_protect_types,
2373 aarch64_handle_pac_ret_leaf): Define.
2374 (aarch64_override_options_after_change_1, aarch64_override_options):
2375 Add check for accepted_branch_protection_string.
2376 (aarch64_option_save): Save accepted_branch_protection_string.
2377 (aarch64_option_restore): Save accepted_branch_protection_string.
2378 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
2379 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
2380 msign-return-address.
2381 * doc/invoke.texi: Add mbranch-protection.
2382
2383 2019-01-08 Alan Modra <amodra@gmail.com>
2384
2385 PR target/88614
2386 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
2387 Delete "unknownp" parameter. Adjust callers. Handle
2388 CONST_INT, PLUS, MINUS, and MULT.
2389 (attr_value_aligned): Renamed from or_attr_value.
2390 (min_attr_value): Return INT_MIN for unhandled rtl case..
2391 (min_fn): ..and translate to INT_MAX here.
2392 (write_length_unit_log): Modify to cope without "unknown".
2393 (write_attr_value): Handle IF_THEN_ELSE.
2394
2395 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
2396
2397 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
2398 optimization for masked stores.
2399
2400 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
2401
2402 PR middle-end/88567
2403 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
2404 output vector directly to duplicate_and_interleave instead of
2405 going through a temporary. Postpone insertion of ctor_seq to
2406 the end of the loop.
2407
2408 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
2409
2410 PR target/86891
2411 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
2412 unsigned_p. Handle signed and unsigned overflow correction as
2413 required.
2414 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
2415 prototype.
2416 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
2417 for operand 2.
2418 (add<mode>3_compareV_imm): Make this callable for expanding.
2419 (subv<GPI:mode>4): Use register_operand for operand 1. Use
2420 aarch64_plus_operand for operand 2.
2421 (subv<GPI:mode>_insn): New insn pattern.
2422 (subv<GPI:mode>_imm): Likewise.
2423 (negv<GPI:mode>3): New expand pattern.
2424 (negv<GPI:mode>_insn): New insn pattern.
2425 (negv<GPI:mode>_cmp_only): Likewise.
2426 (cmpv<GPI:mode>_insn): Likewise.
2427 (subvti4): Use register_operand for operand 1. Update call to
2428 aarch64_expand_subvti.
2429 (usubvti4): Likewise.
2430 (negvti3): New expand pattern.
2431 (negdi_carryout): New insn pattern.
2432 (negvdi_carryinV): New insn pattern.
2433 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
2434 version the named version.
2435 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
2436 operands.
2437 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
2438 patterns.
2439 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
2440 patterns.
2441 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
2442 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
2443 (sub<mode>3_carryinCV): Delete.
2444 (sub<GPI:mode>3_carryinV): New expand pattern.
2445 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
2446
2447 2019-01-07 Richard Biener <rguenther@suse.de>
2448
2449 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
2450 of tree_operand_hash.
2451
2452 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
2453
2454 PR tree-optimization/88598
2455 * tree.h (single_nonzero_element): Declare.
2456 * tree.c (single_nonzero_element): New function.
2457 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
2458 if I is the only nonzero element of CST.
2459
2460 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
2461
2462 PR tree-optimization/88598
2463 * tree.h (initializer_each_zero_or_onep): Declare.
2464 * tree.c (initializer_each_zero_or_onep): New function.
2465 (signed_or_unsigned_type_for): Handle float types too.
2466 (unsigned_type_for, signed_type_for): Update comments accordingly.
2467 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
2468 x & { 0 or -1, 0 or -1, ... }.
2469
2470 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
2471
2472 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
2473 with x86_64-pc-linux-gnu.
2474
2475 2019-01-07 Tom de Vries <tdevries@suse.de>
2476
2477 PR target/85486
2478 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
2479 function.
2480 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
2481 routines.
2482
2483 2019-01-07 Jakub Jelinek <jakub@redhat.com>
2484
2485 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
2486 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
2487 TARGET_AVX512F as condition.
2488
2489 PR debug/88723
2490 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
2491 const_not_ok_for_debug_p target hook.
2492 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
2493 on UNSPEC and subexpressions thereof if all subexpressions of the
2494 UNSPEC are CONSTANT_P.
2495
2496 PR tree-optimization/88676
2497 * tree-ssa-phiopt.c (two_value_replacement): New function.
2498 (tree_ssa_phiopt_worker): Call it.
2499
2500 PR sanitizer/88619
2501 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
2502 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
2503
2504 PR c++/85052
2505 * tree-vect-generic.c: Include insn-config.h and recog.h.
2506 (expand_vector_piecewise): Add defaulted ret_type argument,
2507 if non-NULL, use that in preference to type for the result type.
2508 (expand_vector_parallel): Formatting fix.
2509 (do_vec_conversion, do_vec_narrowing_conversion,
2510 expand_vector_conversion): New functions.
2511 (expand_vector_operations_1): Call expand_vector_conversion
2512 for VEC_CONVERT ifn calls.
2513 * internal-fn.def (VEC_CONVERT): New internal function.
2514 * internal-fn.c (expand_VEC_CONVERT): New function.
2515 * fold-const-call.c (fold_const_vec_convert): New function.
2516 (fold_const_call): Use it for CFN_VEC_CONVERT.
2517 * doc/extend.texi (__builtin_convertvector): Document.
2518
2519 2019-01-07 Tom de Vries <tdevries@suse.de>
2520
2521 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
2522 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
2523 vector_red_partition, vector_red_sym): New global variables.
2524 (nvptx_option_override): Initialize vector_red_sym.
2525 (nvptx_declare_function_name): Restore red_partition register.
2526 (nvptx_file_end): Emit code to declare the vector reduction variables.
2527 (nvptx_output_red_partition): New function.
2528 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
2529 large vector reductions.
2530 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
2531 (nvptx_init_builtins): Add VECTOR_ADDR.
2532 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
2533 Handle nvptx_expand_shared_addr.
2534 (nvptx_get_shared_red_addr): Add vector argument and handle large
2535 vectors.
2536 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
2537 large vectors.
2538 (nvptx_goacc_reduction_init): Likewise.
2539 (nvptx_goacc_reduction_fini): Likewise.
2540 (nvptx_goacc_reduction_teardown): Likewise.
2541 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
2542 init,fini,teardown}.
2543 (nvptx_init_axis_predicate): Initialize vector_red_partition.
2544 (nvptx_set_current_function): Init vector_red_partition.
2545 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
2546 (nvptx_red_partition): New insn.
2547 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
2548
2549 2019-01-07 Tom de Vries <tdevries@suse.de>
2550
2551 PR target/85381
2552 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
2553 empty loops.
2554
2555 2019-01-07 Tom de Vries <tdevries@suse.de>
2556
2557 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
2558 (nvptx_option_override): Init oacc_bcast_partition.
2559 (nvptx_init_oacc_workers): New function.
2560 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
2561 (nvptx_needs_shared_bcast): New function.
2562 (nvptx_find_par): Generalize to enable vectors to use shared-memory
2563 to propagate state.
2564 (nvptx_shared_propagate): Initialize vector bcast partition and
2565 synchronization state.
2566 (nvptx_single): Generalize to enable vectors to use shared-memory
2567 to propagate state.
2568 (nvptx_process_pars): Likewise.
2569 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
2570 * config/nvptx/nvptx.h (struct machine_function): Add
2571 bcast_partition and sync_bar members.
2572
2573 2019-01-07 Tom de Vries <tdevries@suse.de>
2574
2575 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
2576 (nvptx_apply_dim_limits): New function.
2577 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
2578 PTX_WARP_SIZE.
2579
2580 2019-01-07 Tom de Vries <tdevries@suse.de>
2581
2582 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
2583 as late as possible.
2584
2585 2019-01-07 Tom de Vries <tdevries@suse.de>
2586
2587 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
2588 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
2589 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
2590 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
2591 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
2592
2593 2019-01-07 Tom de Vries <tdevries@suse.de>
2594
2595 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
2596
2597 2019-01-07 Tom de Vries <tdevries@suse.de>
2598
2599 * omp-offload.c (oacc_get_min_dim): New function.
2600 * omp-offload.h (oacc_get_min_dim): Declare.
2601
2602 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
2603
2604 PR target/88521
2605 * config/i386/i386.c (function_value_ms_64): Return small sturct in
2606 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
2607
2608 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
2609
2610 PR tree-opt/86020
2611 Revert:
2612 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
2613
2614 * ipa-inline.c (edge_badness): Use inlined_time instead of
2615 inline_summaries->get.
2616
2617 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
2618
2619 * opts.c (enable_fdo_optimizations): Enable
2620 version-loops-for-strides, loop-interchange, unrol-and-jam
2621 and tree-loop-distribution.
2622 * invoke.texi: Document newly enabled options.
2623
2624 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
2625
2626 * doc/invoke.texi (max-inline-insns-small): New parameters.
2627 * ipa-inline.c (want_early_inline_function_p): simplify.
2628 (want_inline_small_function_p): Fix pasto from previous patch;
2629 use max-inline-insns-small bound.
2630 * params.def (max-inline-insns-small): New param.
2631 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
2632 variables correctly.
2633
2634 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
2635
2636 * doc/invoke.texi: Document max-inline-insns-size,
2637 uninlined-function-insns, uninlined-function-time,
2638 uninlined-thunk-insns and uninlined-thunk-time.
2639 * params.def: Add max-inline-insns-size,
2640 uninlined-function-insns, uninlined-function-time,
2641 uninlined-thunk-insns and uninlined-thunk-time.
2642 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
2643 new parameters.
2644 * ipa-inline.c (can_inline_edge_by_limits_p,
2645 want_inline_small_function_p): Use new parameters.
2646
2647 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
2648
2649 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
2650
2651 2019-01-05 Jakub Jelinek <jakub@redhat.com>
2652
2653 PR middle-end/82564
2654 PR target/88620
2655 * expr.c (expand_assignment): For calls returning VLA structures
2656 if to_rtx is not a MEM, force it into a stack temporary.
2657
2658 PR debug/88635
2659 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
2660 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
2661 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
2662 subexpressions of both operands.
2663 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
2664 subrtxes are CONSTANT_P.
2665 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
2666 2018-11-09 changes.
2667
2668 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
2669
2670 * params.def (hot-bb-count-ws-permille): Set to 990.
2671
2672 2019-01-04 Martin Sebor <msebor@redhat.com>
2673
2674 PR c/88546
2675 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
2676 leaf.
2677
2678 2019-01-04 Martin Sebor <msebor@redhat.com>
2679
2680 PR c/88363
2681 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
2682
2683 2019-01-04 Jakub Jelinek <jakub@redhat.com>
2684
2685 * gdbinit.in: Turn off pagination for the skip commands, restore
2686 it to previous state afterwards.
2687
2688 2019-01-04 Jakub Jelinek <jakub@redhat.com>
2689
2690 PR target/88594
2691 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
2692 of GET_MODE (opN) as modes of the libcall arguments.
2693
2694 2019-01-04 Jan Beulich <jbeulich@suse.com>
2695
2696 * config/i386/sse.md
2697 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
2698 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
2699 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
2700 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
2701 avx512f_vmcmp<mode>3<round_saeonly_name>,
2702 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
2703 avx512f_maskcmp<mode>3,
2704 <avx512>_cvt<ssemodesuffix>2mask<mode>,
2705 <avx512>_cvt<ssemodesuffix>2mask<mode>,
2706 *<avx512>_cvtmask2<ssemodesuffix><mode>,
2707 *<avx512>_cvtmask2<ssemodesuffix><mode>,
2708 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
2709 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
2710 <avx512>_gt<mode>3<mask_scalar_merge_name>,
2711 <avx512>_gt<mode>3<mask_scalar_merge_name>,
2712 <avx512>_testm<mode>3<mask_scalar_merge_name>,
2713 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
2714 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
2715 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
2716 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
2717 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
2718 avx512cd_maskb_vec_dup<mode>,
2719 avx512cd_maskw_vec_dup<mode>,
2720 avx512dq_fpclass<mode><mask_scalar_merge_name>,
2721 avx512dq_vmfpclass<mode>,
2722 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
2723 instead of =Yk.
2724
2725 2019-01-03 Martin Sebor <msebor@redhat.com>
2726
2727 PR tree-optimization/88659
2728 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
2729
2730 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
2731
2732 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
2733 unaligned vsx and avoid lxvd2x/stxvd2x.
2734 (gen_lvx_v4si_move): New function.
2735
2736 2019-01-03 Tom de Vries <tdevries@suse.de>
2737
2738 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
2739 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
2740 function.
2741 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
2742
2743 2019-01-03 Tom de Vries <tdevries@suse.de>
2744
2745 * config/nvptx/nvptx.c (struct offload_attrs): New.
2746 (populate_offload_attrs): New function. Factor mask extraction out of
2747 nvptx_reorg. Add extraction of dimensions.
2748 (nvptx_reorg): Use populate_offload_attrs.
2749
2750 2019-01-03 Tom de Vries <tdevries@suse.de>
2751
2752 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
2753 cases for oacc_min_dims_p and routine_p. Add asserts for
2754 oacc_default_dims_p and offload_region_p.
2755
2756 2019-01-03 Tom de Vries <tdevries@suse.de>
2757
2758 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
2759 factored out of ...
2760 (nvptx_goacc_validate_dims): ... here.
2761
2762 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
2763
2764 PR tree-optimization/85574
2765 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
2766 structure.
2767 (struct ssa_equip_hash_traits): Declare.
2768 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
2769
2770 2019-01-03 Jakub Jelinek <jakub@redhat.com>
2771
2772 PR debug/88644
2773 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
2774 change it to qualified_type.
2775
2776 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
2777
2778 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
2779 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
2780
2781 2019-01-02 Martin Sebor <msebor@redhat.com>
2782 Jeff Law <law@redhat.com>
2783
2784 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
2785 (get_range_strlen_tree): Update appropriately.
2786 (get_range_strlen)
2787 * gimple-fold.h (get_range_strlen): Drop unused last argument.
2788
2789 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
2790 rather than set_range_info.
2791 * tree-ssa-strlen.c (set_strlen_range): Extracted from
2792 maybe_set_strlen_range. Handle potentially boundary crossing
2793 cases more conservatively.
2794 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
2795 Call set_strlen_range.
2796 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
2797
2798 PR middle-end/88663
2799 * gimple-fold.c (get_range_strlen): Update prototype to no longer
2800 need the flexp argument.
2801 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
2802 from calls to get_range_strlen. Update comments. Just update
2803 VAL for an unterminated const char array and let the reset of the
2804 code handle it normally. No longer try to set *flexp. Adjust
2805 return value.
2806 (get_range_strlen): Update for the new get_range_strlen API.
2807 (get_maxval_strlen): Similarly.
2808 (gimple_fold_builtin_strlen): Handle update meaning of return value
2809 from get_range_strlen.
2810 * gimple-ssa-sprintf.c (get_string_length): Update for the new
2811 get_range_strlen API.
2812
2813 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
2814
2815 PR lto/88130
2816 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
2817 false at WPA time when body was removed.
2818
2819 2019-01-02 Martin Liska <mliska@suse.cz>
2820
2821 PR tree-optimization/88650
2822 * predict.c (set_even_probabilities): Calculate probability
2823 remainer only when really used.
2824
2825 2019-01-02 Richard Biener <rguenther@suse.de>
2826
2827 PR middle-end/88651
2828 * tree-data-ref.c (analyze_subscript_affine_affine): Use
2829 widest_ints when mangling max_stmt_execution results.
2830
2831 2019-01-02 Richard Biener <rguenther@suse.de>
2832
2833 PR tree-optimization/88621
2834 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
2835 bitfields when canoncalizing.
2836
2837 2019-01-02 Richard Biener <rguenther@suse.de>
2838
2839 PR target/87545
2840 * config/i386/x86-tune-costs.h (intel_cost): Adjust
2841 cost of cheap SSE instruction.
2842
2843 2019-01-02 Richard Biener <rguenther@suse.de>
2844
2845 PR ipa/85574
2846 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
2847 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
2848 function.
2849 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
2850 set after UIDs before splitting them.
2851
2852 2019-01-01 Martin Sebor <msebor@redhat.com>
2853 Jeff Law <law@redhat.com>
2854
2855 * gimple-fold.c (get_range_strlen_tree): Record if the computed
2856 length is optimistic. If it is, then arrange to compute the
2857 conservative length as well.
2858
2859 * gimple-fold.h (get_range_strlen): Update prototype.
2860 * builtins.c (check_access): Update call to get_range_strlen to use
2861 c_strlen_data pointer. Change various variable accesses to instead
2862 pull data from the c_strlen_data structure.
2863 (check_strncat_sizes, expand_builtin_strncat): Likewise.
2864 * calls.c (maybe_warn_nonstring_arg): Likewise.
2865 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
2866 minimum length if maximum lengh is unknown.
2867 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
2868 that used c_strlen, it's no longer needed. Restructure slightly.
2869 (format_string): Set unlikely range appropriately.
2870 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
2871 formatting issues.
2872 (get_range_strlen): Accept c_strlen_data pointer for external
2873 call sites as well. Pass through to call to internal get_range_strlen.
2874 Adjust minlen, maxlen and maxbound as needed.
2875 (get_maxval_strlen): Update comments.
2876 (gimple_fold_builtin_strlen): Update call to get_range_strlen
2877 to use c_strlen_data pointer. Change variable accesses to instead
2878 use c_strlen_data data members.
2879
2880 * gimple-fold.c (get_range_strlen): Update prototype.
2881 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
2882 local variables. Use pdata to return information to caller.
2883 Update calls to get_range_strlen. Update pdata->maxbound.
2884 (get_range_strlen -- static version): Similarly.
2885 (get_range_strlen -- extern version): Update for internal
2886 get_range_strlen API change. Convert to external data format.
2887 (get_maxval_strlen): Similarly.
2888
2889 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
2890
2891 * coverage.c (get_coverage_counts): Use current_function_decl.
2892 * profile.c (read_thunk_profile): New function.
2893 (branch_prob): Add THUNK parameter.
2894 * tree-profile.c (tree_profiling): Handle thunks.
2895 * value-prof.c (init_node_map): Handle thunks.
2896 * value-prof.h (branch_prob): Upate prototype.
2897 (read_thunk_profile): Declare.
2898
2899 2019-01-01 Jakub Jelinek <jakub@redhat.com>
2900
2901 Update copyright years.
2902
2903 * gcc.c (process_command): Update copyright notice dates.
2904 * gcov-dump.c (print_version): Ditto.
2905 * gcov.c (print_version): Ditto.
2906 * gcov-tool.c (print_version): Ditto.
2907 * gengtype.c (create_file): Ditto.
2908 * doc/cpp.texi: Bump @copying's copyright year.
2909 * doc/cppinternals.texi: Ditto.
2910 * doc/gcc.texi: Ditto.
2911 * doc/gccint.texi: Ditto.
2912 * doc/gcov.texi: Ditto.
2913 * doc/install.texi: Ditto.
2914 * doc/invoke.texi: Ditto.
2915 \f
2916 Copyright (C) 2019 Free Software Foundation, Inc.
2917
2918 Copying and distribution of this file, with or without modification,
2919 are permitted in any medium without royalty provided the copyright
2920 notice and this notice are preserved.