1 2019-01-08 Alan Modra <amodra@gmail.com>
4 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
5 Delete "unknownp" parameter. Adjust callers. Handle
6 CONST_INT, PLUS, MINUS, and MULT.
7 (attr_value_aligned): Renamed from or_attr_value.
8 (min_attr_value): Return INT_MIN for unhandled rtl case..
9 (min_fn): ..and translate to INT_MAX here.
10 (write_length_unit_log): Modify to cope without "unknown".
11 (write_attr_value): Handle IF_THEN_ELSE.
13 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
15 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
16 optimization for masked stores.
18 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
21 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
22 output vector directly to duplicate_and_interleave instead of
23 going through a temporary. Postpone insertion of ctor_seq to
26 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
29 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
30 unsigned_p. Handle signed and unsigned overflow correction as
32 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
34 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
36 (add<mode>3_compareV_imm): Make this callable for expanding.
37 (subv<GPI:mode>4): Use register_operand for operand 1. Use
38 aarch64_plus_operand for operand 2.
39 (subv<GPI:mode>_insn): New insn pattern.
40 (subv<GPI:mode>_imm): Likewise.
41 (negv<GPI:mode>3): New expand pattern.
42 (negv<GPI:mode>_insn): New insn pattern.
43 (negv<GPI:mode>_cmp_only): Likewise.
44 (cmpv<GPI:mode>_insn): Likewise.
45 (subvti4): Use register_operand for operand 1. Update call to
46 aarch64_expand_subvti.
48 (negvti3): New expand pattern.
49 (negdi_carryout): New insn pattern.
50 (negvdi_carryinV): New insn pattern.
51 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
52 version the named version.
53 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
55 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
57 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
59 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
60 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
61 (sub<mode>3_carryinCV): Delete.
62 (sub<GPI:mode>3_carryinV): New expand pattern.
63 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
65 2019-01-07 Richard Biener <rguenther@suse.de>
67 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
70 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
72 PR tree-optimization/88598
73 * tree.h (single_nonzero_element): Declare.
74 * tree.c (single_nonzero_element): New function.
75 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
76 if I is the only nonzero element of CST.
78 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
80 PR tree-optimization/88598
81 * tree.h (initializer_each_zero_or_onep): Declare.
82 * tree.c (initializer_each_zero_or_onep): New function.
83 (signed_or_unsigned_type_for): Handle float types too.
84 (unsigned_type_for, signed_type_for): Update comments accordingly.
85 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
86 x & { 0 or -1, 0 or -1, ... }.
88 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
90 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
91 with x86_64-pc-linux-gnu.
93 2019-01-07 Tom de Vries <tdevries@suse.de>
96 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
98 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
101 2019-01-07 Jakub Jelinek <jakub@redhat.com>
103 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
104 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
105 TARGET_AVX512F as condition.
108 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
109 const_not_ok_for_debug_p target hook.
110 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
111 on UNSPEC and subexpressions thereof if all subexpressions of the
112 UNSPEC are CONSTANT_P.
114 PR tree-optimization/88676
115 * tree-ssa-phiopt.c (two_value_replacement): New function.
116 (tree_ssa_phiopt_worker): Call it.
119 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
120 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
123 * tree-vect-generic.c: Include insn-config.h and recog.h.
124 (expand_vector_piecewise): Add defaulted ret_type argument,
125 if non-NULL, use that in preference to type for the result type.
126 (expand_vector_parallel): Formatting fix.
127 (do_vec_conversion, do_vec_narrowing_conversion,
128 expand_vector_conversion): New functions.
129 (expand_vector_operations_1): Call expand_vector_conversion
130 for VEC_CONVERT ifn calls.
131 * internal-fn.def (VEC_CONVERT): New internal function.
132 * internal-fn.c (expand_VEC_CONVERT): New function.
133 * fold-const-call.c (fold_const_vec_convert): New function.
134 (fold_const_call): Use it for CFN_VEC_CONVERT.
135 * doc/extend.texi (__builtin_convertvector): Document.
137 2019-01-07 Tom de Vries <tdevries@suse.de>
139 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
140 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
141 vector_red_partition, vector_red_sym): New global variables.
142 (nvptx_option_override): Initialize vector_red_sym.
143 (nvptx_declare_function_name): Restore red_partition register.
144 (nvptx_file_end): Emit code to declare the vector reduction variables.
145 (nvptx_output_red_partition): New function.
146 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
147 large vector reductions.
148 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
149 (nvptx_init_builtins): Add VECTOR_ADDR.
150 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
151 Handle nvptx_expand_shared_addr.
152 (nvptx_get_shared_red_addr): Add vector argument and handle large
154 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
156 (nvptx_goacc_reduction_init): Likewise.
157 (nvptx_goacc_reduction_fini): Likewise.
158 (nvptx_goacc_reduction_teardown): Likewise.
159 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
161 (nvptx_init_axis_predicate): Initialize vector_red_partition.
162 (nvptx_set_current_function): Init vector_red_partition.
163 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
164 (nvptx_red_partition): New insn.
165 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
167 2019-01-07 Tom de Vries <tdevries@suse.de>
170 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
173 2019-01-07 Tom de Vries <tdevries@suse.de>
175 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
176 (nvptx_option_override): Init oacc_bcast_partition.
177 (nvptx_init_oacc_workers): New function.
178 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
179 (nvptx_needs_shared_bcast): New function.
180 (nvptx_find_par): Generalize to enable vectors to use shared-memory
182 (nvptx_shared_propagate): Initialize vector bcast partition and
183 synchronization state.
184 (nvptx_single): Generalize to enable vectors to use shared-memory
186 (nvptx_process_pars): Likewise.
187 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
188 * config/nvptx/nvptx.h (struct machine_function): Add
189 bcast_partition and sync_bar members.
191 2019-01-07 Tom de Vries <tdevries@suse.de>
193 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
194 (nvptx_apply_dim_limits): New function.
195 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
198 2019-01-07 Tom de Vries <tdevries@suse.de>
200 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
203 2019-01-07 Tom de Vries <tdevries@suse.de>
205 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
206 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
207 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
208 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
209 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
211 2019-01-07 Tom de Vries <tdevries@suse.de>
213 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
215 2019-01-07 Tom de Vries <tdevries@suse.de>
217 * omp-offload.c (oacc_get_min_dim): New function.
218 * omp-offload.h (oacc_get_min_dim): Declare.
220 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
223 * config/i386/i386.c (function_value_ms_64): Return small sturct in
224 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
226 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
230 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
232 * ipa-inline.c (edge_badness): Use inlined_time instead of
233 inline_summaries->get.
235 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
237 * opts.c (enable_fdo_optimizations): Enable
238 version-loops-for-strides, loop-interchange, unrol-and-jam
239 and tree-loop-distribution.
240 * invoke.texi: Document newly enabled options.
242 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
244 * doc/invoke.texi (max-inline-insns-small): New parameters.
245 * ipa-inline.c (want_early_inline_function_p): simplify.
246 (want_inline_small_function_p): Fix pasto from previous patch;
247 use max-inline-insns-small bound.
248 * params.def (max-inline-insns-small): New param.
249 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
252 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
254 * doc/invoke.texi: Document max-inline-insns-size,
255 uninlined-function-insns, uninlined-function-time,
256 uninlined-thunk-insns and uninlined-thunk-time.
257 * params.def: Add max-inline-insns-size,
258 uninlined-function-insns, uninlined-function-time,
259 uninlined-thunk-insns and uninlined-thunk-time.
260 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
262 * ipa-inline.c (can_inline_edge_by_limits_p,
263 want_inline_small_function_p): Use new parameters.
265 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
267 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
269 2019-01-05 Jakub Jelinek <jakub@redhat.com>
273 * expr.c (expand_assignment): For calls returning VLA structures
274 if to_rtx is not a MEM, force it into a stack temporary.
277 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
278 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
279 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
280 subexpressions of both operands.
281 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
282 subrtxes are CONSTANT_P.
283 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
286 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
288 * params.def (hot-bb-count-ws-permille): Set to 990.
290 2019-01-04 Martin Sebor <msebor@redhat.com>
293 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
296 2019-01-04 Martin Sebor <msebor@redhat.com>
299 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
301 2019-01-04 Jakub Jelinek <jakub@redhat.com>
303 * gdbinit.in: Turn off pagination for the skip commands, restore
304 it to previous state afterwards.
306 2019-01-04 Sam Tebbs <sam.tebbs@arm.com>
309 * gcc.target/aarch64/combine_bfxil.c: Change scan-assembler-times bfxil
312 2019-01-04 Jakub Jelinek <jakub@redhat.com>
315 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
316 of GET_MODE (opN) as modes of the libcall arguments.
318 2019-01-04 Jan Beulich <jbeulich@suse.com>
321 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
322 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
323 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
324 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
325 avx512f_vmcmp<mode>3<round_saeonly_name>,
326 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
327 avx512f_maskcmp<mode>3,
328 <avx512>_cvt<ssemodesuffix>2mask<mode>,
329 <avx512>_cvt<ssemodesuffix>2mask<mode>,
330 *<avx512>_cvtmask2<ssemodesuffix><mode>,
331 *<avx512>_cvtmask2<ssemodesuffix><mode>,
332 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
333 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
334 <avx512>_gt<mode>3<mask_scalar_merge_name>,
335 <avx512>_gt<mode>3<mask_scalar_merge_name>,
336 <avx512>_testm<mode>3<mask_scalar_merge_name>,
337 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
338 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
339 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
340 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
341 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
342 avx512cd_maskb_vec_dup<mode>,
343 avx512cd_maskw_vec_dup<mode>,
344 avx512dq_fpclass<mode><mask_scalar_merge_name>,
345 avx512dq_vmfpclass<mode>,
346 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
349 2019-01-03 Martin Sebor <msebor@redhat.com>
351 PR tree-optimization/88659
352 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
354 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
356 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
357 unaligned vsx and avoid lxvd2x/stxvd2x.
358 (gen_lvx_v4si_move): New function.
360 2019-01-03 Tom de Vries <tdevries@suse.de>
362 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
363 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
365 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
367 2019-01-03 Tom de Vries <tdevries@suse.de>
369 * config/nvptx/nvptx.c (struct offload_attrs): New.
370 (populate_offload_attrs): New function. Factor mask extraction out of
371 nvptx_reorg. Add extraction of dimensions.
372 (nvptx_reorg): Use populate_offload_attrs.
374 2019-01-03 Tom de Vries <tdevries@suse.de>
376 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
377 cases for oacc_min_dims_p and routine_p. Add asserts for
378 oacc_default_dims_p and offload_region_p.
380 2019-01-03 Tom de Vries <tdevries@suse.de>
382 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
384 (nvptx_goacc_validate_dims): ... here.
386 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
388 PR tree-optimization/85574
389 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
391 (struct ssa_equip_hash_traits): Declare.
392 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
394 2019-01-03 Jakub Jelinek <jakub@redhat.com>
397 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
398 change it to qualified_type.
400 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
402 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
403 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
405 2019-01-02 Martin Sebor <msebor@redhat.com>
406 Jeff Law <law@redhat.com>
408 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
409 (get_range_strlen_tree): Update appropriately.
411 * gimple-fold.h (get_range_strlen): Drop unused last argument.
413 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
414 rather than set_range_info.
415 * tree-ssa-strlen.c (set_strlen_range): Extracted from
416 maybe_set_strlen_range. Handle potentially boundary crossing
417 cases more conservatively.
418 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
419 Call set_strlen_range.
420 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
423 * gimple-fold.c (get_range_strlen): Update prototype to no longer
424 need the flexp argument.
425 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
426 from calls to get_range_strlen. Update comments. Just update
427 VAL for an unterminated const char array and let the reset of the
428 code handle it normally. No longer try to set *flexp. Adjust
430 (get_range_strlen): Update for the new get_range_strlen API.
431 (get_maxval_strlen): Similarly.
432 (gimple_fold_builtin_strlen): Handle update meaning of return value
433 from get_range_strlen.
434 * gimple-ssa-sprintf.c (get_string_length): Update for the new
435 get_range_strlen API.
437 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
440 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
441 false at WPA time when body was removed.
443 2019-01-02 Martin Liska <mliska@suse.cz>
445 PR tree-optimization/88650
446 * predict.c (set_even_probabilities): Calculate probability
447 remainer only when really used.
449 2019-01-02 Richard Biener <rguenther@suse.de>
452 * tree-data-ref.c (analyze_subscript_affine_affine): Use
453 widest_ints when mangling max_stmt_execution results.
455 2019-01-02 Richard Biener <rguenther@suse.de>
457 PR tree-optimization/88621
458 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
459 bitfields when canoncalizing.
461 2019-01-02 Richard Biener <rguenther@suse.de>
464 * config/i386/x86-tune-costs.h (intel_cost): Adjust
465 cost of cheap SSE instruction.
467 2019-01-02 Richard Biener <rguenther@suse.de>
470 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
471 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
473 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
474 set after UIDs before splitting them.
476 2019-01-01 Martin Sebor <msebor@redhat.com>
477 Jeff Law <law@redhat.com>
479 * gimple-fold.c (get_range_strlen_tree): Record if the computed
480 length is optimistic. If it is, then arrange to compute the
481 conservative length as well.
483 * gimple-fold.h (get_range_strlen): Update prototype.
484 * builtins.c (check_access): Update call to get_range_strlen to use
485 c_strlen_data pointer. Change various variable accesses to instead
486 pull data from the c_strlen_data structure.
487 (check_strncat_sizes, expand_builtin_strncat): Likewise.
488 * calls.c (maybe_warn_nonstring_arg): Likewise.
489 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
490 minimum length if maximum lengh is unknown.
491 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
492 that used c_strlen, it's no longer needed. Restructure slightly.
493 (format_string): Set unlikely range appropriately.
494 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
496 (get_range_strlen): Accept c_strlen_data pointer for external
497 call sites as well. Pass through to call to internal get_range_strlen.
498 Adjust minlen, maxlen and maxbound as needed.
499 (get_maxval_strlen): Update comments.
500 (gimple_fold_builtin_strlen): Update call to get_range_strlen
501 to use c_strlen_data pointer. Change variable accesses to instead
502 use c_strlen_data data members.
504 * gimple-fold.c (get_range_strlen): Update prototype.
505 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
506 local variables. Use pdata to return information to caller.
507 Update calls to get_range_strlen. Update pdata->maxbound.
508 (get_range_strlen -- static version): Similarly.
509 (get_range_strlen -- extern version): Update for internal
510 get_range_strlen API change. Convert to external data format.
511 (get_maxval_strlen): Similarly.
513 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
515 * coverage.c (get_coverage_counts): Use current_function_decl.
516 * profile.c (read_thunk_profile): New function.
517 (branch_prob): Add THUNK parameter.
518 * tree-profile.c (tree_profiling): Handle thunks.
519 * value-prof.c (init_node_map): Handle thunks.
520 * value-prof.h (branch_prob): Upate prototype.
521 (read_thunk_profile): Declare.
523 2019-01-01 Jakub Jelinek <jakub@redhat.com>
525 Update copyright years.
527 * gcc.c (process_command): Update copyright notice dates.
528 * gcov-dump.c (print_version): Ditto.
529 * gcov.c (print_version): Ditto.
530 * gcov-tool.c (print_version): Ditto.
531 * gengtype.c (create_file): Ditto.
532 * doc/cpp.texi: Bump @copying's copyright year.
533 * doc/cppinternals.texi: Ditto.
534 * doc/gcc.texi: Ditto.
535 * doc/gccint.texi: Ditto.
536 * doc/gcov.texi: Ditto.
537 * doc/install.texi: Ditto.
538 * doc/invoke.texi: Ditto.
540 Copyright (C) 2019 Free Software Foundation, Inc.
542 Copying and distribution of this file, with or without modification,
543 are permitted in any medium without royalty provided the copyright
544 notice and this notice are preserved.