re PR sanitizer/88619 (ICE in asan_emit_stack_protection, at asan.c:1574 since r266664)
[gcc.git] / gcc / ChangeLog
1 2019-01-07 Jakub Jelinek <jakub@redhat.com>
2
3 PR sanitizer/88619
4 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
5 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
6
7 PR c++/85052
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.
21
22 2019-01-07 Tom de Vries <tdevries@suse.de>
23
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
38 vectors.
39 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
40 large vectors.
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,
45 init,fini,teardown}.
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.
51
52 2019-01-07 Tom de Vries <tdevries@suse.de>
53
54 PR target/85381
55 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
56 empty loops.
57
58 2019-01-07 Tom de Vries <tdevries@suse.de>
59
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
66 to propagate state.
67 (nvptx_shared_propagate): Initialize vector bcast partition and
68 synchronization state.
69 (nvptx_single): Generalize to enable vectors to use shared-memory
70 to propagate state.
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.
75
76 2019-01-07 Tom de Vries <tdevries@suse.de>
77
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
81 PTX_WARP_SIZE.
82
83 2019-01-07 Tom de Vries <tdevries@suse.de>
84
85 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
86 as late as possible.
87
88 2019-01-07 Tom de Vries <tdevries@suse.de>
89
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.
95
96 2019-01-07 Tom de Vries <tdevries@suse.de>
97
98 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
99
100 2019-01-07 Tom de Vries <tdevries@suse.de>
101
102 * omp-offload.c (oacc_get_min_dim): New function.
103 * omp-offload.h (oacc_get_min_dim): Declare.
104
105 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
106
107 PR target/88521
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.
110
111 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
112
113 PR tree-opt/86020
114 Revert:
115 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
116
117 * ipa-inline.c (edge_badness): Use inlined_time instead of
118 inline_summaries->get.
119
120 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
121
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.
126
127 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
128
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
135 variables correctly.
136
137 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
138
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
146 new parameters.
147 * ipa-inline.c (can_inline_edge_by_limits_p,
148 want_inline_small_function_p): Use new parameters.
149
150 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
151
152 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
153
154 2019-01-05 Jakub Jelinek <jakub@redhat.com>
155
156 PR middle-end/82564
157 PR target/88620
158 * expr.c (expand_assignment): For calls returning VLA structures
159 if to_rtx is not a MEM, force it into a stack temporary.
160
161 PR debug/88635
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
169 2018-11-09 changes.
170
171 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
172
173 * params.def (hot-bb-count-ws-permille): Set to 990.
174
175 2019-01-04 Martin Sebor <msebor@redhat.com>
176
177 PR c/88546
178 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
179 leaf.
180
181 2019-01-04 Martin Sebor <msebor@redhat.com>
182
183 PR c/88363
184 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
185
186 2019-01-04 Jakub Jelinek <jakub@redhat.com>
187
188 * gdbinit.in: Turn off pagination for the skip commands, restore
189 it to previous state afterwards.
190
191 2019-01-04 Sam Tebbs <sam.tebbs@arm.com>
192
193 PR gcc/87763
194 * gcc.target/aarch64/combine_bfxil.c: Change scan-assembler-times bfxil
195 count to 18.
196
197 2019-01-04 Jakub Jelinek <jakub@redhat.com>
198
199 PR target/88594
200 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
201 of GET_MODE (opN) as modes of the libcall arguments.
202
203 2019-01-04 Jan Beulich <jbeulich@suse.com>
204
205 * config/i386/sse.md
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
232 instead of =Yk.
233
234 2019-01-03 Martin Sebor <msebor@redhat.com>
235
236 PR tree-optimization/88659
237 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
238
239 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
240
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.
244
245 2019-01-03 Tom de Vries <tdevries@suse.de>
246
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
249 function.
250 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
251
252 2019-01-03 Tom de Vries <tdevries@suse.de>
253
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.
258
259 2019-01-03 Tom de Vries <tdevries@suse.de>
260
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.
264
265 2019-01-03 Tom de Vries <tdevries@suse.de>
266
267 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
268 factored out of ...
269 (nvptx_goacc_validate_dims): ... here.
270
271 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
272
273 PR tree-optimization/85574
274 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
275 structure.
276 (struct ssa_equip_hash_traits): Declare.
277 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
278
279 2019-01-03 Jakub Jelinek <jakub@redhat.com>
280
281 PR debug/88644
282 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
283 change it to qualified_type.
284
285 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
286
287 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
288 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
289
290 2019-01-02 Martin Sebor <msebor@redhat.com>
291 Jeff Law <law@redhat.com>
292
293 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
294 (get_range_strlen_tree): Update appropriately.
295 (get_range_strlen)
296 * gimple-fold.h (get_range_strlen): Drop unused last argument.
297
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.
306
307 PR middle-end/88663
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
314 return value.
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.
321
322 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
323
324 PR lto/88130
325 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
326 false at WPA time when body was removed.
327
328 2019-01-02 Martin Liska <mliska@suse.cz>
329
330 PR tree-optimization/88650
331 * predict.c (set_even_probabilities): Calculate probability
332 remainer only when really used.
333
334 2019-01-02 Richard Biener <rguenther@suse.de>
335
336 PR middle-end/88651
337 * tree-data-ref.c (analyze_subscript_affine_affine): Use
338 widest_ints when mangling max_stmt_execution results.
339
340 2019-01-02 Richard Biener <rguenther@suse.de>
341
342 PR tree-optimization/88621
343 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
344 bitfields when canoncalizing.
345
346 2019-01-02 Richard Biener <rguenther@suse.de>
347
348 PR target/87545
349 * config/i386/x86-tune-costs.h (intel_cost): Adjust
350 cost of cheap SSE instruction.
351
352 2019-01-02 Richard Biener <rguenther@suse.de>
353
354 PR ipa/85574
355 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
356 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
357 function.
358 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
359 set after UIDs before splitting them.
360
361 2019-01-01 Martin Sebor <msebor@redhat.com>
362 Jeff Law <law@redhat.com>
363
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.
367
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
380 formatting issues.
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.
388
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.
397
398 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
399
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.
407
408 2019-01-01 Jakub Jelinek <jakub@redhat.com>
409
410 Update copyright years.
411
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.
424 \f
425 Copyright (C) 2019 Free Software Foundation, Inc.
426
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.