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