1 2019-01-22 Jakub Jelinek <jakub@redhat.com>
3 PR tree-optimization/88044
4 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
5 is false in the first iteration, but !every_iteration, return false
6 instead of true with niter->niter zero.
8 PR rtl-optimization/88904
9 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
10 any nonequal registers before processing BB_END (b).
13 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
15 (expand_binop_directly, expand_doubleword_clz,
16 expand_doubleword_popcount, expand_ctz, expand_ffs,
17 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
19 PR rtl-optimization/49429
21 PR rtl-optimization/86334
23 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
24 addressable from here...
25 (emit_block_op_via_libcall): ... to here.
27 2019-01-22 Richard Biener <rguenther@suse.de>
29 * tree-vect-loop.c (vect_analyze_loop_operations): Use
30 auto_vec for cost vector to fix memleak.
31 (vectorize_fold_left_reduction): Properly gather SLP defs.
32 (vectorizable_comparison): Do not swap operands to properly
35 2019-01-22 Alan Modra <amodra@gmail.com>
38 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
39 stays a reg. Allow a const_int.
40 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
41 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
42 (IS_NOMARK_TLSGETADDR): Define.
43 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
44 (rs6000_output_tlsargs): New function.
45 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
46 __tls_get_addr call takes an arg.
47 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
48 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
50 (call_value_nonlocal_sysv): ..or here, delete split.
51 (tls_gdld_nomark): Delete.
52 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
53 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
54 (call_value_nonlocal_sysv): Likewise.
55 (call_value_nonlocal_sysv_secure): Likewise.
56 (call_value_nonlocal_aix): Likewise.
57 (call_value_indirect_aix): Likewise.
58 (call_value_indirect_elfv2): Likewise.
59 (call_value_local32, call_value_local64): Disable for no-mark tls.
60 (call_value_local_aix): Likewise.
62 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
65 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
66 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
68 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
70 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
71 string contents as hash_map keys.
73 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
76 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
77 for rvalue context. Handle rvalues correctly. Use min_align_of_type
78 instead of TYPE_ALIGN.
79 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
80 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
81 pointer from TYPE_STUB_DECL.
83 2019-01-21 Richard Biener <rguenther@suse.de>
85 PR tree-optimization/88934
86 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
87 at the possibly non-constant operand.
88 (vect_get_constant_vectors): Adjust.
90 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
93 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
94 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
95 instead of _X86INTRIN_H_INCLUDED.
96 * onfig/i386/clwbintrin.h: Likewise.
97 * config/i386/pkuintrin.h: Likewise.
98 * config/i386/prfchwintrin.h: Likewise.
99 * config/i386/rdseedintrin.h: Likewise.
100 * config/i386/wbnoinvdintrin.h: Likewise.
101 * config/i386/xsavecintrin.h: Likewise.
102 * config/i386/xsavesintrin.h: Likewise.
103 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
104 * config/i386/xsaveintrin.h: Likewise.
105 * config/i386/xsaveoptintrin.h: Likewise.
106 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
107 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
108 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
109 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
110 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
111 * config/i386/immintrin.h: Here.
113 2019-01-20 Martin Jambor <mjambor@suse.cz>
116 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
118 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
119 aa_walk_budget_p parameter.
120 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
121 walk. Updated all callers.
122 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
123 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
125 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
126 parameter info. Extract info from fbi. Pass fbi to recursive calls
127 and to unmodified_parm.
128 (phi_result_unknown_predicate): New parameter fbi, removed parameter
129 info, updated call to will_be_nonconstant_expr_predicate.
130 (param_change_prob): New parameter fbi, limit AA walking.
131 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
132 calls to various above functions.
133 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
134 parameter. Use it to limit AA walking.
135 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
137 (detect_type_change): New parameter fbi, pass it on to
138 detect_type_change_from_memory_writes.
139 (detect_type_change_ssa): Likewise.
140 (aa_overwalked): Removed.
141 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
142 accordingly, adjust to the neew AA limiting scheme.
143 (parm_ref_data_preserved_p): Likewise.
144 (ipa_compute_jump_functions_for_edge): Adjust call to
146 (ipa_analyze_call_uses): Likewise.
147 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
148 (ipa_analyze_node): Initialize aa_walk_budget.
149 (ipcp_transform_function): Likewise.
150 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
153 2019-01-19 Jakub Jelinek <jakub@redhat.com>
155 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
156 outside of #if CHECKING_P code.
158 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
160 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
161 New function, split out from...
162 (loop_versioning::analyze_stride): ...here.
163 (loop_versioning::find_per_loop_multiplication): Use gassign.
164 (loop_versioning::analyze_term_using_scevs): Return a success code.
165 (loop_versioning::analyze_arbitrary_term): New function.
166 (loop_versioning::analyze_address_fragment): Use
167 analyze_arbitrary_term if all else fails.
169 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
172 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
175 2019-01-18 Richard Biener <rguenther@suse.de>
177 PR tree-optimization/88903
178 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
179 scalar stmts a SLP shift amount is composed of when detecting
182 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
185 * config/arm/arm-cpus.in (mp): New feature.
187 (fgroup ARMv7ve): Add mp and sec features.
188 (arch armv7-a): Add options to allow mp and sec extensions.
189 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
190 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
191 extenstions to the base architecture.
192 (cpu cortex-a8): Add sec extension to the base architecture.
193 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
194 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
195 variants down to the base v7-a varaint.
196 * config/arm/t-multilib (v7_a_arch_variants): New variable.
197 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
198 of permitted extensions for -march=armv7-a and for
199 -mcpu=generic-armv7-a.
201 2019-01-18 Martin Liska <mliska@suse.cz>
203 * params.def: Fix comment.
204 * tree-profile.c (gimple_init_gcov_profiler): Bump function
206 (gimple_gen_ic_func_profiler): Likewise.
208 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
210 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
211 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
212 and put in error checks for stack protector guard options.
213 (aarch64_stack_protect_guard): New.
214 (TARGET_STACK_PROTECT_GUARD): Define.
215 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
216 (reg_stack_protect_address<mode>): New.
217 (stack_protect_set): Adjust for SSP_GLOBAL.
218 (stack_protect_test): Likewise.
219 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
220 (-mstack-protector-guard): Likewise.
221 (-mstack-protector-guard-offset): Likewise.
223 2019-01-18 Jakub Jelinek <jakub@redhat.com>
225 PR tree-optimization/86214
226 * tree-inline.h (struct copy_body_data): Add
227 add_clobbers_to_eh_landing_pads member.
228 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
229 (copy_edges_for_bb): Call it if EH edge destination is <
230 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
231 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
232 if flag_stack_reuse != SR_NONE and clear it afterwards.
234 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
237 * doc/install.texi (with-multilib-list): Document for aarch64.
239 2019-01-18 Jakub Jelinek <jakub@redhat.com>
242 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
243 (("..."))) with ("...").
245 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
247 * doc/extend.texi (Built-in Functions for Memory Model Aware
248 Atomic Operations): Document atomic fetch and nand.
250 2019-01-18 Martin Liska <mliska@suse.cz>
251 Richard Biener <rguenther@suse.de>
254 * cgraph.h (create_version_clone_with_body): Add new argument
256 * cgraphclones.c (cgraph_node::create_version_clone): Add
257 DECL_ATTRIBUTES to a newly created decl. And call
258 valid_attribute_p so that proper cl_target_optimization_node
259 is set for the newly created declaration.
260 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
262 (expand_target_clones): Do not call valid_attribute_p, it must
264 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
267 2019-01-17 Jakub Jelinek <jakub@redhat.com>
270 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
271 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
272 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
274 2019-01-17 Martin Sebor <msebor@redhat.com>
277 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
278 Handle anti-ranges the same as no range at all.
280 2018-01-17 Steve Ellcey <sellcey@cavium.com>
282 * config/aarch64/aarch64.c (cgraph.h): New include.
283 (intl.h): New include.
284 (supported_simd_type): New function.
285 (currently_supported_simd_type): Ditto.
286 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
287 (aarch64_simd_clone_adjust): Ditto.
288 (aarch64_simd_clone_usable): Ditto.
289 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
290 (TARGET_SIMD_CLONE_ADJUST): Ditto.
291 (TARGET_SIMD_CLONE_USABLE): Ditto.
292 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
293 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
296 2019-01-17 Martin Sebor <msebor@redhat.com>
298 PR tree-optimization/88800
299 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
300 NO_WARNING bit here. Avoid folding out-of-bounds calls.
301 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
302 redundant argument. Add new argument and issue diagnostics under
303 its control. Detect out-of-bounds access even with warnings
305 (check_bounds_or_overlap): Change return type. Add argument.
306 (wrestrict_dom_walker::check_call): Adjust.
307 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
308 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
309 check_bounds_or_overlap's return value.
310 (handle_builtin_stxncpy): Same.
311 (handle_builtin_strcat): Same.
313 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
314 Kwok Cheung Yeung <kcy@codesourcery.com>
315 Julian Brown <julian@codesourcery.com>
316 Tom de Vries <tom@codesourcery.com>
318 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
320 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
322 * doc/sourcebuild.texi: Document dg-require-effective-target
323 llvm_binutils and offload_gcn.
325 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
326 Kwok Cheung Yeung <kcy@codesourcery.com>
327 Julian Brown <julian@codesourcery.com>
328 Tom de Vries <tom@codesourcery.com>
330 * doc/sourcebuild.texi: Document dg-required-effective-target
333 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
334 Kwok Cheung Yeung <kcy@codesourcery.com>
335 Julian Brown <julian@codesourcery.com>
336 Tom de Vries <tom@codesourcery.com>
337 Jan Hubicka <hubicka@ucw.cz>
338 Martin Jambor <mjambor@suse.cz>
340 * config.gcc: Add amdgcn*-*-amdhsa configuration.
341 * configure.ac: Check for dlopen.
342 * configure: Regenerate.
344 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
345 Kwok Cheung Yeung <kcy@codesourcery.com>
346 Julian Brown <julian@codesourcery.com>
347 Tom de Vries <tom@codesourcery.com>
348 Jan Hubicka <hubicka@ucw.cz>
349 Martin Jambor <mjambor@suse.cz>
351 * common/config/gcn/gcn-common.c: New file.
352 * config/gcn/driver-gcn.c: New file.
353 * config/gcn/gcn-builtins.def: New file.
354 * config/gcn/gcn-hsa.h: New file.
355 * config/gcn/gcn-modes.def: New file.
356 * config/gcn/gcn-opts.h: New file.
357 * config/gcn/gcn-passes.def: New file.
358 * config/gcn/gcn-protos.h: New file.
359 * config/gcn/gcn-run.c: New file.
360 * config/gcn/gcn-tree.c: New file.
361 * config/gcn/gcn.c: New file.
362 * config/gcn/gcn.h: New file.
363 * config/gcn/gcn.opt: New file.
364 * config/gcn/t-gcn-hsa: New file.
366 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
367 Kwok Cheung Yeung <kcy@codesourcery.com>
368 Julian Brown <julian@codesourcery.com>
369 Tom de Vries <tom@codesourcery.com>
370 Jan Hubicka <hubicka@ucw.cz>
371 Martin Jambor <mjambor@suse.cz>
373 * config/gcn/constraints.md: New file.
374 * config/gcn/gcn-valu.md: New file.
375 * config/gcn/gcn.md: New file.
376 * config/gcn/predicates.md: New file.
378 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
380 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
381 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
382 (stmt_uses_0_or_null_in_undefined_way): Likewise.
383 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
385 2019-01-17 Tamar Christina <tamar.christina@arm.com>
388 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
389 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
390 it and document registers.
392 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
394 * config/aarch64/aarch64.c (ares_tunings): Define.
395 * config/aarch64/aarch64-cores.def (ares): Use the above.
397 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
401 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
403 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
404 (_mm512_fixupimm_round_pd): Update parameters and builtin.
405 (_mm512_maskz_fixupimm_round_pd): Ditto.
406 (_mm512_fixupimm_round_ps): Ditto.
407 (_mm512_maskz_fixupimm_round_ps): Ditto.
408 (_mm_fixupimm_round_sd): Ditto.
409 (_mm_maskz_fixupimm_round_sd): Ditto.
410 (_mm_fixupimm_round_ss): Ditto.
411 (_mm_maskz_fixupimm_round_ss): Ditto.
412 (_mm512_fixupimm_pd): Ditto.
413 (_mm512_maskz_fixupimm_pd): Ditto.
414 (_mm512_fixupimm_ps): Ditto.
415 (_mm512_maskz_fixupimm_ps): Ditto.
416 (_mm_fixupimm_sd): Ditto.
417 (_mm_maskz_fixupimm_sd): Ditto.
418 (_mm_fixupimm_ss): Ditto.
419 (_mm_maskz_fixupimm_ss): Ditto.
420 (_mm512_mask_fixupimm_round_pd): Update builtin.
421 (_mm512_mask_fixupimm_round_ps): Ditto.
422 (_mm_mask_fixupimm_round_sd): Ditto.
423 (_mm_mask_fixupimm_round_ss): Ditto.
424 (_mm512_mask_fixupimm_pd): Ditto.
425 (_mm512_mask_fixupimm_ps): Ditto.
426 (_mm_mask_fixupimm_sd): Ditto.
427 (_mm_mask_fixupimm_ss): Ditto.
428 * config/i386/avx512vlintrin.h:
429 (_mm256_fixupimm_pd): Update parameters and builtin.
430 (_mm256_maskz_fixupimm_pd): Ditto.
431 (_mm256_fixupimm_ps): Ditto.
432 (_mm256_maskz_fixupimm_ps): Ditto.
433 (_mm_fixupimm_pd): Ditto.
434 (_mm_maskz_fixupimm_pd): Ditto.
435 (_mm_fixupimm_ps): Ditto.
436 (_mm_maskz_fixupimm_ps): Ditto.
437 (_mm256_mask_fixupimm_pd): Update builtin.
438 (_mm256_mask_fixupimm_ps): Ditto.
439 (_mm_mask_fixupimm_pd): Ditto.
440 (_mm_mask_fixupimm_ps): Ditto.
441 * config/i386/i386-builtin-types.def: Add new types and remove useless ones.
442 * config/i386/i386-builtin.def: Update builtin definitions.
443 * config/i386/i386.c: Handle new builtin types and remove useless ones.
444 * config/i386/sse.md: Update VFIXUPIMM* patterns.
445 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
446 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
447 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
448 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
449 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
450 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
451 * config/i386/subst.md:
452 (round_saeonly_sd_mask_operand4): Add new subst_attr.
453 (round_saeonly_sd_mask_op4): Ditto.
454 (round_saeonly_expand_operand5): Ditto.
455 (round_saeonly_expand): Update.
457 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
461 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
463 * config/i386/sse.md: Combine VFIXUPIMM* patterns
464 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
465 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
466 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
467 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
468 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
469 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
471 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
475 2018-12-15 Jakub Jelinek <jakub@redhat.com>
478 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
479 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
480 instead of UNSPEC_FIXUPIMM.
482 2019-01-17 Richard Biener <rguenther@suse.de>
485 * dwarf2out.c (want_pubnames): Never generate pubnames sections
486 and friends for the LTO part of debug info.
488 2019-01-17 Jakub Jelinek <jakub@redhat.com>
490 PR tree-optimization/86214
491 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
494 PR rtl-optimization/88870
495 * dce.c (deletable_insn_p): Never delete const/pure calls that can
496 throw if we can't alter the cfg or delete dead exceptions.
497 (mark_insn): Don't call find_call_stack_args for such calls.
499 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
501 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
502 prototypes for vec_st.
503 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
504 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
505 mainly on signed/unsigned long long and double.
507 2019-01-16 David Malcolm <dmalcolm@redhat.com>
510 * combine.c (delete_noop_moves): Convert to "bool" return,
511 returning true if any edges are eliminated.
512 (combine_instructions): Also return true if delete_noop_moves
515 2019-01-16 Tamar Christina <tamar.christina@arm.com>
517 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
518 correct max nunits for endian swap.
519 (aarch64_expand_fcmla_builtin): Correct subreg code.
520 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
521 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
524 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
526 * config/alpha/alpha.c (alpha_gimplify_va_arg):
527 Handle split indirect COMPLEX_TYPE arguments.
529 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
532 * config/aarch64/aarch64-modes.def: Add comment about how the carry
533 bit is set by add and compare.
534 (CC_ADC): New CC_MODE.
535 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
536 to cache the code and mode of X. Adjust the shape of a CC_Cmode
537 comparison. Add detection for CC_ADCmode.
538 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
540 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
541 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
542 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
543 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
544 to eliminate the need for zero-extending the operands.
545 (add<mode>3_compareC_imm): Delete. Merge into ...
546 (add<mode>3_compareC): ... this. Restructure the comparison to
547 eliminate the need for zero-extending the operands.
548 (add<mode>3_carryin): Use LTU for the overflow detection.
549 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
550 Reexpress comparison for overflow.
551 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
552 (add<mode>3_carryinC): Likewise.
553 (add<mode>3_carryinV): Use LTU for carry between partials.
554 * config/aarch64/predicates.md (aarch64_carry_operation): Update
555 handling of CC_Cmode and add CC_ADCmode.
556 (aarch64_borrow_operation): Likewise.
558 2019-01-16 Tamar Christina <tamar.christina@arm.com>
560 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
561 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
562 * config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
563 neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
565 2019-01-16 Martin Liska <mliska@suse.cz>
567 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
569 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
571 * gcc.c (add_sysrooted_hdrs_prefix): New function.
572 (path_prefix_reset): Move up in the source file.
573 (find_fortran_preinclude_file): Make complex search for the
574 fortran header files.
576 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
578 * godump.c (go_output_typedef): When outputting a typedef, refer
579 to the underlying type by its name and not its structure.
581 2019-01-15 David Malcolm <dmalcolm@redhat.com>
584 * tree.c (build_function_type): Assert that arg_types is not
587 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
590 * doc/extend.texi: Document that listing the stack pointer in the
591 clobber list of an asm is a deprecated feature.
592 * common.opt (Wdeprecated): Moved from c-family/c.opt.
593 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
594 warning instead of an error for clobbers of the stack pointer.
595 Add a note explaining why.
597 2019-01-15 Richard Biener <rguenther@suse.de>
600 * dwarf2out.c (gen_member_die): Do not generate inheritance
603 2019-01-15 Richard Biener <rguenther@suse.de>
605 PR tree-optimization/88855
606 * tree-if-conv.c (combine_blocks): Collect
607 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
609 2019-01-15 Tom de Vries <tdevries@suse.de>
612 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
613 lhs == NULL_TREE for gang-level reduction.
615 2019-01-15 Richard Biener <rguenther@suse.de>
616 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
619 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
620 return true if SSA_NAME is already marked in visited bitmap.
621 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
623 2019-01-15 Jakub Jelinek <jakub@redhat.com>
625 PR tree-optimization/88775
626 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
627 equal == 0 equality pointer comparisons some more if compared in
628 integral types and either one points to an automatic var and the
629 other to a global, or we can prove at least one points to the middle
630 or both point to start or both point to end.
632 2019-01-14 Andi Kleen <ak@linux.intel.com>
634 * Makefile.in: Lower autofdo sampling rate by 10x.
635 * Makefile.tpl: Dito.
637 2019-01-14 Tom Honermann <tom@honermann.net>
639 * defaults.h: Define CHAR8_TYPE.
641 2019-01-14 Martin Sebor <msebor@redhat.com>
644 * doc/extend.texi (Darwin Format Checks): Clarify.
646 2019-01-14 Richard Biener <rguenther@suse.de>
648 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
649 whether we are in (simplify ...) or (match ...) context.
651 2019-01-14 Jakub Jelinek <jakub@redhat.com>
653 PR rtl-optimization/88796
654 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
655 * cfgexpand.c (stack_protect_prologue): Initialize
656 crtl->stack_protect_guard_decl.
657 * function.c (stack_protect_epilogue): Use it instead of calling
658 targetm.stack_protect_guard again.
659 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
660 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
661 crtl->stack_protect_guard_decl.
662 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
663 on the returned MEM_EXPR.
665 2019-01-12 Tom de Vries <tdevries@suse.de>
667 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
668 vector length using -fopenacc-dim.
670 2019-01-12 Tom de Vries <tdevries@suse.de>
672 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
673 lengths into account.
675 2019-01-12 Svante Signell <svante.signell@gmail.com>
677 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
678 (TARGET_CAN_SPLIT_STACK): Define.
679 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
681 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
683 * params.def (inline-unit-growth): Set to 40.
685 2019-01-12 Jakub Jelinek <jakub@redhat.com>
687 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
689 2019-01-12 Tom de Vries <tdevries@suse.de>
691 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
692 region calling vector-partitionable routine, set default_vector_length
695 2019-01-12 Tom de Vries <tdevries@suse.de>
697 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
698 variable default_vector_length.
700 2019-01-12 Tom de Vries <tdevries@suse.de>
703 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
704 from oacc_default_dims, as oacc_validate_dims would do it, and apply
707 2019-01-12 Tom de Vries <tdevries@suse.de>
709 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
710 (nvptx_goacc_validate_dims): Add used parameter.
711 * doc/tm.texi: Regenerate.
712 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
713 argument to call to targetm.goacc.validate_dims.
714 (default_goacc_validate_dims): Add used
716 * target.def (validate_dims): Add used parameter in DEFHOOK.
717 * targhooks.h (default_goacc_validate_dims): Add used parameter.
719 2019-01-11 Jakub Jelinek <jakub@redhat.com>
723 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
725 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
726 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
727 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
728 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
730 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
732 PR rtl-optimization/87305
734 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
735 for little endian pseudos used as paradoxical subreg.
737 2019-01-11 Jakub Jelinek <jakub@redhat.com>
739 PR tree-optimization/88693
740 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
741 for STRING_CSTs that don't contain any NUL characters in the first
742 TREE_STRING_LENGTH bytes.
744 2019-01-11 Alan Modra <amodra@gmail.com>
748 * genattrtab.c (min_fn): Don't translate values.
749 (min_attr_value): Return INT_MAX when the value can't be calculated.
750 Return minimum among any values that can be calculated.
751 (max_attr_value): Adjust.
753 2019-01-11 Jakub Jelinek <jakub@redhat.com>
755 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
757 2019-01-11 Steve Ellcey <sellcey@marvell.com>
759 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
760 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
761 (aarch64_return_call_with_max_clobbers): New function.
762 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
763 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
765 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
766 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
767 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
768 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
769 * cselib.c (cselib_process_insn): Add argument to
770 targetm.hard_regno_call_part_clobbered call.
771 * ira-conflicts.c (ira_build_conflicts): Ditto.
772 * ira-costs.c (ira_tune_allocno_costs): Ditto.
773 * lra-constraints.c (inherit_reload_reg): Ditto.
774 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
775 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
776 argument. Call targetm.return_call_with_max_clobbers.
777 Add argument to targetm.hard_regno_call_part_clobbered call.
778 (calls_have_same_clobbers_p): New function.
779 (process_bb_lives): Add call_insn and last_call_insn variables.
780 Pass call_insn to check_pseudos_live_through_calls.
781 Modify if stmt to check targetm.return_call_with_max_clobbers.
782 Update setting of flush variable.
783 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
785 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
786 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
787 targetm.hard_regno_call_part_clobbered call.
788 * reginfo.c (choose_hard_reg_mode): Ditto.
789 * regrename.c (check_new_reg_p): Ditto.
790 * reload.c (find_equiv_reg): Ditto.
791 * reload1.c (emit_reload_insns): Ditto.
792 * sched-deps.c (deps_analyze_insn): Ditto.
793 * sel-sched.c (init_regs_for_mode): Ditto.
794 (mark_unavailable_hard_regs): Ditto.
795 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
796 * target.def (hard_regno_call_part_clobbered): Add insn argument.
797 (return_call_with_max_clobbers): New target function.
798 * doc/tm.texi: Regenerate.
799 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
800 * hooks.c (hook_bool_uint_mode_false): Change to
801 hook_bool_insn_uint_mode_false.
802 * hooks.h (hook_bool_uint_mode_false): Ditto.
804 2019-01-11 Steve Ellcey <sellcey@marvell.com>
806 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
807 (aarch64_remove_extra_call_preserved_regs): New function.
808 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
809 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
810 * doc/tm.texi: Regenerate.
811 * final.c (get_call_reg_set_usage): Call new hook.
812 * target.def (remove_extra_call_preserved_regs): New hook.
813 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
814 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
816 2019-01-11 Jakub Jelinek <jakub@redhat.com>
819 * passes.c (finish_optimization_passes): Call print_combine_total_stats
820 inside of pass_combine_1 dump rather than pass_profile_1.
822 2019-01-11 Tom de Vries <tdevries@suse.de>
824 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
825 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
826 (PTX_NUM_PER_WORKER_BARRIERS): Define.
827 (nvptx_apply_dim_limits): Prevent vector_length 64 and
830 2019-01-11 Tom de Vries <tdevries@suse.de>
832 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
834 2019-01-11 Jan Beulich <jbeulich@suse.com>
836 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
837 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
838 sse2_cvtsi2sd): Add {l}.
839 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
842 2019-01-10 Jakub Jelinek <jakub@redhat.com>
845 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
847 (*float<floatunssuffix>v2div2sf2): New define_insn.
848 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
849 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
850 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
851 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
852 match_operands with "const0_operand" "C".
854 2019-01-10 Tamar Christina <tamar.christina@arm.com>
856 * config/aarch64/aarch64-builtins.c
857 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
858 (aarch64_init_simd_builtins): ...Here
860 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
862 PR rtl-optimization/87305
864 (setup_live_pseudos_and_spill_after_risky_transforms): Check
865 allocation for big endian pseudos used as paradoxical subregs and
866 spill them if it is wrong.
867 * lra-constraints.c (lra_constraints): Add a comment.
869 2019-01-10 Richard Biener <rguenther@suse.de>
871 PR tree-optimization/88792
872 * tree-ssa-pre.c (get_representative_for): Do not return a
875 2019-01-10 Jakub Jelinek <jakub@redhat.com>
879 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
880 (assign_parm_setup_block): Do the argument slot realignment here
883 2019-01-10 Stefan Agner <stefan@agner.ch>
886 * config/arm/arm.c (arm_option_override_internal): Force
887 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
889 2019-01-10 Jakub Jelinek <jakub@redhat.com>
892 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
895 2019-01-10 Tamar Christina <tamar.christina@arm.com>
897 * config/arm/arm-builtins.c
898 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
899 (MAC_LANE_PAIR_QUALIFIERS): New.
900 (arm_expand_builtin_args): Use it.
901 (arm_expand_builtin_1): Likewise.
902 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
903 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
904 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
905 * config/arm/arm_neon.h:
906 (vcadd_rot90_f16): New.
907 (vcaddq_rot90_f16): New.
908 (vcadd_rot270_f16): New.
909 (vcaddq_rot270_f16): New.
912 (vcmla_lane_f16): New.
913 (vcmla_laneq_f16): New.
914 (vcmlaq_lane_f16): New.
915 (vcmlaq_laneq_f16): New.
916 (vcmla_rot90_f16): New.
917 (vcmlaq_rot90_f16): New.
918 (vcmla_rot90_lane_f16): New.
919 (vcmla_rot90_laneq_f16): New.
920 (vcmlaq_rot90_lane_f16): New.
921 (vcmlaq_rot90_laneq_f16): New.
922 (vcmla_rot180_f16): New.
923 (vcmlaq_rot180_f16): New.
924 (vcmla_rot180_lane_f16): New.
925 (vcmla_rot180_laneq_f16): New.
926 (vcmlaq_rot180_lane_f16): New.
927 (vcmlaq_rot180_laneq_f16): New.
928 (vcmla_rot270_f16): New.
929 (vcmlaq_rot270_f16): New.
930 (vcmla_rot270_lane_f16): New.
931 (vcmla_rot270_laneq_f16): New.
932 (vcmlaq_rot270_lane_f16): New.
933 (vcmlaq_rot270_laneq_f16): New.
934 (vcadd_rot90_f32): New.
935 (vcaddq_rot90_f32): New.
936 (vcadd_rot270_f32): New.
937 (vcaddq_rot270_f32): New.
940 (vcmla_lane_f32): New.
941 (vcmla_laneq_f32): New.
942 (vcmlaq_lane_f32): New.
943 (vcmlaq_laneq_f32): New.
944 (vcmla_rot90_f32): New.
945 (vcmlaq_rot90_f32): New.
946 (vcmla_rot90_lane_f32): New.
947 (vcmla_rot90_laneq_f32): New.
948 (vcmlaq_rot90_lane_f32): New.
949 (vcmlaq_rot90_laneq_f32): New.
950 (vcmla_rot180_f32): New.
951 (vcmlaq_rot180_f32): New.
952 (vcmla_rot180_lane_f32): New.
953 (vcmla_rot180_laneq_f32): New.
954 (vcmlaq_rot180_lane_f32): New.
955 (vcmlaq_rot180_laneq_f32): New.
956 (vcmla_rot270_f32): New.
957 (vcmlaq_rot270_f32): New.
958 (vcmla_rot270_lane_f32): New.
959 (vcmla_rot270_laneq_f32): New.
960 (vcmlaq_rot270_lane_f32): New.
961 (vcmlaq_rot270_laneq_f32): New.
962 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
963 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180, vcmla_lane270,
964 vcmla_laneq0, vcmla_laneq90, vcmla_laneq180, vcmla_laneq270,
965 vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180, vcmlaq_lane270): New.
966 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
967 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
968 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
969 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
970 (arm_option_reconfigure_globals): Use them.
971 * config/arm/iterators.md (VDF, VQ_HSF): New.
973 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
974 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>): New.
975 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
976 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
978 2019-01-10 Tamar Christina <tamar.christina@arm.com>
980 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_lane_pair_index.
981 (emit-rtl.h): Include.
982 (TYPES_QUADOP_LANE_PAIR): New.
983 (aarch64_simd_expand_args): Use it.
984 (aarch64_simd_expand_builtin): Likewise.
985 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): New.
986 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
987 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
988 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
989 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
990 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
991 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
992 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
993 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
994 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
995 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
996 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add __ARM_FEATURE_COMPLEX.
997 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0, fcmla90,
998 fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, fcmla_lane270,
999 fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, fcmla_laneq270,
1000 fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, fcmlaq_lane270): New.
1001 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
1002 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,aarch64_fcadd<rot><mode>,
1003 aarch64_fcmla<rot><mode>): New.
1004 * config/aarch64/arm_neon.h:
1005 (vcadd_rot90_f16): New.
1006 (vcaddq_rot90_f16): New.
1007 (vcadd_rot270_f16): New.
1008 (vcaddq_rot270_f16): New.
1011 (vcmla_lane_f16): New.
1012 (vcmla_laneq_f16): New.
1013 (vcmlaq_lane_f16): New.
1014 (vcmlaq_rot90_lane_f16): New.
1015 (vcmla_rot90_laneq_f16): New.
1016 (vcmla_rot90_lane_f16): New.
1017 (vcmlaq_rot90_f16): New.
1018 (vcmla_rot90_f16): New.
1019 (vcmlaq_laneq_f16): New.
1020 (vcmla_rot180_laneq_f16): New.
1021 (vcmla_rot180_lane_f16): New.
1022 (vcmlaq_rot180_f16): New.
1023 (vcmla_rot180_f16): New.
1024 (vcmlaq_rot90_laneq_f16): New.
1025 (vcmlaq_rot270_laneq_f16): New.
1026 (vcmlaq_rot270_lane_f16): New.
1027 (vcmla_rot270_laneq_f16): New.
1028 (vcmlaq_rot270_f16): New.
1029 (vcmla_rot270_f16): New.
1030 (vcmlaq_rot180_laneq_f16): New.
1031 (vcmlaq_rot180_lane_f16): New.
1032 (vcmla_rot270_lane_f16): New.
1033 (vcadd_rot90_f32): New.
1034 (vcaddq_rot90_f32): New.
1035 (vcaddq_rot90_f64): New.
1036 (vcadd_rot270_f32): New.
1037 (vcaddq_rot270_f32): New.
1038 (vcaddq_rot270_f64): New.
1042 (vcmla_lane_f32): New.
1043 (vcmla_laneq_f32): New.
1044 (vcmlaq_lane_f32): New.
1045 (vcmlaq_laneq_f32): New.
1046 (vcmla_rot90_f32): New.
1047 (vcmlaq_rot90_f32): New.
1048 (vcmlaq_rot90_f64): New.
1049 (vcmla_rot90_lane_f32): New.
1050 (vcmla_rot90_laneq_f32): New.
1051 (vcmlaq_rot90_lane_f32): New.
1052 (vcmlaq_rot90_laneq_f32): New.
1053 (vcmla_rot180_f32): New.
1054 (vcmlaq_rot180_f32): New.
1055 (vcmlaq_rot180_f64): New.
1056 (vcmla_rot180_lane_f32): New.
1057 (vcmla_rot180_laneq_f32): New.
1058 (vcmlaq_rot180_lane_f32): New.
1059 (vcmlaq_rot180_laneq_f32): New.
1060 (vcmla_rot270_f32): New.
1061 (vcmlaq_rot270_f32): New.
1062 (vcmlaq_rot270_f64): New.
1063 (vcmla_rot270_lane_f32): New.
1064 (vcmla_rot270_laneq_f32): New.
1065 (vcmlaq_rot270_lane_f32): New.
1066 (vcmlaq_rot270_laneq_f32): New.
1067 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
1068 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
1069 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
1070 (FCADD, FCMLA): New.
1072 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
1074 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
1078 * config/pa/pa.c: Change "can not" to "cannot".
1079 * gimple-ssa-evrp-analyze.c: Likewise.
1080 * ipa-icf.c: Likewise.
1081 * ipa-polymorphic-call.c: Likewise.
1082 * ipa-pure-const.c: Likewise.
1083 * lra-constraints.c: Likewise.
1084 * lra-remat.c: Likewise.
1085 * reload1.c: Likewise.
1086 * reorg.c: Likewise.
1087 * tree-ssa-uninit.c: Likewise.
1089 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
1093 * Makefile.in: Mechanically replace "can not" with "cannot".
1094 * alias.c: Likewise.
1095 * builtins.c: Likewise.
1096 * calls.c: Likewise.
1097 * cgraph.c: Likewise.
1098 * cgraph.h: Likewise.
1099 * cgraphclones.c: Likewise.
1100 * cgraphunit.c: Likewise.
1101 * combine-stack-adj.c: Likewise.
1102 * combine.c: Likewise.
1103 * common/config/i386/i386-common.c: Likewise.
1104 * config/aarch64/aarch64.c: Likewise.
1105 * config/alpha/sync.md: Likewise.
1106 * config/arc/arc.c: Likewise.
1107 * config/arc/predicates.md: Likewise.
1108 * config/arm/arm-c.c: Likewise.
1109 * config/arm/arm.c: Likewise.
1110 * config/arm/arm.h: Likewise.
1111 * config/arm/arm.md: Likewise.
1112 * config/arm/cortex-r4f.md: Likewise.
1113 * config/csky/csky.c: Likewise.
1114 * config/csky/csky.h: Likewise.
1115 * config/darwin-f.c: Likewise.
1116 * config/epiphany/epiphany.md: Likewise.
1117 * config/i386/i386.c: Likewise.
1118 * config/i386/sol2.h: Likewise.
1119 * config/m68k/m68k.c: Likewise.
1120 * config/mcore/mcore.h: Likewise.
1121 * config/microblaze/microblaze.md: Likewise.
1122 * config/mips/20kc.md: Likewise.
1123 * config/mips/sb1.md: Likewise.
1124 * config/nds32/nds32.c: Likewise.
1125 * config/nds32/predicates.md: Likewise.
1126 * config/pa/pa.c: Likewise.
1127 * config/rs6000/e300c2c3.md: Likewise.
1128 * config/rs6000/rs6000.c: Likewise.
1129 * config/s390/s390.h: Likewise.
1130 * config/sh/sh.c: Likewise.
1131 * config/sh/sh.md: Likewise.
1132 * config/spu/vmx2spu.h: Likewise.
1133 * cprop.c: Likewise.
1134 * dbxout.c: Likewise.
1135 * df-scan.c: Likewise.
1136 * doc/cfg.texi: Likewise.
1137 * doc/extend.texi: Likewise.
1138 * doc/fragments.texi: Likewise.
1139 * doc/gty.texi: Likewise.
1140 * doc/invoke.texi: Likewise.
1141 * doc/lto.texi: Likewise.
1142 * doc/md.texi: Likewise.
1143 * doc/objc.texi: Likewise.
1144 * doc/rtl.texi: Likewise.
1145 * doc/tm.texi: Likewise.
1147 * emit-rtl.c: Likewise.
1148 * emit-rtl.h: Likewise.
1149 * except.c: Likewise.
1150 * expmed.c: Likewise.
1152 * fold-const.c: Likewise.
1153 * genautomata.c: Likewise.
1154 * gimple-fold.c: Likewise.
1155 * hard-reg-set.h: Likewise.
1156 * ifcvt.c: Likewise.
1157 * ipa-comdats.c: Likewise.
1158 * ipa-cp.c: Likewise.
1159 * ipa-devirt.c: Likewise.
1160 * ipa-fnsummary.c: Likewise.
1161 * ipa-icf.c: Likewise.
1162 * ipa-inline-transform.c: Likewise.
1163 * ipa-inline.c: Likewise.
1164 * ipa-polymorphic-call.c: Likewise.
1165 * ipa-profile.c: Likewise.
1166 * ipa-prop.c: Likewise.
1167 * ipa-pure-const.c: Likewise.
1168 * ipa-reference.c: Likewise.
1169 * ipa-split.c: Likewise.
1170 * ipa-visibility.c: Likewise.
1172 * ira-build.c: Likewise.
1173 * ira-color.c: Likewise.
1174 * ira-conflicts.c: Likewise.
1175 * ira-costs.c: Likewise.
1176 * ira-int.h: Likewise.
1177 * ira-lives.c: Likewise.
1180 * loop-invariant.c: Likewise.
1181 * loop-unroll.c: Likewise.
1182 * lower-subreg.c: Likewise.
1183 * lra-assigns.c: Likewise.
1184 * lra-constraints.c: Likewise.
1185 * lra-eliminations.c: Likewise.
1186 * lra-lives.c: Likewise.
1187 * lra-remat.c: Likewise.
1188 * lra-spills.c: Likewise.
1190 * lto-cgraph.c: Likewise.
1191 * lto-streamer-out.c: Likewise.
1192 * postreload-gcse.c: Likewise.
1193 * predict.c: Likewise.
1194 * profile-count.h: Likewise.
1195 * profile.c: Likewise.
1196 * recog.c: Likewise.
1198 * reload.c: Likewise.
1199 * reload1.c: Likewise.
1200 * reorg.c: Likewise.
1201 * resource.c: Likewise.
1202 * rtl.def: Likewise.
1204 * rtlanal.c: Likewise.
1205 * sched-deps.c: Likewise.
1206 * sched-ebb.c: Likewise.
1207 * sched-rgn.c: Likewise.
1208 * sel-sched-ir.c: Likewise.
1209 * sel-sched.c: Likewise.
1210 * shrink-wrap.c: Likewise.
1211 * simplify-rtx.c: Likewise.
1212 * symtab.c: Likewise.
1213 * target.def: Likewise.
1214 * toplev.c: Likewise.
1215 * tree-call-cdce.c: Likewise.
1216 * tree-cfg.c: Likewise.
1217 * tree-complex.c: Likewise.
1218 * tree-core.h: Likewise.
1219 * tree-eh.c: Likewise.
1220 * tree-inline.c: Likewise.
1221 * tree-loop-distribution.c: Likewise.
1222 * tree-nrv.c: Likewise.
1223 * tree-profile.c: Likewise.
1224 * tree-sra.c: Likewise.
1225 * tree-ssa-alias.c: Likewise.
1226 * tree-ssa-dce.c: Likewise.
1227 * tree-ssa-dom.c: Likewise.
1228 * tree-ssa-forwprop.c: Likewise.
1229 * tree-ssa-loop-im.c: Likewise.
1230 * tree-ssa-loop-ivcanon.c: Likewise.
1231 * tree-ssa-loop-ivopts.c: Likewise.
1232 * tree-ssa-loop-niter.c: Likewise.
1233 * tree-ssa-phionlycprop.c: Likewise.
1234 * tree-ssa-phiopt.c: Likewise.
1235 * tree-ssa-propagate.c: Likewise.
1236 * tree-ssa-threadedge.c: Likewise.
1237 * tree-ssa-threadupdate.c: Likewise.
1238 * tree-ssa-uninit.c: Likewise.
1239 * tree-ssanames.c: Likewise.
1240 * tree-streamer-out.c: Likewise.
1243 * vr-values.c: Likewise.
1245 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
1247 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
1248 (ix86_split_xorsign): Ditto.
1249 * config/i386/i386.c (ix86_expand_xorsign): New function.
1250 (ix86_split_xorsign): Ditto.
1251 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
1252 (xorsign<mode>3): New expander.
1253 (xorsign<mode>3_1): New insn_and_split pattern.
1254 * config/i386/sse.md (xorsign<mode>3): New expander.
1256 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
1258 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
1259 (*tablejump_sp64): Likewise.
1260 (*tablejump<P:mode>): ...this.
1261 (*call_address_sp32): Merge into...
1262 (*call_address_sp64): Likewise.
1263 (*call_address<P:mode>): ...this.
1264 (*call_symbolic_sp32): Merge into...
1265 (*call_symbolic_sp64): Likewise.
1266 (*call_symbolic<P:mode>): ...this.
1267 (call_value): Remove constraint and add predicate.
1268 (*call_value_address_sp32): Merge into...
1269 (*call_value_address_sp64): Likewise.
1270 (*call_value_address<P:mode>): ...this.
1271 (*call_value_symbolic_sp32): Merge into...
1272 (*call_value_symbolic_sp64): Likewise.
1273 (*call_value_symbolic<P:mode>): ...this.
1274 (*sibcall_symbolic_sp32): Merge into...
1275 (*sibcall_symbolic_sp64): Likewise.
1276 (*sibcall_symbolic<P:mode>): ...this.
1277 (sibcall_value): Remove constraint and add predicate.
1278 (*sibcall_value_symbolic_sp32): Merge into...
1279 (*sibcall_value_symbolic_sp64): Likewise.
1280 (*sibcall_value_symbolic<P:mode>): ...this.
1281 (window_save): Minor tweak.
1282 (*branch_sp32): Merge into...
1283 (*branch_sp64): Likewise.
1284 (*branch<P:mode>): ...this.
1286 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
1287 James Clarke <jrtc27@jrtc27.com>
1290 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
1291 consistently in TLS address generation and adjust code to the renaming
1292 of patterns. Mark calls to __tls_get_addr as const.
1293 * config/sparc/sparc.md (tgd_hi22): Turn into...
1294 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
1295 (tgd_lo10): Turn into...
1296 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
1297 (tgd_add32): Merge into...
1298 (tgd_add64): Likewise.
1299 (tgd_add<P:mode>): ...this and use Pmode throughout.
1300 (tldm_hi22): Turn into...
1301 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
1302 (tldm_lo10): Turn into...
1303 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
1304 (tldm_add32): Merge into...
1305 (tldm_add64): Likewise.
1306 (tldm_add<P:mode>): ...this and use Pmode throughout.
1307 (tldm_call32): Merge into...
1308 (tldm_call64): Likewise.
1309 (tldm_call<P:mode>): ...this and use Pmode throughout.
1310 (tldo_hix22): Turn into...
1311 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
1312 (tldo_lox10): Turn into...
1313 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
1314 (tldo_add32): Merge into...
1315 (tldo_add64): Likewise.
1316 (tldo_add<P:mode>): ...this and use Pmode throughout.
1317 (tie_hi22): Turn into...
1318 (tie_hi22<P:mode>): ...this and use Pmode throughout.
1319 (tie_lo10): Turn into...
1320 (tie_lo10<P:mode>): ...this and use Pmode throughout.
1321 (tie_ld64): Use DImode throughout.
1322 (tie_add32): Merge into...
1323 (tie_add64): Likewise.
1324 (tie_add<P:mode>): ...this and use Pmode throughout.
1325 (tle_hix22_sp32): Merge into...
1326 (tle_hix22_sp64): Likewise.
1327 (tle_hix22<P:mode>): ...this and use Pmode throughout.
1328 (tle_lox22_sp32): Merge into...
1329 (tle_lox22_sp64): Likewise.
1330 (tle_lox22<P:mode>): ...this and use Pmode throughout.
1331 (*tldo_ldub_sp32): Merge into...
1332 (*tldo_ldub_sp64): Likewise.
1333 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
1334 (*tldo_ldub1_sp32): Merge into...
1335 (*tldo_ldub1_sp64): Likewise.
1336 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
1337 (*tldo_ldub2_sp32): Merge into...
1338 (*tldo_ldub2_sp64): Likewise.
1339 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
1340 (*tldo_ldsb1_sp32): Merge into...
1341 (*tldo_ldsb1_sp64): Likewise.
1342 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
1343 (*tldo_ldsb2_sp32): Merge into...
1344 (*tldo_ldsb2_sp64): Likewise.
1345 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
1346 (*tldo_ldub3_sp64): Use DImode throughout.
1347 (*tldo_ldsb3_sp64): Likewise.
1348 (*tldo_lduh_sp32): Merge into...
1349 (*tldo_lduh_sp64): Likewise.
1350 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
1351 (*tldo_lduh1_sp32): Merge into...
1352 (*tldo_lduh1_sp64): Likewise.
1353 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
1354 (*tldo_ldsh1_sp32): Merge into...
1355 (*tldo_ldsh1_sp64): Likewise.
1356 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
1357 (*tldo_lduh2_sp64): Use DImode throughout.
1358 (*tldo_ldsh2_sp64): Likewise.
1359 (*tldo_lduw_sp32): Merge into...
1360 (*tldo_lduw_sp64): Likewise.
1361 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
1362 (*tldo_lduw1_sp64): Use DImode throughout.
1363 (*tldo_ldsw1_sp64): Likewise.
1364 (*tldo_ldx_sp64): Likewise.
1365 (*tldo_stb_sp32): Merge into...
1366 (*tldo_stb_sp64): Likewise.
1367 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
1368 (*tldo_sth_sp32): Merge into...
1369 (*tldo_sth_sp64): Likewise.
1370 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
1371 (*tldo_stw_sp32): Merge into...
1372 (*tldo_stw_sp64): Likewise.
1373 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
1374 (*tldo_stx_sp64): Use DImode throughout.
1376 2018-01-09 Sudakshina Das <sudi.das@arm.com>
1378 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
1379 check configure option to set BTI and Return Address Signing.
1380 * configure.ac: Add --enable-standard-branch-protection and
1381 --disable-standard-branch-protection.
1382 * configure: Regenerated.
1383 * doc/install.texi: Document the same.
1385 2018-01-09 Sudakshina Das <sudi.das@arm.com>
1386 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1388 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
1389 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
1390 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
1392 * config/aarch64/aarch64-bti-insert.c: New file.
1393 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
1395 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
1397 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
1398 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
1399 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
1400 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
1402 2018-01-09 Sudakshina Das <sudi.das@arm.com>
1404 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
1405 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
1406 Disable bti for -mbranch-protection=none.
1407 (aarch64_handle_standard_branch_protection): Enable bti for
1408 -mbranch-protection=standard.
1409 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
1410 -mbranch-protection.
1411 (aarch64_bti_enabled): Check if bti is enabled.
1412 * config/aarch64/aarch64.opt: Declare target variable.
1413 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
1415 2018-01-09 Sudakshina Das <sudi.das@arm.com>
1417 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
1418 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
1419 (aarch64_expand_epilogue): Likewise.
1420 (aarch64_output_mi_thunk): Likewise
1421 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
1422 TAILCALL_ADDR_REGS to x16 and x17.
1423 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
1425 2018-01-09 Sudakshina Das <sudi.das@arm.com>
1427 * config/aarch64/aarch64-option-extensions.def: Define
1428 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
1429 * gcc/config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
1430 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
1431 (AARCH64_FL_PREDRES): New.
1432 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
1433 AARCH64_FL_PREDRES by default.
1434 * gcc/doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
1436 2018-01-09 Sudakshina Das <sudi.das@arm.com>
1438 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
1440 * gcc/config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
1441 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
1442 * gcc/doc/invoke.texi: Document ARMv8.5-A.
1444 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
1446 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
1447 (xorsign<mode>3): Likewise.
1449 2019-01-09 Jelinek <jakub@redhat.com>
1452 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
1453 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
1455 PR rtl-optimization/88331
1456 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
1457 not currently_expanding_to_rtl.
1459 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
1461 * doc/invoke.texi (-Os): Remove trailing spaces.
1462 (-finline-functions): Remove reference to -O2.
1464 2019-01-08 Jakub Jelinek <jakub@redhat.com>
1466 PR rtl-optimization/79593
1467 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
1469 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
1470 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
1472 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
1475 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
1479 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
1480 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
1482 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
1485 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
1486 ix86_avx_u128_mode_entry.
1488 2019-01-08 Martin Liska <mliska@suse.cz>
1490 PR tree-optimization/88753
1491 * tree-switch-conversion.c (switch_conversion::build_one_array):
1492 Come up with local variable constructor. Convert first to
1493 type of constructor values.
1495 2019-01-08 Richard Biener <rguenther@suse.de>
1497 PR tree-optimization/86554
1498 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
1499 rpo_avail): Move earlier.
1500 (visit_nary_op): When value-numbering to expressions
1501 with different overflow behavior make sure there's an
1502 available expression on the path.
1504 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
1506 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
1507 aarch64_parse_branch_protection,
1508 struct aarch64_branch_protect_type,
1509 aarch64_handle_no_branch_protection,
1510 aarch64_handle_standard_branch_protection,
1511 aarch64_validate_mbranch_protection,
1512 aarch64_handle_pac_ret_protection,
1513 aarch64_handle_attr_branch_protection,
1514 accepted_branch_protection_string,
1515 aarch64_pac_ret_subtypes,
1516 aarch64_branch_protect_types,
1517 aarch64_handle_pac_ret_leaf): Define.
1518 (aarch64_override_options_after_change_1, aarch64_override_options):
1519 Add check for accepted_branch_protection_string.
1520 (aarch64_option_save): Save accepted_branch_protection_string.
1521 (aarch64_option_restore): Save accepted_branch_protection_string.
1522 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
1523 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
1524 msign-return-address.
1525 * doc/invoke.texi: Add mbranch-protection.
1527 2019-01-08 Alan Modra <amodra@gmail.com>
1530 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
1531 Delete "unknownp" parameter. Adjust callers. Handle
1532 CONST_INT, PLUS, MINUS, and MULT.
1533 (attr_value_aligned): Renamed from or_attr_value.
1534 (min_attr_value): Return INT_MIN for unhandled rtl case..
1535 (min_fn): ..and translate to INT_MAX here.
1536 (write_length_unit_log): Modify to cope without "unknown".
1537 (write_attr_value): Handle IF_THEN_ELSE.
1539 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
1541 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
1542 optimization for masked stores.
1544 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
1547 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
1548 output vector directly to duplicate_and_interleave instead of
1549 going through a temporary. Postpone insertion of ctor_seq to
1550 the end of the loop.
1552 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
1555 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
1556 unsigned_p. Handle signed and unsigned overflow correction as
1558 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
1560 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
1562 (add<mode>3_compareV_imm): Make this callable for expanding.
1563 (subv<GPI:mode>4): Use register_operand for operand 1. Use
1564 aarch64_plus_operand for operand 2.
1565 (subv<GPI:mode>_insn): New insn pattern.
1566 (subv<GPI:mode>_imm): Likewise.
1567 (negv<GPI:mode>3): New expand pattern.
1568 (negv<GPI:mode>_insn): New insn pattern.
1569 (negv<GPI:mode>_cmp_only): Likewise.
1570 (cmpv<GPI:mode>_insn): Likewise.
1571 (subvti4): Use register_operand for operand 1. Update call to
1572 aarch64_expand_subvti.
1573 (usubvti4): Likewise.
1574 (negvti3): New expand pattern.
1575 (negdi_carryout): New insn pattern.
1576 (negvdi_carryinV): New insn pattern.
1577 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
1578 version the named version.
1579 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
1581 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
1583 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
1585 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
1586 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
1587 (sub<mode>3_carryinCV): Delete.
1588 (sub<GPI:mode>3_carryinV): New expand pattern.
1589 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
1591 2019-01-07 Richard Biener <rguenther@suse.de>
1593 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
1594 of tree_operand_hash.
1596 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
1598 PR tree-optimization/88598
1599 * tree.h (single_nonzero_element): Declare.
1600 * tree.c (single_nonzero_element): New function.
1601 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
1602 if I is the only nonzero element of CST.
1604 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
1606 PR tree-optimization/88598
1607 * tree.h (initializer_each_zero_or_onep): Declare.
1608 * tree.c (initializer_each_zero_or_onep): New function.
1609 (signed_or_unsigned_type_for): Handle float types too.
1610 (unsigned_type_for, signed_type_for): Update comments accordingly.
1611 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
1612 x & { 0 or -1, 0 or -1, ... }.
1614 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
1616 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
1617 with x86_64-pc-linux-gnu.
1619 2019-01-07 Tom de Vries <tdevries@suse.de>
1622 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
1624 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
1627 2019-01-07 Jakub Jelinek <jakub@redhat.com>
1629 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
1630 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
1631 TARGET_AVX512F as condition.
1634 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
1635 const_not_ok_for_debug_p target hook.
1636 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
1637 on UNSPEC and subexpressions thereof if all subexpressions of the
1638 UNSPEC are CONSTANT_P.
1640 PR tree-optimization/88676
1641 * tree-ssa-phiopt.c (two_value_replacement): New function.
1642 (tree_ssa_phiopt_worker): Call it.
1645 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
1646 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
1649 * tree-vect-generic.c: Include insn-config.h and recog.h.
1650 (expand_vector_piecewise): Add defaulted ret_type argument,
1651 if non-NULL, use that in preference to type for the result type.
1652 (expand_vector_parallel): Formatting fix.
1653 (do_vec_conversion, do_vec_narrowing_conversion,
1654 expand_vector_conversion): New functions.
1655 (expand_vector_operations_1): Call expand_vector_conversion
1656 for VEC_CONVERT ifn calls.
1657 * internal-fn.def (VEC_CONVERT): New internal function.
1658 * internal-fn.c (expand_VEC_CONVERT): New function.
1659 * fold-const-call.c (fold_const_vec_convert): New function.
1660 (fold_const_call): Use it for CFN_VEC_CONVERT.
1661 * doc/extend.texi (__builtin_convertvector): Document.
1663 2019-01-07 Tom de Vries <tdevries@suse.de>
1665 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
1666 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
1667 vector_red_partition, vector_red_sym): New global variables.
1668 (nvptx_option_override): Initialize vector_red_sym.
1669 (nvptx_declare_function_name): Restore red_partition register.
1670 (nvptx_file_end): Emit code to declare the vector reduction variables.
1671 (nvptx_output_red_partition): New function.
1672 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
1673 large vector reductions.
1674 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
1675 (nvptx_init_builtins): Add VECTOR_ADDR.
1676 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
1677 Handle nvptx_expand_shared_addr.
1678 (nvptx_get_shared_red_addr): Add vector argument and handle large
1680 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
1682 (nvptx_goacc_reduction_init): Likewise.
1683 (nvptx_goacc_reduction_fini): Likewise.
1684 (nvptx_goacc_reduction_teardown): Likewise.
1685 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
1686 init,fini,teardown}.
1687 (nvptx_init_axis_predicate): Initialize vector_red_partition.
1688 (nvptx_set_current_function): Init vector_red_partition.
1689 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
1690 (nvptx_red_partition): New insn.
1691 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
1693 2019-01-07 Tom de Vries <tdevries@suse.de>
1696 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
1699 2019-01-07 Tom de Vries <tdevries@suse.de>
1701 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
1702 (nvptx_option_override): Init oacc_bcast_partition.
1703 (nvptx_init_oacc_workers): New function.
1704 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
1705 (nvptx_needs_shared_bcast): New function.
1706 (nvptx_find_par): Generalize to enable vectors to use shared-memory
1708 (nvptx_shared_propagate): Initialize vector bcast partition and
1709 synchronization state.
1710 (nvptx_single): Generalize to enable vectors to use shared-memory
1712 (nvptx_process_pars): Likewise.
1713 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
1714 * config/nvptx/nvptx.h (struct machine_function): Add
1715 bcast_partition and sync_bar members.
1717 2019-01-07 Tom de Vries <tdevries@suse.de>
1719 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
1720 (nvptx_apply_dim_limits): New function.
1721 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
1724 2019-01-07 Tom de Vries <tdevries@suse.de>
1726 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
1727 as late as possible.
1729 2019-01-07 Tom de Vries <tdevries@suse.de>
1731 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
1732 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
1733 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
1734 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
1735 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
1737 2019-01-07 Tom de Vries <tdevries@suse.de>
1739 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
1741 2019-01-07 Tom de Vries <tdevries@suse.de>
1743 * omp-offload.c (oacc_get_min_dim): New function.
1744 * omp-offload.h (oacc_get_min_dim): Declare.
1746 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
1749 * config/i386/i386.c (function_value_ms_64): Return small sturct in
1750 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
1752 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
1756 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
1758 * ipa-inline.c (edge_badness): Use inlined_time instead of
1759 inline_summaries->get.
1761 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
1763 * opts.c (enable_fdo_optimizations): Enable
1764 version-loops-for-strides, loop-interchange, unrol-and-jam
1765 and tree-loop-distribution.
1766 * invoke.texi: Document newly enabled options.
1768 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
1770 * doc/invoke.texi (max-inline-insns-small): New parameters.
1771 * ipa-inline.c (want_early_inline_function_p): simplify.
1772 (want_inline_small_function_p): Fix pasto from previous patch;
1773 use max-inline-insns-small bound.
1774 * params.def (max-inline-insns-small): New param.
1775 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
1776 variables correctly.
1778 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
1780 * doc/invoke.texi: Document max-inline-insns-size,
1781 uninlined-function-insns, uninlined-function-time,
1782 uninlined-thunk-insns and uninlined-thunk-time.
1783 * params.def: Add max-inline-insns-size,
1784 uninlined-function-insns, uninlined-function-time,
1785 uninlined-thunk-insns and uninlined-thunk-time.
1786 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
1788 * ipa-inline.c (can_inline_edge_by_limits_p,
1789 want_inline_small_function_p): Use new parameters.
1791 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
1793 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
1795 2019-01-05 Jakub Jelinek <jakub@redhat.com>
1799 * expr.c (expand_assignment): For calls returning VLA structures
1800 if to_rtx is not a MEM, force it into a stack temporary.
1803 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
1804 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
1805 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
1806 subexpressions of both operands.
1807 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
1808 subrtxes are CONSTANT_P.
1809 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
1812 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
1814 * params.def (hot-bb-count-ws-permille): Set to 990.
1816 2019-01-04 Martin Sebor <msebor@redhat.com>
1819 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
1822 2019-01-04 Martin Sebor <msebor@redhat.com>
1825 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
1827 2019-01-04 Jakub Jelinek <jakub@redhat.com>
1829 * gdbinit.in: Turn off pagination for the skip commands, restore
1830 it to previous state afterwards.
1832 2019-01-04 Sam Tebbs <sam.tebbs@arm.com>
1835 * gcc.target/aarch64/combine_bfxil.c: Change scan-assembler-times bfxil
1838 2019-01-04 Jakub Jelinek <jakub@redhat.com>
1841 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
1842 of GET_MODE (opN) as modes of the libcall arguments.
1844 2019-01-04 Jan Beulich <jbeulich@suse.com>
1846 * config/i386/sse.md
1847 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
1848 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
1849 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
1850 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
1851 avx512f_vmcmp<mode>3<round_saeonly_name>,
1852 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
1853 avx512f_maskcmp<mode>3,
1854 <avx512>_cvt<ssemodesuffix>2mask<mode>,
1855 <avx512>_cvt<ssemodesuffix>2mask<mode>,
1856 *<avx512>_cvtmask2<ssemodesuffix><mode>,
1857 *<avx512>_cvtmask2<ssemodesuffix><mode>,
1858 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
1859 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
1860 <avx512>_gt<mode>3<mask_scalar_merge_name>,
1861 <avx512>_gt<mode>3<mask_scalar_merge_name>,
1862 <avx512>_testm<mode>3<mask_scalar_merge_name>,
1863 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
1864 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
1865 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
1866 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
1867 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
1868 avx512cd_maskb_vec_dup<mode>,
1869 avx512cd_maskw_vec_dup<mode>,
1870 avx512dq_fpclass<mode><mask_scalar_merge_name>,
1871 avx512dq_vmfpclass<mode>,
1872 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
1875 2019-01-03 Martin Sebor <msebor@redhat.com>
1877 PR tree-optimization/88659
1878 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
1880 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
1882 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
1883 unaligned vsx and avoid lxvd2x/stxvd2x.
1884 (gen_lvx_v4si_move): New function.
1886 2019-01-03 Tom de Vries <tdevries@suse.de>
1888 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
1889 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
1891 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
1893 2019-01-03 Tom de Vries <tdevries@suse.de>
1895 * config/nvptx/nvptx.c (struct offload_attrs): New.
1896 (populate_offload_attrs): New function. Factor mask extraction out of
1897 nvptx_reorg. Add extraction of dimensions.
1898 (nvptx_reorg): Use populate_offload_attrs.
1900 2019-01-03 Tom de Vries <tdevries@suse.de>
1902 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
1903 cases for oacc_min_dims_p and routine_p. Add asserts for
1904 oacc_default_dims_p and offload_region_p.
1906 2019-01-03 Tom de Vries <tdevries@suse.de>
1908 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
1910 (nvptx_goacc_validate_dims): ... here.
1912 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
1914 PR tree-optimization/85574
1915 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
1917 (struct ssa_equip_hash_traits): Declare.
1918 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
1920 2019-01-03 Jakub Jelinek <jakub@redhat.com>
1923 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
1924 change it to qualified_type.
1926 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
1928 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
1929 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
1931 2019-01-02 Martin Sebor <msebor@redhat.com>
1932 Jeff Law <law@redhat.com>
1934 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
1935 (get_range_strlen_tree): Update appropriately.
1937 * gimple-fold.h (get_range_strlen): Drop unused last argument.
1939 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
1940 rather than set_range_info.
1941 * tree-ssa-strlen.c (set_strlen_range): Extracted from
1942 maybe_set_strlen_range. Handle potentially boundary crossing
1943 cases more conservatively.
1944 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
1945 Call set_strlen_range.
1946 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
1949 * gimple-fold.c (get_range_strlen): Update prototype to no longer
1950 need the flexp argument.
1951 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
1952 from calls to get_range_strlen. Update comments. Just update
1953 VAL for an unterminated const char array and let the reset of the
1954 code handle it normally. No longer try to set *flexp. Adjust
1956 (get_range_strlen): Update for the new get_range_strlen API.
1957 (get_maxval_strlen): Similarly.
1958 (gimple_fold_builtin_strlen): Handle update meaning of return value
1959 from get_range_strlen.
1960 * gimple-ssa-sprintf.c (get_string_length): Update for the new
1961 get_range_strlen API.
1963 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
1966 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
1967 false at WPA time when body was removed.
1969 2019-01-02 Martin Liska <mliska@suse.cz>
1971 PR tree-optimization/88650
1972 * predict.c (set_even_probabilities): Calculate probability
1973 remainer only when really used.
1975 2019-01-02 Richard Biener <rguenther@suse.de>
1978 * tree-data-ref.c (analyze_subscript_affine_affine): Use
1979 widest_ints when mangling max_stmt_execution results.
1981 2019-01-02 Richard Biener <rguenther@suse.de>
1983 PR tree-optimization/88621
1984 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
1985 bitfields when canoncalizing.
1987 2019-01-02 Richard Biener <rguenther@suse.de>
1990 * config/i386/x86-tune-costs.h (intel_cost): Adjust
1991 cost of cheap SSE instruction.
1993 2019-01-02 Richard Biener <rguenther@suse.de>
1996 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
1997 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
1999 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
2000 set after UIDs before splitting them.
2002 2019-01-01 Martin Sebor <msebor@redhat.com>
2003 Jeff Law <law@redhat.com>
2005 * gimple-fold.c (get_range_strlen_tree): Record if the computed
2006 length is optimistic. If it is, then arrange to compute the
2007 conservative length as well.
2009 * gimple-fold.h (get_range_strlen): Update prototype.
2010 * builtins.c (check_access): Update call to get_range_strlen to use
2011 c_strlen_data pointer. Change various variable accesses to instead
2012 pull data from the c_strlen_data structure.
2013 (check_strncat_sizes, expand_builtin_strncat): Likewise.
2014 * calls.c (maybe_warn_nonstring_arg): Likewise.
2015 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
2016 minimum length if maximum lengh is unknown.
2017 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
2018 that used c_strlen, it's no longer needed. Restructure slightly.
2019 (format_string): Set unlikely range appropriately.
2020 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
2022 (get_range_strlen): Accept c_strlen_data pointer for external
2023 call sites as well. Pass through to call to internal get_range_strlen.
2024 Adjust minlen, maxlen and maxbound as needed.
2025 (get_maxval_strlen): Update comments.
2026 (gimple_fold_builtin_strlen): Update call to get_range_strlen
2027 to use c_strlen_data pointer. Change variable accesses to instead
2028 use c_strlen_data data members.
2030 * gimple-fold.c (get_range_strlen): Update prototype.
2031 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
2032 local variables. Use pdata to return information to caller.
2033 Update calls to get_range_strlen. Update pdata->maxbound.
2034 (get_range_strlen -- static version): Similarly.
2035 (get_range_strlen -- extern version): Update for internal
2036 get_range_strlen API change. Convert to external data format.
2037 (get_maxval_strlen): Similarly.
2039 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
2041 * coverage.c (get_coverage_counts): Use current_function_decl.
2042 * profile.c (read_thunk_profile): New function.
2043 (branch_prob): Add THUNK parameter.
2044 * tree-profile.c (tree_profiling): Handle thunks.
2045 * value-prof.c (init_node_map): Handle thunks.
2046 * value-prof.h (branch_prob): Upate prototype.
2047 (read_thunk_profile): Declare.
2049 2019-01-01 Jakub Jelinek <jakub@redhat.com>
2051 Update copyright years.
2053 * gcc.c (process_command): Update copyright notice dates.
2054 * gcov-dump.c (print_version): Ditto.
2055 * gcov.c (print_version): Ditto.
2056 * gcov-tool.c (print_version): Ditto.
2057 * gengtype.c (create_file): Ditto.
2058 * doc/cpp.texi: Bump @copying's copyright year.
2059 * doc/cppinternals.texi: Ditto.
2060 * doc/gcc.texi: Ditto.
2061 * doc/gccint.texi: Ditto.
2062 * doc/gcov.texi: Ditto.
2063 * doc/install.texi: Ditto.
2064 * doc/invoke.texi: Ditto.
2066 Copyright (C) 2019 Free Software Foundation, Inc.
2068 Copying and distribution of this file, with or without modification,
2069 are permitted in any medium without royalty provided the copyright
2070 notice and this notice are preserved.