1 2019-01-07 Jakub Jelinek <jakub@redhat.com>
4 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
5 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
8 * tree-vect-generic.c: Include insn-config.h and recog.h.
9 (expand_vector_piecewise): Add defaulted ret_type argument,
10 if non-NULL, use that in preference to type for the result type.
11 (expand_vector_parallel): Formatting fix.
12 (do_vec_conversion, do_vec_narrowing_conversion,
13 expand_vector_conversion): New functions.
14 (expand_vector_operations_1): Call expand_vector_conversion
15 for VEC_CONVERT ifn calls.
16 * internal-fn.def (VEC_CONVERT): New internal function.
17 * internal-fn.c (expand_VEC_CONVERT): New function.
18 * fold-const-call.c (fold_const_vec_convert): New function.
19 (fold_const_call): Use it for CFN_VEC_CONVERT.
20 * doc/extend.texi (__builtin_convertvector): Document.
22 2019-01-07 Tom de Vries <tdevries@suse.de>
24 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
25 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
26 vector_red_partition, vector_red_sym): New global variables.
27 (nvptx_option_override): Initialize vector_red_sym.
28 (nvptx_declare_function_name): Restore red_partition register.
29 (nvptx_file_end): Emit code to declare the vector reduction variables.
30 (nvptx_output_red_partition): New function.
31 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
32 large vector reductions.
33 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
34 (nvptx_init_builtins): Add VECTOR_ADDR.
35 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
36 Handle nvptx_expand_shared_addr.
37 (nvptx_get_shared_red_addr): Add vector argument and handle large
39 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
41 (nvptx_goacc_reduction_init): Likewise.
42 (nvptx_goacc_reduction_fini): Likewise.
43 (nvptx_goacc_reduction_teardown): Likewise.
44 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
46 (nvptx_init_axis_predicate): Initialize vector_red_partition.
47 (nvptx_set_current_function): Init vector_red_partition.
48 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
49 (nvptx_red_partition): New insn.
50 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
52 2019-01-07 Tom de Vries <tdevries@suse.de>
55 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
58 2019-01-07 Tom de Vries <tdevries@suse.de>
60 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
61 (nvptx_option_override): Init oacc_bcast_partition.
62 (nvptx_init_oacc_workers): New function.
63 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
64 (nvptx_needs_shared_bcast): New function.
65 (nvptx_find_par): Generalize to enable vectors to use shared-memory
67 (nvptx_shared_propagate): Initialize vector bcast partition and
68 synchronization state.
69 (nvptx_single): Generalize to enable vectors to use shared-memory
71 (nvptx_process_pars): Likewise.
72 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
73 * config/nvptx/nvptx.h (struct machine_function): Add
74 bcast_partition and sync_bar members.
76 2019-01-07 Tom de Vries <tdevries@suse.de>
78 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
79 (nvptx_apply_dim_limits): New function.
80 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
83 2019-01-07 Tom de Vries <tdevries@suse.de>
85 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
88 2019-01-07 Tom de Vries <tdevries@suse.de>
90 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
91 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
92 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
93 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
94 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
96 2019-01-07 Tom de Vries <tdevries@suse.de>
98 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
100 2019-01-07 Tom de Vries <tdevries@suse.de>
102 * omp-offload.c (oacc_get_min_dim): New function.
103 * omp-offload.h (oacc_get_min_dim): Declare.
105 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
108 * config/i386/i386.c (function_value_ms_64): Return small sturct in
109 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
111 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
115 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
117 * ipa-inline.c (edge_badness): Use inlined_time instead of
118 inline_summaries->get.
120 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
122 * opts.c (enable_fdo_optimizations): Enable
123 version-loops-for-strides, loop-interchange, unrol-and-jam
124 and tree-loop-distribution.
125 * invoke.texi: Document newly enabled options.
127 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
129 * doc/invoke.texi (max-inline-insns-small): New parameters.
130 * ipa-inline.c (want_early_inline_function_p): simplify.
131 (want_inline_small_function_p): Fix pasto from previous patch;
132 use max-inline-insns-small bound.
133 * params.def (max-inline-insns-small): New param.
134 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
137 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
139 * doc/invoke.texi: Document max-inline-insns-size,
140 uninlined-function-insns, uninlined-function-time,
141 uninlined-thunk-insns and uninlined-thunk-time.
142 * params.def: Add max-inline-insns-size,
143 uninlined-function-insns, uninlined-function-time,
144 uninlined-thunk-insns and uninlined-thunk-time.
145 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
147 * ipa-inline.c (can_inline_edge_by_limits_p,
148 want_inline_small_function_p): Use new parameters.
150 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
152 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
154 2019-01-05 Jakub Jelinek <jakub@redhat.com>
158 * expr.c (expand_assignment): For calls returning VLA structures
159 if to_rtx is not a MEM, force it into a stack temporary.
162 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
163 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
164 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
165 subexpressions of both operands.
166 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
167 subrtxes are CONSTANT_P.
168 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
171 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
173 * params.def (hot-bb-count-ws-permille): Set to 990.
175 2019-01-04 Martin Sebor <msebor@redhat.com>
178 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
181 2019-01-04 Martin Sebor <msebor@redhat.com>
184 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
186 2019-01-04 Jakub Jelinek <jakub@redhat.com>
188 * gdbinit.in: Turn off pagination for the skip commands, restore
189 it to previous state afterwards.
191 2019-01-04 Sam Tebbs <sam.tebbs@arm.com>
194 * gcc.target/aarch64/combine_bfxil.c: Change scan-assembler-times bfxil
197 2019-01-04 Jakub Jelinek <jakub@redhat.com>
200 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
201 of GET_MODE (opN) as modes of the libcall arguments.
203 2019-01-04 Jan Beulich <jbeulich@suse.com>
206 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
207 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
208 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
209 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
210 avx512f_vmcmp<mode>3<round_saeonly_name>,
211 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
212 avx512f_maskcmp<mode>3,
213 <avx512>_cvt<ssemodesuffix>2mask<mode>,
214 <avx512>_cvt<ssemodesuffix>2mask<mode>,
215 *<avx512>_cvtmask2<ssemodesuffix><mode>,
216 *<avx512>_cvtmask2<ssemodesuffix><mode>,
217 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
218 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
219 <avx512>_gt<mode>3<mask_scalar_merge_name>,
220 <avx512>_gt<mode>3<mask_scalar_merge_name>,
221 <avx512>_testm<mode>3<mask_scalar_merge_name>,
222 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
223 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
224 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
225 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
226 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
227 avx512cd_maskb_vec_dup<mode>,
228 avx512cd_maskw_vec_dup<mode>,
229 avx512dq_fpclass<mode><mask_scalar_merge_name>,
230 avx512dq_vmfpclass<mode>,
231 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
234 2019-01-03 Martin Sebor <msebor@redhat.com>
236 PR tree-optimization/88659
237 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
239 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
241 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
242 unaligned vsx and avoid lxvd2x/stxvd2x.
243 (gen_lvx_v4si_move): New function.
245 2019-01-03 Tom de Vries <tdevries@suse.de>
247 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
248 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
250 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
252 2019-01-03 Tom de Vries <tdevries@suse.de>
254 * config/nvptx/nvptx.c (struct offload_attrs): New.
255 (populate_offload_attrs): New function. Factor mask extraction out of
256 nvptx_reorg. Add extraction of dimensions.
257 (nvptx_reorg): Use populate_offload_attrs.
259 2019-01-03 Tom de Vries <tdevries@suse.de>
261 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
262 cases for oacc_min_dims_p and routine_p. Add asserts for
263 oacc_default_dims_p and offload_region_p.
265 2019-01-03 Tom de Vries <tdevries@suse.de>
267 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
269 (nvptx_goacc_validate_dims): ... here.
271 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
273 PR tree-optimization/85574
274 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
276 (struct ssa_equip_hash_traits): Declare.
277 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
279 2019-01-03 Jakub Jelinek <jakub@redhat.com>
282 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
283 change it to qualified_type.
285 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
287 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
288 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
290 2019-01-02 Martin Sebor <msebor@redhat.com>
291 Jeff Law <law@redhat.com>
293 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
294 (get_range_strlen_tree): Update appropriately.
296 * gimple-fold.h (get_range_strlen): Drop unused last argument.
298 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
299 rather than set_range_info.
300 * tree-ssa-strlen.c (set_strlen_range): Extracted from
301 maybe_set_strlen_range. Handle potentially boundary crossing
302 cases more conservatively.
303 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
304 Call set_strlen_range.
305 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
308 * gimple-fold.c (get_range_strlen): Update prototype to no longer
309 need the flexp argument.
310 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
311 from calls to get_range_strlen. Update comments. Just update
312 VAL for an unterminated const char array and let the reset of the
313 code handle it normally. No longer try to set *flexp. Adjust
315 (get_range_strlen): Update for the new get_range_strlen API.
316 (get_maxval_strlen): Similarly.
317 (gimple_fold_builtin_strlen): Handle update meaning of return value
318 from get_range_strlen.
319 * gimple-ssa-sprintf.c (get_string_length): Update for the new
320 get_range_strlen API.
322 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
325 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
326 false at WPA time when body was removed.
328 2019-01-02 Martin Liska <mliska@suse.cz>
330 PR tree-optimization/88650
331 * predict.c (set_even_probabilities): Calculate probability
332 remainer only when really used.
334 2019-01-02 Richard Biener <rguenther@suse.de>
337 * tree-data-ref.c (analyze_subscript_affine_affine): Use
338 widest_ints when mangling max_stmt_execution results.
340 2019-01-02 Richard Biener <rguenther@suse.de>
342 PR tree-optimization/88621
343 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
344 bitfields when canoncalizing.
346 2019-01-02 Richard Biener <rguenther@suse.de>
349 * config/i386/x86-tune-costs.h (intel_cost): Adjust
350 cost of cheap SSE instruction.
352 2019-01-02 Richard Biener <rguenther@suse.de>
355 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
356 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
358 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
359 set after UIDs before splitting them.
361 2019-01-01 Martin Sebor <msebor@redhat.com>
362 Jeff Law <law@redhat.com>
364 * gimple-fold.c (get_range_strlen_tree): Record if the computed
365 length is optimistic. If it is, then arrange to compute the
366 conservative length as well.
368 * gimple-fold.h (get_range_strlen): Update prototype.
369 * builtins.c (check_access): Update call to get_range_strlen to use
370 c_strlen_data pointer. Change various variable accesses to instead
371 pull data from the c_strlen_data structure.
372 (check_strncat_sizes, expand_builtin_strncat): Likewise.
373 * calls.c (maybe_warn_nonstring_arg): Likewise.
374 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
375 minimum length if maximum lengh is unknown.
376 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
377 that used c_strlen, it's no longer needed. Restructure slightly.
378 (format_string): Set unlikely range appropriately.
379 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
381 (get_range_strlen): Accept c_strlen_data pointer for external
382 call sites as well. Pass through to call to internal get_range_strlen.
383 Adjust minlen, maxlen and maxbound as needed.
384 (get_maxval_strlen): Update comments.
385 (gimple_fold_builtin_strlen): Update call to get_range_strlen
386 to use c_strlen_data pointer. Change variable accesses to instead
387 use c_strlen_data data members.
389 * gimple-fold.c (get_range_strlen): Update prototype.
390 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
391 local variables. Use pdata to return information to caller.
392 Update calls to get_range_strlen. Update pdata->maxbound.
393 (get_range_strlen -- static version): Similarly.
394 (get_range_strlen -- extern version): Update for internal
395 get_range_strlen API change. Convert to external data format.
396 (get_maxval_strlen): Similarly.
398 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
400 * coverage.c (get_coverage_counts): Use current_function_decl.
401 * profile.c (read_thunk_profile): New function.
402 (branch_prob): Add THUNK parameter.
403 * tree-profile.c (tree_profiling): Handle thunks.
404 * value-prof.c (init_node_map): Handle thunks.
405 * value-prof.h (branch_prob): Upate prototype.
406 (read_thunk_profile): Declare.
408 2019-01-01 Jakub Jelinek <jakub@redhat.com>
410 Update copyright years.
412 * gcc.c (process_command): Update copyright notice dates.
413 * gcov-dump.c (print_version): Ditto.
414 * gcov.c (print_version): Ditto.
415 * gcov-tool.c (print_version): Ditto.
416 * gengtype.c (create_file): Ditto.
417 * doc/cpp.texi: Bump @copying's copyright year.
418 * doc/cppinternals.texi: Ditto.
419 * doc/gcc.texi: Ditto.
420 * doc/gccint.texi: Ditto.
421 * doc/gcov.texi: Ditto.
422 * doc/install.texi: Ditto.
423 * doc/invoke.texi: Ditto.
425 Copyright (C) 2019 Free Software Foundation, Inc.
427 Copying and distribution of this file, with or without modification,
428 are permitted in any medium without royalty provided the copyright
429 notice and this notice are preserved.