1 2019-05-15 Vladislav Ivanishin <vlad@ispras.ru>
3 * tree-ssa-uninit.c (is_value_included_in): Remove is_unsigned and merge
4 semantically equivalent branches (left over after prior refactorings).
6 2019-05-15 Richard Biener <rguenther@suse.de>
8 PR tree-optimization/88828
9 * tree-ssa-forwprop.c (simplify_vector_constructor): Fix
12 2019-05-14 Richard Biener <rguenther@suse.de>
14 * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR
15 as __VIEW_CONVERT with -gimple.
17 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
20 * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
23 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
25 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Merge with following
26 define_split to become a define_insn_and_split.
28 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
30 * config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change
32 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Change arguments.
33 * config/rs6000/rs6000.md (epilogue_type): New define_enum.
34 (sibcall_epilogue): Adjust.
37 2019-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
39 * config.gcc: Move *-*-solaris2.10* from obsolete configurations
41 Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*.
42 * config.host: Likewise.
43 * config/i386/sol2.h (ASM_COMMENT_START): Remove.
44 * config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ &&
45 __svr4__]: Remove "brand" fallback.
46 [!KSTAT_DATA_STRING]: Remove.
47 * configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]*
49 (comdat_group): Likewise.
50 (set_have_as_tls): Likewise.
51 (gcc_cv_target_dl_iterate_phdr): Likewise.
52 (gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround.
53 (gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround.
54 * configure: Regenerate.
55 * doc/install.texi: Simplify Solaris target triplets.
56 (Specific, i?86-*-solaris2*): Remove Solaris 10 references.
57 (Specific, *-*-solaris2*): Document Solaris 10 removal.
58 Remove Solaris 10 references.
59 Remove obsolete Solaris bug reference.
60 (Specific, sparc-sun-solaris2.10): Remove.
62 2019-05-14 Uroš Bizjak <ubizjak@gmail.com>
64 * config/i386/i386.md (any_div): New code iterator.
65 (paired_mod): New code attribute.
66 (sgnprefix): Handle DIV and UDIV RTXes.
68 (<u>divmod<mode>4): Macroize expander from divmod<mode>4
69 and udivmod<mode>4 patterns using any_div code iterator.
70 (divmod splitters): Macroize splitters using any_div code iterator.
71 (*udivmodsi4_pow2_zext_1): Use exactl_log2 in insn condition.
72 (*udivmodsi4_pow2_zext_2): Ditto.
73 (*<u>divmod<mode>4_noext): Macroize insn from *divmod<mode>4_noext
74 and *udivmod<mode>4_noext patterns using any_div code iterator.
75 (*<u>divmod<mode>4_noext_zext_1): Macroize insn from
76 *divmod<mode>4_noext_zext_1 and *udivmod<mode>4_noext_zext_1
77 patterns using any_div code iterator.
78 (*<u>divmod<mode>4_noext_zext_2): Macroize insn from
79 *divmod<mode>4_noext_zext_2 and *udivmod<mode>4_noext_zext_2
80 patterns using any_div code iterator.
81 (<u>divmodhiqi3): Macroize insn from divmodhiqi3 and
82 udivmodhiqi3 patterns using any_extend code iterator.
84 2019-05-14 Richard Biener <rguenther@suse.de>
85 H.J. Lu <hongjiu.lu@intel.com>
87 PR tree-optimization/88828
88 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
89 permuting in a single non-constant element not extracted
92 2019-05-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
94 * internal-fn.def (SIGNBIT): New.
95 * config/aarch64/aarch64-simd.md (signbitv2sf2): New expand
97 (signbitv4sf2): Likewise.
99 2019-05-14 Chenghua Xu <paul.hua.gm@gmail.com>
102 * config/mips/mips.c (mips_split_move): Skip forward SRC into
103 next insn when the SRC reg is dead.
105 2019-05-14 Bin Cheng <bin.cheng@linux.alibaba.com>
107 * gimple-ssa-strength-reduction.c (lookup_cand): Adjust index by 1.
108 (alloc_cand_and_find_basis): Ditto.
109 (backtrace_base_for_ref, create_mul_ssa_cand): Remove if-then-else.
110 (create_mul_imm_cand, create_add_ssa_cand): Ditto.
111 (create_add_imm_cand, slsr_process_cast): Ditto.
112 (slsr_process_copy, replace_mult_candidate): Ditto.
113 (replace_rhs_if_not_dup, replace_one_candidate): Ditto.
114 (dump_cand_vec, analyze_candidates_and_replace): Skip NULL element.
115 (pass_strength_reduction::execute): Init the first NULL element.
117 2019-05-13 Nathan Sidwell <nathan@acm.org>
119 * gcc.c (execute): Simplify cond-expr into if. Reformat comment.
120 (run_attempt): Reformat line break.
122 2019-05-13 David Edelsohn <dje.gcc@gmail.com>
125 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH
126 data registers in sibcall epilogues.
127 Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
129 2019-05-13 Uroš Bizjak <ubizjak@gmail.com>
132 * configure.ac (--enable-frame-pointer):
133 Disable by default for cygwin and mingw.
134 * configure: Regenerate.
136 2019-05-13 Nathan Sidwell <nathan@acm.org>
138 * dwarf2out.c (breakout_comdat_types): Move comment to correct
140 (const_ok_for_output_1): Balance parens around #if/#else/#endif
141 (gen_member_die): Move abstract origin check earlier. Only VARs
142 can be static_inline_p. Simplify splicing control flow.
144 2019-05-13 Richard Biener <rguenther@suse.de>
146 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
148 (vect_build_slp_tree_1): Likewise.
150 2019-05-13 Richard Biener <rguenther@suse.de>
152 PR tree-optimization/90402
153 * tree-if-conv.c (tree_if_conversion): Value number only
154 the loop body by making the latch an exit of the region
156 * tree-ssa-sccvn.c (process_bb): Add flag whether to skip
158 (do_rpo_vn): Deal with multiple edges into the entry block
159 that are not backedges inside the region by skipping PHIs
162 2019-05-13 Richard Biener <rguenther@suse.de>
164 PR tree-optimization/90316
165 * tree-ssa-pre.c (insert_aux): Fold into ...
166 (insert): ... this function. Use a RPO walk to reduce the
167 number of required iterations.
169 2019-05-13 Martin Liska <mliska@suse.cz>
171 PR tree-optimization/90416
172 * tree-vect-stmts.c (vect_check_load_store_mask): Concatenate
173 string instead of passing the second part as va_arg argument.
175 2019-05-13 Martin Liska <mliska@suse.cz>
177 PR gcov-profile/90380
178 * gcov.c (handle_cycle): Do not support zero cycle count,
179 it should not be possible.
180 (path_contains_zero_cycle_arc): New function.
181 (circuit): Ignore zero cycle arc counts.
183 2019-05-13 Martin Liska <mliska@suse.cz>
185 PR gcov-profile/90380
186 * gcov.c (enum loop_type): Remove the enum and
188 (handle_cycle): Assert that we should not reach
190 (circuit): Use loop_found instead of a tri-state loop_type.
191 (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't
194 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
197 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
198 (ix86_output_indirect_branch_via_reg): Use output mechanism
199 accounting for __USER_LABEL_PREFIX__.
200 (ix86_output_indirect_branch_via_push): Likewise.
201 (ix86_output_function_return): Likewise.
202 (ix86_output_indirect_function_return): Likewise.
204 2019-05-12 Richard Sandiford <richard.sandiford@arm.com>
206 * doc/md.texi: Document use of code attributes in rtx patterns.
207 * read-md.h (rtx_reader::rtx_alloc_for_name): New member function.
208 * read-rtl.c (find_code): Split out search loops into...
209 (maybe_find_code): ...this new function.
210 (check_code_iterator): Make the error message more informative.
211 (check_code_attribute): New function.
212 (rtx_reader::rtx_alloc_for_name): Likewise.
213 (rtx_reader::read_rtx_code): Use rtx_alloc_for_name.
214 * config/aarch64/predicates.md (aarch64_smin, aarch64_umin): Delete.
215 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Use
216 <max_opp> directly as an rtx code instead of via a match_operator.
217 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Likewise.
218 (<su>abd<mode>_3): Update accordingly.
220 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
222 * config/rs6000/rs6000.c (debug_stack_info): When -mdebug=stack
223 is given, print the state of the EH "save world" computation for
226 2019-05-11 Jakub Jelinek <jakub@redhat.com>
229 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add
230 EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
232 2019-05-11 Uroš Bizjak <ubizjak@gmail.com>
234 * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm):
235 Use pinsrd for TARGET_SSE4_1.
236 * config/i386/sse.md (movdi_to_sse): Ditto.
238 2019-05-10 Richard Biener <rguenther@suse.de>
240 * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id.
241 (do_rpo_vn): Initialize next_value_id.
243 2019-05-10 Martin Liska <mliska@suse.cz>
245 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
248 2019-05-10 Jakub Jelinek <jakub@redhat.com>
250 PR tree-optimization/90385
251 * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME
252 arguments of the exit phis.
255 * tree-inline.h (struct copy_body_data): Add do_not_fold member.
256 * tree-inline.c (remap_gimple_op_r): Avoid folding expressions if
258 (copy_tree_body_r): Likewise.
259 (copy_fn): Set id.do_not_fold to true.
261 2019-05-10 Martin Liska <mliska@suse.cz>
263 * config/i386/i386-expand.c (ix86_expand_floorceildf_32):
264 Reapply changes from r269790.
266 2019-05-10 Martin Liska <mliska@suse.cz>
269 * doc/invoke.texi: New params.
270 * params.def (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SIZE): New.
271 (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SPEED): Likewise.
272 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
274 * tree-switch-conversion.h (struct jump_table_cluster):
277 2019-05-09 Segher Boessenkool <segher@kernel.crashing.org>
279 * combine.c (combine_simplify_rtx): Don't make IF_THEN_ELSE RTL.
281 2019-05-09 Bill Schmidt <wschmidt@linux.ibm.com>
283 * doc/loop.texi: Remove reference to FOR_EACH_LOOP_BREAK.
285 2019-05-09 Alexander Monakov <amonakov@ispras.ru>
287 PR rtl-optimization/88879
288 * sel-sched.c (sel_target_adjust_priority): Remove assert.
290 2019-05-09 Richard Earnshaw <rearnsha@arm.com>
293 * config/arm/arm.c (callee_saved_reg_p): Move before
294 thumb_find_work_register.
295 (thumb1_prologue_unused_call_clobbered_lo_regs): Move before
296 thumb_find_work_register. Only call df_get_live_out once.
297 (thumb1_epilogue_unused_call_clobbered_lo_regs): Likewise.
298 (thumb_find_work_register): Use
299 thumb1_prologue_unused_call_clobbered_lo_regs instead of ad hoc
300 algorithms to locate a spare call clobbered reg.
302 2019-05-09 Martin Liska <mliska@suse.cz>
304 * gimple-pretty-print.c (dump_binary_rhs): Dump MIN_EXPR
305 and MAX_EXPR in GIMPLE FE format.
307 2019-05-09 Martin Liska <mliska@suse.cz>
309 * tree-cfg.c (dump_function_to_file): Dump entry BB count.
310 * gimple-pretty-print.c (dump_gimple_bb_header):
312 (pp_cfg_jump): Dump edge probability.
313 * profile-count.c (profile_quality_as_string): Simplify
315 (parse_profile_quality): New function.
316 (profile_count::dump): Simplify with a static array.
317 (profile_count::from_gcov_type): Add new argument.
318 * profile-count.h (parse_profile_quality): Likewise.
319 * predict.h (set_hot_bb_threshold): New.
320 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
322 * predict.c (get_hot_bb_threshold): Set from the new param.
323 (set_hot_bb_threshold): New.
325 2019-05-09 Richard Biener <rguenther@suse.de>
327 PR tree-optimization/90395
328 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not
329 rewrite vector stores that throw internally.
331 2019-05-09 Thomas Schwinge <thomas@codesourcery.com>
333 * cif-code.def (CHKP): Remove.
336 * configure.ac (--enable-frame-pointer): Disable by default for
338 * configure: Regenerate.
340 2019-05-09 Alan Modra <amodra@gmail.com>
343 * config/rs6000/rs6000.h (enum reg_class, REG_CLASS_NAMES),
344 (REG_CLASS_CONTENTS): Add GEN_OR_VSX_REGS class.
345 * config/rs6000/rs6000.c (rs6000_register_move_cost): Correct
346 cost for general <-> vsx when direct moves are available.
347 Cost union classes at minimal cost for any reg in the class.
348 Correct calculation for moves between vsx, float, and altivec.
349 Don't return a low cost for moves between special regs. Don't
350 use hard coded register numbers.
351 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define.
352 (rs6000_ira_change_pseudo_allocno_class): New function.
353 * config/rs6000/rs6000.md (movsi_internal1, mov<mode>_internal),
354 (movdi_internal32, movdi_internal64): Remove '*' from vsx register
356 (movsi_internal1): Don't disparage vector alternatives.
357 (mov<mode>_internal): Likewise, excepting alternative that
359 * config/rs6000/vsx.md (vsx_splat_<mode>_reg): Don't disparage
362 2019-05-08 Jakub Jelinek <jakub@redhat.com>
365 PR tree-optimization/89060
366 * tree-ssa-live.h (live_vars_map): New typedef.
367 (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare.
368 * tree-ssa-live.c: Include gimple-walk.h and cfganal.h.
369 (struct compute_live_vars_data): New type.
370 (compute_live_vars_visit, compute_live_vars_1, compute_live_vars,
371 live_vars_at_stmt, destroy_live_vars): New functions.
372 * tree-tailcall.c: Include tree-ssa-live.h.
373 (live_vars, live_vars_vec): New global variables.
374 (find_tail_calls): Perform variable life analysis before punting.
375 (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec.
376 * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest
378 * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument.
379 Perform variable life analysis to select variables that really need
381 (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here,
382 instead set id->eh_landing_pad_dest and assert it is the same.
383 (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL.
385 2019-05-08 Mihail Ionescu <mihail.ionescu@arm.com>
386 Richard Earnshaw <rearnsha@arm.com>
389 * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
391 (thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
392 (thumb1_compute_save_core_reg_mask): Don't force a spare work
393 register if both the epilogue and prologue can use call-clobbered
395 (thumb1_unexpanded_epilogue): Use
396 thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for
397 picking temporaries for restoring high regs to match that of the
398 prologue where possible.
399 (thumb1_expand_prologue): Add any usable call-clobbered low registers to
400 the list of work registers. Detect if the return address is still live
401 at the end of the prologue and avoid using it for a work register if so.
402 If the return address is not live, add LR to the list of pushable regs
403 after the first pass.
405 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
407 PR tree-optimization/90078
408 * tree-ssa-loop-ivopts.c (inttypes.h): Include new header file.
409 (INFTY): Increase the value for infinite cost.
410 (struct comp_cost): Promote type of members to int64_t.
411 (infinite_cost): Don't set complexity in initialization.
412 (comp_cost::operator +,-,+=,-+,/=,*=): Assert when cost computation
413 overflows to infinite_cost.
414 (adjust_setup_cost): Promote type of parameter and cost computation
416 (struct ainc_cost_data, struct iv_ca): Promote type of member to
418 (get_scaled_computation_cost_at, determine_iv_cost): Promote type of
419 cost computation to int64_t.
420 (determine_group_iv_costs, iv_ca_dump, find_optimal_iv_set): Use
421 int64_t's format specifier in dump.
423 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
425 PR tree-optimization/90240
426 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Scale cost
427 with respect to scaling factor pre-computed for each basic block.
428 (try_improve_iv_set): Return bool if best_cost equals to iv_ca cost.
429 (find_optimal_iv_set_1): Free iv_ca set if it has infinite_cost.
430 (COST_SCALING_FACTOR_BOUND, determine_scaling_factor): New.
431 (tree_ssa_iv_optimize_loop): Call determine_scaling_factor. Extend
432 live range for array of loop's basic blocks. Cleanup aux field of
435 2019-05-08 Jakub Jelinek <jakub@redhat.com>
437 PR tree-optimization/90356
438 * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible.
440 2019-05-07 Wei Xiao <wei3.xiao@intel.com>
442 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET
443 OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New.
444 (OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET.
445 (ix86_handle_option): Handle -mavx512bf16.
446 * config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h
448 * config/i386/avx512bf16vlintrin.h: New.
449 * config/i386/avx512bf16intrin.h: New.
450 * config/i386/cpuid.h (bit_AVX512BF16): New.
451 * config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16.
452 * config/i386/i386-builtin-types.def: Add new types.
453 * config/i386/i386-builtin.def: Add new builtins.
454 * config/i386/i386-c.c (ix86_target_macros_internal): Define
456 * config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16.
457 (ix86_option_override_internal): Handle BF16.
458 (ix86_valid_target_attribute_inner_p): Ditto.
459 * config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto.
460 * config/i386/i386-builtin.c (enum processor_features): Add
462 (static const _isa_names_table isa_names_table): Ditto.
463 * config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New.
464 (PTA_AVX512BF16): Ditto.
465 * config/i386/i386.opt: Add -mavx512bf16.
466 * config/i386/immintrin.h: Include avx512bf16intrin.h
467 and avx512bf16vlintrin.h.
468 * config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>,
469 avx512f_cvtneps2bf16_<mode><mask_name>,
470 avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns.
471 * config/i386/subst.md (mask_half): Add new subst.
472 * doc/invoke.texi: Document -mavx512bf16.
474 2019-05-07 Segher Boessenkool <segher@kernel.crashing.org>
476 * config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr):
478 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete.
479 (rs6000_debug_legitimize_reload_address): Delete.
480 (rs6000_legitimize_reload_address_ptr): Delete.
481 (rs6000_option_override_internal): Adjust.
482 (mem_operand_gpr): Adjust comment.
483 (legitimate_lo_sum_address_p): Ditto.
484 (rs6000_legitimize_reload_address): Delete.
485 (rs6000_debug_legitimize_reload_address): Delete.
486 * config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete.
488 2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org>
491 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
492 In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
493 to compute vector element selector for both constant and variable
496 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
498 * config/i386/i386.md (cvt_mnemonic): New mode attribute.
499 (ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and
500 ashrdi3_cvt using SWI48 mode iterator.
502 2019-05-07 Alejandro Martinez <alejandro.martinezvicente@arm.com>
504 * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand.
505 (aarch64_<su>abd<mode>_3): Likewise.
506 (*aarch64_<su>abd<mode>_3): New define_insn.
507 (<sur>sad<vsi2qi>): New define_expand.
508 * config/aarch64/iterators.md: Added MAX_OPP attribute.
509 * tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR.
510 (build_vect_cond_expr): Likewise.
512 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
514 * cfgexpand.c (asm_clobber_reg_is_valid): Reject
515 clobbers outside of accessible_reg_set.
516 * config/i386/i386.c (ix86_conditional_register_usage):
517 Disable register sets by clearing corresponding bits in
518 accessible_reg_set. Do not set corresponding bits in fixed_regs,
519 call_used_regs and don't clear corresponding reg_names array members.
521 2019-05-07 Richard Biener <rguenther@suse.de>
523 * tree-vect-stmts.c (vect_is_simple_cond): When vectype is
524 not specified still compute a comp_vectype for invariant
527 2019-05-07 Richard Biener <rguenther@suse.de>
529 PR tree-optimization/90316
530 * tree-ssa-pre.c (translate_vuse_through_block): When
531 same_valid is NULL do not bother to search for a virtual
533 (phi_translate_1): When operands changed we cannot keep
534 the same value-number so do not bother to ask whether
535 that's possible from translate_vuse_through_block.
537 2019-05-07 Martin Liska <mliska@suse.cz>
539 * bitmap.c (bitmap_register): Come up with
540 alloc_descriptor_max_uid and assign it for
542 (register_overhead): Use get_descriptor as
544 (release_overhead): New.
545 (bitmap_elem_to_freelist): Call it.
546 (bitmap_elt_clear_from): Likewise.
547 (bitmap_obstack_free): Likewise.
548 (bitmap_move): Sensitively release memory.
549 * bitmap.h (struct GTY): Add alloc_descriptor and padding.
550 (bitmap_initialize): Initialize alloc_descriptor to zero.
551 * tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move.
553 2019-05-07 Richard Biener <rguenther@suse.de>
555 * tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever
556 we build a SLP node. Remove max_size and limiting.
557 (vect_analyze_slp_instance): Record and dump size of the SLP graph.
559 2019-05-07 Richard Biener <rguenther@suse.de>
561 PR tree-optimization/90316
562 * tree-ssa-alias.h (get_continuation_for_phi): Take walking
564 (walk_non_aliased_vuses): Take walking limit argument.
565 * tree-ssa-alias.c (maybe_skip_until): Take limit and abort
566 walking if it is reached instead of just counting.
567 (get_continuation_for_phi): Likewise.
568 (walk_non_aliased_vuses): Likewise, instead of leaving counter
569 limiting to the callback.
570 * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust.
571 (vn_reference_lookup_3): Likewise.
572 (vn_reference_lookup_pieces): Likewise.
573 (vn_reference_lookup): Likewise.
574 * tree-ssa-pre.c (translate_vuse_through_block): Limit walking.
575 * tree-ssa-scopedtables.c (vuse_eq): Adjust.
576 (avail_exprs_stack::lookup_avail_expr): Likewise.
578 2019-05-07 Jan Hubicka <hubicka@ucw.cz>
580 * tree-ssa-alias.c (aliasing_component_refs_p): Continue looking
581 for comparaible types in the second direction even if first one
582 hits incomparable type.
584 2019-05-07 Richard Biener <rguenther@suse.de>
587 * lto-wrapper.c (debug_objcopy): Use the original filename
588 including archive offset for the filename used for -save-temps.
590 2019-05-07 Li Jia He <helijia@linux.ibm.com>
592 * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
595 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
597 * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO)
598 (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO)
599 (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO)
600 (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO)
601 (FRAME_POINTER_REGNUM): Change numbering.
602 * config/rs6000/rs6000.c (rs6000_reg_names): Adjust.
603 (alt_reg_names): Adjust.
604 (rs6000_conditional_register_usage): Don't mark hard register 64 as
606 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
607 (DWARF_FRAME_REGISTERS): Delete.
608 (DWARF2_FRAME_REG_OUT): Fix whitespace.
609 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
611 (REG_ALLOC_ORDER): Adjust.
612 (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust.
613 (REG_CLASS_CONTENTS): Adjust.
614 (RETURN_ADDR_RTX): Change comment.
615 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM
617 (REGISTER_NAMES): Adjust.
618 (ADDITIONAL_REGISTER_NAMES): Adjust.
619 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
621 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
623 * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO):
625 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
626 (DWARF_FRAME_REGISTERS): Adjust.
627 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
629 (REG_ALLOC_ORDER): Adjust.
630 (enum reg_class): Delete SPR_REGS.
631 (REG_CLASS_NAMES): Delete SPR_REGS.
632 (REG_CLASS_CONTENTS): Delete SPR_REGS. Adjust for deleted TM regs.
633 (REGISTER_NAMES): Adjust.
634 (ADDITIONAL_REGISTER_NAMES): Adjust.
635 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
636 * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust.
637 * config/rs6000/predicates.md (htm_spr_reg_operand): Delete.
638 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust.
639 (htm_spr_regno): Delete.
640 (htm_expand_builtin): Adjust: the HTM builtins now have one fewer
642 (rs6000_dbx_register_number): Adjust.
644 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
646 * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete.
648 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
650 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle
651 FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ).
653 2019-05-06 Jakub Jelinek <jakub@redhat.com>
655 PR tree-optimization/88709
656 PR tree-optimization/90271
657 * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter.
658 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle
659 non-clobber CONSTRUCTORs with no elts. Remove useless tmp_int
661 (imm_store_chain_info::coalesce_immediate_stores): Punt if the size
662 of the store merging group is larger than
663 PARAM_STORE_MERGING_MAX_SIZE parameter.
664 (split_group): Add bzero_first argument. If set, always emit first
665 the first store which must be = {} of the whole area and then for the
666 rest of the stores consider all zero bytes as paddings.
667 (imm_store_chain_info::output_merged_store): Check if first store
668 is = {} of the whole area and if yes, determine which setting of
669 bzero_first for split_group gives smaller number of stores. Adjust
671 (lhs_valid_for_store_merging_p): Allow decls.
672 (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with
674 (pass_store_merging::process_store): Likewise.
676 2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org>
679 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
680 handling of V1TImode.
682 2019-05-06 Uroš Bizjak <ubizjak@gmail.com>
685 * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld
686 and enable_frame_pointer ...
687 * configure.ac: ... here. Update help strings for
688 --enable-frame-pointer.
689 * configure: Regenerate.
690 * config/i386/i386-options.c (ix86_option_override_internal): Remove
691 USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead.
692 * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove.
693 (USE_X86_64_FRAME_POINTER): Ditto.
695 2019-05-06 Martin Liska <mliska@suse.cz>
697 * config.gcc: Append to target_gtfiles and fix indentation.
699 2019-05-06 Richard Biener <rguenther@suse.de>
701 PR tree-optimization/90358
702 * tree-vect-stmts.c (get_group_load_store_type): Properly
703 detect unused upper half of load.
704 (vectorizable_load): Likewise.
706 2019-05-06 Richard Biener <rguenther@suse.de>
708 PR tree-optimization/88828
709 * tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from...
710 (simplify_vector_constructor): ...here. Handle constants in
713 2019-05-06 Richard Biener <rguenther@suse.de>
715 PR tree-optimization/90328
716 * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
717 * tree-data-ref.c (dr_may_alias_p): Check whether the clique
718 is valid in the loop nest before using it.
719 (initialize_data_dependence_relation): Adjust.
720 * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
721 loop as loop-nest to dr_may_alias_p.
723 2019-05-06 Richard Biener <rguenther@suse.de>
725 * dwarf2out.c (mem_loc_descriptor): Initialize int_mode.
727 2019-05-06 Richard Biener <rguenther@suse.de>
729 PR tree-optimization/90316
730 * tree-ssa-alias.c (maybe_skip_until): Pass in target BB,
731 compute target on demand.
732 (get_continuation_for_phi): Remove code walking stmts to
733 get to a target virtual operand which could end up being
736 2019-05-06 Martin Liska <mliska@suse.cz>
739 * config/i386/i386-options.c (ix86_option_override_internal): Error only
740 when -mabi is selected to a non-default version.
742 2019-05-06 Hrishikesh Kulkarni <hrishikeshparag@gmail.com>
743 Martin Liska <mliska@suse.cz>
745 * Makefile.in: Add lto-dump.texi.
746 * cgraph.h: Add new functions get_visibility_string and
747 get_symtab_type_string.
748 * doc/gcc.texi: Include lto-dump section.
749 * doc/lto-dump.texi: New file.
750 * dumpfile.c (dump_switch_p_1): Use parse_dump_option.
751 (parse_dump_option): Factor out this function.
752 * dumpfile.h (enum dump_flag): Add new value TDF_ERROR.
753 (parse_dump_option): Export the function.
754 * symtab.c (symtab_node::get_visibility_string): New function.
755 (symtab_node::get_symtab_type_string): Likewise.
757 2019-05-06 Martin Liska <mliska@suse.cz>
759 * config/i386/i386-builtins.c: New file.
760 * config/i386/i386-builtins.h: New file.
761 * config/i386/i386-expand.c: New file.
762 * config/i386/i386-expand.h: New file.
763 * config/i386/i386-features.c: New file.
764 * config/i386/i386-features.h: New file.
765 * config/i386/i386-options.c: New file.
766 * config/i386/i386-options.h: New file.
767 * config.gcc: Add new files into extra_objs and
769 * config/i386/i386.c: Split content of the file
770 into newly introduced files.
771 * config/i386/i386.h: Declare common variables
773 * config/i386/t-i386: Define dependencies for new files.
776 2019-05-03 Richard Earnshaw <rearnsha@arm.com>
779 * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
780 Restrict 'all' variant to 32-bit configurations.
781 (unaligned_loadhiu): Likewise.
782 (unaligned_storehi): Likewise.
783 (unaligned_storesi): Likewise.
784 (unaligned_loadhis): Disable when compiling for thumb1.
786 2019-05-03 Marc Glisse <marc.glisse@inria.fr>
788 PR tree-optimization/90269
789 * tree-loop-distribution.c (find_seed_stmts_for_distribution):
792 2019-05-03 Martin Liska <mliska@suse.cz>
794 * hash-map.h: Add is_empty function.
795 * hash-set.h: Likewise.
796 * hash-table.h: Likewise.
797 * dwarf2out.c (dwarf2out_finish): Use is_empty instead of
798 elements () == 0 (and similar usages).
799 * gimple-ssa-store-merging.c (pass_store_merging::terminate_and_process_all_chains): Likewise.
800 * gimplify.c (gimplify_bind_expr): Likewise.
801 (gimplify_switch_expr): Likewise.
802 * hash-map-tests.c (test_map_of_strings_to_int): Likewise.
803 * ipa-icf.c (sem_item_optimizer::remove_symtab_node): Likewise.
804 * postreload-gcse.c (dump_hash_table): Likewise.
805 (gcse_after_reload_main): Likewise.
806 * predict.c (combine_predictions_for_bb): Likewise.
807 * tree-parloops.c (reduction_phi): Likewise.
808 (separate_decls_in_region): Likewise.
809 (transform_to_exit_first_loop): Likewise.
810 (gen_parallel_loop): Likewise.
811 (gather_scalar_reductions): Likewise.
812 (try_create_reduction_list): Likewise.
813 * var-tracking.c (dump_vars): Likewise.
814 (emit_notes_for_changes): Likewise.
815 (vt_emit_notes): Likewise.
817 2019-05-03 Richard Biener <rguenther@suse.de>
819 PR tree-optimization/90316
820 * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries
823 2019-05-03 Richard Biener <rguenther@suse.de>
825 * tree-vect-stmts.c (get_group_load_store_type): Avoid
826 peeling for gaps by loading only lower halves of vectors
828 (vectorizable_load): Likewise.
830 2019-05-03 Richard Biener <rguenther@suse.de>
833 * match.pd: Add pattern to optimize (A / B) * B + (A % B) to A.
835 2019-05-03 Richard Biener <rguenther@suse.de>
838 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)):
839 Handle STRING_CST vs DECL or STRING_CST.
841 2019-05-03 Richard Biener <rguenther@suse.de>
843 PR tree-optimization/88963
844 * tree-ssa-forwprop.c (pass_forwprop::execute): Rewrite
845 vector loads feeding only BIT_FIELD_REFs to component
846 loads. Rewrite stores fed by CONSTRUCTORs to component
849 2019-05-03 Jakub Jelinek <jakub@redhat.com>
851 * opts.h (finish_options): Remove lang_mask argument.
852 (print_help, help_option_argument): Declare.
853 * opts.c (print_help): Remove forward declaration, no longer static.
854 (finish_options): Remove lang_mask argument, don't call print_help
856 * opts-global.c (decode_options): Adjust finish_option caller, call
859 PR tree-optimization/90303
860 * ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use
861 TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode.
863 2019-05-03 Richard Biener <rguenther@suse.de>
865 PR tree-optimization/89698
866 * gimple-fold.c (canonicalize_constructor_val): Early out
867 for constants, handle unfolded INTEGER_CSTs as they appear in
868 C++ virtual table ctors.
870 2019-05-03 Richard Biener <rguenther@suse.de>
872 * passes.c (execute_function_todo): Remove dead code.
874 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
876 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use
877 the internal register number, for any "real" register.
879 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
881 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
882 correct numbers for TFHAR, TFIAR, TEXASR.
884 2019-05-02 Richard Biener <rguenther@suse.de>
886 PR tree-optimization/89653
887 * tree-ssa-loop.c (pass_data_tree_loop_init): Execute
888 update-address-taken before the pass.
889 * passes.def (pass_tree_loop_init): Put comment before it.
891 2019-05-02 Richard Biener <rguenther@suse.de>
893 PR tree-optimization/89509
894 * tree-ssa-structalias.c (compute_dependence_clique): Look
895 at the first subvar when determining whether it is restrict.
897 2019-05-02 Richard Biener <rguenther@suse.de>
899 PR tree-optimization/90273
900 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate
903 2019-05-02 Alejandro Martinez <alejandro.martinezvicente@arm.com>
905 * config/aarch64/aarch64-sve.md (<sur>dot_prod<vsi2qi>): Taken from SVE
907 * config/aarch64/iterators.md: Copied Vetype_fourth, VSI2QI and vsi2qi from
909 * tree-vect-loop.c (use_mask_by_cond_expr_p): New function to check if a
910 VEC_COND_EXPR be inserted to emulate a conditional internal function.
911 (build_vect_cond_expr): Emit the VEC_COND_EXPR.
912 (vectorizable_reduction): Use the functions above to vectorize in a
913 fully masked loop codes that don't have a conditional internal
916 2019-05-02 Martin Liska <mliska@suse.cz>
918 * cgraphclones.c: Call valid_attribute_p with 1 for
920 * config/i386/i386-c.c (ix86_pragma_target_parse): Use 0 as
921 it's for target attribute.
922 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
923 Add new boolean argument.
924 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
926 (ix86_valid_target_attribute_tree): Pass target_clone_attr
927 to ix86_valid_target_attribute_inner_p.
928 (ix86_valid_target_attribute_p): Pass flags argument to
929 ix86_valid_target_attribute_inner_p.
930 (get_builtin_code_for_version): Use 0 as it's target attribute.
932 2019-05-02 Martin Liska <mliska@suse.cz>
934 * gcc.c (process_command): Add dummy file only
936 * opts-global.c (decode_options): Pass lang_mask.
937 * opts.c (print_help): New function.
938 (finish_options): Print --help if help_option_argument
940 (common_handle_option): Factor out content of OPT__help_
942 * opts.h (finish_options): Add new argument.
944 2019-05-02 Martin Liska <mliska@suse.cz>
947 * config/i386/i386.c (ix86_expand_strlen): Use strlen call.
948 With -minline-all-stringops use inline expansion using 4B loop.
949 * doc/invoke.texi: Document the change of
950 -minline-all-stringops.
952 2019-05-01 Jeff Law <law@redhat.com>
954 PR tree-optimization/88797
955 * gimple-ssa-split-paths (is_feasible_trace): Reject cases where the
956 PHI feeds a conditional on the RHS of an assignment.
958 2019-04-30 Andrew Waterman <andrew@sifive.com>
959 Jim Wilson <jimw@sifive.com>
961 * config/riscv/constraints.md (L): New.
962 * config/riscv/predicates.md (lui_operand): New.
963 (sfb_alu_operand): New.
964 * config/riscv/riscv-protos.h (riscv_expand_conditional_move): Declare.
965 * config/riscv/riscv.c (riscv_expand_conditional_move): New.
966 * config/riscv/riscv.h (TARGET_SFB_ALU): New.
967 * config/riscv/risc.md (type): Add sfb_alu.
968 (branch<mode>): Renamed from branch_order<mode>. Change predicate for
969 operand 3 to reg_or_0_operand. In output string, change %3 to %z3.
970 (branch_zero<mode>): Delete.
972 (mov<GPR:mode><X:mode>cc): Likewise.
973 * config/riscv/sifive-7.md (sifive_7_sfb_alu): New. Use in bypasses.
975 2019-04-30 Nathan Sidwell <nathan@acm.org>
977 * tree.h (MARK_TS_EXP): New.
979 2019-04-30 Martin Liska <mliska@suse.cz>
981 * opts.c (enable_warning_as_error): Provide hints
984 2019-04-30 Martin Liska <mliska@suse.cz>
987 * doc/invoke.texi: Add missing dash for gas-locview-support
988 and gno-as-locview-support.
990 2019-04-30 Jakub Jelinek <jakub@redhat.com>
993 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip
994 whitespace at the start of target attribute string.
996 2019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
999 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
1000 Define __ARM_FEATURE_ATOMICS.
1002 2019-04-30 Martin Liska <mliska@suse.cz>
1004 * gimple-fold.c (gimple_fold_builtin_memory_op): Change endp
1005 into built_in_function enum. Remove code for endp == 2 and
1006 use BUILT_IN_* constants.
1007 (gimple_fold_builtin): Call the function with fcode.
1009 2019-04-30 Martin Liska <mliska@suse.cz>
1011 * config/i386/i386.c (ix86_builtin_reciprocal): Cast
1012 DECL_FUNCTION_CODE into ix86_builtins enum before
1013 the switch statement.
1015 2019-04-30 Jakub Jelinek <jakub@redhat.com>
1017 PR tree-optimization/89475
1018 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64}
1021 2019-04-30 Martin Liska <mliska@suse.cz>
1023 PR translation/90274
1024 * opts.c (print_filtered_help): Wrap string in _(...).
1026 2019-04-30 Bin Cheng <bin.cheng@linux.alibaba.com>
1028 PR tree-optimization/90240
1030 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
1032 PR tree-optimization/90078
1033 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
1034 checks for infinite_cost overflow.
1036 2019-04-29 Jeff Law <law@redhat.com>
1038 * passes.def: Move -Wrestrict pass after copy propagation.
1040 2019-04-29 Maya Rashish <coypu@sdf.org>
1042 * config.gcc (default_gnu_indirect_function): Default to yes
1043 for arm*-*-netbsd*, i[34567]86-*-netbsd*, powerpc*-*-netbsd*,
1044 sparc*-*-netbsd*, x86_64-*-netbsd*.
1046 2019-04-29 Vladislav Ivanishin <vlad@ispras.ru>
1048 * tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases
1049 where cond2 is NE_EXPR.
1050 (is_value_included_in): Update comment.
1052 2019-04-29 Richard Biener <rguenther@suse.de>
1054 PR tree-optimization/90278
1055 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
1056 EH on comparison simplification.
1058 2019-04-29 Jason Merrill <jason@redhat.com>
1060 PR c++/82081 - tail call optimization breaks noexcept
1061 * tree-tailcall.c (find_tail_calls): Don't turn a call from a
1062 nothrow function to a might-throw function into a tail call.
1064 2019-04-29 Richard Sandiford <richard.sandiford@arm.com>
1066 * tree-data-ref.h (data_dependence_relation::inner_loop): Delete.
1067 (DDR_INNER_LOOP): Likewise.
1068 * tree-data-ref.c (dump_data_dependence_relation): Update accordingly.
1069 (initialize_data_dependence_relation): Likewise.
1070 (insert_innermost_unit_dist_vector): Use 0 instead of DDR_INNER_LOOP.
1072 2019-04-29 Jakub Jelinek <jakub@redhat.com>
1074 PR rtl-optimization/90257
1075 * cfgrtl.c (flow_active_insn_p): Return true for USE of a function
1079 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
1083 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
1086 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
1089 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
1091 * lra-spills.c (lra_final_code_change): Remove useless move insns.
1093 2019-04-29 Richard Biener <rguenther@suse.de>
1095 * tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER}
1098 2019-04-27 Iain Buclaw <ibuclaw@gdcproject.org>
1100 * config/netbsd-d.c: Include memmodel.h. Remove unused tree.h,
1101 varasm.h, and netbsd-protos.h.
1103 2019-04-27 Uroš Bizjak <ubizjak@gmail.com>
1106 * config/i386/i386-protos.h (ix86_data_alignment): Change
1107 the second argument type to unsigned int.
1108 * config/i386/i386.c (ix86_data_alignment): Change "align"
1109 argument type to unsigned int.
1111 2019-04-27 Martin Liska <mliska@suse.cz>
1114 * opt-suggestions.c (option_proposer::build_option_suggestions):
1115 When get_valid_option_values returns empty values, add the
1116 misspelling candidate.
1118 2019-04-26 Jim Wilson <jimw@sifive.com>
1120 * config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode
1122 * config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode.
1123 Pass orig_mode to riscv_build_integer.
1124 (riscv_split_integer): Pass mode to riscv_move_integer.
1125 (riscv_legitimize_const_move): Likewise.
1126 (riscv_legitimize_move): For MEM dest and CONST_INT src case, new local
1127 promoted_mode. Replace force_reg call with code to load constant into
1128 promoted reg and then subreg it for the store.
1129 * config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to
1132 2018-04-26 Eugene Sharygin <eush@ispras.ru>
1134 * gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with
1137 2019-04-26 Richard Sandiford <richard.sandiford@arm.com>
1139 * tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add
1140 commentary about the encoding of precision.
1142 2019-04-25 Andreas Tobler <andreast@gcc.gnu.org>
1144 * config/i386/freebsd64.h: Add bits for 32-bit multilib support.
1145 * config/i386/t-freebsd64: New file.
1146 * config.gcc: Add the t-freebsd64 for multilib support.
1148 2019-04-25 Uroš Bizjak <ubizjak@gmail.com>
1150 * doc/extend.texi (vector_size): Add missing comma after @xref.
1152 2019-04-25 Jakub Jelinek <jakub@redhat.com>
1154 * BASE-VER: Set to 10.0.0.
1156 2019-04-25 Richard Biener <rguenther@suse.de>
1159 * gimplify.c (gimplify_expr): Avoid turning a lvalue
1160 VIEW_CONVERT_EXPR into one operating on an rvalue.
1162 2019-04-25 H.J. Lu <hongjiu.lu@intel.com>
1165 * config/i386/i386.c (feature_priority): Moved to file scope.
1166 (processor_features): Likewise.
1167 (processor_model): Likewise.
1168 (_arch_names_table): Likewise.
1169 (arch_names_table): Likewise.
1170 (_feature_list): Removed.
1171 (feature_list): Likewise.
1172 (_isa_names_table): Moved to file scope. Add priority.
1173 (isa_names_table): Likewise.
1174 (get_builtin_code_for_version): Replace feature_list with
1175 isa_names_table. Update error message for P_ZERO priority.
1177 2019-04-25 Richard Biener <rguenther@suse.de>
1179 * tree-pass.h (make_pass_phi_only_cprop): Remove.
1180 * timevar.def (TV_TREE_PHI_CPROP): Likewise.
1182 2019-04-24 Jeff Law <law@redhat.com>
1184 PR tree-optimization/90037
1185 * Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c
1186 * passes.def: Replace all instance of phi-only cprop with the
1187 lattice propagator. Move propagation pass from after erroneous
1188 path isolation to before erroneous path isolation.
1189 * tree-ssa-phionlycprop.c: Remove.
1191 2019-04-24 Richard Biener <rguenther@suse.de>
1194 * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
1195 by size and BITS_PER_UNIT on poly-wide-ints.
1197 2019-04-25 Richard Biener <rguenther@suse.de>
1200 * match.pd: Add pattern to simplify view-conversion of an
1203 2019-04-24 Clement Chigot <clement.chigot@atos.net>
1205 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable
1206 OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags
1207 for Go on 32 bit AIX.
1208 * config/rs6000/aix72.h: Likewise.
1210 2019-04-24 Jakub Jelinek <jakub@redhat.com>
1213 * rtl.c (classify_insn): Return JUMP_INSN for asm goto.
1214 * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.
1216 2019-04-24 Andreas Krebbel <krebbel@linux.ibm.com>
1219 * config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs
1220 from FPRs in reverse order. Generate REG_CFA_DEF_CFA note also
1221 for restored hard frame pointer.
1222 (s390_sched_dependencies_evaluation): Implement new target hook.
1223 (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition.
1225 2019-04-24 Claudiu Zissulescu <claziss@sysnopsys.com>
1227 * config/arc/arc-options.def: Fix typos and spelling mistakes.
1228 * config/arc/arc.c (arc_init): Cleanup warning message.
1229 (arc_override_options): Likewise.
1231 2019-04-24 Jakub Jelinek <jakub@redhat.com>
1234 * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
1235 a register if both if_true and if_false are MEMs.
1237 PR tree-optimization/90208
1238 * tree-cfg.c (remove_bb): Move forced labels from removed bbs
1239 after labels of new_bb, not before them.
1241 PR tree-optimization/90211
1242 * tree-parloops.c (try_create_reduction_list): Ignore phi arguments
1243 which are not SSA_NAMEs.
1245 2018-04-23 Sudakshina Das <sudi.das@arm.com>
1247 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for
1249 (aarch64_file_end_indicate_exec_stack): Add gnu note section.
1251 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
1253 PR rtl-optimization/87979
1254 * modulo-sched.c (sms_schedule): Start ii value "mii" should
1257 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
1259 PR rtl-optimization/84032
1260 * modulo-sched.c (ps_insn_find_column): Change condition so that
1261 branch will always be the last insn in a row inside partial
1264 2019-04-23 Richard Biener <rguenther@suse.de>
1267 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add
1268 dest_single_pred_p argument.
1269 (remove_forwarder_block): Adjust.
1270 (remove_forwarder_block_with_phi): Likewise.
1272 2019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1273 Bernd Edlinger <bernd.edlinger@hotmail.de>
1274 Jakub Jelinek <jakub@redhat.com>
1277 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
1278 if used with general-regs-only.
1279 (arm_conditional_register_usage): Don't add non-general regs if
1281 (arm_valid_target_attribute_rec): Handle general-regs-only.
1282 * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
1284 (TARGET_HARD_FLOAT_SUB): Define.
1285 (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
1286 (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
1287 (TARGET_REALLY_IWMMXT2): Likewise.
1288 * config/arm/arm.opt: Add -mgeneral-regs-only.
1289 * doc/extend.texi: Document ARM general-regs-only target.
1290 * doc/invoke.texi: Document ARM -mgeneral-regs-only.
1292 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
1294 PR tree-optimization/90078
1295 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
1296 checks for infinite_cost overflow.
1298 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
1300 PR tree-optimization/90021
1301 * tree-chrec.c (evolution_function_is_univariate_p): New parameter
1302 and check univariate against it.
1303 * tree-chrec.h (evolution_function_is_univariate_p): New parameter.
1304 * tree-data-ref.c (add_other_self_distances): Pass new argument.
1306 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
1310 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
1313 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
1316 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
1318 * lra-spills.c (lra_final_code_change): Remove useless move insns.
1320 2019-04-21 Iain Sandoe <iain@sandoe.co.uk>
1322 * config/rs6000/rs6000.md (group_end_nop): Emit insn register
1323 names using operand format, rather than hard-wired.
1324 (speculation_barrier): Likewise.
1326 2019-04-19 Segher Boessenkool <segher@kernel.crashing.org>
1328 PR tree-optimization/88055
1329 * tree-call-cdce.c (comparison_code_if_no_nans): New function.
1330 (gen_one_condition): Use it if !HONOR_NANS.
1332 2019-04-19 Jakub Jelinek <jakub@redhat.com>
1335 * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
1336 assign_temp instead of gen_reg_rtx.
1338 2019-04-19 Christophe Lyon <christophe.lyon@linaro.org>
1340 PR translation/90118
1341 * config/aarch64/aarch64.c (aarch64_override_options_internal):
1342 Add missing space before %<.
1344 2019-04-18 Peter Bergner <bergner@linux.ibm.com>
1346 PR rtl-optimization/87871
1347 * ira-lives.c (make_object_dead): Don't add conflicts to
1348 TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts.
1350 2019-04-18 Martin Sebor <msebor@redhat.com>
1353 * tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U.
1354 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid
1355 assuming type size fits in SHWI.
1357 2019-04-18 Jan Hubicka <hubicka@ucw.cz>
1360 * ipa-inline.c (flatten_function): New parameter UPDATE.
1361 (ipa_inline, early_inliner): Use it.
1363 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
1365 * fold-const.c (int_const_binop): Return early on failure.
1367 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
1370 * combine.c (force_int_to_mode): Cast the argument rather than
1371 the result of known_alignment.
1372 * rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p.
1374 2019-04-18 Richard Biener <rguenther@suse.de>
1377 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split
1379 (remove_forwarder_block): ... here.
1380 (remove_forwarder_block_with_phi): Also move debug stmts here.
1382 2019-04-18 Jakub Jelinek <jakub@redhat.com>
1384 PR translation/79183
1385 * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
1386 inform where appropriate.
1388 2019-04-18 Richard Biener <rguenther@suse.de>
1390 * tree.c (get_qualified_type): Put found type variants at the
1391 head of the variant list.
1393 2018-04-17 Segher Boessenkool <segher@kernel.crashing.org>
1395 * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo.
1397 2019-04-17 Hongtao Liu <hongtao.liu@intel.com>
1400 * config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd,
1401 _mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd,
1402 _mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd,
1403 _mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd,
1404 _mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3.
1406 2019-04-17 Peter Bergner <bergner@linux.ibm.com>
1408 * ira-conflicts.c (print_allocno_conflicts): Always print something,
1409 even for allocno's with no conflicts.
1410 (print_conflicts): Print an extra newline.
1412 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
1414 * auto-inc-dec.c (attempt_change): Set the alignment of the
1415 temporary memory to that of the original.
1417 2019-04-17 Joao Moreira <jmoreira@suse.de>
1419 * targhooks.c (default_print_patchable_function_entry): Emit
1420 __patchable_function_entries section with writable flags to allow
1421 relocation resolution.
1423 2019-04-17 Jonny Grant <jg@jguk.org>
1425 * collect2.c (main): Change gcc.gnu.org URL to HTTPS.
1427 2019-04-17 Jakub Jelinek <jakub@redhat.com>
1430 * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
1433 2019-04-17 Claudiu Zissulescu <claziss@synopsys.com>
1435 * config/arc/arc.c (arc_init): Format diagnostic string.
1436 (arc_override_options): Likewise.
1437 (check_if_valid_regno_const): Likewise.
1438 (arc_reorg): Likewise.
1440 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
1443 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
1445 (rs6000_emit_allocate_stack_1): Simplify condition. Adjust pattern
1447 * config/rs6000/rs6000.md (bits): Add entries for SF and DF.
1448 (*movdi_update1): Use Pmode.
1449 (movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
1450 (movdi_<mode>_update_stack): Rename to ...
1451 (movdi_update_stack): ... this. Fix comment. Change condition. Don't
1453 (*movsi_update1): Use Pmode.
1454 (*movsi_update2): Use Pmode.
1455 (movsi_update): Rename to ...
1456 (movsi_<mode>_update): ... this. Use Pmode.
1457 (movsi_update_stack): Fix condition.
1458 (*movhi_update1): Use Pmode. Fix argument to
1459 avoiding_indexed_address_p.
1460 (*movhi_update2): Ditto.
1461 (*movhi_update3): Ditto.
1462 (*movhi_update4): Ditto.
1463 (*movqi_update1): Ditto.
1464 (*movqi_update2): Ditto.
1465 (*movqi_update3): Ditto.
1466 (*movsf_update1, *movdf_update1): Merge, rename to...
1467 (*mov<mode>_update1): This. Use Pmode. Fix argument to
1468 avoiding_indexed_address_p. Add "size" attribute.
1469 (*movsf_update2, *movdf_update2): Merge, rename to...
1470 (*mov<mode>_update2): This. Ditto.
1471 (*movsf_update3): Use Pmode. Fix argument to
1472 avoiding_indexed_address_p.
1473 (*movsf_update4): Ditto.
1474 (allocate_stack): Simplify condition. Adjust pattern names.
1476 2019-04-17 Jakub Jelinek <jakub@redhat.com>
1479 * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
1480 whitespace at the start of target attribute string.
1482 2019-04-16 Pat Haugen <pthaugen@us.ibm.com>
1485 * config/rs6000/power9.md: Add store forwarding bypass.
1487 2019-04-16 Alexandre Oliva <aoliva@redhat.com>
1490 * valtrack.c (dead_debug_insert_temp): Reset debug references
1491 to the return value of a call being removed.
1493 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
1495 * config/arc/arc-protos.h (arc_register_move_cost): Remove.
1496 * config/arc/arc.c (arc_register_move_cost): Re-purpose it to
1497 implement target hook.
1498 (arc_memory_move_cost): New function.
1499 (TARGET_REGISTER_MOVE_COST): Define.
1500 (TARGET_MEMORY_MOVE_COST): Likewise.
1501 * config/arc/arc.h (REGISTER_MOVE_COST): Remove.
1502 (MEMORY_MOVE_COST): Likewise.
1504 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
1506 * config/arc/arc.md (sibcall_insn): Use Rcd constraint.
1507 (sibcall_value_insn): Likewise.
1508 * config/arc/constraints.md (Rs5): Remove.
1510 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
1512 * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
1513 for last two fake registers.
1514 (arc_conditional_register_usage): Make sure fake frame and arg
1515 pointer regs are in general regs class.
1516 (FRAME_POINTER_MASK): Remove.
1517 (RETURN_ADDR_MASK): Remove.
1518 (arc_must_save_register): Use hard frame regnum.
1519 (frame_restore_reg): Use hard_frame_pointer_rtx.
1520 (arc_save_callee_saves): Likewise.
1521 (arc_restore_callee_saves): Likewise.
1522 (arc_save_callee_enter): Likewise.
1523 (arc_restore_callee_leave): Likewise.
1524 (arc_save_callee_milli): Likewise.
1525 (arc_eh_return_address_location): Likewise.
1526 (arc_check_multi): Use hard frame regnum.
1527 (arc_can_eliminate): Likewise.
1528 * config/arc/arc.h (FIXED_REGISTERS): Make FP register available
1529 for register allocator.
1530 (REG_CLASS_CONTENTS): Update GENERAL_REGS.
1531 (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
1532 (FRAME_POINTER_REGNUM): Change it to a fake register.
1533 (HARD_FRAME_POINTER_REGNUM): Defined.
1534 (ARG_POINTER_REGNUM): Change it to a new fake register.
1535 (ELIMINABLE_REGS): Update.
1536 (REGISTER_NAMES): Update names.
1537 * config/arc/arc.md (LP_START): Remove.
1539 (shift_si3_loop): Update pattern.
1541 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
1543 * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
1544 to avoid delay slot scheduling.
1545 (arc_must_save_register): Don't save SP.
1546 * config/arc/arc.md (stack_tie): Remove.
1547 (UNSPEC_ARC_STKTIE): Likewise.
1549 2019-04-16 Kito Cheng <kito.cheng@gmail.com>
1550 Shiva Chen <shiva0217@gmail.com>
1552 * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
1553 code gen with large shift amount.
1555 2019-04-16 Chung-Ju Wu <jasonwucj@gmail.com>
1557 * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
1560 2019-04-16 Jakub Jelinek <jakub@redhat.com>
1563 * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
1564 print -m64/-mx32/-m32 if it is true.
1565 (ix86_debug_options, ix86_function_specific_print): Pass true as
1566 ADD_ABI_P to ix86_target_string.
1567 (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
1568 ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
1569 or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.
1571 PR rtl-optimization/90082
1572 * dce.c (can_delete_call): New function.
1573 (deletable_insn_p, mark_insn): Use it.
1575 PR tree-optimization/90090
1576 * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
1578 (is_division_by_square): Likewise. Formatting fix.
1580 2019-04-16 Richard Biener <rguenther@suse.de>
1582 PR tree-optimization/56049
1583 * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
1584 equality check if alias-set zero will prevail.
1586 2019-04-15 Jeff Law <law@redhat.com>
1588 * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
1589 size and alignment as unsigned.
1591 2019-04-15 Richard Biener <rguenther@suse.de>
1594 * tree-loop-distribution.c (destroy_loop): Preserve correct
1597 2019-04-15 Richard Biener <rguenther@suse.de>
1599 PR tree-optimization/90071
1600 * tree-ssa-reassoc.c (init_range_entry): Do not pick up
1601 abnormal operands from def stmts.
1603 2019-04-15 Segher Boessenkool <segher@kernel.crashing.org>
1605 PR rtl-optimization/89794
1606 * combine.c (count_auto_inc): New function.
1607 (try_combine): Count how many auto_inc expressions there were in the
1608 original instructions. Ensure we have the same number in the new
1609 instructions. Remove the code that tried to ensure auto_inc side
1610 effects on i1 and i0 are not lost.
1612 2019-04-15 Richard Biener <rguenther@suse.de>
1615 * tree.h (auto_var_p): Declare.
1616 * tree.c (auto_var_p): New function, split out from ...
1617 (auto_var_in_fn_p): ... here.
1618 * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
1620 (new_var_info): Initialize it.
1621 (set_uids_in_ptset): Also set the shadow variable uid if required.
1622 (ipa_pta_execute): Postprocess points-to solutions assigning
1623 shadow variable uids for locals that may reach their containing
1624 function recursively.
1625 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
1626 assert but instead check whether the points-to solution is
1629 2019-04-15 Martin Jambor <mjambor@suse.cz>
1632 * cgraph.c (clone_of_p): Loop over clone chain for each step in
1635 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
1637 * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.
1639 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
1640 Kito Cheng <kito.cheng@gmail.com>
1641 Shiva Chen <shiva0217@gmail.com>
1643 * config/nds32/nds32-md-auxiliary.c
1644 (nds32_legitimize_pic_address): Use new PIC pattern.
1645 (nds32_legitimize_tls_address): Use new TLS pattern.
1646 (nds32_output_symrel): New.
1647 * config/nds32/nds32-protos.h (nds32_output_symrel): Declare.
1648 (nds32_alloc_relax_group_id): Ditto.
1649 * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New.
1650 (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use
1652 (nds32_group_tls_insn): Ditto.
1653 (nds32_group_float_insns): Ditto.
1654 * config/nds32/nds32.md (tls_le): New.
1657 2019-04-15 Chung-Ju Wu <jasonwucj@gmail.com>
1659 * configure: Add nds32 target for dwarf2 debug_line checking.
1660 * configure.ac: Regenerated.
1662 2019-04-14 Jan Hubicka <hubicka@ucw.cz>
1665 * ipa-devirt.c (skip_in_fields_list_p): New.
1666 (odr_types_equivalent_p): Use it.
1668 2019-04-13 Jakub Jelinek <jakub@redhat.com>
1671 * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
1672 instead of strncmp when checking for thumb and arm. Formatting fixes.
1674 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org>
1676 * doc/install.texi: Document --with-target-system-zlib.
1678 2019-04-12 Martin Sebor <msebor@redhat.com>
1684 * targhooks.c (default_vector_alignment): Avoid assuming
1685 argument fits in SHWI.
1686 * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
1688 * doc/extend.texi (__builtin_has_attribute): Add a clarifying note.
1690 2019-04-12 Jakub Jelinek <jakub@redhat.com>
1692 PR rtl-optimization/89965
1693 * dce.c: Include rtl-iter.h.
1694 (struct check_argument_load_data): New type.
1695 (check_argument_load): New function.
1696 (find_call_stack_args): Check for loads from stack slots still tracked
1697 in sp_bytes and punt if any is found.
1699 * config/mips/loongson-mmiintrin.h: Fix up #error message.
1701 2019-04-12 Jan Hubicka <hubicka@ucw.cz>
1703 * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
1704 * doc/invoke.texi (max-lto-streaming-paralellism): New --param.
1706 2019-04-12 Martin Liska <mliska@suse.cz>
1709 * multiple_target.c (create_dispatcher_calls): Wrap ifunc
1711 (separate_attrs): Handle multiple 'default's.
1712 (expand_target_clones): Rework error handling code.
1714 2019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org>
1717 * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
1718 mode of vector rather than mode of destination for move instruction.
1719 * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
1720 Use QI inner mode with V16QI vector mode.
1722 2019-04-12 Jakub Jelinek <jakub@redhat.com>
1725 * config/tilepro/tilepro.c (tilepro_print_operand): Use just
1726 "invalid %%t operand" in output_operand_lossage message.
1728 2019-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
1730 * config/s390/predicates.md (permute_pattern_operand): New
1732 * config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
1733 operand for the permute pattern.
1734 ("*vec_perm<mode>"): New insn definition.
1735 ("bswap<mode>"): Generate the permute pattern operand in the
1736 expander and perform the operand reloads for pre arch13 level
1738 ("*bswap<mode>_emu"): Rename to ...
1739 ("*bswap<mode>"): ... this. And make the splitter vxe2 only.
1740 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
1741 Add the USE operand for the permute pattern.
1742 ("*vec_set_bswap_vec<mode>"): Likewise.
1744 2019-04-12 Jakub Jelinek <jakub@redhat.com>
1747 * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
1748 and gcc_unreachable if it fails, just call tree_to_uhwi which
1749 verifies that too. Test TREE_CHAIN instead of list_length > 1.
1750 Start warning message with a lower-case letter. Formatting fixes.
1752 PR rtl-optimization/90026
1753 * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
1754 successors, look for BARRIERs inside of the whole BB_FOOTER chain
1755 rather than just at the start of it. If e->src BB_FOOTER is not NULL
1756 in cfglayout mode, use emit_barrier_after_bb.
1758 2018-04-11 Steve Ellcey <sellcey@marvell.com>
1760 PR rtl-optimization/87763
1761 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
1764 2019-04-11 Tom de Vries <tdevries@suse.de>
1766 * doc/extend.texi (@node Statement Exprs): Note variable shadowing at
1767 max macro using statement expression.
1769 2019-04-11 David Edelsohn <dje.gcc@gmail.com>
1771 * xcoffout.h (xcoff_private_rodata_section_name): Declare.
1772 * xcoffout.c (xcoff_private_rodata_section_name): Define.
1773 * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
1774 read_only_private_data_section using xcoff_private_rodata_section_name.
1775 (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.
1777 2019-04-11 Christophe Lyon <christophe.lyon@linaro.org>
1780 * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.
1782 2019-04-11 Jakub Jelinek <jakub@redhat.com>
1784 PR rtl-optimization/89965
1785 * dce.c (sp_based_mem_offset): New function.
1786 (find_call_stack_args): Use sp_based_mem_offset.
1788 2019-04-11 Jonathan Wakely <jwakely@redhat.com>
1790 * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.
1792 2019-04-11 Richard Biener <rguenther@suse.de>
1794 PR tree-optimization/90020
1795 * tree-ssa-sccvn.c (vn_reference_may_trap): New function.
1796 * tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
1797 * tree-ssa-pre.c (compute_avail): Use it to not put
1798 possibly trapping references after a call that might not
1799 return into EXP_GEN.
1800 * gcse.c (compute_hash_table_work): Do not elide
1801 marking a block containing a call if the call might not
1804 2019-04-11 Richard Biener <rguenther@suse.de>
1806 PR tree-optimization/90018
1807 * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
1808 Test both SLP and interleaving variants.
1810 2019-04-11 Robin Dapp <rdapp@linux.ibm.com>
1812 * config/s390/8561.md: New file.
1813 * config/s390/driver-native.c (s390_host_detect_local_cpu):
1814 Add arch13 cpu model.
1815 * config/s390/s390-opts.h (enum processor_type): Likewise.
1816 * config/s390/s390.c (s390_get_sched_attrmask): Add arch13.
1817 (s390_get_unit_mask): Likewise.
1818 (s390_is_fpd): Likewise.
1819 (s390_is_fxd): Likewise.
1820 * config/s390/s390.h (s390_tune_attr): Likewise.
1821 * config/s390/s390.md: Include arch13 pipeline description.
1822 * config/s390/s390.opt: Add arch13.
1824 2018-04-10 Steve Ellcey <sellcey@marvell.com>
1826 PR rtl-optimization/87763
1827 * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
1829 * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
1831 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
1833 (*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
1834 (*aarch64_bfi<GPI:mode>4_noand): Ditto.
1835 (*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
1836 (*aarch64_bfi<GPI:mode>4_noshift): Ditto.
1838 2019-04-10 Jonathan Wakely <jwakely@redhat.com>
1840 * doc/invoke.texi (Optimize Options): Change "Nevertheless" to
1841 "Although" in -fipa-icf documentation.
1843 * doc/invoke.texi (Debugging Options): Explicitly state the semantics
1844 of using multiple -g options.
1846 2019-04-10 Martin Liska <mliska@suse.cz>
1848 PR gcov-profile/89959
1849 * doc/gcov.texi: Make documentation of -x option
1852 2019-04-10 Richard Biener <rguenther@suse.de>
1854 * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
1856 (DR_GROUP_SAME_DR_STMT): Remove.
1857 * tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
1858 * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
1859 replace with assert.
1860 (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
1861 (vect_record_grouped_load_vectors): Remove unreachable code.
1863 2019-04-10 Richard Earnshaw <rearnsha@arm.com>
1866 * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
1867 obsolete reference to N.
1869 2019-04-10 Jakub Jelinek <jakub@redhat.com>
1872 * expr.c (store_expr): Set properly size on the MEM passed to
1876 * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
1877 with strlen in between hostsz-3 and hostsz-1 inclusive when no
1878 translation is needed, and when translation is needed, only append
1879 ... if the string length is hostsz or more bytes long. Avoid using
1882 2019-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
1885 * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
1886 * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
1888 * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
1889 differences directly.
1890 (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
1892 2019-04-09 Jakub Jelinek <jakub@redhat.com>
1894 PR translation/90011
1895 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
1897 * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
1899 * config/riscv/freebsd.h (LINK_SPEC): Likewise.
1900 * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
1901 * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
1902 trailing space from -gsplit-dwarf diagnostics.
1904 PR tree-optimization/89998
1905 * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
1906 instead of integer_type_node if possible, don't add ranges if return
1907 type is not compatible with int.
1908 * gimple-fold.c (gimple_fold_builtin_sprintf,
1909 gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
1912 2019-04-09 Martin Liska <mliska@suse.cz>
1914 * Makefile.in: Use GENERATOR_CFLAGS for all generators.
1915 * doc/install.texi: Document the new config.
1917 2019-04-09 Richard Sandiford <richard.sandiford@arm.com>
1919 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
1920 use gimple_expr_type for load and store calls. Skip over the
1921 condition argument in a conditional internal function.
1922 Protect use of TREE_INT_CST_LOW.
1924 2019-04-09 Jakub Jelinek <jakub@redhat.com>
1927 * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
1928 (riscv_merge_decl_attributes): Fix typo in diagnostics. Remove
1929 trailing period from it too.
1931 2019-04-08 wu yuan <wuyuan5@huawei.com>
1933 * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
1934 * config/aarch64/aarch64.md : Add "tsv110.md"
1935 * config/aarch64/tsv110.md: New file.
1937 2019-04-08 Richard Biener <rguenther@suse.de>
1939 PR tree-optimization/90006
1940 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
1943 2019-04-08 Andrea Corallo <andrea.corallo@arm.com>
1946 * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
1948 (fma_root_node): Likewise.
1949 (func_fma_steering): Likewise.
1951 2019-04-08 Jakub Jelinek <jakub@redhat.com>
1953 PR rtl-optimization/89865
1954 * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.
1956 PR rtl-optimization/89865
1957 * config/i386/i386.md
1958 (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
1959 numbers not to clash with the additional operands[4].
1960 (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
1961 with extra register copy in the middle.
1963 2019-04-08 Martin Liska <mliska@suse.cz>
1965 PR gcov-profile/89961
1966 * doc/gcov.texi: Document data_file.
1967 * gcov.c (generate_results): Add data_info into JSON output.
1969 2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com>
1971 PR tree-optimization/89725
1972 * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer
1973 loop's chrec as invariant symbol.
1974 * tree-chrec.h (chrec_contains_symbols): New parameter.
1975 * tree-data-ref.c (analyze_miv_subscript): Pass new argument.
1976 (build_classic_dist_vector_1, add_other_self_distances): Bypass access
1977 function of loops not in DDR's loop_nest.
1978 * tree-data-ref.h (index_in_loop_nest): Add unreachable check.
1980 2019-04-08 Chenghua Xu <paul.hua.gm@gmail.com>
1983 * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
1986 2019-04-07 Uroš Bizjak <ubizjak@gmail.com>
1989 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
1990 Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
1992 2019-04-05 Joern Rennecke <joern.rennecke@embecosm.com>
1994 * sched-deps.c (sched_macro_fuse_insns): Check return value of
1995 targetm.fixed_condition_code_regs.
1997 2019-04-05 Richard Biener <rguenther@suse.de>
2001 * tree-cfgcleanup.c (remove_forwarder_block): Always move
2002 debug bind stmts but reset them if they are not valid at the
2005 2019-04-05 Martin Liska <mliska@suse.cz>
2007 PR translation/89936
2008 * collect-utils.c (collect_execute): Use %< and %>, or %qs in
2009 order to wrap keywords or arguments.
2010 * collect2.c (main): Likewise.
2011 (scan_prog_file): Likewise.
2012 (scan_libraries): Likewise.
2013 * common/config/riscv/riscv-common.c
2014 (riscv_subset_list::parsing_subset_version): Likewise.
2015 (riscv_subset_list::parse_std_ext): Likewise.
2016 * config/aarch64/aarch64.c (aarch64_override_options_internal):
2018 * config/arm/arm.c (arm_option_override): Likewise.
2019 * config/cris/cris.c (cris_print_operand): Likewise.
2020 * config/darwin-c.c (darwin_pragma_options): Likewise.
2021 (darwin_pragma_unused): Likewise.
2022 (darwin_pragma_ms_struct): Likewise.
2023 * config/ft32/ft32.c (ft32_print_operand): Likewise.
2024 * config/i386/i386.c (print_reg): Likewise.
2025 (ix86_print_operand): Likewise.
2026 * config/i386/xm-djgpp.h: Likewise.
2027 * config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
2028 * config/m32c/m32c.c (m32c_option_override): Likewise.
2029 * config/msp430/msp430.c (msp430_option_override): Likewise.
2030 * config/nds32/nds32.c (nds32_option_override): Likewise.
2031 * config/nvptx/mkoffload.c (main): Likewise.
2032 * config/rx/rx.c (rx_print_operand): Likewise.
2033 (valid_psw_flag): Likewise.
2034 * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
2035 (vms_pragma_nomember_alignment): Likewise.
2036 (vms_pragma_extern_model): Likewise.
2037 * lto-wrapper.c (compile_offload_image): Likewise.
2038 * omp-offload.c (oacc_parse_default_dims): Likewise.
2039 * symtab.c (symtab_node::verify_base): Likewise.
2040 * tlink.c (recompile_files): Likewise.
2041 (start_tweaking): Likewise.
2042 * tree-profile.c (parse_profile_filter): Likewise.
2044 2019-04-05 Richard Sandiford <richard.sandiford@arm.com>
2046 PR tree-optimization/89956
2047 * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
2048 multiple negates of the same value.
2050 2019-04-04 Martin Sebor <msebor@redhat.com>
2054 * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands
2055 have the same precision since the function crashes otherwise.
2056 * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call
2057 has non-zero arguments.
2059 2019-04-04 Martin Sebor <msebor@redhat.com>
2062 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
2063 out if the number of arguments is less than expected.
2065 2019-04-04 Jeff Law <law@redhat.com>
2067 PR rtl-optimization/89399
2068 * ree.c (combine_set_extension): Use single_set rather than
2069 digging into PATTERN for items on the candidate list.
2070 (combine_reaching_defs): Likewise.
2072 2019-04-04 Richard Sandiford <richard.sandiford@arm.com>
2074 PR rtl-optimization/46590
2075 * loop-invariant.c (find_defs): Move df_remove_problem and
2076 df_process_deferred_rescans to move_invariants.
2077 Move df_live_add_problem and df_live_set_all_dirty calls
2079 (move_invariants): Likewise.
2080 (move_loop_invariants): Likewise, making the df_live calls
2081 conditional on -O. Remove the problem again if we added it
2084 2019-04-03 qing zhao <qing.zhao@oracle.com>
2086 PR tree-optimization/89730
2087 * ipa-inline.c (can_inline_edge_p): Delete the checking for
2088 -flive-patching=inline-only-static.
2089 (can_inline_edge_by_limits_p): Add the checking for
2090 -flive-patching=inline-only-static and grant always_inline
2091 even when -flive-patching=inline-only-static is specified.
2093 2019-04-03 Jeff Law <law@redhat.com>
2095 PR rtl-optimization/81025
2096 * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.
2098 2019-04-03 Richard Biener <rguenther@suse.de>
2100 PR tree-optimization/84101
2101 * tree-vect-stmts.c: Include explow.h for hard_function_value,
2102 regs.h for hard_regno_nregs.
2103 (cfun_returns): New helper.
2104 (vect_model_store_cost): When vectorizing a store to a decl
2105 we return and the function ABI returns in a multi-reg location
2106 account for the possible spilling that will happen.
2108 2019-04-03 Andreas Krebbel <krebbel@linux.ibm.com>
2110 * config/s390/s390.c (s390_legitimate_address_p): Reject long
2111 displacement addresses for vector mode operands.
2113 2019-04-03 Claudiu Zissulescu <claziss@synopsys.com>
2115 * config/arc/arc.c (GMASK_LEN): Define.
2116 (arc_restore_callee_saves): Restore first blink when
2119 2019-04-03 Sudakshina Das <sudi.das@arm.com>
2121 * doc/extend.texi: Add deprecated comment on sign-return-address
2122 function attribute and add mbranch-protection.
2123 * doc/invoke.texi: Add bti to the options for mbranch-protection.
2125 2019-04-03 Richard Biener <rguenther@suse.de>
2128 * lto-wrapper.c (run_gcc): Avoid implicit rules making
2129 the all target phony.
2131 2019-04-02 Uroš Bizjak <ubizjak@gmail.com>
2135 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
2136 Return false for variable DImode shifts.
2137 (dimode_scalar_chain::compute_convert_gain): Do not handle
2138 register count operand in variable DImode shifts.
2139 (dimode_scalar_chain::make_vector_copies): Remove support to copy
2140 count argument of a variable shift instruction to a vector register.
2141 (dimode_scalar_chain::convert_reg): Remove support to convert
2142 count argument of a variable shift instruction.
2144 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
2146 PR rtl-optimization/84206
2147 * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
2148 iterating over loop headers.
2150 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
2152 PR rtl-optimization/85876
2153 * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
2154 beyond the original fence.
2156 2019-04-02 Ulrich Weigand <uweigand@de.ibm.com>
2158 * config.gcc: Mark spu* targets as deprecated/obsolete.
2160 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
2162 * config/s390/s390-builtin-types.def: New builtin function type
2163 definitions. Remove unused types.
2164 * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
2165 (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
2166 (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
2167 overloaded builtins.
2168 (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
2169 (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
2170 * config/s390/vecintrin.h (vec_float): New builtin macro definition.
2171 (vec_double, vec_signed, vec_unsigned): Define to use the new
2172 overloaded builtins.
2173 * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
2176 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
2178 * config/s390/s390-builtin-types.def: New builtin function type
2180 * config/s390/s390-builtins.def (s390_vec_search_string_cc)
2181 (s390_vec_search_string_until_zero_cc): New overloaded builtins.
2182 (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
2183 (s390_vstrszh, s390_vstrszf): New low-level builtins.
2184 * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
2185 constant definitions.
2186 * config/s390/vecintrin.h (vec_search_string_cc)
2187 (vec_search_string_until_zero_cc): New builtin name definitions.
2188 * config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
2190 ("vec_vstrs<mode>"): New insn definition.
2192 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
2194 * config/s390/s390-builtin-types.def: Add new builtin function
2196 * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
2197 New overloaded builtins.
2198 (s390_vec_sldb, s390_vec_srdb): New low-level builtins. and
2200 * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
2201 (UNSPEC_VEC_SLDBYTE): ... this.
2202 (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
2203 * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
2205 * config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
2206 Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
2207 ("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.
2209 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
2211 ("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
2212 New insn definition.
2213 * config/s390/vx-builtins.md (V_HW_HSD): Move to ...
2214 * config/s390/vector.md (V_HW_HSD): ... here.
2216 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
2218 * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
2219 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
2220 ("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
2221 ("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
2222 New insn definitions.
2224 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
2226 * config/s390/s390-builtin-types.def: Add new builtin function type.
2227 * config/s390/s390-builtins.def: Add overloaded builtin
2228 s390_vec_reve and low-level builtins for s390_vler and s390_vster.
2229 * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
2230 * config/s390/vecintrin.h (vec_reve): New builtin name definition.
2231 * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
2232 ("eltswap<mode>"): New expander.
2233 ("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
2236 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
2238 * config/s390/s390-builtin-types.def: Add new builtin function types.
2239 * config/s390/s390-builtins.def: Add overloaded builtin
2240 s390_vec_revb. Add low-level builtins for vlbr and vstbr
2242 * config/s390/vecintrin.h (vec_revb): New builtin name definition.
2243 * config/s390/vector.md (VT_HW_HSDT): New mode iterator.
2244 ("bswap<mode>"): New expander.
2245 ("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.
2247 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
2249 * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
2250 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
2251 vector builtin version number in __VEC__.
2253 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
2255 * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
2257 (SFSI): New mode attribute.
2258 ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
2259 ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
2261 ("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
2262 ("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
2263 ("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
2264 ("floatsi<mode>2"): Add wcefb instruction.
2266 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
2268 * config/s390/s390.md ("xde"): Extend mode attribute to vector types.
2269 * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
2271 ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
2272 ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
2273 support 32 bit fp-int conversions. Rename to ...
2274 ("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
2275 ("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
2276 ("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
2277 ("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
2280 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
2282 * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
2283 if-then-else constructs if we can use the select instruction.
2284 * config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.
2286 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
2288 * config/s390/s390.md ("*popcountdi_arch13_cc")
2289 ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
2291 ("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
2292 Append _z196 to make it ...
2293 ("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
2294 ("popcounthi2_z196"): ... this.
2295 ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
2296 ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.
2298 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
2300 * config/s390/s390.c (s390_canonicalize_comparison): Convert
2301 certain compares for arch13 in order to make use of the condition
2302 code result produced by the new instructions.
2303 (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
2304 nxrk, and nxgrk instruction patterns.
2305 * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
2306 (inv_no): Add new code iterator together with some attributes.
2307 ("*andc_split_<mode>"): Disable splitter for arch13.
2308 ("*<ANDOR:bitops_name>c<GPR:mode>_cc")
2309 ("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
2310 ("*<ANDOR:bitops_name>c<GPR:mode>")
2311 ("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
2312 ("*n<ANDOR:inv_bitops_name><mode>_cconly")
2313 ("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
2314 ("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.
2316 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
2318 * common/config/s390/s390-common.c (processor_flags_table): New
2320 * config.gcc: Support arch13 with the --with-arch= configure flag.
2321 * config/s390/driver-native.c (s390_host_detect_local_cpu):
2322 * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
2323 * config/s390/s390.c (s390_get_sched_attrmask)
2324 (s390_get_unit_mask): Add PROCESSOR_ARCH13.
2325 * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
2326 * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
2327 (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
2328 (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
2330 * config/s390/s390.opt: Support arch13 as processor type in
2331 command line options.
2333 2019-04-02 Martin Liska <mliska@suse.cz>
2335 PR translation/89912
2336 * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
2337 Fix param description of graphite-max-arrays-per-scop.
2339 2019-04-02 Eric Botcazou <ebotcazou@adacore.com>
2341 * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
2342 (ASAN_CC1_SPEC): Use it in 64-bit mode.
2343 * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.
2345 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
2347 PR rtl-optimization/85412
2348 * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
2349 sel_sched_region_1, not after.
2351 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
2353 PR rtl-optimization/86928
2354 * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
2355 compute_live if necessary.
2356 (sel_redirect_edge_and_branch): Likewise.
2358 2019-04-01 Vladimir Makarov <vmakarov@redhat.com>
2360 PR rtl-optimization/89865
2361 * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard
2362 register if it is a part of small class.
2364 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
2366 PR rtl-optimization/87273
2367 * sel-sched-ir.c (merge_fences): Remove assert.
2369 2019-04-01 Richard Biener <rguenther@suse.de>
2371 PR tree-optimization/46590
2372 * domwalk.h (dom_walker::dom_walker): Consolidate constructors.
2373 (dom_walker::m_reachability): Add in place of...
2374 (dom_walker::m_skip_unreachable_blocks): ...this.
2375 * domwalk.c (dom_walker::dom_walker): Consoliate constructors.
2376 Move complex initialization ...
2377 (dom_walker::walk): Here. Especially compute m_bb_to_rpo
2378 lazily and initialize edge flags on each invocation.
2379 (dom_walker::bb_reachable): Use m_reachability.
2381 2019-04-01 Martin Liska <mliska@suse.cz>
2384 * opt-suggestions.c (option_proposer::build_option_suggestions):
2385 Add variant without any argument in order to provide better
2388 2019-04-01 Richard Biener <rguenther@suse.de>
2391 * gimple.c: Include langhooks.h.
2392 (gimple_get_alias_set): Treat enumeral types as the underlying
2395 2019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org>
2396 Eric Botcazou <ebotcazou@adacore.com>
2398 PR rtl-optimization/89862
2399 * rtl.h (word_register_operation_p): Exclude CONST_INT from operations
2400 that operates on the full registers for WORD_REGISTER_OPERATIONS
2403 2019-03-29 Jim Wilson <jimw@sifive.com>
2405 * common/config/riscv/riscv-common.c (riscv_parse_arch_string):
2406 Clear MASK_RVC and then set if C subset supported.
2408 2019-03-29 Jakub Jelinek <jakub@redhat.com>
2411 * gimplify.c (gimplify_compound_literal_expr): Don't optimize a
2412 non-addressable complit into its initializer if it is volatile.
2414 2019-03-29 Roman Zhuykov <zhroma@ispras.ru>
2416 * opts-common.c (integral_argument): Set errno properly in one case.
2418 2019-03-29 Martin Liska <mliska@suse.cz>
2420 * doc/invoke.texi: Remove -Wchkp from documentation.
2422 2019-03-29 Martin Liska <mliska@suse.cz>
2424 * dbgcnt.c (print_limit_reach): New function.
2427 2019-03-29 Martin Liska <mliska@suse.cz>
2429 * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
2430 (dbg_cnt_process_opt): Parse first tokens aas
2431 dbg_cnt_process_single_pair is also using strtok.
2433 2019-03-29 Jakub Jelinek <jakub@redhat.com>
2435 PR rtl-optimization/87485
2436 * function.c (expand_function_end): Move stack_protect_epilogue
2437 before loading of return value into hard register(s).
2439 2019-03-28 Jakub Jelinek <jakub@redhat.com>
2442 * tree-inline.h (struct copy_body_data): Add
2443 dont_remap_vla_if_no_change flag.
2444 * tree-inline.c (remap_type_3, remap_type_2): New functions.
2445 (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
2446 and remap_type_2 returns false.
2447 * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
2448 Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
2449 only from where it is copied to nested contexts.
2451 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
2454 * config/i386/i386.md (RMW operation with LEA peephole):
2455 Use LEAMODE mode attribute instead of SWI mode iterator for
2458 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
2461 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
2462 Also process XEXP (src, 0) of a shift insn.
2464 2019-03-28 David Malcolm <dmalcolm@redhat.com>
2467 * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
2468 Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.
2470 2019-03-28 Jakub Jelinek <jakub@redhat.com>
2472 * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
2474 (cprop_hardreg_bb, cprop_hardreg_debug): New functions.
2475 (pass_cprop_hardreg::execute): Use those. Don't repeat bb processing
2476 immediately after first one with df_analyze in between, but rather
2477 process all bbs, queueing ones that need second pass in a worklist,
2478 df_analyze, process queued debug insn changes and if second pass is
2479 needed, process bbs from worklist, df_analyze, process queued debug
2482 * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
2483 or CALL_P instead of INSN_P && !DEBUG_INSN_P.
2484 (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.
2486 2019-03-28 Jonathan Wakely <jwakely@redhat.com>
2489 * gengtype.h (create_nested_ptr_option): Fix parameter names to match
2492 2019-03-27 Mateusz B <mateuszb@poczta.onet.pl>
2495 * config/i386/i386.c (ix86_function_value_1): Call the newly added
2496 function for 32-bit MS_ABI.
2497 (function_value_ms_32): New function.
2499 2019-03-27 Andrew Stubbs <ams@codesourcery.com>
2501 * config/gcn/gcn.md (CC_SAVE_REG): New constant.
2502 (movdi): Call gen_movdi_symbol_save_scc.
2503 (gen_movdi_symbol_save_scc): New insn and split.
2505 2019-03-27 Peter Bergner <bergner@linux.ibm.com>
2507 PR rtl-optimization/89313
2508 * function.c (matching_constraint_num): New static function.
2509 (match_asm_constraints_1): Use it. Fixup white space and comment.
2510 Don't replace inputs with non-matching constraints which conflict
2511 with early clobber outputs.
2513 2019-03-27 Jeff Law <law@redhat.com>
2516 PR rtl-optimization/87761
2517 PR rtl-optimization/89826
2518 * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
2520 (pass_cprop_hardreg::execute): Call df_analyze after adding the
2521 note problem to get REG_DEAD/REG_UNUSED notes updated.
2523 2019-03-27 Richard Biener <rguenther@suse.de>
2525 PR tree-optimization/89463
2526 * tree-ssa-dce.c (remove_dead_stmt): Take output vector to
2527 queue edges to remove.
2528 (eliminate_unnecessary_stmts): Remove dead PHIs alongside
2529 dead stmts. Delay edge removal until PHIs are removed to
2530 make debug-stmt creation not confused by seemingly degenerate
2533 2019-03-27 Alan Modra <amodra@gmail.com>
2535 * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
2537 * config/rs6000/darwin.h: Likewise.
2538 * config/rs6000/rs6000.c: Likewise.
2540 2019-03-27 Alan Modra <amodra@gmail.com>
2542 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always
2543 assign rs6000_hard_regno_mode_ok_p[m][r]. Formatting.
2545 2019-03-26 Andrew Waterman <andrew@sifive.com>
2546 Jim Wilson <jimw@sifive.com>
2548 * config/riscv/generic.md (generic_alu, generic_load, generic_store)
2549 (generic_xfer, generic_branch, generic_imul, generic_idivsi)
2550 (generic_idivdi, generic_fmul_single, generic_fmul_double)
2551 (generic_fdiv, generic_fsqrt): Add check for generic tune.
2552 (generic_alu): Add auipc to type list.
2553 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
2554 (riscv_microarchitecture): Declare.
2555 * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
2556 * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
2558 (riscv_microarchitecture): New.
2559 (sifive_7_tune_info): New.
2560 (riscv_cpu_info_table): Add microarchitecture value for rocket and
2561 size. Add sifive-3-series, sifive-5-series, and sifive-7-series
2563 (riscv_store_data_bypass_p): New.
2564 (riscv_option_override): Set riscv_microarchitecture from
2565 cpu->microarchitecture.
2566 * config/riscv/riscv.md: Include sifive-7.md.
2569 (auipc<mode>): Change type to auipc.
2570 (restore_stack_nonlocal): New.
2571 * config/riscv/sifive-7.md: New.
2572 * doc/invoke.texi (RISC-V Options): Update mtune docs.
2574 2019-03-26 Uroš Bizjak <ubizjak@gmail.com>
2577 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
2578 Also process XEXP (src, 0) of a shift insn.
2580 2019-03-26 Richard Biener <rguenther@suse.de>
2582 * tree-inline.c (remap_gimple_stmt): Cache gimple_block.
2583 (copy_debug_stmt): Likewise.
2584 (expand_call_inline): Likewise.
2585 (copy_bb): Avoid redundant lookup & set of gimple_block.
2586 * gimple-low.c (lower_gimple_return): Likewise.
2587 (lower_builtin_setjmp): Likewise.
2589 2019-03-26 Jakub Jelinek <jakub@redhat.com>
2591 * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS
2592 is constant 0, turn into static const data member initialized to false.
2593 (hash_table::hash_table): Only initialize m_gather_mem_stats #if
2594 GATHER_STATISTICS. Add ATTRIBUTE_UNUSED to gather_mem_stats param.
2596 2019-03-26 Jason Merrill <jason@redhat.com>
2597 Jakub Jelinek <jakub@redhat.com>
2599 * mem-stats.h (mem_alloc_description::unregister_descriptor): New
2601 (mem_alloc_description::release_object_overhead): Fix comment typos.
2602 * hash-table.h (hash_table::~hash_table): Call
2603 release_instance_overhead only if m_entries is non-NULL, otherwise
2604 call unregister_descriptor.
2606 2019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com>
2608 PR tree-optimization/81740
2609 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
2610 In case of outer loop vectorization, check for backward dependence
2611 at the inner loop if outer loop dependence is reversed.
2613 2019-03-26 Alan Modra <amodra@gmail.com>
2615 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
2616 rs6000_vector_mem init. Correct wI and wJ comment.
2618 2019-03-25 Alexander Monakov <amonakov@ispras.ru>
2620 PR rtl-optimization/88347
2621 PR rtl-optimization/88423
2622 * sched-deps.c (sched_analyze_insn): Take into account that for
2623 tablejumps the barrier appears after a label and a jump_table_data.
2625 2019-03-25 Martin Sebor <msebor@redhat.com>
2628 * c-common.c (check_user_alignment): Rename local. Correct maximum
2629 alignment in diagnostic. Avoid assuming argument fits in SHWI,
2630 convert it to UHWI when it fits.
2632 2019-03-25 Johan Karlsson <johan.karlsson@enea.com>
2635 * dwarf2out.c (premark_used_variables): New function.
2636 (prune_unused_types_walk): Do not mark not premarked external
2638 (prune_unused_types): Call premark_used_variables.
2640 2019-03-25 Vladimir Makarov <vmakarov@redhat.com>
2642 PR rtl-optimization/89676
2643 * lra-constraints.c (curr_insn_transform): Do match reload for
2644 early clobbers when the match was successful only for different
2647 2019-03-25 Martin Sebor <msebor@redhat.com>
2649 * doc/extend.texi (Common Type Attributes): Document vector_size.
2650 (Common Variable Attributes): Mention size constraint. Correct
2652 (Vector Extensions): Use @dfn when defining bas type. Clarify
2653 base type and size constraints.
2655 2019-03-25 Richard Biener <rguenther@suse.de>
2657 PR tree-optimization/89789
2658 * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice
2659 changes from non-undefined back to undefined.
2661 2019-03-25 Thomas Otto <thomas.otto@pdv-fs.de>
2663 * dwarf2out.c (comp_dir_string): cached_wd could be set to both a
2664 heap string and a gc string, but since this variable is unknown to
2665 ggc the gc string might get reused and corrupted. Fixed by always
2666 using a heap string.
2668 2019-03-25 Richard Biener <rguenther@suse.de>
2670 PR tree-optimization/89779
2671 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return
2672 to remove IV defs, delay actual removal.
2673 (tree_ssa_iv_optimize_loop): Likewise. Avoid SCEV reset.
2674 (tree_ssa_iv_optimize): Remove eliminated IV defs at the
2675 very end, properly also reset loop control IV information.
2677 2019-03-25 Richard Biener <rguenther@suse.de>
2679 PR tree-optimization/89802
2680 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
2681 move EH data to folded stmt.
2683 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
2685 * config/s390/s390-builtin-types.def: Remove few unused types and
2686 fix sort order for others.
2688 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
2690 * config/s390/s390-c.c (s390_fn_types_compatible): Print the
2691 expected and found types with -mdebug during builtin matching.
2693 2019-03-25 Richard Biener <rguenther@suse.de>
2696 * fold-const.c (operand_equal_p): Revert last change with
2699 2019-03-24 Segher Boessenkool <segher@kernel.crashing.org>
2701 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL
2702 notes for the result of the __tls_get_addr calls.
2703 * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New.
2705 2019-03-24 Jeff Law <law@redhat.com>
2707 * config/bfin/bfin.md (movpdi): Fix length for alternative 1.
2709 PR rtl-optimization/87761
2710 * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET,
2711 not INSN. Also check RTX_FRAME_RELATED_P. Queue insns for DF rescan
2713 (pass_cprop_hardreg::execute): Add df note problem and defer insn
2714 rescans. Reprocess blocks as needed, calling df_analyze before
2715 reprocessing. Always call df_analyze before fixing up debug bind
2718 2019-03-23 Segher Boessenkool <segher@kernel.crashing.org>
2720 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
2723 2019-03-22 Andrew Pinski <apinski@marvell.com>
2725 * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
2726 attrribute for uxtw.
2728 2019-03-26 Jeff Law <law@redhat.com>
2730 PR rtl-optimization/87761
2731 * config/mips/mips-protos.h (mips_split_move): Add new argument.
2732 (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move.
2733 (mips_split_move): Accept new INSN argument. Try to forward SRC
2734 into the next instruction.
2735 (mips_split_move_insn): Pass INSN through to mips_split_move.
2737 2019-03-22 Vladimir Makarov <vmakarov@redhat.com>
2739 PR rtl-optimization/89676
2740 * lra-constraints.c (curr_insn_transform): Do match reload for
2741 early clobbers even if the match was successful.
2743 2019-03-22 Jakub Jelinek <jakub@redhat.com>
2746 * doc/invoke.texi (-fconstexpr-ops-limit=): Document.
2748 2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com>
2750 * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
2752 2019-03-22 Jakub Jelinek <jakub@redhat.com>
2754 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
2755 <avx512>_fmsub_<mode>_mask3<round_name>,
2756 <avx512>_fnmadd_<mode>_mask3<round_name>,
2757 <avx512>_fnmsub_<mode>_mask3<round_name>,
2758 avx512f_vmfmadd_<mode>_mask3<round_name>,
2759 avx512f_vmfmsub_<mode>_mask3<round_name>,
2760 *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate>
2761 instead of register_operand and %v instead of v for match_operand 1.
2762 (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ...
2763 (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this. Use
2764 <round_nimm_predicate> instead of register_operand and %v instead of v
2765 for match_operand 1.
2767 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
2768 <avx512>_fmadd_<mode>_mask3<round_name>,
2769 <avx512>_fmsub_<mode>_mask<round_name>,
2770 <avx512>_fmsub_<mode>_mask3<round_name>,
2771 <avx512>_fnmadd_<mode>_mask<round_name>,
2772 <avx512>_fnmadd_<mode>_mask3<round_name>,
2773 <avx512>_fnmsub_<mode>_mask<round_name>,
2774 <avx512>_fnmsub_<mode>_mask3<round_name>,
2775 <avx512>_fmaddsub_<mode>_mask<round_name>,
2776 <avx512>_fmaddsub_<mode>_mask3<round_name>,
2777 <avx512>_fmsubadd_<mode>_mask<round_name>,
2778 <avx512>_fmsubadd_<mode>_mask3<round_name>): Use
2779 <round_nimm_predicate> instead of nonimmediate_operand.
2780 (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
2781 fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>):
2782 Use register_operand instead of <round_nimm_predicate> for the
2783 operand that needs to match output.
2784 (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
2785 *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>):
2786 Likewise. Formatting fixes.
2789 * config/i386/i386.c (enum ix86_builtins): Remove
2790 IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3.
2791 * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask,
2792 __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
2793 __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
2794 __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
2795 __builtin_ia32_vfmsubss3_mask3): New builtins.
2796 * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>,
2797 avx512f_vmfmadd_<mode>_mask3<round_name>,
2798 avx512f_vmfmadd_<mode>_maskz_1<round_name>,
2799 *avx512f_vmfmsub_<mode>_mask<round_name>,
2800 avx512f_vmfmsub_<mode>_mask3<round_name>,
2801 *avx512f_vmfmasub_<mode>_maskz_1<round_name>,
2802 *avx512f_vmfnmadd_<mode>_mask<round_name>,
2803 *avx512f_vmfnmadd_<mode>_mask3<round_name>,
2804 *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
2805 *avx512f_vmfnmsub_<mode>_mask<round_name>,
2806 avx512f_vmfnmsub_<mode>_mask3<round_name>,
2807 *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns.
2808 (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand.
2809 * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss,
2810 _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd,
2811 _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss,
2812 _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd,
2813 _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss,
2814 _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd,
2815 _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss,
2816 _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd,
2817 _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss,
2818 _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss,
2819 _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss,
2820 _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss,
2821 _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss,
2822 _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss,
2823 _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss,
2824 _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss,
2825 _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss,
2826 _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss,
2827 _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss,
2828 _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics.
2830 2019-03-21 Martin Sebor <msebor@redhat.com>
2832 PR tree-optimization/89350
2833 * builtins.c (compute_objsize): Also ignore offsets whose upper
2835 * gimple-ssa-warn-restrict.c (builtin_memref): Add new member.
2836 (builtin_memref::builtin_memref): Initialize new member.
2837 Allow EXPR to be null.
2838 (builtin_memref::extend_offset_range): Replace local with a member.
2839 Avoid assuming pointer offsets are unsigned.
2840 (builtin_memref::set_base_and_offset): Determine base object
2841 before computing offset range.
2842 (builtin_access::builtin_access): Handle memset.
2843 (builtin_access::generic_overlap): Replace local with a member.
2844 (builtin_access::strcat_overlap): Same.
2845 (builtin_access::overlap): Same.
2846 (maybe_diag_overlap): Same.
2847 (maybe_diag_access_bounds): Same.
2848 (wrestrict_dom_walker::check_call): Handle memset.
2849 (check_bounds_or_overlap): Same.
2851 2019-03-21 Jan Hubicka <hubicka@ucw.cz>
2852 Jakub Jelinek <jakub@redhat.com>
2855 * tree.c (fld_type_variant, fld_incomplete_type_of,
2856 fld_process_array_type): Call fld->pset.add and don't call
2857 add_tree_to_fld_list if it returns true.
2858 (free_lang_data_in_type): Similarly with self-recursive call. Purge
2859 non-marked types from TYPE_NEXT_VARIANT list.
2860 (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t).
2862 2019-03-21 Jakub Jelinek <jakub@redhat.com>
2864 * hash-table.h (hash_table): Add Lazy template parameter defaulted
2865 to false, if true, don't alloc_entries during construction, but defer
2866 it to the first method that needs m_entries allocated.
2867 (hash_table::hash_table, hash_table::~hash_table,
2868 hash_table::alloc_entries, hash_table::find_empty_slot_for_expand,
2869 hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow,
2870 hash_table::clear_slot, hash_table::traverse_noresize,
2871 hash_table::traverse, hash_table::iterator::slide): Adjust all methods.
2872 * hash-set.h (hash_set): Add Lazy template parameter defaulted to
2874 (hash_set::contains): If Lazy is true, use find_slot_with_hash with
2875 NO_INSERT instead of find_with_hash.
2876 (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter,
2877 hash_set::m_table): Add Lazy to template params of hash_table.
2878 (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param.
2879 * attribs.c (test_attribute_exclusions): Likewise.
2880 * hash-set-tests.c (test_set_of_strings): Add iterator tests for
2881 hash_set. Add tests for hash_set with Lazy = true.
2883 2019-03-21 Richard Biener <rguenther@suse.de>
2885 PR tree-optimization/89779
2886 * tree.c (tree_nop_conversion): Consolidate and fix defensive
2887 checks with respect to released SSA names now having error_mark_node
2889 * fold-const.c (operand_equal_p): Likewise.
2891 2019-03-20 Andreas Krebbel <krebbel@linux.ibm.com>
2894 * config/s390/s390.c (global_not_special_regno_p): Move to make it
2896 (s390_optimize_register_info): Use global_not_special_regno_p to
2897 check for global regs.
2899 2019-03-20 Jakub Jelinek <jakub@redhat.com>
2902 * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
2903 update this_alternative nor this_alternative_set.
2905 2019-03-19 Jim Wilson <jimw@sifive.com>
2908 * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals
2909 align, size, offset. Use them to handle a BLKmode reference. Update
2911 (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p.
2913 2019-03-19 Jakub Jelinek <jakub@redhat.com>
2915 PR rtl-optimization/89768
2916 * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
2918 (unroll_loop_runtime_iterations): Likewise.
2920 2019-03-19 Martin Sebor <msebor@redhat.com>
2922 PR tree-optimization/89644
2923 * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p
2924 rather than endptr as an indicator of nul-termination.
2926 PR tree-optimization/89644
2927 * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated
2928 arrays in determining sequence sizes in strncpy and stpncpy.
2930 2019-03-19 Martin Liska <mliska@suse.cz>
2933 * predict.c (combine_predictions_for_bb): Empty likely_edges and
2934 unlikely_edges if there's an edge that belongs to both these sets.
2936 2018-03-19 Segher Boessenkool <segher@kernel.crashing.org>
2939 * config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a
2940 non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned,
2941 go via a stack temporary.
2943 2019-03-19 Jakub Jelinek <jakub@redhat.com>
2946 * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
2947 instead of gen_rtx_SUBREG.
2948 * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.
2950 2019-03-19 Richard Biener <rguenther@suse.de>
2953 * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
2955 2019-03-19 Jan Hubicka <hubicka@ucw.cz>
2959 * tree.c (free_lang_data_in_decl): Do not free context of C++
2962 2019-03-19 Jakub Jelinek <jakub@redhat.com>
2965 * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use
2966 subs for the first alternative except when operands[3] is 1.
2969 * gimplify.c (gimplify_asm_expr): For output argument with
2970 TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
2973 2019-03-19 Eric Botcazou <ebotcazou@adacore.com>
2975 PR rtl-optimization/89753
2976 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
2977 explicit unrolling factor even more robust.
2979 2019-03-19 Jakub Jelinek <jakub@redhat.com>
2982 * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
2983 compensation use x2 += 1 instead of x2 -= -1 and when honoring
2984 signed zeros, do another copysign after the compensation.
2986 2019-03-18 Martin Sebor <msebor@redhat.com>
2988 PR tree-optimization/89720
2989 * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min
2990 more conservatively, the same as anti-range.
2992 2019-03-18 Richard Biener <rguenther@suse.de>
2995 * tree-ssanames.c (release_ssa_name_fn): For released SSA names
2996 use a TREE_TYPE of error_mark_node to avoid ICEs when dumping
2997 basic-blocks that are removed. Remove restoring SSA_NAME_VAR.
2998 * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking.
3000 2019-03-18 Andrew Stubbs <ams@codesourcery.com>
3002 * config/gcn/gcn-run.c (struct output): Make next_output unsigned.
3003 Extend queue to 1024 entries.
3004 Add "consumed" field.
3005 (gomp_print_output): Remove print_index parameter.
3006 Add final parameter.
3007 Change limit to unsigned.
3008 Use consumed field to implement circular buffer.
3009 Detect interrupted print in final pass.
3010 Flush output at the end.
3011 (run): Update gomp_print_output usage.
3012 (main): Initialize kernargs->output_data.consumed.
3014 2019-03-18 Richard Sandiford <richard.sandiford@arm.com>
3016 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the
3017 calculation of the minimum number of scalar iterations for
3018 fully-predicated loops.
3020 2019-03-18 Martin Jambor <mjambor@suse.cz>
3022 PR tree-optimization/89546
3023 * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if
3024 any propagation to its children took place.
3026 2019-03-18 Andrew Burgess <andrew.burgess@embecosm.com>
3029 * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset
3030 parameter, and make use of it.
3031 (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single.
3033 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
3035 * config/arc/arc.opt (mcode-density-frame): Get the inital value
3036 from TARGET_CODE_DENSITY_FRAME_DEFAULT.
3037 * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
3038 * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
3039 * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to
3040 match what the ops is doing.
3041 (push_multi_fp_blink): Likewise.
3042 * config/arc/arc.c (arc_override_options): Enable enter/leave when
3043 compiling for size and elf target.
3044 (arc_save_callee_enter): Adjust note to match what enter/leave
3047 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
3049 * config/arc/arc.md (tst_movb): Fix constraint.
3051 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
3053 * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
3055 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
3057 * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare.
3058 * config/arc/arc.c (arc_conditional_register_usage): Remove all
3059 reg_alloc_order references.
3060 (size_alloc_order): Define.
3061 (arc_adjust_reg_alloc_order): New function.
3062 * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register
3064 (ADJUST_REG_ALLOC_ORDER): Define.
3065 (HONOR_REG_ALLOC_ORDER): Likewise.
3067 2019-03-18 Richard Biener <rguenther@suse.de>
3070 * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided
3071 loads and stores a bit more.
3073 2019-03-18 Richard Biener <rguenther@suse.de>
3076 * config/i386/i386.c (ix86_add_stmt_cost): Apply strided
3077 load pessimization to stores as well.
3079 2019-03-18 Andrey Belevantsev <abel@ispras.ru>
3082 * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible
3083 successor, use NULL as its av set.
3085 2019-03-15 Segher Boessenkool <segher@kernel.crashing.org>
3087 PR rtl-optimization/89721
3088 * lra-constraints (invariant_p): Return false if side_effects_p holds.
3090 2019-03-15 Kelvin Nilsen <kelvin@gcc.gnu.org>
3093 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3094 When handling vec_extract, use modular arithmetic to allow
3095 constant selectors greater than vector length.
3096 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
3097 V1TImode vectors to have constant selector values greater than 0.
3098 Use modular arithmetic to compute vector index.
3099 (rs6000_split_vec_extract_var): Use modular arithmetic to compute
3100 index for in-memory vectors. Correct code generation for
3101 in-register vectors.
3102 (altivec_expand_vec_ext_builtin): Use modular arithmetic to
3105 2019-03-15 Alexandre Oliva <aoliva@redhat.com>
3109 * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
3112 2019-03-15 Jakub Jelinek <jakub@redhat.com>
3115 * tree.c (inchash::add_expr): Strip any location wrappers.
3116 * fold-const.c (operand_equal_p): Move stripping of location wrapper
3117 after hash verification.
3120 * dwarf2out.c (add_const_value_attribute): Return false for MINUS,
3121 SIGN_EXTEND and ZERO_EXTEND.
3123 2019-03-14 Jason Merrill <jason@redhat.com>
3124 Jakub Jelinek <jakub@redhat.com>
3126 * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather
3127 than if is_empty (*slot).
3128 * hash-set-tests.c (test_set_of_strings): Add tests for addition of
3129 existing elt and for elt removal.
3130 * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal
3131 of already removed elt.
3133 2019-03-15 H.J. Lu <hongjiu.lu@intel.com>
3136 * config/i386/i386.c (remove_partial_avx_dependency): Handle
3139 2019-03-14 Martin Liska <mliska@suse.cz>
3142 * doc/invoke.texi: Remove -fdump-class-hierarchy option.
3144 2019-03-14 Richard Biener <rguenther@suse.de>
3147 * config/i386/i386.c (make_resolver_func): Properly set
3148 DECL_CONTEXT on the RESULT_DECL.
3149 * config/rs6000/rs6000.c (make_resolver_func): Likewise.
3151 2019-03-14 Richard Biener <rguenther@suse.de>
3153 * gimple-pretty-print.c: Include cfgloop.h.
3154 (dump_gimple_phi): Adjust.
3155 (dump_gimple_bb_header): Dump loop header for GIMPLE.
3156 (pp_cfg_jump): Adjust.
3157 (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well.
3158 * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call.
3159 (lower_phi_internal_fn): Remove.
3160 (verify_gimple_call): Remove IFN_PHI special-casing.
3161 (dump_function_to_file): Dump IL state.
3162 * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes
3163 done to deal with PHI nodes being present in non-SSA state.
3165 2019-03-14 Jakub Jelinek <jakub@redhat.com>
3168 * multiple_target.c (create_dispatcher_calls): Change
3169 references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
3170 In the node->iterate_referring loop, push *ref rather than ref, call
3171 ref->remove_reference () and always pass 0 to iterate_referring.
3173 PR rtl-optimization/89679
3174 * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
3175 would contain a paradoxical SUBREG.
3177 2019-03-14 Richard Biener <rguenther@suse.de>
3179 PR tree-optimization/89710
3180 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
3183 2019-03-14 Martin Liska <mliska@suse.cz>
3185 * coverage.c (coverage_begin_function): Stream also
3187 * doc/gcov.texi: Document 2 new fields in JSON file. Improve
3188 documentation about function declaration location.
3189 * gcov-dump.c (tag_function): Print whole range
3190 of function declaration.
3191 * gcov.c (struct function_info): Add end_column field.
3192 (function_info::function_info): Initialize it.
3193 (output_json_intermediate_file): Output {start,end}_column
3195 (read_graph_file): Read end_column.
3197 2019-03-14 Richard Biener <rguenther@suse.de>
3200 * fold-const.c (operand_equal_p): For INDIRECT_REF check
3201 that the access types are similar.
3203 2019-03-14 Jakub Jelinek <jakub@redhat.com>
3205 PR tree-optimization/89703
3206 * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
3207 aren't compatible also with builtin_decl_explicit. Check pure
3208 or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
3209 and BUILT_IN_STPNCPY{,_CHK}.
3211 2019-03-14 H.J. Lu <hongjiu.lu@intel.com>
3214 * config/i386/i386.c (ix86_print_operand): Handle 'M' to add
3215 addr32 prefix to VSIB address for X32.
3216 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
3218 (*avx512pf_gatherpf<mode>df_mask): Likewise.
3219 (*avx512pf_scatterpf<mode>sf_mask): Likewise.
3220 (*avx512pf_scatterpf<mode>df_mask): Likewise.
3221 (*avx2_gathersi<mode>): Prepend "%M3" to opcode.
3222 (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
3223 (*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
3224 (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
3225 (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
3226 (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
3227 (*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
3228 (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
3229 (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
3230 (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
3231 (*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
3232 (*avx512f_scatterdi<mode>): Likewise.
3234 2019-03-13 Vladimir Makarov <vmakarov@redhat.com>
3237 * lra-constraints.c (inherit_in_ebb): Update
3238 potential_reload_hard_regs along with live_hard_regs.
3240 2019-03-13 Jakub Jelinek <jakub@redhat.com>
3243 * dwarf2out.c (size_of_die): For dw_val_class_view_list always use
3245 (value_format): For dw_val_class_view_list never use DW_FORM_loclistx.
3247 2019-03-13 Martin Sebor <msebor@redhat.com>
3249 PR tree-optimization/89662
3250 * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type
3253 2019-03-13 Richard Biener <rguenther@suse.de>
3256 * tree-scalar-evolution.c (simplify_peeled_chrec): Do not
3257 throw FP expressions at tree-affine.
3259 2019-03-14 Richard Biener <rguenther@suse.de>
3261 * tree-pretty-print.c (dump_generic_node): For -gimple properly
3262 dump negative integer constants using _Literal (type) -num.
3264 2019-03-13 Jakub Jelinek <jakub@redhat.com>
3266 * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
3267 nonlocal_value member.
3270 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
3271 (ipa_simd_modify_function_body): Handle PHIs.
3273 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
3275 * config/s390/s390.c (s390_option_override_internal): Use more
3276 aggressive inlining parameters.
3278 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
3280 * config/s390/3906.md: New file.
3281 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
3282 (LONGRUNNING_THRESHOLD): Remove.
3283 (MAX_SCHED_MIX_SCORE): Decrease.
3284 (MAX_SCHED_MIX_DISTANCE): Decrease.
3285 (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely.
3286 (struct s390_sched_state): New struct to hold scheduling state.
3287 (S390_SCHED_STATE_NORMAL): Remove.
3288 (S390_SCHED_STATE_CRACKED): Remove.
3289 (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add.
3290 (s390_get_sched_attrmask): Use new attribute.
3291 (s390_get_unit_mask): Use new units.
3292 (s390_is_fpd): New function.
3293 (s390_is_fxd): New function.
3294 (s390_is_longrunning): New function.
3295 (s390_sched_score): Use new functions.
3296 (s390_sched_reorder): Likewise.
3297 (s390_sched_variable_issue): Rework and use new functions.
3298 (s390_sched_init): Use new functions.
3299 * config/s390/s390.h (s390_tune_attr): Add z14.
3300 * config/s390/s390.md: Add z14.
3302 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
3304 * config/s390/2964.md: Update pipeline description.
3305 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
3306 (LONGRUNNING_THRESHOLD): Remove.
3307 (LATENCY_FACTOR): Remove.
3308 (s390_get_unit_mask): Add unit.
3309 (s390_sched_score): Use fxd/fpd.
3310 (s390_sched_variable_issue): Use fxd/fpd.
3312 2019-03-12 Martin Liska <mliska@suse.cz>
3314 * config/i386/i386.c: Reword an error message.
3316 2019-03-12 Martin Jambor <mjambor@suse.cz>
3318 * cgraph.c (cgraph_node::dump): Dump more info for former thunks,
3319 terminate with newline.
3321 2019-03-12 Jakub Jelinek <jakub@redhat.com>
3324 * config/s390/s390.md (tabort): Use %wd instead of
3325 HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital
3326 letters and periods.
3327 * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in
3328 output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace
3332 * builtins.c (expand_builtin_int_roundingfn,
3333 expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
3334 gcc_unreachable if validate_arglist fails.
3336 2019-03-12 Richard Biener <rguenther@suse.de>
3338 PR tree-optimization/89664
3339 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly
3340 free the occurance tree after the early out.
3342 2019-03-11 Jakub Jelinek <jakub@redhat.com>
3346 * vr-values.c (vr_values::update_value_range): If
3347 old_vr->varying_p (), don't update it, make new_vr also VARYING
3350 2019-03-11 Martin Liska <mliska@suse.cz>
3352 * config/aarch64/aarch64.c (aarch64_override_options_internal):
3353 Fix double string quoting.
3355 2019-03-11 Martin Liska <mliska@suse.cz>
3357 * collect-utils.c (collect_wait): Wrap apostrophes
3358 in gcc internal format with %'.
3359 * collect2.c (main): Likewise.
3360 (scan_prog_file): Likewise.
3361 (scan_libraries): Likewise.
3362 * config/i386/i386.c (ix86_expand_call): Likewise.
3363 (ix86_handle_interrupt_attribute): Likewise.
3364 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
3365 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
3366 * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise.
3367 * lto-wrapper.c (find_crtoffloadtable): Likewise.
3368 * symtab.c (symtab_node::verify_base): Likewise.
3369 * tree-cfg.c (verify_gimple_label): Likewise.
3370 * tree.c (verify_type_variant): Likewise.
3372 2019-03-11 Martin Liska <mliska@suse.cz>
3374 * builtins.c (expand_builtin_thread_pointer): Wrap an option name
3375 in a string format message and fix GNU coding style.
3376 (expand_builtin_set_thread_pointer): Likewise.
3377 * common/config/aarch64/aarch64-common.c
3378 (aarch64_rewrite_selected_cpu): Likewise.
3379 * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise.
3380 * common/config/arc/arc-common.c (arc_handle_option): Likewise.
3381 * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise.
3382 * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
3383 * common/config/i386/i386-common.c (ix86_handle_option): Likewise.
3384 * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise.
3385 * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise.
3386 * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise.
3387 * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise.
3388 * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option):
3390 * common/config/riscv/riscv-common.c
3391 (riscv_subset_list::parsing_subset_version): Likewise.
3392 (riscv_subset_list::parse_std_ext): Likewise.
3393 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
3394 (riscv_subset_list::parse): Likewise.
3395 * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise.
3396 * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise.
3397 (aarch64_override_options_internal): Likewise.
3398 (aarch64_validate_mcpu): Likewise.
3399 (aarch64_validate_march): Likewise.
3400 (aarch64_validate_mtune): Likewise.
3401 (aarch64_override_options): Likewise.
3402 * config/alpha/alpha.c (alpha_option_override): Likewise.
3403 * config/arc/arc.c (arc_init): Likewise.
3404 (parse_mrgf_banked_regs_option): Likewise.
3405 (arc_override_options): Likewise.
3406 (arc_expand_builtin_aligned): Likewise.
3407 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise.
3408 (arm_expand_builtin): Likewise.
3409 * config/arm/arm.c (arm_option_check_internal): Likewise.
3410 (arm_configure_build_target): Likewise.
3411 (arm_option_override): Likewise.
3412 (arm_options_perform_arch_sanity_checks): Likewise.
3413 (arm_handle_cmse_nonsecure_entry): Likewise.
3414 (arm_handle_cmse_nonsecure_call): Likewise.
3415 (arm_tls_referenced_p): Likewise.
3416 (thumb1_expand_prologue): Likewise.
3417 * config/avr/avr.c (avr_option_override): Likewise.
3418 * config/bfin/bfin.c (bfin_option_override): Likewise.
3419 * config/c6x/c6x.c (c6x_option_override): Likewise.
3420 * config/cr16/cr16.c (cr16_override_options): Likewise.
3421 * config/cris/cris.c (cris_option_override): Likewise.
3422 * config/csky/csky.c (csky_handle_isr_attribute): Likewise.
3423 * config/darwin-c.c (macosx_version_as_macro): Likewise.
3424 * config/darwin.c (darwin_override_options): Likewise.
3425 * config/frv/frv.c (frv_expand_builtin): Likewise.
3426 * config/h8300/h8300.c (h8300_option_override): Likewise.
3427 * config/i386/i386.c (parse_mtune_ctrl_str): Likewise.
3428 (ix86_option_override_internal): Likewise.
3429 (warn_once_call_ms2sysv_xlogues): Likewise.
3430 (ix86_expand_prologue): Likewise.
3431 (split_stack_prologue_scratch_regno): Likewise.
3432 (ix86_warn_parameter_passing_abi): Likewise.
3433 * config/ia64/ia64.c (fix_range): Likewise.
3434 * config/m68k/m68k.c (m68k_option_override): Likewise.
3435 * config/microblaze/microblaze.c (microblaze_option_override): Likewise.
3436 * config/mips/mips.c (mips_emit_probe_stack_range): Likewise.
3437 (mips_set_compression_mode): Likewise.
3438 * config/mmix/mmix.c (mmix_option_override): Likewise.
3439 * config/mn10300/mn10300.c (mn10300_option_override): Likewise.
3440 * config/msp430/msp430.c (msp430_option_override): Likewise.
3441 * config/nds32/nds32.c (nds32_option_override): Likewise.
3442 * config/nios2/nios2.c (nios2_custom_check_insns): Likewise.
3443 (nios2_option_override): Likewise.
3444 (nios2_expand_custom_builtin): Likewise.
3445 * config/nvptx/mkoffload.c (main): Likewise.
3446 * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise.
3447 * config/pa/pa.c (fix_range): Likewise.
3448 (pa_option_override): Likewise.
3449 * config/riscv/riscv.c (riscv_parse_cpu): Likewise.
3450 (riscv_option_override): Likewise.
3451 * config/rl78/rl78.c (rl78_option_override): Likewise.
3452 * config/rs6000/aix61.h: Likewise.
3453 * config/rs6000/aix71.h: Likewise.
3454 * config/rs6000/aix72.h: Likewise.
3455 * config/rs6000/driver-rs6000.c (elf_platform): Likewise.
3456 * config/rs6000/freebsd64.h: Likewise.
3457 * config/rs6000/linux64.h: Likewise.
3458 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
3459 (rs6000_expand_zeroop_builtin): Likewise.
3460 (rs6000_expand_mtfsb_builtin): Likewise.
3461 (rs6000_expand_set_fpscr_rn_builtin): Likewise.
3462 (rs6000_expand_set_fpscr_drn_builtin): Likewise.
3463 (rs6000_invalid_builtin): Likewise.
3464 (rs6000_expand_split_stack_prologue): Likewise.
3465 * config/rs6000/rtems.h: Likewise.
3466 * config/rx/rx.c (valid_psw_flag): Likewise.
3467 (rx_expand_builtin): Likewise.
3468 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
3469 * config/s390/s390.c (s390_expand_builtin): Likewise.
3470 (s390_function_profiler): Likewise.
3471 (s390_option_override_internal): Likewise.
3472 (s390_option_override): Likewise.
3473 * config/sh/sh.c (sh_option_override): Likewise.
3474 (sh_builtin_saveregs): Likewise.
3475 (sh_fix_range): Likewise.
3476 * config/sh/vxworks.h: Likewise.
3477 * config/sparc/sparc.c (sparc_option_override): Likewise.
3478 * config/spu/spu.c (spu_option_override): Likewise.
3479 (fix_range): Likewise.
3480 * config/visium/visium.c (visium_option_override): Likewise.
3481 (visium_handle_interrupt_attr): Likewise.
3482 * config/xtensa/xtensa.c (xtensa_option_override): Likewise.
3483 * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise.
3484 (dbg_cnt_process_opt): Likewise.
3485 * dwarf2out.c (output_dwarf_version): Likewise.
3486 * except.c (expand_eh_return): Likewise.
3487 * gcc.c (defined): Likewise.
3488 (driver_handle_option): Likewise.
3489 (process_command): Likewise.
3490 (compare_files): Likewise.
3491 (driver::prepare_infiles): Likewise.
3492 (driver::do_spec_on_infiles): Likewise.
3493 (driver::maybe_run_linker): Likewise.
3494 * omp-offload.c (oacc_parse_default_dims): Likewise.
3495 * opts-global.c (handle_common_deferred_options): Likewise.
3496 * opts.c (parse_sanitizer_options): Likewise.
3497 (common_handle_option): Likewise.
3498 (enable_warning_as_error): Likewise.
3499 * passes.c (enable_disable_pass): Likewise.
3500 * plugin.c (parse_plugin_arg_opt): Likewise.
3501 (default_plugin_dir_name): Likewise.
3502 * targhooks.c (default_expand_builtin_saveregs): Likewise.
3503 (default_pch_valid_p): Likewise.
3504 * toplev.c (init_asm_output): Likewise.
3505 (process_options): Likewise.
3506 (toplev::run_self_tests): Likewise.
3507 * tree-cfg.c (verify_gimple_call): Likewise.
3508 * tree-inline.c (inline_forbidden_p_stmt): Likewise.
3509 (tree_inlinable_function_p): Likewise.
3510 * var-tracking.c (vt_find_locations): Likewise.
3512 2019-03-11 Andreas Krebbel <krebbel@linux.ibm.com>
3514 * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not
3515 only on the else branch.
3517 2019-03-11 Martin Liska <mliska@suse.cz>
3519 * gcov.c (output_intermediate_json_line): Print function
3521 (output_json_intermediate_file): Add new argument.
3522 * doc/gcov.texi: Document the change.
3524 2019-03-11 Eric Botcazou <ebotcazou@adacore.com>
3526 PR rtl-optimization/89588
3527 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
3528 explicit unrolling factor more robust.
3530 2019-03-11 Richard Biener <rguenther@suse.de>
3532 PR tree-optimization/89649
3533 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
3534 * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize
3535 on the prolog and epilog loops.
3536 (vect_loop_versioning): Return copy of loop.
3537 * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize
3538 on the non-vectorized version of the loop.
3540 2019-03-10 Uroš Bizjak <ubizjak@gmail.com>
3543 * config/i386/sse.md (*vec_extractv2di_0_sse):
3544 Add (=r,x) alternative and corresponding splitter.
3546 2019-03-10 Martin Jambor <mjambor@suse.cz>
3548 PR tree-optimization/85762
3549 PR tree-optimization/87008
3550 PR tree-optimization/85459
3551 * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool
3552 it points to if there is a type changing MEM_REF. Adjust all callers.
3553 (build_accesses_from_assign): Disable total scalarization if
3554 contains_vce_or_bfcref_p returns true through the new parameter, for
3557 2019-03-09 Jakub Jelinek <jakub@redhat.com>
3560 * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for
3561 dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.
3564 * common.opt (fdiagnostics-show-labels,
3565 fdiagnostics-show-line-numbers, fdiagnostics-format=,
3566 fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support,
3567 gas-locview-support, ginline-points, ginternal-reset-location-views):
3568 Terminate description text with a dot.
3569 * config/microblaze/microblaze.opt (mxl-prefetch): Likewise.
3570 * config/mcore/mcore.opt (m210, m340): Likewise.
3571 * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove,
3572 mnops=): Start description text with a capital letter.
3573 * config/arc/arc.opt (msize-level=): Likewise.
3574 * config/sh/sh.opt (minline-ic_invalidate): Likewise.
3575 * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib,
3577 * config/ft32/ft32.opt (msim): Likewise.
3578 (mft32b, mcompress): Likewise. Terminate description text with a dot.
3579 (mnodiv, mnopm): Terminate description text with a dot.
3580 * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with
3582 * config/i386/i386.opt (prefer_vector_width, instrument_return):
3584 * config/rx/rx.opt (nofpu): Remove trailing spaces from description
3587 PR rtl-optimization/89634
3588 * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1
3589 are modified in BB_END (e->src) instruction.
3591 2019-03-08 David Malcolm <dmalcolm@redhat.com>
3594 * config/i386/i386.c (ix86_set_current_function): Make "sorry"
3595 messages more amenable to translation, and improve wording.
3597 2019-03-08 Bill Schmidt <wschmidt@linux.ibm.com>
3599 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
3600 ud- and du-chains between phases.
3602 2019-03-08 Richard Sandiford <richard.sandiford@arm.com>
3605 * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
3606 instead of POLY_INT_CST.
3608 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
3610 * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
3613 2019-03-08 Uroš Bizjak <ubizjak@gmail.com>
3618 * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
3619 (_mm_storeu_si64): Ditto.
3621 2019-03-08 Martin Liska <mliska@suse.cz>
3624 * config/i386/i386.c (ix86_option_override_internal): Disable
3625 jump tables when retpolines are used.
3627 2019-03-08 Jan Hubicka <hubicka@ucw.cz>
3630 * ipa-split.c (execute_split_functions): Do not split
3631 'noinline' or 'section' function.
3633 2019-03-08 Jakub Jelinek <jakub@redhat.com>
3636 * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of
3637 HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of
3638 HOST_WIDE_INT_PRINT_DEC. Formatting fixes.
3641 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
3642 from diagnostics. Formatting fixes.
3645 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in
3646 warn_odr diagnostics.
3649 * lra-constraints.c (process_alt_operands): Avoid one space before
3650 " at the end of line and another after " on another line in a string
3652 * attribs.c (handle_dll_attribute): Likewise.
3653 * config/avr/avr-devices.c (avr_texinfo): Likewise.
3655 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
3656 warning_at or inform messages in G_() if there is no ?:.
3658 PR tree-optimization/89550
3659 * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at
3660 returned true. Formatting fixes.
3661 (expand_builtin_strnlen): Formatting fixes.
3662 * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING
3663 if warning_at returned true.
3664 * tree-cfg.c (pass_warn_function_return::execute): Likewise.
3666 2019-03-08 Richard Biener <rguenther@suse.de>
3669 * cfgloop.h (struct loop): Add owned_clique field.
3670 * cfgloopmanip.c (copy_loop_info): Copy it.
3671 * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
3673 * tree-inline.c (copy_loops): Remap owned_clique.
3674 * lto-streamer-in.c (input_cfg): Stream owned_clique.
3675 * lto-streamer-out.c (output_cfg): Likewise.
3677 2019-03-08 Jakub Jelinek <jakub@redhat.com>
3680 * config/darwin.c: Include intl.h.
3681 (darwin_build_constant_cfstring): Improve i18n of diagnostics by not
3682 composing the message out of two separate parts.
3684 2019-03-07 Jakub Jelinek <jakub@redhat.com>
3687 * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
3688 doesn't start with a capital letter and doesn't end with a dot.
3689 (ix86_function_arg_boundary): Make sure diagnostics doesn't start
3690 with a capital letter.
3691 (ix86_mangle_function_version_assembler_name): Likewise.
3692 (ix86_generate_version_dispatcher_body): Likewise.
3693 (fold_builtin_cpu): Likewise.
3694 (get_builtin_code_for_version): Likewise. Remove extraneous space.
3695 (ix86_handle_interrupt_attribute): Make the diagnostics easier for
3696 translators, wrap full type name in %qs.
3698 PR translation/79999
3699 * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about
3700 depend clause with source (or sink) modifier.
3701 * omp-expand.c (expand_omp_ordered_sink): Likewise.
3704 * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask,
3705 *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns.
3706 (avx512f_load<mode>_mask): New define_expand.
3707 * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask,
3708 __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask,
3709 __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask,
3710 __builtin_ia32_movess_mask): New builtins.
3711 * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss,
3712 _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss,
3713 _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd,
3714 _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics.
3716 2019-03-07 Martin Jambor <mjambor@suse.cz>
3719 * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
3720 for extern inline functions.
3722 2019-03-07 Martin Jambor <mjambor@suse.cz>
3725 * cgraph.h (cgraph_node): New inline method former_thunk_p.
3726 * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
3727 (clone_of_p): Treat expanded thunks like thunks, be optimistic if they
3728 have multiple callees. At the end check if declarations match as
3729 opposed to cgraph_nodes.
3731 2019-03-07 Martin Liska <mliska@suse.cz>
3733 * cgraph.c (cgraph_node::verify_node): Verify with a neighbour
3734 which is equivalent to searching for this in clones chain.
3735 * symtab.c (symtab_node::verify_base): Similarly compare ASM
3736 names with a neighbour and special case first node in a chain.
3738 2019-01-25 Jason Merrill <jason@redhat.com>
3740 PR c++/80916 - spurious "static but not defined" warning.
3741 * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false
3742 for an internal symbol with DECL_EXTERNAL.
3744 2019-04-07 Richard Biener <rguenther@suse.de>
3747 * cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
3748 * tree-inline.c (copy_loops): Simplify.
3750 2019-03-07 Martin Liska <mliska@suse.cz>
3752 * dwarf2out.c (add_AT_vms_delta): Revert function removal.
3754 2019-03-07 Richard Biener <rguenther@suse.de>
3756 PR tree-optimization/89595
3757 * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
3758 stmt iterator as reference, take boolean output parameter to
3759 indicate whether the stmt was removed and thus the iterator
3761 (dom_opt_dom_walker::before_dom_children): Re-iterate over
3762 stmts created by folding.
3764 2019-03-07 Jakub Jelinek <jakub@redhat.com>
3767 * doc/extend.texi (Basic Asm): Document qualifiers are not allowed
3770 2019-03-06 Peter Bergner <bergner@linux.ibm.com>
3772 PR rtl-optimization/88845
3773 * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
3775 * lra.c (remove_scratches_1): New function.
3776 (remove_scratches): Use it.
3777 (lra_emit_move): Likewise.
3779 2019-03-06 Claudiu Zissulescu <claziss@synopsys.com>
3781 * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
3782 unaligned_access variable.
3783 * config/arc/arc.c (arc_override_options): Set unaligned access
3784 default on for HS CPUs.
3785 * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.
3787 2019-03-06 Martin Liska <mliska@suse.cz>
3789 PR gcov-profile/89577
3790 * doc/gcov.texi: Prefer to use --coverage.
3791 * doc/sourcebuild.texi: Likewise.
3793 2019-03-02 Jason Merrill <jason@redhat.com>
3795 PR c++/86485 - -Wmaybe-unused with empty class ?:
3796 * gimplify.c (gimplify_cond_expr): Use INIT_EXPR.
3798 2019-03-05 Jakub Jelinek <jakub@redhat.com>
3801 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
3805 * builtins.c (maybe_emit_free_warning): Punt if free doesn't have
3806 exactly one argument.
3808 2019-03-05 Jakub Jelinek <jakub@redhat.com>
3809 Richard Sandiford <richard.sandiford@arm.com>
3811 PR tree-optimization/89570
3812 * match.pd (vec_cond into cond_op simplification): Don't use
3813 get_conditional_internal_fn, use as_internal_fn (cond_op).
3815 2019-03-05 Wilco Dijkstra <wdijkstr@arm.com>
3818 * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
3819 to decide when to split off a non-zero offset from a symbol.
3820 * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
3821 in function symbols.
3823 2019-03-05 Richard Biener <rguenther@suse.de>
3825 PR tree-optimization/89594
3826 * tree-if-conv.c (pass_if_conversion::execute): Handle
3827 case where .LOOP_VECTORIZED_FUNCTION was removed.
3829 2019-03-05 Jakub Jelinek <jakub@redhat.com>
3832 * fold-const.c (fold_checksum_tree): Don't use fixed size buffer,
3833 instead alloca it only when needed with the needed size.
3835 PR tree-optimization/89570
3836 * match.pd (vec_cond into cond_op simplification): Guard with
3837 vectorized_internal_fn_supported_p test and #if GIMPLE.
3839 PR tree-optimization/89566
3840 * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call):
3841 Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed.
3842 Punt if get_user_idx_format succeeds, but idx_format argument is
3843 not provided or doesn't have pointer type, or if idx_args is above
3844 number of provided arguments.
3846 2019-03-04 Wilco Dijkstra <wdijkstr@arm.com>
3848 PR tree-optimization/89437
3849 * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications.
3851 2019-03-04 Richard Biener <rguenther@suse.de>
3854 * tree-scalar-evolution.c: (get_loop_exit_condition): Use
3857 2019-03-04 Bin Cheng <bin.cheng@linux.alibaba.com>
3859 PR tree-optimization/89487
3860 * tree-loop-distribution.c (has_nonaddressable_dataref_p): New.
3861 (create_rdg_vertices): Compute has_nonaddressable_dataref_p.
3862 (distribute_loop): Don't do runtime alias check if there is non-
3863 addressable data reference.
3864 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL
3865 is a register variable.
3867 2019-03-02 Jakub Jelinek <jakub@redhat.com>
3870 * config/arm/arm.md (cmpsi2_addneg): Use
3871 trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...).
3872 If operands[2] is 0 or INT_MIN, force use of subs.
3873 (*compare_scc splitter): Use gen_int_mode.
3874 (*negscc): Likewise.
3875 * config/arm/thumb2.md (*thumb2_negscc): Likewise.
3877 2019-03-01 Kito Cheng <kito.cheng@gmail.com>
3878 Monk Chiang <sh.chiang04@gmail.com>
3880 * common/config/riscv/riscv-common.c: Include sstream.
3881 (riscv_subset_list::to_string): New.
3882 (riscv_arch_str): Likewise.
3883 * config.gcc (riscv*-*-*): Handle --with-riscv-attribute=
3885 * config/riscv/riscv-protos.h (riscv_arch_str): New.
3886 * config/riscv/riscv.c (INCLUDE_STRING): Defined.
3887 (riscv_emit_attribute): New.
3888 (riscv_file_start): Emit attribute if needed.
3889 (riscv_option_override): Init riscv_emit_attribute_p.
3890 * config/riscv/riscv.opt (mriscv-attribute): New option.
3891 * configure.ac (riscv*-*-*): Check binutils is supporting ELF
3893 * doc/install.texi: Document --with-riscv-attribute.
3894 * doc/invoke.texi: Document -mriscv-attribute.
3896 * common/config/riscv/riscv-common.c:
3897 Include config/riscv/riscv-protos.h.
3898 (INCLUDE_STRING): Defined.
3899 (RISCV_DONT_CARE_VERSION): Defined.
3900 (riscv_subset_t): Declare.
3901 (riscv_subset_t::riscv_subset_t): New.
3902 (riscv_subset_list): Declare.
3903 (riscv_subset_list::riscv_subset_list): New.
3904 (riscv_subset_list::~riscv_subset_list): Likewise.
3905 (riscv_subset_list::parsing_subset_version): Likewise.
3906 (riscv_subset_list::parse_std_ext): Likewise.
3907 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
3908 (riscv_subset_list::add): Likewise.
3909 (riscv_subset_list::lookup): Likewise.
3910 (riscv_subset_list::xlen): Likewise.
3911 (riscv_subset_list::parse): Likewise.
3912 (riscv_supported_std_ext): Likewise.
3913 (current_subset_list): Likewise.
3914 (riscv_parse_arch_string): Using riscv_subset_list::parse to
3917 2019-03-01 Segher Boessenkool <segher@kernel.crashing.org>
3919 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
3920 rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index.
3921 * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option.
3923 2019-03-01 Alexander Monakov <amonakov@ispras.ru>
3925 PR rtl-optimization/85899
3926 * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
3927 fallthru edges leading to the exit block.
3929 2019-03-01 Tamar Christina <tamar.christina@arm.com>
3932 * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
3933 rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.
3935 2019-03-01 Richard Sandiford <richard.sandiford@arm.com>
3937 PR tree-optimization/89535
3938 * tree-vect-stmts.c (vectorizable_call): Record the vector types
3939 for each operand. Calculate the fallback choice for mask operands
3940 and pass it to vect_get_vec_def_for_operand.
3942 2019-03-01 Richard Biener <rguenther@suse.de>
3945 * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may
3946 get virtual operands.
3947 (get_expr_operands): Handle CONST_DECL like other decls.
3949 2019-03-01 Jakub Jelinek <jakub@redhat.com>
3952 * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
3953 on DECL_P and EXPR_P.
3955 2019-03-01 Richard Biener <rguenther@suse.de>
3958 * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
3959 argument, defaulted to zero.
3960 * passes.c (execute_function_todo): Pass down SSA update flags
3961 to cleanup_tree_cfg.
3962 * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
3963 (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
3965 (cleanup_tree_cfg): Get and pass down SSA update flags.
3967 2019-03-01 Jakub Jelinek <jakub@redhat.com>
3970 * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
3971 early_lto_debug argument.
3973 2019-02-28 Eric Botcazou <ebotcazou@adacore.com>
3975 PR tree-optimization/89536
3976 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
3977 only whether bit #0 of the value is 0 instead of the entire value.
3979 2019-02-28 Marek Polacek <polacek@redhat.com>
3981 PR c++/87068 - missing diagnostic with fallthrough statement.
3982 * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
3983 at the end of a seq, save its location to walk_stmt_info.
3984 (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
3987 2019-02-28 Jan Hubicka <hubicka@ucw.cz>
3990 * tree.c (find_atomic_core_type): Move ahead in file.
3991 (check_base_type): Correctly compare alignments of atomic types.
3993 2019-02-28 H.J. Lu <hongjiu.lu@intel.com>
3996 * config/i386/i386.c (get_builtin_code_for_version): Identify
3997 Westmere from PCLMUL, instead of AES.
3999 2019-02-28 Jakub Jelinek <jakub@redhat.com>
4002 * config/arm/arm.md (*subsi3_carryin_compare_const): Use
4003 trunc_int_for_mode (-INTVAL (...), SImode), just instead of
4006 2019-02-28 Tamar Christina <tamar.christina@arm.com>
4009 * config/aarch64/aarch64-option-extensions.def: Document it.
4010 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
4013 2019-02-28 Jakub Jelinek <jakub@redhat.com>
4016 * convert.c (convert_to_real_1, convert_to_integer_1): Punt for
4017 builtins if they don't have a single scalar floating point argument.
4020 2019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
4022 PR rtl-optimization/89490
4023 * varasm.c (get_block_for_section): Bail out for mergeable sections.
4024 (default_use_anchors_for_symbol_p, output_object_block): Assert the
4025 block section is not mergeable.
4027 2019-02-27 Jakub Jelinek <jakub@redhat.com>
4030 * config/arm/arm.md (arm_casesi_internal): New define_expand. Rename
4031 old define_insn to ...
4032 (*arm_casesi_internal): ... this. Add mode to LABEL_REFs.
4033 * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
4034 Rename old define_insn to ...
4035 (*thumb2_casesi_internal): ... this. Add mode to LABEL_REFs.
4036 (thumb2_casesi_internal_pic): New define_expand. Rename old
4038 (*thumb2_casesi_internal_pic): ... this. Add mode to LABEL_REFs.
4039 * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
4040 MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.
4042 2019-02-27 Richard Biener <rguenther@suse.de>
4045 * dwarf2out.c (use_debug_types): Disable when in_lto_p.
4047 2019-02-27 Richard Biener <rguenther@suse.de>
4049 * passes.c (should_skip_pass_p): Do not skip cgraph-edge
4052 2019-02-27 Richard Biener <rguenther@suse.de>
4055 * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
4056 parameter, prefix section name with .gnu.debuglto_ if true.
4057 (dwarf2out_finish): Pass false to output_comdat_type_unit.
4058 (dwarf2out_early_finish): Pass true to output_comdat_type_unit.
4060 2019-02-27 Richard Biener <rguenther@suse.de>
4063 * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
4064 rather than on use_debug_types, doing what output_die does.
4065 (value_format): Likewise.
4067 2019-02-27 Martin Jambor <mjambor@suse.cz>
4068 Martin Sebor <msebor@redhat.com>
4070 * doc/invoke.texi (Warning Options): Reword description of
4071 -Wno-absolute-value.
4073 2019-02-27 Jakub Jelinek <jakub@redhat.com>
4075 PR tree-optimization/89280
4076 * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
4077 builtin_setjmp_setup_bb): New functions.
4078 (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
4079 When visiting __builtin_setjmp_setup block, queue in special
4080 setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
4081 __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks
4082 from visited after the loop if they don't have any visited successor
4085 2018-02-26 Steve Ellcey <sellcey@marvell.com>
4087 * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
4089 (TARGET_GET_MULTILIB_ABI_NAME): New macro.
4091 2019-02-26 Jakub Jelinek <jakub@redhat.com>
4094 * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
4095 with types other than sizetype/ssizetype.
4097 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
4099 * config/sparc/sparc-opts.h (enum processor_type): Rename to...
4100 (enum sparc_processor_type): ...this.
4101 (enum sparc_code_model_type): New enumeration type.
4102 (enum sparc_memory_model_type): Tweak comments.
4103 * config/sparc/sparc.opt (mcpu): Adjust to above renaming.
4105 (mcmodel): Use sparc_code_model enumeration and variable.
4106 (sparc_code_model): New enumeration.
4107 (mdebug): Add Undocumented marker.
4108 * config/sparc/sparc.h (enum cmodel): Delete.
4109 (sparc_cmodel): Likewise.
4110 (TARGET_CM_MEDLOW): Adjust to above renaming.
4111 (TARGET_CM_MEDMID): Likewise.
4112 (TARGET_CM_MEDANY): Likewise.
4113 (TARGET_CM_EMBMEDANY): Likewise.
4114 * config/sparc/sparc.c (sparc_cmodel): Delete.
4115 (sparc_option_override): Remove string/value mapping support for the
4116 code model. Move code and memory model support to after the handling
4117 of target flags. Do private machine setup last.
4118 (sparc_emit_set_symbolic_const64): Use sparc_code_model.
4119 (sparc_legitimize_reload_address): Likewise.
4120 (sparc_output_mi_thunk): Likewise.
4121 * config/sparc/sparc.md (cpu): Adjust comment to above renaming.
4123 2019-02-26 Jakub Jelinek <jakub@redhat.com>
4125 PR tree-optimization/89500
4126 * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
4127 (handle_builtin_strlen): Remove noncst_bound variable. Always
4128 optimize strnlen (x, 0) to 0. Optimize strnlen (x, cst) to
4129 cst if the first cst bytes starting at x are known to be non-zero,
4130 even if the string is not zero terminated. Don't try to modify
4131 *si for strnlen. Update strlen_to_stridx only for strlen or if
4132 we can prove strnlen returns the same value as strlen would.
4134 2019-02-26 Martin Liska <mliska@suse.cz>
4136 * alloc-pool.h (struct pool_usage): Remove extra
4138 * bitmap.h (struct bitmap_usage): Likewise.
4139 * ggc-common.c (struct ggc_usage): Likewise.
4140 * mem-stats.h (struct mem_usage): Likewise.
4141 (mem_alloc_description::dump): Print dash lines
4142 here and repeat header at the end of a table report.
4143 It's then more readable.
4144 * tree-phinodes.c (phinodes_print_statistics): Make
4145 horizontal alignment.
4146 * tree-ssanames.c (ssanames_print_statistics): Likewise.
4147 * vec.c (struct vec_usage): Remove extra print_dash_line.
4148 * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
4150 2019-02-26 Uroš Bizjak <ubizjak@gmail.com>
4152 * doc/extend.texi (__builtin_object_size):
4153 Use @pxref instead of @xref inside parenthesis.
4154 (__builtin_has_attribute): Add missing comma after @xref.
4155 (__builtin_object_size): Ditto.
4156 * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
4157 * fortran/invoke.texi (-ffpe-trap): Use @var for every item
4160 2019-02-26 Jeff Law <law@redhat.com>
4162 PR rtl-optimization/87761
4163 * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
4164 detect obviously dead insns and delete them.
4166 2019-02-26 Richard Biener <rguenther@suse.de>
4168 PR tree-optimization/89505
4169 * tree-ssa-structalias.c (compute_dependence_clique): Make sure
4170 to handle restrict pointed-to vars with multiple subvars
4173 2019-02-26 Richard Biener <rguenther@suse.de>
4175 PR tree-optimization/89489
4176 * tree-parloops.c (create_loop_fn): Copy over last_clique.
4178 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
4180 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
4181 and move around comment.
4182 <BIT_AND_EXPR>: Likewise.
4183 <BIT_NOT_EXPR>: Add specific handling for boolean types.
4185 2019-02-26 Jakub Jelinek <jakub@redhat.com>
4188 * config/i386/i386.c (remove_partial_avx_dependency): Call
4189 df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
4190 after changing possibly many instructions to use that pseudo. Fix up
4191 insertion of v4sf_const0 setter at the start of bb.
4193 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
4196 * doc/extend.texi (Variadic Pointer Args): New section.
4198 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
4199 Martin Sebor <msebor@gmail.com>
4201 * common.opt (Wattribute-alias): Likewise.
4202 * doc/invoke.texi (Option Summary): List general form of
4203 -Wattribute-alias=. List positive form of -Wmissing-attributes.
4204 (-Wmissing-attributes): Invert entry, rewrite and correct default.
4205 Add cross-references.
4206 (-Wattribute-alias): Rewrite and correct default. Mention
4207 considered attributes (same as for -Wmissing-attributes).
4209 2019-02-25 Paul A. Clarke <pc@us.ibm.com>
4211 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
4212 (_mm_cvtpd_ps): Likewise.
4213 (_mm_cvttpd_epi32): Likewise.
4216 * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
4217 (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
4220 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
4222 2019-02-25 Tamar Christina <tamar.christina@arm.com>
4225 * common/config/aarch64/aarch64-common.c
4226 (struct aarch64_option_extension): Add is_synthetic.
4227 (all_extensions): Use it.
4228 (TARGET_OPTION_INIT_STRUCT): Define hook.
4229 (struct gcc_targetm_common): Moved to end.
4230 (all_extensions_by_on): New.
4231 (opt_ext_cmp, typedef opt_ext): New.
4232 (aarch64_option_init_struct): New.
4233 (aarch64_contains_opt): New.
4234 (aarch64_get_extension_string_for_isa_flags): Output smallest set.
4235 * config/aarch64/aarch64-option-extensions.def
4236 (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
4237 (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
4238 sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
4239 Set is_synthetic to false.
4240 (crypto): Set is_synthetic to true.
4241 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
4244 2019-02-25 Tamar Christina <tamar.christina@arm.com>
4246 * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
4247 vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
4248 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
4249 vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
4250 vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
4251 vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
4252 vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
4253 vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
4255 (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
4256 vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
4257 vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
4258 vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
4259 vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
4260 vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
4261 vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
4262 vfmlsl_laneq_high_f16): ... To this.
4263 * config/arm/neon.md: Update comments.
4265 2019-02-25 Tamar Christina <tamar.christina@arm.com>
4267 * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
4268 vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
4269 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
4270 vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
4271 vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
4272 vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
4273 vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
4274 vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
4276 (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
4277 vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
4278 vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
4279 vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
4280 vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
4281 vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
4282 vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
4283 vfmlslq_laneq_high_f16): ... To this.
4285 2019-02-25 Alexander Monakov <amonakov@ispras.ru>
4287 PR rtl-optimization/86096
4288 * df-scan.c (df_mw_compare): Do not check mw_reg fields when
4289 comparing mw_order values.
4291 2019-02-25 Jakub Jelinek <jakub@redhat.com>
4294 * config/arm/arm.md (*subsi3_carryin_const): Use
4295 arm_neg_immediate_operand predicate instead of
4296 arm_not_immediate_operand, "L" constraint instead of "K" and
4297 print it using %n2 instead of %B2.
4298 (*subsi3_carryin_const0): New define_insn.
4299 (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
4300 instead of arm_not_operand and "I" constraint instead of "K" and
4301 print it using %n3 instead of %B2. Instead of using match_dup 2 add
4302 another match_operand and in the condition check that it is negation
4304 (*subsi3_carryin_compare_const0): New define_ins.
4305 (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
4306 *subsi3_carryin_const.
4307 (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
4308 split into *subsi3_carryin_compare_const0 if the highpart is zero.
4311 * config/arm.vfp.md (*negdf2_vfp): Use
4312 gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
4313 * config/arm/neon.md (neon_copysignf<mode>): Likewise.
4315 2019-02-24 Jakub Jelinek <jakub@redhat.com>
4317 PR rtl-optimization/89445
4318 * simplify-rtx.c (simplify_ternary_operation): Don't use
4319 simplify_merge_mask on operands that may trap.
4320 * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
4321 SCALAR_FLOAT_MODE_P checks. For integral division by zero, if
4322 second operand is CONST_VECTOR, check if any element could be zero.
4323 Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
4324 their operands can trap.
4326 2019-02-23 Martin Sebor <msebor@redhat.com>
4328 * gimple-ssa-sprintf.c (target_strtol): Rename...
4329 (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX.
4330 (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to
4331 check for range error.
4333 2019-02-23 H.J. Lu <hongjiu.lu@intel.com>
4336 * opts-common.c (prune_options): Also prune joined switches
4337 with Negative and RejectNegative.
4338 * config/i386/i386.opt (march=): Add Negative(march=).
4339 (mtune=): Add Negative(mtune=).
4340 * doc/options.texi: Document Negative used together with Joined
4343 2019-02-22 Martin Sebor <msebor@redhat.com>
4345 * doc/extend.texi (Other Builtins): Add
4346 __builtin_is_constant_evaluated.
4348 2019-02-22 Richard Biener <rguenther@suse.de>
4350 PR tree-optimization/87609
4351 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
4353 2019-02-22 Jeff Law <law@redhat.com>
4355 PR rtl-optimization/87761
4356 * config/mips/mips.md: Add new combiner pattern to recognize
4357 a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
4359 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com>
4362 * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
4363 destination register in peepholes generating patterns for ADDS/SUBS.
4364 (add<mode>3_compare0,
4365 *addsi3_compare0_uxtw, add<mode>3_compareC,
4366 add<mode>3_compareV_imm, add<mode>3_compareV,
4367 *adds_<optab><ALLX:mode>_<GPI:mode>,
4368 *subs_<optab><ALLX:mode>_<GPI:mode>,
4369 *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
4370 *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
4371 *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
4372 *sub<mode>3_compare0, *subsi3_compare0_uxtw,
4373 sub<mode>3_compare1): Allow stack pointer for source register.
4374 * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
4376 2019-02-22 Martin Sebor <msebor@redhat.com>
4378 PR tree-optimization/88993
4379 PR tree-optimization/88853
4380 * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
4382 (sprintf_dom_walker::call_info::is_string_func): New helper.
4383 (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
4384 for formatted string functions.
4385 (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
4387 2019-02-22 Martin Sebor <msebor@redhat.com>
4390 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
4391 unreachable subexpressions.
4393 2019-02-22 H.J. Lu <hongjiu.lu@intel.com>
4394 Hongtao Liu <hongtao.liu@intel.com>
4395 Sunil K Pandey <sunil.k.pandey@intel.com>
4398 * config/i386/i386-passes.def: Add
4399 pass_remove_partial_avx_dependency.
4400 * config/i386/i386-protos.h
4401 (make_pass_remove_partial_avx_dependency): New.
4402 * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
4404 (pass_data_remove_partial_avx_dependency): New.
4405 (pass_remove_partial_avx_dependency): Likewise.
4406 (make_pass_remove_partial_avx_dependency): Likewise.
4407 * config/i386/i386.md (avx_partial_xmm_update): New attribute.
4408 (*extendsfdf2): Add avx_partial_xmm_update.
4409 (truncdfsf2): Likewise.
4410 (*float<SWI48:mode><MODEF:mode>2): Likewise.
4411 (SF/DF conversion splitters): Disabled for TARGET_AVX.
4413 2019-02-22 Aldy Hernandez <aldyh@redhat.com>
4416 * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
4419 2019-02-22 Thiago Macieira <thiago.macieira@intel.com>
4422 * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
4423 (PTA_SKYLAKE): Add PTA_AES.
4424 (PTA_GOLDMONT): Likewise.
4426 2019-02-22 Sudakshina Das <sudi.das@arm.com>
4428 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
4429 instruction if enabled.
4430 (aarch64_override_options): Remove reference to return address key.
4432 2019-02-22 Richard Biener <rguenther@suse.de>
4434 PR tree-optimization/89440
4435 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
4436 not necessary assert.
4438 2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
4441 * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
4442 (oacc_replace_fn_attrib_attr): ... this new function.
4443 * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
4444 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
4446 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4448 * config/arm/arm-cpus.in (ares): Rename to...
4449 (neoverse-n1): ... This. Add ares as alias.
4450 * config/arm/arm-tables.opt: Regenerate.
4451 * config/arm/arm-tune.md: Likewise.
4452 * doc/invoke.txt (ARM Options): Document neoverse-n1.
4454 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4456 * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
4457 * config/aarch64/aarch64-tune.md: Regenerate.
4458 * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
4460 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4462 * config/aarch64/aarch64.c (ares_tunings): Rename to...
4463 (neoversen1_tunings): ... This.
4464 * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
4465 (neoverse-n1): New CPU.
4466 * config/aarch64/aarch64-tune.md: Regenerate.
4467 * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
4469 2019-02-22 Richard Biener <rguenther@suse.de>
4472 * cfghooks.h (dependence_hash): New typedef.
4473 (struct copy_bb_data): New type.
4474 (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
4475 (duplicate_block): Likewise.
4476 * cfghooks.c (duplicate_block): Pass down copy_bb_data.
4477 (copy_bbs): Create and pass down copy_bb_data.
4478 * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
4479 (rtl_duplicate_bb): Likewise.
4480 * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
4481 remap dependence info.
4483 2019-02-22 Richard Biener <rguenther@suse.de>
4485 PR tree-optimization/87609
4486 * tree-core.h (tree_base): Document special clique values.
4487 * tree-inline.c (remap_dependence_clique): Do not use the
4488 special clique value of one.
4489 (maybe_set_dependence_info): Use clique one.
4490 (clear_dependence_clique): New callback.
4491 (compute_dependence_clique): Clear clique one from all refs
4492 before assigning it (again).
4494 2019-02-21 Martin Sebor <msebor@redhat.com>
4496 * doc/extend.texi (__clear_cache): Correct signature.
4498 2019-02-21 Ian Lance Taylor <iant@golang.org>
4501 * varasm.c (decode_addr_const): Call lookup_constant_def rather
4502 than output_constant_def.
4503 (add_constant_to_table): New static function.
4504 (output_constant_def): Call add_constant_to_table.
4505 (tree_output_constant_def): Likewise.
4507 2019-02-21 Jakub Jelinek <jakub@redhat.com>
4510 * builtins.c (fold_builtin_arith_overflow): If first two args are
4511 INTEGER_CSTs, set intres and ovfres to constants rather than calls
4514 2019-02-21 H.J. Lu <hongjiu.lu@intel.com>
4517 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
4518 error for -mindirect-branch/-mfunction-return with incompatible
4521 2019-02-21 Jakub Jelinek <jakub@redhat.com>
4524 * constraints.md (q): Remove.
4525 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
4528 2019-02-21 Martin Jambor <mjambor@suse.cz>
4531 * omp-general.c (omp_extract_for_data): Removed a duplicate call
4532 to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
4533 (omp_adjust_for_condition): ...here. Added necessary parameters.
4534 * omp-general.h (omp_adjust_for_condition): Updated declaration.
4535 * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
4536 proper values to new parameters of omp_adjust_for_condition.
4538 2019-02-20 Jakub Jelinek <jakub@redhat.com>
4541 * expr.c (expand_assignment): If result is a MEM, use change_address
4542 instead of simplify_gen_subreg.
4544 2019-02-20 Jakub Jelinek <jakub@redhat.com>
4545 David Malcolm <dmalcolm@redhat.com>
4548 * fold-const.c (decode_field_reference): Return NULL_TREE if
4549 lang_hooks.types.type_for_size returns NULL. Check it before
4550 overwriting *exp_. Use return NULL_TREE instead of return 0.
4552 2019-02-20 Jakub Jelinek <jakub@redhat.com>
4556 * toplev.c (do_compile): Double the emin/emax exponents to workaround
4559 2019-02-20 Uroš Bizjak <ubizjak@gmail.com>
4562 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
4563 TARGET_SSE in addition to TARGET_SSE_MATH.
4565 (ix86_excess_precision): Ditto.
4566 (ix86_float_exceptions_rounding_supported_p): Ditto.
4567 (use_rsqrt_p): Ditto.
4568 * config/i386/sse.md (rsqrt<mode>2): Ditto.
4570 2019-02-20 David Malcolm <dmalcolm@redhat.com>
4573 * diagnostic-show-locus.c (layout::calculate_line_spans): Use
4574 linenum_arith_t when determining if two adjacent line spans are
4575 close enough to merge.
4576 (diagnostic_show_locus): Use linenum_arith_t when iterating over
4577 lines within each line_span.
4579 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
4582 * lra-constraints.c(uses_hard_regs_p): Fix handling of
4583 paradoxical SUBREGS.
4585 2019-02-20 Li Jia He <helijia@linux.ibm.com>
4588 * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
4589 <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
4590 ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
4593 2019-02-19 Jonathan Wakely <jwakely@redhat.com>
4595 * config/gcn/gcn.c (print_operand): Fix typo.
4597 2019-02-19 Richard Biener <rguenther@suse.de>
4600 * toplev.c (do_compile): Initialize mpfr's exponent range
4601 based on available float modes.
4603 2019-02-19 Eric Botcazou <ebotcazou@adacore.com>
4605 * rtlanal.c (get_initial_register_offset): Fall back to the estimate
4606 as long as the epilogue isn't completed.
4608 2019-02-18 Martin Sebor <msebor@redhat.com>
4610 * doc/cpp.texi (Conditional syntax): Add __has_attribute,
4611 __has_cpp_attribute, and __has_include.
4613 2019-02-18 Martin Sebor <msebor@redhat.com>
4615 * doc/invoke.texi (-Wreturn-type): Correct and expand.
4617 2019-02-18 Martin Sebor <msebor@redhat.com>
4620 * tree.c (valid_constant_size_p): Avoid assuming size is a constant
4622 * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
4624 2019-02-18 Richard Biener <rguenther@suse.de>
4626 PR tree-optimization/89296
4627 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
4628 of no-warning flag to cases that might emit the bogus warning.
4630 2019-02-18 Jakub Jelinek <jakub@redhat.com>
4633 * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
4635 * config/arm/vfp.md (*movdi_vfp): Likewise.
4636 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
4637 "q" constraint for operands[0].
4640 * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
4641 *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
4642 pattern in a temporary buffer.
4643 (*r<noxa>sbg_sidi_srl): Likewise. Always use 32 as I3 rather
4644 than 64-operands[2].
4647 * config/s390/s390.c (s390_indirect_branch_attrvalue,
4648 s390_indirect_branch_settings): Define unconditionally.
4649 (s390_set_current_function): Likewise, but guard the whole body except
4650 the s390_indirect_branch_settings call with
4651 #if S390_USE_TARGET_ATTRIBUTE.
4652 (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
4654 * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
4655 *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
4656 Use HOST_WIDE_INT_M1U instead of ~(0ULL).
4657 (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
4658 HOST_WIDE_INT_1U instead of 1ULL.
4659 (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
4660 to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
4661 (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
4662 z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
4664 (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
4667 2019-02-18 Martin Jambor <mjambor@suse.cz>
4669 PR tree-optimization/89209
4670 * tree-sra.c (create_access_replacement): New optional parameter
4671 reg_tree. Use it as a type if non-NULL and access type is not of
4673 (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
4674 to create_access_replacement.
4675 (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
4676 Check lacc is non-NULL before attempting to re-create it on the RHS.
4678 2019-02-18 Martin Liska <mliska@suse.cz>
4681 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
4683 (symbol_table::free_edge): Recycle m_summary_id.
4684 * cgraph.h (get_summary_id): New.
4685 (symbol_table::release_symbol): Set m_summary_id to -1
4687 (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
4688 * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
4689 function_summary to fast_function_summary.
4690 * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
4691 * ipa-pure-const.c (class funct_state_summary_t):
4692 Switch from function_summary to fast_function_summary.
4693 * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
4694 (class ipa_ref_opt_summary_t): Switch from function_summary
4695 to fast_function_summary.
4696 * symbol-summary.h (class function_summary_base): New class
4697 that is created from base of former function_summary.
4698 (function_summary_base::unregister_hooks): New.
4699 (class function_summary): Inherit from function_summary_base.
4700 (class call_summary_base): New class
4701 that is created from base of former call_summary.
4702 (class call_summary): Inherit from call_summary_base.
4703 (struct is_same): New.
4704 (class fast_function_summary): New summary class.
4705 (class fast_call_summary): New summary class.
4706 * vec.h (vec_safe_grow_cleared): New function.
4708 2019-02-18 Martin Liska <mliska@suse.cz>
4710 * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
4711 (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
4712 * doc/tm.texi: Document new target hook.
4713 * doc/tm.texi.in: Likewise.
4714 * target.def: Add new target macro.
4715 * gcc.c (find_fortran_preinclude_file): Do not search multilib
4718 2019-02-17 Alan Modra <amodra@gmail.com>
4721 * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
4722 output reg on add insn.
4723 (<bd>tf_<mode> split): Likewise. Match predicates with insn.
4725 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
4728 * config/i386/sse.md (ssedoublemode): Remove V4HI.
4729 (PMULHRSW): Likewise.
4730 (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
4732 (ssse3_pmulhrswv4hi3): New expander.
4734 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
4736 * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
4737 MMX. Add isa attribute.
4739 2019-02-16 Jakub Jelinek <jakub@redhat.com>
4741 PR rtl-optimization/66152
4742 * builtins.h (c_readstr): Declare.
4743 * builtins.c (c_readstr): Remove forward declaration. Add
4744 null_terminated_p argument, if false, read all bytes from the
4745 string instead of stopping after '\0'.
4746 * expr.c (string_cst_read_str): New function.
4747 (store_expr): Use string_cst_read_str instead of
4748 builtin_strncpy_read_str. Try to store by pieces the whole
4749 exp_len first, and only if that fails, split it up into
4750 store by pieces followed by clear_storage. Formatting fix.
4752 * config/i386/i386.md (*movqi_internal): Remove static from
4753 buf variable. Use output_asm_insn (buf, operands); return "";
4754 instead of return buf;.
4755 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
4756 *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
4757 *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
4759 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
4761 * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
4762 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
4763 * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
4764 (CC1_SPEC): Likewise.
4765 * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
4767 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
4769 * asan.c (asan_emit_stack_protection): Use full-sized mask to align
4770 the base address on 64-bit strict-alignment platforms.
4772 2019-02-15 H.J. Lu <hongjiu.lu@intel.com>
4774 * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
4776 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
4778 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
4780 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com>
4782 PR rtl-optimization/88308
4783 * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
4784 on copied instruction.
4786 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
4788 * final.c (insn_current_reference_address): Replace test on JUMP_P
4789 with test on jump_to_label_p.
4790 * config/visium/visium-passes.def: New file.
4791 * config/visium/t-visium (PASSES_EXTRA): Define.
4792 * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
4793 * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
4794 (TRAMPOLINE_ALIGNMENT): Define.
4795 * config/visium/visium.c (visium_option_override): Do not register
4796 the machine-specific reorg pass here.
4797 (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
4799 (output_branch): Adjust threshold for long branch instruction.
4800 * config/visium/visium.md (cpu): Move around.
4801 (length): Adjust for the GR6.
4803 2019-02-15 Richard Biener <rguenther@suse.de>
4804 Jakub Jelinek <jakub@redhat.com>
4806 PR tree-optimization/89278
4807 * tree-loop-distribution.c: Include tree-eh.h.
4808 (generate_memset_builtin, generate_memcpy_builtin): Call
4809 rewrite_to_non_trapping_overflow on builtin->size before passing it
4810 to force_gimple_operand_gsi.
4812 2019-02-15 Jakub Jelinek <jakub@redhat.com>
4815 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
4817 * opth-gen.awk: Likewise.
4819 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
4821 * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
4822 Enable MMX, SSE and SSE2 by default.
4823 * config/i386/i386.c (ix86_option_override_internal): Do not
4824 explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
4826 2019-02-14 Jakub Jelinek <jakub@redhat.com>
4828 PR rtl-optimization/89354
4829 * combine.c (make_extraction): Punt if extraction_mode is narrower
4832 2019-02-14 Maya Rashish <coypu@sdf.org>
4834 * config.gcc (*-*-netbsd*): Add netbsd-d.o.
4835 * config/netbsd-d.c: New file.
4836 * config/t-netbsd: Add netbsd-d.o
4838 2018-02-14 Steve Ellcey <sellcey@marvell.com>
4840 * config/aarch64/aarch64.c (aarch64_attribute_table): Change
4841 affects_type_identity to true for aarch64_vector_pcs.
4842 (aarch64_comp_type_attributes): New function.
4843 (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
4845 2019-02-14 Tamar Christina <tamar.christina@arm.com>
4848 * config/arm/iterators.md (ANY64): Add V4HF.
4850 2019-02-14 Martin Liska <mliska@suse.cz>
4852 PR rtl-optimization/89242
4853 * dce.c (delete_unmarked_insns): Call free_dominance_info we
4854 process a transformation.
4856 2019-02-14 Jakub Jelinek <jakub@redhat.com>
4858 PR tree-optimization/89314
4859 * fold-const.c (fold_binary_loc): Cast strlen argument to
4860 const char * before dereferencing it. Formatting fixes.
4863 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
4865 2019-02-13 Ian Lance Taylor <iant@golang.org>
4867 * optc-save-gen.awk: Set var_opt_hash for initial optimizations
4868 and set current index for other optimizations.
4870 2019-02-13 Uroš Bizjak <ubizjak@gmail.com>
4872 * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
4873 nonimmediate_operand as operand 2 predicate.
4874 (vec_set<VF2_512_256:mode>_0): Ditto.
4875 (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
4876 (*vec_concatv2si): Remove alternative 2.
4877 (*vec_concatv4si_0): Use vm constraint for alternative 0.
4878 (*vec_concatv4si_0): Remove preferred_for_speed attribute.
4879 (vec_concatv2di): Split alternatives 4,5,6 to ...
4880 (*vec_concatv2di_0) ... new pattern.
4882 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com>
4885 * config/arm/arm.c (ldm_stm_operation_p) Set
4886 addr_reg_in_reglist correctly for first register.
4887 (load_multiple_sequence): Remove dead base check.
4888 (gen_ldm_seq): Correctly set write_back for Thumb-1.
4890 2019-02-13 Tamar Christina <tamar.christina@arm.com>
4893 * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
4894 Expose as @aarch64_pred_mov.
4895 * config/aarch64/aarch64.c (aarch64_classify_address):
4896 Use expand_insn which legitimizes operands.
4898 2019-02-13 Martin Liska <mliska@suse.cz>
4900 * builtins.h (expand_builtin_with_bounds): Remove declaration.
4901 * calls.c (struct arg_data): Remove special_slot, pointer_arg
4902 and pointer_offset fields.
4903 (initialize_argument_information): Remove usage of dead
4905 * cgraph.h (struct cgraph_thunk_info): Remove
4906 add_pointer_bounds_args.
4907 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
4909 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
4911 * config/i386/i386.c (ix86_function_arg_advance): Remove
4913 (struct builtin_isa): Remove leaf_p and nothrow_p fields.
4914 (def_builtin): Remove usage of dead
4916 (ix86_add_new_builtins): Likewise.
4917 * ipa-fnsummary.c (compute_fn_summary): Likewise.
4918 * ipa-icf.c (sem_function::equals_wpa): Likewise.
4919 (sem_function::init): Likewise.
4920 (sem_variable::merge): Likewise.
4921 * ipa-visibility.c (function_and_variable_visibility): Likewise.
4922 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
4923 * lto-cgraph.c (lto_output_node): Likewise.
4924 (lto_output_varpool_node): Likewise.
4925 (input_node): Likewise.
4926 (input_varpool_node): Likewise.
4927 * lto-streamer-out.c (lto_output): Likewise.
4928 * tree-inline.c (expand_call_inline): Remove usage of
4930 * tree-inline.h (struct copy_body_data): Likewise.
4931 * varpool.c (varpool_node::dump): Likewise.
4933 2019-02-13 Jakub Jelinek <jakub@redhat.com>
4936 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
4937 into pt->vars_contains_escaped_heap instead of setting
4938 pt->vars_contains_escaped_heap to it.
4941 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
4942 INTVAL (size), compare it to GET_MODE_MASK instead of
4943 1 << GET_MODE_BITSIZE.
4946 * config/i386/predicates.md (x86_64_immediate_operand): Allow
4947 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
4950 2019-02-13 Martin Liska <mliska@suse.cz>
4953 * cfgrtl.c (remove_barriers_from_footer): New function.
4954 (try_redirect_by_replacing_jump): Use it.
4955 (cfg_layout_redirect_edge_and_branch): Likewise.
4957 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
4959 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
4960 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
4961 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
4962 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
4963 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
4964 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
4966 * config/rs6000/rs6000.c (builtin_function_type)
4967 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
4968 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
4969 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
4970 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
4971 vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
4973 2019-02-12 Pat Haugen <pthaugen@us.ibm.com>
4975 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
4976 -maltivec. Delete -maltivec=be and -maltivec=le documentation.
4978 2019-02-12 H.J. Lu <hongjiu.lu@intel.com>
4981 * config/i386/i386.md (*movoi_internal_avx): Revert revision
4982 268678 and revision 268657.
4983 (*movti_internal): Likewise.
4985 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com>
4988 * config/s390/s390.c (s390_decompose_address): Update comment.
4989 (s390_check_qrst_address): Reject invalid address forms after
4992 2019-02-12 Martin Liska <mliska@suse.cz>
4995 * ipa-pure-const.c (propagate_pure_const): Revert hunk as
4996 we need default values of funct_state for a function that
4999 2019-02-12 Eric Botcazou <ebotcazou@adacore.com>
5001 * asan.c (asan_expand_mark_ifn): Take into account the alignment of
5002 the object to pick the size of stores on strict-alignment platforms.
5004 * config/sparc/sparc.md (*movsi_insn): Minor tweak.
5005 (*movdi_insn_sp32): Likewise.
5006 (*movdi_insn_sp64): Likewise.
5008 2019-02-12 Jan Hubicka <hubicka@ucw.cz>
5011 * cgraphunit.c (analyze_functions): Clear READONLY flag for external
5012 types that needs constructiong.
5013 * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
5015 2019-02-12 Richard Biener <rguenther@suse.de>
5017 PR tree-optimization/89253
5018 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
5021 2019-02-11 David Malcolm <dmalcolm@redhat.com>
5024 * input.c (selftest::test_line_offset_overflow): New selftest.
5025 (selftest::input_c_tests): Call it.
5027 2019-02-11 Martin Sebor <msebor@redhat.com>
5029 PR tree-optimization/88771
5030 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
5031 when -Wstringop-overflow is set.
5032 (builtin_memref::builtin_memref): Adjust excessive upper bound
5033 only when lower bound is not excessive.
5034 (maybe_diag_overlap): Detect and diagnose excessive bounds via
5035 -Wstringop-ovefflow.
5036 (maybe_diag_offset_bounds): Rename...
5037 (maybe_diag_access_bounds): ...to this.
5038 (check_bounds_or_overlap): Adjust for name change above.
5040 2019-02-11 Martin Sebor <msebor@redhat.com>
5043 * builtins.c (max_object_size): Move from here...
5044 * builtins.h (max_object_size): ...and here...
5045 * tree.c (max_object_size): ...to here...
5046 * tree.h (max_object_size): ...and here.
5048 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com>
5050 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
5051 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
5052 for correct semantics.
5054 2019-02-11 Alan Modra <amodra@gmail.com>
5056 * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
5057 -mlongcall and -mpltseq.
5058 (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
5059 (RS/6000 and PowerPC Options <-mpltseq>): Document.
5060 * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
5061 * config/rs6000/sysv4.opt (mpltseq): New option.
5062 * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
5063 (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
5064 support is lacking. Don't allow -mpltseq with -mbss-plt.
5065 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
5066 -mpltseq given for ELFv1.
5067 * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
5068 Only use UNSPEC_PLTSEQ for inline PLT calls.
5069 (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only
5070 use UNSPEC_PLTSEQ for inline PLT calls.
5071 (rs6000_indirect_call_template_1, rs6000_longcall_ref),
5072 (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
5073 uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
5074 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
5075 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
5076 (pltseq_mtctr_<mode>): Likewise.
5078 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5080 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
5082 * configure: Regenerate.
5084 2019-02-11 Jakub Jelinek <jakub@redhat.com>
5087 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
5090 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
5092 * function.c (assign_parm_setup_block): Use the stored
5093 size, not the passed size, when allocating stack-space,
5094 also for a parameter with alignment larger than
5095 MAX_SUPPORTED_STACK_ALIGNMENT.
5097 2019-02-11 Martin Liska <mliska@suse.cz>
5100 * ipa-cp.c (build_toporder_info): Remove usage of a param.
5101 * ipa-inline.c (inline_small_functions): Likewise.
5102 * ipa-pure-const.c (propagate_pure_const): Likewise.
5103 (propagate_nothrow): Likewise.
5104 * ipa-reference.c (propagate): Likewise.
5105 * ipa-utils.c (struct searchc_env): Remove unused field.
5106 (searchc): Always search across AVAIL_INTERPOSABLE.
5107 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
5108 the only called IPA pure const can properly not propagate
5109 across interposable boundary.
5110 * ipa-utils.h (ipa_reduced_postorder): Remove param.
5112 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com>
5114 * config/nds32/nds32.md (call_internal, call_value_internal,
5115 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
5117 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
5119 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
5122 2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
5124 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
5127 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
5129 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
5131 2019-02-10 Jakub Jelinek <jakub@redhat.com>
5133 PR tree-optimization/89268
5134 * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
5135 if preds is non-NULL.
5137 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
5140 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
5143 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
5145 * config/nds32/nds32.md (trap): New pattern.
5147 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
5149 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
5152 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
5154 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
5157 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
5159 * ipa-visibility.c (localize_node): Also do not localize
5160 LDPR_PREVAILING_DEF_IRONLY_EXP.
5162 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
5165 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
5166 instead of type_with_linkage.
5168 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
5171 * params.def (uninlined-function-insns, uninlined-function-time,
5172 uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
5173 bound so we don't get overflows.
5175 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
5177 * config/rs6000/rs6000-string.c (expand_compare_loop,
5178 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
5181 2019-02-09 Jakub Jelinek <jakub@redhat.com>
5184 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
5185 If !node->definition and TYPE_ARG_TYPES is non-NULL, use
5186 TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
5188 2019-02-09 Alan Modra <amodra@gmail.com>
5191 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
5192 case. Match logic in rs6000_emit_prologue emitting pic_offset_table
5195 2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
5198 * lra-constraints.c (process_alt_operands): Don't increase reject
5199 for memory when offset memory is required.
5201 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
5203 * config/s390/vector.md: Implement vector copysign.
5205 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
5207 * expr.c (expand_constructor): Correct indentations.
5209 2019-02-08 Richard Biener <rguenther@suse.de>
5211 PR tree-optimization/89247
5212 * tree-if-conv.c: Include tree-cfgcleanup.h.
5213 (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
5214 (tree_if_conversion): Pass through predicate vector.
5215 (pass_if_conversion::execute): Do CFG cleanup and SSA update
5216 inline, see if any if-converted loops we refrece in
5217 LOOP_VECTORIZED calls vanished and fixup.
5218 * tree-if-conv.h (tree_if_conversion): Adjust prototype.
5220 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
5222 * config/s390/constraints.md (jdd): New constraint.
5224 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
5227 * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
5228 upper 16 vector registers without TARGET_AVX512VL.
5229 (*movti_internal): Likewise.
5231 2019-02-08 Jakub Jelinek <jakub@redhat.com>
5233 PR rtl-optimization/89234
5234 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
5235 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
5236 (copy_reg_eh_region_note_backward): Likewise.
5238 2019-02-08 Richard Biener <rguenther@suse.de>
5241 * tree-data-ref.c (initialize_matrix_A): Fail if constant
5243 (analyze_subscript_affine_affine): Handle failure from
5244 initialize_matrix_A.
5246 2019-02-08 Jakub Jelinek <jakub@redhat.com>
5248 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
5251 2019-02-07 David Malcolm <dmalcolm@redhat.com>
5253 PR tree-optimization/86637
5254 PR tree-optimization/89235
5255 * tree-vect-loop.c (optimize_mask_stores): Add an
5256 auto_purge_vect_location sentinel to ensure that vect_location is
5259 (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
5260 (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
5261 to ensure that vect_location is purged on exit.
5262 (pass_slp_vectorize::execute): Likewise, replacing the manual
5264 * tree-vectorizer.h (class auto_purge_vect_location): New class.
5266 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5268 * config/aarch64/iterators.md (max_opp): New code_attr.
5269 (USMAX): New code iterator.
5270 * config/aarch64/predicates.md (aarch64_smin): New predicate.
5271 (aarch64_smax): Likewise.
5272 * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
5273 (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
5276 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
5279 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
5280 for TARGET_AVX512VL.
5281 (*movti_internal): Set mode to TI for TARGET_AVX512VL.
5283 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
5285 * config/s390/s390-builtin-types.def: Add new types.
5286 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
5287 (s390_vec_xlw4): Make the memory operand into a const pointer.
5288 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
5290 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
5291 a new vector type with the alignment of the scalar memory operand.
5293 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
5294 Jakub Jelinek <jakub@redhat.com>
5297 * config/arm/arm-protos.h (valid_operands_ldrd_strd,
5298 arm_count_ldrdstrd_insns): New declarations.
5299 * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
5301 (valid_operands_ldrd_strd): New function.
5302 (arm_count_ldrdstrd_insns): New function.
5303 * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
5304 sets instead of single DImode set and define new insns to match this.
5306 2019-02-07 Tamar Christina <tamar.christina@arm.com>
5308 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
5309 Make it a C initializer.
5311 2019-02-07 Tamar Christina <tamar.christina@arm.com>
5314 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
5316 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5318 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
5319 Use neon_dot<q> for type.
5320 (neon_<sup>dot_lane<vsi2qi>): Likewise.
5322 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5324 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
5325 Use neon_dot<q> for type.
5326 (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
5327 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
5329 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
5331 PR rtl-optimization/89225
5332 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
5335 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
5337 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
5338 after restoring registers saved to allocate the frame on Windows.
5340 2019-02-06 Richard Biener <rguenther@suse.de>
5342 PR tree-optimization/89182
5343 * graphite.h (cached_scalar_evolution_in_region): Declare.
5344 * graphite.c (struct seir_cache_key): New.
5345 (struct sese_scev_hash): Likewise.
5346 (seir_cache): New global.
5347 (cached_scalar_evolution_in_region): New function.
5348 (graphite_transform_loops): Allocate and release seir_cache.
5349 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
5350 cached_scalar_evolution_in_region.
5351 * graphite-scop-detection.c (scop_detection::can_represent_loop):
5353 (scop_detection::graphite_can_represent_expr: Use
5354 cached_scalar_evolution_in_region.
5355 (scop_detection::stmt_simple_for_scop_p): Likewise.
5356 (find_params_in_bb): Likewise.
5357 (gather_bbs::before_dom_children): Likewise.
5358 * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
5359 (add_loop_constraints): Likewise.
5361 2019-02-06 Jakub Jelinek <jakub@redhat.com>
5364 * fold-const-call.c (fold_const_vec_convert): Pass true as last
5365 operand to new_unary_operation only if both element types are integral
5366 and it isn't a widening conversion. Return NULL_TREE if
5367 new_unary_operation failed.
5369 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
5372 * config/s390/s390.md: Remove load and test FP splitter.
5374 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
5377 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
5378 expand_compare_loop, expand_block_compare_gpr,
5379 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
5380 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
5381 #include "profile-count.h" and "predict.h" for types and functions
5382 needed to work with REG_BR_PROB notes.
5384 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
5387 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
5388 for the long branch case.
5390 2019-02-05 Jakub Jelinek <jakub@redhat.com>
5393 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
5394 can throw, non-call exceptions are enabled and we can't delete
5395 dead exceptions or alter cfg. Set must_clean if
5396 delete_insn_and_edges returns true, don't set it blindly for calls.
5397 Assert that delete_unreachable_blocks is called only if can_alter_cfg.
5399 PR rtl-optimization/89195
5400 * combine.c (make_extraction): For MEMs, don't extract bytes outside
5401 of the original MEM.
5403 2019-02-05 Martin Liska <mliska@suse.cz>
5405 PR gcov-profile/89000
5406 * gcov.c (function_summary): Remove argument.
5407 (file_summary): New function.
5408 (print_usage): Replace tabs with spaces.
5409 (generate_results): Use new function file_summary.
5411 2019-02-05 Jakub Jelinek <jakub@redhat.com>
5414 * optabs.c (prepare_cmp_insn): Pass x and y to
5415 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
5417 2019-02-05 Richard Biener <rguenther@suse.de>
5420 * bitmap.h (struct bitmap_obstack): Do not mark GTY.
5421 (struct bitmap_element): Drop chain_prev so we properly recurse on
5422 the prev member, supporting tree views.
5423 (struct bitmap_head): GTY skip the obstack member.
5425 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
5428 * doc/extend.texi (Vector Extensions): Add an example of using vector
5429 types together with x86 intrinsics.
5431 2019-02-04 Alan Modra <amodra@gmail.com>
5433 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
5434 str[] size to 160, and comment.
5436 2019-02-04 Alan Modra <amodra@gmail.com>
5438 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
5439 (rs6000_pltseq_template): Guard output of TLS markers with
5441 (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
5442 (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
5443 to use inline PLT sequences.
5444 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
5445 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
5446 (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
5448 2019-02-04 Martin Liska <mliska@suse.cz>
5451 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
5452 out when ipa_fn_summaries does not contain entry for callee.
5454 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
5456 * config/sparc/sparc.h: Remove superfluous blank lines.
5457 * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
5458 (got_register_rtx): ...this.
5459 (sparc_got): Adjust to above renaming.
5460 (sparc_tls_got): Likewise.
5461 (sparc_delegitimize_address): Likewise.
5462 (sparc_output_mi_thunk): Likewise.
5463 (sparc_init_pic_reg): Likewise.
5464 (save_local_or_in_reg_p): Fix test on the GOT register.
5465 (USE_HIDDEN_LINKONCE): Move around.
5466 (get_pc_thunk_name): Likewise.
5467 (gen_load_pcrel_sym): Likewise.
5468 (load_got_register): Likewise.
5470 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
5472 * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
5473 of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
5475 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
5477 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
5480 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
5482 * config.gcc (with_nds32_lib, glibc):
5483 Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
5484 * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
5485 (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
5487 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
5490 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
5491 Do not prefer (v,v) alternative for non-AVX targets and (m,v)
5492 alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
5493 (*rcpsf2_sse): Ditto.
5494 (*rsqrtsf2_sse): Ditto.
5495 (sse4_1_round<mode<2): Ditto.
5497 2019-02-03 Richard Biener <rguenther@suse.de>
5500 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
5503 2019-02-02 Jakub Jelinek <jakub@redhat.com>
5506 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
5507 Punt with warning on aggregate return or argument types. Ignore
5508 type/mode checking for uniform arguments.
5510 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
5512 * combine.c (try_combine): Do not print "Can't combine" messages unless
5513 printing failed combination attempts.
5515 2019-02-01 Martin Jambor <mjambor@suse.cz>
5518 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
5519 segment and global segment variables before making them static.
5521 2019-02-01 Martin Jambor <mjambor@suse.cz>
5523 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
5524 missed optimization dump with dump_enabled_p.
5526 2019-02-01 Richard Biener <rguenther@suse.de>
5529 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
5530 the instantiate cache.
5531 (instantiate_scev_binary): Elide second operand procesing
5532 if equal to the first.
5533 * tree-chrec.c (chrec_contains_symbols): Add visited set.
5534 (chrec_contains_undetermined): Likewise.
5535 (tree_contains_chrecs): Likewise.
5537 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
5539 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
5541 2019-02-01 Jakub Jelinek <jakub@redhat.com>
5543 PR tree-optimization/89143
5544 * wide-int-range.h (wide_int_range_absu): Declare.
5545 * wide-int-range.cc (wide_int_range_absu): New function.
5546 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
5548 PR tree-optimization/88107
5549 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
5550 instead of assertion that eh_region_outermost is non-NULL, if it
5551 is NULL, set *ALL to true and return NULL.
5552 (move_sese_region_to_fn): Adjust caller, if all is set, call
5553 duplicate_eh_regions with NULL region.
5555 2019-02-01 Richard Biener <rguenth@suse.de>
5557 PR rtl-optimization/88593
5558 * mode-switching.c (optimize_mode_switching): Free dominators before
5559 calling cleanup_cfg.
5561 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
5563 PR tree-optimization/88932
5564 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
5566 2019-01-31 Jakub Jelinek <jakub@redhat.com>
5569 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
5570 bogus clang warning.
5572 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
5575 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
5576 alternative to avoid partial SSE register stall for TARGET_AVX.
5577 (truncdfsf2): Ditto.
5578 (sse4_1_round<mode>2): Ditto.
5580 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
5582 PR tree-optimization/89008
5583 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
5584 process anything of the form X * 0.
5586 2019-01-31 Richard Biener <rguenther@suse.de>
5588 PR tree-optimization/89135
5589 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
5590 with abnormal preds.
5592 2019-01-31 Jakub Jelinek <jakub@redhat.com>
5595 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
5596 always_inline callees into no_sanitize_address callers.
5598 2019-01-31 Richard Biener <rguenther@suse.de>
5600 PR rtl-optimization/89115
5601 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
5603 2019-01-30 Martin Sebor <msebor@redhat.com>
5606 * doc/extend.texi (cast to a union): Correct and expand.
5608 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
5610 PR rtl-optimization/87246
5611 * lra-constraints.c (simplify_operand_subreg): Reload memory
5612 in subreg if the address became invalid.
5614 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
5617 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
5618 Disable for little-endian.
5620 2019-01-30 Richard Biener <rguenther@suse.de>
5622 PR rtl-optimization/89115
5623 * opts.c (default_options_optimization): Reduce
5624 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
5625 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
5628 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
5630 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
5631 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
5632 type of vector element when vec_extract is implemented by direct
5635 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
5637 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
5639 2019-01-30 Richard Biener <rguenther@suse.de>
5641 PR tree-optimization/89111
5642 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
5643 canonicalization to appropriately sized access types.
5645 2019-01-30 Jakub Jelinek <jakub@redhat.com>
5648 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
5649 for arguments to functions that are TU-local and shouldn't be
5650 referenced by assembly.
5652 2019-01-30 Ulrich Drepper <drepper@redhat.com>
5654 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
5657 2019-01-29 Martin Sebor <msebor@redhat.com>
5660 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
5662 2019-01-29 Jakub Jelinek <jakub@redhat.com>
5666 * omp-simd-clone.c (simd_clone_clauses_extract)
5667 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
5668 OMP_CLAUSE_ALIGNED_ALIGNMENT.
5670 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
5672 * config.gcc: Force .init_array for ARC.
5674 2019-01-29 Richard Biener <rguenther@suse.de>
5677 * dwarf2out.c (collect_skeleton_dies): New helper.
5678 (copy_decls_for_unworthy_types): Call it.
5679 (build_abbrev_table): Assert we do not try to replace
5680 DW_AT_signature refs with local refs.
5682 2019-01-28 Jakub Jelinek <jakub@redhat.com>
5685 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
5686 for lastprivate/linear IV, push gimplify context around gimplify_assign
5687 and, if it needed any temporaries, pop it into a gimple bind around the
5690 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
5692 * common.opt (-Wattribute-alias): Remove "no-" from name.
5693 Make -Wattribute-alias command line option and
5694 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
5696 2019-01-28 Jakub Jelinek <jakub@redhat.com>
5699 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
5700 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
5702 (bmi2): Add missing @opindex.
5703 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
5704 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
5705 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
5706 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
5707 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
5708 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
5709 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
5710 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
5711 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
5712 xsavec, xsaveopt and xsaves options.
5714 2019-01-28 Richard Biener <rguenther@suse.de>
5717 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
5720 2019-01-28 Richard Biener <rguenther@suse.de>
5722 PR tree-optimization/88739
5723 * tree-cfg.c (verify_types_in_gimple_reference): Verify
5724 BIT_FIELD_REFs only are applied to mode-precision operands
5725 when they are integral.
5726 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
5727 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
5728 BIT_FIELD_REFs of non-mode-precision integral operands.
5730 2019-01-27 Jakub Jelinek <jakub@redhat.com>
5733 * config/i386/sse.md
5734 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
5735 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
5736 first constants in pairs are multiples of 2. Formatting fixes.
5737 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
5738 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
5739 first constants in each quadruple are multiples of 4. Formatting fixes.
5741 2019-01-26 Martin Jambor <mjambor@suse.cz>
5744 * tree-inline.c: Include tree-cfgcleanup.h.
5745 (delete_unreachable_blocks_update_callgraph): Move...
5746 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
5747 ...here, make externally visible, make second argument bool, adjust
5749 * tree-cfgcleanup.c: Include cgraph.h.
5750 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
5752 * ipa-prop.c: Include tree-cfgcleanup.h.
5753 (ipcp_transform_function): Call
5754 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
5756 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
5758 PR rtl-optimization/88846
5759 * ira.c (process_set_for_memref_referenced_p): New.
5760 (memref_referenced_p): Add new param. Use
5761 process_set_for_memref_referenced_p. Add new switch cases.
5762 (memref_used_between_p): Pass new arg to memref_referenced_p.
5764 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
5767 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
5768 argument ABI_BREAK. Set to true if the calculated alignment has
5769 changed in gcc-9. Check bit-fields for their base type alignment.
5770 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
5771 (aarch64_function_arg_boundary): Likewise.
5772 (aarch64_gimplify_va_arg_expr): Likewise.
5774 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
5777 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
5778 instead of accessing TREE_INT_CST_ELT directly.
5780 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
5782 * doc/sourcebuild.texi (Environment attributes): Add fenv and
5783 fenv_exceptions description.
5785 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
5787 PR rtl-optimization/87763
5788 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
5789 Allow SUBREG when matching CC_NZmode compare.
5791 2019-01-25 Richard Biener <rguenther@suse.de>
5793 PR tree-optimization/89049
5794 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
5795 Look at the pattern stmt to determine if the stmt is vectorized.
5797 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
5799 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
5800 (pred_mov<mode>): Handle all-register forms using both a new
5801 alternative and a split.
5803 2019-01-25 Richard Biener <rguenther@suse.de>
5805 PR tree-optimization/86865
5806 * graphite-scop-detection.c (scop_detection::can_represent_loop):
5807 Reject non-do-while loops.
5809 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
5811 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
5812 * config/rs6000/constraints.md (Q constraint): Use REG_P.
5813 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
5814 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
5815 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
5816 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
5817 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
5818 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
5819 vlogical_operand, gpc_reg_operand, int_reg_operand,
5820 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
5821 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
5822 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
5823 (save_world_operation, restore_world_operation, lmw_operation,
5824 stmw_operation): Use MEM_P and REG_P.
5825 (tie_operand): Use MEM_P.
5826 (vrsave_operation, crsave_operation): Use REG_P.
5827 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
5828 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
5829 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
5830 (call_operand): Use HARD_REGISTER_P.
5831 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
5833 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
5834 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
5835 quad_aligned_load_p, replace_swapped_aligned_store,
5836 recombine_lvx_pattern, replace_swapped_aligned_load,
5837 recombine_stvx_pattern): Use MEM_P.
5838 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
5839 Use MEM_P and SYMBOL_REF_P.
5840 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
5841 (insn_is_swappable_p): Use REG_P and MEM_P.
5842 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
5843 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
5845 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
5847 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
5849 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
5850 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
5851 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
5852 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
5854 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
5855 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
5856 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
5857 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
5858 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
5859 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
5860 rs6000_split_logical_di): Use CONST_INT_P.
5861 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
5862 REG_P and SYMBOL_REF_P.
5863 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
5864 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
5865 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
5866 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
5867 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
5868 (small_data_operand, print_operand_address): Use CONST_INT_P and
5870 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
5871 (rs6000_init_hard_regno_mode_ok, direct_move_p):
5872 Use HARD_REGISTER_NUM_P.
5873 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
5874 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
5875 SUBREG_P and SYMBOL_REF_P.
5876 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
5877 and HARD_REGISTER_NUM_P.
5878 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
5880 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
5881 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
5883 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
5884 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
5885 find_addr_reg): Use REG_P.
5886 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
5887 (rs6000_emit_le_vsx_move): Use SUBREG_P.
5888 (offsettable_ok_by_alignment, constant_pool_expr_p,
5889 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
5890 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
5891 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
5892 rs6000_assemble_integer, create_TOC_reference,
5893 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
5894 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
5895 (rs6000_split_vec_extract_var): Use reg_or_subregno.
5896 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
5897 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
5898 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
5899 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
5900 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
5901 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
5902 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
5903 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
5904 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
5905 and cbranch<mode>4): Use CONST_INT_P.
5906 (multiple define_splits): Use REG_P and SUBREG_P.
5907 (define_expands call, call_value): Use MEM_P.
5908 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
5909 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
5910 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
5911 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
5912 and HARD_REGISTER_NUM_P.
5913 (multiple define_splits): Use HARD_REGISTER_NUM_P.
5915 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
5917 PR rtl-optimization/88948
5918 * rtl.h (prepare_copy_insn): New prototype.
5919 * gcse.c (prepare_copy_insn): New function, split out from
5920 process_insert_insn.
5921 (process_insert_insn): Use prepare_copy_insn.
5922 * store-motion.c (replace_store_insn): Use prepare_copy_insn
5923 instead of gen_move_insn.
5925 2019-01-24 Jakub Jelinek <jakub@redhat.com>
5928 * config/i386/i386.c (ix86_pic_register_p): Return true for
5931 PR tree-optimization/88964
5932 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
5933 punt if HONOR_SNANS (chrec).
5936 * tree-nested.c (convert_nonlocal_reference_stmt,
5937 convert_local_reference_stmt, convert_tramp_reference_stmt,
5938 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
5939 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
5942 PR tree-optimization/89027
5943 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
5944 for "omp simd array" variables.
5946 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
5949 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
5950 force the alignment of m_val.
5952 2019-01-24 Richard Biener <rguenther@suse.de>
5955 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
5956 When in "legacy" debug mode make sure to reset self-origins.
5958 2019-01-24 Martin Liska <mliska@suse.cz>
5960 PR gcov-profile/88994
5961 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
5962 result will be always smaller or equal to the original.
5963 * gcov.c (mangle_name): Fix else branch where we should
5964 also copy to PTR and shift the pointer.
5966 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
5968 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
5969 * vr-values.c (find_case_label_ranges): Fix a comment typo.
5971 2019-01-23 Bin Cheng <bin.cheng@arm.com>
5972 Steve Ellcey <sellcey@marvell.com>
5975 * recog.c (address_operand): Return false on wrong mode for address.
5976 (constrain_operands): Check for mode with 'p' constraint.
5978 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
5981 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
5982 Disparage MMX alternative.
5983 (sse2_cvtpd2pi): Ditto.
5984 (sse2_cvttpd2pi): Ditto.
5986 2019-01-23 David Malcolm <dmalcolm@redhat.com>
5989 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
5990 use-after-free of the result of
5991 aarch64_get_extension_string_for_isa_flags.
5993 2019-01-23 Jakub Jelinek <jakub@redhat.com>
5996 * doc/extend.texi: Document break and continue behavior in
5997 statement expressions.
5999 2019-01-23 Richard Biener <rguenther@suse.de>
6001 PR tree-optimization/89008
6002 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
6003 not leave another stray operand.
6005 2019-01-23 Jakub Jelinek <jakub@redhat.com>
6007 * BASE-VER: Bump to 9.0.1.
6009 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
6011 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
6012 thunk that returns by reference, use the type of the return object
6013 of the thunk instead of that of the alias to build the dereference.
6015 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
6017 * config/arc/atomic.md: Add operand to DMB instruction.
6019 2019-01-23 Jakub Jelinek <jakub@redhat.com>
6021 PR tree-optimization/88964
6022 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
6023 build_zero_cst instead of build_int_cst. Return false for loop
6024 invariants which honor signed zeros.
6026 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
6028 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
6030 2019-01-22 Jakub Jelinek <jakub@redhat.com>
6033 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
6034 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
6035 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
6038 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
6039 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
6042 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
6043 Disable for little endian.
6045 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
6048 * config/arm/arm.c (arm_needs_double_word_align): Check
6049 DECL_BIT_FIELD_TYPE.
6051 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
6052 H.J. Lu <hongjiu.lu@intel.com>
6055 * config/i386/i386-builtin.def: Add mask2 to all builtin
6056 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
6058 * config/i386/i386.c (BDESC): Add mask2 to the definition.
6059 (BDESC_FIRST): Likewise.
6060 (define_builtin): Add an argument for mask2. Updated to handle
6061 both ix86_isa_flags and ix86_isa_flags2.
6062 (define_builtin_const): Likewise.
6063 (define_builtin_pure): Likewise.
6064 (define_builtin2): Deleted.
6065 (define_builtin_const2): Likewise.
6066 (builtin_description): Add a member, mask2.
6067 (bdesc_*): Add mask2 to builtin initializations.
6068 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
6069 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
6071 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
6073 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
6076 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
6079 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
6082 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
6083 alignment is dominated by a bitfield with 64-bit aligned base type.
6084 (arm_function_arg): Emit a warning if the alignment has changed since
6085 earlier GCC releases.
6086 (arm_function_arg_boundary): Likewise.
6087 (arm_setup_incoming_varargs): Likewise.
6089 2019-01-22 Richard Biener <rguenther@suse.de>
6091 PR tree-optimization/88862
6092 * graphite-scop-detection.c
6093 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
6095 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
6097 * doc/extend.tex (AMD GCN Function Attributes): New section.
6098 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
6099 * doc/invoke.texi (AMD GCN Options): New section.
6100 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
6102 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
6104 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
6105 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
6107 2019-01-22 Jakub Jelinek <jakub@redhat.com>
6109 PR tree-optimization/88044
6110 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
6111 is false in the first iteration, but !every_iteration, return false
6112 instead of true with niter->niter zero.
6114 PR rtl-optimization/88904
6115 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
6116 any nonequal registers before processing BB_END (b).
6119 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
6121 (expand_binop_directly, expand_doubleword_clz,
6122 expand_doubleword_popcount, expand_ctz, expand_ffs,
6123 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
6125 PR rtl-optimization/49429
6127 PR rtl-optimization/86334
6129 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
6130 addressable from here...
6131 (emit_block_op_via_libcall): ... to here.
6133 2019-01-22 Richard Biener <rguenther@suse.de>
6135 * tree-vect-loop.c (vect_analyze_loop_operations): Use
6136 auto_vec for cost vector to fix memleak.
6137 (vectorize_fold_left_reduction): Properly gather SLP defs.
6138 (vectorizable_comparison): Do not swap operands to properly
6141 2019-01-22 Alan Modra <amodra@gmail.com>
6144 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
6145 stays a reg. Allow a const_int.
6146 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
6147 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
6148 (IS_NOMARK_TLSGETADDR): Define.
6149 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
6150 (rs6000_output_tlsargs): New function.
6151 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
6152 __tls_get_addr call takes an arg.
6153 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
6154 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
6156 (call_value_nonlocal_sysv): ..or here, delete split.
6157 (tls_gdld_nomark): Delete.
6158 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
6159 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
6160 (call_value_nonlocal_sysv): Likewise.
6161 (call_value_nonlocal_sysv_secure): Likewise.
6162 (call_value_nonlocal_aix): Likewise.
6163 (call_value_indirect_aix): Likewise.
6164 (call_value_indirect_elfv2): Likewise.
6165 (call_value_local32, call_value_local64): Disable for no-mark tls.
6166 (call_value_local_aix): Likewise.
6168 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
6171 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
6172 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
6174 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
6176 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
6177 string contents as hash_map keys.
6179 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
6182 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
6183 for rvalue context. Handle rvalues correctly. Use min_align_of_type
6184 instead of TYPE_ALIGN.
6185 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
6186 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
6187 pointer from TYPE_STUB_DECL.
6189 2019-01-21 Richard Biener <rguenther@suse.de>
6191 PR tree-optimization/88934
6192 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
6193 at the possibly non-constant operand.
6194 (vect_get_constant_vectors): Adjust.
6196 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
6199 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
6200 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
6201 instead of _X86INTRIN_H_INCLUDED.
6202 * onfig/i386/clwbintrin.h: Likewise.
6203 * config/i386/pkuintrin.h: Likewise.
6204 * config/i386/prfchwintrin.h: Likewise.
6205 * config/i386/rdseedintrin.h: Likewise.
6206 * config/i386/wbnoinvdintrin.h: Likewise.
6207 * config/i386/xsavecintrin.h: Likewise.
6208 * config/i386/xsavesintrin.h: Likewise.
6209 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
6210 * config/i386/xsaveintrin.h: Likewise.
6211 * config/i386/xsaveoptintrin.h: Likewise.
6212 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
6213 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
6214 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
6215 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
6216 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
6217 * config/i386/immintrin.h: Here.
6219 2019-01-20 Martin Jambor <mjambor@suse.cz>
6222 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
6223 with aa_walk_budget.
6224 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
6225 aa_walk_budget_p parameter.
6226 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
6227 walk. Updated all callers.
6228 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
6229 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
6231 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
6232 parameter info. Extract info from fbi. Pass fbi to recursive calls
6233 and to unmodified_parm.
6234 (phi_result_unknown_predicate): New parameter fbi, removed parameter
6235 info, updated call to will_be_nonconstant_expr_predicate.
6236 (param_change_prob): New parameter fbi, limit AA walking.
6237 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
6238 calls to various above functions.
6239 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
6240 parameter. Use it to limit AA walking.
6241 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
6243 (detect_type_change): New parameter fbi, pass it on to
6244 detect_type_change_from_memory_writes.
6245 (detect_type_change_ssa): Likewise.
6246 (aa_overwalked): Removed.
6247 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
6248 accordingly, adjust to the neew AA limiting scheme.
6249 (parm_ref_data_preserved_p): Likewise.
6250 (ipa_compute_jump_functions_for_edge): Adjust call to
6252 (ipa_analyze_call_uses): Likewise.
6253 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
6254 (ipa_analyze_node): Initialize aa_walk_budget.
6255 (ipcp_transform_function): Likewise.
6256 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
6257 to get_dynamic_type.
6259 2019-01-19 Jakub Jelinek <jakub@redhat.com>
6261 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
6262 outside of #if CHECKING_P code.
6264 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
6266 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
6267 New function, split out from...
6268 (loop_versioning::analyze_stride): ...here.
6269 (loop_versioning::find_per_loop_multiplication): Use gassign.
6270 (loop_versioning::analyze_term_using_scevs): Return a success code.
6271 (loop_versioning::analyze_arbitrary_term): New function.
6272 (loop_versioning::analyze_address_fragment): Use
6273 analyze_arbitrary_term if all else fails.
6275 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
6278 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
6281 2019-01-18 Richard Biener <rguenther@suse.de>
6283 PR tree-optimization/88903
6284 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
6285 scalar stmts a SLP shift amount is composed of when detecting
6288 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
6291 * config/arm/arm-cpus.in (mp): New feature.
6293 (fgroup ARMv7ve): Add mp and sec features.
6294 (arch armv7-a): Add options to allow mp and sec extensions.
6295 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
6296 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
6297 extenstions to the base architecture.
6298 (cpu cortex-a8): Add sec extension to the base architecture.
6299 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
6300 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
6301 variants down to the base v7-a varaint.
6302 * config/arm/t-multilib (v7_a_arch_variants): New variable.
6303 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
6304 of permitted extensions for -march=armv7-a and for
6305 -mcpu=generic-armv7-a.
6307 2019-01-18 Martin Liska <mliska@suse.cz>
6309 * params.def: Fix comment.
6310 * tree-profile.c (gimple_init_gcov_profiler): Bump function
6312 (gimple_gen_ic_func_profiler): Likewise.
6314 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6316 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
6317 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
6318 and put in error checks for stack protector guard options.
6319 (aarch64_stack_protect_guard): New.
6320 (TARGET_STACK_PROTECT_GUARD): Define.
6321 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
6322 (reg_stack_protect_address<mode>): New.
6323 (stack_protect_set): Adjust for SSP_GLOBAL.
6324 (stack_protect_test): Likewise.
6325 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
6326 (-mstack-protector-guard): Likewise.
6327 (-mstack-protector-guard-offset): Likewise.
6329 2019-01-18 Jakub Jelinek <jakub@redhat.com>
6331 PR tree-optimization/86214
6332 * tree-inline.h (struct copy_body_data): Add
6333 add_clobbers_to_eh_landing_pads member.
6334 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
6335 (copy_edges_for_bb): Call it if EH edge destination is <
6336 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
6337 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
6338 if flag_stack_reuse != SR_NONE and clear it afterwards.
6340 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
6343 * doc/install.texi (with-multilib-list): Document for aarch64.
6345 2019-01-18 Jakub Jelinek <jakub@redhat.com>
6348 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
6349 (("..."))) with ("...").
6351 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
6353 * doc/extend.texi (Built-in Functions for Memory Model Aware
6354 Atomic Operations): Document atomic fetch and nand.
6356 2019-01-18 Martin Liska <mliska@suse.cz>
6357 Richard Biener <rguenther@suse.de>
6360 * cgraph.h (create_version_clone_with_body): Add new argument
6362 * cgraphclones.c (cgraph_node::create_version_clone): Add
6363 DECL_ATTRIBUTES to a newly created decl. And call
6364 valid_attribute_p so that proper cl_target_optimization_node
6365 is set for the newly created declaration.
6366 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
6368 (expand_target_clones): Do not call valid_attribute_p, it must
6370 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
6373 2019-01-17 Jakub Jelinek <jakub@redhat.com>
6376 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
6377 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
6378 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
6380 2019-01-17 Martin Sebor <msebor@redhat.com>
6383 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
6384 Handle anti-ranges the same as no range at all.
6386 2018-01-17 Steve Ellcey <sellcey@cavium.com>
6388 * config/aarch64/aarch64.c (cgraph.h): New include.
6389 (intl.h): New include.
6390 (supported_simd_type): New function.
6391 (currently_supported_simd_type): Ditto.
6392 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
6393 (aarch64_simd_clone_adjust): Ditto.
6394 (aarch64_simd_clone_usable): Ditto.
6395 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
6396 (TARGET_SIMD_CLONE_ADJUST): Ditto.
6397 (TARGET_SIMD_CLONE_USABLE): Ditto.
6398 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
6399 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
6402 2019-01-17 Martin Sebor <msebor@redhat.com>
6404 PR tree-optimization/88800
6405 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
6406 NO_WARNING bit here. Avoid folding out-of-bounds calls.
6407 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
6408 redundant argument. Add new argument and issue diagnostics under
6409 its control. Detect out-of-bounds access even with warnings
6411 (check_bounds_or_overlap): Change return type. Add argument.
6412 (wrestrict_dom_walker::check_call): Adjust.
6413 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
6414 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
6415 check_bounds_or_overlap's return value.
6416 (handle_builtin_stxncpy): Same.
6417 (handle_builtin_strcat): Same.
6419 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
6420 Kwok Cheung Yeung <kcy@codesourcery.com>
6421 Julian Brown <julian@codesourcery.com>
6422 Tom de Vries <tom@codesourcery.com>
6424 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
6426 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
6428 * doc/sourcebuild.texi: Document dg-require-effective-target
6429 llvm_binutils and offload_gcn.
6431 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
6432 Kwok Cheung Yeung <kcy@codesourcery.com>
6433 Julian Brown <julian@codesourcery.com>
6434 Tom de Vries <tom@codesourcery.com>
6436 * doc/sourcebuild.texi: Document dg-required-effective-target
6439 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
6440 Kwok Cheung Yeung <kcy@codesourcery.com>
6441 Julian Brown <julian@codesourcery.com>
6442 Tom de Vries <tom@codesourcery.com>
6443 Jan Hubicka <hubicka@ucw.cz>
6444 Martin Jambor <mjambor@suse.cz>
6446 * config.gcc: Add amdgcn*-*-amdhsa configuration.
6447 * configure.ac: Check for dlopen.
6448 * configure: Regenerate.
6450 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
6451 Kwok Cheung Yeung <kcy@codesourcery.com>
6452 Julian Brown <julian@codesourcery.com>
6453 Tom de Vries <tom@codesourcery.com>
6454 Jan Hubicka <hubicka@ucw.cz>
6455 Martin Jambor <mjambor@suse.cz>
6457 * common/config/gcn/gcn-common.c: New file.
6458 * config/gcn/driver-gcn.c: New file.
6459 * config/gcn/gcn-builtins.def: New file.
6460 * config/gcn/gcn-hsa.h: New file.
6461 * config/gcn/gcn-modes.def: New file.
6462 * config/gcn/gcn-opts.h: New file.
6463 * config/gcn/gcn-passes.def: New file.
6464 * config/gcn/gcn-protos.h: New file.
6465 * config/gcn/gcn-run.c: New file.
6466 * config/gcn/gcn-tree.c: New file.
6467 * config/gcn/gcn.c: New file.
6468 * config/gcn/gcn.h: New file.
6469 * config/gcn/gcn.opt: New file.
6470 * config/gcn/t-gcn-hsa: New file.
6472 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
6473 Kwok Cheung Yeung <kcy@codesourcery.com>
6474 Julian Brown <julian@codesourcery.com>
6475 Tom de Vries <tom@codesourcery.com>
6476 Jan Hubicka <hubicka@ucw.cz>
6477 Martin Jambor <mjambor@suse.cz>
6479 * config/gcn/constraints.md: New file.
6480 * config/gcn/gcn-valu.md: New file.
6481 * config/gcn/gcn.md: New file.
6482 * config/gcn/predicates.md: New file.
6484 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
6486 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
6487 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
6488 (stmt_uses_0_or_null_in_undefined_way): Likewise.
6489 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
6491 2019-01-17 Tamar Christina <tamar.christina@arm.com>
6494 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
6495 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
6496 it and document registers.
6498 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6500 * config/aarch64/aarch64.c (ares_tunings): Define.
6501 * config/aarch64/aarch64-cores.def (ares): Use the above.
6503 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
6507 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
6509 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
6510 (_mm512_fixupimm_round_pd): Update parameters and builtin.
6511 (_mm512_maskz_fixupimm_round_pd): Ditto.
6512 (_mm512_fixupimm_round_ps): Ditto.
6513 (_mm512_maskz_fixupimm_round_ps): Ditto.
6514 (_mm_fixupimm_round_sd): Ditto.
6515 (_mm_maskz_fixupimm_round_sd): Ditto.
6516 (_mm_fixupimm_round_ss): Ditto.
6517 (_mm_maskz_fixupimm_round_ss): Ditto.
6518 (_mm512_fixupimm_pd): Ditto.
6519 (_mm512_maskz_fixupimm_pd): Ditto.
6520 (_mm512_fixupimm_ps): Ditto.
6521 (_mm512_maskz_fixupimm_ps): Ditto.
6522 (_mm_fixupimm_sd): Ditto.
6523 (_mm_maskz_fixupimm_sd): Ditto.
6524 (_mm_fixupimm_ss): Ditto.
6525 (_mm_maskz_fixupimm_ss): Ditto.
6526 (_mm512_mask_fixupimm_round_pd): Update builtin.
6527 (_mm512_mask_fixupimm_round_ps): Ditto.
6528 (_mm_mask_fixupimm_round_sd): Ditto.
6529 (_mm_mask_fixupimm_round_ss): Ditto.
6530 (_mm512_mask_fixupimm_pd): Ditto.
6531 (_mm512_mask_fixupimm_ps): Ditto.
6532 (_mm_mask_fixupimm_sd): Ditto.
6533 (_mm_mask_fixupimm_ss): Ditto.
6534 * config/i386/avx512vlintrin.h:
6535 (_mm256_fixupimm_pd): Update parameters and builtin.
6536 (_mm256_maskz_fixupimm_pd): Ditto.
6537 (_mm256_fixupimm_ps): Ditto.
6538 (_mm256_maskz_fixupimm_ps): Ditto.
6539 (_mm_fixupimm_pd): Ditto.
6540 (_mm_maskz_fixupimm_pd): Ditto.
6541 (_mm_fixupimm_ps): Ditto.
6542 (_mm_maskz_fixupimm_ps): Ditto.
6543 (_mm256_mask_fixupimm_pd): Update builtin.
6544 (_mm256_mask_fixupimm_ps): Ditto.
6545 (_mm_mask_fixupimm_pd): Ditto.
6546 (_mm_mask_fixupimm_ps): Ditto.
6547 * config/i386/i386-builtin-types.def: Add new types and remove useless ones.
6548 * config/i386/i386-builtin.def: Update builtin definitions.
6549 * config/i386/i386.c: Handle new builtin types and remove useless ones.
6550 * config/i386/sse.md: Update VFIXUPIMM* patterns.
6551 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
6552 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
6553 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
6554 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
6555 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
6556 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
6557 * config/i386/subst.md:
6558 (round_saeonly_sd_mask_operand4): Add new subst_attr.
6559 (round_saeonly_sd_mask_op4): Ditto.
6560 (round_saeonly_expand_operand5): Ditto.
6561 (round_saeonly_expand): Update.
6563 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
6567 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
6569 * config/i386/sse.md: Combine VFIXUPIMM* patterns
6570 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
6571 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
6572 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
6573 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
6574 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
6575 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
6577 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
6581 2018-12-15 Jakub Jelinek <jakub@redhat.com>
6584 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
6585 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
6586 instead of UNSPEC_FIXUPIMM.
6588 2019-01-17 Richard Biener <rguenther@suse.de>
6591 * dwarf2out.c (want_pubnames): Never generate pubnames sections
6592 and friends for the LTO part of debug info.
6594 2019-01-17 Jakub Jelinek <jakub@redhat.com>
6596 PR tree-optimization/86214
6597 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
6600 PR rtl-optimization/88870
6601 * dce.c (deletable_insn_p): Never delete const/pure calls that can
6602 throw if we can't alter the cfg or delete dead exceptions.
6603 (mark_insn): Don't call find_call_stack_args for such calls.
6605 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
6607 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
6608 prototypes for vec_st.
6609 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
6610 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
6611 mainly on signed/unsigned long long and double.
6613 2019-01-16 David Malcolm <dmalcolm@redhat.com>
6616 * combine.c (delete_noop_moves): Convert to "bool" return,
6617 returning true if any edges are eliminated.
6618 (combine_instructions): Also return true if delete_noop_moves
6621 2019-01-16 Tamar Christina <tamar.christina@arm.com>
6623 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
6624 correct max nunits for endian swap.
6625 (aarch64_expand_fcmla_builtin): Correct subreg code.
6626 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
6627 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
6630 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
6632 * config/alpha/alpha.c (alpha_gimplify_va_arg):
6633 Handle split indirect COMPLEX_TYPE arguments.
6635 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
6638 * config/aarch64/aarch64-modes.def: Add comment about how the carry
6639 bit is set by add and compare.
6640 (CC_ADC): New CC_MODE.
6641 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
6642 to cache the code and mode of X. Adjust the shape of a CC_Cmode
6643 comparison. Add detection for CC_ADCmode.
6644 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
6646 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
6647 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
6648 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
6649 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
6650 to eliminate the need for zero-extending the operands.
6651 (add<mode>3_compareC_imm): Delete. Merge into ...
6652 (add<mode>3_compareC): ... this. Restructure the comparison to
6653 eliminate the need for zero-extending the operands.
6654 (add<mode>3_carryin): Use LTU for the overflow detection.
6655 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
6656 Reexpress comparison for overflow.
6657 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
6658 (add<mode>3_carryinC): Likewise.
6659 (add<mode>3_carryinV): Use LTU for carry between partials.
6660 * config/aarch64/predicates.md (aarch64_carry_operation): Update
6661 handling of CC_Cmode and add CC_ADCmode.
6662 (aarch64_borrow_operation): Likewise.
6664 2019-01-16 Tamar Christina <tamar.christina@arm.com>
6666 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
6667 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
6668 * config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
6669 neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
6671 2019-01-16 Martin Liska <mliska@suse.cz>
6673 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
6675 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
6677 * gcc.c (add_sysrooted_hdrs_prefix): New function.
6678 (path_prefix_reset): Move up in the source file.
6679 (find_fortran_preinclude_file): Make complex search for the
6680 fortran header files.
6682 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
6684 * godump.c (go_output_typedef): When outputting a typedef, refer
6685 to the underlying type by its name and not its structure.
6687 2019-01-15 David Malcolm <dmalcolm@redhat.com>
6690 * tree.c (build_function_type): Assert that arg_types is not
6693 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
6696 * doc/extend.texi: Document that listing the stack pointer in the
6697 clobber list of an asm is a deprecated feature.
6698 * common.opt (Wdeprecated): Moved from c-family/c.opt.
6699 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
6700 warning instead of an error for clobbers of the stack pointer.
6701 Add a note explaining why.
6703 2019-01-15 Richard Biener <rguenther@suse.de>
6706 * dwarf2out.c (gen_member_die): Do not generate inheritance
6709 2019-01-15 Richard Biener <rguenther@suse.de>
6711 PR tree-optimization/88855
6712 * tree-if-conv.c (combine_blocks): Collect
6713 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
6715 2019-01-15 Tom de Vries <tdevries@suse.de>
6718 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
6719 lhs == NULL_TREE for gang-level reduction.
6721 2019-01-15 Richard Biener <rguenther@suse.de>
6722 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6725 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
6726 return true if SSA_NAME is already marked in visited bitmap.
6727 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
6729 2019-01-15 Jakub Jelinek <jakub@redhat.com>
6731 PR tree-optimization/88775
6732 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
6733 equal == 0 equality pointer comparisons some more if compared in
6734 integral types and either one points to an automatic var and the
6735 other to a global, or we can prove at least one points to the middle
6736 or both point to start or both point to end.
6738 2019-01-14 Andi Kleen <ak@linux.intel.com>
6740 * Makefile.in: Lower autofdo sampling rate by 10x.
6741 * Makefile.tpl: Dito.
6743 2019-01-14 Tom Honermann <tom@honermann.net>
6745 * defaults.h: Define CHAR8_TYPE.
6747 2019-01-14 Martin Sebor <msebor@redhat.com>
6750 * doc/extend.texi (Darwin Format Checks): Clarify.
6752 2019-01-14 Richard Biener <rguenther@suse.de>
6754 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
6755 whether we are in (simplify ...) or (match ...) context.
6757 2019-01-14 Jakub Jelinek <jakub@redhat.com>
6759 PR rtl-optimization/88796
6760 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
6761 * cfgexpand.c (stack_protect_prologue): Initialize
6762 crtl->stack_protect_guard_decl.
6763 * function.c (stack_protect_epilogue): Use it instead of calling
6764 targetm.stack_protect_guard again.
6765 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
6766 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
6767 crtl->stack_protect_guard_decl.
6768 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
6769 on the returned MEM_EXPR.
6771 2019-01-12 Tom de Vries <tdevries@suse.de>
6773 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
6774 vector length using -fopenacc-dim.
6776 2019-01-12 Tom de Vries <tdevries@suse.de>
6778 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
6779 lengths into account.
6781 2019-01-12 Svante Signell <svante.signell@gmail.com>
6783 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
6784 (TARGET_CAN_SPLIT_STACK): Define.
6785 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
6787 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
6789 * params.def (inline-unit-growth): Set to 40.
6791 2019-01-12 Jakub Jelinek <jakub@redhat.com>
6793 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
6795 2019-01-12 Tom de Vries <tdevries@suse.de>
6797 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
6798 region calling vector-partitionable routine, set default_vector_length
6801 2019-01-12 Tom de Vries <tdevries@suse.de>
6803 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
6804 variable default_vector_length.
6806 2019-01-12 Tom de Vries <tdevries@suse.de>
6809 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
6810 from oacc_default_dims, as oacc_validate_dims would do it, and apply
6813 2019-01-12 Tom de Vries <tdevries@suse.de>
6815 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
6816 (nvptx_goacc_validate_dims): Add used parameter.
6817 * doc/tm.texi: Regenerate.
6818 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
6819 argument to call to targetm.goacc.validate_dims.
6820 (default_goacc_validate_dims): Add used
6822 * target.def (validate_dims): Add used parameter in DEFHOOK.
6823 * targhooks.h (default_goacc_validate_dims): Add used parameter.
6825 2019-01-11 Jakub Jelinek <jakub@redhat.com>
6829 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
6831 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
6832 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
6833 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
6834 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
6836 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
6838 PR rtl-optimization/87305
6840 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
6841 for little endian pseudos used as paradoxical subreg.
6843 2019-01-11 Jakub Jelinek <jakub@redhat.com>
6845 PR tree-optimization/88693
6846 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
6847 for STRING_CSTs that don't contain any NUL characters in the first
6848 TREE_STRING_LENGTH bytes.
6850 2019-01-11 Alan Modra <amodra@gmail.com>
6854 * genattrtab.c (min_fn): Don't translate values.
6855 (min_attr_value): Return INT_MAX when the value can't be calculated.
6856 Return minimum among any values that can be calculated.
6857 (max_attr_value): Adjust.
6859 2019-01-11 Jakub Jelinek <jakub@redhat.com>
6861 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
6863 2019-01-11 Steve Ellcey <sellcey@marvell.com>
6865 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
6866 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
6867 (aarch64_return_call_with_max_clobbers): New function.
6868 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
6869 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
6871 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
6872 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
6873 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
6874 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
6875 * cselib.c (cselib_process_insn): Add argument to
6876 targetm.hard_regno_call_part_clobbered call.
6877 * ira-conflicts.c (ira_build_conflicts): Ditto.
6878 * ira-costs.c (ira_tune_allocno_costs): Ditto.
6879 * lra-constraints.c (inherit_reload_reg): Ditto.
6880 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
6881 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
6882 argument. Call targetm.return_call_with_max_clobbers.
6883 Add argument to targetm.hard_regno_call_part_clobbered call.
6884 (calls_have_same_clobbers_p): New function.
6885 (process_bb_lives): Add call_insn and last_call_insn variables.
6886 Pass call_insn to check_pseudos_live_through_calls.
6887 Modify if stmt to check targetm.return_call_with_max_clobbers.
6888 Update setting of flush variable.
6889 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
6891 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
6892 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
6893 targetm.hard_regno_call_part_clobbered call.
6894 * reginfo.c (choose_hard_reg_mode): Ditto.
6895 * regrename.c (check_new_reg_p): Ditto.
6896 * reload.c (find_equiv_reg): Ditto.
6897 * reload1.c (emit_reload_insns): Ditto.
6898 * sched-deps.c (deps_analyze_insn): Ditto.
6899 * sel-sched.c (init_regs_for_mode): Ditto.
6900 (mark_unavailable_hard_regs): Ditto.
6901 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
6902 * target.def (hard_regno_call_part_clobbered): Add insn argument.
6903 (return_call_with_max_clobbers): New target function.
6904 * doc/tm.texi: Regenerate.
6905 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
6906 * hooks.c (hook_bool_uint_mode_false): Change to
6907 hook_bool_insn_uint_mode_false.
6908 * hooks.h (hook_bool_uint_mode_false): Ditto.
6910 2019-01-11 Steve Ellcey <sellcey@marvell.com>
6912 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
6913 (aarch64_remove_extra_call_preserved_regs): New function.
6914 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
6915 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
6916 * doc/tm.texi: Regenerate.
6917 * final.c (get_call_reg_set_usage): Call new hook.
6918 * target.def (remove_extra_call_preserved_regs): New hook.
6919 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
6920 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
6922 2019-01-11 Jakub Jelinek <jakub@redhat.com>
6925 * passes.c (finish_optimization_passes): Call print_combine_total_stats
6926 inside of pass_combine_1 dump rather than pass_profile_1.
6928 2019-01-11 Tom de Vries <tdevries@suse.de>
6930 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
6931 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
6932 (PTX_NUM_PER_WORKER_BARRIERS): Define.
6933 (nvptx_apply_dim_limits): Prevent vector_length 64 and
6936 2019-01-11 Tom de Vries <tdevries@suse.de>
6938 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
6940 2019-01-11 Jan Beulich <jbeulich@suse.com>
6942 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
6943 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
6944 sse2_cvtsi2sd): Add {l}.
6945 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
6948 2019-01-10 Jakub Jelinek <jakub@redhat.com>
6951 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
6953 (*float<floatunssuffix>v2div2sf2): New define_insn.
6954 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
6955 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
6956 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
6957 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
6958 match_operands with "const0_operand" "C".
6960 2019-01-10 Tamar Christina <tamar.christina@arm.com>
6962 * config/aarch64/aarch64-builtins.c
6963 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
6964 (aarch64_init_simd_builtins): ...Here
6966 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
6968 PR rtl-optimization/87305
6970 (setup_live_pseudos_and_spill_after_risky_transforms): Check
6971 allocation for big endian pseudos used as paradoxical subregs and
6972 spill them if it is wrong.
6973 * lra-constraints.c (lra_constraints): Add a comment.
6975 2019-01-10 Richard Biener <rguenther@suse.de>
6977 PR tree-optimization/88792
6978 * tree-ssa-pre.c (get_representative_for): Do not return a
6981 2019-01-10 Jakub Jelinek <jakub@redhat.com>
6985 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
6986 (assign_parm_setup_block): Do the argument slot realignment here
6989 2019-01-10 Stefan Agner <stefan@agner.ch>
6992 * config/arm/arm.c (arm_option_override_internal): Force
6993 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
6995 2019-01-10 Jakub Jelinek <jakub@redhat.com>
6998 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
7001 2019-01-10 Tamar Christina <tamar.christina@arm.com>
7003 * config/arm/arm-builtins.c
7004 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
7005 (MAC_LANE_PAIR_QUALIFIERS): New.
7006 (arm_expand_builtin_args): Use it.
7007 (arm_expand_builtin_1): Likewise.
7008 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
7009 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
7010 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
7011 * config/arm/arm_neon.h:
7012 (vcadd_rot90_f16): New.
7013 (vcaddq_rot90_f16): New.
7014 (vcadd_rot270_f16): New.
7015 (vcaddq_rot270_f16): New.
7018 (vcmla_lane_f16): New.
7019 (vcmla_laneq_f16): New.
7020 (vcmlaq_lane_f16): New.
7021 (vcmlaq_laneq_f16): New.
7022 (vcmla_rot90_f16): New.
7023 (vcmlaq_rot90_f16): New.
7024 (vcmla_rot90_lane_f16): New.
7025 (vcmla_rot90_laneq_f16): New.
7026 (vcmlaq_rot90_lane_f16): New.
7027 (vcmlaq_rot90_laneq_f16): New.
7028 (vcmla_rot180_f16): New.
7029 (vcmlaq_rot180_f16): New.
7030 (vcmla_rot180_lane_f16): New.
7031 (vcmla_rot180_laneq_f16): New.
7032 (vcmlaq_rot180_lane_f16): New.
7033 (vcmlaq_rot180_laneq_f16): New.
7034 (vcmla_rot270_f16): New.
7035 (vcmlaq_rot270_f16): New.
7036 (vcmla_rot270_lane_f16): New.
7037 (vcmla_rot270_laneq_f16): New.
7038 (vcmlaq_rot270_lane_f16): New.
7039 (vcmlaq_rot270_laneq_f16): New.
7040 (vcadd_rot90_f32): New.
7041 (vcaddq_rot90_f32): New.
7042 (vcadd_rot270_f32): New.
7043 (vcaddq_rot270_f32): New.
7046 (vcmla_lane_f32): New.
7047 (vcmla_laneq_f32): New.
7048 (vcmlaq_lane_f32): New.
7049 (vcmlaq_laneq_f32): New.
7050 (vcmla_rot90_f32): New.
7051 (vcmlaq_rot90_f32): New.
7052 (vcmla_rot90_lane_f32): New.
7053 (vcmla_rot90_laneq_f32): New.
7054 (vcmlaq_rot90_lane_f32): New.
7055 (vcmlaq_rot90_laneq_f32): New.
7056 (vcmla_rot180_f32): New.
7057 (vcmlaq_rot180_f32): New.
7058 (vcmla_rot180_lane_f32): New.
7059 (vcmla_rot180_laneq_f32): New.
7060 (vcmlaq_rot180_lane_f32): New.
7061 (vcmlaq_rot180_laneq_f32): New.
7062 (vcmla_rot270_f32): New.
7063 (vcmlaq_rot270_f32): New.
7064 (vcmla_rot270_lane_f32): New.
7065 (vcmla_rot270_laneq_f32): New.
7066 (vcmlaq_rot270_lane_f32): New.
7067 (vcmlaq_rot270_laneq_f32): New.
7068 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
7069 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180,
7070 vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180,
7071 vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180,
7072 vcmlaq_lane270): New.
7073 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
7074 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
7075 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
7076 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
7077 (arm_option_reconfigure_globals): Use them.
7078 * config/arm/iterators.md (VDF, VQ_HSF): New.
7079 (VCADD, VCMLA): New.
7080 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
7081 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>):
7083 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
7084 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
7086 2019-01-10 Tamar Christina <tamar.christina@arm.com>
7088 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
7089 Add qualifier_lane_pair_index.
7090 (emit-rtl.h): Include.
7091 (TYPES_QUADOP_LANE_PAIR): New.
7092 (aarch64_simd_expand_args): Use it.
7093 (aarch64_simd_expand_builtin): Likewise.
7094 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum):
7096 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
7097 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
7098 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
7099 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
7100 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
7101 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF,
7102 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
7103 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF,
7104 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
7105 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF,
7106 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
7107 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
7108 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
7109 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
7110 Add __ARM_FEATURE_COMPLEX.
7111 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0,
7112 fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180,
7113 fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180,
7114 fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
7115 fcmlaq_lane270): New.
7116 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
7117 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,
7118 aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): New.
7119 * config/aarch64/arm_neon.h:
7120 (vcadd_rot90_f16): New.
7121 (vcaddq_rot90_f16): New.
7122 (vcadd_rot270_f16): New.
7123 (vcaddq_rot270_f16): New.
7126 (vcmla_lane_f16): New.
7127 (vcmla_laneq_f16): New.
7128 (vcmlaq_lane_f16): New.
7129 (vcmlaq_rot90_lane_f16): New.
7130 (vcmla_rot90_laneq_f16): New.
7131 (vcmla_rot90_lane_f16): New.
7132 (vcmlaq_rot90_f16): New.
7133 (vcmla_rot90_f16): New.
7134 (vcmlaq_laneq_f16): New.
7135 (vcmla_rot180_laneq_f16): New.
7136 (vcmla_rot180_lane_f16): New.
7137 (vcmlaq_rot180_f16): New.
7138 (vcmla_rot180_f16): New.
7139 (vcmlaq_rot90_laneq_f16): New.
7140 (vcmlaq_rot270_laneq_f16): New.
7141 (vcmlaq_rot270_lane_f16): New.
7142 (vcmla_rot270_laneq_f16): New.
7143 (vcmlaq_rot270_f16): New.
7144 (vcmla_rot270_f16): New.
7145 (vcmlaq_rot180_laneq_f16): New.
7146 (vcmlaq_rot180_lane_f16): New.
7147 (vcmla_rot270_lane_f16): New.
7148 (vcadd_rot90_f32): New.
7149 (vcaddq_rot90_f32): New.
7150 (vcaddq_rot90_f64): New.
7151 (vcadd_rot270_f32): New.
7152 (vcaddq_rot270_f32): New.
7153 (vcaddq_rot270_f64): New.
7157 (vcmla_lane_f32): New.
7158 (vcmla_laneq_f32): New.
7159 (vcmlaq_lane_f32): New.
7160 (vcmlaq_laneq_f32): New.
7161 (vcmla_rot90_f32): New.
7162 (vcmlaq_rot90_f32): New.
7163 (vcmlaq_rot90_f64): New.
7164 (vcmla_rot90_lane_f32): New.
7165 (vcmla_rot90_laneq_f32): New.
7166 (vcmlaq_rot90_lane_f32): New.
7167 (vcmlaq_rot90_laneq_f32): New.
7168 (vcmla_rot180_f32): New.
7169 (vcmlaq_rot180_f32): New.
7170 (vcmlaq_rot180_f64): New.
7171 (vcmla_rot180_lane_f32): New.
7172 (vcmla_rot180_laneq_f32): New.
7173 (vcmlaq_rot180_lane_f32): New.
7174 (vcmlaq_rot180_laneq_f32): New.
7175 (vcmla_rot270_f32): New.
7176 (vcmlaq_rot270_f32): New.
7177 (vcmlaq_rot270_f64): New.
7178 (vcmla_rot270_lane_f32): New.
7179 (vcmla_rot270_laneq_f32): New.
7180 (vcmlaq_rot270_lane_f32): New.
7181 (vcmlaq_rot270_laneq_f32): New.
7182 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
7183 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
7184 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
7185 (FCADD, FCMLA): New.
7187 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
7189 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
7193 * config/pa/pa.c: Change "can not" to "cannot".
7194 * gimple-ssa-evrp-analyze.c: Likewise.
7195 * ipa-icf.c: Likewise.
7196 * ipa-polymorphic-call.c: Likewise.
7197 * ipa-pure-const.c: Likewise.
7198 * lra-constraints.c: Likewise.
7199 * lra-remat.c: Likewise.
7200 * reload1.c: Likewise.
7201 * reorg.c: Likewise.
7202 * tree-ssa-uninit.c: Likewise.
7204 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
7208 * Makefile.in: Mechanically replace "can not" with "cannot".
7209 * alias.c: Likewise.
7210 * builtins.c: Likewise.
7211 * calls.c: Likewise.
7212 * cgraph.c: Likewise.
7213 * cgraph.h: Likewise.
7214 * cgraphclones.c: Likewise.
7215 * cgraphunit.c: Likewise.
7216 * combine-stack-adj.c: Likewise.
7217 * combine.c: Likewise.
7218 * common/config/i386/i386-common.c: Likewise.
7219 * config/aarch64/aarch64.c: Likewise.
7220 * config/alpha/sync.md: Likewise.
7221 * config/arc/arc.c: Likewise.
7222 * config/arc/predicates.md: Likewise.
7223 * config/arm/arm-c.c: Likewise.
7224 * config/arm/arm.c: Likewise.
7225 * config/arm/arm.h: Likewise.
7226 * config/arm/arm.md: Likewise.
7227 * config/arm/cortex-r4f.md: Likewise.
7228 * config/csky/csky.c: Likewise.
7229 * config/csky/csky.h: Likewise.
7230 * config/darwin-f.c: Likewise.
7231 * config/epiphany/epiphany.md: Likewise.
7232 * config/i386/i386.c: Likewise.
7233 * config/i386/sol2.h: Likewise.
7234 * config/m68k/m68k.c: Likewise.
7235 * config/mcore/mcore.h: Likewise.
7236 * config/microblaze/microblaze.md: Likewise.
7237 * config/mips/20kc.md: Likewise.
7238 * config/mips/sb1.md: Likewise.
7239 * config/nds32/nds32.c: Likewise.
7240 * config/nds32/predicates.md: Likewise.
7241 * config/pa/pa.c: Likewise.
7242 * config/rs6000/e300c2c3.md: Likewise.
7243 * config/rs6000/rs6000.c: Likewise.
7244 * config/s390/s390.h: Likewise.
7245 * config/sh/sh.c: Likewise.
7246 * config/sh/sh.md: Likewise.
7247 * config/spu/vmx2spu.h: Likewise.
7248 * cprop.c: Likewise.
7249 * dbxout.c: Likewise.
7250 * df-scan.c: Likewise.
7251 * doc/cfg.texi: Likewise.
7252 * doc/extend.texi: Likewise.
7253 * doc/fragments.texi: Likewise.
7254 * doc/gty.texi: Likewise.
7255 * doc/invoke.texi: Likewise.
7256 * doc/lto.texi: Likewise.
7257 * doc/md.texi: Likewise.
7258 * doc/objc.texi: Likewise.
7259 * doc/rtl.texi: Likewise.
7260 * doc/tm.texi: Likewise.
7262 * emit-rtl.c: Likewise.
7263 * emit-rtl.h: Likewise.
7264 * except.c: Likewise.
7265 * expmed.c: Likewise.
7267 * fold-const.c: Likewise.
7268 * genautomata.c: Likewise.
7269 * gimple-fold.c: Likewise.
7270 * hard-reg-set.h: Likewise.
7271 * ifcvt.c: Likewise.
7272 * ipa-comdats.c: Likewise.
7273 * ipa-cp.c: Likewise.
7274 * ipa-devirt.c: Likewise.
7275 * ipa-fnsummary.c: Likewise.
7276 * ipa-icf.c: Likewise.
7277 * ipa-inline-transform.c: Likewise.
7278 * ipa-inline.c: Likewise.
7279 * ipa-polymorphic-call.c: Likewise.
7280 * ipa-profile.c: Likewise.
7281 * ipa-prop.c: Likewise.
7282 * ipa-pure-const.c: Likewise.
7283 * ipa-reference.c: Likewise.
7284 * ipa-split.c: Likewise.
7285 * ipa-visibility.c: Likewise.
7287 * ira-build.c: Likewise.
7288 * ira-color.c: Likewise.
7289 * ira-conflicts.c: Likewise.
7290 * ira-costs.c: Likewise.
7291 * ira-int.h: Likewise.
7292 * ira-lives.c: Likewise.
7295 * loop-invariant.c: Likewise.
7296 * loop-unroll.c: Likewise.
7297 * lower-subreg.c: Likewise.
7298 * lra-assigns.c: Likewise.
7299 * lra-constraints.c: Likewise.
7300 * lra-eliminations.c: Likewise.
7301 * lra-lives.c: Likewise.
7302 * lra-remat.c: Likewise.
7303 * lra-spills.c: Likewise.
7305 * lto-cgraph.c: Likewise.
7306 * lto-streamer-out.c: Likewise.
7307 * postreload-gcse.c: Likewise.
7308 * predict.c: Likewise.
7309 * profile-count.h: Likewise.
7310 * profile.c: Likewise.
7311 * recog.c: Likewise.
7313 * reload.c: Likewise.
7314 * reload1.c: Likewise.
7315 * reorg.c: Likewise.
7316 * resource.c: Likewise.
7317 * rtl.def: Likewise.
7319 * rtlanal.c: Likewise.
7320 * sched-deps.c: Likewise.
7321 * sched-ebb.c: Likewise.
7322 * sched-rgn.c: Likewise.
7323 * sel-sched-ir.c: Likewise.
7324 * sel-sched.c: Likewise.
7325 * shrink-wrap.c: Likewise.
7326 * simplify-rtx.c: Likewise.
7327 * symtab.c: Likewise.
7328 * target.def: Likewise.
7329 * toplev.c: Likewise.
7330 * tree-call-cdce.c: Likewise.
7331 * tree-cfg.c: Likewise.
7332 * tree-complex.c: Likewise.
7333 * tree-core.h: Likewise.
7334 * tree-eh.c: Likewise.
7335 * tree-inline.c: Likewise.
7336 * tree-loop-distribution.c: Likewise.
7337 * tree-nrv.c: Likewise.
7338 * tree-profile.c: Likewise.
7339 * tree-sra.c: Likewise.
7340 * tree-ssa-alias.c: Likewise.
7341 * tree-ssa-dce.c: Likewise.
7342 * tree-ssa-dom.c: Likewise.
7343 * tree-ssa-forwprop.c: Likewise.
7344 * tree-ssa-loop-im.c: Likewise.
7345 * tree-ssa-loop-ivcanon.c: Likewise.
7346 * tree-ssa-loop-ivopts.c: Likewise.
7347 * tree-ssa-loop-niter.c: Likewise.
7348 * tree-ssa-phionlycprop.c: Likewise.
7349 * tree-ssa-phiopt.c: Likewise.
7350 * tree-ssa-propagate.c: Likewise.
7351 * tree-ssa-threadedge.c: Likewise.
7352 * tree-ssa-threadupdate.c: Likewise.
7353 * tree-ssa-uninit.c: Likewise.
7354 * tree-ssanames.c: Likewise.
7355 * tree-streamer-out.c: Likewise.
7358 * vr-values.c: Likewise.
7360 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
7362 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
7363 (ix86_split_xorsign): Ditto.
7364 * config/i386/i386.c (ix86_expand_xorsign): New function.
7365 (ix86_split_xorsign): Ditto.
7366 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
7367 (xorsign<mode>3): New expander.
7368 (xorsign<mode>3_1): New insn_and_split pattern.
7369 * config/i386/sse.md (xorsign<mode>3): New expander.
7371 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
7373 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
7374 (*tablejump_sp64): Likewise.
7375 (*tablejump<P:mode>): ...this.
7376 (*call_address_sp32): Merge into...
7377 (*call_address_sp64): Likewise.
7378 (*call_address<P:mode>): ...this.
7379 (*call_symbolic_sp32): Merge into...
7380 (*call_symbolic_sp64): Likewise.
7381 (*call_symbolic<P:mode>): ...this.
7382 (call_value): Remove constraint and add predicate.
7383 (*call_value_address_sp32): Merge into...
7384 (*call_value_address_sp64): Likewise.
7385 (*call_value_address<P:mode>): ...this.
7386 (*call_value_symbolic_sp32): Merge into...
7387 (*call_value_symbolic_sp64): Likewise.
7388 (*call_value_symbolic<P:mode>): ...this.
7389 (*sibcall_symbolic_sp32): Merge into...
7390 (*sibcall_symbolic_sp64): Likewise.
7391 (*sibcall_symbolic<P:mode>): ...this.
7392 (sibcall_value): Remove constraint and add predicate.
7393 (*sibcall_value_symbolic_sp32): Merge into...
7394 (*sibcall_value_symbolic_sp64): Likewise.
7395 (*sibcall_value_symbolic<P:mode>): ...this.
7396 (window_save): Minor tweak.
7397 (*branch_sp32): Merge into...
7398 (*branch_sp64): Likewise.
7399 (*branch<P:mode>): ...this.
7401 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
7402 James Clarke <jrtc27@jrtc27.com>
7405 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
7406 consistently in TLS address generation and adjust code to the renaming
7407 of patterns. Mark calls to __tls_get_addr as const.
7408 * config/sparc/sparc.md (tgd_hi22): Turn into...
7409 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
7410 (tgd_lo10): Turn into...
7411 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
7412 (tgd_add32): Merge into...
7413 (tgd_add64): Likewise.
7414 (tgd_add<P:mode>): ...this and use Pmode throughout.
7415 (tldm_hi22): Turn into...
7416 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
7417 (tldm_lo10): Turn into...
7418 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
7419 (tldm_add32): Merge into...
7420 (tldm_add64): Likewise.
7421 (tldm_add<P:mode>): ...this and use Pmode throughout.
7422 (tldm_call32): Merge into...
7423 (tldm_call64): Likewise.
7424 (tldm_call<P:mode>): ...this and use Pmode throughout.
7425 (tldo_hix22): Turn into...
7426 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
7427 (tldo_lox10): Turn into...
7428 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
7429 (tldo_add32): Merge into...
7430 (tldo_add64): Likewise.
7431 (tldo_add<P:mode>): ...this and use Pmode throughout.
7432 (tie_hi22): Turn into...
7433 (tie_hi22<P:mode>): ...this and use Pmode throughout.
7434 (tie_lo10): Turn into...
7435 (tie_lo10<P:mode>): ...this and use Pmode throughout.
7436 (tie_ld64): Use DImode throughout.
7437 (tie_add32): Merge into...
7438 (tie_add64): Likewise.
7439 (tie_add<P:mode>): ...this and use Pmode throughout.
7440 (tle_hix22_sp32): Merge into...
7441 (tle_hix22_sp64): Likewise.
7442 (tle_hix22<P:mode>): ...this and use Pmode throughout.
7443 (tle_lox22_sp32): Merge into...
7444 (tle_lox22_sp64): Likewise.
7445 (tle_lox22<P:mode>): ...this and use Pmode throughout.
7446 (*tldo_ldub_sp32): Merge into...
7447 (*tldo_ldub_sp64): Likewise.
7448 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
7449 (*tldo_ldub1_sp32): Merge into...
7450 (*tldo_ldub1_sp64): Likewise.
7451 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
7452 (*tldo_ldub2_sp32): Merge into...
7453 (*tldo_ldub2_sp64): Likewise.
7454 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
7455 (*tldo_ldsb1_sp32): Merge into...
7456 (*tldo_ldsb1_sp64): Likewise.
7457 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
7458 (*tldo_ldsb2_sp32): Merge into...
7459 (*tldo_ldsb2_sp64): Likewise.
7460 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
7461 (*tldo_ldub3_sp64): Use DImode throughout.
7462 (*tldo_ldsb3_sp64): Likewise.
7463 (*tldo_lduh_sp32): Merge into...
7464 (*tldo_lduh_sp64): Likewise.
7465 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
7466 (*tldo_lduh1_sp32): Merge into...
7467 (*tldo_lduh1_sp64): Likewise.
7468 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
7469 (*tldo_ldsh1_sp32): Merge into...
7470 (*tldo_ldsh1_sp64): Likewise.
7471 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
7472 (*tldo_lduh2_sp64): Use DImode throughout.
7473 (*tldo_ldsh2_sp64): Likewise.
7474 (*tldo_lduw_sp32): Merge into...
7475 (*tldo_lduw_sp64): Likewise.
7476 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
7477 (*tldo_lduw1_sp64): Use DImode throughout.
7478 (*tldo_ldsw1_sp64): Likewise.
7479 (*tldo_ldx_sp64): Likewise.
7480 (*tldo_stb_sp32): Merge into...
7481 (*tldo_stb_sp64): Likewise.
7482 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
7483 (*tldo_sth_sp32): Merge into...
7484 (*tldo_sth_sp64): Likewise.
7485 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
7486 (*tldo_stw_sp32): Merge into...
7487 (*tldo_stw_sp64): Likewise.
7488 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
7489 (*tldo_stx_sp64): Use DImode throughout.
7491 2018-01-09 Sudakshina Das <sudi.das@arm.com>
7493 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
7494 check configure option to set BTI and Return Address Signing.
7495 * configure.ac: Add --enable-standard-branch-protection and
7496 --disable-standard-branch-protection.
7497 * configure: Regenerated.
7498 * doc/install.texi: Document the same.
7500 2018-01-09 Sudakshina Das <sudi.das@arm.com>
7501 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7503 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
7504 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
7505 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
7507 * config/aarch64/aarch64-bti-insert.c: New file.
7508 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
7510 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
7512 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
7513 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
7514 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
7515 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
7517 2018-01-09 Sudakshina Das <sudi.das@arm.com>
7519 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
7520 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
7521 Disable bti for -mbranch-protection=none.
7522 (aarch64_handle_standard_branch_protection): Enable bti for
7523 -mbranch-protection=standard.
7524 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
7525 -mbranch-protection.
7526 (aarch64_bti_enabled): Check if bti is enabled.
7527 * config/aarch64/aarch64.opt: Declare target variable.
7528 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
7530 2018-01-09 Sudakshina Das <sudi.das@arm.com>
7532 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
7533 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
7534 (aarch64_expand_epilogue): Likewise.
7535 (aarch64_output_mi_thunk): Likewise
7536 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
7537 TAILCALL_ADDR_REGS to x16 and x17.
7538 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
7540 2018-01-09 Sudakshina Das <sudi.das@arm.com>
7542 * config/aarch64/aarch64-option-extensions.def: Define
7543 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
7544 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
7545 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
7546 (AARCH64_FL_PREDRES): New.
7547 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
7548 AARCH64_FL_PREDRES by default.
7549 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
7551 2018-01-09 Sudakshina Das <sudi.das@arm.com>
7553 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
7555 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
7556 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
7557 * doc/invoke.texi: Document ARMv8.5-A.
7559 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
7561 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
7562 (xorsign<mode>3): Likewise.
7564 2019-01-09 Jelinek <jakub@redhat.com>
7567 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
7568 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
7570 PR rtl-optimization/88331
7571 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
7572 not currently_expanding_to_rtl.
7574 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
7576 * doc/invoke.texi (-Os): Remove trailing spaces.
7577 (-finline-functions): Remove reference to -O2.
7579 2019-01-08 Jakub Jelinek <jakub@redhat.com>
7581 PR rtl-optimization/79593
7582 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
7584 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
7585 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
7587 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
7590 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
7594 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
7595 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
7597 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
7600 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
7601 ix86_avx_u128_mode_entry.
7603 2019-01-08 Martin Liska <mliska@suse.cz>
7605 PR tree-optimization/88753
7606 * tree-switch-conversion.c (switch_conversion::build_one_array):
7607 Come up with local variable constructor. Convert first to
7608 type of constructor values.
7610 2019-01-08 Richard Biener <rguenther@suse.de>
7612 PR tree-optimization/86554
7613 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
7614 rpo_avail): Move earlier.
7615 (visit_nary_op): When value-numbering to expressions
7616 with different overflow behavior make sure there's an
7617 available expression on the path.
7619 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
7621 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
7622 aarch64_parse_branch_protection,
7623 struct aarch64_branch_protect_type,
7624 aarch64_handle_no_branch_protection,
7625 aarch64_handle_standard_branch_protection,
7626 aarch64_validate_mbranch_protection,
7627 aarch64_handle_pac_ret_protection,
7628 aarch64_handle_attr_branch_protection,
7629 accepted_branch_protection_string,
7630 aarch64_pac_ret_subtypes,
7631 aarch64_branch_protect_types,
7632 aarch64_handle_pac_ret_leaf): Define.
7633 (aarch64_override_options_after_change_1, aarch64_override_options):
7634 Add check for accepted_branch_protection_string.
7635 (aarch64_option_save): Save accepted_branch_protection_string.
7636 (aarch64_option_restore): Save accepted_branch_protection_string.
7637 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
7638 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
7639 msign-return-address.
7640 * doc/invoke.texi: Add mbranch-protection.
7642 2019-01-08 Alan Modra <amodra@gmail.com>
7645 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
7646 Delete "unknownp" parameter. Adjust callers. Handle
7647 CONST_INT, PLUS, MINUS, and MULT.
7648 (attr_value_aligned): Renamed from or_attr_value.
7649 (min_attr_value): Return INT_MIN for unhandled rtl case..
7650 (min_fn): ..and translate to INT_MAX here.
7651 (write_length_unit_log): Modify to cope without "unknown".
7652 (write_attr_value): Handle IF_THEN_ELSE.
7654 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
7656 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
7657 optimization for masked stores.
7659 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
7662 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
7663 output vector directly to duplicate_and_interleave instead of
7664 going through a temporary. Postpone insertion of ctor_seq to
7665 the end of the loop.
7667 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
7670 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
7671 unsigned_p. Handle signed and unsigned overflow correction as
7673 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
7675 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
7677 (add<mode>3_compareV_imm): Make this callable for expanding.
7678 (subv<GPI:mode>4): Use register_operand for operand 1. Use
7679 aarch64_plus_operand for operand 2.
7680 (subv<GPI:mode>_insn): New insn pattern.
7681 (subv<GPI:mode>_imm): Likewise.
7682 (negv<GPI:mode>3): New expand pattern.
7683 (negv<GPI:mode>_insn): New insn pattern.
7684 (negv<GPI:mode>_cmp_only): Likewise.
7685 (cmpv<GPI:mode>_insn): Likewise.
7686 (subvti4): Use register_operand for operand 1. Update call to
7687 aarch64_expand_subvti.
7688 (usubvti4): Likewise.
7689 (negvti3): New expand pattern.
7690 (negdi_carryout): New insn pattern.
7691 (negvdi_carryinV): New insn pattern.
7692 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
7693 version the named version.
7694 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
7696 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
7698 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
7700 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
7701 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
7702 (sub<mode>3_carryinCV): Delete.
7703 (sub<GPI:mode>3_carryinV): New expand pattern.
7704 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
7706 2019-01-07 Richard Biener <rguenther@suse.de>
7708 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
7709 of tree_operand_hash.
7711 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
7713 PR tree-optimization/88598
7714 * tree.h (single_nonzero_element): Declare.
7715 * tree.c (single_nonzero_element): New function.
7716 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
7717 if I is the only nonzero element of CST.
7719 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
7721 PR tree-optimization/88598
7722 * tree.h (initializer_each_zero_or_onep): Declare.
7723 * tree.c (initializer_each_zero_or_onep): New function.
7724 (signed_or_unsigned_type_for): Handle float types too.
7725 (unsigned_type_for, signed_type_for): Update comments accordingly.
7726 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
7727 x & { 0 or -1, 0 or -1, ... }.
7729 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
7731 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
7732 with x86_64-pc-linux-gnu.
7734 2019-01-07 Tom de Vries <tdevries@suse.de>
7737 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
7739 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
7742 2019-01-07 Jakub Jelinek <jakub@redhat.com>
7744 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
7745 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
7746 TARGET_AVX512F as condition.
7749 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
7750 const_not_ok_for_debug_p target hook.
7751 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
7752 on UNSPEC and subexpressions thereof if all subexpressions of the
7753 UNSPEC are CONSTANT_P.
7755 PR tree-optimization/88676
7756 * tree-ssa-phiopt.c (two_value_replacement): New function.
7757 (tree_ssa_phiopt_worker): Call it.
7760 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
7761 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
7764 * tree-vect-generic.c: Include insn-config.h and recog.h.
7765 (expand_vector_piecewise): Add defaulted ret_type argument,
7766 if non-NULL, use that in preference to type for the result type.
7767 (expand_vector_parallel): Formatting fix.
7768 (do_vec_conversion, do_vec_narrowing_conversion,
7769 expand_vector_conversion): New functions.
7770 (expand_vector_operations_1): Call expand_vector_conversion
7771 for VEC_CONVERT ifn calls.
7772 * internal-fn.def (VEC_CONVERT): New internal function.
7773 * internal-fn.c (expand_VEC_CONVERT): New function.
7774 * fold-const-call.c (fold_const_vec_convert): New function.
7775 (fold_const_call): Use it for CFN_VEC_CONVERT.
7776 * doc/extend.texi (__builtin_convertvector): Document.
7778 2019-01-07 Tom de Vries <tdevries@suse.de>
7780 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
7781 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
7782 vector_red_partition, vector_red_sym): New global variables.
7783 (nvptx_option_override): Initialize vector_red_sym.
7784 (nvptx_declare_function_name): Restore red_partition register.
7785 (nvptx_file_end): Emit code to declare the vector reduction variables.
7786 (nvptx_output_red_partition): New function.
7787 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
7788 large vector reductions.
7789 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
7790 (nvptx_init_builtins): Add VECTOR_ADDR.
7791 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
7792 Handle nvptx_expand_shared_addr.
7793 (nvptx_get_shared_red_addr): Add vector argument and handle large
7795 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
7797 (nvptx_goacc_reduction_init): Likewise.
7798 (nvptx_goacc_reduction_fini): Likewise.
7799 (nvptx_goacc_reduction_teardown): Likewise.
7800 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
7801 init,fini,teardown}.
7802 (nvptx_init_axis_predicate): Initialize vector_red_partition.
7803 (nvptx_set_current_function): Init vector_red_partition.
7804 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
7805 (nvptx_red_partition): New insn.
7806 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
7808 2019-01-07 Tom de Vries <tdevries@suse.de>
7811 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
7814 2019-01-07 Tom de Vries <tdevries@suse.de>
7816 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
7817 (nvptx_option_override): Init oacc_bcast_partition.
7818 (nvptx_init_oacc_workers): New function.
7819 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
7820 (nvptx_needs_shared_bcast): New function.
7821 (nvptx_find_par): Generalize to enable vectors to use shared-memory
7823 (nvptx_shared_propagate): Initialize vector bcast partition and
7824 synchronization state.
7825 (nvptx_single): Generalize to enable vectors to use shared-memory
7827 (nvptx_process_pars): Likewise.
7828 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
7829 * config/nvptx/nvptx.h (struct machine_function): Add
7830 bcast_partition and sync_bar members.
7832 2019-01-07 Tom de Vries <tdevries@suse.de>
7834 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
7835 (nvptx_apply_dim_limits): New function.
7836 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
7839 2019-01-07 Tom de Vries <tdevries@suse.de>
7841 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
7842 as late as possible.
7844 2019-01-07 Tom de Vries <tdevries@suse.de>
7846 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
7847 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
7848 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
7849 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
7850 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
7852 2019-01-07 Tom de Vries <tdevries@suse.de>
7854 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
7856 2019-01-07 Tom de Vries <tdevries@suse.de>
7858 * omp-offload.c (oacc_get_min_dim): New function.
7859 * omp-offload.h (oacc_get_min_dim): Declare.
7861 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
7864 * config/i386/i386.c (function_value_ms_64): Return small sturct in
7865 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
7867 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
7871 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
7873 * ipa-inline.c (edge_badness): Use inlined_time instead of
7874 inline_summaries->get.
7876 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
7878 * opts.c (enable_fdo_optimizations): Enable
7879 version-loops-for-strides, loop-interchange, unrol-and-jam
7880 and tree-loop-distribution.
7881 * invoke.texi: Document newly enabled options.
7883 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
7885 * doc/invoke.texi (max-inline-insns-small): New parameters.
7886 * ipa-inline.c (want_early_inline_function_p): simplify.
7887 (want_inline_small_function_p): Fix pasto from previous patch;
7888 use max-inline-insns-small bound.
7889 * params.def (max-inline-insns-small): New param.
7890 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
7891 variables correctly.
7893 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
7895 * doc/invoke.texi: Document max-inline-insns-size,
7896 uninlined-function-insns, uninlined-function-time,
7897 uninlined-thunk-insns and uninlined-thunk-time.
7898 * params.def: Add max-inline-insns-size,
7899 uninlined-function-insns, uninlined-function-time,
7900 uninlined-thunk-insns and uninlined-thunk-time.
7901 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
7903 * ipa-inline.c (can_inline_edge_by_limits_p,
7904 want_inline_small_function_p): Use new parameters.
7906 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
7908 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
7910 2019-01-05 Jakub Jelinek <jakub@redhat.com>
7914 * expr.c (expand_assignment): For calls returning VLA structures
7915 if to_rtx is not a MEM, force it into a stack temporary.
7918 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
7919 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
7920 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
7921 subexpressions of both operands.
7922 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
7923 subrtxes are CONSTANT_P.
7924 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
7927 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
7929 * params.def (hot-bb-count-ws-permille): Set to 990.
7931 2019-01-04 Martin Sebor <msebor@redhat.com>
7934 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
7937 2019-01-04 Martin Sebor <msebor@redhat.com>
7940 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
7942 2019-01-04 Jakub Jelinek <jakub@redhat.com>
7944 * gdbinit.in: Turn off pagination for the skip commands, restore
7945 it to previous state afterwards.
7947 2019-01-04 Jakub Jelinek <jakub@redhat.com>
7950 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
7951 of GET_MODE (opN) as modes of the libcall arguments.
7953 2019-01-04 Jan Beulich <jbeulich@suse.com>
7955 * config/i386/sse.md
7956 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
7957 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
7958 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
7959 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
7960 avx512f_vmcmp<mode>3<round_saeonly_name>,
7961 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
7962 avx512f_maskcmp<mode>3,
7963 <avx512>_cvt<ssemodesuffix>2mask<mode>,
7964 <avx512>_cvt<ssemodesuffix>2mask<mode>,
7965 *<avx512>_cvtmask2<ssemodesuffix><mode>,
7966 *<avx512>_cvtmask2<ssemodesuffix><mode>,
7967 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
7968 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
7969 <avx512>_gt<mode>3<mask_scalar_merge_name>,
7970 <avx512>_gt<mode>3<mask_scalar_merge_name>,
7971 <avx512>_testm<mode>3<mask_scalar_merge_name>,
7972 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
7973 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
7974 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
7975 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
7976 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
7977 avx512cd_maskb_vec_dup<mode>,
7978 avx512cd_maskw_vec_dup<mode>,
7979 avx512dq_fpclass<mode><mask_scalar_merge_name>,
7980 avx512dq_vmfpclass<mode>,
7981 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
7984 2019-01-03 Martin Sebor <msebor@redhat.com>
7986 PR tree-optimization/88659
7987 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
7989 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
7991 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
7992 unaligned vsx and avoid lxvd2x/stxvd2x.
7993 (gen_lvx_v4si_move): New function.
7995 2019-01-03 Tom de Vries <tdevries@suse.de>
7997 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
7998 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
8000 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
8002 2019-01-03 Tom de Vries <tdevries@suse.de>
8004 * config/nvptx/nvptx.c (struct offload_attrs): New.
8005 (populate_offload_attrs): New function. Factor mask extraction out of
8006 nvptx_reorg. Add extraction of dimensions.
8007 (nvptx_reorg): Use populate_offload_attrs.
8009 2019-01-03 Tom de Vries <tdevries@suse.de>
8011 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
8012 cases for oacc_min_dims_p and routine_p. Add asserts for
8013 oacc_default_dims_p and offload_region_p.
8015 2019-01-03 Tom de Vries <tdevries@suse.de>
8017 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
8019 (nvptx_goacc_validate_dims): ... here.
8021 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
8023 PR tree-optimization/85574
8024 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
8026 (struct ssa_equip_hash_traits): Declare.
8027 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
8029 2019-01-03 Jakub Jelinek <jakub@redhat.com>
8032 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
8033 change it to qualified_type.
8035 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
8037 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
8038 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
8040 2019-01-02 Martin Sebor <msebor@redhat.com>
8041 Jeff Law <law@redhat.com>
8043 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
8044 (get_range_strlen_tree): Update appropriately.
8046 * gimple-fold.h (get_range_strlen): Drop unused last argument.
8048 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
8049 rather than set_range_info.
8050 * tree-ssa-strlen.c (set_strlen_range): Extracted from
8051 maybe_set_strlen_range. Handle potentially boundary crossing
8052 cases more conservatively.
8053 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
8054 Call set_strlen_range.
8055 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
8058 * gimple-fold.c (get_range_strlen): Update prototype to no longer
8059 need the flexp argument.
8060 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
8061 from calls to get_range_strlen. Update comments. Just update
8062 VAL for an unterminated const char array and let the reset of the
8063 code handle it normally. No longer try to set *flexp. Adjust
8065 (get_range_strlen): Update for the new get_range_strlen API.
8066 (get_maxval_strlen): Similarly.
8067 (gimple_fold_builtin_strlen): Handle update meaning of return value
8068 from get_range_strlen.
8069 * gimple-ssa-sprintf.c (get_string_length): Update for the new
8070 get_range_strlen API.
8072 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
8075 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
8076 false at WPA time when body was removed.
8078 2019-01-02 Martin Liska <mliska@suse.cz>
8080 PR tree-optimization/88650
8081 * predict.c (set_even_probabilities): Calculate probability
8082 remainer only when really used.
8084 2019-01-02 Richard Biener <rguenther@suse.de>
8087 * tree-data-ref.c (analyze_subscript_affine_affine): Use
8088 widest_ints when mangling max_stmt_execution results.
8090 2019-01-02 Richard Biener <rguenther@suse.de>
8092 PR tree-optimization/88621
8093 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
8094 bitfields when canoncalizing.
8096 2019-01-02 Richard Biener <rguenther@suse.de>
8099 * config/i386/x86-tune-costs.h (intel_cost): Adjust
8100 cost of cheap SSE instruction.
8102 2019-01-02 Richard Biener <rguenther@suse.de>
8105 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
8106 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
8108 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
8109 set after UIDs before splitting them.
8111 2019-01-01 Martin Sebor <msebor@redhat.com>
8112 Jeff Law <law@redhat.com>
8114 * gimple-fold.c (get_range_strlen_tree): Record if the computed
8115 length is optimistic. If it is, then arrange to compute the
8116 conservative length as well.
8118 * gimple-fold.h (get_range_strlen): Update prototype.
8119 * builtins.c (check_access): Update call to get_range_strlen to use
8120 c_strlen_data pointer. Change various variable accesses to instead
8121 pull data from the c_strlen_data structure.
8122 (check_strncat_sizes, expand_builtin_strncat): Likewise.
8123 * calls.c (maybe_warn_nonstring_arg): Likewise.
8124 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
8125 minimum length if maximum lengh is unknown.
8126 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
8127 that used c_strlen, it's no longer needed. Restructure slightly.
8128 (format_string): Set unlikely range appropriately.
8129 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
8131 (get_range_strlen): Accept c_strlen_data pointer for external
8132 call sites as well. Pass through to call to internal get_range_strlen.
8133 Adjust minlen, maxlen and maxbound as needed.
8134 (get_maxval_strlen): Update comments.
8135 (gimple_fold_builtin_strlen): Update call to get_range_strlen
8136 to use c_strlen_data pointer. Change variable accesses to instead
8137 use c_strlen_data data members.
8139 * gimple-fold.c (get_range_strlen): Update prototype.
8140 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
8141 local variables. Use pdata to return information to caller.
8142 Update calls to get_range_strlen. Update pdata->maxbound.
8143 (get_range_strlen -- static version): Similarly.
8144 (get_range_strlen -- extern version): Update for internal
8145 get_range_strlen API change. Convert to external data format.
8146 (get_maxval_strlen): Similarly.
8148 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
8150 * coverage.c (get_coverage_counts): Use current_function_decl.
8151 * profile.c (read_thunk_profile): New function.
8152 (branch_prob): Add THUNK parameter.
8153 * tree-profile.c (tree_profiling): Handle thunks.
8154 * value-prof.c (init_node_map): Handle thunks.
8155 * value-prof.h (branch_prob): Upate prototype.
8156 (read_thunk_profile): Declare.
8158 2019-01-01 Jakub Jelinek <jakub@redhat.com>
8160 Update copyright years.
8162 * gcc.c (process_command): Update copyright notice dates.
8163 * gcov-dump.c (print_version): Ditto.
8164 * gcov.c (print_version): Ditto.
8165 * gcov-tool.c (print_version): Ditto.
8166 * gengtype.c (create_file): Ditto.
8167 * doc/cpp.texi: Bump @copying's copyright year.
8168 * doc/cppinternals.texi: Ditto.
8169 * doc/gcc.texi: Ditto.
8170 * doc/gccint.texi: Ditto.
8171 * doc/gcov.texi: Ditto.
8172 * doc/install.texi: Ditto.
8173 * doc/invoke.texi: Ditto.
8175 Copyright (C) 2019 Free Software Foundation, Inc.
8177 Copying and distribution of this file, with or without modification,
8178 are permitted in any medium without royalty provided the copyright
8179 notice and this notice are preserved.