1 2019-09-27 Jakub Jelinek <jakub@redhat.com>
4 * gimplify.c (omp_default_clause): Predetermine DECL_IN_CONSTANT_POOL
7 2019-09-27 Iain Sandoe <iain@sandoe.co.uk>
9 * config/rs6000/darwin.md (@macho_correct_pic_<mode>): New,
10 replaces the expander and two define_insn entries.
11 (@reload_macho_picbase_<mode>): Update gen_macho_correct_pic
13 * config/rs6000/rs6000.md (builtin_setjmp_receiver): Likewise.
15 2019-09-27 David Malcolm <dmalcolm@redhat.com>
17 * fibonacci_heap.h (fibonacci_heap::empty): Make const.
18 (fibonacci_heap::nodes): Likewise.
19 (fibonacci_heap::min_key): Likewise.
20 (fibonacci_heap::min): Likewise.
22 2019-09-27 David Malcolm <dmalcolm@redhat.com>
24 * cgraph.c (cgraph_node::get_fun): Make const.
25 * cgraph.h (cgraph_node::get_fun): Likewise.
27 2019-09-27 Jakub Jelinek <jakub@redhat.com>
30 * config/arm/arm.md (<US>mlal): Remove SE wrappers around operands
33 2019-09-27 Richard Biener <rguenther@suse.de>
35 * tree-vectorizer.h (_stmt_vec_info::reduc_fn): New.
36 (STMT_VINFO_REDUC_FN): Likewise.
37 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
39 * tree-vect-loop.c (vect_is_simple_reduction): Fix STMT_VINFO_REDUC_IDX
40 for condition reductions.
41 (vect_create_epilog_for_reduction): Compute all required state
42 from the stmt to be vectorized.
43 (vectorizable_reduction): Simplify vect_create_epilog_for_reduction
44 invocation and remove then dead code. For single def-use chains
45 record only a single vector stmt.
47 2019-09-27 Richard Sandiford <richard.sandiford@arm.com>
49 * config/aarch64/aarch64-protos.h (aarch64_builtin_class): New enum.
50 (AARCH64_BUILTIN_SHIFT, AARCH64_BUILTIN_CLASS): New constants.
51 (aarch64_gimple_fold_builtin, aarch64_mangle_builtin_type)
52 (aarch64_fold_builtin, aarch64_init_builtins, aarch64_expand_builtin):
53 (aarch64_builtin_decl, aarch64_builtin_rsqrt): Delete.
54 (aarch64_general_mangle_builtin_type, aarch64_general_init_builtins):
55 (aarch64_general_fold_builtin, aarch64_general_gimple_fold_builtin):
56 (aarch64_general_expand_builtin, aarch64_general_builtin_decl):
57 (aarch64_general_builtin_rsqrt): Declare.
58 * config/aarch64/aarch64-builtins.c (aarch64_general_add_builtin):
60 (aarch64_mangle_builtin_type): Rename to...
61 (aarch64_general_mangle_builtin_type): ...this.
62 (aarch64_init_fcmla_laneq_builtins, aarch64_init_simd_builtins)
63 (aarch64_init_crc32_builtins, aarch64_init_builtin_rsqrt)
64 (aarch64_init_pauth_hint_builtins, aarch64_init_tme_builtins): Use
65 aarch64_general_add_builtin instead of add_builtin_function.
66 (aarch64_init_builtins): Rename to...
67 (aarch64_general_init_builtins): ...this. Use
68 aarch64_general_add_builtin instead of add_builtin_function.
69 (aarch64_builtin_decl): Rename to...
70 (aarch64_general_builtin_decl): ...this and remove the unused
72 (aarch64_expand_builtin): Rename to...
73 (aarch64_general_expand_builtin): ...this and remove the unused
75 (aarch64_builtin_rsqrt): Rename to...
76 (aarch64_general_builtin_rsqrt): ...this.
77 (aarch64_fold_builtin): Rename to...
78 (aarch64_general_fold_builtin): ...this. Take the function subcode
79 and return type as arguments. Remove the "ignored" argument.
80 (aarch64_gimple_fold_builtin): Rename to...
81 (aarch64_general_gimple_fold_builtin): ...this. Take the function
82 subcode and gcall as arguments, and return the new function call.
83 * config/aarch64/aarch64.c (aarch64_init_builtins)
84 (aarch64_fold_builtin, aarch64_gimple_fold_builtin)
85 (aarch64_expand_builtin, aarch64_builtin_decl): New functions.
86 (aarch64_builtin_reciprocal): Call aarch64_general_builtin_rsqrt
87 instead of aarch64_builtin_rsqrt.
88 (aarch64_mangle_type): Call aarch64_general_mangle_builtin_type
89 instead of aarch64_mangle_builtin_type.
91 2019-09-27 Richard Sandiford <richard.sandiford@arm.com>
93 * target.def (check_builtin_call): New target hook.
94 * doc/tm.texi.in (TARGET_CHECK_BUILTIN_CALL): New @hook.
95 * doc/tm.texi: Regenerate.
97 2019-09-27 Richard Sandiford <richard.sandiford@arm.com>
99 PR tree-optimization/91909
100 * tree-vect-loop.c (vect_create_epilog_for_reduction): Take a
101 reduc_index parameter. When handling COND_REDUCTION, make sure
102 that the reduction phi operand is in the correct arm of the
104 (vectorizable_reduction): Pass reduc_index to the above.
106 2019-09-27 Yuliang Wang <yuliang.wang@arm.com>
108 * config/aarch64/aarch64-sve2.md (aarch64_sve2_sra<mode>):
111 2019-09-26 Max Filippov <jcmvbkbc@gmail.com>
113 * config/xtensa/xtensa.c (hwloop_optimize): Insert zero overhead
114 loop instruction into new basic block before the loop when basic
115 block that precedes the loop is empty.
117 2019-09-26 Jakub Jelinek <jakub@redhat.com>
119 * function.c (gimplify_parameters): Use build_clobber function.
120 * tree-ssa.c (execute_update_addresses_taken): Likewise.
121 * tree-inline.c (expand_call_inline): Likewise.
122 * tree-sra.c (clobber_subtree): Likewise.
123 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Likewise.
124 * omp-low.c (lower_rec_simd_input_clauses, lower_rec_input_clauses,
125 lower_omp_single, lower_depend_clauses, lower_omp_taskreg,
126 lower_omp_target): Likewise.
127 * omp-expand.c (expand_omp_for_generic): Likewise.
128 * omp-offload.c (ompdevlow_adjust_simt_enter): Likewise.
130 2019-09-26 Will Schmidt <will_schmidt@vnet.ibm.com>
132 * config/rs6000/rs6000-builtin.def: (LVSL, LVSR, LVEBX, LVEHX,
133 LVEWX, LVXL, LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI,
134 LVXL_V16QI, LVX, LVX_V1TI, LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI,
135 LVX_V8HI, LVX_V16QI, LVLX, LVLXL, LVRX, LVRXL, LXSDX, LXVD2X_V1TI,
136 LXVD2X_V2DF, LXVD2X_V2DI, LXVDSX, LXVW4X_V4SF, LXVW4X_V4SI,
137 LXVW4X_V8HI, LXVW4X_V16QI, LD_ELEMREV_V1TI, LD_ELEMREV_V2DF,
138 LD_ELEMREV_V2DI, LD_ELEMREV_V4SF, LD_ELEMREV_V4SI, LD_ELEMREV_V8HI,
139 LD_ELEMREV_V16QI): Use the PURE attribute.
141 2019-09-26 Iain Sandoe <iain@sandoe.co.uk>
143 * config/rs6000/darwin.md: Replace the expanders for
144 load_macho_picbase and reload_macho_picbase with use of '@'
145 and <mode> in their respective define_insns.
146 (nonlocal_goto_receiver): Pass Pmode to gen_reload_macho_picbase.
147 * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Pass
148 Pmode to gen_load_macho_picbase.
149 * config/rs6000/rs6000.md: Likewise.
151 2019-09-25 Richard Biener <rguenther@suse.de>
153 PR tree-optimization/91896
154 * tree-vect-loop.c (vectorizable_reduction): The single
155 def-use cycle optimization cannot apply when there's more
156 than one pattern stmt involved.
158 2019-09-26 Richard Biener <rguenther@suse.de>
160 * tree-vect-loop.c (vect_analyze_loop_operations): Analyze
161 loop-closed PHIs that are vect_internal_def.
162 (vect_create_epilog_for_reduction): Exit early for nested cycles.
164 (vectorizable_lc_phi): New.
165 * tree-vect-stmts.c (vect_analyze_stmt): Call vectorize_lc_phi.
166 (vect_transform_stmt): Likewise.
167 * tree-vectorizer.h (stmt_vec_info_type): Add lc_phi_info_type.
168 (vectorizable_lc_phi): Declare.
170 2019-09-26 Richard Biener <rguenther@suse.de>
172 * tree-vect-loop.c (vect_analyze_loop_operations): Also call
173 vectorizable_reduction for vect_double_reduction_def.
174 (vect_transform_loop): Likewise.
175 (vect_create_epilog_for_reduction): Move double-reduction
176 PHI creation and preheader argument setting of PHIs ...
177 (vectorizable_reduction): ... here. Also process
178 vect_double_reduction_def PHIs, creating the vectorized
179 PHI nodes, remembering the scalar adjustment computed for
180 the epilogue in STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT.
181 Remember the original reduction code in STMT_VINFO_REDUC_CODE.
182 * tree-vectorizer.c (vec_info::new_stmt_vec_info):
183 Initialize STMT_VINFO_REDUC_CODE.
184 * tree-vectorizer.h (_stmt_vec_info::reduc_epilogue_adjustment): New.
185 (_stmt_vec_info::reduc_code): Likewise.
186 (STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT): Likewise.
187 (STMT_VINFO_REDUC_CODE): Likewise.
189 2019-09-26 Matt Turner <mattst88@gmail.com>
192 * config/aarch64/aarch64.opt (march=): Add Negative(march=).
193 (mtune=): Add Negative(mtune=).
194 (mcpu=): Add Negative(mcpu=).
195 * config/arm/arm.opt: Likewise.
197 2019-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
199 * config/arm/arm.md (arm_<simd32_op>): New define_insn.
200 * config/arm/arm_acle.h (__smlald, __smlaldx, __smlsld, __smlsldx):
202 * config/arm/arm_acle.h: Define builtins for the above.
203 * config/arm/iterators.md (SIMD32_DIMODE): New int_iterator.
204 (simd32_op): Handle the above.
205 * config/arm/unspecs.md: Define unspecs for the above.
207 2019-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
209 * config/arm/arm.md (arm_<simd32_op>): New define_insn.
210 (arm_<sup>xtb16): Likewise.
211 (arm_usada8): Likewise.
212 * config/arm/arm_acle.h (__qadd8, __qsub8, __shadd8, __shsub8,
213 __uhadd8, __uhsub8, __uqadd8, __uqsub8, __qadd16, __qasx, __qsax,
214 __qsub16, __shadd16, __shasx, __shsax, __shsub16, __uhadd16, __uhasx,
215 __uhsax, __uhsub16, __uqadd16, __uqasx, __uqsax, __uqsub16, __sxtab16,
216 __sxtb16, __uxtab16, __uxtb16): Define.
217 * config/arm/arm_acle_builtins.def: Define builtins for the above.
218 * config/arm/unspecs.md: Define unspecs for the above.
219 * config/arm/iterators.md (SIMD32_NOGE_BINOP): New int_iterator.
221 (simd32_op): New int_attribute.
222 (sup): Handle UNSPEC_SXTB16, UNSPEC_UXTB16.
223 * doc/sourcebuild.exp (arm_simd32_ok): Document.
225 2019-09-26 Martin Jambor <mjambor@suse.cz>
227 * ipa-sra.c (verify_splitting_accesses): Fix quoting in a call to
230 2019-09-26 Martin Jambor <mjambor@suse.cz>
232 * ipa-sra.c (process_scan_results): Fix continue condition.
234 2019-09-26 Martin Liska <mliska@suse.cz>
236 PR tree-optimization/91885
237 * tree-vectorizer.c (try_vectorize_loop_1): Add
238 TODO_update_ssa_only_virtuals similarly to what slp pass does.
240 2019-09-26 Richard Sandiford <richard.sandiford@arm.com>
242 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use
243 aarch64_plus_immediate rather than aarch64_uimm12_shift
244 to test for valid PLUS immediates.
246 2019-09-25 Martin Jambor <mjambor@suse.cz>
248 * tree-sra.c (no_accesses_p): Remove.
249 (no_accesses_representant): Likewise.
251 2019-09-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
253 * config/aarch64/arm_neon.h (vaba_s8): Use __ in identifiers
255 (vaba_s16): Likewise.
256 (vaba_s32): Likewise.
258 (vaba_u16): Likewise.
259 (vaba_u32): Likewise.
260 (vabal_high_s8): Likewise.
261 (vabal_high_s16): Likewise.
262 (vabal_high_s32): Likewise.
263 (vabal_high_u8): Likewise.
264 (vabal_high_u16): Likewise.
265 (vabal_high_u32): Likewise.
266 (vabal_s8): Likewise.
267 (vabal_s16): Likewise.
268 (vabal_s32): Likewise.
269 (vabal_u8): Likewise.
270 (vabal_u16): Likewise.
271 (vabal_u32): Likewise.
272 (vabaq_s8): Likewise.
273 (vabaq_s16): Likewise.
274 (vabaq_s32): Likewise.
275 (vabaq_u8): Likewise.
276 (vabaq_u16): Likewise.
277 (vabaq_u32): Likewise.
279 (vabd_s16): Likewise.
280 (vabd_s32): Likewise.
282 (vabd_u16): Likewise.
283 (vabd_u32): Likewise.
284 (vabdl_high_s8): Likewise.
285 (vabdl_high_s16): Likewise.
286 (vabdl_high_s32): Likewise.
287 (vabdl_high_u8): Likewise.
288 (vabdl_high_u16): Likewise.
289 (vabdl_high_u32): Likewise.
290 (vabdl_s8): Likewise.
291 (vabdl_s16): Likewise.
292 (vabdl_s32): Likewise.
293 (vabdl_u8): Likewise.
294 (vabdl_u16): Likewise.
295 (vabdl_u32): Likewise.
296 (vabdq_s8): Likewise.
297 (vabdq_s16): Likewise.
298 (vabdq_s32): Likewise.
299 (vabdq_u8): Likewise.
300 (vabdq_u16): Likewise.
301 (vabdq_u32): Likewise.
302 (vaddlv_s8): Likewise.
303 (vaddlv_s16): Likewise.
304 (vaddlv_u8): Likewise.
305 (vaddlv_u16): Likewise.
306 (vaddlvq_s8): Likewise.
307 (vaddlvq_s16): Likewise.
308 (vaddlvq_s32): Likewise.
309 (vaddlvq_u8): Likewise.
310 (vaddlvq_u16): Likewise.
311 (vaddlvq_u32): Likewise.
312 (vcvtx_f32_f64): Likewise.
313 (vcvtx_high_f32_f64): Likewise.
314 (vcvtxd_f32_f64): Likewise.
315 (vmla_n_f32): Likewise.
316 (vmla_n_s16): Likewise.
317 (vmla_n_s32): Likewise.
318 (vmla_n_u16): Likewise.
319 (vmla_n_u32): Likewise.
321 (vmla_s16): Likewise.
322 (vmla_s32): Likewise.
324 (vmla_u16): Likewise.
325 (vmla_u32): Likewise.
326 (vmlal_high_n_s16): Likewise.
327 (vmlal_high_n_s32): Likewise.
328 (vmlal_high_n_u16): Likewise.
329 (vmlal_high_n_u32): Likewise.
330 (vmlal_high_s8): Likewise.
331 (vmlal_high_s16): Likewise.
332 (vmlal_high_s32): Likewise.
333 (vmlal_high_u8): Likewise.
334 (vmlal_high_u16): Likewise.
335 (vmlal_high_u32): Likewise.
336 (vmlal_n_s16): Likewise.
337 (vmlal_n_s32): Likewise.
338 (vmlal_n_u16): Likewise.
339 (vmlal_n_u32): Likewise.
340 (vmlal_s8): Likewise.
341 (vmlal_s16): Likewise.
342 (vmlal_s32): Likewise.
343 (vmlal_u8): Likewise.
344 (vmlal_u16): Likewise.
345 (vmlal_u32): Likewise.
346 (vmlaq_n_f32): Likewise.
347 (vmlaq_n_s16): Likewise.
348 (vmlaq_n_s32): Likewise.
349 (vmlaq_n_u16): Likewise.
350 (vmlaq_n_u32): Likewise.
351 (vmlaq_s8): Likewise.
352 (vmlaq_s16): Likewise.
353 (vmlaq_s32): Likewise.
354 (vmlaq_u8): Likewise.
355 (vmlaq_u16): Likewise.
356 (vmlaq_u32): Likewise.
357 (vmls_n_f32): Likewise.
358 (vmls_n_s16): Likewise.
359 (vmls_n_s32): Likewise.
360 (vmls_n_u16): Likewise.
361 (vmls_n_u32): Likewise.
363 (vmls_s16): Likewise.
364 (vmls_s32): Likewise.
366 (vmls_u16): Likewise.
367 (vmls_u32): Likewise.
368 (vmlsl_high_n_s16): Likewise.
369 (vmlsl_high_n_s32): Likewise.
370 (vmlsl_high_n_u16): Likewise.
371 (vmlsl_high_n_u32): Likewise.
372 (vmlsl_high_s8): Likewise.
373 (vmlsl_high_s16): Likewise.
374 (vmlsl_high_s32): Likewise.
375 (vmlsl_high_u8): Likewise.
376 (vmlsl_high_u16): Likewise.
377 (vmlsl_high_u32): Likewise.
378 (vmlsl_n_s16): Likewise.
379 (vmlsl_n_s32): Likewise.
380 (vmlsl_n_u16): Likewise.
381 (vmlsl_n_u32): Likewise.
382 (vmlsl_s8): Likewise.
383 (vmlsl_s16): Likewise.
384 (vmlsl_s32): Likewise.
385 (vmlsl_u8): Likewise.
386 (vmlsl_u16): Likewise.
387 (vmlsl_u32): Likewise.
388 (vmlsq_n_f32): Likewise.
389 (vmlsq_n_s16): Likewise.
390 (vmlsq_n_s32): Likewise.
391 (vmlsq_n_u16): Likewise.
392 (vmlsq_n_u32): Likewise.
393 (vmlsq_s8): Likewise.
394 (vmlsq_s16): Likewise.
395 (vmlsq_s32): Likewise.
396 (vmlsq_u8): Likewise.
397 (vmlsq_u16): Likewise.
398 (vmlsq_u32): Likewise.
399 (vmovl_high_s8): Likewise.
400 (vmovl_high_s16): Likewise.
401 (vmovl_high_s32): Likewise.
402 (vmovl_high_u8): Likewise.
403 (vmovl_high_u16): Likewise.
404 (vmovl_high_u32): Likewise.
405 (vmovl_s8): Likewise.
406 (vmovl_s16): Likewise.
407 (vmovl_s32): Likewise.
408 (vmovl_u8): Likewise.
409 (vmovl_u16): Likewise.
410 (vmovl_u32): Likewise.
411 (vmovn_high_s16): Likewise.
412 (vmovn_high_s32): Likewise.
413 (vmovn_high_s64): Likewise.
414 (vmovn_high_u16): Likewise.
415 (vmovn_high_u32): Likewise.
416 (vmovn_high_u64): Likewise.
417 (vmovn_s16): Likewise.
418 (vmovn_s32): Likewise.
419 (vmovn_s64): Likewise.
420 (vmovn_u16): Likewise.
421 (vmovn_u32): Likewise.
422 (vmovn_u64): Likewise.
423 (vmull_high_n_s16): Likewise.
424 (vmull_high_n_s32): Likewise.
425 (vmull_high_n_u16): Likewise.
426 (vmull_high_n_u32): Likewise.
427 (vmull_high_p8): Likewise.
428 (vmull_high_s8): Likewise.
429 (vmull_high_s16): Likewise.
430 (vmull_high_s32): Likewise.
431 (vmull_high_u8): Likewise.
432 (vmull_high_u16): Likewise.
433 (vmull_high_u32): Likewise.
434 (vmull_n_s16): Likewise.
435 (vmull_n_s32): Likewise.
436 (vmull_n_u16): Likewise.
437 (vmull_n_u32): Likewise.
438 (vmull_p8): Likewise.
439 (vmull_s8): Likewise.
440 (vmull_s16): Likewise.
441 (vmull_s32): Likewise.
442 (vmull_u8): Likewise.
443 (vmull_u16): Likewise.
444 (vmull_u32): Likewise.
445 (vpadal_s8): Likewise.
446 (vpadal_s16): Likewise.
447 (vpadal_s32): Likewise.
448 (vpadal_u8): Likewise.
449 (vpadal_u16): Likewise.
450 (vpadal_u32): Likewise.
451 (vpadalq_s8): Likewise.
452 (vpadalq_s16): Likewise.
453 (vpadalq_s32): Likewise.
454 (vpadalq_u8): Likewise.
455 (vpadalq_u16): Likewise.
456 (vpadalq_u32): Likewise.
457 (vpaddl_s8): Likewise.
458 (vpaddl_s16): Likewise.
459 (vpaddl_s32): Likewise.
460 (vpaddl_u8): Likewise.
461 (vpaddl_u16): Likewise.
462 (vpaddl_u32): Likewise.
463 (vpaddlq_s8): Likewise.
464 (vpaddlq_s16): Likewise.
465 (vpaddlq_s32): Likewise.
466 (vpaddlq_u8): Likewise.
467 (vpaddlq_u16): Likewise.
468 (vpaddlq_u32): Likewise.
469 (vpaddq_s8): Likewise.
470 (vpaddq_s16): Likewise.
471 (vpaddq_s32): Likewise.
472 (vpaddq_s64): Likewise.
473 (vpaddq_u8): Likewise.
474 (vpaddq_u16): Likewise.
475 (vpaddq_u32): Likewise.
476 (vpaddq_u64): Likewise.
477 (vqdmulh_n_s16): Likewise.
478 (vqdmulh_n_s32): Likewise.
479 (vqdmulhq_n_s16): Likewise.
480 (vqdmulhq_n_s32): Likewise.
481 (vqmovn_high_s16): Likewise.
482 (vqmovn_high_s32): Likewise.
483 (vqmovn_high_s64): Likewise.
484 (vqmovn_high_u16): Likewise.
485 (vqmovn_high_u32): Likewise.
486 (vqmovn_high_u64): Likewise.
487 (vqmovun_high_s16): Likewise.
488 (vqmovun_high_s32): Likewise.
489 (vqmovun_high_s64): Likewise.
490 (vqrdmulh_n_s16): Likewise.
491 (vqrdmulh_n_s32): Likewise.
492 (vqrdmulhq_n_s16): Likewise.
493 (vqrdmulhq_n_s32): Likewise.
494 (vrsqrte_u32): Likewise.
495 (vrsqrteq_u32): Likewise.
497 (vtst_p16): Likewise.
498 (vtst_p64): Likewise.
499 (vtstq_p8): Likewise.
500 (vtstq_p16): Likewise.
501 (vtstq_p64): Likewise.
502 (vaddlv_s32): Likewise.
503 (vaddlv_u32): Likewise.
504 (vqtbl1_p8): Likewise.
505 (vqtbl1_s8): Likewise.
506 (vqtbl1_u8): Likewise.
507 (vqtbl1q_p8): Likewise.
508 (vqtbl1q_s8): Likewise.
509 (vqtbl1q_u8): Likewise.
510 (vqtbx1_s8): Likewise.
511 (vqtbx1_u8): Likewise.
512 (vqtbx1_p8): Likewise.
513 (vqtbx1q_s8): Likewise.
514 (vqtbx1q_u8): Likewise.
515 (vqtbx1q_p8): Likewise.
516 (vtbl1_s8): Likewise.
517 (vtbl1_u8): Likewise.
518 (vtbl1_p8): Likewise.
519 (vtbl2_s8): Likewise.
520 (vtbl2_u8): Likewise.
521 (vtbl2_p8): Likewise.
522 (vtbl3_s8): Likewise.
523 (vtbl3_u8): Likewise.
524 (vtbl3_p8): Likewise.
525 (vtbl4_s8): Likewise.
526 (vtbl4_u8): Likewise.
527 (vtbl4_p8): Likewise.
528 (vtbx2_s8): Likewise.
529 (vtbx2_u8): Likewise.
530 (vtbx2_p8): Likewise.
531 (vld1_f32): Likewise.
532 (vld1_f64): Likewise.
534 (vld1_p16): Likewise.
535 (vld1_p64): Likewise.
537 (vld1_s16): Likewise.
538 (vld1_s32): Likewise.
539 (vld1_s64): Likewise.
541 (vld1_u16): Likewise.
542 (vld1_u32): Likewise.
543 (vld1_u64): Likewise.
544 (vld1q_f32): Likewise.
545 (vld1q_f64): Likewise.
546 (vld1q_p8): Likewise.
547 (vld1q_p16): Likewise.
548 (vld1q_p64): Likewise.
549 (vld1q_s8): Likewise.
550 (vld1q_s16): Likewise.
551 (vld1q_s32): Likewise.
552 (vld1q_s64): Likewise.
553 (vld1q_u8): Likewise.
554 (vld1q_u16): Likewise.
555 (vld1q_u32): Likewise.
556 (vld1q_u64): Likewise.
557 (vpmax_s8): Likewise.
558 (vpmax_s16): Likewise.
559 (vpmax_s32): Likewise.
560 (vpmax_u8): Likewise.
561 (vpmax_u16): Likewise.
562 (vpmax_u32): Likewise.
563 (vpmaxq_s8): Likewise.
564 (vpmaxq_s16): Likewise.
565 (vpmaxq_s32): Likewise.
566 (vpmaxq_u8): Likewise.
567 (vpmaxq_u16): Likewise.
568 (vpmaxq_u32): Likewise.
569 (vpmax_f32): Likewise.
570 (vpmaxq_f32): Likewise.
571 (vpmaxq_f64): Likewise.
572 (vpmaxqd_f64): Likewise.
573 (vpmaxs_f32): Likewise.
574 (vpmaxnm_f32): Likewise.
575 (vpmaxnmq_f32): Likewise.
576 (vpmaxnmq_f64): Likewise.
577 (vpmaxnmqd_f64): Likewise.
578 (vpmaxnms_f32): Likewise.
579 (vpmin_s8): Likewise.
580 (vpmin_s16): Likewise.
581 (vpmin_s32): Likewise.
582 (vpmin_u8): Likewise.
583 (vpmin_u16): Likewise.
584 (vpmin_u32): Likewise.
585 (vpminq_s8): Likewise.
586 (vpminq_s16): Likewise.
587 (vpminq_s32): Likewise.
588 (vpminq_u8): Likewise.
589 (vpminq_u16): Likewise.
590 (vpminq_u32): Likewise.
591 (vpmin_f32): Likewise.
592 (vpminq_f32): Likewise.
593 (vpminq_f64): Likewise.
594 (vpminqd_f64): Likewise.
595 (vpmins_f32): Likewise.
596 (vpminnm_f32): Likewise.
597 (vpminnmq_f32): Likewise.
598 (vpminnmq_f64): Likewise.
599 (vpminnmqd_f64): Likewise.
600 (vpminnms_f32): Likewise.
601 (vmla_f32): Likewise.
602 (vmlaq_f32): Likewise.
603 (vmlaq_f64): Likewise.
604 (vmls_f32): Likewise.
605 (vmlsq_f32): Likewise.
606 (vmlsq_f64): Likewise.
607 (vqtbl2_s8): Likewise.
608 (vqtbl2_u8): Likewise.
609 (vqtbl2_p8): Likewise.
610 (vqtbl2q_s8): Likewise.
611 (vqtbl2q_u8): Likewise.
612 (vqtbl2q_p8): Likewise.
613 (vqtbl3_s8): Likewise.
614 (vqtbl3_u8): Likewise.
615 (vqtbl3_p8): Likewise.
616 (vqtbl3q_s8): Likewise.
617 (vqtbl3q_u8): Likewise.
618 (vqtbl3q_p8): Likewise.
619 (vqtbl4_s8): Likewise.
620 (vqtbl4_u8): Likewise.
621 (vqtbl4_p8): Likewise.
622 (vqtbl4q_s8): Likewise.
623 (vqtbl4q_u8): Likewise.
624 (vqtbl4q_p8): Likewise.
625 (vqtbx2_s8): Likewise.
626 (vqtbx2_u8): Likewise.
627 (vqtbx2_p8): Likewise.
628 (vqtbx2q_s8): Likewise.
629 (vqtbx2q_u8): Likewise.
630 (vqtbx2q_p8): Likewise.
631 (vqtbx3_s8): Likewise.
632 (vqtbx3_u8): Likewise.
633 (vqtbx3_p8): Likewise.
634 (vqtbx3q_s8): Likewise.
635 (vqtbx3q_u8): Likewise.
636 (vqtbx3q_p8): Likewise.
637 (vqtbx4_s8): Likewise.
638 (vqtbx4_u8): Likewise.
639 (vqtbx4_p8): Likewise.
640 (vqtbx4q_s8): Likewise.
641 (vqtbx4q_u8): Likewise.
642 (vqtbx4q_p8): Likewise.
643 (vrev16_p8): Likewise.
644 (vrev16_s8): Likewise.
645 (vrev16_u8): Likewise.
646 (vrev16q_p8): Likewise.
647 (vrev16q_s8): Likewise.
648 (vrev16q_u8): Likewise.
649 (vrev32_p8): Likewise.
650 (vrev32_p16): Likewise.
651 (vrev32_s8): Likewise.
652 (vrev32_s16): Likewise.
653 (vrev32_u8): Likewise.
654 (vrev32_u16): Likewise.
655 (vrev32q_p8): Likewise.
656 (vrev32q_p16): Likewise.
657 (vrev32q_s8): Likewise.
658 (vrev32q_s16): Likewise.
659 (vrev32q_u8): Likewise.
660 (vrev32q_u16): Likewise.
661 (vrev64_f32): Likewise.
662 (vrev64_p8): Likewise.
663 (vrev64_p16): Likewise.
664 (vrev64_s8): Likewise.
665 (vrev64_s16): Likewise.
666 (vrev64_s32): Likewise.
667 (vrev64_u8): Likewise.
668 (vrev64_u16): Likewise.
669 (vrev64_u32): Likewise.
670 (vrev64q_f32): Likewise.
671 (vrev64q_p8): Likewise.
672 (vrev64q_p16): Likewise.
673 (vrev64q_s8): Likewise.
674 (vrev64q_s16): Likewise.
675 (vrev64q_s32): Likewise.
676 (vrev64q_u8): Likewise.
677 (vrev64q_u16): Likewise.
678 (vrev64q_u32): Likewise.
679 (vsha1cq_u32): Likewise.
680 (vsha1mq_u32): Likewise.
681 (vsha1pq_u32): Likewise.
682 (vsha1h_u32): Likewise.
683 (vsha1su0q_u32): Likewise.
684 (vsha1su1q_u32): Likewise.
685 (vsha256hq_u32): Likewise.
686 (vsha256h2q_u32): Likewise.
687 (vsha256su0q_u32): Likewise.
688 (vsha256su1q_u32): Likewise.
689 (vmull_p64): Likewise.
690 (vmull_high_p64): Likewise.
691 (vsqrt_f32): Likewise.
692 (vsqrtq_f32): Likewise.
693 (vsqrt_f64): Likewise.
694 (vsqrtq_f64): Likewise.
695 (vst1_f32): Likewise.
696 (vst1_f64): Likewise.
698 (vst1_p16): Likewise.
699 (vst1_p64): Likewise.
701 (vst1_s16): Likewise.
702 (vst1_s32): Likewise.
703 (vst1_s64): Likewise.
705 (vst1_u16): Likewise.
706 (vst1_u32): Likewise.
707 (vst1_u64): Likewise.
708 (vst1q_f32): Likewise.
709 (vst1q_f64): Likewise.
710 (vst1q_p8): Likewise.
711 (vst1q_p16): Likewise.
712 (vst1q_p64): Likewise.
713 (vst1q_s8): Likewise.
714 (vst1q_s16): Likewise.
715 (vst1q_s32): Likewise.
716 (vst1q_s64): Likewise.
717 (vst1q_u8): Likewise.
718 (vst1q_u16): Likewise.
719 (vst1q_u32): Likewise.
720 (vst1q_u64): Likewise.
721 (vst1_s64_x2): Likewise.
722 (vst1_u64_x2): Likewise.
723 (vst1_f64_x2): Likewise.
724 (vst1_s8_x2): Likewise.
725 (vst1_p8_x2): Likewise.
726 (vst1_s16_x2): Likewise.
727 (vst1_p16_x2): Likewise.
728 (vst1_s32_x2): Likewise.
729 (vst1_u8_x2): Likewise.
730 (vst1_u16_x2): Likewise.
731 (vst1_u32_x2): Likewise.
732 (vst1_f16_x2): Likewise.
733 (vst1_f32_x2): Likewise.
734 (vst1_p64_x2): Likewise.
735 (vst1q_s8_x2): Likewise.
736 (vst1q_p8_x2): Likewise.
737 (vst1q_s16_x2): Likewise.
738 (vst1q_p16_x2): Likewise.
739 (vst1q_s32_x2): Likewise.
740 (vst1q_s64_x2): Likewise.
741 (vst1q_u8_x2): Likewise.
742 (vst1q_u16_x2): Likewise.
743 (vst1q_u32_x2): Likewise.
744 (vst1q_u64_x2): Likewise.
745 (vst1q_f16_x2): Likewise.
746 (vst1q_f32_x2): Likewise.
747 (vst1q_f64_x2): Likewise.
748 (vst1q_p64_x2): Likewise.
749 (vst1_s64_x3): Likewise.
750 (vst1_u64_x3): Likewise.
751 (vst1_f64_x3): Likewise.
752 (vst1_s8_x3): Likewise.
753 (vst1_p8_x3): Likewise.
754 (vst1_s16_x3): Likewise.
755 (vst1_p16_x3): Likewise.
756 (vst1_s32_x3): Likewise.
757 (vst1_u8_x3): Likewise.
758 (vst1_u16_x3): Likewise.
759 (vst1_u32_x3): Likewise.
760 (vst1_f16_x3): Likewise.
761 (vst1_f32_x3): Likewise.
762 (vst1_p64_x3): Likewise.
763 (vst1q_s8_x3): Likewise.
764 (vst1q_p8_x3): Likewise.
765 (vst1q_s16_x3): Likewise.
766 (vst1q_p16_x3): Likewise.
767 (vst1q_s32_x3): Likewise.
768 (vst1q_s64_x3): Likewise.
769 (vst1q_u8_x3): Likewise.
770 (vst1q_u16_x3): Likewise.
771 (vst1q_u32_x3): Likewise.
772 (vst1q_u64_x3): Likewise.
773 (vst1q_f16_x3): Likewise.
774 (vst1q_f32_x3): Likewise.
775 (vst1q_f64_x3): Likewise.
776 (vst1q_p64_x3): Likewise.
777 (vst2_s64): Likewise.
778 (vst2_u64): Likewise.
779 (vst2_f64): Likewise.
782 (vst2_s16): Likewise.
783 (vst2_p16): Likewise.
784 (vst2_s32): Likewise.
786 (vst2_u16): Likewise.
787 (vst2_u32): Likewise.
788 (vst2_f16): Likewise.
789 (vst2_f32): Likewise.
790 (vst2_p64): Likewise.
791 (vst2q_s8): Likewise.
792 (vst2q_p8): Likewise.
793 (vst2q_s16): Likewise.
794 (vst2q_p16): Likewise.
795 (vst2q_s32): Likewise.
796 (vst2q_s64): Likewise.
797 (vst2q_u8): Likewise.
798 (vst2q_u16): Likewise.
799 (vst2q_u32): Likewise.
800 (vst2q_u64): Likewise.
801 (vst2q_f16): Likewise.
802 (vst2q_f32): Likewise.
803 (vst2q_f64): Likewise.
804 (vst2q_p64): Likewise.
805 (vst3_s64): Likewise.
806 (vst3_u64): Likewise.
807 (vst3_f64): Likewise.
810 (vst3_s16): Likewise.
811 (vst3_p16): Likewise.
812 (vst3_s32): Likewise.
814 (vst3_u16): Likewise.
815 (vst3_u32): Likewise.
816 (vst3_f16): Likewise.
817 (vst3_f32): Likewise.
818 (vst3_p64): Likewise.
819 (vst3q_s8): Likewise.
820 (vst3q_p8): Likewise.
821 (vst3q_s16): Likewise.
822 (vst3q_p16): Likewise.
823 (vst3q_s32): Likewise.
824 (vst3q_s64): Likewise.
825 (vst3q_u8): Likewise.
826 (vst3q_u16): Likewise.
827 (vst3q_u32): Likewise.
828 (vst3q_u64): Likewise.
829 (vst3q_f16): Likewise.
830 (vst3q_f32): Likewise.
831 (vst3q_f64): Likewise.
832 (vst3q_p64): Likewise.
833 (vst4_s64): Likewise.
834 (vst4_u64): Likewise.
835 (vst4_f64): Likewise.
838 (vst4_s16): Likewise.
839 (vst4_p16): Likewise.
840 (vst4_s32): Likewise.
842 (vst4_u16): Likewise.
843 (vst4_u32): Likewise.
844 (vst4_f16): Likewise.
845 (vst4_f32): Likewise.
846 (vst4_p64): Likewise.
847 (vst4q_s8): Likewise.
848 (vst4q_p8): Likewise.
849 (vst4q_s16): Likewise.
850 (vst4q_p16): Likewise.
851 (vst4q_s32): Likewise.
852 (vst4q_s64): Likewise.
853 (vst4q_u8): Likewise.
854 (vst4q_u16): Likewise.
855 (vst4q_u32): Likewise.
856 (vst4q_u64): Likewise.
857 (vst4q_f16): Likewise.
858 (vst4q_f32): Likewise.
859 (vst4q_f64): Likewise.
860 (vst4q_p64): Likewise.
861 (vtbx4_s8): Likewise.
862 (vtbx4_u8): Likewise.
863 (vtbx4_p8): Likewise.
864 (vtrn_f32): Likewise.
866 (vtrn_p16): Likewise.
868 (vtrn_s16): Likewise.
869 (vtrn_s32): Likewise.
871 (vtrn_u16): Likewise.
872 (vtrn_u32): Likewise.
873 (vtrnq_f32): Likewise.
874 (vtrnq_p8): Likewise.
875 (vtrnq_p16): Likewise.
876 (vtrnq_s8): Likewise.
877 (vtrnq_s16): Likewise.
878 (vtrnq_s32): Likewise.
879 (vtrnq_u8): Likewise.
880 (vtrnq_u16): Likewise.
881 (vtrnq_u32): Likewise.
882 (vrsqrte_f16): Likewise.
883 (vrsqrteq_f16): Likewise.
884 (vsqrt_f16): Likewise.
885 (vsqrtq_f16): Likewise.
886 (vabd_f16): Likewise.
887 (vabdq_f16): Likewise.
888 (vpadd_f16): Likewise.
889 (vpaddq_f16): Likewise.
890 (vpmax_f16): Likewise.
891 (vpmaxq_f16): Likewise.
892 (vpmaxnm_f16): Likewise.
893 (vpmaxnmq_f16): Likewise.
894 (vpmin_f16): Likewise.
895 (vpminq_f16): Likewise.
896 (vpminnm_f16): Likewise.
897 (vpminnmq_f16): Likewise.
898 (vrsqrts_f16): Likewise.
899 (vrsqrtsq_f16): Likewise.
901 2019-09-25 Richard Biener <rguenther@suse.de>
903 PR tree-optimization/91896
904 * tree-vect-loop.c (vectorizable_reduction): The single
905 def-use cycle optimization cannot apply when there's more
906 than one pattern stmt involved.
908 2019-09-24 Iain Sandoe <iain@sandoe.co.uk>
910 * config/rs6000/rs6000.md (load_macho_picbase_<mode>): New, using
911 the 'P' mode iterator, replacing the (removed) SI and DI variants.
912 (reload_macho_picbase_<mode>): Likewise.
914 2019-09-24 Iain Sandoe <iain@sandoe.co.uk>
916 * config/rs6000/rs6000.md: Move darwin.md include until
917 after the definition of the mode iterators.
919 2019-09-23 Martin Sebor <msebor@redhat.com>
921 PR tree-optimization/91570
922 * tree-ssa-strlen.c (get_range_strlen_dynamic): Handle null and
923 non-constant minlen, maxlen and maxbound.
925 2019-09-24 Richard Biener <rguenther@suse.de>
927 * tree-vectorizer.h (_stmt_vec_info::const_cond_reduc_code):
929 (_stmt_vec_info::cond_reduc_code): ... this.
930 (_stmt_vec_info::induc_cond_initial_val): Add.
931 (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): Rename to...
932 (STMT_VINFO_VEC_COND_REDUC_CODE): ... this.
933 (STMT_VINFO_VEC_INDUC_COND_INITIAL_VAL): Add.
934 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Adjust.
935 * tree-vect-loop.c (get_initial_def_for_reduction): Pass in
937 (vect_create_epilog_for_reduction): Drop special
938 induction condition reduction params, pass in reduction code
940 (vectorizable_reduction): Perform condition reduction kind
941 selection only at analysis time. Adjust passing on state.
943 2019-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
945 * config/aarch64/aarch64.md (mov<mode>): Don't call
946 aarch64_split_dimode_const_store on volatile MEM.
948 2019-09-24 Stamatis Markianos-Wright <stam.markianos-wright@arm.com>
950 * config/aarch64/aarch64-option-extensions.def (fp16fml):
951 Update hwcap string for fp16fml.
953 2019-09-24 Jakub Jelinek <jakub@redhat.com>
956 * match.pd (((T)(A)) + CST -> (T)(A + CST)): Formatting fix.
957 (((T)(A + CST1)) + CST2 -> (T)(A) + (T)CST1 + CST2): New optimization.
959 2019-09-24 Martin Liska <mliska@suse.cz>
961 * cfgexpand.c (gimple_assign_rhs_to_tree): Use switch statement
962 instead of if-elseif-elseif-...
963 * gimple-expr.c (extract_ops_from_tree): Likewise.
964 * gimple.c (get_gimple_rhs_num_ops): Likewise.
965 * tree-ssa-forwprop.c (rhs_to_tree): Likewise.
967 2019-09-24 Martin Jambor <mjambor@suse.cz>
970 * ipa-param-manipulation.c (carry_over_param): Make a method of
971 ipa_param_body_adjustments, remove now unnecessary argument. Also copy
972 in case of a context mismatch.
973 (ipa_param_body_adjustments::common_initialization): Adjust call to
975 * ipa-param-manipulation.h (class ipa_param_body_adjustments): Add
976 private method carry_over_param.
978 2019-09-24 Martin Jambor <mjambor@suse.cz>
981 * ipa-sra.c (scan_expr_access): Check that offset is non-negative.
983 2019-09-24 Richard Biener <rguenther@suse.de>
985 * tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize MEM_REF
988 2019-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
990 * config/arm/t-arm (arm-builtins.o): Add dependency on
991 arm_acle_builtins.def.
993 2019-09-23 Richard Sandiford <richard.sandiford@arm.com>
996 * config/rs6000/altivec.md (altivec_copysign_v4sf3): Generate
997 canonical CONST_INTs. Use gen_rtvec.
999 2019-09-23 Richard Biener <rguenther@suse.de>
1001 * tree-vect-loop.c (get_initial_def_for_reduction): Simplify,
1002 avoid adjusting by + 0 or * 1.
1003 (vect_create_epilog_for_reduction): Get reduction code only
1004 when necessary. Deal with adjustment_def only when necessary.
1006 2019-09-23 Richard Sandiford <richard.sandiford@arm.com>
1008 * config/aarch64/atomics.md (aarch64_store_exclusive_pair): Fix
1011 2019-09-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1014 * lto-section-in.c (lto_section_name): Use "ipa_sra" instead of
1017 2019-09-22 Iain Sandoe <iain@sandoe.co.uk>
1019 * config/rs6000/rs6000.c (machopic_output_stub): Remove dead
1020 code. Merge code blocks with common conditionals. Use declared
1021 macro instead of a magic number for PIC level.
1023 2019-09-21 Martin Sebor <msebor@redhat.com>
1026 * gcc/gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset):
1027 Simplify computation of the offset of the referenced subobject.
1029 2019-09-21 Iain Sandoe <iain@sandoe.co.uk>
1031 * config/darwin.c (machopic_legitimize_pic_address): Check
1034 2019-09-21 Richard Sandiford <richard.sandiford@arm.com>
1036 * ira-conflicts.c (can_use_same_reg_p): New function.
1037 (process_reg_shuffles): Take an insn parameter. Ignore cases
1038 in which input operand op_num could seemingly never be allocated
1039 to the same register as the destination.
1040 (add_insn_allocno_copies): Update call to process_reg_shuffles.
1042 2019-09-21 Richard Sandiford <richard.sandiford@arm.com>
1044 * simplify-rtx.c (neg_const_int): Replace with...
1045 (neg_poly_int_rtx): ...this new function.
1046 (simplify_binary_operation_1): Extend (minus x C) -> (plus X -C)
1047 to all CONST_SCALAR_INTs and to CONST_POLY_INT.
1048 (simplify_plus_minus): Likewise for constant terms here.
1050 2019-09-20 Jonas Pfeil <jonas.pfeil@uli-ulm.de>
1052 * config/microblaze/microblaze.h (ASM_OUTPUT_SKIP): Use
1053 HOST_WIDE_PRINT_UNSIGNED.
1055 2019-09-20 John David Anglin <danglin@gcc.gnu.org>
1057 * config/pa/pa.c (pa_trampoline_init): Remove spurious extended
1060 2019-09-20 Maya Rashish <coypu@sdf.org>
1063 * config/vax/vax.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
1064 Define to speculation_safe_value_not_needed.
1066 2019-09-20 Richard Biener <rguenther@suse.de>
1067 Uros Bizjak <ubizjak@gmail.com>
1070 * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): Revert
1072 (general_scalar_chain::convert_op): Force not suitable memory
1073 operands to a register.
1075 2019-09-20 Richard Biener <rguenther@suse.de>
1077 PR tree-optimization/91821
1078 * tree-vect-loop.c (check_reduction_path): Check we can compute
1080 (vect_is_simple_reduction): Set STMT_VINFO_REDUC_IDX.
1081 * tree-vect-patterns.c (vect_reassociating_reduction_p): Return
1082 operands in canonical order.
1083 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
1084 STMT_VINFO_REDUC_IDX.
1085 * tree-vectorizer.h (_stmt_vec_info::reduc_idx): New.
1086 (STMT_VINFO_REDUC_IDX): Likewise.
1088 2019-09-20 Eric Botcazou <ebotcazou@adacore.com>
1091 * config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
1093 2019-09-20 Richard Biener <rguenther@suse.de>
1095 PR tree-optimization/91822
1096 * tree-vectorizer.h (vectorizable_condition): Restore for_reduction
1098 * tree-vect-loop.c (vectorizable_reduction): Adjust asserts
1099 for reduc_index in nested cycles, adjust vectorizable_condition
1101 * tree-vect-stmts.c (vectorizable_condition): Restore for_reduction
1103 (vect_analyze_stmt): Adjust.
1104 (vect_transform_stmt): Likewise.
1106 2019-09-20 Richard Biener <rguenther@suse.de>
1109 * config/i386/i386-features.c (general_scalar_chain::convert_registers):
1110 Ensure there's a sequence point between allocating the new register
1111 and passing a reference to a reg via regno_reg_rtx.
1113 2019-09-20 Martin Jambor <mjambor@suse.cz>
1115 * coretypes.h (cgraph_edge): Declare.
1116 * ipa-param-manipulation.c: Rewrite.
1117 * ipa-param-manipulation.h: Likewise.
1118 * Makefile.in (GTFILES): Added ipa-param-manipulation.h and ipa-sra.c.
1119 (OBJS): Added ipa-sra.o.
1120 * cgraph.h (ipa_replace_map): Removed fields old_tree, replace_p
1121 and ref_p, added fields param_adjustments and performed_splits.
1122 (struct cgraph_clone_info): Remove ags_to_skip and
1123 combined_args_to_skip, new field param_adjustments.
1124 (cgraph_node::create_clone): Changed parameters to use
1125 ipa_param_adjustments.
1126 (cgraph_node::create_virtual_clone): Likewise.
1127 (cgraph_node::create_virtual_clone_with_body): Likewise.
1128 (tree_function_versioning): Likewise.
1129 (cgraph_build_function_type_skip_args): Removed.
1130 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Convert to
1131 using ipa_param_adjustments.
1132 (clone_of_p): Likewise.
1133 * cgraphclones.c (cgraph_build_function_type_skip_args): Removed.
1134 (build_function_decl_skip_args): Likewise.
1135 (duplicate_thunk_for_node): Adjust parameters using
1136 ipa_param_body_adjustments, copy param_adjustments instead of
1138 (cgraph_node::create_clone): Convert to using ipa_param_adjustments.
1139 (cgraph_node::create_virtual_clone): Likewise.
1140 (cgraph_node::create_version_clone_with_body): Likewise.
1141 (cgraph_materialize_clone): Likewise.
1142 (symbol_table::materialize_all_clones): Likewise.
1143 * ipa-fnsummary.c (ipa_fn_summary_t::duplicate): Simplify
1144 ipa_replace_map check.
1145 * ipa-cp.c (get_replacement_map): Do not initialize removed fields.
1146 (initialize_node_lattices): Make aware that some parameters might have
1147 already been removed.
1148 (want_remove_some_param_p): New function.
1149 (create_specialized_node): Convert to using ipa_param_adjustments and
1150 deal with possibly pre-existing adjustments.
1151 * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.
1152 (output_node_opt_summary): Do not stream removed fields. Stream
1153 parameter adjustments instead of argumetns to skip.
1154 (input_node_opt_summary): Likewise.
1155 (input_node_opt_summary): Likewise.
1156 * lto-section-in.c (lto_section_name): Added ipa-sra section.
1157 * lto-streamer.h (lto_section_type): Likewise.
1158 * tree-inline.h (copy_body_data): New fields killed_new_ssa_names and
1160 (copy_decl_to_var): Declare.
1161 * tree-inline.c (update_clone_info): Do not remap old_tree.
1162 (remap_gimple_stmt): Use ipa_param_body_adjustments to modify gimple
1163 statements, walk all extra generated statements and remap their
1165 (redirect_all_calls): Add killed SSA names to a hash set.
1166 (remap_ssa_name): Do not remap killed SSA names.
1167 (copy_arguments_for_versioning): Renames to copy_arguments_nochange,
1168 half of functionality moved to ipa_param_body_adjustments.
1169 (copy_decl_to_var): Make exported.
1170 (copy_body): Destroy killed_new_ssa_names hash set.
1171 (expand_call_inline): Remap performed splits.
1172 (update_clone_info): Likewise.
1173 (tree_function_versioning): Simplify tree_map processing. Updated to
1174 accept ipa_param_adjustments and use ipa_param_body_adjustments.
1175 * omp-simd-clone.c (simd_clone_vector_of_formal_parm_types): Adjust
1176 for the new interface.
1177 (simd_clone_clauses_extract): Likewise, make args an auto_vec.
1178 (simd_clone_compute_base_data_type): Likewise.
1179 (simd_clone_init_simd_arrays): Adjust for the new interface.
1180 (simd_clone_adjust_argument_types): Likewise.
1181 (struct modify_stmt_info): Likewise.
1182 (ipa_simd_modify_stmt_ops): Likewise.
1183 (ipa_simd_modify_function_body): Likewise.
1184 (simd_clone_adjust): Likewise.
1185 * tree-sra.c: Removed IPA-SRA. Include tree-sra.h.
1186 (type_internals_preclude_sra_p): Make public.
1187 * tree-sra.h: New file.
1188 * ipa-inline-transform.c (save_inline_function_body): Update to
1189 refelct new tree_function_versioning signature.
1190 * ipa-prop.c (adjust_agg_replacement_values): Use a helper from
1191 ipa_param_adjustments to get current parameter indices.
1192 (ipcp_modif_dom_walker::before_dom_children): Likewise.
1193 (ipcp_update_bits): Likewise.
1194 (ipcp_update_vr): Likewise.
1195 * ipa-split.c (split_function): Convert to using ipa_param_adjustments.
1196 * ipa-sra.c: New file.
1197 * multiple_target.c (create_target_clone): Update to reflet new type
1198 of create_version_clone_with_body.
1199 * trans-mem.c (ipa_tm_create_version): Update to reflect new type of
1200 tree_function_versioning.
1201 (modify_function): Update to reflect new type of
1202 tree_function_versioning.
1203 * params.def (PARAM_IPA_SRA_MAX_REPLACEMENTS): New.
1204 * passes.def: Remove old IPA-SRA and add new one.
1205 * tree-pass.h (make_pass_early_ipa_sra): Remove declaration.
1206 (make_pass_ipa_sra): Declare.
1207 * dbgcnt.def: Remove eipa_sra. Added ipa_sra_params and
1209 * doc/invoke.texi (ipa-sra-max-replacements): New.
1211 2019-09-19 Martin Sebor <msebor@redhat.com>
1214 * builtins.c (component_size): Correct trailing array computation,
1215 rename to component_ref_size and move...
1216 (compute_objsize): Adjust.
1217 * gimple-ssa-warn-restrict.c (builtin_memref::refsize): New member.
1218 (builtin_access::strict): Do not consider memmove.
1219 (builtin_access::write_off): New function.
1220 (builtin_memref::builtin_memref): Initialize refsize.
1221 (builtin_memref::set_base_and_offset): Adjust refoff and compute
1223 (builtin_memref::offset_out_of_bounds): Use ooboff input values.
1225 (builtin_access::builtin_access): Initialize dstoff to destination
1226 refeence offset here instead of in maybe_diag_overlap. Adjust
1227 referencess even to unrelated objects. Adjust sizrange of bounded
1228 string functions to reflect bound. For strcat, adjust destination
1229 sizrange by that of source.
1230 (builtin_access::strcat_overlap): Adjust offsets and sizes
1231 to reflect the increase in destination sizrange above.
1232 (builtin_access::overlap): Do not set dstoff here but instead
1233 in builtin_access::builtin_access.
1234 (check_bounds_or_overlap): Use builtin_access::write_off.
1235 (maybe_diag_access_bounds): Add argument. Add informational notes.
1236 (dump_builtin_memref, dump_builtin_access): New functions.
1237 * tree.c (component_ref_size): ...to here.
1238 * tree.h (component_ref_size): Declare.
1239 * tree-ssa-strlen (handle_builtin_strcat): Include the terminating
1240 nul in the size of the source string.
1242 2019-09-19 Lewis Hyatt <lhyatt@gmail.com>
1245 * doc/cpp.texi: Document support for extended characters in
1247 * doc/cppopts.texi: Likewise.
1249 2019-09-19 Richard Biener <rguenther@suse.de>
1251 * tree-vect-loop.c (vect_is_slp_reduction): Remove.
1252 (check_reduction_path): New overload having the path as result.
1253 (vect_is_simple_reduction): From the detected reduction
1254 path build a SLP reduction chain if possible.
1256 2019-09-19 Richard Biener <rguenther@suse.de>
1259 * config/i386/i386-features.c (gen_gpr_to_xmm_move_src):
1260 Force operand to a register if it isn't nonimmediate_operand.
1262 2019-09-19 Wilco Dijkstra <wdijkstr@arm.com>
1264 * config/arm/arm.md (<logical_op>di3): Use <optab> and <CODE>.
1265 * config/arm/iterators.md (optab): Add and, ior, xor entries.
1266 (logical_op): Remove code attribute.
1267 (logical_OP): Likewise.
1269 2019-09-19 Martin Liska <mliska@suse.cz>
1271 * ipa-icf.c (sort_congruence_class_groups_by_decl_uid):
1274 2019-09-19 Richard Henderson <richard.henderson@linaro.org>
1276 * config/aarch64/aarch64.c (aarch64_print_operand): Allow integer
1279 * config/aarch64/aarch64.c (aarch64_gen_compare_reg): Add support
1280 for NE comparison of TImode values.
1281 (aarch64_emit_load_exclusive): Add support for TImode.
1282 (aarch64_emit_store_exclusive): Likewise.
1283 (aarch64_split_compare_and_swap): Disable strong_zero_p for TImode.
1284 * config/aarch64/atomics.md (@atomic_compare_and_swap<ALLI_TI>):
1285 Change iterator from ALLI to ALLI_TI.
1286 (@atomic_compare_and_swap<JUST_TI>): New.
1287 (@atomic_compare_and_swap<JUST_TI>_lse): New.
1288 (aarch64_load_exclusive_pair): New.
1289 (aarch64_store_exclusive_pair): New.
1290 * config/aarch64/iterators.md (JUST_TI): New.
1292 * config/aarch64/aarch64 (aarch64_split_compare_and_swap): Disable
1293 strong_zero_p for aarch64_track_speculation; unify some code paths;
1294 use aarch64_gen_compare_reg instead of open-coding.
1296 * config/aarch64/aarch64.opt (-moutline-atomics): New.
1297 * config/aarch64/aarch64.c (aarch64_atomic_ool_func): New.
1298 (aarch64_ool_cas_names, aarch64_ool_swp_names): New.
1299 (aarch64_ool_ldadd_names, aarch64_ool_ldset_names): New.
1300 (aarch64_ool_ldclr_names, aarch64_ool_ldeor_names): New.
1301 (aarch64_expand_compare_and_swap): Honor TARGET_OUTLINE_ATOMICS.
1302 * config/aarch64/atomics.md (atomic_exchange<ALLI>): Likewise.
1303 (atomic_<atomic_op><ALLI>): Likewise.
1304 (atomic_fetch_<atomic_op><ALLI>): Likewise.
1305 (atomic_<atomic_op>_fetch<ALLI>): Likewise.
1306 * doc/invoke.texi: Document -moutline-atomics.
1308 2019-09-19 Feng Xue <fxue@os.amperecomputing.com>
1310 * ipa-fnsummary.c (set_cond_stmt_execution_predicate): Do not compute
1311 trivial predicate for condition branch.
1312 (set_switch_stmt_execution_predicate): Do not compute trivial predicate
1314 (compute_bb_predicates): Update predicate based on post-dominating
1316 (analyze_function_body): Calculate post-dominating information.
1318 2019-09-19 Richard Sandiford <richard.sandiford@arm.com>
1320 * tree-vectorizer.h (vectorizable_condition): Take an int
1321 reduction index instead of a boolean flag.
1322 * tree-vect-stmts.c (vectorizable_condition): Likewise.
1323 Swap the "then" and "else" values for EXTRACT_LAST_REDUCTION
1324 reductions if the reduction accumulator is the "then" rather
1325 than the "else" value.
1326 (vect_analyze_stmt): Update call accordingly.
1327 (vect_transform_stmt): Likewise.
1328 * tree-vect-loop.c (vectorizable_reduction): Likewise,
1329 asserting that the index is > 0.
1331 2019-09-19 Martin Liska <mliska@suse.cz>
1333 * ipa-icf.c (sort_sem_items_by_decl_uid): Simplify comparator.
1334 (sort_congruence_classes_by_decl_uid): Likewise.
1335 (sort_congruence_class_groups_by_decl_uid): Use std::pair for
1337 (sem_item_optimizer::merge_classes): Likewise.
1339 2019-09-19 Richard Biener <rguenther@suse.de>
1341 PR tree-optimization/91812
1342 * tree-ssa-phiprop.c (propagate_with_phi): Do not replace
1345 2019-09-19 Richard Sandiford <richard.sandiford@arm.com>
1347 * defaults.h (TARGET_UNIT): New macro.
1348 (target_unit): New type.
1349 * rtl.h (native_encode_rtx, native_decode_rtx)
1350 (native_decode_vector_rtx, subreg_size_lsb): Declare.
1351 (subreg_lsb_1): Turn into an inline wrapper around subreg_size_lsb.
1352 * rtlanal.c (subreg_lsb_1): Delete.
1353 (subreg_size_lsb): New function.
1354 * simplify-rtx.c: Include rtx-vector-builder.h
1355 (simplify_immed_subreg): Delete.
1356 (native_encode_rtx, native_decode_vector_rtx, native_decode_rtx)
1357 (simplify_const_vector_byte_offset, simplify_const_vector_subreg): New
1359 (simplify_subreg): Use them.
1360 (test_vector_subregs_modes, test_vector_subregs_repeating)
1361 (test_vector_subregs_fore_back, test_vector_subregs_stepped)
1362 (test_vector_subregs): New functions.
1363 (test_vector_ops): Call test_vector_subregs for integer vector
1364 modes with at least 2 elements.
1366 2019-09-19 Richard Biener <rguenther@suse.de>
1368 * tree-parloops.c (parloops_is_slp_reduction): Do not set
1369 LOOP_VINFO_OPERANDS_SWAPPED.
1370 (parloops_is_simple_reduction): Likewise.
1371 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Do not
1372 initialize operands_swapped.
1373 (_loop_vec_info::~_loop_vec_info): Do not re-canonicalize stmts.
1374 (vect_is_slp_reduction): Do not swap operands.
1375 * tree-vectorizer.h (_loop_vec_info::operands_swapped): Remove.
1376 (LOOP_VINFO_OPERANDS_SWAPPED): Likewise.
1378 2019-09-19 Hongtao Liu <hongtao.liu@intel.com>
1381 * config/i386.md (*floatuns<SWI48:mode><MODEF:mode>2_avx512):
1382 Add avx_partial_xmm_update.
1384 2019-09-18 Jim Wilson <jimw@sifive.com>
1387 * config/riscv/riscv-protos.h (riscv_split_symbol): New bool parameter.
1388 (riscv_move_integer): Likewise.
1389 * config/riscv/riscv.c (riscv_split_integer): Pass FALSE for new
1390 riscv_move_integer arg.
1391 (riscv_legitimize_move): Likewise.
1392 (riscv_force_temporary): New parameter in_splitter. Don't call
1394 (riscv_unspec_offset_high): Pass FALSE for new riscv_force_temporary
1396 (riscv_add_offset): Likewise.
1397 (riscv_split_symbol): New parameter in_splitter. Pass to
1398 riscv_force_temporary.
1399 (riscv_legitimize_address): Pass FALSE for new riscv_split_symbol
1401 (riscv_move_integer): New parameter in_splitter. New local
1402 can_create_psuedo. Don't call riscv_split_integer or force_reg when
1404 (riscv_legitimize_const_move): Pass FALSE for new riscv_move_integer,
1405 riscv_split_symbol, and riscv_force_temporary args.
1406 * config/riscv/riscv.md (low<mode>+1): Pass TRUE for new
1407 riscv_move_integer arg.
1408 (low<mode>+2): Pass TRUE for new riscv_split_symbol arg.
1410 2019-09-18 H.J. Lu <hongjiu.lu@intel.com>
1413 * config/i386/x86-tune-costs.h (skylake_cost): Restore SImode
1414 hard register store cost to 6.
1416 2019-09-18 H.J. Lu <hongjiu.lu@intel.com>
1419 * config/i386/x86-tune-costs.h (skylake_cost): Increase SImode
1420 pseudo register store cost from 3 to 6 to make it the same as
1423 2019-09-18 Wilco Dijkstra <wdijkstr@arm.com>
1426 * config/arm/arm.md (<logical_op>di3): Expand explicitly.
1427 (one_cmpldi2): Likewise.
1428 * config/arm/arm.c (const_ok_for_dimode_op): Return true if one
1429 of the constant parts is simple.
1430 * config/arm/iterators.md (LOGICAL): Add new code iterator.
1431 (logical_op): Add new code attribute.
1432 (logical_OP): Likewise.
1433 * config/arm/predicates.md (arm_anddi_operand): Add predicate.
1434 (arm_iordi_operand): Add predicate.
1435 (arm_xordi_operand): Add predicate.
1437 2019-09-18 Wilco Dijkstra <wdijkstr@arm.com>
1439 * config/arm/arm.md (maddsidi4): Remove expander.
1440 (mulsidi3adddi): Remove pattern.
1441 (mulsidi3adddi_v6): Likewise.
1442 (mulsidi3_nov6): Likewise.
1443 (mulsidi3_v6): Likewise.
1444 (umulsidi3): Remove expander.
1445 (umulsidi3_nov6): Remove pattern.
1446 (umulsidi3_v6): Likewise.
1447 (umulsidi3adddi): Likewise.
1448 (umulsidi3adddi_v6): Likewise.
1449 (<Us>mulsidi3): Add combined expander.
1450 (<Us>maddsidi4): Likewise.
1451 (<US>mull): Add combined umull and smull pattern.
1452 (<US>mlal): Likewise.
1453 * config/arm/iterators.md (Us): Add new iterator.
1455 2019-09-18 Richard Biener <rguenther@suse.de>
1457 * tree-vect-loop.c (vect_is_simple_reduction): Remove operand
1459 (vectorize_fold_left_reduction): Remove assert.
1460 (vectorizable_reduction): Also expect COND_EXPR non-reduction
1461 operand in position 2. Remove assert.
1463 2019-09-18 Wilco Dijkstra <wdijkstr@arm.com>
1465 * config/arm/arm.md (smulsi3_highpart): Use <US> and <SE> iterators.
1466 (smulsi3_highpart_nov6): Remove pattern.
1467 (smulsi3_highpart_v6): Likewise.
1468 (umulsi3_highpart): Likewise.
1469 (umulsi3_highpart_nov6): Likewise.
1470 (umulsi3_highpart_v6): Likewise.
1471 (<US>mull_high): Add new combined multiply pattern.
1473 2019-09-18 Wilco Dijkstra <wdijkstr@arm.com>
1475 * config/arm/arm.md (arm_mulsi3): Remove pattern.
1476 (arm_mulsi3_v6): Likewise.
1477 (mulsi3addsi_v6): Likewise.
1478 (mulsi3subsi): Likewise.
1479 (mul): Add new multiply pattern.
1483 2019-09-18 Richard Biener <rguenther@suse.de>
1485 * tree-parloops.c (report_ploop_op): Copy from report_vect_op.
1486 (parloops_valid_reduction_input_p): Copy from
1487 valid_reduction_input_p.
1488 (parloops_is_slp_reduction): Copy from vect_is_slp_reduction.
1489 (parloops_needs_fold_left_reduction_p): Copy from
1490 needs_fold_left_reduction_p.
1491 (parloops_is_simple_reduction): Copy from
1492 vect_is_simple_reduction.
1493 (parloops_force_simple_reduction): Copy from
1494 vect_force_simple_reduction.
1495 (gather_scalar_reductions): Adjust.
1496 * tree-vect-loop.c (vect_force_simple_reduction): Make static.
1497 * tree-vectorizer.h (vect_force_simple_reduction): Remove.
1499 2019-09-18 Richard Biener <rguenther@suse.de>
1501 * tree-vectorizer.h (get_initial_def_for_reduction): Remove.
1502 * tree-vect-loop.c (get_initial_def_for_reduction): Make
1504 (vect_create_epilog_for_reduction): Remove dead code.
1506 2019-09-18 Richard Sandiford <richard.sandiford@arm.com>
1508 * varasm.c (assemble_real): Generate canonical const_ints.
1510 2019-09-18 Richard Biener <rguenther@suse.de>
1513 * lto-streamer-in.c (input_eh_regions): Move EH init to
1514 lto_materialize_function.
1515 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers):
1518 2019-09-18 Richard Sandiford <richard.sandiford@arm.com>
1520 * tree-ssa-ccp.c (get_value_for_expr): Check whether CONSTANTs
1523 2019-09-18 Richard Sandiford <richard.sandiford@arm.com>
1525 * gimplify.c (gimplify_decl_expr): Use poly_int_tree_p instead
1526 of checking specifically for INTEGER_CST.
1528 2019-09-18 Richard Sandiford <richard.sandiford@arm.com>
1530 * stor-layout.c (compute_record_mode): Operate on poly_uint64
1531 sizes instead of uhwi sizes.
1533 2019-09-18 Richard Sandiford <richard.sandiford@arm.com>
1535 * dwarf2out.c (loc_list_from_tree_1): Handle POLY_INT_CST.
1536 (add_const_value_attribute): Handle CONST_POLY_INT.
1538 2019-09-18 Martin Liska <mliska@suse.cz>
1540 * dbgcnt.def (store_merging): New counter.
1541 * gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_stores):
1542 Use it in store merging.
1544 2019-09-17 Richard Sandiford <richard.sandiford@arm.com>
1546 * config/aarch64/aarch64.c (aarch64_sched_variable_issue): New
1548 (TARGET_SCHED_VARIABLE_ISSUE): New macro.
1549 * config/arm/arm.c (arm_sched_variable_issue): New function.
1550 (TARGET_SCHED_VARIABLE_ISSUE): New macro.
1552 2019-09-17 Richard Sandiford <richard.sandiford@arm.com>
1554 * config/arm/types.md (no_reservation): New reservation.
1555 * config/aarch64/falkor.md (falkor_other_0_nothing): Don't handle
1557 * config/aarch64/saphira.md (saphira_other_0_nothing): Likewise.
1558 * config/aarch64/thunderx2t99.md (thunderx2t99_nothing): Likewise.
1559 * config/aarch64/tsv110.md (tsv110_alu): Likewise.
1560 * config/arm/arm1020e.md (1020alu_op): Likewise.
1561 * config/arm/arm1026ejs.md (alu_op): Likewise.
1562 * config/arm/arm1136jfs.md (11_alu_op): Likewise.
1563 * config/arm/arm926ejs.md (9_alu_op): Likewise.
1564 * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
1565 * config/arm/cortex-a17.md (cortex_a17_alu): Likewise.
1566 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
1567 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
1568 * config/arm/cortex-a57.md (cortex_a57_alu): Likewise.
1569 * config/arm/cortex-a7.md (cortex_a7_alu_shift): Likewise.
1570 * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
1571 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
1572 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
1573 * config/arm/cortex-m7.md (cortex_m7_alu_simple): Likewise.
1574 * config/arm/cortex-r4.md (cortex_r4_alu_shift_reg): Likewise.
1575 * config/arm/fa526.md (526_alu_op): Likewise.
1576 * config/arm/fa606te.md (606te_alu_op): Likewise.
1577 * config/arm/fa626te.md (626te_alu_op): Likewise.
1578 * config/arm/fa726te.md (726te_alu_op): Likewise.
1579 * config/arm/xgene1.md (xgene1_nop): Likewise.
1581 2019-09-17 Richard Sandiford <richard.sandiford@arm.com>
1583 * config/arm/thumb1.md (*thumb1_tablejump): Change type from
1584 "no_insn" to "branch".
1586 2019-09-17 Richard Sandiford <richard.sandiford@arm.com>
1588 * array-traits.h (array_traits<T[N]>::size): Remove parameter name.
1590 2019-09-17 Richard Biener <rguenther@suse.de>
1593 * dwarf2out.c (dwarf2out_late_global_decl): If early dwarf
1594 was missing generate locations only once.
1596 2019-09-17 Feng Xue <fxue@os.amperecomputing.com>
1599 * doc/invoke.texi (ipa-max-switch-predicate-bounds): Document new
1601 * params.def (PARAM_IPA_MAX_SWITCH_PREDICATE_BOUNDS): New.
1602 * ipa-fnsummary.c (set_switch_stmt_execution_predicate): Add predicate
1603 for switch default case using range analysis information.
1605 2019-09-17 Christophe Lyon <christophe.lyon@linaro.org>
1608 * config/arm/arm.c (arm_valid_target_attribute_rec): Make sure the
1609 mode attributed is supported by FDPIC.
1611 2019-09-17 Richard Biener <rguenther@suse.de>
1613 PR tree-optimization/91790
1614 * tree-vect-stmts.c (vectorizable_load): For BB vectorization
1615 use the correct DR for setting up realignment.
1617 2019-09-16 Uroš Bizjak <ubizjak@gmail.com>
1620 * config/i386/i386.h (TARGET_USE_XCHG_FOR_ATOMIC_STORE): New macro.
1621 * config/i386/x86-tune.def (X86_TUNE_USE_XCHG_FOR_ATOMIC_STORE): New.
1622 * config/i386/sync.md (atomic_store<mode>): emit XCHG for
1623 TARGET_USE_XCHG_FOR_ATOMIC_STORE.
1625 2019-09-16 Jason Merrill <jason@redhat.com>
1627 * Makefile.in (build/genmatch.o): Depend on $(CPPLIB_H).
1629 2019-09-16 Martin Liska <mliska@suse.cz>
1631 * gimple-fold.c (or_comparisons_1): Remove rules moved
1633 * match.pd: ... here.
1635 2019-09-16 Martin Liska <mliska@suse.cz>
1637 * gimple-fold.c (or_comparisons_1): Remove rules
1639 * match.pd: ... here.
1641 2019-09-16 Martin Liska <mliska@suse.cz>
1643 * genmatch.c (dt_node::append_simplify): Do not print
1644 warning when we have duplicate patterns belonging
1645 to a same simplify rule.
1646 * gimple-fold.c (and_comparisons_1): Remove matching moved to match.pd.
1647 (maybe_fold_comparisons_from_match_pd): Handle
1648 tcc_comparison as a results.
1649 * match.pd: Handle (X == CST1) && (X OP2 CST2) conditions.
1651 2019-09-16 Li Jia He <helijia@linux.ibm.com>
1652 Qi Feng <ffengqi@linux.ibm.com>
1655 * match.pd (x > y && x != XXX_MIN): Optimize into 'x > y'.
1656 (x > y && x == XXX_MIN): Optimize into 'false'.
1657 (x <= y && x == XXX_MIN): Optimize into 'x == XXX_MIN'.
1658 (x < y && x != XXX_MAX): Optimize into 'x < y'.
1659 (x < y && x == XXX_MAX): Optimize into 'false'.
1660 (x >= y && x == XXX_MAX): Optimize into 'x == XXX_MAX'.
1661 (x > y || x != XXX_MIN): Optimize into 'x != XXX_MIN'.
1662 (x <= y || x != XXX_MIN): Optimize into 'true'.
1663 (x <= y || x == XXX_MIN): Optimize into 'x <= y'.
1664 (x < y || x != XXX_MAX): Optimize into 'x != XXX_MAX'.
1665 (x >= y || x != XXX_MAX): Optimize into 'true'.
1666 (x >= y || x == XXX_MAX): Optimize into 'x >= y'.
1668 2019-09-16 Li Jia He <helijia@linux.ibm.com>
1669 Martin Liska <mliska@suse.cz>
1671 * gimple-fold.c (and_comparisons_1): Add type as first
1673 (and_var_with_comparison): Likewise.
1674 (and_var_with_comparison_1): Likewise.
1675 (or_comparisons_1): Likewise.
1676 (or_var_with_comparison): Likewise.
1677 (or_var_with_comparison_1): Likewise.
1678 (maybe_fold_and_comparisons): Call maybe_fold_comparisons_from_match_pd.
1679 (maybe_fold_or_comparisons): Likewise.
1680 (maybe_fold_comparisons_from_match_pd): New.
1681 * gimple-fold.h (maybe_fold_and_comparisons): Add type argument.
1682 (maybe_fold_or_comparisons): Likewise.
1683 * gimple.c (gimple_size): Make it public and add num_ops argument.
1684 (gimple_init): New function.
1685 (gimple_alloc): Call gimple_init.
1686 * gimple.h (gimple_size): New.
1687 (gimple_init): Likewise.
1688 * tree-if-conv.c (fold_or_predicates): Pass type.
1689 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
1690 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Likewise.
1691 (optimize_vec_cond_expr): Likewise.
1692 (ovce_extract_ops): Return type of conditional expression.
1693 * tree-ssanames.c (init_ssa_name_imm_use): New.
1694 (make_ssa_name_fn): Use init_ssa_name_imm_use.
1695 * tree-ssanames.h (init_ssa_name_imm_use): New.
1697 2019-09-16 Richard Biener <rguenther@suse.de>
1699 PR tree-optimization/91756
1700 PR tree-optimization/87132
1701 * tree-ssa-alias.h (enum translate_flags): New.
1702 (get_continuation_for_phi): Use it instead of simple bool flag.
1703 (walk_non_aliased_vuses): Likewise.
1704 * tree-ssa-alias.c (maybe_skip_until): Adjust.
1705 (get_continuation_for_phi): When looking across backedges only
1706 disallow valueization.
1707 (walk_non_aliased_vuses): Adjust.
1708 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid valueization
1711 2019-09-14 Kewen Lin <linkw@gcc.gnu.org>
1714 * config/rs6000/rs6000.c (TARGET_HAVE_COUNT_REG_DECR_P): New macro.
1715 (TARGET_DOLOOP_COST_FOR_GENERIC): Likewise.
1716 (TARGET_DOLOOP_COST_FOR_ADDRESS): Likewise.
1717 * target.def (have_count_reg_decr_p): New hook.
1718 (doloop_cost_for_generic): Likewise.
1719 (doloop_cost_for_address): Likewise.
1720 * doc/tm.texi.in (TARGET_HAVE_COUNT_REG_DECR_P): Likewise.
1721 (TARGET_DOLOOP_COST_FOR_GENERIC): Likewise.
1722 (TARGET_DOLOOP_COST_FOR_ADDRESS): Likewise.
1723 * doc/tm.texi: Regenerate.
1724 * tree-ssa-loop-ivopts.c (comp_cost::operator+=): Consider infinite cost
1726 (record_group): Init doloop_p.
1727 (add_candidate_1): Add optional argument doloop, change the handlings
1729 (add_candidate): Likewise.
1730 (generic_predict_doloop_p): Update attribute.
1731 (force_expr_to_var_cost): Add costing for expressions COND_EXPR/LT_EXPR/
1732 LE_EXPR/GT_EXPR/GE_EXPR/EQ_EXPR/NE_EXPR/UNORDERED_EXPR/ORDERED_EXPR/
1733 UNLT_EXPR/UNLE_EXPR/UNGT_EXPR/UNGE_EXPR/UNEQ_EXPR/LTGT_EXPR/MAX_EXPR/
1735 (get_computation_cost): Update for doloop IV cand extra cost.
1736 (determine_group_iv_cost_cond): Update for doloop IV cand.
1737 (determine_iv_cost): Likewise.
1738 (ivopts_estimate_reg_pressure): Likewise.
1739 (may_eliminate_iv): Update handlings for doloop IV cand.
1740 (add_iv_candidate_for_doloop): New function.
1741 (find_iv_candidates): Call function add_iv_candidate_for_doloop.
1742 (iv_ca_set_no_cp): Update for doloop IV cand.
1743 (iv_ca_set_cp): Likewise.
1744 (iv_ca_dump): Dump register cost.
1745 (find_doloop_use): New function.
1746 (analyze_and_mark_doloop_use): Likewise.
1747 (tree_ssa_iv_optimize_loop): Call function analyze_and_mark_doloop_use.
1749 2019-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
1752 * cse.c (cse_insn): Do not replace anything with a
1755 2019-09-13 Ian Lance Taylor <iant@golang.org>
1757 * doc/invoke.texi (Optimize Options): Fix typo.
1759 2019-09-12 Uroš Bizjak <ubizjak@gmail.com>
1761 PR tree-optimization/89386
1762 * config/i386/sse.md (smulhrs<mode>3): New expander.
1763 (smulhrsv4hi3): Ditto.
1765 2019-09-12 Richard Biener <rguenther@suse.de>
1767 PR tree-optimization/91750
1768 * tree-vect-loop.c (vectorizable_induction): Compute IV increments
1769 in the type of the evolution.
1771 2019-09-12 Yuliang Wang <yuliang.wang@arm.com>
1773 PR tree-optimization/89386
1774 * config/aarch64/aarch64-sve2.md (<su>mull<bt><Vwide>)
1775 (<r>shrnb<mode>, <r>shrnt<mode>): New SVE2 patterns.
1776 (<su>mulh<r>s<mode>3): New pattern for MULHRS.
1777 * config/aarch64/iterators.md (UNSPEC_SMULLB, UNSPEC_SMULLT)
1778 (UNSPEC_UMULLB, UNSPEC_UMULLT, UNSPEC_SHRNB, UNSPEC_SHRNT)
1779 (UNSPEC_RSHRNB, UNSPEC_RSHRNT, UNSPEC_SMULHS, UNSPEC_SMULHRS)
1780 UNSPEC_UMULHS, UNSPEC_UMULHRS): New unspecs.
1781 (MULLBT, SHRNB, SHRNT, MULHRS): New int iterators.
1782 (su, r): Handle the unspecs above.
1783 (bt): New int attribute.
1784 * internal-fn.def (IFN_MULHS, IFN_MULHRS): New internal functions.
1785 * internal-fn.c (first_commutative_argument): Commutativity info for
1787 * optabs.def (smulhs_optab, smulhrs_optab, umulhs_optab)
1788 (umulhrs_optab): New optabs.
1789 * doc/md.texi (smulhs$var{m3}, umulhs$var{m3})
1790 (smulhrs$var{m3}, umulhrs$var{m3}): Documentation for the above.
1791 * tree-vect-patterns.c (vect_recog_mulhs_pattern): New pattern
1793 (vect_vect_recog_func_ptrs): Add it.
1795 2019-09-11 Michael Meissner <meissner@linux.ibm.com>
1797 * config/rs6000/predicates.md (non_add_cint_operand): Simplify the
1800 2019-09-11 Nathan Sidwell <nathan@acm.org>
1802 * tree.h (MARK_TS_TYPE_NON_COMMON): New.
1803 * tree.c (tree_node_structure_for_code): Reformat and alphabetize.
1805 2019-09-11 Richard Biener <rguenther@suse.de>
1807 * lto-opts.c (lto_write_options): Stream -g when debug is enabled.
1808 * lto-wrapper.c (merge_and_complain): Pick up -g.
1809 (append_compiler_options): Likewise.
1810 (run_gcc): Re-instantiate handling -g0 at link-time.
1811 * doc/invoke.texi (flto): Document debug info generation.
1813 2019-09-11 Richard Biener <rguenther@suse.de>
1815 PR tree-optimization/90387
1816 * vr-values.c (vr_values::extract_range_basic): After inlining
1817 simplify non-constant __builtin_constant_p to false.
1819 2019-09-11 Eric Botcazou <ebotcazou@adacore.com>
1821 PR rtl-optimization/89795
1822 * rtlanal.c (nonzero_bits1) <SUBREG>: Do not propagate results from
1823 inner REGs to paradoxical SUBREGs if WORD_REGISTER_OPERATIONS is set.
1825 2019-09-11 Jakub Jelinek <jakub@redhat.com>
1827 PR tree-optimization/91723
1828 * tree-vect-stmts.c (vectorizable_call): Use types_compatible_p check
1829 instead of pointer equality when checking if argument vectypes are
1833 * match.pd ((A / (1 << B)) -> (A >> B)): Call tree_nonzero_bits instead
1834 of get_nonzero_bits, only call it for integral types.
1836 2019-09-11 Richard Biener <rguenther@suse.de>
1839 2019-09-09 Barnaby Wilks <barnaby.wilks@arm.com>
1841 * match.pd: Add flag_unsafe_math_optimizations check
1842 before deciding on the widest type in a binary math operation.
1844 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
1846 * doc/tm.texi.in: Document that exactly one of CALL_USED_REGISTERS
1847 and CALL_REALLY_USED_REGISTERS must be defined, and that
1848 CALL_REALLY_USED_REGISTERS is preferred.
1849 * doc/tm.texi: Regenerate.
1850 * hard-reg-set.h (target_hard_regs::x_call_really_used_regs): Delete.
1851 (call_really_used_regs): Likewise.
1852 * reginfo.c: Raise an #error if both CALL_USED_REGISTERS and
1853 CALL_REALLY_USED_REGISTERS are defined.
1854 (initial_call_used_regs): Use CALL_REALLY_USED_REGISTERS as the
1855 initial value if defined.
1856 (initial_call_really_used_regs): Delete.
1857 (saved_call_really_used_regs): Likewise.
1858 (CALL_REALLY_USED_REGNO_P): Likewise.
1859 (init_reg_sets): Remove handling of call_really_used_regs.
1860 (save_register_info, restore_register_info, globalize_reg): Likewise.
1861 (init_reg_sets_1): Likewise. Use call_used_regs instead of
1862 CALL_REALLY_USED_REGNO_P. Don't set call_used_regs for registers
1863 outside operand_reg_set.
1864 (fix_register): Don't change call_used_regs if
1865 CALL_REALLY_USED_REGISTERS is defined.
1866 * config/csky/csky.h (CALL_USED_REGISTERS): Delete.
1867 * config/csky/csky.c (get_csky_live_regs): Use call_used_regs
1868 instead of call_really_used_regs.
1869 (csky_conditional_register_usage): Remove the old handling of
1870 call_used_regs and change the handling of call_really_used_regs
1871 to use call_used_regs instead.
1872 * config/ia64/ia64.h (CALL_USED_REGISTERS): Delete.
1873 * config/ia64/ia64.c (fix_range): Don't set call_used_regs when
1874 making a register fixed.
1875 * config/m32r/m32r.h (CALL_USED_REGISTERS): Delete.
1876 * config/m32r/m32r.c (MUST_SAVE_REGISTER): Use call_used_regs
1877 instead of call_really_used_regs.
1878 (m32r_conditional_register_usage): Don't set call_used_regs when
1879 making a register fixed.
1880 * config/mips/mips.h (CALL_USED_REGISTERS): Delete.
1881 * config/mips/mips.c (mips_global_pointer): Use call_used_regs
1882 instead of call_really_used_regs.
1883 (mips_interrupt_extra_call_saved_reg_p): Likewise.
1884 (mips_cfun_call_saved_reg_p): Likewise.
1885 (mips_swap_registers): Remove the old handling of call_used_regs
1886 and change the handling of call_really_used_regs to use call_used_regs
1888 (mips_conditional_register_usage): Likewise.
1889 * config/mn10300/mn10300.h (CALL_USED_REGISTERS): Delete.
1890 * config/mn10300/mn10300.c (fp_regs_to_save): Use call_used_regs
1891 instead of call_really_used_regs.
1892 (mn10300_get_live_callee_saved_regs): Likewise.
1893 (mn10300_expand_prologue, mn10300_expand_epilogue): Likewise.
1894 (mn10300_conditional_register_usage): Don't set call_used_regs when
1895 making a register fixed.
1896 * config/rs6000/rs6000.h (CALL_USED_REGISTERS): Delete.
1897 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
1898 Remove the old handling of call_used_regs and change the handling
1899 of call_really_used_regs to use call_used_regs instead.
1900 * config/s390/s390.h (CALL_USED_REGISTERS): Delete.
1901 * config/s390/s390.c (s390_regs_ever_clobbered): Use call_used_regs
1902 instead of call_really_used_regs.
1903 (s390_register_info_gprtofpr, s390_register_info): Likewise.
1904 (s390_hard_regno_rename_ok, s390_hard_regno_scratch_ok): Likewise.
1905 (s390_emit_prologue, s300_set_up_by_prologue): Likewise.
1906 (s390_can_use_return_insn, s390_optimize_prologue): Likewise.
1907 (s390_conditional_register_usage): Remove the old handling of
1908 call_used_regs and change the handling of call_really_used_regs
1909 to use call_used_regs instead.
1910 * config/sh/sh.h (CALL_USED_REGISTERS): Delete.
1911 * config/sh/sh.c (output_stack_adjust, calc_live_regs): Likewise.
1912 (sh_fix_range, reg_unused_after): Likewise.
1913 (sh_conditional_register_usage): Remove the old handling of
1914 call_used_regs and change the handling of call_really_used_regs
1915 to use call_used_regs instead.
1916 * config/sparc/sparc.h (CALL_USED_REGISTERS): Delete.
1917 * config/sparc/sparc.c (sparc_conditional_register_usage): Don't set
1918 call_used_regs when making a register fixed.
1919 * config/tilegx/tilegx.h (CALL_USED_REGISTERS): Delete.
1920 * config/tilegx/tilegx.c (tilegx_conditional_register_usage): Don't set
1921 call_used_regs when making a register fixed.
1922 * config/tilepro/tilepro.h (CALL_USED_REGISTERS): Delete.
1923 * config/tilepro/tilepro.c (tilepro_conditional_register_usage): Don't
1924 set call_used_regs when making a register fixed.
1925 * config/visium/visium.h (CALL_USED_REGISTERS): Delete.
1926 * config/visium/visium.c (visium_conditional_register_usage): Remove
1927 the old handling of call_used_regs and change the handling of
1928 call_really_used_regs to use call_used_regs instead.
1930 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
1932 * hard-reg-set.h (call_used_regs): Only define if IN_TARGET_CODE.
1933 (call_used_or_fixed_reg_p): Expand definition of call_used_regs.
1934 * reginfo.c (call_used_regs): New macro.
1936 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
1938 * config/alpha/alpha.c (alpha_compute_frame_layout): Remove redundant
1940 * config/bpf/bpf.c (bpf_compute_frame_layout, bpf_expand_prologue)
1941 (bpf_expand_epilogue): Likewise.
1942 * config/c6x/c6x.c (c6x_save_reg): Likewise.
1943 * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
1944 (ft32_expand_epilogue): Likewise.
1945 * config/i386/i386.c (ix86_save_reg): Likewise.
1946 * config/moxie/moxie.c (moxie_expand_prologue): Likewise.
1947 (moxie_expand_epilogue): Likewise.
1948 * config/tilegx/tilegx.c (need_to_save_reg): Likewise.
1949 * config/tilepro/tilepro.c (need_to_save_reg): Likewise.
1950 * config/xtensa/xtensa.c (xtensa_call_save_reg): Likewise.
1952 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
1954 * hard-reg-set.h (call_used_or_fixed_reg_p): New macro.
1955 * cfgloopanal.c (init_set_costs): Use call_used_or_fixed_reg_p
1956 instead of testing call_used_regs directly.
1957 * config/aarch64/aarch64.c (aarch64_layout_frame): Likewise.
1958 (aarch64_components_for_bb): Likewise.
1959 * config/alpha/alpha.c (alpha_compute_frame_layout): Likewise.
1960 * config/arc/arc.c (arc_must_save_register): Likewise.
1961 (arc_epilogue_uses): Likewise.
1962 * config/arm/arm.c (arm_option_override, use_return_insn): Likewise.
1963 (legitimize_pic_address, callee_saved_reg_p): Likewise.
1964 (arm_compute_save_reg0_reg12_mask): Likewise.
1965 (arm_compute_save_core_reg_mask): Likewise.
1966 (arm_get_vfp_saved_size, arm_compute_frame_layout): Likewise.
1967 (arm_save_coproc_regs, thumb1_extra_regs_pushed): Likewise.
1968 (cmse_nonsecure_entry_clear_before_return): Likewise.
1969 (thumb1_expand_epilogue, arm_expand_epilogue_apcs_frame): Likewise.
1970 (arm_expand_epilogue): Likewise.
1971 * config/avr/avr.c (avr_regs_to_save, sequent_regs_live): Likewise.
1972 (avr_function_arg_advance, avr_find_unused_d_reg): Likewise.
1973 (_reg_unused_after): Likewise.
1974 * config/bfin/bfin.c (must_save_p, expand_prologue_reg_save): Likewise.
1975 (expand_epilogue_reg_restore, n_regs_saved_by_prologue): Likewise.
1976 (add_to_reg, hwloop_optimize): Likewise.
1977 * config/bpf/bpf.c (bpf_compute_frame_layout, bpf_expand_prologue)
1978 (bpf_expand_epilogue): Likewise.
1979 * config/c6x/c6x.c (c6x_save_reg, c6x_regno_reg_class): Likewise.
1980 * config/cr16/cr16.c (cr16_compute_save_regs): Likewise.
1981 * config/cris/cris.c (cris_reg_saved_in_regsave_area): Likewise.
1982 * config/epiphany/epiphany.c (epiphany_init_reg_tables): Likewise.
1983 (epiphany_compute_function_type, MUST_SAVE_REGISTER): Likewise.
1984 (epiphany_output_mi_thunk, epiphany_start_function): Likewise.
1985 * config/fr30/fr30.c (fr30_num_arg_regs): Likewise.
1986 * config/frv/frv.c (frv_stack_info): Likewise.
1987 * config/ft32/ft32.c (ft32_compute_frame): Likewise.
1988 (ft32_expand_prologue, ft32_expand_epilogue): Likewise.
1989 * config/gcn/gcn.c (gcn_compute_frame_offsets): Likewise.
1990 (move_callee_saved_registers): Likewise.
1991 * config/h8300/h8300.c (byte_reg): Likewise.
1992 * config/i386/i386-options.c (ix86_set_current_function): Likewise.
1993 * config/i386/i386.c (ix86_save_reg, ix86_expand_prologue): Likewise.
1994 (ix86_expand_epilogue, x86_order_regs_for_local_alloc): Likewise.
1995 * config/i386/predicates.md (sibcall_memory_operand): Likewise.
1996 * config/ia64/ia64.c (emit_safe_across_calls, find_gr_spill): Likewise.
1997 (next_scratch_gr_reg, ia64_compute_frame_size): Likewise.
1998 * config/iq2000/iq2000.h (MUST_SAVE_REGISTER): Likewise.
1999 * config/lm32/lm32.c (lm32_compute_frame_size): Likewise.
2000 * config/m32c/m32c.c (need_to_save): Likewise.
2001 * config/m68k/m68k.c (m68k_save_reg): Likewise.
2002 * config/mcore/mcore.c (calc_live_regs): Likewise.
2003 * config/microblaze/microblaze.c (microblaze_must_save_register):
2005 * config/mmix/mmix.c (mmix_local_regno): Likewise.
2006 (mmix_initial_elimination_offset, mmix_reorg): Likewise.
2007 (mmix_use_simple_return, mmix_expand_prologue): Likewise.
2008 (mmix_expand_epilogue): Likewise.
2009 * config/moxie/moxie.c (moxie_compute_frame): Likewise.
2010 (moxie_expand_prologue, moxie_expand_epilogue): Likewise.
2011 * config/msp430/msp430.c (msp430_preserve_reg_p): Likewise.
2012 * config/nds32/nds32.h (nds32_16bit_address_type): Likewise.
2013 (NDS32_REQUIRED_CALLEE_SAVED_P): Likewise.
2014 * config/nios2/nios2.c (prologue_saved_reg_p): Likewise.
2015 * config/or1k/or1k.c (callee_saved_regno_p): Likewise.
2016 * config/pa/pa.c (pa_expand_prologue, pa_expand_epilogue): Likewise.
2017 * config/pdp11/pdp11.c (pdp11_saved_regno): Likewise.
2018 * config/pru/pru.c (prologue_saved_reg_p): Likewise.
2019 * config/riscv/riscv.c (riscv_save_reg_p): Likewise.
2020 (riscv_epilogue_uses, riscv_hard_regno_mode_ok): Likewise.
2021 * config/rl78/rl78.c (need_to_save): Likewise.
2022 * config/rs6000/rs6000-logue.c (save_reg_p): Likewise.
2023 (rs6000_stack_info, generate_set_vrsave): Likewise.
2024 (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.
2025 * config/rs6000/rs6000.c (rs6000_debug_reg_print): Likewise.
2026 * config/rx/rx.c (rx_get_stack_layout): Likewise.
2027 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
2028 * config/sh/sh.c (calc_live_regs, sh_output_mi_thunk): Likewise.
2029 * config/sparc/sparc.c (save_global_or_fp_reg_p): Likewise.
2030 (save_local_or_in_reg_p): Likewise.
2031 * config/stormy16/stormy16.c (REG_NEEDS_SAVE): Likewise.
2032 (xstormy16_epilogue_uses): Likewise.
2033 * config/tilegx/tilegx.c (need_to_save_reg): Likewise.
2034 * config/tilepro/tilepro.c (need_to_save_reg): Likewise.
2035 * config/v850/v850.c (compute_register_save_size): Likewise.
2036 * config/vax/vax.c (vax_expand_prologue): Likewise.
2037 * config/visium/visium.c (visium_save_reg_p): Likewise.
2038 * config/xtensa/xtensa.c (xtensa_call_save_reg): Likewise.
2039 * cselib.c (cselib_process_insn): Likewise.
2040 * df-scan.c (df_get_entry_block_def_set): Likewise.
2041 * function.c (aggregate_value_p): Likewise.
2042 * haifa-sched.c (alloc_global_sched_pressure_data): Likewise.
2043 * ira-lives.c (process_bb_node_lives): Likewise.
2044 * ira.c (do_reload): Likewise.
2045 * lra-lives.c (process_bb_lives): Likewise.
2046 * lra-remat.c (lra_remat): Likewise.
2047 * lra.c (lra): Likewise.
2048 * postreload.c (reload_combine_recognize_pattern): Likewise.
2049 (reload_cse_move2add): Likewise.
2050 * recog.c (peep2_find_free_register): Likewise.
2051 * regrename.c (check_new_reg_p): Likewise.
2052 * reload.c (find_equiv_reg): Likewise.
2053 * reload1.c (reload, find_reg): Likewise.
2054 * sel-sched.c (init_hard_regs_data): Likewise.
2056 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
2058 * config/frv/frv.c (frv_ifcvt_modify_tests): Use
2059 regs_invalidated_by_call & ~fixed_reg_set instead of
2060 call_used_or_fixed_regs & ~fixed_reg_set.
2061 * config/sh/sh.c (output_stack_adjust): Likewise.
2063 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
2065 * hard-reg-set.h (target_hard_regs::x_call_used_reg_set): Delete.
2066 (call_used_reg_set): Delete.
2067 (call_used_or_fixed_regs): New macro.
2068 * reginfo.c (init_reg_sets_1, globalize_reg): Remove initialization
2069 of call_used_reg_set.
2070 * caller-save.c (setup_save_areas): Use call_used_or_fixed_regs
2071 instead of call_used_regs.
2072 (save_call_clobbered_regs): Likewise.
2073 * cfgcleanup.c (old_insns_match_p): Likewise.
2074 * config/c6x/c6x.c (c6x_call_saved_register_used): Likewise.
2075 * config/epiphany/epiphany.c (epiphany_conditional_register_usage):
2077 * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
2078 * config/sh/sh.c (output_stack_adjust): Likewise.
2079 * final.c (collect_fn_hard_reg_usage): Likewise.
2080 * ira-build.c (ira_build): Likewise.
2081 * ira-color.c (calculate_saved_nregs): Likewise.
2082 (allocno_reload_assign, calculate_spill_cost): Likewise.
2083 * ira-conflicts.c (ira_build_conflicts): Likewise.
2084 * ira-costs.c (ira_tune_allocno_costs): Likewise.
2085 * ira-lives.c (process_bb_node_lives): Likewise.
2086 * ira.c (setup_reg_renumber): Likewise.
2087 * lra-assigns.c (find_hard_regno_for_1, lra_assign): Likewise.
2088 * lra-constraints.c (need_for_call_save_p): Likewise.
2089 (need_for_split_p, inherit_in_ebb): Likewise.
2090 * lra-lives.c (process_bb_lives): Likewise.
2091 * lra-remat.c (call_used_input_regno_present_p): Likewise.
2092 * postreload.c (reload_combine): Likewise.
2093 * regrename.c (find_rename_reg): Likewise.
2094 * reload1.c (reload_as_needed): Likewise.
2095 * rtlanal.c (find_all_hard_reg_sets): Likewise.
2096 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
2097 * shrink-wrap.c (requires_stack_frame_p): Likewise.
2099 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
2101 * hard-reg-set.h (target_hard_regs::x_no_caller_save_reg_set): Delete.
2102 (no_caller_save_reg_set): Delete.
2103 * caller-save.c (init_caller_save): Don't initialize it.
2104 * ira-conflicts.c (ira_build_conflicts): Calculate
2105 no_caller_save_reg_set locally from call_used_reg_set and savable_regs.
2107 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
2109 * hard-reg-set.h (target_hard_regs::x_call_fixed_reg_set): Delete.
2110 (target_hard_regs::x_savable_regs): New field.
2111 (call_fixed_reg_set): Delete.
2112 (savable_regs): New macro,
2113 * reginfo.c (globalize_reg): Don't set call_fixed_reg_set.
2114 (init_reg_sets_1): Likewise. Initialize savable_regs.
2115 * caller-save.c (init_caller_save): Invoke HARD_REGNO_CALLER_SAVE_MODE
2116 for all registers. Set savable_regs instead of call_fixed_reg_set.
2117 (setup_save_areas, save_call_clobbered_regs): Replace uses of
2118 ~call_fixed_reg_set with ~fixed_reg_set & savable_regs.
2119 * config/sh/sh.c (output_stack_adjust): Likewise.
2121 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
2123 * config/c6x/c6x-protos.h (c6x_set_return_address): Declare.
2124 * config/c6x/c6x.h (REGNO_REG_CLASS): Move implementation to
2125 * config/c6x/c6x.c (c6x_regno_reg_class): ...this new function.
2127 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
2129 * rtl.h (get_call_rtx_from): Take a const rtx_insn * instead of an rtx.
2130 * rtlanal.c (get_call_rtx_from): Likewise.
2131 * dwarf2out.c (dwarf2out_var_location): Pass the insn rather
2132 than the pattern to get_call_rtx_from.
2133 * config/i386/i386-expand.h (ix86_notrack_prefixed_insn_p): Take
2134 an rtx_insn * instead of an rtx.
2135 * config/i386/i386-expand.c (ix86_notrack_prefixed_insn_p): Likewise.
2137 2019-09-10 Martin Liska <mliska@suse.cz>
2139 * common.opt: Use newly added WarnRemoved.
2140 * config/aarch64/aarch64.opt: Likewise.
2141 * config/arm/arm.opt: Likewise.
2142 * config/i386/i386.opt: Likewise.
2143 * config/ia64/ia64.opt: Likewise.
2144 * config/rs6000/rs6000.opt: Likewise.
2145 * doc/options.texi: Document WarnRemoved properly.
2146 * dwarf2out.c (gen_producer_string): Handle renamed
2147 OPT_SPECIAL_warn_removed.
2148 * lto-opts.c (lto_write_options): Likewise.
2149 * lto-wrapper.c (merge_and_complain): Likewise.
2150 * opts-common.c (decode_cmdline_option): Likewise.
2151 (prune_options): Likewise.
2152 (read_cmdline_option): Likewise.
2153 (control_warning_option): Likewise.
2154 * opts.c (print_filtered_help): Likewise.
2155 * optc-gen.awk: Parse for WarnRemoved and make usage
2156 of Deprecated an error.
2157 * opth-gen.awk: Generate new OPT_SPECIAL_warn_removed.
2159 2019-09-10 Arnaud Charlet <charlet@adacore.com>
2161 * doc/install.texi: Fix syntax for html generation.
2163 2019-09-10 Jakub Jelinek <jakub@redhat.com>
2166 * match.pd ((A / (1 << B)) -> (A >> B)): Allow widening cast from
2167 the shift type to type.
2169 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
2171 * config/arm/arm.md (stack_protect_combined_set_insn): Handle
2173 (stack_protect_combined_test_insn): Likewise.
2175 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
2176 Mickaël Guêné <mickael.guene@st.com>
2178 * config/arm/arm.c (arm_load_tp): Add FDPIC support.
2179 * config/arm/arm.md (FDPIC_REGNUM): New constant.
2180 (load_tp_soft_fdpic): New pattern.
2181 (load_tp_soft): Disable in FDPIC mode.
2183 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
2184 Mickaël Guêné <mickael.guene@st.com>
2186 * config/arm/arm.c (tls_reloc): Add TLS_GD32_FDPIC,
2187 TLS_LDM32_FDPIC and TLS_IE32_FDPIC.
2188 (arm_call_tls_get_addr): Add FDPIC support.
2189 (legitimize_tls_address): Likewise.
2190 (arm_emit_tls_decoration): Likewise.
2192 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
2193 Mickaël Guêné <mickael.guene@st.com>
2195 * config/arm/arm.c (arm_asm_trampoline_template): Add FDPIC
2197 (arm_trampoline_init): Likewise.
2198 (arm_trampoline_adjust_address): Likewise.
2199 * config/arm/arm.h (TRAMPOLINE_SIZE): Likewise.
2201 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
2202 Mickaël Guêné <mickael.guene@st.com>
2204 * config/arm/arm.c (arm_fdpic_local_funcdesc_p): New function.
2205 (legitimize_pic_address): Enforce binding rules on function
2206 pointers in FDPIC mode.
2207 (arm_assemble_integer): Likewise.
2209 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
2210 Mickaël Guêné <mickael.guene@st.com>
2212 * config/arm/arm.h (PIC_REGISTER_MAY_NEED_SAVING): New helper.
2213 * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Handle
2216 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
2217 Mickaël Guêné <mickael.guene@st.com>
2219 * ginclude/unwind-arm-common.h (unwinder_cache): Add reserved5
2222 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
2223 Mickaël Guêné <mickael.guene@st.com>
2225 * config/arm/arm-c.c (__FDPIC__): Define new pre-processor macro
2227 * config/arm/arm-protos.h (arm_load_function_descriptor): Declare
2229 * config/arm/arm.c (arm_option_override): Define pic register to
2231 (arm_function_ok_for_sibcall): Disable sibcall optimization if we
2232 have no decl or go through PLT.
2233 (calculate_pic_address_constant): New function.
2234 (legitimize_pic_address): Call calculate_pic_address_constant.
2235 (arm_load_pic_register): Handle TARGET_FDPIC.
2236 (arm_is_segment_info_known): New function.
2237 (arm_pic_static_addr): Add support for FDPIC.
2238 (arm_load_function_descriptor): New function.
2239 (arm_emit_call_insn): Add support for FDPIC.
2240 (arm_assemble_integer): Add support for FDPIC.
2241 * config/arm/arm.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED):
2242 Define. (FDPIC_REGNUM): New define.
2243 * config/arm/arm.md (call): Add support for FDPIC.
2244 (call_value): Likewise.
2245 (restore_pic_register_after_call): New pattern.
2246 (untyped_call): Disable if FDPIC.
2247 (untyped_return): Likewise.
2248 * config/arm/unspecs.md (UNSPEC_PIC_RESTORE): New.
2250 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
2251 Mickaël Guêné <mickael.guene@st.com>
2253 * config.gcc: Handle arm*-*-uclinuxfdpiceabi.
2254 * config/arm/bpabi.h (TARGET_FDPIC_ASM_SPEC): New.
2255 (SUBTARGET_EXTRA_ASM_SPEC): Use TARGET_FDPIC_ASM_SPEC.
2256 * config/arm/linux-eabi.h (FDPIC_CC1_SPEC): New.
2257 (CC1_SPEC): Use FDPIC_CC1_SPEC.
2258 (MUSL_DYNAMIC_LINKER): Add -fdpic suffix when needed.
2259 * config/arm/uclinuxfdpiceabi.h: New file.
2261 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
2263 * config.gcc: Handle *-*-uclinuxfdpiceabi.
2265 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
2266 Mickaël Guêné <mickael.guene@st.com>
2268 * config/arm/arm.opt: Add -mfdpic option.
2269 * doc/invoke.texi: Add documentation for -mfdpic.
2271 2019-09-09 Bernd Edlinger <bernd.edlinger@hotmail.de>
2273 * expmed.c (extract_bit_field): Update function comment
2275 * expr.c (expand_expr_real): Update function comment
2277 (expand_misaligned_mem_ref): New helper function.
2278 (expand_expr_real_2): Use expand_misaligned_mem_ref.
2279 Remove duplicate assignment to "base" at case MEM_REF.
2280 Remove a shadowed variable "unsignedp" at case VCE.
2282 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
2284 * regset.h (regs_invalidated_by_call_regset): Delete.
2285 (fixed_reg_set_regset): Likewise.
2286 * reginfo.c (regs_invalidated_by_call_regset): Likewise.
2287 (fixed_reg_set_regset, persistent_obstack): Likewise.
2288 (init_reg_sets_1, globalize_reg): Update accordingly.
2289 * df.h (df_print_regset, df_print_word_regset): Take a const_bitmap
2290 instead of a bitmap.
2291 * df-core.c (df_print_regset, df_print_word_regset): Likewise.
2292 * df-problems.c (df_rd_local_compute): Use regs_invalidated_by_call
2293 instead of regs_invalidated_by_call_regset.
2294 (df_lr_confluence_n, df_md_confluence_n): Likewise.
2295 * df-scan.c (df_scan_start_dump): Likewise.
2296 * dse.c (copy_fixed_regs): Likewise.
2297 * config/sh/sh.c (sh_find_equiv_gbr_addr): Likewise.
2299 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
2301 * array-traits.h: New file.
2302 * coretypes.h (array_traits, bitmap_view): New types.
2303 * bitmap.h: Include "array-traits.h"
2304 (bitmap_bit_p): Take a const_bitmap instead of a bitmap.
2305 (base_bitmap_view, bitmap_view): New classes.
2306 * bitmap.c (bitmap_bit_p): Take a const_bitmap instead of a bitmap.
2307 * hard-reg-set.h: Include array-traits.h.
2308 (array_traits<HARD_REG_SET>): New struct.
2309 * regset.h (IOR_REG_SET_HRS): New macro.
2310 * loop-iv.c (simplify_using_initial_values): Use IOR_REG_SET_HRS
2311 rather than iterating over each hard register.
2312 * sched-deps.c (sched_analyze_insn): Likewise.
2313 * sel-sched-ir.c (setup_id_implicit_regs): Likewise.
2315 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
2317 * ira-int.h (ior_hard_reg_conflicts): Take a const_hard_reg_set
2318 instead of a HARD_REG_SET *.
2319 * ira-build.c (ior_hard_reg_conflicts): Likewise.
2320 (ira_build): Update call accordingly.
2321 * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
2323 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
2325 * hard-reg-set.h (HARD_REG_SET::operator==): New function.
2326 (HARD_REG_SET::operator!=): Likewise.
2327 (hard_reg_set_equal_p): Delete.
2328 * cfgcleanup.c (old_insns_match_p): Use == instead of
2329 hard_reg_set_equal_p and != instead of !hard_reg_set_equal_p.
2330 * ira-color.c (allocno_hard_regs_hasher::equal): Likewise.
2331 (add_allocno_hard_regs_to_forest): Likewise.
2332 (setup_allocno_available_regs_num): Likewise.
2333 * ira.c (setup_pressure_classes): Likewise.
2334 (setup_allocno_and_important_classes): Likewise.
2335 (setup_reg_class_relations): Likewise.
2336 * lra-lives.c (process_bb_lives): Likewise.
2337 * reg-stack.c (change_stack, convert_regs_1): Likewise.
2339 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
2341 * hard-reg-set.h (IOR_COMPL_HARD_REG_SET): Delete.
2342 * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
2343 Use "|~" instead of IOR_COMPL_HARD_REG_SET.
2344 * config/aarch64/falkor-tag-collision-avoidance.c (init_unavailable):
2346 * ira-build.c (ira_create_object, ira_set_allocno_class): Likewise.
2347 * ira.c (setup_reg_renumber): Likewise.
2348 * lra-assigns.c (find_hard_regno_for_1): Likewise.
2349 * regrename.c (regrename_find_superclass): Likewise.
2350 * reload1.c (find_reg): Likewise.
2352 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
2354 * hard-reg-set.h (AND_COMPL_HARD_REG_SET): Delete.
2355 * caller-save.c (setup_save_areas): Use "&~" instead of
2356 AND_COMPL_HARD_REG_SET.
2357 (save_call_clobbered_regs): Likewise.
2358 * config/epiphany/epiphany.c (epiphany_conditional_register_usage):
2360 * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
2361 * config/gcn/gcn.c (gcn_md_reorg): Likewise.
2362 * config/i386/i386.c (ix86_conditional_register_usage): Likewise.
2363 * config/mips/mips.c (mips_class_max_nregs): Likewise.
2364 (mips_conditional_register_usage): Likewise.
2365 * config/sh/sh.c (output_stack_adjust): Likewise.
2366 * ira-color.c (form_allocno_hard_regs_nodes_forest): Likewise.
2367 (setup_profitable_hard_regs): Likewise.
2368 (get_conflict_and_start_profitable_regs): Likewise.
2369 * ira-conflicts.c (print_allocno_conflicts): Likewise.
2370 (ira_build_conflicts): Likewise.
2371 * ira-costs.c (restrict_cost_classes): Likewise.
2372 (setup_regno_cost_classes_by_aclass): Likewise.
2373 * ira-lives.c (process_bb_node_lives): Likewise.
2374 * ira.c (setup_class_hard_regs, setup_reg_subclasses): Likewise.
2375 (setup_class_subset_and_memory_move_costs, setup_pressure_classes)
2376 (setup_allocno_and_important_classes, setup_class_translate_array)
2377 (setup_reg_class_relations, setup_prohibited_class_mode_regs):
2379 * lra-assigns.c (find_hard_regno_for_1): Likewise.
2380 * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
2381 (process_alt_operands, inherit_in_ebb): Likewise.
2382 * lra-eliminations.c (update_reg_eliminate): Likewise.
2383 * lra-lives.c (process_bb_lives): Likewise.
2384 * reload1.c (update_eliminables_and_spill, reload_as_needed): Likewise.
2385 * resource.c (find_dead_or_set_registers): Likewise.
2386 (mark_target_live_regs): Likewise.
2387 * sched-deps.c (get_implicit_reg_pending_clobbers): Likewise.
2388 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
2389 (implicit_clobber_conflict_p): Likewise.
2390 * shrink-wrap.c (requires_stack_frame_p): Likewise.
2391 (try_shrink_wrapping): Likewise.
2393 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
2395 * hard-reg-set.h (HARD_REG_SET::operator|): New function.
2396 (HARD_REG_SET::operator|=): Likewise.
2397 (IOR_HARD_REG_SET): Delete.
2398 * config/gcn/gcn.c (gcn_md_reorg): Use "|" instead of
2400 * config/m32c/m32c.c (m32c_register_move_cost): Likewise.
2401 * config/s390/s390.c (s390_adjust_loop_scan_osc): Likewise.
2402 * final.c (collect_fn_hard_reg_usage): Likewise.
2403 * hw-doloop.c (scan_loop, optimize_loop): Likewise.
2404 * ira-build.c (merge_hard_reg_conflicts): Likewise.
2405 (ior_hard_reg_conflicts, create_cap_allocno, propagate_allocno_info)
2406 (propagate_some_info_from_allocno): Likewise.
2407 (copy_info_to_removed_store_destinations): Likewise.
2408 * ira-color.c (add_allocno_hard_regs_to_forest, assign_hard_reg)
2409 (allocno_reload_assign, ira_reassign_pseudos): Likewise.
2410 (fast_allocation): Likewise.
2411 * ira-conflicts.c (ira_build_conflicts): Likewise.
2412 * ira-lives.c (make_object_dead, process_single_reg_class_operands)
2413 (process_bb_node_lives): Likewise.
2414 * ira.c (setup_pressure_classes, setup_reg_class_relations): Likewise.
2415 * lra-assigns.c (find_hard_regno_for_1): Likewise.
2416 (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
2417 * lra-constraints.c (process_alt_operands, inherit_in_ebb): Likewise.
2418 * lra-eliminations.c (spill_pseudos, update_reg_eliminate): Likewise.
2419 * lra-lives.c (mark_pseudo_dead, check_pseudos_live_through_calls)
2420 (process_bb_lives): Likewise.
2421 * lra-spills.c (assign_spill_hard_regs): Likewise.
2422 * postreload.c (reload_combine): Likewise.
2423 * reginfo.c (init_reg_sets_1): Likewise.
2424 * regrename.c (merge_overlapping_regs, find_rename_reg)
2425 (merge_chains): Likewise.
2426 * reload1.c (maybe_fix_stack_asms, order_regs_for_reload, find_reg)
2427 (find_reload_regs, finish_spills, choose_reload_regs_init)
2428 (emit_reload_insns): Likewise.
2429 * reorg.c (redundant_insn): Likewise.
2430 * resource.c (find_dead_or_set_registers, mark_set_resources)
2431 (mark_target_live_regs): Likewise.
2432 * rtlanal.c (find_all_hard_reg_sets): Likewise.
2433 * sched-deps.c (sched_analyze_insn): Likewise.
2434 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
2435 (find_best_reg_for_expr): Likewise.
2436 * shrink-wrap.c (try_shrink_wrapping): Likewise.
2438 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
2440 * hard-reg-set.h (HARD_REG_SET::operator&): New function.
2441 (HARD_REG_SET::operator&): Likewise.
2442 (AND_HARD_REG_SET): Delete.
2443 * caller-save.c (setup_save_areas): Use "&" instead of
2445 (save_call_clobbered_regs): Likewise.
2446 * config/gcn/gcn.c (gcn_md_reorg): Likewise.
2447 * config/m32c/m32c.c (reduce_class): Likewise.
2448 * config/rs6000/rs6000.c (rs6000_register_move_cost): Likewise.
2449 * final.c (get_call_reg_set_usage): Likewise.
2450 * ira-color.c (add_allocno_hard_regs_to_forest): Likewise.
2451 (setup_left_conflict_sizes_p): Likewise.
2452 * ira-conflicts.c (print_allocno_conflicts): Likewise.
2453 (ira_build_conflicts): Likewise.
2454 * ira-costs.c (restrict_cost_classes): Likewise.
2455 * ira.c (setup_stack_reg_pressure_class, setup_class_translate_array)
2456 (setup_reg_class_relations): Likewise.
2457 * reginfo.c (init_reg_sets_1, record_subregs_of_mode): Likewise.
2458 * reload1.c (maybe_fix_stack_asms, finish_spills): Likewise.
2459 * resource.c (find_dead_or_set_registers): Likewise.
2460 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
2462 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
2464 * hard-reg-set.h (HARD_REG_SET::operator~): New function.
2465 (COMPL_HARD_REG_SET): Delete.
2466 * config/c6x/c6x.c (c6x_call_saved_register_used): Use ~ instead
2467 of COMPL_HARD_REG_SET.
2468 (try_rename_operands): Likewise.
2469 * config/sh/sh.c (push_regs): Likewise.
2470 * lra-assigns.c (find_hard_regno_for_1): Likewise.
2471 * lra-constraints.c (contains_reg_p): Likewise.
2472 * reload1.c (finish_spills, choose_reload_regs_init): Likewise.
2474 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
2476 * hard-reg-set.h (COPY_HARD_REG_SET): Delete.
2477 * caller-save.c (save_call_clobbered_regs): Use assignment instead
2478 of COPY_HARD_REG_SET.
2479 * config/epiphany/epiphany.c (epiphany_compute_frame_size): Likewise.
2480 (epiphany_conditional_register_usage): Likewise.
2481 * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
2482 * config/gcn/gcn.c (gcn_md_reorg): Likewise.
2483 * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
2484 * config/m32c/m32c.c (m32c_register_move_cost): Likewise.
2485 * config/m68k/m68k.c (m68k_conditional_register_usage): Likewise.
2486 * config/mips/mips.c (mips_class_max_nregs): Likewise.
2487 * config/pdp11/pdp11.c (pdp11_conditional_register_usage): Likewise.
2488 * config/rs6000/rs6000.c (rs6000_register_move_cost): Likewise.
2489 * config/sh/sh.c (output_stack_adjust): Likewise.
2490 * final.c (collect_fn_hard_reg_usage): Likewise.
2491 (get_call_reg_set_usage): Likewise.
2492 * ira-build.c (ira_create_object, remove_low_level_allocnos)
2493 (ira_flattening): Likewise.
2494 * ira-color.c (add_allocno_hard_regs, add_allocno_hard_regs_to_forest)
2495 (setup_left_conflict_sizes_p, setup_profitable_hard_regs)
2496 (get_conflict_and_start_profitable_regs, allocno_reload_assign)
2497 (ira_reassign_pseudos): Likewise.
2498 * ira-conflicts.c (print_allocno_conflicts): Likewise.
2499 (ira_build_conflicts): Likewise.
2500 * ira-costs.c (restrict_cost_classes): Likewise.
2501 (setup_regno_cost_classes_by_aclass): Likewise.
2502 * ira.c (setup_class_hard_regs, setup_alloc_regs): Likewise.
2503 (setup_reg_subclasses, setup_class_subset_and_memory_move_costs)
2504 (setup_stack_reg_pressure_class, setup_pressure_classes)
2505 (setup_allocno_and_important_classes, setup_class_translate_array)
2506 (setup_reg_class_relations, setup_prohibited_class_mode_regs)
2507 (ira_setup_eliminable_regset): Likewise.
2508 * lra-assigns.c (find_hard_regno_for_1): Likewise.
2509 (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
2510 * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
2511 (process_alt_operands, inherit_in_ebb): Likewise.
2512 * lra-lives.c (process_bb_lives): Likewise.
2513 * lra-spills.c (assign_spill_hard_regs): Likewise.
2514 * lra.c (lra): Likewise.
2515 * mode-switching.c (new_seginfo): Likewise.
2516 * postreload.c (reload_combine): Likewise.
2517 * reg-stack.c (straighten_stack): Likewise.
2518 * reginfo.c (save_register_info, restore_register_info): Likewise.
2519 (init_reg_sets_1, record_subregs_of_mode): Likewise
2520 * regrename.c (create_new_chain, rename_chains): Likewise.
2521 * reload1.c (order_regs_for_reload, find_reg): Likewise.
2522 (find_reload_regs): Likewise.
2523 * resource.c (find_dead_or_set_registers): Likewise.
2524 (mark_target_live_regs): Likewise.
2525 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
2527 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
2529 * rtl.h (CALL_INSN_FUNCTION_USAGE): Document what SETs mean.
2530 (note_pattern_stores): Declare.
2531 (note_stores): Take an rtx_insn *.
2532 * rtlanal.c (set_of): Use note_pattern_stores instead of note_stores.
2533 (find_all_hard_reg_sets): Pass the insn rather than its pattern to
2534 note_stores. Remove explicit handling of CALL_INSN_FUNCTION_USAGE.
2535 (note_stores): Take an rtx_insn * as argument and process
2536 CALL_INSN_FUNCTION_USAGE. Rename old function to...
2537 (note_pattern_stores): ...this.
2538 (find_first_parameter_load): Pass the insn rather than
2539 its pattern to note_stores.
2540 * alias.c (memory_modified_in_insn_p, init_alias_analysis): Likewise.
2541 * caller-save.c (setup_save_areas, save_call_clobbered_regs)
2542 (insert_one_insn): Likewise.
2543 * combine.c (combine_instructions): Likewise.
2544 (likely_spilled_retval_p): Likewise.
2545 (try_combine): Use note_pattern_stores instead of note_stores.
2546 (record_dead_and_set_regs): Pass the insn rather than its pattern
2548 (reg_dead_at_p): Likewise.
2549 * config/bfin/bfin.c (workaround_speculation): Likewise.
2550 * config/c6x/c6x.c (maybe_clobber_cond): Likewise. Take an rtx_insn *
2552 * config/frv/frv.c (frv_registers_update): Use note_pattern_stores
2553 instead of note_stores.
2554 (frv_optimize_membar_local): Pass the insn rather than its pattern
2556 * config/gcn/gcn.c (gcn_md_reorg): Likewise.
2557 * config/i386/i386.c (ix86_avx_u128_mode_after): Likewise.
2558 * config/mips/mips.c (vr4130_true_reg_dependence_p): Likewise.
2559 (r10k_needs_protection_p, mips_sim_issue_insn): Likewise.
2560 (mips_reorg_process_insns): Likewise.
2561 * config/s390/s390.c (s390_regs_ever_clobbered): Likewise.
2562 * config/sh/sh.c (flow_dependent_p): Likewise. Take rtx_insn *s
2564 * cse.c (delete_trivially_dead_insns): Pass the insn rather than
2565 its pattern to note_stores.
2566 * cselib.c (cselib_record_sets): Use note_pattern_stores instead
2568 * dce.c (mark_nonreg_stores): Remove the "body" parameter and pass
2569 the insn to note_stores.
2570 (prescan_insns_for_dce): Update call accordingly.
2571 * ddg.c (mem_write_insn_p): Pass the insn rather than its pattern
2573 * df-problems.c (can_move_insns_across): Likewise.
2574 * dse.c (emit_inc_dec_insn_before, replace_read): Likewise.
2575 * function.c (assign_parm_setup_reg): Likewise.
2576 * gcse-common.c (record_last_mem_set_info_common): Likewise.
2577 * gcse.c (load_killed_in_block_p, compute_hash_table_work): Likewise.
2578 (single_set_gcse): Likewise.
2579 * ira.c (validate_equiv_mem): Likewise.
2580 (update_equiv_regs): Use note_pattern_stores rather than note_stores
2582 * loop-doloop.c (doloop_optimize): Pass the insn rather than its
2583 pattern to note_stores.
2584 * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
2585 * loop-iv.c (simplify_using_initial_values): Likewise.
2586 * mode-switching.c (optimize_mode_switching): Likewise.
2587 * optabs.c (emit_libcall_block_1): Likewise.
2588 (expand_atomic_compare_and_swap): Likewise.
2589 * postreload-gcse.c (load_killed_in_block_p): Likewise.
2590 (record_opr_changes): Likewise. Remove explicit handling of
2591 CALL_INSN_FUNCTION_USAGE.
2592 * postreload.c (reload_combine, reload_cse_move2add): Likewise.
2593 * regcprop.c (kill_clobbered_values): Likewise.
2594 (copyprop_hardreg_forward_1): Pass the insn rather than its pattern
2596 * regrename.c (build_def_use): Likewise.
2597 * reload1.c (reload): Use note_pattern_stores instead of note_stores
2598 for mark_not_eliminable.
2599 (reload_as_needed): Pass the insn rather than its pattern
2601 (emit_output_reload_insns): Likewise.
2602 * resource.c (mark_target_live_regs): Likewise.
2603 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
2604 * sched-rgn.c (sets_likely_spilled): Use note_pattern_stores
2605 instead of note_stores.
2606 * shrink-wrap.c (try_shrink_wrapping): Pass the insn rather than
2607 its pattern to note_stores.
2608 * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Likewise.
2609 * var-tracking.c (adjust_insn, add_with_sets): Likewise.
2611 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
2613 * hard-reg-set.h (HARD_REG_SET): Define using a typedef rather
2614 than a #define. Use a structure rather than an array as the
2615 fallback definition. Remove special cases for low array sizes.
2616 (const_hard_reg_set): New typedef.
2617 (hard_reg_set_subset_p): Use it instead of "const HARD_REG_SET".
2618 (hard_reg_set_equal_p, hard_reg_set_intersect_p): Likewise.
2619 (hard_reg_set_empty_p): Likewise.
2620 (SET_HARD_REG_BIT): Use a function rather than a macro to
2621 handle the case in which HARD_REG_SET is a structure.
2622 (CLEAR_HARD_REG_BIT, TEST_HARD_REG_BIT, CLEAR_HARD_REG_SET)
2623 (SET_HARD_REG_SET, COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
2624 (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
2625 (IOR_COMPL_HARD_REG_SET): Likewise.
2626 (hard_reg_set_iterator::pset): Constify the pointer target.
2627 (hard_reg_set_iter_init): Take a const_hard_reg_set instead
2628 of a "const HARD_REG_SET". Update the handling of non-integer
2630 * recog.h: Test HARD_CONST instead of CLEAR_HARD_REG_SET.
2631 * reload.h: Likewise.
2632 * rtl.h (choose_hard_reg_mode): Remove unnecessary line break.
2633 * regs.h (in_hard_reg_set_p): Take a const_hard_reg_set instead
2634 of a "const HARD_REG_SET".
2635 (overlaps_hard_reg_set_p, range_overlaps_hard_reg_set_p): Likewise.
2636 (range_in_hard_reg_set_p): Likewise.
2637 * ira-costs.c (restrict_cost_classes): Likewise.
2638 * shrink-wrap.c (move_insn_for_shrink_wrap): Likewise.
2639 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
2640 Pass a NO_REGS HARD_REG_SET rather than NULL to emit_set_fp_mode.
2641 * config/ia64/ia64.c (rws_insn): In the CHECKING_P version,
2642 use unsigned HOST_WIDEST_FAST_INT rather than HARD_REG_ELT_TYPE.
2643 (rws_insn_set, rws_insn_test): In the CHECKING_P version,
2644 take an unsigned int and open-code the HARD_REG_SET operations.
2646 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
2648 * Makefile.in (OBJS): Remove bt-load.o.
2649 * doc/invoke.texi (fbranch-target-load-optimize): Delete.
2650 (fbranch-target-load-optimize2, fbtr-bb-exclusive): Likewise.
2651 * common.opt (fbranch-target-load-optimize): Mark as Ignore and
2652 document that the option no longer does anything.
2653 (fbranch-target-load-optimize2, fbtr-bb-exclusive): Likewise.
2654 * target.def (branch_target_register_class): Delete.
2655 (branch_target_register_callee_saved): Likewise.
2656 * doc/tm.texi.in (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
2657 (TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise.
2658 * doc/tm.texi: Regenerate.
2659 * tree-pass.h (make_pass_branch_target_load_optimize1): Delete.
2660 (make_pass_branch_target_load_optimize2): Likewise.
2661 * passes.def (pass_branch_target_load_optimize1): Likewise.
2662 (pass_branch_target_load_optimize2): Likewise.
2663 * targhooks.h (default_branch_target_register_class): Likewise.
2664 * targhooks.c (default_branch_target_register_class): Likewise.
2665 * opt-suggestions.c (test_completion_valid_options): Remove
2666 -fbtr-bb-exclusive from the list of test options.
2667 * bt-load.c: Remove.
2669 2019-09-09 Barnaby Wilks <barnaby.wilks@arm.com>
2671 * match.pd: Add flag_unsafe_math_optimizations check
2672 before deciding on the widest type in a binary math operation.
2674 2019-09-09 Martin Liska <mliska@suse.cz>
2676 * config/i386/i386.opt: Update comment of removed
2677 options that are preserved only for backward
2680 2019-09-09 Jakub Jelinek <jakub@redhat.com>
2683 * config/i386/emmintrin.h (_mm_cmpeq_epi8): Use casts to __v16qi
2687 * config/i386/avxintrin.h (__v32qs): New typedef.
2688 * config/i386/avx2intrin.h (_mm256_cmpgt_epi8): Use casts to __v32qs
2691 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
2693 * doc/invoke.texi (Option Summary): Cover eBPF.
2694 (eBPF Options): New section.
2695 * doc/extend.texi (BPF Built-in Functions): Likewise.
2696 (BPF Kernel Helpers): Likewise.
2698 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
2700 * config.gcc: Support for bpf-*-* targets.
2701 * common/config/bpf/bpf-common.c: New file.
2702 * config/bpf/t-bpf: Likewise.
2703 * config/bpf/predicates.md: Likewise.
2704 * config/bpf/constraints.md: Likewise.
2705 * config/bpf/bpf.opt: Likewise.
2706 * config/bpf/bpf.md: Likewise.
2707 * config/bpf/bpf.h: Likewise.
2708 * config/bpf/bpf.c: Likewise.
2709 * config/bpf/bpf-protos.h: Likewise.
2710 * config/bpf/bpf-opts.h: Likewise.
2711 * config/bpf/bpf-helpers.h: Likewise.
2712 * config/bpf/bpf-helpers.def: Likewise.
2714 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
2716 * doc/sourcebuild.texi (Effective-Target Keywords): Document
2719 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
2721 * opt-functions.awk (integer_range_info): Make sure values are in
2722 numeric context before operating with them.
2724 2019-09-08 Segher Boessenkool <segher@kernel.crashing.org>
2726 * genemit.c (gen_split): Print the filename and line number where the
2727 splitter (or peephole2) was defined, to the dump file.
2729 2019-09-07 Jakub Jelinek <jakub@redhat.com>
2731 PR tree-optimization/91665
2732 * tree-vect-loop.c (vectorizable_reduction): Punt if base has type
2733 incompatible with the type of PHI result.
2735 2019-09-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
2738 * config/arm/arm.c (arm_block_set_aligned_non_vect): Use
2739 gen_unaligned_storedi for 4-byte aligned addresses.
2741 2019-09-06 Jim Wilson <jimw@sifive.com>
2743 * config/riscv/riscv.c (riscv_option_override): Revert 2019-08-30
2746 2019-09-06 Segher Boessenkool <segher@kernel.crashing.org>
2748 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_MV_CR_OV.
2750 2019-09-06 Segher Boessenkool <segher@kernel.crashing.org>
2752 * config/rs6000/rs6000.c (rs6000_rtx_costs) <case UNSPEC>: Delete.
2753 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_FRSP.
2755 2019-09-06 Uroš Bizjak <ubizjak@gmail.com>
2758 * config/i386/x86-tune-costs.h (skylake_cost): Raise the
2759 cost of SSE->integer and integer->SSE moves from 2 to 6.
2762 2019-09-06 Jakub Jelinek <jakub@redhat.com>
2764 * function.c (assign_parm_find_data_types): Use RECORD_OR_UNION_TYPE_P
2765 before testing TYPE_TRANSPARENT_AGGR.
2766 * calls.c (initialize_argument_information, load_register_parameters):
2769 2019-09-06 Richard Earnshaw <rearnsha@arm.com>
2771 * config/arm/arm.md (cmp_and): Add short-it variant for thumb2 with
2773 (cmp_ior): Likewise.
2775 2019-09-06 Martin Liska <mliska@suse.cz>
2777 * doc/match-and-simplify.texi: Separate tuples with ;.
2779 2019-09-06 Martin Liska <mliska@suse.cz>
2782 * Makefile.in: Remove tlink.o.
2783 * collect2.c (do_link): New function isolated
2786 * collect2.h (do_tlink): Remove declaration of do_tlink.
2787 * doc/extend.texi: Remove documentation of -frepo.
2788 * doc/invoke.texi: Likewise.
2789 * doc/sourcebuild.texi: Remove cleanup-repo-files.
2792 2019-09-05 Jakub Jelinek <jakub@redhat.com>
2793 Jim Wilson <jimw@sifive.com>
2796 * config/riscv/riscv.md (zero_extendsidi2, zero_extendhi<GPR:mode>2,
2797 extend<SHORT:mode><SUPERQI:mode>2): Don't split if
2798 paradoxical_subreg_p (operands[0]).
2799 (*lshrsi3_zero_extend_3+1, *lshrsi3_zero_extend_3+2): Add clobber and
2800 use as intermediate value.
2802 2019-09-05 Andrew Stubbs <ams@codesourcery.com>
2804 * config/gcn/gcn.md (*movti_insn): Set delayeduse for global_store.
2805 (sync_compare_and_swap<mode>_insn): Likewise.
2807 2019-09-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
2810 * expr.c (expand_expr_real_1): Handle misaligned TARGET_MEM_REF
2811 without movmisalign optab.
2813 2019-09-05 Jakub Jelinek <jakub@redhat.com>
2818 * calls.c (load_register_parameters): For TYPE_TRANSPARENT_AGGR
2819 types, use type of their first field instead of type of
2822 2019-09-05 Richard Biener <rguenther@suse.de>
2824 PR rtl-optimization/91656
2825 * postreload-gcse.c (record_last_mem_set_info): Revert addition
2828 2019-09-05 Richard Biener <rguenther@suse.de>
2831 * tree-inline.c (declare_return_variable): Mark the return
2832 slot as addressable after building an address of it.
2834 2019-09-05 Arnaud Charlet <charlet@adacore.com>
2836 * doc/install.texi: Update and clarify requirements to build GNAT.
2838 2019-09-05 Richard Sandiford <richard.sandiford@arm.com>
2841 * cfgexpand.c (discover_nonconstant_array_refs): Force the source
2842 of an IFN_LOAD_LANES call and the destination of an IFN_STORE_LANES
2843 call to be in memory.
2844 (pass_expand::execute): Call discover_nonconstant_array_refs before
2845 setting currently_expanding_to_rtl.
2847 2019-09-04 Caroline Tice <cmtice@google.com>
2849 * opts.c (finish_options): Disallow -fvtable-verify and -flto to be
2852 2019-09-04 Marek Polacek <polacek@redhat.com>
2854 * doc/invoke.texi: Remove -fdeduce-init-list documentation.
2856 2019-09-04 Uroš Bizjak <ubizjak@gmail.com>
2859 * config/i386/i386.c (inline_secondary_memory_needed): Return true
2860 for QI and HImode moves between SSE and general registers.
2862 2019-09-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2865 * doc/invoke.texi: Document -Wenum-conversion.
2867 2019-09-04 Richard Biener <rguenther@suse.de>
2869 PR rtl-optimization/36262
2870 * postreload-gcse.c: Include intl.h and gcse.h.
2871 (insert_expr_in_table): Insert at the head of cur_expr->avail_occr
2872 to avoid linear list walk.
2873 (record_last_mem_set_info): Gate off if not computing transparentness.
2874 (get_bb_avail_insn): If transparentness isn't computed give up
2876 (gcse_after_reload_main): Skip compute_transp and extended PRE
2877 if gcse_or_cprop_is_too_expensive says so.
2879 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2881 * config/msp430/msp430.c (msp430_init_sections): Remove handling of the
2883 (msp430_select_section): Handle decls with the "noinit" attribute with
2884 default_elf_select_section.
2885 Handle SECCAT_RODATA_MERGE_* section types with
2886 default_elf_select_section.
2887 Add comments about handling of unsupported section types.
2888 (msp430_section_type_flags): Remove handling of the noinit section.
2890 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2892 * config/msp430/msp430.c (msp430_attr): Remove warnings about
2893 conflicting msp430-specific attributes.
2894 (msp430_section_attr): Likewise.
2895 Add warnings about conflicts with generic "noinit" and "section"
2897 Fix grammar in -mlarge error message.
2898 (msp430_data_attr): Rename to msp430_persist_attr.
2899 Add warnings about conflicts with generic "noinit" and "section"
2901 Add warning for when variable is not initialized.
2902 Chain conditionals which prevent the attribute being added.
2903 (ATTR_EXCL): New helper.
2904 (attr_reent_exclusions): New exclusion table.
2905 (attr_naked_exclusions): Likewise.
2906 (attr_crit_exclusions): Likewise.
2907 (attr_lower_exclusions): Likewise.
2908 (attr_upper_exclusions): Likewise.
2909 (attr_either_exclusions): Likewise.
2910 (attr_persist_exclusions): Likewise.
2911 (msp430_attribute_table): Update with exclusion rules.
2912 (msp430_output_aligned_decl_common): Don't output common symbol if decl
2915 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2917 * config/msp430/msp430.c (TARGET_HANDLE_GENERIC_ATTRIBUTE): Define.
2918 (msp430_handle_generic_attribute): New function.
2919 * doc/tm.texi: Regenerate.
2920 * doc/tm.texi.in: Add TARGET_HANDLE_GENERIC_ATTRIBUTE.
2921 * hooks.c (hook_tree_treeptr_tree_tree_int_boolptr_null): New.
2922 * hooks.h (hook_tree_treeptr_tree_tree_int_boolptr_null): New.
2923 * target.def: Define new hook TARGET_HANDLE_GENERIC_ATTRIBUTE.
2925 2019-09-03 Kamlesh Kumar <kamleshbhalui@gmail.com>
2927 PR tree-optimization/91504
2928 * match.pd: Add ((~a & b) ^a) --> (a | b).
2930 2019-09-03 Jakub Jelinek <jakub@redhat.com>
2933 * config/i386/i386-expand.c (split_double_mode): If there is more than
2934 one MEM operand and they are rtx_equal_p, reuse lo_half/hi_half from
2935 already split matching MEM operand instead of calling adjust_address
2938 2019-09-03 Ulrich Weigand <uweigand@de.ibm.com>
2940 * config.gcc: Obsolete spu target. Remove references to spu.
2941 * configure.ac: Remove references to spu.
2942 * configure: Regenerate.
2943 * config/spu/: Remove directory.
2944 * common/config/spu/: Remove directory.
2946 * doc/extend.texi: Remove references to spu.
2947 * doc/invoke.texi: Likewise.
2948 * doc/md.texi: Likewise.
2949 * doc/sourcebuild.texi: Likewise.
2951 2019-09-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
2956 * expr.c (expand_expr_real_1): Handle unaligned decl_rtl
2957 and SSA_NAME referring to CONSTANT_P correctly.
2959 2019-09-03 Richard Biener <rguenther@suse.de>
2961 * tree-ssa-sccvn.h (vn_nary_op_lookup): Remove.
2962 (vn_nary_op_insert): Likewise.
2963 * tree-ssa-sccvn.c (init_vn_nary_op_from_op): Remove.
2964 (vn_nary_op_lookup): Likewise.
2965 (vn_nary_op_insert): Likewise.
2967 2019-09-03 Ilya Leoshkevich <iii@linux.ibm.com>
2969 * config/s390/s390.c (s390_canonicalize_comparison): Use XEXP
2970 (*op0, 1) instead of XEXP (*op1, 0).
2972 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2974 * config/aarch64/aarch64.md (UNSPEC_FJCVTZS): Define.
2975 (aarch64_fjcvtzs): New define_insn.
2976 * config/aarch64/aarch64.h (TARGET_JSCVT): Define.
2977 * config/aarch64/aarch64-builtins.c (aarch64_builtins):
2979 (aarch64_init_builtins): Initialize __builtin_aarch64_jcvtzs.
2980 (aarch64_expand_builtin): Handle AARCH64_JSCVT.
2981 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
2982 __ARM_FEATURE_JCVT where appropriate.
2983 * config/aarch64/arm_acle.h (__jcvt): Define.
2985 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2987 * config/aarch64/aarch64.md ("unspec"): Add UNSPEC_FRINT32Z,
2988 UNSPEC_FRINT32X, UNSPEC_FRINT64Z, UNSPEC_FRINT64X.
2989 (aarch64_<frintnzs_op><mode>): New define_insn.
2990 * config/aarch64/aarch64.h (TARGET_FRINT): Define.
2991 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
2992 __ARM_FEATURE_FRINT when appropriate.
2993 * config/aarch64/aarch64-simd-builtins.def: Add builtins for frint32z,
2994 frint32x, frint64z, frint64x.
2995 * config/aarch64/arm_acle.h (__rint32zf, __rint32z, __rint64zf,
2996 __rint64z, __rint32xf, __rint32x, __rint64xf, __rint64x): Define.
2997 * config/aarch64/arm_neon.h (vrnd32z_f32, vrnd32zq_f32, vrnd32z_f64,
2998 vrnd32zq_f64, vrnd32x_f32, vrnd32xq_f32, vrnd32x_f64, vrnd32xq_f64,
2999 vrnd64z_f32, vrnd64zq_f32, vrnd64z_f64, vrnd64zq_f64, vrnd64x_f32,
3000 vrnd64xq_f32, vrnd64x_f64, vrnd64xq_f64): Define.
3001 * config/aarch64/iterators.md (VSFDF): Define.
3002 (FRINTNZX): Likewise.
3003 (frintnzs_op): Likewise.
3005 2019-09-03 Dennis Zhang <dennis.zhang@arm.com>
3007 * config/aarch64/aarch64-cores.def (AARCH64_CORE): New entries
3008 for Cortex-A77, Cortex-A76AE, Cortex-A65, Cortex-A65AE, and
3010 * config/aarch64/aarch64-tune.md: Regenerated.
3011 * doc/invoke.texi: Document the new processors.
3013 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3015 * config/aarch64/aarch64-option-extensions.def (sb): Add feature
3019 (sve2-sm4): Likewise.
3021 (svesha3): Likewise.
3022 (svebitperm): Likewise.
3024 2019-09-03 Jakub Jelinek <jakub@redhat.com>
3025 Richard Biener <rguenther@suse.de>
3027 PR tree-optimization/91597
3028 * tree-vrp.c (extract_range_from_binary_expr): Remove unsafe
3029 BIT_AND_EXPR optimization for pointers, even if both operand
3030 ranges don't include NULL, the result can be NULL.
3032 2019-09-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
3035 * expr.c (addr_expr_of_non_mem_decl_p_1): Refactor into...
3036 (non_mem_decl_p): ...this.
3037 (mem_ref_refers_to_non_mem_p): Handle DECL_P as well as MEM_REF.
3038 (expand_assignment): Call mem_ref_referes_to_non_mem_p
3039 unconditionally as before.
3041 2019-09-02 Eric Botcazou <ebotcazou@adacore.com>
3044 * doc/generic.texi (LTGT_EXPR): Merge with other comparison operators.
3045 * rtl.def (LTGT): Likewise. Add note about floating-point exceptions.
3046 * tree.def (LTGT_EXPR): Likewise.
3047 * config/sparc/sparc.c (select_cc_mode): Return CCFPEmode for LTGT.
3049 2019-09-02 Jakub Jelinek <jakub@redhat.com>
3052 * fold-const.c (range_check_type): For enumeral and boolean
3053 type, pass 1 to type_for_size langhook instead of
3054 TYPE_UNSIGNED (etype). Return unsigned_type_for result whenever
3055 etype isn't TYPE_UNSIGNED INTEGER_TYPE.
3056 (build_range_check): Don't call unsigned_type_for for pointer types.
3057 * match.pd (X / C1 op C2): Don't call unsigned_type_for on
3058 range_check_type result.
3060 2019-09-02 Eric Botcazou <ebotcazou@adacore.com>
3062 * gimple-ssa-strength-reduction.c (valid_mem_ref_cand_p): New function.
3063 (replace_ref): Do not replace a chain of only two candidates which are
3064 valid memory references.
3066 2019-09-02 Martin Liska <mliska@suse.cz>
3068 * tree-switch-conversion.c (jump_table_cluster::find_jump_tables):
3069 Bail out when we'll end up with the same number of clusters as
3071 (bit_test_cluster::find_bit_tests): Likewise for bit tests.
3072 (jump_table_cluster::can_be_handled): Remove the guard
3073 as it's already handled in ::is_enabled. Allocate output
3074 after early bail out.
3076 2019-09-02 Martin Liska <mliska@suse.cz>
3078 PR gcov-profile/91601
3079 * gcov.c (path_contains_zero_cycle_arc): Rename to ...
3080 (path_contains_zero_or_negative_cycle_arc): ... this and handle
3081 also negative edges.
3082 (circuit): Handle also negative edges as they can happen
3085 2019-09-01 Eric Botcazou <ebotcazou@adacore.com>
3088 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Return true
3089 during LRA/reload in PIC mode if the PIC register hasn't been used yet.
3090 (sparc_pic_register_p): Test reload_in_progress for consistency's sake.
3092 2019-09-01 Jakub Jelinek <jakub@redhat.com>
3095 * optabs.c (expand_vec_cond_expr): If op0 is a VECTOR_CST and only
3096 EQ_EXPR/NE_EXPR is supported, verify that op0 only contains
3097 zeros or negative elements and use NE_EXPR instead of LT_EXPR against
3101 * tree.c (find_decls_types_in_node): Also walk TREE_PURPOSE of
3102 GIMPLE_ASM TREE_LIST operands.
3104 2019-08-31 Gerald Pfeifer <gerald@pfeifer.com>
3106 * doc/generic.texi (Unary and Binary Expressions): Mark up
3107 an instance of TYPE_MIN.
3109 2019-08-31 Stafford Horne <shorne@gmail.com>
3111 * config/or1k/constraints.md (t): New constraint.
3112 * config/or1k/or1k.h (GOT_REGS): New register class.
3113 * config/or1k/or1k.md (set_got_tmp, set_got): Use t contraint.
3115 2019-08-30 Jim Wilson <jimw@sifive.com>
3117 * config/riscv/riscv.c (riscv_option_override): If -msave-restore
3118 and -fpic and -mplt then disable -msave-restore and warn.
3120 2019-08-30 Martin Sebor <msebor@redhat.com>
3123 * tree-ssa-strlen.c (handle_store): Use a fallback location if
3124 the statement doesn't have one.
3125 * gimple-pretty-print.c (percent_G_format): Same.
3128 * tree-vrp.c (vrp_prop::check_mem_ref): Normalize type domain bounds
3129 before using them to validate MEM_REF offset.
3131 2019-08-30 Marek Polacek <polacek@redhat.com>
3133 * doc/invoke.texi (-Wvolatile): Use @code for volatile.
3135 2019-08-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
3137 * config/arm/arm.md (unaligned_loaddi,
3138 unaligned_storedi): New unspec insn patterns.
3139 * config/arm/neon.md (unaligned_storev8qi): Likewise.
3140 * config/arm/arm.c (gen_cpymem_ldrd_strd): Use unaligned_loaddi
3141 and unaligned_storedi for 4-byte aligned memory.
3142 (arm_block_set_aligned_vect): Use unaligned_storev8qi for
3143 4-byte aligned memory.
3145 2019-08-30 Martin Jambor <mjambor@suse.cz>
3147 tree-optimization/91579
3148 * tree-tailcall.c (tailr_arg_needs_copy): New variable.
3149 (find_tail_calls): Allocate tailr_arg_needs_copy and set its bits as
3151 (arg_needs_copy_p): Removed.
3152 (eliminate_tail_call): Test tailr_arg_needs_copy instead of calling
3154 (tree_optimize_tail_calls_1): Likewise. Free tailr_arg_needs_copy.
3156 2019-08-29 Uroš Bizjak <ubizjak@gmail.com>
3158 * config/i386/i386-features.c
3159 (general_scalar_chain::compute_convert_gain):
3160 Correct cost for double-word shifts.
3161 (general_scalar_to_vector_candidate_p): Reject count operands
3162 greater or equal to mode bitsize.
3164 2019-08-29 Uroš Bizjak <ubizjak@gmail.com>
3166 * config/i386/i386.c (inline_secondary_memory_needed): Return true
3167 for moves between SSE and non-general registers and between
3168 mask and non-general registers.
3169 (ix86_register_move_cost): Remove stalled comment.
3171 2019-08-29 Richard Biener <rguenther@suse.de>
3173 * config/i386/i386-features.c (general_scalar_chain::convert_insn):
3174 Guard debug work with MAY_HAVE_DEBUG_BIND_INSNS.
3176 2019-08-29 Richard Biener <rguenther@suse.de>
3179 * config/i386/i386-features.c (general_scalar_chain::convert_insn):
3180 Do not emit scalar copies for debug-insns, instead replace
3181 their uses with the reg copy used in the chain or reset them
3182 if there is a reaching definition outside of the chain as well.
3184 2019-08-29 Jakub Jelinek <jakub@redhat.com>
3187 * config/i386/i386-expand.c (expand_vec_perm_movs,
3188 expand_vec_perm_blend, expand_vec_perm_vpermil,
3189 expand_vec_perm_pshufb, expand_vec_perm_1,
3190 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr,
3191 expand_vec_perm_interleave2, expand_vec_perm_vpermq_perm_1,
3192 expand_vec_perm_vperm2f128, expand_vec_perm_interleave3,
3193 expand_vec_perm_vperm2f128_vblend, expand_vec_perm_2vperm2f128_vshuf,
3194 expand_vec_perm_even_odd, expand_vec_perm_broadcast): Adjust function
3195 comments - replace ix86_expand_vec_perm_builtin_1 with
3196 ix86_expand_vec_perm_const_1.
3197 (expand_vec_perm2_vperm2f128_vblend): New function.
3198 (ix86_expand_vec_perm_const_1): New forward declaration. Call
3199 expand_vec_perm2_vperm2f128_vblend as last resort.
3200 (canonicalize_perm): Formatting fix.
3202 PR tree-optimization/91351
3203 * tree-cfg.c (generate_range_test): Use range_check_type instead of
3205 * tree-cfgcleanup.c (convert_single_case_switch): Punt if
3206 range_check_type returns NULL.
3207 * tree-switch-conversion.c (switch_conversion::build_one_array):
3208 Use range_check_type instead of unsigned_type_for, don't perform
3209 linear opt if it returns NULL.
3210 (bit_test_cluster::find_bit_tests): Formatting fix.
3211 (bit_test_cluster::emit): Use range_check_type instead of
3213 (switch_decision_tree::try_switch_expansion): Punt if range_check_type
3216 2019-08-29 Richard Biener <rguenther@suse.de>
3218 PR tree-optimization/91568
3219 * tree-vectorizer.h (_slp_tree::max_nunits): Add.
3220 (vect_update_max_nunits): Add overload for poly_uint64.
3221 * tree-vect-slp.c (vect_create_new_slp_node): Initialize it.
3222 (vect_build_slp_tree): Record max_nunits into the subtree
3223 and merge it upwards.
3224 (vect_print_slp_tree): Print max_nunits.
3226 2019-08-28 Marek Polacek <polacek@redhat.com>
3228 Implement P1152R4: Deprecating some uses of volatile.
3230 * doc/invoke.texi: Document -Wvolatile.
3232 2019-08-28 Marek Polacek <polacek@redhat.com>
3234 PR c++/91360 - Implement C++20 P1143R2: constinit.
3235 * doc/invoke.texi: Document -Wc++20-compat.
3237 2019-08-28 Martin Sebor <msebor@redhat.com>
3239 PR tree-optimization/91457
3240 * builtins.c (component_size): New function.
3241 (compute_objsize): Add argument. Handle ARRAY_REF and COMPONENT_REF.
3242 * builtins.h (compute_objsize): Add argument.
3243 * tree-ssa-strlen.c (handle_store): Handle no-warning bit.
3244 * tree-vrp.c (vrp_prop::check_array_ref): Return warning result.
3245 (vrp_prop::check_mem_ref): Same.
3246 (vrp_prop::search_for_addr_array): Set no-warning bit.
3247 (check_array_bounds): Same.
3249 2019-08-28 Martin Sebor <msebor@redhat.com>
3252 * opts-common.c (option_enabled): Correct checking for language
3255 2019-08-28 Uroš Bizjak <ubizjak@gmail.com>
3257 * config/i386/i386.c (ix86_register_move_cost): Do not
3258 limit the cost of moves to/from XMM register to minimum 8.
3260 2019-08-28 Martin Jambor <mjambor@suse.cz>
3263 * ipa-cp.c (merge_agg_lats_step): Removed redundant test, made a
3264 checking assert a normal assert to test it really is redundant.
3265 * ipa-prop.c (compute_complex_assign_jump_func): Removed
3267 (update_jump_functions_after_inlining): Removed combining unary
3268 arithmetic operations with an ancestor jump function.
3269 (ipcp_modif_dom_walker::before_dom_children): Fix wrong use of rhs
3272 2019-08-28 Richard Biener <rguenther@suse.de>
3274 * config/i386/i386-features.c (convert_scalars_to_vector): Do not
3277 2019-08-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
3278 Richard Biener <rguenther@suse.de>
3280 * expr.c (expand_assignment): Handle misaligned DECLs.
3281 (expand_expr_real_1): Handle FUNCTION_DECL as unaligned.
3282 * function.c (assign_parm_adjust_stack_rtl): Check movmisalign optab
3284 (assign_parm_setup_stack): Allocate properly aligned stack slots.
3285 * varasm.c (build_constant_desc): Align constants of misaligned types.
3286 * config/arm/predicates.md (aligned_operand): New predicate.
3287 * config/arm/arm.md (movdi, movsi, movhi, movhf, movsf, movdf): Use
3288 aligned_operand to check restrictions on memory addresses.
3289 * config/arm/neon.md (movti, mov<VSTRUCT>, mov<VH>): Likewise.
3290 * config/arm/vec-common.md (mov<VALL>): Likewise.
3292 2019-08-28 Jakub Jelinek <jakub@redhat.com>
3295 * config/i386/sse.md (vec_shl_<mode>, vec_shr_<mode>): Use
3296 V_128 iterator instead of VI_128.
3298 2019-08-28 Martin Liska <mliska@suse.cz>
3300 PR tree-optimization/90970
3301 * builtins.c (check_access): Remove assignment to maxread
3302 as it hasn't been used since when it was introduced in r255755.
3304 2019-08-27 Martin Sebor <msebor@redhat.com>
3306 PR tree-optimization/91567
3307 * gimple-ssa-sprintf.c (get_string_length): Handle more forms of lengths
3309 * vr-values.c (vr_values::extract_range_basic): Set strlen upper bound
3312 2019-08-27 Jeff Law <law@redhat.com>
3314 * tree-ssa-strlen.c (printf_strlen_execute): Initialize
3315 the loop optimizer and SCEV before sizing ssa_ver_to_stridx.
3317 2019-08-27 Uroš Bizjak <ubizjak@gmail.com>
3320 * config/i386/i386-features.c (convert_scalars_to_vector):
3321 Update crtl->stack_realign_needed, crtl->stack_realign_tried and
3322 crtl->stack_realign_processed. Update crtl->drap_reg by calling
3323 targetm.calls.get_drap_rtx. If drap_rtx is non-null then
3324 Update crtl->args.internal_arg_pointer and call fixup_tail_calls.
3326 2019-08-27 Richard Biener <rguenther@suse.de>
3328 * config/i386/i386-features.h
3329 (general_scalar_chain::~general_scalar_chain): Add.
3330 (general_scalar_chain::insns_conv): New bitmap.
3331 (general_scalar_chain::n_sse_to_integer): New.
3332 (general_scalar_chain::n_integer_to_sse): Likewise.
3333 (general_scalar_chain::make_vector_copies): Adjust signature.
3334 * config/i386/i386-features.c
3335 (general_scalar_chain::general_scalar_chain): Outline,
3336 initialize new members.
3337 (general_scalar_chain::~general_scalar_chain): New.
3338 (general_scalar_chain::mark_dual_mode_def): Record insns
3339 we need to insert conversions at and count them.
3340 (general_scalar_chain::compute_convert_gain): Account
3341 for conversion instructions at chain boundary.
3342 (general_scalar_chain::make_vector_copies): Generate a single
3343 copy for a def by a specific insn.
3344 (general_scalar_chain::convert_registers): First populate
3345 defs_map, then make copies at out-of chain insns.
3347 2019-08-27 Richard Earnshaw <rearnsha@arm.com>
3349 * config/arm/arm.md (stack_protect_set_insn): Add security-related
3351 * config/aarch64/aarch64.md (stack_protect_set_<mode>): Likewise.
3353 2019-08-27 Martin Liska <mliska@suse.cz>
3355 * cgraph.c (cgraph_node::remove): Remove dead assignment before
3357 * config/i386/i386-features.c (scalar_chain::emit_conversion_insns):
3358 Enclose in anonymous namespace.
3359 * config/i386/x86-tune-costs.h (struct processor_costs): Wrap
3360 hard_register initialization in braces.
3361 * tree-vrp.h (value_range_base::supports_type_p): Return false
3362 for function with boolean return type.
3364 2019-08-26 Uroš Bizjak <ubizjak@gmail.com>
3366 * config/i386/i386.c (emit_i387_cw_initialization)
3367 <case I387_CW_ROUNDEVEN>: Fix masking operand value.
3369 2019-08-26 Martin Sebor <msebor@redhat.com>
3372 * gimple-ssa-sprintf.c (pass_data_sprintf_length): Remove object.
3373 (sprintf_dom_walker): Remove class.
3374 (get_int_range): Make argument const.
3375 (directive::fmtfunc, directive::set_precision): Same.
3376 (format_none): Same.
3377 (build_intmax_type_nodes): Same.
3378 (adjust_range_for_overflow): Same.
3379 (format_floating): Same.
3380 (format_character): Same.
3381 (format_string): Same.
3382 (format_plain): Same.
3383 (get_int_range): Cast away constness.
3384 (format_integer): Same.
3385 (get_string_length): Call get_range_strlen_dynamic. Handle
3386 null lendata.maxbound.
3387 (should_warn_p): Adjust argument scope qualifier.
3389 (format_directive): Same.
3390 (parse_directive): Same.
3391 (is_call_safe): Same.
3392 (try_substitute_return_value): Same.
3393 (sprintf_dom_walker::handle_printf_call): Rename...
3394 (handle_printf_call): ...to this. Initialize target to host charmap
3395 here instead of in pass_sprintf_length::execute.
3396 (struct call_info): Make global.
3397 (sprintf_dom_walker::compute_format_length): Make global.
3398 (sprintf_dom_walker::handle_gimple_call): Same.
3399 * passes.def (pass_sprintf_length): Replace with pass_strlen.
3400 * print-rtl.c (print_pattern): Reduce the number of spaces to
3401 avoid -Wformat-truncation.
3402 * tree-pass.h (make_pass_warn_printf): New function.
3403 * tree-ssa-strlen.c (strlen_optimize): New variable.
3404 (get_string_length): Add comments.
3405 (get_range_strlen_dynamic): New function.
3406 (check_and_optimize_call): New function.
3407 (handle_integral_assign): New function.
3408 (strlen_check_and_optimize_stmt): Factor code out into
3409 strlen_check_and_optimize_call and handle_integral_assign.
3410 (strlen_dom_walker::evrp): New member.
3411 (strlen_dom_walker::before_dom_children): Use evrp member.
3412 (strlen_dom_walker::after_dom_children): Use evrp member.
3413 (printf_strlen_execute): New function.
3414 (pass_strlen::gate): Update to handle printf calls.
3415 (dump_strlen_info): New function.
3416 (pass_data_warn_printf): New variable.
3417 (pass_warn_printf): New class.
3418 * tree-ssa-strlen.h (get_range_strlen_dynamic): Declare.
3419 (handle_printf_call): Same.
3420 * tree-vrp.c (value_range_base::type): Adjust assertion.
3421 * vr-values.c (vr_values::update_value_range): Use type of the first
3422 argument rather than the second.
3424 2019-08-26 Richard Biener <rguenther@suse.de>
3426 * config/i386/i386-features.c (general_remove_non_convertible_regs):
3428 (convert_scalars_to_vector): Do not call it.
3430 2019-08-26 Tejas Joshi <tejasjoshi9673@gmail.com>
3431 Uros Bizjak <ubizjak@gmail.com>
3433 * builtins.c (mathfn_built_in_2): Change CASE_MATHFN to
3434 CASE_MATHFN_FLOATN for roundeven.
3435 * config/i386/i386.c (ix86_i387_mode_needed): Add case
3437 (ix86_mode_needed): Likewise.
3438 (ix86_mode_after): Likewise.
3439 (ix86_mode_entry): Likewise.
3440 (ix86_mode_exit): Likewise.
3441 (ix86_emit_mode_set): Likewise.
3442 (emit_i387_cw_initialization): Add case I387_CW_ROUNDEVEN.
3443 * config/i386/i386.h (ix86_stack_slot): Add SLOT_CW_ROUNDEVEN.
3444 (ix86_entity): Add I387_ROUNDEVEN.
3445 (NUM_MODES_FOR_MODE_SWITCHING): Add I387_CW_ANY.
3446 * config/i386/i386.md: Define UNSPEC_FRNDINT_ROUNDEVEN.
3447 (define_int_iterator): Likewise.
3448 (define_int_attr): Likewise for rounding_insn, rounding and ROUNDING.
3449 (define_constant): Define ROUND_ROUNDEVEN mode.
3450 (define_attr): Add roundeven mode for i387_cw.
3451 (<rouding_insn><mode>2): Add condition for ROUND_ROUNDEVEN.
3452 * internal-fn.def (ROUNDEVEN): New builtin function.
3453 * optabs.def (roundeven_optab): New optab.
3455 2019-08-26 Tejas Joshi <tejasjoshi9673@gmail.com>
3457 * builtins.c (mathfn_built_in_2): Added CASE_MATHFN_FLOATN
3459 * builtins.def: Added function definitions for roundeven function
3461 * fold-const-call.c (fold_const_call_ss): Added case for roundeven
3462 function call. Adjust condition for floor, ceil, trunc and round.
3463 * fold-const.c (negate_mathfn_p): Added case for roundeven function.
3464 (tree_call_nonnegative_warnv_p): Added case for roundeven function.
3465 (integer_valued_real_call_p): Added case for roundeven function.
3466 * real.c (is_even): New function. Returns true if real number is even,
3467 otherwise returns false.
3468 (is_halfway_below): New function. Returns true if real number is
3469 halfway between two integers, else return false.
3470 (real_roundeven): New function. Round real number to nearest integer,
3471 rounding halfway cases towards even.
3472 * real.h (real_value): Added descriptive comments. Added function
3473 declaration for roundeven function.
3474 * doc/extend.texi (Other Builtins): List roundeven variants among
3475 functions which can be handled as builtins.
3477 2019-08-26 Richard Biener <rguenther@suse.de>
3481 * config/i386/i386-features.h (general_scalar_chain::defs_map):
3483 (general_scalar_chain::replace_with_subreg): Remove.
3484 (general_scalar_chain::replace_with_subreg_in_insn): Likewise.
3485 (general_scalar_chain::convert_reg): Adjust signature.
3486 * config/i386/i386-features.c (scalar_chain::add_insn): Do not
3487 iterate over all defs of a reg.
3488 (general_scalar_chain::replace_with_subreg): Remove.
3489 (general_scalar_chain::replace_with_subreg_in_insn): Likewise.
3490 (general_scalar_chain::make_vector_copies): Populate defs_map,
3491 place copy only after defs that are used as vectors in the chain.
3492 (general_scalar_chain::convert_reg): Emit a copy for a specific
3493 def in a specific instruction.
3494 (general_scalar_chain::convert_op): All reg uses are converted here.
3495 (general_scalar_chain::convert_insn): Emit copies for scalar
3496 uses of defs here. Replace uses with the copies we created.
3497 Replace and convert the def. Adjust REG_DEAD notes, remove
3498 REG_EQUIV/EQUAL notes.
3499 (general_scalar_chain::convert_registers): Only handle copies
3500 into the chain here.
3502 2019-08-26 Robin Dapp <rdapp@linux.ibm.com>
3504 * match.pd: Add (T)(A) + CST -> (T)(A + CST).
3506 2019-08-26 Robin Dapp <rdapp@linux.ibm.com>
3508 * gimple-loop-versioning.cc (loop_versioning::record_address_fragment):
3509 Add nop_convert case.
3510 * tree-ssa-propagate.c (substitute_and_fold_dom_walker::before_dom_children):
3511 Fold all statements if requested.
3512 * tree-ssa-propagate.h (class substitute_and_fold_engine):
3513 Allow to fold all statements.
3514 * tree-vrp.c (class vrp_folder):
3515 Let substitute_and_fold_engine fold all statements.
3517 2019-08-26 Richard Biener <rguenther@suse.de>
3519 PR tree-optimization/91526
3520 * passes.def: Note that after late FRE we do TODO_update_address_taken.
3521 * tree-ssa-sccvn.c (pass_fre::execute): In late mode schedule
3522 TODO_update_address_taken.
3524 2019-08-26 Gerald Pfeifer <gerald@pfeifer.com>
3526 * config/i386/gmm_malloc.h: Only use <errno.h> and errno if
3529 2019-08-23 Mihailo Stojanovic <mistojanovic@wavecomp.com>
3531 * config/mips/mips.md (mips_get_fcsr, *mips_get_fcsr): Use SI
3532 machine mode for unspec_volatile operand.
3534 2019-08-23 Wilco Dijkstra <wdijkstr@arm.com>
3536 * gcc/doc/invoke.texi (mneon-for-64bits): Deprecate option.
3537 * gcc/config/arm/arm.opt (mneon-for-64bits): Deprecate option.
3538 * gcc/config/arm/arm.h (TARGET_PREFER_NEON_64BITS): Remove.
3539 (prefer_neon_for_64bits): Remove.
3540 * gcc/config/arm/arm.c (prefer_neon_for_64bits): Remove.
3541 (tune_params): Remove PREF_NEON_64_FALSE uses.
3542 (arm_option_override): Remove prefer_neon selection code.
3543 (arm_print_tune_info): Remove prefer_neon_for_64bits.
3544 * gcc/config/arm/arm-protos.h (tune_params): Remove
3545 prefer_neon_for_64bits.
3546 (prefer_neon_for_64bits): Remove.
3548 2019-08-23 Iain Sandoe <iain@sandoe.co.uk>
3551 * ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure
3552 and issue any diagnostics needed before collecting the pre-PCH
3555 2019-08-23 Jakub Jelinek <jakub@redhat.com>
3558 * common.opt (fexcess-precision=): Add Optimization flag. Use
3559 flag_excess_precision variable instead of
3560 flag_excess_precision_cmdline.
3561 * flags.h (class target_flag_state): Remove x_flag_excess_precision
3563 (flag_excess_precision): Don't define.
3564 * langhooks.c (lhd_post_options): Set flag_excess_precision instead of
3565 flag_excess_precision_cmdline. Remove comment.
3566 * opts.c (set_fast_math_flags): Use frontend_set_flag_excess_precision
3567 and x_flag_excess_precision instead of
3568 frontend_set_flag_excess_precision_cmdline and
3569 x_flag_excess_precision_cmdline.
3570 (fast_math_flags_set_p): Use x_flag_excess_precision instead of
3571 x_flag_excess_precision_cmdline.
3572 * toplev.c (init_excess_precision): Remove.
3573 (lang_dependent_init_target): Don't call it.
3575 2019-08-23 Martin Liska <mliska@suse.cz>
3577 * lto-wrapper.c (run_gcc): When setting jobserver
3578 set also parallel to 1. This was done so before r273908.
3580 2019-08-23 Dennis Zhang <dennis.zhang@arm.com>
3582 * config/arm/arm-cpus.in (cortex-m35p): New entry.
3583 (cortex-a76ae): Likewise.
3584 (cortex-a77): Likewise
3585 * config/arm/arm-tables.opt: Regenerate.
3586 * config/arm/arm-tune.md: Likewise.
3587 * doc/invoke.texi (ARM Options): Document cortex-m35p, cortx-a76ae,
3588 cortex-a77 CPU options.
3590 2019-08-23 Martin Liska <mliska@suse.cz>
3592 * profile.c (instrument_values): Do not set
3594 * tree-profile.c (gimple_gen_interval_profiler): Remove
3596 (gimple_gen_pow2_profiler): Likewise.
3597 (gimple_gen_topn_values_profiler): Likewise.
3598 (gimple_gen_ic_profiler): Likewise.
3599 (gimple_gen_time_profiler): Likewise.
3600 (gimple_gen_average_profiler): Likewise.
3601 (gimple_gen_ior_profiler): Likewise.
3602 * value-prof.c (dump_histogram_value): Use default
3603 in switch statement instead of HIST_TYPE_MAX.
3604 (stream_in_histogram_value): Likewise.
3605 (gimple_duplicate_stmt_histograms): Do not
3606 use NULL for implicitly set arguments.
3607 (gimple_divmod_values_to_profile): Do not use
3609 (gimple_indirect_call_to_profile): Likewise.
3610 (gimple_find_values_to_profile): Use implicit
3611 function call arguments.
3612 * value-prof.h (gimple_alloc_histogram_value):
3614 (gimple_gen_interval_profiler): Remove last argument.
3615 (gimple_gen_pow2_profiler): Likewise.
3616 (gimple_gen_topn_values_profiler): Likewise.
3617 (gimple_gen_ic_profiler): Likewise.
3618 (gimple_gen_time_profiler): Likewise.
3619 (gimple_gen_average_profiler): Likewise.
3620 (gimple_gen_ior_profiler): Likewise.
3622 2019-08-22 Martin Sebor <msebor@redhat.com>
3625 * builtins.c (c_strlen): Rename argument and introduce new local.
3626 Set no-warning bit on original argument.
3627 * expr.c (string_constant): Pass argument type to fold_ctor_reference.
3628 Fold empty and zero constructors into empty strings.
3629 * gimple-fold.c (fold_nonarray_ctor_reference): Return a STRING_CST
3630 for missing initializers.
3631 * tree.c (build_string_literal): Handle optional argument.
3632 * tree.h (build_string_literal): Add defaulted argument.
3633 * gimple-ssa-warn-restrict.c (maybe_diag_access_bounds): Check
3634 no-warning bit on original expression.
3636 2019-08-22 Segher Boessenkool <segher@kernel.crashing.org>
3639 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
3640 and UNSPEC_DARN_RAW.
3641 (unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and
3643 (darn_32): Use an unspec_volatile, and UNSPECV_DARN_32.
3644 (darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW.
3645 (darn): Use an unspec_volatile, and UNSPECV_DARN.
3647 2019-08-22 Segher Boessenkool <segher@kernel.crashing.org>
3649 * config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
3650 UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to...
3651 * config/rs6000/rs6000.md (unspec): ... here.
3652 * config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb,
3653 *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
3654 cmpeqb, *cmpeqb_internal): Delete, move to...
3655 * config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb,
3656 *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
3657 cmpeqb, *cmpeqb_internal): ... here.
3659 2019-08-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3661 * config/arm/arm_acle.h: Use arch=armv8-a+crc+simd pragma for CRC32
3662 intrinsics if __ARM_FP.
3663 Use __ARM_FEATURE_CRC32 ifdef guard.
3665 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com>
3667 * config/arm/arm.md (neon_for_64bits): Remove.
3668 (avoid_neon_for_64bits): Remove.
3669 (arm_adddi3): Always split early.
3670 (arm_subdi3): Always split early.
3671 (negdi2): Remove Neon expansion.
3672 (split zero_extend): Split before reload.
3673 (split sign_extend): Split before reload.
3675 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com>
3677 * config/arm/iterators.md (qhs_extenddi_cstr): Update.
3678 (qhs_extenddi_cstr): Likewise.
3679 * config/arm/arm.md (ashldi3): Always expand early.
3680 (ashlsi3): Likewise.
3681 (ashrsi3): Likewise.
3682 (zero_extend<mode>di2): Remove Neon variants.
3683 (extend<mode>di2): Likewise.
3684 * config/arm/neon.md (ashldi3_neon_noclobber): Remove.
3685 (signed_shift_di3_neon): Likewise.
3686 (unsigned_shift_di3_neon): Likewise.
3687 (ashrdi3_neon_imm_noclobber): Likewise.
3688 (lshrdi3_neon_imm_noclobber): Likewise.
3689 (<shift>di3_neon): Likewise.
3690 (split extend): Remove DI extend split patterns.
3692 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com>
3694 * config/arm/arm.md (split and/eor/ior): Remove Neon check.
3695 (split not): Add DImode not splitter.
3696 (anddi3): Remove pattern.
3697 (anddi3_insn): Likewise.
3698 (anddi_zesidi_di): Likewise.
3699 (anddi_sesdi_di): Likewise.
3700 (anddi_notdi_di): Likewise.
3701 (anddi_notzesidi_di): Likewise.
3702 (anddi_notsesidi_di): Likewise.
3704 (iordi3_insn): Likewise.
3705 (iordi_zesidi_di): Likewise.
3706 (iordi_sesidi_di): Likewise.
3708 (xordi3_insn): Likewise.
3709 (xordi_sesidi_di): Likewise.
3710 (xordi_zesidi_di): Likewise.
3711 (one_cmpldi2): Likewise.
3712 (one_cmpldi2_insn): Likewise.
3713 * config/arm/constraints.md: Remove De, Df, Dg constraints.
3714 * config/arm/iwmmxt.md (iwmmxt_iordi3): Remove general register
3716 (iwmmxt_xordi3): Likewise.
3717 (iwmmxt_anddi3): Likewise.
3718 * config/arm/neon.md (orndi3_neon): Remove pattern.
3719 (anddi_notdi_di): Likewise.
3720 * config/arm/predicates.md (arm_anddi_operand_neon): Remove.
3721 (arm_iordi_operand_neon): Likewise.
3722 (arm_xordi_operand_neon): Likewise.
3723 * config/arm/thumb2.md(iordi_notdi_di): Remove pattern.
3724 (iordi_notzesidi_di): Likewise.
3725 (iordi_notdi_zesidi): Likewise.
3726 (iordi_notsesidi_di): Likewise.
3728 2019-08-22 Richard Earnshaw <rearnsha@arm.com>
3730 * config/arm/arm.md (iorsi3_compare0): Add alternative for 16-bit thumb
3732 (iorsi3_compare0_scratch): Likewise.
3734 2019-08-22 Sylvia Taylor <sylvia.taylor@arm.com>
3736 * config/aarch64/aarch64-simd-builtins.def:
3739 * config/aarch64/aarch64-simd.md:
3740 (aarch64_ld1x4<VALLDIF:mode>): New pattern.
3741 (aarch64_st1x4<VALLDIF:mode>): Likewise.
3742 (aarch64_ld1_x4_<mode>): Likewise.
3743 (aarch64_st1_x4_<mode>): Likewise.
3744 * config/aarch64/arm_neon.h:
3745 (vld1_s8_x4): New function.
3746 (vld1q_s8_x4): Likewise.
3747 (vld1_s16_x4): Likewise.
3748 (vld1q_s16_x4): Likewise.
3749 (vld1_s32_x4): Likewise.
3750 (vld1q_s32_x4): Likewise.
3751 (vld1_u8_x4): Likewise.
3752 (vld1q_u8_x4): Likewise.
3753 (vld1_u16_x4): Likewise.
3754 (vld1q_u16_x4): Likewise.
3755 (vld1_u32_x4): Likewise.
3756 (vld1q_u32_x4): Likewise.
3757 (vld1_f16_x4): Likewise.
3758 (vld1q_f16_x4): Likewise.
3759 (vld1_f32_x4): Likewise.
3760 (vld1q_f32_x4): Likewise.
3761 (vld1_p8_x4): Likewise.
3762 (vld1q_p8_x4): Likewise.
3763 (vld1_p16_x4): Likewise.
3764 (vld1q_p16_x4): Likewise.
3765 (vld1_s64_x4): Likewise.
3766 (vld1_u64_x4): Likewise.
3767 (vld1_p64_x4): Likewise.
3768 (vld1q_s64_x4): Likewise.
3769 (vld1q_u64_x4): Likewise.
3770 (vld1q_p64_x4): Likewise.
3771 (vld1_f64_x4): Likewise.
3772 (vld1q_f64_x4): Likewise.
3773 (vst1_s8_x4): Likewise.
3774 (vst1q_s8_x4): Likewise.
3775 (vst1_s16_x4): Likewise.
3776 (vst1q_s16_x4): Likewise.
3777 (vst1_s32_x4): Likewise.
3778 (vst1q_s32_x4): Likewise.
3779 (vst1_u8_x4): Likewise.
3780 (vst1q_u8_x4): Likewise.
3781 (vst1_u16_x4): Likewise.
3782 (vst1q_u16_x4): Likewise.
3783 (vst1_u32_x4): Likewise.
3784 (vst1q_u32_x4): Likewise.
3785 (vst1_f16_x4): Likewise.
3786 (vst1q_f16_x4): Likewise.
3787 (vst1_f32_x4): Likewise.
3788 (vst1q_f32_x4): Likewise.
3789 (vst1_p8_x4): Likewise.
3790 (vst1q_p8_x4): Likewise.
3791 (vst1_p16_x4): Likewise.
3792 (vst1q_p16_x4): Likewise.
3793 (vst1_s64_x4): Likewise.
3794 (vst1_u64_x4): Likewise.
3795 (vst1_p64_x4): Likewise.
3796 (vst1q_s64_x4): Likewise.
3797 (vst1q_u64_x4): Likewise.
3798 (vst1q_p64_x4): Likewise.
3799 (vst1_f64_x4): Likewise.
3800 (vst1q_f64_x4): Likewise.
3802 2019-08-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3804 * config/aarch64/aarch64-sve.md (vcond_mask): Add "@".
3806 2019-08-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3807 Richard Sandiford <richard.sandiford@arm.com>
3810 * config/aarch64/aarch64.c (aarch64_evpc_sel): New function.
3811 (aarch64_expand_vec_perm_const_1): Call aarch64_evpc_sel.
3813 2019-08-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3816 * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): Force y
3817 in reg if it fails aarch64_plus_operand predicate.
3819 2019-08-21 Richard Biener <rguenther@suse.de>
3821 PR tree-optimization/91482
3822 * tree-ssa-ccp.c (ccp_folder::fold_stmt): Remove useless
3823 BUILT_IN_ASSUME_ALIGNED calls.
3825 2019-08-21 Richard Biener <rguenther@suse.de>
3829 * config/i386/i386-features.c
3830 (general_scalar_chain::make_vector_copies): Copy stack temporary
3831 rtx when using it multiple times.
3832 (general_scalar_chain::convert_reg): Likewise.
3834 2019-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
3836 * function.c (assign_parm_find_stack_rtl): Use known_eq instead of ==.
3838 2019-08-20 Matthew Beliveau <mbelivea@redhat.com>
3840 * tree-ssa-dse.c (dse_optimize_redundant_stores): Improved check to
3841 catch more redundant zero initialization cases.
3842 (dse_dom_walker::dse_optimize_stmt): Likewise.
3844 2019-08-20 Richard Biener <rguenther@suse.de>
3847 * ipa.c (cgraph_build_static_cdtor_1): Use names not recognizable
3848 by collect2 when targetm.have_ctors_dtors which avoids dragging
3849 in temporary filenames from LTO input objects.
3851 2019-08-20 Richard Biener <rguenther@suse.de>
3853 PR tree-optimization/37242
3854 * tree-ssa-sccvn.c (visit_nary_op): Also CSE (T)(a + b)
3855 to (T)a + (T)b if we know that a + b does not overflow.
3857 2019-08-20 Eric Botcazou <ebotcazou@adacore.com>
3859 PR rtl-optimization/91347
3860 * dse.c (scan_insn): Call add_wild_read for non-const/memset tail calls
3861 before reload if HARD_FRAME_POINTER_IS_ARG_POINTER.
3863 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
3865 * calls.h (function_arg_info): Add a pass_by_reference field,
3866 defaulting to false.
3867 * calls.c (apply_pass_by_reference_rules): Set pass_by_reference
3868 when applying pass-by-reference semantics.
3869 (initialize_argument_information): Likewise.
3870 (emit_library_call_value_1): Likewise.
3871 * function.c (assign_parm_data_one): Remove passed_pointer field.
3872 (assign_parm_find_data_types): Don't set it.
3873 (assign_parm_find_stack_rtl, assign_parm_adjust_stack_rtl)
3874 (assign_parm_setup_reg, assign_parms, gimplify_parameters): Use
3875 arg.pass_by_reference instead of passed_pointer.
3877 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
3879 * calls.c (emit_library_call_value_1): Merge arg and orig_arg
3880 into a single function_arg_info, updating its fields when we
3881 apply pass-by-reference and promotion semantics. Use the
3882 function_arg_info to track the mode rather than keeping it in
3883 a separate local variable.
3884 (initialize_argument_information): Likewise. Base the final
3885 arg_to_skip on this new function_arg_info rather than creating
3886 a new one from scratch.
3888 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
3890 * function.c (assign_parm_data_one): Replace passed_type,
3891 promoted_mode and named_arg with a function_arg_info field.
3892 (assign_parm_find_data_types): Remove local variables and
3893 assign directly to "data". Make data->passed_mode shadow
3894 data->arg.mode until promotion, then assign the promoted
3895 mode to data->arg.mode.
3896 (assign_parms_setup_varargs, assign_parm_find_entry_rtl)
3897 (assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl)
3898 (assign_parm_remove_parallels, assign_parm_setup_block_p)
3899 (assign_parm_setup_block, assign_parm_setup_reg)
3900 (assign_parm_setup_stack, assign_parms, gimplify_parameters): Use
3901 arg.mode instead of promoted_mode, arg.type instead of passed_type
3902 and arg.named instead of named_arg. Use data->arg for
3903 function_arg_info structures that had the field values passed_type,
3904 promoted_mode and named_arg. Base other function_arg_infos on
3905 data->arg, changing the necessary properties.
3907 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
3909 * calls.h (apply_pass_by_reference_rules): Declare.
3910 * calls.c (apply_pass_by_reference_rules): New function.
3911 * config/c6x/c6x.c (c6x_call_saved_register_used): Use it.
3912 * config/rs6000/rs6000-call.c (rs6000_parm_needs_stack): Likewise.
3913 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
3914 * function.c (assign_parm_find_data_types): Likewise.
3915 * var-tracking.c (prepare_call_arguments): Likewise.
3917 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
3919 * target.def (must_pass_in_stack): Take a function_arg_info instead
3920 of a mode and a type.
3921 * doc/tm.texi: Regenerate.
3922 * calls.h (must_pass_in_stack_var_size): Take a function_arg_info
3923 instead of a mode and a type.
3924 (must_pass_in_stack_var_size_or_pad): Likewise.
3925 * calls.c (must_pass_in_stack_var_size): Likewise.
3926 (must_pass_in_stack_var_size_or_pad): Likewise.
3927 (initialize_argument_information): Update call to
3928 targetm.calls.must_pass_in_stack.
3929 (must_pass_va_arg_on_stack): Likewise.
3930 * function.c (assign_parm_find_entry_rtl): Likewise.
3931 * targhooks.c (hook_pass_by_reference_must_pass_in_stack): Likewise.
3932 * config/alpha/alpha.c (alpha_function_arg): Likewise.
3933 (alpha_function_arg_advance): Likewise.
3934 * config/cr16/cr16.c (cr16_function_arg): Likewise.
3935 (cr16_function_arg_advance): Likewise.
3936 * config/cris/cris.c (cris_pass_by_reference): Likewise.
3937 (cris_arg_partial_bytes): Likewise.
3938 * config/iq2000/iq2000.c (iq2000_pass_by_reference): Likewise.
3939 * config/lm32/lm32.c (lm32_function_arg): Likewise.
3940 * config/mcore/mcore.c (mcore_num_arg_regs): Likewise.
3941 (mcore_function_arg, mcore_arg_partial_bytes): Likewise.
3942 * config/mips/mips.c (mips_pass_by_reference): Likewise.
3943 * config/mmix/mmix.c (mmix_function_arg_advance): Likewise.
3944 (mmix_function_arg_1, mmix_pass_by_reference): Likewise.
3945 * config/sh/sh.c (sh_pass_by_reference): Likewise.
3946 * config/stormy16/stormy16.c (xstormy16_function_arg): Likewise.
3947 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
3948 * config/arm/arm.c (arm_must_pass_in_stack): Take a function_arg_info
3949 instead of a mode and a type.
3950 * config/fr30/fr30.c (fr30_must_pass_in_stack): Likewise.
3951 (fr30_num_arg_regs): Likewise.
3952 (fr30_setup_incoming_varargs): Update calls accordingly.
3953 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
3954 (fr30_function_arg_advance): Likewise.
3955 * config/frv/frv.c (frv_must_pass_in_stack): Take a function_arg_info
3956 instead of a mode and a type.
3957 * config/gcn/gcn.c (num_arg_regs): Likewise.
3958 (gcn_function_arg, gcn_function_arg_advance): Update calls to
3959 num_arg_regs and targetm.calls.must_pass_in_stack.
3960 (gcn_arg_partial_bytes): Likewise.
3961 * config/i386/i386.c (ix86_must_pass_in_stack): Take a
3962 function_arg_info instead of a mode and a type.
3963 (classify_argument): Update call accordingly.
3964 * config/nds32/nds32.c (nds32_must_pass_in_stack): Take a
3965 function_arg_info instead of a mode and a type.
3966 * config/rs6000/rs6000-internal.h (rs6000_must_pass_in_stack):
3968 * config/rs6000/rs6000-call.c (rs6000_must_pass_in_stack): Likewise.
3969 (rs6000_parm_needs_stack): Update call accordingly.
3970 (setup_incoming_varargs): Likewise.
3972 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
3974 * target.def (callee_copies): Take a function_arg_info instead
3975 of a mode, type and named flag.
3976 * doc/tm.texi: Regenerate.
3977 * targhooks.h (hook_callee_copies_named): Take a function_arg_info
3978 instead of a mode, type and named flag.
3979 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete.
3980 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
3981 (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function.
3982 * targhooks.c (hook_callee_copies_named): Take a function_arg_info
3983 instead of a mode, type and named flag.
3984 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete.
3985 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
3986 (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function.
3987 * calls.h (reference_callee_copied): Take a function_arg_info
3988 instead of a mode, type and named flag.
3989 * calls.c (reference_callee_copied): Likewise.
3990 (initialize_argument_information): Update call accordingly.
3991 (emit_library_call_value_1): Likewise.
3992 * function.c (gimplify_parameters): Likewise.
3993 * config/aarch64/aarch64.c (TARGET_CALLEE_COPIES): Define to
3994 hook_bool_CUMULATIVE_ARGS_arg_info_false instead of
3995 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false.
3996 * config/c6x/c6x.c (c6x_callee_copies): Delete.
3997 (TARGET_CALLEE_COPIES): Define to
3998 hook_bool_CUMULATIVE_ARGS_arg_info_true instead.
3999 * config/epiphany/epiphany.c (TARGET_CALLEE_COPIES): Define to
4000 hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
4001 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
4002 * config/mips/mips.c (mips_callee_copies): Take a function_arg_info
4003 instead of a mode, type and named flag.
4004 * config/mmix/mmix.c (TARGET_CALLEE_COPIES): Define to
4005 hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
4006 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
4007 * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): Likewise.
4008 * config/msp430/msp430.c (msp430_callee_copies): Delete.
4009 (TARGET_CALLEE_COPIES): Define to
4010 hook_bool_CUMULATIVE_ARGS_arg_info_true instead.
4011 * config/pa/pa.c (pa_callee_copies): Take a function_arg_info
4012 instead of a mode, type and named flag.
4013 * config/sh/sh.c (sh_callee_copies): Likewise.
4014 * config/v850/v850.c (TARGET_CALLEE_COPIES): Define to
4015 hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
4016 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
4018 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
4020 * target.def (function_arg_advance): Take a function_arg_info instead
4021 of a mode, type and named flag.
4022 * doc/tm.texi: Regenerate.
4023 * targhooks.h (default_function_arg_advance): Take a function_arg_info
4024 instead of a mode, type and named flag.
4025 * targhooks.c (default_function_arg_advance): Likewise.
4026 * calls.c (initialize_argument_information): Update call to
4027 targetm.calls.function_arg_advance.
4028 (emit_library_call_value_1): Likewise.
4029 * dse.c (get_call_args): Likewise.
4030 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
4031 * function.c (assign_parms, gimplify_parameters): Likewise.
4032 * var-tracking.c (prepare_call_arguments): Likewise.
4033 * config/aarch64/aarch64.c (aarch64_function_arg_advance): Take a
4034 function_arg_info instead of a mode, type and named flag.
4035 (aarch64_setup_incoming_varargs): Update call accordingly.
4036 * config/alpha/alpha.c (alpha_function_arg_advance): Take a
4037 function_arg_info instead of a mode, type and named flag.
4038 (alpha_setup_incoming_varargs): Update call accordingly.
4039 * config/arc/arc.c (arc_function_arg_advance): Take a
4040 function_arg_info instead of a mode, type and named flag.
4041 (arc_setup_incoming_varargs): Update call accordingly.
4042 * config/arm/arm.c (arm_function_arg_advance): Take a
4043 function_arg_info instead of a mode, type and named flag.
4044 (cmse_func_args_or_return_in_stack): Update call accordingly.
4045 (arm_function_ok_for_sibcall): Likewise.
4046 (cmse_nonsecure_call_clear_caller_saved): Likewise.
4047 * config/avr/avr.c (avr_function_arg_advance): Take a
4048 function_arg_info instead of a mode, type and named flag.
4049 * config/bfin/bfin.c (bfin_function_arg_advance): Likewise.
4050 * config/c6x/c6x.c (c6x_function_arg_advance): Likewise.
4051 (c6x_call_saved_register_used): Update call accordingly.
4052 * config/cr16/cr16.c (cr16_function_arg_advance): Take a
4053 function_arg_info instead of a mode, type and named flag.
4054 * config/cris/cris.c (cris_function_arg_advance): Likewise.
4055 * config/csky/csky.c (csky_function_arg_advance): Likewise.
4056 (csky_setup_incoming_varargs): Update call accordingly.
4057 * config/epiphany/epiphany.c (epiphany_function_arg_advance): Take a
4058 function_arg_info instead of a mode, type and named flag.
4059 * config/fr30/fr30.c (fr30_function_arg_advance): Likewise.
4060 * config/frv/frv.c (frv_function_arg_advance): Likewise.
4061 * config/ft32/ft32.c (ft32_function_arg_advance): Likewise.
4062 * config/gcn/gcn.c (gcn_function_arg_advance): Likewise.
4063 * config/h8300/h8300.c (h8300_function_arg_advance): Likewise.
4064 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
4065 (ix86_setup_incoming_varargs): Update call accordingly.
4066 * config/ia64/ia64.c (ia64_function_arg_advance): Take a
4067 function_arg_info instead of a mode, type and named flag.
4068 (ia64_setup_incoming_varargs): Update call accordingly.
4069 * config/iq2000/iq2000.c (iq2000_function_arg_advance): Take a
4070 function_arg_info instead of a mode, type and named flag.
4071 (iq2000_expand_prologue): Update call accordingly.
4072 * config/lm32/lm32.c (lm32_function_arg_advance): Take a
4073 function_arg_info instead of a mode, type and named flag.
4074 * config/m32c/m32c.c (m32c_function_arg_advance): Likewise.
4075 * config/m32r/m32r.c (m32r_function_arg_advance): Likewise.
4076 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
4077 * config/mcore/mcore.c (mcore_function_arg_advance): Likewise.
4078 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
4080 (microblaze_expand_prologue): Update call accordingly.
4081 * config/mips/mips.c (mips_function_arg_advance): Take a
4082 function_arg_info instead of a mode, type and named flag.
4083 (mips_setup_incoming_varargs): Update call accordingly.
4084 (mips_output_args_xfer): Likewise.
4085 * config/mmix/mmix.c (mmix_function_arg_advance): Take a
4086 function_arg_info instead of a mode, type and named flag.
4087 * config/mn10300/mn10300.c (mn10300_function_arg_advance): Likewise.
4088 * config/moxie/moxie.c (moxie_function_arg_advance): Likewise.
4089 * config/msp430/msp430.c (msp430_function_arg_advance): Likewise.
4090 * config/nds32/nds32.c (nds32_function_arg_advance): Likewise.
4091 * config/nios2/nios2.c (nios2_function_arg_advance): Likewise.
4092 (nios2_setup_incoming_varargs): Update call accordingly.
4093 * config/nvptx/nvptx.c (nvptx_function_arg_advance): Take a
4094 function_arg_info instead of a mode, type and named flag.
4095 * config/or1k/or1k.c (or1k_function_arg_advance): Likewise.
4096 * config/pa/pa.c (pa_function_arg_advance): Likewise.
4097 * config/pdp11/pdp11.c (pdp11_function_arg_advance): Likewise.
4098 * config/pru/pru.c (pru_function_arg_advance): Likewise.
4099 * config/riscv/riscv.c (riscv_function_arg_advance): Likewise.
4100 (riscv_setup_incoming_varargs): Update call accordingly.
4101 * config/rl78/rl78.c (rl78_function_arg_advance): Take a
4102 function_arg_info instead of a mode, type and named flag.
4103 * config/rs6000/rs6000-internal.h (rs6000_function_arg_advance):
4105 * config/rs6000/rs6000-call.c (rs6000_function_arg_advance): Likewise.
4106 (rs6000_parm_needs_stack): Update call accordingly.
4107 * config/rx/rx.c (rx_function_arg_advance): Take a function_arg_info
4108 instead of a mode, type and named flag.
4109 * config/s390/s390.c (s390_function_arg_advance): Likewise.
4110 (s390_call_saved_register_used): Update call accordingly.
4111 * config/sh/sh.c (sh_function_arg_advance): Take a function_arg_info
4112 instead of a mode, type and named flag.
4113 (sh_output_mi_thunk): Update call accordingly.
4114 * config/sparc/sparc.c (sparc_function_arg_advance): Take a
4115 function_arg_info instead of a mode, type and named flag.
4116 * config/spu/spu.c (spu_function_arg_advance): Likewise.
4117 (spu_setup_incoming_varargs): Update call accordingly.
4118 * config/stormy16/stormy16.c (xstormy16_function_arg_advance): Take a
4119 function_arg_info instead of a mode, type and named flag.
4120 * config/tilegx/tilegx.c (tilegx_function_arg_advance): Likewise.
4121 (tilegx_setup_incoming_varargs): Update call accordingly.
4122 * config/tilepro/tilepro.c (tilepro_function_arg_advance): Take a
4123 function_arg_info instead of a mode, type and named flag.
4124 (tilegx_setup_incoming_varargs): Update call accordingly.
4125 * config/v850/v850.c (v850_function_arg_advance): Take a
4126 function_arg_info instead of a mode, type and named flag.
4127 * config/vax/vax.c (vax_function_arg_advance): Likewise.
4128 * config/visium/visium.c (visium_function_arg_advance): Likewise.
4129 (visium_setup_incoming_varargs): Update call accordingly.
4130 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Take a
4131 function_arg_info instead of a mode, type and named flag.
4133 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
4135 * target.def (function_arg, function_incoming_arg): Take a
4136 function_arg_info instead of a mode, tree and named flag.
4137 * doc/tm.texi: Regenerate.
4138 * targhooks.h (default_function_arg): Take a function_arg_info
4139 instead of a mode, tree and named flag.
4140 (default_function_incoming_arg): Likewise.
4141 * targhooks.c (default_function_arg): Likewise.
4142 (default_function_incoming_arg): Likewise.
4143 * calls.h (function_arg_info::end_marker_p): New function.
4144 (function_arg_info::end_marker): Likewise.
4145 * calls.c (prepare_call_address, initialize_argument_information)
4146 (expand_call, emit_library_call_value_1): Update calls to
4147 targetm.calls.function_arg and targetm.calls.function_incoming_arg.
4148 * dse.c: Include calls.h.
4149 (get_call_args): Update call to targetm.calls.function_arg.
4150 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
4151 * var-tracking.c (prepare_call_arguments): Likewise.
4152 * function.c (assign_parm_find_entry_rtl): Update call to
4153 targetm.calls.function_incoming_arg.
4154 * config/aarch64/aarch64.c (aarch64_function_arg): Take a
4155 function_arg_info instead of a mode, tree and named flag.
4156 * config/alpha/alpha.c (alpha_function_arg): Likewise.
4157 * config/arc/arc.c (arc_function_arg): Likewise.
4158 * config/arm/arm.c (arm_function_arg): Likewise.
4159 (cmse_func_args_or_return_in_stack): Update call accordingly.
4160 (arm_function_ok_for_sibcall): Likewise.
4161 (cmse_nonsecure_call_clear_caller_saved): Likewise.
4162 * config/avr/avr.c (avr_function_arg): Take a function_arg_info
4163 instead of a mode, tree and named flag.
4164 * config/bfin/bfin.c (bfin_function_arg): Likewise.
4165 * config/c6x/c6x.c (c6x_function_arg): Likewise.
4166 (c6x_call_saved_register_used): Update call accordingly.
4167 * config/cr16/cr16.c (cr16_function_arg): Take a function_arg_info
4168 instead of a mode, tree and named flag.
4169 * config/cris/cris.c (cris_function_arg, cris_function_incoming_arg)
4170 (cris_function_arg_1): Likewise.
4171 * config/csky/csky.c (csky_function_arg): Likewise.
4172 * config/epiphany/epiphany.c (epiphany_function_arg): Likewise.
4173 * config/fr30/fr30.c (fr30_function_arg): Likewise.
4174 * config/frv/frv.c (frv_function_arg, frv_function_incoming_arg)
4175 (frv_function_arg_1): Likewise.
4176 * config/ft32/ft32.c (ft32_function_arg): Likewise.
4177 * config/gcn/gcn.c (gcn_function_arg): Likewise.
4178 * config/h8300/h8300.c (h8300_function_arg): Likewise.
4179 * config/i386/i386.c (ix86_function_arg): Likewise.
4180 * config/ia64/ia64.c (ia64_function_arg, ia64_function_incoming_arg)
4181 (ia64_function_arg_1): Likewise.
4182 * config/iq2000/iq2000.c (iq2000_function_arg): Likewise.
4183 (iq2000_expand_prologue, iq2000_pass_by_reference): Update call
4185 * config/lm32/lm32.c (lm32_function_arg): Take a function_arg_info
4186 instead of a mode, tree and named flag.
4187 * config/m32c/m32c.c (m32c_function_arg): Likewise.
4188 * config/m32r/m32r.c (m32r_function_arg): Likewise.
4189 * config/m68k/m68k.c (m68k_function_arg): Likewise.
4190 * config/mcore/mcore.c (mcore_function_arg): Likewise.
4191 * config/microblaze/microblaze.c (microblaze_function_arg): Likewise.
4192 (microblaze_expand_prologue): Update call accordingly.
4193 * config/mips/mips.c (mips_function_arg): Take a function_arg_info
4194 instead of a mode, tree and named flag.
4195 * config/mmix/mmix.c (mmix_function_incoming_arg, mmix_function_arg)
4196 (mmix_function_arg_1): Likewise.
4197 * config/mn10300/mn10300.c (mn10300_function_arg): Likewise.
4198 * config/moxie/moxie.c (moxie_function_arg): Likewise.
4199 * config/msp430/msp430.c (msp430_function_arg): Likewise.
4200 * config/nds32/nds32.c (nds32_function_arg): Likewise.
4201 * config/nios2/nios2.c (nios2_function_arg): Likewise.
4202 * config/nvptx/nvptx.c (nvptx_function_arg): Likewise.
4203 (nvptx_function_incoming_arg): Likewise.
4204 * config/or1k/or1k.c (or1k_function_arg): Likewise.
4205 * config/pa/pa.c (pa_function_arg): Likewise.
4206 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
4207 * config/pru/pru.c (pru_function_arg): Likewise.
4208 * config/riscv/riscv.c (riscv_function_arg): Likewise.
4209 * config/rl78/rl78.c (rl78_function_arg): Likewise.
4210 * config/rs6000/rs6000-internal.h (rs6000_function_arg): Likewise.
4211 * config/rs6000/rs6000-call.c (rs6000_function_arg): Likewise.
4212 (rs6000_parm_needs_stack): Update call accordingly.
4213 * config/rx/rx.c (rx_function_arg): Take a function_arg_info
4214 instead of a mode, tree and named flag.
4215 * config/s390/s390.c (s390_function_arg): Likewise.
4216 (s390_call_saved_register_used): Update call accordingly.
4217 * config/sh/sh.c (sh_function_arg): Take a function_arg_info
4218 instead of a mode, tree and named flag.
4219 (sh_output_mi_thunk): Update call accordingly.
4220 * config/sparc/sparc.c (sparc_function_arg_1, sparc_function_arg)
4221 (sparc_function_incoming_arg): Take a function_arg_info instead of
4222 a mode, tree and named flag.
4223 * config/spu/spu.c (spu_function_arg): Likewise.
4224 * config/stormy16/stormy16.c (xstormy16_function_arg): Likewise.
4225 * config/tilegx/tilegx.c (tilegx_function_arg): Likewise.
4226 * config/tilepro/tilepro.c (tilepro_function_arg): Likewise.
4227 * config/v850/v850.c (v850_function_arg): Likewise.
4228 * config/vax/vax.c (vax_function_arg): Likewise.
4229 * config/visium/visium.c (visium_function_arg): Likewise.
4230 * config/xtensa/xtensa.c (xtensa_function_arg_1, xtensa_function_arg)
4231 (xtensa_function_incoming_arg): Likewise.
4233 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
4235 * target.def (setup_incoming_varargs): Take a function_arg_info
4236 instead of a mode and tree.
4237 * doc/tm.texi: Regenerate.
4238 * targhooks.h (default_setup_incoming_varargs): Take a
4239 function_arg_info instead of a mode and tree.
4240 * targhooks.c (default_setup_incoming_varargs): Likewise.
4241 * config/aarch64/aarch64.c (aarch64_setup_incoming_varargs): Likewise.
4242 * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise.
4243 * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
4244 * config/arm/arm.c (arm_setup_incoming_varargs): Likewise.
4245 * config/bfin/bfin.c (setup_incoming_varargs): Likewise.
4246 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
4247 * config/csky/csky.c (csky_setup_incoming_varargs): Likewise.
4248 * config/epiphany/epiphany.c (epiphany_setup_incoming_varargs):
4250 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
4251 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
4252 * config/ft32/ft32.c (ft32_setup_incoming_varargs): Likewise.
4253 * config/i386/i386.c (ix86_setup_incoming_varargs): Likewise.
4254 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
4255 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
4256 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
4257 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
4258 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
4259 * config/mips/mips.c (mips_setup_incoming_varargs): Likewise.
4260 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
4261 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
4262 * config/nds32/nds32.c (nds32_setup_incoming_varargs): Likewise.
4263 * config/nios2/nios2.c (nios2_setup_incoming_varargs): Likewise.
4264 * config/riscv/riscv.c (riscv_setup_incoming_varargs): Likewise.
4265 * config/rs6000/rs6000-internal.h (setup_incoming_varargs): Likewise.
4266 * config/rs6000/rs6000-call.c (setup_incoming_varargs): Likewise.
4267 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
4268 * config/spu/spu.c (spu_setup_incoming_varargs): Likewise.
4269 * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs): Likewise.
4270 * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs): Likewise.
4271 * config/visium/visium.c (visium_setup_incoming_varargs): Likewise.
4272 * function.c (assign_parms_setup_varargs): Update call to
4273 targetm.calls.setup_incoming_varargs.
4275 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
4277 * target.def (pass_by_reference): Take a function_arg_info instead
4278 of a mode, type and named flag.
4279 * doc/tm.texi: Regenerate.
4280 * targhooks.h (hook_pass_by_reference_must_pass_in_stack): Update
4282 (hook_bool_CUMULATIVE_ARGS_arg_info_false): Declare.
4283 * targhooks.c (hook_pass_by_reference_must_pass_in_stack): Take a
4284 function_arg_info instead of a mode, type and named flag.
4285 (hook_bool_CUMULATIVE_ARGS_arg_info_false): New function.
4286 * calls.h (pass_by_reference): Take a function_arg_info instead of a
4287 mode, type and named flag.
4288 * calls.c (pass_by_reference): Likewise.
4289 (pass_va_arg_by_reference): Update call accordingly.
4290 (initialize_argument_information): Likewise.
4291 (emit_library_call_value_1): Likewise.
4292 * function.c (assign_parm_find_data_types): Likewise.
4293 * var-tracking.c (prepare_call_arguments): Likewise.
4294 * stor-layout.c: Include calls.h.
4295 (compute_record_mode): Update call to targetm.calls.pass_by_reference.
4296 * config/aarch64/aarch64.c (aarch64_pass_by_reference): Take a
4297 function_arg_info instead of a mode, type and named flag.
4298 * config/alpha/alpha.c (alpha_pass_by_reference): Likewise.
4299 * config/arc/arc.c (arc_pass_by_reference): Likewise.
4300 * config/arm/arm.c (arm_pass_by_reference): Likewise.
4301 * config/bfin/bfin.c (bfin_pass_by_reference): Likewise.
4302 * config/c6x/c6x.c (c6x_pass_by_reference): Likewise.
4303 (c6x_call_saved_register_used): Update call to pass_by_reference.
4304 * config/cris/cris.c (cris_pass_by_reference): Take a
4305 function_arg_info instead of a mode, type and named flag.
4306 * config/epiphany/epiphany.c (epiphany_pass_by_reference): Take a
4307 function_arg_info instead of a mode, type and named flag.
4308 (epiphany_arg_partial_bytes): Update call accordingly.
4309 * config/ft32/ft32.c (ft32_pass_by_reference): Take a
4310 function_arg_info instead of a mode, type and named flag.
4311 (ft32_arg_partial_bytes): Update call accordingly.
4312 * config/i386/i386.c (ix86_pass_by_reference): Take a
4313 function_arg_info instead of a mode, type and named flag.
4314 * config/iq2000/iq2000.c (iq2000_pass_by_reference): Likewise.
4315 * config/m32c/m32c.c (m32c_pass_by_reference): Likewise.
4316 * config/m32r/m32r.c (m32r_pass_by_reference): Likewise.
4317 (m32r_return_in_memory): Update call accordingly.
4318 * config/mips/mips.c (mips_pass_by_reference): Take a
4319 function_arg_info instead of a mode, type and named flag.
4320 * config/mmix/mmix.c (mmix_pass_by_reference): Likewise.
4321 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
4322 * config/moxie/moxie.c (moxie_pass_by_reference): Likewise.
4323 (moxie_arg_partial_bytes): Update call accordingly.
4324 * config/msp430/msp430.c (msp430_pass_by_reference): Take a
4325 function_arg_info instead of a mode, type and named flag.
4326 * config/nvptx/nvptx.c (nvptx_pass_by_reference): Likewise.
4327 * config/or1k/or1k.c (or1k_pass_by_reference): Likewise.
4328 * config/pa/pa.c (pa_pass_by_reference): Likewise.
4329 * config/riscv/riscv.c (riscv_pass_by_reference): Likewise.
4330 (riscv_return_in_memory): Update call accordingly.
4331 * config/rs6000/rs6000-internal.h (rs6000_pass_by_reference): Take a
4332 function_arg_info instead of a mode, type and named flag.
4333 * config/rs6000/rs6000-call.c (rs6000_pass_by_reference): Likewise.
4334 (rs6000_parm_needs_stack): Update call to pass_by_reference.
4335 * config/s390/s390.c (s390_pass_by_reference): Take a
4336 function_arg_info instead of a mode, type and named flag.
4337 (s390_call_saved_register_used): Update call accordingly.
4338 * config/sh/sh.c (sh_pass_by_reference): Take a function_arg_info
4339 instead of a mode, type and named flag.
4340 * config/sparc/sparc.c (sparc_pass_by_reference): Likewise.
4341 * config/spu/spu.c (spu_pass_by_reference): Likewise.
4342 * config/tilegx/tilegx.c (tilegx_pass_by_reference): Likewise.
4343 * config/tilepro/tilepro.c (tilepro_pass_by_reference): Likewise.
4344 * config/v850/v850.c (v850_pass_by_reference): Likewise.
4345 * config/visium/visium.c (visium_pass_by_reference): Likewise.
4347 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
4349 * target.def (arg_partial_bytes): Take a function_arg_info instead
4350 of a mode, type and named flag.
4351 * doc/tm.texi: Regenerate.
4352 * target.h (function_arg_info): Declare.
4353 * calls.h (function_arg_info): New class.
4354 * targhooks.h (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete.
4355 (hook_int_CUMULATIVE_ARGS_arg_info_0): Declare.
4356 * targhooks.c (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete.
4357 (hook_int_CUMULATIVE_ARGS_arg_info_0): New function.
4358 * calls.c (initialize_argument_information): Update call to
4359 targetm.calls.partial_bytes.
4360 (emit_library_call_value_1): Likewise.
4361 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
4362 * function.c (assign_parm_find_entry_rtl): Likewise.
4363 * config/alpha/alpha.c (alpha_arg_partial_bytes): Take a
4364 function_arg_info instead of a mode, type and named flag.
4365 * config/arc/arc.c (arc_arg_partial_bytes): Likewise.
4366 * config/arm/arm.c (arm_arg_partial_bytes): Likewise.
4367 (cmse_func_args_or_return_in_stack): Update accordingly.
4368 * config/bfin/bfin.c (bfin_arg_partial_bytes): Take a
4369 function_arg_info instead of a mode, type and named flag.
4370 * config/cris/cris.c (cris_arg_partial_bytes): Likewise.
4371 * config/csky/csky.c (csky_arg_partial_bytes): Likewise.
4372 * config/epiphany/epiphany.c (epiphany_arg_partial_bytes): Likewise.
4373 * config/fr30/fr30.c: Include calls.h.
4374 (fr30_arg_partial_bytes): Take a function_arg_info instead of a mode,
4375 type and named flag.
4376 * config/frv/frv.c: Include calls.h.
4377 (frv_arg_partial_bytes): Take a function_arg_info instead of a mode,
4378 type and named flag.
4379 * config/ft32/ft32.c (ft32_arg_partial_bytes): Likewise.
4380 * config/gcn/gcn.c (gcn_arg_partial_bytes): Likewise.
4381 * config/ia64/ia64.c (ia64_arg_partial_bytes): Likewise.
4382 * config/iq2000/iq2000.c (iq2000_arg_partial_bytes): Likewise.
4383 * config/m32r/m32r.c (m32r_arg_partial_bytes): Likewise.
4384 * config/mcore/mcore.c (mcore_arg_partial_bytes): Likewise.
4385 * config/microblaze/microblaze.c (function_arg_partial_bytes):
4387 * config/mips/mips.c (mips_arg_partial_bytes): Likewise.
4388 * config/mn10300/mn10300.c (mn10300_arg_partial_bytes): Likewise.
4389 * config/moxie/moxie.c (moxie_arg_partial_bytes): Likewise.
4390 * config/msp430/msp430.c (msp430_arg_partial_bytes): Likewise.
4391 * config/nds32/nds32.c (nds32_arg_partial_bytes): Likewise.
4392 * config/nios2/nios2.c (nios2_arg_partial_bytes): Likewise.
4393 * config/pa/pa.c (pa_arg_partial_bytes): Likewise.
4394 * config/pru/pru.c (pru_arg_partial_bytes): Likewise.
4395 * config/riscv/riscv.c (riscv_arg_partial_bytes): Likewise.
4396 * config/rs6000/rs6000-internal.h (rs6000_arg_partial_bytes): Likewise.
4397 * config/rs6000/rs6000-call.c (rs6000_arg_partial_bytes): Likewise.
4398 (rs6000_parm_needs_stack): Update call accordingly.
4399 * config/sh/sh.c (sh_arg_partial_bytes): Take a
4400 function_arg_info instead of a mode, type and named flag.
4401 * config/sparc/sparc.c (sparc_arg_partial_bytes): Likewise.
4402 * config/v850/v850.c (v850_arg_partial_bytes): Likewise.
4404 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
4406 * calls.h (must_pass_va_arg_in_stack): Declare.
4407 * calls.c (must_pass_va_arg_in_stack): New function.
4408 * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use it.
4409 * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
4410 * config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr):
4412 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
4414 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
4416 * calls.h (pass_va_arg_by_reference): Declare.
4417 * calls.c (pass_va_arg_by_reference): New function.
4418 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Use it.
4419 * config/alpha/alpha.c (alpha_gimplify_va_arg): Likewise.
4420 * config/gcn/gcn.c (gcn_gimplify_va_arg_expr): Likewise.
4421 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
4422 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
4423 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Likewise.
4424 (mips_gimplify_va_arg_expr): Likewise.
4425 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Likewise.
4426 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
4427 * config/rs6000/rs6000-call.c (rs6000_gimplify_va_arg): Likewise.
4428 * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
4429 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
4430 * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
4431 * config/tilegx/tilegx.c (tilegx_gimplify_va_arg_expr): Likewise.
4432 * config/tilepro/tilepro.c (tilepro_gimplify_va_arg_expr): Likewise.
4433 * config/visium/visium.c (visium_gimplify_va_arg): Likewise.
4434 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
4435 * targhooks.c (std_gimplify_va_arg_expr): Likewise.
4437 2019-08-20 Richard Biener <rguenther@suse.de>
4440 * config/i386/i386-features.c (general_scalar_chain::convert_op):
4441 Use (vec_merge (vec_duplicate..)) style vector from scalar move.
4442 (convert_scalars_to_vector): Add timode_p parameter and use it
4443 to guard TImode-only operation.
4444 (pass_stv::gate): Adjust so STV runs twice for TARGET_64BIT.
4445 (pass_stv::execute): Pass down timode_p.
4447 2019-08-20 Lili Cui <lili.cui@intel.com>
4449 * common/config/i386/i386-common.c
4450 (processor_names): Add tigerlake and cooperlake.
4451 (processor_alias_table): Add tigerlake and cooperlake.
4452 * config.gcc: Add -march=tigerlake and cooperlake.
4453 * config/i386/driver-i386.c
4454 (host_detect_local_cpu): Detect tigerlake and cooperlake.
4455 Add "has_avx" to classify processor.
4456 * config/i386/i386-builtins.c (processor_model) :
4457 Add M_INTEL_COREI7_TIGERLAKE and M_INTEL_COREI7_COOPERLAKE.
4458 (arch_names_table): Add tigerlake and cooperlake.
4459 (get_builtin_code_for_version) : Handle PROCESSOR_TIGERLAKE
4460 and PROCESSOR_COOPERLAKE.
4461 * config/i386/i386-c.c
4462 (ix86_target_macros_internal): Handle tigerlake and cooperlake.
4463 * config/i386/i386-options.c
4464 (m_TIGERLAKE) : Define.
4465 (m_COOPERLAKE) : Ditto.
4466 (m_CORE_AVX512): Ditto.
4467 (processor_cost_table): Add cascadelake.
4468 (ix86_option_override_internal): Hadle PTA_MOVDIRI, PTA_MOVDIR64B.
4469 * config/i386/i386.h
4470 (ix86_size_cost) : Define TARGET_TIGERLAKE and TARGET_COOPERLAKE.
4471 (processor_type) : Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE.
4472 (PTA_MOVDIRI): Ditto.
4473 (PTA_MOVDIR64B): Ditto.
4474 (PTA_COOPERLAKE) : Ditto.
4475 (PTA_TIGERLAKE) : Ditto.
4476 (processor_type) : Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE.
4477 * doc/extend.texi: Add tigerlake and cooperlake.
4478 * doc/invoke.texi: Add tigerlake and cooperlake.
4480 2019-08-20 Gerald Pfeifer <gerald@pfeifer.com>
4482 * doc/install.texi (Specific, alpha): Remove note to use
4483 binutils 2.11.2 or later.
4485 2019-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
4488 * function.c (assign_parm_find_stack_rtl): Use larger alignment
4491 2019-08-19 Joel Hutton <Joel.Hutton@arm.com>
4493 * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow2_recip): New prototype
4494 * config/aarch64/aarch64.c (aarch64_fpconst_pow2_recip): New function
4495 * config/aarch64/aarch64.md (*aarch64_<su_optab>cvtf<fcvt_target><GPF:mode>2_mult): New pattern
4496 (*aarch64_<su_optab>cvtf<fcvt_iesize><GPF:mode>2_mult): New pattern
4497 * config/aarch64/constraints.md (Dt): New constraint
4498 * config/aarch64/predicates.md (aarch64_fpconst_pow2_recip): New predicate
4500 2019-08-19 Richard Biener <rguenther@suse.de>
4502 PR tree-optimization/91403
4503 * tree-scalar-evolution.c (follow_ssa_edge_binary): Inline
4504 cases we can handle with tail-recursion...
4505 (follow_ssa_edge_expr): ... here. Do so.
4507 2019-08-19 Kito Cheng <kito.cheng@sifive.com>
4510 * toplev.c (process_options): Check TARGET_ASAN_SHADOW_OFFSET is
4511 implemented for -fsanitize=kernel-address, and merge check logic
4512 with -fsanitize=address.
4514 2019-08-18 Iain Sandoe <iain@sandoe.co.uk>
4516 * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts
4517 for cpu and machine. Factor 64/32b builtins.
4519 2019-08-18 Gerald Pfeifer <gerald@pfeifer.com>
4521 * doc/install.texi (Specific, bfin): blackfin.uclinux.org is
4522 gone, point to sourceforge.net.
4524 2019-08-17 Gerald Pfeifer <gerald@pfeifer.com>
4526 * doc/ux.texi (User Experience Guidelines): Update reference.
4528 2019-08-17 Gerald Pfeifer <gerald@pfeifer.com>
4530 * doc/include/gpl_v3.texi (Copying): Adjust the link to "Why
4533 2019-08-16 Eric Botcazou <ebotcazou@adacore.com>
4535 * tree-sra.c (build_reconstructed_reference): Return NULL_TREE instead
4536 of NULL. Add guard for broken VIEW_CONVERT_EXPRs.
4538 2019-08-16 Martin Sebor <msebor@redhat.com>
4540 * tree.def (TYPE_SIZE): Clarify.
4541 * tree.h (TYPE_SIZE, TYPE_SIZE_UNIT, DECL_SIZE): Add comments.
4543 2019-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
4545 PR tree-optimization/91109
4546 * lra-int.h (lra_need_for_scratch_reg_p): Declare.
4547 * lra.c (lra): Use lra_need_for_scratch_reg_p.
4548 * lra-spills.c (lra_need_for_scratch_reg_p): New function.
4550 2019-08-16 Uroš Bizjak <ubizjak@gmail.com>
4552 * config/i386/mmx.md (mmxdoublemode): New mode attribute.
4553 (mmx_uavg<mode>3): Macroize expaner from mmx_uavgv8qi3 and
4554 mmx_uavgv4hi3 using MMXMODE12 mode iterator.
4555 (uavg<mode>3_ceil): New expander.
4556 * config/i386/sse.md (uavg<mode>3_ceil): Use ssedoublemode
4557 mode iterator when creating CONST1_RTX.
4558 (<sse2_avx2>_uavg<mode>3<mask_name>): Ditto.
4559 (*<sse2_avx2>_uavg<mode>3<mask_name>): Use ssedoublemode
4560 mode iterator for const1_operand predicate.
4562 2019-08-16 Richard Biener <rguenther@suse.de>
4564 * tree-scalar-evolution.c (follow_ssa_edge_expr): Declare.
4565 (follow_ssa_edge_binary): Call follow_ssa_edge_expr instead of
4567 (follow_ssa_edge_in_condition_phi_branch): Likewise.
4568 (analyze_evolution_in_loop): Likewise.
4569 (follow_ssa_edge, follow_ssa_edge_in_rhs): Inline into ...
4570 (follow_ssa_edge_expr): ... here. Refactor code.
4572 2019-08-16 Richard Biener <rguenther@suse.de>
4575 * config/i386/i386-features.c
4576 (general_scalar_chain::replace_with_subreg): Stop at memory operands.
4578 2019-08-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4581 * gensupport.c (has_subst_attribute): Error out on set_attr_alternative
4582 only if subst_name matches curr_attr string.
4584 2019-08-16 Richard Biener <rguenther@suse.de>
4586 * tree-ssa-forwprop.c (simplify_builtin_call): Do not remove
4587 stmt at gsi_p, instead replace it with a NOP removed later.
4588 (pass_forwprop::execute): Fully propagate lattice, DCE stmts
4589 that became dead because of that.
4591 2019-08-16 Aldy Hernandez <aldyh@redhat.com>
4593 * gimple-ssa-evrp-analyze.c (record_ranges_from_phis): Skip PHIs
4594 for which we can't represent a range.
4595 * ipa-cp.c (ipcp_vr_lattice::set_to_bottom): Pass type to
4597 * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
4598 Set VR_UNDEFINED if type is not supported.
4599 * tree-ssanames.c (get_range_info): Pass type to set_varying.
4600 * tree-vrp.c (value_range_base::check): Assert that a varying has
4602 (value_range_base::equal_p): Early bail for undefines.
4603 (value_range_base::set_varying): Accept a type.
4604 (value_range::set_varying): Same.
4605 (value_range_base::type): VARYING can have a type, while UNDEFINE
4607 (value_range_base::dump): Print type for VARYING nodes.
4608 (value_range_base::set): Add type to VARYING.
4609 (extract_range_from_multiplicative_op): Pass type to set_varying.
4610 (extract_range_from_binary_expr): Same.
4611 (value_range_base::intersect_helper): Same.
4612 (value_range_base::union_helper): Same.
4613 (value_range_base::normalize_symbolics): Same.
4614 (determine_value_range_1): Same.
4615 * tree-vrp.h (class value_range_base): Add type to set_varying.
4616 Add prototype for dump(void).
4617 Add prototype for supports_type_p.
4618 (class value_range): Add type to set_varying.
4619 Add prototype for dump(void).
4620 * vr-values.c (set_value_range_to_truthvalue): Pass type to
4622 (vr_values::get_lattice_entry): Set varying even if propagation
4624 Pass type to set_varying.
4625 (vr_values::get_value_range): Remove vr_const_varying.
4626 Reallocate the lattice if needed.
4627 (vr_values::update_value_range): Pass type to set_varying.
4628 (vr_values::extract_range_for_var_from_comparison_expr): Same.
4629 (vr_values::extract_range_from_binary_expr): Same.
4630 (vr_values::extract_range_from_unary_expr): Same.
4631 (vr_values::extract_range_from_cond_expr): Same.
4632 (vr_values::check_for_binary_op_overflow): Same.
4633 (vr_values::extract_range_basic): Same.
4634 (vr_values::extract_range_from_assignment): Same.
4635 (vr_values::vr_values): Increase size of num_vr_values.
4636 (vr_values::extract_range_from_phi_node): Pass type to
4639 2019-08-15 H.J. Lu <hongjiu.lu@intel.com>
4642 * config/i386/i386.c (inline_memory_move_cost): Use hard_register
4643 for costs of hard register moves.
4644 (ix86_register_move_cost): Likewise.
4645 * config/i386/i386.h (processor_costs): Move costs of hard
4646 register moves to hard_register. Add int_load, int_store,
4647 xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse,
4648 sse_load, sse_store, sse_unaligned_load and sse_unaligned_store
4649 for costs of RTL expressions.
4650 * config/i386/x86-tune-costs.h: Move costs of hard register
4651 moves to hard_register. Duplicate int_load, int_store,
4652 xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse,
4653 sse_load, sse_store for costs of RTL expressions.
4655 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
4657 * target.def (setup_incoming_vararg_bounds): Remove.
4658 * doc/tm.texi.in (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Remove.
4659 * doc/tm.texi: Regenerate.
4660 * targhooks.c (default_setup_incoming_vararg_bounds): Delete.
4661 * targhooks.h (default_setup_incoming_vararg_bounds): Likewise.
4662 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
4663 (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
4665 2019-08-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4667 MSP430: Fix lines over 80 characters long in
4668 config/msp430/*.{c,h} files
4670 * config/msp430/driver-msp430.c (msp430_select_cpu): Fix format
4671 specifier in string.
4672 (msp430_select_hwmult_lib): Split line more than 80 characters long.
4673 * config/msp430/msp430-devices.c (msp430_extract_mcu_data): Remove
4674 redundant old comment.
4675 * config/msp430/msp430-protos.h (msp430_output_aligned_decl_common):
4676 Split line more than 80 characters long.
4677 * config/msp430/msp430.c (msp430_option_override): Likewise.
4678 (msp430_return_in_memory): Likewise.
4679 (msp430_gimplify_va_arg_expr): Likewise.
4680 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise.
4681 (msp430_legitimate_constant): Likewise.
4682 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Likewise.
4683 (msp430_attr): Likewise.
4684 (msp430_data_attr): Likewise.
4685 (msp430_start_function): Likewise.
4686 (gen_prefix): Likewise.
4687 (msp430_init_sections): Likewise.
4688 (msp430_select_section): Likewise.
4689 (msp430_function_section): Likewise.
4690 (msp430_unique_section): Likewise.
4691 (msp430_output_aligned_decl_common): Likewise.
4692 (msp430_do_not_relax_short_jumps): Likewise.
4693 (msp430_init_builtins): Likewise.
4694 (msp430_expand_delay_cycles): Likewise.
4695 (msp430_expand_prologue): Likewise.
4696 (msp430_expand_epilogue): Likewise.
4697 (msp430_expand_helper): Likewise.
4698 (msp430_split_movsi): Likewise.
4699 (msp430_print_operand): Likewise.
4700 (msp430_return_addr_rtx): Likewise.
4701 (msp430x_extendhisi): Likewise.
4702 * config/msp430/msp430.h (STARTFILE_SPEC): Likewise.
4703 (ASM_SPEC): Likewise.
4704 Remove very obvious comments.
4705 (LIB_SPEC): Split line more than 80 characters long.
4706 (EH_RETURN_HANDLER_RTX): Likewise.
4707 (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
4709 2019-08-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4711 MSP430: Fix whitespace errors and incorrect indentation in
4712 config/msp430/*.{c,h} files
4714 * config/msp430/driver-msp430.c (msp430_select_cpu): Fix indentation.
4715 (msp430_select_hwmult_lib): Likewise.
4716 * config/msp430/msp430-devices.c (parse_devices_csv_1): Likewise.
4717 (msp430_extract_mcu_data): Likewise.
4718 (struct t_msp430_mcu_data): Likewise.
4719 * config/msp430/msp430.c (struct machine_function): Remove whitespace
4720 before left square bracket.
4721 (msp430_option_override): Fix indentation.
4722 (msp430_hard_regno_nregs_with_padding): Likewise.
4723 (msp430_initial_elimination_offset): Likewise.
4724 (msp430_special_register_convention_p): Remove whitespace before left
4725 square bracket and after exclamation mark.
4726 (msp430_evaluate_arg): Likewise.
4727 (msp430_callee_copies): Fix indentation.
4728 (msp430_gimplify_va_arg_expr): Likewise.
4729 (msp430_function_arg_advance): Remove whitespace before left square
4731 (reg_ok_for_addr): Likewise.
4732 (msp430_preserve_reg_p): Likewise.
4733 (msp430_compute_frame_info): Likewise.
4734 (msp430_asm_output_addr_const_extra): Add space between function name
4735 and open parenthesis.
4736 (has_section_name): Fix indentation.
4737 (msp430_attr): Remove trailing whitespace.
4738 (msp430_section_attr): Likewise.
4739 (msp430_data_attr): Likewise.
4740 (struct msp430_attribute_table): Fix comment and whitespace.
4741 (msp430_start_function): Remove whitespace before left square bracket.
4742 Add space between function name and open parenthesis.
4743 (msp430_select_section): Remove trailing whitespace.
4744 (msp430_section_type_flags): Remove trailing whitespace.
4745 (msp430_unique_section): Remove space before closing parenthesis.
4746 (msp430_output_aligned_decl_common): Change 8 spaces to a tab.
4747 (msp430_builtins): Remove whitespace before left square bracket.
4748 (msp430_init_builtins): Fix indentation.
4749 (msp430_expand_prologue): Remove whitespace before left square bracket.
4750 Remove space before closing parenthesis.
4751 (msp430_expand_epilogue): Remove whitespace before left square bracket.
4752 (msp430_split_movsi): Remove space before closing parenthesis.
4753 (helper_function_name_mappings): Fix indentation.
4754 (msp430_use_f5_series_hwmult): Fix whitespace.
4755 (use_32bit_hwmult): Likewise.
4756 (msp430_no_hwmult): Likewise.
4757 (msp430_output_labelref): Remove whitespace before left square bracket.
4758 (msp430_print_operand_raw): Likewise.
4759 (msp430_print_operand_addr): Likewise.
4760 (msp430_print_operand): Add two spaces after '.' in comment.
4761 Fix trailing whitespace.
4762 (msp430x_extendhisi): Fix indentation.
4763 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Change 8 spaces to
4765 (PC_REGNUM): Likewise.
4766 (STACK_POINTER_REGNUM): Likewise.
4767 (CC_REGNUM): Likewise.
4769 2019-08-15 Richard Biener <rguenther@suse.de>
4772 * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): New
4774 (general_scalar_chain::make_vector_copies): Use it.
4776 2019-08-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
4778 * function.c (assign_parm_setup_reg): Handle misaligned stack arguments.
4780 2019-08-15 Martin Liska <mliska@suse.cz>
4782 * tree-ssa-dce.c (propagate_necessity): We can't reach now
4783 operators with no arguments.
4784 (eliminate_unnecessary_stmts): Likewise here.
4786 2019-08-15 Uroš Bizjak <ubizjak@gmail.com>
4788 * config/i386/i386-features.c (general_scalar_chain::convert_insn)
4789 <case COMPARE>: Revert 2019-08-14 change.
4790 (convertible_comparison_p): Revert 2019-08-14 change. Return false
4791 for (TARGET_64BIT || mode != DImode).
4793 2019-08-15 Aldy Hernandez <aldyh@redhat.com>
4795 * tree-vrp.c (value_range_base::set): Merge in code from
4796 value_range_base::set_and_canonicalize.
4797 Enforce canonicalization at set time.
4798 Normalize [MIN, MAX] into VARYING and ~[MIN, MAX] into UNDEFINED.
4799 (value_range_base::set_undefined): Inline call to set().
4800 (value_range_base::set_varying): Same.
4801 (value_range_base::singleton_p): Handle VR_ANTI_RANGEs.
4802 (vrp_val_max): New argument handle_pointers.
4803 (vrp_val_min): Same.
4804 (ranges_from_anti_range): Same.
4805 (extract_range_into_wide_ints): Use tree argument instead of sign
4807 (extract_range_from_multiplicative_op): Take in tree type instead
4808 of precision and sign. Adapt function for canonicalized ranges.
4809 (extract_range_from_binary_expr): Pass type to
4810 extract_range_from_multiplicative_op.
4811 Adapt for canonicalized ranges.
4812 (extract_range_from_unary_expr): Same.
4813 (value_range_base::intersect_helper): Adjust for canonicalized
4815 (value_range_base::union_helper): Same.
4816 (value_range_base::normalize_symbolics): New.
4817 * tree-vrp.h (class value_range_base): Remove
4818 set_and_canonicalize.
4819 New prototype for normalize_symbolics.
4820 (class value_range): Remove set_and_canonicalize.
4821 (vrp_val_min): Adjust prototype.
4822 (vrp_val_max): Same.
4824 (vr_values::extract_range_for_var_from_comparison_expr): Call set
4825 instead of set_and_canonicalize.
4827 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
4830 * tree-vect-stmts.c (vectorizable_call): Check that the function
4831 is a BUILT_IN_MD function before passing it to
4832 targetm.vectorize.builtin_md_vectorized_function.
4834 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
4836 * config/aarch64/aarch64-protos.h (aarch64_sve_mode_p): Declare.
4837 * config/aarch64/aarch64.c (aarch64_sve_mode_p): New function.
4838 (aarch64_select_early_remat_modes): Use it.
4840 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
4842 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Return
4843 16 for SVE predicates even if they are fixed-length.
4845 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
4847 * config/aarch64/aarch64-sve.md (and<PRED_ALL:mode>3): Make the
4848 operand order match the MOV /Z alias.
4850 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
4852 * config/aarch64/aarch64.c (aarch64_output_sve_cnt_immediate): Take
4853 the vector pattern as an aarch64_svpattern argument. Update the
4854 overloaded caller accordingly.
4855 (aarch64_output_sve_scalar_inc_dec): Update call accordingly.
4856 (aarch64_output_sve_vector_inc_dec): Likewise.
4858 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
4860 * config/aarch64/aarch64.c (aarch64_add_offset): In the fallback
4861 multiplication case, try to compute VG * (lowest set bit) directly
4862 rather than always basing the multiplication on VG. Use
4863 expand_mult for the multiplication if we can.
4865 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
4867 * config/aarch64/aarch64-protos.h
4868 (aarch64_sve_scalar_inc_dec_immediate_p): Declare.
4869 (aarch64_sve_inc_dec_immediate_p): Rename to...
4870 (aarch64_sve_vector_inc_dec_immediate_p): ...this.
4871 (aarch64_output_sve_addvl_addpl): Take a single rtx argument.
4872 (aarch64_output_sve_scalar_inc_dec): Declare.
4873 (aarch64_output_sve_inc_dec_immediate): Rename to...
4874 (aarch64_output_sve_vector_inc_dec): ...this.
4875 * config/aarch64/aarch64.c (aarch64_sve_scalar_inc_dec_immediate_p)
4876 (aarch64_output_sve_scalar_inc_dec): New functions.
4877 (aarch64_output_sve_addvl_addpl): Remove the base and offset
4878 arguments. Only handle true ADDVL and ADDPL instructions;
4879 don't emit an INC or DEC.
4880 (aarch64_sve_inc_dec_immediate_p): Rename to...
4881 (aarch64_sve_vector_inc_dec_immediate_p): ...this.
4882 (aarch64_output_sve_inc_dec_immediate): Rename to...
4883 (aarch64_output_sve_vector_inc_dec): ...this. Update call to
4884 aarch64_sve_vector_inc_dec_immediate_p.
4885 * config/aarch64/predicates.md (aarch64_sve_scalar_inc_dec_immediate)
4886 (aarch64_sve_plus_immediate): New predicates.
4887 (aarch64_pluslong_operand): Accept aarch64_sve_plus_immediate
4888 rather than aarch64_sve_addvl_addpl_immediate.
4889 (aarch64_sve_inc_dec_immediate): Rename to...
4890 (aarch64_sve_vector_inc_dec_immediate): ...this. Update call to
4891 aarch64_sve_vector_inc_dec_immediate_p.
4892 (aarch64_sve_add_operand): Update accordingly.
4893 * config/aarch64/constraints.md (Uai): New constraint.
4894 (vsi): Update call to aarch64_sve_vector_inc_dec_immediate_p.
4895 * config/aarch64/aarch64.md (add<GPI:mode>3): Don't force the second
4896 operand into a register if it satisfies aarch64_sve_plus_immediate.
4897 (*add<GPI:mode>3_aarch64, *add<GPI:mode>3_poly_1): Add an alternative
4898 for Uai. Update calls to aarch64_output_sve_addvl_addpl.
4899 * config/aarch64/aarch64-sve.md (add<mode>3): Call
4900 aarch64_output_sve_vector_inc_dec instead of
4901 aarch64_output_sve_inc_dec_immediate.
4903 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
4905 * config/aarch64/iterators.md (UNSPEC_REVB, UNSPEC_REVH)
4906 (UNSPEC_REVW): New constants.
4907 (elem_bits): New mode attribute.
4908 (SVE_INT_UNARY): New int iterator.
4909 (optab): Handle UNSPEC_REV[BHW].
4910 (sve_int_op): New int attribute.
4911 (min_elem_bits): Handle VNx16QI and the predicate modes.
4912 * config/aarch64/aarch64-sve.md (*aarch64_sve_rev64<mode>)
4913 (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Delete.
4914 (@aarch64_pred_<SVE_INT_UNARY:optab><SVE_I:mode>): New pattern.
4915 * config/aarch64/aarch64.c (aarch64_sve_data_mode): New function.
4916 (aarch64_sve_int_mode, aarch64_sve_rev_unspec): Likewise.
4917 (aarch64_split_sve_subreg_move): Use UNSPEC_REV[BHW] instead of
4918 unspecs based on the total width of the reversed data.
4919 (aarch64_evpc_rev_local): Likewise (for SVE only). Use a
4920 reinterpret followed by a subreg on big-endian targets.
4922 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
4923 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
4925 * config/aarch64/aarch64-sve.md
4926 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Add /z
4927 alternatives in which one of the inputs is in the same register
4930 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
4932 * config/aarch64/aarch64-sve.md (*vec_extract<mode><Vel>_ext)
4933 (*aarch64_sve_ext<mode>): Add MOVPRFX alternatives.
4935 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
4937 * config/aarch64/aarch64-sve.md (*sub<SVE_F:mode>3): Remove immediate
4938 FADD and FSUB alternatives. Add a MOVPRFX alternative for FSUBR.
4940 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
4941 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
4943 * config/aarch64/aarch64-sve.md (add<SVE_I:mode>3, sub<SVE_I:mode>3)
4944 (<LOGICAL:optab><SVE_I:mode>3, *add<SVE_F:mode>3, *mul<SVE_F:mode>3)
4945 (*fabd<SVE_F:mode>3): Add more MOVPRFX alternatives.
4947 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
4948 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4950 * config/aarch64/aarch64-sve.md (*v<ASHIFT:optab><SVE_I:mode>3):
4951 Add an alternative that uses reversed shifts.
4953 2019-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4955 * config/aarch64/aarch64-cores.def (cortex-a76): Use neoversen1 tuning
4958 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
4960 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Add
4961 a commutativity marker.
4963 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
4964 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
4966 * config/aarch64/aarch64-protos.h (aarch64_prepare_sve_int_fma)
4967 (aarch64_prepare_sve_cond_int_fma): Declare.
4968 * config/aarch64/aarch64.c (aarch64_convert_mult_to_shift)
4969 (aarch64_prepare_sve_int_fma): New functions.
4970 (aarch64_prepare_sve_cond_int_fma): Likewise.
4971 * config/aarch64/aarch64-sve.md
4972 (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Add a "@" marker.
4973 (fma<SVE_I:mode>4, cond_fma<SVE_I:mode>, *cond_fma<SVE_I:mode>_2)
4974 (*cond_fma<SVE_I:mode>_4, *cond_fma<SVE_I:mode>_any, fnma<SVE_I:mode>4)
4975 (cond_fnma<SVE_I:mode>, *cond_fnma<SVE_I:mode>_2)
4976 (*cond_fnma<SVE_I:mode>_4, *cond_fnma<SVE_I:mode>_any): New patterns.
4977 (*madd<mode>): Rename to...
4978 (*fma<mode>4): ...this.
4979 (*msub<mode>): Rename to...
4980 (*fnma<mode>4): ...this.
4982 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
4983 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
4985 * config/aarch64/aarch64.c (aarch64_print_vector_float_operand):
4986 Print 2.0 naturally.
4987 (aarch64_sve_float_mul_immediate_p): Return true for 2.0.
4988 * config/aarch64/predicates.md
4989 (aarch64_sve_float_negated_arith_immediate): New predicate,
4990 renamed from aarch64_sve_float_arith_with_sub_immediate.
4991 (aarch64_sve_float_arith_with_sub_immediate): Test for both
4992 positive and negative constants.
4993 (aarch64_sve_float_arith_with_sub_operand): Redefine as a register
4994 or an aarch64_sve_float_arith_with_sub_immediate.
4995 * config/aarch64/constraints.md (vsN): Use
4996 aarch64_sve_float_negated_arith_immediate.
4997 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_I1): New int
4999 (sve_pred_fp_rhs2_immediate): New int attribute.
5000 * config/aarch64/aarch64-sve.md
5001 (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>): Use
5002 sve_pred_fp_rhs1_operand and sve_pred_fp_rhs2_operand.
5003 (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_2_const)
5004 (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_any_const)
5005 (*cond_add<SVE_F:mode>_2_const, *cond_add<SVE_F:mode>_any_const)
5006 (*cond_sub<mode>_3_const, *cond_sub<mode>_any_const): New patterns.
5008 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
5009 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
5011 * config/aarch64/aarch64-sve.md (*aarch64_cond_abd<SVE_F:mode>_2)
5012 (*aarch64_cond_abd<SVE_F:mode>_3)
5013 (*aarch64_cond_abd<SVE_F:mode>_any): New patterns.
5015 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
5016 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
5018 * config/aarch64/aarch64-sve.md (*aarch64_cond_<su>abd<mode>_2)
5019 (*aarch64_cond_<su>abd<mode>_any): New patterns.
5021 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
5022 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5024 * internal-fn.def (IFN_COND_SHL, IFN_COND_SHR): New internal functions.
5025 * internal-fn.c (FOR_EACH_CODE_MAPPING): Handle shifts.
5026 * match.pd (UNCOND_BINARY, COND_BINARY): Likewise.
5027 * optabs.def (cond_ashl_optab, cond_ashr_optab, cond_lshr_optab): New
5029 * optabs.h (create_convert_operand_from): Expand comment.
5030 * optabs.c (maybe_legitimize_operand): Allow implicit broadcasts
5031 when mapping scalar rtxes to vector operands.
5032 * config/aarch64/iterators.md (SVE_INT_BINARY): Add ashift,
5033 ashiftrt and lshiftrt.
5034 (sve_int_op, sve_int_op_rev, sve_pred_int_rhs2_operand): Handle them.
5035 * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_2_const)
5036 (*cond_<optab><mode>_any_const): New patterns.
5038 2019-08-15 Martin Liska <mliska@suse.cz>
5041 * cgraph.c (cgraph_node::remove): When setting
5042 n->origin = NULL for all nested functions, reset
5045 2019-08-15 Martin Liska <mliska@suse.cz>
5047 * cgraph.c (cgraph_node::verify_node): Verify origin, nested
5050 2019-08-15 Martin Liska <mliska@suse.cz>
5053 * passes.c (order): Remove.
5054 (uid_hash_t): Likewise).
5055 (remove_cgraph_node_from_order): Remove from set
5056 of pointers (cgraph_node *).
5057 (insert_cgraph_node_to_order): New.
5058 (duplicate_cgraph_node_to_order): New.
5059 (do_per_function_toporder): Register all 3 cgraph hooks.
5060 Skip removed_nodes now as we know about all of them.
5062 2019-08-14 Uroš Bizjak <ubizjak@gmail.com>
5064 * config/i386/i386-expand.c (ix86_expand_vector_init_one_nonzero)
5065 <case E_V8QImode>: Use vector_set path for
5066 TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
5067 (ix86_expand_vector_init_one_var) <case E_V8QImode>:
5068 Do not widen for TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
5070 2019-08-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
5072 * builtins.c (expand_builtin_init_descriptor): Set memory alignment.
5074 2019-08-14 Martin Sebor <msebor@redhat.com>
5076 PR tree-optimization/91294
5077 * tree-ssa-strlen.c (handle_store): Avoid treating lower bound of
5078 source length as exact.
5080 2019-08-14 Christophe Lyon <christophe.lyon@linaro.org>
5082 * doc/extend.texi: Add "noinit" attribute documentation.
5083 * doc/sourcebuild.texi: Add noinit effective target documentation.
5084 * varasm.c (default_section_type_flags): Add support for "noinit"
5086 (default_elf_select_section): Add support for "noinit" attribute.
5087 * config/msp430/msp430.c (msp430_attribute_table): Remove
5090 2019-08-14 Richard Biener <rguenther@suse.de>
5091 Uroš Bizjak <ubizjak@gmail.com>
5094 * config/i386/i386-features.h (scalar_chain::scalar_chain): Add
5096 (scalar_chain::smode): New member.
5097 (scalar_chain::vmode): Likewise.
5098 (dimode_scalar_chain): Rename to...
5099 (general_scalar_chain): ... this.
5100 (general_scalar_chain::general_scalar_chain): Take mode arguments.
5101 (timode_scalar_chain::timode_scalar_chain): Initialize scalar_chain
5102 base with TImode and V1TImode.
5103 * config/i386/i386-features.c (scalar_chain::scalar_chain): Adjust.
5104 (general_scalar_chain::vector_const_cost): Adjust for SImode
5106 (general_scalar_chain::compute_convert_gain): Likewise. Add
5107 {S,U}{MIN,MAX} support.
5108 (general_scalar_chain::replace_with_subreg): Use vmode/smode.
5109 (general_scalar_chain::make_vector_copies): Likewise. Handle
5110 non-DImode chains appropriately.
5111 (general_scalar_chain::convert_reg): Likewise.
5112 (general_scalar_chain::convert_op): Likewise.
5113 (general_scalar_chain::convert_insn): Likewise. Add
5114 fatal_insn_not_found if the result is not recognized.
5115 (convertible_comparison_p): Pass in the scalar mode and use that.
5116 (general_scalar_to_vector_candidate_p): Likewise. Rename from
5117 dimode_scalar_to_vector_candidate_p. Add {S,U}{MIN,MAX} support.
5118 (scalar_to_vector_candidate_p): Remove by inlining into single
5120 (general_remove_non_convertible_regs): Rename from
5121 dimode_remove_non_convertible_regs.
5122 (remove_non_convertible_regs): Remove by inlining into single caller.
5123 (convert_scalars_to_vector): Handle SImode and DImode chains
5124 in addition to TImode chains.
5125 * config/i386/i386.md (<maxmin><MAXMIN_IMODE>3): New expander.
5126 (*<maxmin><MAXMIN_IMODE>3_1): New insn-and-split.
5127 (*<maxmin>di3_doubleword): Likewise.
5129 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5130 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
5132 * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2)
5133 (*cond_bic<mode>_any): New patterns.
5135 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5137 * config/aarch64/aarch64.c (aarch64_print_operand): Allow %e to
5138 take the equivalent mask, as well as a bit count.
5139 * config/aarch64/predicates.md (aarch64_sve_uxtb_immediate)
5140 (aarch64_sve_uxth_immediate, aarch64_sve_uxt_immediate)
5141 (aarch64_sve_pred_and_operand): New predicates.
5142 * config/aarch64/iterators.md (sve_pred_int_rhs2_operand): New
5144 * config/aarch64/aarch64-sve.md
5145 (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Use it.
5146 (*cond_uxt<mode>_2, *cond_uxt<mode>_any): New patterns.
5148 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5150 * config/aarch64/aarch64-sve.md
5151 (*cond_<SVE_COND_FCVTI:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>)
5152 (*cond_<SVE_COND_ICVTF:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>):
5155 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5156 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
5158 * config/aarch64/aarch64-sve.md
5159 (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_2): New pattern.
5160 (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_any): Likewise.
5162 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5163 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
5165 * config/aarch64/aarch64-sve.md
5166 (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_2): New pattern.
5167 (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_any): Likewise.
5169 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5171 * config/aarch64/iterators.md (SVE_COND_FP_ABS_CMP): New iterator.
5172 * config/aarch64/aarch64-sve.md (*aarch64_pred_fac<cmp_op><mode>):
5175 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5176 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
5178 * config/aarch64/aarch64-sve.md (*aarch64_sel_dup<mode>): New pattern.
5180 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5181 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
5183 * config/aarch64/aarch64.c (aarch64_bit_representation): New function.
5184 (aarch64_print_vector_float_operand): Also handle 8-bit floats.
5185 (aarch64_print_operand): Add support for %I.
5186 (aarch64_sve_dup_immediate_p): Handle scalars as well as vectors.
5187 Bitcast floating-point constants to the corresponding integer constant.
5188 (aarch64_float_const_representable_p): Handle vectors as well
5190 (aarch64_expand_sve_vcond): Make sure that the operands are valid
5191 for the new vcond_mask_<mode><vpred> expander.
5192 * config/aarch64/predicates.md (aarch64_sve_dup_immediate): Also
5193 test aarch64_float_const_representable_p.
5194 (aarch64_sve_reg_or_dup_imm): New predicate.
5195 * config/aarch64/aarch64-sve.md (vec_extract<vpred><Vel>): Use
5196 gen_vcond_mask_<mode><vpred> instead of
5197 gen_aarch64_sve_dup<mode>_const.
5198 (vcond_mask_<mode><vpred>): Turn into a define_expand that
5199 accepts aarch64_sve_reg_or_dup_imm and aarch64_simd_reg_or_zero
5200 for operands 1 and 2 respectively. Force operand 2 into a
5201 register if operand 1 is a register. Fold old define_insn...
5202 (aarch64_sve_dup<mode>_const): ...and this define_insn...
5203 (*vcond_mask_<mode><vpred>): ...into this new pattern. Handle
5204 floating-point constants that can be moved as integers. Add
5205 alternatives for MOV /M and FMOV /M.
5206 (vcond<mode><v_int_equiv>, vcondu<mode><v_int_equiv>)
5207 (vcond<mode><v_fp_equiv>): Accept nonmemory_operand for operands
5208 1 and 2 respectively.
5209 * config/aarch64/constraints.md (Ufc): Handle vectors as well
5211 (vss): New constraint.
5213 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5215 * config/aarch64/predicates.md (aarch64_sve_float_maxmin_immediate)
5216 (aarch64_sve_float_maxmin_operand): New predicates.
5217 * config/aarch64/constraints.md (vsB): New constraint.
5219 * config/aarch64/iterators.md (sve_pred_fp_rhs2_operand): Use
5220 aarch64_sve_float_maxmin_operand for UNSPEC_COND_FMAXNM and
5222 * config/aarch64/aarch64-sve.md (<maxmin_uns><SVE_F:mode>3):
5223 Use aarch64_sve_float_maxmin_operand for operand 2.
5224 (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Likewise.
5225 Add alternatives for the constant forms.
5227 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5229 * config/aarch64/constraints.md (vsb): New constraint.
5230 (vsm): Generalize description.
5231 * config/aarch64/iterators.md (SVE_INT_BINARY_IMM): New code
5233 (sve_imm_con): Handle smax, smin, umax and umin.
5234 (sve_imm_prefix): New code attribute.
5235 * config/aarch64/predicates.md (aarch64_sve_vsb_immediate)
5236 (aarch64_sve_vsb_operand): New predicates.
5237 (aarch64_sve_mul_immediate): Rename to...
5238 (aarch64_sve_vsm_immediate): ...this.
5239 (aarch64_sve_mul_operand): Rename to...
5240 (aarch64_sve_vsm_operand): ...this.
5241 * config/aarch64/aarch64-sve.md (mul<mode>3): Generalize to...
5242 (<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...this.
5243 (*mul<mode>3, *post_ra_mul<mode>3): Generalize to...
5244 (*<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3)
5245 (*post_ra_<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...these and
5246 add movprfx support for the immediate alternatives.
5247 (<su><maxmin><mode>3, *<su><maxmin><mode>3): Delete in favor
5249 (*<SVE_INT_BINARY_SD:optab><SVE_SDI:mode>3): Fix incorrect predicate
5252 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5254 * config/aarch64/predicates.md (aarch64_simd_imm_one): New predicate.
5255 * config/aarch64/aarch64-sve.md (*cnot<mode>): New pattern.
5256 (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
5258 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5260 * config/aarch64/iterators.md (SVE_INT_UNARY): Add clrsb and clz.
5261 (optab, sve_int_op): Handle them.
5262 * config/aarch64/aarch64-sve.md: Expand comment.
5264 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5266 * config/aarch64/predicates.md (const_1_to_3_operand): New predicate.
5267 * config/aarch64/aarch64-sve.md (*aarch64_adr_uxtw)
5268 (*aarch64_adr<mode>_shift, *aarch64_adr_shift_uxtw): New patterns.
5270 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5272 * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_eor)
5273 (aarch64_expand_sve_const_pred_trn): New functions.
5274 (aarch64_expand_sve_const_pred_1): Add a recurse_p parameter and
5275 use the above functions when the parameter is true.
5276 (aarch64_expand_sve_const_pred): Update call accordingly.
5277 * config/aarch64/aarch64-sve.md (*aarch64_sve_<perm_insn><mode>):
5279 (@aarch64_sve_<perm_insn><mode>): ...this.
5281 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5283 * config/aarch64/aarch64-protos.h (aarch64_sve_same_pred_for_ptest_p):
5285 * config/aarch64/aarch64.c (aarch64_sve_same_pred_for_ptest_p)
5286 (aarch64_sve_emit_int_cmp): New functions.
5287 (aarch64_convert_sve_data_to_pred): Use aarch64_sve_emit_int_cmp.
5288 (aarch64_sve_cmp_operand_p, aarch64_emit_sve_ptrue_op_cc): Delete.
5289 (aarch64_expand_sve_vec_cmp_int): Use aarch64_sve_emit_int_cmp.
5290 * config/aarch64/aarch64.md (UNSPEC_MERGE_PTRUE): Delete.
5291 (UNSPEC_PRED_Z): New unspec.
5292 (set_clobber_cc_nzc): Delete.
5293 * config/aarch64/aarch64-sve.md: Add a block comment about
5295 (*cmp<SVE_INT_CMP:cmp_op><mode>): Rename to...
5296 (@aarch64_pred_cmp<SVE_INT_CMP:cmp_op><mode>): ...this, replacing
5297 the old pattern with that name. Use UNSPEC_PRED_Z instead of
5299 (*cmp<SVE_INT_CMP:cmp_op><mode>_cc): Use UNSPEC_PRED_Z instead of
5300 UNSPEC_MERGE_PTRUE. Use aarch64_sve_same_pred_for_ptest_p to
5301 check for compatible predicates.
5302 (*cmp<cmp_op><SVE_INT_CMP:mode>_ptest): Likewise.
5303 (*cmp<cmp_op><mode>_and): Match a known-ptrue UNSPEC_PRED_Z instead
5304 of UNSPEC_MERGE_PTRUE. Split into the new form of predicated
5307 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5309 * config/aarch64/aarch64.md (UNSPEC_PRED_X): New unspec.
5310 * config/aarch64/aarch64-sve.md: Add a section describing it.
5311 (@aarch64_pred_mov<mode>, @aarch64_pred_mov<mode>)
5312 (<SVE_INT_UNARY:optab><mode>2, *<SVE_INT_UNARY:optab><mode>2)
5313 (aarch64_<su>abd<mode>_3, mul<SVE_I:mode>3, *mul<SVE_I:mode>3)
5314 (<su>mul<mode>3_highpart, *<su>mul<mode>3_highpart)
5315 (<SVE_INT_BINARY:optab><mode>3, *<SVE_INT_BINARY:optab><mode>3)
5316 (*bic<mode>3, v<ASHIFT:optab><mode>3, *v<ASHIFT:optab><mode>3)
5317 (<su><maxmin><mode>3, *<su><maxmin><mode>3, *madd<SVE_I:mode>)
5318 (*msub<SVE_I:mode>3, *aarch64_sve_rev64<mode>)
5319 (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Use
5320 UNSPEC_PRED_X instead of UNSPEC_MERGE_PTRUE.
5321 * config/aarch64/aarch64-sve2.md (<u>avg<mode>3_floor)
5322 (<u>avg<mode>3_ceil, *<sur>h<addsub><mode>): Likewise.
5323 * config/aarch64/aarch64.c (aarch64_split_sve_subreg_move)
5324 (aarch64_evpc_rev_local): Update accordingly.
5326 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5328 * config/aarch64/iterators.md (VNx4SI_ONLY, VNx2DF_ONLY): New mode
5330 (SVE_BHSI, SVE_SDI): Tweak comment.
5331 (SVE_HSDI): Likewise. Fix definition.
5332 (SVE_SDF): New mode iterator.
5333 (elem_bits): New mode attribute.
5334 (SVE_COND_FCVT): New int iterator.
5335 * config/aarch64/aarch64-sve.md
5336 (*<SVE_COND_ICVTF:optab>v16hsf<SVE_HSDI:mode>2)
5337 (*<SVE_COND_ICVTF:optab>vnx4sf<SVE_SDI:mode>2)
5338 (*<SVE_COND_ICVTF:optab>vnx2df<SVE_SDI:mode>2): Merge into...
5339 (*aarch64_sve_<SVE_COND_ICVTF:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>)
5340 (*aarch64_sve_<SVE_COND_ICVTF:optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
5341 ...these new patterns.
5342 (*<SVE_COND_FCVTI:optab><SVE_HSDI:mode>vnx8hf2)
5343 (*<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx4sf2)
5344 (aarch64_sve_<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx2df2):
5346 (*aarch64_sve_<SVE_COND_FCVTI:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>)
5347 (aarch64_sve_<SVE_COND_FCVTI:optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>):
5348 ...these new patterns.
5349 (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Update accordingly.
5350 (*trunc<Vwide><SVE_SDF:mode>2): Replace with...
5351 (*aarch64_sve_<SVE_COND_FCVT:optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>):
5352 ...this new pattern.
5353 (aarch64_sve_extend<SVE_HSDF:mode><Vwide>2): Replace with...
5354 (aarch64_sve_<SVE_COND_FCVT:optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>):
5355 ...this new pattern.
5356 (vec_unpacks_<perm_hilo>_<mode>): Update accordingly.
5358 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5360 * config/aarch64/aarch64.md (UNSPEC_FLOAT_CONVERT): Delete.
5361 * config/aarch64/iterators.md (UNSPEC_COND_FCVT, UNSPEC_COND_FCVTZS)
5362 (UNSPEC_COND_FCVTZU, UNSPEC_COND_SCVTF, UNSPEC_COND_UCVTF): New
5364 (optab, su): Handle them.
5365 (SVE_COND_FCVTI, SVE_COND_ICVTF): New int iterators.
5366 * config/aarch64/aarch64-sve.md
5367 (<fix_trunc_optab><SVE_F:mode><v_int_equiv>2): Replace with...
5368 (<SVE_COND_FCVTI:optab><SVE_F:mode><v_int_equiv>2): ...this.
5369 (*<fix_trunc_optab>v16hsf<:SVE_HSDImode>2): Replace with...
5370 (*<SVE_COND_FCVTI:optab>v16hsf<SVE_F:mode>2): ...this.
5371 (*<fix_trunc_optab>vnx4sf<SVE_SDI:mode>2): Replace with...
5372 (*<SVE_COND_FCVTI:optab>vnx4sf<SVE_SDI:mode>2): ...this.
5373 (*<fix_trunc_optab>vnx2df<SVE_SDI:mode>2): Replace with...
5374 (*<SVE_COND_FCVTI:optab>vnx2df<SVE_SDI:mode>2): ...this.
5375 (vec_pack_<su>fix_trunc_vnx2df): Use SVE_COND_FCVTI instead of
5377 (<FLOATUORS:optab><v_int_equiv><SVE_F:mode>2): Replace with...
5378 (<SVE_COND_ICVTF:optab><v_int_equiv><SVE_F:mode>2): ...this.
5379 (*<FLOATUORS:optab><SVE_HSDI:mode>vnx8hf2): Replace with...
5380 (*<SVE_COND_ICVTF:optab><SVE_HSDI:mode>vnx8hf2): ...this.
5381 (*<FLOATUORS:optab><SVE_SDI:mode>vnx4sf2): Replace with...
5382 (*<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx4sf2): ...this.
5383 (aarch64_sve_<FLOATUORS:optab><SVE_SDI:mode>vnx2df2): Replace with...
5384 (aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2): ...this.
5385 (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Pass a GP strictness
5386 operand to aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2.
5387 (vec_pack_trunc_<SVE_HSF:Vwide>, *trunc<Vwide><SVE_HSF:mode>2)
5388 (aarch64_sve_extend<mode><Vwide>2): Use UNSPEC_COND_FCVT instead
5389 of UNSPEC_FLOAT_CONVERT.
5390 (vec_unpacks_<perm_hilo>_<mode>): Pass a GP strictness operand to
5391 aarch64_sve_extend<mode><Vwide>2.
5393 2019-08-14 Richard Biener <rguenther@suse.de>
5396 * config/i386/i386-features.c
5397 (dimode_scalar_chain::compute_convert_gain): Compute and dump
5398 individual instruction gain. Fix reg-reg copy GRP cost. Use
5399 ix86_cost->sse_op for vector instruction costs.
5401 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5403 * config/aarch64/iterators.md (UNSPEC_COND_FCMUO): New unspec.
5404 (cmp_op): Handle it.
5405 (SVE_COND_FP_CMP): Rename to...
5406 (SVE_COND_FP_CMP_I0): ...this.
5407 (SVE_FP_CMP): Remove.
5408 * config/aarch64/aarch64-sve.md
5409 (*fcm<SVE_FP_CMP:cmp_op><SVE_F:mode>): Replace with...
5410 (*fcm<SVE_COND_FP_CMP_I0:cmp_op><SVE_F:mode>): ...this new pattern,
5411 using unspecs to represent the comparison.
5412 (*fcmuo<SVE_F:mode>): Use UNSPEC_COND_FCMUO.
5413 (*fcm<cmp_op><mode>_and_combine, *fcmuo<mode>_and_combine): Update
5415 * config/aarch64/aarch64.c (aarch64_emit_sve_ptrue_op): Delete.
5416 (aarch64_unspec_cond_code): Move after integer code. Handle
5418 (aarch64_emit_sve_predicated_cond): Replace with...
5419 (aarch64_emit_sve_fp_cond): ...this new function.
5420 (aarch64_emit_sve_or_conds): Replace with...
5421 (aarch64_emit_sve_or_fp_conds): ...this new function.
5422 (aarch64_emit_sve_inverted_cond): Replace with...
5423 (aarch64_emit_sve_invert_fp_cond): ...this new function.
5424 (aarch64_expand_sve_vec_cmp_float): Update accordingly.
5426 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5428 * config/aarch64/iterators.md (SVE_HSD): New mode iterator.
5429 (V_FP_EQUIV, v_fp_equiv): Handle VNx8HI and VNx8HF.
5430 * config/aarch64/aarch64-sve.md (vcond<mode><v_fp_equiv>): Use
5431 SVE_HSD instead of SVE_SD.
5433 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5434 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
5436 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_REG): New int
5438 (sve_pred_fp_rhs1_operand, sve_pred_fp_rhs1_operand): New int
5440 * config/aarch64/aarch64-sve.md (add<SVE_F:mode>3, sub<SVE_F:mode>3)
5441 (mul<SVE_F:mode>3, div<SVE_F:mode>3)
5442 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Merge into...
5443 (<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this new expander.
5444 (*div<SVE_F:mode>3): Generalize to...
5445 (*<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this.
5447 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5448 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
5450 * config/aarch64/aarch64.md (SVE_RELAXED_GP, SVE_STRICT_GP): New
5452 * config/aarch64/predicates.md (aarch64_sve_gp_strictness): New
5454 * config/aarch64/aarch64-protos.h (aarch64_sve_pred_dominates_p):
5456 * config/aarch64/aarch64.c (aarch64_sve_pred_dominates_p): New
5458 * config/aarch64/aarch64-sve.md: Add a block comment about the
5459 handling of predicated FP operations.
5460 (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2, add<SVE_F:mode>3)
5461 (sub<SVE_F:mode>3, mul<SVE_F:mode>3, div<SVE_F:mode>3)
5462 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3)
5463 (<SVE_COND_FP_MAXMIN_PUBLIC:maxmin_uns><SVE_F:mode>3)
5464 (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): Add an SVE_RELAXED_GP
5466 (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>)
5467 (cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>): Add an SVE_STRICT_GP
5469 (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2)
5470 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_2)
5471 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_3)
5472 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_any)
5473 (*fabd<SVE_F:mode>3, *div<SVE_F:mode>3)
5474 (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3)
5475 (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4)
5476 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_2)
5477 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_4)
5478 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Match the
5479 strictness operands. Use aarch64_sve_pred_dominates_p to check
5480 whether the predicate on the conditional operation is suitable
5481 for merging. Split patterns into the canonical equal-predicate form.
5482 (*add<SVE_F:mode>3, *sub<SVE_F:mode>3, *mul<SVE_F:mode>3): Likewise.
5483 Restrict the unpredicated alternatives to SVE_RELAXED_GP.
5485 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5486 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
5488 * config/aarch64/aarch64-sve.md (add<mode>3, *add<mode>3)
5489 (sub<mode>3, *sub<mode>3, *fabd<mode>3, mul<mode>3, *mul<mode>3)
5490 (div<mode>3, *div<mode>3): Use SVE_COND_FP_* unspecs instead of
5492 (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_3)
5493 (*cond_<optab><mode>_any): Add the predicate to the SVE_COND_FP_*
5496 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5497 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
5499 * config/aarch64/aarch64-sve.md (bic<mode>3): Rename to...
5500 (*bic<SVE_I:mode>3): ...this. Match the form that an SVE inverse
5501 actually has, rather than relying on REG_EQUAL notes.
5502 Make the insn operand order match the SVE operand order.
5503 (*<nlogical><PRED_ALL:mode>3): Make the insn operand order match
5504 the SVE operand order.
5506 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5508 * config/aarch64/aarch64.c (aarch64_target_reg): New function.
5509 (aarch64_emit_set_immediate): Likewise.
5510 (aarch64_ptrue_reg): Build a VNx16BI constant and then bitcast it.
5511 (aarch64_pfalse_reg): Likewise.
5512 (aarch64_convert_sve_data_to_pred): New function.
5513 (aarch64_sve_move_pred_via_while): Take an optional target register
5514 and the required register mode.
5515 (aarch64_expand_sve_const_pred_1): New function.
5516 (aarch64_expand_sve_const_pred): Likewise.
5517 (aarch64_expand_mov_immediate): Build an all-true predicate
5518 if the significant bits of the immediate are all true. Use
5519 aarch64_expand_sve_const_pred for all compile-time predicate constants.
5520 (aarch64_mov_operand_p): Force predicate constants to be VNx16BI
5521 before register allocation.
5522 * config/aarch64/aarch64-sve.md (*vec_duplicate<mode>_reg): Use
5523 a VNx16BI PTRUE when splitting the memory alternative.
5524 (vec_duplicate<mode>): Update accordingly.
5525 (*pred_cmp<cmp_op><mode>): Rename to...
5526 (@aarch64_pred_cmp<cmp_op><mode>): ...this.
5528 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
5530 * config/aarch64/aarch64-protos.h (aarch64_ptrue_all): Declare.
5531 * config/aarch64/aarch64.c (aarch64_ptrue_all): New function.
5532 * config/aarch64/aarch64.md (UNSPEC_PTEST_PTRUE): Delete.
5533 (UNSPEC_PTEST): New unspec.
5534 (SVE_MAYBE_NOT_PTRUE, SVE_KNOWN_PTRUE): New constants.
5535 * config/aarch64/iterators.md (data_bytes): New mode attribute.
5536 * config/aarch64/predicates.md (aarch64_sve_ptrue_flag): New predicate.
5537 * config/aarch64/aarch64-sve.md: Add a new section describing the
5538 handling of UNSPEC_PTEST.
5539 (pred_<LOGICAL:optab><PRED_ALL:mode>3): Rename to...
5540 (@aarch64_pred_<LOGICAL:optab><PRED_ALL:mode>_z): ...this.
5541 (ptest_ptrue<mode>): Replace with...
5542 (aarch64_ptest<mode>): ...this new pattern.
5543 (cbranch<mode>4): Update after above changes.
5544 (*<LOGICAL:optab><PRED_ALL:mode>3_cc): Use UNSPEC_PTEST instead of
5546 (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_cc): Likewise.
5547 (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_ptest): Likewise.
5548 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): Likewise.
5550 2019-08-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
5553 * builtins.c (builtin_with_linkage_p): New function.
5554 * builtins.h (builtin_with_linkage_p): New function.
5555 * symtab.c (write_symbol): Remove redundant assert.
5556 * lto-streamer-out.c (symtab_node::output_to_lto_symbol_table_p):
5557 Remove FIXME and use builtin_with_linkage_p.
5559 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
5562 * tree-core.h (function_decl::function_code): Change type to
5564 * tree.h (DECL_FUNCTION_CODE): Rename old definition to...
5565 (DECL_UNCHECKED_FUNCTION_CODE): ...this.
5566 (DECL_BUILT_IN_CLASS): Make an rvalue macro only.
5567 (DECL_FUNCTION_CODE): New function. Assert that the built-in class
5569 (DECL_MD_FUNCTION_CODE, DECL_FE_FUNCTION_CODE): New functions.
5570 (set_decl_built_in_function, copy_decl_built_in_function): Likewise.
5571 (fndecl_built_in_p): Change the type of the "name" argument to
5573 * builtins.c (expand_builtin): Move DECL_FUNCTION_CODE use
5574 after check for DECL_BUILT_IN_CLASS.
5575 * cgraphclones.c (build_function_decl_skip_args): Use
5576 set_decl_built_in_function.
5577 * ipa-param-manipulation.c (ipa_modify_formal_parameters): Likewise.
5578 * ipa-split.c (split_function): Likewise.
5579 * langhooks.c (add_builtin_function_common): Likewise.
5580 * omp-simd-clone.c (simd_clone_create): Likewise.
5581 * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise.
5582 * config/darwin.c (darwin_init_cfstring_builtins): Likewise.
5583 (darwin_fold_builtin): Use DECL_MD_FUNCTION_CODE instead of
5585 * fold-const.c (operand_equal_p): Compare DECL_UNCHECKED_FUNCTION_CODE
5586 instead of DECL_FUNCTION_CODE.
5587 * lto-streamer-out.c (hash_tree): Use DECL_UNCHECKED_FUNCTION_CODE
5588 instead of DECL_FUNCTION_CODE.
5589 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise.
5590 * print-tree.c (print_node): Use DECL_MD_FUNCTION_CODE when
5591 printing DECL_BUILT_IN_MD. Handle DECL_BUILT_IN_FRONTEND.
5592 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin)
5593 (aarch64_fold_builtin, aarch64_gimple_fold_builtin): Use
5594 DECL_MD_FUNCTION_CODE instead of DECL_FUNCTION_CODE.
5595 * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise.
5596 * config/alpha/alpha.c (alpha_expand_builtin, alpha_fold_builtin):
5597 (alpha_gimple_fold_builtin): Likewise.
5598 * config/arc/arc.c (arc_expand_builtin): Likewise.
5599 * config/arm/arm-builtins.c (arm_expand_builtin): Likewise.
5600 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
5601 * config/avr/avr.c (avr_expand_builtin, avr_fold_builtin): Likewise.
5602 * config/bfin/bfin.c (bfin_expand_builtin): Likewise.
5603 * config/c6x/c6x.c (c6x_expand_builtin): Likewise.
5604 * config/frv/frv.c (frv_expand_builtin): Likewise.
5605 * config/gcn/gcn.c (gcn_expand_builtin_1): Likewise.
5606 (gcn_expand_builtin): Likewise.
5607 * config/i386/i386-builtins.c (ix86_builtin_reciprocal): Likewise.
5608 (fold_builtin_cpu): Likewise.
5609 * config/i386/i386-expand.c (ix86_expand_builtin): Likewise.
5610 * config/i386/i386.c (ix86_fold_builtin): Likewise.
5611 (ix86_gimple_fold_builtin): Likewise.
5612 * config/ia64/ia64.c (ia64_fold_builtin): Likewise.
5613 (ia64_expand_builtin): Likewise.
5614 * config/iq2000/iq2000.c (iq2000_expand_builtin): Likewise.
5615 * config/mips/mips.c (mips_expand_builtin): Likewise.
5616 * config/msp430/msp430.c (msp430_expand_builtin): Likewise.
5617 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
5618 * config/nios2/nios2.c (nios2_expand_builtin): Likewise.
5619 * config/nvptx/nvptx.c (nvptx_expand_builtin): Likewise.
5620 * config/pa/pa.c (pa_expand_builtin): Likewise.
5621 * config/pru/pru.c (pru_expand_builtin): Likewise.
5622 * config/riscv/riscv-builtins.c (riscv_expand_builtin): Likewise.
5623 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5625 * config/rs6000/rs6000-call.c (htm_expand_builtin): Likewise.
5626 (altivec_expand_dst_builtin, altivec_expand_builtin): Likewise.
5627 (rs6000_gimple_fold_builtin, rs6000_expand_builtin): Likewise.
5628 * config/rs6000/rs6000.c (rs6000_builtin_md_vectorized_function)
5629 (rs6000_builtin_reciprocal): Likewise.
5630 * config/rx/rx.c (rx_expand_builtin): Likewise.
5631 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
5632 * config/s390/s390.c (s390_expand_builtin): Likewise.
5633 * config/sh/sh.c (sh_expand_builtin): Likewise.
5634 * config/sparc/sparc.c (sparc_expand_builtin): Likewise.
5635 (sparc_fold_builtin): Likewise.
5636 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
5637 * config/spu/spu.c (spu_expand_builtin): Likewise.
5638 * config/stormy16/stormy16.c (xstormy16_expand_builtin): Likewise.
5639 * config/tilegx/tilegx.c (tilegx_expand_builtin): Likewise.
5640 * config/tilepro/tilepro.c (tilepro_expand_builtin): Likewise.
5641 * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
5642 (xtensa_expand_builtin): Likewise.
5644 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
5647 * attribs.c (decl_attributes): Check the DECL_BUILT_IN_CLASS
5648 before the DECL_FUNCTION_CODE.
5649 * calls.c (maybe_warn_alloc_args_overflow): Use fndecl_built_in_p
5650 to check for a BUILT_IN_ALLOCA call.
5651 * ipa-cp.c (ipa_get_indirect_edge_target_1): Likewise for
5652 BUILT_IN_UNREACHABLE. Don't check for a FUNCTION_TYPE.
5653 * ipa-devirt.c (possible_polymorphic_call_target_p): Likewise.
5654 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
5655 * gimple-ssa-isolate-paths.c (is_addr_local): Check specifically
5656 for BUILT_IN_NORMAL functions.
5657 * trans-mem.c (expand_block_edges): Use gimple_call_builtin_p to
5658 test for BUILT_IN_TM_ABORT.
5659 * tree-ssa-ccp.c (optimize_stack_restore): Use fndecl_built_in_p
5660 to check for a BUILT_IN_STACK_RESTORE call.
5661 (optimize_stdarg_builtin): Remove redundant check for GIMPLE_CALL.
5662 * tree-ssa-threadedge.c
5663 (record_temporary_equivalences_from_stmts_at_dest): Check for a
5664 BUILT_IN_NORMAL decl before checking its DECL_FUNCTION_CODE.
5665 * tree-vect-patterns.c (vect_recog_pow_pattern): Use a positive
5666 test for a BUILT_IN_NORMAL call instead of a negative test for
5667 an internal function call.
5669 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
5671 * tree.h (build_vector_a_then_b): Declare.
5672 * tree.c (build_vector_a_then_b): New function.
5673 * fold-const-call.c (fold_while_ult): Likewise.
5674 (fold_const_call): Use it to handle IFN_WHILE_ULT.
5675 * config/aarch64/aarch64-protos.h (AARCH64_FOR_SVPATTERN): New macro.
5676 (aarch64_svpattern): New enum.
5677 * config/aarch64/aarch64-sve.md (mov<PRED_ALL:mode>): Pass
5678 constants through aarch64_expand_mov_immediate.
5679 (*aarch64_sve_mov<PRED_ALL:mode>): Use aarch64_mov_operand rather
5680 than general_operand as the predicate for operand 1.
5681 (while_ult<GPI:mode><PRED_ALL:mode>): Add a '@' marker.
5682 * config/aarch64/aarch64.c (simd_immediate_info::PTRUE): New
5684 (simd_immediate_info::simd_immediate_info): New overload that
5685 takes a scalar_int_mode and an svpattern.
5686 (simd_immediate_info::u): Add a "pattern" field.
5687 (svpattern_token): New function.
5688 (aarch64_get_sve_pred_bits, aarch64_widest_sve_pred_elt_size)
5689 (aarch64_partial_ptrue_length, aarch64_svpattern_for_vl)
5690 (aarch64_sve_move_pred_via_while): New functions.
5691 (aarch64_expand_mov_immediate): Try using
5692 aarch64_sve_move_pred_via_while for predicates that contain N ones
5693 followed by M zeros but that do not correspond to a VLnnn pattern.
5694 (aarch64_sve_pred_valid_immediate): New function.
5695 (aarch64_simd_valid_immediate): Use it instead of dealing directly
5696 with PTRUE and PFALSE.
5697 (aarch64_output_sve_mov_immediate): Handle new simd_immediate_info
5700 2019-08-13 Iain Sandoe <iain@sandoe.co.uk>
5702 * config/darwin.c (machopic_indirect_call_target): Rename symbol stub
5704 (darwin_override_options): Likewise.
5705 * config/darwin.h: Likewise.
5706 * config/darwin.opt: Likewise.
5707 * config/i386/i386.c (output_pic_addr_const): Likewise.
5708 * config/rs6000/darwin.h: Likewise.
5709 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise.
5710 * config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ...
5711 ... this TARGET_MACHO_SYMBOL_STUBS.
5712 (FUNCTION_PROFILER):Likewise.
5713 * config/i386/i386.h: Likewise.
5715 2019-08-13 Uroš Bizjak <ubizjak@gmail.com>
5717 * config/i386/i386-expand.c (ix86_expand_vector_extract)
5718 <case E_V2SImode>: Use vec_extr path for
5719 TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
5720 <case E_V8QImode>: Ditto.
5721 * config/i386/mmx.md (*mmx_pextrw_zext): Rename from mmx_pextrw.
5722 Use SWI48 mode iterator. Use %k to output operand 0.
5723 (*mmx_pextrw): New insn pattern.
5724 (*mmx_pextrb): Ditto.
5725 (*mmx_pextrb_zext): Ditto.
5727 2019-08-13 Jonathan Wakely <jwakely@redhat.com>
5729 * target.def (libc_has_function, libc_has_fast_function): Improve
5730 documentation strings.
5731 * doc/tm.texi: Regenerate.
5733 2019-08-13 Caroline Tice <cmtice@google.com>
5736 * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Only add the
5737 vtv_end.o or vtv_end_preinit.o files if !static.
5739 2019-08-13 Olivier Hainque <hainque@adacore.com>
5741 * rtl.h (tablejump_casesi_pattern): Move declaration to proper spot.
5743 2019-08-13 Olivier Hainque <hainque@adacore.com>
5745 * rtlanal.c (tablejump_casesi_pattern): New function, to
5746 determine if a tablejump insn is a casesi dispatcher. Extracted
5747 from patch_jump_insn.
5748 * rtl.h (tablejump_casesi_pattern): Declare.
5749 * cfgrtl.c (patch_jump_insn): Use it.
5750 * dwarf2cfi.c (create_trace_edges): Use it.
5752 2019-08-13 Wilco Dijkstra <wdijkstr@arm.com>
5755 * gcc/config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF
5756 operand is larger than a long int.
5758 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
5760 * machmode.h (opt_mode::else_mode): New function.
5761 (opt_mode::else_blk): Use it.
5762 * config/aarch64/aarch64-protos.h (aarch64_vq_mode): Declare.
5763 (aarch64_full_sve_mode, aarch64_sve_ld1rq_operand_p): Likewise.
5764 (aarch64_gen_stepped_int_parallel): Likewise.
5765 (aarch64_stepped_int_parallel_p): Likewise.
5766 (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate
5768 * config/aarch64/aarch64.c
5769 (aarch64_expand_sve_widened_duplicate): Delete.
5770 (aarch64_expand_sve_dupq, aarch64_expand_sve_ld1rq): New functions.
5771 (aarch64_expand_sve_const_vector): Rewrite to handle more cases.
5772 (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate
5773 argument. Use early returns in the !CONST_INT_P handling.
5774 Pass all SVE data vectors to aarch64_expand_sve_const_vector rather
5775 than handling some inline.
5776 (aarch64_full_sve_mode, aarch64_vq_mode): New functions, split out
5778 (aarch64_simd_container_mode): ...here.
5779 (aarch64_gen_stepped_int_parallel, aarch64_stepped_int_parallel_p)
5780 (aarch64_sve_ld1rq_operand_p): New functions.
5781 * config/aarch64/predicates.md (descending_int_parallel)
5782 (aarch64_sve_ld1rq_operand): New predicates.
5783 * config/aarch64/constraints.md (UtQ): New constraint.
5784 * config/aarch64/aarch64.md (UNSPEC_REINTERPRET): New unspec.
5785 * config/aarch64/aarch64-sve.md (mov<SVE_ALL:mode>): Remove the
5786 gen_vec_duplicate from call to aarch64_expand_mov_immediate.
5787 (@aarch64_sve_reinterpret<mode>): New expander.
5788 (*aarch64_sve_reinterpret<mode>): New pattern.
5789 (@aarch64_vec_duplicate_vq<mode>_le): New pattern.
5790 (@aarch64_vec_duplicate_vq<mode>_be): Likewise.
5791 (*sve_ld1rq<Vesize>): Replace with...
5792 (@aarch64_sve_ld1rq<mode>): ...this new pattern.
5794 2019-08-13 Wilco Dijkstra <wdijkstr@arm.com>
5796 * config/aarch64/aarch64.c (generic_tunings): Set function alignment to
5799 2019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
5801 * config/msp430/driver-msp430.c (msp430_set_driver_var): New.
5802 * config/msp430/msp430-devices.c (canonicalize_path_dirsep): New.
5803 (msp430_check_path_for_devices): New.
5804 (parse_devices_csv_1): New.
5805 (parse_devices_csv): New.
5806 (msp430_extract_mcu_data): Try to find devices.csv and search for the
5807 MCU data in devices.csv before using the hard-coded data.
5808 Warn if devices.csv isn't found and the MCU wasn't found in the
5809 hard-coded data either.
5810 * config/msp430/msp430.h (DRIVER_SELF_SPECS): Call
5811 msp430_set_driver_var for -mno-warn-devices-csv and -mdevices-csv-loc.
5812 Search for devices.csv on -I and -L paths.
5813 (EXTRA_SPEC_FUNCTIONS): Add msp430_check_path_for_devices and
5814 msp430_set_driver_var.
5815 * config/msp430/msp430.opt: Add -mwarn-devices-csv and
5817 * doc/invoke.texi (-mmcu): Document that -I and -L paths are
5818 searched for devices.csv.
5819 (mwarn-devices-csv): Document option.
5821 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
5823 * config/aarch64/aarch64-protos.h (aarch64_output_ptrue): Delete.
5824 * config/aarch64/aarch64-sve.md (*aarch64_sve_mov<PRED_ALL:mode>):
5825 Use a single Dn alternative instead of separate Dz and Dm
5826 alternatives. Use aarch64_output_sve_move_immediate.
5827 * config/aarch64/aarch64.c (aarch64_sve_element_int_mode): New
5829 (aarch64_simd_valid_immediate): Fill in the simd_immediate_info
5831 (aarch64_output_sve_mov_immediate): Handle predicate modes.
5832 (aarch64_output_ptrue): Delete.
5834 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
5836 * config/aarch64/aarch64.c (simd_immediate_info::insn_type): Add
5838 (simd_immediate_info::value, simd_immediate_info::step)
5839 (simd_immediate_info::modifier, simd_immediate_info::shift): Replace
5841 (simd_immediate_info::u): ...this new union.
5842 (simd_immediate_info::simd_immediate_info): Update accordingly.
5843 (aarch64_output_simd_mov_immediate): Likewise.
5844 (aarch64_output_sve_mov_immediate): Likewise.
5846 2019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
5848 * config.gcc (msp430*-*-*): Add msp430-devices.o to extra_objs and
5850 * config/msp430/driver-msp430.c: Remove msp430_mcu_data.
5851 (msp430_select_cpu): New spec function.
5852 (msp430_select_hwmult_lib): Use msp430_extract_mcu_data to extract
5854 * config/msp430/msp430-devices.c: New file.
5855 * config/msp430/msp430-devices.h: New file.
5856 * config/msp430/msp430.c: Remove msp430_mcu_data.
5857 (msp430_option_override): Use msp430_extract_mcu_data to extract
5859 (msp430_use_f5_series_hwmult): Likewise.
5860 (use_32bit_hwmult): Likewise.
5861 (msp430_no_hwmult): Likewise.
5862 * config/msp430/msp430.h (ASM_SPEC): Don't pass -mmcu to the
5864 (DRIVER_SELF_SPECS): Call msp430_select_cpu if -mmcu is used without
5866 (EXTRA_SPEC_FUNCTIONS): Add msp430_select_cpu.
5867 * config/msp430/t-msp430: Add rule to build msp430-devices.o.
5868 Remove hard-coded MCU multilib data.
5870 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
5872 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Switch
5873 based on the mode instead of testing properties of it.
5875 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
5877 * doc/md.texi: Document the x and y constraints for AArch64.
5878 * config/aarch64/aarch64.h (FP_LO8_REGNUM_P): New macro.
5879 (FP_LO8_REGS): New reg_class.
5880 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add an entry for FP_LO8_REGS.
5881 * config/aarch64/aarch64.c (aarch64_hard_regno_nregs)
5882 (aarch64_regno_regclass, aarch64_class_max_nregs): Handle FP_LO8_REGS.
5883 * config/aarch64/predicates.md (aarch64_simd_register): Use
5884 FP_REGNUM_P instead of checking the classes manually.
5885 * config/aarch64/constraints.md (y): New constraint.
5887 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
5889 * config/aarch64/iterators.md (perm_insn): Include the "1"/"2" suffix.
5890 (perm_hilo): Remove UNSPEC_ZIP*, UNSEPC_TRN* and UNSPEC_UZP*.
5891 * config/aarch64/aarch64-simd.md
5892 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Rename to..
5893 (aarch64_<PERMUTE:perm_insn><mode>): ...this and remove perm_hilo
5894 from the asm template.
5895 * config/aarch64/aarch64-sve.md
5896 (aarch64_<perm_insn><perm_hilo><PRED_ALL:mode>): Rename to..
5897 (aarch64_<perm_insn><PRED_ALL:mode>): ...this and remove perm_hilo
5898 from the asm template.
5899 (aarch64_<perm_insn><perm_hilo><SVE_ALL:mode>): Rename to..
5900 (aarch64_<perm_insn><SVE_ALL:mode>): ...this and remove perm_hilo
5901 from the asm template.
5902 * config/aarch64/aarch64-simd-builtins.def: Update comment.
5904 2019-08-13 Martin Liska <mliska@suse.cz>
5906 * value-prof.c (gimple_ic_transform): Add new line.
5907 Print details with MSG_NOTE.
5909 2019-08-13 Martin Liska <mliska@suse.cz>
5911 * doc/invoke.texi: Document automatic detection of jobserver.
5912 * lto-wrapper.c (run_gcc): Detect jobserver always.
5914 2019-08-13 Uroš Bizjak <ubizjak@gmail.com>
5916 * config/i386/i386-expand.c (ix86_expand_vector_set)
5917 <case E_V2SImode>: Use vec_merge path for
5918 TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
5919 <case E_V8QImode>: Ditto.
5920 * config/i386/mmx.md (*mmx_pinsrd): New insn pattern.
5921 (*mmx_pinsrb): Ditto.
5923 2019-08-12 Jakub Jelinek <jakub@redhat.com>
5927 * config/i386/avxintrin.h (_mm256_zextpd128_pd256,
5928 _mm256_zextps128_ps256, _mm256_zextsi128_si256): New intrinsics.
5929 * config/i386/avx512fintrin.h (_mm512_zextpd128_pd512,
5930 _mm512_zextps128_ps512, _mm512_zextsi128_si512, _mm512_zextpd256_pd512,
5931 _mm512_zextps256_ps512, _mm512_zextsi256_si512): Likewise.
5933 2019-08-12 Richard Biener <rguenther@suse.de>
5936 * tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on
5939 2019-08-12 Richard Biener <rguenther@suse.de>
5942 * lto-wrapper.c (get_options_from_collect_gcc_options): Remove
5943 lang_mask option, always use CL_DRIVER.
5944 (get_options_from_collect_gcc_options): Adjust.
5945 (find_and_merge_options): Likewise.
5946 (run_gcc): Likewise.
5948 2019-08-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5950 * ipa-predicate.c (add_condition): Restore inverted test.
5952 2019-08-10 Jakub Jelinek <jakub@redhat.com>
5954 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DEVICE_TYPE.
5955 (enum omp_clause_device_type_kind): New enum.
5956 (struct tree_omp_clause): Add subcode.device_type_kind.
5957 * tree.h (OMP_CLAUSE_DEVICE_TYPE_KIND): Define.
5958 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries
5959 for device_type clause.
5960 (walk_tree_1): Handle OMP_CLAUSE_DEVICE_TYPE.
5961 * tree-pretty-print.c (dump_omp_clause): Likewise.
5964 * config/i386/mmx.md (usadv8qi): Use register_operand instead of
5967 2019-08-09 Vladimir Makarov <vmakarov@redhat.com>
5969 * reload1.c (finish_spills): Do not check ira_conflicts_p when
5970 handling spilled pseudos.
5972 2019-08-09 Richard Earnshaw <rearnsha@arm.com>
5975 * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Use copy_rtx
5976 to preserve the contents of the original insns.
5978 2019-08-09 Richard Earnshaw <rearnsha@arm.com>
5980 * config/arm/arm.md (addsi3_compare_op1): Add 16-bit thumb-2 variants.
5981 (addsi3_compare_op2): Likewise.
5983 2019-08-09 Martin Liska <mliska@suse.cz>
5985 * alias.c (alias_ptr_types_compatible_p): Strengten
5986 type comparison in LTO mode.
5988 2019-08-09 Richard Sandiford <richard.sandiford@arm.com>
5991 * tree-tailcall.c (find_tail_calls): Reject calls that might
5992 read from an escaped RESULT_DECL.
5994 2019-08-09 Martin Liska <mliska@suse.cz>
5996 * doc/invoke.texi: Document the option value.
5997 * lto-wrapper.c (run_gcc): Set auto_parallel
5998 only with -flto=auto.
6000 2019-08-09 Martin Liska <mliska@suse.cz>
6002 * opts.c (common_handle_option): Error for an invalid argument
6005 2019-08-09 Martin Liska <mliska@suse.cz>
6007 * ipa-icf.c (sem_function::merge): Define AUTO_DUMP_SCOPE and
6008 use dump_printf to report optimization.
6009 (sem_variable::merge): Likwise.
6010 (sem_item_optimizer::merge_classes): Use dump_printf to report
6013 2019-08-09 Martin Liska <mliska@suse.cz>
6015 * value-prof.c (gimple_divmod_fixed_value_transform):
6016 Use dump_printf_loc.
6017 (gimple_mod_pow2_value_transform): Likewise.
6018 (gimple_mod_subtract_transform): Likewise.
6019 (init_node_map): Likewise.
6020 (gimple_ic_transform): Likewise.
6021 (gimple_stringops_transform): Likewise.
6023 2019-08-08 Mihailo Stojanovic <mistojanovic@wavecomp.com>
6025 * doc/extend.texi: Add const qualifier to ld intrinsics.
6027 2019-08-08 Segher Boessenkool <segher@kernel.crashing.org>
6029 * config/rs6000/dfp.md (D64_D128): Rename to ...
6030 (DDTD): ... this, throughout.
6031 (dfp_suffix): Rename to ...
6032 (q): ... this, throughout.
6034 2019-08-08 Segher Boessenkool <segher@kernel.crashing.org>
6036 * config/rs6000/dfp.md (D64_D128): Move earlier in the file.
6037 (dfp_suffix): Ditto.
6038 (adddd3, addtd3): Merge to ...
6039 (add<mode>3 for D64_D128): ... this.
6040 (subdd3, subtd3): Merge to ...
6041 (sub<mode>3 for D64_D128): ... this.
6042 (muldd3, multd3): Merge to ...
6043 (mul<mode>3 for D64_D128): ... this.
6044 (divdd3, divtd3): Merge to ...
6045 (div<mode>3 for D64_D128): ... this.
6046 (*cmpdd_internal1, *cmptd_internal1): Merge to ...
6047 (*cmp<mode>_internal1 for D64_D128): ... this.
6048 (ftruncdd2, ftrunctd2): Merge to ...
6049 (ftrunc<mode>2 for D64_D128): ... this.
6050 (fixdddi2, fixtddi2): Merge to ...
6051 (fix<mode>di2 for D64_D128): ... this.
6053 2019-08-08 Jim Wilson <jimw@sifive.com>
6056 * config/riscv/riscv.c (riscv_flatten_aggregate_field): New arg
6057 ignore_zero_width_bit_field_p. Skip zero size bitfields when true.
6058 Pass into recursive call.
6059 (riscv_flatten_aggregate_argument): New arg. Pass to
6060 riscv_flatten_aggregate_field.
6061 (riscv_pass_aggregate_in_fpr_pair_p): New local warned. Call
6062 riscv_flatten_aggregate_argument twice, with false and true as last
6063 arg. Process result twice. Compare results and warn if different.
6064 (riscv_pass_aggregate_in_fpr_and_gpr_p): Likewise.
6066 2019-08-08 Martin Liska <mliska@suse.cz>
6069 * gcc.c (driver::detect_jobserver): Use is_valid_fd.
6070 * lto-wrapper.c (jobserver_active_p): Likewise.
6072 2019-08-08 Martin Liska <mliska@suse.cz>
6074 * cgraphclones.c (set_new_clone_decl_and_node_flags): Drop
6075 IS_OPERATOR_NEW and IS_OPERATOR_DELETE.
6076 (create_version_clone_with_body): Likewise.
6078 2019-08-08 Jakub Jelinek <jakub@redhat.com>
6080 * gimplify.c (omp_add_variable): Use GOVD_PRIVATE | GOVD_EXPLICIT
6081 for VLA helper variables on target data even if not GOVD_FIRSTPRIVATE.
6082 (gimplify_scan_omp_clauses): For OMP_CLAUSE_USE_DEVICE_* use just
6083 GOVD_EXPLICIT flags.
6084 (gimplify_omp_workshare): For OMP_TARGET_DATA move all
6085 OMP_CLAUSE_USE_DEVICE_* clauses to the end of clauses chain.
6086 * omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_USE_DEVICE_*
6087 call install_var_field with mask 11 instead of 3.
6088 (lower_omp_target): For OMP_CLAUSE_USE_DEVICE_* use pass
6089 (splay_tree_key) &DECL_UID (var) to build_sender_ref instead of var.
6091 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
6093 * config/aarch64/constraints.md (Z): Handle floating-point zeros too.
6094 * config/aarch64/predicates.md (aarch64_reg_or_zero): Likewise.
6096 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
6098 * config/aarch64/aarch64-sve.md (vec_shl_insert_<mode>): Add
6099 MOVPRFX alternatives. Make the GPR alternatives more expensive
6102 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
6104 * config/aarch64/aarch64-sve.md (fold_extract_last_<mode>):
6105 Disparage the GPR alternative relative to the FPR one.
6106 Fix handling of 8-bit and 16-bit FPR values.
6108 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
6110 * config/aarch64/iterators.md (BITWISEV): Delete.
6111 (SVE_INT_REDUCTION, SVE_FP_REDUCTION): New int iterators.
6112 (optab): Handle UNSPEC_UMAXV, UNSPEC_UMINV, UNSPEC_SMAXV,
6113 UNSPEC_SMINV, UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV,
6114 UNSPEC_FMINNMV, UNSPEC_FMINV.
6115 (bit_reduc_op): Delete.
6116 (sve_int_op): New int attribute.
6117 (sve_fp_op): Handle UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV,
6118 UNSPEC_FMINNMV, UNSPEC_FMINV.
6119 * config/aarch64/aarch64-sve.md
6120 (reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>)
6121 (*reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>)
6122 (reduc_<BITWISEV:optab>_scal_<SVE_I:mode>)
6123 (*reduc_<BITWISEV:optab>_scal_<SVE_I:mode>): Merge into...
6124 (reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>)
6125 (*reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>): ...these
6127 (reduc_plus_scal_<SVE_F:mode>, *reduc_plus_scal_<SVE_I:mode>)
6128 (reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>)
6129 (*reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>): Merge into...
6130 (reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>)
6131 (*reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>): ...these
6134 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
6136 * config/aarch64/aarch64-sve.md (fma<mode>4, *fma<mode>4)
6137 (fnma<mode>4, *fnma<mode>4, fnms<mode>4, *fnms<mode>4)
6138 (fms<mode>4, *fms<mode>4): Replace with...
6139 (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4)
6140 (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): ...these new patterns.
6141 Use unspecs instead of rtx codes.
6142 (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_4)
6143 (*cond_<optab><mode>_any): Add the predicate to SVE_COND_FP_TERNARY.
6145 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
6147 * config/aarch64/iterators.md (SVE_COND_FP_MAXMIN_PUBLIC): New
6149 (maxmin_uns_op): Handle UNSPEC_COND_FMAXNM and UNSPEC_COND_FMINNM.
6150 * config/aarch64/aarch64-sve.md
6151 (<FMAXMIN:su><FMAXMIN:maxmin><SVE_F:mode>3): Rename to...
6152 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): ...this and
6153 use a single unspec for the rhs.
6154 (*<su><maxmin><mode>3): Delete.
6155 (<maxmin_uns><SVE_F:mode>3): Use a single unspec for the rhs.
6157 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
6159 * config/aarch64/iterators.md (UNSPEC_COND_FABS, UNSPEC_COND_FNEG)
6160 (UNSPEC_COND_FRINTA, UNSPEC_COND_FRINTI, UNSPEC_COND_FRINTM)
6161 (UNSPEC_COND_FRINTN, UNSPEC_COND_FRINTP, UNSPEC_COND_FRINTX)
6162 (UNSPEC_COND_FRINTZ, UNSPEC_COND_FSQRT): New unspecs.
6163 (optab, sve_fp_op): Handle them.
6164 (SVE_FP_UNARY): Delete.
6165 (optab): Remove sqrt entry.
6166 (sve_fp_op): Remove neg, abs and sqrt entries.
6167 (SVE_COND_FP_UNARY): New int iterator.
6168 * config/aarch64/aarch64-sve.md (<frint_pattern><mode>2)
6169 (*<frint_pattern><mode>2): Delete.
6170 (<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with...
6171 (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this.
6172 (*<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with...
6173 (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this.
6175 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
6177 * config/aarch64/aarch64-sve.md (*pred_fold_left_plus_<mode>): Delete.
6179 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
6181 * config/aarch64/iterators.md (UNSPEC_COND_ADD): Rename to...
6182 (UNSPEC_COND_FADD): ...this.
6183 (UNSPEC_COND_SUB): Rename to...
6184 (UNSPEC_COND_FSUB): ...this.
6185 (UNSPEC_COND_MUL): Rename to...
6186 (UNSPEC_COND_FMUL): ...this.
6187 (UNSPEC_COND_DIV): Rename to...
6188 (UNSPEC_COND_FDIV): ...this.
6189 (UNSPEC_COND_MAX): Rename to...
6190 (UNSPEC_COND_FMAXNM): ...this.
6191 (UNSPEC_COND_MIN): Rename to...
6192 (UNSPEC_COND_FMINNM): ...this.
6193 (UNSPEC_COND_LT): Rename to...
6194 (UNSPEC_COND_FCMLT): ...this.
6195 (UNSPEC_COND_LE): Rename to...
6196 (UNSPEC_COND_FCMLE): ...this.
6197 (UNSPEC_COND_EQ): Rename to...
6198 (UNSPEC_COND_FCMEQ): ...this.
6199 (UNSPEC_COND_NE): Rename to...
6200 (UNSPEC_COND_FCMNE): ...this.
6201 (UNSPEC_COND_GE): Rename to...
6202 (UNSPEC_COND_FCMGE): ...this.
6203 (UNSPEC_COND_GT): Rename to...
6204 (UNSPEC_COND_FCMGT): ...this.
6205 (SVE_COND_FP_BINARY, SVE_COND_FP_CMP, optab, cmp_op, sve_fp_op)
6206 (sve_fp_op_rev): Update accordingly.
6207 * config/aarch64/aarch64.c (aarch64_unspec_cond_code): Likewise.
6209 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
6211 * config/aarch64/aarch64-sve.md: Reorganize contents and add
6213 * config/aarch64/check-sve-md.awk: New file.
6214 * config/aarch64/t-aarch64 (s-check-sve-md): New rule.
6215 (insn-conditions.md): Depend on it.
6217 2019-08-07 Uroš Bizjak <ubizjak@gmail.com>
6220 * config/i386/sse.md (*negsi2_1_zext): Simplify insn pattern.
6221 (*negsi2_cmpz_zext): Ditto.
6223 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
6225 * config/aarch64/iterators.md (commutative): Remove.
6227 2019-08-07 Richard Earnshaw <rearnsha@arm.com>
6230 * lto-wrapper.c (find_and_merge_options): Use CL_DRIVER when
6231 processing COLLECT_GCC_OPTIONS.
6232 (run_gcc): Likewise.
6234 2019-08-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
6236 PR tree-optimization/91109
6237 * lra-remat.c (update_scratch_ops): Remove assignment of the
6240 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
6242 * data-streamer.h (streamer_write_poly_uint64): Declare.
6243 (streamer_read_poly_uint64): Likewise.
6244 * data-streamer-in.c (streamer_read_poly_uint64): New function.
6245 * data-streamer-out.c (streamer_write_poly_uint64): Likewise.
6246 * ipa-predicate.h (condition::size): Turn into a poly_int64.
6247 (add_condition): Take a poly_int64 size.
6248 * ipa-predicate.c (add_condition): Likewise.
6249 * ipa-prop.h (ipa_load_from_parm_agg): Take a poly_int64 size pointer.
6250 * ipa-prop.c (ipa_load_from_parm_agg): Likewise.
6251 (ipcp_modif_dom_walker::before_dom_children): Update accordingly.
6252 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Handle
6253 condition::size as a poly_int64.
6254 (unmodified_parm_1): Take a poly_int64 size pointer.
6255 (unmodified_parm): Likewise.
6256 (unmodified_parm_or_parm_agg_item): Likewise.
6257 (set_cond_stmt_execution_predicate): Update accordingly.
6258 (set_switch_stmt_execution_predicate): Likewise.
6259 (will_be_nonconstant_expr_predicate): Likewise.
6260 (will_be_nonconstant_predicate): Likewise.
6261 (inline_read_section): Stream condition::size as a poly_int.
6262 (ipa_fn_summary_write): Likewise.
6264 2019-08-07 Martin Liska <mliska@suse.cz>
6266 * fold-const.c (twoval_comparison_p): Replace int
6267 with bool as a return type.
6268 (simple_operand_p): Likewise.
6269 (operand_equal_p): Replace int with bool as a return type.
6270 * fold-const.h (operand_equal_p): Likewise.
6272 2019-08-07 Jakub Jelinek <jakub@redhat.com>
6274 * tree-core.h (enum omp_clause_code): Adjust OMP_CLAUSE_USE_DEVICE_PTR
6275 OpenMP description. Add OMP_CLAUSE_USE_DEVICE_ADDR clause.
6276 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries
6277 for OMP_CLAUSE_USE_DEVICE_ADDR clause.
6278 (walk_tree_1): Handle OMP_CLAUSE_USE_DEVICE_ADDR.
6279 * tree-pretty-print.c (dump_omp_clause): Likewise.
6280 * tree-nested.c (convert_nonlocal_omp_clauses,
6281 convert_local_omp_clauses): Likewise.
6282 * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses):
6284 * omp-low.c (scan_sharing_clauses, lower_omp_target): Likewise.
6285 Treat OMP_CLAUSE_USE_DEVICE_ADDR like OMP_CLAUSE_USE_DEVICE_PTR
6286 clause with array or reference to array types, no matter what type
6287 except for reference it has.
6289 2019-08-07 Kewen Lin <linkw@gcc.gnu.org>
6291 * config/rs6000/vector.md (vrotr<mode>3): New define_expand.
6293 2019-08-07 Kito Cheng <kito.cheng@sifive.com>
6295 * config/riscv/multilib-generator: (canonical_order): Add 'g'.
6296 (arch_canonicalize): Support rv32g and rv64g and fix error
6299 2019-08-06 Martin Liska <mliska@suse.cz>
6301 * cgraph.c (cgraph_node::dump): Dump DECL_IS_OPERATOR_NEW_P
6302 and DECL_IS_OPERATOR_DELETE_P.
6304 2019-08-06 Jakub Jelinek <jakub@redhat.com>
6306 * tree.h (OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV): Rename to ...
6307 (OMP_CLAUSE_LASTPRIVATE_LOOP_IV): ... this. Adjust comment.
6308 * gimplify.c (gimple_add_tmp_var): In SIMD contexts, turn addressable
6309 new vars into GOVD_PRIVATE rather than GOVD_LOCAL.
6310 (gimplify_omp_for): Don't do C++ random access iterator clause
6311 adjustments on combined constructs from OMP_LOOP. For OMP_LOOP,
6312 don't predetermine the artificial iterator in case of C++ random
6313 access iterators as lastprivate, but private. For OMP_LOOP, force
6314 bind expr around simd body and force for_pre_body before the
6315 construct. Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV instead of
6316 OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV.
6317 (gimplify_omp_loop): Add firstprivate clauses on OMP_PARALLEL for
6318 diff var of C++ random access iterators. Handle
6319 OMP_CLAUSE_FIRSTPRIVATE. For OMP_CLAUSE_LASTPRIVATE_LOOP_IV, if
6320 not outermost also add OMP_CLAUSE_FIRSTPRIVATE, and in both cases
6321 clear OMP_CLAUSE_LASTPRIVATE_LOOP_IV on the lastprivate clause
6322 on the OMP_FOR and OMP_DISTRIBUTE constructs if any.
6323 * omp-low.c (lower_rec_input_clauses): For
6324 OMP_CLAUSE_LASTPRIVATE_LOOP_IV on simd copy construct the private
6325 variables instead of default constructing them.
6326 (lower_lastprivate_clauses): Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV
6327 instead of OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV and move the
6328 is_taskloop_ctx check from the assert to the guarding condition.
6330 2019-08-06 Kito Cheng <kito.cheng@sifive.com>
6332 * config/riscv/multilib-generator: (canonical_order): New.
6333 (arch_canonicalize): Dito.
6334 Apply arch_canonicalize for alts.
6336 2019-08-05 Martin Sebor <msebor@redhat.com>
6338 * doc/extend.texi (Common Variable Attributes): Document alias
6341 2019-08-05 Marek Polacek <polacek@redhat.com>
6343 PR c++/91338 - Implement P1161R3: Deprecate a[b,c].
6344 * doc/invoke.texi: Document -Wcomma-subscript.
6346 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
6348 * tree-core.h (tree_function_decl): Make function_code an
6349 independent field. Group the remaining bitfields into bytes
6350 and move decl_type so that it contines to be at a byte boundary.
6351 Leave 12 bits for future expansion.
6353 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
6355 * gimple-fold.c (gimple_fold_mask_load_store_mem_ref)
6356 (gimple_fold_mask_load, gimple_fold_mask_store): New functions.
6357 (gimple_fold_call): Use them to fold IFN_MASK_LOAD and
6360 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
6362 * gimple.h (gimple_move_vops): Declare.
6363 * gimple.c (gimple_move_vops): New function
6364 * gimple-fold.c (replace_call_with_call_and_fold)
6365 (gimple_fold_builtin_memory_op, gimple_fold_builtin_memset)
6366 (gimple_fold_builtin_stpcpy, fold_builtin_atomic_compare_exchange)
6367 (gimple_fold_call): Use it.
6368 * ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise.
6369 * tree-call-cdce.c (use_internal_fn): Likewise.
6370 * tree-if-conv.c (predicate_load_or_store): Likewise.
6371 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
6372 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
6373 * tree-ssa-propagate.c (finish_update_gimple_call): Likewise.
6374 (update_call_from_tree): Likewise.
6375 * tree-vect-stmts.c (vectorizable_load): Likewise.
6376 * tree-vectorizer.c (adjust_simduid_builtins): Likewise.
6378 2019-08-05 Martin Liska <mliska@suse.cz>
6381 * tree-ssa-dce.c (propagate_necessity): Handle new operators
6383 (eliminate_unnecessary_stmts): Likewise.
6385 2019-08-05 Richard Biener <rguenther@suse.de>
6388 * fold-const.c (get_array_ctor_element_at_index): Create
6389 offset_ints according to the sign of the index type and treat
6390 that as signed if it is obviously so.
6392 2019-08-05 Jakub Jelinek <jakub@redhat.com>
6395 * config/i386/avxintrin.h (_mm256_loadu2_m128, _mm256_storeu2_m128,
6396 _mm256_loadu2_m128d, _mm256_storeu2_m128d, _mm256_loadu2_m128i,
6397 _mm256_storeu2_m128i): New function.
6399 2019-08-05 Kito Cheng <kito.cheng@sifive.com>
6401 * config/riscv/riscv.c (riscv_promote_function_mode): New.
6402 (TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode.
6404 2019-08-05 Alan Modra <amodra@gmail.com>
6407 * config/rs6000/freebsd64.h (CPLUSPLUS_CPP_SPEC),
6408 (LINK_GCC_C_SEQUENCE_SPEC): Undef.
6410 2019-08-04 Gerald Pfeifer <gerald@pfeifer.com>
6412 * doc/install.texi (Prerequisites): Remove reference to Tcl 8.6
6413 bug that was fixed in Tcl 8.6.1.
6415 2019-08-02 Michael Meissner <meissner@linux.ibm.com>
6417 * config/rs6000/future.md: New file.
6418 * config/rs6000/rs6000.md: Include future.md.
6419 * config/rs6000/t-rs6000 (MD_INCLUDES): Add future.md.
6421 2019-08-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
6423 * function.c (assign_parm_adjust_stack_rtl): Revise STRICT_ALIGNMENT
6424 check to use targetm.slow_unaligned_access instead.
6426 * function.c (assign_param_data_one): Remove unused data members.
6428 2019-08-02 Steve Ellcey <sellcey@marvell.com>
6430 * omp-simd-clone.c (simd_clone_adjust_return_type): Remove call to
6431 build_distinct_type_copy.
6432 (simd_clone_adjust_argument_types): Ditto.
6433 (simd_clone_adjust): Call build_distinct_type_copy here.
6434 (expand_simd_clones): Ditto.
6436 2019-08-02 Uroš Bizjak <ubizjak@gmail.com>
6439 * config/i386/sse.md (*vec_extractv16qi_zext): New insn pattern.
6441 2019-08-02 Alexander Monakov <amonakov@ispras.ru>
6443 * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Simplify casts
6444 from 'const void *'.
6445 (sort_locs_in_loop_postorder_cmp): Likewise.
6447 2019-08-02 Eric Botcazou <ebotcazou@adacore.com>
6449 * doc/invoke.texi (hot-bb-count-fraction): Rework description.
6450 (hot-bb-count-ws-permille): Likewise.
6451 (hot-bb-frequency-fraction): Likewise.
6452 (unlikely-bb-count-fraction): Likewise.
6453 * params.def (hot-bb-count-fraction): Rework description.
6454 (hot-bb-count-ws-permille): Likewise.
6455 (hot-bb-frequency-fraction): Likewise.
6456 (unlikely-bb-count-fraction): Likewise. Remove min and max values.
6457 * predict.c (get_hot_bb_threshold): Deal with 0 HOT_BB_COUNT_FRACTION.
6459 2019-08-02 Uroš Bizjak <ubizjak@gmail.com>
6462 * config/i386/i386-expand.c (ix86_unordered_fp_compare) <case LTGT>:
6465 2019-08-02 Richard Biener <rguenther@suse.de>
6467 * vec.h (vec::sort): Add gcc_qsort_r support.
6468 (vec::bsearch): Add an overload with gcc_qsort_r style callbacks.
6469 * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Adjust
6470 to gcc_qsort_r style callback.
6471 (sort_locs_in_loop_postorder_cmp): Likewise.
6472 (analyze_memory_references): Use gcc_sort_r interfaces.
6473 (find_ref_loc_in_loop_cmp): Use new bsearch overload.
6475 2019-08-02 Martin Liska <mliska@suse.cz>
6478 * gcc.c (driver::maybe_run_linker): Call detect_jobserver
6479 to detect working job server.
6480 (driver::detect_jobserver): Test whether jobserver
6481 is active from GCC driver. That will prevent situation where
6482 GCC is invoked from a LD plugin and the linker already uses
6483 file descriptors suggested by make. That leads to a wrong
6485 * gcc.h (driver): Add detect_jobserver.
6486 * lto-wrapper.c (jobserver_active_p): Simplify sscanf by
6487 not scanning for --jobserver-auth prefix.
6489 2019-08-02 Jakub Jelinek <jakub@redhat.com>
6491 PR tree-optimization/91201
6492 * config/i386/i386-expand.c (ix86_expand_vector_extract): For elt == 0
6493 V16QImode extraction without sse4.1 try to use V4SImode lowpart
6496 2019-08-01 Martin Sebor <msebor@redhat.com>
6499 * tree.c (type_initializer_zero_p): Define.
6500 * tree.h (type_initializer_zero_p): New function.
6502 2019-08-01 Eric Botcazou <ebotcazou@adacore.com>
6504 * cfgrtl.c (relink_block_chain): Add line returns in dump file.
6506 2019-08-01 Eric Botcazou <ebotcazou@adacore.com>
6508 * cgraph.h (cgraph_edge::maybe_hot_p): Tweak comment.
6509 * cgraph.c (cgraph_edge::maybe_hot_p): Likewise. Remove useless test.
6510 * predict.c (maybe_hot_count_p): Likewise.
6511 (maybe_hot_bb_p): Tweak comment.
6512 (maybe_hot_edge_p): Likewise.
6513 (probably_never_executed): Likewise. Minor tweak.
6514 (probably_never_executed_bb_p): Likewise.
6515 (unlikely_executed_edge_p): Likewise.
6516 (probably_never_executed_edge_p): Likewise.
6517 (optimize_function_for_size_p): Likewise.
6518 (optimize_function_for_speed_p): Likewise.
6519 (function_optimization_type): Likewise.
6520 (optimize_bb_for_size_p): Likewise.
6521 (optimize_bb_for_speed_p): Likewise.
6522 (bb_optimization_type): Likewise.
6523 (optimize_edge_for_size_p): Likewise.
6524 (optimize_edge_for_speed_p): Likewise.
6525 (optimize_insn_for_size_p): Likewise.
6526 (optimize_insn_for_speed_p): Likewise.
6527 (optimize_loop_for_size_p): Likewise.
6528 (optimize_loop_for_speed_p): Likewise.
6529 (optimize_loop_nest_for_speed_p): Likewise.
6530 (optimize_loop_nest_for_size_p): Likewise.
6531 (predictable_edge_p): Likewise.
6532 (handle_missing_profiles): Minor tweak.
6534 2019-08-01 Michael Meissner <meissner@linux.ibm.com>
6536 * config/rs6000/predicates.md (pcrel_external_address): Update
6539 2019-08-01 Uroš Bizjak <ubizjak@gmail.com>
6542 * config/i386/mmx.md (usadv8qi): New expander.
6544 2019-08-01 Matthew Beliveau <mbelivea@redhat.com>
6547 * c-warn.c (c_do_switch_warnings): Suppress warning for enumerators
6548 with reserved names that are in a system header.
6550 2019-08-01 Uroš Bizjak <ubizjak@gmail.com>
6552 * config/i386/mmx.md (vec_extractv2si_0): Add (r,x) alternative.
6553 (*vec_extractv2si_0_zext_sse4): New insn pattern.
6554 (*vec_extractv2si_0_zext): Ditto.
6555 (*vec_extractv2si_1): Add (rm,x) alternative.
6556 (*vec_extractv2si_1_zext): New insn pattern.
6557 (*vec_extractv2si_zext_mem): Add "TARGET_MMX || TARGET_MMX_WITH_SSE"
6560 2019-08-01 Richard Biener <rguenther@suse.de>
6562 * domwalk.c (bb_postorder): Remove static variable.
6563 (cmp_bb_postorder): Adjust.
6564 (sort_bbs_postorder): Adjust and use gcc_sort_r.
6565 (dom_walker::walk): Adjust.
6567 2019-08-01 Alexander Monakov <amonakov@ispras.ru>
6569 * sort.cc (sort_r_ctx): New struct.
6570 (reorder23): Make templated on context type.
6572 (cmp1): Ditto. Adjust signature.
6575 [CHECKING_P] (cmp2to3): New static function. Use it...
6576 (gcc_qsort) [CHECKING_P]: ...here.
6577 (gcc_sort_r): New function.
6578 * system.h (sort_r_cmp_fn): New function typedef.
6579 (qsort_chk): Adjust signature.
6580 (gcc_sort_r): Declare.
6581 * vec.c (qsort_chk_error): Adjust.
6582 (qsort_chk): Adjust.
6584 2019-08-01 Richard Biener <rguenther@suse.de>
6586 * tree-ssa-pre.c (has_abnormal_preds): Remove global var.
6587 (compute_antic): Localize it here.
6589 2019-07-31 Maxim Blinov <maxim.blinov@embecosm.com>
6591 * common/config/riscv/riscv-common.c: Check -march string ends
6594 2019-07-31 Alexander Monakov <amonakov@ispras.ru>
6596 * ipa-devirt.c (type_warning_cmp): Make static.
6597 (decl_warning_cmp): Ditto.
6599 2019-07-31 Peter Bergner <bergner@linux.ibm.com>
6602 * config/rs6000/rs6000.opt (mdejagnu-cpu=): Delete option.
6603 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
6604 use of deleted rs6000_dejagnu_cpu_index variable.
6605 * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Define.
6606 (SUBTARGET_DRIVER_SELF_SPECS): Likewise.
6607 * config/darwin.h (DRIVER_SELF_SPECS): Rename from this ...
6608 (SUBTARGET_DRIVER_SELF_SPECS): ...to this.
6609 * config/i386/i386.h (DRIVER_SELF_SPECS): Define.
6610 (SUBTARGET_DRIVER_SELF_SPECS): Likewise.
6612 2019-07-31 Richard Biener <rguenther@suse.de>
6614 PR tree-optimization/91280
6615 * tree-ssa-structalias.c (get_constraint_for_component_ref):
6616 Decompose MEM_REF manually for offset handling.
6618 2019-07-31 Richard Biener <rguenther@suse.de>
6620 PR tree-optimization/91293
6621 * tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands
6624 2019-07-31 Matt Thomas <matt@3am-software.com>
6625 Nick Hudson <nick@nthcliff.demon.co.uk>
6626 Matthew Green <mrg@eterna.com.au>
6627 Maya Rashish <coypu@sdf.org>
6629 * config.gcc (hppa*-*-netbsd*): New target.
6630 * config/pa/pa-netbsd.h: New file.
6631 * config/pa/pa32-netbsd.h: New file.
6633 2019-07-31 Jakub Jelinek <jakub@redhat.com>
6635 PR tree-optimization/91201
6636 * config/i386/mmx.md (reduc_plus_scal_v8qi): New expander.
6638 2019-07-31 Andrew Stubbs <ams@codesourcery.com>
6640 * config/gcn/gcn-valu.md
6641 (scatter<mode>_insn_1offset<exec_scatter>): Remove s_waitcnt.
6642 (scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise.
6643 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
6644 * config/gcn/gcn.c (gcn_md_reorg): Add delayeduse and reads to
6645 struct ilist. Add nops for delayeduse insns.
6646 * config/gcn/gcn.md (delayeduse): New attribute.
6647 (*movbi): Remove s_waitcnt from stores.
6648 (*mov<mode>_insn): Likewise.
6649 (*movti_insn): Likewise. Add delayeduse attribute.
6650 (sync_compare_and_swap<mode>_insn): Add delayeduse attribute.
6651 (atomic_store<mode>): Remove or adjust s_waitcnt.
6653 2019-07-31 Richard Biener <rguenther@suse.de>
6655 * vr-values.h (vr_values::swap_vr_value): New.
6656 (vr_values::free_value_range): likewise.
6657 * vr-values.c (vr_values::swap_vr_value): Implement.
6658 * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::pop_value_range):
6659 Do not return a range or take a var.
6660 (evrp_range_analyzer::stack): Change back to recording a non-const
6662 * gimple-ssa-evrp-analyze.c
6663 (evrp_range_analyzer::record_ranges_from_stmt): Free unused
6665 (evrp_range_analyzer::pop_to_marker): Adjust.
6666 (evrp_range_analyzer::push_value_range): Use new swap_vr_value.
6667 (evrp_range_analyzer::pop_value_range): Likewise. Free the
6668 no longer needed value-range.
6670 2019-07-31 Martin Liska <mliska@suse.cz>
6672 * tree-ssa-dce.c (propagate_necessity): Delete operator can
6673 have size and (or) alignment as 2nd and later arguments.
6674 Mark all of them as necessary.
6676 2019-07-31 Richard Biener <rguenther@suse.de>
6678 PR tree-optimization/91178
6679 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
6682 2019-07-31 Jakub Jelinek <jakub@redhat.com>
6684 PR tree-optimization/91201
6685 * config/i386/sse.md (reduc_plus_scal_v16qi): New expander.
6686 (REDUC_PLUS_MODE): Add V32QImode for TARGET_AVX and V64QImode for
6688 (reduc_plus_scal_<mode>): Improve formatting by introducing
6691 2019-07-31 Sudakshina Das <sudi.das@arm.com>
6693 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): Add
6694 AARCH64_TME_BUILTIN_TSTART, AARCH64_TME_BUILTIN_TCOMMIT,
6695 AARCH64_TME_BUILTIN_TTEST and AARCH64_TME_BUILTIN_TCANCEL.
6696 (aarch64_init_tme_builtins): New.
6697 (aarch64_init_builtins): Call aarch64_init_tme_builtins.
6698 (aarch64_expand_builtin_tme): New.
6699 (aarch64_expand_builtin): Handle TME builtins.
6700 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
6701 __ARM_FEATURE_TME when enabled.
6702 * config/aarch64/aarch64-option-extensions.def: Add "tme".
6703 * config/aarch64/aarch64.h (AARCH64_FL_TME, AARCH64_ISA_TME): New.
6705 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_TTEST.
6706 (define_c_enum "unspecv"): Add UNSPECV_TSTART, UNSPECV_TCOMMIT and
6708 (tstart, ttest, tcommit, tcancel): New instructions.
6709 * config/aarch64/arm_acle.h (__tstart, __tcommit): New.
6710 (__tcancel, __ttest): New.
6711 (_TMFAILURE_REASON, _TMFAILURE_RTRY, _TMFAILURE_CNCL): New macro.
6712 (_TMFAILURE_MEM, _TMFAILURE_IMP, _TMFAILURE_ERR): Likewise.
6713 (_TMFAILURE_SIZE, _TMFAILURE_NEST, _TMFAILURE_DBG): Likewise.
6714 (_TMFAILURE_INT, _TMFAILURE_TRIVIAL): Likewise.
6715 * config/arm/types.md: Add new tme type attr.
6716 * doc/invoke.texi: Document "tme".
6718 2019-07-31 Joel Hutton <Joel.Hutton@arm.com>
6720 * config/arm/arm_cmse.h (cmse_nonsecure_caller): Add
6721 warn_unused_result attribute.
6722 (cmse_check_address_range): Add warn_unused_result attribute.
6724 2019-07-31 Richard Biener <rguenther@suse.de>
6726 PR tree-optimization/91257
6727 * tree-vrp.c (union_ranges): Unify equality and less tests
6728 by using compare_values. Re-order cheap tests first.
6730 2019-07-31 Jakub Jelinek <jakub@redhat.com>
6733 * gimplify.c (gimplify_omp_for): If for class iterator on
6734 distribute parallel for there is no data sharing clause
6735 on inner_for_stmt, look for private clause on combined
6736 parallel too and if found, move it to inner_for_stmt.
6738 2019-07-31 Richard Sandiford <richard.sandiford@arm.com>
6740 * lra-int.h (lra_operand_data): Remove early_clobber field.
6741 (lra_insn_reg): Likewise.
6742 * lra.c (debug_operand_data): Update accordingly.
6743 (setup_operand_alternative): Likewise.
6744 (new_insn_reg): Likewise. Remove early_clobber parameter.
6745 (collect_non_operand_hard_regs): Update call accordingly.
6746 Don't assign to lra_insn_reg::early_clobber.
6747 (add_regs_to_insn_regno_info): Remove early_clobber parameter
6748 and update calls to new_insn_reg.
6749 (lra_update_insn_regno_info): Update calls accordingly.
6750 * lra-constraints.c (update_and_check_small_class_inputs): Take the
6751 alternative number as a parameter and test whether the operand
6752 is earlyclobbered in that particular alternative.
6753 (process_alt_operands): Update call accordingly. Use per-alternative
6754 checks for earyclobber here too.
6755 * lra-lives.c (reg_early_clobber_p): Check early_clobber_alts
6756 against zero for IRA_UNKNOWN_ALT.
6758 2019-07-30 Uroš Bizjak <ubizjak@gmail.com>
6760 * config/alpha/alpha.c (alpha_option_override): Quote a C type.
6762 2019-07-30 Wilco Dijkstra <wdijkstr@arm.com>
6764 * config/arm/thumb2.md (thumb2_movsi_insn): Adjust literal offset.
6765 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
6767 2019-07-30 Martin Liska <mliska@suse.cz>
6770 * cgraph.c (cgraph_edge::make_direct): Use
6771 edge->indirect_unknown_callee as edge->resolve_speculation can
6772 deallocate edge which is this pointer.
6774 2019-07-30 Richard Biener <rguenther@suse.de>
6776 PR tree-optimization/91257
6777 * bitmap.c (bitmap_ior_and_compl_into): Open-code.
6779 2019-07-30 Martin Liska <mliska@suse.cz>
6781 * doc/invoke.texi: Document new behavior.
6782 * lto-wrapper.c (cpuset_popcount): New function
6783 is a copy of libgomp/config/linux/proc.c.
6784 (init_num_threads): Likewise.
6785 (run_gcc): Automatically detect core count for -flto.
6786 (jobserver_active_p): New function.
6788 2019-07-30 Richard Biener <rguenther@suse.de>
6790 PR tree-optimization/91257
6791 * bitmap.h (bitmap_ior_into_and_free): Declare.
6792 * bitmap.c (bitmap_list_unlink_element): Add defaulted param
6793 whether to add the unliked element to the freelist.
6794 (bitmap_list_insert_element_after): Add defaulted param for
6795 an already allocated element.
6796 (bitmap_ior_into_and_free): New function.
6797 * tree-ssa-structalias.c (condense_visit): Reduce the
6798 ponts-to and edge bitmaps of the SCC members in a
6799 logarithmic fashion rather than all to one.
6801 2019-07-30 Richard Sandiford <richard.sandiford@arm.com>
6803 * tree-ssa-math-opts.c (convert_mult_to_fma): Add a mul_cond
6804 parameter. When nonnull, make sure that the addition or subtraction
6805 has the same condition.
6806 (math_opts_dom_walker::after_dom_children): Try convert_mult_to_fma
6807 for CFN_COND_MUL too.
6809 2019-07-30 Richard Biener <rguenther@suse.de>
6811 PR tree-optimization/91291
6812 * tree-ssa-sccvn.c (rpo_elim::eliminate_push_avail): Ignore
6815 2019-07-30 Jakub Jelinek <jakub@redhat.com>
6818 * omp-low.c (global_nonaddressable_vars): New variable.
6819 (use_pointer_for_field): For global decls, if they are non-addressable,
6820 remember it in the global_nonaddressable_vars bitmap, if they are
6821 addressable and in the global_nonaddressable_vars bitmap, ignore their
6822 TREE_ADDRESSABLE bit.
6823 (omp_copy_decl_2): Clear TREE_ADDRESSABLE also on private copies of
6824 vars in global_nonaddressable_vars bitmap.
6825 (execute_lower_omp): Free global_nonaddressable_vars bitmap.
6828 * config/i386/i386-expand.c (expand_vec_perm_blend): Change mask type
6829 from unsigned to unsigned HOST_WIDE_INT. For E_V64QImode cast
6830 comparison to unsigned HOST_WIDE_INT before shifting it left.
6832 2019-07-30 Uroš Bizjak <ubizjak@gmail.com>
6834 * config/i386/i386.md (movstrict<mode>): Use register_operand
6835 predicate for operand 0. Add expander condition. Assert that
6836 operand 0 is a SUBREG RTX.
6837 (*movstrict<mode>_1): Use register_operand predicate for operand 0.
6838 Update operand constraints and insn condition.
6839 (zero_extend<mode>si2_and): Do not call gen_movstrict<mode>.
6840 (zero_extendqihi2_and): Do not call gen_movstrictqi.
6841 (*setcc_qi_slp): Use register_operand predicate for operand 0.
6842 Update operand 0 constraints.
6843 (setcc_qi_slp splitters): Use register_operand predicate for operand 0.
6845 2019-07-29 Jozef Lawrynowicz <jozef.l@mittosystems.com>
6847 * config/msp430/msp430.h (DRIVER_SELF_SPECS): Define and emit errors
6848 when -m{code,data}-region are used without -mlarge.
6849 * config/msp430/msp430.c (msp430_option_override): Error when a
6850 non-default code or data region is used without -mlarge.
6851 (msp430_section_attr): Emit a warning and do not add upper/lower/either
6852 attributes when they are used without -mlarge.
6854 2019-07-29 Jozef Lawrynowicz <jozef.l@mittosystems.com>
6857 * config/msp430/msp430.h: Define ADDITIONAL_REGISTER_NAMES.
6859 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
6862 * wide-int.h (generic_wide_int::sext_elt): New function.
6863 * inchash.h (hash::add_wide_int): Use it instead of elt.
6865 2019-07-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6867 * config/arm/arm-builtins.c (acle_builtin_data): Expand VAR1 to
6869 * config/arm/arm.md (<crc_variant>): Rename to...
6870 (arm_<crc_variant>): ... This.
6871 (<cdp>): Rename to...
6872 (arm_<cdp>): ... This.
6873 (<ldc>): Rename to...
6874 (arm_<ldc>): ... This.
6875 (<stc>): Rename to...
6876 (arm_<stc>): ... This.
6877 (<mcr>): Rename to...
6878 (arm_<mcr>): ... This.
6879 (<mrc>): Rename to...
6880 (arm_<mrc>): ... This.
6881 (<mcrr>): Rename to...
6882 (arm_<mcrr>): ... This.
6883 (<mrrc>): Rename to...
6884 (arm_<mrrc>): ... This.
6886 2019-07-29 Richard Biener <rguenther@suse.de>
6888 PR tree-optimization/91257
6889 * tree-ssa-sccvn.h (struct vn_avail): New.
6890 (struct vn_ssa_aux): Add avail member.
6891 * tree-ssa-sccvn.c (class rpo_elim): Remove m_rpo_avail
6892 member, add m_avail_freelist one.
6893 (rpo_elim::~rpo_elim): Remove.
6894 (rpo_elim::eliminate_avail): Adjust to new avail tracking
6896 (rpo_elim::eliminate_push_avail): Likewise.
6897 (do_unwind): Likewise.
6898 (do_rpo_vn): Likewise.
6900 2019-07-29 Richard Biener <rguenther@suse.de>
6902 PR tree-optimization/91257
6903 * tree-vrp.c (operand_less_p): Avoid dispatching to fold for
6904 most cases, instead call compare_values which handles the
6905 symbolic ranges we handle specially.
6906 (compare_values_warnv): Do not call operand_less_p but open-code
6907 the effective fold calls. Avoid converting so much.
6909 2019-07-29 Martin Liska <mliska@suse.cz>
6911 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not
6912 remove LHS of operator new call. It's handled latter.
6914 2019-07-29 Richard Biener <rguenther@suse.de>
6916 PR tree-optimization/91267
6917 * vr-values.c (vr_values::update_value_range): Add early return
6918 for effectively VARYING lattice entry.
6920 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
6923 * tree-ssa-dce.c (keep_all_vdefs_p): New function.
6924 (mark_stmt_if_obviously_necessary): Mark all stmts with vdefs as
6925 necessary if keep_all_vdefs_p is true.
6926 (mark_aliased_reaching_defs_necessary): Add a gcc_checking_assert
6927 that keep_all_vdefs_p is false.
6928 (mark_all_reaching_defs_necessary): Likewise.
6929 (propagate_necessity): Skip the vuse scan if keep_all_vdefs_p is true.
6931 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
6933 * common.opt (Og): Change the initial value of flag_dse to 0.
6934 * opts.c (default_options_table): Move OPT_ftree_dse from
6935 OPT_LEVELS_1_PLUS to OPT_LEVELS_1_PLUS_NOT_DEBUG. Also add
6936 OPT_fdse to OPT_LEVELS_1_PLUS_NOT_DEBUG. Put the OPT_ftree_pta
6937 entry before the OPT_ftree_sra entry.
6938 * doc/invoke.texi (Og): Add -fdse and -ftree-dse to the list
6939 of flags disabled by Og.
6941 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
6943 * tree-cfg.c (execute_fixup_cfg): Don't delete stores to write-only
6946 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
6948 * doc/sourcebuild.texi (check-function-bodies): Document.
6950 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
6952 * simplify-rtx.c (simplify_const_unary_operation): Fold a
6953 VEC_DUPLICATE of a fixed-length vector even if the result
6954 is variable-length. Likewise fold a duplicate of a
6955 variable-length vector if the variable-length vector is
6956 itself a duplicate of a fixed-length sequence.
6957 (test_vector_ops_duplicate): Test more cases.
6959 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
6961 * vector-builder.h (vector_builder): Add a shape template parameter.
6962 (vector_builder::new_unary_operation): New function, generalizing
6963 the old tree_vector_builder function.
6964 (vector_builder::new_binary_operation): Likewise.
6965 (vector_builder::binary_encoded_nelts): Likewise.
6966 * int-vector-builder.h (int_vector_builder): Update template
6967 parameters to vector_builder.
6968 (int_vector_builder::shape_nelts): New function.
6969 * rtx-vector-builder.h (rtx_vector_builder): Update template
6970 parameters to vector_builder.
6971 (rtx_vector_builder::shape_nelts): New function.
6972 (rtx_vector_builder::nelts_of): Likewise.
6973 (rtx_vector_builder::npatterns_of): Likewise.
6974 (rtx_vector_builder::nelts_per_pattern_of): Likewise.
6975 * tree-vector-builder.h (tree_vector_builder): Update template
6976 parameters to vector_builder.
6977 (tree_vector_builder::shape_nelts): New function.
6978 (tree_vector_builder::nelts_of): Likewise.
6979 (tree_vector_builder::npatterns_of): Likewise.
6980 (tree_vector_builder::nelts_per_pattern_of): Likewise.
6981 * tree-vector-builder.c (tree_vector_builder::new_unary_operation)
6982 (tree_vector_builder::new_binary_operation): Delete.
6983 (tree_vector_builder::binary_encoded_nelts): Likewise.
6984 * simplify-rtx.c: Include rtx-vector-builder.h.
6985 (distributes_over_addition_p): New function.
6986 (simplify_const_unary_operation)
6987 (simplify_const_binary_operation): Generalize handling of vector
6988 constants to include variable-length vectors.
6989 (test_vector_ops_series): Add more tests.
6991 2019-07-28 Jan Hubicka <hubicka@ucw.cz>
6994 * ipa-devirt.c (warn_types_mismatch): Compare indentifiers
6995 than INDENTIFIER_POINTER.
6997 2019-07-28 Martin Liska <mliska@suse.cz>
7000 * cgraph.c (symbol_table::create_edge): Always allocate
7002 (symbol_table::free_edge): Store summary_id to
7003 edge_released_summary_ids if != -1;
7004 * cgraph.h (NEXT_FREE_NODE): Remove.
7005 (SET_NEXT_FREE_NODE): Likewise.
7006 (NEXT_FREE_EDGE): Likewise.
7007 (symbol_table::release_symbol): Store summary_id to
7008 cgraph_released_summary_ids if != -1;
7009 (symbol_table::allocate_cgraph_symbol): Always allocate
7012 2019-07-28 Alan Modra <amodra@gmail.com>
7014 * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
7017 2019-07-28 Alan Modra <amodra@gmail.com>
7020 * config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Don't
7022 * config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Invoke
7023 GNU_USER_TARGET_OS_CPP_BUILTINS for aixdesc abi.
7024 (GNU_USER_TARGET_D_OS_VERSIONS): Don't define.
7026 2019-07-28 Alan Modra <amodra@gmail.com>
7029 * config/rs6000/sysv4.h (ASM_DEFAULT_SPEC): Modify if -m64.
7030 * config/rs6000/default64.h (ASM_DEFAULT_SPEC): Define.
7031 * config/rs6000/freebsd64.h (ASM_DEFAULT_SPEC): Don't define.
7032 * config/rs6000/linux64.h (ASM_DEFAULT_SPEC): Likewise.
7033 * config/rs6000/rtems.h (ASM_DEFAULT_SPEC): Likewise.
7034 * config/rs6000/rs6000.h (ASM_DEFAULT_EXTRA): Define and use
7035 in asm_default spec.
7036 * config/rs6000/eabialtivec.h (ASM_DEFAULT_EXTRA): Redefine.
7037 * config/rs6000/linuxaltivec.h (ASM_DEFAULT_EXTRA): Redefine.
7039 2019-07-28 Gerald Pfeifer <gerald@pfeifer.com>
7041 * doc/include/gpl_v3.texi (Copying): Use https for www.gnu.org.
7043 2019-07-26 Tamar Christina <tamar.christina@arm.com>
7046 * config.gcc: Relax parsing of AARCH64_OPT_EXTENSION.
7047 * config/aarch64/aarch64-option-extensions.def: Add new comments
7048 and restore easier to read options.
7050 2019-07-26 Tamar Christina <tamar.christina@arm.com>
7052 * convert.c (convert_to_real_1): Move part of conversion code...
7053 * match.pd: ...To here.
7055 2019-07-26 Martin Jambor <mjambor@suse.cz>
7058 * ipa-inline-transform.c (check_speculations_1): New function.
7059 (push_all_edges_in_set_to_vec): Likewise.
7060 (check_speculations): Use check_speculations_1, new parameter
7062 (inline_call): Pass new_edges to check_speculations.
7063 * ipa-inline.c (add_new_edges_to_heap): Assert edge_callee is not
7065 (speculation_useful_p): Early return true if edge is inlined, remove
7066 later checks for inline_failed.
7068 2019-07-25 Vladimir Makarov <vmakarov@redhat.com>
7070 PR rtl-optimization/91223
7071 * lra-constraints.c (process_alt_operands): Fail for unsuccessful
7072 matching with INOUT operand.
7074 2019-07-25 Eric Botcazou <ebotcazou@adacore.com>
7076 * stmt.c (expand_case): Try to narrow the index type if it's larger
7077 than a word. Tidy up.
7079 2019-07-25 Eric Botcazou <ebotcazou@adacore.com>
7081 * cif-code.def (NEVER_CALL): New code.
7082 * ipa-inline.c (want_inline_small_function_p): Fix formatting issues.
7083 Set the failure to CIF_NEVER_CALL if the IPA count is zero.
7085 2019-07-25 Wilco Dijkstra <wdijkstr@arm.com>
7087 * config/arm/thumb2.md (thumb2_movsi_insn): Fix load/store low reg.
7088 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
7090 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
7092 * ipa-devirt.c (add_type_duplicate): Fix return value.
7094 2019-07-25 Richard Biener <rguenther@suse.de>
7096 * tree-vrp.c (extract_range_from_multiplicative_op): Add
7097 type parameter and use it instead of guessing expression
7098 type from the first operand.
7099 (extract_range_from_binary_expr): Pass expr_type down.
7101 2019-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7103 * config/arm/arm.md (SATrev): Change to code attribute.
7104 (*satsi_<SAT:code>): Adjust for the above.
7105 (*satsi_<SAT:code>_shift): Likewise.
7107 2019-07-25 Richard Biener <rguenther@suse.de>
7109 * gimple-loop-versioning.cc (loop_versioning::prune_loop_conditions):
7110 Make value_range * temporary const.
7111 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
7113 (evrp_range_analyzer::record_ranges_from_): Likewise.
7114 (evrp_range_analyzer::pop_value_range): Return a const value_range *,
7115 deal with having recorded a const one.
7116 * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::get_value_range):
7117 Return a const value_range *.
7118 (evrp_range_analyzer::pop_value_range): Likewise.
7119 (evrp_range_analyzer::stack): Record const value_range *s.
7120 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
7122 * gimple-ssa-sprintf.c (get_int_range): Likewise.
7123 (format_integer): Likewise.
7124 (sprintf_dom_walker::handle_gimple_call): Likewise.
7125 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Likewise.
7126 * tree-vrp.c (vrp_prop::set_def_to_varying): Add.
7127 (vrp_prop::get_value_range): Adjust.
7128 (vrp_prop::vrp_initialize): Use set_def_to_varying instead of
7129 modifying the lattice in-place.
7130 (vrp_prop::visit_stmt): Likewise.
7131 * vr-values.c (vr_values::get_lattice_entry): New private method.
7132 (vr_values::get_value_range): Wrap it and return a const
7134 (vr_values::set_def_to_varying): New.
7135 (vr_values::set_defs_to_varying): Use it.
7136 (vr_values::update_value_range): Likewise.
7137 (vr_values::vrp_stmt_computes_nonzero): Adjust.
7138 (values::op_with_constant_singleton_va): Likewise.
7139 (vr_values::extract_range_for_var_from_co): Likewise.
7140 (vr_values::extract_range_from_ssa_name): Likewise.
7141 (vr_values::extract_range_from_cond_expr): Likewise.
7142 (vr_values::extract_range_basic): Likewise.
7143 (compare_ranges): Take const value_range *, adjust.
7144 (compare_range_with_value): Likewise.
7145 (vrp_valueize): Adjust.
7146 (vrp_valueize_1): Likewise.
7147 (vr_values::get_vr_for_comparison): Return a const value_range *.
7148 (vr_values::compare_name_with_value): Adjust.
7149 (vr_values::compare_names): Likewise.
7150 (vr_values::vrp_evaluate_conditional_warnv_with_ops_using_ranges):
7152 (vr_values::vrp_evaluate_conditional): Likewise.
7153 (find_case_label_ranges): Take a const value_range *.
7154 (vr_values::vrp_visit_switch_stmt): Adjust.
7155 (vr_values::extract_range_from_phi_node): Likewise.
7156 (vr_values::simplify_div_or_mod_using_ran): Likewise.
7157 (vr_values::simplify_abs_using_ranges): Likewise.
7158 (test_for_singularity): Take a const value_range *.
7159 (range_fits_type_p): Likewise.
7160 (vr_values::simplify_cond_using_ranges_1): Adjust.
7161 (vr_values::simplify_cond_using_ranges_2): Likewise.
7162 (vr_values::simplify_switch_using_ranges): Likewise.
7163 (vr_values::simplify_float_conversion_usi): Likewise.
7164 (vr_values::two_valued_val_range_p): Likewise.
7165 * vr-values.h (vr_values::get_value_range): Return a const
7167 (vr_values::set_def_to_varying): New.
7168 (vr_values::get_lattice_entry): New private method.
7169 (vr_values::get_vr_for_comparison): Return a const value_range *.
7171 2019-07-25 Martin Liska <mliska@suse.cz>
7172 Dominik Infuhr <dominik.infuehr@theobroma-systems.com>
7175 * common.opt: Add -fallocation-dce
7176 * gimple.c (gimple_call_operator_delete_p): New.
7177 * gimple.h (gimple_call_operator_delete_p): Likewise.
7178 * tree-core.h (enum function_decl_type): Add OPERATOR_DELETE.
7179 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Handle
7180 DECL_IS_OPERATOR_DELETE_P.
7181 (mark_all_reaching_defs_necessary_1): Likewise.
7182 (propagate_necessity): Likewise.
7183 (eliminate_unnecessary_stmts): Handle
7184 gimple_call_operator_delete_p.
7185 * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
7186 Add packing of OPERATOR_DELETE.
7187 * tree-streamer-out.c (pack_ts_function_decl_value_fields):
7189 * tree.h (DECL_IS_OPERATOR_DELETE_P): New.
7190 (DECL_SET_IS_OPERATOR_DELETE): New.
7191 (DECL_IS_REPLACEABLE_OPERATOR_NEW_P): Likewise.
7193 2019-07-25 Martin Liska <mliska@suse.cz>
7195 * calls.c (maybe_warn_alloc_args_overflow): Use new macros
7196 (e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P).
7197 * coverage.c (coverage_begin_function): Likewise.
7198 * fold-const.c (tree_expr_nonzero_warnv_p): Likewise.
7199 * gimple.c (gimple_call_nonnull_result_p): Likewise.
7200 * ipa-icf.c (sem_item::compare_referenced_symbol_properties): Likewise.
7201 (sem_item::hash_referenced_symbol_properties): Likewise.
7202 * lto-streamer-out.c (hash_tree): Likewise.
7203 * predict.c (expr_expected_value_1): Likewise.
7204 * tree-inline.c (expand_call_inline): Likewise.
7205 * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise.
7206 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise.
7207 * tree-core.h (enum function_decl_type): New enum.
7208 (struct tree_function_decl): Remove operator_new_flag and lambda_function.
7209 * tree.h (FUNCTION_DECL_DECL_TYPE): New.
7210 (set_function_decl_type): Likewise.
7211 (DECL_IS_OPERATOR_NEW_P): New.
7212 (DECL_SET_IS_OPERATOR_NEW): Likewise.
7213 (DECL_LAMBDA_FUNCTION): Likewise.
7214 (DECL_LAMBDA_FUNCTION_P): Likewise.
7215 (DECL_IS_OPERATOR_NEW): Remove.
7216 (DECL_SET_LAMBDA_FUNCTION): Likewise.
7218 2019-07-25 Xiong Hu Luo <luoxhu@linux.ibm.com>
7220 * ipa-profile.c (get_most_common_single_value): Use
7221 get_nth_most_common_value.
7222 * profile.c (sort_hist_value): New function.
7223 (compute_value_histograms): Call sort_hist_value to sort the
7224 values after loading from disk.
7225 * value-prof.c (get_most_common_single_value): Rename to ...
7226 get_nth_most_common_value. Add input params n, return
7227 the n_th value and count.
7228 (gimple_divmod_fixed_value_transform): Use
7229 get_nth_most_common_value.
7230 (gimple_ic_transform): Likewise.
7231 (gimple_stringops_transform): Likewise.
7232 * value-prof.h (get_most_common_single_value): Add input params
7235 2019-07-25 Richard Biener <rguenther@suse.de>
7237 PR tree-optimization/91236
7238 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
7239 size of CONSTRUCTOR write. Fix buffer size we pass to
7242 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
7244 * config.gcc (msp430*-*-*): Fix non-GNU style in r273774.
7245 * config/msp430/msp430.h (ENDFILE_SPEC): Fix non-GNU style in
7248 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
7250 * config.gcc (msp430*-*-*): Enable initfini_array by default unless
7251 explicitly disabled with --disable-initfini-array.
7253 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
7255 * config/msp430/msp430.h (ENDFILE_SPEC): Wrap uses of crtn*.o in
7258 2019-07-24 Martin Sebor <msebor@redhat.com>
7260 PR tree-optimization/91183
7261 PR tree-optimization/86688
7262 * builtins.c (compute_objsize): Handle MEM_REF.
7263 * tree-ssa-strlen.c (class ssa_name_limit_t): New.
7264 (get_min_string_length): Remove.
7265 (count_nonzero_bytes): New function.
7266 (handle_char_store): Rename...
7267 (handle_store): to this. Handle multibyte stores via integer types.
7268 (strlen_check_and_optimize_stmt): Adjust conditional and the called
7271 2019-07-24 Martin Sebor <msebor@redhat.com>
7274 * diagnostic.c (diagnostic_classify_diagnostic): Use lang_mask.
7275 (diagnostic_report_diagnostic): Same.
7276 * diagnostic.h (diagnostic_context::option_enabled): Add an argument.
7277 (diagnostic_context::lang_mask): New data member.
7278 * ipa-pure-const.c (suggest_attribute): Use
7279 lang_hooks.option_lang_mask ().
7280 * opts-common.c (option_enabled): Handle new argument.
7281 (get_option_state): Pass an additional argument.
7282 * opts.c (print_filtered_help): Print supported languages for
7283 unsupported options. Adjust printing of current state.
7284 * opts.h (option_enabled): Add argument.
7285 * toplev.c (print_switch_values): Use lang_mask.
7286 (general_init): Set global_dc->lang_mask.
7288 2019-07-24 Iain Sandoe <iain@sandoe.co.uk>
7291 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749.
7293 2019-07-24 Giuliano Belinassi <giuliano.belinassi@usp.br>
7295 * cgraphunit.c (symbol_table::compile): Start and stop
7296 TV_CGRAPH_IPA_PASSES and TV_CGRAPH_FUNC_EXPANSION timers.
7297 * timevar.def (TV_CGRAPH_IPA_PASSES, TV_CGRAPH_FUNC_EXPANSION): New.
7299 2019-07-24 Oliver Browne <oliverbrowne62@gmail.com>
7301 * gimplify.c (flag_instrument_functions_exclude_p): Include
7302 namespace/class information in the printable name.
7303 * opts.c (add_comma_separated_to_vector): Add NUL terminator
7304 to tokens entered into the vector.
7306 2019-07-24 Eric Botcazou <ebotcazou@adacore.com>
7308 * tree-nested.c (build_simple_mem_ref_notrap): New function.
7309 (get_static_chain): Call it instead of build_simple_mem_ref.
7310 (get_frame_field): Likewise.
7311 (get_nonlocal_debug_decl): Likewise.
7312 (convert_nonlocal_reference_op): Likewise.
7314 2019-07-24 Claudiu Zissulescu <claziss@synopsys.com>
7316 * config/arc/arc-protos.h (arc_output_function_epilogue): Delete
7318 (arc_compute_frame_size): Millicode is disabled when compiling
7320 (arc_return_address_register): Likewise.
7321 (arc_compute_function_type): Likewise.
7322 (arc_compute_frame_size): Likewise.
7323 (secondary_reload_info): Likewise.
7324 (arc_get_unalign): Likewise.
7325 (arc_can_use_return_insn): Declare.
7326 * config/arc/arc.c (AUX_LP_START): Define
7327 (AUX_LP_END): Likewise.
7328 (arc_frame_info): Update gmask member to 64-bit datum.
7329 (GMASK_LEN): Update.
7330 (arc_compute_function_type): Make it static, move it forward.
7331 (arc_must_save_register): Update, consider the extra regs.
7332 (arc_compute_millicode_save_restore_regs): Update to use the 64
7334 (arc_compute_frame_size): Likewise.
7335 (arc_enter_leave_p): Likewise.
7336 (arc_save_callee_saves): Likewise.
7337 (arc_restore_callee_saves): Likewise.
7338 (arc_save_callee_enter): Likewise.
7339 (arc_restore_callee_leave): Likewise.
7340 (arc_save_callee_milli): Likewise.
7341 (arc_restore_callee_milli): Likewise.
7342 (arc_expand_prologue): Add new interrupt handling.
7343 (arc_return_address_register): Make it static, move it forward.
7344 (arc_expand_epilogue): Add new interrupt handling.
7345 (arc_get_unalign): Delete.
7346 (arc_epilogue_uses): Make sure we do not remove the extra
7347 saved/restored registers when interrupt.
7348 (arc_can_use_return_insn): New function.
7349 (push_reg): Likewise.
7350 (pop_reg): Likewise.
7351 (arc_save_callee_saves): Add ZOL and FPX aux registers saving
7353 (arc_restore_callee_saves): Likewise, but restoring.
7354 * config/arc/arc.md (VUNSPEC_ARC_ARC600_RTIE): Define.
7355 (R33_REG): Likewise.
7356 (R34_REG): Likewise.
7357 (R35_REG): Likewise.
7358 (R36_REG): Likewise.
7359 (R37_REG): Likewise.
7360 (R38_REG): Likewise.
7361 (R39_REG): Likewise.
7362 (R45_REG): Likewise.
7363 (R46_REG): Likewise.
7364 (R47_REG): Likewise.
7365 (R48_REG): Likewise.
7366 (R49_REG): Likewise.
7367 (R50_REG): Likewise.
7368 (R51_REG): Likewise.
7369 (R52_REG): Likewise.
7370 (R53_REG): Likewise.
7371 (R54_REG): Likewise.
7372 (R55_REG): Likewise.
7373 (R56_REG): Likewise.
7374 (R58_REG): Likewise.
7375 (type): Add rtie attribute.
7376 (in_call_delay_slot): Use RETURN_ADDR_REGNUM.
7377 (movsi_insn): Accept moves to lp_count.
7378 (rtie): Update pattern.
7379 (simple_return): Simplify it, don't use this pattern as a return
7381 (arc600_rtie): New pattern.
7382 (p_return_i): Clean up.
7384 * config/arc/builtins.def (rtie): Only available for non ARC6xx
7386 * config/arc/predicates.md (move_src_operand): Consider lp_count
7389 2019-07-24 Andreas Krebbel <krebbel@linux.ibm.com>
7391 * config/s390/predicates.md (addv_const_operand): New predicate.
7392 * config/s390/s390-modes.def (CCO): New condition code mode.
7393 * config/s390/s390.c (s390_match_ccmode_set): Handle E_CCOmode.
7394 (s390_branch_condition_mask): Likewise.
7395 * config/s390/s390.md ("addv<mode>4", "subv<mode>4")
7396 ("mulv<mode>4"): New expanders.
7397 ("*addv<mode>3_ccoverflow", "*addv<mode>3_ccoverflow_const")
7398 ("*subv<mode>3_ccoverflow", "*mulv<mode>3_ccoverflow"): New
7399 pattern definitions.
7401 2019-07-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7404 * match.pd (vec_perm_expr(v, v, mask) -> v): New pattern.
7405 (define_predicates): Add entry for uniform_vector_p.
7406 (vec_same_elem_p): New match pattern.
7408 2019-07-24 Iain Sandoe <iain@sandoe.co.uk>
7411 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here...
7412 * config/i386/darwin32-biarch.h .. to here.
7413 * config/i386/darwin64-biarch.h: Adjust comments.
7414 * config/rs6000/darwin32-biarch.h: Likewise.
7415 * config/rs6000/darwin64-biarch.h: Likewise.
7416 * config.gcc: Missed commit from r273746
7417 (*-*-darwin*): Don't include CPU t-darwin here.
7418 (i[34567]86-*-darwin*): Adjust to use biarch files. Produce
7419 an error message if i686-darwin configuration is attempted for
7422 2019-07-23 Iain Sandoe <iain@sandoe.co.uk>
7425 * config.gcc (*-*-darwin*): Don't include CPU t-darwin here.
7426 (i[34567]86-*-darwin*): Adjust to use biarch files. Produce
7427 an error message if i686-darwin configuration is attempted for
7429 (x86_64-*-darwin*): Switch to single multilib for Darwin >= 18.
7430 (powerpc-*-darwin*): Use biarch files where needed.
7431 (powerpc64-*-darwin*): Likewise.
7432 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file.
7433 (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
7435 * config/i386/darwin32-biarch.h: New.
7436 * config/i386/darwin64.h: Rename.
7437 * config/i386/darwin64-biarch.h: To this.
7438 * config/i386/t-darwin: Rename.
7439 * config/i386/t-darwin32-biarch: To this.
7440 * config/i386/t-darwin64: Rename.
7441 * config/i386/t-darwin64-biarch: To this.
7442 * config/rs6000/darwin32-biarch.h: New.
7443 * config/rs6000/darwin64.h: Rename.
7444 * config/rs6000/darwin64-biarch.h: To this.
7445 (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
7447 * config/rs6000/t-darwin8: Rename.
7448 * config/rs6000/t-darwin32-biarch: To this.
7449 * config/rs6000/t-darwin64 Rename.
7450 * config/rs6000/t-darwin64-biarch: To this.
7452 2019-07-23 Martin Sebor <msebor@redhat.com>
7454 * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Revert r273311.
7456 2019-07-23 Vladislav Ivanishin <vlad@ispras.ru>
7458 * gdbinit.in (reload-gdbhooks): New command with an attached doc string.
7459 (rh): New alias for it.
7461 2019-07-23 Vladislav Ivanishin <vlad@ispras.ru>
7463 * gdbhooks.py: Pass replace=True to
7464 gdb.printing.register_pretty_printer.
7466 2019-07-23 Richard Biener <rguenther@suse.de>
7469 * lto-streamer-in.c (input_function): Drop inline-entry markers
7470 that ended up with an unknown location block.
7472 2019-07-23 Richard Biener <rguenther@suse.de>
7474 PR tree-optimization/83518
7475 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle aggregate
7476 init from a constant even when partial defs are already recorded.
7478 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
7480 * i386-common.c: Use PROCESSOR_ZNVER2 scheduler for znver2.
7481 * config/i386/znver1.md: Enable patterns for znver2 and add store
7482 variants which use extra AGU unit.
7484 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
7486 * config/i386/i386-options.c (ix86_option_override_internal): Default
7487 PARAM_AVOID_FMA_MAX_BITS to 256 for znver2.
7488 * config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS): Set
7491 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
7493 * config/i386/x86-tune-costs.h (znver2_memcpy): Update.
7494 (znver2_costs): Update 256 bit SSE costs and multiplication.
7496 2019-07-23 Jan Beulich <jbeulich@suse.com>
7498 * config/i386/sse.md (<avx512>_cvtmask2<ssemodesuffix><mode>):
7499 Require only AVX512F.
7500 (*<avx512>_cvtmask2<ssemodesuffix><mode>): Likewise. Add
7501 alternative expanding to vpternlog.
7503 2019-07-23 Martin Liska <mliska@suse.cz>
7505 * dwarf2out.c (gen_producer_string): Canonize -flto=N
7506 to -flto in dwarf producer string.
7508 2019-07-23 Richard Biener <rguenther@suse.de>
7510 * tree-cfg.c (label_for_bb): Remove global var.
7511 (main_block_label): Take label_for_bb as argument.
7512 (cleanup_dead_labels_eh): Likewise, adjust.
7513 (cleanup_dead_labels): Adjust.
7515 2019-07-22 Paul A. Clarke <pc@us.ibm.com>
7517 * doc/extend.texi (Basic PowerPC Built-in Functions Available on all
7518 Configurations): Add documentation for __builtin_mtfsf.
7520 2019-07-22 Ilia Diachkov <ilia.diachkov@optimitech.com>
7522 * config/riscv/riscv-opts.h (struct riscv_align_data): New.
7523 * config/riscv/riscv.c (riscv_constant_alignment): Use
7524 riscv_align_data_type.
7525 * config/riscv/riscv.h (RISCV_EXPAND_ALIGNMENT): New.
7526 (DATA_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT.
7527 (LOCAL_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT.
7528 * config/riscv/riscv.opt (malign-data): New.
7529 * doc/invoke.texi (RISC-V Options): Document -malign-data=.
7531 2019-07-02 Giuliano Belinassi <giuliano.belinassi@usp.br>
7533 * cgraph.c (dump_graphviz): New function.
7534 * cgraph.h (dump_graphviz): New function.
7535 * symtab.c (dump_graphviz): New function.
7537 2019-07-22 Sylvia Taylor <sylvia.taylor@arm.com>
7539 * config/aarch64/aarch64-simd.md
7540 (*aarch64_simd_sra<mode>): New.
7541 * config/aarch64/iterators.md
7542 (SHIFTRT): New iterator.
7543 (sra_op): New attribute.
7545 2019-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com>
7547 * config/msp430/msp430.c (msp430_preserve_reg_p): Don't save
7548 callee-saved regs R4->R10 in an interrupt function that calls another
7551 2019-07-22 Paul A. Clarke <pc@us.ibm.com>
7553 * config/rs6000/smmintrin.h (_mm_blend_epi16): New.
7554 (_mm_blendv_epi8): New.
7556 2019-07-22 Richard Biener <rguenther@suse.de>
7558 PR tree-optimization/91221
7559 * tree-ssa-sccvn.c (vn_reference_lookup_3): Appropriately
7560 restrict partial-def handling of empty constructors and
7561 memset to refs with known offset.
7563 2019-07-22 Jan Beulich <jbeulich@suse.com>
7565 * config/i386/sse.md (ternlogsuffix): New.
7566 (one_cmpl<mode>2): Don't force CONSTM1_RTX into a register when
7568 (<mask_codefor>one_cmpl<mode>2<mask_name>): New.
7570 2019-07-22 Martin Liska <mliska@suse.cz>
7572 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Update
7574 * toplev.c (compile_file): Do not emit __gnu_lto_v1 symbol.
7576 2019-07-22 Martin Liska <mliska@suse.cz>
7578 * lto-section-in.c (lto_get_section_data):
7579 Use new function get_compression.
7580 * lto-streamer-out.c (produce_lto_section): Use
7581 set_compression to encode compression algorithm.
7582 * lto-streamer.h (struct lto_section): Do not
7583 use bitfields in the format.
7585 2019-07-22 Martin Liska <mliska@suse.cz>
7588 * opts-common.c (decode_cmdline_option): Decode
7589 argument of -Werror and check it for a wrong language.
7590 * opts-global.c (complain_wrong_lang): Remove such case.
7592 2019-07-22 Claudiu Zissulescu <claziss@synopsys.com>
7594 * config/arc/arc.c (prepare_move_operands): Always use an
7595 intermediate register when storing a TLS symbols.
7597 2019-07-22 Stafford Horne <shorne@gmail.com>
7599 * config/or1k/or1k.c (or1k_expand_compare): Check for int before
7602 2019-07-22 Stafford Horne <shorne@gmail.com>
7604 * config.gcc (or1k*-*-*): Add mhard-float, mdouble-float, msoft-float
7605 and munordered-float validations.
7606 * config/or1k/constraints.md (d): New register constraint.
7607 * config/or1k/predicates.md (fp_comparison_operator): New.
7608 * config/or1k/or1k.c (or1k_print_operand): Add support for printing 'd'
7610 (or1k_expand_compare): Normalize unordered comparisons.
7611 * config/or1k/or1k.h (reg_class): Define DOUBLE_REGS.
7612 (REG_CLASS_NAMES): Add "DOUBLE_REGS".
7613 (REG_CLASS_CONTENTS): Add contents for DOUBLE_REGS.
7614 * config/or1k/or1k.md (type): Add fpu.
7615 (fpu): New instruction reservation.
7616 (F, f, fr, fi, FI, FOP, fop): New.
7617 (<fop><F:mode>3): New ALU instruction definition.
7618 (float<fi><F:mode>2): New conversion instruction definition.
7619 (fix_trunc<F:mode><fi>2): New conversion instruction definition.
7620 (fpcmpcc): New code iterator.
7621 (*sf_fp_insn): New instruction definition.
7622 (cstore<F:mode>4): New expand definition.
7623 (cbranch<F:mode>4): New expand definition.
7624 * config/or1k/or1k.opt (msoft-float, mhard-float, mdouble-float,
7625 munordered-float): New options.
7626 * doc/invoke.texi: Document msoft-float, mhard-float, mdouble-float and
7629 2019-07-22 Stafford Horne <shorne@gmail.com>
7631 * config.gcc (or1k*-*-*): Add mrori and mror to validation.
7632 * doc/invoke.texi (OpenRISC Options): Add mrori option, rewrite all
7633 documenation to be more clear.
7634 * config/or1k/elf.opt (mboard=, mnewlib): Rewrite documentation to be
7636 * config/or1k/or1k.opt (mrori): New option.
7637 (mhard-div, msoft-div, mhard-mul, msoft-mul, mcmov, mror, msext,
7638 msfimm, mshftimm): Rewrite documentation to be more clear.
7639 * config/or1k/or1k.md (insn_support): Add ror and rori.
7640 (enabled): Add conditions for ror and rori.
7641 (rotrsi3): Replace condition for shftimm with ror and rori.
7643 2019-07-22 Stafford Horne <shorne@gmail.com>
7646 * config/or1k/or1k.md (zero_extend<mode>si2): Update predicate.
7647 (extend<mode>si2): Update predicate.
7648 * config/or1k/predicates.md (volatile_mem_operand): New.
7649 (reg_or_mem_operand): New.
7651 2019-07-21 Iain Sandoe <iain@sandoe.co.uk>
7653 * config/rs6000/rs6000.c (TARGET_NO_PROTOTYPE): Move from here...
7654 * config/rs6000/rs6000-call.c: ... to here.
7656 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
7658 * config/rs6000/predicates.md (offsettable_mem_operand): Allow volatile
7661 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
7663 * config/rs6000/predicates.md (input_operand): Allow volatile memory.
7665 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
7667 * config/rs6000/predicates.md (lwa_operand): Allow volatile memory.
7669 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
7671 * config/rs6000/predicates.md (volatile_mem_operand): Modernize syntax.
7672 (any_memory_operand): New predicate.
7673 (reg_or_mem_operand): Use it.
7675 2019-07-20 Jakub Jelinek <jakub@redhat.com>
7678 * optabs.c (expand_unop): As fallback, expand ~op0 as op0 ^ -1.
7680 2019-07-20 John David Anglin <danglin@gcc.gnu.org>
7682 * config/pa/pa.h (hppa_profile_hook): Delete declaration.
7683 * config/pa/pa-protos.h (hppa_profile_hook): Add declaration.
7685 2019-07-20 Jakub Jelinek <jakub@redhat.com>
7687 * tree.def (OMP_LOOP): New tree code.
7688 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_BIND.
7689 (enum omp_clause_bind_kind): New enum.
7690 (struct tree_omp_clause): Add subcode.bind_kind.
7691 * tree.h (OMP_LOOP_CHECK): Rename to ...
7692 (OMP_LOOPING_CHECK): ... this.
7693 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
7694 OMP_FOR_INCR, OMP_FOR_PRE_BODY, OMP_FOR_ORIG_DECLS): Use
7695 OMP_LOOPING_CHECK instead of OMP_LOOP_CHECK.
7696 (OMP_CLAUSE_BIND_KIND): Define.
7697 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
7698 bind clause entries.
7699 (walk_tree_1): Handle OMP_CLAUSE_BIND.
7700 * tree-pretty-print.c (dump_omp_clause): Likewise.
7701 (dump_generic_node): Handle OMP_LOOP.
7702 * gimplify.c (enum omp_region_type): Add ORT_IMPLICIT_TARGET.
7703 (in_omp_construct): New variable.
7704 (is_gimple_stmt): Handle OMP_LOOP.
7705 (gimplify_scan_omp_clauses): For lastprivate don't set
7706 check_non_private if code == OMP_LOOP. For reduction clause
7707 on OMP_LOOP combined with parallel or teams propagate as shared
7708 on the combined construct. Handle OMP_CLAUSE_BIND.
7709 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_BIND.
7710 (gimplify_omp_for): Pass OMP_LOOP instead of OMP_{FOR,DISTRIBUTE}
7711 for constructs from a loop construct to gimplify_scan_omp_clauses.
7712 Don't predetermine iterator linear on OMP_SIMD from loop construct.
7713 (replace_reduction_placeholders, gimplify_omp_loop): New functions.
7714 (gimplify_omp_workshare): Use ORT_IMPLICIT_TARGET instead of trying
7715 to match the implicit ORT_TARGET construct around whole body.
7716 Temporarily clear in_omp_construct when processing body.
7717 (gimplify_expr): Handle OMP_LOOP. For OMP_MASTER, OMP_TASKGROUP
7718 etc. temporarily set in_omp_construct when processing body.
7719 (gimplify_body): Create ORT_IMPLICIT_TARGET instead of ORT_TARGET.
7720 * omp-low.c (struct omp_context): Add loop_p.
7721 (build_outer_var_ref): Treat ctx->loop_p similarly to simd construct
7722 in that the original var might be private.
7723 (scan_sharing_clauses): Handle OMP_CLAUSE_BIND.
7724 (check_omp_nesting_restrictions): Adjust nesting restrictions for
7725 addition of loop construct.
7726 (scan_omp_1_stmt): Allow setjmp inside of loop construct.
7728 * omp-low.c (lower_rec_input_clauses): Don't force simd arrays for
7729 lastprivate non-addressable iterator of a collapse(1) simd.
7731 2019-07-17 Bill Seurer <seurer@linux.vnet.ibm.com>
7733 * config/rs6000/rs6000-call.c (HAVE_AS_GNU_ATTRIBUTE): define value
7736 2019-07-19 Iain Sandoe <iain@sandoe.co.uk>
7738 * config/darwin.h (DRIVER_SELF_SPECS): Ignore X and Mach specs which
7739 refer to default conditions. Warn for the 'y' spec which is ignored
7742 2019-07-19 Bill Seurer <seurer@linux.vnet.ibm.com>
7744 * config/rs6000/rs6000.c (builtin_description, cpu_is_info,
7745 cpu_supports_info, builtin_hash_struct, builtin_hasher,
7746 builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info,
7747 rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate,
7748 rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest,
7749 init_cumulative_args, rs6000_promote_function_mode,
7750 rs6000_must_pass_in_stack, is_complex_IBM_long_double,
7751 abi_v4_pass_in_fpr, rs6000_function_arg_padding,
7752 rs6000_function_arg_boundary, rs6000_parm_offset,
7753 rs6000_parm_start, rs6000_arg_size,
7754 rs6000_darwin64_record_arg_advance_flush,
7755 rs6000_darwin64_record_arg_advance_recurse,
7756 rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1,
7757 rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush,
7758 rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
7759 rs6000_mixed_function_arg, rs6000_psave_function_arg,
7760 rs6000_finish_function_arg, rs6000_function_arg,
7761 rs6000_arg_partial_bytes, rs6000_pass_by_reference,
7762 rs6000_parm_needs_stack, rs6000_function_parms_need_stack,
7763 rs6000_reg_parm_stack_space, rs6000_move_block_from_reg,
7764 setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start,
7765 rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst,
7766 bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg,
7767 bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name,
7768 rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin,
7769 rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin,
7770 rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin,
7771 altivec_expand_abs_builtin, rs6000_expand_binop_builtin,
7772 altivec_expand_predicate_builtin, swap_endian_selector_for_mode,
7773 altivec_expand_lv_builtin, altivec_expand_stxvl_builtin,
7774 altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode,
7775 htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin,
7776 altivec_expand_dst_builtin, altivec_expand_vec_init_builtin,
7777 get_element_number, altivec_expand_vec_set_builtin,
7778 altivec_expand_vec_ext_builtin, altivec_expand_builtin,
7779 rs6000_builtin_is_supported_p, rs6000_invalid_builtin,
7780 rs6000_fold_builtin, rs6000_builtin_valid_without_lhs,
7781 fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper,
7782 fold_mergeeo_helper, rs6000_gimple_fold_builtin,
7783 rs6000_expand_builtin, rs6000_vector_type,
7784 rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins,
7785 htm_init_builtins, builtin_function_type, rs6000_common_init_builtins,
7786 rs6000_internal_arg_pointer, rs6000_output_mi_thunk): Move
7788 * config/rs6000/rs6000-call.c (builtin_description, cpu_is_info,
7789 cpu_supports_info, builtin_hash_struct, builtin_hasher,
7790 builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info,
7791 rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate,
7792 rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest,
7793 init_cumulative_args, rs6000_promote_function_mode,
7794 rs6000_must_pass_in_stack, is_complex_IBM_long_double,
7795 abi_v4_pass_in_fpr, rs6000_function_arg_padding,
7796 rs6000_function_arg_boundary, rs6000_parm_offset,
7797 rs6000_parm_start, rs6000_arg_size,
7798 rs6000_darwin64_record_arg_advance_flush,
7799 rs6000_darwin64_record_arg_advance_recurse,
7800 rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1,
7801 rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush,
7802 rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
7803 rs6000_mixed_function_arg, rs6000_psave_function_arg,
7804 rs6000_finish_function_arg, rs6000_function_arg,
7805 rs6000_arg_partial_bytes, rs6000_pass_by_reference,
7806 rs6000_parm_needs_stack, rs6000_function_parms_need_stack,
7807 rs6000_reg_parm_stack_space, rs6000_move_block_from_reg,
7808 setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start,
7809 rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst,
7810 bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg,
7811 bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name,
7812 rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin,
7813 rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin,
7814 rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin,
7815 altivec_expand_abs_builtin, rs6000_expand_binop_builtin,
7816 altivec_expand_predicate_builtin, swap_endian_selector_for_mode,
7817 altivec_expand_lv_builtin, altivec_expand_stxvl_builtin,
7818 altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode,
7819 htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin,
7820 altivec_expand_dst_builtin, altivec_expand_vec_init_builtin,
7821 get_element_number, altivec_expand_vec_set_builtin,
7822 altivec_expand_vec_ext_builtin, altivec_expand_builtin,
7823 rs6000_builtin_is_supported_p, rs6000_invalid_builtin,
7824 rs6000_fold_builtin, rs6000_builtin_valid_without_lhs,
7825 fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper,
7826 fold_mergeeo_helper, rs6000_gimple_fold_builtin,
7827 rs6000_expand_builtin, rs6000_vector_type,
7828 rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins,
7829 htm_init_builtins, builtin_function_type, rs6000_common_init_builtins,
7830 rs6000_internal_arg_pointer, rs6000_output_mi_thunk: Move
7831 to here from rs6000.c.
7832 * config/rs6000/rs6000-internal.h: (rs6000_darwin64_struct_check_p,
7833 rs6000_discover_homogeneous_aggregate, rs6000_output_mi_thunk,
7834 rs6000_output_addr_const_extra, rs6000_gimple_fold_builtin,
7835 rs6000_invalid_builtin, rs6000_build_builtin_va_list, rs6000_va_start,
7836 rs6000_gimplify_va_arg, rs6000_promote_function_mode,
7837 rs6000_return_in_memory, rs6000_return_in_msb,
7838 rs6000_pass_by_reference, setup_incoming_varargs,
7839 rs6000_function_arg_boundary, rs6000_must_pass_in_stack,
7840 rs6000_arg_partial_bytes, rs6000_function_arg_advance,
7841 rs6000_function_arg_padding, rs6000_function_arg,
7842 rs6000_darwin64_record_arg, rs6000_internal_arg_pointer,
7843 rs6000_init_builtins, rs6000_builtin_decl, rs6000_expand_builtin,
7844 rs6000_fold_builtin, rs6000_passes_ieee128, rs6000_passes_float,
7845 rs6000_passes_long_double, rs6000_passes_vector,
7846 rs6000_returns_struct, cpu_builtin_p, tree builtin_mode_to_type,
7847 altivec_builtin_mask_for_load) Add declarations.
7848 * config/rs6000/t-rs6000: Add new source file rs6000-call.c.
7849 * config/config.gcc: Add new source file rs6000-call.c to garbage
7850 collector and extra_objs.
7852 2019-07-19 Jeff Law <law@redhat.com>
7854 PR tree-optimization/86061
7855 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle
7856 strncpy. Drop some trivial dead code.
7857 (maybe_trim_memstar_call): Handle strncpy.
7859 2019-07-19 Richard Biener <rguenther@suse.de>
7861 PR tree-optimization/91211
7862 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
7863 memset encoding size.
7865 2019-07-19 Uroš Bizjak <ubizjak@gmail.com>
7868 * config/i386/mmx.md (one_cmpl<mode>2): New expander.
7870 2019-07-19 Jan Hubicka <hubicka@ucw.cz>
7873 * ipa-inline.c (recursive_inlining): Fix limits check.
7875 2019-07-19 Richard Biener <rguenther@suse.de>
7877 PR tree-optimization/91200
7878 * tree-ssa-phiopt.c (cond_store_replacement): Check we have
7879 no PHI nodes in middle-bb.
7881 2019-07-19 Richard Sandiford <richard.sandiford@arm.com>
7883 * doc/invoke.texi: Rename the AArch64 +bitperm extension flag
7885 * config/aarch64/aarch64-option-extensions.def: Likewise.
7887 2019-07-19 Jakub Jelinek <jakub@redhat.com>
7890 * function.c (insert_temp_slot_address): Store into the hash table
7891 a copy of address to avoid RTL sharing issues.
7893 2019-07-19 Richard Biener <rguenther@suse.de>
7895 PR tree-optimization/91207
7897 2019-07-17 Richard Biener <rguenther@suse.de>
7899 PR tree-optimization/91178
7900 * tree-vect-stmts.c (get_group_load_store_type): For SLP
7901 loads with a gap larger than the vector size always use
7903 (vectorizable_load): For VMAT_STRIDED_SLP with a permutation
7904 avoid loading vectors that are only contained in the gap
7905 and thus are not needed.
7907 2019-07-18 Uroš Bizjak <ubizjak@gmail.com>
7909 * config/i386/i386.md (*addqi_2_slp): Remove.
7910 (*<code>qi_2_slp): Ditto.
7912 2019-07-18 Michael Meissner <meissner@linux.ibm.com>
7914 * config/rs6000/predicates.md (prefixed_mem_operand): Call
7915 rs6000_prefixed_address_mode_p instead of rs6000_prefixed_address.
7916 * config/rs6000/rs6000-protos.h (rs6000_prefixed_address_mode_p):
7917 Rename function from rs6000_prefixed_address.
7918 * config/rs6000/aix.h (TARGET_HAS_TOC): Rename TARGET_TOC to
7920 (TARGET_TOC): Likewise.
7921 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
7923 * config/rs6000/darwin.h (TARGET_HAS_TOC): Rename TARGET_TOC to
7925 (TARGET_TOC): Likewise.
7926 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
7928 * config/rs6000/linux64.h (TARGET_HAS_TOC): Rename TARGET_TOC to
7930 (TARGET_TOC): Likewise.
7931 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
7932 check to require -mcmodel=medium for pc-relative addressing.
7933 (create_TOC_reference): Add assertion for TARGET_TOC.
7934 (rs6000_legitimize_address): Use TARGET_NO_TOC_OR_PCREL instead of
7936 (rs6000_emit_move): Likewise.
7937 (TOC_alias_set): Rename TOC alias set static variable from 'set'
7939 (get_TOC_alias_set): Likewise.
7940 (output_toc): Use TARGET_NO_TOC_OR_PCREL instead of
7942 (rs6000_can_eliminate): Likewise.
7943 (rs6000_prefixed_address_mode_p): Rename function from
7944 rs6000_prefixed_address.
7945 * config/rs6000/rs6000.h (TARGET_TOC): Define in terms of
7946 TARGET_HAS_TOC and not pc-relative.
7947 (TARGET_NO_TOC_OR_PCREL): New macro to replace TARGET_NO_TOC.
7948 * config/rs6000/sysv4.h (TARGET_HAS_TOC): Rename TARGET_TOC to
7950 (TARGET_TOC): Likewise.
7951 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
7954 2019-07-18 Uroš Bizjak <ubizjak@gmail.com>
7957 * config/i386/i386.md (*addqi_1_slp): Use register_operand predicate
7958 for operand 0. Do not use (match_dup) to match operand 1 with
7959 operand 0. Add check in insn constraint that either input operand
7960 matches operand 0. Use SWI12 mode iterator to also handle
7962 (*and<mode>_1_slp): Ditto.
7963 (*<code>qi_1_slp): Ditto.
7964 (*sub<mode>_1_slp): Use register_operand predicate for operand 0.
7965 Do not use (match_dup) to match operand 1 with operand 0. Add
7966 check in insn constraint that operand 1 matches operand 0.
7967 Use SWI12 mode iterator to also handle HImode operands.
7968 (*ashl<mode>3_1_slp): Ditto.
7969 (*<shift_insn><mode>3_1_slp): Ditto.
7970 (*<rotate_insn><mode>3_1_slp): Ditto.
7972 2019-07-18 Sylvia Taylor <sylvia.taylor@arm.com>
7974 * config/arm/arm-builtins.c
7975 (arm_expand_ternop_builtin): Remove explicit sha1 builtin handling.
7976 (arm_expand_unop_builtin): Likewise.
7977 * config/arm/crypto.md
7978 (crypto_sha1h): Convert from define_insn to define_expand.
7979 (crypto_<crypto_pattern>): Likewise.
7980 (crypto_sha1h_lb): New define_insn.
7981 (crypto_<crypto_pattern>_lb): Likewise.
7983 2019-07-18 Sylvia Taylor <sylvia.taylor@arm.com>
7986 * config/arm/arm_neon.h (vsha1h_u32): Refactor.
7987 (vsha1cq_u32): Likewise.
7988 (vsha1pq_u32): Likewise.
7989 (vsha1mq_u32): Likewise.
7990 * config/arm/crypto.md (crypto_sha1h): Remove zero extend, correct
7992 (crypto_sha1c): Correct vec select.
7993 (crypto_sha1m): Likewise.
7994 (crypto_sha1p): Likewise.
7996 2019-07-18 Richard Earnshaw <rearnsha@arm.com>
7998 * config/arm/predicates.md (arm_borrow_operation): New predicate.
7999 * config/arm/arm.c (subdi3_compare1): Use CCmode for the split.
8000 (arm_subdi3, subdi_di_zesidi, subdi_di_sesidi): Likewise.
8001 (subdi_zesidi_zesidi): Likewise.
8002 (negdi2_compare, negdi2_insn): Likewise.
8003 (negdi_extensidi): Likewise.
8004 (negdi_zero_extendsidi): Likewise.
8005 (arm_cmpdi_insn): Likewise.
8006 (subsi3_carryin): Use arm_borrow_operation.
8007 (subsi3_carryin_const): Likewise.
8008 (subsi3_carryin_const0): Likewise.
8009 (subsi3_carryin_compare): Likewise.
8010 (subsi3_carryin_compare_const): Likewise.
8011 (subsi3_carryin_compare_const0): Likewise.
8012 (subsi3_carryin_shift): Likewise.
8013 (rsbsi3_carryin_shift): Likewise.
8014 (negsi2_carryin_compare): Likewise.
8016 2019-07-18 Bin Cheng <bin.cheng@linux.alibaba.com>
8018 PR tree-optimization/91137
8019 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field.
8020 (tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize):
8021 Init, use and fini the above new field.
8022 (determine_base_object_1): New function.
8023 (determine_base_object): Reimplement using walk_tree.
8025 2019-07-18 Richard Sandiford <richard.sandiford@arm.com>
8027 * basic-block.h (CLEANUP_FORCE_FAST_DCE): New macro.
8028 * cfgcleanup.c (cleanup_cfg): Call run_fast_dce if
8029 CLEANUP_FORCE_FAST_DCE is set.
8030 * ifcvt.c (rest_of_handle_if_conversion): Pass
8031 CLEANUP_FORCE_FAST_DCE to the final cleanup_cfg call if
8032 if-conversion succeeded.
8034 2019-07-18 Richard Biener <rguenther@suse.de>
8036 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Refactor
8037 branches to make code less indented.
8039 2019-07-17 Alexandre Oliva <oliva@adacore.com>
8042 * attribs.c (decls_mismatched_attributes): Simplify the logic
8043 that avoids duplicates and false positives.
8045 2019-07-17 John David Anglin <danglin@gcc.gnu.org>
8047 * config/pa/pa.c (pa_som_asm_init_sections): Don't force all constant
8048 data into data section when generating PIC code.
8049 (pa_select_section): Use pa_reloc_rw_mask() to qualify relocs.
8050 (pa_reloc_rw_mask): Return 3 when generating PIC code and when
8051 generating code for SOM targets earlier than HP-UX 11. Otherwise,
8052 return 2 for SOM and 0 for other targets.
8054 2019-07-17 Jeff Law <law@redhat.com>
8056 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Fix formatting.
8057 (dse_walker::dse_optimize_stmt): Likewise. Add missing return to
8058 avoid unexpected switch statement fallthru.
8060 2019-07-17 Uroš Bizjak <ubizjak@gmail.com>
8062 * config/i386/i386.md (*add<dwi>3_doubleword):
8063 Remove redundant constraints.
8064 (*add<mode>_1): Ditto.
8067 (*addqi_1_slp): Ditto.
8068 (*add<mode>_2): Ditto.
8069 (*addv<mode>4): Ditto.
8070 (*sub<dwi>3_doubleword): Ditto.
8071 (*sub<mode>_1): Ditto.
8072 (*subqi_1_slp): Ditto.
8073 (*sub<mode>_2): Ditto.
8074 (*subv<mode>4): Ditto.
8075 (*sub<mode>_3): Ditto.
8076 (@add<mode>3_carry): Ditto.
8077 (@sub<mode>3_carry): Ditto.
8078 (*add<mode>3_cc_overflow_1): Ditto.
8079 (*add<mode>3_zext_cc_overflow_2): Ditto.
8081 (*and<mode>_1): Ditto.
8083 (*andqi_1_slp): Ditto.
8085 (*andqi_2_maybe_si): Ditto.
8086 (*and<mode>_2): Ditto.
8087 (*andqi_2_slp): Ditto.
8088 (*<code><mode>_1): Ditto.
8089 (*<code>qi_1): Ditto.
8090 (*<code>qi_1_slp): Ditto.
8091 (*<code><mode>_2): Ditto.
8092 (*<code>qi_2_slp): Ditto.
8094 2019-07-17 Jan Hubicka <hubicka@ucw.cz>
8096 * alias.c (record_component_aliases): Do not simplify pointed-to
8099 2019-07-17 Uroš Bizjak <ubizjak@gmail.com>
8101 * config/i386/i386.md (*andqi_2_maybe_si): Handle potential
8102 partial reg stall on alternative 2.
8104 2019-07-17 Richard Biener <rguenther@suse.de>
8106 PR tree-optimization/91178
8107 * tree-ssa.c (release_defs_bitset): Iterate from higher to
8108 lower SSA names to avoid quadratic behavior in the common case.
8109 * tree-data-ref.c (split_constant_offset): Add limit argument
8110 and pass it down. Initialize it from PARAM_SSA_NAME_DEF_CHAIN_LIMIT.
8111 (split_constant_offset_1): Add limit argument and use it to
8112 limit SSA def walking. Optimize the common plus/minus case.
8114 2019-07-17 Richard Biener <rguenther@suse.de>
8116 PR tree-optimization/91178
8117 * tree-vect-stmts.c (get_group_load_store_type): For SLP
8118 loads with a gap larger than the vector size always use
8120 (vectorizable_load): For VMAT_STRIDED_SLP with a permutation
8121 avoid loading vectors that are only contained in the gap
8122 and thus are not needed.
8124 2019-07-17 Richard Biener <rguenther@suse.de>
8126 PR tree-optimization/91180
8127 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix offset
8128 computation for memset partial defs.
8130 2019-07-17 Jakub Jelinek <jakub@redhat.com>
8132 * gimple.h (enum gf_mask): Remove GF_OMP_FOR_SIMD, change
8133 GF_OMP_FOR_KIND_SIMD to a value serially after other kinds,
8134 divide GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_COMBINED,
8135 GF_OMP_FOR_COMBINED_INTO, GF_OMP_FOR_GRID_PHONY,
8136 GF_OMP_FOR_GRID_INTRA_GROUP and GF_OMP_FOR_GRID_GROUP_ITER by two.
8137 * omp-grid.c (grid_process_grid_body,
8138 grid_eliminate_combined_simd_part): Use GF_OMP_FOR_KIND_SIMD instead
8139 of GF_OMP_FOR_SIMD, don't test & GF_OMP_FOR_SIMD but
8140 == GF_OMP_FOR_KIND_SIMD.
8141 * omp-low.c (build_outer_var_ref, scan_sharing_clauses,
8142 check_omp_nesting_restrictions, scan_omp_1_stmt,
8143 lower_rec_input_clauses, lower_lastprivate_conditional_clauses,
8144 lower_lastprivate_clauses, lower_reduction_clauses, lower_omp_scan,
8145 omp_find_scan): Likewise.
8146 * omp-expand.c (expand_omp_for): Likewise.
8147 * omp-general.c (omp_extract_for_data): Likewise.
8149 PR tree-optimization/91157
8150 * tree-vect-generic.c (expand_vector_comparison): Handle lhs being
8151 a vector boolean with scalar mode.
8152 (expand_vector_condition): Handle first operand being a vector boolean
8154 (expand_vector_operations_1): For comparisons, don't bail out early
8155 if the return type is vector boolean with scalar mode, but comparison
8156 operand type is not.
8158 2019-07-17 Richard Biener <rguenther@suse.de>
8160 PR tree-optimization/91181
8161 * tree-vect-slp.c (vect_build_slp_tree_1): Do not compare
8164 2019-07-16 Uroš Bizjak <ubizjak@gmail.com>
8166 * config/i386/i386.md (*testdi_1): Match CCZmode for
8167 constants that might have the SImode sign bit set.
8168 (*testqi_1_maybe_si): Remove "!" constraint modifier.
8169 Use correct constraints for pentium pairing.
8170 (*test<mode>_1): Ditto.
8172 2019-07-16 Jeff Law <law@redhat.com>
8174 PR rtl-optimization/91173
8175 * tree-ssa-address.c (addr_for_mem_ref): If the base is an
8176 SSA_NAME with a constant value, fold its value into the offset
8177 and clear the base before calling gen_addr_rtx.
8179 2019-07-16 Jakub Jelinek <jakub@redhat.com>
8181 PR rtl-optimization/91164
8182 * dse.c (rest_of_handle_dse): If dead edges have been purged,
8183 invalidate dominance info.
8185 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
8187 * read-md.h (md_reader::record_potential_iterator_use): Add a
8188 file_location parameter.
8189 * read-rtl.c (attribute_use::loc): New field.
8190 (map_attr_string): Take a file_location parameter. Report cases
8191 in which attributes map to multiple distinct values.
8192 (apply_attribute_uses): Update call accordingly.
8193 (md_reader::handle_overloaded_name): Likewise.
8194 (md_reader::apply_iterator_to_string): Likewise. Skip empty
8196 (record_attribute_use): Take a file_location parameter.
8197 Initialize attribute_use::loc.
8198 (md_reader::record_potential_iterator_use): Take a file_location
8199 parameter. Update call to record_attribute_use.
8200 (rtx_reader::rtx_alloc_for_name): Update call accordingly.
8201 (rtx_reader::read_rtx_code): Likewise.
8202 (rtx_reader::read_rtx_operand): Likewise. Record a location
8203 for implicitly-expanded empty strings.
8205 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
8207 * read-md.h (md_reader::ptr_loc): Moved from read-md.c.
8208 Use file_location instead of separate fields.
8209 (md_reader::set_md_ptr_loc): Take a file_location instead of a
8210 separate filename and line number.
8211 * read-md.c (ptr_loc): As above.
8212 (md_reader::copy_md_ptr_loc): Update for new ptr_loc layout.
8213 (md_reader::fprint_md_ptr_loc): Likewise.
8214 (md_reader::set_md_ptr_loc): Likewise. Take a file_location
8215 instead of a separate filename and line number.
8216 (md_reader::read_string): Update call accordingly.
8218 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
8220 * config/rs6000/rs6000.md (*mov<mode>_update1): Explicitly
8221 use <SFDF:mode>, <SFDF:MODE>, <SFDF:Ff> and <SFDF:bits> rather than
8222 leaving the choice between SFDF and P implicit.
8223 (*mov<mode>_update2): Likewise.
8224 (*cmp<IBM128:mode>_internal2): Explicitly use <IBM128:MODE>
8225 rather than leaving the choice betweem IBM128 and GPR implicit.
8226 (*fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Explicitly use
8227 <IEEE128:MODE> rather than leaving the choice between IEEE128 and
8229 (AltiVec define_peephole2s): Explicitly use <ALTIVEC_DFORM:MODE>
8230 rather than leaving the choice between ALTIVEC_DFORM and P implicit.
8231 * config/rs6000/vsx.md
8232 (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>)
8233 (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Explicitly
8234 use <FL_CONV:VSisa> rather than leaving the choice between FL_CONV
8235 and VSX_EXTRACT_I implicit.
8237 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
8239 * config/mips/micromips.md (*movep<MOVEP1:mode><MOVEP2:mode>):
8240 Explicitly use <MOVEP1:MODE> for the mode attribute.
8242 2019-07-16 Jan Hubicka <hubicka@ucw.cz>
8245 * ipa-fnsummary.c (analyze_function_body): Skip debug stmts
8247 2019-07-15 Segher Boessenkool <segher@kernel.crashing.org>
8250 * config/rs6000/rs6000.c (rs6000_file_start): Never skip emitting a
8253 2019-07-15 Uroš Bizjak <ubizjak@gmail.com>
8255 * config/i386/i386.md (@test<mode>_ccno_1):
8256 Rename from test<mode>_ccno_1.
8257 (*testdi_1): Remove redundant alternatives. Remove modrm attribute.
8258 (*testqi_1_maybe_si): Remove modrm attribute.
8259 (*test<mode>_1): Ditto.
8260 * config/i386/i386-expand.c (ix86_split_idivmod): Use
8261 gen_test_ccno_1 and gen_extend_insn.
8263 2019-07-15 Jan Hubicka <hubicka@ucw.cz>
8265 * tree-ssa-alias.c (aliasing_component_refs_walk): Initialize same_p
8268 2019-07-15 Richard Biener <rguenther@suse.de>
8271 * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
8272 node make sure to replace all uses with something valid.
8274 2019-07-15 Kewen Lin <linkw@gcc.gnu.org>
8276 PR tree-optimization/88497
8277 * tree-ssa-reassoc.c (reassociate_bb): Swap the positions of
8278 GIMPLE_BINARY_RHS check and gimple_visited_p check, call new
8279 function undistribute_bitref_for_vector.
8280 (undistribute_bitref_for_vector): New function.
8281 (cleanup_vinfo_map): Likewise.
8282 (sort_by_mach_mode): Likewise.
8284 2019-07-14 Uroš Bizjak <ubizjak@gmail.com>
8286 * config/i386/i386.md (nonmemory_szext_operand): New mode attribute.
8287 (test<mode>_ccno_1): Macroize insn pattern from testsi_ccno_1
8288 and testdi_ccno_1 using SWI48 mode attribute.
8289 (*testdi_1): Use x86_64_szext_nonmemory_operand instead of
8290 x86_64_szext_general_operand.
8291 (*testqi_1_maybe_si): Use nonmemory_operand instead of general_operand.
8292 (*test<mode>_1): Use nonmemory_szext_operand mode attribute
8293 instead of genera_operand mode attribute.
8295 2019-07-14 Vladislav Ivanishin <vlad@ispras.ru>
8297 * gdbhooks.py (DumpFn.invoke): Add explicit casts of return values of
8298 fopen and fclose to their respective types.
8299 (DotFn.invoke): Ditto.
8301 2019-07-14 Jan Hubicka <hubicka@ucw.cz>
8303 * ipa-fnsummary.c (ipa_dump_hints): Do not dump array_index.
8304 (ipa_fn_summary::~ipa_fn_summary): Do not destroy array_index.
8305 (ipa_fn_summary_t::duplicate): Do not duplicate array_index.
8306 (array_index_predicate): Remove.
8307 (analyze_function_body): Account cost for variable ofsetted array
8309 (estimate_node_size_and_time): Do not compute array index hint.
8310 (ipa_merge_fn_summary_after_inlining): Do not merge array index hint.
8311 (inline_read_section): Do not read array index hint.
8312 (ipa_fn_summary_write): Do not write array index hint.
8313 * doc/invoke.texi (ipa-cp-array-index-hint-bonus): Remove.
8314 * ipa-cp.c (hint_time_bonus): Remove.
8315 * ipa-fnsummary.h (ipa_hints_vals): Remove array_index.
8316 (ipa_fnsummary): Remove array_index.
8317 * ipa-inline.c (want_inline_small_function_p): Do not use
8319 (edge_badness): Likewise.
8320 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): Remove.
8322 2019-07-14 Segher Boessenkool <segher@kernel.crashing.org>
8325 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Remove
8326 superfluous "builtin function" phrasing.
8328 2019-07-13 Jan Hubicka <hubicka@ucw.cz>
8330 * tree-ssa-alias.c (component_ref_to_zero_sized_trailing_array_p):
8332 (aliasing_component_refs_walk): Break out from ...
8333 (aliasing_component_refs_p): ... here.
8335 2019-07-13 Segher Boessenkool <segher@kernel.crashing.org>
8338 * config/rs6000/rs6000.c (rs6000_invalid_builtin): Remove superfluous
8339 "builtin function" phrasing.
8341 2019-07-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8344 * recog.h (temporary_volatile_ok): New class.
8345 * config/aarch64/aarch64.c (aarch64_emit_sve_pred_move): Set
8346 volatile_ok temporarily to true using temporary_volatile_ok.
8347 * expr.c (emit_block_move_via_cpymem): Likewise.
8348 * optabs.c (maybe_legitimize_operand): Likewise.
8350 2019-07-13 Jakub Jelinek <jakub@redhat.com>
8352 * gimplify.c (struct gimplify_omp_ctx): Add order_concurrent member.
8353 (omp_notice_threadprivate_variable): Diagnose threadprivate variable
8354 uses inside of order(concurrent) constructs.
8355 (gimplify_scan_omp_clauses): Set ctx->order_concurrent if
8356 OMP_CLAUSE_ORDER is seen.
8357 * omp-low.c (struct omp_context): Add order_concurrent member.
8358 (scan_sharing_clauses): Set ctx->order_concurrent if
8359 OMP_CLAUSE_ORDER is seen.
8360 (check_omp_nesting_restrictions): Diagnose ordered or atomic inside
8361 of simd order(concurrent). Diagnose constructs not allowed inside of
8362 for order(concurrent).
8363 (setjmp_or_longjmp_p): Add a context and TREE_PUBLIC check to avoid
8364 complaining about static double setjmp (double); or class static
8365 methods or non-global namespace setjmps.
8366 (omp_runtime_api_call): New function.
8367 (scan_omp_1_stmt): Diagnose OpenMP runtime API calls inside of
8368 order(concurrent) loops.
8370 2019-07-12 Martin Sebor <msebor@redhat.com>
8372 * doc/invoke.texi (ssa-name-def-chain-limit): Document new --param.
8373 * params.def (PARAM_SSA_NAME_DEF_CHAIN_LIMIT): Add new --param.
8374 * tree-vrp.c (vrp_prop::check_mem_ref): Use
8375 PARAM_SSA_NAME_DEF_CHAIN_LIMIT.
8377 2019-07-12 Jan Hubicka <jh@suse.cz>
8379 * tree-ssa-alias.c (same_tmr_indexing_p): Break out from ...
8380 (indirect_refs_may_alias_p): ... here.
8381 (nonoverlapping_component_refs_since_match_p): Support also non-trivial
8382 mem refs in the access paths.
8384 2019-07-12 Jiangning Liu <jiangning.liu@amperecomputing.com>
8386 PR tree-optimization/89430
8387 * tree-ssa-phiopt.c (cond_store_replacement): Support conditional
8388 store elimination for local variable without address escape.
8390 2019-07-12 Jeff Law <law@redhat.com>
8392 * config/c6x/c6x.c (c6x_section_type): Clear SECTION_NOTYPE
8393 for the ".far" section.
8395 2019-07-12 Richard Biener <rguenther@suse.de>
8397 PR tree-optimization/91145
8398 * tree-vect-slp.c (vect_build_slp_tree_2): Fix reduction
8401 2019-07-12 Alexandre Oliva <oliva@adacore.com>
8403 * tree-eh.c (honor_protect_cleanup_actions): Use outer_
8404 rather than this_state as the lowering context for the ELSE
8405 seq in a GIMPLE_EH_ELSE.
8407 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
8409 * vector-builder.h (vector_builder::elt): Allow already-supplied
8410 elements to be read back before building is complete.
8412 2019-07-12 Eric Botcazou <ebotcazou@adacore.com>
8414 PR rtl-optimization/91136
8415 * df-core.c (ACCESSING REFS): Fix typos in comment.
8416 * resource.c (mark_target_live_reg): Add artificial defs that occur at
8417 the beginning of the block to the initial set of live registers.
8419 2019-07-12 Richard Biener <rguenther@suse.de>
8421 * fold-const.h (get_array_ctor_element_at_index): Adjust.
8422 * fold-const.c (get_array_ctor_element_at_index): Add
8423 ctor_idx output parameter informing the caller where in
8424 the constructor the element was (not) found. Add early exit
8425 for when the ctor is sorted.
8426 * gimple-fold.c (fold_array_ctor_reference): Support constant
8427 folding across multiple array elements.
8429 2019-07-12 Eric Botcazou <ebotcazou@adacore.com>
8431 * cfgexpand.c (expand_gimple_stmt_1) <GIMPLE_RETURN>: If the statement
8432 doesn't have location, set the current location to the function's end.
8434 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
8436 * config/aarch64/aarch64.md (*compare_condjump<mode>)
8437 (loadwb_pair<GPI:mode>_<P:mode>, loadwb_pair<GPF:mode>_<P:mode>)
8438 (storewb_pair<GPI:mode>_<P:mode>, storewb_pair<GPF:mode>_<P:mode>)
8439 (*ands<mode>_compare0): Fix ambiguous uses of .md attributes.
8440 * config/aarch64/aarch64-simd.md
8441 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
8442 (*aarch64_get_lane_zero_extend<GPI:mode><VDQQH:mode>): Likewise.
8443 * config/aarch64/aarch64-sve.md
8444 (while_ult<GPI:mode><PRED_ALL:mode>): Likewise.
8445 (*cond_<optab><mode>_any): Fix SVE_I/SVE_SDI typo.
8447 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
8449 * doc/md.texi: Document that @ patterns can have different
8450 numbers of operands.
8451 * genemit.c (handle_overloaded_gen): Handle this case.
8452 * genopinit.c (handle_overloaded_gen): Likewise.
8453 * gensupport.c (replace_operands_with_dups): Iterate over
8454 the new rtx's format rather than the old one's.
8456 2019-07-12 Jakub Jelinek <jakub@redhat.com>
8458 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_ORDER.
8459 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
8460 order clause entries.
8461 (walk_tree_1): Handle OMP_CLAUSE_ORDER.
8462 * tree-pretty-print.c (dump_omp_clause): Likewise.
8463 * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses):
8465 * omp-low.c (scan_sharing_clauses): Likewise.
8466 * tree-nested.c (convert_nonlocal_omp_clauses,
8467 convert_local_omp_clauses): Likewise.
8469 2019-07-12 Kewen Lin <linkw@gcc.gnu.org>
8471 * cfgrtl.c (print_rtl_with_bb): Emit a hint if the
8472 fallthrough target of current basic block isn't the placed
8475 2019-07-11 Sunil K Pandey <sunil.k.pandey@intel.com>
8478 * config/i386/avx512fintrin.h (_mm512_loadu_epi64): New.
8479 (_mm512_storeu_epi64): Likewise.
8480 (_mm512_loadu_epi32): Likewise.
8481 (_mm512_storeu_epi32): Likewise.
8482 * config/i386/avx512vlintrin.h (_mm256_storeu_epi64): New.
8483 (_mm_storeu_epi64): Likewise.
8484 (_mm256_storeu_epi32): Likewise.
8485 (_mm_storeu_epi32): Likewise.
8487 2019-07-11 Segher Boessenkool <segher@kernel.crashing.org>
8489 * config/rs6000/rs6000-logue.c: Add Modula-2 to comment.
8491 2019-07-11 Segher Boessenkool <segher@kernel.crashing.org>
8493 * config/rs6000/rs6000-logue.c (rs6000_output_function_epilogue):
8496 2019-07-11 Jakub Jelinek <jakub@redhat.com>
8499 * config/i386/sse.md (sse2_cvtpd2dq<mask_name>): Change into ...
8500 (sse2_cvtpd2dq): ... this. Remove mask substitution macros.
8501 (sse2_cvtpd2dq_mask, sse2_cvtpd2dq_mask_1): New define_insns.
8502 (ufix_notruncv2dfv2si2<mask_name>): Change into ...
8503 (ufix_notruncv2dfv2si2): ... this. Remove mask substitution macros.
8504 (ufix_notruncv2dfv2si2_mask, ufix_notruncv2dfv2si2_mask_1): New
8506 (ufix_truncv2dfv2si2<mask_name>): Change into ...
8507 (ufix_truncv2dfv2si2): ... this. Remove mask substitution macros.
8508 (ufix_truncv2dfv2si2_mask, ufix_truncv2dfv2si2_mask_1): New
8510 (sse2_cvttpd2dq<mask_name>): Change into ...
8511 (sse2_cvttpd2dq): ... this. Remove mask substitution macros.
8512 (sse2_cvttpd2dq_mask, sse2_cvttpd2dq_mask_1): New define_insns.
8513 (*sse2_cvtpd2dq<mask_name>): Change into ...
8514 (*sse2_cvtpd2dq): ... this. Remove mask substitution macros.
8515 Add "C" constraint to const0_operand.
8516 (*sse2_cvtpd2dq_mask, *sse2_cvtpd2dq_mask_1): New define_insns.
8517 (sse2_cvtpd2ps_mask): Adjust expand to match *sse2_cvtpd2ps_mask
8521 * config/i386/i386-builtin-types.def
8522 (V32HI_FTYPE_V32HI_V32HI_V32HI_INT,
8523 V16HI_FTYPE_V16HI_V16HI_V16HI_INT, V8HI_FTYPE_V8HI_V8HI_V8HI_INT,
8524 V8SI_FTYPE_V8SI_V8SI_V8SI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT,
8525 V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V16SI_FTYPE_V16SI_V16SI_V16SI_INT,
8526 V2DI_FTYPE_V2DI_V2DI_V2DI_INT, V4SI_FTYPE_V4SI_V4SI_V4SI_INT): Remove.
8527 * config/i386/i386-builtin.def (__builtin_ia32_vpshrdv_v32hi_mask,
8528 __builtin_ia32_vpshrdv_v32hi_maskz, __builtin_ia32_vpshrdv_v16hi_mask,
8529 __builtin_ia32_vpshrdv_v16hi_maskz, __builtin_ia32_vpshrdv_v8hi_mask,
8530 __builtin_ia32_vpshrdv_v8hi_maskz, __builtin_ia32_vpshrdv_v16si_mask,
8531 __builtin_ia32_vpshrdv_v16si_maskz, __builtin_ia32_vpshrdv_v8si_mask,
8532 __builtin_ia32_vpshrdv_v8si_maskz, __builtin_ia32_vpshrdv_v4si_mask,
8533 __builtin_ia32_vpshrdv_v4si_maskz, __builtin_ia32_vpshrdv_v8di_mask,
8534 __builtin_ia32_vpshrdv_v8di_maskz, __builtin_ia32_vpshrdv_v4di_mask,
8535 __builtin_ia32_vpshrdv_v4di_maskz, __builtin_ia32_vpshrdv_v2di_mask,
8536 __builtin_ia32_vpshrdv_v2di_maskz, __builtin_ia32_vpshldv_v32hi_mask,
8537 __builtin_ia32_vpshldv_v32hi_maskz, __builtin_ia32_vpshldv_v16hi_mask,
8538 __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi_mask,
8539 __builtin_ia32_vpshldv_v8hi_maskz, __builtin_ia32_vpshldv_v16si_mask,
8540 __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si_mask,
8541 __builtin_ia32_vpshldv_v8si_maskz, __builtin_ia32_vpshldv_v4si_mask,
8542 __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di_mask,
8543 __builtin_ia32_vpshldv_v8di_maskz, __builtin_ia32_vpshldv_v4di_mask,
8544 __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di_mask,
8545 __builtin_ia32_vpshldv_v2di_maskz, __builtin_ia32_vpdpbusd_v16si_mask,
8546 __builtin_ia32_vpdpbusd_v16si_maskz, __builtin_ia32_vpdpbusd_v8si_mask,
8547 __builtin_ia32_vpdpbusd_v8si_maskz, __builtin_ia32_vpdpbusd_v4si_mask,
8548 __builtin_ia32_vpdpbusd_v4si_maskz,
8549 __builtin_ia32_vpdpbusds_v16si_mask,
8550 __builtin_ia32_vpdpbusds_v16si_maskz,
8551 __builtin_ia32_vpdpbusds_v8si_mask,
8552 __builtin_ia32_vpdpbusds_v8si_maskz,
8553 __builtin_ia32_vpdpbusds_v4si_mask,
8554 __builtin_ia32_vpdpbusds_v4si_maskz,
8555 __builtin_ia32_vpdpwssd_v16si_mask,
8556 __builtin_ia32_vpdpwssd_v16si_maskz, __builtin_ia32_vpdpwssd_v8si_mask,
8557 __builtin_ia32_vpdpwssd_v8si_maskz, __builtin_ia32_vpdpwssd_v4si_mask,
8558 __builtin_ia32_vpdpwssd_v4si_maskz,
8559 __builtin_ia32_vpdpwssds_v16si_mask,
8560 __builtin_ia32_vpdpwssds_v16si_maskz,
8561 __builtin_ia32_vpdpwssds_v8si_mask,
8562 __builtin_ia32_vpdpwssds_v8si_maskz,
8563 __builtin_ia32_vpdpwssds_v4si_mask,
8564 __builtin_ia32_vpdpwssds_v4si_maskz): Use *_USI, *_UHI or *_UQI
8565 suffixed types rather than *_INT.
8566 * config/i386/i386-expand.c (ix86_expand_args_builtin): Don't handle
8567 V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT,
8568 V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT,
8569 V4DI_FTYPE_V4DI_V4DI_V4DI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI_INT,
8570 V16SI_FTYPE_V16SI_V16SI_V16SI_INT, V2DI_FTYPE_V2DI_V2DI_V2DI_INT
8571 and V4SI_FTYPE_V4SI_V4SI_V4SI_INT.
8573 2019-07-11 Aldy Hernandez <aldyh@redhat.com>
8575 * tree-vrp.c (intersect_ranges): If we know the intersection is
8576 empty, there is no need to conservatively add anything else to
8579 2019-07-11 Richard Biener <rguenther@suse.de>
8582 * gimplify.c (gimplify_compound_literal_expr): Force a temporary
8583 when the object is volatile and we have not cleared it even though
8584 there are no nonzero elements.
8586 2019-07-10 Michael Meissner <meissner@linux.ibm.com>
8588 * config/rs6000/predicates.md (cint34_operand): Update
8589 SIGNED_34BIT_OFFSET_P call.
8590 (pcrel_address): Update SIGNED_34BIT_OFFSET_P call.
8591 (pcrel_external_address): Update SIGNED_34BIT_OFFSET_P call.
8592 * config/rs6000/rs6000.c (rs6000_prefixed_address): Update
8593 SIGNED_16BIT_OFFSET_P and SIGNED_34BIT_OFFSET_P calls.
8594 * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): Remove EXTRA
8596 (SIGNED_34BIT_OFFSET_P): Remove EXTRA argument.
8597 (SIGNED_16BIT_OFFSET_EXTRA_P): New macro, like
8598 SIGNED_16BIT_OFFSET_P with an EXTRA argument.
8599 (SIGNED_34BIT_OFFSET_EXTRA_P): New macro, like
8600 SIGNED_34BIT_OFFSET_P with an EXTRA argument.
8602 2019-07-10 Iain Sandoe <iain@sandoe.co.uk>
8604 * config/rs6000/darwin.h (LIB_SPEC): Collate this spec here.
8605 * config/rs6000/darwin7.h (LIB_SPEC): Remove.
8606 * config/rs6000/darwin8.h (LIB_SPEC): Remove.
8607 (DEF_MIN_OSX_VERSION): New.
8609 2019-07-10 Richard Sandiford <richard.sandiford@arm.com>
8611 * fold-const.c (fold_relational_const): Fix folding of
8612 vector-to-scalar NE_EXPRs.
8613 (test_vector_folding): Add more tests.
8615 2019-07-10 Richard Sandiford <richard.sandiford@arm.com>
8618 * config/arm/iterators.md (V2DI_ONLY): New mode iterator.
8619 * config/arm/neon.md (vec_set<mode>_internal): Add a '@' prefix.
8620 (vec_setv2di_internal): Reexpress as...
8621 (@vec_set<V2DI_ONLY:mode>_internal): ...this.
8622 * config/arm/arm.c (neon_expand_vector_init): Use gen_vec_set_internal
8623 rather than gen_neon_vset_lane<mode>.
8625 2019-07-10 Vladimir Makarov <vmakarov@redhat.com>
8628 * lra-constraints.c (process_alt_operands): Don't match user
8629 defined regs only if they are early clobbers.
8631 2019-07-10 Marc Glisse <marc.glisse@inria.fr>
8633 * wide-int.h (wi::lshift): Reject negative values for the fast path.
8635 2019-07-10 Richard Biener <rguenther@suse.de>
8637 PR tree-optimization/91126
8638 * tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust
8639 native encoding offset for BYTES_BIG_ENDIAN.
8640 (vn_reference_lookup_3): Likewise.
8642 2019-07-10 Richard Biener <rguenther@suse.de>
8644 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look at valueized
8645 LHS whenever possible.
8647 2019-07-09 Jan Hubicka <hubicka@ucw.cz>
8649 * tree-ssa-alias.c (nonoverlapping_component_refs_p_1): Break out
8650 from ...; work also on duplicated types.
8651 (nonoverlapping_component_refs_since_match): ... here
8652 (ncr_type_uid): Break out from ...
8653 (ncr_compar): ... here; look for TYPE_UID of canonical type if
8655 (nonoverlapping_component_refs_p): Use same_type_for_tbaa to match
8656 the types and nonoverlapping_component_refs_p_1 to disambiguate.
8658 2019-07-09 Martin Sebor <msebor@redhat.com>
8660 PR tree-optimization/90989
8661 * tree-ssa-strlen.c (handle_char_store): Constrain a single character
8662 optimization to just single character stores.
8664 2019-07-09 Joern Rennecke <joern.rennecke@riscy-ip.com>
8666 * tree-vect-stmts.c (vectorizable_comparison) <!slp_node>:
8667 Swap operands only once.
8669 2019-07-09 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
8671 * cfgcleanup.c (old_insns_match_p): Check if used hard regs set is equal
8672 for both call instructions.
8674 2019-07-09 John Darrington <john@darrington.wattle.id.au>
8676 * simplify-rtx.c (simplify_unary_operation_1): Use GET_MODE_PRECISION
8677 rather than GET_MODE_BITSIZE to better handle partial integer modes.
8679 2019-07-09 Michael Meissner <meissner@linux.ibm.com>
8681 * config/rs6000/rs6000-internal.h (create_TOC_reference): Delete.
8682 * config/rs6000/rs6000-logue.c (create_TOC_reference): Move
8683 function from rs6000-logue.c back to rs6000.c.
8684 * config/rs6000/rs6000.c (create_TOC_reference): Likewise.
8686 2019-07-09 Martin Sebor <msebor@redhat.com>
8689 * auto-profile.c: Change class-key of PODs to struct and others
8691 * basic-block.h: Same.
8692 * bitmap.c (bitmap_alloc): Same.
8694 * builtins.c (expand_builtin_prefetch): Same.
8695 (expand_builtin_interclass_mathfn): Same.
8696 (expand_builtin_strlen): Same.
8697 (expand_builtin_mempcpy_args): Same.
8698 (expand_cmpstr): Same.
8699 (expand_builtin___clear_cache): Same.
8700 (expand_ifn_atomic_bit_test_and): Same.
8701 (expand_builtin_thread_pointer): Same.
8702 (expand_builtin_set_thread_pointer): Same.
8703 * caller-save.c (setup_save_areas): Same.
8704 (replace_reg_with_saved_mem): Same.
8705 (insert_restore): Same.
8706 (insert_save): Same.
8707 (add_used_regs): Same.
8708 * cfg.c (get_bb_copy): Same.
8709 (set_loop_copy): Same.
8712 * cfgexpand.c (alloc_stack_frame_space): Same.
8713 (add_stack_var): Same.
8714 (add_stack_var_conflict): Same.
8715 (add_scope_conflicts_1): Same.
8716 (update_alias_info_with_stack_vars): Same.
8717 (expand_used_vars): Same.
8718 * cfghooks.c (redirect_edge_and_branch_force): Same.
8719 (delete_basic_block): Same.
8721 (make_forwarder_block): Same.
8722 (force_nonfallthru): Same.
8723 (duplicate_block): Same.
8724 (lv_flush_pending_stmts): Same.
8726 * cfgloop.c (flow_loops_cfg_dump): Same.
8727 (flow_loop_nested_p): Same.
8728 (superloop_at_depth): Same.
8729 (get_loop_latch_edges): Same.
8730 (flow_loop_dump): Same.
8731 (flow_loops_dump): Same.
8732 (flow_loops_free): Same.
8733 (flow_loop_nodes_find): Same.
8734 (establish_preds): Same.
8735 (flow_loop_tree_node_add): Same.
8736 (flow_loop_tree_node_remove): Same.
8737 (flow_loops_find): Same.
8738 (find_subloop_latch_edge_by_profile): Same.
8739 (find_subloop_latch_edge_by_ivs): Same.
8740 (mfb_redirect_edges_in_set): Same.
8741 (form_subloop): Same.
8742 (merge_latch_edges): Same.
8743 (disambiguate_multiple_latches): Same.
8744 (disambiguate_loops_with_multiple_latches): Same.
8745 (flow_bb_inside_loop_p): Same.
8747 (get_loop_body_with_size): Same.
8748 (get_loop_body): Same.
8749 (fill_sons_in_loop): Same.
8750 (get_loop_body_in_dom_order): Same.
8751 (get_loop_body_in_custom_order): Same.
8752 (release_recorded_exits): Same.
8753 (get_loop_exit_edges): Same.
8754 (num_loop_branches): Same.
8755 (remove_bb_from_loops): Same.
8756 (find_common_loop): Same.
8757 (delete_loop): Same.
8758 (cancel_loop): Same.
8759 (verify_loop_structure): Same.
8760 (loop_preheader_edge): Same.
8761 (loop_exit_edge_p): Same.
8762 (single_exit): Same.
8763 (loop_exits_to_bb_p): Same.
8764 (loop_exits_from_bb_p): Same.
8765 (get_loop_location): Same.
8766 (record_niter_bound): Same.
8767 (get_estimated_loop_iterations_int): Same.
8768 (max_stmt_executions_int): Same.
8769 (likely_max_stmt_executions_int): Same.
8770 (get_estimated_loop_iterations): Same.
8771 (get_max_loop_iterations): Same.
8772 (get_max_loop_iterations_int): Same.
8773 (get_likely_max_loop_iterations): Same.
8774 * cfgloop.h (simple_loop_desc): Same.
8778 (loop_iterator::next): Same.
8779 (loop_outermost): Same.
8780 * cfgloopanal.c (mark_irreducible_loops): Same.
8781 (num_loop_insns): Same.
8782 (average_num_loop_insns): Same.
8783 (expected_loop_iterations_unbounded): Same.
8784 (expected_loop_iterations): Same.
8785 (mark_loop_exit_edges): Same.
8786 (single_likely_exit): Same.
8787 * cfgloopmanip.c (fix_bb_placement): Same.
8788 (fix_bb_placements): Same.
8789 (remove_path): Same.
8790 (place_new_loop): Same.
8792 (scale_loop_frequencies): Same.
8793 (scale_loop_profile): Same.
8794 (create_empty_if_region_on_edge): Same.
8795 (create_empty_loop_on_edge): Same.
8798 (fix_loop_placements): Same.
8799 (copy_loop_info): Same.
8800 (duplicate_loop): Same.
8801 (duplicate_subloops): Same.
8802 (loop_redirect_edge): Same.
8803 (can_duplicate_loop_p): Same.
8804 (duplicate_loop_to_header_edge): Same.
8805 (mfb_keep_just): Same.
8806 (has_preds_from_loop): Same.
8807 (create_preheader): Same.
8808 (create_preheaders): Same.
8809 (lv_adjust_loop_entry_edge): Same.
8810 (loop_version): Same.
8811 * cfgloopmanip.h: Same.
8813 * cgraphbuild.c: Same.
8814 * combine.c (make_extraction): Same.
8815 * config/i386/i386-features.c: Same.
8816 * config/i386/i386-features.h: Same.
8817 * config/i386/i386.c (ix86_emit_outlined_ms2sysv_save): Same.
8818 (ix86_emit_outlined_ms2sysv_restore): Same.
8819 (ix86_noce_conversion_profitable_p): Same.
8820 (ix86_init_cost): Same.
8821 (ix86_simd_clone_usable): Same.
8822 * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Add -Wclass-is-pod and
8824 * coretypes.h: Same.
8825 * data-streamer-in.c (string_for_index): Change class-key of PODs
8826 to struct and others to class.
8827 (streamer_read_indexed_string): Same.
8828 (streamer_read_string): Same.
8829 (bp_unpack_indexed_string): Same.
8830 (bp_unpack_string): Same.
8831 (streamer_read_uhwi): Same.
8832 (streamer_read_hwi): Same.
8833 (streamer_read_gcov_count): Same.
8834 (streamer_read_wide_int): Same.
8835 * data-streamer.h (streamer_write_bitpack): Same.
8836 (bp_unpack_value): Same.
8837 (streamer_write_char_stream): Same.
8838 (streamer_write_hwi_in_range): Same.
8839 (streamer_write_record_start): Same.
8840 * ddg.c (create_ddg_dep_from_intra_loop_link): Same.
8841 (add_cross_iteration_register_deps): Same.
8842 (build_intra_loop_deps): Same.
8843 * df-core.c (df_analyze): Same.
8844 (loop_post_order_compute): Same.
8845 (loop_inverted_post_order_compute): Same.
8846 * df-problems.c (df_rd_alloc): Same.
8847 (df_rd_simulate_one_insn): Same.
8848 (df_rd_local_compute): Same.
8849 (df_rd_init_solution): Same.
8850 (df_rd_confluence_n): Same.
8851 (df_rd_transfer_function): Same.
8853 (df_rd_dump_defs_set): Same.
8854 (df_rd_top_dump): Same.
8855 (df_lr_alloc): Same.
8856 (df_lr_reset): Same.
8857 (df_lr_local_compute): Same.
8859 (df_lr_confluence_n): Same.
8861 (df_lr_top_dump): Same.
8862 (df_lr_verify_transfer_functions): Same.
8863 (df_live_alloc): Same.
8864 (df_live_reset): Same.
8865 (df_live_init): Same.
8866 (df_live_confluence_n): Same.
8867 (df_live_finalize): Same.
8868 (df_live_free): Same.
8869 (df_live_top_dump): Same.
8870 (df_live_verify_transfer_functions): Same.
8871 (df_mir_alloc): Same.
8872 (df_mir_reset): Same.
8873 (df_mir_init): Same.
8874 (df_mir_confluence_n): Same.
8875 (df_mir_free): Same.
8876 (df_mir_top_dump): Same.
8877 (df_word_lr_alloc): Same.
8878 (df_word_lr_reset): Same.
8879 (df_word_lr_init): Same.
8880 (df_word_lr_confluence_n): Same.
8881 (df_word_lr_free): Same.
8882 (df_word_lr_top_dump): Same.
8883 (df_md_alloc): Same.
8884 (df_md_simulate_one_insn): Same.
8885 (df_md_reset): Same.
8888 (df_md_top_dump): Same.
8889 * df-scan.c (df_insn_delete): Same.
8890 (df_insn_rescan): Same.
8891 (df_notes_rescan): Same.
8892 (df_sort_and_compress_mws): Same.
8893 (df_install_mws): Same.
8894 (df_refs_add_to_chains): Same.
8895 (df_ref_create_structure): Same.
8896 (df_ref_record): Same.
8897 (df_def_record_1): Same.
8898 (df_find_hard_reg_defs): Same.
8899 (df_uses_record): Same.
8900 (df_get_conditional_uses): Same.
8901 (df_get_call_refs): Same.
8902 (df_recompute_luids): Same.
8903 (df_get_entry_block_def_set): Same.
8904 (df_entry_block_defs_collect): Same.
8905 (df_get_exit_block_use_set): Same.
8906 (df_exit_block_uses_collect): Same.
8907 (df_mws_verify): Same.
8908 (df_bb_verify): Same.
8909 * df.h (df_scan_get_bb_info): Same.
8910 * doc/tm.texi: Same.
8911 * dse.c (record_store): Same.
8913 * emit-rtl.c (const_fixed_hasher::equal): Same.
8914 (set_mem_attributes_minus_bitpos): Same.
8915 (change_address): Same.
8916 (adjust_address_1): Same.
8917 (offset_address): Same.
8919 * except.c (dw2_build_landing_pads): Same.
8920 (sjlj_emit_dispatch_table): Same.
8921 * explow.c (allocate_dynamic_stack_space): Same.
8922 (emit_stack_probe): Same.
8923 (probe_stack_range): Same.
8924 * expmed.c (store_bit_field_using_insv): Same.
8925 (store_bit_field_1): Same.
8926 (store_integral_bit_field): Same.
8927 (extract_bit_field_using_extv): Same.
8928 (extract_bit_field_1): Same.
8929 (emit_cstore): Same.
8930 * expr.c (emit_block_move_via_cpymem): Same.
8931 (expand_cmpstrn_or_cmpmem): Same.
8932 (set_storage_via_setmem): Same.
8933 (emit_single_push_insn_1): Same.
8934 (expand_assignment): Same.
8935 (store_constructor): Same.
8936 (expand_expr_real_2): Same.
8937 (expand_expr_real_1): Same.
8940 * function.c (try_fit_stack_local): Same.
8941 (assign_stack_local_1): Same.
8942 (assign_stack_local): Same.
8943 (cut_slot_from_list): Same.
8944 (insert_slot_to_list): Same.
8945 (max_slot_level): Same.
8946 (move_slot_to_level): Same.
8947 (temp_address_hasher::equal): Same.
8948 (remove_unused_temp_slot_addresses): Same.
8949 (assign_temp): Same.
8950 (combine_temp_slots): Same.
8951 (update_temp_slot_address): Same.
8952 (preserve_temp_slots): Same.
8955 * gcc-rich-location.h: Same.
8957 * genattrtab.c (check_attr_test): Same.
8958 (check_attr_value): Same.
8959 (convert_set_attr_alternative): Same.
8960 (convert_set_attr): Same.
8962 (copy_boolean): Same.
8963 (get_attr_value): Same.
8964 (expand_delays): Same.
8965 (make_length_attrs): Same.
8967 (make_alternative_compare): Same.
8968 (simplify_test_exp): Same.
8969 (tests_attr_p): Same.
8970 (get_attr_order): Same.
8971 (clear_struct_flag): Same.
8973 (compares_alternatives_p): Same.
8976 (find_attrs_to_cache): Same.
8977 (write_test_expr): Same.
8978 (walk_attr_value): Same.
8979 (write_attr_get): Same.
8980 (eliminate_known_true): Same.
8981 (write_insn_cases): Same.
8982 (write_attr_case): Same.
8983 (write_attr_valueq): Same.
8984 (write_attr_value): Same.
8985 (write_dummy_eligible_delay): Same.
8986 (next_comma_elt): Same.
8988 (make_internal_attr): Same.
8989 (copy_rtx_unchanging): Same.
8990 (gen_insn_reserv): Same.
8991 (check_tune_attr): Same.
8992 (make_automaton_attrs): Same.
8994 * genextract.c (gen_insn): Same.
8995 (VEC_char_to_string): Same.
8996 * genmatch.c (print_operand): Same.
8998 (parser::parse_operation): Same.
8999 (parser::parse_capture): Same.
9000 (parser::parse_c_expr): Same.
9001 (parser::parse_simplify): Same.
9003 * genoutput.c (output_operand_data): Same.
9004 (output_get_insn_name): Same.
9005 (compare_operands): Same.
9006 (place_operands): Same.
9007 (process_template): Same.
9008 (validate_insn_alternatives): Same.
9009 (validate_insn_operands): Same.
9011 (note_constraint): Same.
9012 * genpreds.c (write_one_predicate_function): Same.
9013 (add_constraint): Same.
9014 (process_define_register_constraint): Same.
9015 (write_lookup_constraint_1): Same.
9016 (write_lookup_constraint_array): Same.
9017 (write_insn_constraint_len): Same.
9018 (write_reg_class_for_constraint_1): Same.
9019 (write_constraint_satisfied_p_array): Same.
9020 * genrecog.c (optimize_subroutine_group): Same.
9021 * gensupport.c (process_define_predicate): Same.
9022 (queue_pattern): Same.
9023 (remove_from_queue): Same.
9024 (process_rtx): Same.
9025 (is_predicable): Same.
9026 (change_subst_attribute): Same.
9027 (subst_pattern_match): Same.
9028 (alter_constraints): Same.
9029 (alter_attrs_for_insn): Same.
9030 (shift_output_template): Same.
9031 (alter_output_for_subst_insn): Same.
9032 (process_one_cond_exec): Same.
9034 (process_define_cond_exec): Same.
9035 (mnemonic_htab_callback): Same.
9036 (gen_mnemonic_attr): Same.
9037 (read_md_rtx): Same.
9039 * gimple-loop-interchange.cc (dump_reduction): Same.
9040 (dump_induction): Same.
9041 (loop_cand::~loop_cand): Same.
9042 (free_data_refs_with_aux): Same.
9043 (tree_loop_interchange::interchange_loops): Same.
9044 (tree_loop_interchange::map_inductions_to_loop): Same.
9045 (tree_loop_interchange::move_code_to_inner_loop): Same.
9046 (compute_access_stride): Same.
9047 (compute_access_strides): Same.
9048 (proper_loop_form_for_interchange): Same.
9049 (tree_loop_interchange_compute_ddrs): Same.
9050 (prune_datarefs_not_in_loop): Same.
9051 (prepare_data_references): Same.
9052 (pass_linterchange::execute): Same.
9053 * gimple-loop-jam.c (bb_prevents_fusion_p): Same.
9054 (unroll_jam_possible_p): Same.
9056 (adjust_unroll_factor): Same.
9057 (tree_loop_unroll_and_jam): Same.
9058 * gimple-loop-versioning.cc (loop_versioning::~loop_versioning): Same.
9059 (loop_versioning::expensive_stmt_p): Same.
9060 (loop_versioning::version_for_unity): Same.
9061 (loop_versioning::dump_inner_likelihood): Same.
9062 (loop_versioning::find_per_loop_multiplication): Same.
9063 (loop_versioning::analyze_term_using_scevs): Same.
9064 (loop_versioning::record_address_fragment): Same.
9065 (loop_versioning::analyze_expr): Same.
9066 (loop_versioning::analyze_blocks): Same.
9067 (loop_versioning::prune_conditions): Same.
9068 (loop_versioning::merge_loop_info): Same.
9069 (loop_versioning::add_loop_to_queue): Same.
9070 (loop_versioning::decide_whether_loop_is_versionable): Same.
9071 (loop_versioning::make_versioning_decisions): Same.
9072 (loop_versioning::implement_versioning_decisions): Same.
9073 * gimple-ssa-evrp-analyze.c
9074 (evrp_range_analyzer::record_ranges_from_phis): Same.
9075 * gimple-ssa-store-merging.c (split_store::split_store): Same.
9076 (count_multiple_uses): Same.
9077 (split_group): Same.
9078 (imm_store_chain_info::output_merged_store): Same.
9079 (pass_store_merging::process_store): Same.
9080 * gimple-ssa-strength-reduction.c (slsr_process_phi): Same.
9081 * gimple-ssa-warn-alloca.c (adjusted_warn_limit): Same.
9083 (alloca_call_type): Same.
9084 (pass_walloca::execute): Same.
9085 * gimple-streamer-in.c (input_phi): Same.
9086 (input_gimple_stmt): Same.
9087 * gimple-streamer.h: Same.
9088 * godump.c (go_force_record_alignment): Same.
9089 (go_format_type): Same.
9090 (go_output_type): Same.
9091 (go_output_fndecl): Same.
9092 (go_output_typedef): Same.
9093 (keyword_hash_init): Same.
9094 (find_dummy_types): Same.
9095 * graph.c (draw_cfg_nodes_no_loops): Same.
9096 (draw_cfg_nodes_for_loop): Same.
9097 * hard-reg-set.h (hard_reg_set_iter_next): Same.
9099 * hsa-common.h (hsa_internal_fn_hasher::equal): Same.
9100 * hsa-dump.c (dump_hsa_cfun): Same.
9101 * hsa-gen.c (gen_function_def_parameters): Same.
9102 * hsa-regalloc.c (dump_hsa_cfun_regalloc): Same.
9103 * input.c (dump_line_table_statistics): Same.
9106 * internal-fn.c (get_multi_vector_move): Same.
9107 (expand_load_lanes_optab_fn): Same.
9108 (expand_GOMP_SIMT_ENTER_ALLOC): Same.
9109 (expand_GOMP_SIMT_EXIT): Same.
9110 (expand_GOMP_SIMT_LAST_LANE): Same.
9111 (expand_GOMP_SIMT_ORDERED_PRED): Same.
9112 (expand_GOMP_SIMT_VOTE_ANY): Same.
9113 (expand_GOMP_SIMT_XCHG_BFLY): Same.
9114 (expand_GOMP_SIMT_XCHG_IDX): Same.
9115 (expand_addsub_overflow): Same.
9116 (expand_neg_overflow): Same.
9117 (expand_mul_overflow): Same.
9118 (expand_call_mem_ref): Same.
9119 (expand_mask_load_optab_fn): Same.
9120 (expand_scatter_store_optab_fn): Same.
9121 (expand_gather_load_optab_fn): Same.
9122 * ipa-cp.c (ipa_get_parm_lattices): Same.
9123 (print_all_lattices): Same.
9124 (ignore_edge_p): Same.
9125 (build_toporder_info): Same.
9126 (free_toporder_info): Same.
9127 (push_node_to_stack): Same.
9128 (ipcp_lattice<valtype>::set_contains_variable): Same.
9129 (set_agg_lats_to_bottom): Same.
9130 (ipcp_bits_lattice::meet_with): Same.
9131 (set_single_call_flag): Same.
9132 (initialize_node_lattices): Same.
9133 (ipa_get_jf_ancestor_result): Same.
9134 (ipcp_verify_propagated_values): Same.
9135 (propagate_scalar_across_jump_function): Same.
9136 (propagate_context_across_jump_function): Same.
9137 (propagate_bits_across_jump_function): Same.
9138 (ipa_vr_operation_and_type_effects): Same.
9139 (propagate_vr_across_jump_function): Same.
9140 (set_check_aggs_by_ref): Same.
9141 (set_chain_of_aglats_contains_variable): Same.
9142 (merge_aggregate_lattices): Same.
9143 (agg_pass_through_permissible_p): Same.
9144 (propagate_aggs_across_jump_function): Same.
9145 (call_passes_through_thunk_p): Same.
9146 (propagate_constants_across_call): Same.
9147 (devirtualization_time_bonus): Same.
9148 (good_cloning_opportunity_p): Same.
9149 (context_independent_aggregate_values): Same.
9150 (gather_context_independent_values): Same.
9151 (perform_estimation_of_a_value): Same.
9152 (estimate_local_effects): Same.
9153 (value_topo_info<valtype>::add_val): Same.
9154 (add_all_node_vals_to_toposort): Same.
9155 (value_topo_info<valtype>::propagate_effects): Same.
9156 (ipcp_propagate_stage): Same.
9157 (ipcp_discover_new_direct_edges): Same.
9158 (same_node_or_its_all_contexts_clone_p): Same.
9159 (cgraph_edge_brings_value_p): Same.
9160 (gather_edges_for_value): Same.
9161 (create_specialized_node): Same.
9162 (find_more_scalar_values_for_callers_subset): Same.
9163 (find_more_contexts_for_caller_subset): Same.
9164 (copy_plats_to_inter): Same.
9165 (intersect_aggregates_with_edge): Same.
9166 (find_aggregate_values_for_callers_subset): Same.
9167 (cgraph_edge_brings_all_agg_vals_for_node): Same.
9168 (decide_about_value): Same.
9169 (decide_whether_version_node): Same.
9170 (spread_undeadness): Same.
9171 (identify_dead_nodes): Same.
9172 (ipcp_store_vr_results): Same.
9173 * ipa-devirt.c (final_warning_record::grow_type_warnings): Same.
9174 * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Same.
9175 (redirect_to_unreachable): Same.
9176 (edge_set_predicate): Same.
9177 (evaluate_conditions_for_known_args): Same.
9178 (evaluate_properties_for_edge): Same.
9179 (ipa_fn_summary_t::duplicate): Same.
9180 (ipa_call_summary_t::duplicate): Same.
9181 (dump_ipa_call_summary): Same.
9182 (ipa_dump_fn_summary): Same.
9183 (eliminated_by_inlining_prob): Same.
9184 (set_cond_stmt_execution_predicate): Same.
9185 (set_switch_stmt_execution_predicate): Same.
9186 (compute_bb_predicates): Same.
9187 (will_be_nonconstant_expr_predicate): Same.
9188 (phi_result_unknown_predicate): Same.
9189 (analyze_function_body): Same.
9190 (compute_fn_summary): Same.
9191 (estimate_edge_devirt_benefit): Same.
9192 (estimate_edge_size_and_time): Same.
9193 (estimate_calls_size_and_time): Same.
9194 (estimate_node_size_and_time): Same.
9195 (remap_edge_change_prob): Same.
9196 (remap_edge_summaries): Same.
9197 (ipa_merge_fn_summary_after_inlining): Same.
9198 (ipa_fn_summary_generate): Same.
9199 (inline_read_section): Same.
9200 (ipa_fn_summary_read): Same.
9201 (ipa_fn_summary_write): Same.
9202 * ipa-fnsummary.h: Same.
9203 * ipa-hsa.c (ipa_hsa_read_section): Same.
9204 * ipa-icf-gimple.c (func_checker::compare_loops): Same.
9205 * ipa-icf.c (sem_function::param_used_p): Same.
9206 * ipa-inline-analysis.c (do_estimate_edge_time): Same.
9207 * ipa-inline.c (edge_badness): Same.
9208 (inline_small_functions): Same.
9209 * ipa-polymorphic-call.c
9210 (ipa_polymorphic_call_context::stream_out): Same.
9211 * ipa-predicate.c (predicate::remap_after_duplication): Same.
9212 (predicate::remap_after_inlining): Same.
9213 (predicate::stream_out): Same.
9214 * ipa-predicate.h: Same.
9215 * ipa-profile.c (ipa_profile_read_summary): Same.
9216 * ipa-prop.c (ipa_get_param_decl_index_1): Same.
9217 (count_formal_params): Same.
9218 (ipa_dump_param): Same.
9219 (ipa_alloc_node_params): Same.
9220 (ipa_print_node_jump_functions_for_edge): Same.
9221 (ipa_print_node_jump_functions): Same.
9222 (ipa_load_from_parm_agg): Same.
9223 (get_ancestor_addr_info): Same.
9224 (ipa_compute_jump_functions_for_edge): Same.
9225 (ipa_analyze_virtual_call_uses): Same.
9226 (ipa_analyze_stmt_uses): Same.
9227 (ipa_analyze_params_uses_in_bb): Same.
9228 (update_jump_functions_after_inlining): Same.
9229 (try_decrement_rdesc_refcount): Same.
9230 (ipa_impossible_devirt_target): Same.
9231 (update_indirect_edges_after_inlining): Same.
9232 (combine_controlled_uses_counters): Same.
9233 (ipa_edge_args_sum_t::duplicate): Same.
9234 (ipa_write_jump_function): Same.
9235 (ipa_write_indirect_edge_info): Same.
9236 (ipa_write_node_info): Same.
9237 (ipa_read_edge_info): Same.
9238 (ipa_prop_read_section): Same.
9239 (read_replacements_section): Same.
9240 * ipa-prop.h (ipa_get_param_count): Same.
9241 (ipa_get_param): Same.
9242 (ipa_get_type): Same.
9243 (ipa_get_param_move_cost): Same.
9244 (ipa_set_param_used): Same.
9245 (ipa_get_controlled_uses): Same.
9246 (ipa_set_controlled_uses): Same.
9247 (ipa_get_cs_argument_count): Same.
9248 * ipa-pure-const.c (analyze_function): Same.
9249 (pure_const_read_summary): Same.
9251 * ipa-reference.c (ipa_reference_read_optimization_summary): Same.
9252 * ipa-split.c (test_nonssa_use): Same.
9253 (dump_split_point): Same.
9254 (dominated_by_forbidden): Same.
9255 (split_part_set_ssa_name_p): Same.
9256 (find_split_points): Same.
9257 * ira-build.c (finish_loop_tree_nodes): Same.
9258 (low_pressure_loop_node_p): Same.
9259 * ira-color.c (ira_reuse_stack_slot): Same.
9261 * ira.c (setup_reg_equiv): Same.
9262 (print_insn_chain): Same.
9264 * loop-doloop.c (doloop_condition_get): Same.
9266 (record_reg_sets): Same.
9267 (doloop_optimize): Same.
9268 * loop-init.c (loop_optimizer_init): Same.
9269 (fix_loop_structure): Same.
9270 * loop-invariant.c (merge_identical_invariants): Same.
9271 (compute_always_reached): Same.
9273 (may_assign_reg_p): Same.
9274 (find_invariants_bb): Same.
9275 (find_invariants_body): Same.
9276 (replace_uses): Same.
9277 (can_move_invariant_reg): Same.
9278 (free_inv_motion_data): Same.
9279 (move_single_loop_invariants): Same.
9280 (change_pressure): Same.
9281 (mark_ref_regs): Same.
9282 (calculate_loop_reg_pressure): Same.
9283 * loop-iv.c (biv_entry_hasher::equal): Same.
9284 (iv_extend_to_rtx_code): Same.
9285 (check_iv_ref_table_size): Same.
9286 (clear_iv_info): Same.
9287 (latch_dominating_def): Same.
9288 (iv_get_reaching_def): Same.
9289 (iv_constant): Same.
9295 (get_biv_step): Same.
9297 (analyzed_for_bivness_p): Same.
9299 (iv_analyze_biv): Same.
9300 (iv_analyze_expr): Same.
9301 (iv_analyze_def): Same.
9302 (iv_analyze_op): Same.
9304 (iv_analyze_result): Same.
9306 (eliminate_implied_conditions): Same.
9307 (simplify_using_initial_values): Same.
9308 (shorten_into_mode): Same.
9309 (canonicalize_iv_subregs): Same.
9310 (determine_max_iter): Same.
9311 (check_simple_exit): Same.
9312 (find_simple_exit): Same.
9313 (get_simple_loop_desc): Same.
9314 * loop-unroll.c (report_unroll): Same.
9315 (decide_unrolling): Same.
9316 (unroll_loops): Same.
9317 (loop_exit_at_end_p): Same.
9318 (decide_unroll_constant_iterations): Same.
9319 (unroll_loop_constant_iterations): Same.
9320 (compare_and_jump_seq): Same.
9321 (unroll_loop_runtime_iterations): Same.
9322 (decide_unroll_stupid): Same.
9323 (unroll_loop_stupid): Same.
9324 (referenced_in_one_insn_in_loop_p): Same.
9325 (reset_debug_uses_in_loop): Same.
9326 (analyze_iv_to_split_insn): Same.
9327 * lra-eliminations.c (lra_debug_elim_table): Same.
9328 (setup_can_eliminate): Same.
9330 (lra_get_elimination_hard_regno): Same.
9331 (lra_eliminate_regs_1): Same.
9332 (eliminate_regs_in_insn): Same.
9333 (update_reg_eliminate): Same.
9334 (init_elimination): Same.
9335 (lra_eliminate): Same.
9337 * lra-lives.c (initiate_live_solver): Same.
9338 * lra-remat.c (create_remat_bb_data): Same.
9339 * lra-spills.c (lra_spill): Same.
9340 * lra.c (lra_set_insn_recog_data): Same.
9341 (lra_set_used_insn_alternative_by_uid): Same.
9342 (init_reg_info): Same.
9343 (expand_reg_info): Same.
9344 * lto-cgraph.c (output_symtab): Same.
9345 (read_identifier): Same.
9346 (get_alias_symbol): Same.
9348 (input_varpool_node): Same.
9351 (input_cgraph_1): Same.
9353 (input_symtab): Same.
9354 (input_offload_tables): Same.
9355 (output_cgraph_opt_summary): Same.
9356 (input_edge_opt_summary): Same.
9357 (input_cgraph_opt_section): Same.
9358 * lto-section-in.c (lto_free_raw_section_data): Same.
9359 (lto_create_simple_input_block): Same.
9360 (lto_free_function_in_decl_state_for_node): Same.
9361 * lto-streamer-in.c (lto_tag_check_set): Same.
9362 (lto_location_cache::revert_location_cache): Same.
9363 (lto_location_cache::input_location): Same.
9364 (lto_input_location): Same.
9365 (stream_input_location_now): Same.
9366 (lto_input_tree_ref): Same.
9367 (lto_input_eh_catch_list): Same.
9368 (input_eh_region): Same.
9369 (lto_init_eh): Same.
9370 (make_new_block): Same.
9372 (fixup_call_stmt_edges): Same.
9373 (input_struct_function_base): Same.
9374 (input_function): Same.
9375 (lto_read_body_or_constructor): Same.
9376 (lto_read_tree_1): Same.
9377 (lto_read_tree): Same.
9378 (lto_input_scc): Same.
9379 (lto_input_tree_1): Same.
9380 (lto_input_toplevel_asms): Same.
9381 (lto_input_mode_table): Same.
9382 (lto_reader_init): Same.
9383 (lto_data_in_create): Same.
9384 * lto-streamer-out.c (output_cfg): Same.
9385 * lto-streamer.h: Same.
9386 * modulo-sched.c (duplicate_insns_of_cycles): Same.
9387 (generate_prolog_epilog): Same.
9388 (mark_loop_unsched): Same.
9389 (dump_insn_location): Same.
9390 (loop_canon_p): Same.
9391 (sms_schedule): Same.
9392 * omp-expand.c (expand_omp_for_ordered_loops): Same.
9393 (expand_omp_for_generic): Same.
9394 (expand_omp_for_static_nochunk): Same.
9395 (expand_omp_for_static_chunk): Same.
9396 (expand_omp_simd): Same.
9397 (expand_omp_taskloop_for_inner): Same.
9398 (expand_oacc_for): Same.
9399 (expand_omp_atomic_pipeline): Same.
9400 (mark_loops_in_oacc_kernels_region): Same.
9401 * omp-offload.c (oacc_xform_loop): Same.
9402 * omp-simd-clone.c (simd_clone_adjust): Same.
9403 * optabs-query.c (get_traditional_extraction_insn): Same.
9404 * optabs.c (expand_vector_broadcast): Same.
9405 (expand_binop_directly): Same.
9406 (expand_twoval_unop): Same.
9407 (expand_twoval_binop): Same.
9408 (expand_unop_direct): Same.
9409 (emit_indirect_jump): Same.
9410 (emit_conditional_move): Same.
9411 (emit_conditional_neg_or_complement): Same.
9412 (emit_conditional_add): Same.
9413 (vector_compare_rtx): Same.
9414 (expand_vec_perm_1): Same.
9415 (expand_vec_perm_const): Same.
9416 (expand_vec_cond_expr): Same.
9417 (expand_vec_series_expr): Same.
9418 (maybe_emit_atomic_exchange): Same.
9419 (maybe_emit_sync_lock_test_and_set): Same.
9420 (expand_atomic_compare_and_swap): Same.
9421 (expand_atomic_load): Same.
9422 (expand_atomic_store): Same.
9423 (maybe_emit_op): Same.
9424 (valid_multiword_target_p): Same.
9425 (create_integer_operand): Same.
9426 (maybe_legitimize_operand_same_code): Same.
9427 (maybe_legitimize_operand): Same.
9428 (create_convert_operand_from_type): Same.
9429 (can_reuse_operands_p): Same.
9430 (maybe_legitimize_operands): Same.
9431 (maybe_gen_insn): Same.
9432 (maybe_expand_insn): Same.
9433 (maybe_expand_jump_insn): Same.
9434 (expand_insn): Same.
9435 * optabs.h (create_expand_operand): Same.
9436 (create_fixed_operand): Same.
9437 (create_output_operand): Same.
9438 (create_input_operand): Same.
9439 (create_convert_operand_to): Same.
9440 (create_convert_operand_from): Same.
9443 * predict.c (optimize_insn_for_speed_p): Same.
9444 (optimize_loop_for_size_p): Same.
9445 (optimize_loop_for_speed_p): Same.
9446 (optimize_loop_nest_for_speed_p): Same.
9447 (get_base_value): Same.
9448 (predicted_by_loop_heuristics_p): Same.
9449 (predict_extra_loop_exits): Same.
9450 (predict_loops): Same.
9451 (predict_paths_for_bb): Same.
9452 (predict_paths_leading_to): Same.
9453 (propagate_freq): Same.
9454 (pass_profile::execute): Same.
9456 * profile-count.c (profile_count::differs_from_p): Same.
9457 (profile_probability::differs_lot_from_p): Same.
9458 * profile-count.h: Same.
9459 * profile.c (branch_prob): Same.
9460 * regrename.c (free_chain_data): Same.
9461 (mark_conflict): Same.
9462 (create_new_chain): Same.
9463 (merge_overlapping_regs): Same.
9464 (init_rename_info): Same.
9465 (merge_chains): Same.
9466 (regrename_analyze): Same.
9467 (regrename_do_replace): Same.
9468 (scan_rtx_reg): Same.
9469 (record_out_operands): Same.
9470 (build_def_use): Same.
9471 * regrename.h: Same.
9473 * reload1.c (init_reload): Same.
9474 (maybe_fix_stack_asms): Same.
9475 (copy_reloads): Same.
9476 (count_pseudo): Same.
9477 (count_spilled_pseudo): Same.
9479 (find_reload_regs): Same.
9480 (select_reload_regs): Same.
9481 (spill_hard_reg): Same.
9482 (fixup_eh_region_note): Same.
9483 (set_reload_reg): Same.
9484 (allocate_reload_reg): Same.
9485 (compute_reload_subreg_offset): Same.
9486 (reload_adjust_reg_for_icode): Same.
9487 (emit_input_reload_insns): Same.
9488 (emit_output_reload_insns): Same.
9489 (do_input_reload): Same.
9490 (inherit_piecemeal_p): Same.
9492 * sanopt.c (maybe_get_dominating_check): Same.
9493 (maybe_optimize_ubsan_ptr_ifn): Same.
9494 (can_remove_asan_check): Same.
9495 (maybe_optimize_asan_check_ifn): Same.
9496 (sanopt_optimize_walker): Same.
9497 * sched-deps.c (add_dependence_list): Same.
9498 (chain_to_prev_insn): Same.
9499 (add_insn_mem_dependence): Same.
9500 (create_insn_reg_set): Same.
9501 (maybe_extend_reg_info_p): Same.
9502 (sched_analyze_reg): Same.
9503 (sched_analyze_1): Same.
9504 (get_implicit_reg_pending_clobbers): Same.
9505 (chain_to_prev_insn_p): Same.
9506 (deps_analyze_insn): Same.
9507 (deps_start_bb): Same.
9508 (sched_free_deps): Same.
9510 (init_deps_reg_last): Same.
9512 * sched-ebb.c: Same.
9513 * sched-int.h: Same.
9514 * sched-rgn.c (add_branch_dependences): Same.
9515 (concat_insn_mem_list): Same.
9517 (sched_rgn_compute_dependencies): Same.
9518 * sel-sched-ir.c (reset_target_context): Same.
9519 (copy_deps_context): Same.
9520 (init_id_from_df): Same.
9521 (has_dependence_p): Same.
9522 (change_loops_latches): Same.
9523 (bb_top_order_comparator): Same.
9524 (make_region_from_loop_preheader): Same.
9525 (sel_init_pipelining): Same.
9526 (get_loop_nest_for_rgn): Same.
9527 (make_regions_from_the_rest): Same.
9528 (sel_is_loop_preheader_p): Same.
9529 * sel-sched-ir.h (inner_loop_header_p): Same.
9530 (get_all_loop_exits): Same.
9532 * sese.c (sese_build_liveouts): Same.
9533 (sese_insert_phis_for_liveouts): Same.
9534 * sese.h (defined_in_sese_p): Same.
9535 * sreal.c (sreal::stream_out): Same.
9537 * streamer-hooks.h: Same.
9538 * target-globals.c (save_target_globals): Same.
9539 * target-globals.h: Same.
9542 * targhooks.c (default_has_ifunc_p): Same.
9543 (default_empty_mask_is_expensive): Same.
9544 (default_init_cost): Same.
9545 * targhooks.h: Same.
9547 * tree-affine.c (aff_combination_mult): Same.
9548 (aff_combination_expand): Same.
9549 (aff_combination_constant_multiple_p): Same.
9550 * tree-affine.h: Same.
9551 * tree-cfg.c (build_gimple_cfg): Same.
9552 (replace_loop_annotate_in_block): Same.
9553 (replace_uses_by): Same.
9555 (dump_cfg_stats): Same.
9556 (gimple_duplicate_sese_region): Same.
9557 (gimple_duplicate_sese_tail): Same.
9558 (move_block_to_fn): Same.
9559 (replace_block_vars_by_duplicates): Same.
9560 (move_sese_region_to_fn): Same.
9561 (print_loops_bb): Same.
9563 (print_loops): Same.
9565 (debug_loops): Same.
9567 * tree-chrec.c (chrec_fold_plus_poly_poly): Same.
9568 (chrec_fold_multiply_poly_poly): Same.
9569 (chrec_evaluate): Same.
9570 (chrec_component_in_loop_num): Same.
9571 (reset_evolution_in_loop): Same.
9572 (is_multivariate_chrec): Same.
9573 (chrec_contains_symbols): Same.
9574 (nb_vars_in_chrec): Same.
9575 (chrec_convert_1): Same.
9576 (chrec_convert_aggressive): Same.
9577 * tree-chrec.h: Same.
9578 * tree-core.h: Same.
9579 * tree-data-ref.c (dump_data_dependence_relation): Same.
9580 (canonicalize_base_object_address): Same.
9581 (data_ref_compare_tree): Same.
9582 (prune_runtime_alias_test_list): Same.
9583 (get_segment_min_max): Same.
9584 (create_intersect_range_checks): Same.
9585 (conflict_fn_no_dependence): Same.
9586 (object_address_invariant_in_loop_p): Same.
9587 (analyze_ziv_subscript): Same.
9588 (analyze_siv_subscript_cst_affine): Same.
9589 (analyze_miv_subscript): Same.
9590 (analyze_overlapping_iterations): Same.
9591 (build_classic_dist_vector_1): Same.
9592 (add_other_self_distances): Same.
9593 (same_access_functions): Same.
9594 (build_classic_dir_vector): Same.
9595 (subscript_dependence_tester_1): Same.
9596 (subscript_dependence_tester): Same.
9597 (access_functions_are_affine_or_constant_p): Same.
9598 (get_references_in_stmt): Same.
9599 (loop_nest_has_data_refs): Same.
9600 (graphite_find_data_references_in_stmt): Same.
9601 (find_data_references_in_bb): Same.
9602 (get_base_for_alignment): Same.
9603 (find_loop_nest_1): Same.
9604 (find_loop_nest): Same.
9605 * tree-data-ref.h (dr_alignment): Same.
9606 (ddr_dependence_level): Same.
9607 * tree-if-conv.c (fold_build_cond_expr): Same.
9608 (add_to_predicate_list): Same.
9609 (add_to_dst_predicate_list): Same.
9610 (phi_convertible_by_degenerating_args): Same.
9611 (idx_within_array_bound): Same.
9612 (all_preds_critical_p): Same.
9613 (pred_blocks_visited_p): Same.
9614 (predicate_bbs): Same.
9615 (build_region): Same.
9616 (if_convertible_loop_p_1): Same.
9617 (is_cond_scalar_reduction): Same.
9618 (predicate_scalar_phi): Same.
9619 (remove_conditions_and_labels): Same.
9620 (combine_blocks): Same.
9621 (version_loop_for_if_conversion): Same.
9622 (versionable_outer_loop_p): Same.
9623 (ifcvt_local_dce): Same.
9624 (tree_if_conversion): Same.
9625 (pass_if_conversion::gate): Same.
9626 * tree-if-conv.h: Same.
9627 * tree-inline.c (maybe_move_debug_stmts_to_successors): Same.
9628 * tree-loop-distribution.c (bb_top_order_cmp): Same.
9630 (stmt_has_scalar_dependences_outside_loop): Same.
9631 (copy_loop_before): Same.
9632 (create_bb_after_loop): Same.
9633 (const_with_all_bytes_same): Same.
9634 (generate_memset_builtin): Same.
9635 (generate_memcpy_builtin): Same.
9636 (destroy_loop): Same.
9637 (build_rdg_partition_for_vertex): Same.
9638 (compute_access_range): Same.
9639 (data_ref_segment_size): Same.
9640 (latch_dominated_by_data_ref): Same.
9641 (compute_alias_check_pairs): Same.
9642 (fuse_memset_builtins): Same.
9643 (finalize_partitions): Same.
9644 (find_seed_stmts_for_distribution): Same.
9645 (prepare_perfect_loop_nest): Same.
9646 * tree-parloops.c (lambda_transform_legal_p): Same.
9647 (loop_parallel_p): Same.
9648 (reduc_stmt_res): Same.
9649 (add_field_for_name): Same.
9650 (create_call_for_reduction_1): Same.
9651 (replace_uses_in_bb_by): Same.
9652 (transform_to_exit_first_loop_alt): Same.
9653 (try_transform_to_exit_first_loop_alt): Same.
9654 (transform_to_exit_first_loop): Same.
9656 (gen_parallel_loop): Same.
9657 (gather_scalar_reductions): Same.
9658 (get_omp_data_i_param): Same.
9659 (try_create_reduction_list): Same.
9660 (oacc_entry_exit_single_gang): Same.
9661 (parallelize_loops): Same.
9662 * tree-pass.h: Same.
9663 * tree-predcom.c (determine_offset): Same.
9664 (last_always_executed_block): Same.
9665 (split_data_refs_to_components): Same.
9666 (suitable_component_p): Same.
9667 (valid_initializer_p): Same.
9668 (find_looparound_phi): Same.
9669 (insert_looparound_copy): Same.
9670 (add_looparound_copies): Same.
9671 (determine_roots_comp): Same.
9672 (predcom_tmp_var): Same.
9673 (initialize_root_vars): Same.
9674 (initialize_root_vars_store_elim_1): Same.
9675 (initialize_root_vars_store_elim_2): Same.
9676 (finalize_eliminated_stores): Same.
9677 (initialize_root_vars_lm): Same.
9678 (remove_stmt): Same.
9679 (determine_unroll_factor): Same.
9680 (execute_pred_commoning_cbck): Same.
9681 (base_names_in_chain_on): Same.
9682 (combine_chains): Same.
9683 (pcom_stmt_dominates_stmt_p): Same.
9684 (try_combine_chains): Same.
9685 (prepare_initializers_chain_store_elim): Same.
9686 (prepare_initializers_chain): Same.
9687 (prepare_initializers): Same.
9688 (prepare_finalizers_chain): Same.
9689 (prepare_finalizers): Same.
9690 (insert_init_seqs): Same.
9691 * tree-scalar-evolution.c (loop_phi_node_p): Same.
9692 (compute_overall_effect_of_inner_loop): Same.
9693 (add_to_evolution_1): Same.
9694 (add_to_evolution): Same.
9695 (follow_ssa_edge_binary): Same.
9696 (follow_ssa_edge_expr): Same.
9697 (backedge_phi_arg_p): Same.
9698 (follow_ssa_edge_in_condition_phi_branch): Same.
9699 (follow_ssa_edge_in_condition_phi): Same.
9700 (follow_ssa_edge_inner_loop_phi): Same.
9701 (follow_ssa_edge): Same.
9702 (analyze_evolution_in_loop): Same.
9703 (analyze_initial_condition): Same.
9704 (interpret_loop_phi): Same.
9705 (interpret_condition_phi): Same.
9706 (interpret_rhs_expr): Same.
9707 (interpret_expr): Same.
9708 (interpret_gimple_assign): Same.
9709 (analyze_scalar_evolution_1): Same.
9710 (analyze_scalar_evolution): Same.
9711 (analyze_scalar_evolution_for_address_of): Same.
9712 (get_instantiated_value_entry): Same.
9713 (loop_closed_phi_def): Same.
9714 (instantiate_scev_name): Same.
9715 (instantiate_scev_poly): Same.
9716 (instantiate_scev_binary): Same.
9717 (instantiate_scev_convert): Same.
9718 (instantiate_scev_not): Same.
9719 (instantiate_scev_r): Same.
9720 (instantiate_scev): Same.
9721 (resolve_mixers): Same.
9722 (initialize_scalar_evolutions_analyzer): Same.
9723 (scev_reset_htab): Same.
9725 (derive_simple_iv_with_niters): Same.
9726 (simple_iv_with_niters): Same.
9727 (expression_expensive_p): Same.
9728 (final_value_replacement_loop): Same.
9729 * tree-scalar-evolution.h (block_before_loop): Same.
9730 * tree-ssa-address.h: Same.
9731 * tree-ssa-dce.c (find_obviously_necessary_stmts): Same.
9732 * tree-ssa-dom.c (edge_info::record_simple_equiv): Same.
9733 (record_edge_info): Same.
9734 * tree-ssa-live.c (var_map_base_fini): Same.
9735 (remove_unused_locals): Same.
9736 * tree-ssa-live.h: Same.
9737 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Same.
9738 (pass_ch_vect::execute): Same.
9739 (pass_ch::process_loop_p): Same.
9740 * tree-ssa-loop-im.c (mem_ref_hasher::hash): Same.
9741 (movement_possibility): Same.
9742 (outermost_invariant_loop): Same.
9744 (determine_max_movement): Same.
9745 (invariantness_dom_walker::before_dom_children): Same.
9746 (move_computations): Same.
9747 (may_move_till): Same.
9748 (force_move_till_op): Same.
9749 (force_move_till): Same.
9750 (memref_free): Same.
9751 (record_mem_ref_loc): Same.
9752 (set_ref_stored_in_loop): Same.
9753 (mark_ref_stored): Same.
9754 (sort_bbs_in_loop_postorder_cmp): Same.
9755 (sort_locs_in_loop_postorder_cmp): Same.
9756 (analyze_memory_references): Same.
9757 (mem_refs_may_alias_p): Same.
9758 (find_ref_loc_in_loop_cmp): Same.
9759 (rewrite_mem_ref_loc::operator): Same.
9760 (first_mem_ref_loc_1::operator): Same.
9761 (sm_set_flag_if_changed::operator): Same.
9762 (execute_sm_if_changed_flag_set): Same.
9764 (hoist_memory_references): Same.
9765 (ref_always_accessed::operator): Same.
9766 (refs_independent_p): Same.
9767 (record_dep_loop): Same.
9768 (ref_indep_loop_p_1): Same.
9769 (ref_indep_loop_p): Same.
9770 (can_sm_ref_p): Same.
9771 (find_refs_for_sm): Same.
9772 (loop_suitable_for_sm): Same.
9773 (store_motion_loop): Same.
9774 (store_motion): Same.
9775 (fill_always_executed_in): Same.
9776 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Same.
9777 (estimated_unrolled_size): Same.
9778 (loop_edge_to_cancel): Same.
9779 (remove_exits_and_undefined_stmts): Same.
9780 (remove_redundant_iv_tests): Same.
9781 (unloop_loops): Same.
9782 (estimated_peeled_sequence_size): Same.
9783 (try_peel_loop): Same.
9784 (canonicalize_loop_induction_variables): Same.
9785 (canonicalize_induction_variables): Same.
9786 * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher::equal): Same.
9788 (stmt_after_inc_pos): Same.
9789 (contains_abnormal_ssa_name_p): Same.
9790 (niter_for_exit): Same.
9793 (find_givs_in_bb): Same.
9794 (find_induction_variables): Same.
9795 (find_interesting_uses_cond): Same.
9796 (outermost_invariant_loop_for_expr): Same.
9797 (idx_find_step): Same.
9798 (add_candidate_1): Same.
9799 (add_iv_candidate_derived_from_uses): Same.
9800 (alloc_use_cost_map): Same.
9801 (prepare_decl_rtl): Same.
9802 (generic_predict_doloop_p): Same.
9803 (computation_cost): Same.
9804 (determine_common_wider_type): Same.
9805 (get_computation_aff_1): Same.
9806 (get_use_type): Same.
9807 (determine_group_iv_cost_address): Same.
9809 (difference_cannot_overflow_p): Same.
9810 (may_eliminate_iv): Same.
9811 (determine_set_costs): Same.
9812 (cheaper_cost_pair): Same.
9813 (compare_cost_pair): Same.
9814 (iv_ca_cand_for_group): Same.
9815 (iv_ca_recount_cost): Same.
9816 (iv_ca_set_remove_invs): Same.
9817 (iv_ca_set_no_cp): Same.
9818 (iv_ca_set_add_invs): Same.
9819 (iv_ca_set_cp): Same.
9820 (iv_ca_add_group): Same.
9822 (iv_ca_compare_deps): Same.
9823 (iv_ca_delta_reverse): Same.
9824 (iv_ca_delta_commit): Same.
9825 (iv_ca_cand_used_p): Same.
9826 (iv_ca_delta_free): Same.
9830 (iv_ca_extend): Same.
9831 (iv_ca_narrow): Same.
9832 (iv_ca_prune): Same.
9833 (cheaper_cost_with_cand): Same.
9834 (iv_ca_replace): Same.
9835 (try_add_cand_for): Same.
9836 (get_initial_solution): Same.
9837 (try_improve_iv_set): Same.
9838 (find_optimal_iv_set_1): Same.
9839 (create_new_iv): Same.
9840 (rewrite_use_compare): Same.
9841 (remove_unused_ivs): Same.
9842 (determine_scaling_factor): Same.
9843 * tree-ssa-loop-ivopts.h: Same.
9844 * tree-ssa-loop-manip.c (create_iv): Same.
9845 (compute_live_loop_exits): Same.
9846 (add_exit_phi): Same.
9847 (add_exit_phis): Same.
9848 (find_uses_to_rename_use): Same.
9849 (find_uses_to_rename_def): Same.
9850 (find_uses_to_rename_in_loop): Same.
9851 (rewrite_into_loop_closed_ssa): Same.
9852 (check_loop_closed_ssa_bb): Same.
9853 (split_loop_exit_edge): Same.
9855 (ip_normal_pos): Same.
9856 (copy_phi_node_args): Same.
9857 (gimple_duplicate_loop_to_header_edge): Same.
9858 (can_unroll_loop_p): Same.
9859 (determine_exit_conditions): Same.
9860 (scale_dominated_blocks_in_loop): Same.
9861 (niter_for_unrolled_loop): Same.
9862 (tree_transform_and_unroll_loop): Same.
9863 (rewrite_all_phi_nodes_with_iv): Same.
9864 * tree-ssa-loop-manip.h: Same.
9865 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Same.
9866 (number_of_iterations_ne): Same.
9867 (assert_no_overflow_lt): Same.
9868 (assert_loop_rolls_lt): Same.
9869 (number_of_iterations_lt): Same.
9870 (adjust_cond_for_loop_until_wrap): Same.
9871 (tree_simplify_using_condition): Same.
9872 (simplify_using_initial_conditions): Same.
9873 (simplify_using_outer_evolutions): Same.
9874 (loop_only_exit_p): Same.
9875 (ssa_defined_by_minus_one_stmt_p): Same.
9876 (number_of_iterations_popcount): Same.
9877 (number_of_iterations_exit): Same.
9878 (find_loop_niter): Same.
9879 (finite_loop_p): Same.
9880 (chain_of_csts_start): Same.
9881 (get_val_for): Same.
9882 (loop_niter_by_eval): Same.
9883 (derive_constant_upper_bound_ops): Same.
9884 (do_warn_aggressive_loop_optimizations): Same.
9885 (record_estimate): Same.
9886 (get_cst_init_from_scev): Same.
9887 (record_nonwrapping_iv): Same.
9888 (idx_infer_loop_bounds): Same.
9889 (infer_loop_bounds_from_ref): Same.
9890 (infer_loop_bounds_from_array): Same.
9891 (infer_loop_bounds_from_pointer_arith): Same.
9892 (infer_loop_bounds_from_signedness): Same.
9893 (bound_index): Same.
9894 (discover_iteration_bound_by_body_walk): Same.
9895 (maybe_lower_iteration_bound): Same.
9896 (estimate_numbers_of_iterations): Same.
9897 (estimated_loop_iterations): Same.
9898 (estimated_loop_iterations_int): Same.
9899 (max_loop_iterations): Same.
9900 (max_loop_iterations_int): Same.
9901 (likely_max_loop_iterations): Same.
9902 (likely_max_loop_iterations_int): Same.
9903 (estimated_stmt_executions_int): Same.
9904 (max_stmt_executions): Same.
9905 (likely_max_stmt_executions): Same.
9906 (estimated_stmt_executions): Same.
9907 (stmt_dominates_stmt_p): Same.
9908 (nowrap_type_p): Same.
9909 (loop_exits_before_overflow): Same.
9910 (scev_var_range_cant_overflow): Same.
9911 (scev_probably_wraps_p): Same.
9912 (free_numbers_of_iterations_estimates): Same.
9913 * tree-ssa-loop-niter.h: Same.
9914 * tree-ssa-loop-prefetch.c (release_mem_refs): Same.
9915 (idx_analyze_ref): Same.
9916 (analyze_ref): Same.
9917 (gather_memory_references_ref): Same.
9918 (mark_nontemporal_store): Same.
9919 (emit_mfence_after_loop): Same.
9920 (may_use_storent_in_loop_p): Same.
9921 (mark_nontemporal_stores): Same.
9922 (should_unroll_loop_p): Same.
9923 (volume_of_dist_vector): Same.
9924 (add_subscript_strides): Same.
9925 (self_reuse_distance): Same.
9926 (insn_to_prefetch_ratio_too_small_p): Same.
9927 * tree-ssa-loop-split.c (split_at_bb_p): Same.
9928 (patch_loop_exit): Same.
9929 (find_or_create_guard_phi): Same.
9930 (easy_exit_values): Same.
9931 (connect_loop_phis): Same.
9932 (connect_loops): Same.
9933 (compute_new_first_bound): Same.
9935 (tree_ssa_split_loops): Same.
9936 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Same.
9937 (is_maybe_undefined): Same.
9938 (tree_may_unswitch_on): Same.
9939 (simplify_using_entry_checks): Same.
9940 (tree_unswitch_single_loop): Same.
9941 (tree_unswitch_loop): Same.
9942 (tree_unswitch_outer_loop): Same.
9943 (empty_bb_without_guard_p): Same.
9944 (used_outside_loop_p): Same.
9945 (get_vop_from_header): Same.
9946 (hoist_guard): Same.
9947 * tree-ssa-loop.c (gate_oacc_kernels): Same.
9948 (get_lsm_tmp_name): Same.
9949 * tree-ssa-loop.h: Same.
9950 * tree-ssa-reassoc.c (add_repeat_to_ops_vec): Same.
9951 (build_and_add_sum): Same.
9952 (no_side_effect_bb): Same.
9954 (linearize_expr): Same.
9955 (should_break_up_subtract): Same.
9956 (linearize_expr_tree): Same.
9957 * tree-ssa-scopedtables.c: Same.
9958 * tree-ssa-scopedtables.h: Same.
9959 * tree-ssa-structalias.c (condense_visit): Same.
9960 (label_visit): Same.
9961 (dump_pred_graph): Same.
9962 (perform_var_substitution): Same.
9963 (move_complex_constraints): Same.
9964 (remove_preds_and_fake_succs): Same.
9965 * tree-ssa-threadupdate.c (dbds_continue_enumeration_p): Same.
9966 (determine_bb_domination_status): Same.
9967 (duplicate_thread_path): Same.
9968 (thread_through_all_blocks): Same.
9969 * tree-ssa-threadupdate.h: Same.
9970 * tree-streamer-in.c (streamer_read_string_cst): Same.
9971 (input_identifier): Same.
9972 (unpack_ts_type_common_value_fields): Same.
9973 (unpack_ts_block_value_fields): Same.
9974 (unpack_ts_translation_unit_decl_value_fields): Same.
9975 (unpack_ts_omp_clause_value_fields): Same.
9976 (streamer_read_tree_bitfields): Same.
9977 (streamer_alloc_tree): Same.
9978 (lto_input_ts_common_tree_pointers): Same.
9979 (lto_input_ts_vector_tree_pointers): Same.
9980 (lto_input_ts_poly_tree_pointers): Same.
9981 (lto_input_ts_complex_tree_pointers): Same.
9982 (lto_input_ts_decl_minimal_tree_pointers): Same.
9983 (lto_input_ts_decl_common_tree_pointers): Same.
9984 (lto_input_ts_decl_non_common_tree_pointers): Same.
9985 (lto_input_ts_decl_with_vis_tree_pointers): Same.
9986 (lto_input_ts_field_decl_tree_pointers): Same.
9987 (lto_input_ts_function_decl_tree_pointers): Same.
9988 (lto_input_ts_type_common_tree_pointers): Same.
9989 (lto_input_ts_type_non_common_tree_pointers): Same.
9990 (lto_input_ts_list_tree_pointers): Same.
9991 (lto_input_ts_vec_tree_pointers): Same.
9992 (lto_input_ts_exp_tree_pointers): Same.
9993 (lto_input_ts_block_tree_pointers): Same.
9994 (lto_input_ts_binfo_tree_pointers): Same.
9995 (lto_input_ts_constructor_tree_pointers): Same.
9996 (lto_input_ts_omp_clause_tree_pointers): Same.
9997 (streamer_read_tree_body): Same.
9998 * tree-streamer.h: Same.
9999 * tree-switch-conversion.c (bit_test_cluster::is_beneficial): Same.
10000 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Same.
10001 (vect_analyze_possibly_independent_ddr): Same.
10002 (vect_analyze_data_ref_dependence): Same.
10003 (vect_compute_data_ref_alignment): Same.
10004 (vect_enhance_data_refs_alignment): Same.
10005 (vect_analyze_data_ref_access): Same.
10006 (vect_check_gather_scatter): Same.
10007 (vect_find_stmt_data_reference): Same.
10008 (vect_create_addr_base_for_vector_ref): Same.
10009 (vect_setup_realignment): Same.
10010 (vect_supportable_dr_alignment): Same.
10011 * tree-vect-loop-manip.c (rename_variables_in_bb): Same.
10012 (adjust_phi_and_debug_stmts): Same.
10013 (vect_set_loop_mask): Same.
10014 (add_preheader_seq): Same.
10015 (vect_maybe_permute_loop_masks): Same.
10016 (vect_set_loop_masks_directly): Same.
10017 (vect_set_loop_condition_masked): Same.
10018 (vect_set_loop_condition_unmasked): Same.
10019 (slpeel_duplicate_current_defs_from_edges): Same.
10020 (slpeel_add_loop_guard): Same.
10021 (slpeel_can_duplicate_loop_p): Same.
10022 (create_lcssa_for_virtual_phi): Same.
10024 (vect_update_ivs_after_vectorizer): Same.
10025 (vect_gen_vector_loop_niters_mult_vf): Same.
10026 (slpeel_update_phi_nodes_for_loops): Same.
10027 (slpeel_update_phi_nodes_for_guard1): Same.
10028 (find_guard_arg): Same.
10029 (slpeel_update_phi_nodes_for_guard2): Same.
10030 (slpeel_update_phi_nodes_for_lcssa): Same.
10031 (vect_do_peeling): Same.
10032 (vect_create_cond_for_alias_checks): Same.
10033 (vect_loop_versioning): Same.
10034 * tree-vect-loop.c (vect_determine_vf_for_stmt): Same.
10035 (vect_inner_phi_in_double_reduction_p): Same.
10036 (vect_analyze_scalar_cycles_1): Same.
10037 (vect_fixup_scalar_cycles_with_patterns): Same.
10038 (vect_get_loop_niters): Same.
10039 (bb_in_loop_p): Same.
10040 (vect_get_max_nscalars_per_iter): Same.
10041 (vect_verify_full_masking): Same.
10042 (vect_compute_single_scalar_iteration_cost): Same.
10043 (vect_analyze_loop_form_1): Same.
10044 (vect_analyze_loop_form): Same.
10045 (vect_active_double_reduction_p): Same.
10046 (vect_analyze_loop_operations): Same.
10047 (neutral_op_for_slp_reduction): Same.
10048 (vect_is_simple_reduction): Same.
10049 (vect_model_reduction_cost): Same.
10050 (get_initial_def_for_reduction): Same.
10051 (get_initial_defs_for_reduction): Same.
10052 (vect_create_epilog_for_reduction): Same.
10053 (vectorize_fold_left_reduction): Same.
10054 (vectorizable_reduction): Same.
10055 (vectorizable_induction): Same.
10056 (vectorizable_live_operation): Same.
10057 (loop_niters_no_overflow): Same.
10058 (vect_get_loop_mask): Same.
10059 (vect_transform_loop_stmt): Same.
10060 (vect_transform_loop): Same.
10061 * tree-vect-patterns.c (vect_reassociating_reduction_p): Same.
10062 (vect_determine_precisions): Same.
10063 (vect_pattern_recog_1): Same.
10064 * tree-vect-slp.c (vect_analyze_slp_instance): Same.
10065 * tree-vect-stmts.c (stmt_vectype): Same.
10066 (process_use): Same.
10067 (vect_init_vector_1): Same.
10068 (vect_truncate_gather_scatter_offset): Same.
10069 (get_group_load_store_type): Same.
10070 (vect_build_gather_load_calls): Same.
10071 (vect_get_strided_load_store_ops): Same.
10072 (vectorizable_simd_clone_call): Same.
10073 (vectorizable_store): Same.
10074 (permute_vec_elements): Same.
10075 (vectorizable_load): Same.
10076 (vect_transform_stmt): Same.
10077 (supportable_widening_operation): Same.
10078 * tree-vectorizer.c (vec_info::replace_stmt): Same.
10079 (vec_info::free_stmt_vec_info): Same.
10080 (vect_free_loop_info_assumptions): Same.
10081 (vect_loop_vectorized_call): Same.
10082 (set_uid_loop_bbs): Same.
10083 (vectorize_loops): Same.
10084 * tree-vectorizer.h (STMT_VINFO_BB_VINFO): Same.
10085 * tree.c (add_tree_to_fld_list): Same.
10086 (fld_type_variant_equal_p): Same.
10087 (fld_decl_context): Same.
10088 (fld_incomplete_type_of): Same.
10089 (free_lang_data_in_binfo): Same.
10090 (need_assembler_name_p): Same.
10091 (find_decls_types_r): Same.
10092 (get_eh_types_for_runtime): Same.
10093 (find_decls_types_in_eh_region): Same.
10094 (find_decls_types_in_node): Same.
10095 (assign_assembler_name_if_needed): Same.
10096 * value-prof.c (stream_out_histogram_value): Same.
10097 * value-prof.h: Same.
10098 * var-tracking.c (use_narrower_mode): Same.
10099 (prepare_call_arguments): Same.
10100 (vt_expand_loc_callback): Same.
10101 (resolve_expansions_pending_recursion): Same.
10102 (vt_expand_loc): Same.
10103 * varasm.c (const_hash_1): Same.
10104 (compare_constant): Same.
10105 (tree_output_constant_def): Same.
10106 (simplify_subtraction): Same.
10107 (get_pool_constant): Same.
10108 (output_constant_pool_2): Same.
10109 (output_constant_pool_1): Same.
10110 (mark_constants_in_pattern): Same.
10111 (mark_constant_pool): Same.
10112 (get_section_anchor): Same.
10113 * vr-values.c (compare_range_with_value): Same.
10114 (vr_values::extract_range_from_phi_node): Same.
10115 * vr-values.h: Same.
10116 * web.c (unionfind_union): Same.
10117 * wide-int.h: Same.
10119 2019-07-09 Martin Sebor <msebor@redhat.com>
10122 * align.h: Change class-key from class to struct and vice versa
10123 to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod.
10124 * alloc-pool.h: Same.
10125 * asan.c (shadow_mem_size): Same.
10126 * auto-profile.c: Same.
10127 * basic-block.h: Same.
10129 * cfgexpand.c (set_rtl): Same.
10130 (expand_one_stack_var_at): Same.
10131 * cfghooks.h: Same.
10134 * config/i386/i386.h: Same.
10135 * df-problems.c (df_print_bb_index): Same.
10137 * df.h (df_single_use): Same.
10138 * diagnostic-show-locus.c (layout::print_annotation_line): Same.
10139 (layout::annotation_line_showed_range_p): Same.
10140 (get_printed_columns): Same.
10141 (correction::ensure_terminated): Same.
10142 (line_corrections::~line_corrections): Same.
10145 * dump-context.h: Same.
10146 * dumpfile.h: Same.
10147 * dwarf2out.c: Same.
10148 * edit-context.c: Same.
10149 * fibonacci_heap.c (test_union_of_equal_heaps): Same.
10151 * function.c (assign_stack_local): Same.
10152 * function.h: Same.
10154 * gcov.c (block_info::block_info): Same.
10155 * genattrtab.c: Same.
10156 * genextract.c: Same.
10157 * genmatch.c (comparison_code_p): Same.
10158 (id_base::id_base): Same.
10159 (decision_tree::print): Same.
10160 * genoutput.c: Same.
10161 * genpreds.c (write_one_predicate_function): Same.
10162 * genrecog.c (validate_pattern): Same.
10163 (find_operand_positions): Same.
10164 (optimize_subroutine_group): Same.
10165 (merge_pattern_transition::merge_pattern_transition): Same.
10166 (merge_pattern_info::merge_pattern_info): Same.
10167 (merge_state_result::merge_state_result): Same.
10168 (merge_into_state): Same.
10169 * gensupport.c: Same.
10170 * gensupport.h: Same.
10171 * ggc-common.c (init_ggc_heuristics): Same.
10172 * ggc-tests.c (test_union): Same.
10173 * gimple-loop-interchange.cc (dump_induction): Same.
10174 * gimple-loop-versioning.cc: Same.
10175 * gimple-match.h (gimple_match_cond::any_else): Same.
10176 * gimple-ssa-backprop.c: Same.
10177 * gimple-ssa-sprintf.c: Same.
10178 * gimple-ssa-store-merging.c (store_operand_info::store_operand_info):
10180 (store_immediate_info::store_immediate_info): Same.
10181 (merged_store_group::apply_stores): Same.
10182 (get_location_for_stmts): Same.
10183 * gimple-ssa-strength-reduction.c: Same.
10184 * gimple-ssa-warn-alloca.c: Same.
10185 * gimple-ssa-warn-restrict.c (pass_wrestrict::execute): Same.
10186 * godump.c (go_type_decl): Same.
10187 * hash-map-tests.c (test_map_of_strings_to_int): Same.
10188 * hash-map.h: Same.
10189 * hash-set-tests.c (test_set_of_strings): Same.
10190 * hsa-brig.c: Same.
10191 * hsa-common.h: Same.
10192 * hsa-gen.c (transformable_switch_to_sbr_p): Same.
10193 * input.c (assert_loceq): Same.
10196 * ipa-devirt.c (possible_polymorphic_call_targets_1): Same.
10197 * ipa-fnsummary.h: Same.
10198 * ipa-inline.h: Same.
10199 * ipa-prop.h: Same.
10200 * ipa-split.c (visit_bb): Same.
10201 * ira-int.h (minmax_set_iter_next): Same.
10202 * loop-invariant.c: Same.
10204 * lra-eliminations.c: Same.
10206 * lra-lives.c (mark_regno_dead): Same.
10207 * lra-remat.c: Same.
10208 * lra-spills.c: Same.
10209 * lto-streamer.h: Same.
10210 * mem-stats.h: Same.
10211 * omp-grid.c (omp_grid_lastprivate_predicate): Same.
10212 * omp-low.c (omp_clause_aligned_alignment): Same.
10213 * optabs-query.h (get_vcond_eq_icode): Same.
10215 * opts.c (wrap_help): Same.
10216 * poly-int.h: Same.
10217 * predict.c (predict_paths_leading_to_edge): Same.
10218 * pretty-print.h: Same.
10219 * profile-count.h: Same.
10221 * read-rtl-function.c: Same.
10224 * regrename.c: Same.
10225 * regrename.h: Same.
10227 * rtl-iter.h: Same.
10228 * rtl.h (costs_add_n_insns): Same.
10230 * sched-int.h: Same.
10231 * sel-sched-ir.h: Same.
10232 * selftest.h: Same.
10233 * sese.h (vec_find): Same.
10235 * target-globals.h: Same.
10236 * tree-affine.c (aff_combination_find_elt): Same.
10237 * tree-affine.h: Same.
10238 * tree-data-ref.h: Same.
10239 * tree-outof-ssa.c (ssa_is_replaceable_p): Same.
10240 * tree-predcom.c: Same.
10241 * tree-scalar-evolution.c (find_var_scev_info): Same.
10242 * tree-ssa-alias.h: Same.
10243 * tree-ssa-ccp.c: Same.
10244 * tree-ssa-coalesce.c (ssa_conflicts_dump): Same.
10245 * tree-ssa-loop-im.c (for_all_locs_in_loop): Same.
10246 (rewrite_mem_refs): Same.
10247 (execute_sm_if_changed): Same.
10248 (hoist_memory_references): Same.
10249 * tree-ssa-loop-ivopts.c (operator<=): Same.
10250 * tree-ssa-loop.h: Same.
10251 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Same.
10252 * tree-ssa-structalias.c: Same.
10253 * tree-switch-conversion.h (cluster::cluster): Same.
10254 (simple_cluster::simple_cluster): Same.
10255 * tree-vect-patterns.c (type_conversion_p): Same.
10256 * tree-vectorizer.c (dump_stmt_cost): Same.
10257 * tree-vectorizer.h (loop_vec_info_for_loop): Same.
10258 * tree.c (protected_set_expr_location): Same.
10259 * tree.h (desired_pro_or_demotion_p): Same.
10260 (fndecl_built_in_p): Same.
10261 * unique-ptr-tests.cc: Same.
10262 * var-tracking.c (delete_variable_part): Same.
10263 * varasm.c (assemble_real): Same.
10264 (tree_output_constant_def): Same.
10266 * wide-int-bitmask.h: Same.
10267 * wide-int.h (decompose): Same.
10269 2019-07-09 Richard Biener <rguenther@suse.de>
10271 PR tree-optimization/91114
10272 * tree-vect-data-refs.c (vect_analyze_data_refs): Failure to
10273 find a vector type isn't fatal.
10275 2019-07-09 Sylvia Taylor <sylvia.taylor@arm.com>
10277 * config/aarch64/aarch64-simd.md
10278 (aarch64_crypto_aes<aes_op>v16qi): Redefine pattern with xor.
10279 (aarch64_crypto_aes<aesmc_op>v16qi): Remove attribute enabled.
10280 (*aarch64_crypto_aes<aes_op>v16qi_xor_combine): Remove both.
10281 (*aarch64_crypto_aese_fused,
10282 *aarch64_crypto_aesd_fused): Update to new definition.
10283 * config/aarch64/aarch64.c
10284 (aarch_macro_fusion_pair_p): Remove aese/aesmc fusion check.
10286 2019-07-09 Richard Biener <rguenther@suse.de>
10288 * gimple-match.h (gimple_match_op::resimplify): New.
10289 (gimple_resimplify1, gimple_resimplify2, gimple_resimplify3,
10290 gimple_resimplify4, gimple_resimplify5): Remove.
10291 * gimple-match-head.c (gimple_resimplify1, gimple_resimplify2,
10292 gimple_resimplify3, gimple_resimplify4, gimple_resimplify5):
10294 (gimple_match_op::resimplify): New.
10295 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Valueize
10296 according to availability. Use gimple_match_op::resimplify.
10298 2019-07-09 Eric Botcazou <ebotcazou@adacore.com>
10300 * ira-emit.c (emit_moves): Skip DEBUG_INSNs when setting the location.
10302 2019-07-09 Sylvia Taylor <sylvia.taylor@arm.com>
10304 * config/arm/crypto.md:
10305 (crypto_<crypto_pattern>): Redefine aese/aesd pattern with xor.
10306 (crypto_<crypto_pattern>): Remove attribute enabled for aesmc.
10307 (crypto_<crypto_pattern>): Split CRYPTO_BINARY into 2 patterns.
10308 (*aarch32_crypto_aese_fused, *aarch32_crypto_aesd_fused): New.
10310 (aarch_macro_fusion_pair_p): Remove aes/aesmc fusion check.
10311 * config/arm/aarch-common-protos.h
10312 (aarch_crypto_can_dual_issue): Remove.
10313 * config/arm/aarch-common.c
10314 (aarch_crypto_can_dual_issue): Likewise.
10315 * config/arm/exynos-m1.md: Remove aese/aesmc fusion.
10316 * config/arm/cortex-a53.md: Likewise.
10317 * config/arm/cortex-a57.md: Likewise.
10318 * config/arm/iterators.md:
10319 (CRYPTO_BINARY): Redefine.
10320 (CRYPTO_UNARY): Removed.
10321 (CRYPTO_AES, CRYPTO_AESMC): New.
10323 2019-07-09 Richard Biener <rguenther@suse.de>
10325 * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add orig_ref member.
10326 (vn_reference_lookup_3): If the main ref has no access path recorded
10327 but orig_ref has use it to do access-path based disambiguation.
10328 (vn_reference_lookup_pieces): Adjust.
10329 (vn_reference_lookup): Pass down original ref if we valueized.
10331 2019-07-09 Martin Liska <mliska@suse.cz>
10333 * doc/extend.texi: Document influence on loop
10336 2019-07-09 Martin Liska <mliska@suse.cz>
10338 * lto-compress.c (lto_normalized_zstd_level): Do not use
10339 ZSTD_CLEVEL_DEFAULT as it is not default in old releases
10340 of libzstd. One can use 0 as a default compression level.
10342 2019-07-09 Martin Liska <mliska@suse.cz>
10344 * doc/invoke.texi: Add link from -fprofile-dir option.
10345 Use better wording for 'gcno filename'.
10347 2019-07-08 Martin Sebor <msebor@redhat.com>
10349 PR middle-end/71924
10350 PR middle-end/90549
10351 * gimple-ssa-isolate-paths.c (isolate_path): Add attribute. Update
10353 (args_loc_t): New type.
10354 (args_loc_t, locmap_t): same.
10355 (diag_returned_locals): New function.
10356 (is_addr_local): Same.
10357 (handle_return_addr_local_phi_arg, warn_return_addr_local): Same.
10358 (find_implicit_erroneous_behavior): Call warn_return_addr_local_phi_arg.
10359 (find_explicit_erroneous_behavior): Call warn_return_addr_local.
10361 2019-07-08 Jakub Jelinek <jakub@redhat.com>
10363 * tree-vect-stmts.c (scan_operand_equal_p): Look through MEM_REF
10364 with SSA_NAME address of POINTER_PLUS_EXPR. Handle MULT_EXPR
10365 and casts in offset when different, both through gimple stmts
10366 and through trees. Rewritten using loops to minimize code duplication
10369 2019-07-08 Eric Botcazou <ebotcazou@adacore.com>
10371 * emit-rtl.c (set_insn_locations): New function moved from...
10372 * function.c (set_insn_locations): ...here.
10373 * ira-emit.c (emit_moves): Propagate location of the first instruction
10374 to the inserted move instructions.
10375 * reg-stack.c (compensate_edge): Set the location if the sequence is
10376 inserted on the edge.
10377 * rtl.h (set_insn_locations): Declare.
10379 2019-07-08 Segher Boessenkool <segher@kernel.crashing.org>
10381 * config/rs6000/rs6000.c (rs6000_machine_from_flags): Ignore
10382 OPTION_MASK_PPC_GFXOPT and OPTION_MASK_PPC_GPOPT for selecting the
10385 2019-07-08 Segher Boessenkool <segher@kernel.crashing.org>
10387 PR rtl-optimization/88233
10388 * common.opt (fsplit-wide-types-early): New option.
10389 * common/config/rs6000/rs6000-common.c
10390 (rs6000_option_optimization_table): Add OPT_fsplit_wide_types_early for
10392 * doc/invoke.texi (Optimization Options): Add -fsplit-wide-types-early.
10393 * lower-subreg.c (pass_lower_subreg2::gate): Add test for
10394 flag_split_wide_types_early.
10395 (pass_data_lower_subreg3): New.
10396 (pass_lower_subreg3): New.
10397 (make_pass_lower_subreg3): New.
10398 * passes.def (pass_lower_subreg2): Move after the loop passes.
10399 (pass_lower_subreg3): New, inserted where pass_lower_subreg2 was.
10400 * tree-pass.h (make_pass_lower_subreg2): Move up, to its new place in
10401 the pass pipeline; its previous place is taken by ...
10402 (make_pass_lower_subreg3): ... this.
10404 2019-07-08 Robin Dapp <rdapp@linux.ibm.com>
10406 * config/s390/s390.c (s390_shift_truncation_mask): Define.
10407 (TARGET_SHIFT_TRUNCATION_MASK): Define.
10409 2019-07-08 Robin Dapp <rdapp@linux.ibm.com>
10411 * config/s390/constraints.md: Add new jsc constraint.
10412 * config/s390/predicates.md: New predicates.
10413 * config/s390/s390-protos.h (s390_valid_shift_count): New function.
10414 * config/s390/s390.c (s390_valid_shift_count): New function.
10415 (print_shift_count_operand): Use s390_valid_shift_count.
10416 (print_operand): Likewise.
10417 * config/s390/s390.md: Use new predicate.
10418 * config/s390/subst.md: Remove addr_style_op and masked_op substs.
10419 * config/s390/vector.md: Use new predicate.
10421 2019-07-08 Andrew Waterman <andrew@sifive.com>
10422 Jim Wilson <jimw@sifive.com>
10424 * config/riscv/riscv.md (lshrsi3_zero_extend_3+1): Use operands[1]
10425 bitsize instead of BITS_PER_WORD.
10427 2019-07-08 Martin Liska <mliska@suse.cz>
10429 * collect2.c (defined): Revert to before r254460.
10430 (scan_prog_file): Revert to before r254460.
10432 2019-07-08 Richard Biener <rguenther@suse.de>
10434 PR tree-optimization/83518
10435 * tree-ssa-sccvn.c: Include splay-tree.h.
10436 (struct pd_range, struct pd_data): New.
10437 (struct vn_walk_cb_data): Add data to track partial definitions.
10438 (vn_walk_cb_data::~vn_walk_cb_data): New.
10439 (vn_walk_cb_data::push_partial_def): New.
10440 (pd_tree_alloc, pd_tree_dealloc, pd_range_compare): New.
10441 (vn_reference_lookup_2): When partial defs are registered give up.
10442 (vn_reference_lookup_3): Track partial defs for memset and
10443 constructor zeroing and for defs from constants.
10445 2019-07-08 Richard Sandiford <richard.sandiford@arm.com>
10447 * doc/install.texi (bootstrap-Og): Document.
10449 2019-07-08 Richard Sandiford <richard.sandiford@arm.com>
10451 * config/riscv/pic.md (*local_pic_load_s<mode>)
10452 (*local_pic_load_u<mode>): Explicitly specify the mode iterator
10453 referenced by <mode>, giving...
10454 (*local_pic_load_s<SUBX:mode>, *local_pic_load_u<SUBX:mode>): ...these.
10455 * config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>)
10456 (*slt<u>_<X:mode><GPR:mode>, *sle<u>_<X:mode><GPR:mode>): Explicitly
10457 use <X:MODE> for the mode attribute.
10459 2019-07-07 Jeff Law <law@redhat.com>
10461 PR tree-optimization/91090
10462 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Fix logic error
10463 in handling of ranges to simplify switch statements.
10465 2019-07-07 Iain Sandoe <iain@sandoe.co.uk>
10467 * config/darwin.c (darwin_override_options): Make a final check on PIC
10470 2019-07-07 Iain Sandoe <iain@sandoe.co.uk>
10472 * config/darwin.c (darwin_override_options): Don't jam symbol stubs
10473 on for kernel code.
10475 2019-07-07 Richard Sandiford <richard.sandiford@arm.com>
10478 * config/mips/mips.md (*mul_acc_si, *mul_acc_si_r3900, *macc)
10479 (*msac, *msac_using_macc, *mul_sub_si): Use "l" for input operands
10480 instead of matching them to "l" output operands.
10482 2019-07-07 Richard Sandiford <richard.sandiford@arm.com>
10484 * config/mips/mips.c (mips_split_move): Zero-initialize addr
10485 and check whether addr.reg is nonnull before using it.
10487 2019-07-06 Jakub Jelinek <jakub@redhat.com>
10489 * omp-low.c (lower_rec_input_clauses): For lastprivate clauses in
10490 ctx->for_simd_scan_phase simd copy the outer var to the privatized
10491 variable(s). For conditional lastprivate look through outer
10492 GIMPLE_OMP_SCAN context.
10493 (lower_omp_1): For conditional lastprivate look through outer
10494 GIMPLE_OMP_SCAN context.
10496 * omp-low.c (struct omp_context): Rename combined_into_simd_safelen0
10497 member to combined_into_simd_safelen1.
10498 (lower_rec_input_clauses, lower_omp_1): Adjust uses.
10499 (lower_lastprivate_clauses): Likewise. For conditional lastprivate
10500 clauses if ctx->combined_into_simd_safelen1 put statements after the
10501 predicate conditionalized block rather than into it.
10503 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
10505 * config/s390/s390.md (*negabs<FP:mode>2_nocc): Use FP for
10507 * config/s390/vx-builtins.md (*vec_cmp<insn_cmp><mode>_cconly):
10508 Make the choice of <mode> explicit, giving...
10509 (*vec_cmp<insn_cmp><VF_HW:mode>_cconly): ...this.
10511 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
10513 * config/i386/i386.md (*fop_<X87MODEF:mode>_3_i387)
10514 (l<rounding_insn><MODEF:mode><SWI48:mode>2): Fix ambiguous uses
10516 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask)
10517 (*avx512pf_gatherpf<mode>df_mask, *avx512pf_scatterpf<mode>sf_mask)
10518 (*avx512pf_scatterpf<mode>df_mask, *avx2_gathersi<mode>)
10519 (*avx2_gathersi<mode>_2, *avx2_gatherdi<mode>)
10520 (*avx2_gatherdi<mode>_2, *avx2_gatherdi<mode>_3): Likewise.
10521 (*avx2_gatherdi<mode>_4, *avx512f_gathersi<mode>): Likewise.
10522 (*avx512f_gathersi<mode>_2, *avx512f_gatherdi<mode>): Likewise.
10523 (*avx512f_gatherdi<mode>_2, *avx512f_scattersi<mode>): Likewise.
10524 (*avx512f_scatterdi<mode>): Likewise.
10525 (*andnot<mode>3_bcst): Fix VI/VI48_AVX512VL typo.
10527 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
10529 * config/h8300/h8300.md (*push1_h8300hs_<mode>): Explicitly
10530 specify the mode iterator referenced by <mode>, giving...
10531 (*push1_h8300hs_<QHI:mode>): ...this.
10533 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
10535 * config/gcn/gcn-valu.md
10536 (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>): Use
10537 gen_vec_cmp<VEC_1REG_ALT:mode>di rather than (implicitly)
10538 gen_vec_cmp<VEC_1REG_MODE:mode>di. Explicitly use
10539 gen_vcond_mask_<VEC_1REG_MODE:mode>di.
10540 (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Likewise,
10541 but using the _exec comparison patterns.
10542 (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>): Use
10543 gen_vec_cmp<VEC_1REG_INT_ALT:mode>di rather than (implicitly)
10544 gen_vec_cmp<VEC_1REG_INT_MODE:mode>di. Explicitly use
10545 gen_vcond_mask_<VEC_1REG_INT_MODE:mode>di.
10546 (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Likewise,
10547 but using the _exec comparison patterns.
10549 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
10551 * config/arm/sync.md
10552 (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Use
10553 <NARROW:sync_predtab> instead of (implicitly) <CCSI:sync_predtab>.
10554 (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise use
10555 <SIDI:sync_predtab>. Use <SIDI:cas_cmp_operand> and
10556 <SIDI:cas_cmp_str>.
10558 2019-07-06 Jakub Jelinek <jakub@redhat.com>
10560 * omp-low.c (struct omp_context): Add for_simd_scan_phase member.
10561 (maybe_lookup_ctx): Add forward declaration.
10562 (omp_find_scan): Likewise. Walk into body of simd if composited
10563 with worksharing loop.
10564 (scan_omp_simd_scan): New function.
10565 (scan_omp_1_stmt): Call it.
10566 (lower_rec_simd_input_clauses): Don't create rvar nor rvar2 if
10567 ctx->for_simd_scan_phase.
10568 (lower_rec_input_clauses): Do much less work for inscan reductions
10569 in ctx->for_simd_scan_phase is_simd regions.
10570 (lower_omp_scan): Set is_simd also on simd constructs composited
10571 with worksharing loop, unless ctx->for_simd_scan_phase. Never emit
10572 a sorry message. Don't change GIMPLE_OMP_SCAN stmts into nops and
10573 emit their body after in simd constructs composited with worksharing
10575 (lower_omp_for_scan): Handle worksharing loop composited with simd.
10577 * omp-low.c (omp_find_scan): Make static.
10578 (lower_omp_for_scan): Fix order of merge arguments in input phase of
10579 the second loop, var2 represents the first partial sum and so needs
10580 to go before rprivb[ivar].
10582 2019-07-05 Iain Sandoe <iain@sandoe.co.uk>
10584 * config/rs6000/rs6000-logue.c: Remove unused code.
10586 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
10588 * tree-ssa-loop-manip.c (create_iv): Add missing guard for gsi_end_p.
10590 2019-07-05 Sam Tebbs <sam.tebbs@arm.com>
10593 * config/aarch64/aarch64.c (aarch64_post_cfi_startproc): Replace thunk
10594 check with a frame laid out check.
10596 2019-07-05 Richard Biener <rguenther@suse.de>
10598 * tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize RHS
10599 when comparing against a store with possibly the same value.
10601 2019-07-05 Richard Biener <rguenther@suse.de>
10603 PR tree-optimization/91091
10604 * tree-ssa-alias.h (get_continuation_for_phi): Add tbaa_p parameter.
10605 (walk_non_aliased_vuses): Likewise.
10606 * tree-ssa-alias.c (maybe_skip_until): Pass down tbaa_p.
10607 (get_continuation_for_phi): New tbaa_p parameter and pass
10609 (walk_non_aliased_vuses): Likewise.
10610 * ipa-prop.c (determine_known_aggregate_parts): Adjust.
10611 * tree-ssa-pre.c (translate_vuse_through_block): Likewise.
10612 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
10614 * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add tbaa_p flag.
10615 (adjust_offsets_for_equal_base_address): New function.
10616 (vn_reference_lookup_3): Use it to catch more base equivalences.
10617 Handle and pass down tbaa_p flag.
10618 (vn_reference_lookup_pieces): Adjust.
10619 (vn_reference_lookup): Remove alias-set altering, instead pass
10620 down false as tbaa_p.
10622 2019-07-05 Richard Biener <rguenther@suse.de>
10624 PR tree-optimization/91091
10625 * tree-ssa-sccvn.c (vn_reference_lookup_3): Overlap of
10626 accesses can happen with -fno-strict-aliasing.
10628 2019-07-05 Jan Hubicka <hubicka@ucw.cz>
10630 * tree-ssa-alias.c (alias_stats): Add
10631 nonoverlapping_component_refs_since_match_p_must_overlap.
10632 (dump_alias_stats): Print it.
10633 (nonoverlapping_component_refs_since_match_p): Add early exit.
10634 (nonoverlapping_component_refs_p): Do not account early exit.
10636 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
10638 * except.c (emit_to_new_bb_before): Make sure to put a location on SEQ.
10639 * tree-eh.c (replace_goto_queue_1) <GIMPLE_GOTO>: Propagate location.
10640 (emit_eh_dispatch): Delete.
10641 (lower_catch): Emit the eh_dispatch manually and set the location of
10642 the first catch statement onto it.
10643 (lower_eh_filter): Emit the eh_dispatch manually and set location.
10644 (lower_eh_dispatch): Propagate location.
10645 * tree-outof-ssa.c (set_location_for_edge): Handle EH edges specially.
10646 (eliminate_build): Likewise.
10648 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
10650 * tree-cfg.c (gimple_make_forwarder_block): Propagate location info on
10651 phi nodes if possible.
10652 * tree-scalar-evolution.c (final_value_replacement_loop): Propagate
10653 location info on the newly created statement.
10654 * tree-ssa-loop-manip.c (create_iv): Propagate location info on the
10655 newly created increment if needed.
10657 2019-07-04 Jakub Jelinek <jakub@redhat.com>
10659 PR middle-end/78884
10660 * gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member.
10661 (gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd
10662 loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE.
10663 (gimplify_adjust_omp_clauses): Add safelen (1) clause if
10664 ctx->add_safelen1 is set.
10666 * omp-expand.c (expand_omp_for_static_nochunk): Don't emit
10667 GOMP_loop_start at the start of second worksharing loop in a scan.
10668 For nowait, don't emit GOMP_loop_end_nowait at the end of first
10669 worksharing loop in a scan even if there are conditional lastprivates,
10670 and do emit GOMP_loop_end_nowait at the end of second worksharing loop.
10672 2019-07-04 Jan Hubicka <jh@suse.cz>
10674 * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p):
10675 Fix check for match in the ref walk.
10677 2019-07-04 Martin Liska <mliska@suse.cz>
10679 * tree-ssa-loop-niter.c
10680 (get_upper_bound_based_on_builtin_expr_with_prob): New function.
10681 (estimate_numbers_of_iterations):
10682 Support __builtin_expect_with_probability for analysis
10683 of # of loop iterations.
10685 2019-07-04 Alexandre Oliva <oliva@adacore.com>
10687 * doc/generic.texi (Cleanups): Document EH_ELSE_EXPR.
10688 * except.c: Likewise.
10689 * expr.c (expand_expr_real_1): Reject it.
10690 * gimplify.c (gimplify_expr): Gimplify it, within
10692 * tree-dump.c (dequeue_and_dump): Dump it.
10693 * tree-pretty-print.c (dump_generic_node): Likewise.
10694 * tree.c (block_may_fallthru): Handle it.
10695 * tree.def (EH_ELSE_EXPR): Introduce it.
10696 * gimple-pretty-print.c (dump_gimple_try): Dump TRY_FINALLY
10697 with GIMPLE_EH_ELSE as try/finally/else.
10699 2019-07-04 Richard Biener <rguenther@suse.de>
10702 * tree-pass.h (execute_all_ipa_transforms): Add a flag
10703 parameter whether to disable GC collection.
10704 * passes.c (execute_one_ipa_transform_pass): Likewise, and
10706 (execute_all_ipa_transforms): Likewise and pass it down.
10707 * cgraph.c (cgraph_node::get_body): Do not invoke garbage
10708 collection from applying IPA transforms.
10709 * cgraphunit.c (cgraph_node::expand): Allow garbage collection
10710 from applying IPA transforms.
10712 2019-07-04 Richard Biener <rguenther@suse.de>
10714 PR tree-optimization/90911
10715 * tree-vectorizer.h (_loop_vec_info::scalar_loop_scaling): New field.
10716 (LOOP_VINFO_SCALAR_LOOP_SCALING): new.
10717 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
10718 scalar_loop_scaling.
10719 (vect_transform_loop): Scale scalar loop profile if needed.
10720 * tree-vect-loop-manip.c (vect_loop_versioning): When re-using
10721 the loop copy from if-conversion adjust edge probabilities
10722 and scale the vectorized loop body profile, queue the scalar
10723 profile for updating after peeling.
10725 2019-07-04 Jan Hubicka <jh@suse.cz>
10727 * tree-ssa-alias.c (decl_refs_may_alias_p): Add size1 and size2
10728 parameters; return early for must-alias.
10729 (indirect_ref_may_alias_decl_p): Likewise; when establishing
10730 outer types match, try nonoverlapping_component_refs
10731 if must-alias is not obvious.
10732 (indirect_refs_may_alias_p): Likewise.
10733 (refs_may_alias_p_2): Likewise.
10735 2019-07-04 Richard Biener <rguenther@suse.de>
10737 * tree-ssa-sccvn.h (vn_reference_lookup): Add last_vuse_ptr
10739 * tree-ssa-sccvn.c (last_vuse_ptr, vn_walk_kind): Move
10741 (struct vn_walk_cb_data): New callback data struct.
10742 (vn_reference_lookup_2): Adjust.
10743 (vn_reference_lookup_3): Likewise.
10744 (vn_reference_lookup_pieces): Likewise.
10745 (vn_reference_lookup): Likewise, get last_vuse_ptr argument.
10746 (visit_reference_op_load): Adjust.
10748 2019-07-04 Jakub Jelinek <jakub@redhat.com>
10750 PR tree-optimization/91063
10751 * tree-vect-stmts.c (vect_init_vector): Call gsi_remove to remove
10752 stmt from stmts sequence before calling vect_init_vector_1.
10755 2019-07-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10758 * fwprop.c (reg_single_def_p): New function.
10759 (propagate_rtx_1): Add unconditional else inside RTX_EXTRA case.
10760 (forward_propagate_into): New parameter reg_prop_only
10761 with default value false.
10762 Propagate def's src into loop only if SET_SRC and SET_DEST
10763 of def_set have single definitions.
10764 Likewise if reg_prop_only is set to true.
10765 (fwprop): New param fwprop_addr_p.
10766 Integrate fwprop_addr into fwprop.
10767 (fwprop_addr): Remove.
10768 (pass_rtl_fwprop_addr::execute): Call fwprop with arg set
10770 (pass_rtl_fwprop::execute): Call fwprop with arg set to false.
10771 * simplify-rtx.c (simplify_subreg): Add case for vector comparison.
10772 * config/i386/sse.md (UNSPEC_BLENDV): Adjust pattern.
10774 2019-07-04 Jakub Jelinek <jakub@redhat.com>
10776 * omp-low.c (lower_omp_scan): Call lower_omp on stmt's body
10777 in worksharing loop scans.
10779 PR tree-optimization/91074
10780 * omp-low.c (lower_omp_for_scan): Set DECL_GIMPLE_REG_P on cplx
10783 PR rtl-optimization/90756
10784 * explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it
10787 2019-07-03 Dennis Zhang <dennis.zhang@arm.com>
10789 * config/aarch64/aarch64.md: Remove redundant constraints from
10790 define_expand but keep some patterns untouched if they are
10791 specially selected by TARGET_SECONDARY_RELOAD hook.
10792 * config/aarch64/aarch64-sve.md: Likewise.
10793 * config/aarch64/atomics.md: Remove redundant constraints from
10795 * config/aarch64/aarch64-simd.md: Likewise.
10797 2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
10799 * config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases.
10800 (RDYNAMIC): Rename to, DARWIN_RDYNAMIC.
10801 (DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker
10803 (LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and
10806 2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
10808 * config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin.
10809 (STARTFILE_SPEC): Split crt3 into a separate spec.
10810 (DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec.
10811 (DARWIN_CRT2_SPEC): New.
10812 (DARWIN_CRT3_SPEC): New.
10813 (MIN_LD64_OMIT_STUBS): Revise to 62.1.
10814 * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions.
10815 (DARWIN_CRT3_SPEC): New.
10817 2019-07-03 Michael Meissner <meissner@linux.ibm.com>
10819 * config/rs6000/altivec.md (altivec_mov<mode>, VM2 iterator):
10820 Change the RTL attribute "length" from "4" to "*" to allow the
10821 length attribute to be adjusted automatically for prefixed load,
10822 store, and add immediate instructions.
10823 * config/rs6000/rs6000.md (extendhi<mode>2, EXTHI iterator):
10825 (extendsi<mode>2, EXTSI iterator): Likewise.
10826 (movsi_internal1): Likewise.
10827 (movsi_from_sf): Likewise.
10828 (movdi_from_sf_zero_ext): Likewise.
10829 (mov<mode>_internal): Likewise.
10830 (movcc_internal1, QHI iterator): Likewise.
10831 (mov<mode>_softfloat, FMOVE32 iterator): Likewise.
10832 (movsf_from_si): Likewise.
10833 (mov<mode>_hardfloat32, FMOVE64 iterator): Likewise.
10834 (mov<mode>_softfloat64, FMOVE64 iterator): Likewise.
10835 (mov<mode>, FMOVE128 iterator): Likewise.
10836 (movdi_internal64): Likewise.
10837 * config/rs6000/vsx.md (vsx_le_permute_<mode>, VSX_TI iterator):
10839 (vsx_le_undo_permute_<mode>, VSX_TI iterator): Likewise.
10840 (vsx_mov<mode>_64bit, VSX_M iterator): Likewise.
10841 (vsx_mov<mode>_32bit, VSX_M iterator): Likewise.
10842 (vsx_splat_v4sf): Likewise.
10844 2019-07-03 Mark Wielaard <mark@klomp.org>
10847 * dwarf2out.c (add_top_level_skeleton_die_attrs): Only add
10848 DW_AT_addr_base if there is actually a .debug_addr section with
10850 (output_addr_table): Add DWARF5 table header generation here after
10851 checking there are actually any addresses from...
10852 (dwarf2out_finish): ...here.
10854 2019-07-03 Richard Biener <rguenther@suse.de>
10856 PR middle-end/91069
10857 * match.pd (vec_perm -> bit_insert): Fix element read from
10860 2019-07-03 Martin Liska <mliska@suse.cz>
10862 * dbgcnt.def (DEBUG_COUNTER): Add match debug counter.
10863 * genmatch.c (dt_simplify::gen_1): Generate dbgcnt
10865 * generic-match-head.c: Include dbgcnt.h.
10866 * gimple-match-head.c: Likewise.
10868 2019-07-03 Martin Liska <mliska@suse.cz>
10870 * gcov-counter.def (GCOV_COUNTER_V_SINGLE): Remove.
10871 (GCOV_COUNTER_V_TOPN): New.
10872 (GCOV_COUNTER_V_INDIR): Use _topn.
10873 * gcov-io.h (GCOV_DISK_SINGLE_VALUES): Remove.
10874 (GCOV_TOPN_VALUES): New.
10875 (GCOV_SINGLE_VALUE_COUNTERS): Remove.
10876 (GCOV_TOPN_VALUES_COUNTERS): New.
10877 * profile.c (instrument_values): Use HIST_TYPE_TOPN_VALUES.
10879 (gimple_init_gcov_profiler): Rename variables from one_value
10881 (gimple_gen_one_value_profiler): Remove.
10882 (gimple_gen_topn_values_profiler): New function.
10883 * value-prof.c (dump_histogram_value): Use TOPN_VALUES
10884 names instead of SINGLE_VALUE.
10885 (stream_out_histogram_value): Likewise.
10886 (stream_in_histogram_value): Likewise.
10887 (get_most_common_single_value): Likewise.
10888 (gimple_divmod_fixed_value_transform): Likewise.
10889 (gimple_stringops_transform): Likewise.
10890 (gimple_divmod_values_to_profile): Likewise.
10891 (gimple_stringops_values_to_profile): Likewise.
10892 (gimple_find_values_to_profile): Likewise.
10893 * value-prof.h (enum hist_type): Rename to TOPN.
10894 (gimple_gen_one_value_profiler): Remove.
10895 (gimple_gen_topn_values_profiler): New.
10897 2019-07-03 Eric Botcazou <ebotcazou@adacore.com>
10899 * dwarf2out.c (add_scalar_info): Add back refererence to existing DIE
10900 if it has the DW_AT_data_member_location attribute.
10902 2019-07-03 Richard Biener <rguenther@suse.de>
10904 * gimple-pretty-print.c (dump_ternary_rhs): Fix BIT_INSERT_EXPR
10907 2019-07-03 Sylvia Taylor <sylvia.taylor@arm.com>
10909 * config/aarch64/aarch64.md (FP_REGNUM): New constant.
10910 (tlsdesc_small_advsimd_<mode>): Add use of FP_REGNUM.
10911 (tlsdesc_small_sve_<mode>): Likewise.
10913 2019-07-03 Martin Liska <mliska@suse.cz>
10915 * Makefile.in: Define ZSTD_LIB.
10916 * common.opt: Adjust compression level
10917 to support also zstd levels.
10918 * config.in: Regenerate.
10919 * configure: Likewise.
10920 * configure.ac: Add --with-zstd and --with-zstd-include options
10922 * doc/install.texi: Mention zstd dependency.
10923 * gcc.c: Print supported LTO compression algorithms.
10924 * lto-compress.c (lto_normalized_zstd_level): Likewise.
10925 (lto_compression_zstd): Likewise.
10926 (lto_uncompression_zstd): Likewise.
10927 (lto_end_compression): Dispatch in between zlib and zstd.
10928 (lto_compression_zlib): Mark with ATTRIBUTE_UNUSED.
10929 (lto_uncompression_zlib): Make it static.
10930 * lto-compress.h (lto_end_uncompression): Fix GNU coding style.
10931 * lto-section-in.c (lto_get_section_data): Pass info
10932 about used compression.
10933 * lto-streamer-out.c: By default use zstd when possible.
10934 * timevar.def (TV_IPA_LTO_DECOMPRESS): Rename to decompression
10935 (TV_IPA_LTO_COMPRESS): Likewise for compression.
10937 2019-07-03 Martin Liska <mliska@suse.cz>
10939 * lto-section-in.c (lto_get_section_data): Add "lto" section.
10940 * lto-section-out.c (lto_destroy_simple_output_block): Never
10941 compress LTO_section_lto section.
10942 * lto-streamer-out.c (produce_asm): Do not set major_version
10944 (lto_output_toplevel_asms): Likewise.
10945 (produce_lto_section): New function.
10946 (lto_output): Call produce_lto_section.
10947 (lto_write_mode_table): Do not set major_version and
10949 (produce_asm_for_decls): Likewise.
10950 * lto-streamer.h (enum lto_section_type): Add LTO_section_lto
10952 (struct lto_header): Remove.
10953 (struct lto_section): New struct.
10954 (struct lto_simple_header): Do not inherit from lto_header.
10955 (struct lto_file_decl_data): Add lto_section_header field.
10957 2019-07-03 Martin Liska <mliska@suse.cz>
10959 * lra-eliminations.c (eliminate_regs_in_insn): Remove
10961 * reg-stack.c (check_asm_stack_operands): Likewise.
10962 * tree-ssa-structalias.c (create_function_info_for): Likewise.
10963 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
10964 * config/i386/i386-expand.c (ix86_expand_sse2_mulvxdi3): Use
10965 force_expand_binop.
10967 2019-07-03 Martin Liska <mliska@suse.cz>
10969 PR tree-optimization/90892
10970 * builtins.c (inline_expand_builtin_string_cmp): Handle '\0'
10971 in string constants.
10973 2019-07-03 Martin Liska <mliska@suse.cz>
10975 PR middle-end/90899
10976 * multiple_target.c (create_dispatcher_calls): Add to comdat
10977 group only if set for ifunc.
10979 2019-07-03 Martin Liska <mliska@suse.cz>
10982 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
10983 Define local_object_name in outer scope in order to handle
10984 use-after-scope issue.
10986 2019-07-03 Martin Liska <mliska@suse.cz>
10988 * common.opt: Add fprofile-note.
10989 * coverage.c (coverage_init): Append the option
10991 * doc/invoke.texi: Document -fprofile-note.
10993 2019-07-03 Jakub Jelinek <jakub@redhat.com>
10995 PR tree-optimization/91033
10996 * tree-vectorizer.h (vect_mark_stmts_to_be_vectorized,
10997 vect_analyze_data_refs): Add bool * arguments.
10998 * tree-vect-data-refs.c (vect_analyze_data_refs): Add fatal argument,
10999 if failure is due to scatter/gather, set *fatal to false if non-NULL.
11000 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
11001 * tree-vect-loop.c (vect_analyze_loop_2): Adjust
11002 vect_mark_stmts_to_be_vectorized and vect_analyze_data_refs callers.
11003 * tree-vect-slp.c (vect_slp_analyze_bb_1): Adjust
11004 vect_analyze_data_refs caller.
11006 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__SCANTEMP_
11008 * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__SCANTEMP_ instead of
11009 OMP_CLAUSE__CONDTEMP_ as range's upper bound.
11010 (OMP_CLAUSE__SCANTEMP__ALLOC, OMP_CLAUSE__SCANTEMP__CONTROL): Define.
11011 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
11012 OMP_CLAUSE__SCANTEMP_ entry.
11013 (walk_tree_1): Handle OMP_CLAUSE__SCANTEMP_.
11014 * tree-pretty-print.c (dump_omp_clause): Likewise.
11015 * tree-nested.c (convert_nonlocal_omp_clauses,
11016 convert_local_omp_clauses): Likewise.
11017 * omp-general.h (struct omp_for_data): Add have_scantemp and
11018 have_nonctrl_scantemp members.
11019 * omp-general.c (omp_extract_for_data): Initialize them.
11020 * omp-low.c (struct omp_context): Add scan_exclusive member.
11021 (scan_omp_1_stmt): Don't unnecessarily mask gimple_omp_for_kind
11022 result again with GF_OMP_FOR_KIND_MASK. Initialize also
11023 ctx->scan_exclusive.
11024 (lower_rec_simd_input_clauses): Use ctx->scan_exclusive instead
11025 of !ctx->scan_inclusive.
11026 (lower_rec_input_clauses): Simplify gimplification of dtors using
11027 gimplify_and_add. For non-is_simd test OMP_CLAUSE_REDUCTION_INSCAN
11028 rather than rvarp. Handle OMP_CLAUSE_REDUCTION_INSCAN in worksharing
11029 loops. Don't add barrier for reduction_omp_orig_ref if
11030 ctx->scan_??xclusive.
11031 (lower_reduction_clauses): Don't do anything for ctx->scan_??xclusive.
11032 (lower_omp_scan): Use ctx->scan_exclusive instead
11033 of !ctx->scan_inclusive. Handle worksharing loops with inscan
11034 reductions. Use new_vard != new_var instead of repeated
11035 omp_is_reference calls.
11036 (omp_find_scan, lower_omp_for_scan): New functions.
11037 (lower_omp_for): Call lower_omp_for_scan for worksharing loops with
11039 * omp-expand.c (expand_omp_scantemp_alloc): New function.
11040 (expand_omp_for_static_nochunk): Handle fd->have_nonctrl_scantemp
11041 and fd->have_scantemp.
11043 * gimplify.c (gimplify_scan_omp_clauses): For inscan reductions
11044 on worksharing loop propagate it as shared clause to containing
11047 * omp-expand.c (expand_omp_for_static_nochunk,
11048 expand_omp_for_static_chunk): For nowait worksharing loop with
11049 conditional lastprivate clause(s), emit GOMP_loop_end_nowait call
11052 2019-07-02 qing zhao <qing.zhao@oracle.com>
11054 PR preprocessor/90581
11055 * doc/cppopts.texi: Add document for -fmax-include-depth.
11056 * doc/invoke.texi (Preprocessor Options): List -fmax-include-depth.
11058 2019-07-02 Uroš Bizjak <ubizjak@gmail.com>
11060 * config/i386/mmx.md (mmx_pack<s_trunsuffix>swb):
11061 Use TARGET_SSE2 && SSE_REGNO_P in split condition.
11062 (mmx_packssdw): Ditto.
11063 (mmx_punpckhbw): Ditto.
11064 (mmx_punpcklbw): Ditto.
11065 (mmx_punpckhwd): Ditto.
11066 (mmx_punpcklwd): Ditto.
11067 (mmx_punpckhdq): Ditto.
11068 (mmx_punpckldq): Ditto.
11069 (*vec_dupv4hi): Ditto.
11070 (*vec_dupv2si): Ditto.
11071 (mmx_pmovmskb): Ditto.
11072 * config/i386/sse.md (sse_cvtpi2ps): Use
11073 TARGET_SSE2 && SSE_REG_P in split condition.
11074 (ssse3_ph<plusminus_mnemonic>wv4hi3): Use
11075 TARGET_SSSE3 && SSE_REGNO_P in split condition.
11076 (ssse3_ph<plusminus_mnemonic>dv2si3): Ditto.
11077 (ssse3_pshufbv8qi3): Ditto.
11078 (ssse3_palignrdi): Ditto.
11080 2019-07-02 Andrew Stubbs <ams@codesourcery.com>
11082 * config/gcn/gcn.md (movdi_symbol_save_scc): Convert to define_insn
11083 with inlined save and restore.
11085 2019-07-02 Eric Botcazou <ebotcazou@adacore.com>
11087 * cfgexpand.c (pass_expand::execute): Deal specially with instructions
11088 to be inserted on single successor edge of the entry block. Then call
11089 commit_edge_insertions instead of inserting the instructions manually.
11090 * cfgrtl.c (commit_edge_insertions): Do not verify flow info during
11091 RTL expansion and rebuild jump labels chain.
11093 2019-07-02 Richard Biener <rguenther@suse.de>
11095 * tree-core.h (enum tree_index): Add TI_CHREC_DONT_KNOW and
11097 * tree.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
11099 * tree.c (build_common_tree_nodes): Initialize them.
11100 * tree-chrec.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
11101 Make declarations comments.
11102 * tree-scalar-evolution.c (chrec_not_analyzed_yet, chrec_dont_know,
11103 chrec_known): Remove definitions.
11104 (initialize_scalar_evolutions_analyzer): Remove.
11105 (scev_initialize): Do not call initialize_scalar_evolutions_analyzer.
11106 * tree-streamer.c (preload_common_nodes): Do not preload
11107 TI_CHREC_DONT_KNOW or TI_CHREC_KNOWN.
11109 2019-07-02 Jan Hubicka <jh@suse.cz>
11111 * tree-ssa-alias.c (aliasing_component_refs_p): Remove forgotten
11114 2019-07-02 Jan Hubicka <jh@suse.cz>
11116 * tree-ssa-alias.c (nonoverlapping_component_refs_for_decl_p): Rename
11118 (nonoverlapping_component_refs_since_match_p): ... this one;
11119 handle also non-decl bases; return -1 if search gave up.
11120 (alias_stats): Rename nonoverlapping_component_refs_of_decl_p_may_alias,
11121 nonoverlapping_component_refs_of_decl_p_no_alias to
11122 nonoverlapping_component_refs_since_match_p_may_alias,
11123 nonoverlapping_component_refs_since_match_p_no_alias.
11124 (dump_alias_stats): Update dumping.
11125 (aliasing_matching_component_refs_p): Break out from ...;
11126 dispatch to nonoverlapping_component_refs_for_decl_p
11127 and nonoverlapping_component_refs_since_match_p.
11128 (aliasing_component_refs_p): ... here; call
11129 nonoverlapping_component_refs_p in scenarios where we can not
11130 precisely determine base match.
11131 (decl_refs_may_alias_p): Use
11132 nonoverlapping_component_refs_since_match_p.
11133 (indirect_ref_may_alias_decl_p): Do not call
11134 nonoverlapping_component_refs_p.
11135 (indirect_refs_may_alias_p): Likewise.
11137 2019-07-02 Jan Hubicka <jh@suse.cz>
11139 * tree-inline.c (remap_gimple_stmt): Do not subtitute handled components
11140 to clobber of return value.
11142 2019-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11144 * config/arm/cortex-a57.md (cortex_a57_neon_type): Use neon_arith_basic
11145 for is_neon_type instructions that have not already been categorized.
11147 2019-07-02 Richard Biener <rguenther@suse.de>
11149 PR tree-optimization/58483
11150 * tree-ssa-scopedtables.c (avail_expr_hash): Use OEP_ADDRESS_OF
11151 for MEM_REF base hashing.
11152 (equal_mem_array_ref_p): Likewise for base comparison.
11154 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
11156 * config/rs6000/rs6000.md (signbit<mode>2_dm): Make this a
11157 parameterized name.
11158 (signbit<mode>2): Use that name. Simplify.
11160 2019-07-01 Joern Rennecke <joern.rennecke@riscy-ip.com>
11162 PR middle-end/66726
11163 * tree-ssa-phiopt.c (factor_out_conditional_conversion):
11164 Tune heuristic from PR71016 to allow MIN / MAX.
11166 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
11168 * config/rs6000/rs6000.md (ieee_128bit_vsx_abs<mode>2): Make this a
11169 parameterized name.
11170 (abs<mode>2): Use that name. Simplify.
11172 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
11174 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2): Make this a
11175 parameterized name.
11176 (neg<mode>2): Use that name. Simplify.
11178 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
11180 * config/rs6000/rs6000.md (abs<mode>2_hw): Make this a parameterized
11182 (abs<mode>2): Use that name. Simplify.
11184 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
11186 * config/rs6000/rs6000.md (neg<mode>2_hw): Make this a parameterized
11188 (neg<mode>2): Use that name. Simplify.
11190 2019-07-01 Uroš Bizjak <ubizjak@gmail.com>
11192 * config/i386/i386.md ("isa" attribute): Add sse_noavx.
11193 ("enabled" attribute): Handle sse_noavx isa attribute.
11194 * config/i386/mmx.md (*vec_dupv2sf): Add "isa" attribute.
11195 Use TARGET_SSE && SSE_REGNO_P in split condition.
11196 (*vec_dupv2sf): Ditto.
11198 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
11200 * config/rs6000/rs6000.md (extenddf<mode>2): Make this a parameterized
11202 (floatsi<mode>2): Use that name. Simplify.
11204 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
11206 * config/rs6000/rs6000.md (extenddf<mode>2_fprs): Make this a
11207 parameterized name.
11208 (extenddf<mode>2_vsx): Make this a parameterized name.
11209 (extenddf<mode>2): Use those names. Simplify.
11211 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
11213 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Make this a parameterized
11215 (eh_return): Use that name. Simplify.
11217 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
11219 * config/rs6000/rs6000.md (ctr<mode>): Make this a parameterized name.
11220 (doloop_end): Use that name. Simplify.
11222 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
11224 * config/rs6000/rs6000.md (indirect_jump<mode>_nospec): Make this a
11225 parameterized name.
11226 (indirect_jump): Use that name. Simplify.
11228 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
11230 * config/rs6000/rs6000.md (abs<mode>2_internal): Make this a
11231 parameterized name.
11232 (abs<mode>2): Use that name. Simplify.
11234 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
11236 * config/rs6000/rs6000.md (fix_trunc<mode>si2_fprs): Make this a
11237 parameterized name.
11238 (fix_trunc<mode>si2): Use that name. Simplify.
11240 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
11242 * config/rs6000/rs6000.md (neg<mode>2): Make this a parameterized name.
11243 (allocate_stack): Use that name. Simplify.
11245 2019-07-01 Martin Sebor <msebor@redhat.com>
11247 PR middle-end/90923
11248 * hash-map.h (hash_map::put): On insertion invoke element ctor.
11249 (hash_map::get_or_insert): Same. Reformat comment.
11250 * hash-set.h (hash_set::add): On insertion invoke element ctor.
11251 * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): New.
11252 * hash-set-tests.c (test_map_of_type_with_ctor_and_dtor): New.
11253 * hash-table.h (hash_table::operator=): Prevent copy assignment.
11254 (hash_table::hash_table (const hash_table&)): Use copy ctor
11255 instead of assignment to copy elements.
11257 2019-07-01 Wilco Dijkstra <wdijkstr@arm.com>
11258 John David Anglin <danglin@gcc.gnu.org>
11261 * config/pa/pa.md (builtin_longjmp): Restore hard_frame_pointer_rtx
11262 using saved frame pointer.
11264 2019-07-01 Eric Botcazou <ebotcazou@adacore.com>
11266 PR middle-end/64242
11267 * config/sparc/sparc.md (nonlocal_goto): Restore frame pointer last.
11268 Add frame clobber and schedule blockage.
11270 2019-07-01 Sandra Loosemore <sandra@codesourcery.com>
11272 * doc/invoke.texi (Link Options): Further editorial changes to
11273 -flinker-output docs.
11275 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
11277 * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem):
11278 Load both operands of a PLUS into registers separately.
11280 2019-07-01 Andreas Krebbel <krebbel@linux.ibm.com>
11282 * config/s390/vector.md: Fix shift count operand printing.
11284 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
11286 * ira-lives.c (process_bb_node_lives): Use ira_setup_alts.
11288 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
11290 * ira.c (ira_get_dup_out_num): Don't punt for earlyclobbers.
11291 Use recog_data to test for an output operand.
11293 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
11295 * ira.c (ira_setup_alts): If any valid alternatives have zero cost,
11296 exclude any others that are disparaged or that are bound to need
11298 (ira_get_dup_out_num): Expand comment.
11300 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
11302 * ira.c (ira_setup_alts): Use preprocess_constraints to get the
11303 constraint string for each operand/alternative combo. Only handle
11304 '%' at the start of constraint strings, and look for it outside
11307 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
11309 * ira-int.h (ira_setup_alts, ira_get_dup_out_num): Use
11310 alternative_mask instead of HARD_REG_SET to represent a
11311 bitmask of alternatives.
11312 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
11313 * ira-conflicts.c (add_insn_allocno_copies): Likewise.
11315 2019-07-01 Martin Liska <mliska@suse.cz>
11317 * edit-context.c (test_applying_fixits_unreadable_file): Do not
11318 use () for a constructor call.
11319 (test_applying_fixits_line_out_of_range): Likewise.
11320 * ggc-page.c (alloc_page): Use (void *) for %p printf format
11322 (free_page): Likewise.
11324 2019-07-01 Vladislav Ivanishin <vlad@ispras.ru>
11326 * gdbhooks.py (GdbPrettyPrinters.add_printer_for_types): Reorder
11327 parameter names to match usage (no functional change).
11328 (GdbPrettyPrinters.add_printer_for_regex): Ditto.
11330 2019-07-01 Richard Biener <rguenther@suse.de>
11332 * tree-ssa-sccvn.c (class pass_fre): Add may_iterate
11334 (pass_fre::execute): Honor it.
11335 * passes.def: Adjust pass_fre invocations to allow iterating,
11336 add non-iterating pass_fre before late threading/dom.
11338 2019-07-01 Richard Biener <rguenther@suse.de>
11340 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Adjust
11341 TARGET_MEM_REF handling to also handle address-taken ones.
11343 2019-07-01 Hongtao Liu <hongtao.liu@intel.com>
11345 * doc/sourcebuild.texi (Effective-Target Keywords, Other
11346 hardware attributes): Document avx512vp2intersect.
11348 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
11350 * config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2.
11351 (abs<mode>2): New expander.
11352 * config/i386/i386-builtin.def (__builtin_ia32_pabsb):
11353 Use CODE_FOR_ssse3_absv8qi2.
11354 (__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2.
11355 (__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2.
11357 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
11359 * config/i386/i386.md (mmx_isa): Rename x64, x64_noavx and x64_avx
11360 to sse, sse_noavx and avx. Update all uses.
11362 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
11364 * config/i386/mmx.md (sse_movntq): Add "isa" attribute.
11365 (*mmx_<plusminus_insn><mode>3): Ditto.
11366 (*mmx_mulv4hi3"): Ditto.
11367 (*mmx_smulv4hi3_highpart): Ditto.
11368 (*mmx_umulv4hi3_highpart): Ditto.
11369 (*mmx_pmaddwd): Ditto.
11370 (*sse2_umulv1siv1di3): Ditto.
11371 (*mmx_<code>v4hi3): Ditto.
11372 (*mmx_<code>v8qi3): Ditto.
11373 (mmx_ashr<mode>3): Ditto.
11374 ("mmx_<shift_insn><mode>3): Ditto.
11375 (*mmx_eq<mode>3): Ditto.
11376 (mmx_gt<mode>3): Ditto.
11377 (mmx_andnot<mode>3): Ditto.
11378 (*mmx_<code><mode>3): Ditto.
11379 (*mmx_pinsrw): Ditto.
11380 (*mmx_pextrw): Ditto.
11381 (mmx_pshufw_1): Ditto.
11382 (*mmx_uavgv8qi3): Ditto.
11383 (*mmx_uavgv4hi3): Ditto.
11384 ("mmx_psadbw): Ditto.
11385 * config/i386/sse.md (sse_cvtps2pi): Ditto.
11386 (sse_cvttps2pi): Ditto.
11387 (ssse3_pmaddubsw): Ditto.
11388 (*ssse3_pmulhrswv4hi3): Ditto.
11389 (ssse3_psign<mode>3): Ditto.
11391 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
11393 * expr.c (expand_expr_real_1) <BIT_FIELD_REF>: Apply the big-endian
11394 adjustment for bit-fields to all aggregate types.
11396 2019-06-28 Michael Meissner <meissner@linux.ibm.com>
11398 * config/rs6000/predicates.md (pcrel_address): Use
11399 SYMBOL_REF_LOCAL_P to determine if a label is local.
11400 (pcrel_external_address): New predicate.
11401 (non_prefixed_mem_operand): Delete, predicate not used.
11402 * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL_P): Delete, we now use
11403 SYMBOL_REF_LOCAL_P to determine if we can use pc-relative
11405 (SYMBOL_REF_PCREL_P): Likewise.
11408 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Add non-VSX
11410 (floatsi<mode>2_lfiwax_mem): Add non-VSX alternative.
11411 (floatunssi<mode>2_lfiwzx): Add non-VSX alternative.
11412 (floatunssi<mode>2_lfiwzx_mem): Add non-VSX alternative.
11414 2019-06-28 Iain Sandoe <iain@sandoe.co.uk>
11416 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove
11417 override on extra_headers.
11419 2019-06-28 Iain Sandoe <iain@sandoe.co.uk>
11421 * config/darwin-c.c (pop_field_alignment): Quote #pragma options.
11422 * config/darwin-driver.c (darwin_default_min_version): Remove newline
11424 (darwin_driver_init): Likewise.
11426 2019-06-28 Jan Beulich <jbeulich@suse.com>
11428 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
11429 vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>):
11430 Eliminate redundant alternative.
11432 2019-06-28 Jan Beulich <jbeulich@suse.com>
11434 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
11435 vgf2p8affineqb_<mode><mask_name>): Drop % constraint modifier.
11436 Use vector_operand.
11438 2019-06-28 Claudiu Zissulescu <claziss@synopsys.com>
11440 * config/arc/arc.c (arc_rtx_costs): All short instructions are
11441 having a lower cost regardless of the speed option.
11443 2019-06-28 Jan Beulich <jbeulich@suse.com>
11445 * config/i386/sse.md (sse2_cvtpd2pi, sse2_cvttpd2pi): Use
11446 vector_operand plus, on both alternatives, "Bm" constraint.
11448 2019-06-28 Dennis Zhang <dennis.zhang@arm.com>
11450 * config/arm/arm.md: Remove redundant constraints from
11451 define_expand but leave reload_inm and reload_outm patterns
11452 untouched since they need special constraints to work.
11453 * config/arm/arm-fixed.md: Remove redundant constraints from
11455 * config/arm/iwmmxt.md: Likewise.
11456 * config/arm/neon.md: Likewise.
11457 * config/arm/sync.md: Likewise.
11458 * config/arm/thumb1.md: Likewise.
11459 * config/arm/vec-common.md: Likewise.
11461 2019-06-27 Ilia Diachkov <ilia.diachkov@optimitech.com>
11463 * doc/install.texi: Document --disable-tm-clone-registry.
11465 2019-06-27 Jakub Jelinek <jakub@redhat.com>
11468 * gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT
11471 PR tree-optimization/91010
11472 * tree-vect-stmts.c (scan_operand_equal_p): If offset1 == offset2,
11473 return true. Otherwise, don't call operand_equal_p if offset1 or
11474 offset2 is NULL and just return false.
11476 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
11478 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour
11479 user-specified float mode choice for kernel mode code.
11481 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
11483 * config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the
11486 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
11488 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not
11489 use longcall for 64b code.
11491 2019-06-27 Aaron Sawdey <acsawdey@linux.ibm.com>
11493 * builtins.c (get_memory_rtx): Fix comment.
11494 * optabs.def (movmem_optab): Change to cpymem_optab.
11495 * expr.c (emit_block_move_via_cpymem): Change movmem to cpymem.
11496 (emit_block_move_hints): Change movmem to cpymem.
11497 * defaults.h: Change movmem to cpymem.
11498 * targhooks.c (get_move_ratio): Change movmem to cpymem.
11499 (default_use_by_pieces_infrastructure_p): Ditto.
11500 * config/aarch64/aarch64-protos.h: Change movmem to cpymem.
11501 * config/aarch64/aarch64.c (aarch64_expand_movmem): Change movmem
11503 * config/aarch64/aarch64.h: Change movmem to cpymem.
11504 * config/aarch64/aarch64.md (movmemdi): Change name to cpymemdi.
11505 * config/alpha/alpha.h: Change movmem to cpymem in comment.
11506 * config/alpha/alpha.md (movmemqi, movmemdi, *movmemdi_1): Change
11508 * config/arc/arc-protos.h: Change movmem to cpymem.
11509 * config/arc/arc.c (arc_expand_movmem): Change movmem to cpymem.
11510 * config/arc/arc.h: Change movmem to cpymem in comment.
11511 * config/arc/arc.md (movmemsi): Change movmem to cpymem.
11512 * config/arm/arm-protos.h: Change movmem to cpymem in names.
11513 * config/arm/arm.c (arm_movmemqi_unaligned, arm_gen_movmemqi,
11514 gen_movmem_ldrd_strd, thumb_expand_movmemqi) Change movmem to cpymem.
11515 * config/arm/arm.md (movmemqi): Change movmem to cpymem.
11516 * config/arm/thumb1.md (movmem12b, movmem8b): Change movmem to cpymem.
11517 * config/avr/avr-protos.h: Change movmem to cpymem.
11518 * config/avr/avr.c (avr_adjust_insn_length, avr_emit_movmemhi,
11519 avr_out_movmem): Change movmem to cpymem.
11520 * config/avr/avr.md (movmemhi, movmem_<mode>, movmemx_<mode>):
11521 Change movmem to cpymem.
11522 * config/bfin/bfin-protos.h: Change movmem to cpymem.
11523 * config/bfin/bfin.c (single_move_for_movmem, bfin_expand_movmem):
11524 Change movmem to cpymem.
11525 * config/bfin/bfin.h: Change movmem to cpymem in comment.
11526 * config/bfin/bfin.md (movmemsi): Change name to cpymemsi.
11527 * config/c6x/c6x-protos.h: Change movmem to cpymem.
11528 * config/c6x/c6x.c (c6x_expand_movmem): Change movmem to cpymem.
11529 * config/c6x/c6x.md (movmemsi): Change name to cpymemsi.
11530 * config/frv/frv.md (movmemsi): Change name to cpymemsi.
11531 * config/ft32/ft32.md (movmemsi): Change name to cpymemsi.
11532 * config/h8300/h8300.md (movmemsi): Change name to cpymemsi.
11533 * config/i386/i386-expand.c (expand_set_or_movmem_via_loop,
11534 expand_set_or_movmem_via_rep, expand_movmem_epilogue,
11535 expand_setmem_epilogue_via_loop, expand_set_or_cpymem_prologue,
11536 expand_small_cpymem_or_setmem,
11537 expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves,
11538 expand_set_or_cpymem_constant_prologue,
11539 ix86_expand_set_or_cpymem): Change movmem to cpymem.
11540 * config/i386/i386-protos.h: Change movmem to cpymem.
11541 * config/i386/i386.h: Change movmem to cpymem in comment.
11542 * config/i386/i386.md (movmem<mode>): Change name to cpymem.
11543 (setmem<mode>): Change expansion function name.
11544 * config/lm32/lm32.md (movmemsi): Change name to cpymemsi.
11545 * config/m32c/blkmov.md (movmemhi, movmemhi_bhi_op, movmemhi_bpsi_op,
11546 movmemhi_whi_op, movmemhi_wpsi_op): Change movmem to cpymem.
11547 * config/m32c/m32c-protos.h: Change movmem to cpymem.
11548 * config/m32c/m32c.c (m32c_expand_movmemhi): Change movmem to cpymem.
11549 * config/m32r/m32r.c (m32r_expand_block_move): Change movmem to cpymem.
11550 * config/m32r/m32r.md (movmemsi, movmemsi_internal): Change movmem
11552 * config/mcore/mcore.md (movmemsi): Change name to cpymemsi.
11553 * config/microblaze/microblaze.c: Change movmem to cpymem in comment.
11554 * config/microblaze/microblaze.md (movmemsi): Change name to cpymemsi.
11555 * config/mips/mips.c (mips_use_by_pieces_infrastructure_p):
11556 Change movmem to cpymem.
11557 * config/mips/mips.h: Change movmem to cpymem.
11558 * config/mips/mips.md (movmemsi): Change name to cpymemsi.
11559 * config/nds32/nds32-memory-manipulation.c
11560 (nds32_expand_movmemsi_loop_unknown_size,
11561 nds32_expand_movmemsi_loop_known_size, nds32_expand_movmemsi_loop,
11562 nds32_expand_movmemsi_unroll,
11563 nds32_expand_movmemsi): Change movmem to cpymem.
11564 * config/nds32/nds32-multiple.md (movmemsi): Change name to cpymemsi.
11565 * config/nds32/nds32-protos.h: Change movmem to cpymem.
11566 * config/pa/pa.c (compute_movmem_length): Change movmem to cpymem.
11567 (pa_adjust_insn_length): Change call to compute_movmem_length.
11568 * config/pa/pa.md (movmemsi, movmemsi_prereload, movmemsi_postreload,
11569 movmemdi, movmemdi_prereload,
11570 movmemdi_postreload): Change movmem to cpymem.
11571 * config/pdp11/pdp11.md (movmemhi, movmemhi1,
11572 movmemhi_nocc, UNSPEC_MOVMEM): Change movmem to cpymem.
11573 * config/riscv/riscv.c: Change movmem to cpymem in comment.
11574 * config/riscv/riscv.h: Change movmem to cpymem.
11575 * config/riscv/riscv.md: (movmemsi) Change name to cpymemsi.
11576 * config/rs6000/rs6000.md: (movmemsi) Change name to cpymemsi.
11577 * config/rx/rx.md: (UNSPEC_MOVMEM, movmemsi, rx_movmem): Change
11579 * config/s390/s390-protos.h: Change movmem to cpymem.
11580 * config/s390/s390.c (s390_expand_movmem, s390_expand_setmem,
11581 s390_expand_insv): Change movmem to cpymem.
11582 * config/s390/s390.md (movmem<mode>, movmem_short, *movmem_short,
11583 movmem_long, *movmem_long, *movmem_long_31z): Change movmem to cpymem.
11584 * config/sh/sh.md (movmemsi): Change name to cpymemsi.
11585 * config/sparc/sparc.h: Change movmem to cpymem in comment.
11586 * config/vax/vax-protos.h (vax_output_movmemsi): Remove prototype
11587 for nonexistent function.
11588 * config/vax/vax.h: Change movmem to cpymem in comment.
11589 * config/vax/vax.md (movmemhi, movmemhi1): Change movmem to cpymem.
11590 * config/visium/visium.h: Change movmem to cpymem in comment.
11591 * config/visium/visium.md (movmemsi): Change name to cpymemsi.
11592 * config/xtensa/xtensa.md (movmemsi): Change name to cpymemsi.
11593 * doc/md.texi: Change movmem to cpymem and update description to match.
11594 * doc/rtl.texi: Change movmem to cpymem.
11595 * target.def (use_by_pieces_infrastructure_p): Change movmem to cpymem.
11596 * doc/tm.texi: Regenerate.
11598 2019-06-27 Bill Schmidt <wschmidt@linux.ibm.com>
11600 * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
11601 -fvariable-expansion-in-unroller by default.
11602 * doc/invoke.texi (-fvariable-expansion-in-unroller): Document new
11605 2019-06-27 David Edelsohn <dje.gcc@gmail.com>
11608 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
11609 * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
11611 * config.gcc(rs6000-*-*): Define target_gtfiles.
11613 2019-06-27 Jan Hubicka <jh@suse.cz>
11615 * ipa-devirt.c (odr_type_d): Add tbaa_enabled flag.
11616 (add_type_duplicate): When odr hash is not allocated, to nothing.
11617 (odr_based_tbaa_p): New function.
11618 (set_type_canonical_for_odr_type): New function.
11619 * ipa-utils.h (enable_odr_based_tbaa, odr_based_tbaa_p,
11620 set_type_canonical_for_odr_type): New.
11621 * tree.c (gimple_canonical_types_compatible_p): ODR types with
11622 ODR based TBAA are not equivalent to non-ODR types.
11624 2019-06-27 Martin Liska <mliska@suse.cz>
11626 PR tree-optimization/90974
11627 PR rtl-optimization/90975
11628 PR rtl-optimization/90976
11630 PR tree-optimization/91017
11631 * config/i386/i386-expand.c (ix86_expand_rounddf_32): Remove
11633 * lra.c (lra_set_insn_recog_data): Remove a leftover from
11634 initial commit of IRA.
11635 * optabs.c (expand_twoval_binop): Use xop0 and xop1 instead
11637 * tree-vect-loop.c (vect_create_epilog_for_reduction):
11638 Remove unused mode1.
11639 * tree-vect-stmts.c (vectorizable_call): Remove dead assignment
11642 2019-06-27 Jakub Jelinek <jakub@redhat.com>
11645 * config/i386/sse.md (avx_vec_concat<mode>): Use nonimmediate_operand
11646 instead of register_operand for operands[1], add m to its constraints
11647 if operands[2] uses "C" constraint. Ensure in condition that if
11648 operands[2] is not 0, then operands[1] is not a MEM. For last two
11649 alternatives, use unaligned loads instead of aligned if operands[1] is
11650 misaligned_operand.
11652 2019-06-27 Martin Liska <mliska@suse.cz>
11654 * asan.c (asan_emit_allocas_unpoison): Remove obviously
11656 * bt-load.c (move_btr_def): Likewise.
11657 * builtins.c (expand_builtin_apply_args_1): Likewise.
11658 (expand_builtin_apply): Likewise.
11659 * cfgexpand.c (expand_asm_stmt): Likewise.
11660 (construct_init_block): Likewise.
11661 * cfghooks.c (verify_flow_info): Likewise.
11662 * cfgloopmanip.c (remove_path): Likewise.
11663 * cfgrtl.c (rtl_verify_bb_layout): Likewise.
11664 * cgraph.c (cgraph_node::set_pure_flag): Likewise.
11665 * combine.c (simplify_if_then_else): Likewise.
11666 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
11667 (choose_basereg): Likewise.
11668 (ix86_expand_prologue): Likewise.
11669 (ix86_preferred_output_reload_class): Likewise.
11670 * cselib.c (cselib_record_sets): Likewise.
11671 * df-scan.c (df_scan_alloc): Likewise.
11672 * dojump.c (do_jump_by_parts_greater_rtx): Likewise.
11673 * early-remat.c (early_remat::record_equiv_candidates): Likewise.
11674 * emit-rtl.c (try_split): Likewise.
11675 * graphite-scop-detection.c (assign_parameter_index_in_region):
11677 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
11678 * ira-color.c (setup_profitable_hard_regs): Likewise.
11679 * ira.c (rtx_moveable_p): Likewise.
11680 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
11681 * read-rtl.c (read_subst_mapping): Likewise.
11682 * regrename.c (scan_rtx): Likewise.
11683 * reorg.c (fill_slots_from_thread): Likewise.
11684 * tree-inline.c (tree_function_versioning): Likewise.
11685 * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
11686 * tree-ssa-sink.c (statement_sink_location): Likewise.
11687 * tree-ssa-threadedge.c (thread_across_edge): Likewise.
11688 * tree-vect-loop.c (vect_get_loop_niters): Likewise.
11689 (vect_create_epilog_for_reduction): Likewise.
11690 * tree.c (build_nonstandard_integer_type): Likewise.
11692 2019-06-27 Richard Biener <rguenther@suse.de>
11694 * tree-ssa-sccvn.c (vn_reference_lookup_3): Encode valueized RHS.
11696 2019-06-27 Jun Ma <JunMa@linux.alibaba.com>
11698 PR tree-optimization/89772
11699 * gimple-fold.c (gimple_fold_builtin_memchr): consider trailing nuls in
11700 out-of-bound accesses checking.
11702 2019-06-27 Martin Liska <mliska@suse.cz>
11704 PR tree-optimization/91014
11705 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Bail out
11706 when LHS is NULL_TREE.
11708 2019-06-27 Martin Liska <mliska@suse.cz>
11710 * symbol-summary.h (traverse): Pass
11711 argument a to the call of callback.
11712 (gt_ggc_mx): Mark arguments as unused.
11713 (gt_pch_nx): Likewise.
11715 2019-06-27 Kewen Lin <linkw@gcc.gnu.org>
11718 * loop-iv.c (find_simple_exit): Call finite_loop_p to update
11721 2019-06-26 Jeff Law <law@redhat.com>
11723 PR tree-optimization/90883
11724 * tree-ssa-dse.c (delete_dead_or_redundant_call): Fix signature.
11725 (delete_dead_or_redundant_assignment): Likewise.
11727 PR tree-optimization/90883
11728 * tree-ssa-alias.c (stmt_kills_ref_p): Handle BUILT_IN_CALLOC.
11729 * tree-ssa-dse.c: Update various comments to distinguish between
11730 dead and redundant stores.
11731 (initialize_ao_ref_for_dse): Handle BUILT_IN_CALLOC.
11732 (dse_optimize_redundant_stores): New function.
11733 (delete_dead_or_redundant_call): Renamed from delete_dead_call.
11734 Distinguish between dead and redundant calls in dump output. All
11736 (delete_dead_or_redundant_assignment): Similarly for assignments.
11737 (dse_optimize_stmt): Handle _CHK variants. For statements which
11738 store 0 into multiple memory locations, try to prove a subsequent
11739 store is redundant.
11741 2019-06-26 Uroš Bizjak <ubizjak@gmail.com>
11744 * config/i386/i386.c (ix86_autovectorize_vector_sizes):
11745 Autovectorize 8-byte vectors for TARGET_MMX_WITH_SSE.
11747 2019-06-26 Iain Sandoe <iain@sandoe.co.uk>
11749 * config/rs6000/rs6000-internal.h (branch_island): New typedef.
11750 (branch_islands): New extern.
11751 * config/rs6000/rs6000-logue.c (macho_branch_islands): Moved from
11752 * config/rs6000/rs6000.c: .. here.
11754 2019-06-26 Iain Sandoe <iain@sandoe.co.uk>
11756 * config.gcc (powerpc*-*-linux*): Move target_gtfiles from here..
11757 (powerpc*-*-*) ... to here.
11759 2019-06-26 Jeff Law <law@redhat.com>
11761 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle _chk variants of
11762 memcpy, memmove and memset builtins.
11763 (maybe_trim_memstar_call): Likewise.
11765 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
11767 * config/rs6000/rs6000-logue.c: Add #ifndef TARGET_PROFILE_KERNEL.
11769 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
11771 * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
11773 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
11775 * config/rs6000/rs6000-internal.h (rs6000_keep_leaf_when_profiled): New
11777 * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Remove
11779 * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Delete
11782 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
11784 * config/rs6000/rs6000.c: Fix previous commit, it missed some changes.
11786 2019-06-26 Richard Biener <rguenther@suse.de>
11789 * tree-inline.c (remap_ssa_name): Copy SSA range info.
11791 2019-06-26 Richard Biener <rguenther@suse.de>
11793 * lto-streamer.h (lto_bitmap_alloc): Remove.
11794 (lto_bitmap_free): Likewise.
11795 * lto-streamer.c (lto_bitmap_alloc): Remove.
11796 (lto_bitmap_free): Likewise.
11797 (lto_obstack): Likewise.
11798 (lto_obstack_initialized): Likewise.
11799 * lto-streamer-out.c (lto_output): Use own obstack for local
11800 bitmap, free it consistently.
11802 2019-06-26 Jakub Jelinek <jakub@redhat.com>
11805 * config/i386/sse.md
11806 (*<extract_type>_vinsert<shuffletype><extract_suf>_0): Use vmovupd,
11807 vmovups, vmovdqu, vmovdqu32 or vmovdqu64 instead of the aligned
11808 insns if operands[2] is misaligned_operand.
11810 2019-06-26 Li Jia He <helijia@linux.ibm.com>
11812 * config/rs6000/rs6000.h (TARGET_MADDLD): Remove the restriction of
11814 * config/rs6000/rs6000.md (maddld): Change maddld match_operand from DI
11817 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
11819 * doc/invoke.texi (Warning Options): Fix some @opindex syntax.
11821 2019-06-26 Martin Liska <mliska@suse.cz>
11823 PR tree-optimization/90973
11824 * tree-vect-loop.c (vect_get_known_peeling_cost): Use
11825 epilogue_cost_vec instead of prologue_cost_vec for
11828 2019-06-26 Martin Liska <mliska@suse.cz>
11830 * bb-reorder.c (connect_better_edge_p): Add missing else
11831 statement in the middle of if-else statements.
11833 2019-06-25 Hongtao Liu <hongtao.liu@intel.com>
11834 H.J. Lu <hongjiu.lu@intel.com>
11835 Olga Makhotina <olga.makhotina@intel.com>
11837 * common/config/i386/i386-common.c
11838 (OPTION_MASK_ISA_AVX512VP2INTERSECT_SET,
11839 OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET): New macros.
11840 (OPTION_MASK_ISA2_AVX512F_UNSET): Add
11841 OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET.
11842 (ix86_handle_option): Handle -mavx512vp2intersect.
11843 * config/i386/avx512vp2intersectintrin.h: New.
11844 * config/i386/avx512vp2intersectvlintrin.h: New.
11845 * config/i386/cpuid.h (bit_AVX512VP2INTERSECT): New.
11846 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
11847 AVX512VP2INTERSECT.
11848 * config/i386/i386-builtin-types.def: Add new types.
11849 * config/i386/i386-builtin.def: Add new builtins.
11850 * config/i386/i386-builtins.c: (enum processor_features): Add
11851 F_AVX512VP2INTERSECT.
11852 (static const _isa_names_table isa_names_table): Ditto.
11853 * config/i386/i386-c.c (ix86_target_macros_internal): Define
11854 __AVX512VP2INTERSECT__.
11855 * config/i386/i386-expand.c (ix86_expand_builtin): Expand
11856 IX86_BUILTIN_2INTERSECTD512, IX86_BUILTIN_2INTERSECTQ512,
11857 IX86_BUILTIN_2INTERSECTD256, IX86_BUILTIN_2INTERSECTQ256,
11858 IX86_BUILTIN_2INTERSECTD128, IX86_BUILTIN_2INTERSECTQ128.
11859 * config/i386/i386-modes.def (P2QI, P2HI): New modes.
11860 * config/i386/i386-options.c (ix86_target_string): Add
11861 -mavx512vp2intersect.
11862 (ix86_option_override_internal): Handle AVX512VP2INTERSECT.
11863 * config/i386/i386.c (ix86_hard_regno_nregs): Allocate two regs for
11864 P2HImode and P2QImode.
11865 (ix86_hard_regno_mode_ok): Register pair only starts at even hardreg
11866 number for P2QImode and P2HImode.
11867 (ix86_regmode_natural_size): New function.
11868 * config/i386/i386.h (TARGET_AVX512VP2INTERSECT,
11869 TARGET_AVX512VP2INTERSECT_P, PTA_AVX512VP2INTERSECT
11870 REGMODE_NATURAL_SIZE, MASK_PAIR_REGNO_P): New.
11871 * config/i386/i386-protos.h (ix86_regmode_natural_size): Declare
11872 * config/i386/i386.opt: Add -mavx512vp2intersect.
11873 * config/i386/immintrin.h: Include avx512vp2intersectintrin.h and
11874 avx512vp2intersectvlintrin.h.
11875 * config/i386/sse.md (define_c_enum "unspec"): Add UNSPEC_VP2INTERSECT.
11876 (define_mode_iterator VI48_AVX512VP2VL): New.
11877 (avx512vp2intersect_2intersect<mode>,
11878 avx512vp2intersect_2intersectv16si): New define_insn patterns.
11879 * config.gcc: Add avx512vp2intersectvlintrin.h and
11880 avx512vp2intersectintrin.h to extra_headers.
11881 * doc/invoke.texi: Document -mavx512vp2intersect.
11883 2019-06-25 Iain Sandoe <iain@sandoe.co.uk>
11885 * config/rs6000/darwin.h (ENDFILE_SPEC): New.
11887 2019-06-25 Bill Seurer <seurer@linux.vnet.ibm.com>
11889 * config/rs6000/rs6000.c (stack_info, rs6000_pic_labelno,
11890 savres_routine_syms, savres_routine_name, morestack_ref,
11891 rs6000_init_machine_status, save_reg_p, first_reg_to_save,
11892 first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
11893 compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
11894 rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
11895 rs6000_return_addr, rs6000_decl_ok_for_sibcall,
11896 rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
11897 rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
11898 create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
11899 rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
11900 get_stack_clash_protection_probe_interval,
11901 get_stack_clash_protection_guard_size,
11902 rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
11903 rs6000_emit_probe_stack_range, output_probe_stack_range_1,
11904 interesting_frame_related_regno, output_probe_stack_range_stack_clash,
11905 output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
11906 gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
11907 gen_frame_mem_offset, rs6000_savres_routine_name,
11908 rs6000_savres_routine_sym, rs6000_emit_stack_reset,
11909 ptr_regno_for_savres, rs6000_emit_savres_rtx,
11910 rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
11911 rs6000_global_entry_point_prologue_needed_p,
11912 rs6000_get_separate_components, rs6000_components_for_bb,
11913 rs6000_disqualify_components, rs6000_emit_prologue_components,
11914 rs6000_emit_epilogue_components, rs6000_set_handled_components,
11915 emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
11916 rs6000_output_savres_externs, rs6000_output_function_prologue,
11917 rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
11918 load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
11919 offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
11920 rs6000_output_function_epilogue, gen_add3_const,
11921 rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
11922 rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
11924 (machine_function): Moved to rs6000.h.
11925 (rs6000_stack_t, ALTIVEC_REG_BIT, quad_address_offset_p) Moved to
11927 * config/rs6000/rs6000-logue.c(stack_info, rs6000_pic_labelno,
11928 savres_routine_syms, savres_routine_name, morestack_ref,
11929 rs6000_init_machine_status, save_reg_p, first_reg_to_save,
11930 first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
11931 compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
11932 rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
11933 rs6000_return_addr, rs6000_decl_ok_for_sibcall,
11934 rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
11935 rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
11936 create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
11937 rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
11938 get_stack_clash_protection_probe_interval,
11939 get_stack_clash_protection_guard_size,
11940 rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
11941 rs6000_emit_probe_stack_range, output_probe_stack_range_1,
11942 interesting_frame_related_regno, output_probe_stack_range_stack_clash,
11943 output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
11944 gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
11945 gen_frame_mem_offset, rs6000_savres_routine_name,
11946 rs6000_savres_routine_sym, rs6000_emit_stack_reset,
11947 ptr_regno_for_savres, rs6000_emit_savres_rtx,
11948 rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
11949 rs6000_global_entry_point_prologue_needed_p,
11950 rs6000_get_separate_components, rs6000_components_for_bb,
11951 rs6000_disqualify_components, rs6000_emit_prologue_components,
11952 rs6000_emit_epilogue_components, rs6000_set_handled_components,
11953 emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
11954 rs6000_output_savres_externs, rs6000_output_function_prologue,
11955 rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
11956 load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
11957 offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
11958 rs6000_output_function_epilogue, gen_add3_const,
11959 rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
11960 rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
11961 to here from rs6000.c.
11962 * config/rs6000/rs6000.h (machine_function): Moved to here from rs6000.c.
11963 * config/rs6000/rs6000-internal.h: (rs6000_stack_t, ALTIVEC_REG_BIT,
11964 quad_address_offset_p) Moved to here from rs6000.c.
11965 * config/rs6000/t-rs6000: Add new source file rs6000-logue.c.
11966 * config/config.gcc: Add new source file rs6000-logue.c to garbage
11969 2019-06-25 Martin Liska <mliska@suse.cz>
11971 * hash-table.c (hashtab_chk_error): Move here from ...
11972 * hash-table.h (hashtab_chk_error): ... here.
11974 2019-06-25 Martin Liska <mliska@suse.cz>
11976 PR tree-optimization/90978
11977 * df-scan.c (df_update_entry_block_defs): Remove dead else
11979 (df_update_exit_block_uses): Likewise.
11981 2019-06-25 Kwok Cheung Yeung <kcy@codesourcery.com>
11982 Andrew Stubbs <ams@codesourcery.com>
11984 * config.gcc (thread_file): Set to gcn for AMD GCN.
11985 * config/gcn/gcn.c (gcn_emutls_var_init): New function.
11986 (TARGET_EMUTLS_VAR_INIT): New hook.
11988 2019-06-25 Martin Jambor <mjambor@suse.cz>
11991 * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert.
11993 2019-06-25 Richard Biener <rguenther@suse.de>
11995 PR tree-optimization/90930
11996 * tree-ssa-reassoc.c (reassociate_bb): Only rewrite expression
11997 into parallel form in the last pass instance.
11999 2019-06-25 Claudiu Zissulescu <claziss@synopsys.com>
12001 * config/arc/arc.c (arc_symbol_binds_local_p): New function.
12002 (arc_legitimize_pic_address): Simplify and cleanup the function.
12003 (SYMBOLIC_CONST): Remove.
12004 (prepare_pic_move): Likewise.
12005 (prepare_move_operands): Handle complex mov cases here.
12006 (arc_legitimize_address_0): Remove call to
12007 arc_legitimize_pic_address.
12008 (arc_legitimize_address): Remove call to
12009 arc_legitimize_tls_address.
12010 * config/arc/arc.md (movqi_insn): Allow Cm3 match.
12011 (movhi_insn): Likewise.
12013 2019-06-25 Jozef Lawrynowicz <jozef.l@mittosystems.com>
12015 * config/msp430/msp430.h: Use __int20__ for SIZE_TYPE and
12017 * gimple-ssa-sprintf.c (build_intmax_type_nodes): Accept "__intN__"
12018 format of "__intN" types for UINTMAX_TYPE.
12019 * stor-layout.c (initialize_sizetypes): Accept "__intN__"
12020 format of "__intN" types for SIZETYPE.
12021 * tree.c (build_common_tree_nodes): Accept "__intN__"
12022 format of "__intN" types for SIZE_TYPE and PTRDIFF_TYPE.
12023 * doc/invoke.texi: Document that __intN__ disables pedantic
12026 2019-06-25 Jan Hubicka <jh@suse.cz>
12028 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Check that
12029 base2_alias_set is non-zero before doing TBAA based disambiguation.
12031 2019-06-25 Martin Liska <mliska@suse.cz>
12033 PR tree-optimization/90973
12034 * tree-vect-loop.c (vect_get_known_peeling_cost): Sum retval
12035 of prologue and epilogue.
12037 2019-06-24 Jan Hubicka <jh@suse.cz>
12039 * ipa-utils.h (type_with_linkage_p): Verify that type is
12041 (odr_type_p): Remove extra return.
12042 * lto-streamer-out.c (hash_tree): Hash TYPE_CXX_ODR_P;
12043 hash STRING_FLAG only for arrays and integers.
12044 * tree-stremaer-in.c (unpack_ts_type_common_value_fields):
12045 Update analogously.
12046 * tree-streamer-out.c (pack_ts_type_common_value_fields):
12048 * print-tree.c (print_node): Print cxx-odr-p
12050 * tree.c (need_assembler_name_p): Also check that type
12052 (verify_type_variant): Update verification of SRING_FLAG;
12053 also check CXX_ODR_P.
12054 * tree.h (ARRAY_OR_INTEGER_TYPE_CHECK): New macro.
12055 (TYPE_STRING_FLAG): Use it.
12056 (TYPE_CXX_ODR_P): New macro.
12057 * dwarf2out.c (gen_array_type_die): First check that type
12058 is an array and then test string flag.
12060 2019-06-24 Richard Biener <rguenther@suse.de>
12062 PR tree-optimization/90972
12063 * tree-vect-stmts.c (vect_init_vector): Handle CONSTANT_CLASS_P
12064 in common code, dealing with STRING_CST properly.
12066 2019-06-24 Richard Biener <rguenther@suse.de>
12068 PR tree-optimization/90930
12069 PR tree-optimization/90316
12070 * tree-ssa-alias.c (walk_non_aliased_vuses): Add missing
12071 decrement of limit.
12073 2019-06-24 Martin Sebor <msebor@redhat.com>
12075 * tree-pretty-print.h: Remove unnecessary punctuation characters
12077 * tree-ssa.c (release_defs_bitset): Correct preprocessor conditional.
12079 2019-06-24 Jonathan Wakely <jwakely@redhat.com>
12081 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, LDBL_DECIMAL_DIG)
12082 (FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, LDBL_HAS_SUBNORM, FLT_TRUE_MIN)
12083 (DBL_TRUE_MIN, LDBL_TRUE_MIN): Also define for C++17.
12085 2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
12087 * config/rs6000/darwin.h: Handle GCC target pragma.
12089 2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
12091 * config/rs6000/darwin.h: (__PPC__, __PPC64__): New.
12093 2019-06-22 Jeff Law <law@redhat.com>
12095 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
12097 2019-06-22 Jan Hubicka <jh@suse.cz>
12099 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Do not
12100 give up on bitfields; continue searching for different refs
12103 2019-06-21 Jakub Jelinek <jakub@redhat.com>
12105 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
12106 even zero DR_OFFSET, but DR_BASE_ADDRESS of POINTER_PLUS_EXPR
12107 containing the offset as possible simd lane access. Look through
12108 widening conversion. Move the
12109 TREE_CODE (DR_INIT (newdr)) == INTEGER_CST test earlier and reindent.
12111 2019-06-21 Richard Biener <rguenther@suse.de>
12113 PR tree-optimization/90930
12114 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited
12115 flag on new stmts to avoid re-processing them.
12117 2019-06-21 Matthew Beliveau <mbelivea@redhat.com>
12119 PR c++/90875 - added -Wswitch-outside-range option
12120 * doc/invoke.texi (Wswitch-outside-range): Document.
12122 2019-06-21 Jeff Law <law@redhat.com>
12124 PR tree-optimization/90949
12125 * tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info.
12126 * tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state.
12128 2019-06-21 Richard Biener <rguenther@suse.de>
12131 * dwarf2out.c (prune_unused_types_walk): Always consider
12132 function-local extern declarations as used.
12134 2019-06-21 Richard Biener <rguenther@suse.de>
12136 PR tree-optimization/90913
12137 * tree-vect-loop-manip.c (vect_loop_versioning): Do not re-use
12138 the scalar variant of if-conversion versioning.
12140 2019-06-21 Jakub Jelinek <jakub@redhat.com>
12142 * omp-low.c (lower_rec_simd_input_clauses): Add rvar2 argument,
12143 create another "omp scan inscan exclusive" array if
12144 !ctx->scan_inclusive.
12145 (lower_rec_input_clauses): Handle exclusive scan inscan reductions.
12146 (lower_omp_scan): Likewise.
12147 * tree-vectorizer.h (struct _stmt_vec_info): Use 3-bit instead of
12148 2-bit bitfield for simd_lane_access_p member.
12149 * tree-vect-data-refs.c (vect_analyze_data_refs): Also handle
12150 aux == (void *)-4 as simd lane access.
12151 * tree-vect-stmts.c (check_scan_store): Handle exclusive scan. Update
12152 comment with permutations to show the canonical permutation order.
12153 (vectorizable_scan_store): Handle exclusive scan.
12154 (vectorizable_store): Call vectorizable_scan_store even for
12155 STMT_VINFO_SIMD_LANE_ACCESS_P > 3.
12157 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
12158 "omp simd array" arrays with one byte elements.
12160 2019-06-20 Uroš Bizjak <ubizjak@gmail.com>
12162 * config/alpha/alpha.md (@unaligned_store<mode>):
12163 Rename from unaligned_store<mode>.
12164 (@reload_in<mode>_aligned): Rename from reload_in<mode>_aligned.
12165 * config/alpha/sync.md (@load_locked_<mode>): Rename
12166 from load_locked_<mode>.
12167 (@store_conditional_<mode>): Rename from store_conditional_<mode>.
12168 (@atomic_compare_and_swap<mode>_1): Rename
12169 from atomic_compare_and_swap<mode>_1.
12170 (@atomic_exchange<mode>_1): Rename from atomic_exchange<mode>_1.
12171 * config/alpha/alpha.c (alpha_expand_mov_nobwx):
12172 Use gen_reload_in_aligned and gen_unaligned_store.
12173 (emit_load_locked): Remove.
12174 (emit_store_conditional): Ditto.
12175 (alpha_split_atomic_op): Use gen_load_locked and gen_store_conditional.
12176 (alpha_split_compare_and_swap): Ditto.
12177 (alpha_expand_compare_and_swap_12): Use gen_atomic_compare_and_swap_1.
12178 (alpha_split_compare_and_swap_12): Use gen_load_locked
12179 and gen_store_conditional.
12180 (alpha_split_atomic_exchange): Ditto.
12181 (alpha_expand_atomic_exchange_12): Use gen_atomic_exchange_1.
12182 (alpha_split_atomic_exchange_12): Use gen_load_locked
12183 and gen_store_conditional.
12185 2019-06-20 Richard Earnshaw <rearnsha@arm.com>
12187 * config/aarch64/aarch64-errata.h: New file.
12188 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Delete.
12189 (CA53_ERR_843419_SPEC): Delete.
12190 (LINK_SPEC): Use AARCH64_ERRATA_LINK_SPEC instead of above.
12191 * config/aarch64/aarch64-linux.h: Likewise.
12192 * config/aarch64/aarch64-netbsd.h: Likewise.
12193 * config/aarch64/aarch64-freebsd.h: Likewise.
12195 2019-06-20 Marek Polacek <polacek@redhat.com>
12197 * config/sh/sh.c (sh2a_function_vector_p): Use get_attribute_name.
12199 2019-06-20 Michael Meissner <meissner@linux.ibm.com>
12201 * config/rs6000/rs6000.md (isa attribute): Add support for
12202 for a future processor.
12204 2019-06-20 H.J. Lu <hongjiu.lu@intel.com>
12207 * config/i386/i386-expand.c (ix86_expand_vector_set): Generate
12208 standard scalar operation pattern for V2DF.
12209 * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3): New.
12210 (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise.
12211 (*ieee_<ieee_maxmin><mode>3): Likewise.
12212 (vec_setv2df_0): Likewise.
12214 2019-06-20 Jan Hubicka <jh@suse.cz>
12216 * tree-ssa-alias.c (aliasing_component_refs_p): Remove ref2_is_decl
12217 parameter; it has no use in gimple memory model.
12218 (indirect_ref_may_alias_decl_p): Update.
12220 2019-06-20 Martin Liska <mliska@suse.cz>
12222 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): Decrease
12225 2019-06-20 Jakub Jelinek <jakub@redhat.com>
12227 * tree-vect-stmts.c (enum scan_store_kind): New type.
12228 (scan_store_can_perm_p): Change last argument from int * to
12229 vec<enum scan_store_kind> *, record precisely which permutations
12230 need whole vector left shift or that plus VEC_COND_EXPR.
12231 (vectorizable_scan_store): Adjust caller, use whole vector left shift
12232 and additional VEC_COND_EXPR only for those iterations that need it.
12234 2019-06-20 Alexandre Oliva <oliva@adacore.com>
12236 * config.gcc: Fix ARM --with-fpu checking and error message.
12238 2019-06-19 Marek Polacek <polacek@redhat.com>
12240 PR c++/60364 - noreturn after first decl not diagnosed.
12241 * attribs.c (get_attribute_namespace): No longer static.
12242 (decl_attributes): Avoid shadowing. Preserve the C++11 form for C++11
12244 (attr_noreturn_exclusions): Make it extern.
12245 * attribs.h (get_attribute_namespace): Declare.
12246 * tree-inline.c (function_attribute_inlinable_p): Use
12247 get_attribute_name.
12249 2019-06-19 Martin Sebor <msebor@redhat.com>
12251 PR tree-optimization/90626
12252 * tree-ssa-strlen.c (strxcmp_unequal): Fix typos.
12254 PR tree-optimization/90626
12255 * tree-ssa-strlen.c (strxcmp_unequal): New function.
12256 (handle_builtin_string_cmp): Call it.
12258 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
12260 * config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC
12261 and DARWIN_NOPIE_SPEC.
12262 (RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC.
12263 (DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h.
12264 (DARWIN_NOPIE_SPEC): Collate from darwin10.h.
12265 (DARWIN_NOCOMPACT_UNWIND): New from darwin10.h
12266 (DARWIN_EXPORT_DYNAMIC): Delete.
12267 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind
12268 and pie options processing to darwin.h.
12269 * config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h
12271 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
12273 * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors
12274 in computing the number of options to be moved.
12276 2019-06-19 Maya Rashish <coypu@sdf.org>
12278 * config/arm/netbsd-elf.h (SYSARCH_ARM_SYNC_ICACHE): New definition.
12279 (CLEAR_INSN_CACHE) Use it.
12281 2019-06-19 Uroš Bizjak <ubizjak@gmail.com>
12283 * config/i386/i386.md (cmpstrnsi): Remove dead code.
12285 2019-06-19 Wilco Dijkstra <wdijkstr@arm.com>
12287 PR middle-end/84521
12288 * builtins.c (expand_builtin_setjmp_setup): Save
12289 hard_frame_pointer_rtx.
12290 (expand_builtin_setjmp_receiver): Do not emit sfp = fp move since we
12292 * function.c (expand_function_start): Save hard_frame_pointer_rtx for
12294 * lra-eliminations.c (eliminate_regs_in_insn): Remove sfp = fp
12296 (remove_reg_equal_offset_note): Remove unused function.
12297 * reload1.c (eliminate_regs_in_insn): Remove sfp = hfp elimination
12299 * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
12300 (arc_builtin_setjmp_frame_value): Remove function.
12301 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
12302 (avr_builtin_setjmp_frame_value): Remove function.
12303 * config/i386/i386.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
12304 (ix86_builtin_setjmp_frame_value): Remove function.
12305 * config/pa/pa.md (nonlocal_goto): Remove FP adjustment.
12306 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
12307 (sparc_builtin_setjmp_frame_value): Remove function.
12308 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
12309 (vax_builtin_setjmp_frame_value): Remove function.
12310 * config/xtensa/xtensa.c (xtensa_frame_pointer_required): Force frame
12311 pointer if has_nonlocal_label.
12313 2019-06-19 Jakub Jelinek <jakub@redhat.com>
12315 * doc/md.texi: Document vec_shl_<mode> pattern.
12316 * optabs.def (vec_shl_optab): New optab.
12317 * optabs.c (shift_amt_for_vec_perm_mask): Add shift_optab
12318 argument, if == vec_shl_optab, check for left whole vector shift
12319 pattern rather than right shift.
12320 (expand_vec_perm_const): Add vec_shl_optab support.
12321 * optabs-query.c (can_vec_perm_var_p): Mention also vec_shl optab
12323 * tree-vect-generic.c (lower_vec_perm): Support permutations which
12324 can be handled by vec_shl_optab.
12325 * tree-vect-stmts.c (scan_store_can_perm_p): New function.
12326 (check_scan_store): Use it.
12327 (vectorizable_scan_store): If target can't do normal permutations,
12328 try to use whole vector left shifts and if needed a VEC_COND_EXPR
12330 * config/i386/sse.md (vec_shl_<mode>): New expander.
12332 * omp-low.c (lower_rec_input_clauses): Handle references properly
12334 (lower_omp_scan): Likewise.
12336 2019-06-19 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
12338 * tree-ssa-address.c (preferred_mem_scale_factor): Handle when
12339 mem_mode is BLKmode.
12341 2019-06-18 Max Filippov <jcmvbkbc@gmail.com>
12344 * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack
12345 pointer adjustment for the case of no callee-saved registers and
12346 stack frame bigger than 128 bytes.
12348 2019-06-18 Thomas Schwinge <thomas@codesourcery.com>
12350 PR middle-end/90862
12351 * omp-low.c (check_omp_nesting_restrictions): Handle
12352 GF_OMP_TARGET_KIND_OACC_DECLARE.
12354 2019-06-18 Uroš Bizjak <ubizjak@gmail.com>
12356 * config/i386/i386.md (@cmp<mode>_1): Rename from cmp<mode>_1.
12357 (@add<mode>3_carry): Rename from add<mode>3_carry.
12358 (@sub<mode>3_carry_ccc): Rename from sub<mode>3_carry_ccc.
12359 (@sub<mode>3_carry_ccgz): Rename form sub<mode>3_carry_ccgz.
12360 (@copysign<mode>3_const): Rename from copysign<mode>3_const.
12361 (@copysign<mode>3_var): Rename from copysign<mode>3_var.
12362 (@xorsign<mode>3_1): Rename from xorsign<mode>3_1.
12363 (@x86_shift<mode>_adj_1): Rename from x86_shift<mode>_adj_1.
12364 (@x86_shift<mode>_adj_2): Rename from x86_shift<mode>_adj_2.
12365 (@x86_shift<mode>_adj_3): Rename from x86_shift<mode>_adj_3.
12366 (cmpstrnsi): Use gen_cmp_1.
12367 (lwp_slwpcb): Use gen_lwp_slwpcb_1.
12368 (@lwp_slwpcb<mode>_1): Rename from lwp_slwpcb<mode>_1.
12369 (@umonitor_<mode>): Rename from umonitor_<mode>.
12370 * config/i386/i386-expand.c (ix86_expand_copysign):
12371 Use gen_copysign3_const and gen_copysign3_var.
12372 (ix86_expand_xorsign): Use gen_xorsign3_1.
12373 (ix86_expand_branch): Use gen_sub3_carry_ccc,
12374 gen_sub3_carry_ccgz and gen_cmp1.
12375 (ix86_expand_int_addcc): Use gen_sub3_carry and gen_add3_carry.
12376 (ix86_split_ashl): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_2.
12377 (ix86_split_ashr): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_3.
12378 (ix86_split_lshr): Ditto.
12379 (ix86_expand_builtin) <case IX86_BUILTIN_UMONITOR>: Use gen_umonitor.
12381 2019-06-18 Jason Merrill <jason@redhat.com>
12383 * tree.c (build_constructor): Add MEM_STAT_DECL.
12385 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
12387 * config/aarch64/aarch64-modes.def (CC_NZC): New CC_MODE.
12388 * config/aarch64/aarch64-sve.md (*<optab><mode>3_cc)
12389 (ptest_ptrue<mode>, while_ult<GPI:mode><PRED_ALL:mode>)
12390 (*while_ult<GPI:mode><PRED_ALL:mode>_cc, *cmp<cmp_op><mode>)
12391 (*cmp<cmp_op><mode>_ptest, *cmp<cmp_op><mode>_cc)
12392 (*pred_cmp<cmp_op><mode>_combine, *pred_cmp<cmp_op><mode>)
12393 (vec_cmp<mode><vpred>, vec_cmpu<mode><vpred>, cbranch<mode>4):
12394 Use CC_NZC instead of CC.
12395 * config/aarch64/aarch64.md (condjump): Print a '.' in SVE conditions.
12396 * config/aarch64/aarch64.c (aarch64_sve_condition_codes): New variable.
12397 (aarch64_print_operand): Handle E_CC_NZCmode.
12398 (aarch64_emit_sve_ptrue_op_cc): Use gen_set_clobber_cc_nzc instead
12399 of gen_set_clobber_cc.
12401 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
12403 * config/aarch64/aarch64-sve.md: Tabify file.
12405 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
12407 * config/aarch64/aarch64-protos.h (aarch64_pfalse_reg): Declare.
12408 * config/aarch64/aarch64.c (aarch64_pfalse_reg): New function.
12409 * config/aarch64/aarch64-sve.md: Use it.
12411 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
12413 * config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): Declare.
12414 * config/aarch64/aarch64.c (aarch64_ptrue_reg): New functions.
12415 (aarch64_expand_sve_widened_duplicate, aarch64_expand_sve_mem_move)
12416 (aarch64_maybe_expand_sve_subreg_move, aarch64_evpc_rev_local)
12417 (aarch64_expand_sve_vec_cmp_int): Use it.
12418 (aarch64_expand_sve_vec_cmp_float): Likewise.
12419 * config/aarch64/aarch64-sve.md: Likewise throughout.
12421 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
12422 Kugan Vivekanandarajah <kuganv@linaro.org>
12424 * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_0): Delete.
12425 (*cond_<optab><mode>_z): Fold into...
12426 (*cond_<optab><mode>_any): ...here. Also handle cases in which
12427 operand 4 can be tied to operand 0 (either inherently or via RA).
12429 2019-06-18 Richard Biener <rguenther@suse.de>
12432 * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL
12433 as if optimized away.
12435 2019-06-18 Tom de Vries <tdevries@suse.de>
12437 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Remove.
12438 * config/nvptx/nvptx.c (gen_set_softstack_insn): Remove.
12439 * config/nvptx/nvptx.md (define_insn "set_softstack_<mode>"):
12441 (define_insn "@set_softstack_<mode>"): ... this.
12442 (define_insn "omp_simt_enter_<mode>"): Rename to ...
12443 (define_insn "@omp_simt_enter_<mode>"): ... this.
12444 (define_insn "omp_simt_exit_<mode>"): Rename to ...
12445 (define_insn "@omp_simt_exit_<mode>"): ... this.
12447 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
12449 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Remove
12450 vf parameter. Restore the previous iv step of nscalars_step,
12451 but give it iv_type rather than compare_type. Tweak code order
12452 to match the comments.
12453 (vect_set_loop_condition_masked): Update accordingly.
12454 * tree-vect-loop.c (vect_verify_full_masking): Use "unsigned int"
12455 for iv_precision. Tweak comment formatting.
12457 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
12459 * config/darwin.c: Strip trailing whitespace.
12461 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
12463 * config/darwin.c (darwin_emit_unwind_label): New default to false.
12464 (darwin_override_options): Set darwin_emit_unwind_label as needed.
12466 2019-06-18 Martin Jambor <mjambor@suse.cz>
12469 * ipa-cp.c (ignore_edge_p): Do not ignore edges when only the
12470 caller does not have flag_ipa_cp set.
12472 2019-06-18 Alejandro Martinez <alejandro.martinezvicente@arm.com>
12474 * config/aarch64/aarch64-sve.md (mask_fold_left_plus_<mode>): Renamed
12475 from "*fold_left_plus_<mode>", updated operands order.
12476 * doc/md.texi (mask_fold_left_plus_@var{m}): Documented new optab.
12477 * internal-fn.c (mask_fold_left_direct): New define.
12478 (expand_mask_fold_left_optab_fn): Likewise.
12479 (direct_mask_fold_left_optab_supported_p): Likewise.
12480 * internal-fn.def (MASK_FOLD_LEFT_PLUS): New internal function.
12481 * optabs.def (mask_fold_left_plus_optab): New optab.
12482 * tree-vect-loop.c (mask_fold_left_plus_optab): New function to get a
12483 masked internal_fn for a reduction ifn.
12484 (vectorize_fold_left_reduction): Add support for masking reductions.
12486 2019-06-18 Kewen Lin <linkw@gcc.gnu.org>
12488 PR middle-end/80791
12489 * target.def (predict_doloop_p): New hook.
12490 * targhooks.h (default_predict_doloop_p): New declaration.
12491 * targhooks.c (default_predict_doloop_p): New function.
12492 * doc/tm.texi.in (TARGET_PREDICT_DOLOOP_P): New hook.
12493 * doc/tm.texi: Regenerate.
12494 * config/rs6000/rs6000.c (rs6000_predict_doloop_p): New function.
12495 (TARGET_PREDICT_DOLOOP_P): New macro.
12496 * tree-ssa-loop-ivopts.c (generic_predict_doloop_p): New function.
12498 2019-06-17 Jakub Jelinek <jakub@redhat.com>
12500 * omp-low.c (struct omp_context): Add scan_inclusive field.
12501 (scan_omp_1_stmt) <case GIMPLE_OMP_SCAN>: Set ctx->scan_inclusive
12503 (struct omplow_simd_context): Add lastlane member.
12504 (lower_rec_simd_input_clauses): Add rvar argument, handle inscan
12505 reductions. Build 2 or 3 argument .GOMP_SIMD_LANE calls rather than
12507 (lower_rec_input_clauses): Handle inscan reductions in simd contexts.
12508 (lower_lastprivate_clauses): Set TREE_THIS_NOTRAP on the ARRAY_REF.
12509 (lower_omp_scan): New function.
12510 (lower_omp_1) <case GIMPLE_OMP_SCAN>: Use lower_omp_scan.
12511 * tree-ssa-dce.c (eliminate_unnecessary_stmts): For IFN_GOMP_SIMD_LANE
12512 check 3rd argument if present rather than 2nd.
12513 * tree-vectorizer.h (struct _loop_vec_info): Add scan_map member.
12514 (struct _stmt_vec_info): Change simd_lane_access_p from bool into
12516 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
12517 scan_map. For IFN_GOMP_SIMD_LANE check 3rd argument if present rather
12519 (_loop_vec_info::~_loop_vec_info): Delete scan_map.
12520 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Allow two
12521 different STMT_VINFO_SIMD_LANE_ACCESS_P refs if they have the same
12523 (vect_find_stmt_data_reference): Encode in ->aux the 2nd
12524 IFN_GOMP_SIMD_LANE argument.
12525 (vect_analyze_data_refs): Set STMT_VINFO_SIMD_LANE_ACCESS_P from the
12526 encoded ->aux value.
12527 * tree-vect-stmts.c: Include attribs.h.
12528 (vectorizable_call): Adjust comment about IFN_GOMP_SIMD_LANE.
12529 (scan_operand_equal_p, check_scan_store, vectorizable_scan_store): New
12531 (vectorizable_load): For STMT_VINFO_SIMD_LANE_ACCESS_P tests use != 0.
12532 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P > 1.
12534 2019-06-17 Uroš Bizjak <ubizjak@gmail.com>
12537 * config/i386/i386.md (*nabstf2_1): New insn pattern.
12538 (*nabs<mode>2_1): Ditto.
12539 (nabs sse-reg splitter): New splitter.
12540 * config/i386/sse.md (*nabs<mode>2): New insn_and_split pattern.
12542 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
12544 PR bootstrap/90873.
12545 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
12548 2019-06-17 Tom de Vries <tdevries@suse.de>
12550 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Declare.
12551 * config/nvptx/nvptx.c (gen_set_softstack_insn): New function.
12552 * config/nvptx/nvptx.md (define_insn "set_softstack_insn"): Rename to
12554 (define_insn "set_softstack_<mode>"): ... this. Use P iterator on
12556 (define_insn "omp_simt_enter_insn"): Rename to ...
12557 (define_insn "omp_simt_enter_<mode>"): ... this. Use P iterator on
12558 match_operand 0, 1 and 2, as well as the unspec_volatile result.
12559 (define_expand "omp_simt_enter): Use gen_omp_simt_enter_di and
12560 gen_omp_simt_enter_si.
12561 (define_expand "omp_simt_exit"): New.
12562 (define_insn "omp_simt_exit"): Rename to ...
12563 (define_insn "omp_simt_exit_<mode>"): ... this. Use P iterator on
12566 2019-06-17 Matthew Green <mrg@eterna.com.au>
12567 Maya Rashish <coypu@sdf.org>
12569 * config.gcc (aarch64*-*-netbsd*): New target.
12570 * config/aarch64/aarch64-netbsd.h: New file.
12571 * config/aarch64/t-aarch64-netbsd: Likewise.
12573 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
12575 * tree-ssa-alias.c (aliasing_component_refs_p): Consider only
12576 the access path from base to first VIEW_CONVERT_EXPR or
12579 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
12581 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Also truncate
12582 access path on BIT_FIELD_REFs.
12584 2019-06-17 Martin Liska <mliska@suse.cz>
12587 * ipa-utils.h (odr_type_p): Remove dead code.
12589 2019-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12591 * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for
12592 alternative Solaris 11.4 format.
12593 * configure: Regenerate.
12595 2019-06-17 Tom de Vries <tdevries@suse.de>
12597 * config/nvptx/nvptx.md (define_insn "call_insn"): Rename to ...
12598 (define_insn "call_insn_<mode>"): ... this. Use P iterator on
12600 (define_insn "call_value_insn"): Rename to ...
12601 (define_insn "call_value_insn_<mode>"): this. Use P iterator on
12603 (define_insn "nvptx_red_partition"): Set unspec_volatile result mode to
12606 2019-06-16 John David Anglin <danglin@gcc.gnu.org>
12608 PR middle-end/64242
12609 * config/pa/pa.md (nonlocal_goto): Restore frame pointer last. Add
12610 frame clobbers and schedule block.
12611 (builtin_longjmp): Likewise.
12613 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
12615 * config/msp430/msp430.c (msp430_expand_helper): Setup arguments which
12616 describe how to perform MSPABI compliant 64-bit shift.
12617 * config/msp430/msp430.md (ashldi3): New define_expand.
12618 (ashrdi3): New define_expand.
12619 (lshrdi3): New define_expand.
12621 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
12623 * doc/sourcebuild.texi: Document new effective target keyword
12626 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
12628 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p,
12629 indirect_refs_may_alias_p): Revert accidental commits.
12631 * tree-ssa-alias.c (aliasing_component_refs_p): Watch for arrays
12632 at the end of structures.
12634 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
12636 * config/darwin.c (machopic_indirect_call_target): Use renamed
12637 darwin_picsymbol_stubs to decide on output.
12638 (darwin_override_options): Handle darwin_picsymbol_stubs.
12639 * config/darwin.h (MIN_LD64_OMIT_STUBS): New.
12640 (LD64_VERSION): Revise default.
12641 * config/darwin.opt: (mpic-symbol-stubs): New option.
12642 (darwin_picsymbol_stubs): New variable.
12643 * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS):
12644 rename to TARGET_MACHO_PICSYM_STUBS.
12645 * config/i386/i386.c (output_pic_addr_const): Likewise.
12646 * config/i386/i386.h Likewise.
12647 * config/rs6000/darwin.h: Likewise.
12648 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed
12649 darwin_picsymbol_stubs.
12651 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
12653 * config/darwin.opt (prebind, noprebind, seglinkedit,
12654 noseglinkedit): Add RejectNegative.
12656 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
12658 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Fix pasto
12659 in my previous patch.
12661 2019-06-16 Tom de Vries <tdevries@suse.de>
12663 PR tree-optimization/89376
12664 * tree-parloops.c (oacc_entry_exit_ok_1): Handle red == NULL.
12666 2019-06-15 Maya Rashish <coypu@sdf.org>
12668 * doc/invoke.texi (Spec Files): Update location of the
12671 2019-06-15 Gerald Pfeifer <gerald@pfeifer.com>
12673 * doc/extend.texi (Common Function Attributes): Clarify
12674 no_sanitize. Fix grammar.
12676 2019-06-15 Jan Hubicka <hubicka@ucw.cz>
12678 * tree-ssa-alias.c (alias_stats): Add
12679 nonoverlapping_component_refs_p_may_alias,
12680 nonoverlapping_component_refs_p_no_alias,
12681 nonoverlapping_component_refs_of_decl_p_may_alias,
12682 nonoverlapping_component_refs_of_decl_p_no_alias.
12683 (dump_alias_stats): Dump them.
12684 (nonoverlapping_component_refs_of_decl_p): Add stats.
12685 (nonoverlapping_component_refs_p): Add stats; do not stop on first
12688 2019-06-15 Uroš Bizjak <ubizjak@gmail.com>
12690 * config/i386/i386.md (and<mode>3): Generate zero-extends for
12691 TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))
12693 (*anddi3_doubleword): Split before reload. Merge with
12694 anddi->zext pre-reload splitter.
12695 (*andndi3_doubleword): Split before reload.
12696 (*<code>di3_doubleword): Ditto.
12697 (*one_cmpldi2_doubleword): Ditto.
12699 2019-06-15 Jakub Jelinek <jakub@redhat.com>
12701 PR middle-end/90779
12702 * gimplify.c: Include omp-offload.h and context.h.
12703 (gimplify_bind_expr): Add "omp declare target" attributes
12704 to static block scope variables inside of target region or target
12707 2019-06-15 Tom de Vries <tdevries@suse.de>
12709 PR tree-optimization/90009
12710 * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path):
12711 Return NULL if bb contains IFN_UNIQUE.
12713 2019-06-14 Segher Boessenkool <segher@kernel.crashing.org>
12715 * config/rs6000/rs6000.md (CCEITHER): New define_mode_iterator.
12716 (un): New define_mode_attr.
12717 (isel_signed_<mode>, isel_unsigned_<mode>): Delete, merge into ...
12718 (isel_<un>signed_<GPR:mode>): ... this. New define_insn.
12719 (isel_reversed_signed_<mode>, isel_reversed_unsigned_<mode>): Delete,
12721 (isel_reversed_<un>signed_<GPR:mode>): ... this. New define_insn.
12723 2019-06-14 Iain Sandoe <iain@sandoe.co.uk>
12725 * config/darwin.opt: Add RejectNegative where needed, reorder
12726 and add minimal functional descriptions.
12728 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
12730 PR rtl-optimization/90765
12731 * calls.c (update_stack_alignment_for_call): New function.
12732 (expand_call): Call update_stack_alignment_for_call when
12733 outgoing parameter is passed in the stack.
12734 (emit_library_call_value_1): Likewise.
12735 * function.c (locate_and_pad_parm): Don't update
12736 stack_alignment_needed and preferred_stack_boundary.
12738 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
12741 * config/i386/i386-features.c
12742 (dimode_scalar_chain::compute_convert_gain): Replace
12743 mmxsse_to_integer with sse_to_integer.
12744 * config/i386/i386.c (ix86_register_move_cost): Verify that
12745 moves between MMX and non-MMX units require secondary memory.
12746 Correct costs of moves between SSE and integer units.
12747 * config/i386/i386.h (processor_costs): Rename cost of moving
12748 SSE register to integer to sse_to_integer. Rename cost of
12750 2019-06-14 Matt Thomas <matt@3am-software.com>
12751 Matthew Green <mrg@eterna.com.au>
12752 Nick Hudson <skrll@netbsd.org>
12753 Maya Rashish <coypu@sdf.org>
12754 Richard Earnshaw <rearnsha@arm.com>
12756 * config.gcc (arm*-*-netbsdelf*) Add support for EABI configuration.
12757 * config.host (arm*-*-netbsd*): Use driver-arm.o on native NetBSD.
12758 * config/arm/netbsd-eabi.h: New file.
12759 * config/arm/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Undefine before
12761 (SUBTARGET_EXTRA_ASM_SPEC): Don't pass -matpcs to the assembler.
12762 * config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): New define.
12763 (NETBSD_SUBTARGET_EXTRA_SPECS): New define.
12764 (SUBTARGET_EXTRA_SPECS): Define to NETBSD_SUBTARGET_EXTRA_SPECS.
12766 2019-06-14 Richard Biener <rguenther@suse.de>
12768 * tree-loop-distribution.c (classify_partition): Return
12769 whether a reduction appeared in all partitions and do not
12770 stop builtin detection because of this.
12771 (distribute_loop): Sort a non-builtin partition last if
12772 there's a reduction in all partitions and make sure the
12773 partition prevailing as last is not a builtin.
12775 2019-06-14 Feng Xue <fxue@os.amperecomputing.com>
12778 * ipa-prop.c (add_to_agg_contents_list): New function.
12779 (clobber_by_agg_contents_list_p): Likewise.
12780 (extract_mem_content): Likewise.
12781 (get_place_in_agg_contents_list): Delete.
12782 (determine_known_aggregate_parts): Renamed from
12783 determine_locally_known_aggregate_parts. New parameter
12786 2019-06-13 Martin Sebor <msebor@redhat.com>
12788 PR tree-optimization/90662
12789 * tree-ssa-strlen.c (get_stridx): Convert fold_build2 operands
12792 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
12795 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Also check that
12796 dbase is not TARGET_MEM_REF.
12798 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
12800 * config/i386/i386.md (SWIM1248s): Rename from SWIM1248x.
12802 (and<mode>3): Use gen_extend_insn instead of indirect functions.
12803 Do not generate DImode extends for 32bit targets.
12804 (and->zext post-reload splitter): Use gen_extend_insn
12805 instead of indirect functions.
12806 (anddi->zext pre-reload splitter): New.
12807 (*zext<mode>_doubleword_and): Remove.
12808 (*zext<mode>_doubleword): Ditto.
12809 (*zextsi_doubleword): Dittto.
12811 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
12813 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
12814 Use gen_sub3_insn instead of indirect function.
12815 (ix86_expand_ashl_const): Use gen_add2_insn instead of
12817 (ix86_adjust_counter): Ditto.
12819 2019-06-13 Jiufu Guo <guojiufu@linux.ibm.com>
12820 Lijia He <helijia@linux.ibm.com>
12822 PR tree-optimization/77820
12823 * tree-ssa-threadedge.c
12824 (edge_forwards_cmp_to_conditional_jump_through_empty_bb_p): New
12826 (thread_across_edge): Add call to
12827 edge_forwards_cmp_to_conditional_jump_through_empty_bb_p.
12829 2019-06-13 Iain Sandoe <iain@sandoe.co.uk>
12831 * config/darwin-driver.c (validate_macosx_version_min): New.
12832 (darwin_default_min_version): Cleanup and validate supplied version.
12833 (darwin_driver_init): Likewise and push cleaned version into opts.
12835 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
12837 PR tree-optimization/90869
12838 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Watch for view
12839 converts in MEM_REF referencing decl rather than view converts
12840 from decl type to MEM_REF type.
12842 2019-06-13 Richard Biener <rguenther@suse.de>
12844 PR tree-optimization/90856
12845 * tree-sra.c (build_ref_for_model): Only use
12846 build_reconstructed_reference when address-spaces are the same.
12848 2019-06-13 Jakub Jelinek <jakub@redhat.com>
12850 * config/nvptx/nvptx.c (nvptx_sese_number, nvptx_sese_pseudo): Don't
12851 wrap ei variable name in the declaration in ()s.
12852 (nvptx_single): Actually use mode_label variable. Formatting fix.
12854 2019-06-13 Richard Biener <rguenther@suse.de>
12856 * tree-vectorizer.h (vect_loop_vectorized_call): Declare.
12857 * tree-vectorizer.c (vect_loop_vectorized_call): Export and
12858 also return the condition stmt.
12859 * tree-vect-loop-manip.c (vect_loop_versioning): Compute outermost
12860 loop we can version and version that, reusing the loop version
12861 created by if-conversion instead of versioning again.
12863 2019-06-13 Aldy Hernandez <aldyh@redhat.com>
12865 * gimple-loop-versioning.cc (prune_loop_conditions): Use
12867 * tree-vrp (value_range_base::may_contain_p): Call into
12868 value_inside_range.
12869 (value_inside_range): Make private inside value_range_base class.
12870 Take min/max from *this.
12871 (range_includes_p): Remove.
12872 * tree-vrp.h (value_range_base): Add value_inside_range.
12873 (range_includes_p): Remove.
12874 (range_includes_zero_p): Call may_contain_p.
12875 * vr-values.c (compare_range_with_value): Same.
12877 2019-06-13 Claudiu Zissulescu <claziss@synopsys.com>
12879 * doc/extend.texi (ARC Function Attributes): Update info.
12881 2019-06-13 Feng Xue <fxue@os.amperecomputing.com>
12883 PR tree-optimization/89713
12884 * doc/invoke.texi (-ffinite-loops): Document new option.
12885 * common.opt (-ffinite-loops): New option.
12886 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark
12887 IFN_GOACC_LOOP calls as necessary.
12888 * tree-ssa-loop-niter.c (finite_loop_p): Assume loop with an exit
12890 * omp-offload.c (oacc_xform_loop): Skip lowering if return value of
12891 IFN_GOACC_LOOP call is not used.
12892 * opts.c (default_options_table): Enable -ffinite-loops at -O2+.
12894 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
12897 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): If the
12898 compare_type is not with Pmode size, we will create an IV with
12899 Pmode size with truncated use (i.e. converted to the correct type).
12900 * tree-vect-loop.c (vect_verify_full_masking): Find IV type.
12901 (vect_iv_limit_for_full_masking): New. Factored out of
12902 vect_set_loop_condition_masked.
12903 * tree-vectorizer.h (LOOP_VINFO_MASK_IV_TYPE): New.
12904 (vect_iv_limit_for_full_masking): Declare.
12906 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
12909 * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle
12910 IFN_MASK_LOAD_LANES and IFN_MASK_STORE_LANES.
12911 (get_alias_ptr_type_for_ptr_address): Likewise.
12912 (add_iv_candidate_for_use): Add scaled index candidate if useful.
12913 * tree-ssa-address.c (preferred_mem_scale_factor): New.
12914 * config/aarch64/aarch64.c (aarch64_classify_address): Relax
12917 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
12919 * config/aarch64/iterators.md (ADDSUB): Fix typo in comment.
12921 2019-06-12 Dimitar Dimitrov <dimitar@dinux.eu>
12923 * common/config/pru/pru-common.c: New file.
12924 * config.gcc: Add PRU target.
12925 * config/pru/alu-zext.md: New file.
12926 * config/pru/constraints.md: New file.
12927 * config/pru/predicates.md: New file.
12928 * config/pru/pru-opts.h: New file.
12929 * config/pru/pru-passes.c: New file.
12930 * config/pru/pru-pragma.c: New file.
12931 * config/pru/pru-protos.h: New file.
12932 * config/pru/pru.c: New file.
12933 * config/pru/pru.h: New file.
12934 * config/pru/pru.md: New file.
12935 * config/pru/pru.opt: New file.
12936 * config/pru/t-pru: New file.
12937 * doc/extend.texi: Document PRU pragmas.
12938 * doc/invoke.texi: Document PRU-specific options.
12939 * doc/md.texi: Document PRU asm constraints.
12941 2019-06-12 Martin Sebor <msebor@redhat.com>
12943 PR middle-end/90676
12944 * tree-pretty-print.c (dump_mem_ref): New function. Include
12945 MEM_REF type in output when different size than operand.
12946 (dump_generic_node): Move code to dump_mem_ref and call it.
12948 2019-06-12 Martin Sebor <msebor@redhat.com>
12950 PR tree-optimization/90662
12951 * tree-ssa-strlen.c (get_stridx): Handle simple VLAs and pointers
12954 2019-06-12 Tom de Vries <tdevries@suse.de>
12956 PR tree-optimization/90009
12957 * config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join.
12959 2019-06-12 Martin Liska <mliska@suse.cz>
12961 * ggc-common.c (ggc_prune_overhead_list): Do not sanitize
12963 * hash-map.h: Add sanitize_eq_and_hash into ::hash_map.
12964 * mem-stats.h (mem_alloc_description::mem_alloc_description):
12965 Do not sanitize created maps.
12967 2019-06-12 Aldy Hernandez <aldyh@redhat.com>
12969 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Use
12970 value_range::singleton_p.
12971 * tree-vrp.c (value_range_constant_singleton): Remove.
12972 * tree-vrp.h (value_range_constant_singleton): Remove.
12973 * vr-values.c (vr_values::singleton): Use
12974 value_range::singleton_p.
12976 2019-06-12 Jakub Jelinek <jakub@redhat.com>
12979 * cfgexpand.c (align_local_variable): Add really_expand argument,
12980 don't SET_DECL_ALIGN if it is false.
12981 (add_stack_var): Add really_expand argument, pass it through to
12982 align_local_variable.
12983 (expand_one_stack_var_1): Pass true as really_expand to
12984 align_local_variable.
12985 (expand_one_ssa_partition): Pass true as really_expand to
12987 (expand_one_var): Pass really_expand through to add_stack_var.
12989 2019-06-12 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
12991 * config/arm/iterators.md (VABAL): New int iterator.
12992 * config/arm/neon.md (<sup>sadv16qi): New define_expand.
12993 * config/arm/unspecs.md ("unspec"): Define UNSPEC_VABAL_S,
12994 UNSPEC_VABAL_U values.
12996 2019-06-12 Martin Liska <mliska@suse.cz>
12998 * value-prof.c (stream_out_histogram_value): Only first value
13001 2019-06-12 Jakub Jelinek <jakub@redhat.com>
13004 * symtab.c (symtab_node::set_section): Allow being called on aliases
13005 as long as they aren't analyzed yet.
13007 2019-06-11 Faraz Shahbazker <fshahbazker@wavecomp.com>
13009 * config/mips/mips.c (mips_final_postscan_insn): Modify call
13010 to `mips_set_text_contents_type' to indicate whether a
13011 non-debug insn follows.
13013 2019-06-11 Michael Meissner <meissner@linux.ibm.com>
13015 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Delete
13016 enabling -mpcrel by default.
13017 * config/rs6000/rs6000.c (rs6000_option_override_internal): Update
13018 test for -mpcrel and/or -mprefixed-addr needing -mcpu=future, so
13019 that the test against -mcpu=future is done first. Then test if
13020 -mprefixed-addr is on for -mpcrel.
13021 (rs6000_disable_incompatible_switches): Add -mcpu=future support.
13023 2019-06-11 Jakub Jelinek <jakub@redhat.com>
13026 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
13027 instead of and.u%d.
13029 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
13031 * match.pd (X/[ex]4<Y/[ex]4): Handle conversions.
13033 2019-06-11 Matthew Beliveau <mbelivea@redhat.com>
13035 PR c++/90449 - add -Winaccessible-base option.
13036 * doc/invoke.texi (Winaccessible-base): Document.
13038 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
13040 PR tree-optimization/62041
13041 * fold-const.c (fold_real_zero_addition_p): Handle vectors.
13043 2019-06-11 Jason Merrill <jason@redhat.com>
13045 * gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory.
13046 * tree.c (get_tree_code_name): Likewise.
13047 * print-tree.c (print_node): Only briefly print a node with an
13050 2019-06-11 Jakub Jelinek <jakub@redhat.com>
13053 * trans-mem.c (tm_memopt_compute_available): Add assertion
13054 that blocks is not empty. Formatting fix.
13056 2019-06-11 Martin Liska <mliska@suse.cz>
13059 * hash-table.h: Extend create_gcc, add one parameter
13060 that is passed into hash_table::hash_table.
13062 2019-06-10 Uroš Bizjak <ubizjak@gmail.com>
13064 * config/i386/i386-protos.h (ix86_split_fp_absneg_operator):
13066 * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator):
13067 Emit clobber also for non-sse operations.
13068 (ix86_split_fp_absneg_operator): New function.
13069 * config/i386/i386.md (SSEMODEF): New mode iterator.
13070 (ssevecmodef): New mode attribute.
13071 (<code>tf2): Use absneg code iterator.
13072 (*<code>tf2_1): Rename from *absnegtf3_sse. Use absneg code iterator.
13073 Add three-operand AVX alternatives.
13074 (*<code><mode>2_i387_1): Rename from *absnegxf2_i387.
13075 Use absneg code iterator and X87MODEF mode iterator.
13076 (absneg fp_reg non-sse splitter): Call absneg code iterator
13077 and X87MODEF mode iterator.
13078 (absneg general_reg non-sse splitter): Use absneg code iterator
13079 and X87MODEF mode iterator. Use ix86_split_fp_absneg_operator.
13080 (*<code><mode>2_1): Rename from *absneg<mode>2. Use absneg
13081 code iterator. Add three-operand AVX alternative.
13082 (absneg sse_reg splitter): Use absneg code iterator
13083 and SSEMODEF mode iterator. Handle AVX operands.
13084 (absneg fp_reg splitter): Use absneg code iterator
13085 and MODEF mode iterator.
13086 (absneg general_reg splitter): Merge splitters using MODEF mode
13087 iterator. Use absneg code iterator. Call
13088 ix86_split_fp_absneg_operator.
13089 (*<code><mode>2_i387): Rename from *<code><mode>2_1.
13090 Do not enable for non-sse modes before reload.
13091 (CSGNMODE): Remove.
13092 (CSGNVMODE): Ditto.
13093 (copysing<mode>3): Use SSEMODEF instead of CSGNMODE and
13094 ssevecmodef mode attribute instaed of CSGNVMODE.
13095 (copysign<mode>3_const): Ditto.
13096 (copysign<mode>3_var): Ditto.
13097 * config/i386/i386.md (*<code><mode>2): Rename from *absneg<mode>2.
13098 Use absneg code iterator. Simplify code using std::swap.
13099 * config/i386/predicates.md (absneg_operator): Remove.
13101 2019-06-10 Martin Sebor <msebor@redhat.com>
13103 * gimple-fold.c (get_range_strlen): Update comment that didn't
13104 make it into r267503 or related commits.
13106 2019-06-10 Vladislav Ivanishin <vlad@ispras.ru>
13108 * gcov-tool.c (merge_usage, rewrite_usage): Mark with
13109 ATTRIBUTE_NORETURN thus making consistent with overlap_usage.
13111 2019-06-10 Jakub Jelinek <jakub@redhat.com>
13113 * tree.def (OMP_SCAN): New tree code.
13114 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INCLUSIVE and
13115 OMP_CLAUSE_EXCLUSIVE.
13116 * tree.h (OMP_CLAUSES): Use OMP_SCAN instead of OMP_TASKGROUP.
13117 (OMP_SCAN_BODY, OMP_SCAN_CLAUSES): Define.
13118 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries for
13119 OMP_CLAUSE_{IN,EX}CLUSIVE.
13120 (walk_tree_1): Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
13121 * tree-nested.c (convert_nonlocal_reference_stmt,
13122 convert_local_reference_stmt, convert_gimple_call): Handle
13124 * tree-pretty-print.c (dump_omp_clause): Handle
13125 OMP_CLAUSE_{IN,EX}CLUSIVE.
13126 (dump_generic_node): Handle OMP_SCAN.
13127 * gimple.def (GIMPLE_OMP_SCAN): New gimple code.
13128 * gimple.h (gomp_scan): New type.
13129 (is_a_helper <gomp_scan *>::test,
13130 is_a_helper <const gomp_scan *>::test): New templates.
13131 (gimple_build_omp_scan): Declare.
13132 (gimple_omp_scan_clauses, gimple_omp_scan_clauses_ptr,
13133 gimple_omp_scan_set_clauses): New inline functions.
13134 (CASE_GIMPLE_OMP): Add case GIMPLE_OMP_SCAN:.
13135 * gimple.c (gimple_build_omp_scan): New function.
13136 (gimple_copy): Handle GIMPLE_OMP_SCAN.
13137 * gimple-walk.c (walk_gimple_op, walk_gimple_stmt): Likewise.
13138 * gimple-pretty-print.c (dump_gimple_omp_block): Don't handle
13139 GIMPLE_OMP_TASKGROUP.
13140 (dump_gimple_omp_scan): New function.
13141 (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCAN.
13142 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_SCAN.
13143 * tree-inline.c (remap_gimple_stmt, estimate_num_insns): Likewise.
13144 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_REDUCTION_INSCAN.
13145 (is_gimple_stmt): Handle OMP_SCAN.
13146 (gimplify_scan_omp_clauses): Reject inscan reductions on constructs
13147 other than OMP_FOR or OMP_SIMD. Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
13148 (gimplify_adjust_omp_clauses): Diagnose inscan reductions not
13149 mentioned in nested #pragma omp scan. Handle
13150 OMP_CLAUSE_{IN,EX}CLUSIVE.
13151 (gimplify_expr): Handle OMP_SCAN.
13152 * omp-low.c (check_omp_nesting_restrictions): For parent context,
13153 look through GIMPLE_OMP_SCAN context. Allow #pragma omp scan in
13155 (scan_omp_1_stmt, lower_omp_1, diagnose_sb_1, diagnose_sb_2): Handle
13158 2019-06-10 Martin Liska <mliska@suse.cz>
13160 * ipa-cp.c (ignore_edge_p): New function.
13161 (build_toporder_info): Use it.
13162 * ipa-inline.c (ignore_edge_p): New function.
13163 (inline_small_functions): Use it.
13164 * ipa-pure-const.c (ignore_edge_for_nothrow):
13165 Verify opt_for_fn for caller and callee.
13166 (ignore_edge_for_pure_const): Likewise.
13167 * ipa-reference.c (ignore_edge_p): Extend to check
13169 * ipa-utils.c (searchc): Refactor.
13170 * ipa-utils.h: Fix coding style.
13172 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
13174 * config/arc/arc.c (arc_rtx_costs): Update costs.
13176 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
13178 * config/arc/arc-protos.h (arc_check_ior_const): Declare.
13179 (arc_split_ior): Likewise.
13180 (arc_check_mov_const): Likewise.
13181 (arc_split_mov_const): Likewise.
13182 * config/arc/arc.c (arc_print_operand): Fix 'z' letter.
13183 (arc_rtx_costs): Replace check Crr with Cax constraint.
13184 (prepare_move_operands): Cleanup, remove unused code.
13185 (arc_split_ior): New function.
13186 (arc_check_ior_const): Likewise.
13187 (arc_split_mov_const): Likewise.
13188 (arc_check_mov_const): Likewise.
13189 * config/arc/arc.md (movsi_insn): Restructure it, and convert it
13190 in define_insn_and_split pattern.
13191 (iorsi3): Likewise.
13192 (mulsi3_v2): Add new matching variant.
13193 (andsi3_i): Cleanup pattern.
13194 (rotrsi3_cnt1): Update pattern.
13195 (rotrsi3_cnt8): New pattern.
13196 (ashlsi2_cnt8): Likewise.
13197 (ashlsi2_cnt16): Likewise.
13198 * config/arc/constraints.md (C0p): Update constraint.
13200 (C0x): New pattern.
13201 (Cax): New pattern.
13203 2019-06-10 Martin Liska <mliska@suse.cz>
13205 * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes):
13206 Update coding style.
13207 (sem_item_optimizer::dump_cong_classes):
13208 Print how many items are in a non-singular class. Improve
13211 2019-06-10 Martin Liska <mliska@suse.cz>
13213 * value-prof.c (dump_histogram_value): Change dump format.
13214 (gimple_mod_subtract_transform): Remove legacy comment.
13216 2019-06-10 Martin Liska <mliska@suse.cz>
13218 * value-prof.c (dump_histogram_value): Print histogram values
13221 2019-06-10 Martin Liska <mliska@suse.cz>
13223 * gcov-io.h (GCOV_DISK_SINGLE_VALUES): New.
13224 (GCOV_SINGLE_VALUE_COUNTERS): Likewise.
13225 * ipa-profile.c (ipa_profile_generate_summary):
13226 Use get_most_common_single_value.
13227 * tree-profile.c (gimple_init_gcov_profiler):
13228 Instrument with __gcov_one_value_profiler_v2
13229 and __gcov_indirect_call_profiler_v4.
13230 * value-prof.c (dump_histogram_value):
13231 Print all values for HIST_TYPE_SINGLE_VALUE.
13232 (stream_out_histogram_value): Update assert for
13234 (stream_in_histogram_value): Set number of
13235 counters for HIST_TYPE_SINGLE_VALUE.
13236 (get_most_common_single_value): New.
13237 (gimple_divmod_fixed_value_transform):
13238 Use get_most_common_single_value.
13239 (gimple_ic_transform): Likewise.
13240 (gimple_stringops_transform): Likewise.
13241 (gimple_find_values_to_profile): Set number
13242 of counters for HIST_TYPE_SINGLE_VALUE.
13243 * value-prof.h (get_most_common_single_value): New.
13245 2019-06-10 Martin Liska <mliska@suse.cz>
13247 * hash-map.h: Pass default value to hash_table ctor.
13248 * hash-table.h: Add default value to call of a ctor.
13250 2019-06-08 Jonathan Wakely <jwakely@redhat.com>
13252 * doc/invoke.texi (C Dialect Options): Minor grammatical change.
13253 (x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL"
13255 2019-06-07 John David Anglin <danglin@gcc.gnu.orig>
13258 * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment.
13259 Call pa_output_function_label.
13260 (TARGET_ASM_FUNCTION_PROLOGUE): define.
13261 * config/pa/pa-protos.h (pa_output_function_label): Declare.
13262 * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED
13264 (pa_linux_output_function_prologue): Declare.
13265 (TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
13266 (pa_output_function_label): New.
13267 (pa_output_function_prologue): Revise to use pa_output_function_label.
13268 (pa_linux_output_function_prologue): New.
13269 * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.
13271 2019-06-07 Aldy Hernandez <aldyh@redhat.com>
13273 * tree-vrp.h (value_range_base::intersect): New.
13274 (value_range::intersect_helper): Move from here...
13275 (value_range_base::intersect_helper): ...to here.
13276 * tree-vrp.c (value_range::intersect_helper): Rename to...
13277 (value_range_base::intersect_helper): ...this, and rewrite to
13278 return a value instead of modifying THIS in place.
13279 Also, move equivalence handling...
13280 (value_range::intersect): ...here, while calling intersect_helper.
13281 * gimple-fold.c (size_must_be_zero_p): Use value_range_base when
13283 * gimple-ssa-evrp-analyze.c (ecord_ranges_from_incoming_edge):
13285 * vr-values.c (vrp_evaluate_conditional_warnv_with_ops): Same.
13287 2019-06-07 Jakub Jelinek <jakub@redhat.com>
13289 * Makefile.in (genprogerr): Add condmd.
13290 (genprog): Remove it here.
13292 2019-06-07 Andrew Stubbs <ams@codesourcery.com>
13294 * doc/invoke.texi (AMD GCN Options): Add gfx906.
13296 2019-06-07 Richard Biener <rguenther@suse.de>
13299 * tree-cfg.c (stmt_starts_bb_p): Split blocks at labels
13300 that appear after user labels.
13302 2019-06-07 Martin Liska <mliska@suse.cz>
13304 * cselib.c (cselib_init): Disable hash table
13306 * hash-set.h: Pass new default argument to m_table.
13307 * hash-table.c: Add global variable with hash table
13308 sanitization limit.
13309 * hash-table.h (Allocator>::hash_table): Add new argument
13311 (hashtab_chk_error): New.
13312 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): New.
13313 * toplev.c (process_options): Set hash_table_sanitize_eq_limit
13314 from the PARAM_HASH_TABLE_VERIFICATION_LIMIT value.
13316 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
13318 * common.opt (flto-odr-type-merging): Ignore.
13319 * invoke.texi (-flto-odr-type-merging): Remove.
13320 * ipa-devirt.c (odr_vtable_hasher:odr_name_hasher): Remove.
13321 (can_be_vtable_hashed_p): Remove.
13322 (hash_odr_vtable): Remove.
13323 (odr_vtable_hasher::hash): Remove.
13324 (types_same_for_odr): Remove.
13325 (types_odr_comparable): Remove.
13326 (odr_vtable_hasher::equal): Remove.
13327 (odr_vtable_hash_type, odr_vtable_hash): Remove.
13328 (add_type_duplicate): Do not synchronize vtable and name hashtables.
13329 (get_odr_type): Do not use vtable hash.
13330 (dump_odr_type): Remove commented out code.
13331 (build_type_inheritance_graph): Do not allocate vtable hash.
13332 (rebuild_type_inheritance_graph): Do not delete vtable hash.
13333 * ipa-utils.h (type_with_linkage_p): Drop vtable hash path.
13334 (odr_type_p): Likewise.
13335 * tree.c (need_assembler_name_p): Remove flag_lto_odr_type_mering
13338 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
13340 * tree-ssa-alias.c (aliasing_component_refs_p): Do not give up
13341 immediately after same_types_for_tbaa_p returns -1 and continue
13342 looking for possible exact match; if matching types are arrays
13343 watch for partial overlaps.
13344 (indirect_ref_may_alias_decl_p): Watch for partial array overlaps.
13345 (indirect_refs_may_alias_p): Do type based disambiguation first;
13348 2019-06-07 Richard Sandiford <richard.sandiford@arm.com>
13350 * fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p.
13352 2019-06-07 Martin Liska <mliska@suse.cz>
13354 * doc/invoke.texi: Remove param.
13355 * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV):
13357 * gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise.
13358 (GCOV_ICALL_TOPN_NCOUNTS): Likewise.
13359 * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise.
13360 * profile.c (instrument_values): Remove
13361 HIST_TYPE_INDIR_CALL_TOPN.
13362 * tree-profile.c (init_ic_make_global_vars):
13363 Always build __gcov_indirect_call only.
13364 (gimple_init_gcov_profiler): Remove usage
13365 of PARAM_INDIR_CALL_TOPN_PROFILE.
13366 (gimple_gen_ic_profiler): Likewise.
13367 * value-prof.c (dump_histogram_value): Likewise.
13368 (stream_in_histogram_value): Likewise.
13369 (gimple_indirect_call_to_profile): Likewise.
13370 (gimple_find_values_to_profile): Likewise.
13371 * value-prof.h (enum hist_type): Likewise.
13373 2019-06-07 Martin Liska <mliska@suse.cz>
13375 * tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the
13378 2019-06-07 Martin Liska <mliska@suse.cz>
13380 PR tree-optimization/78902
13381 * builtin-attrs.def (ATTR_WARN_UNUSED_RESULT): New.
13382 (ATTR_MALLOC_NOTHROW_LEAF_LIST): Remove.
13383 (ATTR_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
13384 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
13385 (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): Remove.
13386 (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Remove.
13387 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LIST): New.
13388 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): New.
13389 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
13390 (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): Remove.
13391 (ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
13392 (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Remove.
13393 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST):
13395 (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Remove.
13396 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): New.
13397 (ATTR_MALLOC_NOTHROW_NONNULL): Remove.
13398 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
13399 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
13400 (ATTR_MALLOC_NOTHROW_NONNULL_LEAF): Remove.
13401 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
13402 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
13403 * builtins.def (BUILT_IN_ALIGNED_ALLOC): Change to use
13404 warn_unused_result attribute.
13405 (BUILT_IN_STRDUP): Likewise.
13406 (BUILT_IN_STRNDUP): Likewise.
13407 (BUILT_IN_ALLOCA): Likewise.
13408 (BUILT_IN_CALLOC): Likewise.
13409 (BUILT_IN_MALLOC): Likewise.
13410 (BUILT_IN_REALLOC): Likewise.
13412 2019-06-06 Jim Wilson <jimw@sifive.com>
13415 * config/riscv/riscv.h (STARTFILE_PREFIX_SPEC): Deleted.
13416 * config/riscv/freebsd.h (STARTFILE_PREFIX_SPEC): Added.
13417 * config/riscv/linux.h (STARTFILE_PREFIX_SPEC): Added.
13419 2019-06-06 Martin Sebor <msebor@redhat.com>
13421 * tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article.
13422 (handle_builtin_malloc): Remove trailing spaces.
13423 (handle_builtin_memset): Same.
13424 (handle_builtin_memcmp): Same.
13425 (compute_string_length): Same.
13426 (determine_min_objsize): Same.
13427 (handle_builtin_string_cmp): Same.
13428 (handle_char_store): Same. Break up excessively long line.
13430 2019-06-06 Martin Jambor <mjambor@suse.cz>
13432 * tree-sra.c (build_reconstructed_reference): Drop the alignment
13435 2019-06-06 Martin Jambor <mjambor@suse.cz>
13437 * tree-sra.c (struct access): New field grp_same_access_path.
13438 (dump_access): Dump it.
13439 (build_reconstructed_reference): New function.
13440 (build_ref_for_model): Use it if possible.
13441 (path_comparable_for_same_access): New function.
13442 (same_access_path_p): Likewise.
13443 (sort_and_splice_var_accesses): Set the new flag.
13444 (analyze_access_subtree): Likewise.
13445 (propagate_subaccesses_across_link): Propagate zero value of the new
13446 flag down the access tree.
13448 2019-06-06 Andrew Stubbs <ams@codesourcery.com>
13450 * config.gcc (amdgcn-*-*): Allow --with-arch=gfx906.
13451 * config/gcn/gcn.opt (gpu_type): Add gfx906.
13452 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add gfx906 multilib.
13453 (MULTILIB_DIRNAMES): Rename gcn5 to gfx900.
13456 2019-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13458 PR tree-optimization/90332
13459 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
13460 Handle VALS containing two vectors.
13461 * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Rename
13463 (@aarch64_combinez<mode>): ... This.
13464 (*aarch64_combinez_be<mode>): Rename to...
13465 (@aarch64_combinez_be<mode>): ... This.
13466 (vec_init<mode><Vhalf>): New define_expand.
13467 * config/aarch64/iterators.md (Vhalf): Handle V8HF.
13469 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
13471 * config/msp430/msp430.md (ashlhi3): Use the const_variant of shift
13472 library functions only when not optimizing for size.
13473 (ashlsi3): Likewise.
13474 (ashrhi3): Likewise.
13475 (ashrsi3): Likewise.
13476 (lshrhi3): Likewise.
13477 (lshrsi3): Likewise.
13479 2019-06-06 Andreas Krebbel <krebbel@linux.ibm.com>
13481 PR rtl-optimization/88751
13482 * ira.c (ira): Use the number of the actually referenced registers
13483 when calculating the threshold.
13485 2019-06-06 Jakub Jelinek <jakub@redhat.com>
13487 * configure: Regenerate.
13489 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
13491 * config/msp430/msp430.md (ashlhi3): Force shift src operand into a
13492 register if it is in memory, so the shift can be emulated with a rotate
13494 (ashrhi3): Likewise.
13495 (lshrhi3): Likewise.
13497 2019-06-06 Martin Liska <mliska@suse.cz>
13499 PR tree-optimization/87954
13500 * match.pd: Simplify mult where both arguments are 0 or 1.
13502 2019-06-06 Richard Biener <rguenther@suse.de>
13504 * vr-values.c (vr_values::extract_range_from_ssa_name): Do not
13505 put equivalences on UNDEFINED ranges.
13506 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
13507 Make sure to drop defs of stmts added during simplification
13510 2019-06-06 Richard Biener <rguenther@suse.de>
13512 * tree-ssa-structalias.c: Include tree-cfg.h.
13513 (make_heapvar): Do not make heap vars artificial.
13514 (find_func_aliases_for_builtin_call): Handle stack allocation
13516 (find_func_aliases): Delay processing of simple enough returns
13518 (set_uids_in_ptset): Adjust.
13519 (find_what_var_points_to): Likewise.
13520 (solve_constraints): Do not dump points-to sets here.
13521 (compute_points_to_sets): Post-process return statements,
13522 amending the escaped solution. Dump points-to sets afterwards.
13523 (ipa_pta_execute): Dump points-to sets.
13525 2019-06-06 Martin Liska <mliska@suse.cz>
13528 * doc/install.texi: Fix HTML headers and
13529 titles for 'Installing GCC' pages.
13531 2019-06-06 Martin Liska <mliska@suse.cz>
13533 * ipa-icf-gimple.h (dump_message_1): Remove.
13534 (dump_message): Likewise.
13535 (return_false_with_message_1): Print also file.
13536 (return_false_with_msg): Likewise.
13537 (return_with_result): Likewise.
13538 (return_with_debug): Likewise.
13539 * ipa-icf.c (sem_function::equals_private): Remove call
13542 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
13544 * config/i386/sse.md (define_mode_suffix vecmemsuffix): New.
13545 (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Enable
13546 memory operand for it.
13547 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>"): Ditto.
13549 2019-06-05 Martin Sebor <msebor@redhat.com>
13551 * config/i386/i386-features.c (ix86_get_function_versions_dispatcher):
13552 Adjust quoting and hyphenation.
13553 * convert.c (convert_to_real_1): Same.
13554 * gcc.c (driver_wrong_lang_callback): Same.
13555 (driver::handle_unrecognized_options): Same.
13556 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
13557 * opts-common.c (cmdline_handle_error): Same.
13558 (read_cmdline_option): Same.
13559 * opts-global.c (complain_wrong_lang): Same.
13560 (print_ignored_options): Same.
13561 (handle_common_deferred_options): Same.
13562 * pretty-print.h: Same.
13563 * print-rtl.c (debug_bb_n_slim): Same.
13564 * sched-rgn.c (make_pass_sched_fusion): Same.
13565 * tree-cfg.c (verify_gimple_assign_unary): Same.
13566 (verify_gimple_label): Same.
13567 * tree-ssa-operands.c (verify_ssa_operands): Same.
13568 * varasm.c (do_assemble_alias): Same.
13569 (assemble_alias): Same.
13571 2019-06-05 Richard Henderson <rth@twiddle.net>
13573 * config/alpha/alpha.c (direct_return): Move down after
13574 struct machine_function definition; use saved frame_size;
13576 (struct machine_function): Add sa_mask, sa_size, frame_size.
13577 (alpha_sa_mask, alpha_sa_size, compute_frame_size): Merge into ...
13578 (alpha_compute_frame_layout): ... new function.
13579 (TARGET_COMPUTE_FRAME_LAYOUT): New.
13580 (alpha_initial_elimination_offset): Use saved sa_size.
13581 (alpha_vms_initial_elimination_offset): Likewise.
13582 (alpha_vms_can_eliminate): Remove alpha_sa_size call.
13583 (alpha_expand_prologue): Use saved frame data. Merge integer
13584 and fp register save loops.
13585 (alpha_expand_epilogue): Likewise.
13586 (alpha_start_function): Use saved frame data.
13587 * config/alpha/alpha-protos.h (direct_return): Update.
13588 (alpha_sa_size): Remove.
13590 2019-06-05 Eric Botcazou <ebotcazou@adacore.com>
13592 * fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a
13593 multiplication by a power-of-two value.
13594 (fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value
13595 and turn the modulo operation into a masking operation.
13597 2019-06-05 Jakub Jelinek <jakub@redhat.com>
13600 * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
13601 with VOIDmode inner operands.
13603 2019-06-05 Richard Biener <rguenther@suse.de>
13605 PR middle-end/90726
13606 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
13607 turn an expression graph into a tree.
13609 2019-06-05 Jakub Jelinek <jakub@redhat.com>
13611 * omp-expand.c (struct omp_region): Add has_lastprivate_conditional
13613 (expand_parallel_call): If region->inner->has_lastprivate_conditional,
13614 treat it like explicit monotonic schedule modifier.
13615 (expand_omp_for): Initialize has_lastprivate_conditional.
13616 If fd.lastprivate_conditional != 0, treat it like explicit monotonic
13619 * omp-low.c (lower_rec_input_clauses): For lastprivate conditional
13620 references, lookup in in hash map MEM_REF operand instead of the
13622 (lower_omp_1): When looking for lastprivate conditional assignments,
13623 handle MEM_REFs with REFERENCE_TYPE operands.
13625 * omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and
13626 on privatization clauses OMP_CLAUSE_DECL is privatized by reference
13627 and references a VLA. Handle references to non-VLAs if is_simd
13628 all privatization clauses like reductions.
13629 (lower_rec_input_clauses) <case do_private, case do_firstprivate>:
13630 If omp_is_reference, use always omp simd arrays and set
13631 DECL_VALUE_EXPR in that case, if lower_rec_simd_input_clauses
13632 fails, emit reference initialization.
13634 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
13637 * config/i386/avx512dqintrin.h (_mm_mask_fpclass_ss_mask,
13638 _mm_mask_fpclass_sd_mask): New intrinsics.
13639 (_mm_fpclass_ss_mask, _mm_fpclass_sd_mask): Modified, use new builtins.
13640 * config/i386/i386-builtin.def
13641 (__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask):
13643 (__builtin_ia32_fpclassss, __builtin_ia32_fpclasssd): Deleted.
13644 * config/i386/i386-builtin-types.def (DEF_FUNCTION_TYPE (QI, V2DF, INT),
13645 DEF_FUNCTION_TYPE (QI, V4SF, INT)): Deleted.
13646 * config/i386/i386-expand.c (case QI_FTYPE_V4SF_INT,
13647 case QI_FTYPE_V2SF_INT): Ditto.
13648 * config/i386/sse.md
13649 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>):
13650 Extended to insnstructions with mask operands.
13652 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
13654 * config/rs6000/constraints.md (define_register_constraint "wp"):
13656 (define_register_constraint "wq"): Delete.
13657 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
13658 (rs6000_init_hard_regno_mode_ok): Adjust.
13659 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
13660 RS6000_CONSTRAINT_wp and RS6000_CONSTRAINT_wq.
13661 * config/rs6000/vsx.md (define_mode_attr VSr3): Delete.
13662 (define_mode_attr VSa): Delete.
13663 (define_mode_attr VSisa): New.
13664 (rest of file): Adjust.
13665 * doc/md.texi (Machine Constraints): Adjust.
13667 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
13669 * config/rs6000/rs6000.md (define_attr "isa"): Add p9kf and p9tf.
13670 (define_attr "enabled"): Handle those new isa values.
13672 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
13674 * config/rs6000/vsx.md (define_mode_attr VSr4): Delete.
13675 (define_mode_attr VSr5): Delete.
13676 (define_mode_attr VStype_sqrt): Delete.
13677 (define_mode_iterator VSX_SPDP): Delete.
13678 (define_mode_attr VS_spdp_res): Delete.
13679 (define_mode_attr VS_spdp_insn): Delete.
13680 (define_mode_attr VS_spdp_type): Delete.
13681 (*vsx_sqrt<mode>2): Adjust.
13682 (vsx_<VS_spdp_insn>): Delete, split to...
13683 (vsx_xscvdpsp): ... this. New. And...
13684 (vsx_xvcvspdp): ... this. New. And...
13685 (vsx_xvcvdpsp): ... this. New.
13687 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
13689 * config/rs6000/rs6000.md (define_mode_attr sd): Add values for V4SF
13691 * config/rs6000/vsx.md (define_mode_attr VSs): Delete.
13692 (rest of file): Adjust.
13694 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
13696 * config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>.
13697 (vsx_extract_<mode>_var): Ditto.
13699 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
13701 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI
13704 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
13706 * config/rs6000/constraints.md (define_register_constraint "ww"):
13708 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
13709 (rs6000_init_hard_regno_mode_ok): Adjust.
13710 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
13711 RS6000_CONSTRAINT_ww.
13712 * config/rs6000/rs6000.md: Adjust.
13713 * config/rs6000/vsx.md: Adjust.
13714 * doc/md.texi (Machine Constraints): Adjust.
13716 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
13718 * config/rs6000/rs6000.md (SFDF, SFDF2): Adjust comments.
13719 (define_mode_attr sd): New.
13720 (define_mode_attr s): New.
13721 (define_mode_attr Ftrad): Delete.
13722 (define_mode_attr Fvsx): Delete.
13723 (define_mode_attr Fs): Delete.
13724 (rest of file): Use the new mode attributes.
13725 * config.rs6000/vsx.md: Use the new mode attributes.
13727 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
13729 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_W
13732 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
13734 * config/rs6000/vsx.md (define_mode_attr VSr2): Delete.
13735 (rest of file): Replace all <VSa>, <VSr>, <VSr2>, and <VSr3> that are
13736 used with VSX_B, VSX_D, or VSX_F, with just "wa".
13738 2019-06-04 Bill Schmidt <wschmidt@linux.ibm.com>
13741 * config/rs6000/altivec.h: Don't #define vector, pixel, bool for
13742 C++ with strict ANSI requirements.
13744 2019-06-04 Marc Glisse <marc.glisse@inria.fr>
13746 * tree-ssa-loop-niter.c (number_of_iterations_ne): Skip
13747 computations when step is 1.
13749 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
13751 * config/rs6000/constraints.md (define_register_constraint "wf"):
13753 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
13754 (rs6000_init_hard_regno_mode_ok): Adjust.
13755 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
13756 RS6000_CONSTRAINT_wf.
13757 * config/rs6000/rs6000.md: Adjust.
13758 * config/rs6000/vsx.md: Adjust.
13759 * doc/md.texi (Machine Constraints): Adjust.
13761 2019-06-04 Andrew Pinski <apinski@marvell.com>
13763 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset):
13766 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
13768 * config/rs6000/constraints.md (define_register_constraint "wd"):
13770 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
13771 (rs6000_init_hard_regno_mode_ok): Adjust.
13772 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
13773 RS6000_CONSTRAINT_wd.
13774 * config/rs6000/rs6000.md: Adjust.
13775 * config/rs6000/vsx.md: Adjust.
13776 * doc/md.texi (Machine Constraints): Adjust.
13778 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
13780 * config/rs6000/rs6000.md (define_mode_attr Fv2): Delete.
13781 (rest of file): Adjust.
13783 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
13785 * config/rs6000/vsx.md (define_mode_attr VS_64reg): Delete.
13786 (*vsx_extract_<P:mode>_<VSX_D:mode>_load): Adjust.
13787 (vsx_splat_<mode>_reg): Adjust.
13789 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
13791 * config/rs6000/constraints.md (define_register_constraint "ws"):
13793 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
13794 (rs6000_init_hard_regno_mode_ok): Adjust.
13795 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
13796 RS6000_CONSTRAINT_ws.
13797 * config/rs6000/rs6000.md: Adjust.
13798 * config/rs6000/vsx.md: Adjust.
13799 * doc/md.texi (Machine Constraints): Adjust.
13801 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
13803 * config/rs6000/constraints.md (define_register_constraint "wv"):
13805 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
13806 (rs6000_init_hard_regno_mode_ok): Adjust.
13807 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
13808 RS6000_CONSTRAINT_wv.
13809 * config/rs6000/rs6000.md: Adjust.
13810 * config/rs6000/vsx.md: Adjust.
13811 * doc/md.texi (Machine Constraints): Adjust.
13813 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
13815 * config/rs6000/constraints.md (define_register_constraint "wi"):
13817 (define_register_constraint "wt"): Delete.
13818 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
13819 (rs6000_init_hard_regno_mode_ok): Adjust.
13820 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
13821 RS6000_CONSTRAINT_wi and RS6000_CONSTRAINT_wt.
13822 * config/rs6000/rs6000.md: Adjust.
13823 * config/rs6000/vsx.md: Adjust.
13824 * doc/md.texi (Machine Constraints): Adjust.
13826 2019-06-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
13828 * config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove
13830 * config/aarch64/aarch64.c (aarch64_asm_output_external): Call
13831 default_elf_asm_output_external.
13833 2019-06-04 Martin Liska <mliska@suse.cz>
13835 * ipa-icf.c (INCLUDE_LIST): Remove.
13836 (sem_item_optimizer::execute): Remove call to init_wpa.
13837 * ipa-icf.h (init_wpa): Remove.
13839 2019-06-04 Jakub Jelinek <jakub@redhat.com>
13841 * gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate
13842 conditional on combined for simd.
13843 * omp-low.c (struct omp_context): Add combined_into_simd_safelen0
13845 (lower_rec_input_clauses): For gimple_omp_for_combined_into_p max_vf 1
13846 constructs, don't remove lastprivate_conditional_map, but instead set
13847 ctx->combined_into_simd_safelen0 and adjust hash_map, so that it points
13848 to parent construct temporaries.
13849 (lower_lastprivate_clauses): Handle ctx->combined_into_simd_safelen0
13850 like !ctx->lastprivate_conditional_map.
13851 (lower_omp_1) <case GIMPLE_ASSIGN>: If up->combined_into_simd_safelen0,
13852 use up->outer context instead of up.
13853 * omp-expand.c (expand_omp_for_generic): Perform cond_var bump even if
13854 gimple_omp_for_combined_p.
13855 (expand_omp_for_static_nochunk): Likewise.
13856 (expand_omp_for_static_chunk): Add forgotten cond_var bump that was
13857 probably moved over into expand_omp_for_generic rather than being copied
13860 2019-06-04 Martin Liska <mliska@suse.cz>
13862 * value-prof.c (dump_histogram_value): Fix typo.
13863 (gimple_mod_subtract_transform): Likewise.
13865 2019-06-04 Richard Biener <rguenther@suse.de>
13867 PR middle-end/90726
13868 * tree-chrec.c (chrec_contains_symbols): Add to visited.
13869 (tree_contains_chrecs): Likewise.
13870 (chrec_contains_symbols_defined_in_loop): Move here and avoid
13871 exponential behaivor from ...
13872 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
13874 (expression_expensive_p): Avoid exponential behavior and compute
13875 expanded size, rejecting any expansion.
13876 * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): Remove.
13877 (idx_contains_abnormal_ssa_name_p): Likewise.
13878 (contains_abnormal_ssa_name_p_1): New helper for walk_tree.
13879 (contains_abnormal_ssa_name_p): Simplify and use
13880 walk_tree_without_duplicates.
13882 2019-06-04 Richard Biener <rguenther@suse.de>
13884 PR tree-optimization/90738
13886 2019-06-03 Richard Biener <rguenther@suse.de>
13888 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
13889 full reference tree and record in ref->ref.
13890 (vn_reference_lookup_3): Pass in original ref to
13891 ao_ref_init_from_vn_reference.
13892 (vn_reference_lookup): Likewise.
13893 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
13894 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
13895 Handle non-decl bases in the original reference.
13897 2019-06-04 Martin Liska <mliska@suse.cz>
13899 * ipa-icf.c (sem_item_optimizer::add_item_to_class): Count
13900 number of references.
13901 (sem_item_optimizer::do_congruence_step):
13902 (sem_item_optimizer::worklist_push): Dump how references
13904 (sem_item_optimizer::worklist_pop): Use heap.
13905 (sem_item_optimizer::process_cong_reduction): Likewise.
13906 * ipa-icf.h: Use fibonacci_heap insteam of std::list.
13908 2019-06-04 Martin Liska <mliska@suse.cz>
13910 * ipa-icf.h (struct sem_usage_pair_hash): New.
13911 (sem_usage_pair_hash::hash): Likewise.
13912 (sem_usage_pair_hash::equal): Likewise.
13913 (struct sem_usage_hash): Likewise.
13914 * ipa-icf.c (sem_item::sem_item): Initialize
13915 referenced_by_count.
13916 (sem_item::add_reference): Register a reference
13917 in ref_map and not in target->usages.
13918 (sem_item::setup): Remove initialization of
13920 (sem_item::~sem_item): Remove usage of dead vectors.
13921 (sem_item::dump): Remove dump of references.
13922 (sem_item_optimizer::sem_item_optimizer): Initialize
13924 (sem_item_optimizer::read_section): Remove useless
13926 (sem_item_optimizer::parse_funcs_and_vars): Likewise here.
13927 (sem_item_optimizer::build_graph): Pass m_references
13928 to ::add_reference.
13929 (sem_item_optimizer::verify_classes): Remove usage of dead
13931 (sem_item_optimizer::traverse_congruence_split): Return true
13932 when a class is split.
13933 (sem_item_optimizer::do_congruence_step_for_index): Use
13934 hash_map for look up of (sem_item *, index). That brings
13935 significant speed up.
13936 (sem_item_optimizer::do_congruence_step): Return true
13937 when a split is done.
13938 (congruence_class::is_class_used): Use referenced_by_count.
13940 2019-06-04 Alan Modra <amodra@gmail.com>
13943 * config/rs6000/rs6000.c (rs6000_call_aix): Correct r271753 merge
13946 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
13948 * config/rs6000/rs6000.h (MASK_MFPGPR): Delete.
13949 * config/rs6000/rs6000.c (direct_move_p): Adjust.
13950 (rs6000_secondary_reload_simple_move): Adjust.
13951 (rs6000_opt_masks): Neuter the "mfpgpr" option.
13952 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust.
13953 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED): Adjust
13956 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Adjust.
13957 (floatunssi<mode>2_lfiwzx): Adjust.
13958 (fix_trunc<mode>si2_stfiwx): Adjust.
13959 (fixuns_trunc<mode>si2_stfiwx): Adjust.
13960 * config/rs6000/rs6000.opt (mno-mfpgpr): New.
13961 (mfpgpr): Mark as deprecated.
13962 * doc/extend.texi (PowerPC Function Attributes): Delete mfpgpr.
13963 (Basic PowerPC Built-in Functions Available on ISA 2.05): Adjust.
13964 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mmfpgpr.
13966 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
13968 * config/rs6000/constraints.md (define_register_constraint "wg"):
13970 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
13971 RS6000_CONSTRAINT_wg.
13972 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
13973 (rs6000_init_hard_regno_mode_ok): Adjust.
13974 * config/rs6000/rs6000.md (*mov<mode>_softfloat32, *movdi_internal64):
13975 Delete "wg" alternatives.
13976 * doc/md.texi (Machine Constraints): Adjust.
13978 2019-06-03 Alan Modra <amodra@gmail.com>
13980 * bb-reorder.c (copy_bb_p): Don't overflow size calculation.
13981 (get_uncond_jump_length): Assert length less than INT_MAX and
13984 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
13986 PR middle-end/64242
13987 * builtins.c (expand_builtin_longjmp): Add frame clobbers and schedule
13989 (expand_builtin_nonlocal_goto): Likewise.
13991 2019-06-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
13993 * config/aarch64/aarch64-protos.h (aarch64_asm_output_alias): Declare.
13994 (aarch64_asm_output_external): Declare.
13995 * config/aarch64/aarch64.c (aarch64_asm_output_variant_pcs): New.
13996 (aarch64_declare_function_name): Call aarch64_asm_output_variant_pcs.
13997 (aarch64_asm_output_alias): New.
13998 (aarch64_asm_output_external): New.
13999 * config/aarch64/aarch64.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
14000 (ASM_OUTPUT_EXTERNAL): Define.
14002 2019-06-03 Aldy Hernandez <aldyh@redhat.com>
14003 * tree-vrp.h (value_range_base::nonzero_p): New.
14004 (value_range_base::set_nonnull): Rename to...
14005 (value_range_base::set_nonzero): ...this.
14006 (value_range_base::set_null): Rename to...
14007 (value_range_base::set_zero): ...this.
14008 (value_range::set_nonnull): Remove.
14009 (value_range::set_null): Remove.
14010 * tree-vrp.c (range_is_null): Remove.
14011 (range_is_nonnull): Remove.
14012 (extract_range_from_binary_expr): Use value_range_base::*zero_p
14013 instead of range_is_*null.
14014 (extract_range_from_unary_expr): Same.
14015 (value_range_base::set_nonnull): Rename to...
14016 (value_range_base::set_nonzero): ...this.
14017 (value_range::set_nonnull): Remove.
14018 (value_range_base::set_null): Rename to...
14019 (value_range_base::set_zero): ...this.
14020 (value_range::set_null): Remove.
14021 (extract_range_from_binary_expr): Rename set_*null uses to
14023 (extract_range_from_unary_expr): Same.
14024 (union_helper): Same.
14025 * vr-values.c (get_value_range): Use set_*zero instead of
14027 (vr_values::extract_range_from_binary_expr): Same.
14028 (vr_values::extract_range_basic): Same.
14030 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
14033 * opts.c (parse_and_check_align_values): Allow 4 alignment values.
14035 2019-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14037 * config/aarch64/iterators.md (MAX_OPP): New code attr.
14038 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3):
14040 (aarch64_<su>abd<mode>_3): ... This.
14041 (<sur>sadv16qi): Add TARGET_DOTPROD expansion.
14043 2019-06-03 Richard Biener <rguenther@suse.de>
14045 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
14046 full reference tree and record in ref->ref.
14047 (vn_reference_lookup_3): Pass in original ref to
14048 ao_ref_init_from_vn_reference.
14049 (vn_reference_lookup): Likewise.
14050 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
14051 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
14052 Handle non-decl bases in the original reference.
14054 2019-06-03 Martin Liska <mliska@suse.cz>
14056 * doc/generic.texi: Remove Java Trees.
14058 2019-06-03 Martin Liska <mliska@suse.cz>
14060 * fold-const.c (operand_equal_p): Fix typo as compare_tree_int
14061 returns 0 when operands are equal.
14063 2019-06-03 Richard Biener <rguenther@suse.de>
14065 PR tree-optimization/90716
14066 * tree-loop-distribution.c (destroy_loop): Process blocks in
14069 2019-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
14072 * vector-builder.h (vector_builder::count_dups): New method.
14073 * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vector_init):
14075 * config/aarch64/aarch64/sve.md (aarch64_sve_rev64<mode>): Use @.
14076 (vec_init<mode><Vel>): New pattern.
14077 * config/aarch64/aarch64.c (emit_insr): New function.
14078 (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise.
14079 (aarch64_sve_expand_vector_init_insert_elems): Likewise.
14080 (aarch64_sve_expand_vector_init_handle_trailing_same_elem): Likewise.
14081 (aarch64_sve_expand_vector_init): Define two overloaded functions.
14083 2019-06-03 Alejandro Martinez <alejandro.martinezvicente@arm.com>
14085 PR tree-optimization/90681
14086 * internal-fn.c (mask_load_direct): Mark as non-vectorizable again.
14087 * tree-vect-slp.c (vect_build_slp_tree_1): Add masked loads as a
14088 special case for SLP, but fail on non-groupped loads.
14090 2019-06-03 Martin Liska <mliska@suse.cz>
14092 * cfg.c (debug): Use TDF_DETAILS for debug and
14093 print edge info only once.
14095 2019-06-02 Thomas Koenig <tkoenig@gcc.gnu.org>
14098 * predict.def (PRED_FORTRAN_CONTIGUOUS): New predictor.
14100 2019-06-01 Martin Sebor <msebor@redhat.com>
14102 PR middle-end/90694
14103 * tree-pretty-print.c (dump_generic_node): Add parentheses.
14105 2019-05-31 Jan Hubicka <jh@suse.cz>
14107 * alias.c: Include ipa-utils.h.
14108 (get_alias_set): Try to complete ODR type via ODR type hash lookup.
14109 * ipa-devirt.c (prevailing_odr_type): New.
14110 * ipa-utils.h (previaling_odr_type): Declare.
14112 2019-05-31 H.J. Lu <hongjiu.lu@intel.com>
14113 Hongtao Liu <hongtao.liu@intel.com>
14116 * config/i386/i386-features.c (rest_of_insert_endbranch): Remove
14117 NOTE_INSN_DELETED_LABEL check.
14119 2019-05-31 Prachi Godbole <prachi.godbole@imgtec.com>
14120 Robert Suchanek <robert.suchanek@mips.com>
14122 * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st
14123 and 3rd operands of the fmadd/fmsub/maddv builtin.
14125 2019-05-31 Jakub Jelinek <jakub@redhat.com>
14127 * tree.h (OMP_CLAUSE__CONDTEMP__ITER): Define.
14128 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
14129 on OMP_SIMD if not nested inside of worksharing loop that also has
14130 lastprivate conditional clause for the same decl.
14131 (gimplify_omp_for): Add _condtemp_ clauses to OMP_SIMD if needed.
14132 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_ also
14134 (lower_rec_input_clauses): Likewise. Handle lastprivate conditional
14136 (lower_lastprivate_conditional_clauses): Handle lastprivate conditional
14138 (lower_lastprivate_clauses): Likewise.
14139 (lower_omp_sections): Call lower_lastprivate_conditional_clauses before
14140 calling lower_rec_input_clauses.
14141 (lower_omp_for): Likewise.
14142 (lower_omp_1): Use first rather than second OMP_CLAUSE__CONDTEMP_
14143 clause on simd construct.
14144 * omp-expand.c (expand_omp_simd): Initialize cond_var if
14145 OMP_CLAUSE__CONDTEMP_ clause is present.
14147 * omp-low.c (lower_rec_simd_input_clauses): Set TREE_THIS_NOTRAP on
14150 2019-05-31 Xiong Hu Luo <luoxhu@linux.ibm.com>
14153 * c-format.c (print_char_table, scanf_char_table): Replace BADLEN with
14154 TEX_D32, TEX_D64 or TEX_D128.
14156 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
14158 * match.pd (~(vec?cst1:cst2)): New transformation.
14160 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
14162 * match.pd (X/[ex]D<Y/[ex]D): Handle negative denominator.
14163 ((size_t)(A /[ex] B) CMP C): New transformation.
14165 2019-05-31 Richard Sandiford <richard.sandiford@arm.com>
14167 * doc/md.texi: Document define_insn_and_rewrite.
14168 * rtl.def (DEFINE_INSN_AND_REWRITE): New rtx code.
14169 * gensupport.c (queue_elem): Update comment.
14170 (replace_operands_with_dups): New function.
14171 (gen_rewrite_sequence): Likewise.
14172 (process_rtx): Handle DEFINE_INSN_AND_REWRITE.
14173 * read-rtl.c (apply_subst_iterator): Likewise.
14174 (add_condition_to_rtx, named_rtx_p): Likewise.
14175 (rtx_reader::read_rtx_operand): Likewise.
14176 * config/aarch64/aarch64-sve.md
14177 (while_ult<GPI:mode><PRED_ALL:mode>_cc): Rename to...
14178 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): ...this and use
14179 define_insn_and_rewrite.
14180 (*cond_<optab><mode>_any): Turn into define_insn_and_rewrites.
14181 Remove separate define_split.
14183 2019-05-31 Jan Hubicka <jh@suse.cz>
14185 * tree-ssa-alias.c (type_has_components_p): New function.
14186 (aliasing_component_refs_p): Use it.
14188 2019-05-31 Martin Liska <mliska@suse.cz>
14190 * gdbhooks.py: Add const_tree to TreePrinter.
14192 2019-05-31 Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
14195 * common.opt (feliminate-unused-debug-symbols): Enable by default.
14196 * doc/invoke.texi (Debugging Options): Document new default of
14197 -feliminate-unused-debug-symbols and remove restriction to 'stabs'.
14199 2019-05-31 Jakub Jelinek <jakub@redhat.com>
14201 PR tree-optimization/90671
14202 * tree-ssa-threadupdate.c (ssa_create_duplicates): If
14203 template_block used to be empty on the first call, don't use
14204 gsi_split_seq_after and gsi_insert_seq_after, but remember whole
14205 seq with bb_seq and set it with set_bb_seq.
14207 2019-05-31 Iain Sandoe <iain@sandoe.co.uk>
14209 * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
14211 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
14212 Michael Meissner <meissner@linux.ibm.com>
14214 * config/rs6000/predicates.md (pcrel_address): New define_predicate.
14215 (prefixed_mem_operand): Likewise.
14216 (non_prefixed_mem_operand): Likewise.
14217 * config/rs6000/rs6000-protos.h (rs6000_prefixed_address): New
14219 * config/rs6000/rs6000.c (print_operand_address): Handle
14220 PC-relative addresses.
14221 (mode_supports_prefixed_address_p): New function.
14222 (rs6000_prefixed_address): New function.
14223 * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL): New #define.
14224 (SYMBOL_REF_PCREL_P): Likewise.
14226 2019-05-30 Jakub Jelinek <jakub@redhat.com>
14228 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP.
14229 (gimplify_adjust_omp_clauses_1): Handle GOVD_CONDTEMP.
14230 (gimplify_omp_for): If worksharing loop with lastprivate conditional
14231 is nested inside of parallel region, add _condtemp_ clause to both.
14232 * tree-nested.c (convert_nonlocal_omp_clauses,
14233 convert_local_omp_clauses): Ignore OMP_CLAUSE__CONDTEMP_ instead of
14235 * omp-general.h (struct omp_for_data): Add have_pointer_condtemp
14237 * omp-general.c (omp_extract_for_data): Compute it.
14238 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_.
14239 (lower_rec_input_clauses): Likewise.
14240 (lower_lastprivate_conditional_clauses): If OMP_CLAUSE__CONDTEMP_
14241 clause is already present, just add one further one after it.
14242 (lower_lastprivate_clauses): Handle cond_ptr with array type.
14243 (lower_send_shared_vars): Clear _condtemp_ vars.
14244 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle target data like critical
14245 or section or taskgroup.
14246 * omp-expand.c (determine_parallel_type): Disallow combining only if
14247 first OMP_CLAUSE__CONDTEMP_ has pointer type. Disallow combining
14248 of parallel sections if OMP_CLAUSE__CONDTEMP_ is present.
14249 (expand_omp_for_generic, expand_omp_for_static_nochunk,
14250 expand_omp_for_static_chunk, expand_omp_for): Use
14251 fd->have_pointer_condtemp instead of fd->lastprivate_conditional to
14252 determine if a special set of API routines are needed and if condtemp
14253 needs to be initialized, while always initialize cond_var if
14254 fd->lastprivate_conditional is non-zero.
14256 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
14257 Michael Meissner <meissner@linux.ibm.com>
14259 * config/rs6000/constraints.md (eI): New constraint.
14260 * config/rs6000/predicates.md (cint34_operand): New predicate.
14261 * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): New #define.
14262 (SIGNED_34BIT_OFFSET_P): Likewise.
14263 * doc/md.texi (eI): Document constraint.
14265 2019-05-30 Sylvia Taylor <sylvia.taylor@arm.com>
14267 * config/aarch64/aarch64-sve.md (*fabd<mode>3): New.
14269 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
14270 Michael Meissner <meissner@linux.ibm.com>
14272 * rs6000-cpus.def (OTHER_FUSION_MASKS): New #define.
14273 (ISA_3_0_MASKS_SERVER): Mask off OTHER_FUSION_MASKS.
14274 (ISA_3_0_MASKS_IEEE): Remove OPTION_MASK_DIRECT_MOVE.
14275 (ISA_FUTURE_MASKS_SERVER): Add OPTION_MASK_PREFIXED_ADDR.
14276 (OTHER_FUTURE_MASKS): Likewise.
14277 (POWERPC_MASKS): Likewise.
14278 * rs6000.c (rs6000_option_override_internal): Error if -mpcrel is
14279 specified without -mprefixed-addr or -mcpu=future. Error if
14280 -mprefixed-addr is specified without -mcpu=future.
14281 (rs6000_opt_masks): Add entry for prefixed-addr.
14282 * rs6000.opt (mprefixed-addr): New option.
14284 2019-05-30 Sam Tebbs <sam.tebbs@arm.com>
14286 * aarch64/aarch64.c (aarch64_post_cfi_startproc): Add
14287 cfun->is_thunk check.
14289 2019-05-30 Jakub Jelinek <jakub@redhat.com>
14291 * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght
14294 2019-05-30 Martin Liska <mliska@suse.cz>
14296 * gdbinit.in: Fix 'ptc' command. Add trt
14297 that prints TREE_TYPE($).
14299 2019-05-29 Bill Schmidt <wschmidt@linux.ibm.com>
14300 Alan Modra <amodra@gmail.com>
14302 * config/rs6000/rs6000.c (rs6000_call_template_1): Handle pcrel
14304 (rs6000_indirect_call_template_1): ...and here.
14305 (rs6000_pltseq_template): Handle plt_pcrel34. Rework tocsave,
14306 plt16_ha, plt16_lo, mtctr indirect calls. Use
14307 rs6000_pltseq_enum.
14308 (rs6000_decl_ok_for_sibcall): New function.
14309 (rs6000_function_ok_for_sibcall): Refactor.
14310 (rs6000_longcall_ref): Use UNSPEC_PLT_PCREL when pcrel.
14311 (rs6000_call_aix): Don't emit toc restore rtl for indirect calls
14312 when pcrel. Reorganize.
14313 (rs6000_sibcall_aix): Don't add r2 to function usage when pcrel.
14314 * rs6000.h (rs6000_pltseq_enum): New enum.
14315 * rs6000.md (UNSPEC_PLT_PCREL): New unspec.
14316 (*pltseq_tocsave): Use rs6000_pltseq_enum.
14317 (*pltseq_plt16_ha): Likewise.
14318 (*pltseq_plt16_lo): Likewise.
14319 (*pltseq_mtctr): Likewise.
14320 (*pltseq_plt_pcrel): New insn.
14321 (*call_local_aix): Handle @notoc calls.
14322 (*call_value_local_aix): Likewise.
14323 (*call_nonlocal_aix): Adjust lengths for pcrel calls.
14324 (*call_value_nonlocal_aix): Likewise.
14325 (*call_indirect_pcrel): New insn.
14326 (*call_value_indirect_pcrel): Likewise.
14328 2019-05-29 Uroš Bizjak <ubizjak@gmail.com>
14330 * config/i386/sse.md (*save_multiple<mode>): Rename from
14331 save_multiple<mode>.
14332 (*restore_multiple<mode>): Rename from restore_multiple<mode>.
14333 (*restore_multiple_and_return<mode>): Rename from
14334 restore_multiple_and_return<mode>.
14335 (*restore_multiple_leave_return<mode>): Rename from
14336 restore_multiple_leave_return<mode>.
14338 2019-05-29 Yoshinori Sato <ysato@users.sourceforge.jp>
14340 * config.gcc (rx-*-linux*): New target.
14341 * config/rx/elf.opt: New file.
14342 * config/rx/linux.h: Likewise.
14343 * config/rx/t-linux: Likewise.
14344 * config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined,
14346 * config/rx/rx.h (ASM_APP_ON): Allow to be overridden.
14347 (ASM_APP_OFF): Likewise.
14348 * config/rx/rx.opt: Drop -msim and -mas100-syntax, they were
14351 2019-05-29 Jan Hubicka <jh@suse.cz>
14353 * tree-ssa-alias.c (same_type_for_tbaa): Return ture if main
14354 variants are pointer equivalent.
14356 2019-05-29 Alejandro Martinez <alejandro.martinezvicente@arm.com>
14358 * config/aarch64/aarch64-c.c: Added TARGET_SVE2.
14359 * config/aarch64/aarch64-sve2.md: New file.
14360 (<u>avg<mode>3_floor): New pattern.
14361 (<u>avg<mode>3_ceil): Likewise.
14362 (*<sur>h<addsub><mode>): Likewise.
14363 * config/aarch64/aarch64.h: Added AARCH64_ISA_SVE2 and TARGET_SVE2.
14364 * config/aarch64/aarch64.md: Include aarch64-sve2.md.
14366 2019-05-29 Jakub Jelinek <jakub@redhat.com>
14369 * optc-save-gen.awk: In cl_optimization_print, use correct condition
14370 for var_opt_string printing. In cl_optimization_print_diff, print
14371 (null) instead of invoking undefined behavior if one of the
14372 var_opt_string pointers is NULL and use && instead of first || in the
14373 guarding condition. For var_target_other options, handle const char *
14374 target variables similarly to const char * optimize node variables.
14376 2019-05-29 Sam Tebbs <sam.tebbs@arm.com>
14378 * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add
14379 AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716.
14380 * config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins):
14381 Add autib1716 and pacib1716 initialisation.
14382 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks
14383 for autib1716 and pacib1716.
14384 * config/aarch64/aarch64-protos.h (aarch64_key_type,
14385 aarch64_post_cfi_startproc): Define.
14386 * config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern.
14387 * config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection,
14388 aarch64_handle_pac_ret_protection): Set default sign key to A.
14389 * config/aarch64/aarch64.c (aarch64_expand_epilogue,
14390 aarch64_expand_prologue): Add check for b-key.
14391 * config/aarch64/aarch64.c (aarch64_ra_sign_key,
14392 aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define.
14393 * config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define.
14394 * config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key".
14395 * config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716,
14396 UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716,
14397 UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP.
14398 * config/aarch64/aarch64.md (do_return): Add check for b-key.
14399 * config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace
14400 pauth_hint_num_a with pauth_hint_num.
14401 * config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace
14402 pauth_hint_num_a with pauth_hint_num.
14403 * config/aarch64/aarch64.opt (msign-return-address=): Deprecate.
14404 * config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP,
14405 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
14406 * config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716,
14407 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716.
14408 * config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716,
14409 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP,
14410 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
14411 * config/aarch64/iterators.md (pauth_hint_num_a): Replace
14412 UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and
14413 UNSPEC_AUTIA1716 respectively.
14414 * config/aarch64/iterators.md (pauth_hint_num_a): Rename to
14415 pauth_hint_num and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP,
14416 UNSPEC_PACIB1716, UNSPEC_AUTIB1716.
14417 * doc/invoke.texi (-mbranch-protection): Add b-key type.
14418 * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename
14419 UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP.
14421 2019-05-29 Jakub Jelinek <jakub@redhat.com>
14423 * gimplify.c (struct gimplify_omp_ctx): Add clauses member.
14424 (gimplify_scan_omp_clauses): Initialize ctx->clauses.
14425 (gimplify_adjust_omp_clauses_1): Transform lastprivate conditional
14426 explicit clause on combined parallel into implicit shared clause.
14427 (gimplify_adjust_omp_clauses): Move lastprivate conditional clause
14428 and firstprivate if the decl has one too from combined parallel to
14429 the worksharing construct.
14431 2019-05-28 Bill Schmidt <wschmidt@linux.ibm.com>
14432 Michael Meissner <meissner@linux.ibm.com>
14434 * config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define.
14436 2019-05-28 Michael Meissner <meissner@linux.ibm.com>
14438 * rtl.h (LABEL_REF_P): New #define.
14440 2019-05-28 John David Anglin <danglin@gcc.gnu.org>
14442 * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.
14444 2019-05-28 Alejandro Martinez <alejandro.martinezvicente@arm.com>
14446 * internal-fn.c: Marked mask_load_direct as vectorizable.
14447 * tree-data-ref.c (data_ref_compare_tree): Fixed comment typo.
14448 * tree-vect-data-refs.c (can_group_stmts_p): Allow masked loads to be
14449 combined even if masks different with allow_slp_p param.
14450 (vect_analyze_data_ref_accesses): Mark SLP only vectorizable groups.
14451 * tree-vect-loop.c (vect_dissolve_slp_only_groups): New function to
14452 dissolve SLP-only vectorizable groups when SLP has been discarded.
14453 (vect_analyze_loop_2): Call vect_dissolve_slp_only_groups when needed.
14454 * tree-vect-slp.c (vect_get_and_check_slp_defs): Check masked loads
14456 (vect_build_slp_tree_1): Fixed comment typo.
14457 (vect_build_slp_tree_2): Include masks from masked loads in SLP tree.
14458 * tree-vect-stmts.c (vectorizable_load): Allow vectorizaion of masked
14459 loads for SLP only.
14460 * tree-vectorizer.h (_stmt_vec_info): Added flag for SLP-only
14462 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Likewise.
14464 2019-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14466 * config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf):
14467 Remove obsolete use_thunk reference.
14468 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
14469 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
14470 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
14471 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
14472 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
14473 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
14474 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
14475 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
14476 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
14478 2019-05-28 Nathan Sidwell <nathan@acm.org>
14480 * tree.h (IDENTIFIER_ANON_P): New.
14481 (anon_aggrname_format, anon_aggname_p): Don't declare.
14482 (make_anon_name): Declare.
14483 * lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P.
14484 (hash_tree): Likewise.
14485 * tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise.
14486 * tree.c (anon_aggrname_p, anon_aggrname_format): Delete.
14487 (anon_cnt, make_anon_name): New.
14489 2019-05-28 Martin Liska <mliska@suse.cz>
14492 * opts-global.c (decode_options): Print help for all
14493 help_option_arguments.
14494 * opts.c (print_help): Add new argument.
14495 (common_handle_option): Remember all values into
14496 help_option_arguments.
14497 * opts.h (print_help): Add new argument.
14499 2019-05-28 Martin Liska <mliska@suse.cz>
14502 * ipa-icf-gimple.c (func_checker::compare_loops): New function.
14503 * ipa-icf-gimple.h (func_checker::compare_loops): Likewise.
14504 (func_checker::compare_bb): Call compare_loops.
14506 2019-05-27 Jakub Jelinek <jakub@redhat.com>
14508 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
14509 on sections construct.
14510 * omp-low.c (lower_lastprivate_conditional_clauses): Handle sections
14512 (lower_omp_sections): Handle lastprivate conditional.
14513 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle sections construct with
14514 lastprivate_conditional_map.
14515 * omp-expand.c (expand_omp_sections): Handle lastprivate conditional.
14517 * omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered,
14518 critical, taskgroup and section regions when looking for a region
14519 with non-NULL lastprivate_conditional_map.
14521 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
14523 * config/i386/i386.c (ix86_gen_add3): Remove indirect function.
14524 (*ix86_gen_sub3): Ditto.
14525 (*ix86_gen_sub3_carry): Ditto.
14526 (*ix86_gen_one_cmpl2): Ditto.
14527 (*ix86_gen_andsp): Ditto.
14528 (ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3.
14529 (gen_and2_insn): New static function.
14530 (ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp.
14531 Use gen_add3_insn instead of ix86_gen_add3.
14532 (ix86_expand_split_stack_prologue): Use gen_add2_insn
14533 instead of ix86_gen_add3.
14534 (legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3.
14535 Use gen_sub3_insn instead of ix86_gen_sub3.
14536 * config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn
14537 instead of ix86_gen_add3.
14538 (ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of
14539 ix86_gen_add3. Use gen_sub3_insn instead of ix86_gen_sub3.
14540 (construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3.
14541 * config/i386/i386-options.c (ix86_option_override_internal):
14542 Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
14543 ix86_gen_one_cmpl2 and ix86_gen_andsp.
14545 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
14547 * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
14548 and DW_OP_GNU_const_index opcodes.
14550 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
14552 * config/i386/i386.h (STACK_SIZE_MODE): Define.
14554 2019-05-27 Richard Biener <rguenther@suse.de>
14556 PR tree-optimization/90637
14557 * tree-ssa-sink.c (statement_sink_location): Honor the
14558 computed sink location for single-uses.
14560 2019-05-27 Richard Biener <rguenther@suse.de>
14562 PR middle-end/90610
14563 * match.pd (vec_perm): Avoid clobbering op0 when not generating
14566 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
14568 * config/i386/i386.md (@sub<mode>3_carry): Rename
14569 from sub<mode>3_carry.
14570 (@leave_<mode>): New expander.
14571 (*leave): Rename from leave.
14572 (*leave_rex64): Rename from leave_rex64.
14573 (@monitorx_<mode>): Rename from monitorx_<mode>.
14574 (@clzero_<mode>): Rename from clzero_<mode>.
14575 * config/i386/sse.md (@sse3_monitor_<mode>): Rename
14576 from sse3_monitor_<mode>.
14577 * config/i386/i386.c (ix86_gen_sub3_carry): Remove indirect function.
14578 (*ix86_gen_leave): Ditto.
14579 (*ix86_gen_monitor): Ditto.
14580 (*ix86_gen_monitorx): Ditto.
14581 (*ix86_gen_clzero): Ditto.
14582 (ix86_emit_leave): Use gen_leave instead of ix86_gen_leave.
14583 * config/i386/i386-expand.c (ix86_expand_strlensi_unroll_1):
14584 Use gen_sub3_carry instead of ix86_gen_sub3_carry.
14585 (ix86_expand_builtin) <case IX86_BUILTIN_MONITOR>:
14586 Use gen_sse3_monitor instead of ix86_gen_monitor.
14587 <case IX86_BUILTIN_MONITORX>: Use gen_monitorx
14588 instead of ix86_gen_monitorx.
14589 <case IX86_BUILTIN_CLZERO>: Use gen_clzero
14590 instead of ix86_gen_clzero.
14591 * config/i386/i386-options.c (ix86_option_override_internal):
14592 Do not initialize ix86_gen_leave, ix86_gen_sub3_carry,
14593 ix86_gen_monitor, ix86_gen_monitorx and ix86_gen_clzero.
14595 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
14597 * config/i386/i386.md (@tls_global_dynamic_64_<mode>):
14598 Rename from tls_global_dynamic_64_<mode>.
14599 (@tls_local_dynamic_base_64_<mode>): Rename from
14600 tls_local_dynamic_base_64_<mode>.
14601 * config/i386/i386.c (*ix86_gen_tls_global_dynamic_64):
14602 Remove indirect function.
14603 (*ix86_gen_tls_local_dynamic_base_64): Ditto.
14604 (legitimize_tls_address): Use gen_tls_global_dynamic_64 function
14605 instead of ix86_gen_tls_global_dynamic_64.
14606 Use gen_tls_local_dynamic_base_64 instead of
14607 ix86_gen_tls_local_dynamic_base_64.
14608 * config/i386/i386-options.c (ix86_option_override_internal):
14609 Do not initialize ix86_gen_tls_global_dynamic_64 and
14610 ix86_gen_tls_local_dynamic_base_64.
14612 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
14614 * config/i386/i386.md (@pro_epilogue_adjust_stack_add_<mode>)
14615 Rename from pro_epilogue_adjust_stack_<mode>_add.
14616 (@pro_epilogue_adjust_stack_sub_<mode>)
14617 Rename from pro_epilogue_adjust_stack_<mode>_sub.
14618 (@allocate_stack_worker_probe_<mode>):
14619 Rename from allocate_stack_worker_probe_<mode>.
14620 (allocate_stack): Use gen_allocate_stack_worker_probe.
14621 (probe_stack): Use gen_probe_stack_1.
14622 (@probe_stack_1_<mode>): Rename from probe_stack_<mode>.
14623 (@adjust_stack_and_probe_<mode>): Rename from
14624 adjust_stack_and_probe<mode>.
14625 (@probe_stack_range_<mode>): Rename from probe_stack_range<mode>.
14626 (stack_protect_set): Use gen_stack_protect_set_1.
14627 (@stack_protect_set_1_<mode>): Rename from stack_protect_set_<mode>.
14628 (stack_protect_test): Use gen_stack_protect_test_1.
14629 (@stack_protect_test_1_<mode>): Rename from stack_protect_test_<mode>.
14630 * config/i386/i386.c (*ix86_gen_allocate_stack_worker):
14631 Remove indirect function.
14632 (*ix86_gen_adjust_stack_and_probe): Ditto.
14633 (*ix86_gen_probe_stack_range): Ditto.
14634 (pro_epilogue_adjust_stack): Use gen_pro_epilogue_adjust_stack_add
14635 instead of gen_pro_epilogue_adjust_stack_{si,di}_add.
14636 (ix86_adjust_stack_and_probe_stack_clash): Use
14637 gen_adjust_stack_and_probe instead of ix86_gen_adjust_stack_and_probe.
14638 (ix86_adjust_stack_and_probe): Ditto.
14639 (ix86_emit_probe_stack_range): Use gen_probe_stack_range instead
14640 of ix86_gen_probe_stack_range.
14641 (ix86_expand_prologue): Use gen_pro_epilogue_adjust_stack_sub
14642 instead of gen_pro_epilogue_adjust_stack_{si,di}_sub.
14643 * config/i386/x86-tune-sched.c (ix86_macro_fusion_pair_p):
14644 Include insn-opinit.h. Use code_for_stack_protect_test_1 instead of
14645 CODE_FOR_stack_protect_test_{si,di}.
14646 * config/i386/i386-options.c (ix86_option_override_internal):
14647 Do not initialize ix86_gen_allocate_stack_worker,
14648 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
14650 2019-05-26 Gerald Pfeifer <gerald@pfeifer.com>
14652 * doc/invoke.texi (Link Options): Many editorial changes around
14655 2019-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14657 * doc/invoke.texi (x86 Options, -mvect8-ret-in-mem): Remove
14658 pre-Solaris 11 referene and most Studio compiler details.
14660 2019-05-24 John David Anglin <danglin@gcc.gnu.org>
14663 * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from
14664 DImode to SImode in floating-point registers on 64-bit target.
14665 * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
14666 register_operand in xmpyu patterns.
14668 2019-05-24 Jakub Jelinek <jakub@redhat.com>
14670 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_.
14671 * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__CONDTEMP_ instead of
14672 OMP_CLAUSE__REDUCTEMP_.
14673 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
14674 OMP_CLAUSE__CONDTEMP_.
14675 (walk_tree_1): Handle OMP_CLAUSE__CONDTEMP_.
14676 * tree-pretty-print.c (dump_omp_clause): Likewise.
14677 * tree-nested.c (convert_nonlocal_omp_clauses,
14678 convert_local_omp_clauses): Likewise.
14679 * gimplify.c (enum gimplify_omp_var_data): Use hexadecimal constants
14680 instead of decimal. Add GOVD_LASTPRIVATE_CONDITIONAL.
14681 (gimplify_scan_omp_clauses): Don't reject lastprivate conditional
14683 (gimplify_omp_for): Warn and disable conditional modifier from
14684 lastprivate on loop iterators.
14685 * omp-general.h (struct omp_for_data): Add lastprivate_conditional
14687 * omp-general.c (omp_extract_for_data): Initialize it.
14688 * omp-low.c (struct omp_context): Add lastprivate_conditional_map
14690 (delete_omp_context): Delete it.
14691 (lower_lastprivate_conditional_clauses): New function.
14692 (lower_lastprivate_clauses): Add BODY_P and CSTMT_LIST arguments,
14693 handle lastprivate conditional clauses.
14694 (lower_reduction_clauses): Add CLIST argument, emit it into
14695 the critical section if any.
14696 (lower_omp_sections): Adjust lower_lastprivate_clauses and
14697 lower_reduction_clauses callers.
14698 (lower_omp_for_lastprivate): Add CLIST argument, pass it through
14699 to lower_lastprivate_clauses.
14700 (lower_omp_for): Call lower_lastprivate_conditional_clauses, adjust
14701 lower_omp_for_lastprivate and lower_reduction_clauses callers, emit
14702 clist into a critical section if not emitted there already by
14703 lower_reduction_clauses.
14704 (lower_omp_taskreg, lower_omp_teams): Adjust lower_reduction_clauses
14706 (lower_omp_1): Handle GIMPLE_ASSIGNs storing into lastprivate
14707 conditional variables.
14708 * omp-expand.c (determine_parallel_type): Punt if OMP_CLAUSE__CONDTEMP_
14710 (expand_omp_for_generic, expand_omp_for_static_nochunk,
14711 expand_omp_for_static_chunk): Handle lastprivate conditional.
14712 (expand_omp_for): Handle fd.lastprivate_conditional like
14715 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
14717 * config/gcn/gcn-run.c (main): Set a non-zero return value if the
14718 kernel does not exit cleanly.
14719 * config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb.
14721 2019-05-24 Jason Merrill <jason@redhat.com>
14724 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
14726 2019-05-24 Richard Biener <rguenther@suse.de>
14729 * tree-loop-distribution.c (struct partition): Add location
14731 (partition_alloc): Initialize all fields.
14732 (generate_memset_builtin): Use the location recorded in the
14733 partition for the generated call.
14734 (generate_memcpy_builtin): Likewise.
14735 (classify_partition): Record the location of a single store
14736 as location for the partition.
14738 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
14740 * config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry
14743 2019-05-24 Matthew Malcomson <matthew.malcomson@arm.com>
14746 * common/config/aarch64/aarch64-common.c
14747 (aarch64_rewrite_selected_cpu): Change local temporary variable
14748 type from unsigned long to uint64_t.
14749 * config/aarch64/aarch64-protos.h (aarch64_parse_extension,
14750 aarch64_get_extension_string_for_isa_flags): Change declaration to
14751 match new definition by replacing unsigned long with uint64_t.
14753 2019-05-24 Jakub Jelinek <jakub@redhat.com>
14756 * config/i386/x86-tune-sched.c (ix86_macro_funsion_pair_p): Call
14757 gen_attr_type just once instead of 4-7 times. Formatting fixes.
14758 Handle stack_protect_test_<mode> codegen similarly to corresponding
14761 2019-05-23 Iain Sandoe <iain@sandoe.co.uk>
14763 * config/i386/darwin.h: Reject -mfentry*.
14764 * doc/sourcebuild.texi: Document mfentry target support.
14766 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
14768 * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p):
14769 Rename to rs6000_global_entry_point_prologue_needed_p. Return
14770 false for PC-relative functions.
14771 (rs6000_output_function_prologue): Change called function name to
14772 rs6000_global_entry_point_prologue_needed_p. Emit ".localentry
14773 name,1" for PC-relative functions.
14774 (rs6000_elf_declare_function_name): Change called function name to
14775 rs6000_global_entry_point_prologue_needed_p.
14777 2019-05-23 Uroš Bizjak <ubizjak@gmail.com>
14780 * config/i386/i386.c (gen_rtx_cost):
14781 Use ix86_tune_cost instead of ix86_cost.
14783 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
14784 Michael Meissner <meissner@linux.ibm.com>
14785 Segher Boessenkool <segher@kernel.crashing.org>
14787 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add
14789 (POWERPC_MASKS): Add OPTION_MASK_PCREL.
14790 * config/rs6000/rs6000-protos.h (rs6000_pcrel_p): New prototype.
14791 (rs6000_fndecl_pcrel_p): Likewise.
14792 * config/rs6000/rs6000.c (rs6000_option_override_internal): Report
14793 error if -mpcrel is requested without -mcpu=future.
14794 (rs6000_opt_masks): Add entry for pcrel.
14795 (rs6000_fndecl_pcrel_p): New function.
14796 (rs6000_pcrel_p): Likewise.
14797 * config/rs6000/rs6000.opt (mpcrel): New option.
14798 * doc/invoke.texi: Document -mpcrel and -mno-pcrel.
14800 2019-05-23 Jan Hubicka <jh@suse.cz>
14801 Martin Liska <mliska@suse.cz>
14803 PR tree-optimization/90576
14804 * tree-ssa-alias.c (compare_sizes): Remove dead calls to
14806 (aliasing_component_refs_p): Fix three way size compare conditional;
14807 give up earlier in case we can not decide on equivalence.
14809 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
14810 Michael Meissner <meissner@linux.ibm.com>
14811 Segher Boessenkool <segher@kernel.crashing.org>
14813 * config.gcc: Add future cpu.
14814 * config/rs6000/driver-rs6000.c (asm_names): Add future cpu.
14815 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): New
14817 (POWERPC_MASKS): Add OPTION_MASK_FUTURE.
14818 (RS6000_CPU): New instantiation for future cpu.
14819 * config/rs6000/rs6000-opts.h (enum processor_type): Add
14821 * config/rs6000/rs6000-string.c (expand_compare_loop): Treat
14822 PROCESSOR_FUTURE like PROCESSOR_POWER9 for now.
14823 * config/rs6000/rs6000-tables.opt: Regenerate.
14824 * config/rs6000/rs6000.c (rs6000_option_override_internal): Treat
14825 PROCESSOR_FUTURE similarly to PROCESSOR_POWER9 for now.
14826 (rs6000_machine_from_flags): Handle future cpu.
14827 (rs6000_reassociation_width): Treat PROCESSOR_FUTURE like
14828 PROCESSOR_POWER9 for now.
14829 (rs6000_adjust_cost): Likewise.
14830 (rs6000_issue_rate): Likewise.
14831 (rs6000_register_move_cost): Likewise.
14832 (rs6000_opt_masks): Add entry for future.
14833 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add future cpu.
14834 (MASK_FUTURE): New #define.
14835 * config/rs6000/rs6000.md (define_attr "cpu"): Add future cpu.
14836 * config/rs6000/rs6000.opt (mfuture): New target option.
14837 * doc/invoke.texi (mcpu): Add future cpu.
14839 2019-05-23 Martin Liska <mliska@suse.cz>
14842 * tree-ssa-uninit.c (value_sat_pred_p): The result of &
14843 operation points to a temporary (pointed via tree_to_wide_ref)
14844 that is out of scope after the &.
14846 2019-05-23 Jonathan Wakely <jwakely@redhat.com>
14849 * doc/extend.texi (Function Names): Add missing word.
14851 2019-05-23 Richard Biener <rguenther@suse.de>
14853 PR tree-optimization/88440
14854 * opts.c (default_options_table): Enable -ftree-loop-distribute-patterns
14856 * tree-loop-distribution.c (generate_memset_builtin): Fold the
14858 (generate_memcpy_builtin): Likewise.
14859 (distribute_loop): Pass in whether to only distribute patterns.
14860 (prepare_perfect_loop_nest): Also allow size optimization.
14861 (pass_loop_distribution::execute): When optimizing a loop
14862 nest for size allow pattern replacement.
14864 2019-05-23 Jakub Jelinek <jakub@redhat.com>
14867 * config/i386/i386.md (stack_protect_test_<mode>): Use sub instead
14870 2019-05-23 Martin Liska <mliska@suse.cz>
14873 * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
14874 expression similarly to gimplify_decl_expr.
14876 2019-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
14878 * cse.c (cse_dump_path): s/dump_file/f.
14880 2019-05-22 David Malcolm <dmalcolm@redhat.com>
14883 * diagnostic-format-json.cc: Include "selftest.h".
14884 (json_from_expanded_location): Only add "file" key for non-NULL
14886 (json_from_location_range): Don't add "start" and "finish"
14887 children if they are UNKNOWN_LOCATION.
14888 (selftest::test_unknown_location): New selftest.
14889 (selftest::test_bad_endpoints): New selftest.
14890 (selftest::diagnostic_format_json_cc_tests): New function.
14891 * json.cc (json::object::get): New function.
14892 (selftest::test_object_get): New selftest.
14893 (selftest::json_cc_tests): Call it.
14894 * json.h (json::object::get): New decl.
14895 * selftest-run-tests.c (selftest::run_tests): Call
14896 selftest::diagnostic_format_json_cc_tests.
14897 * selftest.h (selftest::diagnostic_format_json_cc_tests): New
14900 2019-05-22 Kwok Cheung Yeung <kcy@codesourcery.com>
14901 Andrew Stubbs <amd@codesourcery.com>
14903 * config.gcc (gcc_cv_initfini_array): Set for AMD GCN.
14904 * config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New.
14905 (kernel): Rename to...
14906 (main_kernel): ... this.
14907 (load_image): Load _init_array and _fini_array kernels.
14908 (run): Add argument for kernel to run.
14909 (main): Run init_array_kernel before main_kernel, and
14910 fini_array_kernel after.
14911 * config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow
14912 amdgpu_hsa_kernel attribute on functions.
14913 (gcn_disable_constructors): Delete.
14914 (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete.
14915 * config/gcn/crt0.c (size_t): Define.
14916 (_init_array, _fini_array): New.
14917 (__preinit_array_start, __preinit_array_end,
14918 __init_array_start, __init_array_end,
14919 __fini_array_start, __fini_array_end): Declare weak references.
14921 2019-05-22 Andrew Stubbs <ams@codesourcery.com>
14923 * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5.
14925 2019-05-22 Jason Merrill <jason@redhat.com>
14927 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
14929 2019-05-22 H.J. Lu <hongjiu.lu@intel.com>
14932 * config/i386/i386-options.c (ix86_init_machine_status): Set
14933 stack_frame_required to true.
14934 * config/i386/i386.c (ix86_get_frame_size): New function.
14935 (ix86_frame_pointer_required): Replace get_frame_size with
14936 ix86_get_frame_size.
14937 (ix86_compute_frame_layout): Likewise.
14938 (ix86_find_max_used_stack_alignment): Changed to void. Set
14939 stack_frame_required.
14940 (ix86_finalize_stack_frame_flags): Always call
14941 ix86_find_max_used_stack_alignment. Replace get_frame_size with
14942 ix86_get_frame_size.
14943 * config/i386/i386.h (machine_function): Add stack_frame_required.
14945 2019-05-22 Uroš Bizjak <ubizjak@gmail.com>
14947 * config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition.
14949 2019-05-22 Matthew Malcomson <matthew.malcomson@arm.com>
14951 * common/config/aarch64/aarch64-common.c
14952 (struct aarch64_option_extension, struct processor_name_to_arch,
14953 struct arch_to_arch_name, aarch64_parse_extension, opt_ext_cmp,
14954 aarch64_contains_opt,
14955 aarch64_get_extension_string_for_isa_flags): Change type of
14956 variables storing flags to uint64_t.
14957 * config/aarch64/aarch64-option-extensions.def (sve2, sve2-sm4,
14958 sve2-aes, sve2-sha3, bitperm): New optional SVE2 extension flags.
14959 * config/aarch64/aarch64.c (struct processor,
14960 aarch64_parse_arch, aarch64_parse_cpu, aarch64_validate_mcpu,
14961 aarch64_validate_march, aarch64_override_options,
14962 aarch64_option_print, aarch64_handle_attr_isa_flags,
14963 aarch64_declare_function_name, aarch64_start_file): Make flag
14964 variables uint64_t.
14965 * config/aarch64/aarch64.h (AARCH64_FL_SVE2, AARCH64_FL_SVE2_AES,
14966 AARCH64_FL_SVE2_SM4, AARCH64_FL_SVE2_SHA3,
14967 AARCH64_FL_SVE2_BITPERM): New macro feature flags.
14968 * config/aarch64/aarch64.opt (aarch64_isa_flags): Make uint64_t.
14969 * config/aarch64/driver-aarch64.c
14970 (struct aarch64_arch_extension, struct aarch64_core_data,
14971 struct aarch64_arch_driver_info, host_detect_local_cpu): Make
14972 flag variables uint64_t.
14973 * doc/invoke.texi: Add documentation for new arguments.
14975 2019-05-22 Richard Biener <rguenther@suse.de>
14977 * alias.c (ao_ref_from_mem): Move stack-slot sharing
14979 * emit-rtl.c (set_mem_attributes_minus_bitpos): ... here.
14981 2019-05-22 Martin Liska <mliska@suse.cz>
14984 * doc/extend.texi: Document the change.
14986 2019-05-22 Richard Biener <rguenther@suse.de>
14988 PR tree-optimization/90450
14989 * tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed.
14990 (mem_ref_hasher::equal): Check it.
14991 (mem_ref_alloc): Initialize it.
14992 (gather_mem_refs_stmt): Set it.
14994 2019-05-22 Richard Biener <rguenther@suse.de>
14996 * gimple-fold.c (arith_code_with_undefined_signed_overflow):
14998 (rewrite_to_defined_overflow): Handle rewriting ABS_EXPR
15001 2019-05-22 Alan Modra <amodra@gmail.com>
15003 * config/rs6000/rs6000.h (ASM_OPT_ANY): Define.
15004 (ASM_CPU_SPEC): Conditionally add -many.
15005 * config/rs6000/rs6000.c (rs6000_machine): New static var.
15006 (rs6000_machine_from_flags, emit_asm_machine): New functions..
15007 (rs6000_file_start): ..extracted from here, and modified to
15009 (rs6000_output_function_prologue): Emit .machine as necessary.
15011 2019-05-22 Hans-Peter Nilsson <hp@axis.com>
15013 PR middle-end/90553
15014 * ira-lives.c (process_bb_node_lives): Consider defs
15015 for a call insn to be die before the call, not after.
15017 * function.c (assign_parm_setup_block): Raise alignment of
15018 stacked parameter only for STRICT_ALIGNMENT targets.
15020 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
15022 * config/rs6000/constraints.md (define_register_constraint "wz"):
15024 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
15025 RS6000_CONSTRAINT_wz.
15026 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
15027 (rs6000_init_hard_regno_mode_ok): Adjust.
15028 * config/rs6000/rs6000.md: Replace "wz" constraint by "d" with "p7".
15029 * doc/md.texi (Machine Constraints): Adjust.
15031 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
15033 * config/rs6000/constraints.md (define_register_constraint "wl"):
15035 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
15036 RS6000_CONSTRAINT_wl.
15037 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
15038 (rs6000_init_hard_regno_mode_ok): Adjust.
15039 * config/rs6000/rs6000.md: Replace "wl" constraint by "d" with "p6".
15040 * doc/md.texi (Machine Constraints): Adjust.
15042 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
15044 * config/rs6000/constraints.md (define_register_constraint "wm"):
15046 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
15047 RS6000_CONSTRAINT_wm.
15048 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
15049 (rs6000_init_hard_regno_mode_ok): Adjust.
15050 * config/rs6000/vsx.md: Replace "wm" constraint by "wa" with "p8v".
15051 * doc/md.texi (Machine Constraints): Adjust.
15053 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
15055 * config/rs6000/constraints.md (define_register_constraint "wk"):
15057 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
15058 RS6000_CONSTRAINT_wk.
15059 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
15060 (rs6000_init_hard_regno_mode_ok): Adjust.
15061 * config/rs6000/rs6000.md: Replace "wk" constraint by "ws" with "p8v".
15062 * doc/md.texi (Machine Constraints): Adjust.
15064 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
15066 * config/rs6000/constraints.md (define_register_constraint "wj"):
15068 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
15069 RS6000_CONSTRAINT_wj.
15070 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
15071 (rs6000_init_hard_regno_mode_ok): Adjust.
15072 * config/rs6000/rs6000.md: Replace "wj" constraint by "wi" with "p8v".
15074 * config/rs6000/vsx.md: Ditto.
15075 * doc/md.texi (Machine Constraints): Adjust.
15077 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
15079 * config/rs6000/constraints.md (define_register_constraint "wh"):
15081 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
15082 RS6000_CONSTRAINT_wh.
15083 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
15084 (rs6000_init_hard_regno_mode_ok): Adjust.
15085 * config/rs6000/rs6000.md: Replace "wh" constraint by "wa" with "p8v".
15086 * doc/md.texi (Machine Constraints): Adjust.
15088 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
15091 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
15092 Avoid calling gen_lowpart with CONST operand.
15094 2019-05-21 Alexandre Oliva <aoliva@redhat.com>
15096 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add
15097 field template_last_to_copy.
15098 (ssa_create_duplicates): Set it, and use it. Attempt to
15099 preserve more debug stmts.
15101 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
15103 * config/i386/sse.md (VF1_AVX2): New mode iterator.
15104 (signbit<mode>2): New expander
15106 2019-05-21 James Clarke <jrtc27@jrtc27.com>
15109 * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
15110 instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.
15112 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
15114 * config/i386/cpuid.h (__cpuid): For 32bit targets, zero
15115 %ebx and %ecx bafore calling cpuid with leaf 1 or
15116 non-constant leaf argument.
15118 2019-05-21 Alan Modra <amodra@gmail.com>
15121 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase
15122 power9 direct move cost.
15124 2019-05-21 Richard Biener <rguenther@suse.de>
15126 PR middle-end/90510
15127 * fold-const.c (fold_read_from_vector): New function.
15128 * fold-const.h (fold_read_from_vector): Declare.
15129 * match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for
15130 single-element insert permutations. Canonicalize selector
15131 further and fix issue with last commit.
15133 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
15135 * tree-cfg.h (split_critical_edges): Add for_edge_insertion_p
15136 parameter with default value false to declaration.
15137 (split_edges_for_insertion): New inline function. Wrapper for
15138 split_critical_edges with for_edge_insertion_p = true.
15139 * tree-cfg.c (split_critical_edges): Don't split non-critical
15140 edges if for_edge_insertion_p is false. Fix whitespace.
15141 * tree-ssa-pre.c (pass_pre::execute): Call
15142 split_edges_for_insertion instead of split_critical_edges.
15143 * tree-ssa-tail-merge.c (tail_merge_optimize): Ditto.
15144 * tree-ssa-sink.c (pass_sink_code::execute): Ditto.
15145 (pass_data_sink_code): Update function name in the comment.
15147 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
15149 * tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper
15150 around is_value_included_in that knows how to handle BIT_AND_EXPR.
15151 (is_pred_expr_subset_of): Use the new function. Handle more cases where
15152 code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false
15155 2019-05-21 Martin Liska <mliska@suse.cz>
15157 * config/rs6000/driver-rs6000.c (elf_platform): Do not use
15159 * config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>.
15160 (altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and
15162 * config/rs6000/rs6000.c (rs6000_option_override_internal):
15164 (rs6000_function_arg): Likewise.
15165 (rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot.
15166 (rs6000_expand_ternop_builtin): Use interval syntax.
15167 (get_element_number): Likewise.
15168 (altivec_expand_builtin): Likewise.
15169 (rs6000_get_function_versions_dispatcher): Quote target_clones.
15171 2019-05-20 Jakub Jelinek <jakub@redhat.com>
15175 * function.h (struct function): Add calls_eh_return member.
15176 * gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when
15177 gimplifying __builtin_eh_return call.
15178 * tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun
15180 (expand_call_inline): Or in src_cfun->calls_eh_return into
15181 dst_cfun->calls_eh_return.
15182 * tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if
15183 cfun->calls_eh_return.
15184 * lto-streamer-in.c (input_struct_function_base): Read calls_eh_return.
15185 * lto-streamer-out.c (output_struct_function_base): Write
15188 2019-05-20 Marc Glisse <marc.glisse@inria.fr>
15190 PR rtl-optimization/43147
15191 * config/i386/i386.c (ix86_gimple_fold_builtin): Handle
15192 IX86_BUILTIN_SHUFPD.
15194 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
15196 * tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
15197 (refs_may_alias_p_1): ... here; update stats.
15198 (refs_may_alias_p): Do not update stats here.
15200 2019-05-20 Richard Biener <rguenther@suse.de>
15202 * tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR
15203 doesn't produce pointers.
15204 {TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what
15205 the first operand points to.
15207 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
15209 * tree-ssa-alias.c (compare_sizes): New function.
15210 (sompare_type_sizes): New function
15211 (aliasing_component_refs_p): Use it.
15212 (indirect_ref_may_alias_decl_p): Likewise.
15214 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15216 * config/i386/sol2.h (CC1_SPEC): Reject -mx32.
15218 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15220 * config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e.
15221 (LIBLSAN_EARLY_SPEC): Likewise.
15222 * config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise.
15224 2019-05-20 Martin Liska <mliska@suse.cz>
15226 * config/i386/i386.c (ix86_libc_has_fast_function):
15227 Add ATTRIBUTE_UNUSED for the argument.
15229 2019-05-20 Richard Biener <rguenther@suse.de>
15231 * gimple-match-head.c: Include vec-perm-indices.h.
15232 * generic-match-head.c: Likewise.
15233 * fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h
15235 * fold-const.c (fold_vec_perm): Export.
15236 (fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR...
15237 (match.pd): ...here.
15239 2019-05-20 Jakub Jelinek <jakub@redhat.com>
15241 * cfgloop.h (struct loop): Add simdlen member.
15242 * cfgloopmanip.c (copy_loop_info): Copy simdlen as well.
15243 * omp-expand.c (expand_omp_simd): Set it if simdlen clause is present.
15244 * tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0
15245 as new argument to autovectorize_vector_sizes target hook. If
15246 loop->simdlen, pick up vector size where the vectorization factor
15247 is equal to loop->simd, and if there is none, fall back to the first
15249 (vect_transform_loop): Adjust autovectorize_vector_sizes target hook
15251 * omp-low.c (omp_clause_aligned_alignment): Likewise.
15252 * omp-general.c (omp_max_vf): Likewise.
15253 * optabs-query.c (can_vec_mask_load_store_p): Likewise.
15254 * tree-vect-slp.c (vect_slp_bb): Likewise.
15255 * target.def (autovectorize_vector_sizes): Add ALL argument and
15257 * doc/tm.texi: Adjust documentation.
15258 * targhooks.c (default_autovectorize_vector_sizes): Add bool argument.
15259 * targhooks.h (default_autovectorize_vector_sizes): Likewise.
15260 * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add
15262 * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise.
15263 * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise.
15264 * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise.
15265 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. If
15266 true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if
15267 preferred vector size is not 512-bit or 256-bit, just put those
15268 unpreferred ones last.
15270 2019-05-20 Martin Liska <mliska@suse.cz>
15272 * targhooks.c (default_libc_has_fast_function): New function.
15273 * targhooks.h (default_libc_has_fast_function): Likewise.
15275 2019-05-20 Martin Liska <mliska@suse.cz>
15277 PR middle-end/90263
15278 * builtins.c (expand_builtin_memory_copy_args): When having a
15279 target with fast mempcpy implementation do now use memcpy.
15280 * config/i386/i386.c (ix86_libc_has_fast_function): New.
15281 (TARGET_LIBC_HAS_FAST_FUNCTION): Likewise.
15282 * doc/tm.texi: Likewise.
15283 * doc/tm.texi.in: Likewise.
15285 * expr.c (emit_block_move_hints): Add 2 new arguments.
15286 * expr.h (emit_block_move_hints): Bail out when libcall
15287 to memcpy would be used.
15289 2019-05-20 Martin Liska <mliska@suse.cz>
15291 * profile-count.c: Add vertical spacing in order
15292 to separate functions.
15293 * profile-count.h: Likewise.
15295 2019-05-20 Martin Liska <mliska@suse.cz>
15297 * profile-count.h: Do not use full qualified
15299 * profile-count.c (profile_count::to_frequency): Likewise.
15301 2019-05-20 Martin Liska <mliska@suse.cz>
15303 * profile-count.h (enum profile_quality): Use capital letters
15304 for enum value names. Use the adjusted names.
15305 * profile-count.c: Use the adjusted names.
15307 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
15309 * config/rs6000/constraints.md (define_register_constraint "wH"):
15311 (define_register_constraint "wI"): Delete.
15312 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
15313 RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI.
15314 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
15315 (rs6000_init_hard_regno_mode_ok): Adjust.
15316 * config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v"
15317 resp. "d", or with "wa" as appropriate, all with "p8v".
15318 * config/rs6000/vsx.md: Ditto.
15319 * doc/md.texi (Machine Constraints): Adjust.
15321 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
15323 * config/rs6000/constraints.md (define_register_constraint "wy"):
15325 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
15326 RS6000_CONSTRAINT_wy.
15327 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
15328 (rs6000_init_hard_regno_mode_ok): Adjust.
15329 * config/rs6000/rs6000.md: Replace "wy" constraint by "wa" with "p8v".
15330 Use "<Fisa>" as "isa" in all alternatives that use "<Fv2>".
15331 (define_mode_attr Fisa): New.
15332 * config/rs6000/vsx.md: Replace "wy" constraint by "wa" with "p8v".
15333 * doc/md.texi (Machine Constraints): Adjust.
15335 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
15337 * config/rs6000/constraints.md (define_register_constraint "wu"):
15339 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
15340 RS6000_CONSTRAINT_wu.
15341 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
15342 (rs6000_init_hard_regno_mode_ok): Adjust.
15343 * config/rs6000/rs6000.md: Replace "wu" constraint by "v" or "wa",
15345 (define_mode_attr Fa): Delete.
15346 * config/rs6000/vsx.md: Ditto.
15347 * doc/md.texi (Machine Constraints): Adjust.
15349 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
15351 * config/rs6000/constraints.md (define_register_constraint "wJ"):
15353 (define_register_constraint "wK"): Delete.
15354 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
15355 RS6000_CONSTRAINT_wJ and RS6000_CONSTRAINT_wK.
15356 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
15357 (rs6000_init_hard_regno_mode_ok): Adjust.
15358 * config/rs6000/rs6000.md: Replace "wJ" constraint by "wI" with "p9v".
15359 Replace "wK" constraint by "wH" with "p9v".
15360 * config/rs6000/vsx.md: Ditto.
15361 * doc/md.texi (Machine Constraints): Adjust.
15363 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
15365 * config/rs6000/constraints.md (define_register_constraint "wb"):
15367 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
15368 RS6000_CONSTRAINT_wb.
15369 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
15370 (rs6000_init_hard_regno_mode_ok): Adjust.
15371 * config/rs6000/rs6000.md: Replace "wb" constraint by "v" with "p9v".
15372 * config/rs6000/vsx.md: Ditto.
15373 * doc/md.texi (Machine Constraints): Adjust.
15375 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
15377 * config/rs6000/constraints.md (define_register_constraint "wo"):
15379 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
15380 RS6000_CONSTRAINT_wo.
15381 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
15382 (rs6000_init_hard_regno_mode_ok): Adjust.
15383 * config/rs6000/rs6000.md: Replace "wo" constraint by "wa" with "p9v".
15384 * config/rs6000/altivec.md: Ditto.
15385 * doc/md.texi (Machine Constraints): Adjust.
15387 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
15389 * config/darwin-c.c (darwin_register_objc_includes): Do not
15390 prepend the sysroot when building gnu-runtime header search
15393 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
15395 * config/darwin.c (darwin_file_end): Use switch_to_section ()
15396 instead of direct output of the asm.
15398 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
15400 * config/rs6000/rs6000.c (restore_saved_cr): Change a boolean
15401 argument to be type bool (was int before).
15402 (rs6000_emit_epilogue): Simplify some code. Declare some variables
15403 at first use. Use type bool for some variables. Fix a theoretical
15404 eh_return bug for svr4.
15406 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
15408 * config/rs6000/rs6000.md (isa): New attribute.
15409 (enabled): New attribute.
15411 2019-05-17 Max Filippov <jcmvbkbc@gmail.com>
15413 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call
15414 assemble_start_function and assemble_end_function.
15416 2019-05-17 Thomas Schwinge <thomas@codesourcery.com>
15418 PR middle-end/89433
15419 * omp-general.c (oacc_verify_routine_clauses): Change formal
15420 parameters. Add checking if already marked with an OpenACC
15421 'routine' directive. Adjust all users.
15423 PR middle-end/89433
15424 * omp-general.c (oacc_build_routine_dims): Move some of its
15426 (oacc_verify_routine_clauses): ... this new function.
15427 * omp-general.h (oacc_verify_routine_clauses): New prototype.
15429 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
15431 * config/rs6000/rs6000.c (machopic_output_stub): Adjust the
15432 formating of picbase labels to match other ports.
15434 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
15436 * config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent
15437 in the generated code.
15439 2019-05-16 Martin Sebor <msebor@redhat.com>
15441 * builtins.c (expand_builtin_atomic_always_lock_free): Quote
15442 identifiers, keywords, operators, and types in diagnostics. Correct
15443 quoting, spelling, and sentence capitalization issues.
15444 (expand_builtin_atomic_is_lock_free): Same.
15445 (fold_builtin_next_arg): Same.
15446 * cfgexpand.c (expand_one_var): Same.
15447 (tree_conflicts_with_clobbers_p): Same.
15448 (expand_asm_stmt): Same.
15449 (verify_loop_structure): Same.
15450 * cgraphunit.c (process_function_and_variable_attributes): Same.
15451 * collect-utils.c (collect_execute): Same.
15452 * collect2.c (maybe_run_lto_and_relink): Same.
15453 (is_lto_object_file): Same.
15454 (scan_prog_file): Same.
15455 * convert.c (convert_to_real_1): Same.
15456 * dwarf2out.c (dwarf2out_begin_prologue): Same.
15457 * except.c (verify_eh_tree): Same.
15458 * gcc.c (execute): Same.
15459 (eval_spec_function): Same.
15460 (run_attempt): Same.
15461 (driver::set_up_specs): Same.
15462 (compare_debug_auxbase_opt_spec_function): Same.
15463 * gcov-tool.c (unlink_gcda_file): Same.
15465 (do_rewrite): Same.
15466 * gcse.c (gcse_or_cprop_is_too_expensive): Same.
15467 * gimplify.c (gimplify_asm_expr): Same.
15468 (gimplify_adjust_omp_clauses): Same.
15469 * hsa-gen.c (gen_hsa_addr_insns): Same.
15470 (gen_hsa_insns_for_load): Same.
15471 (gen_hsa_cmp_insn_from_gimple): Same.
15472 (gen_hsa_insns_for_operation_assignment): Same.
15473 (gen_get_level): Same.
15474 (gen_hsa_alloca): Same.
15475 (omp_simple_builtin::generate): Same.
15476 (gen_hsa_atomic_for_builtin): Same.
15477 (gen_hsa_insns_for_call): Same.
15478 * input.c (dump_location_info): Same.
15479 * ipa-devirt.c (compare_virtual_tables): Same.
15480 * ira.c (ira_setup_eliminable_regset): Same.
15481 * lra-assigns.c (lra_assign): Same.
15482 * lra-constraints.c (lra_constraints): Same.
15483 * lto-streamer-in.c (lto_input_mode_table): Same.
15484 * lto-wrapper.c (get_options_from_collect_gcc_options): Same.
15485 (merge_and_complain): Same.
15486 (compile_offload_image): Same.
15487 (compile_images_for_offload_targets): Same.
15488 (debug_objcopy): Same.
15491 * opts.c (print_specific_help): Same.
15492 (parse_no_sanitize_attribute): Same.
15493 (print_help): Same.
15494 (handle_param): Same.
15495 * plugin.c (add_new_plugin): Same.
15496 (parse_plugin_arg_opt): Same.
15497 (try_init_one_plugin): Same.
15498 * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords,
15499 operators, and types in diagnostics. Correct quoting and spelling
15501 * read-rtl-function.c (parse_edge_flag_token): Same.
15502 (function_reader::parse_enum_value): Same.
15503 * reg-stack.c (check_asm_stack_operands): Same.
15504 * regcprop.c (validate_value_data): Same.
15505 * sched-rgn.c (make_pass_sched_fusion): Same.
15506 * stmt.c (check_unique_operand_names): Same.
15507 * targhooks.c (default_target_option_pragma_parse): Same.
15508 * tlink.c (recompile_files): Same.
15509 * toplev.c (process_options): Same.
15510 (do_compile): Same.
15511 * trans-mem.c (diagnose_tm_1): Same.
15512 (ipa_tm_scan_irr_block): Same.
15513 (ipa_tm_diagnose_transaction): Same.
15514 * tree-cfg.c (verify_address): Same. Use get_tree_code_name to
15515 format a tree code name in a diagnostic.
15516 (verify_types_in_gimple_min_lval): Same.
15517 (verify_types_in_gimple_reference): Same.
15518 (verify_gimple_call): Same.
15519 (verify_gimple_assign_unary): Same.
15520 (verify_gimple_assign_binary): Same.
15521 (verify_gimple_assign_ternary): Same.
15522 (verify_gimple_assign_single): Same.
15523 (verify_gimple_switch): Same.
15524 (verify_gimple_label): Same.
15525 (verify_gimple_phi): Same.
15526 (verify_gimple_in_seq): Same.
15527 (verify_eh_throw_stmt_node): Same.
15528 (collect_subblocks): Same.
15529 (gimple_verify_flow_info): Same.
15530 (do_warn_unused_result): Same.
15531 * tree-inline.c (expand_call_inline): Same.
15532 * tree-into-ssa.c (update_ssa): Same.
15533 * tree.c (tree_int_cst_elt_check_failed): Same.
15534 (tree_vec_elt_check_failed): Same.
15535 (omp_clause_operand_check_failed): Same.
15536 (verify_type_variant): Same.
15537 (verify_type): Same.
15538 * value-prof.c (verify_histograms): Same.
15539 * varasm.c (assemble_start_function): Same.
15541 2019-05-16 Martin Sebor <msebor@redhat.com>
15543 * config/i386/i386-expand.c (get_element_number): Quote keywords
15544 and other internal names in diagnostics. Adjust other diagnostic
15545 formatting issues noted by -Wformat-diag.
15546 * config/i386/i386-features.c
15547 (ix86_mangle_function_version_assembler_name): Same.
15548 * config/i386/i386-options.c (ix86_handle_abi_attribute): Same.
15549 * config/i386/i386.c (ix86_function_type_abi): Same.
15550 (ix86_function_ms_hook_prologue): Same.
15551 (classify_argument): Same.
15552 (ix86_expand_prologue): Same.
15553 (ix86_md_asm_adjust): Same.
15554 (ix86_memmodel_check): Same.
15556 2019-05-17 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
15558 * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
15559 TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64
15562 2019-05-17 H.J. Lu <hongjiu.lu@intel.com>
15565 * config/i386/i386-expand.c (ix86_expand_builtin): Enable MMX
15566 intrinsics without SSE/SSE2/SSSE3.
15567 * config/i386/mmx.md (mmx_uavgv8qi3): Restore TARGET_3DNOW
15569 (*mmx_uavgv8qi3): Likewise.
15571 2019-05-17 Richard Biener <rguenther@suse.de>
15573 * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping
15574 VEC_PERM_EXPR as __VEC_PERM with -gimple.
15576 2019-05-17 Andreas Krebbel <krebbel@linux.ibm.com>
15578 * config/s390/s390-builtins.def (s390_vec_sldw_*): Use the
15579 vec_sldw insn pattern.
15581 2019-05-17 Richard Biener <rguenther@suse.de>
15583 * ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree.
15585 2019-05-17 Martin Liska <mliska@suse.cz>
15588 * toplev.c (output_stack_usage): With LTO and sanitizer it
15589 happens that a global ctor (_GLOBAL__sub_I_00099_0_main)
15590 has no file location.
15592 2019-05-16 Jakub Jelinek <jakub@redhat.com>
15595 * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that
15596 sz0 is equal to sz1, instead return false in that case.
15598 * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF
15599 has non-constant expression, force sctx.lane and use two
15600 argument IFN_GOMP_SIMD_LANE instead of single argument.
15601 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE
15602 two argument IFN_GOMP_SIMD_LANE without lhs.
15603 * tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond
15605 (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND):
15607 (LOOP_REQUIRES_VERSIONING): Or in
15608 LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND.
15609 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
15611 (vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0.
15612 * tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check
15613 from simd if clause if needed.
15615 2019-05-16 Richard Biener <rguenther@suse.de>
15617 * tree-affine.c (expr_to_aff_combination): New function split
15619 (tree_to_aff_combination): ... here.
15620 (aff_combination_expand): Avoid building a GENERIC tree.
15622 2019-05-16 Max Filippov <jcmvbkbc@gmail.com>
15624 * cgraphunit.c (cgraph_node::expand_thunk): Remove
15625 assemble_start_function and assemble_end_function calls.
15626 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call
15627 assemble_start_function and assemble_end_function.
15628 * config/arc/arc.c (arc_output_mi_thunk): Likewise.
15629 * config/arm/arm.c (arm_output_mi_thunk): Likewise.
15630 * config/bfin/bfin.c (bfin_output_mi_thunk): Likewise.
15631 * config/c6x/c6x.c (c6x_output_mi_thunk): Likewise.
15632 * config/cris/cris.c (cris_asm_output_mi_thunk): Likewise.
15633 * config/csky/csky.c (csky_output_mi_thunk): Likewise.
15634 * config/epiphany/epiphany.c (epiphany_output_mi_thunk): Likewise.
15635 * config/frv/frv.c (frv_asm_output_mi_thunk): Likewise.
15636 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
15637 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
15638 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
15639 * config/microblaze/microblaze.c (microblaze_asm_output_mi_thunk):
15641 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
15642 * config/mmix/mmix.c (mmix_asm_output_mi_thunk): Likewise.
15643 * config/mn10300/mn10300.c (mn10300_asm_output_mi_thunk): Likewise.
15644 * config/nds32/nds32.c (nds32_asm_output_mi_thunk): Likewise.
15645 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
15646 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
15647 * config/pa/pa.c (pa_asm_output_mi_thunk): Likewise.
15648 * config/riscv/riscv.c (riscv_output_mi_thunk): Likewise.
15649 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
15650 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
15651 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
15652 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
15653 * config/spu/spu.c (spu_output_mi_thunk): Likewise.
15654 * config/stormy16/stormy16.c (xstormy16_asm_output_mi_thunk):
15656 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
15657 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
15658 * config/vax/vax.c (vax_output_mi_thunk): Likewise.
15660 2019-05-16 Jan Hubicka <hubicka@ucw.cz>
15662 * tree-ssa-alias.c (alias_stats): Add
15663 aliasing_component_refs_p_may_alias and
15664 aliasing_component_refs_p_no_alias.
15665 (dump_alias_stats): Print aliasing_component_refs_p stats.
15666 (aliasing_component_refs_p): Update stats.
15668 2019-05-16 Martin Liska <mliska@suse.cz>
15671 * multiple_target.c (expand_target_clones): Do not allow
15672 target_clones being used with a symbol that is an alias.
15674 2019-05-16 Vladislav Ivanishin <vlad@ispras.ru>
15676 PR tree-optimization/90394
15677 * tree-ssa-uninit.c (is_pred_expr_subset_of): Potentially give false
15678 positives rather than ICE for cases where (code2 == NE_EXPR
15679 && code1 == BIT_AND_EXPR).
15681 2019-05-16 Jakub Jelinek <jakub@redhat.com>
15684 * tree-core.h (struct tree_decl_common): Document
15685 decl_nonshareable_flag for PARM_DECLs.
15686 * tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
15687 * calls.c (expand_call): Don't try tail call if caller
15688 has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
15689 passed on the stack and callee needs to pass any arguments on the
15691 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
15692 else if instead of series of mutually exclusive ifs. Handle
15693 DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
15694 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
15696 * lto-streamer.h (LTO_major_version): Bump to 9.
15698 2019-05-16 Jun Ma <JunMa@linux.alibaba.com>
15700 PR tree-optimization/90106
15701 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): Add
15702 new parameter as new internal function call, also move it to new
15704 (use_internal_fn): Pass internal function call to
15705 shrink_wrap_one_built_in_call_with_conds.
15707 2019-05-15 Jakub Jelinek <jakub@redhat.com>
15709 * omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set
15711 * omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear
15712 safelen_int and set loop->dont_vectorize.
15714 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15717 * config/i386/i386-builtin.def: Enable MMX intrinsics with
15719 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
15721 * config/i386/i386-expand.c (ix86_expand_builtin): Allow
15722 SSE/SSE2/SSSE3 to emulate MMX intrinsics with TARGET_MMX_WITH_SSE.
15723 * config/i386/mmintrin.h: Only require SSE2 if __MMX_WITH_SSE__
15726 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15729 * config/i386/mmx.md (*vec_dupv2sf): Changed to
15730 define_insn_and_split to support SSE emulation.
15731 (*vec_extractv2sf_0): Likewise.
15732 (*vec_extractv2sf_1): Likewise.
15733 (*vec_extractv2si_0): Likewise.
15734 (*vec_extractv2si_1): Likewise.
15735 (*vec_extractv2si_zext_mem): Likewise.
15736 (vec_setv2sf): Also allow TARGET_MMX_WITH_SSE.
15737 (vec_extractv2sf_1 splitter): Likewise.
15738 (vec_extractv2sfsf): Likewise.
15739 (vec_setv2si): Likewise.
15740 (vec_extractv2si_1 splitter): Likewise.
15741 (vec_extractv2sisi): Likewise.
15742 (vec_setv4hi): Likewise.
15743 (vec_extractv4hihi): Likewise.
15744 (vec_setv8qi): Likewise.
15745 (vec_extractv8qiqi): Likewise.
15746 (vec_extractv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
15747 TARGET_MMX_WITH_SSE ix86_expand_vector_extract.
15748 (vec_extractv2sisi): Likewise.
15749 (vec_extractv4hihi): Likewise.
15750 (vec_extractv8qiqi): Likewise.
15751 (vec_initv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
15752 TARGET_MMX_WITH_SSE to ix86_expand_vector_init.
15753 (vec_initv2sisi): Likewise.
15754 (vec_initv4hihi): Likewise.
15755 (vec_initv8qiqi): Likewise.
15756 (vec_setv2si): Also allow TARGET_MMX_WITH_SSE. Pass
15757 TARGET_MMX_WITH_SSE to ix86_expand_vector_set.
15758 (vec_setv4hi): Likewise.
15759 (vec_setv8qi): Likewise.
15761 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15764 * config/i386/mmx.md (MMXMODE:mov<mode>): Also allow
15765 TARGET_MMX_WITH_SSE.
15766 (MMXMODE:*mov<mode>_internal): Likewise.
15767 (MMXMODE:movmisalign<mode>): Likewise.
15769 2019-05-15 Uroš Bizjak <ubizjak@gmail.com>
15772 * config/i386/i386.md (*zero_extendsidi2): Add mmx_isa attribute.
15773 * config/i386/sse.md (sse2_cvtpi2pd): Ditto.
15774 (sse2_cvtpd2pi): Ditto.
15775 (sse2_cvttpd2pi): Ditto.
15776 (*vec_concatv2sf_sse4_1): Ditto.
15777 (*vec_concatv2sf_sse): Ditto.
15778 (*vec_concatv2si_sse4_1): Ditto.
15779 (*vec_concatv2si): Ditto.
15780 (*vec_concatv4si_0): Ditto.
15781 (*vec_concatv2di_0): Ditto.
15783 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15786 * config/i386/sse.md (abs<mode>2): Add SSE emulation.
15788 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15791 * config/i386/sse.md (ssse3_palignrdi): Changed to
15792 define_insn_and_split to support SSE emulation.
15794 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15797 * config/i386/sse.md (ssse3_psign<mode>3): Add SSE emulation.
15799 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15802 * config/i386/sse.md (ssse3_pshufbv8qi3): Changed to
15803 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
15806 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15809 * config/i386/sse.md (ssse3_pmulhrswv4hi3): Require TARGET_MMX
15810 or TARGET_MMX_WITH_SSE.
15811 (*ssse3_pmulhrswv4hi3): Add SSE emulation.
15813 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15816 * config/i386/sse.md (ssse3_pmaddubsw): Add SSE emulation.
15818 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15821 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>dv2si3):
15822 Changed to define_insn_and_split to support SSE emulation.
15824 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15827 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
15828 Changed to define_insn_and_split to support SSE emulation.
15830 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15833 * config/i386/mmx.md (mmx_<emms>): Renamed to ...
15834 (*mmx_<emms>): This.
15835 (mmx_<emms>): New expander.
15837 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15840 * config/i386/mmx.md (sse2_umulv1siv1di3): Add SSE emulation
15842 (*sse2_umulv1siv1di3): Add SSE2 emulation.
15844 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15847 * config/i386/mmx.md (sse_movntq): Add SSE2 emulation.
15849 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15852 * config/i386/mmx.md (mmx_psadbw): Add SSE emulation.
15854 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15857 * config/i386/mmx.md (mmx_uavgv4hi3): Also check TARGET_MMX and
15858 TARGET_MMX_WITH_SSE.
15859 (*mmx_uavgv4hi3): Add SSE emulation.
15861 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15864 * config/i386/mmx.md (mmx_uavgv8qi3): Also check TARGET_MMX
15865 and TARGET_MMX_WITH_SSE.
15866 (*mmx_uavgv8qi3): Add SSE emulation.
15868 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15871 * config/i386/xmmintrin.h: Emulate MMX maskmovq with SSE2
15872 maskmovdqu for __MMX_WITH_SSE__.
15874 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15877 * config/i386/mmx.md (mmx_umulv4hi3_highpart): Also check
15878 TARGET_MMX and TARGET_MMX_WITH_SSE.
15879 (*mmx_umulv4hi3_highpart): Add SSE emulation.
15881 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15884 * config/i386/mmx.md (mmx_pmovmskb): Changed to
15885 define_insn_and_split to support SSE emulation.
15887 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15890 * config/i386/mmx.md (mmx_<code>v4hi3): Also check TARGET_MMX
15891 and TARGET_MMX_WITH_SSE.
15892 (mmx_<code>v8qi3): Likewise.
15893 (smaxmin:<code>v4hi3): New.
15894 (umaxmin:<code>v8qi3): Likewise.
15895 (smaxmin:*mmx_<code>v4hi3): Add SSE emulation.
15896 (umaxmin:*mmx_<code>v8qi3): Likewise.
15898 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15901 * config/i386/mmx.md (mmx_pinsrw): Also check TARGET_MMX and
15902 TARGET_MMX_WITH_SSE.
15903 (*mmx_pinsrw): Add SSE emulation.
15905 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15908 * config/i386/mmx.md (mmx_pextrw): Add SSE emulation.
15910 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15913 * config/i386/sse.md (sse_cvtpi2ps): Changed to
15914 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
15917 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15920 * config/i386/sse.md (sse_cvtps2pi): Add SSE emulation.
15921 (sse_cvttps2pi): Likewise.
15923 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15926 * config/i386/mmx.md (mmx_pshufw): Also check TARGET_MMX and
15927 TARGET_MMX_WITH_SSE.
15928 (mmx_pshufw_1): Add SSE emulation.
15929 (*vec_dupv4hi): Changed to define_insn_and_split and also allow
15930 TARGET_MMX_WITH_SSE to support SSE emulation.
15932 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15935 * config/i386/constraints.md (Yw): New constraint.
15936 * config/i386/mmx.md (*vec_dupv2si): Changed to
15937 define_insn_and_split and also allow TARGET_MMX_WITH_SSE to
15938 support SSE emulation.
15940 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15943 * config/i386/mmx.md (mmx_eq<mode>3): Also allow
15944 TARGET_MMX_WITH_SSE.
15945 (*mmx_eq<mode>3): Also allow TARGET_MMX_WITH_SSE. Add SSE
15947 (mmx_gt<mode>3): Likewise.
15949 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15952 * config/i386/mmx.md (mmx_andnot<mode>3): Also allow
15953 TARGET_MMX_WITH_SSE. Add SSE support.
15955 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15958 * config/i386/mmx.md (any_logic:mmx_<code><mode>3): Also allow
15959 TARGET_MMX_WITH_SSE.
15960 (any_logic:<code><mode>3): New.
15961 (any_logic:*mmx_<code><mode>3): Also allow TARGET_MMX_WITH_SSE.
15964 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15967 * config/i386/mmx.md (mmx_ashr<mode>3): Also allow
15968 TARGET_MMX_WITH_SSE. Add SSE emulation.
15969 (mmx_<shift_insn><mode>3): Likewise.
15970 (ashr<mode>3): New.
15971 (<shift_insn><mode>3): Likewise.
15973 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15976 * config/i386/mmx.md (mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE.
15977 (*mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE. Add SSE support.
15979 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15982 * config/i386/mmx.md (mmx_smulv4hi3_highpart): Also allow
15983 TARGET_MMX_WITH_SSE.
15984 (*mmx_smulv4hi3_highpart): Also allow TARGET_MMX_WITH_SSE. Add
15987 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15990 * config/i386/mmx.md (mmx_mulv4hi3): Also allow
15991 TARGET_MMX_WITH_SSE.
15993 (*mmx_mulv4hi3): Also allow TARGET_MMX_WITH_SSE. Add SSE
15996 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
15999 * config/i386/mmx.md (MMXMODEI8): Require TARGET_SSE2 for V1DI.
16000 (plusminus:mmx_<plusminus_insn><mode>3): Check
16001 TARGET_MMX_WITH_SSE.
16002 (sat_plusminus:mmx_<plusminus_insn><mode>3): Likewise.
16003 (<plusminus_insn><mode>3): New.
16004 (*mmx_<plusminus_insn><mode>3): Add SSE emulation.
16005 (*mmx_<plusminus_insn><mode>3): Likewise.
16007 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
16010 * config/i386/i386-expand.c (ix86_split_mmx_punpck): New function.
16011 * config/i386/i386-protos.h (ix86_split_mmx_punpck): New
16013 * config/i386/mmx.m (mmx_punpckhbw): Changed to
16014 define_insn_and_split to support SSE emulation.
16015 (mmx_punpcklbw): Likewise.
16016 (mmx_punpckhwd): Likewise.
16017 (mmx_punpcklwd): Likewise.
16018 (mmx_punpckhdq): Likewise.
16019 (mmx_punpckldq): Likewise.
16021 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
16022 Uros Bizjak <ubizjak@gmail.com>
16025 * config/i386/i386-expand.c (ix86_move_vector_high_sse_to_mmx):
16027 (ix86_split_mmx_pack): Likewise.
16028 * config/i386/i386-protos.h (ix86_move_vector_high_sse_to_mmx):
16030 (ix86_split_mmx_pack): Likewise.
16031 * config/i386/i386.md (mmx_isa): New.
16032 (enabled): Also check mmx_isa.
16033 * config/i386/mmx.md (any_s_truncate): New code iterator.
16034 (s_trunsuffix): New code attr.
16035 (mmx_packsswb): Removed.
16036 (mmx_packssdw): Likewise.
16037 (mmx_packuswb): Likewise.
16038 (mmx_pack<s_trunsuffix>swb): New define_insn_and_split to emulate
16039 MMX packsswb/packuswb with SSE2.
16040 (mmx_packssdw): Likewise.
16041 * config/i386/predicates.md (register_mmxmem_operand): New.
16043 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
16046 * config/i386/i386-c.c (ix86_target_macros_internal): Define
16047 __MMX_WITH_SSE__ for TARGET_MMX_WITH_SSE.
16048 * config/i386/i386.c (ix86_set_reg_reg_cost): Add support for
16049 TARGET_MMX_WITH_SSE with VALID_MMX_REG_MODE.
16050 (ix86_vector_mode_supported_p): Likewise.
16051 * config/i386/i386.h (TARGET_MMX_WITH_SSE): New.
16053 2019-05-15 Martin Liska <mliska@suse.cz>
16055 PR middle-end/90478
16056 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
16057 Check for overflow.
16059 2019-05-15 Richard Biener <rguenther@suse.de>
16061 * tree-into-ssa.c (pass_build_ssa::execute): Run
16062 update_address_taken before going into SSA.
16064 2019-05-15 Richard Biener <rguenther@suse.de>
16066 * tree-pretty-print.c (dump_generic_node): Dump BIT_FIELD_REF
16067 as __BIT_FIELD_REF with type with -gimple.
16069 2019-05-15 Vladislav Ivanishin <vlad@ispras.ru>
16071 * tree-ssa-uninit.c (is_value_included_in): Remove is_unsigned and merge
16072 semantically equivalent branches (left over after prior refactorings).
16074 2019-05-15 Richard Biener <rguenther@suse.de>
16076 PR tree-optimization/88828
16077 * tree-ssa-forwprop.c (simplify_vector_constructor): Fix
16080 2019-05-14 Richard Biener <rguenther@suse.de>
16082 * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR
16083 as __VIEW_CONVERT with -gimple.
16085 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
16088 * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
16091 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
16093 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Merge with following
16094 define_split to become a define_insn_and_split.
16096 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
16098 * config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change
16100 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Change arguments.
16101 * config/rs6000/rs6000.md (epilogue_type): New define_enum.
16102 (sibcall_epilogue): Adjust.
16103 (epilogue): Adjust.
16105 2019-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16107 * config.gcc: Move *-*-solaris2.10* from obsolete configurations
16108 to unsupported ones.
16109 Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*.
16110 * config.host: Likewise.
16111 * config/i386/sol2.h (ASM_COMMENT_START): Remove.
16112 * config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ &&
16113 __svr4__]: Remove "brand" fallback.
16114 [!KSTAT_DATA_STRING]: Remove.
16115 * configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]*
16117 (comdat_group): Likewise.
16118 (set_have_as_tls): Likewise.
16119 (gcc_cv_target_dl_iterate_phdr): Likewise.
16120 (gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround.
16121 (gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround.
16122 * configure: Regenerate.
16123 * doc/install.texi: Simplify Solaris target triplets.
16124 (Specific, i?86-*-solaris2*): Remove Solaris 10 references.
16125 (Specific, *-*-solaris2*): Document Solaris 10 removal.
16126 Remove Solaris 10 references.
16127 Remove obsolete Solaris bug reference.
16128 (Specific, sparc-sun-solaris2.10): Remove.
16130 2019-05-14 Uroš Bizjak <ubizjak@gmail.com>
16132 * config/i386/i386.md (any_div): New code iterator.
16133 (paired_mod): New code attribute.
16134 (sgnprefix): Handle DIV and UDIV RTXes.
16136 (<u>divmod<mode>4): Macroize expander from divmod<mode>4
16137 and udivmod<mode>4 patterns using any_div code iterator.
16138 (divmod splitters): Macroize splitters using any_div code iterator.
16139 (*udivmodsi4_pow2_zext_1): Use exactl_log2 in insn condition.
16140 (*udivmodsi4_pow2_zext_2): Ditto.
16141 (*<u>divmod<mode>4_noext): Macroize insn from *divmod<mode>4_noext
16142 and *udivmod<mode>4_noext patterns using any_div code iterator.
16143 (*<u>divmod<mode>4_noext_zext_1): Macroize insn from
16144 *divmod<mode>4_noext_zext_1 and *udivmod<mode>4_noext_zext_1
16145 patterns using any_div code iterator.
16146 (*<u>divmod<mode>4_noext_zext_2): Macroize insn from
16147 *divmod<mode>4_noext_zext_2 and *udivmod<mode>4_noext_zext_2
16148 patterns using any_div code iterator.
16149 (<u>divmodhiqi3): Macroize insn from divmodhiqi3 and
16150 udivmodhiqi3 patterns using any_extend code iterator.
16152 2019-05-14 Richard Biener <rguenther@suse.de>
16153 H.J. Lu <hongjiu.lu@intel.com>
16155 PR tree-optimization/88828
16156 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
16157 permuting in a single non-constant element not extracted
16160 2019-05-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
16162 * internal-fn.def (SIGNBIT): New.
16163 * config/aarch64/aarch64-simd.md (signbitv2sf2): New expand
16165 (signbitv4sf2): Likewise.
16167 2019-05-14 Chenghua Xu <paul.hua.gm@gmail.com>
16170 * config/mips/mips.c (mips_split_move): Skip forward SRC into
16171 next insn when the SRC reg is dead.
16173 2019-05-14 Bin Cheng <bin.cheng@linux.alibaba.com>
16175 * gimple-ssa-strength-reduction.c (lookup_cand): Adjust index by 1.
16176 (alloc_cand_and_find_basis): Ditto.
16177 (backtrace_base_for_ref, create_mul_ssa_cand): Remove if-then-else.
16178 (create_mul_imm_cand, create_add_ssa_cand): Ditto.
16179 (create_add_imm_cand, slsr_process_cast): Ditto.
16180 (slsr_process_copy, replace_mult_candidate): Ditto.
16181 (replace_rhs_if_not_dup, replace_one_candidate): Ditto.
16182 (dump_cand_vec, analyze_candidates_and_replace): Skip NULL element.
16183 (pass_strength_reduction::execute): Init the first NULL element.
16185 2019-05-13 Nathan Sidwell <nathan@acm.org>
16187 * gcc.c (execute): Simplify cond-expr into if. Reformat comment.
16188 (run_attempt): Reformat line break.
16190 2019-05-13 David Edelsohn <dje.gcc@gmail.com>
16193 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH
16194 data registers in sibcall epilogues.
16195 Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
16197 2019-05-13 Uroš Bizjak <ubizjak@gmail.com>
16200 * configure.ac (--enable-frame-pointer):
16201 Disable by default for cygwin and mingw.
16202 * configure: Regenerate.
16204 2019-05-13 Nathan Sidwell <nathan@acm.org>
16206 * dwarf2out.c (breakout_comdat_types): Move comment to correct
16208 (const_ok_for_output_1): Balance parens around #if/#else/#endif
16209 (gen_member_die): Move abstract origin check earlier. Only VARs
16210 can be static_inline_p. Simplify splicing control flow.
16212 2019-05-13 Richard Biener <rguenther@suse.de>
16214 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
16216 (vect_build_slp_tree_1): Likewise.
16218 2019-05-13 Richard Biener <rguenther@suse.de>
16220 PR tree-optimization/90402
16221 * tree-if-conv.c (tree_if_conversion): Value number only
16222 the loop body by making the latch an exit of the region
16224 * tree-ssa-sccvn.c (process_bb): Add flag whether to skip
16226 (do_rpo_vn): Deal with multiple edges into the entry block
16227 that are not backedges inside the region by skipping PHIs
16228 of the entry block.
16230 2019-05-13 Richard Biener <rguenther@suse.de>
16232 PR tree-optimization/90316
16233 * tree-ssa-pre.c (insert_aux): Fold into ...
16234 (insert): ... this function. Use a RPO walk to reduce the
16235 number of required iterations.
16237 2019-05-13 Martin Liska <mliska@suse.cz>
16239 PR tree-optimization/90416
16240 * tree-vect-stmts.c (vect_check_load_store_mask): Concatenate
16241 string instead of passing the second part as va_arg argument.
16243 2019-05-13 Martin Liska <mliska@suse.cz>
16245 PR gcov-profile/90380
16246 * gcov.c (handle_cycle): Do not support zero cycle count,
16247 it should not be possible.
16248 (path_contains_zero_cycle_arc): New function.
16249 (circuit): Ignore zero cycle arc counts.
16251 2019-05-13 Martin Liska <mliska@suse.cz>
16253 PR gcov-profile/90380
16254 * gcov.c (enum loop_type): Remove the enum and
16256 (handle_cycle): Assert that we should not reach
16258 (circuit): Use loop_found instead of a tri-state loop_type.
16259 (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't
16262 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
16265 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
16266 (ix86_output_indirect_branch_via_reg): Use output mechanism
16267 accounting for __USER_LABEL_PREFIX__.
16268 (ix86_output_indirect_branch_via_push): Likewise.
16269 (ix86_output_function_return): Likewise.
16270 (ix86_output_indirect_function_return): Likewise.
16272 2019-05-12 Richard Sandiford <richard.sandiford@arm.com>
16274 * doc/md.texi: Document use of code attributes in rtx patterns.
16275 * read-md.h (rtx_reader::rtx_alloc_for_name): New member function.
16276 * read-rtl.c (find_code): Split out search loops into...
16277 (maybe_find_code): ...this new function.
16278 (check_code_iterator): Make the error message more informative.
16279 (check_code_attribute): New function.
16280 (rtx_reader::rtx_alloc_for_name): Likewise.
16281 (rtx_reader::read_rtx_code): Use rtx_alloc_for_name.
16282 * config/aarch64/predicates.md (aarch64_smin, aarch64_umin): Delete.
16283 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Use
16284 <max_opp> directly as an rtx code instead of via a match_operator.
16285 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Likewise.
16286 (<su>abd<mode>_3): Update accordingly.
16288 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
16290 * config/rs6000/rs6000.c (debug_stack_info): When -mdebug=stack
16291 is given, print the state of the EH "save world" computation for
16294 2019-05-11 Jakub Jelinek <jakub@redhat.com>
16297 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add
16298 EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
16300 2019-05-11 Uroš Bizjak <ubizjak@gmail.com>
16302 * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm):
16303 Use pinsrd for TARGET_SSE4_1.
16304 * config/i386/sse.md (movdi_to_sse): Ditto.
16306 2019-05-10 Richard Biener <rguenther@suse.de>
16308 * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id.
16309 (do_rpo_vn): Initialize next_value_id.
16311 2019-05-10 Martin Liska <mliska@suse.cz>
16313 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
16316 2019-05-10 Jakub Jelinek <jakub@redhat.com>
16318 PR tree-optimization/90385
16319 * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME
16320 arguments of the exit phis.
16323 * tree-inline.h (struct copy_body_data): Add do_not_fold member.
16324 * tree-inline.c (remap_gimple_op_r): Avoid folding expressions if
16326 (copy_tree_body_r): Likewise.
16327 (copy_fn): Set id.do_not_fold to true.
16329 2019-05-10 Martin Liska <mliska@suse.cz>
16331 * config/i386/i386-expand.c (ix86_expand_floorceildf_32):
16332 Reapply changes from r269790.
16334 2019-05-10 Martin Liska <mliska@suse.cz>
16336 PR middle-end/90340
16337 * doc/invoke.texi: New params.
16338 * params.def (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SIZE): New.
16339 (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SPEED): Likewise.
16340 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
16342 * tree-switch-conversion.h (struct jump_table_cluster):
16345 2019-05-09 Segher Boessenkool <segher@kernel.crashing.org>
16347 * combine.c (combine_simplify_rtx): Don't make IF_THEN_ELSE RTL.
16349 2019-05-09 Bill Schmidt <wschmidt@linux.ibm.com>
16351 * doc/loop.texi: Remove reference to FOR_EACH_LOOP_BREAK.
16353 2019-05-09 Alexander Monakov <amonakov@ispras.ru>
16355 PR rtl-optimization/88879
16356 * sel-sched.c (sel_target_adjust_priority): Remove assert.
16358 2019-05-09 Richard Earnshaw <rearnsha@arm.com>
16361 * config/arm/arm.c (callee_saved_reg_p): Move before
16362 thumb_find_work_register.
16363 (thumb1_prologue_unused_call_clobbered_lo_regs): Move before
16364 thumb_find_work_register. Only call df_get_live_out once.
16365 (thumb1_epilogue_unused_call_clobbered_lo_regs): Likewise.
16366 (thumb_find_work_register): Use
16367 thumb1_prologue_unused_call_clobbered_lo_regs instead of ad hoc
16368 algorithms to locate a spare call clobbered reg.
16370 2019-05-09 Martin Liska <mliska@suse.cz>
16372 * gimple-pretty-print.c (dump_binary_rhs): Dump MIN_EXPR
16373 and MAX_EXPR in GIMPLE FE format.
16375 2019-05-09 Martin Liska <mliska@suse.cz>
16377 * tree-cfg.c (dump_function_to_file): Dump entry BB count.
16378 * gimple-pretty-print.c (dump_gimple_bb_header):
16380 (pp_cfg_jump): Dump edge probability.
16381 * profile-count.c (profile_quality_as_string): Simplify
16382 with a static array.
16383 (parse_profile_quality): New function.
16384 (profile_count::dump): Simplify with a static array.
16385 (profile_count::from_gcov_type): Add new argument.
16386 * profile-count.h (parse_profile_quality): Likewise.
16387 * predict.h (set_hot_bb_threshold): New.
16388 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
16390 * predict.c (get_hot_bb_threshold): Set from the new param.
16391 (set_hot_bb_threshold): New.
16393 2019-05-09 Richard Biener <rguenther@suse.de>
16395 PR tree-optimization/90395
16396 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not
16397 rewrite vector stores that throw internally.
16399 2019-05-09 Thomas Schwinge <thomas@codesourcery.com>
16401 * cif-code.def (CHKP): Remove.
16404 * configure.ac (--enable-frame-pointer): Disable by default for
16406 * configure: Regenerate.
16408 2019-05-09 Alan Modra <amodra@gmail.com>
16411 * config/rs6000/rs6000.h (enum reg_class, REG_CLASS_NAMES),
16412 (REG_CLASS_CONTENTS): Add GEN_OR_VSX_REGS class.
16413 * config/rs6000/rs6000.c (rs6000_register_move_cost): Correct
16414 cost for general <-> vsx when direct moves are available.
16415 Cost union classes at minimal cost for any reg in the class.
16416 Correct calculation for moves between vsx, float, and altivec.
16417 Don't return a low cost for moves between special regs. Don't
16418 use hard coded register numbers.
16419 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define.
16420 (rs6000_ira_change_pseudo_allocno_class): New function.
16421 * config/rs6000/rs6000.md (movsi_internal1, mov<mode>_internal),
16422 (movdi_internal32, movdi_internal64): Remove '*' from vsx register
16424 (movsi_internal1): Don't disparage vector alternatives.
16425 (mov<mode>_internal): Likewise, excepting alternative that
16427 * config/rs6000/vsx.md (vsx_splat_<mode>_reg): Don't disparage
16428 we <- b alternative.
16430 2019-05-08 Jakub Jelinek <jakub@redhat.com>
16433 PR tree-optimization/89060
16434 * tree-ssa-live.h (live_vars_map): New typedef.
16435 (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare.
16436 * tree-ssa-live.c: Include gimple-walk.h and cfganal.h.
16437 (struct compute_live_vars_data): New type.
16438 (compute_live_vars_visit, compute_live_vars_1, compute_live_vars,
16439 live_vars_at_stmt, destroy_live_vars): New functions.
16440 * tree-tailcall.c: Include tree-ssa-live.h.
16441 (live_vars, live_vars_vec): New global variables.
16442 (find_tail_calls): Perform variable life analysis before punting.
16443 (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec.
16444 * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest
16446 * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument.
16447 Perform variable life analysis to select variables that really need
16449 (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here,
16450 instead set id->eh_landing_pad_dest and assert it is the same.
16451 (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL.
16453 2019-05-08 Mihail Ionescu <mihail.ionescu@arm.com>
16454 Richard Earnshaw <rearnsha@arm.com>
16457 * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
16459 (thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
16460 (thumb1_compute_save_core_reg_mask): Don't force a spare work
16461 register if both the epilogue and prologue can use call-clobbered
16463 (thumb1_unexpanded_epilogue): Use
16464 thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for
16465 picking temporaries for restoring high regs to match that of the
16466 prologue where possible.
16467 (thumb1_expand_prologue): Add any usable call-clobbered low registers to
16468 the list of work registers. Detect if the return address is still live
16469 at the end of the prologue and avoid using it for a work register if so.
16470 If the return address is not live, add LR to the list of pushable regs
16471 after the first pass.
16473 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
16475 PR tree-optimization/90078
16476 * tree-ssa-loop-ivopts.c (inttypes.h): Include new header file.
16477 (INFTY): Increase the value for infinite cost.
16478 (struct comp_cost): Promote type of members to int64_t.
16479 (infinite_cost): Don't set complexity in initialization.
16480 (comp_cost::operator +,-,+=,-+,/=,*=): Assert when cost computation
16481 overflows to infinite_cost.
16482 (adjust_setup_cost): Promote type of parameter and cost computation
16484 (struct ainc_cost_data, struct iv_ca): Promote type of member to
16486 (get_scaled_computation_cost_at, determine_iv_cost): Promote type of
16487 cost computation to int64_t.
16488 (determine_group_iv_costs, iv_ca_dump, find_optimal_iv_set): Use
16489 int64_t's format specifier in dump.
16491 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
16493 PR tree-optimization/90240
16494 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Scale cost
16495 with respect to scaling factor pre-computed for each basic block.
16496 (try_improve_iv_set): Return bool if best_cost equals to iv_ca cost.
16497 (find_optimal_iv_set_1): Free iv_ca set if it has infinite_cost.
16498 (COST_SCALING_FACTOR_BOUND, determine_scaling_factor): New.
16499 (tree_ssa_iv_optimize_loop): Call determine_scaling_factor. Extend
16500 live range for array of loop's basic blocks. Cleanup aux field of
16501 loop's basic blocks.
16503 2019-05-08 Jakub Jelinek <jakub@redhat.com>
16505 PR tree-optimization/90356
16506 * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible.
16508 2019-05-07 Wei Xiao <wei3.xiao@intel.com>
16510 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET
16511 OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New.
16512 (OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET.
16513 (ix86_handle_option): Handle -mavx512bf16.
16514 * config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h
16516 * config/i386/avx512bf16vlintrin.h: New.
16517 * config/i386/avx512bf16intrin.h: New.
16518 * config/i386/cpuid.h (bit_AVX512BF16): New.
16519 * config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16.
16520 * config/i386/i386-builtin-types.def: Add new types.
16521 * config/i386/i386-builtin.def: Add new builtins.
16522 * config/i386/i386-c.c (ix86_target_macros_internal): Define
16524 * config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16.
16525 (ix86_option_override_internal): Handle BF16.
16526 (ix86_valid_target_attribute_inner_p): Ditto.
16527 * config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto.
16528 * config/i386/i386-builtin.c (enum processor_features): Add
16530 (static const _isa_names_table isa_names_table): Ditto.
16531 * config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New.
16532 (PTA_AVX512BF16): Ditto.
16533 * config/i386/i386.opt: Add -mavx512bf16.
16534 * config/i386/immintrin.h: Include avx512bf16intrin.h
16535 and avx512bf16vlintrin.h.
16536 * config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>,
16537 avx512f_cvtneps2bf16_<mode><mask_name>,
16538 avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns.
16539 * config/i386/subst.md (mask_half): Add new subst.
16540 * doc/invoke.texi: Document -mavx512bf16.
16542 2019-05-07 Segher Boessenkool <segher@kernel.crashing.org>
16544 * config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr):
16545 Delete declaration.
16546 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete.
16547 (rs6000_debug_legitimize_reload_address): Delete.
16548 (rs6000_legitimize_reload_address_ptr): Delete.
16549 (rs6000_option_override_internal): Adjust.
16550 (mem_operand_gpr): Adjust comment.
16551 (legitimate_lo_sum_address_p): Ditto.
16552 (rs6000_legitimize_reload_address): Delete.
16553 (rs6000_debug_legitimize_reload_address): Delete.
16554 * config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete.
16556 2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org>
16559 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
16560 In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
16561 to compute vector element selector for both constant and variable
16564 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
16566 * config/i386/i386.md (cvt_mnemonic): New mode attribute.
16567 (ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and
16568 ashrdi3_cvt using SWI48 mode iterator.
16570 2019-05-07 Alejandro Martinez <alejandro.martinezvicente@arm.com>
16572 * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand.
16573 (aarch64_<su>abd<mode>_3): Likewise.
16574 (*aarch64_<su>abd<mode>_3): New define_insn.
16575 (<sur>sad<vsi2qi>): New define_expand.
16576 * config/aarch64/iterators.md: Added MAX_OPP attribute.
16577 * tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR.
16578 (build_vect_cond_expr): Likewise.
16580 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
16582 * cfgexpand.c (asm_clobber_reg_is_valid): Reject
16583 clobbers outside of accessible_reg_set.
16584 * config/i386/i386.c (ix86_conditional_register_usage):
16585 Disable register sets by clearing corresponding bits in
16586 accessible_reg_set. Do not set corresponding bits in fixed_regs,
16587 call_used_regs and don't clear corresponding reg_names array members.
16589 2019-05-07 Richard Biener <rguenther@suse.de>
16591 * tree-vect-stmts.c (vect_is_simple_cond): When vectype is
16592 not specified still compute a comp_vectype for invariant
16595 2019-05-07 Richard Biener <rguenther@suse.de>
16597 PR tree-optimization/90316
16598 * tree-ssa-pre.c (translate_vuse_through_block): When
16599 same_valid is NULL do not bother to search for a virtual
16601 (phi_translate_1): When operands changed we cannot keep
16602 the same value-number so do not bother to ask whether
16603 that's possible from translate_vuse_through_block.
16605 2019-05-07 Martin Liska <mliska@suse.cz>
16607 * bitmap.c (bitmap_register): Come up with
16608 alloc_descriptor_max_uid and assign it for
16610 (register_overhead): Use get_descriptor as
16612 (release_overhead): New.
16613 (bitmap_elem_to_freelist): Call it.
16614 (bitmap_elt_clear_from): Likewise.
16615 (bitmap_obstack_free): Likewise.
16616 (bitmap_move): Sensitively release memory.
16617 * bitmap.h (struct GTY): Add alloc_descriptor and padding.
16618 (bitmap_initialize): Initialize alloc_descriptor to zero.
16619 * tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move.
16621 2019-05-07 Richard Biener <rguenther@suse.de>
16623 * tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever
16624 we build a SLP node. Remove max_size and limiting.
16625 (vect_analyze_slp_instance): Record and dump size of the SLP graph.
16627 2019-05-07 Richard Biener <rguenther@suse.de>
16629 PR tree-optimization/90316
16630 * tree-ssa-alias.h (get_continuation_for_phi): Take walking
16631 limit by reference.
16632 (walk_non_aliased_vuses): Take walking limit argument.
16633 * tree-ssa-alias.c (maybe_skip_until): Take limit and abort
16634 walking if it is reached instead of just counting.
16635 (get_continuation_for_phi): Likewise.
16636 (walk_non_aliased_vuses): Likewise, instead of leaving counter
16637 limiting to the callback.
16638 * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust.
16639 (vn_reference_lookup_3): Likewise.
16640 (vn_reference_lookup_pieces): Likewise.
16641 (vn_reference_lookup): Likewise.
16642 * tree-ssa-pre.c (translate_vuse_through_block): Limit walking.
16643 * tree-ssa-scopedtables.c (vuse_eq): Adjust.
16644 (avail_exprs_stack::lookup_avail_expr): Likewise.
16646 2019-05-07 Jan Hubicka <hubicka@ucw.cz>
16648 * tree-ssa-alias.c (aliasing_component_refs_p): Continue looking
16649 for comparaible types in the second direction even if first one
16650 hits incomparable type.
16652 2019-05-07 Richard Biener <rguenther@suse.de>
16655 * lto-wrapper.c (debug_objcopy): Use the original filename
16656 including archive offset for the filename used for -save-temps.
16658 2019-05-07 Li Jia He <helijia@linux.ibm.com>
16660 * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
16663 2019-05-06 H.J. Lu <hongjiu.lu@intel.com>
16664 Hongtao Liu <hongtao.liu@intel.com>
16668 * config/i386/i386-expand.c (ix86_expand_sse_comi_round):
16669 Modified, original implementation isn't correct.
16671 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
16673 * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO)
16674 (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO)
16675 (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO)
16676 (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO)
16677 (FRAME_POINTER_REGNUM): Change numbering.
16678 * config/rs6000/rs6000.c (rs6000_reg_names): Adjust.
16679 (alt_reg_names): Adjust.
16680 (rs6000_conditional_register_usage): Don't mark hard register 64 as
16682 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
16683 (DWARF_FRAME_REGISTERS): Delete.
16684 (DWARF2_FRAME_REG_OUT): Fix whitespace.
16685 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
16687 (REG_ALLOC_ORDER): Adjust.
16688 (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust.
16689 (REG_CLASS_CONTENTS): Adjust.
16690 (RETURN_ADDR_RTX): Change comment.
16691 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM
16693 (REGISTER_NAMES): Adjust.
16694 (ADDITIONAL_REGISTER_NAMES): Adjust.
16695 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
16697 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
16699 * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO):
16701 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
16702 (DWARF_FRAME_REGISTERS): Adjust.
16703 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
16705 (REG_ALLOC_ORDER): Adjust.
16706 (enum reg_class): Delete SPR_REGS.
16707 (REG_CLASS_NAMES): Delete SPR_REGS.
16708 (REG_CLASS_CONTENTS): Delete SPR_REGS. Adjust for deleted TM regs.
16709 (REGISTER_NAMES): Adjust.
16710 (ADDITIONAL_REGISTER_NAMES): Adjust.
16711 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
16712 * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust.
16713 * config/rs6000/predicates.md (htm_spr_reg_operand): Delete.
16714 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust.
16715 (htm_spr_regno): Delete.
16716 (htm_expand_builtin): Adjust: the HTM builtins now have one fewer
16718 (rs6000_dbx_register_number): Adjust.
16720 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
16722 * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete.
16724 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
16726 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle
16727 FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ).
16729 2019-05-06 Jakub Jelinek <jakub@redhat.com>
16731 PR tree-optimization/88709
16732 PR tree-optimization/90271
16733 * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter.
16734 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle
16735 non-clobber CONSTRUCTORs with no elts. Remove useless tmp_int
16737 (imm_store_chain_info::coalesce_immediate_stores): Punt if the size
16738 of the store merging group is larger than
16739 PARAM_STORE_MERGING_MAX_SIZE parameter.
16740 (split_group): Add bzero_first argument. If set, always emit first
16741 the first store which must be = {} of the whole area and then for the
16742 rest of the stores consider all zero bytes as paddings.
16743 (imm_store_chain_info::output_merged_store): Check if first store
16744 is = {} of the whole area and if yes, determine which setting of
16745 bzero_first for split_group gives smaller number of stores. Adjust
16746 split_group callers.
16747 (lhs_valid_for_store_merging_p): Allow decls.
16748 (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with
16750 (pass_store_merging::process_store): Likewise.
16752 2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org>
16755 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
16756 handling of V1TImode.
16758 2019-05-06 Uroš Bizjak <ubizjak@gmail.com>
16761 * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld
16762 and enable_frame_pointer ...
16763 * configure.ac: ... here. Update help strings for
16764 --enable-frame-pointer.
16765 * configure: Regenerate.
16766 * config/i386/i386-options.c (ix86_option_override_internal): Remove
16767 USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead.
16768 * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove.
16769 (USE_X86_64_FRAME_POINTER): Ditto.
16771 2019-05-06 Martin Liska <mliska@suse.cz>
16773 * config.gcc: Append to target_gtfiles and fix indentation.
16775 2019-05-06 Richard Biener <rguenther@suse.de>
16777 PR tree-optimization/90358
16778 * tree-vect-stmts.c (get_group_load_store_type): Properly
16779 detect unused upper half of load.
16780 (vectorizable_load): Likewise.
16782 2019-05-06 Richard Biener <rguenther@suse.de>
16784 PR tree-optimization/88828
16785 * tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from...
16786 (simplify_vector_constructor): ...here. Handle constants in
16789 2019-05-06 Richard Biener <rguenther@suse.de>
16791 PR tree-optimization/90328
16792 * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
16793 * tree-data-ref.c (dr_may_alias_p): Check whether the clique
16794 is valid in the loop nest before using it.
16795 (initialize_data_dependence_relation): Adjust.
16796 * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
16797 loop as loop-nest to dr_may_alias_p.
16799 2019-05-06 Richard Biener <rguenther@suse.de>
16801 * dwarf2out.c (mem_loc_descriptor): Initialize int_mode.
16803 2019-05-06 Richard Biener <rguenther@suse.de>
16805 PR tree-optimization/90316
16806 * tree-ssa-alias.c (maybe_skip_until): Pass in target BB,
16807 compute target on demand.
16808 (get_continuation_for_phi): Remove code walking stmts to
16809 get to a target virtual operand which could end up being
16812 2019-05-06 Martin Liska <mliska@suse.cz>
16815 * config/i386/i386-options.c (ix86_option_override_internal): Error only
16816 when -mabi is selected to a non-default version.
16818 2019-05-06 Hrishikesh Kulkarni <hrishikeshparag@gmail.com>
16819 Martin Liska <mliska@suse.cz>
16821 * Makefile.in: Add lto-dump.texi.
16822 * cgraph.h: Add new functions get_visibility_string and
16823 get_symtab_type_string.
16824 * doc/gcc.texi: Include lto-dump section.
16825 * doc/lto-dump.texi: New file.
16826 * dumpfile.c (dump_switch_p_1): Use parse_dump_option.
16827 (parse_dump_option): Factor out this function.
16828 * dumpfile.h (enum dump_flag): Add new value TDF_ERROR.
16829 (parse_dump_option): Export the function.
16830 * symtab.c (symtab_node::get_visibility_string): New function.
16831 (symtab_node::get_symtab_type_string): Likewise.
16833 2019-05-06 Martin Liska <mliska@suse.cz>
16835 * config/i386/i386-builtins.c: New file.
16836 * config/i386/i386-builtins.h: New file.
16837 * config/i386/i386-expand.c: New file.
16838 * config/i386/i386-expand.h: New file.
16839 * config/i386/i386-features.c: New file.
16840 * config/i386/i386-features.h: New file.
16841 * config/i386/i386-options.c: New file.
16842 * config/i386/i386-options.h: New file.
16843 * config.gcc: Add new files into extra_objs and
16845 * config/i386/i386.c: Split content of the file
16846 into newly introduced files.
16847 * config/i386/i386.h: Declare common variables
16849 * config/i386/t-i386: Define dependencies for new files.
16851 2019-05-03 Richard Earnshaw <rearnsha@arm.com>
16854 * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
16855 Restrict 'all' variant to 32-bit configurations.
16856 (unaligned_loadhiu): Likewise.
16857 (unaligned_storehi): Likewise.
16858 (unaligned_storesi): Likewise.
16859 (unaligned_loadhis): Disable when compiling for thumb1.
16861 2019-05-03 Marc Glisse <marc.glisse@inria.fr>
16863 PR tree-optimization/90269
16864 * tree-loop-distribution.c (find_seed_stmts_for_distribution):
16867 2019-05-03 Martin Liska <mliska@suse.cz>
16869 * hash-map.h: Add is_empty function.
16870 * hash-set.h: Likewise.
16871 * hash-table.h: Likewise.
16872 * dwarf2out.c (dwarf2out_finish): Use is_empty instead of
16873 elements () == 0 (and similar usages).
16874 * gimple-ssa-store-merging.c (pass_store_merging::terminate_and_process_all_chains): Likewise.
16875 * gimplify.c (gimplify_bind_expr): Likewise.
16876 (gimplify_switch_expr): Likewise.
16877 * hash-map-tests.c (test_map_of_strings_to_int): Likewise.
16878 * ipa-icf.c (sem_item_optimizer::remove_symtab_node): Likewise.
16879 * postreload-gcse.c (dump_hash_table): Likewise.
16880 (gcse_after_reload_main): Likewise.
16881 * predict.c (combine_predictions_for_bb): Likewise.
16882 * tree-parloops.c (reduction_phi): Likewise.
16883 (separate_decls_in_region): Likewise.
16884 (transform_to_exit_first_loop): Likewise.
16885 (gen_parallel_loop): Likewise.
16886 (gather_scalar_reductions): Likewise.
16887 (try_create_reduction_list): Likewise.
16888 * var-tracking.c (dump_vars): Likewise.
16889 (emit_notes_for_changes): Likewise.
16890 (vt_emit_notes): Likewise.
16892 2019-05-03 Richard Biener <rguenther@suse.de>
16894 PR tree-optimization/90316
16895 * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries
16898 2019-05-03 Richard Biener <rguenther@suse.de>
16900 * tree-vect-stmts.c (get_group_load_store_type): Avoid
16901 peeling for gaps by loading only lower halves of vectors
16903 (vectorizable_load): Likewise.
16905 2019-05-03 Richard Biener <rguenther@suse.de>
16907 PR middle-end/89518
16908 * match.pd: Add pattern to optimize (A / B) * B + (A % B) to A.
16910 2019-05-03 Richard Biener <rguenther@suse.de>
16912 PR middle-end/87314
16913 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)):
16914 Handle STRING_CST vs DECL or STRING_CST.
16916 2019-05-03 Richard Biener <rguenther@suse.de>
16918 PR tree-optimization/88963
16919 * tree-ssa-forwprop.c (pass_forwprop::execute): Rewrite
16920 vector loads feeding only BIT_FIELD_REFs to component
16921 loads. Rewrite stores fed by CONSTRUCTORs to component
16924 2019-05-03 Jakub Jelinek <jakub@redhat.com>
16926 * opts.h (finish_options): Remove lang_mask argument.
16927 (print_help, help_option_argument): Declare.
16928 * opts.c (print_help): Remove forward declaration, no longer static.
16929 (finish_options): Remove lang_mask argument, don't call print_help
16931 * opts-global.c (decode_options): Adjust finish_option caller, call
16934 PR tree-optimization/90303
16935 * ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use
16936 TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode.
16938 2019-05-03 Richard Biener <rguenther@suse.de>
16940 PR tree-optimization/89698
16941 * gimple-fold.c (canonicalize_constructor_val): Early out
16942 for constants, handle unfolded INTEGER_CSTs as they appear in
16943 C++ virtual table ctors.
16945 2019-05-03 Richard Biener <rguenther@suse.de>
16947 * passes.c (execute_function_todo): Remove dead code.
16949 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
16951 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use
16952 the internal register number, for any "real" register.
16954 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
16956 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
16957 correct numbers for TFHAR, TFIAR, TEXASR.
16959 2019-05-02 Richard Biener <rguenther@suse.de>
16961 PR tree-optimization/89653
16962 * tree-ssa-loop.c (pass_data_tree_loop_init): Execute
16963 update-address-taken before the pass.
16964 * passes.def (pass_tree_loop_init): Put comment before it.
16966 2019-05-02 Richard Biener <rguenther@suse.de>
16968 PR tree-optimization/89509
16969 * tree-ssa-structalias.c (compute_dependence_clique): Look
16970 at the first subvar when determining whether it is restrict.
16972 2019-05-02 Richard Biener <rguenther@suse.de>
16974 PR tree-optimization/90273
16975 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate
16976 useless debug stmts.
16978 2019-05-02 Alejandro Martinez <alejandro.martinezvicente@arm.com>
16980 * config/aarch64/aarch64-sve.md (<sur>dot_prod<vsi2qi>): Taken from SVE
16982 * config/aarch64/iterators.md: Copied Vetype_fourth, VSI2QI and vsi2qi from
16984 * tree-vect-loop.c (use_mask_by_cond_expr_p): New function to check if a
16985 VEC_COND_EXPR be inserted to emulate a conditional internal function.
16986 (build_vect_cond_expr): Emit the VEC_COND_EXPR.
16987 (vectorizable_reduction): Use the functions above to vectorize in a
16988 fully masked loop codes that don't have a conditional internal
16991 2019-05-02 Martin Liska <mliska@suse.cz>
16993 * cgraphclones.c: Call valid_attribute_p with 1 for
16995 * config/i386/i386-c.c (ix86_pragma_target_parse): Use 0 as
16996 it's for target attribute.
16997 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
16998 Add new boolean argument.
16999 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
17001 (ix86_valid_target_attribute_tree): Pass target_clone_attr
17002 to ix86_valid_target_attribute_inner_p.
17003 (ix86_valid_target_attribute_p): Pass flags argument to
17004 ix86_valid_target_attribute_inner_p.
17005 (get_builtin_code_for_version): Use 0 as it's target attribute.
17007 2019-05-02 Martin Liska <mliska@suse.cz>
17009 * gcc.c (process_command): Add dummy file only
17011 * opts-global.c (decode_options): Pass lang_mask.
17012 * opts.c (print_help): New function.
17013 (finish_options): Print --help if help_option_argument
17015 (common_handle_option): Factor out content of OPT__help_
17017 * opts.h (finish_options): Add new argument.
17019 2019-05-02 Martin Liska <mliska@suse.cz>
17022 * config/i386/i386.c (ix86_expand_strlen): Use strlen call.
17023 With -minline-all-stringops use inline expansion using 4B loop.
17024 * doc/invoke.texi: Document the change of
17025 -minline-all-stringops.
17027 2019-05-01 Jeff Law <law@redhat.com>
17029 PR tree-optimization/88797
17030 * gimple-ssa-split-paths (is_feasible_trace): Reject cases where the
17031 PHI feeds a conditional on the RHS of an assignment.
17033 2019-04-30 Andrew Waterman <andrew@sifive.com>
17034 Jim Wilson <jimw@sifive.com>
17036 * config/riscv/constraints.md (L): New.
17037 * config/riscv/predicates.md (lui_operand): New.
17038 (sfb_alu_operand): New.
17039 * config/riscv/riscv-protos.h (riscv_expand_conditional_move): Declare.
17040 * config/riscv/riscv.c (riscv_expand_conditional_move): New.
17041 * config/riscv/riscv.h (TARGET_SFB_ALU): New.
17042 * config/riscv/risc.md (type): Add sfb_alu.
17043 (branch<mode>): Renamed from branch_order<mode>. Change predicate for
17044 operand 3 to reg_or_0_operand. In output string, change %3 to %z3.
17045 (branch_zero<mode>): Delete.
17046 (mov<mode>cc): New.
17047 (mov<GPR:mode><X:mode>cc): Likewise.
17048 * config/riscv/sifive-7.md (sifive_7_sfb_alu): New. Use in bypasses.
17050 2019-04-30 Nathan Sidwell <nathan@acm.org>
17052 * tree.h (MARK_TS_EXP): New.
17054 2019-04-30 Martin Liska <mliska@suse.cz>
17056 * opts.c (enable_warning_as_error): Provide hints
17057 for unknown options.
17059 2019-04-30 Martin Liska <mliska@suse.cz>
17062 * doc/invoke.texi: Add missing dash for gas-locview-support
17063 and gno-as-locview-support.
17065 2019-04-30 Jakub Jelinek <jakub@redhat.com>
17068 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip
17069 whitespace at the start of target attribute string.
17071 2019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17074 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
17075 Define __ARM_FEATURE_ATOMICS.
17077 2019-04-30 Martin Liska <mliska@suse.cz>
17079 * gimple-fold.c (gimple_fold_builtin_memory_op): Change endp
17080 into built_in_function enum. Remove code for endp == 2 and
17081 use BUILT_IN_* constants.
17082 (gimple_fold_builtin): Call the function with fcode.
17084 2019-04-30 Martin Liska <mliska@suse.cz>
17086 * config/i386/i386.c (ix86_builtin_reciprocal): Cast
17087 DECL_FUNCTION_CODE into ix86_builtins enum before
17088 the switch statement.
17090 2019-04-30 Jakub Jelinek <jakub@redhat.com>
17092 PR tree-optimization/89475
17093 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64}
17096 2019-04-30 Martin Liska <mliska@suse.cz>
17098 PR translation/90274
17099 * opts.c (print_filtered_help): Wrap string in _(...).
17101 2019-04-30 Bin Cheng <bin.cheng@linux.alibaba.com>
17103 PR tree-optimization/90240
17105 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
17107 PR tree-optimization/90078
17108 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
17109 checks for infinite_cost overflow.
17111 2019-04-29 Jeff Law <law@redhat.com>
17113 * passes.def: Move -Wrestrict pass after copy propagation.
17115 2019-04-29 Maya Rashish <coypu@sdf.org>
17117 * config.gcc (default_gnu_indirect_function): Default to yes
17118 for arm*-*-netbsd*, i[34567]86-*-netbsd*, powerpc*-*-netbsd*,
17119 sparc*-*-netbsd*, x86_64-*-netbsd*.
17121 2019-04-29 Vladislav Ivanishin <vlad@ispras.ru>
17123 * tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases
17124 where cond2 is NE_EXPR.
17125 (is_value_included_in): Update comment.
17127 2019-04-29 Richard Biener <rguenther@suse.de>
17129 PR tree-optimization/90278
17130 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
17131 EH on comparison simplification.
17133 2019-04-29 Jason Merrill <jason@redhat.com>
17135 PR c++/82081 - tail call optimization breaks noexcept
17136 * tree-tailcall.c (find_tail_calls): Don't turn a call from a
17137 nothrow function to a might-throw function into a tail call.
17139 2019-04-29 Richard Sandiford <richard.sandiford@arm.com>
17141 * tree-data-ref.h (data_dependence_relation::inner_loop): Delete.
17142 (DDR_INNER_LOOP): Likewise.
17143 * tree-data-ref.c (dump_data_dependence_relation): Update accordingly.
17144 (initialize_data_dependence_relation): Likewise.
17145 (insert_innermost_unit_dist_vector): Use 0 instead of DDR_INNER_LOOP.
17147 2019-04-29 Jakub Jelinek <jakub@redhat.com>
17149 PR rtl-optimization/90257
17150 * cfgrtl.c (flow_active_insn_p): Return true for USE of a function
17154 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
17158 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
17161 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
17164 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
17166 * lra-spills.c (lra_final_code_change): Remove useless move insns.
17168 2019-04-29 Richard Biener <rguenther@suse.de>
17170 * tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER}
17173 2019-04-27 Iain Buclaw <ibuclaw@gdcproject.org>
17175 * config/netbsd-d.c: Include memmodel.h. Remove unused tree.h,
17176 varasm.h, and netbsd-protos.h.
17178 2019-04-27 Uroš Bizjak <ubizjak@gmail.com>
17181 * config/i386/i386-protos.h (ix86_data_alignment): Change
17182 the second argument type to unsigned int.
17183 * config/i386/i386.c (ix86_data_alignment): Change "align"
17184 argument type to unsigned int.
17186 2019-04-27 Martin Liska <mliska@suse.cz>
17188 PR middle-end/90258
17189 * opt-suggestions.c (option_proposer::build_option_suggestions):
17190 When get_valid_option_values returns empty values, add the
17191 misspelling candidate.
17193 2019-04-26 Jim Wilson <jimw@sifive.com>
17195 * config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode
17197 * config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode.
17198 Pass orig_mode to riscv_build_integer.
17199 (riscv_split_integer): Pass mode to riscv_move_integer.
17200 (riscv_legitimize_const_move): Likewise.
17201 (riscv_legitimize_move): For MEM dest and CONST_INT src case, new local
17202 promoted_mode. Replace force_reg call with code to load constant into
17203 promoted reg and then subreg it for the store.
17204 * config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to
17205 riscv_move_integer.
17207 2018-04-26 Eugene Sharygin <eush@ispras.ru>
17209 * gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with
17212 2019-04-26 Richard Sandiford <richard.sandiford@arm.com>
17214 * tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add
17215 commentary about the encoding of precision.
17217 2019-04-25 Andreas Tobler <andreast@gcc.gnu.org>
17219 * config/i386/freebsd64.h: Add bits for 32-bit multilib support.
17220 * config/i386/t-freebsd64: New file.
17221 * config.gcc: Add the t-freebsd64 for multilib support.
17223 2019-04-25 Uroš Bizjak <ubizjak@gmail.com>
17225 * doc/extend.texi (vector_size): Add missing comma after @xref.
17227 2019-04-25 Jakub Jelinek <jakub@redhat.com>
17229 * BASE-VER: Set to 10.0.0.
17231 2019-04-25 Richard Biener <rguenther@suse.de>
17233 PR middle-end/89765
17234 * gimplify.c (gimplify_expr): Avoid turning a lvalue
17235 VIEW_CONVERT_EXPR into one operating on an rvalue.
17237 2019-04-25 H.J. Lu <hongjiu.lu@intel.com>
17240 * config/i386/i386.c (feature_priority): Moved to file scope.
17241 (processor_features): Likewise.
17242 (processor_model): Likewise.
17243 (_arch_names_table): Likewise.
17244 (arch_names_table): Likewise.
17245 (_feature_list): Removed.
17246 (feature_list): Likewise.
17247 (_isa_names_table): Moved to file scope. Add priority.
17248 (isa_names_table): Likewise.
17249 (get_builtin_code_for_version): Replace feature_list with
17250 isa_names_table. Update error message for P_ZERO priority.
17252 2019-04-25 Richard Biener <rguenther@suse.de>
17254 * tree-pass.h (make_pass_phi_only_cprop): Remove.
17255 * timevar.def (TV_TREE_PHI_CPROP): Likewise.
17257 2019-04-24 Jeff Law <law@redhat.com>
17259 PR tree-optimization/90037
17260 * Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c
17261 * passes.def: Replace all instance of phi-only cprop with the
17262 lattice propagator. Move propagation pass from after erroneous
17263 path isolation to before erroneous path isolation.
17264 * tree-ssa-phionlycprop.c: Remove.
17266 2019-04-24 Richard Biener <rguenther@suse.de>
17268 PR middle-end/90213
17269 * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
17270 by size and BITS_PER_UNIT on poly-wide-ints.
17272 2019-04-25 Richard Biener <rguenther@suse.de>
17274 PR middle-end/90194
17275 * match.pd: Add pattern to simplify view-conversion of an
17278 2019-04-24 Clement Chigot <clement.chigot@atos.net>
17280 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable
17281 OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags
17282 for Go on 32 bit AIX.
17283 * config/rs6000/aix72.h: Likewise.
17285 2019-04-24 Jakub Jelinek <jakub@redhat.com>
17288 * rtl.c (classify_insn): Return JUMP_INSN for asm goto.
17289 * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.
17291 2019-04-24 Andreas Krebbel <krebbel@linux.ibm.com>
17294 * config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs
17295 from FPRs in reverse order. Generate REG_CFA_DEF_CFA note also
17296 for restored hard frame pointer.
17297 (s390_sched_dependencies_evaluation): Implement new target hook.
17298 (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition.
17300 2019-04-24 Claudiu Zissulescu <claziss@sysnopsys.com>
17302 * config/arc/arc-options.def: Fix typos and spelling mistakes.
17303 * config/arc/arc.c (arc_init): Cleanup warning message.
17304 (arc_override_options): Likewise.
17306 2019-04-24 Jakub Jelinek <jakub@redhat.com>
17309 * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
17310 a register if both if_true and if_false are MEMs.
17312 PR tree-optimization/90208
17313 * tree-cfg.c (remove_bb): Move forced labels from removed bbs
17314 after labels of new_bb, not before them.
17316 PR tree-optimization/90211
17317 * tree-parloops.c (try_create_reduction_list): Ignore phi arguments
17318 which are not SSA_NAMEs.
17320 2018-04-23 Sudakshina Das <sudi.das@arm.com>
17322 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for
17324 (aarch64_file_end_indicate_exec_stack): Add gnu note section.
17326 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
17328 PR rtl-optimization/87979
17329 * modulo-sched.c (sms_schedule): Start ii value "mii" should
17332 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
17334 PR rtl-optimization/84032
17335 * modulo-sched.c (ps_insn_find_column): Change condition so that
17336 branch will always be the last insn in a row inside partial
17339 2019-04-23 Richard Biener <rguenther@suse.de>
17342 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add
17343 dest_single_pred_p argument.
17344 (remove_forwarder_block): Adjust.
17345 (remove_forwarder_block_with_phi): Likewise.
17347 2019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17348 Bernd Edlinger <bernd.edlinger@hotmail.de>
17349 Jakub Jelinek <jakub@redhat.com>
17352 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
17353 if used with general-regs-only.
17354 (arm_conditional_register_usage): Don't add non-general regs if
17356 (arm_valid_target_attribute_rec): Handle general-regs-only.
17357 * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
17359 (TARGET_HARD_FLOAT_SUB): Define.
17360 (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
17361 (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
17362 (TARGET_REALLY_IWMMXT2): Likewise.
17363 * config/arm/arm.opt: Add -mgeneral-regs-only.
17364 * doc/extend.texi: Document ARM general-regs-only target.
17365 * doc/invoke.texi: Document ARM -mgeneral-regs-only.
17367 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
17369 PR tree-optimization/90078
17370 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
17371 checks for infinite_cost overflow.
17373 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
17375 PR tree-optimization/90021
17376 * tree-chrec.c (evolution_function_is_univariate_p): New parameter
17377 and check univariate against it.
17378 * tree-chrec.h (evolution_function_is_univariate_p): New parameter.
17379 * tree-data-ref.c (add_other_self_distances): Pass new argument.
17381 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
17385 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
17388 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
17391 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
17393 * lra-spills.c (lra_final_code_change): Remove useless move insns.
17395 2019-04-21 Iain Sandoe <iain@sandoe.co.uk>
17397 * config/rs6000/rs6000.md (group_end_nop): Emit insn register
17398 names using operand format, rather than hard-wired.
17399 (speculation_barrier): Likewise.
17401 2019-04-19 Segher Boessenkool <segher@kernel.crashing.org>
17403 PR tree-optimization/88055
17404 * tree-call-cdce.c (comparison_code_if_no_nans): New function.
17405 (gen_one_condition): Use it if !HONOR_NANS.
17407 2019-04-19 Jakub Jelinek <jakub@redhat.com>
17409 PR middle-end/90139
17410 * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
17411 assign_temp instead of gen_reg_rtx.
17413 2019-04-19 Christophe Lyon <christophe.lyon@linaro.org>
17415 PR translation/90118
17416 * config/aarch64/aarch64.c (aarch64_override_options_internal):
17417 Add missing space before %<.
17419 2019-04-18 Peter Bergner <bergner@linux.ibm.com>
17421 PR rtl-optimization/87871
17422 * ira-lives.c (make_object_dead): Don't add conflicts to
17423 TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts.
17425 2019-04-18 Martin Sebor <msebor@redhat.com>
17427 PR middle-end/89797
17428 * tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U.
17429 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid
17430 assuming type size fits in SHWI.
17432 2019-04-18 Jan Hubicka <hubicka@ucw.cz>
17435 * ipa-inline.c (flatten_function): New parameter UPDATE.
17436 (ipa_inline, early_inliner): Use it.
17438 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
17440 * fold-const.c (int_const_binop): Return early on failure.
17442 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
17444 PR middle-end/85164
17445 * combine.c (force_int_to_mode): Cast the argument rather than
17446 the result of known_alignment.
17447 * rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p.
17449 2019-04-18 Richard Biener <rguenther@suse.de>
17452 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split
17454 (remove_forwarder_block): ... here.
17455 (remove_forwarder_block_with_phi): Also move debug stmts here.
17457 2019-04-18 Jakub Jelinek <jakub@redhat.com>
17459 PR translation/79183
17460 * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
17461 inform where appropriate.
17463 2019-04-18 Richard Biener <rguenther@suse.de>
17465 * tree.c (get_qualified_type): Put found type variants at the
17466 head of the variant list.
17468 2018-04-17 Segher Boessenkool <segher@kernel.crashing.org>
17470 * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo.
17472 2019-04-17 Hongtao Liu <hongtao.liu@intel.com>
17475 * config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd,
17476 _mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd,
17477 _mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd,
17478 _mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd,
17479 _mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3.
17481 2019-04-17 Peter Bergner <bergner@linux.ibm.com>
17483 * ira-conflicts.c (print_allocno_conflicts): Always print something,
17484 even for allocno's with no conflicts.
17485 (print_conflicts): Print an extra newline.
17487 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
17489 * auto-inc-dec.c (attempt_change): Set the alignment of the
17490 temporary memory to that of the original.
17492 2019-04-17 Joao Moreira <jmoreira@suse.de>
17494 * targhooks.c (default_print_patchable_function_entry): Emit
17495 __patchable_function_entries section with writable flags to allow
17496 relocation resolution.
17498 2019-04-17 Jonny Grant <jg@jguk.org>
17500 * collect2.c (main): Change gcc.gnu.org URL to HTTPS.
17502 2019-04-17 Jakub Jelinek <jakub@redhat.com>
17504 PR middle-end/90095
17505 * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
17506 on lowpart SUBREGs.
17508 2019-04-17 Claudiu Zissulescu <claziss@synopsys.com>
17510 * config/arc/arc.c (arc_init): Format diagnostic string.
17511 (arc_override_options): Likewise.
17512 (check_if_valid_regno_const): Likewise.
17513 (arc_reorg): Likewise.
17515 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
17518 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
17520 (rs6000_emit_allocate_stack_1): Simplify condition. Adjust pattern
17522 * config/rs6000/rs6000.md (bits): Add entries for SF and DF.
17523 (*movdi_update1): Use Pmode.
17524 (movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
17525 (movdi_<mode>_update_stack): Rename to ...
17526 (movdi_update_stack): ... this. Fix comment. Change condition. Don't
17528 (*movsi_update1): Use Pmode.
17529 (*movsi_update2): Use Pmode.
17530 (movsi_update): Rename to ...
17531 (movsi_<mode>_update): ... this. Use Pmode.
17532 (movsi_update_stack): Fix condition.
17533 (*movhi_update1): Use Pmode. Fix argument to
17534 avoiding_indexed_address_p.
17535 (*movhi_update2): Ditto.
17536 (*movhi_update3): Ditto.
17537 (*movhi_update4): Ditto.
17538 (*movqi_update1): Ditto.
17539 (*movqi_update2): Ditto.
17540 (*movqi_update3): Ditto.
17541 (*movsf_update1, *movdf_update1): Merge, rename to...
17542 (*mov<mode>_update1): This. Use Pmode. Fix argument to
17543 avoiding_indexed_address_p. Add "size" attribute.
17544 (*movsf_update2, *movdf_update2): Merge, rename to...
17545 (*mov<mode>_update2): This. Ditto.
17546 (*movsf_update3): Use Pmode. Fix argument to
17547 avoiding_indexed_address_p.
17548 (*movsf_update4): Ditto.
17549 (allocate_stack): Simplify condition. Adjust pattern names.
17551 2019-04-17 Jakub Jelinek <jakub@redhat.com>
17554 * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
17555 whitespace at the start of target attribute string.
17557 2019-04-16 Pat Haugen <pthaugen@us.ibm.com>
17560 * config/rs6000/power9.md: Add store forwarding bypass.
17562 2019-04-16 Alexandre Oliva <aoliva@redhat.com>
17565 * valtrack.c (dead_debug_insert_temp): Reset debug references
17566 to the return value of a call being removed.
17568 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
17570 * config/arc/arc-protos.h (arc_register_move_cost): Remove.
17571 * config/arc/arc.c (arc_register_move_cost): Re-purpose it to
17572 implement target hook.
17573 (arc_memory_move_cost): New function.
17574 (TARGET_REGISTER_MOVE_COST): Define.
17575 (TARGET_MEMORY_MOVE_COST): Likewise.
17576 * config/arc/arc.h (REGISTER_MOVE_COST): Remove.
17577 (MEMORY_MOVE_COST): Likewise.
17579 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
17581 * config/arc/arc.md (sibcall_insn): Use Rcd constraint.
17582 (sibcall_value_insn): Likewise.
17583 * config/arc/constraints.md (Rs5): Remove.
17585 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
17587 * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
17588 for last two fake registers.
17589 (arc_conditional_register_usage): Make sure fake frame and arg
17590 pointer regs are in general regs class.
17591 (FRAME_POINTER_MASK): Remove.
17592 (RETURN_ADDR_MASK): Remove.
17593 (arc_must_save_register): Use hard frame regnum.
17594 (frame_restore_reg): Use hard_frame_pointer_rtx.
17595 (arc_save_callee_saves): Likewise.
17596 (arc_restore_callee_saves): Likewise.
17597 (arc_save_callee_enter): Likewise.
17598 (arc_restore_callee_leave): Likewise.
17599 (arc_save_callee_milli): Likewise.
17600 (arc_eh_return_address_location): Likewise.
17601 (arc_check_multi): Use hard frame regnum.
17602 (arc_can_eliminate): Likewise.
17603 * config/arc/arc.h (FIXED_REGISTERS): Make FP register available
17604 for register allocator.
17605 (REG_CLASS_CONTENTS): Update GENERAL_REGS.
17606 (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
17607 (FRAME_POINTER_REGNUM): Change it to a fake register.
17608 (HARD_FRAME_POINTER_REGNUM): Defined.
17609 (ARG_POINTER_REGNUM): Change it to a new fake register.
17610 (ELIMINABLE_REGS): Update.
17611 (REGISTER_NAMES): Update names.
17612 * config/arc/arc.md (LP_START): Remove.
17613 (LP_END): Likewise.
17614 (shift_si3_loop): Update pattern.
17616 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
17618 * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
17619 to avoid delay slot scheduling.
17620 (arc_must_save_register): Don't save SP.
17621 * config/arc/arc.md (stack_tie): Remove.
17622 (UNSPEC_ARC_STKTIE): Likewise.
17624 2019-04-16 Kito Cheng <kito.cheng@gmail.com>
17625 Shiva Chen <shiva0217@gmail.com>
17627 * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
17628 code gen with large shift amount.
17630 2019-04-16 Chung-Ju Wu <jasonwucj@gmail.com>
17632 * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
17635 2019-04-16 Jakub Jelinek <jakub@redhat.com>
17638 * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
17639 print -m64/-mx32/-m32 if it is true.
17640 (ix86_debug_options, ix86_function_specific_print): Pass true as
17641 ADD_ABI_P to ix86_target_string.
17642 (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
17643 ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
17644 or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.
17646 PR rtl-optimization/90082
17647 * dce.c (can_delete_call): New function.
17648 (deletable_insn_p, mark_insn): Use it.
17650 PR tree-optimization/90090
17651 * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
17653 (is_division_by_square): Likewise. Formatting fix.
17655 2019-04-16 Richard Biener <rguenther@suse.de>
17657 PR tree-optimization/56049
17658 * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
17659 equality check if alias-set zero will prevail.
17661 2019-04-15 Jeff Law <law@redhat.com>
17663 * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
17664 size and alignment as unsigned.
17666 2019-04-15 Richard Biener <rguenther@suse.de>
17669 * tree-loop-distribution.c (destroy_loop): Preserve correct
17672 2019-04-15 Richard Biener <rguenther@suse.de>
17674 PR tree-optimization/90071
17675 * tree-ssa-reassoc.c (init_range_entry): Do not pick up
17676 abnormal operands from def stmts.
17678 2019-04-15 Segher Boessenkool <segher@kernel.crashing.org>
17680 PR rtl-optimization/89794
17681 * combine.c (count_auto_inc): New function.
17682 (try_combine): Count how many auto_inc expressions there were in the
17683 original instructions. Ensure we have the same number in the new
17684 instructions. Remove the code that tried to ensure auto_inc side
17685 effects on i1 and i0 are not lost.
17687 2019-04-15 Richard Biener <rguenther@suse.de>
17690 * tree.h (auto_var_p): Declare.
17691 * tree.c (auto_var_p): New function, split out from ...
17692 (auto_var_in_fn_p): ... here.
17693 * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
17695 (new_var_info): Initialize it.
17696 (set_uids_in_ptset): Also set the shadow variable uid if required.
17697 (ipa_pta_execute): Postprocess points-to solutions assigning
17698 shadow variable uids for locals that may reach their containing
17699 function recursively.
17700 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
17701 assert but instead check whether the points-to solution is
17704 2019-04-15 Martin Jambor <mjambor@suse.cz>
17707 * cgraph.c (clone_of_p): Loop over clone chain for each step in
17710 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
17712 * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.
17714 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
17715 Kito Cheng <kito.cheng@gmail.com>
17716 Shiva Chen <shiva0217@gmail.com>
17718 * config/nds32/nds32-md-auxiliary.c
17719 (nds32_legitimize_pic_address): Use new PIC pattern.
17720 (nds32_legitimize_tls_address): Use new TLS pattern.
17721 (nds32_output_symrel): New.
17722 * config/nds32/nds32-protos.h (nds32_output_symrel): Declare.
17723 (nds32_alloc_relax_group_id): Ditto.
17724 * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New.
17725 (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use
17727 (nds32_group_tls_insn): Ditto.
17728 (nds32_group_float_insns): Ditto.
17729 * config/nds32/nds32.md (tls_le): New.
17732 2019-04-15 Chung-Ju Wu <jasonwucj@gmail.com>
17734 * configure: Add nds32 target for dwarf2 debug_line checking.
17735 * configure.ac: Regenerated.
17737 2019-04-14 Jan Hubicka <hubicka@ucw.cz>
17740 * ipa-devirt.c (skip_in_fields_list_p): New.
17741 (odr_types_equivalent_p): Use it.
17743 2019-04-13 Jakub Jelinek <jakub@redhat.com>
17746 * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
17747 instead of strncmp when checking for thumb and arm. Formatting fixes.
17749 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org>
17751 * doc/install.texi: Document --with-target-system-zlib.
17753 2019-04-12 Martin Sebor <msebor@redhat.com>
17759 * targhooks.c (default_vector_alignment): Avoid assuming
17760 argument fits in SHWI.
17761 * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
17762 a shift expression.
17763 * doc/extend.texi (__builtin_has_attribute): Add a clarifying note.
17765 2019-04-12 Jakub Jelinek <jakub@redhat.com>
17767 PR rtl-optimization/89965
17768 * dce.c: Include rtl-iter.h.
17769 (struct check_argument_load_data): New type.
17770 (check_argument_load): New function.
17771 (find_call_stack_args): Check for loads from stack slots still tracked
17772 in sp_bytes and punt if any is found.
17774 * config/mips/loongson-mmiintrin.h: Fix up #error message.
17776 2019-04-12 Jan Hubicka <hubicka@ucw.cz>
17778 * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
17779 * doc/invoke.texi (max-lto-streaming-paralellism): New --param.
17781 2019-04-12 Martin Liska <mliska@suse.cz>
17783 PR middle-end/89970
17784 * multiple_target.c (create_dispatcher_calls): Wrap ifunc
17786 (separate_attrs): Handle multiple 'default's.
17787 (expand_target_clones): Rework error handling code.
17789 2019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org>
17792 * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
17793 mode of vector rather than mode of destination for move instruction.
17794 * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
17795 Use QI inner mode with V16QI vector mode.
17797 2019-04-12 Jakub Jelinek <jakub@redhat.com>
17800 * config/tilepro/tilepro.c (tilepro_print_operand): Use just
17801 "invalid %%t operand" in output_operand_lossage message.
17803 2019-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
17805 * config/s390/predicates.md (permute_pattern_operand): New
17807 * config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
17808 operand for the permute pattern.
17809 ("*vec_perm<mode>"): New insn definition.
17810 ("bswap<mode>"): Generate the permute pattern operand in the
17811 expander and perform the operand reloads for pre arch13 level
17813 ("*bswap<mode>_emu"): Rename to ...
17814 ("*bswap<mode>"): ... this. And make the splitter vxe2 only.
17815 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
17816 Add the USE operand for the permute pattern.
17817 ("*vec_set_bswap_vec<mode>"): Likewise.
17819 2019-04-12 Jakub Jelinek <jakub@redhat.com>
17822 * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
17823 and gcc_unreachable if it fails, just call tree_to_uhwi which
17824 verifies that too. Test TREE_CHAIN instead of list_length > 1.
17825 Start warning message with a lower-case letter. Formatting fixes.
17827 PR rtl-optimization/90026
17828 * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
17829 successors, look for BARRIERs inside of the whole BB_FOOTER chain
17830 rather than just at the start of it. If e->src BB_FOOTER is not NULL
17831 in cfglayout mode, use emit_barrier_after_bb.
17833 2018-04-11 Steve Ellcey <sellcey@marvell.com>
17835 PR rtl-optimization/87763
17836 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
17839 2019-04-11 Tom de Vries <tdevries@suse.de>
17841 * doc/extend.texi (@node Statement Exprs): Note variable shadowing at
17842 max macro using statement expression.
17844 2019-04-11 David Edelsohn <dje.gcc@gmail.com>
17846 * xcoffout.h (xcoff_private_rodata_section_name): Declare.
17847 * xcoffout.c (xcoff_private_rodata_section_name): Define.
17848 * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
17849 read_only_private_data_section using xcoff_private_rodata_section_name.
17850 (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.
17852 2019-04-11 Christophe Lyon <christophe.lyon@linaro.org>
17855 * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.
17857 2019-04-11 Jakub Jelinek <jakub@redhat.com>
17859 PR rtl-optimization/89965
17860 * dce.c (sp_based_mem_offset): New function.
17861 (find_call_stack_args): Use sp_based_mem_offset.
17863 2019-04-11 Jonathan Wakely <jwakely@redhat.com>
17865 * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.
17867 2019-04-11 Richard Biener <rguenther@suse.de>
17869 PR tree-optimization/90020
17870 * tree-ssa-sccvn.c (vn_reference_may_trap): New function.
17871 * tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
17872 * tree-ssa-pre.c (compute_avail): Use it to not put
17873 possibly trapping references after a call that might not
17874 return into EXP_GEN.
17875 * gcse.c (compute_hash_table_work): Do not elide
17876 marking a block containing a call if the call might not
17879 2019-04-11 Richard Biener <rguenther@suse.de>
17881 PR tree-optimization/90018
17882 * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
17883 Test both SLP and interleaving variants.
17885 2019-04-11 Robin Dapp <rdapp@linux.ibm.com>
17887 * config/s390/8561.md: New file.
17888 * config/s390/driver-native.c (s390_host_detect_local_cpu):
17889 Add arch13 cpu model.
17890 * config/s390/s390-opts.h (enum processor_type): Likewise.
17891 * config/s390/s390.c (s390_get_sched_attrmask): Add arch13.
17892 (s390_get_unit_mask): Likewise.
17893 (s390_is_fpd): Likewise.
17894 (s390_is_fxd): Likewise.
17895 * config/s390/s390.h (s390_tune_attr): Likewise.
17896 * config/s390/s390.md: Include arch13 pipeline description.
17897 * config/s390/s390.opt: Add arch13.
17899 2018-04-10 Steve Ellcey <sellcey@marvell.com>
17901 PR rtl-optimization/87763
17902 * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
17904 * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
17906 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
17908 (*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
17909 (*aarch64_bfi<GPI:mode>4_noand): Ditto.
17910 (*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
17911 (*aarch64_bfi<GPI:mode>4_noshift): Ditto.
17913 2019-04-10 Jonathan Wakely <jwakely@redhat.com>
17915 * doc/invoke.texi (Optimize Options): Change "Nevertheless" to
17916 "Although" in -fipa-icf documentation.
17918 * doc/invoke.texi (Debugging Options): Explicitly state the semantics
17919 of using multiple -g options.
17921 2019-04-10 Martin Liska <mliska@suse.cz>
17923 PR gcov-profile/89959
17924 * doc/gcov.texi: Make documentation of -x option
17927 2019-04-10 Richard Biener <rguenther@suse.de>
17929 * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
17931 (DR_GROUP_SAME_DR_STMT): Remove.
17932 * tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
17933 * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
17934 replace with assert.
17935 (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
17936 (vect_record_grouped_load_vectors): Remove unreachable code.
17938 2019-04-10 Richard Earnshaw <rearnsha@arm.com>
17941 * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
17942 obsolete reference to N.
17944 2019-04-10 Jakub Jelinek <jakub@redhat.com>
17946 PR middle-end/90025
17947 * expr.c (store_expr): Set properly size on the MEM passed to
17951 * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
17952 with strlen in between hostsz-3 and hostsz-1 inclusive when no
17953 translation is needed, and when translation is needed, only append
17954 ... if the string length is hostsz or more bytes long. Avoid using
17957 2019-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
17960 * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
17961 * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
17963 * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
17964 differences directly.
17965 (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
17967 2019-04-09 Jakub Jelinek <jakub@redhat.com>
17969 PR translation/90011
17970 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
17972 * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
17974 * config/riscv/freebsd.h (LINK_SPEC): Likewise.
17975 * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
17976 * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
17977 trailing space from -gsplit-dwarf diagnostics.
17979 PR tree-optimization/89998
17980 * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
17981 instead of integer_type_node if possible, don't add ranges if return
17982 type is not compatible with int.
17983 * gimple-fold.c (gimple_fold_builtin_sprintf,
17984 gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
17987 2019-04-09 Martin Liska <mliska@suse.cz>
17989 * Makefile.in: Use GENERATOR_CFLAGS for all generators.
17990 * doc/install.texi: Document the new config.
17992 2019-04-09 Richard Sandiford <richard.sandiford@arm.com>
17994 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
17995 use gimple_expr_type for load and store calls. Skip over the
17996 condition argument in a conditional internal function.
17997 Protect use of TREE_INT_CST_LOW.
17999 2019-04-09 Jakub Jelinek <jakub@redhat.com>
18002 * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
18003 (riscv_merge_decl_attributes): Fix typo in diagnostics. Remove
18004 trailing period from it too.
18006 2019-04-08 wu yuan <wuyuan5@huawei.com>
18008 * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
18009 * config/aarch64/aarch64.md : Add "tsv110.md"
18010 * config/aarch64/tsv110.md: New file.
18012 2019-04-08 Richard Biener <rguenther@suse.de>
18014 PR tree-optimization/90006
18015 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
18018 2019-04-08 Andrea Corallo <andrea.corallo@arm.com>
18021 * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
18023 (fma_root_node): Likewise.
18024 (func_fma_steering): Likewise.
18026 2019-04-08 Jakub Jelinek <jakub@redhat.com>
18028 PR rtl-optimization/89865
18029 * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.
18031 PR rtl-optimization/89865
18032 * config/i386/i386.md
18033 (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
18034 numbers not to clash with the additional operands[4].
18035 (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
18036 with extra register copy in the middle.
18038 2019-04-08 Martin Liska <mliska@suse.cz>
18040 PR gcov-profile/89961
18041 * doc/gcov.texi: Document data_file.
18042 * gcov.c (generate_results): Add data_info into JSON output.
18044 2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com>
18046 PR tree-optimization/89725
18047 * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer
18048 loop's chrec as invariant symbol.
18049 * tree-chrec.h (chrec_contains_symbols): New parameter.
18050 * tree-data-ref.c (analyze_miv_subscript): Pass new argument.
18051 (build_classic_dist_vector_1, add_other_self_distances): Bypass access
18052 function of loops not in DDR's loop_nest.
18053 * tree-data-ref.h (index_in_loop_nest): Add unreachable check.
18055 2019-04-08 Chenghua Xu <paul.hua.gm@gmail.com>
18058 * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
18061 2019-04-07 Uroš Bizjak <ubizjak@gmail.com>
18064 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
18065 Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
18067 2019-04-05 Joern Rennecke <joern.rennecke@embecosm.com>
18069 * sched-deps.c (sched_macro_fuse_insns): Check return value of
18070 targetm.fixed_condition_code_regs.
18072 2019-04-05 Richard Biener <rguenther@suse.de>
18076 * tree-cfgcleanup.c (remove_forwarder_block): Always move
18077 debug bind stmts but reset them if they are not valid at the
18080 2019-04-05 Martin Liska <mliska@suse.cz>
18082 PR translation/89936
18083 * collect-utils.c (collect_execute): Use %< and %>, or %qs in
18084 order to wrap keywords or arguments.
18085 * collect2.c (main): Likewise.
18086 (scan_prog_file): Likewise.
18087 (scan_libraries): Likewise.
18088 * common/config/riscv/riscv-common.c
18089 (riscv_subset_list::parsing_subset_version): Likewise.
18090 (riscv_subset_list::parse_std_ext): Likewise.
18091 * config/aarch64/aarch64.c (aarch64_override_options_internal):
18093 * config/arm/arm.c (arm_option_override): Likewise.
18094 * config/cris/cris.c (cris_print_operand): Likewise.
18095 * config/darwin-c.c (darwin_pragma_options): Likewise.
18096 (darwin_pragma_unused): Likewise.
18097 (darwin_pragma_ms_struct): Likewise.
18098 * config/ft32/ft32.c (ft32_print_operand): Likewise.
18099 * config/i386/i386.c (print_reg): Likewise.
18100 (ix86_print_operand): Likewise.
18101 * config/i386/xm-djgpp.h: Likewise.
18102 * config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
18103 * config/m32c/m32c.c (m32c_option_override): Likewise.
18104 * config/msp430/msp430.c (msp430_option_override): Likewise.
18105 * config/nds32/nds32.c (nds32_option_override): Likewise.
18106 * config/nvptx/mkoffload.c (main): Likewise.
18107 * config/rx/rx.c (rx_print_operand): Likewise.
18108 (valid_psw_flag): Likewise.
18109 * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
18110 (vms_pragma_nomember_alignment): Likewise.
18111 (vms_pragma_extern_model): Likewise.
18112 * lto-wrapper.c (compile_offload_image): Likewise.
18113 * omp-offload.c (oacc_parse_default_dims): Likewise.
18114 * symtab.c (symtab_node::verify_base): Likewise.
18115 * tlink.c (recompile_files): Likewise.
18116 (start_tweaking): Likewise.
18117 * tree-profile.c (parse_profile_filter): Likewise.
18119 2019-04-05 Richard Sandiford <richard.sandiford@arm.com>
18121 PR tree-optimization/89956
18122 * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
18123 multiple negates of the same value.
18125 2019-04-04 Martin Sebor <msebor@redhat.com>
18127 PR middle-end/89957
18128 PR middle-end/89911
18129 * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands
18130 have the same precision since the function crashes otherwise.
18131 * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call
18132 has non-zero arguments.
18134 2019-04-04 Martin Sebor <msebor@redhat.com>
18136 PR middle-end/89934
18137 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
18138 out if the number of arguments is less than expected.
18140 2019-04-04 Jeff Law <law@redhat.com>
18142 PR rtl-optimization/89399
18143 * ree.c (combine_set_extension): Use single_set rather than
18144 digging into PATTERN for items on the candidate list.
18145 (combine_reaching_defs): Likewise.
18147 2019-04-04 Richard Sandiford <richard.sandiford@arm.com>
18149 PR rtl-optimization/46590
18150 * loop-invariant.c (find_defs): Move df_remove_problem and
18151 df_process_deferred_rescans to move_invariants.
18152 Move df_live_add_problem and df_live_set_all_dirty calls
18153 to move_invariants.
18154 (move_invariants): Likewise.
18155 (move_loop_invariants): Likewise, making the df_live calls
18156 conditional on -O. Remove the problem again if we added it
18159 2019-04-03 qing zhao <qing.zhao@oracle.com>
18161 PR tree-optimization/89730
18162 * ipa-inline.c (can_inline_edge_p): Delete the checking for
18163 -flive-patching=inline-only-static.
18164 (can_inline_edge_by_limits_p): Add the checking for
18165 -flive-patching=inline-only-static and grant always_inline
18166 even when -flive-patching=inline-only-static is specified.
18168 2019-04-03 Jeff Law <law@redhat.com>
18170 PR rtl-optimization/81025
18171 * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.
18173 2019-04-03 Richard Biener <rguenther@suse.de>
18175 PR tree-optimization/84101
18176 * tree-vect-stmts.c: Include explow.h for hard_function_value,
18177 regs.h for hard_regno_nregs.
18178 (cfun_returns): New helper.
18179 (vect_model_store_cost): When vectorizing a store to a decl
18180 we return and the function ABI returns in a multi-reg location
18181 account for the possible spilling that will happen.
18183 2019-04-03 Andreas Krebbel <krebbel@linux.ibm.com>
18185 * config/s390/s390.c (s390_legitimate_address_p): Reject long
18186 displacement addresses for vector mode operands.
18188 2019-04-03 Claudiu Zissulescu <claziss@synopsys.com>
18190 * config/arc/arc.c (GMASK_LEN): Define.
18191 (arc_restore_callee_saves): Restore first blink when
18194 2019-04-03 Sudakshina Das <sudi.das@arm.com>
18196 * doc/extend.texi: Add deprecated comment on sign-return-address
18197 function attribute and add mbranch-protection.
18198 * doc/invoke.texi: Add bti to the options for mbranch-protection.
18200 2019-04-03 Richard Biener <rguenther@suse.de>
18203 * lto-wrapper.c (run_gcc): Avoid implicit rules making
18204 the all target phony.
18206 2019-04-02 Uroš Bizjak <ubizjak@gmail.com>
18210 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
18211 Return false for variable DImode shifts.
18212 (dimode_scalar_chain::compute_convert_gain): Do not handle
18213 register count operand in variable DImode shifts.
18214 (dimode_scalar_chain::make_vector_copies): Remove support to copy
18215 count argument of a variable shift instruction to a vector register.
18216 (dimode_scalar_chain::convert_reg): Remove support to convert
18217 count argument of a variable shift instruction.
18219 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
18221 PR rtl-optimization/84206
18222 * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
18223 iterating over loop headers.
18225 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
18227 PR rtl-optimization/85876
18228 * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
18229 beyond the original fence.
18231 2019-04-02 Ulrich Weigand <uweigand@de.ibm.com>
18233 * config.gcc: Mark spu* targets as deprecated/obsolete.
18235 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
18237 * config/s390/s390-builtin-types.def: New builtin function type
18238 definitions. Remove unused types.
18239 * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
18240 (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
18241 (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
18242 overloaded builtins.
18243 (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
18244 (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
18245 * config/s390/vecintrin.h (vec_float): New builtin macro definition.
18246 (vec_double, vec_signed, vec_unsigned): Define to use the new
18247 overloaded builtins.
18248 * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
18251 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
18253 * config/s390/s390-builtin-types.def: New builtin function type
18255 * config/s390/s390-builtins.def (s390_vec_search_string_cc)
18256 (s390_vec_search_string_until_zero_cc): New overloaded builtins.
18257 (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
18258 (s390_vstrszh, s390_vstrszf): New low-level builtins.
18259 * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
18260 constant definitions.
18261 * config/s390/vecintrin.h (vec_search_string_cc)
18262 (vec_search_string_until_zero_cc): New builtin name definitions.
18263 * config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
18265 ("vec_vstrs<mode>"): New insn definition.
18267 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
18269 * config/s390/s390-builtin-types.def: Add new builtin function
18271 * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
18272 New overloaded builtins.
18273 (s390_vec_sldb, s390_vec_srdb): New low-level builtins. and
18275 * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
18276 (UNSPEC_VEC_SLDBYTE): ... this.
18277 (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
18278 * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
18280 * config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
18281 Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
18282 ("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.
18284 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
18286 ("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
18287 New insn definition.
18288 * config/s390/vx-builtins.md (V_HW_HSD): Move to ...
18289 * config/s390/vector.md (V_HW_HSD): ... here.
18291 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
18293 * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
18294 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
18295 ("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
18296 ("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
18297 New insn definitions.
18299 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
18301 * config/s390/s390-builtin-types.def: Add new builtin function type.
18302 * config/s390/s390-builtins.def: Add overloaded builtin
18303 s390_vec_reve and low-level builtins for s390_vler and s390_vster.
18304 * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
18305 * config/s390/vecintrin.h (vec_reve): New builtin name definition.
18306 * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
18307 ("eltswap<mode>"): New expander.
18308 ("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
18311 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
18313 * config/s390/s390-builtin-types.def: Add new builtin function types.
18314 * config/s390/s390-builtins.def: Add overloaded builtin
18315 s390_vec_revb. Add low-level builtins for vlbr and vstbr
18317 * config/s390/vecintrin.h (vec_revb): New builtin name definition.
18318 * config/s390/vector.md (VT_HW_HSDT): New mode iterator.
18319 ("bswap<mode>"): New expander.
18320 ("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.
18322 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
18324 * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
18325 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
18326 vector builtin version number in __VEC__.
18328 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
18330 * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
18332 (SFSI): New mode attribute.
18333 ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
18334 ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
18336 ("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
18337 ("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
18338 ("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
18339 ("floatsi<mode>2"): Add wcefb instruction.
18341 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
18343 * config/s390/s390.md ("xde"): Extend mode attribute to vector types.
18344 * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
18346 ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
18347 ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
18348 support 32 bit fp-int conversions. Rename to ...
18349 ("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
18350 ("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
18351 ("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
18352 ("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
18355 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
18357 * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
18358 if-then-else constructs if we can use the select instruction.
18359 * config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.
18361 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
18363 * config/s390/s390.md ("*popcountdi_arch13_cc")
18364 ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
18366 ("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
18367 Append _z196 to make it ...
18368 ("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
18369 ("popcounthi2_z196"): ... this.
18370 ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
18371 ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.
18373 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
18375 * config/s390/s390.c (s390_canonicalize_comparison): Convert
18376 certain compares for arch13 in order to make use of the condition
18377 code result produced by the new instructions.
18378 (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
18379 nxrk, and nxgrk instruction patterns.
18380 * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
18381 (inv_no): Add new code iterator together with some attributes.
18382 ("*andc_split_<mode>"): Disable splitter for arch13.
18383 ("*<ANDOR:bitops_name>c<GPR:mode>_cc")
18384 ("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
18385 ("*<ANDOR:bitops_name>c<GPR:mode>")
18386 ("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
18387 ("*n<ANDOR:inv_bitops_name><mode>_cconly")
18388 ("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
18389 ("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.
18391 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
18393 * common/config/s390/s390-common.c (processor_flags_table): New
18395 * config.gcc: Support arch13 with the --with-arch= configure flag.
18396 * config/s390/driver-native.c (s390_host_detect_local_cpu):
18397 * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
18398 * config/s390/s390.c (s390_get_sched_attrmask)
18399 (s390_get_unit_mask): Add PROCESSOR_ARCH13.
18400 * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
18401 * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
18402 (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
18403 (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
18405 * config/s390/s390.opt: Support arch13 as processor type in
18406 command line options.
18408 2019-04-02 Martin Liska <mliska@suse.cz>
18410 PR translation/89912
18411 * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
18412 Fix param description of graphite-max-arrays-per-scop.
18414 2019-04-02 Eric Botcazou <ebotcazou@adacore.com>
18416 * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
18417 (ASAN_CC1_SPEC): Use it in 64-bit mode.
18418 * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.
18420 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
18422 PR rtl-optimization/85412
18423 * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
18424 sel_sched_region_1, not after.
18426 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
18428 PR rtl-optimization/86928
18429 * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
18430 compute_live if necessary.
18431 (sel_redirect_edge_and_branch): Likewise.
18433 2019-04-01 Vladimir Makarov <vmakarov@redhat.com>
18435 PR rtl-optimization/89865
18436 * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard
18437 register if it is a part of small class.
18439 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
18441 PR rtl-optimization/87273
18442 * sel-sched-ir.c (merge_fences): Remove assert.
18444 2019-04-01 Richard Biener <rguenther@suse.de>
18446 PR tree-optimization/46590
18447 * domwalk.h (dom_walker::dom_walker): Consolidate constructors.
18448 (dom_walker::m_reachability): Add in place of...
18449 (dom_walker::m_skip_unreachable_blocks): ...this.
18450 * domwalk.c (dom_walker::dom_walker): Consoliate constructors.
18451 Move complex initialization ...
18452 (dom_walker::walk): Here. Especially compute m_bb_to_rpo
18453 lazily and initialize edge flags on each invocation.
18454 (dom_walker::bb_reachable): Use m_reachability.
18456 2019-04-01 Martin Liska <mliska@suse.cz>
18459 * opt-suggestions.c (option_proposer::build_option_suggestions):
18460 Add variant without any argument in order to provide better
18463 2019-04-01 Richard Biener <rguenther@suse.de>
18466 * gimple.c: Include langhooks.h.
18467 (gimple_get_alias_set): Treat enumeral types as the underlying
18470 2019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org>
18471 Eric Botcazou <ebotcazou@adacore.com>
18473 PR rtl-optimization/89862
18474 * rtl.h (word_register_operation_p): Exclude CONST_INT from operations
18475 that operates on the full registers for WORD_REGISTER_OPERATIONS
18478 2019-03-29 Jim Wilson <jimw@sifive.com>
18480 * common/config/riscv/riscv-common.c (riscv_parse_arch_string):
18481 Clear MASK_RVC and then set if C subset supported.
18483 2019-03-29 Jakub Jelinek <jakub@redhat.com>
18486 * gimplify.c (gimplify_compound_literal_expr): Don't optimize a
18487 non-addressable complit into its initializer if it is volatile.
18489 2019-03-29 Roman Zhuykov <zhroma@ispras.ru>
18491 * opts-common.c (integral_argument): Set errno properly in one case.
18493 2019-03-29 Martin Liska <mliska@suse.cz>
18495 * doc/invoke.texi: Remove -Wchkp from documentation.
18497 2019-03-29 Martin Liska <mliska@suse.cz>
18499 * dbgcnt.c (print_limit_reach): New function.
18502 2019-03-29 Martin Liska <mliska@suse.cz>
18504 * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
18505 (dbg_cnt_process_opt): Parse first tokens aas
18506 dbg_cnt_process_single_pair is also using strtok.
18508 2019-03-29 Jakub Jelinek <jakub@redhat.com>
18510 PR rtl-optimization/87485
18511 * function.c (expand_function_end): Move stack_protect_epilogue
18512 before loading of return value into hard register(s).
18514 2019-03-28 Jakub Jelinek <jakub@redhat.com>
18516 PR middle-end/89621
18517 * tree-inline.h (struct copy_body_data): Add
18518 dont_remap_vla_if_no_change flag.
18519 * tree-inline.c (remap_type_3, remap_type_2): New functions.
18520 (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
18521 and remap_type_2 returns false.
18522 * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
18523 Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
18524 only from where it is copied to nested contexts.
18526 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
18529 * config/i386/i386.md (RMW operation with LEA peephole):
18530 Use LEAMODE mode attribute instead of SWI mode iterator for
18533 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
18536 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
18537 Also process XEXP (src, 0) of a shift insn.
18539 2019-03-28 David Malcolm <dmalcolm@redhat.com>
18541 PR middle-end/89725
18542 * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
18543 Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.
18545 2019-03-28 Jakub Jelinek <jakub@redhat.com>
18547 * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
18549 (cprop_hardreg_bb, cprop_hardreg_debug): New functions.
18550 (pass_cprop_hardreg::execute): Use those. Don't repeat bb processing
18551 immediately after first one with df_analyze in between, but rather
18552 process all bbs, queueing ones that need second pass in a worklist,
18553 df_analyze, process queued debug insn changes and if second pass is
18554 needed, process bbs from worklist, df_analyze, process queued debug
18557 * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
18558 or CALL_P instead of INSN_P && !DEBUG_INSN_P.
18559 (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.
18561 2019-03-28 Jonathan Wakely <jwakely@redhat.com>
18564 * gengtype.h (create_nested_ptr_option): Fix parameter names to match
18567 2019-03-27 Mateusz B <mateuszb@poczta.onet.pl>
18570 * config/i386/i386.c (ix86_function_value_1): Call the newly added
18571 function for 32-bit MS_ABI.
18572 (function_value_ms_32): New function.
18574 2019-03-27 Andrew Stubbs <ams@codesourcery.com>
18576 * config/gcn/gcn.md (CC_SAVE_REG): New constant.
18577 (movdi): Call gen_movdi_symbol_save_scc.
18578 (gen_movdi_symbol_save_scc): New insn and split.
18580 2019-03-27 Peter Bergner <bergner@linux.ibm.com>
18582 PR rtl-optimization/89313
18583 * function.c (matching_constraint_num): New static function.
18584 (match_asm_constraints_1): Use it. Fixup white space and comment.
18585 Don't replace inputs with non-matching constraints which conflict
18586 with early clobber outputs.
18588 2019-03-27 Jeff Law <law@redhat.com>
18590 PR rtl-optimization/87761
18591 PR rtl-optimization/89826
18592 * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
18594 (pass_cprop_hardreg::execute): Call df_analyze after adding the
18595 note problem to get REG_DEAD/REG_UNUSED notes updated.
18597 2019-03-27 Richard Biener <rguenther@suse.de>
18599 PR tree-optimization/89463
18600 * tree-ssa-dce.c (remove_dead_stmt): Take output vector to
18601 queue edges to remove.
18602 (eliminate_unnecessary_stmts): Remove dead PHIs alongside
18603 dead stmts. Delay edge removal until PHIs are removed to
18604 make debug-stmt creation not confused by seemingly degenerate
18607 2019-03-27 Alan Modra <amodra@gmail.com>
18609 * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
18611 * config/rs6000/darwin.h: Likewise.
18612 * config/rs6000/rs6000.c: Likewise.
18614 2019-03-27 Alan Modra <amodra@gmail.com>
18616 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always
18617 assign rs6000_hard_regno_mode_ok_p[m][r]. Formatting.
18619 2019-03-26 Andrew Waterman <andrew@sifive.com>
18620 Jim Wilson <jimw@sifive.com>
18622 * config/riscv/generic.md (generic_alu, generic_load, generic_store)
18623 (generic_xfer, generic_branch, generic_imul, generic_idivsi)
18624 (generic_idivdi, generic_fmul_single, generic_fmul_double)
18625 (generic_fdiv, generic_fsqrt): Add check for generic tune.
18626 (generic_alu): Add auipc to type list.
18627 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
18628 (riscv_microarchitecture): Declare.
18629 * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
18630 * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
18632 (riscv_microarchitecture): New.
18633 (sifive_7_tune_info): New.
18634 (riscv_cpu_info_table): Add microarchitecture value for rocket and
18635 size. Add sifive-3-series, sifive-5-series, and sifive-7-series
18637 (riscv_store_data_bypass_p): New.
18638 (riscv_option_override): Set riscv_microarchitecture from
18639 cpu->microarchitecture.
18640 * config/riscv/riscv.md: Include sifive-7.md.
18643 (auipc<mode>): Change type to auipc.
18644 (restore_stack_nonlocal): New.
18645 * config/riscv/sifive-7.md: New.
18646 * doc/invoke.texi (RISC-V Options): Update mtune docs.
18648 2019-03-26 Uroš Bizjak <ubizjak@gmail.com>
18651 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
18652 Also process XEXP (src, 0) of a shift insn.
18654 2019-03-26 Richard Biener <rguenther@suse.de>
18656 * tree-inline.c (remap_gimple_stmt): Cache gimple_block.
18657 (copy_debug_stmt): Likewise.
18658 (expand_call_inline): Likewise.
18659 (copy_bb): Avoid redundant lookup & set of gimple_block.
18660 * gimple-low.c (lower_gimple_return): Likewise.
18661 (lower_builtin_setjmp): Likewise.
18663 2019-03-26 Jakub Jelinek <jakub@redhat.com>
18665 * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS
18666 is constant 0, turn into static const data member initialized to false.
18667 (hash_table::hash_table): Only initialize m_gather_mem_stats #if
18668 GATHER_STATISTICS. Add ATTRIBUTE_UNUSED to gather_mem_stats param.
18670 2019-03-26 Jason Merrill <jason@redhat.com>
18671 Jakub Jelinek <jakub@redhat.com>
18673 * mem-stats.h (mem_alloc_description::unregister_descriptor): New
18675 (mem_alloc_description::release_object_overhead): Fix comment typos.
18676 * hash-table.h (hash_table::~hash_table): Call
18677 release_instance_overhead only if m_entries is non-NULL, otherwise
18678 call unregister_descriptor.
18680 2019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com>
18682 PR tree-optimization/81740
18683 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
18684 In case of outer loop vectorization, check for backward dependence
18685 at the inner loop if outer loop dependence is reversed.
18687 2019-03-26 Alan Modra <amodra@gmail.com>
18689 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
18690 rs6000_vector_mem init. Correct wI and wJ comment.
18692 2019-03-25 Alexander Monakov <amonakov@ispras.ru>
18694 PR rtl-optimization/88347
18695 PR rtl-optimization/88423
18696 * sched-deps.c (sched_analyze_insn): Take into account that for
18697 tablejumps the barrier appears after a label and a jump_table_data.
18699 2019-03-25 Martin Sebor <msebor@redhat.com>
18702 * c-common.c (check_user_alignment): Rename local. Correct maximum
18703 alignment in diagnostic. Avoid assuming argument fits in SHWI,
18704 convert it to UHWI when it fits.
18706 2019-03-25 Johan Karlsson <johan.karlsson@enea.com>
18709 * dwarf2out.c (premark_used_variables): New function.
18710 (prune_unused_types_walk): Do not mark not premarked external
18712 (prune_unused_types): Call premark_used_variables.
18714 2019-03-25 Vladimir Makarov <vmakarov@redhat.com>
18716 PR rtl-optimization/89676
18717 * lra-constraints.c (curr_insn_transform): Do match reload for
18718 early clobbers when the match was successful only for different
18721 2019-03-25 Martin Sebor <msebor@redhat.com>
18723 * doc/extend.texi (Common Type Attributes): Document vector_size.
18724 (Common Variable Attributes): Mention size constraint. Correct
18726 (Vector Extensions): Use @dfn when defining bas type. Clarify
18727 base type and size constraints.
18729 2019-03-25 Richard Biener <rguenther@suse.de>
18731 PR tree-optimization/89789
18732 * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice
18733 changes from non-undefined back to undefined.
18735 2019-03-25 Thomas Otto <thomas.otto@pdv-fs.de>
18737 * dwarf2out.c (comp_dir_string): cached_wd could be set to both a
18738 heap string and a gc string, but since this variable is unknown to
18739 ggc the gc string might get reused and corrupted. Fixed by always
18740 using a heap string.
18742 2019-03-25 Richard Biener <rguenther@suse.de>
18744 PR tree-optimization/89779
18745 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return
18746 to remove IV defs, delay actual removal.
18747 (tree_ssa_iv_optimize_loop): Likewise. Avoid SCEV reset.
18748 (tree_ssa_iv_optimize): Remove eliminated IV defs at the
18749 very end, properly also reset loop control IV information.
18751 2019-03-25 Richard Biener <rguenther@suse.de>
18753 PR tree-optimization/89802
18754 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
18755 move EH data to folded stmt.
18757 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
18759 * config/s390/s390-builtin-types.def: Remove few unused types and
18760 fix sort order for others.
18762 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
18764 * config/s390/s390-c.c (s390_fn_types_compatible): Print the
18765 expected and found types with -mdebug during builtin matching.
18767 2019-03-25 Richard Biener <rguenther@suse.de>
18769 PR middle-end/89790
18770 * fold-const.c (operand_equal_p): Revert last change with
18773 2019-03-24 Segher Boessenkool <segher@kernel.crashing.org>
18775 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL
18776 notes for the result of the __tls_get_addr calls.
18777 * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New.
18779 2019-03-24 Jeff Law <law@redhat.com>
18781 * config/bfin/bfin.md (movpdi): Fix length for alternative 1.
18783 PR rtl-optimization/87761
18784 * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET,
18785 not INSN. Also check RTX_FRAME_RELATED_P. Queue insns for DF rescan
18787 (pass_cprop_hardreg::execute): Add df note problem and defer insn
18788 rescans. Reprocess blocks as needed, calling df_analyze before
18789 reprocessing. Always call df_analyze before fixing up debug bind
18792 2019-03-23 Segher Boessenkool <segher@kernel.crashing.org>
18794 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
18797 2019-03-22 Andrew Pinski <apinski@marvell.com>
18799 * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
18800 attrribute for uxtw.
18802 2019-03-26 Jeff Law <law@redhat.com>
18804 PR rtl-optimization/87761
18805 * config/mips/mips-protos.h (mips_split_move): Add new argument.
18806 (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move.
18807 (mips_split_move): Accept new INSN argument. Try to forward SRC
18808 into the next instruction.
18809 (mips_split_move_insn): Pass INSN through to mips_split_move.
18811 2019-03-22 Vladimir Makarov <vmakarov@redhat.com>
18813 PR rtl-optimization/89676
18814 * lra-constraints.c (curr_insn_transform): Do match reload for
18815 early clobbers even if the match was successful.
18817 2019-03-22 Jakub Jelinek <jakub@redhat.com>
18820 * doc/invoke.texi (-fconstexpr-ops-limit=): Document.
18822 2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com>
18824 * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
18826 2019-03-22 Jakub Jelinek <jakub@redhat.com>
18828 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
18829 <avx512>_fmsub_<mode>_mask3<round_name>,
18830 <avx512>_fnmadd_<mode>_mask3<round_name>,
18831 <avx512>_fnmsub_<mode>_mask3<round_name>,
18832 avx512f_vmfmadd_<mode>_mask3<round_name>,
18833 avx512f_vmfmsub_<mode>_mask3<round_name>,
18834 *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate>
18835 instead of register_operand and %v instead of v for match_operand 1.
18836 (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ...
18837 (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this. Use
18838 <round_nimm_predicate> instead of register_operand and %v instead of v
18839 for match_operand 1.
18841 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
18842 <avx512>_fmadd_<mode>_mask3<round_name>,
18843 <avx512>_fmsub_<mode>_mask<round_name>,
18844 <avx512>_fmsub_<mode>_mask3<round_name>,
18845 <avx512>_fnmadd_<mode>_mask<round_name>,
18846 <avx512>_fnmadd_<mode>_mask3<round_name>,
18847 <avx512>_fnmsub_<mode>_mask<round_name>,
18848 <avx512>_fnmsub_<mode>_mask3<round_name>,
18849 <avx512>_fmaddsub_<mode>_mask<round_name>,
18850 <avx512>_fmaddsub_<mode>_mask3<round_name>,
18851 <avx512>_fmsubadd_<mode>_mask<round_name>,
18852 <avx512>_fmsubadd_<mode>_mask3<round_name>): Use
18853 <round_nimm_predicate> instead of nonimmediate_operand.
18854 (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
18855 fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>):
18856 Use register_operand instead of <round_nimm_predicate> for the
18857 operand that needs to match output.
18858 (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
18859 *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>):
18860 Likewise. Formatting fixes.
18863 * config/i386/i386.c (enum ix86_builtins): Remove
18864 IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3.
18865 * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask,
18866 __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
18867 __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
18868 __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
18869 __builtin_ia32_vfmsubss3_mask3): New builtins.
18870 * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>,
18871 avx512f_vmfmadd_<mode>_mask3<round_name>,
18872 avx512f_vmfmadd_<mode>_maskz_1<round_name>,
18873 *avx512f_vmfmsub_<mode>_mask<round_name>,
18874 avx512f_vmfmsub_<mode>_mask3<round_name>,
18875 *avx512f_vmfmasub_<mode>_maskz_1<round_name>,
18876 *avx512f_vmfnmadd_<mode>_mask<round_name>,
18877 *avx512f_vmfnmadd_<mode>_mask3<round_name>,
18878 *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
18879 *avx512f_vmfnmsub_<mode>_mask<round_name>,
18880 avx512f_vmfnmsub_<mode>_mask3<round_name>,
18881 *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns.
18882 (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand.
18883 * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss,
18884 _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd,
18885 _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss,
18886 _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd,
18887 _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss,
18888 _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd,
18889 _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss,
18890 _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd,
18891 _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss,
18892 _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss,
18893 _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss,
18894 _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss,
18895 _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss,
18896 _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss,
18897 _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss,
18898 _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss,
18899 _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss,
18900 _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss,
18901 _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss,
18902 _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics.
18904 2019-03-21 Martin Sebor <msebor@redhat.com>
18906 PR tree-optimization/89350
18907 * builtins.c (compute_objsize): Also ignore offsets whose upper
18909 * gimple-ssa-warn-restrict.c (builtin_memref): Add new member.
18910 (builtin_memref::builtin_memref): Initialize new member.
18911 Allow EXPR to be null.
18912 (builtin_memref::extend_offset_range): Replace local with a member.
18913 Avoid assuming pointer offsets are unsigned.
18914 (builtin_memref::set_base_and_offset): Determine base object
18915 before computing offset range.
18916 (builtin_access::builtin_access): Handle memset.
18917 (builtin_access::generic_overlap): Replace local with a member.
18918 (builtin_access::strcat_overlap): Same.
18919 (builtin_access::overlap): Same.
18920 (maybe_diag_overlap): Same.
18921 (maybe_diag_access_bounds): Same.
18922 (wrestrict_dom_walker::check_call): Handle memset.
18923 (check_bounds_or_overlap): Same.
18925 2019-03-21 Jan Hubicka <hubicka@ucw.cz>
18926 Jakub Jelinek <jakub@redhat.com>
18929 * tree.c (fld_type_variant, fld_incomplete_type_of,
18930 fld_process_array_type): Call fld->pset.add and don't call
18931 add_tree_to_fld_list if it returns true.
18932 (free_lang_data_in_type): Similarly with self-recursive call. Purge
18933 non-marked types from TYPE_NEXT_VARIANT list.
18934 (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t).
18936 2019-03-21 Jakub Jelinek <jakub@redhat.com>
18938 * hash-table.h (hash_table): Add Lazy template parameter defaulted
18939 to false, if true, don't alloc_entries during construction, but defer
18940 it to the first method that needs m_entries allocated.
18941 (hash_table::hash_table, hash_table::~hash_table,
18942 hash_table::alloc_entries, hash_table::find_empty_slot_for_expand,
18943 hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow,
18944 hash_table::clear_slot, hash_table::traverse_noresize,
18945 hash_table::traverse, hash_table::iterator::slide): Adjust all methods.
18946 * hash-set.h (hash_set): Add Lazy template parameter defaulted to
18948 (hash_set::contains): If Lazy is true, use find_slot_with_hash with
18949 NO_INSERT instead of find_with_hash.
18950 (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter,
18951 hash_set::m_table): Add Lazy to template params of hash_table.
18952 (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param.
18953 * attribs.c (test_attribute_exclusions): Likewise.
18954 * hash-set-tests.c (test_set_of_strings): Add iterator tests for
18955 hash_set. Add tests for hash_set with Lazy = true.
18957 2019-03-21 Richard Biener <rguenther@suse.de>
18959 PR tree-optimization/89779
18960 * tree.c (tree_nop_conversion): Consolidate and fix defensive
18961 checks with respect to released SSA names now having error_mark_node
18963 * fold-const.c (operand_equal_p): Likewise.
18965 2019-03-20 Andreas Krebbel <krebbel@linux.ibm.com>
18968 * config/s390/s390.c (global_not_special_regno_p): Move to make it
18970 (s390_optimize_register_info): Use global_not_special_regno_p to
18971 check for global regs.
18973 2019-03-20 Jakub Jelinek <jakub@redhat.com>
18976 * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
18977 update this_alternative nor this_alternative_set.
18979 2019-03-19 Jim Wilson <jimw@sifive.com>
18982 * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals
18983 align, size, offset. Use them to handle a BLKmode reference. Update
18985 (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p.
18987 2019-03-19 Jakub Jelinek <jakub@redhat.com>
18989 PR rtl-optimization/89768
18990 * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
18991 instead of GEN_INT.
18992 (unroll_loop_runtime_iterations): Likewise.
18994 2019-03-19 Martin Sebor <msebor@redhat.com>
18996 PR tree-optimization/89644
18997 * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p
18998 rather than endptr as an indicator of nul-termination.
19000 PR tree-optimization/89644
19001 * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated
19002 arrays in determining sequence sizes in strncpy and stpncpy.
19004 2019-03-19 Martin Liska <mliska@suse.cz>
19006 PR middle-end/89737
19007 * predict.c (combine_predictions_for_bb): Empty likely_edges and
19008 unlikely_edges if there's an edge that belongs to both these sets.
19010 2018-03-19 Segher Boessenkool <segher@kernel.crashing.org>
19013 * config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a
19014 non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned,
19015 go via a stack temporary.
19017 2019-03-19 Jakub Jelinek <jakub@redhat.com>
19020 * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
19021 instead of gen_rtx_SUBREG.
19022 * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.
19024 2019-03-19 Richard Biener <rguenther@suse.de>
19027 * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
19029 2019-03-19 Jan Hubicka <hubicka@ucw.cz>
19033 * tree.c (free_lang_data_in_decl): Do not free context of C++
19036 2019-03-19 Jakub Jelinek <jakub@redhat.com>
19039 * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use
19040 subs for the first alternative except when operands[3] is 1.
19043 * gimplify.c (gimplify_asm_expr): For output argument with
19044 TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
19047 2019-03-19 Eric Botcazou <ebotcazou@adacore.com>
19049 PR rtl-optimization/89753
19050 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
19051 explicit unrolling factor even more robust.
19053 2019-03-19 Jakub Jelinek <jakub@redhat.com>
19056 * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
19057 compensation use x2 += 1 instead of x2 -= -1 and when honoring
19058 signed zeros, do another copysign after the compensation.
19060 2019-03-18 Martin Sebor <msebor@redhat.com>
19062 PR tree-optimization/89720
19063 * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min
19064 more conservatively, the same as anti-range.
19066 2019-03-18 Richard Biener <rguenther@suse.de>
19068 PR middle-end/88945
19069 * tree-ssanames.c (release_ssa_name_fn): For released SSA names
19070 use a TREE_TYPE of error_mark_node to avoid ICEs when dumping
19071 basic-blocks that are removed. Remove restoring SSA_NAME_VAR.
19072 * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking.
19074 2019-03-18 Andrew Stubbs <ams@codesourcery.com>
19076 * config/gcn/gcn-run.c (struct output): Make next_output unsigned.
19077 Extend queue to 1024 entries.
19078 Add "consumed" field.
19079 (gomp_print_output): Remove print_index parameter.
19080 Add final parameter.
19081 Change limit to unsigned.
19082 Use consumed field to implement circular buffer.
19083 Detect interrupted print in final pass.
19084 Flush output at the end.
19085 (run): Update gomp_print_output usage.
19086 (main): Initialize kernargs->output_data.consumed.
19088 2019-03-18 Richard Sandiford <richard.sandiford@arm.com>
19090 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the
19091 calculation of the minimum number of scalar iterations for
19092 fully-predicated loops.
19094 2019-03-18 Martin Jambor <mjambor@suse.cz>
19096 PR tree-optimization/89546
19097 * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if
19098 any propagation to its children took place.
19100 2019-03-18 Andrew Burgess <andrew.burgess@embecosm.com>
19103 * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset
19104 parameter, and make use of it.
19105 (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single.
19107 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
19109 * config/arc/arc.opt (mcode-density-frame): Get the inital value
19110 from TARGET_CODE_DENSITY_FRAME_DEFAULT.
19111 * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
19112 * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
19113 * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to
19114 match what the ops is doing.
19115 (push_multi_fp_blink): Likewise.
19116 * config/arc/arc.c (arc_override_options): Enable enter/leave when
19117 compiling for size and elf target.
19118 (arc_save_callee_enter): Adjust note to match what enter/leave
19121 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
19123 * config/arc/arc.md (tst_movb): Fix constraint.
19125 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
19127 * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
19129 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
19131 * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare.
19132 * config/arc/arc.c (arc_conditional_register_usage): Remove all
19133 reg_alloc_order references.
19134 (size_alloc_order): Define.
19135 (arc_adjust_reg_alloc_order): New function.
19136 * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register
19138 (ADJUST_REG_ALLOC_ORDER): Define.
19139 (HONOR_REG_ALLOC_ORDER): Likewise.
19141 2019-03-18 Richard Biener <rguenther@suse.de>
19144 * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided
19145 loads and stores a bit more.
19147 2019-03-18 Richard Biener <rguenther@suse.de>
19150 * config/i386/i386.c (ix86_add_stmt_cost): Apply strided
19151 load pessimization to stores as well.
19153 2019-03-18 Andrey Belevantsev <abel@ispras.ru>
19155 PR middle-end/86979
19156 * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible
19157 successor, use NULL as its av set.
19159 2019-03-15 Segher Boessenkool <segher@kernel.crashing.org>
19161 PR rtl-optimization/89721
19162 * lra-constraints (invariant_p): Return false if side_effects_p holds.
19164 2019-03-15 Kelvin Nilsen <kelvin@gcc.gnu.org>
19167 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
19168 When handling vec_extract, use modular arithmetic to allow
19169 constant selectors greater than vector length.
19170 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
19171 V1TImode vectors to have constant selector values greater than 0.
19172 Use modular arithmetic to compute vector index.
19173 (rs6000_split_vec_extract_var): Use modular arithmetic to compute
19174 index for in-memory vectors. Correct code generation for
19175 in-register vectors.
19176 (altivec_expand_vec_ext_builtin): Use modular arithmetic to
19179 2019-03-15 Alexandre Oliva <aoliva@redhat.com>
19183 * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
19186 2019-03-15 Jakub Jelinek <jakub@redhat.com>
19189 * tree.c (inchash::add_expr): Strip any location wrappers.
19190 * fold-const.c (operand_equal_p): Move stripping of location wrapper
19191 after hash verification.
19194 * dwarf2out.c (add_const_value_attribute): Return false for MINUS,
19195 SIGN_EXTEND and ZERO_EXTEND.
19197 2019-03-14 Jason Merrill <jason@redhat.com>
19198 Jakub Jelinek <jakub@redhat.com>
19200 * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather
19201 than if is_empty (*slot).
19202 * hash-set-tests.c (test_set_of_strings): Add tests for addition of
19203 existing elt and for elt removal.
19204 * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal
19205 of already removed elt.
19207 2019-03-15 H.J. Lu <hongjiu.lu@intel.com>
19210 * config/i386/i386.c (remove_partial_avx_dependency): Handle
19211 REG_EH_REGION note.
19213 2019-03-14 Martin Liska <mliska@suse.cz>
19216 * doc/invoke.texi: Remove -fdump-class-hierarchy option.
19218 2019-03-14 Richard Biener <rguenther@suse.de>
19221 * config/i386/i386.c (make_resolver_func): Properly set
19222 DECL_CONTEXT on the RESULT_DECL.
19223 * config/rs6000/rs6000.c (make_resolver_func): Likewise.
19225 2019-03-14 Richard Biener <rguenther@suse.de>
19227 * gimple-pretty-print.c: Include cfgloop.h.
19228 (dump_gimple_phi): Adjust.
19229 (dump_gimple_bb_header): Dump loop header for GIMPLE.
19230 (pp_cfg_jump): Adjust.
19231 (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well.
19232 * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call.
19233 (lower_phi_internal_fn): Remove.
19234 (verify_gimple_call): Remove IFN_PHI special-casing.
19235 (dump_function_to_file): Dump IL state.
19236 * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes
19237 done to deal with PHI nodes being present in non-SSA state.
19239 2019-03-14 Jakub Jelinek <jakub@redhat.com>
19242 * multiple_target.c (create_dispatcher_calls): Change
19243 references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
19244 In the node->iterate_referring loop, push *ref rather than ref, call
19245 ref->remove_reference () and always pass 0 to iterate_referring.
19247 PR rtl-optimization/89679
19248 * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
19249 would contain a paradoxical SUBREG.
19251 2019-03-14 Richard Biener <rguenther@suse.de>
19253 PR tree-optimization/89710
19254 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
19257 2019-03-14 Martin Liska <mliska@suse.cz>
19259 * coverage.c (coverage_begin_function): Stream also
19261 * doc/gcov.texi: Document 2 new fields in JSON file. Improve
19262 documentation about function declaration location.
19263 * gcov-dump.c (tag_function): Print whole range
19264 of function declaration.
19265 * gcov.c (struct function_info): Add end_column field.
19266 (function_info::function_info): Initialize it.
19267 (output_json_intermediate_file): Output {start,end}_column
19269 (read_graph_file): Read end_column.
19271 2019-03-14 Richard Biener <rguenther@suse.de>
19273 PR middle-end/89698
19274 * fold-const.c (operand_equal_p): For INDIRECT_REF check
19275 that the access types are similar.
19277 2019-03-14 Jakub Jelinek <jakub@redhat.com>
19279 PR tree-optimization/89703
19280 * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
19281 aren't compatible also with builtin_decl_explicit. Check pure
19282 or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
19283 and BUILT_IN_STPNCPY{,_CHK}.
19285 2019-03-14 H.J. Lu <hongjiu.lu@intel.com>
19288 * config/i386/i386.c (ix86_print_operand): Handle 'M' to add
19289 addr32 prefix to VSIB address for X32.
19290 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
19292 (*avx512pf_gatherpf<mode>df_mask): Likewise.
19293 (*avx512pf_scatterpf<mode>sf_mask): Likewise.
19294 (*avx512pf_scatterpf<mode>df_mask): Likewise.
19295 (*avx2_gathersi<mode>): Prepend "%M3" to opcode.
19296 (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
19297 (*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
19298 (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
19299 (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
19300 (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
19301 (*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
19302 (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
19303 (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
19304 (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
19305 (*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
19306 (*avx512f_scatterdi<mode>): Likewise.
19308 2019-03-13 Vladimir Makarov <vmakarov@redhat.com>
19311 * lra-constraints.c (inherit_in_ebb): Update
19312 potential_reload_hard_regs along with live_hard_regs.
19314 2019-03-13 Jakub Jelinek <jakub@redhat.com>
19317 * dwarf2out.c (size_of_die): For dw_val_class_view_list always use
19319 (value_format): For dw_val_class_view_list never use DW_FORM_loclistx.
19321 2019-03-13 Martin Sebor <msebor@redhat.com>
19323 PR tree-optimization/89662
19324 * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type
19327 2019-03-13 Richard Biener <rguenther@suse.de>
19329 PR middle-end/89677
19330 * tree-scalar-evolution.c (simplify_peeled_chrec): Do not
19331 throw FP expressions at tree-affine.
19333 2019-03-14 Richard Biener <rguenther@suse.de>
19335 * tree-pretty-print.c (dump_generic_node): For -gimple properly
19336 dump negative integer constants using _Literal (type) -num.
19338 2019-03-13 Jakub Jelinek <jakub@redhat.com>
19340 * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
19341 nonlocal_value member.
19343 PR middle-end/88588
19344 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
19345 (ipa_simd_modify_function_body): Handle PHIs.
19347 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
19349 * config/s390/s390.c (s390_option_override_internal): Use more
19350 aggressive inlining parameters.
19352 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
19354 * config/s390/3906.md: New file.
19355 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
19356 (LONGRUNNING_THRESHOLD): Remove.
19357 (MAX_SCHED_MIX_SCORE): Decrease.
19358 (MAX_SCHED_MIX_DISTANCE): Decrease.
19359 (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely.
19360 (struct s390_sched_state): New struct to hold scheduling state.
19361 (S390_SCHED_STATE_NORMAL): Remove.
19362 (S390_SCHED_STATE_CRACKED): Remove.
19363 (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add.
19364 (s390_get_sched_attrmask): Use new attribute.
19365 (s390_get_unit_mask): Use new units.
19366 (s390_is_fpd): New function.
19367 (s390_is_fxd): New function.
19368 (s390_is_longrunning): New function.
19369 (s390_sched_score): Use new functions.
19370 (s390_sched_reorder): Likewise.
19371 (s390_sched_variable_issue): Rework and use new functions.
19372 (s390_sched_init): Use new functions.
19373 * config/s390/s390.h (s390_tune_attr): Add z14.
19374 * config/s390/s390.md: Add z14.
19376 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
19378 * config/s390/2964.md: Update pipeline description.
19379 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
19380 (LONGRUNNING_THRESHOLD): Remove.
19381 (LATENCY_FACTOR): Remove.
19382 (s390_get_unit_mask): Add unit.
19383 (s390_sched_score): Use fxd/fpd.
19384 (s390_sched_variable_issue): Use fxd/fpd.
19386 2019-03-12 Martin Liska <mliska@suse.cz>
19388 * config/i386/i386.c: Reword an error message.
19390 2019-03-12 Martin Jambor <mjambor@suse.cz>
19392 * cgraph.c (cgraph_node::dump): Dump more info for former thunks,
19393 terminate with newline.
19395 2019-03-12 Jakub Jelinek <jakub@redhat.com>
19398 * config/s390/s390.md (tabort): Use %wd instead of
19399 HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital
19400 letters and periods.
19401 * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in
19402 output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace
19405 PR middle-end/89663
19406 * builtins.c (expand_builtin_int_roundingfn,
19407 expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
19408 gcc_unreachable if validate_arglist fails.
19410 2019-03-12 Richard Biener <rguenther@suse.de>
19412 PR tree-optimization/89664
19413 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly
19414 free the occurance tree after the early out.
19416 2019-03-11 Jakub Jelinek <jakub@redhat.com>
19418 PR middle-end/89655
19420 * vr-values.c (vr_values::update_value_range): If
19421 old_vr->varying_p (), don't update it, make new_vr also VARYING
19424 2019-03-11 Martin Liska <mliska@suse.cz>
19426 * config/aarch64/aarch64.c (aarch64_override_options_internal):
19427 Fix double string quoting.
19429 2019-03-11 Martin Liska <mliska@suse.cz>
19431 * collect-utils.c (collect_wait): Wrap apostrophes
19432 in gcc internal format with %'.
19433 * collect2.c (main): Likewise.
19434 (scan_prog_file): Likewise.
19435 (scan_libraries): Likewise.
19436 * config/i386/i386.c (ix86_expand_call): Likewise.
19437 (ix86_handle_interrupt_attribute): Likewise.
19438 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
19439 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
19440 * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise.
19441 * lto-wrapper.c (find_crtoffloadtable): Likewise.
19442 * symtab.c (symtab_node::verify_base): Likewise.
19443 * tree-cfg.c (verify_gimple_label): Likewise.
19444 * tree.c (verify_type_variant): Likewise.
19446 2019-03-11 Martin Liska <mliska@suse.cz>
19448 * builtins.c (expand_builtin_thread_pointer): Wrap an option name
19449 in a string format message and fix GNU coding style.
19450 (expand_builtin_set_thread_pointer): Likewise.
19451 * common/config/aarch64/aarch64-common.c
19452 (aarch64_rewrite_selected_cpu): Likewise.
19453 * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise.
19454 * common/config/arc/arc-common.c (arc_handle_option): Likewise.
19455 * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise.
19456 * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
19457 * common/config/i386/i386-common.c (ix86_handle_option): Likewise.
19458 * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise.
19459 * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise.
19460 * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise.
19461 * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise.
19462 * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option):
19464 * common/config/riscv/riscv-common.c
19465 (riscv_subset_list::parsing_subset_version): Likewise.
19466 (riscv_subset_list::parse_std_ext): Likewise.
19467 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
19468 (riscv_subset_list::parse): Likewise.
19469 * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise.
19470 * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise.
19471 (aarch64_override_options_internal): Likewise.
19472 (aarch64_validate_mcpu): Likewise.
19473 (aarch64_validate_march): Likewise.
19474 (aarch64_validate_mtune): Likewise.
19475 (aarch64_override_options): Likewise.
19476 * config/alpha/alpha.c (alpha_option_override): Likewise.
19477 * config/arc/arc.c (arc_init): Likewise.
19478 (parse_mrgf_banked_regs_option): Likewise.
19479 (arc_override_options): Likewise.
19480 (arc_expand_builtin_aligned): Likewise.
19481 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise.
19482 (arm_expand_builtin): Likewise.
19483 * config/arm/arm.c (arm_option_check_internal): Likewise.
19484 (arm_configure_build_target): Likewise.
19485 (arm_option_override): Likewise.
19486 (arm_options_perform_arch_sanity_checks): Likewise.
19487 (arm_handle_cmse_nonsecure_entry): Likewise.
19488 (arm_handle_cmse_nonsecure_call): Likewise.
19489 (arm_tls_referenced_p): Likewise.
19490 (thumb1_expand_prologue): Likewise.
19491 * config/avr/avr.c (avr_option_override): Likewise.
19492 * config/bfin/bfin.c (bfin_option_override): Likewise.
19493 * config/c6x/c6x.c (c6x_option_override): Likewise.
19494 * config/cr16/cr16.c (cr16_override_options): Likewise.
19495 * config/cris/cris.c (cris_option_override): Likewise.
19496 * config/csky/csky.c (csky_handle_isr_attribute): Likewise.
19497 * config/darwin-c.c (macosx_version_as_macro): Likewise.
19498 * config/darwin.c (darwin_override_options): Likewise.
19499 * config/frv/frv.c (frv_expand_builtin): Likewise.
19500 * config/h8300/h8300.c (h8300_option_override): Likewise.
19501 * config/i386/i386.c (parse_mtune_ctrl_str): Likewise.
19502 (ix86_option_override_internal): Likewise.
19503 (warn_once_call_ms2sysv_xlogues): Likewise.
19504 (ix86_expand_prologue): Likewise.
19505 (split_stack_prologue_scratch_regno): Likewise.
19506 (ix86_warn_parameter_passing_abi): Likewise.
19507 * config/ia64/ia64.c (fix_range): Likewise.
19508 * config/m68k/m68k.c (m68k_option_override): Likewise.
19509 * config/microblaze/microblaze.c (microblaze_option_override): Likewise.
19510 * config/mips/mips.c (mips_emit_probe_stack_range): Likewise.
19511 (mips_set_compression_mode): Likewise.
19512 * config/mmix/mmix.c (mmix_option_override): Likewise.
19513 * config/mn10300/mn10300.c (mn10300_option_override): Likewise.
19514 * config/msp430/msp430.c (msp430_option_override): Likewise.
19515 * config/nds32/nds32.c (nds32_option_override): Likewise.
19516 * config/nios2/nios2.c (nios2_custom_check_insns): Likewise.
19517 (nios2_option_override): Likewise.
19518 (nios2_expand_custom_builtin): Likewise.
19519 * config/nvptx/mkoffload.c (main): Likewise.
19520 * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise.
19521 * config/pa/pa.c (fix_range): Likewise.
19522 (pa_option_override): Likewise.
19523 * config/riscv/riscv.c (riscv_parse_cpu): Likewise.
19524 (riscv_option_override): Likewise.
19525 * config/rl78/rl78.c (rl78_option_override): Likewise.
19526 * config/rs6000/aix61.h: Likewise.
19527 * config/rs6000/aix71.h: Likewise.
19528 * config/rs6000/aix72.h: Likewise.
19529 * config/rs6000/driver-rs6000.c (elf_platform): Likewise.
19530 * config/rs6000/freebsd64.h: Likewise.
19531 * config/rs6000/linux64.h: Likewise.
19532 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
19533 (rs6000_expand_zeroop_builtin): Likewise.
19534 (rs6000_expand_mtfsb_builtin): Likewise.
19535 (rs6000_expand_set_fpscr_rn_builtin): Likewise.
19536 (rs6000_expand_set_fpscr_drn_builtin): Likewise.
19537 (rs6000_invalid_builtin): Likewise.
19538 (rs6000_expand_split_stack_prologue): Likewise.
19539 * config/rs6000/rtems.h: Likewise.
19540 * config/rx/rx.c (valid_psw_flag): Likewise.
19541 (rx_expand_builtin): Likewise.
19542 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
19543 * config/s390/s390.c (s390_expand_builtin): Likewise.
19544 (s390_function_profiler): Likewise.
19545 (s390_option_override_internal): Likewise.
19546 (s390_option_override): Likewise.
19547 * config/sh/sh.c (sh_option_override): Likewise.
19548 (sh_builtin_saveregs): Likewise.
19549 (sh_fix_range): Likewise.
19550 * config/sh/vxworks.h: Likewise.
19551 * config/sparc/sparc.c (sparc_option_override): Likewise.
19552 * config/spu/spu.c (spu_option_override): Likewise.
19553 (fix_range): Likewise.
19554 * config/visium/visium.c (visium_option_override): Likewise.
19555 (visium_handle_interrupt_attr): Likewise.
19556 * config/xtensa/xtensa.c (xtensa_option_override): Likewise.
19557 * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise.
19558 (dbg_cnt_process_opt): Likewise.
19559 * dwarf2out.c (output_dwarf_version): Likewise.
19560 * except.c (expand_eh_return): Likewise.
19561 * gcc.c (defined): Likewise.
19562 (driver_handle_option): Likewise.
19563 (process_command): Likewise.
19564 (compare_files): Likewise.
19565 (driver::prepare_infiles): Likewise.
19566 (driver::do_spec_on_infiles): Likewise.
19567 (driver::maybe_run_linker): Likewise.
19568 * omp-offload.c (oacc_parse_default_dims): Likewise.
19569 * opts-global.c (handle_common_deferred_options): Likewise.
19570 * opts.c (parse_sanitizer_options): Likewise.
19571 (common_handle_option): Likewise.
19572 (enable_warning_as_error): Likewise.
19573 * passes.c (enable_disable_pass): Likewise.
19574 * plugin.c (parse_plugin_arg_opt): Likewise.
19575 (default_plugin_dir_name): Likewise.
19576 * targhooks.c (default_expand_builtin_saveregs): Likewise.
19577 (default_pch_valid_p): Likewise.
19578 * toplev.c (init_asm_output): Likewise.
19579 (process_options): Likewise.
19580 (toplev::run_self_tests): Likewise.
19581 * tree-cfg.c (verify_gimple_call): Likewise.
19582 * tree-inline.c (inline_forbidden_p_stmt): Likewise.
19583 (tree_inlinable_function_p): Likewise.
19584 * var-tracking.c (vt_find_locations): Likewise.
19586 2019-03-11 Andreas Krebbel <krebbel@linux.ibm.com>
19588 * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not
19589 only on the else branch.
19591 2019-03-11 Martin Liska <mliska@suse.cz>
19593 * gcov.c (output_intermediate_json_line): Print function
19595 (output_json_intermediate_file): Add new argument.
19596 * doc/gcov.texi: Document the change.
19598 2019-03-11 Eric Botcazou <ebotcazou@adacore.com>
19600 PR rtl-optimization/89588
19601 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
19602 explicit unrolling factor more robust.
19604 2019-03-11 Richard Biener <rguenther@suse.de>
19606 PR tree-optimization/89649
19607 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
19608 * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize
19609 on the prolog and epilog loops.
19610 (vect_loop_versioning): Return copy of loop.
19611 * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize
19612 on the non-vectorized version of the loop.
19614 2019-03-10 Uroš Bizjak <ubizjak@gmail.com>
19617 * config/i386/sse.md (*vec_extractv2di_0_sse):
19618 Add (=r,x) alternative and corresponding splitter.
19620 2019-03-10 Martin Jambor <mjambor@suse.cz>
19622 PR tree-optimization/85762
19623 PR tree-optimization/87008
19624 PR tree-optimization/85459
19625 * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool
19626 it points to if there is a type changing MEM_REF. Adjust all callers.
19627 (build_accesses_from_assign): Disable total scalarization if
19628 contains_vce_or_bfcref_p returns true through the new parameter, for
19631 2019-03-09 Jakub Jelinek <jakub@redhat.com>
19634 * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for
19635 dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.
19638 * common.opt (fdiagnostics-show-labels,
19639 fdiagnostics-show-line-numbers, fdiagnostics-format=,
19640 fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support,
19641 gas-locview-support, ginline-points, ginternal-reset-location-views):
19642 Terminate description text with a dot.
19643 * config/microblaze/microblaze.opt (mxl-prefetch): Likewise.
19644 * config/mcore/mcore.opt (m210, m340): Likewise.
19645 * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove,
19646 mnops=): Start description text with a capital letter.
19647 * config/arc/arc.opt (msize-level=): Likewise.
19648 * config/sh/sh.opt (minline-ic_invalidate): Likewise.
19649 * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib,
19650 mnewlib): Likewise.
19651 * config/ft32/ft32.opt (msim): Likewise.
19652 (mft32b, mcompress): Likewise. Terminate description text with a dot.
19653 (mnodiv, mnopm): Terminate description text with a dot.
19654 * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with
19656 * config/i386/i386.opt (prefer_vector_width, instrument_return):
19658 * config/rx/rx.opt (nofpu): Remove trailing spaces from description
19661 PR rtl-optimization/89634
19662 * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1
19663 are modified in BB_END (e->src) instruction.
19665 2019-03-08 David Malcolm <dmalcolm@redhat.com>
19668 * config/i386/i386.c (ix86_set_current_function): Make "sorry"
19669 messages more amenable to translation, and improve wording.
19671 2019-03-08 Bill Schmidt <wschmidt@linux.ibm.com>
19673 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
19674 ud- and du-chains between phases.
19676 2019-03-08 Richard Sandiford <richard.sandiford@arm.com>
19679 * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
19680 instead of POLY_INT_CST.
19682 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
19684 * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
19687 2019-03-08 Uroš Bizjak <ubizjak@gmail.com>
19692 * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
19693 (_mm_storeu_si64): Ditto.
19695 2019-03-08 Martin Liska <mliska@suse.cz>
19698 * config/i386/i386.c (ix86_option_override_internal): Disable
19699 jump tables when retpolines are used.
19701 2019-03-08 Jan Hubicka <hubicka@ucw.cz>
19704 * ipa-split.c (execute_split_functions): Do not split
19705 'noinline' or 'section' function.
19707 2019-03-08 Jakub Jelinek <jakub@redhat.com>
19710 * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of
19711 HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of
19712 HOST_WIDE_INT_PRINT_DEC. Formatting fixes.
19715 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
19716 from diagnostics. Formatting fixes.
19719 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in
19720 warn_odr diagnostics.
19723 * lra-constraints.c (process_alt_operands): Avoid one space before
19724 " at the end of line and another after " on another line in a string
19726 * attribs.c (handle_dll_attribute): Likewise.
19727 * config/avr/avr-devices.c (avr_texinfo): Likewise.
19729 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
19730 warning_at or inform messages in G_() if there is no ?:.
19732 PR tree-optimization/89550
19733 * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at
19734 returned true. Formatting fixes.
19735 (expand_builtin_strnlen): Formatting fixes.
19736 * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING
19737 if warning_at returned true.
19738 * tree-cfg.c (pass_warn_function_return::execute): Likewise.
19740 2019-03-08 Richard Biener <rguenther@suse.de>
19742 PR middle-end/89578
19743 * cfgloop.h (struct loop): Add owned_clique field.
19744 * cfgloopmanip.c (copy_loop_info): Copy it.
19745 * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
19747 * tree-inline.c (copy_loops): Remap owned_clique.
19748 * lto-streamer-in.c (input_cfg): Stream owned_clique.
19749 * lto-streamer-out.c (output_cfg): Likewise.
19751 2019-03-08 Jakub Jelinek <jakub@redhat.com>
19754 * config/darwin.c: Include intl.h.
19755 (darwin_build_constant_cfstring): Improve i18n of diagnostics by not
19756 composing the message out of two separate parts.
19758 2019-03-07 Jakub Jelinek <jakub@redhat.com>
19761 * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
19762 doesn't start with a capital letter and doesn't end with a dot.
19763 (ix86_function_arg_boundary): Make sure diagnostics doesn't start
19764 with a capital letter.
19765 (ix86_mangle_function_version_assembler_name): Likewise.
19766 (ix86_generate_version_dispatcher_body): Likewise.
19767 (fold_builtin_cpu): Likewise.
19768 (get_builtin_code_for_version): Likewise. Remove extraneous space.
19769 (ix86_handle_interrupt_attribute): Make the diagnostics easier for
19770 translators, wrap full type name in %qs.
19772 PR translation/79999
19773 * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about
19774 depend clause with source (or sink) modifier.
19775 * omp-expand.c (expand_omp_ordered_sink): Likewise.
19778 * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask,
19779 *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns.
19780 (avx512f_load<mode>_mask): New define_expand.
19781 * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask,
19782 __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask,
19783 __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask,
19784 __builtin_ia32_movess_mask): New builtins.
19785 * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss,
19786 _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss,
19787 _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd,
19788 _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics.
19790 2019-03-07 Martin Jambor <mjambor@suse.cz>
19793 * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
19794 for extern inline functions.
19796 2019-03-07 Martin Jambor <mjambor@suse.cz>
19799 * cgraph.h (cgraph_node): New inline method former_thunk_p.
19800 * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
19801 (clone_of_p): Treat expanded thunks like thunks, be optimistic if they
19802 have multiple callees. At the end check if declarations match as
19803 opposed to cgraph_nodes.
19805 2019-03-07 Martin Liska <mliska@suse.cz>
19807 * cgraph.c (cgraph_node::verify_node): Verify with a neighbour
19808 which is equivalent to searching for this in clones chain.
19809 * symtab.c (symtab_node::verify_base): Similarly compare ASM
19810 names with a neighbour and special case first node in a chain.
19812 2019-01-25 Jason Merrill <jason@redhat.com>
19814 PR c++/80916 - spurious "static but not defined" warning.
19815 * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false
19816 for an internal symbol with DECL_EXTERNAL.
19818 2019-04-07 Richard Biener <rguenther@suse.de>
19820 PR middle-end/89618
19821 * cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
19822 * tree-inline.c (copy_loops): Simplify.
19824 2019-03-07 Martin Liska <mliska@suse.cz>
19826 * dwarf2out.c (add_AT_vms_delta): Revert function removal.
19828 2019-03-07 Richard Biener <rguenther@suse.de>
19830 PR tree-optimization/89595
19831 * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
19832 stmt iterator as reference, take boolean output parameter to
19833 indicate whether the stmt was removed and thus the iterator
19835 (dom_opt_dom_walker::before_dom_children): Re-iterate over
19836 stmts created by folding.
19838 2019-03-07 Jakub Jelinek <jakub@redhat.com>
19841 * doc/extend.texi (Basic Asm): Document qualifiers are not allowed
19844 2019-03-06 Peter Bergner <bergner@linux.ibm.com>
19846 PR rtl-optimization/88845
19847 * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
19849 * lra.c (remove_scratches_1): New function.
19850 (remove_scratches): Use it.
19851 (lra_emit_move): Likewise.
19853 2019-03-06 Claudiu Zissulescu <claziss@synopsys.com>
19855 * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
19856 unaligned_access variable.
19857 * config/arc/arc.c (arc_override_options): Set unaligned access
19858 default on for HS CPUs.
19859 * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.
19861 2019-03-06 Martin Liska <mliska@suse.cz>
19863 PR gcov-profile/89577
19864 * doc/gcov.texi: Prefer to use --coverage.
19865 * doc/sourcebuild.texi: Likewise.
19867 2019-03-02 Jason Merrill <jason@redhat.com>
19869 PR c++/86485 - -Wmaybe-unused with empty class ?:
19870 * gimplify.c (gimplify_cond_expr): Use INIT_EXPR.
19872 2019-03-05 Jakub Jelinek <jakub@redhat.com>
19875 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
19878 PR middle-end/89590
19879 * builtins.c (maybe_emit_free_warning): Punt if free doesn't have
19880 exactly one argument.
19882 2019-03-05 Jakub Jelinek <jakub@redhat.com>
19883 Richard Sandiford <richard.sandiford@arm.com>
19885 PR tree-optimization/89570
19886 * match.pd (vec_cond into cond_op simplification): Don't use
19887 get_conditional_internal_fn, use as_internal_fn (cond_op).
19889 2019-03-05 Wilco Dijkstra <wdijkstr@arm.com>
19892 * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
19893 to decide when to split off a non-zero offset from a symbol.
19894 * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
19895 in function symbols.
19897 2019-03-05 Richard Biener <rguenther@suse.de>
19899 PR tree-optimization/89594
19900 * tree-if-conv.c (pass_if_conversion::execute): Handle
19901 case where .LOOP_VECTORIZED_FUNCTION was removed.
19903 2019-03-05 Jakub Jelinek <jakub@redhat.com>
19906 * fold-const.c (fold_checksum_tree): Don't use fixed size buffer,
19907 instead alloca it only when needed with the needed size.
19909 PR tree-optimization/89570
19910 * match.pd (vec_cond into cond_op simplification): Guard with
19911 vectorized_internal_fn_supported_p test and #if GIMPLE.
19913 PR tree-optimization/89566
19914 * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call):
19915 Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed.
19916 Punt if get_user_idx_format succeeds, but idx_format argument is
19917 not provided or doesn't have pointer type, or if idx_args is above
19918 number of provided arguments.
19920 2019-03-04 Wilco Dijkstra <wdijkstr@arm.com>
19922 PR tree-optimization/89437
19923 * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications.
19925 2019-03-04 Richard Biener <rguenther@suse.de>
19927 PR middle-end/89572
19928 * tree-scalar-evolution.c: (get_loop_exit_condition): Use
19931 2019-03-04 Bin Cheng <bin.cheng@linux.alibaba.com>
19933 PR tree-optimization/89487
19934 * tree-loop-distribution.c (has_nonaddressable_dataref_p): New.
19935 (create_rdg_vertices): Compute has_nonaddressable_dataref_p.
19936 (distribute_loop): Don't do runtime alias check if there is non-
19937 addressable data reference.
19938 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL
19939 is a register variable.
19941 2019-03-02 Jakub Jelinek <jakub@redhat.com>
19944 * config/arm/arm.md (cmpsi2_addneg): Use
19945 trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...).
19946 If operands[2] is 0 or INT_MIN, force use of subs.
19947 (*compare_scc splitter): Use gen_int_mode.
19948 (*negscc): Likewise.
19949 * config/arm/thumb2.md (*thumb2_negscc): Likewise.
19951 2019-03-01 Kito Cheng <kito.cheng@gmail.com>
19952 Monk Chiang <sh.chiang04@gmail.com>
19954 * common/config/riscv/riscv-common.c: Include sstream.
19955 (riscv_subset_list::to_string): New.
19956 (riscv_arch_str): Likewise.
19957 * config.gcc (riscv*-*-*): Handle --with-riscv-attribute=
19958 * config.in: Regen.
19959 * config/riscv/riscv-protos.h (riscv_arch_str): New.
19960 * config/riscv/riscv.c (INCLUDE_STRING): Defined.
19961 (riscv_emit_attribute): New.
19962 (riscv_file_start): Emit attribute if needed.
19963 (riscv_option_override): Init riscv_emit_attribute_p.
19964 * config/riscv/riscv.opt (mriscv-attribute): New option.
19965 * configure.ac (riscv*-*-*): Check binutils is supporting ELF
19966 * configure: Regen.
19967 * doc/install.texi: Document --with-riscv-attribute.
19968 * doc/invoke.texi: Document -mriscv-attribute.
19970 * common/config/riscv/riscv-common.c:
19971 Include config/riscv/riscv-protos.h.
19972 (INCLUDE_STRING): Defined.
19973 (RISCV_DONT_CARE_VERSION): Defined.
19974 (riscv_subset_t): Declare.
19975 (riscv_subset_t::riscv_subset_t): New.
19976 (riscv_subset_list): Declare.
19977 (riscv_subset_list::riscv_subset_list): New.
19978 (riscv_subset_list::~riscv_subset_list): Likewise.
19979 (riscv_subset_list::parsing_subset_version): Likewise.
19980 (riscv_subset_list::parse_std_ext): Likewise.
19981 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
19982 (riscv_subset_list::add): Likewise.
19983 (riscv_subset_list::lookup): Likewise.
19984 (riscv_subset_list::xlen): Likewise.
19985 (riscv_subset_list::parse): Likewise.
19986 (riscv_supported_std_ext): Likewise.
19987 (current_subset_list): Likewise.
19988 (riscv_parse_arch_string): Using riscv_subset_list::parse to
19991 2019-03-01 Segher Boessenkool <segher@kernel.crashing.org>
19993 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
19994 rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index.
19995 * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option.
19997 2019-03-01 Alexander Monakov <amonakov@ispras.ru>
19999 PR rtl-optimization/85899
20000 * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
20001 fallthru edges leading to the exit block.
20003 2019-03-01 Tamar Christina <tamar.christina@arm.com>
20006 * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
20007 rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.
20009 2019-03-01 Richard Sandiford <richard.sandiford@arm.com>
20011 PR tree-optimization/89535
20012 * tree-vect-stmts.c (vectorizable_call): Record the vector types
20013 for each operand. Calculate the fallback choice for mask operands
20014 and pass it to vect_get_vec_def_for_operand.
20016 2019-03-01 Richard Biener <rguenther@suse.de>
20018 PR middle-end/89541
20019 * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may
20020 get virtual operands.
20021 (get_expr_operands): Handle CONST_DECL like other decls.
20023 2019-03-01 Jakub Jelinek <jakub@redhat.com>
20025 PR middle-end/89503
20026 * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
20027 on DECL_P and EXPR_P.
20029 2019-03-01 Richard Biener <rguenther@suse.de>
20031 PR middle-end/89497
20032 * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
20033 argument, defaulted to zero.
20034 * passes.c (execute_function_todo): Pass down SSA update flags
20035 to cleanup_tree_cfg.
20036 * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
20037 (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
20039 (cleanup_tree_cfg): Get and pass down SSA update flags.
20041 2019-03-01 Jakub Jelinek <jakub@redhat.com>
20044 * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
20045 early_lto_debug argument.
20047 2019-02-28 Eric Botcazou <ebotcazou@adacore.com>
20049 PR tree-optimization/89536
20050 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
20051 only whether bit #0 of the value is 0 instead of the entire value.
20053 2019-02-28 Marek Polacek <polacek@redhat.com>
20055 PR c++/87068 - missing diagnostic with fallthrough statement.
20056 * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
20057 at the end of a seq, save its location to walk_stmt_info.
20058 (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
20061 2019-02-28 Jan Hubicka <hubicka@ucw.cz>
20064 * tree.c (find_atomic_core_type): Move ahead in file.
20065 (check_base_type): Correctly compare alignments of atomic types.
20067 2019-02-28 H.J. Lu <hongjiu.lu@intel.com>
20070 * config/i386/i386.c (get_builtin_code_for_version): Identify
20071 Westmere from PCLMUL, instead of AES.
20073 2019-02-28 Jakub Jelinek <jakub@redhat.com>
20076 * config/arm/arm.md (*subsi3_carryin_compare_const): Use
20077 trunc_int_for_mode (-INTVAL (...), SImode), just instead of
20080 2019-02-28 Tamar Christina <tamar.christina@arm.com>
20083 * config/aarch64/aarch64-option-extensions.def: Document it.
20084 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
20087 2019-02-28 Jakub Jelinek <jakub@redhat.com>
20090 * convert.c (convert_to_real_1, convert_to_integer_1): Punt for
20091 builtins if they don't have a single scalar floating point argument.
20094 2019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
20096 PR rtl-optimization/89490
20097 * varasm.c (get_block_for_section): Bail out for mergeable sections.
20098 (default_use_anchors_for_symbol_p, output_object_block): Assert the
20099 block section is not mergeable.
20101 2019-02-27 Jakub Jelinek <jakub@redhat.com>
20104 * config/arm/arm.md (arm_casesi_internal): New define_expand. Rename
20105 old define_insn to ...
20106 (*arm_casesi_internal): ... this. Add mode to LABEL_REFs.
20107 * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
20108 Rename old define_insn to ...
20109 (*thumb2_casesi_internal): ... this. Add mode to LABEL_REFs.
20110 (thumb2_casesi_internal_pic): New define_expand. Rename old
20112 (*thumb2_casesi_internal_pic): ... this. Add mode to LABEL_REFs.
20113 * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
20114 MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.
20116 2019-02-27 Richard Biener <rguenther@suse.de>
20119 * dwarf2out.c (use_debug_types): Disable when in_lto_p.
20121 2019-02-27 Richard Biener <rguenther@suse.de>
20123 * passes.c (should_skip_pass_p): Do not skip cgraph-edge
20126 2019-02-27 Richard Biener <rguenther@suse.de>
20129 * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
20130 parameter, prefix section name with .gnu.debuglto_ if true.
20131 (dwarf2out_finish): Pass false to output_comdat_type_unit.
20132 (dwarf2out_early_finish): Pass true to output_comdat_type_unit.
20134 2019-02-27 Richard Biener <rguenther@suse.de>
20137 * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
20138 rather than on use_debug_types, doing what output_die does.
20139 (value_format): Likewise.
20141 2019-02-27 Martin Jambor <mjambor@suse.cz>
20142 Martin Sebor <msebor@redhat.com>
20144 * doc/invoke.texi (Warning Options): Reword description of
20145 -Wno-absolute-value.
20147 2019-02-27 Jakub Jelinek <jakub@redhat.com>
20149 PR tree-optimization/89280
20150 * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
20151 builtin_setjmp_setup_bb): New functions.
20152 (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
20153 When visiting __builtin_setjmp_setup block, queue in special
20154 setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
20155 __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks
20156 from visited after the loop if they don't have any visited successor
20159 2018-02-26 Steve Ellcey <sellcey@marvell.com>
20161 * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
20163 (TARGET_GET_MULTILIB_ABI_NAME): New macro.
20165 2019-02-26 Jakub Jelinek <jakub@redhat.com>
20168 * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
20169 with types other than sizetype/ssizetype.
20171 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
20173 * config/sparc/sparc-opts.h (enum processor_type): Rename to...
20174 (enum sparc_processor_type): ...this.
20175 (enum sparc_code_model_type): New enumeration type.
20176 (enum sparc_memory_model_type): Tweak comments.
20177 * config/sparc/sparc.opt (mcpu): Adjust to above renaming.
20179 (mcmodel): Use sparc_code_model enumeration and variable.
20180 (sparc_code_model): New enumeration.
20181 (mdebug): Add Undocumented marker.
20182 * config/sparc/sparc.h (enum cmodel): Delete.
20183 (sparc_cmodel): Likewise.
20184 (TARGET_CM_MEDLOW): Adjust to above renaming.
20185 (TARGET_CM_MEDMID): Likewise.
20186 (TARGET_CM_MEDANY): Likewise.
20187 (TARGET_CM_EMBMEDANY): Likewise.
20188 * config/sparc/sparc.c (sparc_cmodel): Delete.
20189 (sparc_option_override): Remove string/value mapping support for the
20190 code model. Move code and memory model support to after the handling
20191 of target flags. Do private machine setup last.
20192 (sparc_emit_set_symbolic_const64): Use sparc_code_model.
20193 (sparc_legitimize_reload_address): Likewise.
20194 (sparc_output_mi_thunk): Likewise.
20195 * config/sparc/sparc.md (cpu): Adjust comment to above renaming.
20197 2019-02-26 Jakub Jelinek <jakub@redhat.com>
20199 PR tree-optimization/89500
20200 * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
20201 (handle_builtin_strlen): Remove noncst_bound variable. Always
20202 optimize strnlen (x, 0) to 0. Optimize strnlen (x, cst) to
20203 cst if the first cst bytes starting at x are known to be non-zero,
20204 even if the string is not zero terminated. Don't try to modify
20205 *si for strnlen. Update strlen_to_stridx only for strlen or if
20206 we can prove strnlen returns the same value as strlen would.
20208 2019-02-26 Martin Liska <mliska@suse.cz>
20210 * alloc-pool.h (struct pool_usage): Remove extra
20212 * bitmap.h (struct bitmap_usage): Likewise.
20213 * ggc-common.c (struct ggc_usage): Likewise.
20214 * mem-stats.h (struct mem_usage): Likewise.
20215 (mem_alloc_description::dump): Print dash lines
20216 here and repeat header at the end of a table report.
20217 It's then more readable.
20218 * tree-phinodes.c (phinodes_print_statistics): Make
20219 horizontal alignment.
20220 * tree-ssanames.c (ssanames_print_statistics): Likewise.
20221 * vec.c (struct vec_usage): Remove extra print_dash_line.
20222 * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
20224 2019-02-26 Uroš Bizjak <ubizjak@gmail.com>
20226 * doc/extend.texi (__builtin_object_size):
20227 Use @pxref instead of @xref inside parenthesis.
20228 (__builtin_has_attribute): Add missing comma after @xref.
20229 (__builtin_object_size): Ditto.
20230 * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
20232 2019-02-26 Jeff Law <law@redhat.com>
20234 PR rtl-optimization/87761
20235 * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
20236 detect obviously dead insns and delete them.
20238 2019-02-26 Richard Biener <rguenther@suse.de>
20240 PR tree-optimization/89505
20241 * tree-ssa-structalias.c (compute_dependence_clique): Make sure
20242 to handle restrict pointed-to vars with multiple subvars
20245 2019-02-26 Richard Biener <rguenther@suse.de>
20247 PR tree-optimization/89489
20248 * tree-parloops.c (create_loop_fn): Copy over last_clique.
20250 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
20252 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
20253 and move around comment.
20254 <BIT_AND_EXPR>: Likewise.
20255 <BIT_NOT_EXPR>: Add specific handling for boolean types.
20257 2019-02-26 Jakub Jelinek <jakub@redhat.com>
20260 * config/i386/i386.c (remove_partial_avx_dependency): Call
20261 df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
20262 after changing possibly many instructions to use that pseudo. Fix up
20263 insertion of v4sf_const0 setter at the start of bb.
20265 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
20268 * doc/extend.texi (Variadic Pointer Args): New section.
20270 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
20271 Martin Sebor <msebor@gmail.com>
20273 * common.opt (Wattribute-alias): Likewise.
20274 * doc/invoke.texi (Option Summary): List general form of
20275 -Wattribute-alias=. List positive form of -Wmissing-attributes.
20276 (-Wmissing-attributes): Invert entry, rewrite and correct default.
20277 Add cross-references.
20278 (-Wattribute-alias): Rewrite and correct default. Mention
20279 considered attributes (same as for -Wmissing-attributes).
20281 2019-02-25 Paul A. Clarke <pc@us.ibm.com>
20283 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
20284 (_mm_cvtpd_ps): Likewise.
20285 (_mm_cvttpd_epi32): Likewise.
20288 * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
20289 (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
20292 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
20294 2019-02-25 Tamar Christina <tamar.christina@arm.com>
20297 * common/config/aarch64/aarch64-common.c
20298 (struct aarch64_option_extension): Add is_synthetic.
20299 (all_extensions): Use it.
20300 (TARGET_OPTION_INIT_STRUCT): Define hook.
20301 (struct gcc_targetm_common): Moved to end.
20302 (all_extensions_by_on): New.
20303 (opt_ext_cmp, typedef opt_ext): New.
20304 (aarch64_option_init_struct): New.
20305 (aarch64_contains_opt): New.
20306 (aarch64_get_extension_string_for_isa_flags): Output smallest set.
20307 * config/aarch64/aarch64-option-extensions.def
20308 (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
20309 (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
20310 sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
20311 Set is_synthetic to false.
20312 (crypto): Set is_synthetic to true.
20313 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
20316 2019-02-25 Tamar Christina <tamar.christina@arm.com>
20318 * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
20319 vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
20320 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
20321 vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
20322 vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
20323 vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
20324 vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
20325 vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
20327 (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
20328 vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
20329 vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
20330 vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
20331 vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
20332 vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
20333 vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
20334 vfmlsl_laneq_high_f16): ... To this.
20335 * config/arm/neon.md: Update comments.
20337 2019-02-25 Tamar Christina <tamar.christina@arm.com>
20339 * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
20340 vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
20341 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
20342 vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
20343 vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
20344 vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
20345 vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
20346 vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
20348 (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
20349 vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
20350 vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
20351 vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
20352 vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
20353 vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
20354 vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
20355 vfmlslq_laneq_high_f16): ... To this.
20357 2019-02-25 Alexander Monakov <amonakov@ispras.ru>
20359 PR rtl-optimization/86096
20360 * df-scan.c (df_mw_compare): Do not check mw_reg fields when
20361 comparing mw_order values.
20363 2019-02-25 Jakub Jelinek <jakub@redhat.com>
20366 * config/arm/arm.md (*subsi3_carryin_const): Use
20367 arm_neg_immediate_operand predicate instead of
20368 arm_not_immediate_operand, "L" constraint instead of "K" and
20369 print it using %n2 instead of %B2.
20370 (*subsi3_carryin_const0): New define_insn.
20371 (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
20372 instead of arm_not_operand and "I" constraint instead of "K" and
20373 print it using %n3 instead of %B2. Instead of using match_dup 2 add
20374 another match_operand and in the condition check that it is negation
20376 (*subsi3_carryin_compare_const0): New define_ins.
20377 (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
20378 *subsi3_carryin_const.
20379 (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
20380 split into *subsi3_carryin_compare_const0 if the highpart is zero.
20383 * config/arm.vfp.md (*negdf2_vfp): Use
20384 gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
20385 * config/arm/neon.md (neon_copysignf<mode>): Likewise.
20387 2019-02-24 Jakub Jelinek <jakub@redhat.com>
20389 PR rtl-optimization/89445
20390 * simplify-rtx.c (simplify_ternary_operation): Don't use
20391 simplify_merge_mask on operands that may trap.
20392 * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
20393 SCALAR_FLOAT_MODE_P checks. For integral division by zero, if
20394 second operand is CONST_VECTOR, check if any element could be zero.
20395 Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
20396 their operands can trap.
20398 2019-02-23 Martin Sebor <msebor@redhat.com>
20400 * gimple-ssa-sprintf.c (target_strtol): Rename...
20401 (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX.
20402 (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to
20403 check for range error.
20405 2019-02-23 H.J. Lu <hongjiu.lu@intel.com>
20408 * opts-common.c (prune_options): Also prune joined switches
20409 with Negative and RejectNegative.
20410 * config/i386/i386.opt (march=): Add Negative(march=).
20411 (mtune=): Add Negative(mtune=).
20412 * doc/options.texi: Document Negative used together with Joined
20413 and RejectNegative.
20415 2019-02-22 Martin Sebor <msebor@redhat.com>
20417 * doc/extend.texi (Other Builtins): Add
20418 __builtin_is_constant_evaluated.
20420 2019-02-22 Richard Biener <rguenther@suse.de>
20422 PR tree-optimization/87609
20423 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
20425 2019-02-22 Jeff Law <law@redhat.com>
20427 PR rtl-optimization/87761
20428 * config/mips/mips.md: Add new combiner pattern to recognize
20429 a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
20431 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com>
20434 * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
20435 destination register in peepholes generating patterns for ADDS/SUBS.
20436 (add<mode>3_compare0,
20437 *addsi3_compare0_uxtw, add<mode>3_compareC,
20438 add<mode>3_compareV_imm, add<mode>3_compareV,
20439 *adds_<optab><ALLX:mode>_<GPI:mode>,
20440 *subs_<optab><ALLX:mode>_<GPI:mode>,
20441 *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
20442 *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
20443 *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
20444 *sub<mode>3_compare0, *subsi3_compare0_uxtw,
20445 sub<mode>3_compare1): Allow stack pointer for source register.
20446 * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
20448 2019-02-22 Martin Sebor <msebor@redhat.com>
20450 PR tree-optimization/88993
20451 PR tree-optimization/88853
20452 * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
20454 (sprintf_dom_walker::call_info::is_string_func): New helper.
20455 (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
20456 for formatted string functions.
20457 (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
20459 2019-02-22 Martin Sebor <msebor@redhat.com>
20462 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
20463 unreachable subexpressions.
20465 2019-02-22 H.J. Lu <hongjiu.lu@intel.com>
20466 Hongtao Liu <hongtao.liu@intel.com>
20467 Sunil K Pandey <sunil.k.pandey@intel.com>
20470 * config/i386/i386-passes.def: Add
20471 pass_remove_partial_avx_dependency.
20472 * config/i386/i386-protos.h
20473 (make_pass_remove_partial_avx_dependency): New.
20474 * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
20476 (pass_data_remove_partial_avx_dependency): New.
20477 (pass_remove_partial_avx_dependency): Likewise.
20478 (make_pass_remove_partial_avx_dependency): Likewise.
20479 * config/i386/i386.md (avx_partial_xmm_update): New attribute.
20480 (*extendsfdf2): Add avx_partial_xmm_update.
20481 (truncdfsf2): Likewise.
20482 (*float<SWI48:mode><MODEF:mode>2): Likewise.
20483 (SF/DF conversion splitters): Disabled for TARGET_AVX.
20485 2019-02-22 Aldy Hernandez <aldyh@redhat.com>
20487 PR middle-end/85598
20488 * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
20491 2019-02-22 Thiago Macieira <thiago.macieira@intel.com>
20494 * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
20495 (PTA_SKYLAKE): Add PTA_AES.
20496 (PTA_GOLDMONT): Likewise.
20498 2019-02-22 Sudakshina Das <sudi.das@arm.com>
20500 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
20501 instruction if enabled.
20502 (aarch64_override_options): Remove reference to return address key.
20504 2019-02-22 Richard Biener <rguenther@suse.de>
20506 PR tree-optimization/89440
20507 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
20508 not necessary assert.
20510 2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
20513 * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
20514 (oacc_replace_fn_attrib_attr): ... this new function.
20515 * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
20516 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
20518 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20520 * config/arm/arm-cpus.in (ares): Rename to...
20521 (neoverse-n1): ... This. Add ares as alias.
20522 * config/arm/arm-tables.opt: Regenerate.
20523 * config/arm/arm-tune.md: Likewise.
20524 * doc/invoke.txt (ARM Options): Document neoverse-n1.
20526 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20528 * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
20529 * config/aarch64/aarch64-tune.md: Regenerate.
20530 * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
20532 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20534 * config/aarch64/aarch64.c (ares_tunings): Rename to...
20535 (neoversen1_tunings): ... This.
20536 * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
20537 (neoverse-n1): New CPU.
20538 * config/aarch64/aarch64-tune.md: Regenerate.
20539 * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
20541 2019-02-22 Richard Biener <rguenther@suse.de>
20543 PR middle-end/87609
20544 * cfghooks.h (dependence_hash): New typedef.
20545 (struct copy_bb_data): New type.
20546 (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
20547 (duplicate_block): Likewise.
20548 * cfghooks.c (duplicate_block): Pass down copy_bb_data.
20549 (copy_bbs): Create and pass down copy_bb_data.
20550 * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
20551 (rtl_duplicate_bb): Likewise.
20552 * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
20553 remap dependence info.
20555 2019-02-22 Richard Biener <rguenther@suse.de>
20557 PR tree-optimization/87609
20558 * tree-core.h (tree_base): Document special clique values.
20559 * tree-inline.c (remap_dependence_clique): Do not use the
20560 special clique value of one.
20561 (maybe_set_dependence_info): Use clique one.
20562 (clear_dependence_clique): New callback.
20563 (compute_dependence_clique): Clear clique one from all refs
20564 before assigning it (again).
20566 2019-02-21 Martin Sebor <msebor@redhat.com>
20568 * doc/extend.texi (__clear_cache): Correct signature.
20570 2019-02-21 Ian Lance Taylor <iant@golang.org>
20573 * varasm.c (decode_addr_const): Call lookup_constant_def rather
20574 than output_constant_def.
20575 (add_constant_to_table): New static function.
20576 (output_constant_def): Call add_constant_to_table.
20577 (tree_output_constant_def): Likewise.
20579 2019-02-21 Jakub Jelinek <jakub@redhat.com>
20582 * builtins.c (fold_builtin_arith_overflow): If first two args are
20583 INTEGER_CSTs, set intres and ovfres to constants rather than calls
20586 2019-02-21 H.J. Lu <hongjiu.lu@intel.com>
20589 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
20590 error for -mindirect-branch/-mfunction-return with incompatible
20593 2019-02-21 Jakub Jelinek <jakub@redhat.com>
20596 * constraints.md (q): Remove.
20597 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
20600 2019-02-21 Martin Jambor <mjambor@suse.cz>
20603 * omp-general.c (omp_extract_for_data): Removed a duplicate call
20604 to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
20605 (omp_adjust_for_condition): ...here. Added necessary parameters.
20606 * omp-general.h (omp_adjust_for_condition): Updated declaration.
20607 * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
20608 proper values to new parameters of omp_adjust_for_condition.
20610 2019-02-20 Jakub Jelinek <jakub@redhat.com>
20612 PR middle-end/89412
20613 * expr.c (expand_assignment): If result is a MEM, use change_address
20614 instead of simplify_gen_subreg.
20616 2019-02-20 Jakub Jelinek <jakub@redhat.com>
20617 David Malcolm <dmalcolm@redhat.com>
20619 PR middle-end/89091
20620 * fold-const.c (decode_field_reference): Return NULL_TREE if
20621 lang_hooks.types.type_for_size returns NULL. Check it before
20622 overwriting *exp_. Use return NULL_TREE instead of return 0.
20624 2019-02-20 Jakub Jelinek <jakub@redhat.com>
20626 PR middle-end/88074
20627 PR middle-end/89415
20628 * toplev.c (do_compile): Double the emin/emax exponents to workaround
20631 2019-02-20 Uroš Bizjak <ubizjak@gmail.com>
20634 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
20635 TARGET_SSE in addition to TARGET_SSE_MATH.
20637 (ix86_excess_precision): Ditto.
20638 (ix86_float_exceptions_rounding_supported_p): Ditto.
20639 (use_rsqrt_p): Ditto.
20640 * config/i386/sse.md (rsqrt<mode>2): Ditto.
20642 2019-02-20 David Malcolm <dmalcolm@redhat.com>
20645 * diagnostic-show-locus.c (layout::calculate_line_spans): Use
20646 linenum_arith_t when determining if two adjacent line spans are
20647 close enough to merge.
20648 (diagnostic_show_locus): Use linenum_arith_t when iterating over
20649 lines within each line_span.
20651 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
20654 * lra-constraints.c(uses_hard_regs_p): Fix handling of
20655 paradoxical SUBREGS.
20657 2019-02-20 Li Jia He <helijia@linux.ibm.com>
20660 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
20661 <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
20662 ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
20665 2019-02-19 Jonathan Wakely <jwakely@redhat.com>
20667 * config/gcn/gcn.c (print_operand): Fix typo.
20669 2019-02-19 Richard Biener <rguenther@suse.de>
20671 PR middle-end/88074
20672 * toplev.c (do_compile): Initialize mpfr's exponent range
20673 based on available float modes.
20675 2019-02-19 Eric Botcazou <ebotcazou@adacore.com>
20677 * rtlanal.c (get_initial_register_offset): Fall back to the estimate
20678 as long as the epilogue isn't completed.
20680 2019-02-18 Martin Sebor <msebor@redhat.com>
20682 * doc/cpp.texi (Conditional syntax): Add __has_attribute,
20683 __has_cpp_attribute, and __has_include.
20685 2019-02-18 Martin Sebor <msebor@redhat.com>
20687 * doc/invoke.texi (-Wreturn-type): Correct and expand.
20689 2019-02-18 Martin Sebor <msebor@redhat.com>
20691 PR middle-end/89294
20692 * tree.c (valid_constant_size_p): Avoid assuming size is a constant
20694 * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
20696 2019-02-18 Richard Biener <rguenther@suse.de>
20698 PR tree-optimization/89296
20699 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
20700 of no-warning flag to cases that might emit the bogus warning.
20702 2019-02-18 Jakub Jelinek <jakub@redhat.com>
20705 * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
20707 * config/arm/vfp.md (*movdi_vfp): Likewise.
20708 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
20709 "q" constraint for operands[0].
20712 * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
20713 *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
20714 pattern in a temporary buffer.
20715 (*r<noxa>sbg_sidi_srl): Likewise. Always use 32 as I3 rather
20716 than 64-operands[2].
20719 * config/s390/s390.c (s390_indirect_branch_attrvalue,
20720 s390_indirect_branch_settings): Define unconditionally.
20721 (s390_set_current_function): Likewise, but guard the whole body except
20722 the s390_indirect_branch_settings call with
20723 #if S390_USE_TARGET_ATTRIBUTE.
20724 (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
20726 * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
20727 *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
20728 Use HOST_WIDE_INT_M1U instead of ~(0ULL).
20729 (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
20730 HOST_WIDE_INT_1U instead of 1ULL.
20731 (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
20732 to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
20733 (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
20734 z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
20736 (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
20739 2019-02-18 Martin Jambor <mjambor@suse.cz>
20741 PR tree-optimization/89209
20742 * tree-sra.c (create_access_replacement): New optional parameter
20743 reg_tree. Use it as a type if non-NULL and access type is not of
20745 (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
20746 to create_access_replacement.
20747 (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
20748 Check lacc is non-NULL before attempting to re-create it on the RHS.
20750 2019-02-18 Martin Liska <mliska@suse.cz>
20753 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
20755 (symbol_table::free_edge): Recycle m_summary_id.
20756 * cgraph.h (get_summary_id): New.
20757 (symbol_table::release_symbol): Set m_summary_id to -1
20759 (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
20760 * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
20761 function_summary to fast_function_summary.
20762 * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
20763 * ipa-pure-const.c (class funct_state_summary_t):
20764 Switch from function_summary to fast_function_summary.
20765 * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
20766 (class ipa_ref_opt_summary_t): Switch from function_summary
20767 to fast_function_summary.
20768 * symbol-summary.h (class function_summary_base): New class
20769 that is created from base of former function_summary.
20770 (function_summary_base::unregister_hooks): New.
20771 (class function_summary): Inherit from function_summary_base.
20772 (class call_summary_base): New class
20773 that is created from base of former call_summary.
20774 (class call_summary): Inherit from call_summary_base.
20775 (struct is_same): New.
20776 (class fast_function_summary): New summary class.
20777 (class fast_call_summary): New summary class.
20778 * vec.h (vec_safe_grow_cleared): New function.
20780 2019-02-18 Martin Liska <mliska@suse.cz>
20782 * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
20783 (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
20784 * doc/tm.texi: Document new target hook.
20785 * doc/tm.texi.in: Likewise.
20786 * target.def: Add new target macro.
20787 * gcc.c (find_fortran_preinclude_file): Do not search multilib
20790 2019-02-17 Alan Modra <amodra@gmail.com>
20793 * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
20794 output reg on add insn.
20795 (<bd>tf_<mode> split): Likewise. Match predicates with insn.
20797 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
20800 * config/i386/sse.md (ssedoublemode): Remove V4HI.
20801 (PMULHRSW): Likewise.
20802 (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
20804 (ssse3_pmulhrswv4hi3): New expander.
20806 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
20808 * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
20809 MMX. Add isa attribute.
20811 2019-02-16 Jakub Jelinek <jakub@redhat.com>
20813 PR rtl-optimization/66152
20814 * builtins.h (c_readstr): Declare.
20815 * builtins.c (c_readstr): Remove forward declaration. Add
20816 null_terminated_p argument, if false, read all bytes from the
20817 string instead of stopping after '\0'.
20818 * expr.c (string_cst_read_str): New function.
20819 (store_expr): Use string_cst_read_str instead of
20820 builtin_strncpy_read_str. Try to store by pieces the whole
20821 exp_len first, and only if that fails, split it up into
20822 store by pieces followed by clear_storage. Formatting fix.
20824 * config/i386/i386.md (*movqi_internal): Remove static from
20825 buf variable. Use output_asm_insn (buf, operands); return "";
20826 instead of return buf;.
20827 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
20828 *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
20829 *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
20831 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
20833 * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
20834 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
20835 * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
20836 (CC1_SPEC): Likewise.
20837 * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
20839 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
20841 * asan.c (asan_emit_stack_protection): Use full-sized mask to align
20842 the base address on 64-bit strict-alignment platforms.
20844 2019-02-15 H.J. Lu <hongjiu.lu@intel.com>
20846 * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
20848 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
20850 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
20852 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com>
20854 PR rtl-optimization/88308
20855 * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
20856 on copied instruction.
20858 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
20860 * final.c (insn_current_reference_address): Replace test on JUMP_P
20861 with test on jump_to_label_p.
20862 * config/visium/visium-passes.def: New file.
20863 * config/visium/t-visium (PASSES_EXTRA): Define.
20864 * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
20865 * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
20866 (TRAMPOLINE_ALIGNMENT): Define.
20867 * config/visium/visium.c (visium_option_override): Do not register
20868 the machine-specific reorg pass here.
20869 (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
20871 (output_branch): Adjust threshold for long branch instruction.
20872 * config/visium/visium.md (cpu): Move around.
20873 (length): Adjust for the GR6.
20875 2019-02-15 Richard Biener <rguenther@suse.de>
20876 Jakub Jelinek <jakub@redhat.com>
20878 PR tree-optimization/89278
20879 * tree-loop-distribution.c: Include tree-eh.h.
20880 (generate_memset_builtin, generate_memcpy_builtin): Call
20881 rewrite_to_non_trapping_overflow on builtin->size before passing it
20882 to force_gimple_operand_gsi.
20884 2019-02-15 Jakub Jelinek <jakub@redhat.com>
20887 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
20889 * opth-gen.awk: Likewise.
20891 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
20893 * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
20894 Enable MMX, SSE and SSE2 by default.
20895 * config/i386/i386.c (ix86_option_override_internal): Do not
20896 explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
20898 2019-02-14 Jakub Jelinek <jakub@redhat.com>
20900 PR rtl-optimization/89354
20901 * combine.c (make_extraction): Punt if extraction_mode is narrower
20904 2019-02-14 Maya Rashish <coypu@sdf.org>
20906 * config.gcc (*-*-netbsd*): Add netbsd-d.o.
20907 * config/netbsd-d.c: New file.
20908 * config/t-netbsd: Add netbsd-d.o
20910 2018-02-14 Steve Ellcey <sellcey@marvell.com>
20912 * config/aarch64/aarch64.c (aarch64_attribute_table): Change
20913 affects_type_identity to true for aarch64_vector_pcs.
20914 (aarch64_comp_type_attributes): New function.
20915 (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
20917 2019-02-14 Tamar Christina <tamar.christina@arm.com>
20920 * config/arm/iterators.md (ANY64): Add V4HF.
20922 2019-02-14 Martin Liska <mliska@suse.cz>
20924 PR rtl-optimization/89242
20925 * dce.c (delete_unmarked_insns): Call free_dominance_info we
20926 process a transformation.
20928 2019-02-14 Jakub Jelinek <jakub@redhat.com>
20930 PR tree-optimization/89314
20931 * fold-const.c (fold_binary_loc): Cast strlen argument to
20932 const char * before dereferencing it. Formatting fixes.
20934 PR middle-end/89284
20935 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
20937 2019-02-13 Ian Lance Taylor <iant@golang.org>
20939 * optc-save-gen.awk: Set var_opt_hash for initial optimizations
20940 and set current index for other optimizations.
20942 2019-02-13 Uroš Bizjak <ubizjak@gmail.com>
20944 * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
20945 nonimmediate_operand as operand 2 predicate.
20946 (vec_set<VF2_512_256:mode>_0): Ditto.
20947 (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
20948 (*vec_concatv2si): Remove alternative 2.
20949 (*vec_concatv4si_0): Use vm constraint for alternative 0.
20950 (*vec_concatv4si_0): Remove preferred_for_speed attribute.
20951 (vec_concatv2di): Split alternatives 4,5,6 to ...
20952 (*vec_concatv2di_0) ... new pattern.
20954 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com>
20957 * config/arm/arm.c (ldm_stm_operation_p) Set
20958 addr_reg_in_reglist correctly for first register.
20959 (load_multiple_sequence): Remove dead base check.
20960 (gen_ldm_seq): Correctly set write_back for Thumb-1.
20962 2019-02-13 Tamar Christina <tamar.christina@arm.com>
20965 * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
20966 Expose as @aarch64_pred_mov.
20967 * config/aarch64/aarch64.c (aarch64_classify_address):
20968 Use expand_insn which legitimizes operands.
20970 2019-02-13 Martin Liska <mliska@suse.cz>
20972 * builtins.h (expand_builtin_with_bounds): Remove declaration.
20973 * calls.c (struct arg_data): Remove special_slot, pointer_arg
20974 and pointer_offset fields.
20975 (initialize_argument_information): Remove usage of dead
20977 * cgraph.h (struct cgraph_thunk_info): Remove
20978 add_pointer_bounds_args.
20979 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
20981 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
20983 * config/i386/i386.c (ix86_function_arg_advance): Remove
20985 (struct builtin_isa): Remove leaf_p and nothrow_p fields.
20986 (def_builtin): Remove usage of dead fields.
20987 (ix86_add_new_builtins): Likewise.
20988 * ipa-fnsummary.c (compute_fn_summary): Likewise.
20989 * ipa-icf.c (sem_function::equals_wpa): Likewise.
20990 (sem_function::init): Likewise.
20991 (sem_variable::merge): Likewise.
20992 * ipa-visibility.c (function_and_variable_visibility): Likewise.
20993 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
20994 * lto-cgraph.c (lto_output_node): Likewise.
20995 (lto_output_varpool_node): Likewise.
20996 (input_node): Likewise.
20997 (input_varpool_node): Likewise.
20998 * lto-streamer-out.c (lto_output): Likewise.
20999 * tree-inline.c (expand_call_inline): Remove usage of
21001 * tree-inline.h (struct copy_body_data): Likewise.
21002 * varpool.c (varpool_node::dump): Likewise.
21004 2019-02-13 Jakub Jelinek <jakub@redhat.com>
21006 PR middle-end/89303
21007 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
21008 into pt->vars_contains_escaped_heap instead of setting
21009 pt->vars_contains_escaped_heap to it.
21011 PR middle-end/89281
21012 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
21013 INTVAL (size), compare it to GET_MODE_MASK instead of
21014 1 << GET_MODE_BITSIZE.
21017 * config/i386/predicates.md (x86_64_immediate_operand): Allow
21018 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
21021 2019-02-13 Martin Liska <mliska@suse.cz>
21024 * cfgrtl.c (remove_barriers_from_footer): New function.
21025 (try_redirect_by_replacing_jump): Use it.
21026 (cfg_layout_redirect_edge_and_branch): Likewise.
21028 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
21030 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
21031 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
21032 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
21033 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
21034 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
21035 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
21037 * config/rs6000/rs6000.c (builtin_function_type)
21038 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
21039 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
21040 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
21041 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
21042 vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
21044 2019-02-12 Pat Haugen <pthaugen@us.ibm.com>
21046 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
21047 -maltivec. Delete -maltivec=be and -maltivec=le documentation.
21049 2019-02-12 H.J. Lu <hongjiu.lu@intel.com>
21052 * config/i386/i386.md (*movoi_internal_avx): Revert revision
21053 268678 and revision 268657.
21054 (*movti_internal): Likewise.
21056 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com>
21059 * config/s390/s390.c (s390_decompose_address): Update comment.
21060 (s390_check_qrst_address): Reject invalid address forms after
21063 2019-02-12 Martin Liska <mliska@suse.cz>
21066 * ipa-pure-const.c (propagate_pure_const): Revert hunk as
21067 we need default values of funct_state for a function that
21070 2019-02-12 Eric Botcazou <ebotcazou@adacore.com>
21072 * asan.c (asan_expand_mark_ifn): Take into account the alignment of
21073 the object to pick the size of stores on strict-alignment platforms.
21075 * config/sparc/sparc.md (*movsi_insn): Minor tweak.
21076 (*movdi_insn_sp32): Likewise.
21077 (*movdi_insn_sp64): Likewise.
21079 2019-02-12 Jan Hubicka <hubicka@ucw.cz>
21082 * cgraphunit.c (analyze_functions): Clear READONLY flag for external
21083 types that needs constructiong.
21084 * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
21086 2019-02-12 Richard Biener <rguenther@suse.de>
21088 PR tree-optimization/89253
21089 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
21090 duplicate the loop.
21092 2019-02-11 David Malcolm <dmalcolm@redhat.com>
21095 * input.c (selftest::test_line_offset_overflow): New selftest.
21096 (selftest::input_c_tests): Call it.
21098 2019-02-11 Martin Sebor <msebor@redhat.com>
21100 PR tree-optimization/88771
21101 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
21102 when -Wstringop-overflow is set.
21103 (builtin_memref::builtin_memref): Adjust excessive upper bound
21104 only when lower bound is not excessive.
21105 (maybe_diag_overlap): Detect and diagnose excessive bounds via
21106 -Wstringop-ovefflow.
21107 (maybe_diag_offset_bounds): Rename...
21108 (maybe_diag_access_bounds): ...to this.
21109 (check_bounds_or_overlap): Adjust for name change above.
21111 2019-02-11 Martin Sebor <msebor@redhat.com>
21114 * builtins.c (max_object_size): Move from here...
21115 * builtins.h (max_object_size): ...and here...
21116 * tree.c (max_object_size): ...to here...
21117 * tree.h (max_object_size): ...and here.
21119 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com>
21121 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
21122 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
21123 for correct semantics.
21125 2019-02-11 Alan Modra <amodra@gmail.com>
21127 * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
21128 -mlongcall and -mpltseq.
21129 (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
21130 (RS/6000 and PowerPC Options <-mpltseq>): Document.
21131 * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
21132 * config/rs6000/sysv4.opt (mpltseq): New option.
21133 * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
21134 (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
21135 support is lacking. Don't allow -mpltseq with -mbss-plt.
21136 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
21137 -mpltseq given for ELFv1.
21138 * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
21139 Only use UNSPEC_PLTSEQ for inline PLT calls.
21140 (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only
21141 use UNSPEC_PLTSEQ for inline PLT calls.
21142 (rs6000_indirect_call_template_1, rs6000_longcall_ref),
21143 (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
21144 uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
21145 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
21146 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
21147 (pltseq_mtctr_<mode>): Likewise.
21149 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21151 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
21153 * configure: Regenerate.
21155 2019-02-11 Jakub Jelinek <jakub@redhat.com>
21158 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
21161 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
21163 * function.c (assign_parm_setup_block): Use the stored
21164 size, not the passed size, when allocating stack-space,
21165 also for a parameter with alignment larger than
21166 MAX_SUPPORTED_STACK_ALIGNMENT.
21168 2019-02-11 Martin Liska <mliska@suse.cz>
21171 * ipa-cp.c (build_toporder_info): Remove usage of a param.
21172 * ipa-inline.c (inline_small_functions): Likewise.
21173 * ipa-pure-const.c (propagate_pure_const): Likewise.
21174 (propagate_nothrow): Likewise.
21175 * ipa-reference.c (propagate): Likewise.
21176 * ipa-utils.c (struct searchc_env): Remove unused field.
21177 (searchc): Always search across AVAIL_INTERPOSABLE.
21178 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
21179 the only called IPA pure const can properly not propagate
21180 across interposable boundary.
21181 * ipa-utils.h (ipa_reduced_postorder): Remove param.
21183 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com>
21185 * config/nds32/nds32.md (call_internal, call_value_internal,
21186 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
21188 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
21190 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
21193 2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
21195 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
21198 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
21200 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
21202 2019-02-10 Jakub Jelinek <jakub@redhat.com>
21204 PR tree-optimization/89268
21205 * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
21206 if preds is non-NULL.
21208 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
21211 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
21214 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
21216 * config/nds32/nds32.md (trap): New pattern.
21218 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
21220 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
21223 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
21225 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
21228 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
21230 * ipa-visibility.c (localize_node): Also do not localize
21231 LDPR_PREVAILING_DEF_IRONLY_EXP.
21233 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
21236 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
21237 instead of type_with_linkage.
21239 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
21242 * params.def (uninlined-function-insns, uninlined-function-time,
21243 uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
21244 bound so we don't get overflows.
21246 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
21248 * config/rs6000/rs6000-string.c (expand_compare_loop,
21249 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
21252 2019-02-09 Jakub Jelinek <jakub@redhat.com>
21254 PR middle-end/89246
21255 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
21256 If !node->definition and TYPE_ARG_TYPES is non-NULL, use
21257 TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
21259 2019-02-09 Alan Modra <amodra@gmail.com>
21262 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
21263 case. Match logic in rs6000_emit_prologue emitting pic_offset_table
21266 2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
21268 PR middle-end/88560
21269 * lra-constraints.c (process_alt_operands): Don't increase reject
21270 for memory when offset memory is required.
21272 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
21274 * config/s390/vector.md: Implement vector copysign.
21276 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
21278 * expr.c (expand_constructor): Correct indentations.
21280 2019-02-08 Richard Biener <rguenther@suse.de>
21282 PR tree-optimization/89247
21283 * tree-if-conv.c: Include tree-cfgcleanup.h.
21284 (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
21285 (tree_if_conversion): Pass through predicate vector.
21286 (pass_if_conversion::execute): Do CFG cleanup and SSA update
21287 inline, see if any if-converted loops we refrece in
21288 LOOP_VECTORIZED calls vanished and fixup.
21289 * tree-if-conv.h (tree_if_conversion): Adjust prototype.
21291 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
21293 * config/s390/constraints.md (jdd): New constraint.
21295 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
21298 * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
21299 upper 16 vector registers without TARGET_AVX512VL.
21300 (*movti_internal): Likewise.
21302 2019-02-08 Jakub Jelinek <jakub@redhat.com>
21304 PR rtl-optimization/89234
21305 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
21306 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
21307 (copy_reg_eh_region_note_backward): Likewise.
21309 2019-02-08 Richard Biener <rguenther@suse.de>
21311 PR middle-end/89223
21312 * tree-data-ref.c (initialize_matrix_A): Fail if constant
21313 doesn't fit in HWI.
21314 (analyze_subscript_affine_affine): Handle failure from
21315 initialize_matrix_A.
21317 2019-02-08 Jakub Jelinek <jakub@redhat.com>
21319 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
21322 2019-02-07 David Malcolm <dmalcolm@redhat.com>
21324 PR tree-optimization/86637
21325 PR tree-optimization/89235
21326 * tree-vect-loop.c (optimize_mask_stores): Add an
21327 auto_purge_vect_location sentinel to ensure that vect_location is
21329 * tree-vectorizer.c
21330 (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
21331 (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
21332 to ensure that vect_location is purged on exit.
21333 (pass_slp_vectorize::execute): Likewise, replacing the manual
21335 * tree-vectorizer.h (class auto_purge_vect_location): New class.
21337 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21339 * config/aarch64/iterators.md (max_opp): New code_attr.
21340 (USMAX): New code iterator.
21341 * config/aarch64/predicates.md (aarch64_smin): New predicate.
21342 (aarch64_smax): Likewise.
21343 * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
21344 (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
21347 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
21350 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
21351 for TARGET_AVX512VL.
21352 (*movti_internal): Set mode to TI for TARGET_AVX512VL.
21354 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
21356 * config/s390/s390-builtin-types.def: Add new types.
21357 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
21358 (s390_vec_xlw4): Make the memory operand into a const pointer.
21359 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
21361 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
21362 a new vector type with the alignment of the scalar memory operand.
21364 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
21365 Jakub Jelinek <jakub@redhat.com>
21368 * config/arm/arm-protos.h (valid_operands_ldrd_strd,
21369 arm_count_ldrdstrd_insns): New declarations.
21370 * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
21372 (valid_operands_ldrd_strd): New function.
21373 (arm_count_ldrdstrd_insns): New function.
21374 * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
21375 sets instead of single DImode set and define new insns to match this.
21377 2019-02-07 Tamar Christina <tamar.christina@arm.com>
21379 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
21380 Make it a C initializer.
21382 2019-02-07 Tamar Christina <tamar.christina@arm.com>
21385 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
21387 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21389 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
21390 Use neon_dot<q> for type.
21391 (neon_<sup>dot_lane<vsi2qi>): Likewise.
21393 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21395 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
21396 Use neon_dot<q> for type.
21397 (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
21398 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
21400 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
21402 PR rtl-optimization/89225
21403 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
21406 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
21408 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
21409 after restoring registers saved to allocate the frame on Windows.
21411 2019-02-06 Richard Biener <rguenther@suse.de>
21413 PR tree-optimization/89182
21414 * graphite.h (cached_scalar_evolution_in_region): Declare.
21415 * graphite.c (struct seir_cache_key): New.
21416 (struct sese_scev_hash): Likewise.
21417 (seir_cache): New global.
21418 (cached_scalar_evolution_in_region): New function.
21419 (graphite_transform_loops): Allocate and release seir_cache.
21420 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
21421 cached_scalar_evolution_in_region.
21422 * graphite-scop-detection.c (scop_detection::can_represent_loop):
21424 (scop_detection::graphite_can_represent_expr: Use
21425 cached_scalar_evolution_in_region.
21426 (scop_detection::stmt_simple_for_scop_p): Likewise.
21427 (find_params_in_bb): Likewise.
21428 (gather_bbs::before_dom_children): Likewise.
21429 * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
21430 (add_loop_constraints): Likewise.
21432 2019-02-06 Jakub Jelinek <jakub@redhat.com>
21434 PR middle-end/89210
21435 * fold-const-call.c (fold_const_vec_convert): Pass true as last
21436 operand to new_unary_operation only if both element types are integral
21437 and it isn't a widening conversion. Return NULL_TREE if
21438 new_unary_operation failed.
21440 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
21443 * config/s390/s390.md: Remove load and test FP splitter.
21445 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
21448 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
21449 expand_compare_loop, expand_block_compare_gpr,
21450 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
21451 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
21452 #include "profile-count.h" and "predict.h" for types and functions
21453 needed to work with REG_BR_PROB notes.
21455 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
21458 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
21459 for the long branch case.
21461 2019-02-05 Jakub Jelinek <jakub@redhat.com>
21464 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
21465 can throw, non-call exceptions are enabled and we can't delete
21466 dead exceptions or alter cfg. Set must_clean if
21467 delete_insn_and_edges returns true, don't set it blindly for calls.
21468 Assert that delete_unreachable_blocks is called only if can_alter_cfg.
21470 PR rtl-optimization/89195
21471 * combine.c (make_extraction): For MEMs, don't extract bytes outside
21472 of the original MEM.
21474 2019-02-05 Martin Liska <mliska@suse.cz>
21476 PR gcov-profile/89000
21477 * gcov.c (function_summary): Remove argument.
21478 (file_summary): New function.
21479 (print_usage): Replace tabs with spaces.
21480 (generate_results): Use new function file_summary.
21482 2019-02-05 Jakub Jelinek <jakub@redhat.com>
21485 * optabs.c (prepare_cmp_insn): Pass x and y to
21486 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
21488 2019-02-05 Richard Biener <rguenther@suse.de>
21490 PR middle-end/89150
21491 * bitmap.h (struct bitmap_obstack): Do not mark GTY.
21492 (struct bitmap_element): Drop chain_prev so we properly recurse on
21493 the prev member, supporting tree views.
21494 (struct bitmap_head): GTY skip the obstack member.
21496 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
21499 * doc/extend.texi (Vector Extensions): Add an example of using vector
21500 types together with x86 intrinsics.
21502 2019-02-04 Alan Modra <amodra@gmail.com>
21504 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
21505 str[] size to 160, and comment.
21507 2019-02-04 Alan Modra <amodra@gmail.com>
21509 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
21510 (rs6000_pltseq_template): Guard output of TLS markers with
21511 TARGET_TLS_MARKERS.
21512 (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
21513 (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
21514 to use inline PLT sequences.
21515 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
21516 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
21517 (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
21519 2019-02-04 Martin Liska <mliska@suse.cz>
21522 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
21523 out when ipa_fn_summaries does not contain entry for callee.
21525 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
21527 * config/sparc/sparc.h: Remove superfluous blank lines.
21528 * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
21529 (got_register_rtx): ...this.
21530 (sparc_got): Adjust to above renaming.
21531 (sparc_tls_got): Likewise.
21532 (sparc_delegitimize_address): Likewise.
21533 (sparc_output_mi_thunk): Likewise.
21534 (sparc_init_pic_reg): Likewise.
21535 (save_local_or_in_reg_p): Fix test on the GOT register.
21536 (USE_HIDDEN_LINKONCE): Move around.
21537 (get_pc_thunk_name): Likewise.
21538 (gen_load_pcrel_sym): Likewise.
21539 (load_got_register): Likewise.
21541 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
21543 * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
21544 of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
21546 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
21548 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
21549 into consideration.
21551 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
21553 * config.gcc (with_nds32_lib, glibc):
21554 Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
21555 * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
21556 (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
21558 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
21561 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
21562 Do not prefer (v,v) alternative for non-AVX targets and (m,v)
21563 alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
21564 (*rcpsf2_sse): Ditto.
21565 (*rsqrtsf2_sse): Ditto.
21566 (sse4_1_round<mode<2): Ditto.
21568 2019-02-03 Richard Biener <rguenther@suse.de>
21571 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
21574 2019-02-02 Jakub Jelinek <jakub@redhat.com>
21576 PR middle-end/87887
21577 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
21578 Punt with warning on aggregate return or argument types. Ignore
21579 type/mode checking for uniform arguments.
21581 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
21583 * combine.c (try_combine): Do not print "Can't combine" messages unless
21584 printing failed combination attempts.
21586 2019-02-01 Martin Jambor <mjambor@suse.cz>
21589 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
21590 segment and global segment variables before making them static.
21592 2019-02-01 Martin Jambor <mjambor@suse.cz>
21594 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
21595 missed optimization dump with dump_enabled_p.
21597 2019-02-01 Richard Biener <rguenther@suse.de>
21599 PR middle-end/88597
21600 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
21601 the instantiate cache.
21602 (instantiate_scev_binary): Elide second operand procesing
21603 if equal to the first.
21604 * tree-chrec.c (chrec_contains_symbols): Add visited set.
21605 (chrec_contains_undetermined): Likewise.
21606 (tree_contains_chrecs): Likewise.
21608 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
21610 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
21612 2019-02-01 Jakub Jelinek <jakub@redhat.com>
21614 PR tree-optimization/89143
21615 * wide-int-range.h (wide_int_range_absu): Declare.
21616 * wide-int-range.cc (wide_int_range_absu): New function.
21617 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
21619 PR tree-optimization/88107
21620 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
21621 instead of assertion that eh_region_outermost is non-NULL, if it
21622 is NULL, set *ALL to true and return NULL.
21623 (move_sese_region_to_fn): Adjust caller, if all is set, call
21624 duplicate_eh_regions with NULL region.
21626 2019-02-01 Richard Biener <rguenth@suse.de>
21628 PR rtl-optimization/88593
21629 * mode-switching.c (optimize_mode_switching): Free dominators before
21630 calling cleanup_cfg.
21632 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
21634 PR tree-optimization/88932
21635 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
21637 2019-01-31 Jakub Jelinek <jakub@redhat.com>
21639 PR middle-end/89137
21640 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
21641 bogus clang warning.
21643 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
21646 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
21647 alternative to avoid partial SSE register stall for TARGET_AVX.
21648 (truncdfsf2): Ditto.
21649 (sse4_1_round<mode>2): Ditto.
21651 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
21653 PR tree-optimization/89008
21654 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
21655 process anything of the form X * 0.
21657 2019-01-31 Richard Biener <rguenther@suse.de>
21659 PR tree-optimization/89135
21660 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
21661 with abnormal preds.
21663 2019-01-31 Jakub Jelinek <jakub@redhat.com>
21666 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
21667 always_inline callees into no_sanitize_address callers.
21669 2019-01-31 Richard Biener <rguenther@suse.de>
21671 PR rtl-optimization/89115
21672 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
21674 2019-01-30 Martin Sebor <msebor@redhat.com>
21677 * doc/extend.texi (cast to a union): Correct and expand.
21679 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
21681 PR rtl-optimization/87246
21682 * lra-constraints.c (simplify_operand_subreg): Reload memory
21683 in subreg if the address became invalid.
21685 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
21688 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
21689 Disable for little-endian.
21691 2019-01-30 Richard Biener <rguenther@suse.de>
21693 PR rtl-optimization/89115
21694 * opts.c (default_options_optimization): Reduce
21695 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
21696 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
21699 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
21701 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
21702 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
21703 type of vector element when vec_extract is implemented by direct
21706 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
21708 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
21710 2019-01-30 Richard Biener <rguenther@suse.de>
21712 PR tree-optimization/89111
21713 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
21714 canonicalization to appropriately sized access types.
21716 2019-01-30 Jakub Jelinek <jakub@redhat.com>
21719 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
21720 for arguments to functions that are TU-local and shouldn't be
21721 referenced by assembly.
21723 2019-01-30 Ulrich Drepper <drepper@redhat.com>
21725 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
21728 2019-01-29 Martin Sebor <msebor@redhat.com>
21731 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
21733 2019-01-29 Jakub Jelinek <jakub@redhat.com>
21737 * omp-simd-clone.c (simd_clone_clauses_extract)
21738 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
21739 OMP_CLAUSE_ALIGNED_ALIGNMENT.
21741 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
21743 * config.gcc: Force .init_array for ARC.
21745 2019-01-29 Richard Biener <rguenther@suse.de>
21748 * dwarf2out.c (collect_skeleton_dies): New helper.
21749 (copy_decls_for_unworthy_types): Call it.
21750 (build_abbrev_table): Assert we do not try to replace
21751 DW_AT_signature refs with local refs.
21753 2019-01-28 Jakub Jelinek <jakub@redhat.com>
21755 PR middle-end/89002
21756 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
21757 for lastprivate/linear IV, push gimplify context around gimplify_assign
21758 and, if it needed any temporaries, pop it into a gimple bind around the
21761 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
21763 * common.opt (-Wattribute-alias): Remove "no-" from name.
21764 Make -Wattribute-alias command line option and
21765 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
21767 2019-01-28 Jakub Jelinek <jakub@redhat.com>
21770 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
21771 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
21773 (bmi2): Add missing @opindex.
21774 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
21775 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
21776 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
21777 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
21778 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
21779 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
21780 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
21781 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
21782 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
21783 xsavec, xsaveopt and xsaves options.
21785 2019-01-28 Richard Biener <rguenther@suse.de>
21788 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
21791 2019-01-28 Richard Biener <rguenther@suse.de>
21793 PR tree-optimization/88739
21794 * tree-cfg.c (verify_types_in_gimple_reference): Verify
21795 BIT_FIELD_REFs only are applied to mode-precision operands
21796 when they are integral.
21797 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
21798 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
21799 BIT_FIELD_REFs of non-mode-precision integral operands.
21801 2019-01-27 Jakub Jelinek <jakub@redhat.com>
21804 * config/i386/sse.md
21805 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
21806 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
21807 first constants in pairs are multiples of 2. Formatting fixes.
21808 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
21809 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
21810 first constants in each quadruple are multiples of 4. Formatting fixes.
21812 2019-01-26 Martin Jambor <mjambor@suse.cz>
21815 * tree-inline.c: Include tree-cfgcleanup.h.
21816 (delete_unreachable_blocks_update_callgraph): Move...
21817 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
21818 ...here, make externally visible, make second argument bool, adjust
21820 * tree-cfgcleanup.c: Include cgraph.h.
21821 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
21823 * ipa-prop.c: Include tree-cfgcleanup.h.
21824 (ipcp_transform_function): Call
21825 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
21827 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
21829 PR rtl-optimization/88846
21830 * ira.c (process_set_for_memref_referenced_p): New.
21831 (memref_referenced_p): Add new param. Use
21832 process_set_for_memref_referenced_p. Add new switch cases.
21833 (memref_used_between_p): Pass new arg to memref_referenced_p.
21835 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
21838 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
21839 argument ABI_BREAK. Set to true if the calculated alignment has
21840 changed in gcc-9. Check bit-fields for their base type alignment.
21841 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
21842 (aarch64_function_arg_boundary): Likewise.
21843 (aarch64_gimplify_va_arg_expr): Likewise.
21845 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
21847 PR middle-end/89037
21848 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
21849 instead of accessing TREE_INT_CST_ELT directly.
21851 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
21853 * doc/sourcebuild.texi (Environment attributes): Add fenv and
21854 fenv_exceptions description.
21856 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
21858 PR rtl-optimization/87763
21859 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
21860 Allow SUBREG when matching CC_NZmode compare.
21862 2019-01-25 Richard Biener <rguenther@suse.de>
21864 PR tree-optimization/89049
21865 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
21866 Look at the pattern stmt to determine if the stmt is vectorized.
21868 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
21870 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
21871 (pred_mov<mode>): Handle all-register forms using both a new
21872 alternative and a split.
21874 2019-01-25 Richard Biener <rguenther@suse.de>
21876 PR tree-optimization/86865
21877 * graphite-scop-detection.c (scop_detection::can_represent_loop):
21878 Reject non-do-while loops.
21880 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
21882 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
21883 * config/rs6000/constraints.md (Q constraint): Use REG_P.
21884 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
21885 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
21886 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
21887 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
21888 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
21889 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
21890 vlogical_operand, gpc_reg_operand, int_reg_operand,
21891 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
21892 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
21893 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
21894 (save_world_operation, restore_world_operation, lmw_operation,
21895 stmw_operation): Use MEM_P and REG_P.
21896 (tie_operand): Use MEM_P.
21897 (vrsave_operation, crsave_operation): Use REG_P.
21898 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
21899 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
21900 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
21901 (call_operand): Use HARD_REGISTER_P.
21902 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
21904 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
21905 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
21906 quad_aligned_load_p, replace_swapped_aligned_store,
21907 recombine_lvx_pattern, replace_swapped_aligned_load,
21908 recombine_stvx_pattern): Use MEM_P.
21909 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
21910 Use MEM_P and SYMBOL_REF_P.
21911 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
21912 (insn_is_swappable_p): Use REG_P and MEM_P.
21913 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
21914 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
21916 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
21917 Use CONST_DOUBLE_P.
21918 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
21920 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
21921 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
21922 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
21923 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
21925 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
21926 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
21927 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
21928 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
21929 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
21930 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
21931 rs6000_split_logical_di): Use CONST_INT_P.
21932 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
21933 REG_P and SYMBOL_REF_P.
21934 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
21935 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
21936 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
21937 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
21938 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
21939 (small_data_operand, print_operand_address): Use CONST_INT_P and
21941 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
21942 (rs6000_init_hard_regno_mode_ok, direct_move_p):
21943 Use HARD_REGISTER_NUM_P.
21944 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
21945 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
21946 SUBREG_P and SYMBOL_REF_P.
21947 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
21948 and HARD_REGISTER_NUM_P.
21949 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
21951 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
21952 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
21954 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
21955 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
21956 find_addr_reg): Use REG_P.
21957 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
21958 (rs6000_emit_le_vsx_move): Use SUBREG_P.
21959 (offsettable_ok_by_alignment, constant_pool_expr_p,
21960 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
21961 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
21962 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
21963 rs6000_assemble_integer, create_TOC_reference,
21964 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
21965 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
21966 (rs6000_split_vec_extract_var): Use reg_or_subregno.
21967 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
21968 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
21969 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
21970 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
21971 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
21972 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
21973 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
21974 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
21975 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
21976 and cbranch<mode>4): Use CONST_INT_P.
21977 (multiple define_splits): Use REG_P and SUBREG_P.
21978 (define_expands call, call_value): Use MEM_P.
21979 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
21980 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
21981 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
21982 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
21983 and HARD_REGISTER_NUM_P.
21984 (multiple define_splits): Use HARD_REGISTER_NUM_P.
21986 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
21988 PR rtl-optimization/88948
21989 * rtl.h (prepare_copy_insn): New prototype.
21990 * gcse.c (prepare_copy_insn): New function, split out from
21991 process_insert_insn.
21992 (process_insert_insn): Use prepare_copy_insn.
21993 * store-motion.c (replace_store_insn): Use prepare_copy_insn
21994 instead of gen_move_insn.
21996 2019-01-24 Jakub Jelinek <jakub@redhat.com>
21999 * config/i386/i386.c (ix86_pic_register_p): Return true for
22000 UNSPEC_SET_GOT too.
22002 PR tree-optimization/88964
22003 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
22004 punt if HONOR_SNANS (chrec).
22006 PR middle-end/89015
22007 * tree-nested.c (convert_nonlocal_reference_stmt,
22008 convert_local_reference_stmt, convert_tramp_reference_stmt,
22009 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
22010 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
22011 or GIMPLE_OMP_TASK.
22013 PR tree-optimization/89027
22014 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
22015 for "omp simd array" variables.
22017 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
22020 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
22021 force the alignment of m_val.
22023 2019-01-24 Richard Biener <rguenther@suse.de>
22026 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
22027 When in "legacy" debug mode make sure to reset self-origins.
22029 2019-01-24 Martin Liska <mliska@suse.cz>
22031 PR gcov-profile/88994
22032 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
22033 result will be always smaller or equal to the original.
22034 * gcov.c (mangle_name): Fix else branch where we should
22035 also copy to PTR and shift the pointer.
22037 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
22039 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
22040 * vr-values.c (find_case_label_ranges): Fix a comment typo.
22042 2019-01-23 Xuepeng Guo <xuepeng.guo@intel.com>
22044 * common/config/i386/i386-common.c
22045 (OPTION_MASK_ISA_ENQCMD_SET,
22046 OPTION_MASK_ISA_ENQCMD_UNSET): New macros.
22047 (ix86_handle_option): Handle -menqcmd.
22048 * config.gcc (enqcmdintrin.h): New header file.
22049 * config/i386/cpuid.h (bit_ENQCMD): New bit.
22050 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
22052 * config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New
22054 * config/i386/i386-builtin.def (__builtin_ia32_enqcmd,
22055 __builtin_ia32_enqcmds): New builtins.
22056 * config/i386/i386-c.c (__ENQCMD__): New macro.
22057 * config/i386/i386-option.c (ix86_target_string): Add
22059 (ix86_valid_target_attribute_inner_p): Likewise.
22060 * config/i386/i386-expand.c
22061 (ix86_expand_builtin): Expand IX86_BUILTIN_ENQCMD and
22062 IX86_BUILTIN_ENQCMDS.
22063 * config/i386/i386.h (TARGET_ENQCMD): New.
22064 * config/i386/i386.md (UNSPECV_ENQCMD, UNSPECV_ENQCMDS): New.
22065 (@enqcmd<enqcmd_sfx>_<mode>): New insn pattern.
22066 (movdir64b_<mode>): Parameterize to enable share expansion code
22067 with ENQCMD in function ix86_expand_builtin.
22068 * config/i386/i386.opt: Add -menqcmd.
22069 * config/i386/immintrin.h: Include enqcmdintrin.h.
22070 * config/i386/enqcmdintrin.h: New intrinsic file.
22071 * doc/invoke.texi: Add -menqcmd.
22073 2019-01-23 Bin Cheng <bin.cheng@arm.com>
22074 Steve Ellcey <sellcey@marvell.com>
22077 * recog.c (address_operand): Return false on wrong mode for address.
22078 (constrain_operands): Check for mode with 'p' constraint.
22080 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
22083 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
22084 Disparage MMX alternative.
22085 (sse2_cvtpd2pi): Ditto.
22086 (sse2_cvttpd2pi): Ditto.
22088 2019-01-23 David Malcolm <dmalcolm@redhat.com>
22091 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
22092 use-after-free of the result of
22093 aarch64_get_extension_string_for_isa_flags.
22095 2019-01-23 Jakub Jelinek <jakub@redhat.com>
22098 * doc/extend.texi: Document break and continue behavior in
22099 statement expressions.
22101 2019-01-23 Richard Biener <rguenther@suse.de>
22103 PR tree-optimization/89008
22104 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
22105 not leave another stray operand.
22107 2019-01-23 Jakub Jelinek <jakub@redhat.com>
22109 * BASE-VER: Bump to 9.0.1.
22111 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
22113 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
22114 thunk that returns by reference, use the type of the return object
22115 of the thunk instead of that of the alias to build the dereference.
22117 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
22119 * config/arc/atomic.md: Add operand to DMB instruction.
22121 2019-01-23 Jakub Jelinek <jakub@redhat.com>
22123 PR tree-optimization/88964
22124 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
22125 build_zero_cst instead of build_int_cst. Return false for loop
22126 invariants which honor signed zeros.
22128 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
22130 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
22132 2019-01-22 Jakub Jelinek <jakub@redhat.com>
22135 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
22136 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
22137 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
22139 PR middle-end/88968
22140 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
22141 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
22144 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
22145 Disable for little endian.
22147 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
22150 * config/arm/arm.c (arm_needs_double_word_align): Check
22151 DECL_BIT_FIELD_TYPE.
22153 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
22154 H.J. Lu <hongjiu.lu@intel.com>
22157 * config/i386/i386-builtin.def: Add mask2 to all builtin
22158 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
22160 * config/i386/i386.c (BDESC): Add mask2 to the definition.
22161 (BDESC_FIRST): Likewise.
22162 (define_builtin): Add an argument for mask2. Updated to handle
22163 both ix86_isa_flags and ix86_isa_flags2.
22164 (define_builtin_const): Likewise.
22165 (define_builtin_pure): Likewise.
22166 (define_builtin2): Deleted.
22167 (define_builtin_const2): Likewise.
22168 (builtin_description): Add a member, mask2.
22169 (bdesc_*): Add mask2 to builtin initializations.
22170 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
22171 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
22173 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
22175 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
22178 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
22181 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
22184 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
22185 alignment is dominated by a bitfield with 64-bit aligned base type.
22186 (arm_function_arg): Emit a warning if the alignment has changed since
22187 earlier GCC releases.
22188 (arm_function_arg_boundary): Likewise.
22189 (arm_setup_incoming_varargs): Likewise.
22191 2019-01-22 Richard Biener <rguenther@suse.de>
22193 PR tree-optimization/88862
22194 * graphite-scop-detection.c
22195 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
22197 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
22199 * doc/extend.tex (AMD GCN Function Attributes): New section.
22200 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
22201 * doc/invoke.texi (AMD GCN Options): New section.
22202 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
22204 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
22206 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
22207 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
22209 2019-01-22 Jakub Jelinek <jakub@redhat.com>
22211 PR tree-optimization/88044
22212 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
22213 is false in the first iteration, but !every_iteration, return false
22214 instead of true with niter->niter zero.
22216 PR rtl-optimization/88904
22217 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
22218 any nonequal registers before processing BB_END (b).
22221 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
22223 (expand_binop_directly, expand_doubleword_clz,
22224 expand_doubleword_popcount, expand_ctz, expand_ffs,
22225 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
22227 PR rtl-optimization/49429
22229 PR rtl-optimization/86334
22231 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
22232 addressable from here...
22233 (emit_block_op_via_libcall): ... to here.
22235 2019-01-22 Richard Biener <rguenther@suse.de>
22237 * tree-vect-loop.c (vect_analyze_loop_operations): Use
22238 auto_vec for cost vector to fix memleak.
22239 (vectorize_fold_left_reduction): Properly gather SLP defs.
22240 (vectorizable_comparison): Do not swap operands to properly
22243 2019-01-22 Alan Modra <amodra@gmail.com>
22246 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
22247 stays a reg. Allow a const_int.
22248 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
22249 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
22250 (IS_NOMARK_TLSGETADDR): Define.
22251 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
22252 (rs6000_output_tlsargs): New function.
22253 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
22254 __tls_get_addr call takes an arg.
22255 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
22256 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
22258 (call_value_nonlocal_sysv): ..or here, delete split.
22259 (tls_gdld_nomark): Delete.
22260 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
22261 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
22262 (call_value_nonlocal_sysv): Likewise.
22263 (call_value_nonlocal_sysv_secure): Likewise.
22264 (call_value_nonlocal_aix): Likewise.
22265 (call_value_indirect_aix): Likewise.
22266 (call_value_indirect_elfv2): Likewise.
22267 (call_value_local32, call_value_local64): Disable for no-mark tls.
22268 (call_value_local_aix): Likewise.
22270 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
22273 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
22274 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
22276 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
22278 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
22279 string contents as hash_map keys.
22281 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
22284 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
22285 for rvalue context. Handle rvalues correctly. Use min_align_of_type
22286 instead of TYPE_ALIGN.
22287 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
22288 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
22289 pointer from TYPE_STUB_DECL.
22291 2019-01-21 Richard Biener <rguenther@suse.de>
22293 PR tree-optimization/88934
22294 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
22295 at the possibly non-constant operand.
22296 (vect_get_constant_vectors): Adjust.
22298 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
22301 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
22302 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
22303 instead of _X86INTRIN_H_INCLUDED.
22304 * onfig/i386/clwbintrin.h: Likewise.
22305 * config/i386/pkuintrin.h: Likewise.
22306 * config/i386/prfchwintrin.h: Likewise.
22307 * config/i386/rdseedintrin.h: Likewise.
22308 * config/i386/wbnoinvdintrin.h: Likewise.
22309 * config/i386/xsavecintrin.h: Likewise.
22310 * config/i386/xsavesintrin.h: Likewise.
22311 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
22312 * config/i386/xsaveintrin.h: Likewise.
22313 * config/i386/xsaveoptintrin.h: Likewise.
22314 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
22315 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
22316 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
22317 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
22318 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
22319 * config/i386/immintrin.h: Here.
22321 2019-01-20 Martin Jambor <mjambor@suse.cz>
22324 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
22325 with aa_walk_budget.
22326 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
22327 aa_walk_budget_p parameter.
22328 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
22329 walk. Updated all callers.
22330 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
22331 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
22333 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
22334 parameter info. Extract info from fbi. Pass fbi to recursive calls
22335 and to unmodified_parm.
22336 (phi_result_unknown_predicate): New parameter fbi, removed parameter
22337 info, updated call to will_be_nonconstant_expr_predicate.
22338 (param_change_prob): New parameter fbi, limit AA walking.
22339 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
22340 calls to various above functions.
22341 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
22342 parameter. Use it to limit AA walking.
22343 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
22344 fbi, limit AA walk.
22345 (detect_type_change): New parameter fbi, pass it on to
22346 detect_type_change_from_memory_writes.
22347 (detect_type_change_ssa): Likewise.
22348 (aa_overwalked): Removed.
22349 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
22350 accordingly, adjust to the neew AA limiting scheme.
22351 (parm_ref_data_preserved_p): Likewise.
22352 (ipa_compute_jump_functions_for_edge): Adjust call to
22354 (ipa_analyze_call_uses): Likewise.
22355 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
22356 (ipa_analyze_node): Initialize aa_walk_budget.
22357 (ipcp_transform_function): Likewise.
22358 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
22359 to get_dynamic_type.
22361 2019-01-19 Jakub Jelinek <jakub@redhat.com>
22363 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
22364 outside of #if CHECKING_P code.
22366 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
22368 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
22369 New function, split out from...
22370 (loop_versioning::analyze_stride): ...here.
22371 (loop_versioning::find_per_loop_multiplication): Use gassign.
22372 (loop_versioning::analyze_term_using_scevs): Return a success code.
22373 (loop_versioning::analyze_arbitrary_term): New function.
22374 (loop_versioning::analyze_address_fragment): Use
22375 analyze_arbitrary_term if all else fails.
22377 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
22380 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
22383 2019-01-18 Richard Biener <rguenther@suse.de>
22385 PR tree-optimization/88903
22386 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
22387 scalar stmts a SLP shift amount is composed of when detecting
22390 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
22393 * config/arm/arm-cpus.in (mp): New feature.
22394 (sec): New feature.
22395 (fgroup ARMv7ve): Add mp and sec features.
22396 (arch armv7-a): Add options to allow mp and sec extensions.
22397 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
22398 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
22399 extenstions to the base architecture.
22400 (cpu cortex-a8): Add sec extension to the base architecture.
22401 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
22402 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
22403 variants down to the base v7-a varaint.
22404 * config/arm/t-multilib (v7_a_arch_variants): New variable.
22405 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
22406 of permitted extensions for -march=armv7-a and for
22407 -mcpu=generic-armv7-a.
22409 2019-01-18 Martin Liska <mliska@suse.cz>
22411 * params.def: Fix comment.
22412 * tree-profile.c (gimple_init_gcov_profiler): Bump function
22414 (gimple_gen_ic_func_profiler): Likewise.
22416 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22418 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
22419 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
22420 and put in error checks for stack protector guard options.
22421 (aarch64_stack_protect_guard): New.
22422 (TARGET_STACK_PROTECT_GUARD): Define.
22423 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
22424 (reg_stack_protect_address<mode>): New.
22425 (stack_protect_set): Adjust for SSP_GLOBAL.
22426 (stack_protect_test): Likewise.
22427 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
22428 (-mstack-protector-guard): Likewise.
22429 (-mstack-protector-guard-offset): Likewise.
22431 2019-01-18 Jakub Jelinek <jakub@redhat.com>
22433 PR tree-optimization/86214
22434 * tree-inline.h (struct copy_body_data): Add
22435 add_clobbers_to_eh_landing_pads member.
22436 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
22437 (copy_edges_for_bb): Call it if EH edge destination is <
22438 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
22439 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
22440 if flag_stack_reuse != SR_NONE and clear it afterwards.
22442 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
22445 * doc/install.texi (with-multilib-list): Document for aarch64.
22447 2019-01-18 Jakub Jelinek <jakub@redhat.com>
22450 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
22451 (("..."))) with ("...").
22453 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
22455 * doc/extend.texi (Built-in Functions for Memory Model Aware
22456 Atomic Operations): Document atomic fetch and nand.
22458 2019-01-18 Martin Liska <mliska@suse.cz>
22459 Richard Biener <rguenther@suse.de>
22461 PR middle-end/88587
22462 * cgraph.h (create_version_clone_with_body): Add new argument
22464 * cgraphclones.c (cgraph_node::create_version_clone): Add
22465 DECL_ATTRIBUTES to a newly created decl. And call
22466 valid_attribute_p so that proper cl_target_optimization_node
22467 is set for the newly created declaration.
22468 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
22470 (expand_target_clones): Do not call valid_attribute_p, it must
22472 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
22475 2019-01-17 Jakub Jelinek <jakub@redhat.com>
22478 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
22479 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
22480 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
22482 2019-01-17 Martin Sebor <msebor@redhat.com>
22484 PR middle-end/88273
22485 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
22486 Handle anti-ranges the same as no range at all.
22488 2018-01-17 Steve Ellcey <sellcey@cavium.com>
22490 * config/aarch64/aarch64.c (cgraph.h): New include.
22491 (intl.h): New include.
22492 (supported_simd_type): New function.
22493 (currently_supported_simd_type): Ditto.
22494 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
22495 (aarch64_simd_clone_adjust): Ditto.
22496 (aarch64_simd_clone_usable): Ditto.
22497 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
22498 (TARGET_SIMD_CLONE_ADJUST): Ditto.
22499 (TARGET_SIMD_CLONE_USABLE): Ditto.
22500 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
22501 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
22504 2019-01-17 Martin Sebor <msebor@redhat.com>
22506 PR tree-optimization/88800
22507 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
22508 NO_WARNING bit here. Avoid folding out-of-bounds calls.
22509 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
22510 redundant argument. Add new argument and issue diagnostics under
22511 its control. Detect out-of-bounds access even with warnings
22513 (check_bounds_or_overlap): Change return type. Add argument.
22514 (wrestrict_dom_walker::check_call): Adjust.
22515 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
22516 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
22517 check_bounds_or_overlap's return value.
22518 (handle_builtin_stxncpy): Same.
22519 (handle_builtin_strcat): Same.
22521 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
22522 Kwok Cheung Yeung <kcy@codesourcery.com>
22523 Julian Brown <julian@codesourcery.com>
22524 Tom de Vries <tom@codesourcery.com>
22526 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
22528 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
22530 * doc/sourcebuild.texi: Document dg-require-effective-target
22531 llvm_binutils and offload_gcn.
22533 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
22534 Kwok Cheung Yeung <kcy@codesourcery.com>
22535 Julian Brown <julian@codesourcery.com>
22536 Tom de Vries <tom@codesourcery.com>
22538 * doc/sourcebuild.texi: Document dg-required-effective-target
22541 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
22542 Kwok Cheung Yeung <kcy@codesourcery.com>
22543 Julian Brown <julian@codesourcery.com>
22544 Tom de Vries <tom@codesourcery.com>
22545 Jan Hubicka <hubicka@ucw.cz>
22546 Martin Jambor <mjambor@suse.cz>
22548 * config.gcc: Add amdgcn*-*-amdhsa configuration.
22549 * configure.ac: Check for dlopen.
22550 * configure: Regenerate.
22552 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
22553 Kwok Cheung Yeung <kcy@codesourcery.com>
22554 Julian Brown <julian@codesourcery.com>
22555 Tom de Vries <tom@codesourcery.com>
22556 Jan Hubicka <hubicka@ucw.cz>
22557 Martin Jambor <mjambor@suse.cz>
22559 * common/config/gcn/gcn-common.c: New file.
22560 * config/gcn/driver-gcn.c: New file.
22561 * config/gcn/gcn-builtins.def: New file.
22562 * config/gcn/gcn-hsa.h: New file.
22563 * config/gcn/gcn-modes.def: New file.
22564 * config/gcn/gcn-opts.h: New file.
22565 * config/gcn/gcn-passes.def: New file.
22566 * config/gcn/gcn-protos.h: New file.
22567 * config/gcn/gcn-run.c: New file.
22568 * config/gcn/gcn-tree.c: New file.
22569 * config/gcn/gcn.c: New file.
22570 * config/gcn/gcn.h: New file.
22571 * config/gcn/gcn.opt: New file.
22572 * config/gcn/t-gcn-hsa: New file.
22574 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
22575 Kwok Cheung Yeung <kcy@codesourcery.com>
22576 Julian Brown <julian@codesourcery.com>
22577 Tom de Vries <tom@codesourcery.com>
22578 Jan Hubicka <hubicka@ucw.cz>
22579 Martin Jambor <mjambor@suse.cz>
22581 * config/gcn/constraints.md: New file.
22582 * config/gcn/gcn-valu.md: New file.
22583 * config/gcn/gcn.md: New file.
22584 * config/gcn/predicates.md: New file.
22586 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
22588 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
22589 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
22590 (stmt_uses_0_or_null_in_undefined_way): Likewise.
22591 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
22593 2019-01-17 Tamar Christina <tamar.christina@arm.com>
22596 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
22597 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
22598 it and document registers.
22600 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22602 * config/aarch64/aarch64.c (ares_tunings): Define.
22603 * config/aarch64/aarch64-cores.def (ares): Use the above.
22605 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
22609 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
22611 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
22612 (_mm512_fixupimm_round_pd): Update parameters and builtin.
22613 (_mm512_maskz_fixupimm_round_pd): Ditto.
22614 (_mm512_fixupimm_round_ps): Ditto.
22615 (_mm512_maskz_fixupimm_round_ps): Ditto.
22616 (_mm_fixupimm_round_sd): Ditto.
22617 (_mm_maskz_fixupimm_round_sd): Ditto.
22618 (_mm_fixupimm_round_ss): Ditto.
22619 (_mm_maskz_fixupimm_round_ss): Ditto.
22620 (_mm512_fixupimm_pd): Ditto.
22621 (_mm512_maskz_fixupimm_pd): Ditto.
22622 (_mm512_fixupimm_ps): Ditto.
22623 (_mm512_maskz_fixupimm_ps): Ditto.
22624 (_mm_fixupimm_sd): Ditto.
22625 (_mm_maskz_fixupimm_sd): Ditto.
22626 (_mm_fixupimm_ss): Ditto.
22627 (_mm_maskz_fixupimm_ss): Ditto.
22628 (_mm512_mask_fixupimm_round_pd): Update builtin.
22629 (_mm512_mask_fixupimm_round_ps): Ditto.
22630 (_mm_mask_fixupimm_round_sd): Ditto.
22631 (_mm_mask_fixupimm_round_ss): Ditto.
22632 (_mm512_mask_fixupimm_pd): Ditto.
22633 (_mm512_mask_fixupimm_ps): Ditto.
22634 (_mm_mask_fixupimm_sd): Ditto.
22635 (_mm_mask_fixupimm_ss): Ditto.
22636 * config/i386/avx512vlintrin.h:
22637 (_mm256_fixupimm_pd): Update parameters and builtin.
22638 (_mm256_maskz_fixupimm_pd): Ditto.
22639 (_mm256_fixupimm_ps): Ditto.
22640 (_mm256_maskz_fixupimm_ps): Ditto.
22641 (_mm_fixupimm_pd): Ditto.
22642 (_mm_maskz_fixupimm_pd): Ditto.
22643 (_mm_fixupimm_ps): Ditto.
22644 (_mm_maskz_fixupimm_ps): Ditto.
22645 (_mm256_mask_fixupimm_pd): Update builtin.
22646 (_mm256_mask_fixupimm_ps): Ditto.
22647 (_mm_mask_fixupimm_pd): Ditto.
22648 (_mm_mask_fixupimm_ps): Ditto.
22649 * config/i386/i386-builtin-types.def: Add new types and remove
22651 * config/i386/i386-builtin.def: Update builtin definitions.
22652 * config/i386/i386.c: Handle new builtin types and remove useless ones.
22653 * config/i386/sse.md: Update VFIXUPIMM* patterns.
22654 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
22655 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
22656 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
22657 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
22658 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
22659 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
22660 * config/i386/subst.md:
22661 (round_saeonly_sd_mask_operand4): Add new subst_attr.
22662 (round_saeonly_sd_mask_op4): Ditto.
22663 (round_saeonly_expand_operand5): Ditto.
22664 (round_saeonly_expand): Update.
22666 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
22670 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
22672 * config/i386/sse.md: Combine VFIXUPIMM* patterns
22673 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
22674 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
22675 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
22676 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
22677 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
22678 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
22680 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
22684 2018-12-15 Jakub Jelinek <jakub@redhat.com>
22687 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
22688 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
22689 instead of UNSPEC_FIXUPIMM.
22691 2019-01-17 Richard Biener <rguenther@suse.de>
22694 * dwarf2out.c (want_pubnames): Never generate pubnames sections
22695 and friends for the LTO part of debug info.
22697 2019-01-17 Jakub Jelinek <jakub@redhat.com>
22699 PR tree-optimization/86214
22700 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
22703 PR rtl-optimization/88870
22704 * dce.c (deletable_insn_p): Never delete const/pure calls that can
22705 throw if we can't alter the cfg or delete dead exceptions.
22706 (mark_insn): Don't call find_call_stack_args for such calls.
22708 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
22710 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
22711 prototypes for vec_st.
22712 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
22713 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
22714 mainly on signed/unsigned long long and double.
22716 2019-01-16 David Malcolm <dmalcolm@redhat.com>
22719 * combine.c (delete_noop_moves): Convert to "bool" return,
22720 returning true if any edges are eliminated.
22721 (combine_instructions): Also return true if delete_noop_moves
22724 2019-01-16 Tamar Christina <tamar.christina@arm.com>
22726 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
22727 correct max nunits for endian swap.
22728 (aarch64_expand_fcmla_builtin): Correct subreg code.
22729 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
22730 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
22733 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
22735 * config/alpha/alpha.c (alpha_gimplify_va_arg):
22736 Handle split indirect COMPLEX_TYPE arguments.
22738 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
22741 * config/aarch64/aarch64-modes.def: Add comment about how the carry
22742 bit is set by add and compare.
22743 (CC_ADC): New CC_MODE.
22744 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
22745 to cache the code and mode of X. Adjust the shape of a CC_Cmode
22746 comparison. Add detection for CC_ADCmode.
22747 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
22749 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
22750 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
22751 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
22752 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
22753 to eliminate the need for zero-extending the operands.
22754 (add<mode>3_compareC_imm): Delete. Merge into ...
22755 (add<mode>3_compareC): ... this. Restructure the comparison to
22756 eliminate the need for zero-extending the operands.
22757 (add<mode>3_carryin): Use LTU for the overflow detection.
22758 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
22759 Reexpress comparison for overflow.
22760 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
22761 (add<mode>3_carryinC): Likewise.
22762 (add<mode>3_carryinV): Use LTU for carry between partials.
22763 * config/aarch64/predicates.md (aarch64_carry_operation): Update
22764 handling of CC_Cmode and add CC_ADCmode.
22765 (aarch64_borrow_operation): Likewise.
22767 2019-01-16 Tamar Christina <tamar.christina@arm.com>
22769 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands):
22770 Remove patternmode.
22771 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
22772 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
22773 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>):
22774 Remove endianness conversion.
22776 2019-01-16 Martin Liska <mliska@suse.cz>
22778 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
22780 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
22782 * gcc.c (add_sysrooted_hdrs_prefix): New function.
22783 (path_prefix_reset): Move up in the source file.
22784 (find_fortran_preinclude_file): Make complex search for the
22785 fortran header files.
22787 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
22789 * godump.c (go_output_typedef): When outputting a typedef, refer
22790 to the underlying type by its name and not its structure.
22792 2019-01-15 David Malcolm <dmalcolm@redhat.com>
22795 * tree.c (build_function_type): Assert that arg_types is not
22798 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
22800 PR inline-asm/52813
22801 * doc/extend.texi: Document that listing the stack pointer in the
22802 clobber list of an asm is a deprecated feature.
22803 * common.opt (Wdeprecated): Moved from c-family/c.opt.
22804 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
22805 warning instead of an error for clobbers of the stack pointer.
22806 Add a note explaining why.
22808 2019-01-15 Richard Biener <rguenther@suse.de>
22811 * dwarf2out.c (gen_member_die): Do not generate inheritance
22814 2019-01-15 Richard Biener <rguenther@suse.de>
22816 PR tree-optimization/88855
22817 * tree-if-conv.c (combine_blocks): Collect
22818 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
22820 2019-01-15 Tom de Vries <tdevries@suse.de>
22823 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
22824 lhs == NULL_TREE for gang-level reduction.
22826 2019-01-15 Richard Biener <rguenther@suse.de>
22827 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
22830 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
22831 return true if SSA_NAME is already marked in visited bitmap.
22832 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
22834 2019-01-15 Jakub Jelinek <jakub@redhat.com>
22836 PR tree-optimization/88775
22837 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
22838 equal == 0 equality pointer comparisons some more if compared in
22839 integral types and either one points to an automatic var and the
22840 other to a global, or we can prove at least one points to the middle
22841 or both point to start or both point to end.
22843 2019-01-14 Andi Kleen <ak@linux.intel.com>
22845 * Makefile.in: Lower autofdo sampling rate by 10x.
22846 * Makefile.tpl: Dito.
22848 2019-01-14 Tom Honermann <tom@honermann.net>
22850 * defaults.h: Define CHAR8_TYPE.
22852 2019-01-14 Martin Sebor <msebor@redhat.com>
22855 * doc/extend.texi (Darwin Format Checks): Clarify.
22857 2019-01-14 Richard Biener <rguenther@suse.de>
22859 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
22860 whether we are in (simplify ...) or (match ...) context.
22862 2019-01-14 Jakub Jelinek <jakub@redhat.com>
22864 PR rtl-optimization/88796
22865 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
22866 * cfgexpand.c (stack_protect_prologue): Initialize
22867 crtl->stack_protect_guard_decl.
22868 * function.c (stack_protect_epilogue): Use it instead of calling
22869 targetm.stack_protect_guard again.
22870 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
22871 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
22872 crtl->stack_protect_guard_decl.
22873 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
22874 on the returned MEM_EXPR.
22876 2019-01-12 Tom de Vries <tdevries@suse.de>
22878 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
22879 vector length using -fopenacc-dim.
22881 2019-01-12 Tom de Vries <tdevries@suse.de>
22883 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
22884 lengths into account.
22886 2019-01-12 Svante Signell <svante.signell@gmail.com>
22888 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
22889 (TARGET_CAN_SPLIT_STACK): Define.
22890 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
22892 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
22894 * params.def (inline-unit-growth): Set to 40.
22896 2019-01-12 Jakub Jelinek <jakub@redhat.com>
22898 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
22900 2019-01-12 Tom de Vries <tdevries@suse.de>
22902 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
22903 region calling vector-partitionable routine, set default_vector_length
22906 2019-01-12 Tom de Vries <tdevries@suse.de>
22908 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
22909 variable default_vector_length.
22911 2019-01-12 Tom de Vries <tdevries@suse.de>
22913 PR middle-end/88703
22914 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
22915 from oacc_default_dims, as oacc_validate_dims would do it, and apply
22918 2019-01-12 Tom de Vries <tdevries@suse.de>
22920 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
22921 (nvptx_goacc_validate_dims): Add used parameter.
22922 * doc/tm.texi: Regenerate.
22923 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
22924 argument to call to targetm.goacc.validate_dims.
22925 (default_goacc_validate_dims): Add used
22927 * target.def (validate_dims): Add used parameter in DEFHOOK.
22928 * targhooks.h (default_goacc_validate_dims): Add used parameter.
22930 2019-01-11 Jakub Jelinek <jakub@redhat.com>
22932 PR middle-end/85956
22934 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
22936 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
22937 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
22938 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
22939 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
22941 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
22943 PR rtl-optimization/87305
22945 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
22946 for little endian pseudos used as paradoxical subreg.
22948 2019-01-11 Jakub Jelinek <jakub@redhat.com>
22950 PR tree-optimization/88693
22951 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
22952 for STRING_CSTs that don't contain any NUL characters in the first
22953 TREE_STRING_LENGTH bytes.
22955 2019-01-11 Alan Modra <amodra@gmail.com>
22959 * genattrtab.c (min_fn): Don't translate values.
22960 (min_attr_value): Return INT_MAX when the value can't be calculated.
22961 Return minimum among any values that can be calculated.
22962 (max_attr_value): Adjust.
22964 2019-01-11 Jakub Jelinek <jakub@redhat.com>
22966 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
22968 2019-01-11 Steve Ellcey <sellcey@marvell.com>
22970 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
22971 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
22972 (aarch64_return_call_with_max_clobbers): New function.
22973 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
22974 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
22976 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
22977 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
22978 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
22979 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
22980 * cselib.c (cselib_process_insn): Add argument to
22981 targetm.hard_regno_call_part_clobbered call.
22982 * ira-conflicts.c (ira_build_conflicts): Ditto.
22983 * ira-costs.c (ira_tune_allocno_costs): Ditto.
22984 * lra-constraints.c (inherit_reload_reg): Ditto.
22985 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
22986 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
22987 argument. Call targetm.return_call_with_max_clobbers.
22988 Add argument to targetm.hard_regno_call_part_clobbered call.
22989 (calls_have_same_clobbers_p): New function.
22990 (process_bb_lives): Add call_insn and last_call_insn variables.
22991 Pass call_insn to check_pseudos_live_through_calls.
22992 Modify if stmt to check targetm.return_call_with_max_clobbers.
22993 Update setting of flush variable.
22994 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
22996 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
22997 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
22998 targetm.hard_regno_call_part_clobbered call.
22999 * reginfo.c (choose_hard_reg_mode): Ditto.
23000 * regrename.c (check_new_reg_p): Ditto.
23001 * reload.c (find_equiv_reg): Ditto.
23002 * reload1.c (emit_reload_insns): Ditto.
23003 * sched-deps.c (deps_analyze_insn): Ditto.
23004 * sel-sched.c (init_regs_for_mode): Ditto.
23005 (mark_unavailable_hard_regs): Ditto.
23006 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
23007 * target.def (hard_regno_call_part_clobbered): Add insn argument.
23008 (return_call_with_max_clobbers): New target function.
23009 * doc/tm.texi: Regenerate.
23010 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
23011 * hooks.c (hook_bool_uint_mode_false): Change to
23012 hook_bool_insn_uint_mode_false.
23013 * hooks.h (hook_bool_uint_mode_false): Ditto.
23015 2019-01-11 Steve Ellcey <sellcey@marvell.com>
23017 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
23018 (aarch64_remove_extra_call_preserved_regs): New function.
23019 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
23020 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
23021 * doc/tm.texi: Regenerate.
23022 * final.c (get_call_reg_set_usage): Call new hook.
23023 * target.def (remove_extra_call_preserved_regs): New hook.
23024 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
23025 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
23027 2019-01-11 Jakub Jelinek <jakub@redhat.com>
23030 * passes.c (finish_optimization_passes): Call print_combine_total_stats
23031 inside of pass_combine_1 dump rather than pass_profile_1.
23033 2019-01-11 Tom de Vries <tdevries@suse.de>
23035 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
23036 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
23037 (PTX_NUM_PER_WORKER_BARRIERS): Define.
23038 (nvptx_apply_dim_limits): Prevent vector_length 64 and
23041 2019-01-11 Tom de Vries <tdevries@suse.de>
23043 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
23045 2019-01-11 Jan Beulich <jbeulich@suse.com>
23047 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
23048 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
23049 sse2_cvtsi2sd): Add {l}.
23050 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
23053 2019-01-10 Jakub Jelinek <jakub@redhat.com>
23056 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
23058 (*float<floatunssuffix>v2div2sf2): New define_insn.
23059 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
23060 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
23061 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
23062 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
23063 match_operands with "const0_operand" "C".
23065 2019-01-10 Tamar Christina <tamar.christina@arm.com>
23067 * config/aarch64/aarch64-builtins.c
23068 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
23069 (aarch64_init_simd_builtins): ...Here
23071 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
23073 PR rtl-optimization/87305
23075 (setup_live_pseudos_and_spill_after_risky_transforms): Check
23076 allocation for big endian pseudos used as paradoxical subregs and
23077 spill them if it is wrong.
23078 * lra-constraints.c (lra_constraints): Add a comment.
23080 2019-01-10 Richard Biener <rguenther@suse.de>
23082 PR tree-optimization/88792
23083 * tree-ssa-pre.c (get_representative_for): Do not return a
23086 2019-01-10 Jakub Jelinek <jakub@redhat.com>
23088 PR middle-end/84877
23090 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
23091 (assign_parm_setup_block): Do the argument slot realignment here
23094 2019-01-10 Stefan Agner <stefan@agner.ch>
23097 * config/arm/arm.c (arm_option_override_internal): Force
23098 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
23100 2019-01-10 Jakub Jelinek <jakub@redhat.com>
23103 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
23106 2019-01-10 Tamar Christina <tamar.christina@arm.com>
23108 * config/arm/arm-builtins.c
23109 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
23110 (MAC_LANE_PAIR_QUALIFIERS): New.
23111 (arm_expand_builtin_args): Use it.
23112 (arm_expand_builtin_1): Likewise.
23113 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
23114 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
23115 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
23116 * config/arm/arm_neon.h:
23117 (vcadd_rot90_f16): New.
23118 (vcaddq_rot90_f16): New.
23119 (vcadd_rot270_f16): New.
23120 (vcaddq_rot270_f16): New.
23123 (vcmla_lane_f16): New.
23124 (vcmla_laneq_f16): New.
23125 (vcmlaq_lane_f16): New.
23126 (vcmlaq_laneq_f16): New.
23127 (vcmla_rot90_f16): New.
23128 (vcmlaq_rot90_f16): New.
23129 (vcmla_rot90_lane_f16): New.
23130 (vcmla_rot90_laneq_f16): New.
23131 (vcmlaq_rot90_lane_f16): New.
23132 (vcmlaq_rot90_laneq_f16): New.
23133 (vcmla_rot180_f16): New.
23134 (vcmlaq_rot180_f16): New.
23135 (vcmla_rot180_lane_f16): New.
23136 (vcmla_rot180_laneq_f16): New.
23137 (vcmlaq_rot180_lane_f16): New.
23138 (vcmlaq_rot180_laneq_f16): New.
23139 (vcmla_rot270_f16): New.
23140 (vcmlaq_rot270_f16): New.
23141 (vcmla_rot270_lane_f16): New.
23142 (vcmla_rot270_laneq_f16): New.
23143 (vcmlaq_rot270_lane_f16): New.
23144 (vcmlaq_rot270_laneq_f16): New.
23145 (vcadd_rot90_f32): New.
23146 (vcaddq_rot90_f32): New.
23147 (vcadd_rot270_f32): New.
23148 (vcaddq_rot270_f32): New.
23151 (vcmla_lane_f32): New.
23152 (vcmla_laneq_f32): New.
23153 (vcmlaq_lane_f32): New.
23154 (vcmlaq_laneq_f32): New.
23155 (vcmla_rot90_f32): New.
23156 (vcmlaq_rot90_f32): New.
23157 (vcmla_rot90_lane_f32): New.
23158 (vcmla_rot90_laneq_f32): New.
23159 (vcmlaq_rot90_lane_f32): New.
23160 (vcmlaq_rot90_laneq_f32): New.
23161 (vcmla_rot180_f32): New.
23162 (vcmlaq_rot180_f32): New.
23163 (vcmla_rot180_lane_f32): New.
23164 (vcmla_rot180_laneq_f32): New.
23165 (vcmlaq_rot180_lane_f32): New.
23166 (vcmlaq_rot180_laneq_f32): New.
23167 (vcmla_rot270_f32): New.
23168 (vcmlaq_rot270_f32): New.
23169 (vcmla_rot270_lane_f32): New.
23170 (vcmla_rot270_laneq_f32): New.
23171 (vcmlaq_rot270_lane_f32): New.
23172 (vcmlaq_rot270_laneq_f32): New.
23173 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
23174 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180,
23175 vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180,
23176 vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180,
23177 vcmlaq_lane270): New.
23178 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
23179 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
23180 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
23181 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
23182 (arm_option_reconfigure_globals): Use them.
23183 * config/arm/iterators.md (VDF, VQ_HSF): New.
23184 (VCADD, VCMLA): New.
23185 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
23186 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>):
23188 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
23189 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
23191 2019-01-10 Tamar Christina <tamar.christina@arm.com>
23193 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
23194 Add qualifier_lane_pair_index.
23195 (emit-rtl.h): Include.
23196 (TYPES_QUADOP_LANE_PAIR): New.
23197 (aarch64_simd_expand_args): Use it.
23198 (aarch64_simd_expand_builtin): Likewise.
23199 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum):
23201 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
23202 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
23203 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
23204 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
23205 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
23206 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF,
23207 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
23208 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF,
23209 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
23210 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF,
23211 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
23212 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
23213 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
23214 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
23215 Add __ARM_FEATURE_COMPLEX.
23216 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0,
23217 fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180,
23218 fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180,
23219 fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
23220 fcmlaq_lane270): New.
23221 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
23222 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,
23223 aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): New.
23224 * config/aarch64/arm_neon.h:
23225 (vcadd_rot90_f16): New.
23226 (vcaddq_rot90_f16): New.
23227 (vcadd_rot270_f16): New.
23228 (vcaddq_rot270_f16): New.
23231 (vcmla_lane_f16): New.
23232 (vcmla_laneq_f16): New.
23233 (vcmlaq_lane_f16): New.
23234 (vcmlaq_rot90_lane_f16): New.
23235 (vcmla_rot90_laneq_f16): New.
23236 (vcmla_rot90_lane_f16): New.
23237 (vcmlaq_rot90_f16): New.
23238 (vcmla_rot90_f16): New.
23239 (vcmlaq_laneq_f16): New.
23240 (vcmla_rot180_laneq_f16): New.
23241 (vcmla_rot180_lane_f16): New.
23242 (vcmlaq_rot180_f16): New.
23243 (vcmla_rot180_f16): New.
23244 (vcmlaq_rot90_laneq_f16): New.
23245 (vcmlaq_rot270_laneq_f16): New.
23246 (vcmlaq_rot270_lane_f16): New.
23247 (vcmla_rot270_laneq_f16): New.
23248 (vcmlaq_rot270_f16): New.
23249 (vcmla_rot270_f16): New.
23250 (vcmlaq_rot180_laneq_f16): New.
23251 (vcmlaq_rot180_lane_f16): New.
23252 (vcmla_rot270_lane_f16): New.
23253 (vcadd_rot90_f32): New.
23254 (vcaddq_rot90_f32): New.
23255 (vcaddq_rot90_f64): New.
23256 (vcadd_rot270_f32): New.
23257 (vcaddq_rot270_f32): New.
23258 (vcaddq_rot270_f64): New.
23262 (vcmla_lane_f32): New.
23263 (vcmla_laneq_f32): New.
23264 (vcmlaq_lane_f32): New.
23265 (vcmlaq_laneq_f32): New.
23266 (vcmla_rot90_f32): New.
23267 (vcmlaq_rot90_f32): New.
23268 (vcmlaq_rot90_f64): New.
23269 (vcmla_rot90_lane_f32): New.
23270 (vcmla_rot90_laneq_f32): New.
23271 (vcmlaq_rot90_lane_f32): New.
23272 (vcmlaq_rot90_laneq_f32): New.
23273 (vcmla_rot180_f32): New.
23274 (vcmlaq_rot180_f32): New.
23275 (vcmlaq_rot180_f64): New.
23276 (vcmla_rot180_lane_f32): New.
23277 (vcmla_rot180_laneq_f32): New.
23278 (vcmlaq_rot180_lane_f32): New.
23279 (vcmlaq_rot180_laneq_f32): New.
23280 (vcmla_rot270_f32): New.
23281 (vcmlaq_rot270_f32): New.
23282 (vcmlaq_rot270_f64): New.
23283 (vcmla_rot270_lane_f32): New.
23284 (vcmla_rot270_laneq_f32): New.
23285 (vcmlaq_rot270_lane_f32): New.
23286 (vcmlaq_rot270_laneq_f32): New.
23287 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
23288 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
23289 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
23290 (FCADD, FCMLA): New.
23292 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
23294 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
23298 * config/pa/pa.c: Change "can not" to "cannot".
23299 * gimple-ssa-evrp-analyze.c: Likewise.
23300 * ipa-icf.c: Likewise.
23301 * ipa-polymorphic-call.c: Likewise.
23302 * ipa-pure-const.c: Likewise.
23303 * lra-constraints.c: Likewise.
23304 * lra-remat.c: Likewise.
23305 * reload1.c: Likewise.
23306 * reorg.c: Likewise.
23307 * tree-ssa-uninit.c: Likewise.
23309 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
23313 * Makefile.in: Mechanically replace "can not" with "cannot".
23314 * alias.c: Likewise.
23315 * builtins.c: Likewise.
23316 * calls.c: Likewise.
23317 * cgraph.c: Likewise.
23318 * cgraph.h: Likewise.
23319 * cgraphclones.c: Likewise.
23320 * cgraphunit.c: Likewise.
23321 * combine-stack-adj.c: Likewise.
23322 * combine.c: Likewise.
23323 * common/config/i386/i386-common.c: Likewise.
23324 * config/aarch64/aarch64.c: Likewise.
23325 * config/alpha/sync.md: Likewise.
23326 * config/arc/arc.c: Likewise.
23327 * config/arc/predicates.md: Likewise.
23328 * config/arm/arm-c.c: Likewise.
23329 * config/arm/arm.c: Likewise.
23330 * config/arm/arm.h: Likewise.
23331 * config/arm/arm.md: Likewise.
23332 * config/arm/cortex-r4f.md: Likewise.
23333 * config/csky/csky.c: Likewise.
23334 * config/csky/csky.h: Likewise.
23335 * config/darwin-f.c: Likewise.
23336 * config/epiphany/epiphany.md: Likewise.
23337 * config/i386/i386.c: Likewise.
23338 * config/i386/sol2.h: Likewise.
23339 * config/m68k/m68k.c: Likewise.
23340 * config/mcore/mcore.h: Likewise.
23341 * config/microblaze/microblaze.md: Likewise.
23342 * config/mips/20kc.md: Likewise.
23343 * config/mips/sb1.md: Likewise.
23344 * config/nds32/nds32.c: Likewise.
23345 * config/nds32/predicates.md: Likewise.
23346 * config/pa/pa.c: Likewise.
23347 * config/rs6000/e300c2c3.md: Likewise.
23348 * config/rs6000/rs6000.c: Likewise.
23349 * config/s390/s390.h: Likewise.
23350 * config/sh/sh.c: Likewise.
23351 * config/sh/sh.md: Likewise.
23352 * config/spu/vmx2spu.h: Likewise.
23353 * cprop.c: Likewise.
23354 * dbxout.c: Likewise.
23355 * df-scan.c: Likewise.
23356 * doc/cfg.texi: Likewise.
23357 * doc/extend.texi: Likewise.
23358 * doc/fragments.texi: Likewise.
23359 * doc/gty.texi: Likewise.
23360 * doc/invoke.texi: Likewise.
23361 * doc/lto.texi: Likewise.
23362 * doc/md.texi: Likewise.
23363 * doc/objc.texi: Likewise.
23364 * doc/rtl.texi: Likewise.
23365 * doc/tm.texi: Likewise.
23367 * emit-rtl.c: Likewise.
23368 * emit-rtl.h: Likewise.
23369 * except.c: Likewise.
23370 * expmed.c: Likewise.
23371 * expr.c: Likewise.
23372 * fold-const.c: Likewise.
23373 * genautomata.c: Likewise.
23374 * gimple-fold.c: Likewise.
23375 * hard-reg-set.h: Likewise.
23376 * ifcvt.c: Likewise.
23377 * ipa-comdats.c: Likewise.
23378 * ipa-cp.c: Likewise.
23379 * ipa-devirt.c: Likewise.
23380 * ipa-fnsummary.c: Likewise.
23381 * ipa-icf.c: Likewise.
23382 * ipa-inline-transform.c: Likewise.
23383 * ipa-inline.c: Likewise.
23384 * ipa-polymorphic-call.c: Likewise.
23385 * ipa-profile.c: Likewise.
23386 * ipa-prop.c: Likewise.
23387 * ipa-pure-const.c: Likewise.
23388 * ipa-reference.c: Likewise.
23389 * ipa-split.c: Likewise.
23390 * ipa-visibility.c: Likewise.
23392 * ira-build.c: Likewise.
23393 * ira-color.c: Likewise.
23394 * ira-conflicts.c: Likewise.
23395 * ira-costs.c: Likewise.
23396 * ira-int.h: Likewise.
23397 * ira-lives.c: Likewise.
23400 * loop-invariant.c: Likewise.
23401 * loop-unroll.c: Likewise.
23402 * lower-subreg.c: Likewise.
23403 * lra-assigns.c: Likewise.
23404 * lra-constraints.c: Likewise.
23405 * lra-eliminations.c: Likewise.
23406 * lra-lives.c: Likewise.
23407 * lra-remat.c: Likewise.
23408 * lra-spills.c: Likewise.
23410 * lto-cgraph.c: Likewise.
23411 * lto-streamer-out.c: Likewise.
23412 * postreload-gcse.c: Likewise.
23413 * predict.c: Likewise.
23414 * profile-count.h: Likewise.
23415 * profile.c: Likewise.
23416 * recog.c: Likewise.
23418 * reload.c: Likewise.
23419 * reload1.c: Likewise.
23420 * reorg.c: Likewise.
23421 * resource.c: Likewise.
23422 * rtl.def: Likewise.
23424 * rtlanal.c: Likewise.
23425 * sched-deps.c: Likewise.
23426 * sched-ebb.c: Likewise.
23427 * sched-rgn.c: Likewise.
23428 * sel-sched-ir.c: Likewise.
23429 * sel-sched.c: Likewise.
23430 * shrink-wrap.c: Likewise.
23431 * simplify-rtx.c: Likewise.
23432 * symtab.c: Likewise.
23433 * target.def: Likewise.
23434 * toplev.c: Likewise.
23435 * tree-call-cdce.c: Likewise.
23436 * tree-cfg.c: Likewise.
23437 * tree-complex.c: Likewise.
23438 * tree-core.h: Likewise.
23439 * tree-eh.c: Likewise.
23440 * tree-inline.c: Likewise.
23441 * tree-loop-distribution.c: Likewise.
23442 * tree-nrv.c: Likewise.
23443 * tree-profile.c: Likewise.
23444 * tree-sra.c: Likewise.
23445 * tree-ssa-alias.c: Likewise.
23446 * tree-ssa-dce.c: Likewise.
23447 * tree-ssa-dom.c: Likewise.
23448 * tree-ssa-forwprop.c: Likewise.
23449 * tree-ssa-loop-im.c: Likewise.
23450 * tree-ssa-loop-ivcanon.c: Likewise.
23451 * tree-ssa-loop-ivopts.c: Likewise.
23452 * tree-ssa-loop-niter.c: Likewise.
23453 * tree-ssa-phionlycprop.c: Likewise.
23454 * tree-ssa-phiopt.c: Likewise.
23455 * tree-ssa-propagate.c: Likewise.
23456 * tree-ssa-threadedge.c: Likewise.
23457 * tree-ssa-threadupdate.c: Likewise.
23458 * tree-ssa-uninit.c: Likewise.
23459 * tree-ssanames.c: Likewise.
23460 * tree-streamer-out.c: Likewise.
23461 * tree.c: Likewise.
23462 * tree.h: Likewise.
23463 * vr-values.c: Likewise.
23465 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
23467 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
23468 (ix86_split_xorsign): Ditto.
23469 * config/i386/i386.c (ix86_expand_xorsign): New function.
23470 (ix86_split_xorsign): Ditto.
23471 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
23472 (xorsign<mode>3): New expander.
23473 (xorsign<mode>3_1): New insn_and_split pattern.
23474 * config/i386/sse.md (xorsign<mode>3): New expander.
23476 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
23478 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
23479 (*tablejump_sp64): Likewise.
23480 (*tablejump<P:mode>): ...this.
23481 (*call_address_sp32): Merge into...
23482 (*call_address_sp64): Likewise.
23483 (*call_address<P:mode>): ...this.
23484 (*call_symbolic_sp32): Merge into...
23485 (*call_symbolic_sp64): Likewise.
23486 (*call_symbolic<P:mode>): ...this.
23487 (call_value): Remove constraint and add predicate.
23488 (*call_value_address_sp32): Merge into...
23489 (*call_value_address_sp64): Likewise.
23490 (*call_value_address<P:mode>): ...this.
23491 (*call_value_symbolic_sp32): Merge into...
23492 (*call_value_symbolic_sp64): Likewise.
23493 (*call_value_symbolic<P:mode>): ...this.
23494 (*sibcall_symbolic_sp32): Merge into...
23495 (*sibcall_symbolic_sp64): Likewise.
23496 (*sibcall_symbolic<P:mode>): ...this.
23497 (sibcall_value): Remove constraint and add predicate.
23498 (*sibcall_value_symbolic_sp32): Merge into...
23499 (*sibcall_value_symbolic_sp64): Likewise.
23500 (*sibcall_value_symbolic<P:mode>): ...this.
23501 (window_save): Minor tweak.
23502 (*branch_sp32): Merge into...
23503 (*branch_sp64): Likewise.
23504 (*branch<P:mode>): ...this.
23506 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
23507 James Clarke <jrtc27@jrtc27.com>
23510 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
23511 consistently in TLS address generation and adjust code to the renaming
23512 of patterns. Mark calls to __tls_get_addr as const.
23513 * config/sparc/sparc.md (tgd_hi22): Turn into...
23514 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
23515 (tgd_lo10): Turn into...
23516 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
23517 (tgd_add32): Merge into...
23518 (tgd_add64): Likewise.
23519 (tgd_add<P:mode>): ...this and use Pmode throughout.
23520 (tldm_hi22): Turn into...
23521 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
23522 (tldm_lo10): Turn into...
23523 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
23524 (tldm_add32): Merge into...
23525 (tldm_add64): Likewise.
23526 (tldm_add<P:mode>): ...this and use Pmode throughout.
23527 (tldm_call32): Merge into...
23528 (tldm_call64): Likewise.
23529 (tldm_call<P:mode>): ...this and use Pmode throughout.
23530 (tldo_hix22): Turn into...
23531 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
23532 (tldo_lox10): Turn into...
23533 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
23534 (tldo_add32): Merge into...
23535 (tldo_add64): Likewise.
23536 (tldo_add<P:mode>): ...this and use Pmode throughout.
23537 (tie_hi22): Turn into...
23538 (tie_hi22<P:mode>): ...this and use Pmode throughout.
23539 (tie_lo10): Turn into...
23540 (tie_lo10<P:mode>): ...this and use Pmode throughout.
23541 (tie_ld64): Use DImode throughout.
23542 (tie_add32): Merge into...
23543 (tie_add64): Likewise.
23544 (tie_add<P:mode>): ...this and use Pmode throughout.
23545 (tle_hix22_sp32): Merge into...
23546 (tle_hix22_sp64): Likewise.
23547 (tle_hix22<P:mode>): ...this and use Pmode throughout.
23548 (tle_lox22_sp32): Merge into...
23549 (tle_lox22_sp64): Likewise.
23550 (tle_lox22<P:mode>): ...this and use Pmode throughout.
23551 (*tldo_ldub_sp32): Merge into...
23552 (*tldo_ldub_sp64): Likewise.
23553 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
23554 (*tldo_ldub1_sp32): Merge into...
23555 (*tldo_ldub1_sp64): Likewise.
23556 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
23557 (*tldo_ldub2_sp32): Merge into...
23558 (*tldo_ldub2_sp64): Likewise.
23559 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
23560 (*tldo_ldsb1_sp32): Merge into...
23561 (*tldo_ldsb1_sp64): Likewise.
23562 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
23563 (*tldo_ldsb2_sp32): Merge into...
23564 (*tldo_ldsb2_sp64): Likewise.
23565 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
23566 (*tldo_ldub3_sp64): Use DImode throughout.
23567 (*tldo_ldsb3_sp64): Likewise.
23568 (*tldo_lduh_sp32): Merge into...
23569 (*tldo_lduh_sp64): Likewise.
23570 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
23571 (*tldo_lduh1_sp32): Merge into...
23572 (*tldo_lduh1_sp64): Likewise.
23573 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
23574 (*tldo_ldsh1_sp32): Merge into...
23575 (*tldo_ldsh1_sp64): Likewise.
23576 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
23577 (*tldo_lduh2_sp64): Use DImode throughout.
23578 (*tldo_ldsh2_sp64): Likewise.
23579 (*tldo_lduw_sp32): Merge into...
23580 (*tldo_lduw_sp64): Likewise.
23581 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
23582 (*tldo_lduw1_sp64): Use DImode throughout.
23583 (*tldo_ldsw1_sp64): Likewise.
23584 (*tldo_ldx_sp64): Likewise.
23585 (*tldo_stb_sp32): Merge into...
23586 (*tldo_stb_sp64): Likewise.
23587 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
23588 (*tldo_sth_sp32): Merge into...
23589 (*tldo_sth_sp64): Likewise.
23590 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
23591 (*tldo_stw_sp32): Merge into...
23592 (*tldo_stw_sp64): Likewise.
23593 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
23594 (*tldo_stx_sp64): Use DImode throughout.
23596 2018-01-09 Sudakshina Das <sudi.das@arm.com>
23598 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
23599 check configure option to set BTI and Return Address Signing.
23600 * configure.ac: Add --enable-standard-branch-protection and
23601 --disable-standard-branch-protection.
23602 * configure: Regenerated.
23603 * doc/install.texi: Document the same.
23605 2018-01-09 Sudakshina Das <sudi.das@arm.com>
23606 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23608 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
23609 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
23610 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
23612 * config/aarch64/aarch64-bti-insert.c: New file.
23613 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
23615 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
23617 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
23618 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
23619 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
23620 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
23622 2018-01-09 Sudakshina Das <sudi.das@arm.com>
23624 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
23625 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
23626 Disable bti for -mbranch-protection=none.
23627 (aarch64_handle_standard_branch_protection): Enable bti for
23628 -mbranch-protection=standard.
23629 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
23630 -mbranch-protection.
23631 (aarch64_bti_enabled): Check if bti is enabled.
23632 * config/aarch64/aarch64.opt: Declare target variable.
23633 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
23635 2018-01-09 Sudakshina Das <sudi.das@arm.com>
23637 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
23638 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
23639 (aarch64_expand_epilogue): Likewise.
23640 (aarch64_output_mi_thunk): Likewise.
23641 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
23642 TAILCALL_ADDR_REGS to x16 and x17.
23643 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
23645 2018-01-09 Sudakshina Das <sudi.das@arm.com>
23647 * config/aarch64/aarch64-option-extensions.def: Define
23648 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
23649 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
23650 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
23651 (AARCH64_FL_PREDRES): New.
23652 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
23653 AARCH64_FL_PREDRES by default.
23654 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
23656 2018-01-09 Sudakshina Das <sudi.das@arm.com>
23658 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
23660 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
23661 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
23662 * doc/invoke.texi: Document ARMv8.5-A.
23664 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
23666 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
23667 (xorsign<mode>3): Likewise.
23669 2019-01-09 Jelinek <jakub@redhat.com>
23671 PR middle-end/88758
23672 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
23673 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
23675 PR rtl-optimization/88331
23676 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
23677 not currently_expanding_to_rtl.
23679 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
23681 * doc/invoke.texi (-Os): Remove trailing spaces.
23682 (-finline-functions): Remove reference to -O2.
23684 2019-01-08 Jakub Jelinek <jakub@redhat.com>
23686 PR rtl-optimization/79593
23687 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
23689 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
23690 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
23692 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
23695 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
23699 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
23700 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
23702 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
23705 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
23706 ix86_avx_u128_mode_entry.
23708 2019-01-08 Martin Liska <mliska@suse.cz>
23710 PR tree-optimization/88753
23711 * tree-switch-conversion.c (switch_conversion::build_one_array):
23712 Come up with local variable constructor. Convert first to
23713 type of constructor values.
23715 2019-01-08 Richard Biener <rguenther@suse.de>
23717 PR tree-optimization/86554
23718 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
23719 rpo_avail): Move earlier.
23720 (visit_nary_op): When value-numbering to expressions
23721 with different overflow behavior make sure there's an
23722 available expression on the path.
23724 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
23726 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
23727 aarch64_parse_branch_protection,
23728 struct aarch64_branch_protect_type,
23729 aarch64_handle_no_branch_protection,
23730 aarch64_handle_standard_branch_protection,
23731 aarch64_validate_mbranch_protection,
23732 aarch64_handle_pac_ret_protection,
23733 aarch64_handle_attr_branch_protection,
23734 accepted_branch_protection_string,
23735 aarch64_pac_ret_subtypes,
23736 aarch64_branch_protect_types,
23737 aarch64_handle_pac_ret_leaf): Define.
23738 (aarch64_override_options_after_change_1, aarch64_override_options):
23739 Add check for accepted_branch_protection_string.
23740 (aarch64_option_save): Save accepted_branch_protection_string.
23741 (aarch64_option_restore): Save accepted_branch_protection_string.
23742 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
23743 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
23744 msign-return-address.
23745 * doc/invoke.texi: Add mbranch-protection.
23747 2019-01-08 Alan Modra <amodra@gmail.com>
23750 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
23751 Delete "unknownp" parameter. Adjust callers. Handle
23752 CONST_INT, PLUS, MINUS, and MULT.
23753 (attr_value_aligned): Renamed from or_attr_value.
23754 (min_attr_value): Return INT_MIN for unhandled rtl case..
23755 (min_fn): ..and translate to INT_MAX here.
23756 (write_length_unit_log): Modify to cope without "unknown".
23757 (write_attr_value): Handle IF_THEN_ELSE.
23759 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
23761 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
23762 optimization for masked stores.
23764 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
23766 PR middle-end/88567
23767 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
23768 output vector directly to duplicate_and_interleave instead of
23769 going through a temporary. Postpone insertion of ctor_seq to
23770 the end of the loop.
23772 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
23775 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
23776 unsigned_p. Handle signed and unsigned overflow correction as
23778 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
23780 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
23782 (add<mode>3_compareV_imm): Make this callable for expanding.
23783 (subv<GPI:mode>4): Use register_operand for operand 1. Use
23784 aarch64_plus_operand for operand 2.
23785 (subv<GPI:mode>_insn): New insn pattern.
23786 (subv<GPI:mode>_imm): Likewise.
23787 (negv<GPI:mode>3): New expand pattern.
23788 (negv<GPI:mode>_insn): New insn pattern.
23789 (negv<GPI:mode>_cmp_only): Likewise.
23790 (cmpv<GPI:mode>_insn): Likewise.
23791 (subvti4): Use register_operand for operand 1. Update call to
23792 aarch64_expand_subvti.
23793 (usubvti4): Likewise.
23794 (negvti3): New expand pattern.
23795 (negdi_carryout): New insn pattern.
23796 (negvdi_carryinV): New insn pattern.
23797 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
23798 version the named version.
23799 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
23801 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
23803 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
23805 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
23806 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
23807 (sub<mode>3_carryinCV): Delete.
23808 (sub<GPI:mode>3_carryinV): New expand pattern.
23809 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
23811 2019-01-07 Richard Biener <rguenther@suse.de>
23813 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
23814 of tree_operand_hash.
23816 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
23818 PR tree-optimization/88598
23819 * tree.h (single_nonzero_element): Declare.
23820 * tree.c (single_nonzero_element): New function.
23821 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
23822 if I is the only nonzero element of CST.
23824 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
23826 PR tree-optimization/88598
23827 * tree.h (initializer_each_zero_or_onep): Declare.
23828 * tree.c (initializer_each_zero_or_onep): New function.
23829 (signed_or_unsigned_type_for): Handle float types too.
23830 (unsigned_type_for, signed_type_for): Update comments accordingly.
23831 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
23832 x & { 0 or -1, 0 or -1, ... }.
23834 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
23836 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
23837 with x86_64-pc-linux-gnu.
23839 2019-01-07 Tom de Vries <tdevries@suse.de>
23842 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
23844 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
23847 2019-01-07 Jakub Jelinek <jakub@redhat.com>
23849 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
23850 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
23851 TARGET_AVX512F as condition.
23854 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
23855 const_not_ok_for_debug_p target hook.
23856 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
23857 on UNSPEC and subexpressions thereof if all subexpressions of the
23858 UNSPEC are CONSTANT_P.
23860 PR tree-optimization/88676
23861 * tree-ssa-phiopt.c (two_value_replacement): New function.
23862 (tree_ssa_phiopt_worker): Call it.
23865 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
23866 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
23869 * tree-vect-generic.c: Include insn-config.h and recog.h.
23870 (expand_vector_piecewise): Add defaulted ret_type argument,
23871 if non-NULL, use that in preference to type for the result type.
23872 (expand_vector_parallel): Formatting fix.
23873 (do_vec_conversion, do_vec_narrowing_conversion,
23874 expand_vector_conversion): New functions.
23875 (expand_vector_operations_1): Call expand_vector_conversion
23876 for VEC_CONVERT ifn calls.
23877 * internal-fn.def (VEC_CONVERT): New internal function.
23878 * internal-fn.c (expand_VEC_CONVERT): New function.
23879 * fold-const-call.c (fold_const_vec_convert): New function.
23880 (fold_const_call): Use it for CFN_VEC_CONVERT.
23881 * doc/extend.texi (__builtin_convertvector): Document.
23883 2019-01-07 Tom de Vries <tdevries@suse.de>
23885 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
23886 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
23887 vector_red_partition, vector_red_sym): New global variables.
23888 (nvptx_option_override): Initialize vector_red_sym.
23889 (nvptx_declare_function_name): Restore red_partition register.
23890 (nvptx_file_end): Emit code to declare the vector reduction variables.
23891 (nvptx_output_red_partition): New function.
23892 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
23893 large vector reductions.
23894 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
23895 (nvptx_init_builtins): Add VECTOR_ADDR.
23896 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
23897 Handle nvptx_expand_shared_addr.
23898 (nvptx_get_shared_red_addr): Add vector argument and handle large
23900 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
23902 (nvptx_goacc_reduction_init): Likewise.
23903 (nvptx_goacc_reduction_fini): Likewise.
23904 (nvptx_goacc_reduction_teardown): Likewise.
23905 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
23906 init,fini,teardown}.
23907 (nvptx_init_axis_predicate): Initialize vector_red_partition.
23908 (nvptx_set_current_function): Init vector_red_partition.
23909 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
23910 (nvptx_red_partition): New insn.
23911 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
23913 2019-01-07 Tom de Vries <tdevries@suse.de>
23916 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
23919 2019-01-07 Tom de Vries <tdevries@suse.de>
23921 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
23922 (nvptx_option_override): Init oacc_bcast_partition.
23923 (nvptx_init_oacc_workers): New function.
23924 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
23925 (nvptx_needs_shared_bcast): New function.
23926 (nvptx_find_par): Generalize to enable vectors to use shared-memory
23927 to propagate state.
23928 (nvptx_shared_propagate): Initialize vector bcast partition and
23929 synchronization state.
23930 (nvptx_single): Generalize to enable vectors to use shared-memory
23931 to propagate state.
23932 (nvptx_process_pars): Likewise.
23933 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
23934 * config/nvptx/nvptx.h (struct machine_function): Add
23935 bcast_partition and sync_bar members.
23937 2019-01-07 Tom de Vries <tdevries@suse.de>
23939 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
23940 (nvptx_apply_dim_limits): New function.
23941 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
23944 2019-01-07 Tom de Vries <tdevries@suse.de>
23946 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
23947 as late as possible.
23949 2019-01-07 Tom de Vries <tdevries@suse.de>
23951 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
23952 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
23953 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
23954 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
23955 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
23957 2019-01-07 Tom de Vries <tdevries@suse.de>
23959 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
23961 2019-01-07 Tom de Vries <tdevries@suse.de>
23963 * omp-offload.c (oacc_get_min_dim): New function.
23964 * omp-offload.h (oacc_get_min_dim): Declare.
23966 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
23969 * config/i386/i386.c (function_value_ms_64): Return small sturct in
23970 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
23972 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
23976 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
23978 * ipa-inline.c (edge_badness): Use inlined_time instead of
23979 inline_summaries->get.
23981 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
23983 * opts.c (enable_fdo_optimizations): Enable
23984 version-loops-for-strides, loop-interchange, unrol-and-jam
23985 and tree-loop-distribution.
23986 * invoke.texi: Document newly enabled options.
23988 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
23990 * doc/invoke.texi (max-inline-insns-small): New parameters.
23991 * ipa-inline.c (want_early_inline_function_p): simplify.
23992 (want_inline_small_function_p): Fix pasto from previous patch;
23993 use max-inline-insns-small bound.
23994 * params.def (max-inline-insns-small): New param.
23995 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
23996 variables correctly.
23998 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
24000 * doc/invoke.texi: Document max-inline-insns-size,
24001 uninlined-function-insns, uninlined-function-time,
24002 uninlined-thunk-insns and uninlined-thunk-time.
24003 * params.def: Add max-inline-insns-size,
24004 uninlined-function-insns, uninlined-function-time,
24005 uninlined-thunk-insns and uninlined-thunk-time.
24006 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
24008 * ipa-inline.c (can_inline_edge_by_limits_p,
24009 want_inline_small_function_p): Use new parameters.
24011 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
24013 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
24015 2019-01-05 Jakub Jelinek <jakub@redhat.com>
24017 PR middle-end/82564
24019 * expr.c (expand_assignment): For calls returning VLA structures
24020 if to_rtx is not a MEM, force it into a stack temporary.
24023 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
24024 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
24025 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
24026 subexpressions of both operands.
24027 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
24028 subrtxes are CONSTANT_P.
24029 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
24030 2018-11-09 changes.
24032 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
24034 * params.def (hot-bb-count-ws-permille): Set to 990.
24036 2019-01-04 Martin Sebor <msebor@redhat.com>
24039 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
24042 2019-01-04 Martin Sebor <msebor@redhat.com>
24045 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
24047 2019-01-04 Jakub Jelinek <jakub@redhat.com>
24049 * gdbinit.in: Turn off pagination for the skip commands, restore
24050 it to previous state afterwards.
24052 2019-01-04 Jakub Jelinek <jakub@redhat.com>
24055 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
24056 of GET_MODE (opN) as modes of the libcall arguments.
24058 2019-01-04 Jan Beulich <jbeulich@suse.com>
24060 * config/i386/sse.md
24061 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
24062 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
24063 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
24064 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
24065 avx512f_vmcmp<mode>3<round_saeonly_name>,
24066 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
24067 avx512f_maskcmp<mode>3,
24068 <avx512>_cvt<ssemodesuffix>2mask<mode>,
24069 <avx512>_cvt<ssemodesuffix>2mask<mode>,
24070 *<avx512>_cvtmask2<ssemodesuffix><mode>,
24071 *<avx512>_cvtmask2<ssemodesuffix><mode>,
24072 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
24073 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
24074 <avx512>_gt<mode>3<mask_scalar_merge_name>,
24075 <avx512>_gt<mode>3<mask_scalar_merge_name>,
24076 <avx512>_testm<mode>3<mask_scalar_merge_name>,
24077 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
24078 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
24079 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
24080 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
24081 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
24082 avx512cd_maskb_vec_dup<mode>,
24083 avx512cd_maskw_vec_dup<mode>,
24084 avx512dq_fpclass<mode><mask_scalar_merge_name>,
24085 avx512dq_vmfpclass<mode>,
24086 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
24089 2019-01-03 Martin Sebor <msebor@redhat.com>
24091 PR tree-optimization/88659
24092 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
24094 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
24096 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
24097 unaligned vsx and avoid lxvd2x/stxvd2x.
24098 (gen_lvx_v4si_move): New function.
24100 2019-01-03 Tom de Vries <tdevries@suse.de>
24102 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
24103 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
24105 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
24107 2019-01-03 Tom de Vries <tdevries@suse.de>
24109 * config/nvptx/nvptx.c (struct offload_attrs): New.
24110 (populate_offload_attrs): New function. Factor mask extraction out of
24111 nvptx_reorg. Add extraction of dimensions.
24112 (nvptx_reorg): Use populate_offload_attrs.
24114 2019-01-03 Tom de Vries <tdevries@suse.de>
24116 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
24117 cases for oacc_min_dims_p and routine_p. Add asserts for
24118 oacc_default_dims_p and offload_region_p.
24120 2019-01-03 Tom de Vries <tdevries@suse.de>
24122 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
24123 factored out of ...
24124 (nvptx_goacc_validate_dims): ... here.
24126 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
24128 PR tree-optimization/85574
24129 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
24131 (struct ssa_equip_hash_traits): Declare.
24132 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
24134 2019-01-03 Jakub Jelinek <jakub@redhat.com>
24137 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
24138 change it to qualified_type.
24140 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
24142 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
24143 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
24145 2019-01-02 Martin Sebor <msebor@redhat.com>
24146 Jeff Law <law@redhat.com>
24148 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
24149 (get_range_strlen_tree): Update appropriately.
24151 * gimple-fold.h (get_range_strlen): Drop unused last argument.
24153 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
24154 rather than set_range_info.
24155 * tree-ssa-strlen.c (set_strlen_range): Extracted from
24156 maybe_set_strlen_range. Handle potentially boundary crossing
24157 cases more conservatively.
24158 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
24159 Call set_strlen_range.
24160 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
24162 PR middle-end/88663
24163 * gimple-fold.c (get_range_strlen): Update prototype to no longer
24164 need the flexp argument.
24165 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
24166 from calls to get_range_strlen. Update comments. Just update
24167 VAL for an unterminated const char array and let the reset of the
24168 code handle it normally. No longer try to set *flexp. Adjust
24170 (get_range_strlen): Update for the new get_range_strlen API.
24171 (get_maxval_strlen): Similarly.
24172 (gimple_fold_builtin_strlen): Handle update meaning of return value
24173 from get_range_strlen.
24174 * gimple-ssa-sprintf.c (get_string_length): Update for the new
24175 get_range_strlen API.
24177 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
24180 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
24181 false at WPA time when body was removed.
24183 2019-01-02 Martin Liska <mliska@suse.cz>
24185 PR tree-optimization/88650
24186 * predict.c (set_even_probabilities): Calculate probability
24187 remainer only when really used.
24189 2019-01-02 Richard Biener <rguenther@suse.de>
24191 PR middle-end/88651
24192 * tree-data-ref.c (analyze_subscript_affine_affine): Use
24193 widest_ints when mangling max_stmt_execution results.
24195 2019-01-02 Richard Biener <rguenther@suse.de>
24197 PR tree-optimization/88621
24198 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
24199 bitfields when canoncalizing.
24201 2019-01-02 Richard Biener <rguenther@suse.de>
24204 * config/i386/x86-tune-costs.h (intel_cost): Adjust
24205 cost of cheap SSE instruction.
24207 2019-01-02 Richard Biener <rguenther@suse.de>
24210 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
24211 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
24213 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
24214 set after UIDs before splitting them.
24216 2019-01-01 Martin Sebor <msebor@redhat.com>
24217 Jeff Law <law@redhat.com>
24219 * gimple-fold.c (get_range_strlen_tree): Record if the computed
24220 length is optimistic. If it is, then arrange to compute the
24221 conservative length as well.
24223 * gimple-fold.h (get_range_strlen): Update prototype.
24224 * builtins.c (check_access): Update call to get_range_strlen to use
24225 c_strlen_data pointer. Change various variable accesses to instead
24226 pull data from the c_strlen_data structure.
24227 (check_strncat_sizes, expand_builtin_strncat): Likewise.
24228 * calls.c (maybe_warn_nonstring_arg): Likewise.
24229 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
24230 minimum length if maximum lengh is unknown.
24231 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
24232 that used c_strlen, it's no longer needed. Restructure slightly.
24233 (format_string): Set unlikely range appropriately.
24234 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
24236 (get_range_strlen): Accept c_strlen_data pointer for external
24237 call sites as well. Pass through to call to internal get_range_strlen.
24238 Adjust minlen, maxlen and maxbound as needed.
24239 (get_maxval_strlen): Update comments.
24240 (gimple_fold_builtin_strlen): Update call to get_range_strlen
24241 to use c_strlen_data pointer. Change variable accesses to instead
24242 use c_strlen_data data members.
24244 * gimple-fold.c (get_range_strlen): Update prototype.
24245 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
24246 local variables. Use pdata to return information to caller.
24247 Update calls to get_range_strlen. Update pdata->maxbound.
24248 (get_range_strlen -- static version): Similarly.
24249 (get_range_strlen -- extern version): Update for internal
24250 get_range_strlen API change. Convert to external data format.
24251 (get_maxval_strlen): Similarly.
24253 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
24255 * coverage.c (get_coverage_counts): Use current_function_decl.
24256 * profile.c (read_thunk_profile): New function.
24257 (branch_prob): Add THUNK parameter.
24258 * tree-profile.c (tree_profiling): Handle thunks.
24259 * value-prof.c (init_node_map): Handle thunks.
24260 * value-prof.h (branch_prob): Upate prototype.
24261 (read_thunk_profile): Declare.
24263 2019-01-01 Jakub Jelinek <jakub@redhat.com>
24265 Update copyright years.
24267 * gcc.c (process_command): Update copyright notice dates.
24268 * gcov-dump.c (print_version): Ditto.
24269 * gcov.c (print_version): Ditto.
24270 * gcov-tool.c (print_version): Ditto.
24271 * gengtype.c (create_file): Ditto.
24272 * doc/cpp.texi: Bump @copying's copyright year.
24273 * doc/cppinternals.texi: Ditto.
24274 * doc/gcc.texi: Ditto.
24275 * doc/gccint.texi: Ditto.
24276 * doc/gcov.texi: Ditto.
24277 * doc/install.texi: Ditto.
24278 * doc/invoke.texi: Ditto.
24280 Copyright (C) 2019 Free Software Foundation, Inc.
24282 Copying and distribution of this file, with or without modification,
24283 are permitted in any medium without royalty provided the copyright
24284 notice and this notice are preserved.