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