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