1 2019-02-01 Martin Jambor <mjambor@suse.cz>
4 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
5 segment and global segment variables before making them static.
7 2019-02-01 Martin Jambor <mjambor@suse.cz>
9 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
10 missed optimization dump with dump_enabled_p.
12 2019-02-01 Richard Biener <rguenther@suse.de>
15 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
16 the instantiate cache.
17 (instantiate_scev_binary): Elide second operand procesing
18 if equal to the first.
19 * tree-chrec.c (chrec_contains_symbols): Add visited set.
20 (chrec_contains_undetermined): Likewise.
21 (tree_contains_chrecs): Likewise.
23 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
25 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
27 2019-02-01 Jakub Jelinek <jakub@redhat.com>
29 PR tree-optimization/89143
30 * wide-int-range.h (wide_int_range_absu): Declare.
31 * wide-int-range.cc (wide_int_range_absu): New function.
32 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
34 PR tree-optimization/88107
35 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
36 instead of assertion that eh_region_outermost is non-NULL, if it
37 is NULL, set *ALL to true and return NULL.
38 (move_sese_region_to_fn): Adjust caller, if all is set, call
39 duplicate_eh_regions with NULL region.
41 2019-02-01 Richard Biener <rguenth@suse.de>
43 PR rtl-optimization/88593
44 * mode-switching.c (optimize_mode_switching): Free dominators before
47 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
49 PR tree-optimization/88932
50 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
52 2019-01-31 Jakub Jelinek <jakub@redhat.com>
55 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
58 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
61 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
62 alternative to avoid partial SSE register stall for TARGET_AVX.
64 (sse4_1_round<mode>2): Ditto.
66 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
68 PR tree-optimization/89008
69 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
70 process anything of the form X * 0.
72 2019-01-31 Richard Biener <rguenther@suse.de>
74 PR tree-optimization/89135
75 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
78 2019-01-31 Jakub Jelinek <jakub@redhat.com>
81 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
82 always_inline callees into no_sanitize_address callers.
84 2019-01-31 Richard Biener <rguenther@suse.de>
86 PR rtl-optimization/89115
87 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
89 2019-01-30 Martin Sebor <msebor@redhat.com>
92 * doc/extend.texi (cast to a union): Correct and expand.
94 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
96 PR rtl-optimization/87246
97 * lra-constraints.c (simplify_operand_subreg): Reload memory
98 in subreg if the address became invalid.
100 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
103 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
104 Disable for little-endian.
106 2019-01-30 Richard Biener <rguenther@suse.de>
108 PR rtl-optimization/89115
109 * opts.c (default_options_optimization): Reduce
110 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
111 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
114 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
116 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
117 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
118 type of vector element when vec_extract is implemented by direct
121 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
123 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
125 2019-01-30 Richard Biener <rguenther@suse.de>
127 PR tree-optimization/89111
128 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
129 canonicalization to appropriately sized access types.
131 2019-01-30 Jakub Jelinek <jakub@redhat.com>
134 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
135 for arguments to functions that are TU-local and shouldn't be
136 referenced by assembly.
138 2019-01-30 Ulrich Drepper <drepper@redhat.com>
140 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
143 2019-01-29 Martin Sebor <msebor@redhat.com>
146 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
148 2019-01-29 Jakub Jelinek <jakub@redhat.com>
152 * omp-simd-clone.c (simd_clone_clauses_extract)
153 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
154 OMP_CLAUSE_ALIGNED_ALIGNMENT.
156 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
158 * config.gcc: Force .init_array for ARC.
160 2019-01-29 Richard Biener <rguenther@suse.de>
163 * dwarf2out.c (collect_skeleton_dies): New helper.
164 (copy_decls_for_unworthy_types): Call it.
165 (build_abbrev_table): Assert we do not try to replace
166 DW_AT_signature refs with local refs.
168 2019-01-28 Jakub Jelinek <jakub@redhat.com>
171 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
172 for lastprivate/linear IV, push gimplify context around gimplify_assign
173 and, if it needed any temporaries, pop it into a gimple bind around the
176 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
178 * common.opt (-Wattribute-alias): Remove "no-" from name.
179 Make -Wattribute-alias command line option and
180 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
182 2019-01-28 Jakub Jelinek <jakub@redhat.com>
185 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
186 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
188 (bmi2): Add missing @opindex.
189 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
190 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
191 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
192 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
193 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
194 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
195 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
196 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
197 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
198 xsavec, xsaveopt and xsaves options.
200 2019-01-28 Richard Biener <rguenther@suse.de>
203 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
206 2019-01-28 Richard Biener <rguenther@suse.de>
208 PR tree-optimization/88739
209 * tree-cfg.c (verify_types_in_gimple_reference): Verify
210 BIT_FIELD_REFs only are applied to mode-precision operands
211 when they are integral.
212 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
213 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
214 BIT_FIELD_REFs of non-mode-precision integral operands.
216 2019-01-27 Jakub Jelinek <jakub@redhat.com>
220 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
221 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
222 first constants in pairs are multiples of 2. Formatting fixes.
223 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
224 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
225 first constants in each quadruple are multiples of 4. Formatting fixes.
227 2019-01-26 Martin Jambor <mjambor@suse.cz>
230 * tree-inline.c: Include tree-cfgcleanup.h.
231 (delete_unreachable_blocks_update_callgraph): Move...
232 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
233 ...here, make externally visible, make second argument bool, adjust
235 * tree-cfgcleanup.c: Include cgraph.h.
236 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
238 * ipa-prop.c: Include tree-cfgcleanup.h.
239 (ipcp_transform_function): Call
240 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
242 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
244 PR rtl-optimization/88846
245 * ira.c (process_set_for_memref_referenced_p): New.
246 (memref_referenced_p): Add new param. Use
247 process_set_for_memref_referenced_p. Add new switch cases.
248 (memref_used_between_p): Pass new arg to memref_referenced_p.
250 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
253 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
254 argument ABI_BREAK. Set to true if the calculated alignment has
255 changed in gcc-9. Check bit-fields for their base type alignment.
256 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
257 (aarch64_function_arg_boundary): Likewise.
258 (aarch64_gimplify_va_arg_expr): Likewise.
260 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
263 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
264 instead of accessing TREE_INT_CST_ELT directly.
266 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
268 * doc/sourcebuild.texi (Environment attributes): Add fenv and
269 fenv_exceptions description.
271 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
273 PR rtl-optimization/87763
274 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
275 Allow SUBREG when matching CC_NZmode compare.
277 2019-01-25 Richard Biener <rguenther@suse.de>
279 PR tree-optimization/89049
280 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
281 Look at the pattern stmt to determine if the stmt is vectorized.
283 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
285 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
286 (pred_mov<mode>): Handle all-register forms using both a new
287 alternative and a split.
289 2019-01-25 Richard Biener <rguenther@suse.de>
291 PR tree-optimization/86865
292 * graphite-scop-detection.c (scop_detection::can_represent_loop):
293 Reject non-do-while loops.
295 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
297 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
298 * config/rs6000/constraints.md (Q constraint): Use REG_P.
299 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
300 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
301 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
302 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
303 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
304 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
305 vlogical_operand, gpc_reg_operand, int_reg_operand,
306 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
307 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
308 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
309 (save_world_operation, restore_world_operation, lmw_operation,
310 stmw_operation): Use MEM_P and REG_P.
311 (tie_operand): Use MEM_P.
312 (vrsave_operation, crsave_operation): Use REG_P.
313 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
314 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
315 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
316 (call_operand): Use HARD_REGISTER_P.
317 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
319 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
320 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
321 quad_aligned_load_p, replace_swapped_aligned_store,
322 recombine_lvx_pattern, replace_swapped_aligned_load,
323 recombine_stvx_pattern): Use MEM_P.
324 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
325 Use MEM_P and SYMBOL_REF_P.
326 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
327 (insn_is_swappable_p): Use REG_P and MEM_P.
328 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
329 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
331 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
333 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
335 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
336 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
337 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
338 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
340 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
341 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
342 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
343 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
344 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
345 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
346 rs6000_split_logical_di): Use CONST_INT_P.
347 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
348 REG_P and SYMBOL_REF_P.
349 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
350 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
351 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
352 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
353 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
354 (small_data_operand, print_operand_address): Use CONST_INT_P and
356 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
357 (rs6000_init_hard_regno_mode_ok, direct_move_p):
358 Use HARD_REGISTER_NUM_P.
359 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
360 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
361 SUBREG_P and SYMBOL_REF_P.
362 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
363 and HARD_REGISTER_NUM_P.
364 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
366 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
367 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
369 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
370 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
371 find_addr_reg): Use REG_P.
372 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
373 (rs6000_emit_le_vsx_move): Use SUBREG_P.
374 (offsettable_ok_by_alignment, constant_pool_expr_p,
375 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
376 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
377 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
378 rs6000_assemble_integer, create_TOC_reference,
379 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
380 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
381 (rs6000_split_vec_extract_var): Use reg_or_subregno.
382 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
383 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
384 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
385 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
386 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
387 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
388 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
389 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
390 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
391 and cbranch<mode>4): Use CONST_INT_P.
392 (multiple define_splits): Use REG_P and SUBREG_P.
393 (define_expands call, call_value): Use MEM_P.
394 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
395 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
396 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
397 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
398 and HARD_REGISTER_NUM_P.
399 (multiple define_splits): Use HARD_REGISTER_NUM_P.
401 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
403 PR rtl-optimization/88948
404 * rtl.h (prepare_copy_insn): New prototype.
405 * gcse.c (prepare_copy_insn): New function, split out from
407 (process_insert_insn): Use prepare_copy_insn.
408 * store-motion.c (replace_store_insn): Use prepare_copy_insn
409 instead of gen_move_insn.
411 2019-01-24 Jakub Jelinek <jakub@redhat.com>
414 * config/i386/i386.c (ix86_pic_register_p): Return true for
417 PR tree-optimization/88964
418 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
419 punt if HONOR_SNANS (chrec).
422 * tree-nested.c (convert_nonlocal_reference_stmt,
423 convert_local_reference_stmt, convert_tramp_reference_stmt,
424 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
425 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
428 PR tree-optimization/89027
429 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
430 for "omp simd array" variables.
432 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
435 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
436 force the alignment of m_val.
438 2019-01-24 Richard Biener <rguenther@suse.de>
441 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
442 When in "legacy" debug mode make sure to reset self-origins.
444 2019-01-24 Martin Liska <mliska@suse.cz>
446 PR gcov-profile/88994
447 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
448 result will be always smaller or equal to the original.
449 * gcov.c (mangle_name): Fix else branch where we should
450 also copy to PTR and shift the pointer.
452 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
454 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
455 * vr-values.c (find_case_label_ranges): Fix a comment typo.
457 2019-01-23 Bin Cheng <bin.cheng@arm.com>
458 Steve Ellcey <sellcey@marvell.com>
461 * recog.c (address_operand): Return false on wrong mode for address.
462 (constrain_operands): Check for mode with 'p' constraint.
464 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
467 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
468 Disparage MMX alternative.
469 (sse2_cvtpd2pi): Ditto.
470 (sse2_cvttpd2pi): Ditto.
472 2019-01-23 David Malcolm <dmalcolm@redhat.com>
475 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
476 use-after-free of the result of
477 aarch64_get_extension_string_for_isa_flags.
479 2019-01-23 Jakub Jelinek <jakub@redhat.com>
482 * doc/extend.texi: Document break and continue behavior in
483 statement expressions.
485 2019-01-23 Richard Biener <rguenther@suse.de>
487 PR tree-optimization/89008
488 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
489 not leave another stray operand.
491 2019-01-23 Jakub Jelinek <jakub@redhat.com>
493 * BASE-VER: Bump to 9.0.1.
495 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
497 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
498 thunk that returns by reference, use the type of the return object
499 of the thunk instead of that of the alias to build the dereference.
501 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
503 * config/arc/atomic.md: Add operand to DMB instruction.
505 2019-01-23 Jakub Jelinek <jakub@redhat.com>
507 PR tree-optimization/88964
508 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
509 build_zero_cst instead of build_int_cst. Return false for loop
510 invariants which honor signed zeros.
512 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
514 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
516 2019-01-22 Jakub Jelinek <jakub@redhat.com>
519 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
520 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
521 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
524 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
525 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
528 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
529 Disable for little endian.
531 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
534 * config/arm/arm.c (arm_needs_double_word_align): Check
537 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
538 H.J. Lu <hongjiu.lu@intel.com>
541 * config/i386/i386-builtin.def: Add mask2 to all builtin
542 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
544 * config/i386/i386.c (BDESC): Add mask2 to the definition.
545 (BDESC_FIRST): Likewise.
546 (define_builtin): Add an argument for mask2. Updated to handle
547 both ix86_isa_flags and ix86_isa_flags2.
548 (define_builtin_const): Likewise.
549 (define_builtin_pure): Likewise.
550 (define_builtin2): Deleted.
551 (define_builtin_const2): Likewise.
552 (builtin_description): Add a member, mask2.
553 (bdesc_*): Add mask2 to builtin initializations.
554 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
555 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
557 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
559 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
562 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
565 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
568 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
569 alignment is dominated by a bitfield with 64-bit aligned base type.
570 (arm_function_arg): Emit a warning if the alignment has changed since
571 earlier GCC releases.
572 (arm_function_arg_boundary): Likewise.
573 (arm_setup_incoming_varargs): Likewise.
575 2019-01-22 Richard Biener <rguenther@suse.de>
577 PR tree-optimization/88862
578 * graphite-scop-detection.c
579 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
581 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
583 * doc/extend.tex (AMD GCN Function Attributes): New section.
584 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
585 * doc/invoke.texi (AMD GCN Options): New section.
586 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
588 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
590 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
591 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
593 2019-01-22 Jakub Jelinek <jakub@redhat.com>
595 PR tree-optimization/88044
596 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
597 is false in the first iteration, but !every_iteration, return false
598 instead of true with niter->niter zero.
600 PR rtl-optimization/88904
601 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
602 any nonequal registers before processing BB_END (b).
605 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
607 (expand_binop_directly, expand_doubleword_clz,
608 expand_doubleword_popcount, expand_ctz, expand_ffs,
609 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
611 PR rtl-optimization/49429
613 PR rtl-optimization/86334
615 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
616 addressable from here...
617 (emit_block_op_via_libcall): ... to here.
619 2019-01-22 Richard Biener <rguenther@suse.de>
621 * tree-vect-loop.c (vect_analyze_loop_operations): Use
622 auto_vec for cost vector to fix memleak.
623 (vectorize_fold_left_reduction): Properly gather SLP defs.
624 (vectorizable_comparison): Do not swap operands to properly
627 2019-01-22 Alan Modra <amodra@gmail.com>
630 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
631 stays a reg. Allow a const_int.
632 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
633 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
634 (IS_NOMARK_TLSGETADDR): Define.
635 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
636 (rs6000_output_tlsargs): New function.
637 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
638 __tls_get_addr call takes an arg.
639 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
640 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
642 (call_value_nonlocal_sysv): ..or here, delete split.
643 (tls_gdld_nomark): Delete.
644 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
645 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
646 (call_value_nonlocal_sysv): Likewise.
647 (call_value_nonlocal_sysv_secure): Likewise.
648 (call_value_nonlocal_aix): Likewise.
649 (call_value_indirect_aix): Likewise.
650 (call_value_indirect_elfv2): Likewise.
651 (call_value_local32, call_value_local64): Disable for no-mark tls.
652 (call_value_local_aix): Likewise.
654 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
657 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
658 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
660 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
662 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
663 string contents as hash_map keys.
665 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
668 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
669 for rvalue context. Handle rvalues correctly. Use min_align_of_type
670 instead of TYPE_ALIGN.
671 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
672 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
673 pointer from TYPE_STUB_DECL.
675 2019-01-21 Richard Biener <rguenther@suse.de>
677 PR tree-optimization/88934
678 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
679 at the possibly non-constant operand.
680 (vect_get_constant_vectors): Adjust.
682 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
685 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
686 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
687 instead of _X86INTRIN_H_INCLUDED.
688 * onfig/i386/clwbintrin.h: Likewise.
689 * config/i386/pkuintrin.h: Likewise.
690 * config/i386/prfchwintrin.h: Likewise.
691 * config/i386/rdseedintrin.h: Likewise.
692 * config/i386/wbnoinvdintrin.h: Likewise.
693 * config/i386/xsavecintrin.h: Likewise.
694 * config/i386/xsavesintrin.h: Likewise.
695 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
696 * config/i386/xsaveintrin.h: Likewise.
697 * config/i386/xsaveoptintrin.h: Likewise.
698 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
699 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
700 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
701 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
702 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
703 * config/i386/immintrin.h: Here.
705 2019-01-20 Martin Jambor <mjambor@suse.cz>
708 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
710 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
711 aa_walk_budget_p parameter.
712 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
713 walk. Updated all callers.
714 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
715 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
717 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
718 parameter info. Extract info from fbi. Pass fbi to recursive calls
719 and to unmodified_parm.
720 (phi_result_unknown_predicate): New parameter fbi, removed parameter
721 info, updated call to will_be_nonconstant_expr_predicate.
722 (param_change_prob): New parameter fbi, limit AA walking.
723 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
724 calls to various above functions.
725 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
726 parameter. Use it to limit AA walking.
727 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
729 (detect_type_change): New parameter fbi, pass it on to
730 detect_type_change_from_memory_writes.
731 (detect_type_change_ssa): Likewise.
732 (aa_overwalked): Removed.
733 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
734 accordingly, adjust to the neew AA limiting scheme.
735 (parm_ref_data_preserved_p): Likewise.
736 (ipa_compute_jump_functions_for_edge): Adjust call to
738 (ipa_analyze_call_uses): Likewise.
739 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
740 (ipa_analyze_node): Initialize aa_walk_budget.
741 (ipcp_transform_function): Likewise.
742 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
745 2019-01-19 Jakub Jelinek <jakub@redhat.com>
747 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
748 outside of #if CHECKING_P code.
750 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
752 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
753 New function, split out from...
754 (loop_versioning::analyze_stride): ...here.
755 (loop_versioning::find_per_loop_multiplication): Use gassign.
756 (loop_versioning::analyze_term_using_scevs): Return a success code.
757 (loop_versioning::analyze_arbitrary_term): New function.
758 (loop_versioning::analyze_address_fragment): Use
759 analyze_arbitrary_term if all else fails.
761 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
764 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
767 2019-01-18 Richard Biener <rguenther@suse.de>
769 PR tree-optimization/88903
770 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
771 scalar stmts a SLP shift amount is composed of when detecting
774 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
777 * config/arm/arm-cpus.in (mp): New feature.
779 (fgroup ARMv7ve): Add mp and sec features.
780 (arch armv7-a): Add options to allow mp and sec extensions.
781 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
782 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
783 extenstions to the base architecture.
784 (cpu cortex-a8): Add sec extension to the base architecture.
785 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
786 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
787 variants down to the base v7-a varaint.
788 * config/arm/t-multilib (v7_a_arch_variants): New variable.
789 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
790 of permitted extensions for -march=armv7-a and for
791 -mcpu=generic-armv7-a.
793 2019-01-18 Martin Liska <mliska@suse.cz>
795 * params.def: Fix comment.
796 * tree-profile.c (gimple_init_gcov_profiler): Bump function
798 (gimple_gen_ic_func_profiler): Likewise.
800 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
802 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
803 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
804 and put in error checks for stack protector guard options.
805 (aarch64_stack_protect_guard): New.
806 (TARGET_STACK_PROTECT_GUARD): Define.
807 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
808 (reg_stack_protect_address<mode>): New.
809 (stack_protect_set): Adjust for SSP_GLOBAL.
810 (stack_protect_test): Likewise.
811 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
812 (-mstack-protector-guard): Likewise.
813 (-mstack-protector-guard-offset): Likewise.
815 2019-01-18 Jakub Jelinek <jakub@redhat.com>
817 PR tree-optimization/86214
818 * tree-inline.h (struct copy_body_data): Add
819 add_clobbers_to_eh_landing_pads member.
820 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
821 (copy_edges_for_bb): Call it if EH edge destination is <
822 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
823 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
824 if flag_stack_reuse != SR_NONE and clear it afterwards.
826 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
829 * doc/install.texi (with-multilib-list): Document for aarch64.
831 2019-01-18 Jakub Jelinek <jakub@redhat.com>
834 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
835 (("..."))) with ("...").
837 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
839 * doc/extend.texi (Built-in Functions for Memory Model Aware
840 Atomic Operations): Document atomic fetch and nand.
842 2019-01-18 Martin Liska <mliska@suse.cz>
843 Richard Biener <rguenther@suse.de>
846 * cgraph.h (create_version_clone_with_body): Add new argument
848 * cgraphclones.c (cgraph_node::create_version_clone): Add
849 DECL_ATTRIBUTES to a newly created decl. And call
850 valid_attribute_p so that proper cl_target_optimization_node
851 is set for the newly created declaration.
852 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
854 (expand_target_clones): Do not call valid_attribute_p, it must
856 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
859 2019-01-17 Jakub Jelinek <jakub@redhat.com>
862 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
863 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
864 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
866 2019-01-17 Martin Sebor <msebor@redhat.com>
869 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
870 Handle anti-ranges the same as no range at all.
872 2018-01-17 Steve Ellcey <sellcey@cavium.com>
874 * config/aarch64/aarch64.c (cgraph.h): New include.
875 (intl.h): New include.
876 (supported_simd_type): New function.
877 (currently_supported_simd_type): Ditto.
878 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
879 (aarch64_simd_clone_adjust): Ditto.
880 (aarch64_simd_clone_usable): Ditto.
881 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
882 (TARGET_SIMD_CLONE_ADJUST): Ditto.
883 (TARGET_SIMD_CLONE_USABLE): Ditto.
884 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
885 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
888 2019-01-17 Martin Sebor <msebor@redhat.com>
890 PR tree-optimization/88800
891 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
892 NO_WARNING bit here. Avoid folding out-of-bounds calls.
893 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
894 redundant argument. Add new argument and issue diagnostics under
895 its control. Detect out-of-bounds access even with warnings
897 (check_bounds_or_overlap): Change return type. Add argument.
898 (wrestrict_dom_walker::check_call): Adjust.
899 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
900 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
901 check_bounds_or_overlap's return value.
902 (handle_builtin_stxncpy): Same.
903 (handle_builtin_strcat): Same.
905 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
906 Kwok Cheung Yeung <kcy@codesourcery.com>
907 Julian Brown <julian@codesourcery.com>
908 Tom de Vries <tom@codesourcery.com>
910 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
912 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
914 * doc/sourcebuild.texi: Document dg-require-effective-target
915 llvm_binutils and offload_gcn.
917 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
918 Kwok Cheung Yeung <kcy@codesourcery.com>
919 Julian Brown <julian@codesourcery.com>
920 Tom de Vries <tom@codesourcery.com>
922 * doc/sourcebuild.texi: Document dg-required-effective-target
925 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
926 Kwok Cheung Yeung <kcy@codesourcery.com>
927 Julian Brown <julian@codesourcery.com>
928 Tom de Vries <tom@codesourcery.com>
929 Jan Hubicka <hubicka@ucw.cz>
930 Martin Jambor <mjambor@suse.cz>
932 * config.gcc: Add amdgcn*-*-amdhsa configuration.
933 * configure.ac: Check for dlopen.
934 * configure: Regenerate.
936 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
937 Kwok Cheung Yeung <kcy@codesourcery.com>
938 Julian Brown <julian@codesourcery.com>
939 Tom de Vries <tom@codesourcery.com>
940 Jan Hubicka <hubicka@ucw.cz>
941 Martin Jambor <mjambor@suse.cz>
943 * common/config/gcn/gcn-common.c: New file.
944 * config/gcn/driver-gcn.c: New file.
945 * config/gcn/gcn-builtins.def: New file.
946 * config/gcn/gcn-hsa.h: New file.
947 * config/gcn/gcn-modes.def: New file.
948 * config/gcn/gcn-opts.h: New file.
949 * config/gcn/gcn-passes.def: New file.
950 * config/gcn/gcn-protos.h: New file.
951 * config/gcn/gcn-run.c: New file.
952 * config/gcn/gcn-tree.c: New file.
953 * config/gcn/gcn.c: New file.
954 * config/gcn/gcn.h: New file.
955 * config/gcn/gcn.opt: New file.
956 * config/gcn/t-gcn-hsa: New file.
958 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
959 Kwok Cheung Yeung <kcy@codesourcery.com>
960 Julian Brown <julian@codesourcery.com>
961 Tom de Vries <tom@codesourcery.com>
962 Jan Hubicka <hubicka@ucw.cz>
963 Martin Jambor <mjambor@suse.cz>
965 * config/gcn/constraints.md: New file.
966 * config/gcn/gcn-valu.md: New file.
967 * config/gcn/gcn.md: New file.
968 * config/gcn/predicates.md: New file.
970 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
972 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
973 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
974 (stmt_uses_0_or_null_in_undefined_way): Likewise.
975 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
977 2019-01-17 Tamar Christina <tamar.christina@arm.com>
980 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
981 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
982 it and document registers.
984 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
986 * config/aarch64/aarch64.c (ares_tunings): Define.
987 * config/aarch64/aarch64-cores.def (ares): Use the above.
989 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
993 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
995 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
996 (_mm512_fixupimm_round_pd): Update parameters and builtin.
997 (_mm512_maskz_fixupimm_round_pd): Ditto.
998 (_mm512_fixupimm_round_ps): Ditto.
999 (_mm512_maskz_fixupimm_round_ps): Ditto.
1000 (_mm_fixupimm_round_sd): Ditto.
1001 (_mm_maskz_fixupimm_round_sd): Ditto.
1002 (_mm_fixupimm_round_ss): Ditto.
1003 (_mm_maskz_fixupimm_round_ss): Ditto.
1004 (_mm512_fixupimm_pd): Ditto.
1005 (_mm512_maskz_fixupimm_pd): Ditto.
1006 (_mm512_fixupimm_ps): Ditto.
1007 (_mm512_maskz_fixupimm_ps): Ditto.
1008 (_mm_fixupimm_sd): Ditto.
1009 (_mm_maskz_fixupimm_sd): Ditto.
1010 (_mm_fixupimm_ss): Ditto.
1011 (_mm_maskz_fixupimm_ss): Ditto.
1012 (_mm512_mask_fixupimm_round_pd): Update builtin.
1013 (_mm512_mask_fixupimm_round_ps): Ditto.
1014 (_mm_mask_fixupimm_round_sd): Ditto.
1015 (_mm_mask_fixupimm_round_ss): Ditto.
1016 (_mm512_mask_fixupimm_pd): Ditto.
1017 (_mm512_mask_fixupimm_ps): Ditto.
1018 (_mm_mask_fixupimm_sd): Ditto.
1019 (_mm_mask_fixupimm_ss): Ditto.
1020 * config/i386/avx512vlintrin.h:
1021 (_mm256_fixupimm_pd): Update parameters and builtin.
1022 (_mm256_maskz_fixupimm_pd): Ditto.
1023 (_mm256_fixupimm_ps): Ditto.
1024 (_mm256_maskz_fixupimm_ps): Ditto.
1025 (_mm_fixupimm_pd): Ditto.
1026 (_mm_maskz_fixupimm_pd): Ditto.
1027 (_mm_fixupimm_ps): Ditto.
1028 (_mm_maskz_fixupimm_ps): Ditto.
1029 (_mm256_mask_fixupimm_pd): Update builtin.
1030 (_mm256_mask_fixupimm_ps): Ditto.
1031 (_mm_mask_fixupimm_pd): Ditto.
1032 (_mm_mask_fixupimm_ps): Ditto.
1033 * config/i386/i386-builtin-types.def: Add new types and remove useless ones.
1034 * config/i386/i386-builtin.def: Update builtin definitions.
1035 * config/i386/i386.c: Handle new builtin types and remove useless ones.
1036 * config/i386/sse.md: Update VFIXUPIMM* patterns.
1037 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
1038 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
1039 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
1040 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
1041 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
1042 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
1043 * config/i386/subst.md:
1044 (round_saeonly_sd_mask_operand4): Add new subst_attr.
1045 (round_saeonly_sd_mask_op4): Ditto.
1046 (round_saeonly_expand_operand5): Ditto.
1047 (round_saeonly_expand): Update.
1049 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
1053 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
1055 * config/i386/sse.md: Combine VFIXUPIMM* patterns
1056 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
1057 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
1058 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
1059 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
1060 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
1061 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
1063 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
1067 2018-12-15 Jakub Jelinek <jakub@redhat.com>
1070 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
1071 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
1072 instead of UNSPEC_FIXUPIMM.
1074 2019-01-17 Richard Biener <rguenther@suse.de>
1077 * dwarf2out.c (want_pubnames): Never generate pubnames sections
1078 and friends for the LTO part of debug info.
1080 2019-01-17 Jakub Jelinek <jakub@redhat.com>
1082 PR tree-optimization/86214
1083 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
1086 PR rtl-optimization/88870
1087 * dce.c (deletable_insn_p): Never delete const/pure calls that can
1088 throw if we can't alter the cfg or delete dead exceptions.
1089 (mark_insn): Don't call find_call_stack_args for such calls.
1091 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
1093 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
1094 prototypes for vec_st.
1095 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
1096 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
1097 mainly on signed/unsigned long long and double.
1099 2019-01-16 David Malcolm <dmalcolm@redhat.com>
1102 * combine.c (delete_noop_moves): Convert to "bool" return,
1103 returning true if any edges are eliminated.
1104 (combine_instructions): Also return true if delete_noop_moves
1107 2019-01-16 Tamar Christina <tamar.christina@arm.com>
1109 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
1110 correct max nunits for endian swap.
1111 (aarch64_expand_fcmla_builtin): Correct subreg code.
1112 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
1113 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
1116 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
1118 * config/alpha/alpha.c (alpha_gimplify_va_arg):
1119 Handle split indirect COMPLEX_TYPE arguments.
1121 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
1124 * config/aarch64/aarch64-modes.def: Add comment about how the carry
1125 bit is set by add and compare.
1126 (CC_ADC): New CC_MODE.
1127 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
1128 to cache the code and mode of X. Adjust the shape of a CC_Cmode
1129 comparison. Add detection for CC_ADCmode.
1130 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
1132 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
1133 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
1134 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
1135 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
1136 to eliminate the need for zero-extending the operands.
1137 (add<mode>3_compareC_imm): Delete. Merge into ...
1138 (add<mode>3_compareC): ... this. Restructure the comparison to
1139 eliminate the need for zero-extending the operands.
1140 (add<mode>3_carryin): Use LTU for the overflow detection.
1141 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
1142 Reexpress comparison for overflow.
1143 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
1144 (add<mode>3_carryinC): Likewise.
1145 (add<mode>3_carryinV): Use LTU for carry between partials.
1146 * config/aarch64/predicates.md (aarch64_carry_operation): Update
1147 handling of CC_Cmode and add CC_ADCmode.
1148 (aarch64_borrow_operation): Likewise.
1150 2019-01-16 Tamar Christina <tamar.christina@arm.com>
1152 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
1153 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
1154 * config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
1155 neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
1157 2019-01-16 Martin Liska <mliska@suse.cz>
1159 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
1161 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
1163 * gcc.c (add_sysrooted_hdrs_prefix): New function.
1164 (path_prefix_reset): Move up in the source file.
1165 (find_fortran_preinclude_file): Make complex search for the
1166 fortran header files.
1168 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
1170 * godump.c (go_output_typedef): When outputting a typedef, refer
1171 to the underlying type by its name and not its structure.
1173 2019-01-15 David Malcolm <dmalcolm@redhat.com>
1176 * tree.c (build_function_type): Assert that arg_types is not
1179 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
1182 * doc/extend.texi: Document that listing the stack pointer in the
1183 clobber list of an asm is a deprecated feature.
1184 * common.opt (Wdeprecated): Moved from c-family/c.opt.
1185 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
1186 warning instead of an error for clobbers of the stack pointer.
1187 Add a note explaining why.
1189 2019-01-15 Richard Biener <rguenther@suse.de>
1192 * dwarf2out.c (gen_member_die): Do not generate inheritance
1195 2019-01-15 Richard Biener <rguenther@suse.de>
1197 PR tree-optimization/88855
1198 * tree-if-conv.c (combine_blocks): Collect
1199 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
1201 2019-01-15 Tom de Vries <tdevries@suse.de>
1204 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
1205 lhs == NULL_TREE for gang-level reduction.
1207 2019-01-15 Richard Biener <rguenther@suse.de>
1208 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1211 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
1212 return true if SSA_NAME is already marked in visited bitmap.
1213 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
1215 2019-01-15 Jakub Jelinek <jakub@redhat.com>
1217 PR tree-optimization/88775
1218 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
1219 equal == 0 equality pointer comparisons some more if compared in
1220 integral types and either one points to an automatic var and the
1221 other to a global, or we can prove at least one points to the middle
1222 or both point to start or both point to end.
1224 2019-01-14 Andi Kleen <ak@linux.intel.com>
1226 * Makefile.in: Lower autofdo sampling rate by 10x.
1227 * Makefile.tpl: Dito.
1229 2019-01-14 Tom Honermann <tom@honermann.net>
1231 * defaults.h: Define CHAR8_TYPE.
1233 2019-01-14 Martin Sebor <msebor@redhat.com>
1236 * doc/extend.texi (Darwin Format Checks): Clarify.
1238 2019-01-14 Richard Biener <rguenther@suse.de>
1240 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
1241 whether we are in (simplify ...) or (match ...) context.
1243 2019-01-14 Jakub Jelinek <jakub@redhat.com>
1245 PR rtl-optimization/88796
1246 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
1247 * cfgexpand.c (stack_protect_prologue): Initialize
1248 crtl->stack_protect_guard_decl.
1249 * function.c (stack_protect_epilogue): Use it instead of calling
1250 targetm.stack_protect_guard again.
1251 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
1252 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
1253 crtl->stack_protect_guard_decl.
1254 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
1255 on the returned MEM_EXPR.
1257 2019-01-12 Tom de Vries <tdevries@suse.de>
1259 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
1260 vector length using -fopenacc-dim.
1262 2019-01-12 Tom de Vries <tdevries@suse.de>
1264 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
1265 lengths into account.
1267 2019-01-12 Svante Signell <svante.signell@gmail.com>
1269 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
1270 (TARGET_CAN_SPLIT_STACK): Define.
1271 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
1273 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
1275 * params.def (inline-unit-growth): Set to 40.
1277 2019-01-12 Jakub Jelinek <jakub@redhat.com>
1279 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
1281 2019-01-12 Tom de Vries <tdevries@suse.de>
1283 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
1284 region calling vector-partitionable routine, set default_vector_length
1287 2019-01-12 Tom de Vries <tdevries@suse.de>
1289 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
1290 variable default_vector_length.
1292 2019-01-12 Tom de Vries <tdevries@suse.de>
1295 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
1296 from oacc_default_dims, as oacc_validate_dims would do it, and apply
1299 2019-01-12 Tom de Vries <tdevries@suse.de>
1301 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
1302 (nvptx_goacc_validate_dims): Add used parameter.
1303 * doc/tm.texi: Regenerate.
1304 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
1305 argument to call to targetm.goacc.validate_dims.
1306 (default_goacc_validate_dims): Add used
1308 * target.def (validate_dims): Add used parameter in DEFHOOK.
1309 * targhooks.h (default_goacc_validate_dims): Add used parameter.
1311 2019-01-11 Jakub Jelinek <jakub@redhat.com>
1315 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
1317 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
1318 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
1319 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
1320 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
1322 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
1324 PR rtl-optimization/87305
1326 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
1327 for little endian pseudos used as paradoxical subreg.
1329 2019-01-11 Jakub Jelinek <jakub@redhat.com>
1331 PR tree-optimization/88693
1332 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
1333 for STRING_CSTs that don't contain any NUL characters in the first
1334 TREE_STRING_LENGTH bytes.
1336 2019-01-11 Alan Modra <amodra@gmail.com>
1340 * genattrtab.c (min_fn): Don't translate values.
1341 (min_attr_value): Return INT_MAX when the value can't be calculated.
1342 Return minimum among any values that can be calculated.
1343 (max_attr_value): Adjust.
1345 2019-01-11 Jakub Jelinek <jakub@redhat.com>
1347 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
1349 2019-01-11 Steve Ellcey <sellcey@marvell.com>
1351 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
1352 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
1353 (aarch64_return_call_with_max_clobbers): New function.
1354 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
1355 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
1357 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
1358 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
1359 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
1360 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
1361 * cselib.c (cselib_process_insn): Add argument to
1362 targetm.hard_regno_call_part_clobbered call.
1363 * ira-conflicts.c (ira_build_conflicts): Ditto.
1364 * ira-costs.c (ira_tune_allocno_costs): Ditto.
1365 * lra-constraints.c (inherit_reload_reg): Ditto.
1366 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
1367 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
1368 argument. Call targetm.return_call_with_max_clobbers.
1369 Add argument to targetm.hard_regno_call_part_clobbered call.
1370 (calls_have_same_clobbers_p): New function.
1371 (process_bb_lives): Add call_insn and last_call_insn variables.
1372 Pass call_insn to check_pseudos_live_through_calls.
1373 Modify if stmt to check targetm.return_call_with_max_clobbers.
1374 Update setting of flush variable.
1375 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
1377 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
1378 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
1379 targetm.hard_regno_call_part_clobbered call.
1380 * reginfo.c (choose_hard_reg_mode): Ditto.
1381 * regrename.c (check_new_reg_p): Ditto.
1382 * reload.c (find_equiv_reg): Ditto.
1383 * reload1.c (emit_reload_insns): Ditto.
1384 * sched-deps.c (deps_analyze_insn): Ditto.
1385 * sel-sched.c (init_regs_for_mode): Ditto.
1386 (mark_unavailable_hard_regs): Ditto.
1387 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
1388 * target.def (hard_regno_call_part_clobbered): Add insn argument.
1389 (return_call_with_max_clobbers): New target function.
1390 * doc/tm.texi: Regenerate.
1391 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
1392 * hooks.c (hook_bool_uint_mode_false): Change to
1393 hook_bool_insn_uint_mode_false.
1394 * hooks.h (hook_bool_uint_mode_false): Ditto.
1396 2019-01-11 Steve Ellcey <sellcey@marvell.com>
1398 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
1399 (aarch64_remove_extra_call_preserved_regs): New function.
1400 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
1401 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
1402 * doc/tm.texi: Regenerate.
1403 * final.c (get_call_reg_set_usage): Call new hook.
1404 * target.def (remove_extra_call_preserved_regs): New hook.
1405 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
1406 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
1408 2019-01-11 Jakub Jelinek <jakub@redhat.com>
1411 * passes.c (finish_optimization_passes): Call print_combine_total_stats
1412 inside of pass_combine_1 dump rather than pass_profile_1.
1414 2019-01-11 Tom de Vries <tdevries@suse.de>
1416 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
1417 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
1418 (PTX_NUM_PER_WORKER_BARRIERS): Define.
1419 (nvptx_apply_dim_limits): Prevent vector_length 64 and
1422 2019-01-11 Tom de Vries <tdevries@suse.de>
1424 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
1426 2019-01-11 Jan Beulich <jbeulich@suse.com>
1428 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
1429 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
1430 sse2_cvtsi2sd): Add {l}.
1431 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
1434 2019-01-10 Jakub Jelinek <jakub@redhat.com>
1437 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
1439 (*float<floatunssuffix>v2div2sf2): New define_insn.
1440 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
1441 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
1442 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
1443 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
1444 match_operands with "const0_operand" "C".
1446 2019-01-10 Tamar Christina <tamar.christina@arm.com>
1448 * config/aarch64/aarch64-builtins.c
1449 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
1450 (aarch64_init_simd_builtins): ...Here
1452 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
1454 PR rtl-optimization/87305
1456 (setup_live_pseudos_and_spill_after_risky_transforms): Check
1457 allocation for big endian pseudos used as paradoxical subregs and
1458 spill them if it is wrong.
1459 * lra-constraints.c (lra_constraints): Add a comment.
1461 2019-01-10 Richard Biener <rguenther@suse.de>
1463 PR tree-optimization/88792
1464 * tree-ssa-pre.c (get_representative_for): Do not return a
1467 2019-01-10 Jakub Jelinek <jakub@redhat.com>
1471 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
1472 (assign_parm_setup_block): Do the argument slot realignment here
1475 2019-01-10 Stefan Agner <stefan@agner.ch>
1478 * config/arm/arm.c (arm_option_override_internal): Force
1479 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
1481 2019-01-10 Jakub Jelinek <jakub@redhat.com>
1484 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
1487 2019-01-10 Tamar Christina <tamar.christina@arm.com>
1489 * config/arm/arm-builtins.c
1490 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
1491 (MAC_LANE_PAIR_QUALIFIERS): New.
1492 (arm_expand_builtin_args): Use it.
1493 (arm_expand_builtin_1): Likewise.
1494 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
1495 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
1496 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
1497 * config/arm/arm_neon.h:
1498 (vcadd_rot90_f16): New.
1499 (vcaddq_rot90_f16): New.
1500 (vcadd_rot270_f16): New.
1501 (vcaddq_rot270_f16): New.
1504 (vcmla_lane_f16): New.
1505 (vcmla_laneq_f16): New.
1506 (vcmlaq_lane_f16): New.
1507 (vcmlaq_laneq_f16): New.
1508 (vcmla_rot90_f16): New.
1509 (vcmlaq_rot90_f16): New.
1510 (vcmla_rot90_lane_f16): New.
1511 (vcmla_rot90_laneq_f16): New.
1512 (vcmlaq_rot90_lane_f16): New.
1513 (vcmlaq_rot90_laneq_f16): New.
1514 (vcmla_rot180_f16): New.
1515 (vcmlaq_rot180_f16): New.
1516 (vcmla_rot180_lane_f16): New.
1517 (vcmla_rot180_laneq_f16): New.
1518 (vcmlaq_rot180_lane_f16): New.
1519 (vcmlaq_rot180_laneq_f16): New.
1520 (vcmla_rot270_f16): New.
1521 (vcmlaq_rot270_f16): New.
1522 (vcmla_rot270_lane_f16): New.
1523 (vcmla_rot270_laneq_f16): New.
1524 (vcmlaq_rot270_lane_f16): New.
1525 (vcmlaq_rot270_laneq_f16): New.
1526 (vcadd_rot90_f32): New.
1527 (vcaddq_rot90_f32): New.
1528 (vcadd_rot270_f32): New.
1529 (vcaddq_rot270_f32): New.
1532 (vcmla_lane_f32): New.
1533 (vcmla_laneq_f32): New.
1534 (vcmlaq_lane_f32): New.
1535 (vcmlaq_laneq_f32): New.
1536 (vcmla_rot90_f32): New.
1537 (vcmlaq_rot90_f32): New.
1538 (vcmla_rot90_lane_f32): New.
1539 (vcmla_rot90_laneq_f32): New.
1540 (vcmlaq_rot90_lane_f32): New.
1541 (vcmlaq_rot90_laneq_f32): New.
1542 (vcmla_rot180_f32): New.
1543 (vcmlaq_rot180_f32): New.
1544 (vcmla_rot180_lane_f32): New.
1545 (vcmla_rot180_laneq_f32): New.
1546 (vcmlaq_rot180_lane_f32): New.
1547 (vcmlaq_rot180_laneq_f32): New.
1548 (vcmla_rot270_f32): New.
1549 (vcmlaq_rot270_f32): New.
1550 (vcmla_rot270_lane_f32): New.
1551 (vcmla_rot270_laneq_f32): New.
1552 (vcmlaq_rot270_lane_f32): New.
1553 (vcmlaq_rot270_laneq_f32): New.
1554 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
1555 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180, vcmla_lane270,
1556 vcmla_laneq0, vcmla_laneq90, vcmla_laneq180, vcmla_laneq270,
1557 vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180, vcmlaq_lane270): New.
1558 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
1559 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
1560 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
1561 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
1562 (arm_option_reconfigure_globals): Use them.
1563 * config/arm/iterators.md (VDF, VQ_HSF): New.
1564 (VCADD, VCMLA): New.
1565 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
1566 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>): New.
1567 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
1568 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
1570 2019-01-10 Tamar Christina <tamar.christina@arm.com>
1572 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_lane_pair_index.
1573 (emit-rtl.h): Include.
1574 (TYPES_QUADOP_LANE_PAIR): New.
1575 (aarch64_simd_expand_args): Use it.
1576 (aarch64_simd_expand_builtin): Likewise.
1577 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): New.
1578 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
1579 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
1580 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
1581 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
1582 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
1583 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
1584 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
1585 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
1586 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
1587 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
1588 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add __ARM_FEATURE_COMPLEX.
1589 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0, fcmla90,
1590 fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, fcmla_lane270,
1591 fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, fcmla_laneq270,
1592 fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, fcmlaq_lane270): New.
1593 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
1594 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,aarch64_fcadd<rot><mode>,
1595 aarch64_fcmla<rot><mode>): New.
1596 * config/aarch64/arm_neon.h:
1597 (vcadd_rot90_f16): New.
1598 (vcaddq_rot90_f16): New.
1599 (vcadd_rot270_f16): New.
1600 (vcaddq_rot270_f16): New.
1603 (vcmla_lane_f16): New.
1604 (vcmla_laneq_f16): New.
1605 (vcmlaq_lane_f16): New.
1606 (vcmlaq_rot90_lane_f16): New.
1607 (vcmla_rot90_laneq_f16): New.
1608 (vcmla_rot90_lane_f16): New.
1609 (vcmlaq_rot90_f16): New.
1610 (vcmla_rot90_f16): New.
1611 (vcmlaq_laneq_f16): New.
1612 (vcmla_rot180_laneq_f16): New.
1613 (vcmla_rot180_lane_f16): New.
1614 (vcmlaq_rot180_f16): New.
1615 (vcmla_rot180_f16): New.
1616 (vcmlaq_rot90_laneq_f16): New.
1617 (vcmlaq_rot270_laneq_f16): New.
1618 (vcmlaq_rot270_lane_f16): New.
1619 (vcmla_rot270_laneq_f16): New.
1620 (vcmlaq_rot270_f16): New.
1621 (vcmla_rot270_f16): New.
1622 (vcmlaq_rot180_laneq_f16): New.
1623 (vcmlaq_rot180_lane_f16): New.
1624 (vcmla_rot270_lane_f16): New.
1625 (vcadd_rot90_f32): New.
1626 (vcaddq_rot90_f32): New.
1627 (vcaddq_rot90_f64): New.
1628 (vcadd_rot270_f32): New.
1629 (vcaddq_rot270_f32): New.
1630 (vcaddq_rot270_f64): New.
1634 (vcmla_lane_f32): New.
1635 (vcmla_laneq_f32): New.
1636 (vcmlaq_lane_f32): New.
1637 (vcmlaq_laneq_f32): New.
1638 (vcmla_rot90_f32): New.
1639 (vcmlaq_rot90_f32): New.
1640 (vcmlaq_rot90_f64): New.
1641 (vcmla_rot90_lane_f32): New.
1642 (vcmla_rot90_laneq_f32): New.
1643 (vcmlaq_rot90_lane_f32): New.
1644 (vcmlaq_rot90_laneq_f32): New.
1645 (vcmla_rot180_f32): New.
1646 (vcmlaq_rot180_f32): New.
1647 (vcmlaq_rot180_f64): New.
1648 (vcmla_rot180_lane_f32): New.
1649 (vcmla_rot180_laneq_f32): New.
1650 (vcmlaq_rot180_lane_f32): New.
1651 (vcmlaq_rot180_laneq_f32): New.
1652 (vcmla_rot270_f32): New.
1653 (vcmlaq_rot270_f32): New.
1654 (vcmlaq_rot270_f64): New.
1655 (vcmla_rot270_lane_f32): New.
1656 (vcmla_rot270_laneq_f32): New.
1657 (vcmlaq_rot270_lane_f32): New.
1658 (vcmlaq_rot270_laneq_f32): New.
1659 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
1660 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
1661 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
1662 (FCADD, FCMLA): New.
1664 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
1666 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
1670 * config/pa/pa.c: Change "can not" to "cannot".
1671 * gimple-ssa-evrp-analyze.c: Likewise.
1672 * ipa-icf.c: Likewise.
1673 * ipa-polymorphic-call.c: Likewise.
1674 * ipa-pure-const.c: Likewise.
1675 * lra-constraints.c: Likewise.
1676 * lra-remat.c: Likewise.
1677 * reload1.c: Likewise.
1678 * reorg.c: Likewise.
1679 * tree-ssa-uninit.c: Likewise.
1681 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
1685 * Makefile.in: Mechanically replace "can not" with "cannot".
1686 * alias.c: Likewise.
1687 * builtins.c: Likewise.
1688 * calls.c: Likewise.
1689 * cgraph.c: Likewise.
1690 * cgraph.h: Likewise.
1691 * cgraphclones.c: Likewise.
1692 * cgraphunit.c: Likewise.
1693 * combine-stack-adj.c: Likewise.
1694 * combine.c: Likewise.
1695 * common/config/i386/i386-common.c: Likewise.
1696 * config/aarch64/aarch64.c: Likewise.
1697 * config/alpha/sync.md: Likewise.
1698 * config/arc/arc.c: Likewise.
1699 * config/arc/predicates.md: Likewise.
1700 * config/arm/arm-c.c: Likewise.
1701 * config/arm/arm.c: Likewise.
1702 * config/arm/arm.h: Likewise.
1703 * config/arm/arm.md: Likewise.
1704 * config/arm/cortex-r4f.md: Likewise.
1705 * config/csky/csky.c: Likewise.
1706 * config/csky/csky.h: Likewise.
1707 * config/darwin-f.c: Likewise.
1708 * config/epiphany/epiphany.md: Likewise.
1709 * config/i386/i386.c: Likewise.
1710 * config/i386/sol2.h: Likewise.
1711 * config/m68k/m68k.c: Likewise.
1712 * config/mcore/mcore.h: Likewise.
1713 * config/microblaze/microblaze.md: Likewise.
1714 * config/mips/20kc.md: Likewise.
1715 * config/mips/sb1.md: Likewise.
1716 * config/nds32/nds32.c: Likewise.
1717 * config/nds32/predicates.md: Likewise.
1718 * config/pa/pa.c: Likewise.
1719 * config/rs6000/e300c2c3.md: Likewise.
1720 * config/rs6000/rs6000.c: Likewise.
1721 * config/s390/s390.h: Likewise.
1722 * config/sh/sh.c: Likewise.
1723 * config/sh/sh.md: Likewise.
1724 * config/spu/vmx2spu.h: Likewise.
1725 * cprop.c: Likewise.
1726 * dbxout.c: Likewise.
1727 * df-scan.c: Likewise.
1728 * doc/cfg.texi: Likewise.
1729 * doc/extend.texi: Likewise.
1730 * doc/fragments.texi: Likewise.
1731 * doc/gty.texi: Likewise.
1732 * doc/invoke.texi: Likewise.
1733 * doc/lto.texi: Likewise.
1734 * doc/md.texi: Likewise.
1735 * doc/objc.texi: Likewise.
1736 * doc/rtl.texi: Likewise.
1737 * doc/tm.texi: Likewise.
1739 * emit-rtl.c: Likewise.
1740 * emit-rtl.h: Likewise.
1741 * except.c: Likewise.
1742 * expmed.c: Likewise.
1744 * fold-const.c: Likewise.
1745 * genautomata.c: Likewise.
1746 * gimple-fold.c: Likewise.
1747 * hard-reg-set.h: Likewise.
1748 * ifcvt.c: Likewise.
1749 * ipa-comdats.c: Likewise.
1750 * ipa-cp.c: Likewise.
1751 * ipa-devirt.c: Likewise.
1752 * ipa-fnsummary.c: Likewise.
1753 * ipa-icf.c: Likewise.
1754 * ipa-inline-transform.c: Likewise.
1755 * ipa-inline.c: Likewise.
1756 * ipa-polymorphic-call.c: Likewise.
1757 * ipa-profile.c: Likewise.
1758 * ipa-prop.c: Likewise.
1759 * ipa-pure-const.c: Likewise.
1760 * ipa-reference.c: Likewise.
1761 * ipa-split.c: Likewise.
1762 * ipa-visibility.c: Likewise.
1764 * ira-build.c: Likewise.
1765 * ira-color.c: Likewise.
1766 * ira-conflicts.c: Likewise.
1767 * ira-costs.c: Likewise.
1768 * ira-int.h: Likewise.
1769 * ira-lives.c: Likewise.
1772 * loop-invariant.c: Likewise.
1773 * loop-unroll.c: Likewise.
1774 * lower-subreg.c: Likewise.
1775 * lra-assigns.c: Likewise.
1776 * lra-constraints.c: Likewise.
1777 * lra-eliminations.c: Likewise.
1778 * lra-lives.c: Likewise.
1779 * lra-remat.c: Likewise.
1780 * lra-spills.c: Likewise.
1782 * lto-cgraph.c: Likewise.
1783 * lto-streamer-out.c: Likewise.
1784 * postreload-gcse.c: Likewise.
1785 * predict.c: Likewise.
1786 * profile-count.h: Likewise.
1787 * profile.c: Likewise.
1788 * recog.c: Likewise.
1790 * reload.c: Likewise.
1791 * reload1.c: Likewise.
1792 * reorg.c: Likewise.
1793 * resource.c: Likewise.
1794 * rtl.def: Likewise.
1796 * rtlanal.c: Likewise.
1797 * sched-deps.c: Likewise.
1798 * sched-ebb.c: Likewise.
1799 * sched-rgn.c: Likewise.
1800 * sel-sched-ir.c: Likewise.
1801 * sel-sched.c: Likewise.
1802 * shrink-wrap.c: Likewise.
1803 * simplify-rtx.c: Likewise.
1804 * symtab.c: Likewise.
1805 * target.def: Likewise.
1806 * toplev.c: Likewise.
1807 * tree-call-cdce.c: Likewise.
1808 * tree-cfg.c: Likewise.
1809 * tree-complex.c: Likewise.
1810 * tree-core.h: Likewise.
1811 * tree-eh.c: Likewise.
1812 * tree-inline.c: Likewise.
1813 * tree-loop-distribution.c: Likewise.
1814 * tree-nrv.c: Likewise.
1815 * tree-profile.c: Likewise.
1816 * tree-sra.c: Likewise.
1817 * tree-ssa-alias.c: Likewise.
1818 * tree-ssa-dce.c: Likewise.
1819 * tree-ssa-dom.c: Likewise.
1820 * tree-ssa-forwprop.c: Likewise.
1821 * tree-ssa-loop-im.c: Likewise.
1822 * tree-ssa-loop-ivcanon.c: Likewise.
1823 * tree-ssa-loop-ivopts.c: Likewise.
1824 * tree-ssa-loop-niter.c: Likewise.
1825 * tree-ssa-phionlycprop.c: Likewise.
1826 * tree-ssa-phiopt.c: Likewise.
1827 * tree-ssa-propagate.c: Likewise.
1828 * tree-ssa-threadedge.c: Likewise.
1829 * tree-ssa-threadupdate.c: Likewise.
1830 * tree-ssa-uninit.c: Likewise.
1831 * tree-ssanames.c: Likewise.
1832 * tree-streamer-out.c: Likewise.
1835 * vr-values.c: Likewise.
1837 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
1839 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
1840 (ix86_split_xorsign): Ditto.
1841 * config/i386/i386.c (ix86_expand_xorsign): New function.
1842 (ix86_split_xorsign): Ditto.
1843 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
1844 (xorsign<mode>3): New expander.
1845 (xorsign<mode>3_1): New insn_and_split pattern.
1846 * config/i386/sse.md (xorsign<mode>3): New expander.
1848 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
1850 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
1851 (*tablejump_sp64): Likewise.
1852 (*tablejump<P:mode>): ...this.
1853 (*call_address_sp32): Merge into...
1854 (*call_address_sp64): Likewise.
1855 (*call_address<P:mode>): ...this.
1856 (*call_symbolic_sp32): Merge into...
1857 (*call_symbolic_sp64): Likewise.
1858 (*call_symbolic<P:mode>): ...this.
1859 (call_value): Remove constraint and add predicate.
1860 (*call_value_address_sp32): Merge into...
1861 (*call_value_address_sp64): Likewise.
1862 (*call_value_address<P:mode>): ...this.
1863 (*call_value_symbolic_sp32): Merge into...
1864 (*call_value_symbolic_sp64): Likewise.
1865 (*call_value_symbolic<P:mode>): ...this.
1866 (*sibcall_symbolic_sp32): Merge into...
1867 (*sibcall_symbolic_sp64): Likewise.
1868 (*sibcall_symbolic<P:mode>): ...this.
1869 (sibcall_value): Remove constraint and add predicate.
1870 (*sibcall_value_symbolic_sp32): Merge into...
1871 (*sibcall_value_symbolic_sp64): Likewise.
1872 (*sibcall_value_symbolic<P:mode>): ...this.
1873 (window_save): Minor tweak.
1874 (*branch_sp32): Merge into...
1875 (*branch_sp64): Likewise.
1876 (*branch<P:mode>): ...this.
1878 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
1879 James Clarke <jrtc27@jrtc27.com>
1882 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
1883 consistently in TLS address generation and adjust code to the renaming
1884 of patterns. Mark calls to __tls_get_addr as const.
1885 * config/sparc/sparc.md (tgd_hi22): Turn into...
1886 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
1887 (tgd_lo10): Turn into...
1888 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
1889 (tgd_add32): Merge into...
1890 (tgd_add64): Likewise.
1891 (tgd_add<P:mode>): ...this and use Pmode throughout.
1892 (tldm_hi22): Turn into...
1893 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
1894 (tldm_lo10): Turn into...
1895 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
1896 (tldm_add32): Merge into...
1897 (tldm_add64): Likewise.
1898 (tldm_add<P:mode>): ...this and use Pmode throughout.
1899 (tldm_call32): Merge into...
1900 (tldm_call64): Likewise.
1901 (tldm_call<P:mode>): ...this and use Pmode throughout.
1902 (tldo_hix22): Turn into...
1903 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
1904 (tldo_lox10): Turn into...
1905 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
1906 (tldo_add32): Merge into...
1907 (tldo_add64): Likewise.
1908 (tldo_add<P:mode>): ...this and use Pmode throughout.
1909 (tie_hi22): Turn into...
1910 (tie_hi22<P:mode>): ...this and use Pmode throughout.
1911 (tie_lo10): Turn into...
1912 (tie_lo10<P:mode>): ...this and use Pmode throughout.
1913 (tie_ld64): Use DImode throughout.
1914 (tie_add32): Merge into...
1915 (tie_add64): Likewise.
1916 (tie_add<P:mode>): ...this and use Pmode throughout.
1917 (tle_hix22_sp32): Merge into...
1918 (tle_hix22_sp64): Likewise.
1919 (tle_hix22<P:mode>): ...this and use Pmode throughout.
1920 (tle_lox22_sp32): Merge into...
1921 (tle_lox22_sp64): Likewise.
1922 (tle_lox22<P:mode>): ...this and use Pmode throughout.
1923 (*tldo_ldub_sp32): Merge into...
1924 (*tldo_ldub_sp64): Likewise.
1925 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
1926 (*tldo_ldub1_sp32): Merge into...
1927 (*tldo_ldub1_sp64): Likewise.
1928 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
1929 (*tldo_ldub2_sp32): Merge into...
1930 (*tldo_ldub2_sp64): Likewise.
1931 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
1932 (*tldo_ldsb1_sp32): Merge into...
1933 (*tldo_ldsb1_sp64): Likewise.
1934 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
1935 (*tldo_ldsb2_sp32): Merge into...
1936 (*tldo_ldsb2_sp64): Likewise.
1937 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
1938 (*tldo_ldub3_sp64): Use DImode throughout.
1939 (*tldo_ldsb3_sp64): Likewise.
1940 (*tldo_lduh_sp32): Merge into...
1941 (*tldo_lduh_sp64): Likewise.
1942 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
1943 (*tldo_lduh1_sp32): Merge into...
1944 (*tldo_lduh1_sp64): Likewise.
1945 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
1946 (*tldo_ldsh1_sp32): Merge into...
1947 (*tldo_ldsh1_sp64): Likewise.
1948 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
1949 (*tldo_lduh2_sp64): Use DImode throughout.
1950 (*tldo_ldsh2_sp64): Likewise.
1951 (*tldo_lduw_sp32): Merge into...
1952 (*tldo_lduw_sp64): Likewise.
1953 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
1954 (*tldo_lduw1_sp64): Use DImode throughout.
1955 (*tldo_ldsw1_sp64): Likewise.
1956 (*tldo_ldx_sp64): Likewise.
1957 (*tldo_stb_sp32): Merge into...
1958 (*tldo_stb_sp64): Likewise.
1959 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
1960 (*tldo_sth_sp32): Merge into...
1961 (*tldo_sth_sp64): Likewise.
1962 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
1963 (*tldo_stw_sp32): Merge into...
1964 (*tldo_stw_sp64): Likewise.
1965 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
1966 (*tldo_stx_sp64): Use DImode throughout.
1968 2018-01-09 Sudakshina Das <sudi.das@arm.com>
1970 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
1971 check configure option to set BTI and Return Address Signing.
1972 * configure.ac: Add --enable-standard-branch-protection and
1973 --disable-standard-branch-protection.
1974 * configure: Regenerated.
1975 * doc/install.texi: Document the same.
1977 2018-01-09 Sudakshina Das <sudi.das@arm.com>
1978 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1980 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
1981 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
1982 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
1984 * config/aarch64/aarch64-bti-insert.c: New file.
1985 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
1987 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
1989 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
1990 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
1991 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
1992 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
1994 2018-01-09 Sudakshina Das <sudi.das@arm.com>
1996 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
1997 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
1998 Disable bti for -mbranch-protection=none.
1999 (aarch64_handle_standard_branch_protection): Enable bti for
2000 -mbranch-protection=standard.
2001 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
2002 -mbranch-protection.
2003 (aarch64_bti_enabled): Check if bti is enabled.
2004 * config/aarch64/aarch64.opt: Declare target variable.
2005 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
2007 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2009 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
2010 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
2011 (aarch64_expand_epilogue): Likewise.
2012 (aarch64_output_mi_thunk): Likewise
2013 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
2014 TAILCALL_ADDR_REGS to x16 and x17.
2015 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
2017 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2019 * config/aarch64/aarch64-option-extensions.def: Define
2020 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
2021 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
2022 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
2023 (AARCH64_FL_PREDRES): New.
2024 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
2025 AARCH64_FL_PREDRES by default.
2026 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
2028 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2030 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
2032 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
2033 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
2034 * doc/invoke.texi: Document ARMv8.5-A.
2036 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
2038 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
2039 (xorsign<mode>3): Likewise.
2041 2019-01-09 Jelinek <jakub@redhat.com>
2044 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
2045 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
2047 PR rtl-optimization/88331
2048 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
2049 not currently_expanding_to_rtl.
2051 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
2053 * doc/invoke.texi (-Os): Remove trailing spaces.
2054 (-finline-functions): Remove reference to -O2.
2056 2019-01-08 Jakub Jelinek <jakub@redhat.com>
2058 PR rtl-optimization/79593
2059 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
2061 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
2062 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
2064 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
2067 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
2071 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
2072 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
2074 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
2077 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
2078 ix86_avx_u128_mode_entry.
2080 2019-01-08 Martin Liska <mliska@suse.cz>
2082 PR tree-optimization/88753
2083 * tree-switch-conversion.c (switch_conversion::build_one_array):
2084 Come up with local variable constructor. Convert first to
2085 type of constructor values.
2087 2019-01-08 Richard Biener <rguenther@suse.de>
2089 PR tree-optimization/86554
2090 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
2091 rpo_avail): Move earlier.
2092 (visit_nary_op): When value-numbering to expressions
2093 with different overflow behavior make sure there's an
2094 available expression on the path.
2096 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
2098 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
2099 aarch64_parse_branch_protection,
2100 struct aarch64_branch_protect_type,
2101 aarch64_handle_no_branch_protection,
2102 aarch64_handle_standard_branch_protection,
2103 aarch64_validate_mbranch_protection,
2104 aarch64_handle_pac_ret_protection,
2105 aarch64_handle_attr_branch_protection,
2106 accepted_branch_protection_string,
2107 aarch64_pac_ret_subtypes,
2108 aarch64_branch_protect_types,
2109 aarch64_handle_pac_ret_leaf): Define.
2110 (aarch64_override_options_after_change_1, aarch64_override_options):
2111 Add check for accepted_branch_protection_string.
2112 (aarch64_option_save): Save accepted_branch_protection_string.
2113 (aarch64_option_restore): Save accepted_branch_protection_string.
2114 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
2115 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
2116 msign-return-address.
2117 * doc/invoke.texi: Add mbranch-protection.
2119 2019-01-08 Alan Modra <amodra@gmail.com>
2122 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
2123 Delete "unknownp" parameter. Adjust callers. Handle
2124 CONST_INT, PLUS, MINUS, and MULT.
2125 (attr_value_aligned): Renamed from or_attr_value.
2126 (min_attr_value): Return INT_MIN for unhandled rtl case..
2127 (min_fn): ..and translate to INT_MAX here.
2128 (write_length_unit_log): Modify to cope without "unknown".
2129 (write_attr_value): Handle IF_THEN_ELSE.
2131 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
2133 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
2134 optimization for masked stores.
2136 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
2139 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
2140 output vector directly to duplicate_and_interleave instead of
2141 going through a temporary. Postpone insertion of ctor_seq to
2142 the end of the loop.
2144 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
2147 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
2148 unsigned_p. Handle signed and unsigned overflow correction as
2150 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
2152 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
2154 (add<mode>3_compareV_imm): Make this callable for expanding.
2155 (subv<GPI:mode>4): Use register_operand for operand 1. Use
2156 aarch64_plus_operand for operand 2.
2157 (subv<GPI:mode>_insn): New insn pattern.
2158 (subv<GPI:mode>_imm): Likewise.
2159 (negv<GPI:mode>3): New expand pattern.
2160 (negv<GPI:mode>_insn): New insn pattern.
2161 (negv<GPI:mode>_cmp_only): Likewise.
2162 (cmpv<GPI:mode>_insn): Likewise.
2163 (subvti4): Use register_operand for operand 1. Update call to
2164 aarch64_expand_subvti.
2165 (usubvti4): Likewise.
2166 (negvti3): New expand pattern.
2167 (negdi_carryout): New insn pattern.
2168 (negvdi_carryinV): New insn pattern.
2169 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
2170 version the named version.
2171 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
2173 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
2175 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
2177 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
2178 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
2179 (sub<mode>3_carryinCV): Delete.
2180 (sub<GPI:mode>3_carryinV): New expand pattern.
2181 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
2183 2019-01-07 Richard Biener <rguenther@suse.de>
2185 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
2186 of tree_operand_hash.
2188 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
2190 PR tree-optimization/88598
2191 * tree.h (single_nonzero_element): Declare.
2192 * tree.c (single_nonzero_element): New function.
2193 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
2194 if I is the only nonzero element of CST.
2196 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
2198 PR tree-optimization/88598
2199 * tree.h (initializer_each_zero_or_onep): Declare.
2200 * tree.c (initializer_each_zero_or_onep): New function.
2201 (signed_or_unsigned_type_for): Handle float types too.
2202 (unsigned_type_for, signed_type_for): Update comments accordingly.
2203 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
2204 x & { 0 or -1, 0 or -1, ... }.
2206 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
2208 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
2209 with x86_64-pc-linux-gnu.
2211 2019-01-07 Tom de Vries <tdevries@suse.de>
2214 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
2216 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
2219 2019-01-07 Jakub Jelinek <jakub@redhat.com>
2221 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
2222 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
2223 TARGET_AVX512F as condition.
2226 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
2227 const_not_ok_for_debug_p target hook.
2228 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
2229 on UNSPEC and subexpressions thereof if all subexpressions of the
2230 UNSPEC are CONSTANT_P.
2232 PR tree-optimization/88676
2233 * tree-ssa-phiopt.c (two_value_replacement): New function.
2234 (tree_ssa_phiopt_worker): Call it.
2237 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
2238 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
2241 * tree-vect-generic.c: Include insn-config.h and recog.h.
2242 (expand_vector_piecewise): Add defaulted ret_type argument,
2243 if non-NULL, use that in preference to type for the result type.
2244 (expand_vector_parallel): Formatting fix.
2245 (do_vec_conversion, do_vec_narrowing_conversion,
2246 expand_vector_conversion): New functions.
2247 (expand_vector_operations_1): Call expand_vector_conversion
2248 for VEC_CONVERT ifn calls.
2249 * internal-fn.def (VEC_CONVERT): New internal function.
2250 * internal-fn.c (expand_VEC_CONVERT): New function.
2251 * fold-const-call.c (fold_const_vec_convert): New function.
2252 (fold_const_call): Use it for CFN_VEC_CONVERT.
2253 * doc/extend.texi (__builtin_convertvector): Document.
2255 2019-01-07 Tom de Vries <tdevries@suse.de>
2257 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
2258 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
2259 vector_red_partition, vector_red_sym): New global variables.
2260 (nvptx_option_override): Initialize vector_red_sym.
2261 (nvptx_declare_function_name): Restore red_partition register.
2262 (nvptx_file_end): Emit code to declare the vector reduction variables.
2263 (nvptx_output_red_partition): New function.
2264 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
2265 large vector reductions.
2266 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
2267 (nvptx_init_builtins): Add VECTOR_ADDR.
2268 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
2269 Handle nvptx_expand_shared_addr.
2270 (nvptx_get_shared_red_addr): Add vector argument and handle large
2272 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
2274 (nvptx_goacc_reduction_init): Likewise.
2275 (nvptx_goacc_reduction_fini): Likewise.
2276 (nvptx_goacc_reduction_teardown): Likewise.
2277 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
2278 init,fini,teardown}.
2279 (nvptx_init_axis_predicate): Initialize vector_red_partition.
2280 (nvptx_set_current_function): Init vector_red_partition.
2281 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
2282 (nvptx_red_partition): New insn.
2283 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
2285 2019-01-07 Tom de Vries <tdevries@suse.de>
2288 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
2291 2019-01-07 Tom de Vries <tdevries@suse.de>
2293 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
2294 (nvptx_option_override): Init oacc_bcast_partition.
2295 (nvptx_init_oacc_workers): New function.
2296 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
2297 (nvptx_needs_shared_bcast): New function.
2298 (nvptx_find_par): Generalize to enable vectors to use shared-memory
2300 (nvptx_shared_propagate): Initialize vector bcast partition and
2301 synchronization state.
2302 (nvptx_single): Generalize to enable vectors to use shared-memory
2304 (nvptx_process_pars): Likewise.
2305 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
2306 * config/nvptx/nvptx.h (struct machine_function): Add
2307 bcast_partition and sync_bar members.
2309 2019-01-07 Tom de Vries <tdevries@suse.de>
2311 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
2312 (nvptx_apply_dim_limits): New function.
2313 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
2316 2019-01-07 Tom de Vries <tdevries@suse.de>
2318 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
2319 as late as possible.
2321 2019-01-07 Tom de Vries <tdevries@suse.de>
2323 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
2324 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
2325 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
2326 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
2327 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
2329 2019-01-07 Tom de Vries <tdevries@suse.de>
2331 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
2333 2019-01-07 Tom de Vries <tdevries@suse.de>
2335 * omp-offload.c (oacc_get_min_dim): New function.
2336 * omp-offload.h (oacc_get_min_dim): Declare.
2338 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
2341 * config/i386/i386.c (function_value_ms_64): Return small sturct in
2342 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
2344 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
2348 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
2350 * ipa-inline.c (edge_badness): Use inlined_time instead of
2351 inline_summaries->get.
2353 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
2355 * opts.c (enable_fdo_optimizations): Enable
2356 version-loops-for-strides, loop-interchange, unrol-and-jam
2357 and tree-loop-distribution.
2358 * invoke.texi: Document newly enabled options.
2360 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
2362 * doc/invoke.texi (max-inline-insns-small): New parameters.
2363 * ipa-inline.c (want_early_inline_function_p): simplify.
2364 (want_inline_small_function_p): Fix pasto from previous patch;
2365 use max-inline-insns-small bound.
2366 * params.def (max-inline-insns-small): New param.
2367 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
2368 variables correctly.
2370 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
2372 * doc/invoke.texi: Document max-inline-insns-size,
2373 uninlined-function-insns, uninlined-function-time,
2374 uninlined-thunk-insns and uninlined-thunk-time.
2375 * params.def: Add max-inline-insns-size,
2376 uninlined-function-insns, uninlined-function-time,
2377 uninlined-thunk-insns and uninlined-thunk-time.
2378 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
2380 * ipa-inline.c (can_inline_edge_by_limits_p,
2381 want_inline_small_function_p): Use new parameters.
2383 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
2385 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
2387 2019-01-05 Jakub Jelinek <jakub@redhat.com>
2391 * expr.c (expand_assignment): For calls returning VLA structures
2392 if to_rtx is not a MEM, force it into a stack temporary.
2395 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
2396 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
2397 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
2398 subexpressions of both operands.
2399 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
2400 subrtxes are CONSTANT_P.
2401 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
2404 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
2406 * params.def (hot-bb-count-ws-permille): Set to 990.
2408 2019-01-04 Martin Sebor <msebor@redhat.com>
2411 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
2414 2019-01-04 Martin Sebor <msebor@redhat.com>
2417 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
2419 2019-01-04 Jakub Jelinek <jakub@redhat.com>
2421 * gdbinit.in: Turn off pagination for the skip commands, restore
2422 it to previous state afterwards.
2424 2019-01-04 Jakub Jelinek <jakub@redhat.com>
2427 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
2428 of GET_MODE (opN) as modes of the libcall arguments.
2430 2019-01-04 Jan Beulich <jbeulich@suse.com>
2432 * config/i386/sse.md
2433 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
2434 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
2435 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
2436 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
2437 avx512f_vmcmp<mode>3<round_saeonly_name>,
2438 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
2439 avx512f_maskcmp<mode>3,
2440 <avx512>_cvt<ssemodesuffix>2mask<mode>,
2441 <avx512>_cvt<ssemodesuffix>2mask<mode>,
2442 *<avx512>_cvtmask2<ssemodesuffix><mode>,
2443 *<avx512>_cvtmask2<ssemodesuffix><mode>,
2444 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
2445 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
2446 <avx512>_gt<mode>3<mask_scalar_merge_name>,
2447 <avx512>_gt<mode>3<mask_scalar_merge_name>,
2448 <avx512>_testm<mode>3<mask_scalar_merge_name>,
2449 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
2450 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
2451 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
2452 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
2453 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
2454 avx512cd_maskb_vec_dup<mode>,
2455 avx512cd_maskw_vec_dup<mode>,
2456 avx512dq_fpclass<mode><mask_scalar_merge_name>,
2457 avx512dq_vmfpclass<mode>,
2458 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
2461 2019-01-03 Martin Sebor <msebor@redhat.com>
2463 PR tree-optimization/88659
2464 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
2466 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
2468 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
2469 unaligned vsx and avoid lxvd2x/stxvd2x.
2470 (gen_lvx_v4si_move): New function.
2472 2019-01-03 Tom de Vries <tdevries@suse.de>
2474 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
2475 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
2477 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
2479 2019-01-03 Tom de Vries <tdevries@suse.de>
2481 * config/nvptx/nvptx.c (struct offload_attrs): New.
2482 (populate_offload_attrs): New function. Factor mask extraction out of
2483 nvptx_reorg. Add extraction of dimensions.
2484 (nvptx_reorg): Use populate_offload_attrs.
2486 2019-01-03 Tom de Vries <tdevries@suse.de>
2488 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
2489 cases for oacc_min_dims_p and routine_p. Add asserts for
2490 oacc_default_dims_p and offload_region_p.
2492 2019-01-03 Tom de Vries <tdevries@suse.de>
2494 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
2496 (nvptx_goacc_validate_dims): ... here.
2498 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
2500 PR tree-optimization/85574
2501 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
2503 (struct ssa_equip_hash_traits): Declare.
2504 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
2506 2019-01-03 Jakub Jelinek <jakub@redhat.com>
2509 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
2510 change it to qualified_type.
2512 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
2514 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
2515 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
2517 2019-01-02 Martin Sebor <msebor@redhat.com>
2518 Jeff Law <law@redhat.com>
2520 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
2521 (get_range_strlen_tree): Update appropriately.
2523 * gimple-fold.h (get_range_strlen): Drop unused last argument.
2525 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
2526 rather than set_range_info.
2527 * tree-ssa-strlen.c (set_strlen_range): Extracted from
2528 maybe_set_strlen_range. Handle potentially boundary crossing
2529 cases more conservatively.
2530 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
2531 Call set_strlen_range.
2532 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
2535 * gimple-fold.c (get_range_strlen): Update prototype to no longer
2536 need the flexp argument.
2537 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
2538 from calls to get_range_strlen. Update comments. Just update
2539 VAL for an unterminated const char array and let the reset of the
2540 code handle it normally. No longer try to set *flexp. Adjust
2542 (get_range_strlen): Update for the new get_range_strlen API.
2543 (get_maxval_strlen): Similarly.
2544 (gimple_fold_builtin_strlen): Handle update meaning of return value
2545 from get_range_strlen.
2546 * gimple-ssa-sprintf.c (get_string_length): Update for the new
2547 get_range_strlen API.
2549 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
2552 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
2553 false at WPA time when body was removed.
2555 2019-01-02 Martin Liska <mliska@suse.cz>
2557 PR tree-optimization/88650
2558 * predict.c (set_even_probabilities): Calculate probability
2559 remainer only when really used.
2561 2019-01-02 Richard Biener <rguenther@suse.de>
2564 * tree-data-ref.c (analyze_subscript_affine_affine): Use
2565 widest_ints when mangling max_stmt_execution results.
2567 2019-01-02 Richard Biener <rguenther@suse.de>
2569 PR tree-optimization/88621
2570 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
2571 bitfields when canoncalizing.
2573 2019-01-02 Richard Biener <rguenther@suse.de>
2576 * config/i386/x86-tune-costs.h (intel_cost): Adjust
2577 cost of cheap SSE instruction.
2579 2019-01-02 Richard Biener <rguenther@suse.de>
2582 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
2583 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
2585 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
2586 set after UIDs before splitting them.
2588 2019-01-01 Martin Sebor <msebor@redhat.com>
2589 Jeff Law <law@redhat.com>
2591 * gimple-fold.c (get_range_strlen_tree): Record if the computed
2592 length is optimistic. If it is, then arrange to compute the
2593 conservative length as well.
2595 * gimple-fold.h (get_range_strlen): Update prototype.
2596 * builtins.c (check_access): Update call to get_range_strlen to use
2597 c_strlen_data pointer. Change various variable accesses to instead
2598 pull data from the c_strlen_data structure.
2599 (check_strncat_sizes, expand_builtin_strncat): Likewise.
2600 * calls.c (maybe_warn_nonstring_arg): Likewise.
2601 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
2602 minimum length if maximum lengh is unknown.
2603 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
2604 that used c_strlen, it's no longer needed. Restructure slightly.
2605 (format_string): Set unlikely range appropriately.
2606 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
2608 (get_range_strlen): Accept c_strlen_data pointer for external
2609 call sites as well. Pass through to call to internal get_range_strlen.
2610 Adjust minlen, maxlen and maxbound as needed.
2611 (get_maxval_strlen): Update comments.
2612 (gimple_fold_builtin_strlen): Update call to get_range_strlen
2613 to use c_strlen_data pointer. Change variable accesses to instead
2614 use c_strlen_data data members.
2616 * gimple-fold.c (get_range_strlen): Update prototype.
2617 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
2618 local variables. Use pdata to return information to caller.
2619 Update calls to get_range_strlen. Update pdata->maxbound.
2620 (get_range_strlen -- static version): Similarly.
2621 (get_range_strlen -- extern version): Update for internal
2622 get_range_strlen API change. Convert to external data format.
2623 (get_maxval_strlen): Similarly.
2625 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
2627 * coverage.c (get_coverage_counts): Use current_function_decl.
2628 * profile.c (read_thunk_profile): New function.
2629 (branch_prob): Add THUNK parameter.
2630 * tree-profile.c (tree_profiling): Handle thunks.
2631 * value-prof.c (init_node_map): Handle thunks.
2632 * value-prof.h (branch_prob): Upate prototype.
2633 (read_thunk_profile): Declare.
2635 2019-01-01 Jakub Jelinek <jakub@redhat.com>
2637 Update copyright years.
2639 * gcc.c (process_command): Update copyright notice dates.
2640 * gcov-dump.c (print_version): Ditto.
2641 * gcov.c (print_version): Ditto.
2642 * gcov-tool.c (print_version): Ditto.
2643 * gengtype.c (create_file): Ditto.
2644 * doc/cpp.texi: Bump @copying's copyright year.
2645 * doc/cppinternals.texi: Ditto.
2646 * doc/gcc.texi: Ditto.
2647 * doc/gccint.texi: Ditto.
2648 * doc/gcov.texi: Ditto.
2649 * doc/install.texi: Ditto.
2650 * doc/invoke.texi: Ditto.
2652 Copyright (C) 2019 Free Software Foundation, Inc.
2654 Copying and distribution of this file, with or without modification,
2655 are permitted in any medium without royalty provided the copyright
2656 notice and this notice are preserved.