1 2019-02-15 Jakub Jelinek <jakub@redhat.com>
4 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
6 * opth-gen.awk: Likewise.
8 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
10 * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
11 Enable MMX, SSE and SSE2 by default.
12 * config/i386/i386.c (ix86_option_override_internal): Do not
13 explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
15 2019-02-14 Jakub Jelinek <jakub@redhat.com>
17 PR rtl-optimization/89354
18 * combine.c (make_extraction): Punt if extraction_mode is narrower
21 2019-02-14 Maya Rashish <coypu@sdf.org>
23 * config.gcc (*-*-netbsd*): Add netbsd-d.o.
24 * config/netbsd-d.c: New file.
25 * config/t-netbsd: Add netbsd-d.o
27 2018-02-14 Steve Ellcey <sellcey@marvell.com>
29 * config/aarch64/aarch64.c (aarch64_attribute_table): Change
30 affects_type_identity to true for aarch64_vector_pcs.
31 (aarch64_comp_type_attributes): New function.
32 (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
34 2019-02-14 Tamar Christina <tamar.christina@arm.com>
37 * config/arm/iterators.md (ANY64): Add V4HF.
39 2019-02-14 Martin Liska <mliska@suse.cz>
41 PR rtl-optimization/89242
42 * dce.c (delete_unmarked_insns): Call free_dominance_info we
43 process a transformation.
45 2019-02-14 Jakub Jelinek <jakub@redhat.com>
47 PR tree-optimization/89314
48 * fold-const.c (fold_binary_loc): Cast strlen argument to
49 const char * before dereferencing it. Formatting fixes.
52 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
54 2019-02-13 Ian Lance Taylor <iant@golang.org>
56 * optc-save-gen.awk: Set var_opt_hash for initial optimizations
57 and set current index for other optimizations.
59 2019-02-13 Uroš Bizjak <ubizjak@gmail.com>
61 * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
62 nonimmediate_operand as operand 2 predicate.
63 (vec_set<VF2_512_256:mode>_0): Ditto.
64 (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
65 (*vec_concatv2si): Remove alternative 2.
66 (*vec_concatv4si_0): Use vm constraint for alternative 0.
67 (*vec_concatv4si_0): Remove preferred_for_speed attribute.
68 (vec_concatv2di): Split alternatives 4,5,6 to ...
69 (*vec_concatv2di_0) ... new pattern.
71 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com>
74 * config/arm/arm.c (ldm_stm_operation_p) Set
75 addr_reg_in_reglist correctly for first register.
76 (load_multiple_sequence): Remove dead base check.
77 (gen_ldm_seq): Correctly set write_back for Thumb-1.
79 2019-02-13 Tamar Christina <tamar.christina@arm.com>
82 * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
83 Expose as @aarch64_pred_mov.
84 * config/aarch64/aarch64.c (aarch64_classify_address):
85 Use expand_insn which legitimizes operands.
87 2019-02-13 Martin Liska <mliska@suse.cz>
89 * builtins.h (expand_builtin_with_bounds): Remove declaration.
90 * calls.c (struct arg_data): Remove special_slot, pointer_arg
91 and pointer_offset fields.
92 (initialize_argument_information): Remove usage of dead
94 * cgraph.h (struct cgraph_thunk_info): Remove
95 add_pointer_bounds_args.
96 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
98 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
100 * config/i386/i386.c (ix86_function_arg_advance): Remove
102 (struct builtin_isa): Remove leaf_p and nothrow_p fields.
103 (def_builtin): Remove usage of dead
105 (ix86_add_new_builtins): Likewise.
106 * ipa-fnsummary.c (compute_fn_summary): Likewise.
107 * ipa-icf.c (sem_function::equals_wpa): Likewise.
108 (sem_function::init): Likewise.
109 (sem_variable::merge): Likewise.
110 * ipa-visibility.c (function_and_variable_visibility): Likewise.
111 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
112 * lto-cgraph.c (lto_output_node): Likewise.
113 (lto_output_varpool_node): Likewise.
114 (input_node): Likewise.
115 (input_varpool_node): Likewise.
116 * lto-streamer-out.c (lto_output): Likewise.
117 * tree-inline.c (expand_call_inline): Remove usage of
119 * tree-inline.h (struct copy_body_data): Likewise.
120 * varpool.c (varpool_node::dump): Likewise.
122 2019-02-13 Jakub Jelinek <jakub@redhat.com>
125 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
126 into pt->vars_contains_escaped_heap instead of setting
127 pt->vars_contains_escaped_heap to it.
130 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
131 INTVAL (size), compare it to GET_MODE_MASK instead of
132 1 << GET_MODE_BITSIZE.
135 * config/i386/predicates.md (x86_64_immediate_operand): Allow
136 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
139 2019-02-13 Martin Liska <mliska@suse.cz>
142 * cfgrtl.c (remove_barriers_from_footer): New function.
143 (try_redirect_by_replacing_jump): Use it.
144 (cfg_layout_redirect_edge_and_branch): Likewise.
146 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
148 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
149 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
150 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
151 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
152 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
153 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
155 * config/rs6000/rs6000.c (builtin_function_type)
156 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
157 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
158 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
159 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
160 vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
162 2019-02-12 Pat Haugen <pthaugen@us.ibm.com>
164 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
165 -maltivec. Delete -maltivec=be and -maltivec=le documentation.
167 2019-02-12 H.J. Lu <hongjiu.lu@intel.com>
170 * config/i386/i386.md (*movoi_internal_avx): Revert revision
171 268678 and revision 268657.
172 (*movti_internal): Likewise.
174 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com>
177 * config/s390/s390.c (s390_decompose_address): Update comment.
178 (s390_check_qrst_address): Reject invalid address forms after
181 2019-02-12 Martin Liska <mliska@suse.cz>
184 * ipa-pure-const.c (propagate_pure_const): Revert hunk as
185 we need default values of funct_state for a function that
188 2019-02-12 Eric Botcazou <ebotcazou@adacore.com>
190 * asan.c (asan_expand_mark_ifn): Take into account the alignment of
191 the object to pick the size of stores on strict-alignment platforms.
193 * config/sparc/sparc.md (*movsi_insn): Minor tweak.
194 (*movdi_insn_sp32): Likewise.
195 (*movdi_insn_sp64): Likewise.
197 2019-02-12 Jan Hubicka <hubicka@ucw.cz>
200 * cgraphunit.c (analyze_functions): Clear READONLY flag for external
201 types that needs constructiong.
202 * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
204 2019-02-12 Richard Biener <rguenther@suse.de>
206 PR tree-optimization/89253
207 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
210 2019-02-11 David Malcolm <dmalcolm@redhat.com>
213 * input.c (selftest::test_line_offset_overflow): New selftest.
214 (selftest::input_c_tests): Call it.
216 2019-02-11 Martin Sebor <msebor@redhat.com>
218 PR tree-optimization/88771
219 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
220 when -Wstringop-overflow is set.
221 (builtin_memref::builtin_memref): Adjust excessive upper bound
222 only when lower bound is not excessive.
223 (maybe_diag_overlap): Detect and diagnose excessive bounds via
225 (maybe_diag_offset_bounds): Rename...
226 (maybe_diag_access_bounds): ...to this.
227 (check_bounds_or_overlap): Adjust for name change above.
229 2019-02-11 Martin Sebor <msebor@redhat.com>
232 * builtins.c (max_object_size): Move from here...
233 * builtins.h (max_object_size): ...and here...
234 * tree.c (max_object_size): ...to here...
235 * tree.h (max_object_size): ...and here.
237 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com>
239 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
240 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
241 for correct semantics.
243 2019-02-11 Alan Modra <amodra@gmail.com>
245 * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
246 -mlongcall and -mpltseq.
247 (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
248 (RS/6000 and PowerPC Options <-mpltseq>): Document.
249 * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
250 * config/rs6000/sysv4.opt (mpltseq): New option.
251 * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
252 (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
253 support is lacking. Don't allow -mpltseq with -mbss-plt.
254 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
255 -mpltseq given for ELFv1.
256 * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
257 Only use UNSPEC_PLTSEQ for inline PLT calls.
258 (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only
259 use UNSPEC_PLTSEQ for inline PLT calls.
260 (rs6000_indirect_call_template_1, rs6000_longcall_ref),
261 (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
262 uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
263 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
264 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
265 (pltseq_mtctr_<mode>): Likewise.
267 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
269 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
271 * configure: Regenerate.
273 2019-02-11 Jakub Jelinek <jakub@redhat.com>
276 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
279 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
281 * function.c (assign_parm_setup_block): Use the stored
282 size, not the passed size, when allocating stack-space,
283 also for a parameter with alignment larger than
284 MAX_SUPPORTED_STACK_ALIGNMENT.
286 2019-02-11 Martin Liska <mliska@suse.cz>
289 * ipa-cp.c (build_toporder_info): Remove usage of a param.
290 * ipa-inline.c (inline_small_functions): Likewise.
291 * ipa-pure-const.c (propagate_pure_const): Likewise.
292 (propagate_nothrow): Likewise.
293 * ipa-reference.c (propagate): Likewise.
294 * ipa-utils.c (struct searchc_env): Remove unused field.
295 (searchc): Always search across AVAIL_INTERPOSABLE.
296 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
297 the only called IPA pure const can properly not propagate
298 across interposable boundary.
299 * ipa-utils.h (ipa_reduced_postorder): Remove param.
301 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com>
303 * config/nds32/nds32.md (call_internal, call_value_internal,
304 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
306 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
308 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
311 2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
313 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
316 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
318 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
320 2019-02-10 Jakub Jelinek <jakub@redhat.com>
322 PR tree-optimization/89268
323 * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
324 if preds is non-NULL.
326 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
329 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
332 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
334 * config/nds32/nds32.md (trap): New pattern.
336 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
338 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
341 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
343 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
346 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
348 * ipa-visibility.c (localize_node): Also do not localize
349 LDPR_PREVAILING_DEF_IRONLY_EXP.
351 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
354 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
355 instead of type_with_linkage.
357 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
360 * params.def (uninlined-function-insns, uninlined-function-time,
361 uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
362 bound so we don't get overflows.
364 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
366 * config/rs6000/rs6000-string.c (expand_compare_loop,
367 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
370 2019-02-09 Jakub Jelinek <jakub@redhat.com>
373 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
374 If !node->definition and TYPE_ARG_TYPES is non-NULL, use
375 TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
377 2019-02-09 Alan Modra <amodra@gmail.com>
380 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
381 case. Match logic in rs6000_emit_prologue emitting pic_offset_table
384 2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
387 * lra-constraints.c (process_alt_operands): Don't increase reject
388 for memory when offset memory is required.
390 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
392 * config/s390/vector.md: Implement vector copysign.
394 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
396 * expr.c (expand_constructor): Correct indentations.
398 2019-02-08 Richard Biener <rguenther@suse.de>
400 PR tree-optimization/89247
401 * tree-if-conv.c: Include tree-cfgcleanup.h.
402 (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
403 (tree_if_conversion): Pass through predicate vector.
404 (pass_if_conversion::execute): Do CFG cleanup and SSA update
405 inline, see if any if-converted loops we refrece in
406 LOOP_VECTORIZED calls vanished and fixup.
407 * tree-if-conv.h (tree_if_conversion): Adjust prototype.
409 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
411 * config/s390/constraints.md (jdd): New constraint.
413 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
416 * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
417 upper 16 vector registers without TARGET_AVX512VL.
418 (*movti_internal): Likewise.
420 2019-02-08 Jakub Jelinek <jakub@redhat.com>
422 PR rtl-optimization/89234
423 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
424 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
425 (copy_reg_eh_region_note_backward): Likewise.
427 2019-02-08 Richard Biener <rguenther@suse.de>
430 * tree-data-ref.c (initialize_matrix_A): Fail if constant
432 (analyze_subscript_affine_affine): Handle failure from
435 2019-02-08 Jakub Jelinek <jakub@redhat.com>
437 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
440 2019-02-07 David Malcolm <dmalcolm@redhat.com>
442 PR tree-optimization/86637
443 PR tree-optimization/89235
444 * tree-vect-loop.c (optimize_mask_stores): Add an
445 auto_purge_vect_location sentinel to ensure that vect_location is
448 (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
449 (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
450 to ensure that vect_location is purged on exit.
451 (pass_slp_vectorize::execute): Likewise, replacing the manual
453 * tree-vectorizer.h (class auto_purge_vect_location): New class.
455 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
457 * config/aarch64/iterators.md (max_opp): New code_attr.
458 (USMAX): New code iterator.
459 * config/aarch64/predicates.md (aarch64_smin): New predicate.
460 (aarch64_smax): Likewise.
461 * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
462 (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
465 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
468 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
470 (*movti_internal): Set mode to TI for TARGET_AVX512VL.
472 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
474 * config/s390/s390-builtin-types.def: Add new types.
475 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
476 (s390_vec_xlw4): Make the memory operand into a const pointer.
477 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
479 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
480 a new vector type with the alignment of the scalar memory operand.
482 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
483 Jakub Jelinek <jakub@redhat.com>
486 * config/arm/arm-protos.h (valid_operands_ldrd_strd,
487 arm_count_ldrdstrd_insns): New declarations.
488 * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
490 (valid_operands_ldrd_strd): New function.
491 (arm_count_ldrdstrd_insns): New function.
492 * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
493 sets instead of single DImode set and define new insns to match this.
495 2019-02-07 Tamar Christina <tamar.christina@arm.com>
497 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
498 Make it a C initializer.
500 2019-02-07 Tamar Christina <tamar.christina@arm.com>
503 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
505 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
507 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
508 Use neon_dot<q> for type.
509 (neon_<sup>dot_lane<vsi2qi>): Likewise.
511 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
513 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
514 Use neon_dot<q> for type.
515 (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
516 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
518 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
520 PR rtl-optimization/89225
521 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
524 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
526 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
527 after restoring registers saved to allocate the frame on Windows.
529 2019-02-06 Richard Biener <rguenther@suse.de>
531 PR tree-optimization/89182
532 * graphite.h (cached_scalar_evolution_in_region): Declare.
533 * graphite.c (struct seir_cache_key): New.
534 (struct sese_scev_hash): Likewise.
535 (seir_cache): New global.
536 (cached_scalar_evolution_in_region): New function.
537 (graphite_transform_loops): Allocate and release seir_cache.
538 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
539 cached_scalar_evolution_in_region.
540 * graphite-scop-detection.c (scop_detection::can_represent_loop):
542 (scop_detection::graphite_can_represent_expr: Use
543 cached_scalar_evolution_in_region.
544 (scop_detection::stmt_simple_for_scop_p): Likewise.
545 (find_params_in_bb): Likewise.
546 (gather_bbs::before_dom_children): Likewise.
547 * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
548 (add_loop_constraints): Likewise.
550 2019-02-06 Jakub Jelinek <jakub@redhat.com>
553 * fold-const-call.c (fold_const_vec_convert): Pass true as last
554 operand to new_unary_operation only if both element types are integral
555 and it isn't a widening conversion. Return NULL_TREE if
556 new_unary_operation failed.
558 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
561 * config/s390/s390.md: Remove load and test FP splitter.
563 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
566 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
567 expand_compare_loop, expand_block_compare_gpr,
568 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
569 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
570 #include "profile-count.h" and "predict.h" for types and functions
571 needed to work with REG_BR_PROB notes.
573 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
576 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
577 for the long branch case.
579 2019-02-05 Jakub Jelinek <jakub@redhat.com>
582 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
583 can throw, non-call exceptions are enabled and we can't delete
584 dead exceptions or alter cfg. Set must_clean if
585 delete_insn_and_edges returns true, don't set it blindly for calls.
586 Assert that delete_unreachable_blocks is called only if can_alter_cfg.
588 PR rtl-optimization/89195
589 * combine.c (make_extraction): For MEMs, don't extract bytes outside
592 2019-02-05 Martin Liska <mliska@suse.cz>
594 PR gcov-profile/89000
595 * gcov.c (function_summary): Remove argument.
596 (file_summary): New function.
597 (print_usage): Replace tabs with spaces.
598 (generate_results): Use new function file_summary.
600 2019-02-05 Jakub Jelinek <jakub@redhat.com>
603 * optabs.c (prepare_cmp_insn): Pass x and y to
604 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
606 2019-02-05 Richard Biener <rguenther@suse.de>
609 * bitmap.h (struct bitmap_obstack): Do not mark GTY.
610 (struct bitmap_element): Drop chain_prev so we properly recurse on
611 the prev member, supporting tree views.
612 (struct bitmap_head): GTY skip the obstack member.
614 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
617 * doc/extend.texi (Vector Extensions): Add an example of using vector
618 types together with x86 intrinsics.
620 2019-02-04 Alan Modra <amodra@gmail.com>
622 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
623 str[] size to 160, and comment.
625 2019-02-04 Alan Modra <amodra@gmail.com>
627 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
628 (rs6000_pltseq_template): Guard output of TLS markers with
630 (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
631 (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
632 to use inline PLT sequences.
633 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
634 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
635 (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
637 2019-02-04 Martin Liska <mliska@suse.cz>
640 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
641 out when ipa_fn_summaries does not contain entry for callee.
643 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
645 * config/sparc/sparc.h: Remove superfluous blank lines.
646 * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
647 (got_register_rtx): ...this.
648 (sparc_got): Adjust to above renaming.
649 (sparc_tls_got): Likewise.
650 (sparc_delegitimize_address): Likewise.
651 (sparc_output_mi_thunk): Likewise.
652 (sparc_init_pic_reg): Likewise.
653 (save_local_or_in_reg_p): Fix test on the GOT register.
654 (USE_HIDDEN_LINKONCE): Move around.
655 (get_pc_thunk_name): Likewise.
656 (gen_load_pcrel_sym): Likewise.
657 (load_got_register): Likewise.
659 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
661 * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
662 of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
664 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
666 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
669 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
671 * config.gcc (with_nds32_lib, glibc):
672 Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
673 * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
674 (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
676 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
679 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
680 Do not prefer (v,v) alternative for non-AVX targets and (m,v)
681 alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
682 (*rcpsf2_sse): Ditto.
683 (*rsqrtsf2_sse): Ditto.
684 (sse4_1_round<mode<2): Ditto.
686 2019-02-03 Richard Biener <rguenther@suse.de>
689 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
692 2019-02-02 Jakub Jelinek <jakub@redhat.com>
695 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
696 Punt with warning on aggregate return or argument types. Ignore
697 type/mode checking for uniform arguments.
699 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
701 * combine.c (try_combine): Do not print "Can't combine" messages unless
702 printing failed combination attempts.
704 2019-02-01 Martin Jambor <mjambor@suse.cz>
707 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
708 segment and global segment variables before making them static.
710 2019-02-01 Martin Jambor <mjambor@suse.cz>
712 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
713 missed optimization dump with dump_enabled_p.
715 2019-02-01 Richard Biener <rguenther@suse.de>
718 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
719 the instantiate cache.
720 (instantiate_scev_binary): Elide second operand procesing
721 if equal to the first.
722 * tree-chrec.c (chrec_contains_symbols): Add visited set.
723 (chrec_contains_undetermined): Likewise.
724 (tree_contains_chrecs): Likewise.
726 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
728 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
730 2019-02-01 Jakub Jelinek <jakub@redhat.com>
732 PR tree-optimization/89143
733 * wide-int-range.h (wide_int_range_absu): Declare.
734 * wide-int-range.cc (wide_int_range_absu): New function.
735 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
737 PR tree-optimization/88107
738 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
739 instead of assertion that eh_region_outermost is non-NULL, if it
740 is NULL, set *ALL to true and return NULL.
741 (move_sese_region_to_fn): Adjust caller, if all is set, call
742 duplicate_eh_regions with NULL region.
744 2019-02-01 Richard Biener <rguenth@suse.de>
746 PR rtl-optimization/88593
747 * mode-switching.c (optimize_mode_switching): Free dominators before
750 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
752 PR tree-optimization/88932
753 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
755 2019-01-31 Jakub Jelinek <jakub@redhat.com>
758 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
761 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
764 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
765 alternative to avoid partial SSE register stall for TARGET_AVX.
767 (sse4_1_round<mode>2): Ditto.
769 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
771 PR tree-optimization/89008
772 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
773 process anything of the form X * 0.
775 2019-01-31 Richard Biener <rguenther@suse.de>
777 PR tree-optimization/89135
778 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
781 2019-01-31 Jakub Jelinek <jakub@redhat.com>
784 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
785 always_inline callees into no_sanitize_address callers.
787 2019-01-31 Richard Biener <rguenther@suse.de>
789 PR rtl-optimization/89115
790 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
792 2019-01-30 Martin Sebor <msebor@redhat.com>
795 * doc/extend.texi (cast to a union): Correct and expand.
797 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
799 PR rtl-optimization/87246
800 * lra-constraints.c (simplify_operand_subreg): Reload memory
801 in subreg if the address became invalid.
803 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
806 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
807 Disable for little-endian.
809 2019-01-30 Richard Biener <rguenther@suse.de>
811 PR rtl-optimization/89115
812 * opts.c (default_options_optimization): Reduce
813 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
814 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
817 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
819 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
820 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
821 type of vector element when vec_extract is implemented by direct
824 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
826 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
828 2019-01-30 Richard Biener <rguenther@suse.de>
830 PR tree-optimization/89111
831 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
832 canonicalization to appropriately sized access types.
834 2019-01-30 Jakub Jelinek <jakub@redhat.com>
837 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
838 for arguments to functions that are TU-local and shouldn't be
839 referenced by assembly.
841 2019-01-30 Ulrich Drepper <drepper@redhat.com>
843 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
846 2019-01-29 Martin Sebor <msebor@redhat.com>
849 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
851 2019-01-29 Jakub Jelinek <jakub@redhat.com>
855 * omp-simd-clone.c (simd_clone_clauses_extract)
856 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
857 OMP_CLAUSE_ALIGNED_ALIGNMENT.
859 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
861 * config.gcc: Force .init_array for ARC.
863 2019-01-29 Richard Biener <rguenther@suse.de>
866 * dwarf2out.c (collect_skeleton_dies): New helper.
867 (copy_decls_for_unworthy_types): Call it.
868 (build_abbrev_table): Assert we do not try to replace
869 DW_AT_signature refs with local refs.
871 2019-01-28 Jakub Jelinek <jakub@redhat.com>
874 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
875 for lastprivate/linear IV, push gimplify context around gimplify_assign
876 and, if it needed any temporaries, pop it into a gimple bind around the
879 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
881 * common.opt (-Wattribute-alias): Remove "no-" from name.
882 Make -Wattribute-alias command line option and
883 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
885 2019-01-28 Jakub Jelinek <jakub@redhat.com>
888 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
889 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
891 (bmi2): Add missing @opindex.
892 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
893 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
894 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
895 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
896 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
897 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
898 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
899 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
900 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
901 xsavec, xsaveopt and xsaves options.
903 2019-01-28 Richard Biener <rguenther@suse.de>
906 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
909 2019-01-28 Richard Biener <rguenther@suse.de>
911 PR tree-optimization/88739
912 * tree-cfg.c (verify_types_in_gimple_reference): Verify
913 BIT_FIELD_REFs only are applied to mode-precision operands
914 when they are integral.
915 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
916 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
917 BIT_FIELD_REFs of non-mode-precision integral operands.
919 2019-01-27 Jakub Jelinek <jakub@redhat.com>
923 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
924 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
925 first constants in pairs are multiples of 2. Formatting fixes.
926 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
927 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
928 first constants in each quadruple are multiples of 4. Formatting fixes.
930 2019-01-26 Martin Jambor <mjambor@suse.cz>
933 * tree-inline.c: Include tree-cfgcleanup.h.
934 (delete_unreachable_blocks_update_callgraph): Move...
935 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
936 ...here, make externally visible, make second argument bool, adjust
938 * tree-cfgcleanup.c: Include cgraph.h.
939 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
941 * ipa-prop.c: Include tree-cfgcleanup.h.
942 (ipcp_transform_function): Call
943 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
945 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
947 PR rtl-optimization/88846
948 * ira.c (process_set_for_memref_referenced_p): New.
949 (memref_referenced_p): Add new param. Use
950 process_set_for_memref_referenced_p. Add new switch cases.
951 (memref_used_between_p): Pass new arg to memref_referenced_p.
953 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
956 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
957 argument ABI_BREAK. Set to true if the calculated alignment has
958 changed in gcc-9. Check bit-fields for their base type alignment.
959 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
960 (aarch64_function_arg_boundary): Likewise.
961 (aarch64_gimplify_va_arg_expr): Likewise.
963 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
966 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
967 instead of accessing TREE_INT_CST_ELT directly.
969 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
971 * doc/sourcebuild.texi (Environment attributes): Add fenv and
972 fenv_exceptions description.
974 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
976 PR rtl-optimization/87763
977 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
978 Allow SUBREG when matching CC_NZmode compare.
980 2019-01-25 Richard Biener <rguenther@suse.de>
982 PR tree-optimization/89049
983 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
984 Look at the pattern stmt to determine if the stmt is vectorized.
986 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
988 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
989 (pred_mov<mode>): Handle all-register forms using both a new
990 alternative and a split.
992 2019-01-25 Richard Biener <rguenther@suse.de>
994 PR tree-optimization/86865
995 * graphite-scop-detection.c (scop_detection::can_represent_loop):
996 Reject non-do-while loops.
998 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
1000 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
1001 * config/rs6000/constraints.md (Q constraint): Use REG_P.
1002 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
1003 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
1004 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
1005 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1006 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
1007 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
1008 vlogical_operand, gpc_reg_operand, int_reg_operand,
1009 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
1010 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
1011 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
1012 (save_world_operation, restore_world_operation, lmw_operation,
1013 stmw_operation): Use MEM_P and REG_P.
1014 (tie_operand): Use MEM_P.
1015 (vrsave_operation, crsave_operation): Use REG_P.
1016 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
1017 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
1018 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
1019 (call_operand): Use HARD_REGISTER_P.
1020 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
1022 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
1023 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
1024 quad_aligned_load_p, replace_swapped_aligned_store,
1025 recombine_lvx_pattern, replace_swapped_aligned_load,
1026 recombine_stvx_pattern): Use MEM_P.
1027 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
1028 Use MEM_P and SYMBOL_REF_P.
1029 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
1030 (insn_is_swappable_p): Use REG_P and MEM_P.
1031 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
1032 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
1034 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
1036 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
1038 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
1039 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
1040 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
1041 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
1043 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
1044 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
1045 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
1046 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
1047 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
1048 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
1049 rs6000_split_logical_di): Use CONST_INT_P.
1050 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
1051 REG_P and SYMBOL_REF_P.
1052 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
1053 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
1054 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
1055 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
1056 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
1057 (small_data_operand, print_operand_address): Use CONST_INT_P and
1059 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
1060 (rs6000_init_hard_regno_mode_ok, direct_move_p):
1061 Use HARD_REGISTER_NUM_P.
1062 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
1063 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
1064 SUBREG_P and SYMBOL_REF_P.
1065 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
1066 and HARD_REGISTER_NUM_P.
1067 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
1069 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
1070 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
1072 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
1073 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
1074 find_addr_reg): Use REG_P.
1075 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
1076 (rs6000_emit_le_vsx_move): Use SUBREG_P.
1077 (offsettable_ok_by_alignment, constant_pool_expr_p,
1078 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
1079 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
1080 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
1081 rs6000_assemble_integer, create_TOC_reference,
1082 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
1083 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
1084 (rs6000_split_vec_extract_var): Use reg_or_subregno.
1085 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
1086 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
1087 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1088 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1089 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
1090 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
1091 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
1092 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
1093 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
1094 and cbranch<mode>4): Use CONST_INT_P.
1095 (multiple define_splits): Use REG_P and SUBREG_P.
1096 (define_expands call, call_value): Use MEM_P.
1097 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
1098 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
1099 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
1100 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
1101 and HARD_REGISTER_NUM_P.
1102 (multiple define_splits): Use HARD_REGISTER_NUM_P.
1104 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
1106 PR rtl-optimization/88948
1107 * rtl.h (prepare_copy_insn): New prototype.
1108 * gcse.c (prepare_copy_insn): New function, split out from
1109 process_insert_insn.
1110 (process_insert_insn): Use prepare_copy_insn.
1111 * store-motion.c (replace_store_insn): Use prepare_copy_insn
1112 instead of gen_move_insn.
1114 2019-01-24 Jakub Jelinek <jakub@redhat.com>
1117 * config/i386/i386.c (ix86_pic_register_p): Return true for
1120 PR tree-optimization/88964
1121 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
1122 punt if HONOR_SNANS (chrec).
1125 * tree-nested.c (convert_nonlocal_reference_stmt,
1126 convert_local_reference_stmt, convert_tramp_reference_stmt,
1127 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
1128 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
1131 PR tree-optimization/89027
1132 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
1133 for "omp simd array" variables.
1135 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
1138 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
1139 force the alignment of m_val.
1141 2019-01-24 Richard Biener <rguenther@suse.de>
1144 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
1145 When in "legacy" debug mode make sure to reset self-origins.
1147 2019-01-24 Martin Liska <mliska@suse.cz>
1149 PR gcov-profile/88994
1150 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
1151 result will be always smaller or equal to the original.
1152 * gcov.c (mangle_name): Fix else branch where we should
1153 also copy to PTR and shift the pointer.
1155 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
1157 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
1158 * vr-values.c (find_case_label_ranges): Fix a comment typo.
1160 2019-01-23 Bin Cheng <bin.cheng@arm.com>
1161 Steve Ellcey <sellcey@marvell.com>
1164 * recog.c (address_operand): Return false on wrong mode for address.
1165 (constrain_operands): Check for mode with 'p' constraint.
1167 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
1170 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
1171 Disparage MMX alternative.
1172 (sse2_cvtpd2pi): Ditto.
1173 (sse2_cvttpd2pi): Ditto.
1175 2019-01-23 David Malcolm <dmalcolm@redhat.com>
1178 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
1179 use-after-free of the result of
1180 aarch64_get_extension_string_for_isa_flags.
1182 2019-01-23 Jakub Jelinek <jakub@redhat.com>
1185 * doc/extend.texi: Document break and continue behavior in
1186 statement expressions.
1188 2019-01-23 Richard Biener <rguenther@suse.de>
1190 PR tree-optimization/89008
1191 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
1192 not leave another stray operand.
1194 2019-01-23 Jakub Jelinek <jakub@redhat.com>
1196 * BASE-VER: Bump to 9.0.1.
1198 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
1200 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
1201 thunk that returns by reference, use the type of the return object
1202 of the thunk instead of that of the alias to build the dereference.
1204 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
1206 * config/arc/atomic.md: Add operand to DMB instruction.
1208 2019-01-23 Jakub Jelinek <jakub@redhat.com>
1210 PR tree-optimization/88964
1211 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
1212 build_zero_cst instead of build_int_cst. Return false for loop
1213 invariants which honor signed zeros.
1215 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
1217 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
1219 2019-01-22 Jakub Jelinek <jakub@redhat.com>
1222 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
1223 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
1224 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
1227 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
1228 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
1231 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
1232 Disable for little endian.
1234 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
1237 * config/arm/arm.c (arm_needs_double_word_align): Check
1238 DECL_BIT_FIELD_TYPE.
1240 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
1241 H.J. Lu <hongjiu.lu@intel.com>
1244 * config/i386/i386-builtin.def: Add mask2 to all builtin
1245 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
1247 * config/i386/i386.c (BDESC): Add mask2 to the definition.
1248 (BDESC_FIRST): Likewise.
1249 (define_builtin): Add an argument for mask2. Updated to handle
1250 both ix86_isa_flags and ix86_isa_flags2.
1251 (define_builtin_const): Likewise.
1252 (define_builtin_pure): Likewise.
1253 (define_builtin2): Deleted.
1254 (define_builtin_const2): Likewise.
1255 (builtin_description): Add a member, mask2.
1256 (bdesc_*): Add mask2 to builtin initializations.
1257 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
1258 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
1260 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
1262 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
1265 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
1268 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
1271 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
1272 alignment is dominated by a bitfield with 64-bit aligned base type.
1273 (arm_function_arg): Emit a warning if the alignment has changed since
1274 earlier GCC releases.
1275 (arm_function_arg_boundary): Likewise.
1276 (arm_setup_incoming_varargs): Likewise.
1278 2019-01-22 Richard Biener <rguenther@suse.de>
1280 PR tree-optimization/88862
1281 * graphite-scop-detection.c
1282 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
1284 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
1286 * doc/extend.tex (AMD GCN Function Attributes): New section.
1287 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
1288 * doc/invoke.texi (AMD GCN Options): New section.
1289 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
1291 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
1293 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
1294 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
1296 2019-01-22 Jakub Jelinek <jakub@redhat.com>
1298 PR tree-optimization/88044
1299 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
1300 is false in the first iteration, but !every_iteration, return false
1301 instead of true with niter->niter zero.
1303 PR rtl-optimization/88904
1304 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
1305 any nonequal registers before processing BB_END (b).
1308 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
1310 (expand_binop_directly, expand_doubleword_clz,
1311 expand_doubleword_popcount, expand_ctz, expand_ffs,
1312 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
1314 PR rtl-optimization/49429
1316 PR rtl-optimization/86334
1318 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
1319 addressable from here...
1320 (emit_block_op_via_libcall): ... to here.
1322 2019-01-22 Richard Biener <rguenther@suse.de>
1324 * tree-vect-loop.c (vect_analyze_loop_operations): Use
1325 auto_vec for cost vector to fix memleak.
1326 (vectorize_fold_left_reduction): Properly gather SLP defs.
1327 (vectorizable_comparison): Do not swap operands to properly
1330 2019-01-22 Alan Modra <amodra@gmail.com>
1333 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
1334 stays a reg. Allow a const_int.
1335 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
1336 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
1337 (IS_NOMARK_TLSGETADDR): Define.
1338 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
1339 (rs6000_output_tlsargs): New function.
1340 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
1341 __tls_get_addr call takes an arg.
1342 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
1343 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
1345 (call_value_nonlocal_sysv): ..or here, delete split.
1346 (tls_gdld_nomark): Delete.
1347 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
1348 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
1349 (call_value_nonlocal_sysv): Likewise.
1350 (call_value_nonlocal_sysv_secure): Likewise.
1351 (call_value_nonlocal_aix): Likewise.
1352 (call_value_indirect_aix): Likewise.
1353 (call_value_indirect_elfv2): Likewise.
1354 (call_value_local32, call_value_local64): Disable for no-mark tls.
1355 (call_value_local_aix): Likewise.
1357 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
1360 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
1361 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
1363 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
1365 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
1366 string contents as hash_map keys.
1368 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
1371 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
1372 for rvalue context. Handle rvalues correctly. Use min_align_of_type
1373 instead of TYPE_ALIGN.
1374 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
1375 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
1376 pointer from TYPE_STUB_DECL.
1378 2019-01-21 Richard Biener <rguenther@suse.de>
1380 PR tree-optimization/88934
1381 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
1382 at the possibly non-constant operand.
1383 (vect_get_constant_vectors): Adjust.
1385 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
1388 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
1389 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
1390 instead of _X86INTRIN_H_INCLUDED.
1391 * onfig/i386/clwbintrin.h: Likewise.
1392 * config/i386/pkuintrin.h: Likewise.
1393 * config/i386/prfchwintrin.h: Likewise.
1394 * config/i386/rdseedintrin.h: Likewise.
1395 * config/i386/wbnoinvdintrin.h: Likewise.
1396 * config/i386/xsavecintrin.h: Likewise.
1397 * config/i386/xsavesintrin.h: Likewise.
1398 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
1399 * config/i386/xsaveintrin.h: Likewise.
1400 * config/i386/xsaveoptintrin.h: Likewise.
1401 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
1402 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
1403 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
1404 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
1405 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
1406 * config/i386/immintrin.h: Here.
1408 2019-01-20 Martin Jambor <mjambor@suse.cz>
1411 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
1412 with aa_walk_budget.
1413 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
1414 aa_walk_budget_p parameter.
1415 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
1416 walk. Updated all callers.
1417 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
1418 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
1420 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
1421 parameter info. Extract info from fbi. Pass fbi to recursive calls
1422 and to unmodified_parm.
1423 (phi_result_unknown_predicate): New parameter fbi, removed parameter
1424 info, updated call to will_be_nonconstant_expr_predicate.
1425 (param_change_prob): New parameter fbi, limit AA walking.
1426 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
1427 calls to various above functions.
1428 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
1429 parameter. Use it to limit AA walking.
1430 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
1432 (detect_type_change): New parameter fbi, pass it on to
1433 detect_type_change_from_memory_writes.
1434 (detect_type_change_ssa): Likewise.
1435 (aa_overwalked): Removed.
1436 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
1437 accordingly, adjust to the neew AA limiting scheme.
1438 (parm_ref_data_preserved_p): Likewise.
1439 (ipa_compute_jump_functions_for_edge): Adjust call to
1441 (ipa_analyze_call_uses): Likewise.
1442 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
1443 (ipa_analyze_node): Initialize aa_walk_budget.
1444 (ipcp_transform_function): Likewise.
1445 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
1446 to get_dynamic_type.
1448 2019-01-19 Jakub Jelinek <jakub@redhat.com>
1450 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
1451 outside of #if CHECKING_P code.
1453 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
1455 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
1456 New function, split out from...
1457 (loop_versioning::analyze_stride): ...here.
1458 (loop_versioning::find_per_loop_multiplication): Use gassign.
1459 (loop_versioning::analyze_term_using_scevs): Return a success code.
1460 (loop_versioning::analyze_arbitrary_term): New function.
1461 (loop_versioning::analyze_address_fragment): Use
1462 analyze_arbitrary_term if all else fails.
1464 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
1467 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
1470 2019-01-18 Richard Biener <rguenther@suse.de>
1472 PR tree-optimization/88903
1473 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
1474 scalar stmts a SLP shift amount is composed of when detecting
1477 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
1480 * config/arm/arm-cpus.in (mp): New feature.
1482 (fgroup ARMv7ve): Add mp and sec features.
1483 (arch armv7-a): Add options to allow mp and sec extensions.
1484 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
1485 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
1486 extenstions to the base architecture.
1487 (cpu cortex-a8): Add sec extension to the base architecture.
1488 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
1489 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
1490 variants down to the base v7-a varaint.
1491 * config/arm/t-multilib (v7_a_arch_variants): New variable.
1492 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
1493 of permitted extensions for -march=armv7-a and for
1494 -mcpu=generic-armv7-a.
1496 2019-01-18 Martin Liska <mliska@suse.cz>
1498 * params.def: Fix comment.
1499 * tree-profile.c (gimple_init_gcov_profiler): Bump function
1501 (gimple_gen_ic_func_profiler): Likewise.
1503 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1505 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
1506 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
1507 and put in error checks for stack protector guard options.
1508 (aarch64_stack_protect_guard): New.
1509 (TARGET_STACK_PROTECT_GUARD): Define.
1510 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
1511 (reg_stack_protect_address<mode>): New.
1512 (stack_protect_set): Adjust for SSP_GLOBAL.
1513 (stack_protect_test): Likewise.
1514 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
1515 (-mstack-protector-guard): Likewise.
1516 (-mstack-protector-guard-offset): Likewise.
1518 2019-01-18 Jakub Jelinek <jakub@redhat.com>
1520 PR tree-optimization/86214
1521 * tree-inline.h (struct copy_body_data): Add
1522 add_clobbers_to_eh_landing_pads member.
1523 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
1524 (copy_edges_for_bb): Call it if EH edge destination is <
1525 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
1526 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
1527 if flag_stack_reuse != SR_NONE and clear it afterwards.
1529 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
1532 * doc/install.texi (with-multilib-list): Document for aarch64.
1534 2019-01-18 Jakub Jelinek <jakub@redhat.com>
1537 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
1538 (("..."))) with ("...").
1540 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
1542 * doc/extend.texi (Built-in Functions for Memory Model Aware
1543 Atomic Operations): Document atomic fetch and nand.
1545 2019-01-18 Martin Liska <mliska@suse.cz>
1546 Richard Biener <rguenther@suse.de>
1549 * cgraph.h (create_version_clone_with_body): Add new argument
1551 * cgraphclones.c (cgraph_node::create_version_clone): Add
1552 DECL_ATTRIBUTES to a newly created decl. And call
1553 valid_attribute_p so that proper cl_target_optimization_node
1554 is set for the newly created declaration.
1555 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
1557 (expand_target_clones): Do not call valid_attribute_p, it must
1559 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
1562 2019-01-17 Jakub Jelinek <jakub@redhat.com>
1565 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
1566 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
1567 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
1569 2019-01-17 Martin Sebor <msebor@redhat.com>
1572 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
1573 Handle anti-ranges the same as no range at all.
1575 2018-01-17 Steve Ellcey <sellcey@cavium.com>
1577 * config/aarch64/aarch64.c (cgraph.h): New include.
1578 (intl.h): New include.
1579 (supported_simd_type): New function.
1580 (currently_supported_simd_type): Ditto.
1581 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
1582 (aarch64_simd_clone_adjust): Ditto.
1583 (aarch64_simd_clone_usable): Ditto.
1584 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
1585 (TARGET_SIMD_CLONE_ADJUST): Ditto.
1586 (TARGET_SIMD_CLONE_USABLE): Ditto.
1587 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
1588 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
1591 2019-01-17 Martin Sebor <msebor@redhat.com>
1593 PR tree-optimization/88800
1594 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
1595 NO_WARNING bit here. Avoid folding out-of-bounds calls.
1596 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
1597 redundant argument. Add new argument and issue diagnostics under
1598 its control. Detect out-of-bounds access even with warnings
1600 (check_bounds_or_overlap): Change return type. Add argument.
1601 (wrestrict_dom_walker::check_call): Adjust.
1602 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
1603 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
1604 check_bounds_or_overlap's return value.
1605 (handle_builtin_stxncpy): Same.
1606 (handle_builtin_strcat): Same.
1608 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
1609 Kwok Cheung Yeung <kcy@codesourcery.com>
1610 Julian Brown <julian@codesourcery.com>
1611 Tom de Vries <tom@codesourcery.com>
1613 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
1615 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
1617 * doc/sourcebuild.texi: Document dg-require-effective-target
1618 llvm_binutils and offload_gcn.
1620 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
1621 Kwok Cheung Yeung <kcy@codesourcery.com>
1622 Julian Brown <julian@codesourcery.com>
1623 Tom de Vries <tom@codesourcery.com>
1625 * doc/sourcebuild.texi: Document dg-required-effective-target
1628 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
1629 Kwok Cheung Yeung <kcy@codesourcery.com>
1630 Julian Brown <julian@codesourcery.com>
1631 Tom de Vries <tom@codesourcery.com>
1632 Jan Hubicka <hubicka@ucw.cz>
1633 Martin Jambor <mjambor@suse.cz>
1635 * config.gcc: Add amdgcn*-*-amdhsa configuration.
1636 * configure.ac: Check for dlopen.
1637 * configure: Regenerate.
1639 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
1640 Kwok Cheung Yeung <kcy@codesourcery.com>
1641 Julian Brown <julian@codesourcery.com>
1642 Tom de Vries <tom@codesourcery.com>
1643 Jan Hubicka <hubicka@ucw.cz>
1644 Martin Jambor <mjambor@suse.cz>
1646 * common/config/gcn/gcn-common.c: New file.
1647 * config/gcn/driver-gcn.c: New file.
1648 * config/gcn/gcn-builtins.def: New file.
1649 * config/gcn/gcn-hsa.h: New file.
1650 * config/gcn/gcn-modes.def: New file.
1651 * config/gcn/gcn-opts.h: New file.
1652 * config/gcn/gcn-passes.def: New file.
1653 * config/gcn/gcn-protos.h: New file.
1654 * config/gcn/gcn-run.c: New file.
1655 * config/gcn/gcn-tree.c: New file.
1656 * config/gcn/gcn.c: New file.
1657 * config/gcn/gcn.h: New file.
1658 * config/gcn/gcn.opt: New file.
1659 * config/gcn/t-gcn-hsa: New file.
1661 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
1662 Kwok Cheung Yeung <kcy@codesourcery.com>
1663 Julian Brown <julian@codesourcery.com>
1664 Tom de Vries <tom@codesourcery.com>
1665 Jan Hubicka <hubicka@ucw.cz>
1666 Martin Jambor <mjambor@suse.cz>
1668 * config/gcn/constraints.md: New file.
1669 * config/gcn/gcn-valu.md: New file.
1670 * config/gcn/gcn.md: New file.
1671 * config/gcn/predicates.md: New file.
1673 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
1675 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
1676 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
1677 (stmt_uses_0_or_null_in_undefined_way): Likewise.
1678 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
1680 2019-01-17 Tamar Christina <tamar.christina@arm.com>
1683 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
1684 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
1685 it and document registers.
1687 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1689 * config/aarch64/aarch64.c (ares_tunings): Define.
1690 * config/aarch64/aarch64-cores.def (ares): Use the above.
1692 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
1696 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
1698 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
1699 (_mm512_fixupimm_round_pd): Update parameters and builtin.
1700 (_mm512_maskz_fixupimm_round_pd): Ditto.
1701 (_mm512_fixupimm_round_ps): Ditto.
1702 (_mm512_maskz_fixupimm_round_ps): Ditto.
1703 (_mm_fixupimm_round_sd): Ditto.
1704 (_mm_maskz_fixupimm_round_sd): Ditto.
1705 (_mm_fixupimm_round_ss): Ditto.
1706 (_mm_maskz_fixupimm_round_ss): Ditto.
1707 (_mm512_fixupimm_pd): Ditto.
1708 (_mm512_maskz_fixupimm_pd): Ditto.
1709 (_mm512_fixupimm_ps): Ditto.
1710 (_mm512_maskz_fixupimm_ps): Ditto.
1711 (_mm_fixupimm_sd): Ditto.
1712 (_mm_maskz_fixupimm_sd): Ditto.
1713 (_mm_fixupimm_ss): Ditto.
1714 (_mm_maskz_fixupimm_ss): Ditto.
1715 (_mm512_mask_fixupimm_round_pd): Update builtin.
1716 (_mm512_mask_fixupimm_round_ps): Ditto.
1717 (_mm_mask_fixupimm_round_sd): Ditto.
1718 (_mm_mask_fixupimm_round_ss): Ditto.
1719 (_mm512_mask_fixupimm_pd): Ditto.
1720 (_mm512_mask_fixupimm_ps): Ditto.
1721 (_mm_mask_fixupimm_sd): Ditto.
1722 (_mm_mask_fixupimm_ss): Ditto.
1723 * config/i386/avx512vlintrin.h:
1724 (_mm256_fixupimm_pd): Update parameters and builtin.
1725 (_mm256_maskz_fixupimm_pd): Ditto.
1726 (_mm256_fixupimm_ps): Ditto.
1727 (_mm256_maskz_fixupimm_ps): Ditto.
1728 (_mm_fixupimm_pd): Ditto.
1729 (_mm_maskz_fixupimm_pd): Ditto.
1730 (_mm_fixupimm_ps): Ditto.
1731 (_mm_maskz_fixupimm_ps): Ditto.
1732 (_mm256_mask_fixupimm_pd): Update builtin.
1733 (_mm256_mask_fixupimm_ps): Ditto.
1734 (_mm_mask_fixupimm_pd): Ditto.
1735 (_mm_mask_fixupimm_ps): Ditto.
1736 * config/i386/i386-builtin-types.def: Add new types and remove useless ones.
1737 * config/i386/i386-builtin.def: Update builtin definitions.
1738 * config/i386/i386.c: Handle new builtin types and remove useless ones.
1739 * config/i386/sse.md: Update VFIXUPIMM* patterns.
1740 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
1741 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
1742 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
1743 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
1744 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
1745 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
1746 * config/i386/subst.md:
1747 (round_saeonly_sd_mask_operand4): Add new subst_attr.
1748 (round_saeonly_sd_mask_op4): Ditto.
1749 (round_saeonly_expand_operand5): Ditto.
1750 (round_saeonly_expand): Update.
1752 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
1756 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
1758 * config/i386/sse.md: Combine VFIXUPIMM* patterns
1759 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
1760 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
1761 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
1762 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
1763 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
1764 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
1766 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
1770 2018-12-15 Jakub Jelinek <jakub@redhat.com>
1773 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
1774 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
1775 instead of UNSPEC_FIXUPIMM.
1777 2019-01-17 Richard Biener <rguenther@suse.de>
1780 * dwarf2out.c (want_pubnames): Never generate pubnames sections
1781 and friends for the LTO part of debug info.
1783 2019-01-17 Jakub Jelinek <jakub@redhat.com>
1785 PR tree-optimization/86214
1786 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
1789 PR rtl-optimization/88870
1790 * dce.c (deletable_insn_p): Never delete const/pure calls that can
1791 throw if we can't alter the cfg or delete dead exceptions.
1792 (mark_insn): Don't call find_call_stack_args for such calls.
1794 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
1796 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
1797 prototypes for vec_st.
1798 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
1799 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
1800 mainly on signed/unsigned long long and double.
1802 2019-01-16 David Malcolm <dmalcolm@redhat.com>
1805 * combine.c (delete_noop_moves): Convert to "bool" return,
1806 returning true if any edges are eliminated.
1807 (combine_instructions): Also return true if delete_noop_moves
1810 2019-01-16 Tamar Christina <tamar.christina@arm.com>
1812 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
1813 correct max nunits for endian swap.
1814 (aarch64_expand_fcmla_builtin): Correct subreg code.
1815 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
1816 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
1819 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
1821 * config/alpha/alpha.c (alpha_gimplify_va_arg):
1822 Handle split indirect COMPLEX_TYPE arguments.
1824 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
1827 * config/aarch64/aarch64-modes.def: Add comment about how the carry
1828 bit is set by add and compare.
1829 (CC_ADC): New CC_MODE.
1830 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
1831 to cache the code and mode of X. Adjust the shape of a CC_Cmode
1832 comparison. Add detection for CC_ADCmode.
1833 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
1835 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
1836 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
1837 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
1838 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
1839 to eliminate the need for zero-extending the operands.
1840 (add<mode>3_compareC_imm): Delete. Merge into ...
1841 (add<mode>3_compareC): ... this. Restructure the comparison to
1842 eliminate the need for zero-extending the operands.
1843 (add<mode>3_carryin): Use LTU for the overflow detection.
1844 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
1845 Reexpress comparison for overflow.
1846 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
1847 (add<mode>3_carryinC): Likewise.
1848 (add<mode>3_carryinV): Use LTU for carry between partials.
1849 * config/aarch64/predicates.md (aarch64_carry_operation): Update
1850 handling of CC_Cmode and add CC_ADCmode.
1851 (aarch64_borrow_operation): Likewise.
1853 2019-01-16 Tamar Christina <tamar.christina@arm.com>
1855 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
1856 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
1857 * config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
1858 neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
1860 2019-01-16 Martin Liska <mliska@suse.cz>
1862 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
1864 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
1866 * gcc.c (add_sysrooted_hdrs_prefix): New function.
1867 (path_prefix_reset): Move up in the source file.
1868 (find_fortran_preinclude_file): Make complex search for the
1869 fortran header files.
1871 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
1873 * godump.c (go_output_typedef): When outputting a typedef, refer
1874 to the underlying type by its name and not its structure.
1876 2019-01-15 David Malcolm <dmalcolm@redhat.com>
1879 * tree.c (build_function_type): Assert that arg_types is not
1882 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
1885 * doc/extend.texi: Document that listing the stack pointer in the
1886 clobber list of an asm is a deprecated feature.
1887 * common.opt (Wdeprecated): Moved from c-family/c.opt.
1888 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
1889 warning instead of an error for clobbers of the stack pointer.
1890 Add a note explaining why.
1892 2019-01-15 Richard Biener <rguenther@suse.de>
1895 * dwarf2out.c (gen_member_die): Do not generate inheritance
1898 2019-01-15 Richard Biener <rguenther@suse.de>
1900 PR tree-optimization/88855
1901 * tree-if-conv.c (combine_blocks): Collect
1902 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
1904 2019-01-15 Tom de Vries <tdevries@suse.de>
1907 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
1908 lhs == NULL_TREE for gang-level reduction.
1910 2019-01-15 Richard Biener <rguenther@suse.de>
1911 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1914 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
1915 return true if SSA_NAME is already marked in visited bitmap.
1916 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
1918 2019-01-15 Jakub Jelinek <jakub@redhat.com>
1920 PR tree-optimization/88775
1921 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
1922 equal == 0 equality pointer comparisons some more if compared in
1923 integral types and either one points to an automatic var and the
1924 other to a global, or we can prove at least one points to the middle
1925 or both point to start or both point to end.
1927 2019-01-14 Andi Kleen <ak@linux.intel.com>
1929 * Makefile.in: Lower autofdo sampling rate by 10x.
1930 * Makefile.tpl: Dito.
1932 2019-01-14 Tom Honermann <tom@honermann.net>
1934 * defaults.h: Define CHAR8_TYPE.
1936 2019-01-14 Martin Sebor <msebor@redhat.com>
1939 * doc/extend.texi (Darwin Format Checks): Clarify.
1941 2019-01-14 Richard Biener <rguenther@suse.de>
1943 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
1944 whether we are in (simplify ...) or (match ...) context.
1946 2019-01-14 Jakub Jelinek <jakub@redhat.com>
1948 PR rtl-optimization/88796
1949 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
1950 * cfgexpand.c (stack_protect_prologue): Initialize
1951 crtl->stack_protect_guard_decl.
1952 * function.c (stack_protect_epilogue): Use it instead of calling
1953 targetm.stack_protect_guard again.
1954 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
1955 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
1956 crtl->stack_protect_guard_decl.
1957 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
1958 on the returned MEM_EXPR.
1960 2019-01-12 Tom de Vries <tdevries@suse.de>
1962 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
1963 vector length using -fopenacc-dim.
1965 2019-01-12 Tom de Vries <tdevries@suse.de>
1967 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
1968 lengths into account.
1970 2019-01-12 Svante Signell <svante.signell@gmail.com>
1972 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
1973 (TARGET_CAN_SPLIT_STACK): Define.
1974 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
1976 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
1978 * params.def (inline-unit-growth): Set to 40.
1980 2019-01-12 Jakub Jelinek <jakub@redhat.com>
1982 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
1984 2019-01-12 Tom de Vries <tdevries@suse.de>
1986 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
1987 region calling vector-partitionable routine, set default_vector_length
1990 2019-01-12 Tom de Vries <tdevries@suse.de>
1992 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
1993 variable default_vector_length.
1995 2019-01-12 Tom de Vries <tdevries@suse.de>
1998 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
1999 from oacc_default_dims, as oacc_validate_dims would do it, and apply
2002 2019-01-12 Tom de Vries <tdevries@suse.de>
2004 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
2005 (nvptx_goacc_validate_dims): Add used parameter.
2006 * doc/tm.texi: Regenerate.
2007 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
2008 argument to call to targetm.goacc.validate_dims.
2009 (default_goacc_validate_dims): Add used
2011 * target.def (validate_dims): Add used parameter in DEFHOOK.
2012 * targhooks.h (default_goacc_validate_dims): Add used parameter.
2014 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2018 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
2020 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
2021 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
2022 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
2023 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
2025 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
2027 PR rtl-optimization/87305
2029 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
2030 for little endian pseudos used as paradoxical subreg.
2032 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2034 PR tree-optimization/88693
2035 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
2036 for STRING_CSTs that don't contain any NUL characters in the first
2037 TREE_STRING_LENGTH bytes.
2039 2019-01-11 Alan Modra <amodra@gmail.com>
2043 * genattrtab.c (min_fn): Don't translate values.
2044 (min_attr_value): Return INT_MAX when the value can't be calculated.
2045 Return minimum among any values that can be calculated.
2046 (max_attr_value): Adjust.
2048 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2050 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
2052 2019-01-11 Steve Ellcey <sellcey@marvell.com>
2054 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
2055 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
2056 (aarch64_return_call_with_max_clobbers): New function.
2057 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
2058 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
2060 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
2061 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
2062 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
2063 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
2064 * cselib.c (cselib_process_insn): Add argument to
2065 targetm.hard_regno_call_part_clobbered call.
2066 * ira-conflicts.c (ira_build_conflicts): Ditto.
2067 * ira-costs.c (ira_tune_allocno_costs): Ditto.
2068 * lra-constraints.c (inherit_reload_reg): Ditto.
2069 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
2070 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
2071 argument. Call targetm.return_call_with_max_clobbers.
2072 Add argument to targetm.hard_regno_call_part_clobbered call.
2073 (calls_have_same_clobbers_p): New function.
2074 (process_bb_lives): Add call_insn and last_call_insn variables.
2075 Pass call_insn to check_pseudos_live_through_calls.
2076 Modify if stmt to check targetm.return_call_with_max_clobbers.
2077 Update setting of flush variable.
2078 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
2080 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
2081 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
2082 targetm.hard_regno_call_part_clobbered call.
2083 * reginfo.c (choose_hard_reg_mode): Ditto.
2084 * regrename.c (check_new_reg_p): Ditto.
2085 * reload.c (find_equiv_reg): Ditto.
2086 * reload1.c (emit_reload_insns): Ditto.
2087 * sched-deps.c (deps_analyze_insn): Ditto.
2088 * sel-sched.c (init_regs_for_mode): Ditto.
2089 (mark_unavailable_hard_regs): Ditto.
2090 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
2091 * target.def (hard_regno_call_part_clobbered): Add insn argument.
2092 (return_call_with_max_clobbers): New target function.
2093 * doc/tm.texi: Regenerate.
2094 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
2095 * hooks.c (hook_bool_uint_mode_false): Change to
2096 hook_bool_insn_uint_mode_false.
2097 * hooks.h (hook_bool_uint_mode_false): Ditto.
2099 2019-01-11 Steve Ellcey <sellcey@marvell.com>
2101 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
2102 (aarch64_remove_extra_call_preserved_regs): New function.
2103 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
2104 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
2105 * doc/tm.texi: Regenerate.
2106 * final.c (get_call_reg_set_usage): Call new hook.
2107 * target.def (remove_extra_call_preserved_regs): New hook.
2108 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
2109 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
2111 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2114 * passes.c (finish_optimization_passes): Call print_combine_total_stats
2115 inside of pass_combine_1 dump rather than pass_profile_1.
2117 2019-01-11 Tom de Vries <tdevries@suse.de>
2119 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
2120 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
2121 (PTX_NUM_PER_WORKER_BARRIERS): Define.
2122 (nvptx_apply_dim_limits): Prevent vector_length 64 and
2125 2019-01-11 Tom de Vries <tdevries@suse.de>
2127 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
2129 2019-01-11 Jan Beulich <jbeulich@suse.com>
2131 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
2132 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
2133 sse2_cvtsi2sd): Add {l}.
2134 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
2137 2019-01-10 Jakub Jelinek <jakub@redhat.com>
2140 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
2142 (*float<floatunssuffix>v2div2sf2): New define_insn.
2143 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
2144 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
2145 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
2146 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
2147 match_operands with "const0_operand" "C".
2149 2019-01-10 Tamar Christina <tamar.christina@arm.com>
2151 * config/aarch64/aarch64-builtins.c
2152 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
2153 (aarch64_init_simd_builtins): ...Here
2155 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
2157 PR rtl-optimization/87305
2159 (setup_live_pseudos_and_spill_after_risky_transforms): Check
2160 allocation for big endian pseudos used as paradoxical subregs and
2161 spill them if it is wrong.
2162 * lra-constraints.c (lra_constraints): Add a comment.
2164 2019-01-10 Richard Biener <rguenther@suse.de>
2166 PR tree-optimization/88792
2167 * tree-ssa-pre.c (get_representative_for): Do not return a
2170 2019-01-10 Jakub Jelinek <jakub@redhat.com>
2174 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
2175 (assign_parm_setup_block): Do the argument slot realignment here
2178 2019-01-10 Stefan Agner <stefan@agner.ch>
2181 * config/arm/arm.c (arm_option_override_internal): Force
2182 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
2184 2019-01-10 Jakub Jelinek <jakub@redhat.com>
2187 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
2190 2019-01-10 Tamar Christina <tamar.christina@arm.com>
2192 * config/arm/arm-builtins.c
2193 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
2194 (MAC_LANE_PAIR_QUALIFIERS): New.
2195 (arm_expand_builtin_args): Use it.
2196 (arm_expand_builtin_1): Likewise.
2197 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
2198 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
2199 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
2200 * config/arm/arm_neon.h:
2201 (vcadd_rot90_f16): New.
2202 (vcaddq_rot90_f16): New.
2203 (vcadd_rot270_f16): New.
2204 (vcaddq_rot270_f16): New.
2207 (vcmla_lane_f16): New.
2208 (vcmla_laneq_f16): New.
2209 (vcmlaq_lane_f16): New.
2210 (vcmlaq_laneq_f16): New.
2211 (vcmla_rot90_f16): New.
2212 (vcmlaq_rot90_f16): New.
2213 (vcmla_rot90_lane_f16): New.
2214 (vcmla_rot90_laneq_f16): New.
2215 (vcmlaq_rot90_lane_f16): New.
2216 (vcmlaq_rot90_laneq_f16): New.
2217 (vcmla_rot180_f16): New.
2218 (vcmlaq_rot180_f16): New.
2219 (vcmla_rot180_lane_f16): New.
2220 (vcmla_rot180_laneq_f16): New.
2221 (vcmlaq_rot180_lane_f16): New.
2222 (vcmlaq_rot180_laneq_f16): New.
2223 (vcmla_rot270_f16): New.
2224 (vcmlaq_rot270_f16): New.
2225 (vcmla_rot270_lane_f16): New.
2226 (vcmla_rot270_laneq_f16): New.
2227 (vcmlaq_rot270_lane_f16): New.
2228 (vcmlaq_rot270_laneq_f16): New.
2229 (vcadd_rot90_f32): New.
2230 (vcaddq_rot90_f32): New.
2231 (vcadd_rot270_f32): New.
2232 (vcaddq_rot270_f32): New.
2235 (vcmla_lane_f32): New.
2236 (vcmla_laneq_f32): New.
2237 (vcmlaq_lane_f32): New.
2238 (vcmlaq_laneq_f32): New.
2239 (vcmla_rot90_f32): New.
2240 (vcmlaq_rot90_f32): New.
2241 (vcmla_rot90_lane_f32): New.
2242 (vcmla_rot90_laneq_f32): New.
2243 (vcmlaq_rot90_lane_f32): New.
2244 (vcmlaq_rot90_laneq_f32): New.
2245 (vcmla_rot180_f32): New.
2246 (vcmlaq_rot180_f32): New.
2247 (vcmla_rot180_lane_f32): New.
2248 (vcmla_rot180_laneq_f32): New.
2249 (vcmlaq_rot180_lane_f32): New.
2250 (vcmlaq_rot180_laneq_f32): New.
2251 (vcmla_rot270_f32): New.
2252 (vcmlaq_rot270_f32): New.
2253 (vcmla_rot270_lane_f32): New.
2254 (vcmla_rot270_laneq_f32): New.
2255 (vcmlaq_rot270_lane_f32): New.
2256 (vcmlaq_rot270_laneq_f32): New.
2257 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
2258 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180, vcmla_lane270,
2259 vcmla_laneq0, vcmla_laneq90, vcmla_laneq180, vcmla_laneq270,
2260 vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180, vcmlaq_lane270): New.
2261 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
2262 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
2263 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
2264 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
2265 (arm_option_reconfigure_globals): Use them.
2266 * config/arm/iterators.md (VDF, VQ_HSF): New.
2267 (VCADD, VCMLA): New.
2268 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
2269 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>): New.
2270 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
2271 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
2273 2019-01-10 Tamar Christina <tamar.christina@arm.com>
2275 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_lane_pair_index.
2276 (emit-rtl.h): Include.
2277 (TYPES_QUADOP_LANE_PAIR): New.
2278 (aarch64_simd_expand_args): Use it.
2279 (aarch64_simd_expand_builtin): Likewise.
2280 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): New.
2281 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
2282 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
2283 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
2284 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
2285 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
2286 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
2287 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
2288 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
2289 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
2290 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
2291 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add __ARM_FEATURE_COMPLEX.
2292 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0, fcmla90,
2293 fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, fcmla_lane270,
2294 fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, fcmla_laneq270,
2295 fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, fcmlaq_lane270): New.
2296 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
2297 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,aarch64_fcadd<rot><mode>,
2298 aarch64_fcmla<rot><mode>): New.
2299 * config/aarch64/arm_neon.h:
2300 (vcadd_rot90_f16): New.
2301 (vcaddq_rot90_f16): New.
2302 (vcadd_rot270_f16): New.
2303 (vcaddq_rot270_f16): New.
2306 (vcmla_lane_f16): New.
2307 (vcmla_laneq_f16): New.
2308 (vcmlaq_lane_f16): New.
2309 (vcmlaq_rot90_lane_f16): New.
2310 (vcmla_rot90_laneq_f16): New.
2311 (vcmla_rot90_lane_f16): New.
2312 (vcmlaq_rot90_f16): New.
2313 (vcmla_rot90_f16): New.
2314 (vcmlaq_laneq_f16): New.
2315 (vcmla_rot180_laneq_f16): New.
2316 (vcmla_rot180_lane_f16): New.
2317 (vcmlaq_rot180_f16): New.
2318 (vcmla_rot180_f16): New.
2319 (vcmlaq_rot90_laneq_f16): New.
2320 (vcmlaq_rot270_laneq_f16): New.
2321 (vcmlaq_rot270_lane_f16): New.
2322 (vcmla_rot270_laneq_f16): New.
2323 (vcmlaq_rot270_f16): New.
2324 (vcmla_rot270_f16): New.
2325 (vcmlaq_rot180_laneq_f16): New.
2326 (vcmlaq_rot180_lane_f16): New.
2327 (vcmla_rot270_lane_f16): New.
2328 (vcadd_rot90_f32): New.
2329 (vcaddq_rot90_f32): New.
2330 (vcaddq_rot90_f64): New.
2331 (vcadd_rot270_f32): New.
2332 (vcaddq_rot270_f32): New.
2333 (vcaddq_rot270_f64): New.
2337 (vcmla_lane_f32): New.
2338 (vcmla_laneq_f32): New.
2339 (vcmlaq_lane_f32): New.
2340 (vcmlaq_laneq_f32): New.
2341 (vcmla_rot90_f32): New.
2342 (vcmlaq_rot90_f32): New.
2343 (vcmlaq_rot90_f64): New.
2344 (vcmla_rot90_lane_f32): New.
2345 (vcmla_rot90_laneq_f32): New.
2346 (vcmlaq_rot90_lane_f32): New.
2347 (vcmlaq_rot90_laneq_f32): New.
2348 (vcmla_rot180_f32): New.
2349 (vcmlaq_rot180_f32): New.
2350 (vcmlaq_rot180_f64): New.
2351 (vcmla_rot180_lane_f32): New.
2352 (vcmla_rot180_laneq_f32): New.
2353 (vcmlaq_rot180_lane_f32): New.
2354 (vcmlaq_rot180_laneq_f32): New.
2355 (vcmla_rot270_f32): New.
2356 (vcmlaq_rot270_f32): New.
2357 (vcmlaq_rot270_f64): New.
2358 (vcmla_rot270_lane_f32): New.
2359 (vcmla_rot270_laneq_f32): New.
2360 (vcmlaq_rot270_lane_f32): New.
2361 (vcmlaq_rot270_laneq_f32): New.
2362 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
2363 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
2364 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
2365 (FCADD, FCMLA): New.
2367 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
2369 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
2373 * config/pa/pa.c: Change "can not" to "cannot".
2374 * gimple-ssa-evrp-analyze.c: Likewise.
2375 * ipa-icf.c: Likewise.
2376 * ipa-polymorphic-call.c: Likewise.
2377 * ipa-pure-const.c: Likewise.
2378 * lra-constraints.c: Likewise.
2379 * lra-remat.c: Likewise.
2380 * reload1.c: Likewise.
2381 * reorg.c: Likewise.
2382 * tree-ssa-uninit.c: Likewise.
2384 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
2388 * Makefile.in: Mechanically replace "can not" with "cannot".
2389 * alias.c: Likewise.
2390 * builtins.c: Likewise.
2391 * calls.c: Likewise.
2392 * cgraph.c: Likewise.
2393 * cgraph.h: Likewise.
2394 * cgraphclones.c: Likewise.
2395 * cgraphunit.c: Likewise.
2396 * combine-stack-adj.c: Likewise.
2397 * combine.c: Likewise.
2398 * common/config/i386/i386-common.c: Likewise.
2399 * config/aarch64/aarch64.c: Likewise.
2400 * config/alpha/sync.md: Likewise.
2401 * config/arc/arc.c: Likewise.
2402 * config/arc/predicates.md: Likewise.
2403 * config/arm/arm-c.c: Likewise.
2404 * config/arm/arm.c: Likewise.
2405 * config/arm/arm.h: Likewise.
2406 * config/arm/arm.md: Likewise.
2407 * config/arm/cortex-r4f.md: Likewise.
2408 * config/csky/csky.c: Likewise.
2409 * config/csky/csky.h: Likewise.
2410 * config/darwin-f.c: Likewise.
2411 * config/epiphany/epiphany.md: Likewise.
2412 * config/i386/i386.c: Likewise.
2413 * config/i386/sol2.h: Likewise.
2414 * config/m68k/m68k.c: Likewise.
2415 * config/mcore/mcore.h: Likewise.
2416 * config/microblaze/microblaze.md: Likewise.
2417 * config/mips/20kc.md: Likewise.
2418 * config/mips/sb1.md: Likewise.
2419 * config/nds32/nds32.c: Likewise.
2420 * config/nds32/predicates.md: Likewise.
2421 * config/pa/pa.c: Likewise.
2422 * config/rs6000/e300c2c3.md: Likewise.
2423 * config/rs6000/rs6000.c: Likewise.
2424 * config/s390/s390.h: Likewise.
2425 * config/sh/sh.c: Likewise.
2426 * config/sh/sh.md: Likewise.
2427 * config/spu/vmx2spu.h: Likewise.
2428 * cprop.c: Likewise.
2429 * dbxout.c: Likewise.
2430 * df-scan.c: Likewise.
2431 * doc/cfg.texi: Likewise.
2432 * doc/extend.texi: Likewise.
2433 * doc/fragments.texi: Likewise.
2434 * doc/gty.texi: Likewise.
2435 * doc/invoke.texi: Likewise.
2436 * doc/lto.texi: Likewise.
2437 * doc/md.texi: Likewise.
2438 * doc/objc.texi: Likewise.
2439 * doc/rtl.texi: Likewise.
2440 * doc/tm.texi: Likewise.
2442 * emit-rtl.c: Likewise.
2443 * emit-rtl.h: Likewise.
2444 * except.c: Likewise.
2445 * expmed.c: Likewise.
2447 * fold-const.c: Likewise.
2448 * genautomata.c: Likewise.
2449 * gimple-fold.c: Likewise.
2450 * hard-reg-set.h: Likewise.
2451 * ifcvt.c: Likewise.
2452 * ipa-comdats.c: Likewise.
2453 * ipa-cp.c: Likewise.
2454 * ipa-devirt.c: Likewise.
2455 * ipa-fnsummary.c: Likewise.
2456 * ipa-icf.c: Likewise.
2457 * ipa-inline-transform.c: Likewise.
2458 * ipa-inline.c: Likewise.
2459 * ipa-polymorphic-call.c: Likewise.
2460 * ipa-profile.c: Likewise.
2461 * ipa-prop.c: Likewise.
2462 * ipa-pure-const.c: Likewise.
2463 * ipa-reference.c: Likewise.
2464 * ipa-split.c: Likewise.
2465 * ipa-visibility.c: Likewise.
2467 * ira-build.c: Likewise.
2468 * ira-color.c: Likewise.
2469 * ira-conflicts.c: Likewise.
2470 * ira-costs.c: Likewise.
2471 * ira-int.h: Likewise.
2472 * ira-lives.c: Likewise.
2475 * loop-invariant.c: Likewise.
2476 * loop-unroll.c: Likewise.
2477 * lower-subreg.c: Likewise.
2478 * lra-assigns.c: Likewise.
2479 * lra-constraints.c: Likewise.
2480 * lra-eliminations.c: Likewise.
2481 * lra-lives.c: Likewise.
2482 * lra-remat.c: Likewise.
2483 * lra-spills.c: Likewise.
2485 * lto-cgraph.c: Likewise.
2486 * lto-streamer-out.c: Likewise.
2487 * postreload-gcse.c: Likewise.
2488 * predict.c: Likewise.
2489 * profile-count.h: Likewise.
2490 * profile.c: Likewise.
2491 * recog.c: Likewise.
2493 * reload.c: Likewise.
2494 * reload1.c: Likewise.
2495 * reorg.c: Likewise.
2496 * resource.c: Likewise.
2497 * rtl.def: Likewise.
2499 * rtlanal.c: Likewise.
2500 * sched-deps.c: Likewise.
2501 * sched-ebb.c: Likewise.
2502 * sched-rgn.c: Likewise.
2503 * sel-sched-ir.c: Likewise.
2504 * sel-sched.c: Likewise.
2505 * shrink-wrap.c: Likewise.
2506 * simplify-rtx.c: Likewise.
2507 * symtab.c: Likewise.
2508 * target.def: Likewise.
2509 * toplev.c: Likewise.
2510 * tree-call-cdce.c: Likewise.
2511 * tree-cfg.c: Likewise.
2512 * tree-complex.c: Likewise.
2513 * tree-core.h: Likewise.
2514 * tree-eh.c: Likewise.
2515 * tree-inline.c: Likewise.
2516 * tree-loop-distribution.c: Likewise.
2517 * tree-nrv.c: Likewise.
2518 * tree-profile.c: Likewise.
2519 * tree-sra.c: Likewise.
2520 * tree-ssa-alias.c: Likewise.
2521 * tree-ssa-dce.c: Likewise.
2522 * tree-ssa-dom.c: Likewise.
2523 * tree-ssa-forwprop.c: Likewise.
2524 * tree-ssa-loop-im.c: Likewise.
2525 * tree-ssa-loop-ivcanon.c: Likewise.
2526 * tree-ssa-loop-ivopts.c: Likewise.
2527 * tree-ssa-loop-niter.c: Likewise.
2528 * tree-ssa-phionlycprop.c: Likewise.
2529 * tree-ssa-phiopt.c: Likewise.
2530 * tree-ssa-propagate.c: Likewise.
2531 * tree-ssa-threadedge.c: Likewise.
2532 * tree-ssa-threadupdate.c: Likewise.
2533 * tree-ssa-uninit.c: Likewise.
2534 * tree-ssanames.c: Likewise.
2535 * tree-streamer-out.c: Likewise.
2538 * vr-values.c: Likewise.
2540 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
2542 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
2543 (ix86_split_xorsign): Ditto.
2544 * config/i386/i386.c (ix86_expand_xorsign): New function.
2545 (ix86_split_xorsign): Ditto.
2546 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
2547 (xorsign<mode>3): New expander.
2548 (xorsign<mode>3_1): New insn_and_split pattern.
2549 * config/i386/sse.md (xorsign<mode>3): New expander.
2551 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
2553 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
2554 (*tablejump_sp64): Likewise.
2555 (*tablejump<P:mode>): ...this.
2556 (*call_address_sp32): Merge into...
2557 (*call_address_sp64): Likewise.
2558 (*call_address<P:mode>): ...this.
2559 (*call_symbolic_sp32): Merge into...
2560 (*call_symbolic_sp64): Likewise.
2561 (*call_symbolic<P:mode>): ...this.
2562 (call_value): Remove constraint and add predicate.
2563 (*call_value_address_sp32): Merge into...
2564 (*call_value_address_sp64): Likewise.
2565 (*call_value_address<P:mode>): ...this.
2566 (*call_value_symbolic_sp32): Merge into...
2567 (*call_value_symbolic_sp64): Likewise.
2568 (*call_value_symbolic<P:mode>): ...this.
2569 (*sibcall_symbolic_sp32): Merge into...
2570 (*sibcall_symbolic_sp64): Likewise.
2571 (*sibcall_symbolic<P:mode>): ...this.
2572 (sibcall_value): Remove constraint and add predicate.
2573 (*sibcall_value_symbolic_sp32): Merge into...
2574 (*sibcall_value_symbolic_sp64): Likewise.
2575 (*sibcall_value_symbolic<P:mode>): ...this.
2576 (window_save): Minor tweak.
2577 (*branch_sp32): Merge into...
2578 (*branch_sp64): Likewise.
2579 (*branch<P:mode>): ...this.
2581 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
2582 James Clarke <jrtc27@jrtc27.com>
2585 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
2586 consistently in TLS address generation and adjust code to the renaming
2587 of patterns. Mark calls to __tls_get_addr as const.
2588 * config/sparc/sparc.md (tgd_hi22): Turn into...
2589 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
2590 (tgd_lo10): Turn into...
2591 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
2592 (tgd_add32): Merge into...
2593 (tgd_add64): Likewise.
2594 (tgd_add<P:mode>): ...this and use Pmode throughout.
2595 (tldm_hi22): Turn into...
2596 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
2597 (tldm_lo10): Turn into...
2598 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
2599 (tldm_add32): Merge into...
2600 (tldm_add64): Likewise.
2601 (tldm_add<P:mode>): ...this and use Pmode throughout.
2602 (tldm_call32): Merge into...
2603 (tldm_call64): Likewise.
2604 (tldm_call<P:mode>): ...this and use Pmode throughout.
2605 (tldo_hix22): Turn into...
2606 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
2607 (tldo_lox10): Turn into...
2608 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
2609 (tldo_add32): Merge into...
2610 (tldo_add64): Likewise.
2611 (tldo_add<P:mode>): ...this and use Pmode throughout.
2612 (tie_hi22): Turn into...
2613 (tie_hi22<P:mode>): ...this and use Pmode throughout.
2614 (tie_lo10): Turn into...
2615 (tie_lo10<P:mode>): ...this and use Pmode throughout.
2616 (tie_ld64): Use DImode throughout.
2617 (tie_add32): Merge into...
2618 (tie_add64): Likewise.
2619 (tie_add<P:mode>): ...this and use Pmode throughout.
2620 (tle_hix22_sp32): Merge into...
2621 (tle_hix22_sp64): Likewise.
2622 (tle_hix22<P:mode>): ...this and use Pmode throughout.
2623 (tle_lox22_sp32): Merge into...
2624 (tle_lox22_sp64): Likewise.
2625 (tle_lox22<P:mode>): ...this and use Pmode throughout.
2626 (*tldo_ldub_sp32): Merge into...
2627 (*tldo_ldub_sp64): Likewise.
2628 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
2629 (*tldo_ldub1_sp32): Merge into...
2630 (*tldo_ldub1_sp64): Likewise.
2631 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
2632 (*tldo_ldub2_sp32): Merge into...
2633 (*tldo_ldub2_sp64): Likewise.
2634 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
2635 (*tldo_ldsb1_sp32): Merge into...
2636 (*tldo_ldsb1_sp64): Likewise.
2637 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
2638 (*tldo_ldsb2_sp32): Merge into...
2639 (*tldo_ldsb2_sp64): Likewise.
2640 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
2641 (*tldo_ldub3_sp64): Use DImode throughout.
2642 (*tldo_ldsb3_sp64): Likewise.
2643 (*tldo_lduh_sp32): Merge into...
2644 (*tldo_lduh_sp64): Likewise.
2645 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
2646 (*tldo_lduh1_sp32): Merge into...
2647 (*tldo_lduh1_sp64): Likewise.
2648 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
2649 (*tldo_ldsh1_sp32): Merge into...
2650 (*tldo_ldsh1_sp64): Likewise.
2651 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
2652 (*tldo_lduh2_sp64): Use DImode throughout.
2653 (*tldo_ldsh2_sp64): Likewise.
2654 (*tldo_lduw_sp32): Merge into...
2655 (*tldo_lduw_sp64): Likewise.
2656 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
2657 (*tldo_lduw1_sp64): Use DImode throughout.
2658 (*tldo_ldsw1_sp64): Likewise.
2659 (*tldo_ldx_sp64): Likewise.
2660 (*tldo_stb_sp32): Merge into...
2661 (*tldo_stb_sp64): Likewise.
2662 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
2663 (*tldo_sth_sp32): Merge into...
2664 (*tldo_sth_sp64): Likewise.
2665 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
2666 (*tldo_stw_sp32): Merge into...
2667 (*tldo_stw_sp64): Likewise.
2668 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
2669 (*tldo_stx_sp64): Use DImode throughout.
2671 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2673 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
2674 check configure option to set BTI and Return Address Signing.
2675 * configure.ac: Add --enable-standard-branch-protection and
2676 --disable-standard-branch-protection.
2677 * configure: Regenerated.
2678 * doc/install.texi: Document the same.
2680 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2681 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2683 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
2684 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
2685 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
2687 * config/aarch64/aarch64-bti-insert.c: New file.
2688 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
2690 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
2692 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
2693 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
2694 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
2695 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
2697 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2699 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
2700 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
2701 Disable bti for -mbranch-protection=none.
2702 (aarch64_handle_standard_branch_protection): Enable bti for
2703 -mbranch-protection=standard.
2704 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
2705 -mbranch-protection.
2706 (aarch64_bti_enabled): Check if bti is enabled.
2707 * config/aarch64/aarch64.opt: Declare target variable.
2708 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
2710 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2712 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
2713 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
2714 (aarch64_expand_epilogue): Likewise.
2715 (aarch64_output_mi_thunk): Likewise
2716 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
2717 TAILCALL_ADDR_REGS to x16 and x17.
2718 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
2720 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2722 * config/aarch64/aarch64-option-extensions.def: Define
2723 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
2724 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
2725 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
2726 (AARCH64_FL_PREDRES): New.
2727 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
2728 AARCH64_FL_PREDRES by default.
2729 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
2731 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2733 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
2735 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
2736 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
2737 * doc/invoke.texi: Document ARMv8.5-A.
2739 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
2741 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
2742 (xorsign<mode>3): Likewise.
2744 2019-01-09 Jelinek <jakub@redhat.com>
2747 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
2748 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
2750 PR rtl-optimization/88331
2751 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
2752 not currently_expanding_to_rtl.
2754 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
2756 * doc/invoke.texi (-Os): Remove trailing spaces.
2757 (-finline-functions): Remove reference to -O2.
2759 2019-01-08 Jakub Jelinek <jakub@redhat.com>
2761 PR rtl-optimization/79593
2762 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
2764 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
2765 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
2767 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
2770 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
2774 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
2775 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
2777 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
2780 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
2781 ix86_avx_u128_mode_entry.
2783 2019-01-08 Martin Liska <mliska@suse.cz>
2785 PR tree-optimization/88753
2786 * tree-switch-conversion.c (switch_conversion::build_one_array):
2787 Come up with local variable constructor. Convert first to
2788 type of constructor values.
2790 2019-01-08 Richard Biener <rguenther@suse.de>
2792 PR tree-optimization/86554
2793 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
2794 rpo_avail): Move earlier.
2795 (visit_nary_op): When value-numbering to expressions
2796 with different overflow behavior make sure there's an
2797 available expression on the path.
2799 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
2801 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
2802 aarch64_parse_branch_protection,
2803 struct aarch64_branch_protect_type,
2804 aarch64_handle_no_branch_protection,
2805 aarch64_handle_standard_branch_protection,
2806 aarch64_validate_mbranch_protection,
2807 aarch64_handle_pac_ret_protection,
2808 aarch64_handle_attr_branch_protection,
2809 accepted_branch_protection_string,
2810 aarch64_pac_ret_subtypes,
2811 aarch64_branch_protect_types,
2812 aarch64_handle_pac_ret_leaf): Define.
2813 (aarch64_override_options_after_change_1, aarch64_override_options):
2814 Add check for accepted_branch_protection_string.
2815 (aarch64_option_save): Save accepted_branch_protection_string.
2816 (aarch64_option_restore): Save accepted_branch_protection_string.
2817 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
2818 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
2819 msign-return-address.
2820 * doc/invoke.texi: Add mbranch-protection.
2822 2019-01-08 Alan Modra <amodra@gmail.com>
2825 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
2826 Delete "unknownp" parameter. Adjust callers. Handle
2827 CONST_INT, PLUS, MINUS, and MULT.
2828 (attr_value_aligned): Renamed from or_attr_value.
2829 (min_attr_value): Return INT_MIN for unhandled rtl case..
2830 (min_fn): ..and translate to INT_MAX here.
2831 (write_length_unit_log): Modify to cope without "unknown".
2832 (write_attr_value): Handle IF_THEN_ELSE.
2834 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
2836 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
2837 optimization for masked stores.
2839 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
2842 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
2843 output vector directly to duplicate_and_interleave instead of
2844 going through a temporary. Postpone insertion of ctor_seq to
2845 the end of the loop.
2847 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
2850 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
2851 unsigned_p. Handle signed and unsigned overflow correction as
2853 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
2855 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
2857 (add<mode>3_compareV_imm): Make this callable for expanding.
2858 (subv<GPI:mode>4): Use register_operand for operand 1. Use
2859 aarch64_plus_operand for operand 2.
2860 (subv<GPI:mode>_insn): New insn pattern.
2861 (subv<GPI:mode>_imm): Likewise.
2862 (negv<GPI:mode>3): New expand pattern.
2863 (negv<GPI:mode>_insn): New insn pattern.
2864 (negv<GPI:mode>_cmp_only): Likewise.
2865 (cmpv<GPI:mode>_insn): Likewise.
2866 (subvti4): Use register_operand for operand 1. Update call to
2867 aarch64_expand_subvti.
2868 (usubvti4): Likewise.
2869 (negvti3): New expand pattern.
2870 (negdi_carryout): New insn pattern.
2871 (negvdi_carryinV): New insn pattern.
2872 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
2873 version the named version.
2874 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
2876 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
2878 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
2880 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
2881 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
2882 (sub<mode>3_carryinCV): Delete.
2883 (sub<GPI:mode>3_carryinV): New expand pattern.
2884 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
2886 2019-01-07 Richard Biener <rguenther@suse.de>
2888 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
2889 of tree_operand_hash.
2891 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
2893 PR tree-optimization/88598
2894 * tree.h (single_nonzero_element): Declare.
2895 * tree.c (single_nonzero_element): New function.
2896 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
2897 if I is the only nonzero element of CST.
2899 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
2901 PR tree-optimization/88598
2902 * tree.h (initializer_each_zero_or_onep): Declare.
2903 * tree.c (initializer_each_zero_or_onep): New function.
2904 (signed_or_unsigned_type_for): Handle float types too.
2905 (unsigned_type_for, signed_type_for): Update comments accordingly.
2906 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
2907 x & { 0 or -1, 0 or -1, ... }.
2909 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
2911 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
2912 with x86_64-pc-linux-gnu.
2914 2019-01-07 Tom de Vries <tdevries@suse.de>
2917 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
2919 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
2922 2019-01-07 Jakub Jelinek <jakub@redhat.com>
2924 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
2925 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
2926 TARGET_AVX512F as condition.
2929 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
2930 const_not_ok_for_debug_p target hook.
2931 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
2932 on UNSPEC and subexpressions thereof if all subexpressions of the
2933 UNSPEC are CONSTANT_P.
2935 PR tree-optimization/88676
2936 * tree-ssa-phiopt.c (two_value_replacement): New function.
2937 (tree_ssa_phiopt_worker): Call it.
2940 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
2941 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
2944 * tree-vect-generic.c: Include insn-config.h and recog.h.
2945 (expand_vector_piecewise): Add defaulted ret_type argument,
2946 if non-NULL, use that in preference to type for the result type.
2947 (expand_vector_parallel): Formatting fix.
2948 (do_vec_conversion, do_vec_narrowing_conversion,
2949 expand_vector_conversion): New functions.
2950 (expand_vector_operations_1): Call expand_vector_conversion
2951 for VEC_CONVERT ifn calls.
2952 * internal-fn.def (VEC_CONVERT): New internal function.
2953 * internal-fn.c (expand_VEC_CONVERT): New function.
2954 * fold-const-call.c (fold_const_vec_convert): New function.
2955 (fold_const_call): Use it for CFN_VEC_CONVERT.
2956 * doc/extend.texi (__builtin_convertvector): Document.
2958 2019-01-07 Tom de Vries <tdevries@suse.de>
2960 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
2961 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
2962 vector_red_partition, vector_red_sym): New global variables.
2963 (nvptx_option_override): Initialize vector_red_sym.
2964 (nvptx_declare_function_name): Restore red_partition register.
2965 (nvptx_file_end): Emit code to declare the vector reduction variables.
2966 (nvptx_output_red_partition): New function.
2967 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
2968 large vector reductions.
2969 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
2970 (nvptx_init_builtins): Add VECTOR_ADDR.
2971 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
2972 Handle nvptx_expand_shared_addr.
2973 (nvptx_get_shared_red_addr): Add vector argument and handle large
2975 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
2977 (nvptx_goacc_reduction_init): Likewise.
2978 (nvptx_goacc_reduction_fini): Likewise.
2979 (nvptx_goacc_reduction_teardown): Likewise.
2980 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
2981 init,fini,teardown}.
2982 (nvptx_init_axis_predicate): Initialize vector_red_partition.
2983 (nvptx_set_current_function): Init vector_red_partition.
2984 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
2985 (nvptx_red_partition): New insn.
2986 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
2988 2019-01-07 Tom de Vries <tdevries@suse.de>
2991 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
2994 2019-01-07 Tom de Vries <tdevries@suse.de>
2996 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
2997 (nvptx_option_override): Init oacc_bcast_partition.
2998 (nvptx_init_oacc_workers): New function.
2999 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
3000 (nvptx_needs_shared_bcast): New function.
3001 (nvptx_find_par): Generalize to enable vectors to use shared-memory
3003 (nvptx_shared_propagate): Initialize vector bcast partition and
3004 synchronization state.
3005 (nvptx_single): Generalize to enable vectors to use shared-memory
3007 (nvptx_process_pars): Likewise.
3008 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
3009 * config/nvptx/nvptx.h (struct machine_function): Add
3010 bcast_partition and sync_bar members.
3012 2019-01-07 Tom de Vries <tdevries@suse.de>
3014 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
3015 (nvptx_apply_dim_limits): New function.
3016 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
3019 2019-01-07 Tom de Vries <tdevries@suse.de>
3021 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
3022 as late as possible.
3024 2019-01-07 Tom de Vries <tdevries@suse.de>
3026 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
3027 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
3028 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
3029 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
3030 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
3032 2019-01-07 Tom de Vries <tdevries@suse.de>
3034 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
3036 2019-01-07 Tom de Vries <tdevries@suse.de>
3038 * omp-offload.c (oacc_get_min_dim): New function.
3039 * omp-offload.h (oacc_get_min_dim): Declare.
3041 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
3044 * config/i386/i386.c (function_value_ms_64): Return small sturct in
3045 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
3047 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3051 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
3053 * ipa-inline.c (edge_badness): Use inlined_time instead of
3054 inline_summaries->get.
3056 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3058 * opts.c (enable_fdo_optimizations): Enable
3059 version-loops-for-strides, loop-interchange, unrol-and-jam
3060 and tree-loop-distribution.
3061 * invoke.texi: Document newly enabled options.
3063 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3065 * doc/invoke.texi (max-inline-insns-small): New parameters.
3066 * ipa-inline.c (want_early_inline_function_p): simplify.
3067 (want_inline_small_function_p): Fix pasto from previous patch;
3068 use max-inline-insns-small bound.
3069 * params.def (max-inline-insns-small): New param.
3070 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
3071 variables correctly.
3073 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3075 * doc/invoke.texi: Document max-inline-insns-size,
3076 uninlined-function-insns, uninlined-function-time,
3077 uninlined-thunk-insns and uninlined-thunk-time.
3078 * params.def: Add max-inline-insns-size,
3079 uninlined-function-insns, uninlined-function-time,
3080 uninlined-thunk-insns and uninlined-thunk-time.
3081 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
3083 * ipa-inline.c (can_inline_edge_by_limits_p,
3084 want_inline_small_function_p): Use new parameters.
3086 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3088 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
3090 2019-01-05 Jakub Jelinek <jakub@redhat.com>
3094 * expr.c (expand_assignment): For calls returning VLA structures
3095 if to_rtx is not a MEM, force it into a stack temporary.
3098 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
3099 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
3100 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
3101 subexpressions of both operands.
3102 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
3103 subrtxes are CONSTANT_P.
3104 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
3107 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
3109 * params.def (hot-bb-count-ws-permille): Set to 990.
3111 2019-01-04 Martin Sebor <msebor@redhat.com>
3114 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
3117 2019-01-04 Martin Sebor <msebor@redhat.com>
3120 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
3122 2019-01-04 Jakub Jelinek <jakub@redhat.com>
3124 * gdbinit.in: Turn off pagination for the skip commands, restore
3125 it to previous state afterwards.
3127 2019-01-04 Jakub Jelinek <jakub@redhat.com>
3130 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
3131 of GET_MODE (opN) as modes of the libcall arguments.
3133 2019-01-04 Jan Beulich <jbeulich@suse.com>
3135 * config/i386/sse.md
3136 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
3137 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
3138 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
3139 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
3140 avx512f_vmcmp<mode>3<round_saeonly_name>,
3141 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
3142 avx512f_maskcmp<mode>3,
3143 <avx512>_cvt<ssemodesuffix>2mask<mode>,
3144 <avx512>_cvt<ssemodesuffix>2mask<mode>,
3145 *<avx512>_cvtmask2<ssemodesuffix><mode>,
3146 *<avx512>_cvtmask2<ssemodesuffix><mode>,
3147 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
3148 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
3149 <avx512>_gt<mode>3<mask_scalar_merge_name>,
3150 <avx512>_gt<mode>3<mask_scalar_merge_name>,
3151 <avx512>_testm<mode>3<mask_scalar_merge_name>,
3152 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
3153 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
3154 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
3155 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
3156 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
3157 avx512cd_maskb_vec_dup<mode>,
3158 avx512cd_maskw_vec_dup<mode>,
3159 avx512dq_fpclass<mode><mask_scalar_merge_name>,
3160 avx512dq_vmfpclass<mode>,
3161 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
3164 2019-01-03 Martin Sebor <msebor@redhat.com>
3166 PR tree-optimization/88659
3167 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
3169 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
3171 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
3172 unaligned vsx and avoid lxvd2x/stxvd2x.
3173 (gen_lvx_v4si_move): New function.
3175 2019-01-03 Tom de Vries <tdevries@suse.de>
3177 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
3178 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
3180 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
3182 2019-01-03 Tom de Vries <tdevries@suse.de>
3184 * config/nvptx/nvptx.c (struct offload_attrs): New.
3185 (populate_offload_attrs): New function. Factor mask extraction out of
3186 nvptx_reorg. Add extraction of dimensions.
3187 (nvptx_reorg): Use populate_offload_attrs.
3189 2019-01-03 Tom de Vries <tdevries@suse.de>
3191 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
3192 cases for oacc_min_dims_p and routine_p. Add asserts for
3193 oacc_default_dims_p and offload_region_p.
3195 2019-01-03 Tom de Vries <tdevries@suse.de>
3197 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
3199 (nvptx_goacc_validate_dims): ... here.
3201 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
3203 PR tree-optimization/85574
3204 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
3206 (struct ssa_equip_hash_traits): Declare.
3207 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
3209 2019-01-03 Jakub Jelinek <jakub@redhat.com>
3212 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
3213 change it to qualified_type.
3215 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
3217 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
3218 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
3220 2019-01-02 Martin Sebor <msebor@redhat.com>
3221 Jeff Law <law@redhat.com>
3223 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
3224 (get_range_strlen_tree): Update appropriately.
3226 * gimple-fold.h (get_range_strlen): Drop unused last argument.
3228 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
3229 rather than set_range_info.
3230 * tree-ssa-strlen.c (set_strlen_range): Extracted from
3231 maybe_set_strlen_range. Handle potentially boundary crossing
3232 cases more conservatively.
3233 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
3234 Call set_strlen_range.
3235 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
3238 * gimple-fold.c (get_range_strlen): Update prototype to no longer
3239 need the flexp argument.
3240 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
3241 from calls to get_range_strlen. Update comments. Just update
3242 VAL for an unterminated const char array and let the reset of the
3243 code handle it normally. No longer try to set *flexp. Adjust
3245 (get_range_strlen): Update for the new get_range_strlen API.
3246 (get_maxval_strlen): Similarly.
3247 (gimple_fold_builtin_strlen): Handle update meaning of return value
3248 from get_range_strlen.
3249 * gimple-ssa-sprintf.c (get_string_length): Update for the new
3250 get_range_strlen API.
3252 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
3255 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
3256 false at WPA time when body was removed.
3258 2019-01-02 Martin Liska <mliska@suse.cz>
3260 PR tree-optimization/88650
3261 * predict.c (set_even_probabilities): Calculate probability
3262 remainer only when really used.
3264 2019-01-02 Richard Biener <rguenther@suse.de>
3267 * tree-data-ref.c (analyze_subscript_affine_affine): Use
3268 widest_ints when mangling max_stmt_execution results.
3270 2019-01-02 Richard Biener <rguenther@suse.de>
3272 PR tree-optimization/88621
3273 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
3274 bitfields when canoncalizing.
3276 2019-01-02 Richard Biener <rguenther@suse.de>
3279 * config/i386/x86-tune-costs.h (intel_cost): Adjust
3280 cost of cheap SSE instruction.
3282 2019-01-02 Richard Biener <rguenther@suse.de>
3285 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
3286 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
3288 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
3289 set after UIDs before splitting them.
3291 2019-01-01 Martin Sebor <msebor@redhat.com>
3292 Jeff Law <law@redhat.com>
3294 * gimple-fold.c (get_range_strlen_tree): Record if the computed
3295 length is optimistic. If it is, then arrange to compute the
3296 conservative length as well.
3298 * gimple-fold.h (get_range_strlen): Update prototype.
3299 * builtins.c (check_access): Update call to get_range_strlen to use
3300 c_strlen_data pointer. Change various variable accesses to instead
3301 pull data from the c_strlen_data structure.
3302 (check_strncat_sizes, expand_builtin_strncat): Likewise.
3303 * calls.c (maybe_warn_nonstring_arg): Likewise.
3304 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
3305 minimum length if maximum lengh is unknown.
3306 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
3307 that used c_strlen, it's no longer needed. Restructure slightly.
3308 (format_string): Set unlikely range appropriately.
3309 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
3311 (get_range_strlen): Accept c_strlen_data pointer for external
3312 call sites as well. Pass through to call to internal get_range_strlen.
3313 Adjust minlen, maxlen and maxbound as needed.
3314 (get_maxval_strlen): Update comments.
3315 (gimple_fold_builtin_strlen): Update call to get_range_strlen
3316 to use c_strlen_data pointer. Change variable accesses to instead
3317 use c_strlen_data data members.
3319 * gimple-fold.c (get_range_strlen): Update prototype.
3320 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
3321 local variables. Use pdata to return information to caller.
3322 Update calls to get_range_strlen. Update pdata->maxbound.
3323 (get_range_strlen -- static version): Similarly.
3324 (get_range_strlen -- extern version): Update for internal
3325 get_range_strlen API change. Convert to external data format.
3326 (get_maxval_strlen): Similarly.
3328 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
3330 * coverage.c (get_coverage_counts): Use current_function_decl.
3331 * profile.c (read_thunk_profile): New function.
3332 (branch_prob): Add THUNK parameter.
3333 * tree-profile.c (tree_profiling): Handle thunks.
3334 * value-prof.c (init_node_map): Handle thunks.
3335 * value-prof.h (branch_prob): Upate prototype.
3336 (read_thunk_profile): Declare.
3338 2019-01-01 Jakub Jelinek <jakub@redhat.com>
3340 Update copyright years.
3342 * gcc.c (process_command): Update copyright notice dates.
3343 * gcov-dump.c (print_version): Ditto.
3344 * gcov.c (print_version): Ditto.
3345 * gcov-tool.c (print_version): Ditto.
3346 * gengtype.c (create_file): Ditto.
3347 * doc/cpp.texi: Bump @copying's copyright year.
3348 * doc/cppinternals.texi: Ditto.
3349 * doc/gcc.texi: Ditto.
3350 * doc/gccint.texi: Ditto.
3351 * doc/gcov.texi: Ditto.
3352 * doc/install.texi: Ditto.
3353 * doc/invoke.texi: Ditto.
3355 Copyright (C) 2019 Free Software Foundation, Inc.
3357 Copying and distribution of this file, with or without modification,
3358 are permitted in any medium without royalty provided the copyright
3359 notice and this notice are preserved.