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