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>
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>
22 * tree-data-ref.c (initialize_matrix_A): Fail if constant
24 (analyze_subscript_affine_affine): Handle failure from
27 2019-02-08 Jakub Jelinek <jakub@redhat.com>
29 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
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
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
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
57 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
60 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
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
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>
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
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>
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
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):
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>
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>
153 * config/s390/s390.md: Remove load and test FP splitter.
155 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
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>
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>
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
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>
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>
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>
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
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>
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
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>
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>
281 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
284 2019-02-02 Jakub Jelinek <jakub@redhat.com>
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>
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>
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
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>
350 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
353 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
356 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
357 alternative to avoid partial SSE register stall for TARGET_AVX.
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
373 2019-01-31 Jakub Jelinek <jakub@redhat.com>
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>
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>
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
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
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>
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
438 2019-01-29 Martin Sebor <msebor@redhat.com>
441 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
443 2019-01-29 Jakub Jelinek <jakub@redhat.com>
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>
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>
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
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>
480 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
481 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
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>
498 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
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>
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>
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
530 * tree-cfgcleanup.c: Include cgraph.h.
531 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
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>
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>
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):
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):
626 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
628 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
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
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
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
661 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
662 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
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
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>
709 * config/i386/i386.c (ix86_pic_register_p): Return true for
712 PR tree-optimization/88964
713 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
714 punt if HONOR_SNANS (chrec).
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
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>
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>
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>
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>
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>
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>
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>
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.
819 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
820 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
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>
829 * config/arm/arm.c (arm_needs_double_word_align): Check
832 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
833 H.J. Lu <hongjiu.lu@intel.com>
836 * config/i386/i386-builtin.def: Add mask2 to all builtin
837 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
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
852 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
854 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
857 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
860 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
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).
900 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
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
908 PR rtl-optimization/86334
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
922 2019-01-22 Alan Modra <amodra@gmail.com>
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,
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>
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>
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>
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>
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
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
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
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>
1059 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
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
1069 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
1072 * config/arm/arm-cpus.in (mp): 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
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>
1124 * doc/install.texi (with-multilib-list): Document for aarch64.
1126 2019-01-18 Jakub Jelinek <jakub@redhat.com>
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>
1141 * cgraph.h (create_version_clone_with_body): Add new argument
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
1149 (expand_target_clones): Do not call valid_attribute_p, it must
1151 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
1154 2019-01-17 Jakub Jelinek <jakub@redhat.com>
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>
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
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
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
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>
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>
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>
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>
1362 2018-12-15 Jakub Jelinek <jakub@redhat.com>
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>
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
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>
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
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
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>
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
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
1456 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
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>
1471 * tree.c (build_function_type): Assert that arg_types is not
1474 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
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>
1487 * dwarf2out.c (gen_member_die): Do not generate inheritance
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>
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>
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>
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
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>
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
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
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>
1610 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
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
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>
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
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
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>
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
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
1729 2019-01-10 Jakub Jelinek <jakub@redhat.com>
1732 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
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
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
1762 2019-01-10 Jakub Jelinek <jakub@redhat.com>
1766 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
1767 (assign_parm_setup_block): Do the argument slot realignment here
1770 2019-01-10 Stefan Agner <stefan@agner.ch>
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>
1779 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
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.
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.
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.
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.
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.
1959 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
1961 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
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>
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.
2034 * emit-rtl.c: Likewise.
2035 * emit-rtl.h: Likewise.
2036 * except.c: Likewise.
2037 * expmed.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.
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.
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.
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.
2085 * reload.c: Likewise.
2086 * reload1.c: Likewise.
2087 * reorg.c: Likewise.
2088 * resource.c: Likewise.
2089 * rtl.def: 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.
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>
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
2279 * config/aarch64/aarch64-bti-insert.c: New file.
2280 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
2282 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
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
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>
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>
2362 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
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>
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>
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>
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>
2442 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
2443 unsigned_p. Handle signed and unsigned overflow correction as
2445 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
2447 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
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
2468 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
2470 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
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>
2509 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
2511 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
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.
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.
2532 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
2533 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
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
2567 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
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>
2583 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
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
2595 (nvptx_shared_propagate): Initialize vector bcast partition and
2596 synchronization state.
2597 (nvptx_single): Generalize to enable vectors to use shared-memory
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
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>
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>
2643 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
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
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>
2686 * expr.c (expand_assignment): For calls returning VLA structures
2687 if to_rtx is not a MEM, force it into a stack temporary.
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
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>
2706 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
2709 2019-01-04 Martin Sebor <msebor@redhat.com>
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>
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
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
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,
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
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>
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.
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.
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
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>
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>
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>
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>
2877 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
2878 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
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
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.