re PR middle-end/90840 (ICE in simplify_subreg, at simplify-rtx.c:6441)
[gcc.git] / gcc / ChangeLog
1 2019-12-07 Eric Botcazou <ebotcazou@adacore.com>
2
3 PR middle-end/90840
4 * expr.c (expand_assignment): In the case of a CONCAT on the LHS, make
5 sure to pass a valid inner mode in calls to simplify_gen_subreg.
6
7 2019-12-07 Tobias Burnus <tobias@codesourcery.com>
8 David Malcolm <dmalcolm@redhat.com>
9 Jakub Jelinek <jakub@redhat.com>
10
11 PR c/87488
12 * pretty-print.c (pp_begin_url, pp_end_url, test_urls): Use BEL
13 instead of ST sequence to terminate OSC 8 strings.
14
15 2019-12-06 Andreas Krebbel <krebbel@linux.ibm.com>
16 Vladimir Makarov <vmakarov@redhat.com>
17
18 PR rtl-optimization/92176
19 * lra.c (simplify_subreg_regno): Don't permit unconditional
20 changing mode for LRA too.
21
22 2019-12-06 Richard Sandiford <richard.sandiford@arm.com>
23
24 * target.h (TCTX_ALLOCATION, TCTX_DEALLOCATION, TCTX_EXCEPTIONS)
25 (TCTX_CAPTURE_BY_COPY): New type_context_kinds.
26 * config/aarch64/aarch64-sve-builtins.cc (verify_type_context):
27 Handle them.
28
29 2019-12-06 Andrew Stubbs <ams@codesourcery.com>
30
31 * config/gcn/gcn-valu.md (gather<mode>_insn_1offset<exec>): Use %o
32 in the asm output.
33
34 2019-12-06 Andrew Stubbs <ams@codesourcery.com>
35
36 * config/gcn/gcn-valu.md (VEC_1REG_MODE): Remove V64QI and V64HI.
37 (VEC_1REG_ALT): Likewise.
38 (VEC_ALL1REG_MODE): New mode iterator.
39 (VEC_1REG_INT_MODE): Remove V64QI and V64HI.
40 (VEC_1REG_INT_ALT): Likewise.
41 (VEC_ALL1REG_INT_MODE): New mode interator.
42 (VEC_ALL1REG_INT_ALT): Likewise.
43 (VEC_REG_MODE): Remove V64QI and V64HI.
44 (VEC_ALLREG_MODE): New mode interator.
45 (vec_merge): Change to VEC_ALLREG_MODE.
46 (vec_merge_with_clobber): Likewise.
47 (vec_merge_with_vcc): Likewise.
48 (mov<mode>): Likewise.
49 (mov<mode>_unspec): Likewise.
50 (*mov<mode>): Change to VEC_ALL1REG_MODE.
51 (mov<mode>_exec): Likewise.
52 (*mov<mode>_exec_match): Likewise.
53 (mov<mode>_sgprbase): Likewise.
54 (reload_in<mode>): Change to VEC_ALLREG_MODE.
55 (reload_out<mode>): Likewise.
56 (scalar address splits): Likewise.
57 (*vec_set<mode>): Change to VEC_ALL1REG_MODE.
58 (vec_set<mode>): Change to VEC_ALLREG_MODE.
59 (*vec_set<mode>_1): Change to VEC_ALL1REG_MODE.
60 (vec_duplicate<mode><exec>): Likewise.
61 (vec_extract<mode><scalar_mode>): Likewise.
62 (vec_init<mode><scalar_mode>): Change to VEC_ALLREG_MODE.
63 (gather_load<mode>): Likewise.
64 (gather<mode>_exec): Likewise.
65 (gather<mode>_expr<exec>): Likewise.
66 (gather<mode>_insn_1offset<exec>): Likewise.
67 (gather<mode>_insn_1offset_ds<exec>): Likewise.
68 (gather<mode>_insn_2offsets<exec>): Likewise.
69 (ds_bpermute<mode>): Change to VEC_ALL1REG_MODE.
70 (VEC_INT_MODE): Remove V64QI and V64HI.
71 (vcond_mask_<mode>di): Change to VEC_ALLREG_MODE.
72 (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>): Change to
73 VEC_ALL1REG_MODE.
74 (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Likewise.
75 (vcondu<VEC_1REG_MODE:mode><VEC_1REG_INT_ALT:mode>): Likewise.
76 (vcondu<VEC_1REG_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Likewise.
77 (maskload<mode>di): Change to VEC_ALL1REG_MODE.
78 (maskstore<mode>di): Likewise.
79 (mask_gather_load<mode>): Likewise.
80 (mov_from_lane63_<mode>): Likewise.
81 * config/gcn/gcn.c (gcn_vector_mode_supported_p): Renable V64QImode
82 and V64HImode vectorization.
83 (gcn_related_vector_mode): New function.
84 (TARGET_VECTORIZE_RELATED_MODE): New define.
85
86 2019-12-06 Tobias Burnus <tobias@codesourcery.com>
87 Kwok Cheung Yeung <kcy@codesourcery.com>
88
89 * omp-low.c (lower_omp_target): For optional arguments, deref once
90 more to obtain the type.
91
92 2019-12-06 Richard Biener <rguenther@suse.de>
93
94 * match.pd (nop_convert): Remove empty match. Use nop_convert?
95 everywhere.
96
97 2019-12-06 Richard Sandiford <richard.sandiford@arm.com>
98
99 * tree-data-ref.c (prune_runtime_alias_test_list): Exit early
100 for empty vectors. Avoid using ordered_remove and instead
101 shuffle the vector as we go.
102
103 2019-12-06 Richard Biener <rguenther@suse.de>
104
105 * genmatch.c (enum tree_code): Remove CONVERT{0,1,2} and
106 VIEW_CONVERT{0,1,2}.
107 (expr::opt_grp): Add and initialize.
108 (lower_opt_convert): Rename to ...
109 (lower_opt): ... and work on opt_grp, simply switching operations
110 from being optional to being present or not.
111 (has_opt_convert): Rename to ...
112 (has_opt): ... and adjust.
113 (parser::parse_operation): Return the optional opt_grp,
114 remove special-casing of conditional operations and more generally
115 parse [digit]'?'.
116 (parser::parse_expr): Stick on the parsed opt_grp and perform
117 rough verification.
118 (parser::parse_for): Remove now unnecessary code.
119 (main): Likewise.
120 * doc/match-and-simplify.texi: Mention ? now works on all
121 unary operations and also match predicates.
122
123 2019-12-06 Jan Hubicka <hubicka@ucw.cz>
124
125 * cgraphclones.c (cgraph_node::create_clone): Only localize toplevel
126 functions, not inline clones.
127
128 2019-12-06 Jan Hubicka <hubicka@ucw.cz>
129
130 * cfgexpand.c (expand_debug_expr): Do not ICE on SAD_EXPR.
131
132 2019-12-06 Richard Biener <rguenther@suse.de>
133
134 * genmatch.c (c_expr::gen_transform): Emit newlines from line
135 number changes rather than after every semicolon.
136
137 2019-12-06 Richard Biener <rguenther@suse.de>
138
139 PR tree-optimization/92819
140 * match.pd (VEC_PERM_EXPR -> BIT_INSERT_EXPR): Handle inserts
141 into the last lane. For two-element vectors try inserting
142 into the last lane when inserting into the first fails.
143
144 2019-12-06 Jakub Jelinek <jakub@redhat.com>
145
146 * common.opt (fprofile-partial-training): Terminate description with
147 full stop.
148
149 2019-12-05 Martin Sebor <msebor@redhat.com>
150
151 PR middle-end/92622
152 * tree-vrp.c (vrp_prop::check_array_ref): Avoid using a variable
153 left uninitialized by get_addr_base_and_unit_offset on failure.
154
155 2019-12-05 Jan Hubicka <hubicka@ucw.cz>
156
157 * ipa-prop.c (ipa_set_jf_unknown): Do not clear bits and m_vr.
158 (detect_type_change_from_memory_writes): Remoe parameter JFUNC.
159 (detect_type_change): Likewise.
160 (detect_type_change_ssa): Likewise.
161 (ipa_analyze_virtual_call_uses): Update.
162
163 2019-12-05 Sandra Loosemore <sandra@codesourcery.com>
164
165 * config/nios2/linux.h (LINK_EH_SPEC): Define.
166
167 2019-12-05 Jan Hubicka <hubicka@ucw.cz>
168
169 * ipa-inline-transform.c (inline_call): Fix maintenatnce of comdat_local
170
171 2019-12-05 Jan Hubicka <hubicka@ucw.cz>
172
173 * cgraphclones.c (localize_profile): New function.
174 (cgraph_node::create_clone): Use it for partial profiles.
175 * common.opt (fprofile-partial-training): New flag.
176 * doc/invoke.texi (-fprofile-partial-training): Document.
177 * ipa-cp.c (update_profiling_info): For partial profiles do not
178 set function profile to zero.
179 * profile.c (compute_branch_probabilities): With partial profile
180 watch if edge count is zero and turn all probabilities to guessed.
181 (compute_branch_probabilities): For partial profiles do not apply
182 profile when entry count is zero.
183 * tree-profile.c (tree_profiling): Only do value_profile_transformations
184 when profile is read.
185
186 2019-12-05 Sudakshina Das <sudi.das@arm.com>
187
188 * tree-vect-loop.c (vect_model_reduction_cost): Remove reduction_type
189 check from if condition.
190
191 2019-12-05 Tobias Burnus <tobias@codesourcery.com>
192
193 * omp-low.c (lower_omp_target): For use_device_ptr/use_derice_addr
194 and Fortran's optional arguments, unconditionally add the is-present
195 condition before the libgomp call.
196
197 2019-12-05 Richard Sandiford <richard.sandiford@arm.com>
198
199 PR middle-end/92768
200 * tree-core.h (OEP_BITWISE): New flag.
201 * fold-const.c (operand_compare::operand_equal_p): Handle it.
202 * tree-vector-builder.h (tree_vector_builder::equal_p): Pass it.
203
204 2019-12-05 Richard Biener <rguenther@suse.de>
205
206 PR middle-end/92818
207 * tree-ssa-forwprop.c (simplify_vector_constructor): Improve
208 heuristics on what don't care element to choose.
209 * match.pd (VEC_PERM_EXPR -> BIT_INSERT_EXPR): Fix typo.
210
211 2019-12-05 Martin Liska <mliska@suse.cz>
212
213 PR gcov-profile/92817
214 * coverage.c (build_gcov_exit_decl): Remove superfluous
215 void_type_node.
216
217 2019-12-05 Jozef Lawrynowicz <jozef.l@mittosystems.com>
218
219 * config/msp430/msp430.md (cbranch<mode>4): Use
220 msp430_general_dst_nonv_operand instead of nonimmediate_operand for
221 dest operand of CMP instruction.
222 (cbranchpsi4_real): Likewise.
223 (cbranchqi4_real): Likewise.
224 (cbranchhi4_real): Likewise.
225 (cbranchpsi4_reversed): Likewise.
226 (cbranchqi4_reversed): Likewise.
227 (cbranchhi4_reversed): Likewise.
228
229 2019-12-05 Richard Biener <rguenther@suse.de>
230
231 PR tree-optimization/92803
232 * tree-ssa-forwprop.c (simplify_vector_constructor): Fix
233 invariant vector construction.
234
235 2019-12-05 Martin Liska <mliska@suse.cz>
236
237 PR gcov-profile/91971
238 * coverage.c (coverage_init): Mangle full path
239 only when -fprofile-dir is used.
240
241 2019-12-05 Jakub Jelinek <jakub@redhat.com>
242
243 PR target/92791
244 * config/i386/i386.md (movstrict<mode>): Move test for
245 TARGET_PARTIAL_REG_STALL and not optimizing for size from
246 expander's condition to the body - FAIL; in that case.
247
248 2019-12-03 Martin Sebor <msebor@redhat.com>
249
250 PR middle-end/91582
251 * builtins.c (gimple_call_alloc_size): New function.
252 (compute_objsize): Add argument. Call gimple_call_alloc_size.
253 Handle variable offsets and indices.
254 * builtins.h (gimple_call_alloc_size): Declare.
255 (compute_objsize): Add argument.
256 * gcc/gimple-ssa-warn-restrict.c: Remove assertions.
257 * tree-ssa-strlen.c (handle_store): Handle calls to allocated objects.
258
259 2019-12-04 Julian Brown <julian@codesourcery.com>
260
261 * config/gcn/gcn.h (FIXED_REGISTERS): Make s6/s7 fixed registers.
262
263 2019-12-04 Peter Bergner <bergner@linux.ibm.com>
264
265 PR bootstrap/92661
266 * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Move to
267 rs6000.h.
268 (altivec_overloaded_builtins): Move to rs6000-call.c.
269 * config/rs6000/rs6000.h (struct altivec_builtin_types): Moved from
270 rs6000-c.c.
271 * config/rs6000/rs6000-call.c (rs6000_builtin_info): Make static.
272 (altivec_overloaded_builtins): Moved from rs6000-c.c.
273 (rs6000_common_init_builtins): Do no define builtins that overload
274 builtins that have been disabled.
275
276 2019-12-04 Wilco Dijkstra <wdijkstr@arm.com>
277
278 * config/arm/arm.c (arm_option_override_internal):
279 Use max_cond_insns from CPU tuning unless -mrestrict-it is used.
280
281 2019-12-04 Wilco Dijkstra <wdijkstr@arm.com>
282
283 * config/aarch64/aarch64.c
284 (thunderxt88_tunings): Use AARCH64_FUSE_ALU_BRANCH.
285 (thunderx_tunings): Likewise.
286 (tsv110_tunings): Use AARCH64_FUSE_ALU_BRANCH and AARCH64_FUSE_ALU_CBZ.
287 (thunderx2t99_tunings): Likewise.
288 (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_CMP_BRANCH.
289 * config/aarch64/aarch64-fusion-pairs.def: Add ALU_CBZ fusion.
290
291 2019-12-04 Richard Biener <rguenther@suse.de>
292
293 * tree-ssa-sccvn.c (vn_reference_lookup_3): Properly guard
294 empty CTOR and memset partial-def registering. Take advantage
295 of fancy offset analysis in memset handling.
296
297 2019-12-04 Richard Sandiford <richard.sandiford@arm.com>
298
299 * fold-const.c (native_encode_vector_part): Handle
300 VECTOR_BOOLEAN_TYPE_Ps that have subbyte precision.
301 (native_decode_vector_tree): Delete, moving the bulk of the code to...
302 (native_interpret_vector_part): ...this new function. Use a pointer
303 and length instead of a vec<> and start index.
304 (native_interpret_vector): Use native_interpret_vector_part.
305 (fold_view_convert_vector_encoding): Likewise.
306
307 2019-12-04 Richard Biener <rguenther@suse.de>
308
309 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Handle
310 non-constant defs in the most trivial way.
311 (vn_reference_lookup_3): Also push down SSA partial defs.
312
313 2019-12-04 Martin Liska <mliska@suse.cz>
314
315 * tree-switch-conversion.c (switch_decision_tree::try_switch_expansion):
316 Initialize count of newly created BB.
317
318 2019-12-04 Jakub Jelinek <jakub@redhat.com>
319
320 PR tree-optimization/92734
321 * match.pd ((A +- B) - A -> +- B, (A +- B) -+ B -> A,
322 A - (A +- B) -> -+ B, A +- (B -+ A) -> +- B): Handle nop_convert.
323
324 2019-12-04 Kewen Lin <linkw@gcc.gnu.org>
325
326 PR target/92760
327 * gcc/config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Use
328 VECTOR_MEM_NONE_P instead of VECTOR_UNIT_NONE_P.
329
330 2019-12-03 Jan Hubicka <hubicka@ucw.cz>
331
332 * ipa-fnsummary.c: Include tree-into-ssa.h.
333 (compute_fn_summary): Call update_ssa.
334
335 2019-12-03 Jan Hubicka <hubicka@ucw.cz>
336
337 * cgraph.c (cgraph_node::verify_node): Check that calls_comdat_local
338 is set only for symbol in comdat group.
339 * symtab.c (symtab_node::dissolve_same_comdat_group_1): Clear it.
340
341 2019-12-03 Jan Hubicka <hubicka@ucw.cz>
342
343 * cgraph.c: Include tree-into-ssa.h
344 (cgraph_node::get_body): Call update_ssa.
345 * cgraphunit.c (cgraph_node::expand): Likewise.
346 * lto-streamer-in.c (input_function): Do not call update_ssa.
347
348 2019-12-03 Richard Sandiford <richard.sandiford@arm.com>
349
350 * gimplify.c (gimplify_compound_lval): Don't gimplify and install
351 an array element size if array_element_size is already an invariant.
352 Similarly don't gimplify and install a field offset if
353 component_ref_field_offset is already an invariant.
354
355 2019-12-03 Richard Sandiford <richard.sandiford@arm.com>
356
357 * cfgexpand.c (discover_nonconstant_array_refs_r): If an access
358 with POLY_INT_CST size is made to a fixed-size object, force the
359 object to live in memory.
360
361 2019-12-03 Andrew Stubbs <ams@codesourcery.com>
362
363 * config/gcn/gcn-valu.md: Change "vcondu" patterns to use VEC_1REG_MODE
364 for the data mode.
365
366 2019-12-03 Richard Biener <rguenther@suse.de>
367
368 PR tree-optimization/92758
369 * tree-ssa-forwprop.c (simplify_vector_constructor): Restore
370 operation on uniform vectors.
371
372 2019-12-03 Richard Biener <rguenther@suse.de>
373
374 PR tree-optimization/92645
375 * gimple-fold.c (gimple_fold_builtin_memory_op): Fold memcpy
376 from or to a properly aligned register variable.
377
378 2019-12-03 Matthias Klose <doko@ubuntu.com>
379
380 * Makefile.in (SOURCES): Add doc/lto-dump.1.
381 (install-man): Add $(LTO_DUMP_INSTALL_NAME)$(man1ext).
382 ($(LTO_DUMP_INSTALL_NAME)$(man1ext): New.
383
384 2019-12-03 Richard Biener <rguenther@suse.de>
385
386 PR tree-optimization/92751
387 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fail
388 when a clobber ends up in the partial-def vector.
389 (vn_reference_lookup_3): Let clobbers be handled by the
390 assignment from CTOR handling.
391
392 2019-12-03 Jakub Jelinek <jakub@redhat.com>
393
394 PR tree-optimization/92734
395 * match.pd ((CST1 - A) +- CST2 -> CST3 - A,
396 CST1 - (CST2 - A) -> CST3 + A): Handle nop casts around
397 inner subtraction.
398
399 2019-12-03 Uroš Bizjak <ubizjak@gmail.com>
400 Jakub Jelinek <jakub@redhat.com>
401
402 PR target/92744
403 * config/i386/i386.md (peephole2 for *swap<mode>): Use
404 general_reg_operand predicates instead of register_operand.
405
406 2019-12-03 Richard Biener <rguenther@suse.de>
407
408 PR tree-optimization/92645
409 * tree-ssa.c (execute_update_addresses_taken): Avoid representing
410 a full def of a vector via a BIT_INSERT_EXPR.
411
412 2019-12-02 Bill Schmidt <wschmidt@linux.ibm.com>
413
414 * config/rs6000/rs6000-call.c (rs6000_invalid_builtin): Make
415 static.
416 * config/rs6000/rs6000-internal.h (rs6000_invalid_builtin): Remove
417 decl.
418
419 2019-12-02 Richard Sandiford <richard.sandiford@arm.com>
420
421 PR middle-end/92741
422 * fold-const.c (fold_convertible_p): Check vector types more
423 thoroughly.
424
425 2019-12-02 Richard Sandiford <richard.sandiford@arm.com>
426
427 * config/aarch64/aarch64.c (aarch64_report_sve_required): New function.
428 (aarch64_expand_mov_immediate): Use it when attempting to measure
429 the length of an SVE vector.
430 (aarch64_mov_operand_p): Only allow SVE CNT immediates when
431 SVE is enabled.
432
433 2019-12-02 Richard Sandiford <richard.sandiford@arm.com>
434
435 * config/aarch64/aarch64-sve-builtins.h
436 (gimple_folder::force_vector): Declare.
437 * config/aarch64/aarch64-sve-builtins.cc
438 (gimple_folder::force_vector): New function.
439 * config/aarch64/aarch64-sve-builtins-base.cc
440 (svcmp_impl::fold): Likewise.
441 (svdup_impl::fold): Handle svdup_z too.
442
443 2019-12-02 Martin Liska <mliska@suse.cz>
444
445 * ipa-devirt.c (warn_types_mismatch): Use get_odr_name_for_type
446 function.
447 (debug_tree_odr_name): New.
448 * ipa-utils.h (get_odr_name_for_type): New.
449
450 2019-12-02 Richard Biener <rguenther@suse.de>
451
452 PR tree-optimization/92742
453 * tree-vect-loop.c (vect_fixup_reduc_chain): Do not
454 touch the def-type but verify it is consistent with the
455 original stmts.
456
457 2019-12-02 Jakub Jelinek <jakub@redhat.com>
458
459 PR tree-optimization/92712
460 * match.pd ((A * B) +- A -> (B +- 1) * A,
461 A +- (A * B) -> (1 +- B) * A): Allow optimizing signed integers
462 even when we don't know anything about range of A, but do know
463 something about range of B and the simplification won't introduce
464 new UB.
465
466 2019-12-02 Feng Xue <fxue@os.amperecomputing.com>
467
468 PR ipa/92133
469 * doc/invoke.texi (ipa-cp-max-recursive-depth): Document new option.
470 (ipa-cp-min-recursive-probability): Likewise.
471 * params.opt (ipa-cp-max-recursive-depth): New.
472 (ipa-cp-min-recursive-probability): Likewise.
473 * ipa-cp.c (ipcp_lattice<valtype>::add_value): Add two new parameters
474 val_p and unlimited.
475 (self_recursively_generated_p): New function.
476 (get_val_across_arith_op): Likewise.
477 (propagate_vals_across_arith_jfunc): Add constant propagation for
478 self-recursive function.
479 (incorporate_penalties): Do not penalize pure self-recursive function.
480 (good_cloning_opportunity_p): Dump node_is_self_scc flag.
481 (propagate_constants_topo): Set node_is_self_scc flag for cgraph node.
482 (get_info_about_necessary_edges): Relax hotness check for edge to
483 self-recursive function.
484 * ipa-prop.h (ipa_node_params): Add new field node_is_self_scc.
485
486 2019-12-01 Sandra Loosemore <sandra@codesourcery.com>
487
488 PR target/92499
489
490 * config/nios2/nios2.c (nios2_in_small_data_p): Do not consider
491 objects of flexible types to be small if they have internal linkage
492 or are declared extern.
493 * config/nios2/nios2.h (ASM_OUTPUT_ALIGNED_LOCAL): Replace with...
494 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ...this. Use targetm.in_small_data_p
495 instead of the size of the object initializer.
496 * tree.c (flexible_array_type_p): Move from C front end, and
497 generalize to handle fields in non-C structures.
498 * tree.h (flexible_array_type_p): Declare.
499
500 2019-11-30 Jan Hubicka <hubicka@ucw.cz>
501
502 * profile-count.h (profile_count::operator<): Use IPA value for
503 comparsion.
504 (profile_count::operator>): Likewise.
505 (profile_count::operator<=): Likewise.
506 (profile_count::operator>=): Likewise.
507 * predict.c (maybe_hot_count_p): Do not convert to gcov_type.
508
509 2019-11-30 Jan Hubicka <hubicka@ucw.cz>
510
511 * ipa-inline.c (compute_max_insns): Return int64_t.
512 (inline_small_functions): Simplify.
513
514 2019-11-30 Jan Hubicka <hubicka@ucw.cz>
515
516 * tree-cfg.c (execute_fixup_cfg): Update also max_bb_count when
517 scaling happen.
518
519 2019-11-30 Jan Hubicka <hubicka@ucw.cz>
520
521 * cgraph.h (symtab_node): Add symver flag.
522 * cgraphunit.c (process_symver_attribute): New.
523 (process_common_attributes): Use process_symver_attribute.
524 * lto-cgraph.c (lto_output_node): Stream symver.
525 (lto_output_varpool_node): Stream symver.
526 (input_overwrite_node): Stream symver.
527 (input_varpool_node): Stream symver.
528 * output.h (do_assemble_symver): Decalre.
529 * symtab.c (symtab_node::dump_base): Dump symver.
530 (symtab_node::verify_base): Verify symver.
531 (symtab_node::resolve_alias): Handle symver.
532 * varasm.c (do_assemble_symver): New function.
533 * varpool.c (varpool_node::assemble_aliases): Use it.
534 * doc/extend.texi: (symver attribute): Document.
535 * config/elfos.h (ASM_OUTPUT_SYMVER_DIRECTIVE): New.
536
537 2019-11-30 Richard Sandiford <richard.sandiford@arm.com>
538
539 * target.h (type_context_kind): New enum.
540 (verify_type_context): Declare.
541 * target.def (verify_type_context): New target hook.
542 * doc/tm.texi.in (TARGET_VERIFY_TYPE_CONTEXT): Likewise.
543 * doc/tm.texi: Regenerate.
544 * tree.c (verify_type_context): New function.
545 * config/aarch64/aarch64-protos.h (aarch64_sve::verify_type_context):
546 Declare.
547 * config/aarch64/aarch64-sve-builtins.cc (verify_type_context):
548 New function.
549 * config/aarch64/aarch64.c (aarch64_verify_type_context): Likewise.
550 (TARGET_VERIFY_TYPE_CONTEXT): Define.
551
552 2019-11-30 Jan Hubicka <hubicka@ucw.cz>
553
554 * cgraph.c (cgraph_node::dump): Dump unit_id and merged_extern_inline.
555 * cgraph.h (cgraph_node): Add unit_id and
556 merged_extern_inline.
557 (symbol_table): Add max_unit.
558 (symbol_table::symbol_table): Initialize it.
559 * cgraphclones.c (duplicate_thunk_for_node): Copy unit_id.
560 merged_comdat, merged_extern_inline.
561 (cgraph_node::create_clone): Likewise.
562 (cgraph_node::create_version_clone): Likewise.
563 * ipa-fnsummary.c (dump_ipa_call_summary): Dump info about cross module
564 calls.
565 * ipa-fnsummary.h (cross_module_call_p): New inline function.
566 * ipa-inline-analyssi.c (simple_edge_hints): Use it.
567 * ipa-inline.c (inline_small_functions): Likewise.
568 * lto-symtab.c (lto_cgraph_replace_node): Record merged_extern_inline;
569 copy merged_comdat and merged_extern_inline.
570 * lto-cgraph.c (lto_output_node): Stream out merged_comdat,
571 merged_extern_inline and unit_id.
572 (input_overwrite_node): Stream in these.
573 (input_cgraph_1): Set unit_base.
574 * lto-streamer.h (lto_file_decl_data): Add unit_base.
575 * symtab.c (symtab_node::make_decl_local): Record former_comdat.
576
577 2019-11-30 Maciej W. Rozycki <macro@wdc.com>
578
579 * gcc.c (process_command): Only warn about an ineffective `-x'
580 option if any input files have actually been supplied.
581
582 2019-11-30 Maciej W. Rozycki <macro@wdc.com>
583
584 * doc/install.texi (Options specification): Remove the list of
585 target library subdirectories supporting
586 `--enable-version-specific-runtime-libs'. Document defaults for
587 the option.
588
589 2019-11-29 Vladimir Makarov <vmakarov@redhat.com>
590
591 PR rtl-optimization/92283
592 * lra.c (lra): Update reg notes after inheritance sub-pass and
593 before constraint sub-pass.
594
595 2019-11-29 Richard Biener <rguenther@suse.de>
596
597 PR tree-optimization/91003
598 * tree-vect-slp.c (vect_mask_constant_operand_p): Pass in the
599 operand number, avoid handling the non-condition operands of
600 COND_EXPRs as comparisons.
601 (vect_get_constant_vectors): Pass down the operand number.
602 (vect_get_slp_defs): Likewise.
603
604 2019-11-29 Frederik Harwath <frederik@codesourcery.com>
605
606 * gimple-match-head.c (maybe_resimplify_conditional_op): Use
607 generic_expr_could_trap_p to check if the condition of COND_EXPR or
608 VEC_COND_EXPR can trap.
609
610 2019-11-29 Richard Sandiford <richard.sandiford@arm.com>
611
612 PR tree-optimization/92677
613 * tree-vect-loop.c (vect_dissolve_slp_only_groups): Set the gap
614 to zero when dissolving a group of strided accesses.
615
616 2019-11-29 Richard Sandiford <richard.sandiford@arm.com>
617
618 PR tree-optimization/92596
619 * tree-vect-stmts.c (vectorizable_call): Punt on hybrid mask/nonmask
620 operations.
621 (vectorizable_operation): Likewise, instead of relying on
622 vect_get_mask_type_for_stmt to do this.
623 (vect_get_vector_types_for_stmt): Always return a vector type
624 immediately, rather than deferring the choice for boolean results.
625 Use a vector mask type instead of a normal vector if
626 vect_use_mask_type_p.
627 (vect_get_mask_type_for_stmt): Delete.
628 * tree-vect-loop.c (vect_determine_vf_for_stmt_1): Remove
629 mask_producers argument and special boolean_type_node handling.
630 (vect_determine_vf_for_stmt): Remove mask_producers argument and
631 update calls to vect_determine_vf_for_stmt_1. Remove doubled call.
632 (vect_determine_vectorization_factor): Update call accordingly.
633 * tree-vect-slp.c (vect_build_slp_tree_1): Remove special
634 boolean_type_node handling.
635 (vect_slp_analyze_node_operations_1): Likewise.
636
637 2019-11-29 Richard Sandiford <richard.sandiford@arm.com>
638
639 * tree-vectorizer.h (stmt_vec_info::mask_precision): New field.
640 (vect_use_mask_type_p): New function.
641 * tree-vect-patterns.c (vect_init_pattern_stmt): Copy the
642 mask precision to the pattern statement.
643 (append_pattern_def_seq): Add a scalar_type_for_mask parameter
644 and use it to initialize the new stmt's mask precision.
645 (search_type_for_mask_1): Delete.
646 (search_type_for_mask): Replace with...
647 (integer_type_for_mask): ...this new function. Use the information
648 cached in the stmt_vec_info.
649 (vect_recog_bool_pattern): Update accordingly.
650 (build_mask_conversion): Pass the scalar type associated with the
651 mask type to append_pattern_def_seq.
652 (vect_recog_mask_conversion_pattern): Likewise. Call
653 integer_type_for_mask instead of search_type_for_mask.
654 (vect_convert_mask_for_vectype): Call integer_type_for_mask instead
655 of search_type_for_mask.
656 (possible_vector_mask_operation_p): New function.
657 (vect_determine_mask_precision): Likewise.
658 (vect_determine_stmt_precisions): Call it.
659
660 2019-11-29 Richard Sandiford <richard.sandiford@arm.com>
661
662 * tree-vectorizer.h (get_mask_type_for_scalar_type): Replace
663 the slp_tree parameter with a group size parameter.
664 (vect_get_mask_type_for_stmt): Likewise.
665 * tree-vect-stmts.c (get_mask_type_for_scalar_type): Likewise.
666 (vect_get_mask_type_for_stmt): Likewise.
667 * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Update
668 call accordingly.
669
670 2019-11-29 Richard Sandiford <richard.sandiford@arm.com>
671
672 * tree-vect-stmts.c (vectorizable_operation): Punt early
673 on codes that are handled elsewhere.
674
675 2019-11-29 Richard Sandiford <richard.sandiford@arm.com>
676
677 * doc/sourcebuild.texi (vect_bool_cmp): Document.
678 * tree-vect-patterns.c (search_type_for_mask_1): If neither
679 operand to a boolean comparison is a natural vector mask,
680 handle both operands like normal integers instead.
681
682 2019-11-29 Richard Biener <rguenther@suse.de>
683
684 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Bail
685 out early for too large objects.
686
687 2019-11-29 Martin Jambor <mjambor@suse.cz>
688
689 PR ipa/92476
690 * ipa-cp.c (set_single_call_flag): Set node_calling_single_call in
691 the summary only if the summary exists.
692 (find_more_scalar_values_for_callers_subset): Check node_dead in
693 the summary only if the summary exists.
694 (ipcp_store_bits_results): Ignore nodes without lattices.
695 (ipcp_store_vr_results): Likewise.
696 * cgraphclones.c: Include ipa-fnsummary.h and ipa-prop.h and the
697 header files required by them.
698 (cgraph_node::expand_all_artificial_thunks): Analyze expanded thunks.
699
700 2019-11-29 Richard Sandiford <richard.sandiford@arm.com>
701
702 PR tree-optimization/92710
703 * tree-vect-stmts.c (vectorizable_simd_clone_call): Reject
704 vector mask arguments.
705
706 2019-11-29 Jan Hubicka <hubicka@ucw.cz>
707
708 * profile-count.c (profile_count::to_cgraph_frequency,
709 profile_count::to_sreal_scale): Check for compaibility of counts.
710 * profile-count.h (compatible_p): Make public; add checking for
711 global0 versus global types.
712 * cgraph.c (cgraph_node::verify_node): Verify count compatibility.
713
714 2019-11-29 Richard Biener <rguenther@suse.de>
715
716 PR tree-optimization/92715
717 * tree-ssa-forwprop.c (simplify_vector_constructor): Bail
718 out for uniform vectors and source vectors with less elements
719 than the destination.
720
721 2019-11-29 Martin Liska <mliska@suse.cz>
722
723 PR lto/91574
724 * ipa-devirt.c (types_same_for_odr): Check for existence
725 of TYPE_NAMEs first.
726
727 2019-11-29 Richard Biener <rguenther@suse.de>
728
729 PR tree-optimization/92704
730 * tree-if-conv.c (combine_blocks): Deal with virtual PHIs
731 in loops performing only loads.
732
733 2019-11-29 Julian Brown <julian@codesourcery.com>
734
735 * builtin-types.def (BT_DFLOAT32_PTR, BT_DFLOAT64_PTR,
736 BT_DFLOAT128_PTR) Remove.
737 * tree-core.h (TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE,
738 TI_DFLOAT128_PTR_TYPE): Remove.
739 * tree.c (build_common_type_nodes): Remove dfloat32_ptr_type_node,
740 dfloat64_ptr_type_node and dfloat128_ptr_type_node initialisation.
741 * tree.h (dfloat32_ptr_type_node, dfloat64_ptr_type_node,
742 dfloat128_ptr_type_node): Remove macros.
743
744 2019-11-28 Segher Boessenkool <segher@kernel.crashing.org>
745
746 * config/rs6000/rs6000.md (*movsi_internal1): Fix formatting. Improve
747 formatting.
748 (*movdi_internal64): Ditto.
749
750 2019-11-28 Segher Boessenkool <segher@kernel.crashing.org>
751
752 PR target/92602
753 * config/rs6000/rs6000.md (bswap<mode>2_load for HSI): Change the
754 indexed_or_indirect_operand to be memory_operand.
755 (bswap<mode>2_store for HSI): Ditto.
756 (bswapdi2_load): Ditto.
757 (bswapdi2_store): Ditto.
758
759 2019-11-28 Martin Liska <mliska@suse.cz>
760
761 PR debug/46558
762 * dbgcnt.c (dbg_cnt_list_all_counters): Mark table
763 headers for translation.
764
765 2019-11-28 Martin Liska <mliska@suse.cz>
766
767 PR lto/92609
768 * ipa-devirt.c (warn_types_mismatch): Use TYPE_MAIN_VARIANT
769 consistently.
770
771 2019-11-28 Jan Hubicka <hubicka@ucw.cz>
772
773 * ipa-inline.c (want_early_inline_function_p): Remove leftover optimize
774 checks.
775
776 2019-11-28 Jan Hubicka <hubicka@ucw.cz>
777
778 * profile-count.c (profile_count::combine_with_ipa_count): Return
779 uninitialized count if called on ininitialized count.
780
781 2019-11-28 Jan Hubicka <hubicka@ucw.cz>
782
783 * ipa-inline-transform.c (inline_transform): Scale profile before
784 redirecting.
785
786 2019-11-28 Jan Hubicka <hubicka@ucw.cz>
787
788 * profile-count.h (profile_count::max): Work on profiles of different
789 type.
790 (profile_count::apply_scale): Be sure that ret is not local or global0
791 type if num is global.
792
793 2019-11-28 Jan Hubicka <hubicka@ucw.cz>
794
795 * profile-count.h (profile_count::max): Work on profiles of different
796 type.
797 (profile_count::apply_scale): Be sure that ret is not local or global0
798 type if num is global.
799
800 2019-11-28 Martin Jambor <mjambor@suse.cz>
801
802 PR ipa/92697
803 * cgraph.c (cgraph_node_cannot_be_local_p_1): Return true for
804 ifunc_resolvers.
805 * symtab.c (symtab_node::dump_base): Dump ifunc_resolver flag.
806 Removed trailig whitespace.
807
808 2019-11-28 Jan Hubicka <hubicka@ucw.cz>
809
810 * profile-count.h (profile_count::combine_with_ipa_count_within):
811 Declare.
812 * profile-count.c (profile_count::combine_with_ipa_count_within):
813 New.
814 * cgraphclones.c (cgraph_edge::clone, cgraph_node::create_clone): Use
815 it.
816
817 2019-11-28 Jan Hubicka <hubicka@ucw.cz>
818
819 * ipa-utils.c (ipa_merge_profiles): Be sure that all type transtions
820 of counters are done same way.
821
822 2019-11-28 Jan Hubicka <hubicka@ucw.cz>
823
824 * ipa-cp.c (update_profiling_info): Fix scaling.
825
826 2019-11-28 Richard Biener <rguenther@suse.de>
827
828 PR tree-optimization/92645
829 * tree-inline.c (remap_gimple_stmt): When the return value
830 is not wanted, elide GIMPLE_RETURN.
831
832 2019-11-28 Richard Biener <rguenther@suse.de>
833
834 PR tree-optimization/92645
835 * tree-ssa-forwprop.c (get_bit_field_ref_def): Also handle
836 conversions inside a mode class. Remove restriction on
837 preserving the element size.
838 (simplify_vector_constructor): Deal with the above and for
839 identity permutes also try using VEC_UNPACK_[FLOAT_]LO_EXPR
840 and VEC_PACK_TRUNC_EXPR.
841
842 2019-11-28 Georg-Johann Lay <avr@gjlay.de>
843
844 Must use push insn to pass varargs arguments of DFmode because
845 otherwise the middle-end generates wrong code.
846
847 PR target/92055
848 * config/avr/avr.md (MPUSH) [DF, DC]: Add modes to mode iterator.
849
850 2019-11-28 Jakub Jelinek <jakub@redhat.com>
851
852 PR tree-optimization/92691
853 * tree-ssa-strlen.c (handle_store): Clarify return value meaning
854 in function comment.
855 (strlen_check_and_optimize_call): Likewise. For handle_printf_call
856 calls, return !handle_printf_call rather than always returning true.
857 (check_and_optimize_stmt): Describe return value meaning in function
858 comment. Formatting fix.
859
860 2019-11-28 Jan Hubicka <hubicka@ucw.cz>
861
862 * profile-count.c (profile_count::to_sreal_scale): Handle correctly
863 combination of globa0 and global counters..
864
865 2019-11-28 Kewen Lin <linkw@gcc.gnu.org>
866
867 PR target/92566
868 * gcc/config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Check
869 by VECTOR_UNIT_NONE_P instead.
870
871 2019-11-28 Hongtao Liu <hongtao.liu@inte.com>
872
873 * gcc/config/i386/sse.md (avx512f_maskcmp<mode>3):
874 Refine VF to VF_AVX512VL.
875
876 2019-11-27 Michael Meissner <meissner@linux.ibm.com>
877
878 * config/rs6000/rs6000.md (movsi_internal): Reformat.
879 (movdi_internal64): Reformat.
880
881 2019-11-27 Peter Bergner <bergner@linux.ibm.com>
882
883 PR bootstrap/92661
884 * config/rs6000/rs6000-call.c: (def_builtin): Do not define the
885 builtin if we don't have an actual type.
886 (builtin_function_type): If the builtin function uses a DFP type
887 and decimal float has been disabled, then return NULL_TREE.
888
889 2019-11-27 Jakub Jelinek <jakub@redhat.com>
890
891 PR rtl-optimization/92510
892 * combine.c (gen_lowpart_for_combine): Only transform lowpart subreg
893 of comparison into a comparison with different mode if both imode and
894 omode are scalar integral modes.
895
896 2019-11-27 Vladimir Makarov <vmakarov@redhat.com>
897
898 PR rtl-optimization/90007
899 * recog.c (constrain_operands): Permit hard registers too for
900 memory when LRA is used.
901
902 2019-11-27 Bernd Schmidt <bernds_cb1@t-online.de>
903
904 * config/m68k/m68k.c (m68k_output_compare_fp): Restore differences
905 between Coldfire and regular m68k.
906 * config/m68k/m68k.md (cmp1_cf_constraints): Disallow constants.
907
908 2019-11-27 Richard Biener <rguenther@suse.de>
909
910 * target.def (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove.
911 * targhooks.c (default_builtin_vectorized_conversion): Likewise.
912 * targhooks.h (default_builtin_vectorized_conversion): Likewise.
913 * optabs-tree.c (supportable_convert_operation): Do not call
914 targetm.vectorize.builtin_conversion. Remove unused decl parameter.
915 * optabs-tree.h (supportable_convert_operation): Adjust.
916 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove.
917 * doc/tm.texi: Regenerate.
918 * tree-ssa-forwprop.c (simplify_vector_constructor): Adjust.
919 * tree-vect-generic.c (expand_vector_conversion): Likewise.
920 * tree-vect-stmts.c (vect_gen_widened_results_half): Remove
921 unused decl parameter and adjust.
922 (vect_create_vectorized_promotion_stmts): Likewise.
923 (vectorizable_conversion): Adjust.
924
925 2019-11-27 Richard Biener <rguenther@suse.de>
926
927 PR tree-optimization/92690
928 * tree-ssa-forwprop.c (simplify_vector_constructor): Avoid
929 converting elements not originally converted.
930
931 2019-11-27 Tobias Burnus <tobias@codesourcery.com>
932
933 PR middle-end/92463
934 * builtins.c (do_mpfr_ckconv, do_mpc_ckconv, do_mpfr_remquo,
935 do_mpfr_lgamma_r, do_mpc_arg2): Use MPFR_RNDx instead of GMP_RNDx,
936 mpfr_rnd_t instead of mp_rnd_t.
937 * fold-const-call.c (do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_sincos,
938 do_mpfr_arg2, do_mpfr_arg3, do_mpc_arg1, do_mpc_arg2): Likewise.
939 * gimple-ssa-sprintf.c (format_floating_max, format_floating):
940 Use mpfr_exp_t instead of mp_exp_t.
941 * real.c (real_from_string, dconst_e_ptr, dconst_sqrt2_ptr): Use
942 MPFR_RNDx instead of GMP_RNDx.
943 * realmpfr.c (real_from_mpfr, mpfr_from_real): Use mpfr_rnd_t and
944 mpfr_exp_t instead mp_rnd_t and mp_exp_t, respectively.
945 * realmpfr.h (real_from_mpfr, mpfr_from_real): Use mpfr_rnd_t instead
946 of mp_rnd_t and remove MPFR_RNDx poisoning.
947 * ubsan.c (ubsan_instrument_float_cast): MPFR_RNDx instead of GMP_RNDx.
948
949 2019-11-27 Kewen Lin <linkw@gcc.gnu.org>
950
951 PR tree-optimization/91790
952 * gcc/tree-vect-stmts.c (vectorizable_load): Use the adjusted
953 DR for vect_setup_realignment when first_stmt_info is different
954 from first_stmt_info_for_drptr.
955
956 2019-11-27 Richard Biener <rguenther@suse.de>
957
958 PR tree-optimization/92645
959 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
960 CTORs with just a subset of the original vectors.
961
962 2019-11-27 Richard Biener <rguenther@suse.de>
963
964 PR middle-end/92674
965 * tree-inline.c (expand_call_inline): Delay purging EH/abnormal
966 edges and instead record blocks in bitmap.
967 (gimple_expand_calls_inline): Adjust.
968 (fold_marked_statements): Delay EH cleanup until all folding is
969 done.
970 (optimize_inline_calls): Do EH/abnormal cleanup for calls after
971 inlining finished.
972
973 2019-11-27 Bernd Schmidt <bernds_cb1@t-online.de>
974
975 * auto-inc-dec.c (merge_in_block): Allow autoinc in jumps unless
976 LRA is enabled.
977 * combine.c (can_combine_p): Disallow autoinc in jumps unless LRA is
978 disabled.
979
980 2019-11-27 Jakub Jelinek <jakub@redhat.com>
981
982 PR debug/92664
983 * dwarf2out.c (lookup_filename): Use "<stdin>" instead of "".
984
985 2019-11-26 Martin Sebor <msebor@redhat.com>
986
987 PR tree-optimization/92683
988 * gimple-fold.c (gimple_fold_builtin_string_compare): Restore a test
989 inadvertently removed in a previous change. Rename local variable
990 for clarity.
991
992 2019-11-26 Richard Biener <rguenther@suse.de>
993
994 PR middle-end/92669
995 * cfganal.c (pre_and_rev_post_order_compute_fn): Deal with
996 NULL pre_order.
997
998 2019-11-26 Robin Dapp <rdapp@linux.ibm.com>
999
1000 * config/s390/linux.h: Add undef for MUSL_DYNAMIC_LINKERxx.
1001
1002 2019-11-26 Jakub Jelinek <jakub@redhat.com>
1003
1004 PR tree-optimization/92644
1005 * tree-ssa-phiopt.c (minmax_replacement): Add INTEGRAL_TYPE_P check
1006 next to INTEGER_CST checks.
1007
1008 2019-11-26 Richard Biener <rguenther@suse.de>
1009
1010 PR tree-optimization/92645
1011 * tree-vect-slp.c (vect_build_slp_tree_2): For unary ops
1012 do not build the operation from scalars if the operand is.
1013
1014 2019-11-25 Tobias Burnus <tobias@codesourcery.com>
1015
1016 * config/gcn/mkoffload.c (COMMENT_PREFIX, struct id_map,
1017 func_ids, funcs_tail, var_ids, vars_tail) Remove unused
1018 definitions.
1019
1020 2019-11-25 Martin Liska <mliska@suse.cz>
1021
1022 * ipa-icf.c (sem_item_optimizer::dump_cong_classes): Clean
1023 up used dump message.
1024
1025 2019-11-25 Martin Liska <mliska@suse.cz>
1026
1027 PR bootstrap/92653
1028 * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Comment out
1029 too strict checking assert.
1030
1031 2019-11-25 Joseph Myers <joseph@codesourcery.com>
1032
1033 PR c/91985
1034 * builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128)
1035 (BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR): Define to
1036 error_mark_node if corresponding global tree node is NULL.
1037 * tree.c (build_common_tree_nodes): Do not initialize
1038 dfloat32_type_node, dfloat64_type_node or dfloat128_type_node if
1039 decimal floating-point not supported.
1040
1041 2019-11-25 Joseph Myers <joseph@codesourcery.com>
1042
1043 * attribs.c (decl_attributes): Do not ignore C++11 attributes on
1044 types.
1045
1046 2019-11-25 Bernd Schmidt <bernds_cb1@t-online.de>
1047
1048 * config/m68k/m68k.c (output_move_himode, output_move_qimode):
1049 Replace code for non-CONST_INT constants with gcc_unreachable.
1050 * config/m68k/m68k.md (cbranchdi): Don't generate individual
1051 compare and test.
1052 (CMPMODE): New mode_iterator.
1053 (cbranchsi4, cbranchqi4, cbranchhi4): Replace expanders with
1054 cbranch<mode>4.
1055 (cstoresi4, cstoreqi4, cstorehi4): Replace expanders with
1056 cstore<mode>4.
1057 (cmp<mode>_68881): Remove 'F' constraint from first comparison
1058 operand.
1059 (bit test insns patterns): Use nonimmediate_operand, not
1060 register_operand, for source operands that allow memory in
1061 their constraints.
1062 (divmodsi4, udivmodsi4, divmodhi4 and related unnamed patterns):
1063 Use register_operand, not nonimmediate_operand, for the
1064 destinations.
1065 (DBCC): New mode_iterator.
1066 (dbcc peepholes): Use it to reduce duplication.
1067 (trap): Use const_true_rtx, not const1_rtx.
1068 * config/m68k/predicates.md (m68k_comparison_operand): Renamed
1069 from m68k_subword_comparison_operand and changed to handle
1070 SImode.
1071
1072 PR target/91851
1073 * config/m68k/m68k-protos.h (output-dbcc_and_branch): Adjust
1074 declaration.
1075 (m68k_init_cc): New declaration.
1076 (m68k_output_compare_di, m68k_output_compare_si)
1077 (m68k_output_compare_hi, m68k_output_compare_qi)
1078 (m68k_output_compare_fp, m68k_output_btst, m68k_output_bftst)
1079 (m68k_find_flags_value, m68k_output_scc, m68k_output_scc_float)
1080 (m68k_output_branch_integer, m68k_output_branch_integer_rev.
1081 m68k_output_branch_float, m68k_output_branch_float_rev):
1082 Likewise.
1083 (valid_dbcc_comparison_p_2, flags_in_68881)
1084 (output_btst): Remove declaration.
1085 * config/m68k/m68k.c (INCLDUE_STRING): Define.
1086 (TARGET_ASM_FINAL_POSTSCAN_INSN): Define.
1087 (valid_dbcc_comparison_p_2, flags_in_68881): Delete functions.
1088 (flags_compare_op0, flags_compare_op1, flags_operand1,
1089 flags_operand2, flags_valid): New static variables.
1090 (m68k_find_flags_value, m68k_init_cc): New functions.
1091 (handle_flags_for_move, m68k_asm_final_postscan_insn,
1092 remember_compare_flags): New static functions.
1093 (output_dbcc_and_branch): New argument CODE. Use it, and add
1094 PLUS and MINUS to the possible codes. All callers changed.
1095 (m68k_output_btst): Renamed from output_btst. Remove OPERANDS
1096 and INSN arguments, add CODE arg. Return the comparison code
1097 to use. All callers changed. Use CODE instead of
1098 next_insn_tests_no_inequality, and replace cc_status management
1099 with changing the return code.
1100 (m68k_rtx_costs): Instead of testing for COMPARE, test for
1101 RTX_COMPARE or RTX_COMM_COMPARE.
1102 (output_move_simode, output_move_qimode): Call
1103 handle_flags_for_move.
1104 (notice_update_cc): Delete function.
1105 (m68k_output_bftst, m68k_output_compare_di, m68k_output_compare_si,
1106 m68k_output_compare_hi, m68k_output_compare_qi,
1107 m68k_output_compare_fp, m68k_output_branch_integer,
1108 m68k_output_branch_integer_rev, m68k_output_scc,
1109 m68k_output_branch_float, m68k_output_branch_float_rev,
1110 m68k_output_scc_float): New functions.
1111 (output_andsi3, output_iorsi3, output_xorsi3): Call CC_STATUS_INIT
1112 once at the start, and set flags_valid and flags_operand1 if the
1113 flags are usable.
1114 * config/m68k/m68k.h (CC_IN_68881, NOTICE_UPDATE_CC,
1115 CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, OUTPUT_JUMP): Remove
1116 definitions.
1117 (CC_STATUS_INIT): Define.
1118 * config/m68k/m68k.md (flags_valid): New define_attr.
1119 (tstdi, tstsi_internal_68020_cf, tstsi_internal, tsthi_internal,
1120 tstqi_internal, tst<mode>_68881, tst<mode>_cf, cmpdi_internal,
1121 cmpdi, unnamed cmpsi/cmphi/cmpqi patterns, cmpsi_cf,
1122 cmp<mode>_68881, cmp<mode>_cf, unnamed btst patterns,
1123 tst_bftst_reg, tst_bftst_reg, unnamed scc patterns, scc,
1124 sls, sordered_1, sunordered_1, suneq_1, sunge_1, sungt_1,
1125 sunle_1, sunlt_1, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1,
1126 bge0_di, blt0_di, beq, bne, bgt, bgtu, blt, bltu, bge, bgeu,
1127 ble, bleu, bordered, bunordered, buneq, bunge, bungt, bunle,
1128 bunlt, bltgt, beq_rev, bne_rev, bgt_rev, bgtu_rev,
1129 blt_rev, bltu_rev, bge_rev, bgeu_rev, ble_rev, bleu_rev,
1130 bordered_rev, bunordered_rev, buneq_rev, bunge_rv, bungt_rev,
1131 bunle_rev, bunlt_rev, bltgt_rev, ctrapdi4, ctrapsi4, ctraphi4,
1132 ctrapqi4, conditional_trap): Delete patterns.
1133 (cbranchdi4_insn): New pattern.
1134 (cbranchdi4): Don't generate cc0 patterns. When testing LT or GE,
1135 test high part only. When testing EQ or NE, generate beq0_di
1136 and bne0_di patterns directly.
1137 (cstoredi4): When testing LT or GE, test high part only.
1138 (both sets of cbranch<mode>4, cstore<mode>4): Don't generate cc0
1139 patterns.
1140 (scc0_constraints, cmp1_constraints, cmp2_constraints,
1141 scc0_cf_constraints, cmp1_cf_constraints, cmp2_cf_constraints,
1142 cmp2_cf_predicate): New define_mode_attrs.
1143 (cbranch<mode>4_insn, cbranch<mode>4_insn_rev,
1144 cbranch<mode>4_insn_cf, cbranch<mode>4_insn_cf_rev,
1145 cstore<mode>4_insn, cstore<mode>4_insn_cf for integer modes)
1146 New patterns.
1147 (cbranch<mode>4_insn_68881, cbranch<mode>4_insn_rev_68881):
1148 (cbranch<mode>4_insn_cf, cbranch<mode>4_insn_rev_cf,
1149 cstore<mode>4_insn_68881, cstore<mode>4_insn_cf for FP):
1150 New patterns.
1151 (cbranchsi4_btst_mem_insn, cbranchsi4_btst_reg_insn,
1152 cbranchsi4_btst_mem_insn_1, cbranchsi4_btst_reg_insn_1):
1153 Likewise.
1154 (BTST): New define_mode_iterator.
1155 (btst_predicate, btst_constraint, btst_range): New
1156 define_mode_attrs.
1157 (cbranch_bftst<mode>_insn, cstore_bftst<mode>_insn): New
1158 patterns.
1159 (movsi_m68k_movsi_m68k2, movsi_cf, unnamed movstrict patterns,
1160 unnamed movhi and movqi patterns, unnamed movsf, movdf and movxf
1161 patterns): Set attr "flags_valid".
1162 (truncsiqi2, trunchiqi2, truncsihi2): Remove manual CC_STATUS
1163 management. Set attr "flags_valid".
1164 (extendsidi2, extendplussidi, unnamed float_extendsfdf pattern,
1165 extendsfdf2_cf, fix_truncdfsi2, fix_truncdfhi2, fix_truncdfqi2,
1166 addi_sexthishl32, adddi_dilshr32, adddi_dilshr32_cf,
1167 addi_dishl32, subdi_sexthishl32, subdi_dishl32, subdi3): Remove
1168 manual CC_STATUS management.
1169 (addsi3_internal, addhi3, addqi3, subsi3, subhi3, subqi3,
1170 unnamed strict_lowpart subhi and subqi patterns): Set attr
1171 "flags_valid".
1172 (unnamed strict_lowpart addhi3 and addqi3 patterns): Likewise.
1173 Remove code to operate on address regs and assert the case
1174 does not occur.
1175 (unnamed mulsidi patterns, divmodhi4, udivmodhi4): Remove
1176 manual CC_STATUS_INIT.
1177 (andsi3_internal, andhi3, andqi3, iorsi3_internal, iorhi3, iorqi3,
1178 xorsi3_internal, xorhi3, xorqi3, negsi2_internal,
1179 negsi2_5200, neghi2, negqi2, one_cmplsi2_internal, one_cmplhi2,
1180 one_cmplqi2, unnamed strict_lowpart patterns
1181 for andhi, andqi, iorhi, iorqi, xorhi, xorqi, neghi, negqi,
1182 one_cmplhi and one_cmplqi): Set attr "flags_valid".
1183 (iorsi_zext_ashl16, iorsi_zext): Remove manual CC_STATUS_INIT.
1184 (ashldi_sexthi, ashlsi_16, ashlsi_17_24): Remove manual
1185 CC_STATUS_INIT.
1186 (ashlsi3, ashlhi3, ashlqi3, ashrsi3, ashrhi3, ashrqi3, lshrsi3,
1187 lshrhi3, shrqi3, rotlsi3, rotlhi3, rotlhi3_lowpart, rotlqi3,
1188 rotlqi3_lowpart, rotrsi3, rotrhi3, rotrhi_lowpart, rotrqi3,
1189 unnamed strict_low_part patterns for HI and
1190 QI versions): Set attr "flags_valid".
1191 (bsetmemqi, bsetmemqi_ext, bsetdreg, bchgdreg, bclrdreg,
1192 bclrmemqi, extzv_8_16_reg, extzv_bfextu_mem, insv_bfchg_mem,
1193 insv_bfclr_mem, insv_bfset_mem, extv_bfextu_reg,
1194 insv_bfclr_reg, insv_bfset_reg, dbne_hi, dbne_si, dbge_hi,
1195 dbge_si, extendsfxf2, extenddfxf2, ): Remove manual cc_status management.
1196 (various unnamed peepholes): Adjust compare/branch sequences
1197 for new cbranch patterns.
1198 (dbcc peepholes): Likewise, and output the comparison here
1199 as well.
1200 * config/m68k/predicates.md (valid_dbcc_comparison_p): Delete.
1201 (fp_src_operand): Allow constant zero.
1202 (address_reg_operand): New predicate.
1203
1204 * rtl.h (inequality_comparisons_p): Remove declaration.
1205 * recog.h (next_insn_tests_no_inequality): Likewise.
1206 * rtlanal.c (inequality_comparisons_p): Delete function.
1207 * recog.c (next_insn_tests_no_inequality): Likewise.
1208
1209 2019-11-25 Richard Biener <rguenther@suse.de>
1210
1211 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Add assertion.
1212 (vect_detect_hybrid_slp): Swap lane and instance iteration,
1213 properly re-building the visited hash-map for each lane.
1214
1215 2019-11-25 Tobias Burnus <tobias@codesourcery.com>
1216
1217 * config/gcn/gcn.c (gcn_expand_scalar_to_vector_address,
1218 gcn_md_reorg): Remove unused variables.
1219 (gcn_emutls_var_init): Add missing (but unreachable) return
1220 to silence warning.
1221 (gcn_hsa_declare_function_name): Add gcc_unreachable to ensure
1222 target != TARGET_GCN3 or TARGET_GCN3 will fail instead of use
1223 an uninitialized variable.
1224
1225 2019-11-25 Martin Jambor <mjambor@suse.cz>
1226
1227 PR ipa/92109
1228 * cgraph.h (cgraph_node::remove_from_clone_tree): Declare.
1229 * cgraphclones.c (cgraph_node::remove_from_clone_tree): New method.
1230 (cgraph_materialize_clone): Move removel from clone tree to the
1231 the new method and use it instead.
1232 * ipa.c (symbol_table::remove_unreachable_nodes): When removing
1233 bodies of clones, also remove it from the clone tree.
1234
1235 2019-11-25 Martin Jambor <mjambor@suse.cz>
1236
1237 PR ipa/91956
1238 * ipa-sra.c (process_isra_node_results): Put the new node to the
1239 same comdat group as the original node.
1240
1241 2019-11-25 Georg-Johann Lay <avr@gjlay.de>
1242
1243 Build double32 / long-double32 multilibs if needed.
1244
1245 PR target/92055
1246 * config/avr/t-avr:
1247 (HAVE_DOUBLE_MULTILIB, HAVE_LONG_DOUBLE_MULTILIB): Remove vars.
1248 (HAVE_DOUBLE32, HAVE_LONG_DOUBLE32, WITH_LONG_DOUBLE)
1249 (HAVE_DOUBLE64, HAVE_LONG_DOUBLE64, WITH_DOUBLE): Set from
1250 tm_defines and pass to genmultilib.awk.
1251 * config/avr/genmultilib.awk: Use these variables to add double32
1252 and / or long-double32 multilib(s) as needed.
1253 * config/avr/driver-avr.c (avr_double_lib): Adjust comment.
1254
1255 2019-11-25 Richard Biener <rguenther@suse.de>
1256
1257 * cfgloop.h (get_loop_exit_edges): Add extra parameter denoting
1258 loop body, defaulted to NULL.
1259 (single_likely_exit): Add exit vector argument
1260 * tree-ssa-loop-niter.h (loop_only_exit_p): Add loop body argument.
1261 (number_of_iterations_exit): Likewise.
1262 (number_of_iterations_exit_assumptions): Likewise.
1263 * cfgloop.c (get_loop_exit_edges): Use passed in loop body
1264 if not NULL.
1265 * cfgloopanal.c (single_likely_exit): Use passed in exit vector.
1266 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
1267 Compute exit vector around call to single_likely_exit.
1268 * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_loop): Pass down
1269 loop body to loop_only_exit_p.
1270 * tree-ssa-loop-niter.c (loop_only_exit_p): Get loop body from
1271 caller.
1272 (number_of_iterations_exit_assumptions): Get loop body from caller
1273 if not NULL.
1274 (number_of_iterations_exit): Pass through new loop body arg.
1275 (infer_loop_bounds_from_undefined): Get loop body from caller.
1276 (estimate_numbers_of_iterations): Compute loop body once.
1277
1278 2019-11-25 Richard Biener <rguenther@suse.de>
1279
1280 * cfganal.c (pre_and_rev_post_order_compute_fn): Use an
1281 auto_bb_flag instead of an sbitmap for visited handling.
1282
1283 2019-11-25 Kewen Lin <linkw@gcc.gnu.org>
1284
1285 * config/rs6000/vector.md (vector_fp_comparison_simple): New code
1286 iterator.
1287 (vector_fp_comparison_complex): Likewise.
1288 (vector_<code><mode> for VEC_F and vector_fp_comparison_simple): New
1289 define_and_split.
1290 (vector_<code><mode> for VEC_F and vector_fp_comparison_complex):
1291 Likewise.
1292 (vector_lt<mode> for VEC_F): Refactor with
1293 vector_fp_comparison_simple.
1294 (vector_le<mode> for VEC_F): Likewise.
1295 (vector_unge<mode> for VEC_F): Likewise.
1296 (vector_unle<mode> for VEC_F): Likewise.
1297 (vector_ne<mode> for VEC_F): Likewise.
1298 (vector_ungt<mode> for VEC_F): Likewise.
1299 (vector_unlt<mode> for VEC_F): Likewise.
1300 (vector_ltgt<mode> for VEC_F): Refactor with
1301 vector_fp_comparison_complex.
1302 (vector_ordered<mode> for VEC_F): Likewise.
1303 (vector_uneq<mode> for VEC_F): Likewise.
1304 (vector_unordered<mode> for VEC_F): Likewise.
1305
1306 2019-11-24 Bernd Schmidt <bernds_cb1@t-online.de>
1307
1308 * config/i386/i386.c (ix86_rtx_costs): Handle care of a PLUS in a
1309 COMPARE, representing an overflow detection.
1310
1311 * combine.c (combine_instructions): Record costs for jumps.
1312
1313 * combine.c (can_combine_p): Allow autoinc in jumps.
1314
1315 2019-11-23 Jan Hubicka <hubicka@ucw.cz>
1316
1317 * cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT): Remove.
1318 * doc/invoke.texi (max-inline-insns-single-O2,
1319 inline-heuristics-hint-percent-O2, inline-min-speedup-O2,
1320 early-inlining-insns-O2): Remove documentation.
1321 * ipa-fnsummary.c (analyze_function_body,
1322 compute_fn_summary): Use opt_for_fn when accessing parameters.
1323 * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
1324 inline_insns_auto, can_inline_edge_by_limits_p,
1325 want_early_inline_function_p, big_speedup_p,
1326 want_inline_small_function_p, want_inline_self_recursive_call_p,
1327 recursive_inlining, compute_max_insns, inline_small_functions):
1328 Likewise.
1329 * opts.c (default_options): Add -O3 defaults for
1330 OPT__param_early_inlining_insns_,
1331 OPT__param_inline_heuristics_hint_percent_,
1332 OPT__param_inline_min_speedup_, OPT__param_max_inline_insns_single_.
1333 * params.opt (-param=early-inlining-insns-O2=,
1334 -param=inline-heuristics-hint-percent-O2=,
1335 -param=inline-min-speedup-O2=, -param=max-inline-insns-single-O2=
1336 -param=early-inlining-insns=, -param=inline-heuristics-hint-percent=,
1337 -param=inline-min-speedup=, -param=inline-unit-growth=,
1338 -param=large-function-growth=, -param=large-stack-frame=,
1339 -param=large-stack-frame-growth=, -param=large-unit-insns=,
1340 -param=max-inline-insns-recursive=,
1341 -param=max-inline-insns-recursive-auto=,
1342 -param=max-inline-insns-single=,
1343 -param=max-inline-insns-size=, -param=max-inline-insns-small=,
1344 -param=max-inline-recursive-depth=,
1345 -param=max-inline-recursive-depth-auto=,
1346 -param=min-inline-recursive-probability=,
1347 -param=partial-inlining-entry-probability=,
1348 -param=uninlined-function-insns=, -param=uninlined-function-time=,
1349 -param=uninlined-thunk-insns=, -param=uninlined-thunk-time=): Add
1350 Optimization.
1351
1352 2019-11-23 Jakub Jelinek <jakub@redhat.com>
1353
1354 * ipa-fnsummary.c: Fix comment typos.
1355 * ipa-ref.h: Likewise.
1356 * ipa-predicate.h: Likewise.
1357 * ipa-split.c: Likewise.
1358 * ipa-inline-analysis.c: Likewise.
1359 * ipa-predicate.c: Likewise.
1360 * ipa-devirt.c: Likewise.
1361 * ipa-icf.h: Likewise.
1362 * profile-count.c: Likewise.
1363 * ipa-icf.c: Likewise.
1364 (sem_function::equals_wpa): Fix typos in dump messages.
1365 * ipa-icf-gimple.h: Fix comment typos.
1366 * ipa-inline-transform.c: Likewise.
1367 * ipa-polymorphic-call.c: Likewise.
1368 * ipa-fnsummary.h: Likewise.
1369 * ipa-inline.c: Likewise.
1370 (dump_inline_stats): Fix typo in debug dump message.
1371 * profile-count.h: Fix comment typos.
1372
1373 PR target/92615
1374 * config/i386/i386.c (ix86_md_asm_adjust): If dest_mode is
1375 GET_MODE (dest), is not QImode, using ZERO_EXTEND and dest is not
1376 register_operand, force x into register before storing it into dest.
1377 Formatting fix.
1378
1379 PR middle-end/83859
1380 * doc/extend.texi (attribute access): Fix a typo.
1381
1382 PR rtl-optimization/92610
1383 * cse.c (rest_of_handle_cse2): Call cleanup_cfg (0) also if
1384 cse_cfg_altered is set, even when tem is 0.
1385 (rest_of_handle_cse_after_global_opts): Likewise.
1386
1387 2019-11-22 Jakub Jelinek <jakub@redhat.com>
1388
1389 PR c++/92458
1390 * tree-hash-traits.h (tree_decl_hash, tree_ssa_name_hash,
1391 tree_hash): Move to ...
1392 * tree.h (tree_decl_hash, tree_ssa_name_hash, tree_hash): ... here.
1393 (struct decl_tree_cache_traits, struct type_tree_cache_traits): New
1394 types.
1395 (decl_tree_cache_map, tree_tree_cache_map): New typedefs.
1396
1397 PR tree-optimization/92618
1398 * tree-ssa-reassoc.c (v_info): Change from auto_vec to a struct
1399 containing the auto_vec and a tree.
1400 (undistribute_bitref_for_vector): Handle the case when element type
1401 of vec is not the same as type of the BIT_FIELD_REF. Formatting
1402 fixes.
1403
1404 2019-11-22 Martin Sebor <msebor@redhat.com>
1405
1406 PR middle-end/83859
1407 * attribs.h (struct attr_access): New.
1408 * attribs.c (decl_attributes): Add an informational note.
1409 * builtins.c (check_access): Make extern. Consistently set no-warning
1410 after issuing a warning. Handle calls through function pointers. Set
1411 no-warning.
1412 * builtins.h (check_access): Declare.
1413 * calls.c (rdwr_access_hash): New type.
1414 (rdwr_map): Same.
1415 (init_attr_rdwr_indices): New function.
1416 (maybe_warn_rdwr_sizes): Same.
1417 (initialize_argument_information): Call init_attr_rdwr_indices.
1418 Call maybe_warn_rdwr_sizes.
1419 (get_size_range): Avoid null argument.
1420 * doc/extend.texi (attribute access): Document new attribute.
1421
1422 2019-11-22 Andrew Stubbs <ams@codesourcery.com>
1423
1424 * config/gcn/gcn.c (OMP_LDS_SIZE): Define.
1425 (ACC_LDS_SIZE): Define.
1426 (OTHER_LDS_SIZE): Define.
1427 (LDS_SIZE): Redefine using above.
1428 (gcn_expand_prologue): Initialize m0 with LDS_SIZE-1.
1429
1430 2019-11-22 Martin Sebor <msebor@redhat.com>
1431
1432 PR middle-end/88226
1433 * builtins.c (check_nul_terminated_array): New function.
1434 (fold_builtin_0): Remove declaration.
1435 (fold_builtin_1): Same.
1436 (fold_builtin_2): Same.
1437 (fold_builtin_3): Same.
1438 (fold_builtin_strpbrk): Add argument.
1439 (fold_builtin_strspn): Same.
1440 (fold_builtin_strcspn): Same.
1441 (expand_builtin_strcat): Call it. Remove unused argument.
1442 (expand_builtin_stpncpy): Same.
1443 (expand_builtin_strncat): Same.
1444 (expand_builtin_strncpy): Same. Adjust indentation.
1445 (expand_builtin_strcmp): Same.
1446 (expand_builtin_strncmp): Same.
1447 (expand_builtin_fork_or_exec): Same.
1448 (expand_builtin): Handle more built-ins.
1449 (fold_builtin_2): Add argument.
1450 (fold_builtin_n): Make static. Add argument.
1451 (fold_call_expr): Pass new argument to fold_builtin_n and fold_builtin_2.
1452 (fold_builtin_call_array): Pass new argument to fold_builtin_n.
1453 (fold_builtin_strpbrk): Add argument. Call check_nul_terminated_array.
1454 (fold_call_stmt): Pass new argument to fold_builtin_n.
1455 * builtins.h: Correct a comment.
1456 * gimple-fold.c (gimple_fold_builtin_strchr): Call
1457 check_nul_terminated_array.
1458 * tree-ssa-strlen.c (handle_builtin_strlen): Call
1459 check_nul_terminated_array.
1460 (handle_builtin_strchr): Same.
1461 (handle_builtin_string_cmp): Same.
1462
1463 2019-11-22 Martin Sebor <msebor@redhat.com>
1464
1465 PR tree-optimization/92501
1466 * gimple-fold.c ((gimple_fold_builtin_string_compare): Let strncmp
1467 handle unterminated arrays. Rename local variables for clarity.
1468
1469 2019-11-22 Andrew Stubbs <ams@codesourcery.com>
1470
1471 * config/gcn/gcn.c (gcn_hsa_declare_function_name): Calculate
1472 granulated_sgprs according to architecture.
1473
1474 2019-11-22 Jan Hubicka <jh@suse.cz>
1475
1476 * ggc-page.c (ggc_collect): Call memory_block_pool::trim.
1477 * memory-block.cc (memory_block_pool::clear_free_list): Rename to ...
1478 (memory_block_pool::reduce_free_list): ... this one.
1479 (memory_block_pool::trim): New static function.
1480 * memory-block.h (memory_block_pool::freelist_size): New constant
1481 (memory_block_pool::clear_free_list): Rename to ...
1482 (memory_block_pool::reduce_free_list): ... this one.
1483 (memory_block_pool::trim): Declare.
1484
1485 2019-11-22 Richard Sandiford <richard.sandiford@arm.com>
1486
1487 * tree-vect-stmts.c (vect_model_simple_cost): Take an optional
1488 vect_cost_for_stmt.
1489 (vectorizable_condition): Calculate the cost of EXTRACT_LAST_REDUCTION
1490 here rather than...
1491 * tree-vect-loop.c (vect_model_reduction_cost): ...here.
1492
1493 2019-11-22 Claudiu Zissulescu <claziss@synopsys.com>
1494
1495 * config/arc/arc.md (bic_f): Use cc_set_register predicate.
1496 (bic_cmp0_noout): New pattern.
1497 (bic_cmp0): Likewise.
1498 (neg_scc_insn): Remove pattern.
1499 (not_scc_insn): Likewise.
1500
1501 2019-11-21 Harald van Dijk <harald@gigawatt.nl>
1502
1503 * doc/invoke.texi (-fcommon): Remove claim about ISO C.
1504
1505 2019-11-21 Joseph Myers <joseph@codesourcery.com>
1506
1507 * gimplify.c (expand_FALLTHROUGH_r, expand_FALLTHROUGH): Use
1508 pedwarn instead of warning_at for fallthrough not preceding a case
1509 or default label.
1510
1511 2019-11-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1512
1513 PR tree-optimization/92608
1514 * tree-ssa-loop-unswitch.c (find_loop_guard): Use safe_dyn_cast instead
1515 of dyn_cast.
1516
1517 2019-11-21 Segher Boessenkool <segher@kernel.crashing.org>
1518
1519 * config/rs6000/predicates.md (extra_insn_branch_comparison_operator):
1520 New predicate.
1521 * config/rs6000/rs6000-protos.h (rs6000_emit_fp_cror): New declaration.
1522 * config/rs6000/rs6000.c (rs6000_generate_compare): Don't do anything
1523 special for FP comparisons that need a cror instruction eventually.
1524 (rs6000_emit_fp_cror): New function.
1525 (rs6000_emit_sCOND): Expand all floating point comparisons to one
1526 instruction, for normal FP modes, with HONOR_NANS.
1527 (rs6000_emit_cbranch): Reformat.
1528 * config/rs6000/rs6000.md (fp_rev): New iterator.
1529 (fp_two): New iterator.
1530 *<code><mode>_cc for fp_rev and GPR: New define_insn_and_split.
1531 *<code><mode>_cc for fp_two and GPR: New define_insn_and_split.
1532 *cbranch_2insn: New define_insn_and_split.
1533
1534 2019-11-21 Richard Sandiford <richard.sandiford@arm.com>
1535
1536 PR tree-optimization/92526
1537 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Reject
1538 versioning for alignment if the accesses do not have a consistent
1539 mask, rather than asserting that the masks are consistent.
1540
1541 2019-11-21 Richard Sandiford <richard.sandiford@arm.com>
1542
1543 PR tree-optimization/92595
1544 * tree-vect-stmts.c (get_group_load_store_type): Add a VECTOR_MODE_P
1545 check.
1546 (vectorizable_store, vectorizable_load): Likewise.
1547
1548 2019-11-21 Jan Hubicka <jh@suse.cz>
1549
1550 * ipa-inline.c (update_callee_keys): Add parameter UPDATE_SINCE.
1551 (resolve_noninline_speculation, inline_small_functions): Avoid
1552 redundant updates.
1553
1554 2019-11-21 Richard Biener <rguenther@suse.de>
1555
1556 * lra.c (lra_insn_recog_data_pool): New.
1557 (free_insn_recog_data): Adjust.
1558 (finish_insn_recog_data): Release lra_insn_recog_data_pool.
1559 (lra_set_insn_recog_data): Allocate from lra_insn_recog_data_pool.
1560
1561 2019-11-21 Richard Biener <rguenther@suse.de>
1562
1563 PR tree-optimization/92596
1564 * tree-vect-slp.c (vect_build_slp_tree): Fix pasto.
1565
1566 2019-11-21 Jan Hubicka <jh@suse.cz>
1567
1568 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Be
1569 ready for some vectors to not be allocated.
1570 (evaluate_properties_for_edge): Document better; make
1571 known_vals and known_aggs caller allocated; avoid determining
1572 values of parameters which are not used.
1573 (ipa_merge_fn_summary_after_inlining): Pre allocate known_vals and
1574 known_aggs.
1575 * ipa-inline-analysis.c (do_estimate_edge_time): Likewise.
1576 (do_estimate_edge_size): Likewise.
1577 (do_estimate_edge_hints): Likewise.
1578 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do not early exit when
1579 values are not known.
1580 (ipa_release_agg_values): Add option to not release vector itself.
1581 * ipa-prop.h (ipa_release_agg_values): Add parameter RELEASE_VECTOR.
1582
1583 2019-11-21 Richard Biener <rguenther@suse.de>
1584
1585 * cfgloop.h (loop_iterator::~loop_iterator): Remove.
1586 (loop_iterator::to_visit): Use an auto_vec with internal storage.
1587 (loop_iterator::loop_iterator): Adjust.
1588 * cfganal.c (compute_dominance_frontiers_1): Fold into...
1589 (compute_dominance_frontiers): ... this. Hoist invariant
1590 get_immediate_dominator call.
1591 (compute_idf): Use a work-set instead of a work-list for more
1592 optimal iteration order and duplicate avoidance.
1593 * tree-into-ssa.c (mark_phi_for_rewrite): Avoid re-allocating
1594 the vector all the time, instead pre-allocate the vector only
1595 once.
1596 (delete_update_ssa): Simplify.
1597 * vec.h (va_heap::release): Disable -Wfree-nonheap-object around it.
1598
1599 2019-11-21 Jakub Jelinek <jakub@redhat.com>
1600
1601 PR tree-optimization/91355
1602 * tree-ssa-sink.c (select_best_block): Use >= rather than >
1603 for early_bb scaled count with best_bb count comparison.
1604
1605 * ipa-fnsummary.h (enum ipa_hints_vals): Fix comment typo,
1606 preffer -> prefer.
1607 * ipa-inline.c (edge_badness): Likewise.
1608 * lto-streamer.h (class lto_location_cache): Likewise.
1609 * tree-ssa-sink.c (select_best_block): Likewise. Fix comment typos,
1610 gratutious -> gratuitous.
1611
1612 2019-11-21 Richard Biener <rguenther@suse.de>
1613
1614 Revert
1615 2019-09-17 Richard Biener <rguenther@suse.de>
1616
1617 PR tree-optimization/91790
1618 * tree-vect-stmts.c (vectorizable_load): For BB vectorization
1619 use the correct DR for setting up realignment.
1620
1621 2019-11-21 Richard Biener <rguenther@suse.de>
1622
1623 * tree-ssa-structalias.c (equiv_class_hasher): Change to nofree.
1624 (equiv_class_obstack): New.
1625 (equiv_class_lookup_or_add): Allocate from equiv_class_obstack.
1626 (perform_var_substitution): Initialize equiv_class_obstack.
1627 (free_var_substitution_info): Free equiv_class_obstack.
1628
1629 2019-11-20 Jan Hubicka <jh@suse.cz>
1630
1631 * ipa-inline.c (want_early_inline_function_p): Do not estimate
1632 edge growth when callee function is very large.
1633 * ipa-inline.h (estimate_min_edge_growth): New.
1634
1635 2019-11-20 Jan Hubicka <jh@suse.cz>
1636
1637 * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Allow
1638 negative time in calls summary; correct roundoff errors
1639 leading to negative times.
1640 (ipa_merge_fn_summary_after_inlining): Update calls size time table
1641 if present.
1642 (ipa_update_overall_fn_summary): Add RESET parameter.
1643 * ipa-fnsummary.h (ipa_update_overall_fn_summary): Update prototype.
1644 * ipa-inline-transform.c (inline_call): Enable incremental updates.
1645
1646 2019-11-20 Richard Sandiford <richard.sandiford@arm.com>
1647
1648 * tree-vect-slp.c (vect_schedule_slp_instance): Restore stmt
1649 def types for two-operation SLP.
1650
1651 2019-11-20 Richard Sandiford <richard.sandiford@arm.com>
1652
1653 PR testsuite/92366
1654 * doc/sourcebuild.texi (vect_char_add): Document.
1655
1656 2019-11-20 Alexandre Oliva <oliva@adacore.com>
1657
1658 * function.h (CALLEE_FROM_CGRAPH_P): Remove.
1659 * function.c (record_final_call): Record even calls that might
1660 have been in the cgraph.
1661 * toplev.c (dump_final_node_vcg): Skip iteration over cgraph
1662 callees.
1663
1664 2019-11-20 Janne Blomqvist <jb@gcc.gnu.org>
1665
1666 * configure.ac: Use https for gcc.gnu.org
1667 * configure: Regenerated.
1668 * doc/install.texi: Use https for gcc.gnu.org.
1669 * doc/sourcebuild.texi: Likewise.
1670
1671 2019-11-20 Julian Brown <julian@codesourcery.com>
1672
1673 * config/gcn/gcn.c (gcn_asm_output_symbol_ref): Handle null cfun.
1674
1675 2019-11-20 Jan Hubicka <jh@suse.cz>
1676
1677 * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Add CALL
1678 parameter and update call_size_time_table.
1679 (ipa_fn_summary::max_size_time_table_size): New constant.
1680 (estimate_calls_size_and_time_1): Break out from ...
1681 (estimate_calls_size_and_time): ... here; implement summary production.
1682 (summarize_calls_size_and_time): New function.
1683 (ipa_call_context::estimate_size_and_time): Bypass
1684 estimate_calls_size_and_time for leaf functions.
1685 (ipa_update_overall_fn_summary): Likewise.
1686 * ipa-fnsummary.h (call_size_time_table): New.
1687 (ipa_fn_summary::account_size_time): Update prototype.
1688
1689 2019-11-20 Joseph Myers <joseph@codesourcery.com>
1690
1691 * doc/invoke.texi (-Wc11-c2x-compat): Document.
1692
1693 2019-11-20 Wilco Dijkstra <wdijkstr@arm.com>
1694
1695 PR85678
1696 * common.opt (fcommon): Change init to 1.
1697 * doc/invoke.texi (-fcommon): Update documentation.
1698
1699 2019-11-20 Jan Hubicka <jh@suse.cz>
1700
1701 * fibonacci_heap.h (fibonacci_heap<K,V>::consolidate): Turn auto_vec
1702 to ordinary array.
1703
1704 2019-11-20 Jan Hubicka <jh@suse.cz>
1705
1706 * fibonacci_heap.h (fibonacci_heap<K,V>::fibonacci_heap):
1707 Add allocator parameter.
1708 (fibonacci_heap<K,V>::~fibonacci_heap): Optimize destruction.
1709 (fibonacci_heap<K,V>::m_allocator): New.
1710 (fibonacci_heap<K,V>::m_own_allocator): New.
1711 (fibonacci_heap<K,V>::insert): Use allocator.
1712 (fibonacci_heap<K,V>::extract_min): Likewise.
1713 (fibonacci_heap<K,V>::union_with): Assert that both heaps share
1714 allocator.
1715 (fibonacci_heap<K,V>::consolidate): Allocate constant sized vector
1716 on stack.
1717 * fibonacci_heap.c: Include alloc-pool
1718 (test_empty_heap): Initialize allocator.
1719 (test_union): Likewise.
1720 * bb-reorder.c: Include alloc-pool.h.
1721 * tracer.c: Inlclude alloc-pool.h.
1722
1723 2019-11-20 Jan Hubicka <jh@suse.cz>
1724
1725 * lto-streamer-out.c (DFS::sccstack): Turn into auto-vec.
1726 Preallocate for 32 entries.
1727 (DFS::worklist): Likewise.
1728 (DFS::DFS): Do not initialize sccstack and worklist.
1729 (DFS::~DFS): Do not release sccstack.
1730
1731 2019-11-20 Segher Boessenkool <segher@kernel.crashing.org>
1732
1733 PR target/92573
1734 * config/rs6000/dfp.md (dfptstsfi_<code>_<mode> for DFP_TEST and DDTD):
1735 Handle UNORDERED if !HONOR_NANS.
1736
1737 2019-11-20 Jan Hubicka <jh@suse.cz>
1738
1739 * ipa-inline.c (wrapper_heuristics_may_apply): Break out from ...
1740 (edge_badness): ... here.
1741 (inline_small_functions): Use monotonicity of badness calculation
1742 to avoid redundant updates.
1743
1744 2019-11-20 Richard Biener <rguenther@suse.de>
1745
1746 * tree-vect-slp.c (vect_analyze_slp_instance): Dump
1747 constructors we are actually analyzing.
1748 (vect_slp_check_for_constructors): Do not vectorize uniform
1749 constuctors, do not dump here.
1750
1751 2019-11-20 Richard Biener <rguenther@suse.de>
1752
1753 PR tree-optimization/92537
1754 * tree-vect-slp.c (vect_analyze_slp_instance): Move CTOR
1755 vectorization validity check...
1756 (vect_slp_analyze_operations): ... here.
1757
1758 2019-11-20 Claudiu Zissulescu <claziss@synopsys.com>
1759
1760 * config/arc/arc-protos.h (make_pass_arc_ifcvt): Declare.
1761 (make_pass_arc_predicate_delay_insns): Likewise.
1762 * config/arc/arc.c (class pass_arc_ifcvt): Reformat text, add gate
1763 method, remove clone.
1764 (class pass_arc_predicate_delay_insns): Likewise.
1765 (arc_init): Remove registering of ARC specific passes.
1766 * config/arc/t-arc (PASSES_EXTRA): Add arc-passes.def.
1767 * config/arc/arc-passes.def: New file.
1768
1769 2019-11-20 Jakub Jelinek <jakub@redhat.com>
1770
1771 PR middle-end/90840
1772 * expmed.c (store_bit_field_1): Handle the case where op0 is not a MEM
1773 and has a mode that doesn't have corresponding integral type.
1774
1775 PR target/90867
1776 * config/i386/i386-options.c (ix86_valid_target_attribute_tree): Don't
1777 clear opts->x_ix86_isa_flags{,2} here...
1778 (ix86_valid_target_attribute_inner_p): ... but here when seeing
1779 arch=. Also clear opts->x_ix86_isa_flags{,2}_explicit.
1780
1781 PR c/90898
1782 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Remove
1783 assertion.
1784 (insert_clobbers_for_var): Fix a typo in function comment.
1785
1786 2019-11-20 Jiangning Liu <jiangning.liu@amperecomputing.com>
1787 Jakub Jelinek <jakub@redhat.com>
1788
1789 PR middle-end/91195
1790 * tree-ssa-phiopt.c (cond_store_replacement): Move lhs unsharing
1791 earlier. Set TREE_NO_WARNING on the rhs1 of the artificially added
1792 load.
1793
1794 2019-11-20 Georg-Johann Lay <avr@gjlay.de>
1795
1796 Make 0-series device specs work with older versions of avr-gcc.
1797
1798 PR target/92545
1799 * config/avr/specs.h (LINK_SPEC) <%(link_pm_base_address)>: Remove.
1800 * config/avr/gen-avr-mmcu-specs.c (print_mcu)
1801 <*link_pm_base_address>: Don't write spec.
1802 <*link_arch>: Add --defsym=__RODATA_PM_OFFSET__= as needed.
1803
1804 2019-11-20 Richard Biener <rguenther@suse.de>
1805
1806 PR c/92088
1807 * builtins.c (compute_objsize): Deal with VLAs.
1808
1809 2019-11-19 Pat Haugen <pthaugen@us.ibm.com>
1810
1811 * config/rs6000/rs6000.c (move_to_end_of_ready): New, factored out
1812 from common code.
1813 (power6_sched_reorder2): Factored out from rs6000_sched_reorder2,
1814 call new function.
1815 (power9_sched_reorder2): Call new function.
1816 (rs6000_sched_reorder2): Likewise.
1817
1818 2019-11-18 Jan Hubicka <jh@suse.cz>
1819
1820 * ipa-fnsummary.c (estimate_edge_size_and_time): Drop parameter PROB.
1821 (estimate_calls_size_and_time): Update.
1822
1823 2019-11-18 Jan Hubicka <jh@suse.cz>
1824
1825 * ipa-inline.c (inlining_speedup): New function.
1826 (edge_badness): Use it.
1827
1828 2019-11-19 Zoran Jovanovic <zoran.jovanovic@mips.com>
1829 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
1830
1831 * config/mips/mips-msa.md (msa_<msabr>_<msafmt_f>, msa_<msabr>_v_<msafmt_f>):
1832 Mark as not having "likely" version.
1833 * config/mips/mips.md (insn_count): The simd_div instruction with
1834 TARGET_CHECK_ZERO_DIV consists of 3 instructions.
1835 (can_delay): Exclude simd_branch.
1836 (defile_delay *): Add simd_branch instructions.
1837 They have one regular delay slot.
1838
1839 2019-11-19 Richard Sandiford <richard.sandiford@arm.com>
1840
1841 Revert:
1842 2019-11-18 Richard Sandiford <richard.sandiford@arm.com>
1843
1844 * cse.c (cse_insn): Delete no-op register moves too.
1845 * simplify-rtx.c (comparison_to_mask): Handle unsigned comparisons.
1846 Take a second comparison to control the value for NE.
1847 (mask_to_comparison): Handle unsigned comparisons.
1848 (simplify_logical_relational_operation): Likewise. Update call
1849 to comparison_to_mask. Handle AND if !HONOR_NANs.
1850 (simplify_binary_operation_1): Call the above for AND too.
1851
1852 2019-11-19 Martin Liska <mliska@suse.cz>
1853
1854 * toplev.c (general_init): Move the call...
1855 (toplev::main): ... here as we need init_options_struct
1856 being called.
1857
1858 2019-11-19 Wilco Dijkstra <wdijkstr@arm.com>
1859
1860 PR target/79262
1861 * config/aarch64/aarch64.c (generic_vector_cost): Adjust
1862 vec_to_scalar_cost.
1863
1864 2019-11-19 Wilco Dijkstra <wdijkstr@arm.com>
1865
1866 * config/arm/arm-cpus.in (armv7): Set tune to Cortex-A53.
1867 (armv7-a): Likewise.
1868 (armv7ve): Likewise.
1869
1870 2019-11-19 Richard Biener <rguenther@suse.de>
1871
1872 PR tree-optimization/92581
1873 * tree-vect-loop.c (vect_create_epilog_for_reduction): For
1874 condition reduction chains gather all conditions involved
1875 for computing the index reduction vector.
1876
1877 2019-11-19 Dennis Zhang <dennis.zhang@arm.com>
1878
1879 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): Add
1880 AARCH64_MEMTAG_BUILTIN_START, AARCH64_MEMTAG_BUILTIN_IRG,
1881 AARCH64_MEMTAG_BUILTIN_GMI, AARCH64_MEMTAG_BUILTIN_SUBP,
1882 AARCH64_MEMTAG_BUILTIN_INC_TAG, AARCH64_MEMTAG_BUILTIN_SET_TAG,
1883 AARCH64_MEMTAG_BUILTIN_GET_TAG, and AARCH64_MEMTAG_BUILTIN_END.
1884 (aarch64_init_memtag_builtins): New.
1885 (AARCH64_INIT_MEMTAG_BUILTINS_DECL): New macro.
1886 (aarch64_general_init_builtins): Call aarch64_init_memtag_builtins.
1887 (aarch64_expand_builtin_memtag): New.
1888 (aarch64_general_expand_builtin): Call aarch64_expand_builtin_memtag.
1889 (AARCH64_BUILTIN_SUBCODE): New macro.
1890 (aarch64_resolve_overloaded_memtag): New.
1891 (aarch64_resolve_overloaded_builtin_general): New. Call
1892 aarch64_resolve_overloaded_memtag to handle overloaded MTE builtins.
1893 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
1894 __ARM_FEATURE_MEMORY_TAGGING when enabled.
1895 (aarch64_resolve_overloaded_builtin): Call
1896 aarch64_resolve_overloaded_builtin_general.
1897 * config/aarch64/aarch64-protos.h
1898 (aarch64_resolve_overloaded_builtin_general): New declaration.
1899 * config/aarch64/aarch64.h (AARCH64_ISA_MEMTAG): New macro.
1900 (TARGET_MEMTAG): Likewise.
1901 * config/aarch64/aarch64.md (UNSPEC_GEN_TAG): New unspec.
1902 (UNSPEC_GEN_TAG_RND, and UNSPEC_TAG_SPACE): Likewise.
1903 (irg, gmi, subp, addg, ldg, stg): New instructions.
1904 * config/aarch64/arm_acle.h (__arm_mte_create_random_tag): New macro.
1905 (__arm_mte_exclude_tag, __arm_mte_ptrdiff): Likewise.
1906 (__arm_mte_increment_tag, __arm_mte_set_tag): Likewise.
1907 (__arm_mte_get_tag): Likewise.
1908 * config/aarch64/predicates.md (aarch64_memtag_tag_offset): New.
1909 (aarch64_granule16_uimm6, aarch64_granule16_simm9): New.
1910 * config/arm/types.md (memtag): New.
1911 * doc/invoke.texi (-memtag): Update description.
1912
1913 2019-11-19 Richard Henderson <richard.henderson@linaro.org>
1914
1915 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
1916 to define __GCC_ASM_FLAG_OUTPUTS__.
1917 * config/arm/arm.c (thumb1_md_asm_adjust): New function.
1918 (arm_option_params_internal): Swap out targetm.md_asm_adjust
1919 depending on TARGET_THUMB1.
1920 * doc/extend.texi (FlagOutputOperands): Document thumb1 restriction.
1921
1922 2019-11-19 Jakub Jelinek <jakub@redhat.com>
1923
1924 PR target/92549
1925 * config/i386/i386.md (peephole2 for *swap<mode>): New peephole2.
1926
1927 PR middle-end/91450
1928 * internal-fn.c (expand_mul_overflow): For s1 * s2 -> ur, if one
1929 operand is negative and one non-negative, compare the non-negative
1930 one against 0 rather than comparing s1 & s2 against 0. Otherwise,
1931 don't compare (s1 & s2) == 0, but compare separately both s1 == 0
1932 and s2 == 0, unless one of them is known to be negative. Remove
1933 tem2 variable, use tem where tem2 has been used before.
1934
1935 2019-11-19 Eric Botcazou <ebotcazou@adacore.com>
1936
1937 * doc/invoke.texi (-gno-internal-reset-location-views): Fix typo.
1938
1939 2019-11-19 Jakub Jelinek <jakub@redhat.com>
1940
1941 PR tree-optimization/92557
1942 * omp-low.c (omp_clause_aligned_alignment): Punt if TYPE_MODE is not
1943 vmode rather than asserting it always is.
1944
1945 2019-11-19 Richard Biener <rguenther@suse.de>
1946
1947 PR tree-optimization/92554
1948 * tree-vect-loop.c (vect_create_epilog_for_reduction): Look
1949 for the actual condition stmt and deal with sign-changes.
1950
1951 2019-11-19 Richard Biener <rguenther@suse.de>
1952
1953 PR tree-optimization/92555
1954 * tree-vect-loop.c (vect_update_vf_for_slp): Also scan PHIs
1955 for non-SLP stmts.
1956
1957 2019-11-19 Martin Liska <mliska@suse.cz>
1958
1959 PR bootstrap/92540
1960 * config/riscv/riscv.c (riscv_address_insns): Initialize
1961 addr in order to remove boostrap -Wmaybe-uninitialized
1962 error.
1963
1964 2019-11-18 Martin Sebor <msebor@redhat.com>
1965
1966 PR tree-optimization/92493
1967 * gimple-ssa-sprintf.c (get_origin_and_offset): Remove spurious
1968 assignment.
1969
1970 2019-11-18 Giuliano Belinassi <giuliano.belinassi@usp.br>
1971
1972 * cfgloop.c (get_loop_body_in_custom_order): New.
1973 * cfgloop.h (get_loop_body_in_custom_order): New prototype.
1974 * tree-loop-distribution.c (class loop_distribution): New.
1975 (bb_top_order_cmp): Remove.
1976 (bb_top_order_cmp_r): New.
1977 (create_rdg_vertices): Move into class loop_distribution.
1978 (stmts_from_loop): Same as above.
1979 (update_for_merge): Same as above.
1980 (partition_merge_into): Same as above.
1981 (get_data_dependence): Same as above.
1982 (data_dep_in_cycle_p): Same as above.
1983 (update_type_for_merge): Same as above.
1984 (build_rdg_partition_for-vertex): Same as above.
1985 (classify_builtin_ldst): Same as above.
1986 (classify_partition): Same as above.
1987 (share_memory_accesses): Same as above.
1988 (rdg_build_partitions): Same as above.
1989 (pg_add_dependence_edges): Same as above.
1990 (build_partition_graph): Same as above.
1991 (merge_dep_scc_partitions): Same as above.
1992 (break_alias_scc_partitions): Same as above.
1993 (finalize_partitions): Same as above.
1994 (distribute_loop): Same as above.
1995 (bb_top_order_init): New method
1996 (bb_top_order_destroy): New method.
1997 (get_bb_top_order_index_size): New method.
1998 (get_bb_top_order_index_index): New method.
1999 (get_bb_top_order_index_index): New method.
2000 (loop_distribution::execute): New method.
2001 (pass_loop_distribution::execute): Instantiate loop_distribution.
2002
2003 2019-11-18 Jan Hubicka <jh@suse.cz>
2004
2005 PR ipa/92508
2006 * ipa-inline.c (inline_small_functions): Add new edges after reseting
2007 caches.
2008 * ipa-inline-analysis.c (do_estimate_edge_time): Fix sanity check.
2009
2010 2019-11-18 Richard Sandiford <richard.sandiford@arm.com>
2011
2012 * doc/sourcebuild.texi (vect_check_ptrs): Document.
2013 * optabs.def (check_raw_ptrs_optab, check_war_ptrs_optab): New optabs.
2014 * doc/md.texi: Document them.
2015 * internal-fn.def (IFN_CHECK_RAW_PTRS, IFN_CHECK_WAR_PTRS): New
2016 internal functions.
2017 * internal-fn.h (internal_check_ptrs_fn_supported_p): Declare.
2018 * internal-fn.c (check_ptrs_direct): New macro.
2019 (expand_check_ptrs_optab_fn): Likewise.
2020 (direct_check_ptrs_optab_supported_p): Likewise.
2021 (internal_check_ptrs_fn_supported_p): New fuction.
2022 * tree-data-ref.c: Include internal-fn.h.
2023 (create_ifn_alias_checks): New function.
2024 (create_intersect_range_checks): Use it.
2025 * config/aarch64/iterators.md (SVE2_WHILE_PTR): New int iterator.
2026 (optab, cmp_op): Handle it.
2027 (raw_war, unspec): New int attributes.
2028 * config/aarch64/aarch64.md (UNSPEC_WHILERW, UNSPEC_WHILE_WR): New
2029 constants.
2030 * config/aarch64/predicates.md (aarch64_bytes_per_sve_vector_operand):
2031 New predicate.
2032 * config/aarch64/aarch64-sve2.md (check_<raw_war>_ptrs<mode>): New
2033 expander.
2034 (@aarch64_sve2_while<cmp_op><GPI:mode><PRED_ALL:mode>_ptest): New
2035 pattern.
2036
2037 2019-11-18 Richard Sandiford <richard.sandiford@arm.com>
2038
2039 * tree.c (build_vector_from_ctor): Directly return a zero vector for
2040 empty constructors.
2041
2042 2019-11-18 Richard Sandiford <richard.sandiford@arm.com>
2043
2044 * cse.c (cse_insn): Delete no-op register moves too.
2045 * simplify-rtx.c (comparison_to_mask): Handle unsigned comparisons.
2046 Take a second comparison to control the value for NE.
2047 (mask_to_comparison): Handle unsigned comparisons.
2048 (simplify_logical_relational_operation): Likewise. Update call
2049 to comparison_to_mask. Handle AND if !HONOR_NANs.
2050 (simplify_binary_operation_1): Call the above for AND too.
2051
2052 2019-11-18 Richard Sandiford <richard.sandiford@arm.com>
2053
2054 * fold-const.c (native_encode_vector): Turn into a wrapper function,
2055 splitting the main code out into...
2056 (native_encode_vector_part): ...this new function.
2057 (native_decode_vector_tree): New function.
2058 (fold_view_convert_vector_encoding): Likewise.
2059 (fold_view_convert_expr): Use it for converting VECTOR_CSTs
2060 to VECTOR_TYPEs.
2061
2062 2019-11-18 Richard Sandiford <richard.sandiford@arm.com>
2063
2064 * tree-data-ref.c (create_intersect_range_checks_index): If the
2065 alias pair describes simple WAW and WAR dependencies, just check
2066 whether the first B access overlaps later A accesses.
2067 (create_waw_or_war_checks): New function that performs the same
2068 optimization on addresses.
2069 (create_intersect_range_checks): Call it.
2070
2071 2019-11-18 Richard Sandiford <richard.sandiford@arm.com>
2072
2073 * lra-constraints.c (valid_address_p): Take the operand and a
2074 constraint as argument. If the operand is a MEM and the constraint
2075 is a memory constraint, check whether the eliminated form of the
2076 MEM already satisfies the constraint.
2077 (process_address_1): Update calls accordingly.
2078
2079 2019-11-18 Tom Tromey <tromey@adacore.com>
2080
2081 * doc/tm.texi: Rebuild.
2082 * doc/tm.texi.in (Misc): Don't document MODIFY_JNI_METHOD_CALL.
2083 * config/i386/cygming.h (MODIFY_JNI_METHOD_CALL): Don't define.
2084
2085 2019-11-18 Richard Biener <rguenther@suse.de>
2086
2087 PR tree-optimization/92516
2088 * tree-vect-slp.c (vect_analyze_slp_instance): Add bst_map
2089 argument, hoist bst_map creation/destruction to ...
2090 (vect_analyze_slp): ... here, forming a true graph with
2091 SLP instances being the entries.
2092 (vect_detect_hybrid_slp_stmts): Remove wrapper.
2093 (vect_detect_hybrid_slp): Use one visited set for all
2094 graph entries.
2095 (vect_slp_analyze_node_operations): Simplify visited/lvisited
2096 to hash-sets of slp_tree.
2097 (vect_slp_analyze_operations): Likewise.
2098 (vect_bb_slp_scalar_cost): Remove wrapper.
2099 (vect_bb_vectorization_profitable_p): Use one visited set for
2100 all graph entries.
2101 (vect_schedule_slp_instance): Elide bst_map use.
2102 (vect_schedule_slp): Likewise.
2103
2104 2019-11-18 Richard Biener <rguenther@suse.de>
2105
2106 * tree-vect-slp.c (vect_analyze_slp_instance): When a CTOR
2107 was vectorized with just external refs fail.
2108
2109 2019-11-18 Martin Liska <mliska@suse.cz>
2110
2111 PR ipa/92525
2112 * ipa-icf.c (sem_function::init): Unset m_checker
2113 at the end of the function.
2114
2115 2019-11-18 Richard Biener <rguenther@suse.de>
2116
2117 PR tree-optimization/92558
2118 * tree-vect-loop.c (vect_create_epilog_for_reduction): When
2119 reducting the width of a reduction vector def update new_phis.
2120
2121 2019-11-18 Szabolcs Nagy <szabolcs.nagy@arm.com>
2122
2123 * configure.ac (gcc_cv_target_ldbl128): Set for powerpc*-*-linux-musl*
2124 and s390*-*-linux-musl* targets.
2125 * configure: Regenerate.
2126
2127 2019-11-18 Szabolcs Nagy <szabolcs.nagy@arm.com>
2128
2129 * config/s390/linux.h (MUSL_DYNAMIC_LINKER32): Define.
2130 (MUSL_DYNAMIC_LINKER64): Define.
2131
2132 2019-11-18 Martin Liska <mliska@suse.cz>
2133
2134 * dbgcnt.c (dbg_cnt_set_limit_by_name): Provide error
2135 message for an unknown counter.
2136 (dbg_cnt_process_single_pair): Support 0 as minimum value.
2137 (dbg_cnt_process_opt): Remove unreachable code.
2138
2139 2019-11-18 Martin Liska <mliska@suse.cz>
2140
2141 PR ipa/92529
2142 * ipa-icf-gimple.c (func_checker::compare_gimple_assign):
2143 Compare LHS types of NOP_EXPR.
2144
2145 2019-11-18 Matthew Malcomson <matthew.malcomson@arm.com>
2146
2147 * run-rtl-passes.c (run_rtl_passes): Accept and handle empty
2148 "initial_pass_name" argument -- by running "*clean_state" pass.
2149 Also free the "initial_pass_name" when done.
2150
2151 2019-11-18 Richard Biener <rguenther@suse.de>
2152
2153 PR rtl-optimization/92462
2154 * alias.c (find_base_term): Restrict the look through ANDs.
2155 (find_base_value): Likewise.
2156
2157 2019-11-18 Georg-Johann Lay <avr@gjlay.de>
2158
2159 Add support for AVR devices from the 0-series.
2160
2161 PR target/92545
2162 * config/avr/avr-arch.h (avr_mcu_t) <flash_pm_offset>: New field.
2163 * config/avr/avr-devices.c (avr_mcu_types): Adjust initializers.
2164 * config/avr/avr-mcus.def (AVR_MCU): Add respective field.
2165 * config/avr/specs.h (LINK_SPEC) <%(link_pm_base_address)>: Add.
2166 * config/avr/gen-avr-mmcu-specs.c (print_mcu)
2167 <*cpp, *cpp_mcu, *cpp_avrlibc, *link_pm_base_address>: Emit code
2168 for spec definitions.
2169 * doc/avr-mmcu.texi: Regenerate.
2170
2171 2019-11-18 Hongtao Liu <hongtao.liu@intel.com>
2172
2173 PR target/92448
2174 * config/i386/i386-expand.c (ix86_expand_set_or_cpymem):
2175 Replace TARGET_AVX128_OPTIMAL with TARGET_AVX256_SPLIT_REGS.
2176 * config/i386/i386-option.c (ix86_vec_cost): Ditto.
2177 (ix86_reassociation_width): Ditto.
2178 * config/i386/i386-options.c (ix86_option_override_internal):
2179 Replace TARGET_AVX128_OPTIAML with
2180 ix86_tune_features[X86_TUNE_AVX128_OPTIMAL]
2181 * config/i386/i386.h (TARGET_AVX256_SPLIT_REGS): New macro.
2182 (TARGET_AVX128_OPTIMAL): Deleted.
2183 * config/i386/x86-tune.def (X86_TUNE_AVX256_SPLIT_REGS): New
2184 DEF_TUNE.
2185
2186 2019-11-16 Segher Boessenkool <segher@kernel.crashing.org>
2187
2188 * config/rs6000/rs6000.md (cceq_ior_compare): Rename to...
2189 (@cceq_ior_compare_<mode> for GPR): ... this. Allow GPR instead of
2190 just SI.
2191 (cceq_rev_compare): Rename to...
2192 (@cceq_rev_compare_<mode> for GPR): ... this. Allow GPR instead of
2193 just SI.
2194 (define_split for <bd>tf_<mode>): Add SImode first argument to
2195 gen_cceq_ior_compare.
2196
2197 2019-11-16 Segher Boessenkool <segher@kernel.crashing.org>
2198
2199 * common/config/powerpcspe: Delete.
2200
2201 2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
2202
2203 * config/aarch64/aarch64-sve.md (aarch64_wrffr): Wrap the FFRT
2204 output in UNSPEC_WRFFR.
2205
2206 2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
2207
2208 * tree-data-ref.c (create_intersect_range_checks_index): Rewrite
2209 the index tests to have the form (unsigned T) (B - A + bias) <= limit.
2210
2211 2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
2212
2213 * tree-data-ref.c (create_intersect_range_checks_index)
2214 (create_intersect_range_checks): Print dump messages.
2215
2216 2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
2217
2218 * tree-data-ref.c (dump_alias_pair): New function.
2219 (prune_runtime_alias_test_list): Use it to dump each merged alias pair.
2220
2221 2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
2222
2223 * tree-data-ref.h (DR_ALIAS_MIXED_STEPS): New flag.
2224 * tree-data-ref.c (prune_runtime_alias_test_list): Set it when
2225 merging data references with different steps.
2226 (create_intersect_range_checks_index): Take a
2227 dr_with_seg_len_pair_t instead of two dr_with_seg_lens.
2228 Bail out if DR_ALIAS_MIXED_STEPS is set.
2229 (create_intersect_range_checks): Take a dr_with_seg_len_pair_t
2230 instead of two dr_with_seg_lens. Update call to
2231 create_intersect_range_checks_index.
2232 (create_runtime_alias_checks): Update call accordingly.
2233
2234 2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
2235
2236 * tree-data-ref.h (DR_ALIAS_RAW, DR_ALIAS_WAR, DR_ALIAS_WAW)
2237 (DR_ALIAS_ARBITRARY, DR_ALIAS_SWAPPED, DR_ALIAS_UNSWAPPED): New flags.
2238 (dr_with_seg_len_pair_t::sequencing): New enum.
2239 (dr_with_seg_len_pair_t::flags): New member variable.
2240 (dr_with_seg_len_pair_t::dr_with_seg_len_pair_t): Take a sequencing
2241 parameter and initialize the flags member variable.
2242 * tree-loop-distribution.c (compute_alias_check_pairs): Update
2243 call accordingly.
2244 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
2245 Ensure the two data references in an alias pair are in statement
2246 order, if there is a defined order.
2247 * tree-data-ref.c (prune_runtime_alias_test_list): Use
2248 DR_ALIAS_SWAPPED and DR_ALIAS_UNSWAPPED to record whether we've
2249 swapped the references in a dr_with_seg_len_pair_t. OR together
2250 the flags when merging two dr_with_seg_len_pair_ts. After merging,
2251 try to restore the original dr_with_seg_len order, updating the
2252 flags if that fails.
2253
2254 2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
2255
2256 * tree-data-ref.c (prune_runtime_alias_test_list): Delay
2257 swapping the dr_as based on init values until we've decided
2258 whether to merge them.
2259
2260 2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
2261
2262 * tree-data-ref.c (prune_runtime_alias_test_list): Sort the
2263 two accesses in each dr_with_seg_len_pair_t before trying to
2264 combine separate dr_with_seg_len_pair_ts.
2265 * tree-loop-distribution.c (compute_alias_check_pairs): Don't do
2266 that here.
2267 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
2268
2269 2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
2270
2271 * config/aarch64/aarch64-sve.md
2272 (scatter_store<SVE_FULL_SD:mode><v_int_equiv>): Extend to...
2273 (scatter_store<SVE_24:mode><v_int_container>): ...this.
2274 (mask_scatter_store<SVE_FULL_S:mode><v_int_equiv>): Extend to...
2275 (mask_scatter_store<SVE_4:mode><v_int_equiv>): ...this.
2276 (mask_scatter_store<SVE_FULL_D:mode><v_int_equiv>): Extend to...
2277 (mask_scatter_store<SVE_2:mode><v_int_equiv>): ...this.
2278 (*mask_scatter_store<mode><v_int_container>_<su>xtw_unpacked): New
2279 pattern.
2280 (*mask_scatter_store<SVE_FULL_D:mode><v_int_equiv>_sxtw): Extend to...
2281 (*mask_scatter_store<SVE_2:mode><v_int_equiv>_sxtw): ...this.
2282 (*mask_scatter_store<SVE_FULL_D:mode><v_int_equiv>_uxtw): Extend to...
2283 (*mask_scatter_store<SVE_2:mode><v_int_equiv>_uxtw): ...this.
2284
2285 2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
2286
2287 * config/aarch64/iterators.md (SVE_2BHSI, SVE_2HSDI, SVE_4BHI)
2288 (SVE_4HSI): New mode iterators.
2289 (ANY_EXTEND2): New code iterator.
2290 * config/aarch64/aarch64-sve.md
2291 (@aarch64_gather_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>):
2292 Extend to...
2293 (@aarch64_gather_load_<ANY_EXTEND:optab><SVE_4HSI:mode><SVE_4BHI:mode>):
2294 ...this, handling extension to partial modes as well as full modes.
2295 Describe the extension as a predicated rather than unpredicated
2296 extension.
2297 (@aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>):
2298 Likewise extend to...
2299 (@aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>):
2300 ...this, making the same adjustments.
2301 (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw):
2302 Likewise extend to...
2303 (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>_sxtw)
2304 ...this, making the same adjustments.
2305 (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw):
2306 Likewise extend to...
2307 (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>_uxtw)
2308 ...this, making the same adjustments.
2309 (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>_<ANY_EXTEND2:su>xtw_unpacked):
2310 New pattern.
2311 (*aarch64_ldff1_gather<mode>_sxtw): Canonicalize to a constant
2312 extension predicate.
2313 (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
2314 (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
2315 (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw):
2316 Describe the extension as a predicated rather than unpredicated
2317 extension.
2318 (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw):
2319 Likewise. Canonicalize to a constant extension predicate.
2320 * config/aarch64/aarch64-sve-builtins-base.cc
2321 (svld1_gather_extend_impl::expand): Add an extra predicate for
2322 the extension.
2323 (svldff1_gather_extend_impl::expand): Likewise.
2324
2325 2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
2326
2327 * config/aarch64/iterators.md (SVE_24, SVE_2, SVE_4): New mode
2328 iterators.
2329 * config/aarch64/aarch64-sve.md
2330 (gather_load<SVE_FULL_SD:mode><v_int_equiv>): Extend to...
2331 (gather_load<SVE_24:mode><v_int_container>): ...this.
2332 (mask_gather_load<SVE_FULL_S:mode><v_int_equiv>): Extend to...
2333 (mask_gather_load<SVE_4:mode><v_int_container>): ...this.
2334 (mask_gather_load<SVE_FULL_D:mode><v_int_equiv>): Extend to...
2335 (mask_gather_load<SVE_2:mode><v_int_container>): ...this.
2336 (*mask_gather_load<SVE_2:mode><v_int_container>_<su>xtw_unpacked):
2337 New pattern.
2338 (*mask_gather_load<SVE_FULL_D:mode><v_int_equiv>_sxtw): Extend to...
2339 (*mask_gather_load<SVE_2:mode><v_int_equiv>_sxtw): ...this.
2340 Allow the nominal extension predicate to be different from the
2341 load predicate.
2342 (*mask_gather_load<SVE_FULL_D:mode><v_int_equiv>_uxtw): Extend to...
2343 (*mask_gather_load<SVE_2:mode><v_int_equiv>_uxtw): ...this.
2344
2345 2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
2346
2347 * config/aarch64/aarch64-sve.md
2348 (trunc<SVE_HSDI:mode><SVE_PARTIAL_I:mode>2): New pattern.
2349 * config/aarch64/aarch64.c (aarch64_integer_truncation_p): New
2350 function.
2351 (aarch64_sve_adjust_stmt_cost): Call it.
2352
2353 2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
2354
2355 * config/aarch64/aarch64-sve.md
2356 (@aarch64_load_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>):
2357 (@aarch64_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
2358 (@aarch64_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>):
2359 Combine into...
2360 (@aarch64_load_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>):
2361 ...this new pattern, handling extension to partial modes as well
2362 as full modes. Describe the extension as a predicated rather than
2363 unpredicated extension.
2364 (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>)
2365 (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
2366 (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>):
2367 Combine into...
2368 (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>):
2369 ...this new pattern, handling extension to partial modes as well
2370 as full modes. Describe the extension as a predicated rather than
2371 unpredicated extension.
2372 * config/aarch64/aarch64-sve-builtins.cc
2373 (function_expander::use_contiguous_load_insn): Add an extra
2374 predicate for extending loads.
2375 * config/aarch64/aarch64.c (aarch64_extending_load_p): New function.
2376 (aarch64_sve_adjust_stmt_cost): Likewise.
2377 (aarch64_add_stmt_cost): Use aarch64_sve_adjust_stmt_cost to adjust
2378 the cost of SVE vector stmts.
2379
2380 2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
2381
2382 * config/aarch64/iterators.md (SVE_HSDI): New mode iterator.
2383 (narrower_mask): Handle VNx4HI, VNx2HI and VNx2SI.
2384 * config/aarch64/aarch64-sve.md
2385 (<ANY_EXTEND:optab><SVE_PARTIAL_I:mode><SVE_HSDI:mode>2): New pattern.
2386 (*<ANY_EXTEND:optab><SVE_PARTIAL_I:mode><SVE_HSDI:mode>2): Likewise.
2387 (@aarch64_pred_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Update
2388 comment. Avoid new narrower_mask ambiguity.
2389 (@aarch64_cond_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Likewise.
2390 (*cond_uxt<mode>_2): Update comment.
2391 (*cond_uxt<mode>_any): Likewise.
2392
2393 2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
2394
2395 * config/aarch64/aarch64-modes.def: Define partial SVE vector
2396 float modes.
2397 * config/aarch64/aarch64-protos.h (aarch64_sve_pred_mode): New
2398 function.
2399 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle the
2400 new vector float modes.
2401 (aarch64_sve_container_bits): New function.
2402 (aarch64_sve_pred_mode): Likewise.
2403 (aarch64_get_mask_mode): Use it.
2404 (aarch64_sve_element_int_mode): Handle structure modes and partial
2405 modes.
2406 (aarch64_sve_container_int_mode): New function.
2407 (aarch64_vectorize_related_mode): Return SVE modes when given
2408 SVE modes. Handle partial modes, taking the preferred number
2409 of units from the size of the given mode.
2410 (aarch64_hard_regno_mode_ok): Allow partial modes to be stored
2411 in registers.
2412 (aarch64_expand_sve_ld1rq): Use the mode form of aarch64_sve_pred_mode.
2413 (aarch64_expand_sve_const_vector): Handle partial SVE vectors.
2414 (aarch64_split_sve_subreg_move): Use the mode form of
2415 aarch64_sve_pred_mode.
2416 (aarch64_secondary_reload): Handle partial modes in the same way
2417 as full big-endian vectors.
2418 (aarch64_vector_mode_supported_p): Allow partial SVE vectors.
2419 (aarch64_autovectorize_vector_modes): Try unpacked SVE vectors,
2420 merging with the Advanced SIMD modes. If two modes have the
2421 same size, try the Advanced SIMD mode first.
2422 (aarch64_simd_valid_immediate): Use the container rather than
2423 the element mode for INDEX constants.
2424 (aarch64_simd_vector_alignment): Make the alignment of partial
2425 SVE vector modes the same as their minimum size.
2426 (aarch64_evpc_sel): Use the mode form of aarch64_sve_pred_mode.
2427 * config/aarch64/aarch64-sve.md (mov<SVE_FULL:mode>): Extend to...
2428 (mov<SVE_ALL:mode>): ...this.
2429 (movmisalign<SVE_FULL:mode>): Extend to...
2430 (movmisalign<SVE_ALL:mode>): ...this.
2431 (*aarch64_sve_mov<mode>_le): Rename to...
2432 (*aarch64_sve_mov<mode>_ldr_str): ...this.
2433 (*aarch64_sve_mov<SVE_FULL:mode>_be): Rename and extend to...
2434 (*aarch64_sve_mov<SVE_ALL:mode>_no_ldr_str): ...this. Handle
2435 partial modes regardless of endianness.
2436 (aarch64_sve_reload_be): Rename to...
2437 (aarch64_sve_reload_mem): ...this and enable for little-endian.
2438 Use aarch64_sve_pred_mode to get the appropriate predicate mode.
2439 (@aarch64_pred_mov<SVE_FULL:mode>): Extend to...
2440 (@aarch64_pred_mov<SVE_ALL:mode>): ...this.
2441 (*aarch64_sve_mov<SVE_FULL:mode>_subreg_be): Extend to...
2442 (*aarch64_sve_mov<SVE_ALL:mode>_subreg_be): ...this.
2443 (@aarch64_sve_reinterpret<SVE_FULL:mode>): Extend to...
2444 (@aarch64_sve_reinterpret<SVE_ALL:mode>): ...this.
2445 (*aarch64_sve_reinterpret<SVE_FULL:mode>): Extend to...
2446 (*aarch64_sve_reinterpret<SVE_ALL:mode>): ...this.
2447 (maskload<SVE_FULL:mode><vpred>): Extend to...
2448 (maskload<SVE_ALL:mode><vpred>): ...this.
2449 (maskstore<SVE_FULL:mode><vpred>): Extend to...
2450 (maskstore<SVE_ALL:mode><vpred>): ...this.
2451 (vec_duplicate<SVE_FULL:mode>): Extend to...
2452 (vec_duplicate<SVE_ALL:mode>): ...this.
2453 (*vec_duplicate<SVE_FULL:mode>_reg): Extend to...
2454 (*vec_duplicate<SVE_ALL:mode>_reg): ...this.
2455 (sve_ld1r<SVE_FULL:mode>): Extend to...
2456 (sve_ld1r<SVE_ALL:mode>): ...this.
2457 (vec_series<SVE_FULL_I:mode>): Extend to...
2458 (vec_series<SVE_I:mode>): ...this.
2459 (*vec_series<SVE_FULL_I:mode>_plus): Extend to...
2460 (*vec_series<SVE_I:mode>_plus): ...this.
2461 (@aarch64_pred_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Avoid
2462 new VPRED ambiguity.
2463 (@aarch64_cond_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Likewise.
2464 (add<SVE_FULL_I:mode>3): Extend to...
2465 (add<SVE_I:mode>3): ...this.
2466 * config/aarch64/iterators.md (SVE_ALL, SVE_I): New mode iterators.
2467 (Vetype, Vesize, VEL, Vel, vwcore): Handle partial SVE vector modes.
2468 (VPRED, vpred): Likewise.
2469 (Vctype): New iterator.
2470 (vw): Remove SVE modes.
2471
2472 2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
2473
2474 * config/aarch64/iterators.md (SVE_PARTIAL): Rename to...
2475 (SVE_PARTIAL_I): ...this.
2476 * config/aarch64/aarch64-sve.md: Apply the above renaming throughout.
2477
2478 2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
2479
2480 * config/aarch64/iterators.md (SVE_ALL): Rename to...
2481 (SVE_FULL): ...this.
2482 (SVE_I): Rename to...
2483 (SVE_FULL_I): ...this.
2484 (SVE_F): Rename to...
2485 (SVE_FULL_F): ...this.
2486 (SVE_BHSI): Rename to...
2487 (SVE_FULL_BHSI): ...this.
2488 (SVE_HSD): Rename to...
2489 (SVE_FULL_HSD): ...this.
2490 (SVE_HSDI): Rename to...
2491 (SVE_FULL_HSDI): ...this.
2492 (SVE_HSF): Rename to...
2493 (SVE_FULL_HSF): ...this.
2494 (SVE_SD): Rename to...
2495 (SVE_FULL_SD): ...this.
2496 (SVE_SDI): Rename to...
2497 (SVE_FULL_SDI): ...this.
2498 (SVE_SDF): Rename to...
2499 (SVE_FULL_SDF): ...this.
2500 (SVE_S): Rename to...
2501 (SVE_FULL_S): ...this.
2502 (SVE_D): Rename to...
2503 (SVE_FULL_D): ...this.
2504 * config/aarch64/aarch64-sve.md: Apply the above renaming throughout.
2505 * config/aarch64/aarch64-sve2.md: Likewise.
2506
2507 2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
2508
2509 * config/aarch64/aarch64.opt (--param=aarch64-sve-compare-costs):
2510 New option.
2511 * doc/invoke.texi: Document it.
2512 * config/aarch64/aarch64.c (aarch64_autovectorize_vector_modes):
2513 By default, return VECT_COMPARE_COSTS for SVE.
2514
2515 2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
2516
2517 * target.h (VECT_COMPARE_COSTS): New constant.
2518 * target.def (autovectorize_vector_modes): Return a bitmask of flags.
2519 * doc/tm.texi: Regenerate.
2520 * targhooks.h (default_autovectorize_vector_modes): Update accordingly.
2521 * targhooks.c (default_autovectorize_vector_modes): Likewise.
2522 * config/aarch64/aarch64.c (aarch64_autovectorize_vector_modes):
2523 Likewise.
2524 * config/arc/arc.c (arc_autovectorize_vector_modes): Likewise.
2525 * config/arm/arm.c (arm_autovectorize_vector_modes): Likewise.
2526 * config/i386/i386.c (ix86_autovectorize_vector_modes): Likewise.
2527 * config/mips/mips.c (mips_autovectorize_vector_modes): Likewise.
2528 * tree-vectorizer.h (_loop_vec_info::vec_outside_cost)
2529 (_loop_vec_info::vec_inside_cost): New member variables.
2530 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize them.
2531 (vect_better_loop_vinfo_p, vect_joust_loop_vinfos): New functions.
2532 (vect_analyze_loop): When autovectorize_vector_modes returns
2533 VECT_COMPARE_COSTS, try vectorizing the loop with each available
2534 vector mode and picking the one with the lowest cost.
2535 (vect_estimate_min_profitable_iters): Record the computed costs
2536 in the loop_vec_info.
2537
2538 2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
2539
2540 * tree-vectorizer.h (can_duplicate_and_interleave_p): Take an
2541 element type rather than an element mode.
2542 * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise.
2543 Use get_vectype_for_scalar_type to query the natural types
2544 for a given element type rather than basing everything on
2545 GET_MODE_SIZE (vinfo->vector_mode). Limit int_mode_for_size
2546 query to MAX_FIXED_MODE_SIZE.
2547 (duplicate_and_interleave): Update call accordingly.
2548 * tree-vect-loop.c (vectorizable_reduction): Likewise.
2549
2550 2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
2551
2552 * tree-vectorizer.h (vect_get_vector_types_for_stmt): Take an
2553 optional maximum nunits.
2554 (get_vectype_for_scalar_type): Likewise. Also declare a form that
2555 takes an slp_tree.
2556 (get_mask_type_for_scalar_type): Take an optional slp_tree.
2557 (vect_get_mask_type_for_stmt): Likewise.
2558 * tree-vect-data-refs.c (vect_analyze_data_refs): Don't store
2559 the vector type in STMT_VINFO_VECTYPE for BB vectorization.
2560 * tree-vect-patterns.c (vect_recog_bool_pattern): Use
2561 vect_get_vector_types_for_stmt instead of STMT_VINFO_VECTYPE
2562 to get an assumed vector type for data references.
2563 * tree-vect-slp.c (vect_update_shared_vectype): New function.
2564 (vect_update_all_shared_vectypes): Likewise.
2565 (vect_build_slp_tree_1): Pass the group size to
2566 vect_get_vector_types_for_stmt. Use vect_update_shared_vectype
2567 for BB vectorization.
2568 (vect_build_slp_tree_2): Call vect_update_all_shared_vectypes
2569 before building the vectof from scalars.
2570 (vect_analyze_slp_instance): Pass the group size to
2571 get_vectype_for_scalar_type.
2572 (vect_slp_analyze_node_operations_1): Don't recompute the vector
2573 types for BB vectorization here; just handle the case in which
2574 we deferred the choice for booleans.
2575 (vect_get_constant_vectors): Pass the slp_tree to
2576 get_vectype_for_scalar_type.
2577 * tree-vect-stmts.c (vect_prologue_cost_for_slp_op): Likewise.
2578 (vectorizable_call): Likewise.
2579 (vectorizable_simd_clone_call): Likewise.
2580 (vectorizable_conversion): Likewise.
2581 (vectorizable_shift): Likewise.
2582 (vectorizable_operation): Likewise.
2583 (vectorizable_comparison): Likewise.
2584 (vect_is_simple_cond): Take the slp_tree as argument and
2585 pass it to get_vectype_for_scalar_type.
2586 (vectorizable_condition): Update call accordingly.
2587 (get_vectype_for_scalar_type): Take a group_size argument.
2588 For BB vectorization, limit the the vector to that number
2589 of elements. Also define an overload that takes an slp_tree.
2590 (get_mask_type_for_scalar_type): Add an slp_tree argument and
2591 pass it to get_vectype_for_scalar_type.
2592 (vect_get_vector_types_for_stmt): Add a group_size argument
2593 and pass it to get_vectype_for_scalar_type. Don't use the
2594 cached vector type for BB vectorization if a group size is given.
2595 Handle data references in that case.
2596 (vect_get_mask_type_for_stmt): Take an slp_tree argument and
2597 pass it to get_mask_type_for_scalar_type.
2598
2599 2019-11-15 Jan Hubicka <hubicka@ucw.cz>
2600
2601 * ipa-inline.h (do_estimate_edge_time): Add nonspec_time
2602 parameter.
2603 (estimate_edge_time): Use it.
2604 * ipa-inline-analysis.c (do_estimate_edge_time): Add
2605 ret_nonspec_time parameter.
2606
2607 2019-11-15 Szabolcs Nagy <szabolcs.nagy@arm.com>
2608
2609 * config/m68k/linux.h (MUSL_DYNAMIC_LINKER): Define.
2610
2611 2019-11-15 Nick Clifton <nickc@redhat.com>
2612 Szabolcs Nagy <szabolcs.nagy@arm.com>
2613
2614 PR target/65649
2615 * config/microblaze/microblaze.c (print_operand): Print value as long.
2616
2617 2019-11-15 Jan Hubicka <hubicka@ucw.cz>
2618
2619 * ipa-inline.c (edge_badness, inline_small_functions): Revert
2620 accidental commit.
2621
2622 2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com>
2623
2624 * config/gcn/gcn.h (FIXED_REGISTERS): Unfix frame pointer.
2625 (CALL_USED_REGISTERS): Make frame pointer callee-saved.
2626
2627 2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com>
2628
2629 * config/gcn/gcn.c (MAX_NORMAL_SGPR_COUNT, MAX_NORMAL_VGPR_COUNT): New.
2630 (gcn_conditional_register_usage): Use constants in place of hard-coded
2631 values.
2632 (gcn_hsa_declare_function_name): Set lower bound for number of
2633 SGPRs/VGPRs in non-leaf kernels to MAX_NORMAL_SGPR_COUNT and
2634 MAX_NORMAL_VGPR_COUNT.
2635
2636 2019-11-15 Martin Jambor <mjambor@suse.cz>
2637
2638 * ipa-utils.h (ipa_remove_useless_jump_functions): Remove stray
2639 declaration.
2640
2641 2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com>
2642
2643 * config/gcn/gcn.c (default_requested_args): New.
2644 (gcn_parse_amdgpu_hsa_kernel_attribute): Initialize requested args
2645 set with default_requested_args.
2646 (gcn_conditional_register_usage): Limit register usage of non-kernel
2647 functions. Reassign fixed registers if a non-standard set of args is
2648 requested.
2649 * config/gcn/gcn.h (FIXED_REGISTERS): Fix registers according to ABI.
2650
2651 2019-11-15 Feng Xue <fxue@os.amperecomputing.com>
2652
2653 PR ipa/92528
2654 * ipa-prop.c (update_jump_functions_after_inlining): Invalidate
2655 aggregate jump function when inlined-to caller has no edge summary.
2656
2657 2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com>
2658
2659 * config/gcn/gcn.c (gcn_init_cumulative_args): Call reinit_regs.
2660
2661 2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com>
2662
2663 * config/gcn/gcn.c (gcn_expand_prologue): Remove initialization and
2664 prologue use of v0.
2665 (print_operand_address): Use v1 for zero vector offset.
2666
2667 2019-11-15 Richard Sandiford <richard.sandiford@arm.com>
2668
2669 PR tree-optimization/92515
2670 * tree-vect-stmts.c (vectorizable_shift): Record incompatible op1
2671 types when converting a vector/scalar shift into a vector/vector one,
2672 using tree_nop_conversion_p instead of useless_type_conversion_p.
2673 Move the conversion code to the transform block.
2674
2675 2019-11-15 Matthew Malcomson <matthew.malcomson@arm.com>
2676
2677 * read-rtl-function.c
2678 (function_reader::add_fixup_source_location): Take additional
2679 parameter of a column.
2680 (function_reader::maybe_read_location): Optionally parse column
2681 information and pass to add_fixup_source_location.
2682
2683 2019-11-15 Richard Biener <rguenther@suse.de>
2684
2685 PR tree-optimization/92512
2686 * tree-vect-loop.c (check_reduction_path): Fix operand index
2687 computability check. Add check for second use in COND_EXPRs.
2688
2689 2019-11-15 Richard Sandiford <richard.sandiford@arm.com>
2690
2691 PR target/92515
2692 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin): Use
2693 VIEW_CONVERT_EXPR to reinterpret vectors as different types.
2694
2695 2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com>
2696
2697 * config/gcn/gcn.c (gcn_regno_reg_class): Return VCC_CONDITIONAL_REG
2698 register class for VCC_LO and VCC_HI.
2699 (gcn_spill_class): Use SGPR_REGS to spill registers in
2700 VCC_CONDITIONAL_REG.
2701
2702 2019-11-15 Richard Biener <rguenther@suse.de>
2703
2704 PR tree-optimization/92324
2705 * tree-vect-loop.c (vect_create_epilog_for_reduction): Fix
2706 singedness of SLP reduction epilouge operations. Also reduce
2707 the vector width for SLP reductions before doing elementwise
2708 operations if possible.
2709
2710 2019-11-15 Matthew Malcomson <matthew.malcomson@arm.com>
2711
2712 * passes.c (skip_pass): Set epilogue_completed if skipping the
2713 pro_and_epilogue pass.
2714
2715 2019-11-15 Matthew Malcomson <matthew.malcomson@arm.com>
2716
2717 * passes.c (should_skip_pass_p): Always run "dfinish".
2718
2719 2019-11-15 Richard Biener <rguenther@suse.de>
2720
2721 * ipa-inline.c (inline_small_functions): Move assignment
2722 to next before call destroying edge.
2723
2724 2019-11-15 Richard Biener <rguenther@suse.de>
2725
2726 PR tree-optimization/92039
2727 PR tree-optimization/91975
2728 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Revert
2729 previous change, treat invariants consistently as non-constant.
2730 (tree_estimate_loop_size): Ternary ops with just the first op
2731 constant are not optimized away.
2732
2733 2019-11-15 Jakub Jelinek <jakub@redhat.com>
2734
2735 * gimplify.c (gimplify_call_expr): Don't call
2736 omp_resolve_declare_variant after gimplification.
2737 * omp-general.c (omp_context_selector_matches): For isa that might
2738 match in some other function, defer if in declare simd function.
2739 (omp_context_compute_score): Don't look for " score" in construct
2740 trait set. Set *score to -1 if it can't ever match.
2741 (omp_resolve_declare_variant): If any variants need to be deferred,
2742 don't punt immediately, but compute scores of all variants and if
2743 ther eis a score winner that doesn't need to be deferred, return that.
2744
2745 2019-11-15 Luo Xiong Hu <luoxhu@linux.ibm.com>
2746
2747 * ipa-comdats.c: Fix comments typo.
2748 * ipa-profile.c: Fix comments typo.
2749 * tree-profile.c (gimple_gen_ic_profiler): Use the new variable
2750 __gcov_indirect_call.counters and __gcov_indirect_call.callee.
2751 (gimple_gen_ic_func_profiler): Likewise.
2752 (pass_ipa_tree_profile::gate): Fix comments typo.
2753
2754 2019-11-15 Xiong Hu Luo <luoxhu@linux.ibm.com>
2755
2756 * ipa-inline.c (inline_small_functions): Update iterator of next.
2757
2758 2019-11-14 Kwok Cheung Yeung <kcy@codesourcery.com>
2759
2760 * lra-spills.c (assign_spill_hard_regs): Check that the spill
2761 register is suitable for the mode.
2762
2763 2019-11-14 Andrew MacLeod <amacleod@redhat.com>
2764
2765 * range-op.h (range_operator::fold_range): Return a bool.
2766 * range-op.cc (range_operator::wi_fold): Assert supported type.
2767 (range_operator::fold_range): Assert supported type and return true.
2768 (operator_equal::fold_range): Return true.
2769 (operator_not_equal::fold_range): Same.
2770 (operator_lt::fold_range): Same.
2771 (operator_le::fold_range): Same.
2772 (operator_gt::fold_range): Same.
2773 (operator_ge::fold_range): Same.
2774 (operator_plus::op1_range): Adjust call to fold_range.
2775 (operator_plus::op2_range): Same.
2776 (operator_minus::op1_range): Same.
2777 (operator_minus::op2_range): Same.
2778 (operator_exact_divide::op1_range): Same.
2779 (operator_lshift::fold_range): Return true and adjust fold_range call.
2780 (operator_rshift::fold_range): Same.
2781 (operator_cast::fold_range): Return true.
2782 (operator_logical_and::fold_range): Same.
2783 (operator_logical_or::fold_range): Same.
2784 (operator_logical_not::fold_range): Same.
2785 (operator_bitwise_not::fold_range): Adjust call to fold_range.
2786 (operator_bitwise_not::op1_range): Same.
2787 (operator_cst::fold_range): Return true.
2788 (operator_identity::fold_range): Return true.
2789 (operator_negate::fold_range): Return true and adjust fold_range call.
2790 (operator_addr_expr::fold_range): Return true.
2791 (operator_addr_expr::op1_range): Adjust call to fold_range.
2792 (range_cast): Same.
2793 * tree-vrp.c (range_fold_binary_symbolics_p): Adjust call to fold_range.
2794 (range_fold_unary_symbolics_p): Same.
2795
2796 2019-11-14 Andrew MacLeod <amacleod@redhat.com>
2797
2798 PR tree-optimization/92506
2799 * range-op.cc (range_operator::fold_range): Start with range undefined.
2800 (operator_abs::wi_fold): Fix wrong line copy... With wrapv, abs with
2801 overflow is varying.
2802
2803 2019-11-14 Aldy Hernandez <aldyh@redhat.com>
2804
2805 * range-op.cc (*operator*::*range): Remove calls to
2806 range_intersect, range_invert, and range_union in favor of calling
2807 the in-place API methods.
2808 (range_tests): Same.
2809 * range.cc (range_intersect): Remove.
2810 (range_union): Remove.
2811 (range_invert): Remove.
2812 * range.h (range_intersect): Remove.
2813 (range_union): Remove.
2814 (range_intersect): Remove.
2815
2816 2019-11-14 Ilya Leoshkevich <iii@linux.ibm.com>
2817
2818 PR rtl-optimization/92430
2819 * cfgcleanup.c (pass_jump_after_combine::gate): New function.
2820 (pass_jump_after_combine::execute): Perform jump threading
2821 unconditionally.
2822
2823 2019-11-14 Jerome Lambourg <lambourg@adacore.com>
2824 Doug Rupp <rupp@adacore.com>
2825 Olivier Hainque <hainque@adacore.com>
2826
2827 * config.gcc: Collapse the arm-vxworks entries into
2828 a single arm-wrs-vxworks7* one, bpabi based. Update
2829 the default cpu from arm8 to armv7-a
2830 * config/arm/vxworks.h (CC1_SPEC): Simplify, knowing that
2831 we always use ARM_UNWIND_INFO.
2832 (DWARF2_UNWIND_INFO): Remove redefinition.
2833 (ARM_TARGET2_DWARF_FORMAT): Likewise.
2834 (VXWORKS_PERSONALITY): Define, to "llvm".
2835 (VXWORKS_EXTRA_LIBS_RTP): Define, to "-lllvm".
2836
2837 2019-11-14 Jerome Lambourg <lambourg@adacore.com>
2838
2839 * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Use
2840 _VX_CPU instead of CPU and handle arm_arch8.
2841
2842 2019-11-14 Doug Rupp <rupp@adacore.com>
2843 Olivier Hainque <hainque@adacore.com>
2844 Jerome Lambourg <lambourg@adacore.com>
2845
2846 * config.gcc: Handle aarch64*-wrs-vxworks7*.
2847 * config/aarch64/aarch64-vxworks.h: New file.
2848 * config/aarch64/t-aarch64-vxworks: New file.
2849
2850 2019-11-06 Jerome Lambourg <lambourg@adacore.com>
2851 Olivier Hainque <hainque@adacore.com>
2852
2853 * config/vx-common.h (USE_TM_CLONE_REGISTRY): Remove
2854 definition, pointless with a VxWorks specific version
2855 of crtstuff.
2856 (DWARF2_UNWIND_INFO): Conditionalize on !ARM_UNWIND_INFO.
2857 * config/vxworks.h (VX_CRTBEGIN_SPEC, VX_CRTEND_SPEC):
2858 New local macros, controlling the addition of vxworks specific
2859 crtstuff objects depending on the EH mechanism and kind of
2860 module being linked.
2861 (VXWORKS_STARTFILE_SPEC, VXWORKS_ENDFILE_SPEC): Use them.
2862
2863 2019-11-06 Pat Bernardi <bernardi@adacore.com>
2864 Jerome Lambourg <lambourg@adacore.com>
2865 Olivier Hainque <hainque@adacore.com>
2866
2867 * config.gcc: Add comment to introduce the TARGET_VXWORKS
2868 common macro definitions, conveying VXWORKS7 or 64bit general
2869 variations. Add a block to set gcc_cv_initfini_array
2870 unconditionally to "yes" for VxWorks7.
2871 config/vx-common.h (VXWORKS_CC1_SPEC): New macro, empty string
2872 by default. Update some comments.
2873 config/vxworks.h (VXWORKS_EXTRA_LIBS_RTP): New macro, empty by
2874 default, to be added the end of VXWORKS_LIBS_RTP.
2875 (VXWORKS_LIBS_RTP): Replace hardcoded part by VXWORKS_BASE_LIBS_RTP
2876 and append VXWORKS_EXTRA_LIBS_RTP, both of which specific ports may
2877 redefine.
2878 (VXWORKS_NET_LIBS_RTP): Account for VxWorks7 specificities.
2879 (VXWORKS_CC1_SPEC): Common base definition, with VxWorks7 variation
2880 to account for the now available TLS abilities.
2881 (TARGET_LIBC_HAS_FUNCTION): Account for VxWorks7 abilities.
2882 (VXWORKS_HAVE_TLS): Likewise.
2883
2884 2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
2885
2886 * tree-vect-slp.c (vect_contains_pattern_stmt_p): New function.
2887 (vect_slp_convert_to_external): Likewise.
2888 (vect_slp_analyze_node_operations): If analysis fails, try building
2889 the node from scalars instead.
2890
2891 2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
2892
2893 * tree-cfg.c (verify_gimple_assign_unary): Handle conversions
2894 between vector types.
2895 * tree-vect-stmts.c (vectorizable_conversion): Extend the
2896 non-widening and non-narrowing path to handle standard
2897 conversion codes, if the target supports them.
2898 * expr.c (convert_move): Try using the extend and truncate optabs
2899 for vectors.
2900 * optabs-tree.c (supportable_convert_operation): Likewise.
2901 * config/aarch64/iterators.md (Vnarroqw): New iterator.
2902 * config/aarch64/aarch64-simd.md (<optab><Vnarrowq><mode>2)
2903 (trunc<mode><Vnarrowq>2): New patterns.
2904
2905 2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
2906
2907 * tree-vect-stmts.c (vect_get_vector_types_for_stmt): Don't
2908 require vectype and nunits_vectype to have the same size;
2909 instead assert that nunits_vectype has at least as many
2910 elements as vectype. Don't compute a separate nunits_vectype
2911 if the scalar type is obviously the same as vectype's.
2912 Tweak dump messages.
2913
2914 2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
2915
2916 * config/aarch64/aarch64.c (aarch64_vectorize_related_mode): New
2917 function.
2918 (aarch64_autovectorize_vector_modes): Also add V4HImode and V2SImode.
2919 (TARGET_VECTORIZE_RELATED_MODE): Define.
2920
2921 2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
2922
2923 * tree-vectorizer.h (vec_info::mode_set): New typedef.
2924 (vec_info::used_vector_mode): New member variable.
2925 (vect_chooses_same_modes_p): Declare.
2926 * tree-vect-stmts.c (get_vectype_for_scalar_type): Record each
2927 chosen vector mode in vec_info::used_vector_mode.
2928 (vect_chooses_same_modes_p): New function.
2929 * tree-vect-loop.c (vect_analyze_loop): Use it to avoid trying
2930 the same vector statements multiple times.
2931 * tree-vect-slp.c (vect_slp_bb_region): Likewise.
2932
2933 2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
2934
2935 * machmode.h (opt_machine_mode::operator==): New function.
2936 (opt_machine_mode::operator!=): Likewise.
2937 * tree-vectorizer.h (vec_info::vector_mode): Update comment.
2938 (get_related_vectype_for_scalar_type): Delete.
2939 (get_vectype_for_scalar_type_and_size): Declare.
2940 * tree-vect-slp.c (vect_slp_bb_region): Print dump messages to say
2941 whether analysis passed or failed, and with what vector modes.
2942 Use related_vector_mode to check whether trying a particular
2943 vector mode would be redundant with the autodetected mode,
2944 and print a dump message if we decide to skip it.
2945 * tree-vect-loop.c (vect_analyze_loop): Likewise.
2946 (vect_create_epilog_for_reduction): Use
2947 get_related_vectype_for_scalar_type instead of
2948 get_vectype_for_scalar_type_and_size.
2949 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Replace
2950 with...
2951 (get_related_vectype_for_scalar_type): ...this new function.
2952 Take a starting/"prevailing" vector mode rather than a vector size.
2953 Take an optional nunits argument, with the same meaning as for
2954 related_vector_mode. Use related_vector_mode when not
2955 auto-detecting a mode, falling back to mode_for_vector if no
2956 target mode exists.
2957 (get_vectype_for_scalar_type): Update accordingly.
2958 (get_same_sized_vectype): Likewise.
2959 * tree-vectorizer.c (get_vec_alignment_for_array_type): Likewise.
2960
2961 2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
2962
2963 * tree-vect-stmts.c (vectorizable_call): Require the types
2964 to have the same size.
2965
2966 2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
2967
2968 * tree-vect-stmts.c (vectorizable_call): If an operand is
2969 constant or external, use get_vectype_for_scalar_type
2970 rather than get_same_sized_vectype to get its vector type.
2971 (vectorizable_conversion, vectorizable_shift): Likewise.
2972 (vectorizable_operation): Likewise.
2973
2974 2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
2975
2976 * tree-vectorizer.h (vec_info::vector_size): Replace with...
2977 (vec_info::vector_mode): ...this new field.
2978 * tree-vect-loop.c (vect_update_vf_for_slp): Update accordingly.
2979 (vect_analyze_loop, vect_transform_loop): Likewise.
2980 * tree-vect-loop-manip.c (vect_do_peeling): Likewise.
2981 * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise.
2982 (vect_make_slp_decision, vect_slp_bb_region): Likewise.
2983 * tree-vect-stmts.c (get_vectype_for_scalar_type): Likewise.
2984 * tree-vectorizer.c (try_vectorize_loop_1): Likewise.
2985
2986 2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
2987
2988 * target.h (vector_sizes, auto_vector_sizes): Delete.
2989 (vector_modes, auto_vector_modes): New typedefs.
2990 * target.def (autovectorize_vector_sizes): Replace with...
2991 (autovectorize_vector_modes): ...this new hook.
2992 * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
2993 Replace with...
2994 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): ...this new hook.
2995 * doc/tm.texi: Regenerate.
2996 * targhooks.h (default_autovectorize_vector_sizes): Delete.
2997 (default_autovectorize_vector_modes): New function.
2998 * targhooks.c (default_autovectorize_vector_sizes): Delete.
2999 (default_autovectorize_vector_modes): New function.
3000 * omp-general.c (omp_max_vf): Use autovectorize_vector_modes instead
3001 of autovectorize_vector_sizes. Use the number of units in the mode
3002 to calculate the maximum VF.
3003 * omp-low.c (omp_clause_aligned_alignment): Use
3004 autovectorize_vector_modes instead of autovectorize_vector_sizes.
3005 Use a loop based on related_mode to iterate through all supported
3006 vector modes for a given scalar mode.
3007 * optabs-query.c (can_vec_mask_load_store_p): Use
3008 autovectorize_vector_modes instead of autovectorize_vector_sizes.
3009 * tree-vect-loop.c (vect_analyze_loop, vect_transform_loop): Likewise.
3010 * tree-vect-slp.c (vect_slp_bb_region): Likewise.
3011 * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes):
3012 Replace with...
3013 (aarch64_autovectorize_vector_modes): ...this new function.
3014 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete.
3015 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define.
3016 * config/arc/arc.c (arc_autovectorize_vector_sizes): Replace with...
3017 (arc_autovectorize_vector_modes): ...this new function.
3018 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete.
3019 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define.
3020 * config/arm/arm.c (arm_autovectorize_vector_sizes): Replace with...
3021 (arm_autovectorize_vector_modes): ...this new function.
3022 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete.
3023 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define.
3024 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Replace with...
3025 (ix86_autovectorize_vector_modes): ...this new function.
3026 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete.
3027 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define.
3028 * config/mips/mips.c (mips_autovectorize_vector_sizes): Replace with...
3029 (mips_autovectorize_vector_modes): ...this new function.
3030 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete.
3031 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define.
3032
3033 2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
3034
3035 * tree-vect-stmts.c (vectorizable_shift): Check the number
3036 of vector elements as well as the type mode when deciding
3037 whether an op1_vectype is compatible. Reuse the result of
3038 this check when generating vector statements.
3039
3040 2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
3041
3042 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): If
3043 targetm.vectorize.preferred_simd_mode returns an integer mode,
3044 use mode_for_vector to decide what the vector type's mode
3045 should actually be. Use build_vector_type_for_mode instead
3046 of build_vector_type.
3047
3048 2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
3049
3050 * target.def (get_mask_mode): Take a vector mode itself as argument,
3051 instead of properties about the vector mode.
3052 * doc/tm.texi: Regenerate.
3053 * targhooks.h (default_get_mask_mode): Update to reflect new
3054 get_mode_mask interface.
3055 * targhooks.c (default_get_mask_mode): Likewise. Use
3056 related_int_vector_mode.
3057 * optabs-query.c (can_vec_mask_load_store_p): Update call
3058 to get_mask_mode.
3059 * tree-vect-stmts.c (check_load_store_masking): Likewise, checking
3060 first that the original mode really is a vector.
3061 * tree.c (build_truth_vector_type_for): Likewise.
3062 * config/aarch64/aarch64.c (aarch64_get_mask_mode): Update for new
3063 get_mode_mask interface.
3064 (aarch64_expand_sve_vcond): Update call accordingly.
3065 * config/gcn/gcn.c (gcn_vectorize_get_mask_mode): Update for new
3066 get_mode_mask interface.
3067 * config/i386/i386.c (ix86_get_mask_mode): Likewise.
3068
3069 2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
3070
3071 * tree.h (build_truth_vector_type): Delete.
3072 (build_same_sized_truth_vector_type): Likewise.
3073 * tree.c (build_truth_vector_type): Rename to...
3074 (build_truth_vector_type_for): ...this. Make static and take
3075 a vector type as argument.
3076 (truth_type_for): Update accordingly.
3077 (build_same_sized_truth_vector_type): Delete.
3078 * tree-vect-generic.c (expand_vector_divmod): Use truth_type_for
3079 instead of build_same_sized_truth_vector_type.
3080 * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
3081 (vect_record_loop_mask, vect_get_loop_mask): Likewise.
3082 * tree-vect-patterns.c (build_mask_conversion): Likeise.
3083 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
3084 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
3085 (vect_build_gather_load_calls, vectorizable_call): Likewise.
3086 (scan_store_can_perm_p, vectorizable_scan_store): Likewise.
3087 (vectorizable_store, vectorizable_condition): Likewise.
3088 (get_mask_type_for_scalar_type, get_same_sized_vectype): Likewise.
3089 (vect_get_mask_type_for_stmt): Use truth_type_for instead of
3090 build_truth_vector_type.
3091 * config/aarch64/aarch64-sve-builtins.cc (gimple_folder::convert_pred):
3092 Use truth_type_for instead of build_same_sized_truth_vector_type.
3093 * config/rs6000/rs6000-call.c (fold_build_vec_cmp): Likewise.
3094
3095 2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
3096
3097 * tree.h (build_truth_vector_type_for_mode): Declare.
3098 * tree.c (build_truth_vector_type_for_mode): New function,
3099 split out from...
3100 (build_truth_vector_type): ...here.
3101 (build_opaque_vector_type): Fix head comment.
3102 * tree-vectorizer.h (supportable_narrowing_operation): Remove
3103 vec_info parameter.
3104 (vect_halve_mask_nunits): Replace vec_info parameter with the
3105 mode of the new vector.
3106 (vect_double_mask_nunits): Likewise.
3107 * tree-vect-loop.c (vect_halve_mask_nunits): Likewise.
3108 (vect_double_mask_nunits): Likewise.
3109 * tree-vect-loop-manip.c: Include insn-config.h, rtl.h and recog.h.
3110 (vect_maybe_permute_loop_masks): Remove vinfo parameter. Update call
3111 to vect_halve_mask_nunits, getting the required mode from the unpack
3112 patterns.
3113 (vect_set_loop_condition_masked): Update call accordingly.
3114 * tree-vect-stmts.c (supportable_narrowing_operation): Remove vec_info
3115 parameter and update call to vect_double_mask_nunits.
3116 (vectorizable_conversion): Update call accordingly.
3117 (simple_integer_narrowing): Likewise. Remove vec_info parameter.
3118 (vectorizable_call): Update call accordingly.
3119 (supportable_widening_operation): Update call to
3120 vect_halve_mask_nunits.
3121 * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types):
3122 Use build_truth_vector_type_mode instead of build_truth_vector_type.
3123
3124 2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
3125
3126 * machmode.h (mode_for_int_vector): Delete.
3127 (related_int_vector_mode): Declare.
3128 * stor-layout.c (mode_for_int_vector): Delete.
3129 (related_int_vector_mode): New function.
3130 * optabs.c (expand_vec_perm_1): Use related_int_vector_mode
3131 instead of mode_for_int_vector.
3132 (expand_vec_perm_const): Likewise.
3133 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise.
3134 (aarch64_evpc_sve_tbl): Likewise.
3135 * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
3136 (s390_expand_vcond): Likewise.
3137
3138 2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
3139
3140 * target.def (related_mode): New hook.
3141 * doc/tm.texi.in (TARGET_VECTORIZE_RELATED_MODE): New hook.
3142 * doc/tm.texi: Regenerate.
3143 * targhooks.h (default_vectorize_related_mode): Declare.
3144 * targhooks.c (default_vectorize_related_mode): New function.
3145 * machmode.h (related_vector_mode): Declare.
3146 * stor-layout.c (related_vector_mode): New function.
3147 * expmed.c (extract_bit_field_1): Use it instead of mode_for_vector.
3148 * optabs-query.c (qimode_for_vec_perm): Likewise.
3149 * tree-vect-stmts.c (get_group_load_store_type): Likewise.
3150 (vectorizable_store, vectorizable_load): Likewise
3151
3152 2019-11-14 Richard Henderson <richard.henderson@linaro.org>
3153
3154 * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Declare.
3155 * config/arm/aarch-common.c (arm_md_asm_adjust): New.
3156 * config/arm/arm-c.c (arm_cpu_builtins): Define
3157 __GCC_ASM_FLAG_OUTPUTS__.
3158 * config/arm/arm.c (TARGET_MD_ASM_ADJUST): New.
3159 * config/aarch64/aarch64-c.c (aarch64_define_unconditional_macros):
3160 Define __GCC_ASM_FLAG_OUTPUTS__.
3161 * config/aarch64/aarch64.c (TARGET_MD_ASM_ADJUST): New.
3162 * doc/extend.texi (FlagOutputOperands): Add documentation
3163 for ARM and AArch64.
3164
3165 * config/arm/arm-modes.def (CC_NZ): Rename from CC_NOOV.
3166 * config/arm/predicates.md (nz_comparison_operator): Rename
3167 from noov_comparison_operator.
3168 * config/arm/arm.c (arm_select_cc_mode): Use CC_NZmode name.
3169 (arm_gen_dicompare_reg): Likewise.
3170 (maybe_get_arm_condition_code): Likewise.
3171 (thumb1_final_prescan_insn): Likewise.
3172 (arm_emit_coreregs_64bit_shift): Likewise.
3173 * config/arm/arm.md (addsi3_compare0): Likewise.
3174 (*addsi3_compare0_scratch, subsi3_compare0): Likewise.
3175 (*mulsi3_compare0, *mulsi3_compare0_v6): Likewise.
3176 (*mulsi3_compare0_scratch, *mulsi3_compare0_scratch_v6): Likewise.
3177 (*mulsi3addsi_compare0, *mulsi3addsi_compare0_v6): Likewise.
3178 (*mulsi3addsi_compare0_scratch): Likewise.
3179 (*mulsi3addsi_compare0_scratch_v6): Likewise.
3180 (*andsi3_compare0, *andsi3_compare0_scratch): Likewise.
3181 (*zeroextractsi_compare0_scratch): Likewise.
3182 (*ne_zeroextractsi, *ne_zeroextractsi_shifted): Likewise.
3183 (*ite_ne_zeroextractsi, *ite_ne_zeroextractsi_shifted): Likewise.
3184 (andsi_not_shiftsi_si_scc_no_reuse): Likewise.
3185 (andsi_not_shiftsi_si_scc): Likewise.
3186 (*andsi_notsi_si_compare0, *andsi_notsi_si_compare0_scratch): Likewise.
3187 (*iorsi3_compare0, *iorsi3_compare0_scratch): Likewise.
3188 (*xorsi3_compare0, *xorsi3_compare0_scratch): Likewise.
3189 (*shiftsi3_compare0, *shiftsi3_compare0_scratch): Likewise.
3190 (*not_shiftsi_compare0, *not_shiftsi_compare0_scratch): Likewise.
3191 (*notsi_compare0, *notsi_compare0_scratch): Likewise.
3192 (return_addr_mask, *check_arch2): Likewise.
3193 (*arith_shiftsi_compare0, *arith_shiftsi_compare0_scratch): Likewise.
3194 (*sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch): Likewise.
3195 (compare_scc splitters): Likewise.
3196 (movcond_addsi): Likewise.
3197 * config/arm/thumb2.md (thumb2_addsi3_compare0): Likewise.
3198 (*thumb2_addsi3_compare0_scratch): Likewise.
3199 (*thumb2_mulsi_short_compare0): Likewise.
3200 (*thumb2_mulsi_short_compare0_scratch): Likewise.
3201 (compare peephole2s): Likewise.
3202 * config/arm/thumb1.md (thumb1_cbz): Use CC_NZmode and
3203 nz_comparison_operator names.
3204 (cbranchsi4_insn): Likewise.
3205
3206 * config/arm/constraints.md (c): Use cc_register predicate.
3207
3208 * config/aarch64/constraints.md (c): New constraint.
3209
3210 2019-11-14 Jan Hubicka <hubicka@ucw.cz>
3211
3212 * ipa-fnsummary.c (ipa_call_context::estimate_size_and_time,
3213 ipa_merge_fn_summary_after_inlining): Micro optimize.
3214
3215 2019-11-14 Jan Hubicka <hubicka@ucw.cz>
3216
3217 * params.opt (max-inline-insns-single-O2): Set to 70 (instead of 30).
3218
3219 2019-11-14 Jan Hubicka <hubicka@ucw.cz>
3220
3221 * ipa-cp.c (ipa_vr_operation_and_type_effects): Move up in file.
3222 (ipa_value_range_from_jfunc): New function.
3223 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Add
3224 known_value_ranges parameter; use it to evalulate conditions.
3225 (evaluate_properties_for_edge): Compute known value ranges.
3226 (ipa_fn_summary_t::duplicate): Update use of
3227 evaluate_conditions_for_known_args.
3228 (estimate_ipcp_clone_size_and_time): Likewise.
3229 (ipa_merge_fn_summary_after_inlining): Likewise.
3230 * ipa-prop.h (ipa_value_range_from_jfunc): Declare.
3231
3232 2019-11-14 Martin Liska <mliska@suse.cz>
3233
3234 * ipa-inline.c (want_inline_small_function_p): Use
3235 CIF_MAX_INLINE_INSNS_AUTO_LIMIT instead
3236 of CIF_MAX_INLINE_INSNS_SINGLE_O2_LIMIT.
3237
3238 2019-11-14 Martin Liska <mliska@suse.cz>
3239
3240 * ipa-cp.c (devirtualization_time_bonus): Use opt_for_fn
3241 of a callee to get value of the param.
3242 * ipa-inline.c (inline_insns_auto): Use proper
3243 opt_for_fn.
3244 * opts.c (maybe_default_option): Do not overwrite param
3245 value if optimization level does not match. Note that
3246 params usually have default value set via Init() keyword.
3247 * params.opt: Remove -param=max-inline-insns-auto-O2.
3248 * cif-code.def (MAX_INLINE_INSNS_AUTO_O2_LIMIT): Remove.
3249 * doc/invoke.texi: Remove documentation of
3250 max-inline-insns-auto-O2.
3251
3252 2019-11-14 Martin Liska <mliska@suse.cz>
3253
3254 * tree-switch-conversion.c (switch_conversion::switch_conversion):
3255 Do not initialize m_other_count.
3256 (switch_conversion::collect): Do not count m_default_count and
3257 m_other_count as we use frequencies for edges.
3258 * tree-switch-conversion.h: Remove m_default_count and m_other_count.
3259
3260 2019-11-14 Martin Liska <mliska@suse.cz>
3261
3262 PR other/92329
3263 * doc/invoke.texi: Document -fallocation-dce.
3264
3265 2019-11-14 Martin Liska <mliska@suse.cz>
3266
3267 PR target/92389
3268 * config/i386/i386.h: Add PTA_AVX512VPOPCNTDQ to
3269 PTA_ICELAKE_CLIENT which is later interited by
3270 PTA_ICELAKE_SERVER and PTA_TIGERLAKE.
3271
3272 2019-11-14 Martin Liska <mliska@suse.cz>
3273
3274 * ipa-icf.c (sem_item_optimizer::execute): Save
3275 loaded_symbols.
3276 (sem_item_optimizer::parse_nonsingleton_classes):
3277 Return number of loaded symbols.
3278 (sem_item_optimizer::merge_classes): Print
3279 statistics about totally needed symbols.
3280 * ipa-icf.h (parse_nonsingleton_classes): Change return
3281 type.
3282 (merge_classes): Add one argument.
3283
3284 2019-11-14 Martin Liska <mliska@suse.cz>
3285
3286 * ipa-icf-gimple.c (func_checker::hash_operand): Improve
3287 func_checker::hash_operand by handling of FIELD_DECLs.
3288
3289 2019-11-14 Martin Liska <mliska@suse.cz>
3290
3291 * ipa-icf-gimple.h (func_checker::func_checker): Add
3292 default constructor.
3293 * ipa-icf.c (sem_function::init): Make operand_equal_p
3294 and hash_operand public.
3295 (sem_item::add_expr): Remove.
3296 (sem_item::add_type): Remove.
3297 (sem_function::hash_stmt): Use m_checker for hashing
3298 of GIMPLE statements.
3299 (sem_function::parse): Init with checker.
3300 (sem_variable::parse): Pass NULL as checker.
3301 (sem_item_optimizer::parse_funcs_and_vars):
3302 Pass checker to ::parse function.
3303 (sem_item_optimizer::parse_nonsingleton_classes): Likewise.
3304 (sem_variable::parse): New function.
3305 (sem_variable::get_hash): Only return computed hash value.
3306 (sem_variable::init): Initialize hash of a variable.
3307 * ipa-icf.h: Remove add_expr, add_type and add func_checker
3308 to couple of functions as a new argument.
3309
3310 2019-11-14 Martin Liska <mliska@suse.cz>
3311
3312 * ipa-icf-gimple.c (func_checker::compare_gimple_call): Update
3313 bail out reason.
3314 (func_checker::compare_gimple_assign): Likewise.
3315
3316 2019-11-14 Jakub Jelinek <jakub@redhat.com>
3317
3318 * config/i386/i386-options.c (ix86_omp_device_kind_arch_isa): Don't
3319 change sse4.2 to sse4_2 and sse4.1 to sse4.1.
3320 * config/i386/t-omp-device (omp-device-properties-i386): Likewise.
3321
3322 * omp-general.c (omp_context_name_list_prop): New function.
3323 (omp_context_selector_matches): Use it. Return 0 if it returns
3324 NULL.
3325 (omp_context_selector_props_compare): Allow equivalency of an
3326 identifier and a string literal containing no embedded zeros.
3327
3328 2019-11-14 Aldy Hernandez <aldyh@redhat.com>
3329
3330 * range-op.cc (RANGE3): Remove.
3331 (range_tests): Remove all selftest that check for multi-ranges.
3332 Put tests in namespace selftest.
3333 * selftest.h: Move range_tests into namespace selftest.
3334 * value-range.h (class value_range): Unfriend range_tests.
3335
3336 2019-11-14 Aldy Hernandez <aldyh@redhat.com>
3337
3338 * tree-vrp.c (range_fold_binary_symbolics_p): Adapt for
3339 normalize_symbolics and normalize_addresses working in place.
3340 (range_fold_unary_symbolics_p): Same.
3341 (range_fold_unary_symbolics_p): Same.
3342 * value-range.cc (num_pairs): Same.
3343 (lower_bound): Same.
3344 (upper_bound): Same.
3345 (contains_p): Same.
3346 (normalize_addresses): Same.
3347 (normalize_symbolics): Same.
3348 * value-range.h (normalize_symbolics): Same.
3349 (normalize_addresses): Same.
3350
3351 2019-11-14 Feng Xue <fxue@os.amperecomputing.com>
3352
3353 PR ipa/91682
3354 * ipa-prop.h (jump_func_type): New value IPA_JF_LOAD_AGG.
3355 (ipa_load_agg_data, ipa_agg_value, ipa_agg_value_set): New structs.
3356 (ipa_agg_jf_item): Add new field jftype and type, redefine field value.
3357 (ipa_agg_jump_function): Remove member function equal_to.
3358 (ipa_agg_jump_function_p): Remove typedef.
3359 (ipa_copy_agg_values, ipa_release_agg_values): New functions.
3360 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump
3361 information for aggregate jump function.
3362 (get_ssa_def_if_simple_copy): Add new parameter rhs_stmt to
3363 record last definition statement.
3364 (load_from_unmodified_param_or_agg): New function.
3365 (ipa_known_agg_contents_list): Add new field type and value, remove
3366 field constant.
3367 (build_agg_jump_func_from_list): Rename parameter const_count to
3368 value_count, build aggregate jump function from ipa_load_agg_data.
3369 (analyze_agg_content_value): New function.
3370 (extract_mem_content): Analyze memory store assignment to prepare
3371 information for aggregate jump function generation.
3372 (determine_known_aggregate_parts): Add new parameter fbi, remove
3373 parameter aa_walk_budeget_p.
3374 (update_jump_functions_after_inlining): Update aggregate jump function.
3375 (ipa_find_agg_cst_for_param): Change type of parameter agg.
3376 (try_make_edge_direct_simple_call): Add new parameter new_root.
3377 (try_make_edge_direct_virtual_call): Add new parameter new_root and
3378 new_root_info.
3379 (update_indirect_edges_after_inlining): Pass new argument to
3380 try_make_edge_direct_simple_call and try_make_edge_direct_virtual_call.
3381 (ipa_write_jump_function): Write aggregate jump function to file.
3382 (ipa_read_jump_function): Read aggregate jump function from file.
3383 (ipa_agg_value::equal_to): Migrate from ipa_agg_jf_item::equal_to.
3384 * ipa-cp.c (ipa_get_jf_arith_result): New function.
3385 (ipa_agg_value_from_node): Likewise.
3386 (ipa_agg_value_set_from_jfunc): Likewise.
3387 (propagate_vals_across_arith_jfunc): Likewise.
3388 (propagate_aggregate_lattice): Likewise.
3389 (ipa_get_jf_pass_through_result): Call ipa_get_jf_arith_result.
3390 (propagate_vals_across_pass_through): Call
3391 propagate_vals_across_arith_jfunc.
3392 (get_clone_agg_value): Move forward.
3393 (propagate_aggs_across_jump_function): Handle value propagation for
3394 aggregate jump function.
3395 (agg_jmp_p_vec_for_t_vec): Remove.
3396 (context_independent_aggregate_values): Replace vec<ipa_agg_jf_item>
3397 with vec<ipa_agg_value>.
3398 (copy_plats_to_inter, intersect_with_plats): Likewise.
3399 (agg_replacements_to_vector, intersect_with_agg_replacements): Likewise.
3400 (intersect_aggregate_with_edge): Likewise.
3401 (find_aggregate_values_for_callers_subset): Likewise.
3402 (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
3403 (estimate_local_effects): Replace vec<ipa_agg_jump_function> and
3404 vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>.
3405 (gather_context_independent_values): Likewise.
3406 (perform_estimation_of_a_value, decide_whether_version_node): Likewise.
3407 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Replace
3408 vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>.
3409 (evaluate_properties_for_edge): Likewise.
3410 (estimate_edge_devirt_benefit): Likewise.
3411 (estimate_edge_size_and_time): Likewise.
3412 (estimate_calls_size_and_time): Likewise.
3413 (ipa_call_context::ipa_call_context): Likewise.
3414 (estimate_ipcp_clone_size_and_time): Likewise.
3415 * ipa-fnsummary.h (ipa_call_context): Replace
3416 vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>.
3417 * ipa-inline-analysis.c (do_estimate_edge_time): Replace
3418 vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>.
3419 (do_estimate_edge_size): Likewise.
3420 (do_estimate_edge_hints): Likewise.
3421
3422 2019-11-13 Jan Hubicka <hubicka@ucw.cz>
3423
3424 * ipa-cp.c (propagate_vr_across_jump_function): Propagate also across
3425 binary operations.
3426
3427 2019-11-13 Jan Hubicka <hubicka@ucw.cz>
3428
3429 * ipa-profile.c (check_argument_count): Check properly that e_info
3430 is non-NULL; do not check descriptors.
3431
3432 2019-11-13 Jan Hubicka <hubicka@ucw.cz>
3433
3434 * ipa-inline-analysis.c (do_estimate_edge_time): Relax
3435 check for ipa profiles.
3436
3437 2019-11-13 Jan Hubicka <hubicka@ucw.cz>
3438
3439 PR c++/92421
3440 * ipa-prop.c (update_indirect_edges_after_inlining):
3441 Mark parameter as used.
3442 * ipa-inline.c (recursive_inlining): Reset node cache
3443 after inlining.
3444 (inline_small_functions): Remove checking ifdef.
3445 * ipa-inline-analysis.c (do_estimate_edge_time): Verify
3446 cache consistency.
3447
3448 2019-11-13 Jan Hubicka <hubicka@ucw.cz>
3449
3450 PR ipa/92498
3451 * ipa-profile.c (check_argument_count): Do not ICE when descriptors
3452 is NULL.
3453 (ipa_profile): Fix reversed test.
3454
3455 2019-11-13 Jan Hubicka <hubicka@ucw.cz>
3456
3457 * ipa-cp.c (ignore_edge_p): Do not check caller flags.
3458 (propagate_constants_topo): Fix typo.
3459
3460 2019-11-13 Aldy Hernandez <aldyh@redhat.com>
3461
3462 * Makefile.in (OBJS): Add value-range.o.
3463 (GTFILES): Add value-range.h.
3464 * gengtype.c (open_base_files): Add value-range.h to list of
3465 header files.
3466 * tree-vrp.c: Move the following value_range related functions:
3467 ranges_from_anti_range, value_range, check, equal_p, symbolic_p,
3468 constant_p, set_undefined, set_varying, may_contain_p,
3469 singleton_p, type, dump, dump_value_range, debug, vrp_val_max,
3470 vrp_val_min, vrp_val_is_min, vrp_val_is_max, set, set_nonzero,
3471 set_zero, vrp_operand_equal_p, range_has_numeric_bounds_p,
3472 value_inside_range, ranges_from_anti_range, union_ranges,
3473 intersect_ranges, intersect_helper, union_helper, union_,
3474 normalize_addresses, normalize_symbolics, num_pairs, lower_bound,
3475 upper_bound, contains_p, invert, intersect...
3476 * value-range.cc: ...to here.
3477 * tree-vrp.h: Move class value_range, enum_value_range_kind, and
3478 associated inline methods from here...
3479 * value-range.h: ...to here.
3480
3481 2019-11-13 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
3482
3483 * config/mips/mips.md (rotr<mode>3): Sanitize the constant argument
3484 instead of asserting its value.
3485
3486 (2019-11-13 Aldy Hernandez <aldyh@redhat.com>
3487
3488 * gimple-fold.c (size_must_be_zero_p): Rewrite use of value_range
3489 constructors and set methods so value_range_kind is the last
3490 argument and defaults to VR_RANGE.
3491 * gimple-ssa-evrp-analyze.c (record_ranges_from_stmt): Same.
3492 * ipa-cp.c (propagate_vr_across_jump_function): Same.
3493 * ipa-prop.c (ipa_get_value_range): Same.
3494 (ipa_compute_jump_functions_for_edge): Same.
3495 * range-op.cc (value_range_from_overflowed_bounds): Same.
3496 (operator_cast::op1_range): Same.
3497 (range_tests): Same.
3498 * range.cc (range_nonzero): Same.
3499 * tree-ssanames.c (get_range_info): Same.
3500 * tree-vrp.c (value_range_equiv::set): Same.
3501 (value_range::value_range): Same.
3502 (value_range_equiv::value_range_equiv): Same.
3503 (value_range_equiv::update): Same.
3504 (value_range_equiv::deep_copy): Same.
3505 (value_range_equiv::move): Same.
3506 (value_range_equiv::set_undefined): Same.
3507 (value_range::set): Same.
3508 (value_range::set_nonzero): Same.
3509 (ranges_from_anti_range): Same.
3510 (extract_range_from_plus_minus_expr): Same.
3511 (value_range::intersect_helper): Same.
3512 (value_range_equiv::intersect): Same.
3513 (value_range::union_helper): Same.
3514 (value_range_equiv::union_): Same.
3515 (value_range::normalize_symbolics): Same.
3516 (value_range::invert): Same.
3517 (determine_value_range_1): Same.
3518 * tree-vrp.h (class value_range): Same.
3519 (class value_range_equiv): Same.
3520 * vr-values.c (set_value_range_to_nonnegative): Same.
3521 (set_value_range_to_truthvalue): Same.
3522 (vr_values::update_value_range): Same.
3523 (vr_values::extract_range_for_var_from_comparison_expr): Same.
3524 (vr_values::extract_range_from_binary_expr): Same.
3525 (vr_values::extract_range_from_comparison): Same.
3526 (vr_values::extract_range_basic): Same.
3527 (vr_values::adjust_range_with_scev): Same.
3528 (vr_values::vrp_evaluate_conditional_warnv_with_ops): Same.
3529 (vr_values::extract_range_from_phi_node): Same.
3530
3531 2019-11-13 Ulrich Drepper <drepper@redhat.com>
3532
3533 * tree-dump.c (dequeue_and_dump): Print first tree operand
3534 for VIEW_CONVERT_EXPR.
3535
3536 2019-11-13 Joseph Myers <joseph@codesourcery.com>
3537
3538 * ginclude/float.c [__STDC_VERSION__ > 201710L] (FLT_NORM_MAX,
3539 DBL_NORM_MAX, LDBL_NORM_MAX): Define.
3540 * real.c (get_max_float): Add norm_max argument.
3541 * real.h (get_max_float): Update prototype.
3542 * builtins.c (fold_builtin_interclass_mathfn): Update calls to
3543 get_max_float.
3544
3545 2019-11-13 Martin Liska <mliska@suse.cz>
3546
3547 * dbgcnt.c (test_sorted_dbg_counters): New.
3548 (dbgcnt_c_tests): Likewise.
3549 * selftest-run-tests.c (selftest::run_tests): Likewise.
3550 * selftest.h (dbgcnt_c_tests): Likewise.
3551
3552 2019-11-13 Jan Hubicka <hubicka@ucw.cz>
3553 Martin Jambor <mjambor@suse.cz>
3554
3555 PR ipa/92454
3556 * ipa-cp.c (spread_undeadness): Check that IPA_NODE_REF exists.
3557 (identify_dead_nodes): Likewise.
3558
3559 2019-11-13 Martin Liska <mliska@suse.cz>
3560
3561 * ipa-icf.c (sem_function::equals_private): Do not overuse
3562 push/pop_cfun functions.
3563
3564 2019-11-13 Martin Liska <mliska@suse.cz>
3565
3566 * common.opt: Document change of -fdbg-cnt option.
3567 * dbgcnt.c (DEBUG_COUNTER): Remove.
3568 (dbg_cnt_is_enabled): Remove.
3569 (dbg_cnt): Work with new intervals.
3570 (dbg_cnt_set_limit_by_index): Set to new
3571 list of intervals.
3572 (dbg_cnt_set_limit_by_name): Likewise.
3573 (dbg_cnt_process_single_pair): Process new format.
3574 (dbg_cnt_process_opt): Likewise.
3575 (dbg_cnt_list_all_counters): Likewise.
3576 * doc/invoke.texi: Document change of -fdbg-cnt option.
3577 (cmp_tuples): New.
3578
3579 2019-11-13 Jan Hubicka <hubicka@ucw.cz>
3580
3581 * ipa-inline.c (ipa_inline): Check that function is defined before
3582 flattening.
3583
3584 2019-11-13 Andrew Stubbs <ams@codesourcery.com>
3585 Julian Brown <julian@codesourcery.com>
3586
3587 * config/gcn/gcn.c (gcn_goacc_validate_dims): Ensure
3588 flag_worker_partitioning is not set.
3589 (TARGET_GOACC_WORKER_PARTITIONING): Remove target hook definition.
3590 * config/gcn/gcn.opt (macc-experimental-workers): Default to off.
3591
3592 2019-11-13 Andrew Stubbs <ams@codesourcery.com>
3593
3594 * config/gcn/gcn-run.c (heap_region): New global variable.
3595 (struct hsa_runtime_fn_info): Add hsa_memory_assign_agent_fn.
3596 (init_hsa_runtime_functions): Initialize hsa_memory_assign_agent.
3597 (get_kernarg_region): Move contents to ....
3598 (get_memory_region): .... here.
3599 (get_heap_region): New function.
3600 (init_device): Initialize the heap_region.
3601 (device_malloc): Add region parameter.
3602 (struct kernargs): Move heap ....
3603 (heap): ... to global scope.
3604 (main): Allocate heap separate to kernargs.
3605
3606 2019-11-13 Jan Hubicka <hubicka@ucw.cz>
3607
3608 * ipa-prop.c (ipa_print_node_jump_functions,
3609 ipa_print_node_params): Print info about missing summaries.
3610
3611 2019-11-13 Richard Sandiford <richard.sandiford@arm.com>
3612
3613 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Include
3614 the cost of generating loop masks.
3615
3616 2019-11-13 Richard Sandiford <richard.sandiford@arm.com>
3617
3618 * tree-vectorizer.h (vect_apply_runtime_profitability_check_p):
3619 New function.
3620 * tree-vect-loop-manip.c (vect_loop_versioning): Use it.
3621 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
3622 (vect_transform_loop): Likewise.
3623 (vect_analyze_loop_costing): Don't take the cost of versioning
3624 into account for the static profitability threshold if it turns
3625 out that no versioning is needed.
3626
3627 2019-11-13 Jan Hubicka <hubicka@ucw.cz>
3628
3629 * ipa.c (cgraph_build_static_cdtor): Pass optimization_default_node
3630 and target_option_default_node to get -fprofile-generate ctors working
3631 right with LTO.
3632
3633 2019-11-13 Richard Sandiford <richard.sandiford@arm.com>
3634
3635 * tree-vectorizer.h (vect_nop_conversion_p): Declare.
3636 * tree-vect-stmts.c (vect_nop_conversion_p): New function.
3637 (vectorizable_assignment): Don't add a cost for nop conversions.
3638 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
3639 Likewise.
3640 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise.
3641
3642 2019-11-13 Richard Sandiford <richard.sandiford@arm.com>
3643
3644 * tree-vect-stmts.c (vect_model_promotion_demotion_cost): Take the
3645 number of ncopies as an additional argument.
3646 (vectorizable_conversion): Update call accordingly. Use "modifier"
3647 to check whether a conversion is between vectors with the same
3648 numbers of units.
3649
3650 2019-11-13 Richard Sandiford <richard.sandiford@arm.com>
3651
3652 * config/aarch64/aarch64-sve-builtins-functions.h
3653 (unary_count::expand): Use aarch64_sve_int_mode instead of
3654 mode_for_int_vector.
3655
3656 2019-11-13 Martin Liska <mliska@suse.cz>
3657
3658 * opts.c: Update comment about OPT_LEVELS_2_PLUS_SPEED_ONLY.
3659
3660 2019-11-13 Martin Liska <mliska@suse.cz>
3661
3662 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers):
3663 Remove call to finalize_options_struct.
3664
3665 2019-11-13 Georg-Johann Lay <avr@gjlay.de>
3666
3667 PR target/92055
3668 * config/avr/t-avr (avr-mcus): Do not depend on
3669 $(srcdir)/config/avr/t-multilib.
3670
3671 2019-11-13 Richard Biener <rguenther@suse.de>
3672
3673 PR tree-optimization/92473
3674 * tree-vect-loop.c (vect_create_epilog_for_reduction): Perform
3675 direct optab reduction in the correct type.
3676
3677 2019-11-12 Segher Boessenkool <segher@kernel.crashing.org>
3678
3679 * config/rs6000/rs6000.md (rs6000_set_fpscr_drn): Use ULL on big
3680 hexadecimal literal.
3681
3682 2019-11-12 Segher Boessenkool <segher@kernel.crashing.org>
3683
3684 * config/rs6000/vsx.md (xscmpexpdp_<code> for CMP_TEST): Handle
3685 UNORDERED if !HONOR_NANS (DFmode).
3686 (xscmpexpqp_<code>_<mode> for CMP_TEST and IEEE128): Handle UNORDERED
3687 if !HONOR_NANS (<MODE>mode).
3688
3689 2019-11-12 Jan Hubicka <hubicka@ucw.cz>
3690
3691 * ipa-cp.c (ignore_edge_p): Also look for optimize flag.
3692 (ipcp_verify_propagated_values): Likewise.
3693 (propagate_constants_across_call): Likewise.
3694 (propagate_constants_topo): Likewise.
3695 (ipcp_propagate_stage): Likewise.
3696
3697 2019-11-12 Jan Hubicka <hubicka@ucw.cz>
3698
3699 PR ipa/92471
3700 * ipa-profile.c (check_argument_count): Break out from ...;
3701 watch for missing summaries.
3702 (ipa_profile): Here.
3703
3704 2019-11-12 Martin Sebor <msebor@redhat.com>
3705
3706 PR tree-optimization/92412
3707 * targhooks.c (default_ref_may_alias_errno): Errono can only alias
3708 extern variables.
3709
3710 2019-11-12 Martin Sebor <msebor@redhat.com>
3711
3712 PR middle-end/83688
3713 * gimple-ssa-sprintf.c (format_result::alias_info): New struct.
3714 (directive::argno): New member.
3715 (format_result::aliases, format_result::alias_count): New data members.
3716 (format_result::append_alias): New member function.
3717 (fmtresult::dst_offset): New data member.
3718 (pass_sprintf_length::call_info::dst_origin): New data member.
3719 (pass_sprintf_length::call_info::dst_field, dst_offset): Same.
3720 (char_type_p, array_elt_at_offset, field_at_offset): New functions.
3721 (get_origin_and_offset): Same.
3722 (format_string): Call it.
3723 (format_directive): Call append_alias and set directive argument
3724 number.
3725 (maybe_warn_overlap): New function.
3726 (pass_sprintf_length::compute_format_length): Call it.
3727 (pass_sprintf_length::handle_gimple_call): Initialize new members.
3728 * gcc/tree-ssa-strlen.c (): Also enable when -Wrestrict is on.
3729
3730 2019-11-12 Ilya Leoshkevich <iii@linux.ibm.com>
3731
3732 PR rtl-optimization/92430
3733 * cfgcleanup.c (pass_jump_after_combine::execute): Free
3734 dominance info at the beginning.
3735
3736 2019-11-12 Richard Biener <rguenther@suse.de>
3737
3738 PR tree-optimization/92460
3739 * tree-vect-stmts.c (vectorizable_simd_clone_call): Unshare
3740 expression before gimplifying.
3741
3742 2019-11-12 Richard Biener <rguenther@suse.de>
3743
3744 PR tree-optimization/92461
3745 * tree-vect-loop.c (vect_create_epilog_for_reduction): Update
3746 stmt after propagation.
3747
3748 2019-11-12 Martin Liska <mliska@suse.cz>
3749
3750 * config/i386/i386-options.c (ix86_recompute_optlev_based_flags):
3751 Use SET_OPTION_IF_UNSET.
3752 (ix86_option_override_internal): Likewise.
3753 * opts.c (default_options_optimization): Likewise.
3754 (finish_options): Likewise.
3755 (enable_fdo_optimizations): Likewise.
3756 (common_handle_option): Likewise.
3757
3758 2019-11-12 Martin Liska <mliska@suse.cz>
3759
3760 * common/common-target.def: Remove option_validate_param and
3761 option_default_params.
3762 * common/common-targhooks.c (default_option_validate_param):
3763 Remove.
3764 * common/common-targhooks.h (default_option_validate_param):
3765 Remove.
3766 * common/config/aarch64/aarch64-common.c (TARGET_OPTION_DEFAULT_PARAMS):
3767 Remove usage of this.
3768 (TARGET_OPTION_VALIDATE_PARAM): Likewise.
3769 (aarch64_option_validate_param): Likewise.
3770 (aarch64_option_default_params): Likewise
3771 * common/config/bpf/bpf-common.c (bpf_option_default_params): Likewise.
3772 (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
3773 * common/config/ia64/ia64-common.c (ia64_option_default_params): Likewise.
3774 (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
3775 * common/config/powerpcspe/powerpcspe-common.c (rs6000_option_default_params): Likewise.
3776 (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
3777 * common/config/rs6000/rs6000-common.c (rs6000_option_default_params): Likewise.
3778 (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
3779 * common/config/sh/sh-common.c (sh_option_default_params): Likewise.
3780 (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
3781 * config/aarch64/aarch64.c (aarch64_override_options_internal): Validate
3782 guard_size here.
3783 * doc/tm.texi: Remove option_default_params and option_validate_param.
3784 * doc/tm.texi.in: Likewise.
3785
3786 2019-11-12 Martin Liska <mliska@suse.cz>
3787
3788 * common/common-target.def:
3789 Do not mention set_default_param_value
3790 and set_param_value.
3791 * doc/tm.texi: Likewise.
3792
3793 2019-11-12 Martin Liska <mliska@suse.cz>
3794
3795 * common.opt: Remove param_values.
3796 * config/i386/i386-options.c (ix86_valid_target_attribute_p):
3797 Remove finalize_options_struct.
3798 * gcc.c (driver::decode_argv): Do not call global_init_params
3799 and finish_params.
3800 (driver::finalize): Do not call params_c_finalize
3801 and finalize_options_struct.
3802 * opt-suggestions.c (option_proposer::get_completions): Remove
3803 special casing of params.
3804 (option_proposer::find_param_completions): Remove.
3805 (test_completion_partial_match): Update expected output.
3806 * opt-suggestions.h: Remove find_param_completions.
3807 * opts-common.c (add_misspelling_candidates): Add
3808 --param with a space.
3809 * opts.c (handle_param): Remove.
3810 (init_options_struct):. Remove init_options_struct and
3811 similar calls.
3812 (finalize_options_struct): Remove.
3813 (common_handle_option): Use SET_OPTION_IF_UNSET.
3814 * opts.h (finalize_options_struct): Remove.
3815 * toplev.c (general_init): Do not call global_init_params.
3816 (toplev::finalize): Do not call params_c_finalize and
3817 finalize_options_struct.
3818
3819 2019-11-12 Martin Liska <mliska@suse.cz>
3820
3821 * Makefile.in: Remove PARAMS_H and params.list
3822 and params.options.
3823 * params-enum.h: Remove.
3824 * params-list.h: Remove.
3825 * params-options.h: Remove.
3826 * params.c: Remove.
3827 * params.def: Remove.
3828 * params.h: Remove.
3829 * asan.c: Do not include params.h.
3830 * auto-profile.c: Likewise.
3831 * bb-reorder.c: Likewise.
3832 * builtins.c: Likewise.
3833 * cfgcleanup.c: Likewise.
3834 * cfgexpand.c: Likewise.
3835 * cfgloopanal.c: Likewise.
3836 * cgraph.c: Likewise.
3837 * combine.c: Likewise.
3838 * common/config/aarch64/aarch64-common.c: Likewise.
3839 * common/config/gcn/gcn-common.c: Likewise.
3840 * common/config/ia64/ia64-common.c: Likewise.
3841 * common/config/powerpcspe/powerpcspe-common.c: Likewise.
3842 * common/config/rs6000/rs6000-common.c: Likewise.
3843 * common/config/sh/sh-common.c: Likewise.
3844 * config/aarch64/aarch64.c: Likewise.
3845 * config/alpha/alpha.c: Likewise.
3846 * config/arm/arm.c: Likewise.
3847 * config/avr/avr.c: Likewise.
3848 * config/csky/csky.c: Likewise.
3849 * config/i386/i386-builtins.c: Likewise.
3850 * config/i386/i386-expand.c: Likewise.
3851 * config/i386/i386-features.c: Likewise.
3852 * config/i386/i386-options.c: Likewise.
3853 * config/i386/i386.c: Likewise.
3854 * config/ia64/ia64.c: Likewise.
3855 * config/rs6000/rs6000-logue.c: Likewise.
3856 * config/rs6000/rs6000.c: Likewise.
3857 * config/s390/s390.c: Likewise.
3858 * config/sparc/sparc.c: Likewise.
3859 * config/visium/visium.c: Likewise.
3860 * coverage.c: Likewise.
3861 * cprop.c: Likewise.
3862 * cse.c: Likewise.
3863 * cselib.c: Likewise.
3864 * dse.c: Likewise.
3865 * emit-rtl.c: Likewise.
3866 * explow.c: Likewise.
3867 * final.c: Likewise.
3868 * fold-const.c: Likewise.
3869 * gcc.c: Likewise.
3870 * gcse.c: Likewise.
3871 * ggc-common.c: Likewise.
3872 * ggc-page.c: Likewise.
3873 * gimple-loop-interchange.cc: Likewise.
3874 * gimple-loop-jam.c: Likewise.
3875 * gimple-loop-versioning.cc: Likewise.
3876 * gimple-ssa-split-paths.c: Likewise.
3877 * gimple-ssa-sprintf.c: Likewise.
3878 * gimple-ssa-store-merging.c: Likewise.
3879 * gimple-ssa-strength-reduction.c: Likewise.
3880 * gimple-ssa-warn-alloca.c: Likewise.
3881 * gimple-ssa-warn-restrict.c: Likewise.
3882 * graphite-isl-ast-to-gimple.c: Likewise.
3883 * graphite-optimize-isl.c: Likewise.
3884 * graphite-scop-detection.c: Likewise.
3885 * graphite-sese-to-poly.c: Likewise.
3886 * graphite.c: Likewise.
3887 * haifa-sched.c: Likewise.
3888 * hsa-gen.c: Likewise.
3889 * ifcvt.c: Likewise.
3890 * ipa-cp.c: Likewise.
3891 * ipa-fnsummary.c: Likewise.
3892 * ipa-inline-analysis.c: Likewise.
3893 * ipa-inline.c: Likewise.
3894 * ipa-polymorphic-call.c: Likewise.
3895 * ipa-profile.c: Likewise.
3896 * ipa-prop.c: Likewise.
3897 * ipa-split.c: Likewise.
3898 * ipa-sra.c: Likewise.
3899 * ira-build.c: Likewise.
3900 * ira-conflicts.c: Likewise.
3901 * loop-doloop.c: Likewise.
3902 * loop-invariant.c: Likewise.
3903 * loop-unroll.c: Likewise.
3904 * lra-assigns.c: Likewise.
3905 * lra-constraints.c: Likewise.
3906 * modulo-sched.c: Likewise.
3907 * opt-suggestions.c: Likewise.
3908 * opts.c: Likewise.
3909 * postreload-gcse.c: Likewise.
3910 * predict.c: Likewise.
3911 * reload.c: Likewise.
3912 * reorg.c: Likewise.
3913 * resource.c: Likewise.
3914 * sanopt.c: Likewise.
3915 * sched-deps.c: Likewise.
3916 * sched-ebb.c: Likewise.
3917 * sched-rgn.c: Likewise.
3918 * sel-sched-ir.c: Likewise.
3919 * sel-sched.c: Likewise.
3920 * shrink-wrap.c: Likewise.
3921 * stmt.c: Likewise.
3922 * targhooks.c: Likewise.
3923 * toplev.c: Likewise.
3924 * tracer.c: Likewise.
3925 * trans-mem.c: Likewise.
3926 * tree-chrec.c: Likewise.
3927 * tree-data-ref.c: Likewise.
3928 * tree-if-conv.c: Likewise.
3929 * tree-inline.c: Likewise.
3930 * tree-loop-distribution.c: Likewise.
3931 * tree-parloops.c: Likewise.
3932 * tree-predcom.c: Likewise.
3933 * tree-profile.c: Likewise.
3934 * tree-scalar-evolution.c: Likewise.
3935 * tree-sra.c: Likewise.
3936 * tree-ssa-ccp.c: Likewise.
3937 * tree-ssa-dom.c: Likewise.
3938 * tree-ssa-dse.c: Likewise.
3939 * tree-ssa-ifcombine.c: Likewise.
3940 * tree-ssa-loop-ch.c: Likewise.
3941 * tree-ssa-loop-im.c: Likewise.
3942 * tree-ssa-loop-ivcanon.c: Likewise.
3943 * tree-ssa-loop-ivopts.c: Likewise.
3944 * tree-ssa-loop-manip.c: Likewise.
3945 * tree-ssa-loop-niter.c: Likewise.
3946 * tree-ssa-loop-prefetch.c: Likewise.
3947 * tree-ssa-loop-unswitch.c: Likewise.
3948 * tree-ssa-math-opts.c: Likewise.
3949 * tree-ssa-phiopt.c: Likewise.
3950 * tree-ssa-pre.c: Likewise.
3951 * tree-ssa-reassoc.c: Likewise.
3952 * tree-ssa-sccvn.c: Likewise.
3953 * tree-ssa-scopedtables.c: Likewise.
3954 * tree-ssa-sink.c: Likewise.
3955 * tree-ssa-strlen.c: Likewise.
3956 * tree-ssa-structalias.c: Likewise.
3957 * tree-ssa-tail-merge.c: Likewise.
3958 * tree-ssa-threadbackward.c: Likewise.
3959 * tree-ssa-threadedge.c: Likewise.
3960 * tree-ssa-uninit.c: Likewise.
3961 * tree-switch-conversion.c: Likewise.
3962 * tree-vect-data-refs.c: Likewise.
3963 * tree-vect-loop.c: Likewise.
3964 * tree-vect-slp.c: Likewise.
3965 * tree-vrp.c: Likewise.
3966 * tree.c: Likewise.
3967 * value-prof.c: Likewise.
3968 * var-tracking.c: Likewise.
3969
3970 2019-11-12 Martin Liska <mliska@suse.cz>
3971
3972 * asan.c (asan_sanitize_stack_p): Replace old parameter syntax
3973 with the new one, include opts.h if needed. Use SET_OPTION_IF_UNSET
3974 macro.
3975 (asan_sanitize_allocas_p): Likewise.
3976 (asan_emit_stack_protection): Likewise.
3977 (asan_protect_global): Likewise.
3978 (instrument_derefs): Likewise.
3979 (instrument_builtin_call): Likewise.
3980 (asan_expand_mark_ifn): Likewise.
3981 * auto-profile.c (auto_profile): Likewise.
3982 * bb-reorder.c (copy_bb_p): Likewise.
3983 (duplicate_computed_gotos): Likewise.
3984 * builtins.c (inline_expand_builtin_string_cmp): Likewise.
3985 * cfgcleanup.c (try_crossjump_to_edge): Likewise.
3986 (try_crossjump_bb): Likewise.
3987 * cfgexpand.c (defer_stack_allocation): Likewise.
3988 (stack_protect_classify_type): Likewise.
3989 (pass_expand::execute): Likewise.
3990 * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
3991 (estimate_reg_pressure_cost): Likewise.
3992 * cgraph.c (cgraph_edge::maybe_hot_p): Likewise.
3993 * combine.c (combine_instructions): Likewise.
3994 (record_value_for_reg): Likewise.
3995 * common/config/aarch64/aarch64-common.c (aarch64_option_validate_param): Likewise.
3996 (aarch64_option_default_params): Likewise.
3997 * common/config/ia64/ia64-common.c (ia64_option_default_params): Likewise.
3998 * common/config/powerpcspe/powerpcspe-common.c (rs6000_option_default_params): Likewise.
3999 * common/config/rs6000/rs6000-common.c (rs6000_option_default_params): Likewise.
4000 * common/config/sh/sh-common.c (sh_option_default_params): Likewise.
4001 * config/aarch64/aarch64.c (aarch64_output_probe_stack_range): Likewise.
4002 (aarch64_allocate_and_probe_stack_space): Likewise.
4003 (aarch64_expand_epilogue): Likewise.
4004 (aarch64_override_options_internal): Likewise.
4005 * config/alpha/alpha.c (alpha_option_override): Likewise.
4006 * config/arm/arm.c (arm_option_override): Likewise.
4007 (arm_valid_target_attribute_p): Likewise.
4008 * config/i386/i386-options.c (ix86_option_override_internal): Likewise.
4009 * config/i386/i386.c (get_probe_interval): Likewise.
4010 (ix86_adjust_stack_and_probe_stack_clash): Likewise.
4011 (ix86_max_noce_ifcvt_seq_cost): Likewise.
4012 * config/ia64/ia64.c (ia64_adjust_cost): Likewise.
4013 * config/rs6000/rs6000-logue.c (get_stack_clash_protection_probe_interval): Likewise.
4014 (get_stack_clash_protection_guard_size): Likewise.
4015 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
4016 * config/s390/s390.c (allocate_stack_space): Likewise.
4017 (s390_emit_prologue): Likewise.
4018 (s390_option_override_internal): Likewise.
4019 * config/sparc/sparc.c (sparc_option_override): Likewise.
4020 * config/visium/visium.c (visium_option_override): Likewise.
4021 * coverage.c (get_coverage_counts): Likewise.
4022 (coverage_compute_profile_id): Likewise.
4023 (coverage_begin_function): Likewise.
4024 (coverage_end_function): Likewise.
4025 * cse.c (cse_find_path): Likewise.
4026 (cse_extended_basic_block): Likewise.
4027 (cse_main): Likewise.
4028 * cselib.c (cselib_invalidate_mem): Likewise.
4029 * dse.c (dse_step1): Likewise.
4030 * emit-rtl.c (set_new_first_and_last_insn): Likewise.
4031 (get_max_insn_count): Likewise.
4032 (make_debug_insn_raw): Likewise.
4033 (init_emit): Likewise.
4034 * explow.c (compute_stack_clash_protection_loop_data): Likewise.
4035 * final.c (compute_alignments): Likewise.
4036 * fold-const.c (fold_range_test): Likewise.
4037 (fold_truth_andor): Likewise.
4038 (tree_single_nonnegative_warnv_p): Likewise.
4039 (integer_valued_real_single_p): Likewise.
4040 * gcse.c (want_to_gcse_p): Likewise.
4041 (prune_insertions_deletions): Likewise.
4042 (hoist_code): Likewise.
4043 (gcse_or_cprop_is_too_expensive): Likewise.
4044 * ggc-common.c: Likewise.
4045 * ggc-page.c (ggc_collect): Likewise.
4046 * gimple-loop-interchange.cc (MAX_NUM_STMT): Likewise.
4047 (MAX_DATAREFS): Likewise.
4048 (OUTER_STRIDE_RATIO): Likewise.
4049 * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
4050 * gimple-loop-versioning.cc (loop_versioning::max_insns_for_loop): Likewise.
4051 * gimple-ssa-split-paths.c (is_feasible_trace): Likewise.
4052 * gimple-ssa-store-merging.c (imm_store_chain_info::try_coalesce_bswap): Likewise.
4053 (imm_store_chain_info::coalesce_immediate_stores): Likewise.
4054 (imm_store_chain_info::output_merged_store): Likewise.
4055 (pass_store_merging::process_store): Likewise.
4056 * gimple-ssa-strength-reduction.c (find_basis_for_base_expr): Likewise.
4057 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple): Likewise.
4058 (scop_to_isl_ast): Likewise.
4059 * graphite-optimize-isl.c (get_schedule_for_node_st): Likewise.
4060 (optimize_isl): Likewise.
4061 * graphite-scop-detection.c (build_scops): Likewise.
4062 * haifa-sched.c (set_modulo_params): Likewise.
4063 (rank_for_schedule): Likewise.
4064 (model_add_to_worklist): Likewise.
4065 (model_promote_insn): Likewise.
4066 (model_choose_insn): Likewise.
4067 (queue_to_ready): Likewise.
4068 (autopref_multipass_dfa_lookahead_guard): Likewise.
4069 (schedule_block): Likewise.
4070 (sched_init): Likewise.
4071 * hsa-gen.c (init_prologue): Likewise.
4072 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Likewise.
4073 (cond_move_process_if_block): Likewise.
4074 * ipa-cp.c (ipcp_lattice::add_value): Likewise.
4075 (merge_agg_lats_step): Likewise.
4076 (devirtualization_time_bonus): Likewise.
4077 (hint_time_bonus): Likewise.
4078 (incorporate_penalties): Likewise.
4079 (good_cloning_opportunity_p): Likewise.
4080 (ipcp_propagate_stage): Likewise.
4081 * ipa-fnsummary.c (decompose_param_expr): Likewise.
4082 (set_switch_stmt_execution_predicate): Likewise.
4083 (analyze_function_body): Likewise.
4084 (compute_fn_summary): Likewise.
4085 * ipa-inline-analysis.c (estimate_growth): Likewise.
4086 * ipa-inline.c (caller_growth_limits): Likewise.
4087 (inline_insns_single): Likewise.
4088 (inline_insns_auto): Likewise.
4089 (can_inline_edge_by_limits_p): Likewise.
4090 (want_early_inline_function_p): Likewise.
4091 (big_speedup_p): Likewise.
4092 (want_inline_small_function_p): Likewise.
4093 (want_inline_self_recursive_call_p): Likewise.
4094 (edge_badness): Likewise.
4095 (recursive_inlining): Likewise.
4096 (compute_max_insns): Likewise.
4097 (early_inliner): Likewise.
4098 * ipa-polymorphic-call.c (csftc_abort_walking_p): Likewise.
4099 * ipa-profile.c (ipa_profile): Likewise.
4100 * ipa-prop.c (determine_known_aggregate_parts): Likewise.
4101 (ipa_analyze_node): Likewise.
4102 (ipcp_transform_function): Likewise.
4103 * ipa-split.c (consider_split): Likewise.
4104 * ipa-sra.c (allocate_access): Likewise.
4105 (process_scan_results): Likewise.
4106 (ipa_sra_summarize_function): Likewise.
4107 (pull_accesses_from_callee): Likewise.
4108 * ira-build.c (loop_compare_func): Likewise.
4109 (mark_loops_for_removal): Likewise.
4110 * ira-conflicts.c (build_conflict_bit_table): Likewise.
4111 * loop-doloop.c (doloop_optimize): Likewise.
4112 * loop-invariant.c (gain_for_invariant): Likewise.
4113 (move_loop_invariants): Likewise.
4114 * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
4115 (decide_unroll_runtime_iterations): Likewise.
4116 (decide_unroll_stupid): Likewise.
4117 (expand_var_during_unrolling): Likewise.
4118 * lra-assigns.c (spill_for): Likewise.
4119 * lra-constraints.c (EBB_PROBABILITY_CUTOFF): Likewise.
4120 * modulo-sched.c (sms_schedule): Likewise.
4121 (DFA_HISTORY): Likewise.
4122 * opts.c (default_options_optimization): Likewise.
4123 (finish_options): Likewise.
4124 (common_handle_option): Likewise.
4125 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
4126 (if): Likewise.
4127 * predict.c (get_hot_bb_threshold): Likewise.
4128 (maybe_hot_count_p): Likewise.
4129 (probably_never_executed): Likewise.
4130 (predictable_edge_p): Likewise.
4131 (predict_loops): Likewise.
4132 (expr_expected_value_1): Likewise.
4133 (tree_predict_by_opcode): Likewise.
4134 (handle_missing_profiles): Likewise.
4135 * reload.c (find_equiv_reg): Likewise.
4136 * reorg.c (redundant_insn): Likewise.
4137 * resource.c (mark_target_live_regs): Likewise.
4138 (incr_ticks_for_insn): Likewise.
4139 * sanopt.c (pass_sanopt::execute): Likewise.
4140 * sched-deps.c (sched_analyze_1): Likewise.
4141 (sched_analyze_2): Likewise.
4142 (sched_analyze_insn): Likewise.
4143 (deps_analyze_insn): Likewise.
4144 * sched-ebb.c (schedule_ebbs): Likewise.
4145 * sched-rgn.c (find_single_block_region): Likewise.
4146 (too_large): Likewise.
4147 (haifa_find_rgns): Likewise.
4148 (extend_rgns): Likewise.
4149 (new_ready): Likewise.
4150 (schedule_region): Likewise.
4151 (sched_rgn_init): Likewise.
4152 * sel-sched-ir.c (make_region_from_loop): Likewise.
4153 * sel-sched-ir.h (MAX_WS): Likewise.
4154 * sel-sched.c (process_pipelined_exprs): Likewise.
4155 (sel_setup_region_sched_flags): Likewise.
4156 * shrink-wrap.c (try_shrink_wrapping): Likewise.
4157 * targhooks.c (default_max_noce_ifcvt_seq_cost): Likewise.
4158 * toplev.c (print_version): Likewise.
4159 (process_options): Likewise.
4160 * tracer.c (tail_duplicate): Likewise.
4161 * trans-mem.c (tm_log_add): Likewise.
4162 * tree-chrec.c (chrec_fold_plus_1): Likewise.
4163 * tree-data-ref.c (split_constant_offset): Likewise.
4164 (compute_all_dependences): Likewise.
4165 * tree-if-conv.c (MAX_PHI_ARG_NUM): Likewise.
4166 * tree-inline.c (remap_gimple_stmt): Likewise.
4167 * tree-loop-distribution.c (MAX_DATAREFS_NUM): Likewise.
4168 * tree-parloops.c (MIN_PER_THREAD): Likewise.
4169 (create_parallel_loop): Likewise.
4170 * tree-predcom.c (determine_unroll_factor): Likewise.
4171 * tree-scalar-evolution.c (instantiate_scev_r): Likewise.
4172 * tree-sra.c (analyze_all_variable_accesses): Likewise.
4173 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
4174 * tree-ssa-dse.c (setup_live_bytes_from_ref): Likewise.
4175 (dse_optimize_redundant_stores): Likewise.
4176 (dse_classify_store): Likewise.
4177 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
4178 * tree-ssa-loop-ch.c (ch_base::copy_headers): Likewise.
4179 * tree-ssa-loop-im.c (LIM_EXPENSIVE): Likewise.
4180 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
4181 (try_peel_loop): Likewise.
4182 (tree_unroll_loops_completely): Likewise.
4183 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
4184 (CONSIDER_ALL_CANDIDATES_BOUND): Likewise.
4185 (MAX_CONSIDERED_GROUPS): Likewise.
4186 (ALWAYS_PRUNE_CAND_SET_BOUND): Likewise.
4187 * tree-ssa-loop-manip.c (can_unroll_loop_p): Likewise.
4188 * tree-ssa-loop-niter.c (MAX_ITERATIONS_TO_TRACK): Likewise.
4189 * tree-ssa-loop-prefetch.c (PREFETCH_BLOCK): Likewise.
4190 (L1_CACHE_SIZE_BYTES): Likewise.
4191 (L2_CACHE_SIZE_BYTES): Likewise.
4192 (should_issue_prefetch_p): Likewise.
4193 (schedule_prefetches): Likewise.
4194 (determine_unroll_factor): Likewise.
4195 (volume_of_references): Likewise.
4196 (add_subscript_strides): Likewise.
4197 (self_reuse_distance): Likewise.
4198 (mem_ref_count_reasonable_p): Likewise.
4199 (insn_to_prefetch_ratio_too_small_p): Likewise.
4200 (loop_prefetch_arrays): Likewise.
4201 (tree_ssa_prefetch_arrays): Likewise.
4202 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise.
4203 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
4204 (convert_mult_to_fma): Likewise.
4205 (math_opts_dom_walker::after_dom_children): Likewise.
4206 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Likewise.
4207 (hoist_adjacent_loads): Likewise.
4208 (gate_hoist_loads): Likewise.
4209 * tree-ssa-pre.c (translate_vuse_through_block): Likewise.
4210 (compute_partial_antic_aux): Likewise.
4211 * tree-ssa-reassoc.c (get_reassociation_width): Likewise.
4212 * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Likewise.
4213 (vn_reference_lookup): Likewise.
4214 (do_rpo_vn): Likewise.
4215 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Likewise.
4216 * tree-ssa-sink.c (select_best_block): Likewise.
4217 * tree-ssa-strlen.c (new_stridx): Likewise.
4218 (new_addr_stridx): Likewise.
4219 (get_range_strlen_dynamic): Likewise.
4220 (class ssa_name_limit_t): Likewise.
4221 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise.
4222 (create_variable_info_for_1): Likewise.
4223 (init_alias_vars): Likewise.
4224 * tree-ssa-tail-merge.c (find_clusters_1): Likewise.
4225 (tail_merge_optimize): Likewise.
4226 * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path): Likewise.
4227 (thread_jumps::fsm_find_control_statement_thread_paths): Likewise.
4228 (thread_jumps::find_jump_threads_backwards): Likewise.
4229 * tree-ssa-threadedge.c (record_temporary_equivalences_from_stmts_at_dest): Likewise.
4230 * tree-ssa-uninit.c (compute_control_dep_chain): Likewise.
4231 * tree-switch-conversion.c (switch_conversion::check_range): Likewise.
4232 (jump_table_cluster::can_be_handled): Likewise.
4233 * tree-switch-conversion.h (jump_table_cluster::case_values_threshold): Likewise.
4234 (SWITCH_CONVERSION_BRANCH_RATIO): Likewise.
4235 (param_switch_conversion_branch_ratio): Likewise.
4236 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Likewise.
4237 (vect_enhance_data_refs_alignment): Likewise.
4238 (vect_prune_runtime_alias_test_list): Likewise.
4239 * tree-vect-loop.c (vect_analyze_loop_costing): Likewise.
4240 (vect_get_datarefs_in_loop): Likewise.
4241 (vect_analyze_loop): Likewise.
4242 * tree-vect-slp.c (vect_slp_bb): Likewise.
4243 * tree-vectorizer.h: Likewise.
4244 * tree-vrp.c (find_switch_asserts): Likewise.
4245 (vrp_prop::check_mem_ref): Likewise.
4246 * tree.c (wide_int_to_tree_1): Likewise.
4247 (cache_integer_cst): Likewise.
4248 * var-tracking.c (EXPR_USE_DEPTH): Likewise.
4249 (reverse_op): Likewise.
4250 (vt_find_locations): Likewise.
4251
4252 2019-11-12 Martin Liska <mliska@suse.cz>
4253
4254 * Makefile.in: Include params.opt.
4255 * flag-types.h (enum parloops_schedule_type): Add
4256 parloops_schedule_type used in params.opt.
4257 * params.opt: New file.
4258
4259 2019-11-12 Martin Liska <mliska@suse.cz>
4260
4261 * common.opt: Remove --param and --param= options.
4262 * opt-functions.awk: Mark CL_PARAMS for options
4263 that have Param keyword.
4264 * opts-common.c (decode_cmdline_options_to_array):
4265 Replace --param key=value with --param=key=value.
4266 * opts.c (print_filtered_help): Remove special
4267 printing of params.
4268 (print_specific_help): Update title for params.
4269 (common_handle_option): Do not handle OPT__param.
4270 opts.h (SET_OPTION_IF_UNSET): New macro.
4271 * doc/options.texi: Document Param keyword.
4272
4273 2019-11-12 Maciej W. Rozycki <macro@codesourcery.com>
4274 Frederik Harwath <frederik@codesourcery.com>
4275 Thomas Schwinge <thomas@codesourcery.com>
4276
4277 gcc/
4278 * gimple.h (gf_mask): Add GF_OMP_TARGET_KIND_OACC_SERIAL
4279 enumeration constant.
4280 (is_gimple_omp_oacc): Handle GF_OMP_TARGET_KIND_OACC_SERIAL.
4281 (is_gimple_omp_offloaded): Likewise.
4282 * gimplify.c (omp_region_type): Add ORT_ACC_SERIAL enumeration
4283 constant. Adjust the value of ORT_NONE accordingly.
4284 (is_gimple_stmt): Handle OACC_SERIAL.
4285 (oacc_default_clause): Handle ORT_ACC_SERIAL.
4286 (gomp_needs_data_present): Likewise.
4287 (gimplify_adjust_omp_clauses): Likewise.
4288 (gimplify_omp_workshare): Handle OACC_SERIAL.
4289 (gimplify_expr): Likewise.
4290 * omp-expand.c (expand_omp_target):
4291 Handle GF_OMP_TARGET_KIND_OACC_SERIAL.
4292 (build_omp_regions_1, omp_make_gimple_edges): Likewise.
4293 * omp-low.c (is_oacc_parallel): Rename function to...
4294 (is_oacc_parallel_or_serial): ... this.
4295 Handle GF_OMP_TARGET_KIND_OACC_SERIAL.
4296 (scan_sharing_clauses): Adjust accordingly.
4297 (scan_omp_for): Likewise.
4298 (lower_oacc_head_mark): Likewise.
4299 (convert_from_firstprivate_int): Likewise.
4300 (lower_omp_target): Likewise.
4301 (check_omp_nesting_restrictions): Handle
4302 GF_OMP_TARGET_KIND_OACC_SERIAL.
4303 (lower_oacc_reductions): Likewise.
4304 (lower_omp_target): Likewise.
4305 * tree.def (OACC_SERIAL): New tree code.
4306 * tree-pretty-print.c (dump_generic_node): Handle OACC_SERIAL.
4307
4308 * doc/generic.texi (OpenACC): Document OACC_SERIAL.
4309
4310 2019-11-12 Jakub Jelinek <jakub@redhat.com>
4311
4312 PR target/92449
4313 * tree-complex.c (expand_complex_multiplication): If !HONOR_NANS,
4314 don't emit UNORDERED_EXPR guarded libcall. Formatting fixes.
4315
4316 PR tree-optimization/92452
4317 * tree-vrp.c (vrp_prop::check_array_ref): If TRUNC_DIV_EXPR folds
4318 into NULL_TREE, set up_bound to NULL_TREE instead of computing
4319 MINUS_EXPR on it.
4320
4321 2019-11-12 Andre Vieira <andre.simoesdiasvieira@arm.com>
4322
4323 * tree-vect-loop.c (vect_transform_loop): Don't overwrite epilogues
4324 safelen with 0.
4325
4326 2019-11-12 Alan Modra <amodra@gmail.com>
4327
4328 * config/rs6000/predicates.md (unspec_tls): Allow const0_rtx for got
4329 element of unspec vec.
4330 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Support
4331 PC-relative TLS.
4332 * config/rs6000/rs6000.md (UNSPEC_TLSTLS_PCREL): New unspec.
4333 (tls_gd_pcrel, tls_ld_pcrel): New insns.
4334 (tls_dtprel, tls_tprel): Set attr prefixed when tls_size is not 16.
4335 (tls_got_tprel_pcrel, tls_tls_pcrel): New insns.
4336
4337 2019-11-12 Alan Modra <amodra@gmail.com>
4338
4339 * config/rs6000/rs6000.opt (mtls-markers): Delete.
4340 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Don't define.
4341 (IS_NOMARK_TLSGETADDR): Likewise.
4342 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Delete.
4343 * config/rs6000/rs6000.c (rs6000_output_tlsargs): Delete.
4344 (rs6000_legitimize_tls_address): Remove !TARGET_TLS_MARKERS code.
4345 (rs6000_call_template_1): Delete TARGET_TLS_MARKERS test and
4346 allow other UNSPECs besides UNSPEC_TLSGD and UNSPEC_TLSLD.
4347 (rs6000_indirect_call_template_1): Likewise.
4348 (rs6000_pltseq_template): Likewise.
4349 (rs6000_opt_vars): Remove "tls-markers" entry.
4350 * config/rs6000/rs6000.md (tls_gd<bits>): Replace TARGET_TLS_MARKERS
4351 with TARGET_ELF.
4352 (tls_gd_high<bits>, tls_gd_low<bits>): Likewise.
4353 (tls_ld<bits>, tls_ld_high<bits>, tls_ld_low<bits>): Likewise.
4354 (pltseq_plt_pcrel<mode>): Likewise.
4355 (call_value_local32): Remove IS_NOMARK_TLSGETADDR predicate test.
4356 (call_value_local64): Likewise.
4357 (call_value_indirect_nonlocal_sysv<mode>): Remove IS_NOMARK_TLSGETADDR
4358 output and length attribute sub-expression.
4359 (call_value_nonlocal_sysv<mode>),
4360 (call_value_nonlocal_sysv_secure<mode>),
4361 (call_value_local_aix<mode>, call_value_nonlocal_aix<mode>),
4362 (call_value_indirect_aix<mode>, call_value_indirect_elfv2<mode>),
4363 (call_value_indirect_pcrel<mode>): Likewise.
4364 * doc/install.texi (powerpc-*-*): Require binutils-2.20.
4365 * configure.ac (HAVE_AS_TLS_MARKERS): Delete test.
4366 * configure: Regenerate.
4367 * config.in: Regenerate.
4368
4369 2019-11-11 Michael Meissner <meissner@linux.ibm.com>
4370
4371 * config/rs6000/predicates.md (prefixed_memory): New predicate.
4372 * config/rs6000/rs6000.md (stack_protect_setdi): Deal with either
4373 address being a prefixed load/store.
4374 (stack_protect_testdi): Deal with either address being a prefixed
4375 load.
4376
4377 2019-11-11 Jakub Jelinek <jakub@redhat.com>
4378
4379 PR bootstrap/92433
4380 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Guard
4381 ALTIVEC_BUILTIN_VEC_VCMPGE_P argument swapping with n == 3 check. Use
4382 std::swap.
4383
4384 2019-11-11 Richard Sandiford <richard.sandiford@arm.com>
4385
4386 PR tree-optimization/92420
4387 * tree-vect-stmts.c (get_negative_load_store_type): Move further
4388 up file.
4389 (get_group_load_store_type): Use it for reversed SLP accesses.
4390
4391 2019-11-11 Jan Hubicka <hubcika@ucw.cz>
4392
4393 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove ipcp
4394 summary.
4395 (ipcp_transformation_t::duplicate): Break out from ...
4396 (ipa_node_params_t::duplicate): ... here; add copying of agg
4397 replacements.
4398 * ipa-prop.h (ipcp_transformation): Add constructor and destructor.
4399 (ipcp_transformation_t): Add duplicate.
4400
4401 2019-11-11 Janne Blomqvist <jb@gcc.gnu.org>
4402
4403 PR fortran/91828
4404 * doc/install.texi: Document that the minimum MPFR version is
4405 3.1.0.
4406
4407 2019-11-11 Claudiu Zissulescu <claziss@gmail.com>
4408
4409 * config/arc/arc.md (movsi_ne): Reorder instruction variants and
4410 use new register constraint letters.
4411
4412 2019-11-11 Claudiu Zissulescu <claziss@gmail.com>
4413
4414 * config/arc/arc.c (arc_legitimize_pic_address): Consider UNSPECs
4415 as well, if interesting recover the symbol and re-legitimize the
4416 pic address.
4417
4418 2019-11-11 Martin Liska <mliska@suse.cz>
4419
4420 * dbgcnt.def (DEBUG_COUNTER): Sort counters
4421 alphabetically.
4422
4423 2019-11-11 Andre Vieira <andre.simoesdiasvieira@arm.com>
4424
4425 * tree-vect-loop-manip.c (vect_do_peeling): Take epilogue gaps into
4426 account when checking if there are enough iterations to vectorize
4427 epilogue.
4428
4429 2019-11-11 Tobias Burnus <tobias@codesourcery.com>
4430 Kwok Cheung Yeung <kcy@codesourcery.com>
4431
4432 * langhooks-def.h (LANG_HOOKS_OMP_CHECK_OPTIONAL_ARGUMENT):
4433 Renamed from LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT; update define.
4434 (LANG_HOOKS_DECLS): Rename also here.
4435 * langhooks.h (lang_hooks_for_decls): Rename
4436 omp_is_optional_argument to omp_check_optional_argument; take
4437 additional bool argument.
4438 * omp-general.h (omp_check_optional_argument): Likewise.
4439 * omp-general.h (omp_check_optional_argument): Likewise.
4440 * omp-low.c (lower_omp_target): Update calls; handle absent
4441 Fortran optional arguments with USE_DEVICE_ADDR/USE_DEVICE_PTR.
4442
4443 2019-11-11 H.J. Lu <hjl.tools@gmail.com>
4444
4445 PR target/87833
4446 * config/i386/intelmic-mkoffload.c (prepare_target_image): Put
4447 -fPIC and -shared the last to create offload image.
4448
4449 2019-11-11 Thomas Schwinge <thomas@codesourcery.com>
4450
4451 * gimplify.c (gimplify_scan_omp_clauses): Assert 'offset2' instead
4452 of 'offset'.
4453
4454 * Makefile.in (LANG_CONFIGUREFRAGS): Define.
4455 (config.status): Use/depend on it.
4456 * configure.ac (all_lang_configurefrags): Track, 'AC_SUBST'.
4457 * configure: Regenerate.
4458
4459 2019-11-11 Jiufu Guo <guojiufu@linux.ibm.com>
4460
4461 PR tree-optimization/88760
4462 * gcc/config/rs6000/rs6000.opt (-munroll-only-small-loops): New option.
4463 * gcc/common/config/rs6000/rs6000-common.c
4464 (rs6000_option_optimization_table) [OPT_LEVELS_2_PLUS_SPEED_ONLY]:
4465 Turn on -funroll-loops and -munroll-only-small-loops.
4466 [OPT_LEVELS_ALL]: Turn off -fweb and -frename-registers.
4467 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
4468 set of PARAM_MAX_UNROLL_TIMES and PARAM_MAX_UNROLLED_INSNS.
4469 Turn off -munroll-only-small-loops for explicit -funroll-loops.
4470 (TARGET_LOOP_UNROLL_ADJUST): Add loop unroll adjust hook.
4471 (rs6000_loop_unroll_adjust): Define it. Use -munroll-only-small-loops.
4472
4473 2019-11-11 Kewen Lin <linkw@gcc.gnu.org>
4474
4475 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
4476 Make scalar_load, vector_load, unaligned_load and
4477 vector_gather_load cost more to conform hardware latency and
4478 insn cost settings.
4479
4480 2019-11-10 Iain Sandoe <iain@sandoe.co.uk>
4481
4482 * config/darwin.h (MACHO_SYMBOL_FLAG_LINKER_VIS): New.
4483 (MACHO_SYMBOL_LINKER_VIS_P): New.
4484
4485 2019-11-10 Kwok Cheung Yeung <kcy@codesourcery.com>
4486
4487 * lra-spills.c (assign_spill_hard_regs): Do not spill into
4488 registers in eliminable_regset.
4489
4490 2019-11-10 Jan Hubicka <hubicka@ucw.cz>
4491
4492 * ipa-inline.c (compute_uninlined_call_time,
4493 compute_inlined_call_time): Take edge frequency as
4494 parameter rather than computing it by itself.
4495 (big_speedup_p, edge_badness): Manually CSE sreal
4496 frequency calculations.
4497
4498 2019-11-10 Jan Hubicka <hubicka@ucw.cz>
4499
4500 * profile-count.c (profile_count::to_sreal_scale): Short circuit
4501 case where profiles are same.
4502
4503 2019-11-10 Jan Hubicka <hubicka@ucw.cz>
4504
4505 * cgraph.c (cgraph_edge::maybe_hot_p): Do not use sreal_frequency.
4506
4507 2019-11-10 Jan Hubicka <hubicka@ucw.cz>
4508
4509 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove ipa edge
4510 args summaries of inlined edge unless it holds info about
4511 described reference.
4512
4513 2019-11-10 Segher Boessenkool <segher@kernel.crashing.org>
4514
4515 * config/rs6000/rs6000.md (CC_any): New mode iterator.
4516 (*movcc_internal1): Rename to...
4517 (*movcc_<mode> for CC_any): ... this. Support moves of all CC modes.
4518
4519 2019-11-09 Jan Hubicka <hubicka@ucw.cz>
4520
4521 * cgraph.h (struct cgraph_node): Add ipcp_clone flag.
4522 (cgraph_node::create_virtual_clone): Copy it.
4523 * ipa-cp.c (ipcp_versionable_function_p): Watch for missing
4524 summaries.
4525 (ignore_edge_p): If caller has ipa-cp disabled, skip the edge, too.
4526 (ipcp_verify_propagated_values): Do not verify nodes where ipcp
4527 is disabled.
4528 (propagate_constants_across_call): If callee is not analyzed, give up.
4529 (propagate_constants_topo): Lower to bottom latties of all callees of
4530 functions with ipa-cp disabled.
4531 (ipcp_propagate_stage): Skip functions with ipa-cp disabled.
4532 (cgraph_edge_brings_value_p): Check for availability first.
4533 (create_specialized_node): Set ipcp_clone.
4534 (ipcp_store_bits_results): Check that info is present.
4535 * ipa-fnsummary.c (evaluate_properties_for_edge): Do not analyze
4536 thunks.
4537 (ipa_call_context::duplicate_from, ipa_call_context::equal_to): Be
4538 conservative when callee summary is missing.
4539 (remap_edge_summaries): Lookup call summary only when needed.
4540 * ipa-icf.c (sem_function::param_used_p): Be ready for missing summary.
4541 * ipa-prpo.c (ipa_alloc_node_params, ipa_initialize_node_params):
4542 Use get_create.
4543 (ipa_analyze_node): Use get_create.
4544 (propagate_controlled_uses): Do not propagate when function is not
4545 analyzed.
4546 (ipa_propagate_indirect_call_infos): Remove summary of inline clone.
4547 (ipa_read_node_info): Use get_create.
4548 * ipa-prop.h (IPA_NODE_REF): Use get.
4549 (IPA_NODE_REF_GET_CREATE): New.
4550
4551 2019-11-09 Jan Hubicka <hubicka@ucw.cz>
4552
4553 * ipa-fnsummary.c (evaluate_properties_for_edge): Call IPA_NODE_REF
4554 on function symbol.
4555
4556 2019-11-09 Jan Hubicka <hubicka@ucw.cz>
4557
4558 * tree.c (fld_incomplete_type_of): Clear TYPE_FINAL_P, TYPE_EMPTY_P,
4559 ENUM_IS_OPAQUE and ENUM_IS_SCOPED.
4560 (free_lang_data_in_binfo): Clear TREE_PUBLIC in BINFO
4561 (free_lang_data_in_type): Clear ENUM_IS_OPAQUE and ENUM_IS_SCOPED.
4562
4563 2019-11-09 Jan Hubicka <hubicka@ucw.cz>
4564
4565 * ipa-inline-analysis.c (do_estimate_growth_1): Add support for
4566 capping the growth cumulated.
4567 (offline_size): Break out from ...
4568 (estimate_growth): ... here.
4569 (check_callers): Add N, OFFLINE and MIN_SIZE and KNOWN_EDGE
4570 parameters.
4571 (growth_likely_positive): Turn to ...
4572 (growth_positive_p): Re-implement.
4573 * ipa-inline.h (growth_likely_positive): Remove.
4574 (growth_positive_p): Declare.
4575 * ipa-inline.c (want_inline_small_function_p): Use
4576 growth_positive_p.
4577 (want_inline_function_to_all_callers_p): Likewise.
4578
4579 2019-11-09 Jan Hubicka <hubicka@ucw.cz>
4580
4581 * ipa-fnsummary.c (ipa_call_context::estimate_size_and_time): Fix
4582 calculation of min_size.
4583 (ipa_update_overall_fn_summary): Likewise.
4584
4585 2019-11-09 Jan Hubicka <hubicka@ucw.cz>
4586
4587 * ipa-fnsummary.c (estimate_edge_size_and_time): Do not call
4588 estimate_edge_devirt_benefit when not computing hints;
4589 do not compute time when not asked for.
4590 (estimate_calls_size_and_time): Pass NULL hints and time when
4591 these are not computed; do not evaluate hint predicates when these are
4592 not computed.
4593 (ipa_merge_fn_summary_after_inlining): Do not re-evaluate edge
4594 frequency.
4595
4596 2019-11-09 Jakub Jelinek <jakub@redhat.com>
4597
4598 PR tree-optimization/92401
4599 * gimple-match-head.c (gimple_resimplify1): Call const_unop only
4600 if res_op->code is an expression with code length 1.
4601 * gimple-match-head.c (gimple_resimplify2): Call const_binop only
4602 if res_op->code is an expression with code length 2.
4603 * gimple-match-head.c (gimple_resimplify3): Call fold_ternary only
4604 if res_op->code is an expression with code length 3.
4605
4606 2019-11-09 Iain Sandoe <iain@sandoe.co.uk>
4607
4608 * config/darwin.c (machopic_mcount_stub_name): Validate the
4609 symbol stub name when it is created.
4610 * config/i386/darwin.h (FUNCTION_PROFILER): Remove the symbol
4611 stub validation.
4612
4613 2019-11-09 Jakub Jelinek <jakub@redhat.com>
4614
4615 * symtab.c: Fix comment typos.
4616 * cgraphunit.c: Likewise.
4617 * cgraph.h: Likewise.
4618 * cgraphclones.c: Likewise.
4619 * cgraph.c: Likewise.
4620 * varpool.c: Likewise.
4621 * tree-ssa-strlen.c: Likewise.
4622 * ipa-sra.c: Likewise.
4623 (scan_expr_access, check_all_callers_for_issues): Fix typo
4624 in a dump message.
4625
4626 2019-11-08 Iain Sandoe <iain@sandoe.co.uk>
4627
4628 * config/darwin-protos.h: Add include quard.
4629
4630 2019-11-08 Andrew MacLeod <amacleod@redhat.com>
4631
4632 * range-op.h (range_operator::fold_range): Return result in a
4633 reference parameter instead of by value.
4634 (range_operator::wi_fold): Same.
4635 * range-op.cc (range_operator::wi_fold): Return result in a reference
4636 parameter instead of by value.
4637 (range_operator::fold_range): Same.
4638 (value_range_from_overflowed_bounds): Same.
4639 (value_range_with_overflow): Same
4640 (create_possibly_reversed_range): Same.
4641 (operator_equal::fold_range): Same.
4642 (operator_not_equal::fold_range): Same.
4643 (operator_lt::fold_range): Same.
4644 (operator_le::fold_range): Same.
4645 (operator_gt::fold_range): Same.
4646 (operator_ge::fold_range): Same.
4647 (operator_plus::wi_fold): Same.
4648 (operator_plus::op1_range): Change call to fold_range.
4649 (operator_plus::op2_range): Change call to fold_range.
4650 (operator_minus::wi_fold): Return result via reference parameter.
4651 (operator_minus::op1_range): Change call to fold_range.
4652 (operator_minus::op2_range): Change call to fold_range.
4653 (operator_min::wi_fold): Return result via reference parameter.
4654 (operator_max::wi_fold): Same.
4655 (cross_product_operator::wi_cross_product): Same.
4656 (operator_mult::wi_fold): Same.
4657 (operator_div::wi_fold): Same.
4658 (operator_div op_floor_div): Fix whitespace.
4659 (operator_exact_divide::op1_range): Change call to fold_range.
4660 (operator_lshift::fold_range): Return result via reference parameter.
4661 (operator_lshift::wi_fold): Same.
4662 (operator_rshift::fold_range): Same.
4663 (operator_rshift::wi_fold): Same.
4664 (operator_cast::fold_range): Same.
4665 (operator_cast::op1_range): Change calls to fold_range.
4666 (operator_logical_and::fold_range): Return result via reference.
4667 (wi_optimize_and_or): Adjust call to value_range_with_overflow.
4668 (operator_bitwise_and::wi_fold): Return result via reference.
4669 (operator_logical_or::fold_range): Same.
4670 (operator_bitwise_or::wi_fold): Same.
4671 (operator_bitwise_xor::wi_fold): Same.
4672 (operator_trunc_mod::wi_fold): Same.
4673 (operator_logical_not::fold_range): Same.
4674 (operator_bitwise_not::fold_range): Same.
4675 (operator_bitwise_not::op1_range): Change call to fold_range.
4676 (operator_cst::fold_range): Return result via reference.
4677 (operator_identity::fold_range): Same.
4678 (operator_abs::wi_fold): Same.
4679 (operator_absu::wi_fold): Same.
4680 (operator_negate::fold_range): Same.
4681 (operator_negate::op1_range): Change call to fold_range.
4682 (operator_addr_expr::fold_range): Return result via reference.
4683 (operator_addr_expr::op1_range): Change call to fold_range.
4684 (operator_pointer_plus::wi_fold): Return result via reference.
4685 (operator_pointer_min_max::wi_fold): Same.
4686 (operator_pointer_and::wi_fold): Same.
4687 (operator_pointer_or::wi_fold): Same.
4688 (range_op_handler): Change call to fold_range.
4689 (range_cast): Same.
4690 * tree-vrp.c (range_fold_binary_symbolics_p): Change call to
4691 fold_range.
4692 (range_fold_unary_symbolics_p): Same.
4693 (range_fold_binary_expr): Same.
4694 (range_fold_unary_expr): Same.
4695
4696 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
4697
4698 * tree-vect-loop.c (neutral_op_for_slp_reduction): Take the
4699 vector type as an argument rather than reading it from the
4700 stmt_vec_info.
4701 (vect_create_epilog_for_reduction): Update accordingly.
4702 (vectorizable_reduction): Likewise.
4703 (vect_transform_cycle_phi): Likewise.
4704
4705 2019-11-08 Segher Boessenkool <segher@kernel.crashing.org>
4706
4707 * config/rs6000/predicates.md (branch_comparison_operator): Allow only
4708 the comparison codes that make sense for the mode used, and only the
4709 codes that can be done with a single branch instruction.
4710
4711 2019-11-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
4712
4713 PR tree-optimization/92351
4714 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): When we are
4715 peeling the main loop for alignment, make sure to set the misalignment
4716 of the epilogue's data references to DR_MISALIGNMENT_UNKNOWN.
4717
4718 2019-11-08 Richard Biener <rguenther@suse.de>
4719
4720 * dbgcnt.def (ivopts_loop): Add.
4721 * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Check
4722 ivopts_loop before optimizing a loop.
4723
4724 2019-11-08 Richard Biener <rguenther@suse.de>
4725
4726 PR ipa/92409
4727 * tree-inline.c (declare_return_variable): Properly handle
4728 type mismatches for the return slot.
4729
4730 2019-11-08 Eric Botcazou <ebotcazou@adacore.com>
4731
4732 PR target/92095
4733 * config/sparc/sparc-protos.h (output_load_pcrel_sym): Declare.
4734 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Revert latest
4735 change.
4736 (got_helper_needed): New static variable.
4737 (output_load_pcrel_sym): New function.
4738 (get_pc_thunk_name): Remove after inlining...
4739 (load_got_register): ...here. Rework the initialization of the GOT
4740 register and of the GOT helper.
4741 (save_local_or_in_reg_p): Test the REGNO of the GOT register.
4742 (sparc_file_end): Test got_helper_needed to decide whether the GOT
4743 helper must be emitted. Use output_asm_insn instead of fprintf.
4744 (sparc_init_pic_reg): In PIC mode, always initialize the PIC register
4745 if optimization is enabled.
4746 * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Emit the assembly
4747 by calling output_load_pcrel_sym.
4748
4749 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
4750
4751 * tree-sra.c (create_access): Delay disqualifying the base
4752 for poly_int values until we know we have a base.
4753
4754 2019-11-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
4755
4756 * tree-vect-loop.c (vect_analyze_loop): Disable epilogue vectorization
4757 for loops with SIMDUID set. Enable epilogue vectorization for loops
4758 with SIMDLEN set after finding a main loop with a VF that matches it.
4759
4760 2019-11-08 Jakub Jelinek <jakub@redhat.com>
4761
4762 PR target/92038
4763 * gimple-ssa-store-merging.c (find_constituent_stores): For return
4764 value only, return non-NULL if there is a single non-clobber
4765 constituent store even if there are constituent clobbers and return
4766 one of clobber constituent stores if all constituent stores are
4767 clobbers.
4768 (split_group): Handle clobbers.
4769 (imm_store_chain_info::output_merged_store): When computing
4770 bzero_first, look after all clobbers at the start. Don't count
4771 clobber stmts in orig_num_stmts, except if the first orig store is
4772 a clobber covering the whole area and split_stores cover the whole
4773 area, consider equal number of stmts ok. Punt if split_stores
4774 contains only ->orig stores and their number plus number of original
4775 clobbers is equal to original number of stmts. For ->orig, look past
4776 clobbers in the constituent stores.
4777 (imm_store_chain_info::output_merged_stores): Don't remove clobber
4778 stmts.
4779 (rhs_valid_for_store_merging_p): Don't return false for clobber stmt
4780 rhs.
4781 (store_valid_for_store_merging_p): Allow clobber stmts.
4782 (verify_clear_bit_region_be): Fix up a thinko in function comment.
4783
4784 PR c++/92384
4785 * function.c (assign_parm_setup_block, assign_parm_setup_stack): Don't
4786 copy TYPE_EMPTY_P arguments from data->entry_parm to data->stack_parm
4787 slot.
4788 (assign_parms): For TREE_ADDRESSABLE parms with TYPE_EMPTY_P type
4789 force creation of a unique data.stack_parm slot.
4790
4791 2019-11-08 Richard Biener <rguenther@suse.de>
4792
4793 * genmatch.c (expr::gen_transform): Use the resimplify
4794 member function instead of hard-coding the gimple_resimplifyN variant.
4795 (dt_simplify::gen_1): Likewise.
4796
4797 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
4798
4799 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
4800 POLY_INT_CST.
4801
4802 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
4803
4804 * tree-inline.c (declare_return_variable): Check for poly_int_tree_p
4805 instead of INTEGER_CST.
4806
4807 2019-11-08 Richard Biener <rguenther@suse.de>
4808
4809 PR tree-optimization/92324
4810 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
4811 STMT_VINFO_REDUC_VECTYPE for all computations, inserting
4812 sign-conversions as necessary.
4813 (vectorizable_reduction): Reject conversions in the chain
4814 that are not sign-conversions, base analysis on a non-converting
4815 stmt and its operation sign. Set STMT_VINFO_REDUC_VECTYPE.
4816 * tree-vect-stmts.c (vect_stmt_relevant_p): Don't dump anything
4817 for debug stmts.
4818 * tree-vectorizer.h (_stmt_vec_info::reduc_vectype): New.
4819 (STMT_VINFO_REDUC_VECTYPE): Likewise.
4820
4821 2019-11-08 Georg-Johann Lay <avr@gjlay.de>
4822
4823 PR target/92055
4824 * config/avr/avr.opt (-mdouble=, -mlong-double=):
4825 Fix a missing '-' when displaying these options in the
4826 help screen.
4827
4828 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
4829
4830 * config/aarch64/iterators.md (SVE_BH, SVE_BHS): Delete.
4831
4832 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
4833
4834 * config/aarch64/aarch64-builtins.c
4835 (aarch64_builtin_vectorized_function): Remove bswap handling.
4836
4837 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
4838
4839 * tree-core.h (tree_type_common::indivisible_p): New member variable.
4840 * tree.h (TYPE_INDIVISIBLE_P): New macro.
4841 * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types):
4842 Treat the vector types as indivisible.
4843
4844 2019-11-08 Richard Sandiford <richard.sandiford@arm.com>
4845
4846 * optabs.def (gather_load_optab, mask_gather_load_optab)
4847 (scatter_store_optab, mask_scatter_store_optab): Turn into
4848 conversion optabs, with the offset mode given explicitly.
4849 * doc/md.texi: Update accordingly.
4850 * config/aarch64/aarch64-sve-builtins-base.cc
4851 (svld1_gather_impl::expand): Likewise.
4852 (svst1_scatter_impl::expand): Likewise.
4853 * internal-fn.c (gather_load_direct, scatter_store_direct): Likewise.
4854 (expand_scatter_store_optab_fn): Likewise.
4855 (direct_gather_load_optab_supported_p): Likewise.
4856 (direct_scatter_store_optab_supported_p): Likewise.
4857 (expand_gather_load_optab_fn): Likewise. Expect the mask argument
4858 to be argument 4.
4859 (internal_fn_mask_index): Return 4 for IFN_MASK_GATHER_LOAD.
4860 (internal_gather_scatter_fn_supported_p): Replace the offset sign
4861 argument with the offset vector type. Require the two vector
4862 types to have the same number of elements but allow their element
4863 sizes to be different. Treat the optabs as conversion optabs.
4864 * internal-fn.h (internal_gather_scatter_fn_supported_p): Update
4865 prototype accordingly.
4866 * optabs-query.c (supports_at_least_one_mode_p): Replace with...
4867 (supports_vec_convert_optab_p): ...this new function.
4868 (supports_vec_gather_load_p): Update accordingly.
4869 (supports_vec_scatter_store_p): Likewise.
4870 * tree-vectorizer.h (vect_gather_scatter_fn_p): Take a vec_info.
4871 Replace the offset sign and bits parameters with a scalar type tree.
4872 * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Likewise.
4873 Pass back the offset vector type instead of the scalar element type.
4874 Allow the offset to be wider than the memory elements. Search for
4875 an offset type that the target supports, stopping once we've
4876 reached the maximum of the element size and pointer size.
4877 Update call to internal_gather_scatter_fn_supported_p.
4878 (vect_check_gather_scatter): Update calls accordingly.
4879 When testing a new scale before knowing the final offset type,
4880 check whether the scale is supported for any signed or unsigned
4881 offset type. Check whether the target supports the source and
4882 target types of a conversion before deciding whether to look
4883 through the conversion. Record the chosen offset_vectype.
4884 * tree-vect-patterns.c (vect_get_gather_scatter_offset_type): Delete.
4885 (vect_recog_gather_scatter_pattern): Get the scalar offset type
4886 directly from the gs_info's offset_vectype instead. Pass a zero
4887 of the result type to IFN_GATHER_LOAD and IFN_MASK_GATHER_LOAD.
4888 * tree-vect-stmts.c (check_load_store_masking): Update call to
4889 internal_gather_scatter_fn_supported_p, passing the offset vector
4890 type recorded in the gs_info.
4891 (vect_truncate_gather_scatter_offset): Update call to
4892 vect_check_gather_scatter, leaving it to search for a valid
4893 offset vector type.
4894 (vect_use_strided_gather_scatters_p): Convert the offset to the
4895 element type of the gs_info's offset_vectype.
4896 (vect_get_gather_scatter_ops): Get the offset vector type directly
4897 from the gs_info.
4898 (vect_get_strided_load_store_ops): Likewise.
4899 (vectorizable_load): Pass a zero of the result type to IFN_GATHER_LOAD
4900 and IFN_MASK_GATHER_LOAD.
4901 * config/aarch64/aarch64-sve.md (gather_load<mode>): Rename to...
4902 (gather_load<mode><v_int_equiv>): ...this.
4903 (mask_gather_load<mode>): Rename to...
4904 (mask_gather_load<mode><v_int_equiv>): ...this.
4905 (scatter_store<mode>): Rename to...
4906 (scatter_store<mode><v_int_equiv>): ...this.
4907 (mask_scatter_store<mode>): Rename to...
4908 (mask_scatter_store<mode><v_int_equiv>): ...this.
4909
4910 2019-11-08 Kewen Lin <linkw@gcc.gnu.org>
4911
4912 PR target/92132
4913 * config/rs6000/predicates.md
4914 (signed_or_equality_comparison_operator): New predicate.
4915 (unsigned_or_equality_comparison_operator): Likewise.
4916 * config/rs6000/rs6000.md (one_cmpl<mode>2): Remove expand.
4917 (one_cmpl<mode>3_internal): Rename to one_cmpl<mode>2.
4918 * config/rs6000/vector.md
4919 (vcond_mask_<mode><mode> for VEC_I and VEC_I): New expand.
4920 (vec_cmp<mode><mode> for VEC_I and VEC_I): Likewise.
4921 (vec_cmpu<mode><mode> for VEC_I and VEC_I): Likewise.
4922 (vcond_mask_<mode><VEC_int> for VEC_F): New expand for float
4923 vector modes and same-size integer vector modes.
4924 (vec_cmp<mode><VEC_int> for VEC_F): Likewise.
4925 (vector_lt<mode> for VEC_F): New expand.
4926 (vector_le<mode> for VEC_F): Likewise.
4927 (vector_ne<mode> for VEC_F): Likewise.
4928 (vector_unge<mode> for VEC_F): Likewise.
4929 (vector_ungt<mode> for VEC_F): Likewise.
4930 (vector_unle<mode> for VEC_F): Likewise.
4931 (vector_unlt<mode> for VEC_F): Likewise.
4932 (vector_uneq<mode>): Expose name.
4933 (vector_ltgt<mode>): Likewise.
4934 (vector_unordered<mode>): Likewise.
4935 (vector_ordered<mode>): Likewise.
4936
4937 2019-11-08 Hongtao Liu <Hongtao.liu@intel.com>
4938
4939 PR target/92295
4940 * config/i386/i386-expand.c (ix86_expand_vector_init_concat)
4941 Enhance ix86_expand_vector_init_concat.
4942
4943 2019-11-08 Joseph Myers <joseph@codesourcery.com>
4944
4945 * doc/invoke.texi (-Wold-style-definition): Document () not being
4946 considered an old-style definition for C2x.
4947
4948 2019-11-07 John David Anglin <danglin@gcc.gnu.org>
4949
4950 * config/pa/pa.md (memory_barrier): Revise to use ldcw barriers.
4951 Enhance comment.
4952 (memory_barrier_coherent, memory_barrier_64, memory_barrier_32): New
4953 insn patterns using ldcw instruction.
4954 (memory_barrier): Remove insn pattern using sync instruction.
4955 * config/pa/pa.opt (coherent-ldcw): New option.
4956 (ordered): New option.
4957
4958 2019-11-07 Segher Boessenkool <segher@kernel.crashing.org>
4959
4960 * config/rs6000/rs6000.c (validate_condition_mode): Don't assert for
4961 valid conditions.
4962
4963 2019-11-07 Jakub Jelinek <jakub@redhat.com>
4964
4965 * ipa-utils.c (ipa_merge_profiles): Fix fprintf format string
4966 typo - mistmatch -> mismatch.
4967 * ipa-profile.c (ipa_profile): Likewise.
4968 * ipa-devirt.c (compare_virtual_tables): Fix a comment typo
4969 - mistmatch -> mismatch.
4970
4971 2018-11-07 Segher Boessenkool <segher@kernel.crashing.org>
4972
4973 * simplify-rtx.c (comparison_to_mask): New function.
4974 (mask_to_comparison): New function.
4975 (simplify_logical_relational_operation): New function.
4976 (simplify_binary_operation_1): Call
4977 simplify_logical_relational_operation.
4978
4979 2019-11-07 Peter Bergner <bergner@linux.ibm.com>
4980
4981 PR other/92090
4982 * config/rs6000/predicates.md (input_operand): Allow MODE_PARTIAL_INT
4983 modes for integer constants.
4984
4985 2019-11-07 Jan Hubicka <jh@suse.cz>
4986
4987 PR ipa/92406
4988 * ipa-fnsummary.c (analyze_function_body): Use get_create to copy
4989 summary.
4990
4991 2019-11-07 Jan Hubicka <jh@suse.cz>
4992
4993 * optc-save-gen.awk: Generate cl_target_option_free
4994 and cl_optimization_option_free.
4995 * opth-en.awk: Declare cl_target_option_free
4996 and cl_optimization_option_free.
4997 * tree.c (free_node): Use it.
4998
4999 2019-11-06 Jan Hubicka <jh@suse.cz>
5000
5001 * lto-streamer-in.c: Include alloc-pool.h.
5002 (freeing_string_slot_hasher): Remove.
5003 (string_slot_allocator): New object allocator.
5004 (file_name_hash_table): Turn to hash_table<string_slot_hasher>.
5005 (file_name_obstack): New obstack.
5006 (canon_file_name): Allocate in obstack and allocator.
5007 (lto_reader_init): Initialize obstack and allocator.
5008 (lto_free_file_name_hash): New function.
5009 * lto-streamer.h (lto_free_file_name_hash): New.
5010
5011 2019-11-07 Feng Xue <fxue@os.amperecomputing.com>
5012
5013 PR tree-optimization/89134
5014 * doc/invoke.texi (min-loop-cond-split-prob): Document new --params.
5015 * params.def: Add min-loop-cond-split-prob.
5016 * tree-ssa-loop-split.c (split_loop): Remove niter parameter, move some
5017 outside checks on loop into the function.
5018 (split_info): New class.
5019 (find_vdef_in_loop, get_control_equiv_head_block): New functions.
5020 (find_control_dep_blocks, vuse_semi_invariant_p): Likewise.
5021 (ssa_semi_invariant_p, loop_iter_phi_semi_invariant_p): Likewise.
5022 (control_dep_semi_invariant_p, stmt_semi_invariant_p_1): Likewise.
5023 (stmt_semi_invariant_p, branch_removable_p): Likewise.
5024 (get_cond_invariant_branch, compute_added_num_insns): Likewise.
5025 (get_cond_branch_to_split_loop, do_split_loop_on_cond): Likewise.
5026 (split_loop_on_cond): Likewise.
5027 (tree_ssa_split_loops): Add loop split on conditional statement.
5028
5029 2019-11-07 Andreas Krebbel <krebbel@linux.ibm.com>
5030
5031 * config/s390/s390.md ("*cstorecc<mode>_z13"): New insn_and_split
5032 pattern.
5033
5034 2019-11-07 Richard Biener <rguenther@suse.de>
5035
5036 PR tree-optimization/92405
5037 * tree-vect-loop.c (vectorizable_reduction): Appropriately
5038 restrict lane-reducing ops to single stmt chains.
5039
5040 2019-11-07 Martin Jambor <mjambor@suse.cz>
5041
5042 PR lto/70929
5043 * cif-code.def (MISMATCHED_ARGUMENTS): Removed.
5044 * cgraph.h (gimple_check_call_matching_types): Remove
5045 * cgraph.c (gimple_check_call_args): Likewise.
5046 (gimple_check_call_matching_types): Likewise.
5047 (symbol_table::create_edge): Do not call
5048 gimple_check_call_matching_types.
5049 (cgraph_edge::make_direct): Likewise.
5050 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
5051 * value-prof.h (check_ic_target): Remove.
5052 * value-prof.c (check_ic_target): Remove.
5053 (gimple_ic_transform): Do nat call check_ic_target.
5054 * auto-profile.c (function_instance::find_icall_target_map): Likewise.
5055 (afdo_indirect_call): Likewise.
5056 * ipa-prop.c (update_indirect_edges_after_inlining): Do not call
5057 gimple_check_call_matching_types.
5058 * ipa-inline.c (early_inliner): Likewise.
5059
5060 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5061
5062 * config/arm/arm.md (arm_<simd32_op>): New define_expand.
5063 (arm_<simd32_op><add_clobber_q_name>_insn): New define_insn.
5064 * config/arm/arm_acle.h (__ssat16, __usat16): Define.
5065 * config/arm/arm_acle_builtins.def: Define builtins for the above.
5066 * config/arm/iterators.md (USSAT16): New int_iterator.
5067 (simd32_op): Handle UNSPEC_SSAT16, UNSPEC_USAT16.
5068 (sup): Likewise.
5069 * config/arm/predicates.md (ssat16_imm): New predicate.
5070 (usat16_imm): Likewise.
5071 * config/arm/unspecs.md (UNSPEC_SSAT16, UNSPEC_USAT16): Define.
5072
5073 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5074
5075 * config/arm/arm.md (arm_<simd32_op><add_clobber_q_name>_insn):
5076 New define_insns.
5077 (arm_<simd32_op>): New define_expands.
5078 * config/arm/arm_acle.h (__smlad, __smladx, __smlsd, __smlsdx,
5079 __smuad, __smuadx): Define.
5080 * config/arm/arm_acle_builtins.def: Define builtins for the above.
5081 * config/arm/iterators.md (SIMD32_TERNOP_Q): New int_iterator.
5082 (SIMD32_BINOP_Q): Likewise.
5083 (simd32_op): Handle the above.
5084 * config/arm/unspecs.md: Define unspecs for the above.
5085
5086 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5087
5088 * config/arm/aout.h (REGISTER_NAMES): Add apsrge.
5089 * config/arm/arm.md (APSRGE_REGNUM): Define.
5090 (arm_<simd32_op>): New define_insn.
5091 (arm_sel): Likewise.
5092 * config/arm/arm.h (FIXED_REGISTERS): Add entry for apsrge.
5093 (CALL_USED_REGISTERS): Likewise.
5094 (REG_ALLOC_ORDER): Likewise.
5095 (FIRST_PSEUDO_REGISTER): Update value.
5096 (ARM_GE_BITS_READ): Define.
5097 * config/arm/arm.c (arm_conditional_register_usage): Clear
5098 APSRGE_REGNUM from operand_reg_set.
5099 (arm_ge_bits_access): Define.
5100 * config/arm/arm-builtins.c (arm_check_builtin_call): Handle
5101 ARM_BUIILTIN_sel.
5102 * config/arm/arm-protos.h (arm_ge_bits_access): Declare prototype.
5103 * config/arm/arm-fixed.md (add<mode>3): Convert to define_expand.
5104 FAIL if ARM_GE_BITS_READ.
5105 (*arm_add<mode>3): New define_insn.
5106 (sub<mode>3): Convert to define_expand. FAIL if ARM_GE_BITS_READ.
5107 (*arm_sub<mode>3): New define_insn.
5108 * config/arm/arm_acle.h (__sel, __sadd8, __ssub8, __uadd8, __usub8,
5109 __sadd16, __sasx, __ssax, __ssub16, __uadd16, __uasx, __usax,
5110 __usub16): Define.
5111 * config/arm/arm_acle_builtins.def: Define builtins for the above.
5112 * config/arm/iterators.md (SIMD32_GE): New int_iterator.
5113 (simd32_op): Handle the above.
5114 * config/arm/unspecs.md (UNSPEC_GE_SET): Define.
5115 (UNSPEC_SEL, UNSPEC_SADD8, UNSPEC_SSUB8, UNSPEC_UADD8, UNSPEC_USUB8,
5116 UNSPEC_SADD16, UNSPEC_SASX, UNSPEC_SSAX, UNSPEC_SSUB16, UNSPEC_UADD16,
5117 UNSPEC_UASX, UNSPEC_USAX, UNSPEC_USUB16): Define.
5118
5119 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5120
5121 * config/arm/arm.md (arm_smlabb_setq): New define_insn.
5122 (arm_smlabb): New define_expand.
5123 (*maddhisi4tb): Rename to...
5124 (maddhisi4tb): ... This.
5125 (*maddhisi4tt): Rename to...
5126 (maddhisi4tt): ... This.
5127 (arm_smlatb_setq): New define_insn.
5128 (arm_smlatb): New define_expand.
5129 (arm_smlatt_setq): New define_insn.
5130 (arm_smlatt): New define_expand.
5131 (arm_<smlaw_op><add_clobber_name>_insn): New define_insn.
5132 (arm_<smlaw_op>): New define_expand.
5133 * config/arm/arm_acle.h (__smlabb, __smlatb, __smlabt, __smlatt,
5134 __smlawb, __smlawt): Define.
5135 * config/arm_acle_builtins.def: Define builtins for the above.
5136 * config/arm/iterators.md (SMLAWBT): New int_iterator.
5137 (slaw_op): New int_attribute.
5138 * config/arm/unspecs.md (UNSPEC_SMLAWB, UNSPEC_SMLAWT): Define.
5139
5140 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5141
5142 * config/arm/arm.md (arm_<ss_op>): New define_expand.
5143 (arm_<ss_op><add_clobber_q_name>_insn): New define_insn.
5144 * config/arm/arm_acle.h (__qadd, __qsub, __qdbl): Define.
5145 * config/arm/arm_acle_builtins.def: Add builtins for qadd, qsub.
5146 * config/arm/iterators.md (SSPLUSMINUS): New code iterator.
5147 (ss_op): New code_attr.
5148
5149 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5150
5151 * config/arm/aout.h (REGISTER_NAMES): Add apsrq.
5152 * config/arm/arm.md (APSRQ_REGNUM): Define.
5153 (add_setq): New define_subst.
5154 (add_clobber_q_name): New define_subst_attr.
5155 (add_clobber_q_pred): Likewise.
5156 (maddhisi4): Change to define_expand. Split into mult and add if
5157 ARM_Q_BIT_READ.
5158 (arm_maddhisi4): New define_insn.
5159 (*maddhisi4tb): Disable for ARM_Q_BIT_READ.
5160 (*maddhisi4tt): Likewise.
5161 (arm_ssat): New define_expand.
5162 (arm_usat): Likewise.
5163 (arm_get_apsr): New define_insn.
5164 (arm_set_apsr): Likewise.
5165 (arm_saturation_occurred): New define_expand.
5166 (arm_set_saturation): Likewise.
5167 (*satsi_<SAT:code>): Rename to...
5168 (satsi_<SAT:code><add_clobber_q_name>): ... This.
5169 (*satsi_<SAT:code>_shift): Disable for ARM_Q_BIT_READ.
5170 * config/arm/arm.h (FIXED_REGISTERS): Mark apsrq as fixed.
5171 (CALL_USED_REGISTERS): Mark apsrq.
5172 (FIRST_PSEUDO_REGISTER): Update value.
5173 (REG_ALLOC_ORDER): Add APSRQ_REGNUM.
5174 (machine_function): Add q_bit_access.
5175 (ARM_Q_BIT_READ): Define.
5176 * config/arm/arm.c (TARGET_CHECK_BUILTIN_CALL): Define.
5177 (arm_conditional_register_usage): Clear APSRQ_REGNUM from
5178 operand_reg_set.
5179 (arm_q_bit_access): Define.
5180 * config/arm/arm-builtins.c: Include stringpool.h.
5181 (arm_sat_binop_imm_qualifiers,
5182 arm_unsigned_sat_binop_unsigned_imm_qualifiers,
5183 arm_sat_occurred_qualifiers, arm_set_sat_qualifiers): Define.
5184 (SAT_BINOP_UNSIGNED_IMM_QUALIFIERS,
5185 UNSIGNED_SAT_BINOP_UNSIGNED_IMM_QUALIFIERS, SAT_OCCURRED_QUALIFIERS,
5186 SET_SAT_QUALIFIERS): Likewise.
5187 (arm_builtins): Define ARM_BUILTIN_SAT_IMM_CHECK.
5188 (arm_init_acle_builtins): Initialize __builtin_sat_imm_check.
5189 Handle 0 argument expander.
5190 (arm_expand_acle_builtin): Handle ARM_BUILTIN_SAT_IMM_CHECK.
5191 (arm_check_builtin_call): Define.
5192 * config/arm/arm.md (ssmulsa3, usmulusa3, usmuluha3,
5193 arm_ssatsihi_shift, arm_usatsihi): Disable when ARM_Q_BIT_READ.
5194 * config/arm/arm-protos.h (arm_check_builtin_call): Declare prototype.
5195 (arm_q_bit_access): Likewise.
5196 * config/arm/arm_acle.h (__ssat, __usat, __ignore_saturation,
5197 __saturation_occurred, __set_saturation_occurred): Define.
5198 * config/arm/arm_acle_builtins.def: Define builtins for ssat, usat,
5199 saturation_occurred, set_saturation_occurred.
5200 * config/arm/unspecs.md (UNSPEC_Q_SET): Define.
5201 (UNSPEC_APSR_READ): Likewise.
5202 (VUNSPEC_APSR_WRITE): Likewise.
5203 * config/arm/arm-fixed.md (ssadd<mode>3): Convert to define_expand.
5204 (*arm_ssadd<mode>3): New define_insn.
5205 (sssub<mode>3): Convert to define_expand.
5206 (*arm_sssub<mode>3): New define_insn.
5207 (ssmulsa3): Convert to define_expand.
5208 (*arm_ssmulsa3): New define_insn.
5209 (usmulusa3): Convert to define_expand.
5210 (*arm_usmulusa3): New define_insn.
5211 (ssmulha3): FAIL if ARM_Q_BIT_READ.
5212 (arm_ssatsihi_shift, arm_usatsihi): Disable for ARM_Q_BIT_READ.
5213 * config/arm/iterators.md (qaddsub_clob_q): New mode attribute.
5214
5215 2019-11-07 Martin Liska <mliska@suse.cz>
5216
5217 PR c++/92354
5218 * cgraph.c (delete_function_version): Clear global
5219 variable version_info_node if equal to deleted
5220 function.
5221
5222 2019-11-07 Martin Liska <mliska@suse.cz>
5223
5224 * fold-const.c (operand_compare::operand_equal_p): Add comparison
5225 of CONSTRUCTOR_NO_CLEARING.
5226 (operand_compare::hash_operand): Likewise.
5227
5228 2019-11-07 Georg-Johann Lay <avr@gjlay.de>
5229
5230 Support 64-bit double and 64-bit long double configurations.
5231
5232 PR target/92055
5233 * config.gcc (tm_defines) [avr]: Set from --with-double=,
5234 --with-long-double=.
5235 * config/avr/t-multilib: Remove.
5236 * config/avr/t-avr: Output of genmultilib.awk is now fully
5237 dynamically generated and no more part of the repo.
5238 (HAVE_DOUBLE_MULTILIB, HAVE_LONG_DOUBLE_MULTILIB): New variables.
5239 Pass them down to...
5240 * config/avr/genmultilib.awk: ...here and handle them.
5241 * config/avr/avr.opt (-mdouble=, avr_double). New option and var.
5242 (-mlong-double=, avr_long_double). New option and var.
5243 * common/config/avr/avr-common.c (opts.h, diagnostic.h): Include.
5244 (TARGET_OPTION_OPTIMIZATION_TABLE) <-mdouble=, -mlong-double=>:
5245 Set default as requested by --with-double=
5246 (TARGET_HANDLE_OPTION): Define to this...
5247 (avr_handle_option): ...new hook worker.
5248 * config/avr/avr.h (DOUBLE_TYPE_SIZE): Define to avr_double.
5249 (LONG_DOUBLE_TYPE_SIZE): Define to avr_long_double.
5250 (avr_double_lib): New proto for spec function.
5251 (EXTRA_SPEC_FUNCTIONS) <double-lib>: Add.
5252 (DRIVER_SELF_SPECS): Call %:double-lib.
5253 * config/avr/avr.c (avr_option_override): Assert
5254 sizeof(long double) >= sizeof(double) for the target.
5255 * config/avr/avr-c.c (avr_cpu_cpp_builtins)
5256 [__HAVE_DOUBLE_MULTILIB__, __HAVE_LONG_DOUBLE_MULTILIB__]
5257 [__HAVE_DOUBLE64__, __HAVE_DOUBLE32__, __DEFAULT_DOUBLE__=]
5258 [__HAVE_LONG_DOUBLE64__, __HAVE_LONG_DOUBLE32__]
5259 [__HAVE_LONG_DOUBLE_IS_DOUBLE__, __DEFAULT_LONG_DOUBLE__=]:
5260 New built-in define depending on --with-double=, --with-long-double=.
5261 * config/avr/driver-avr.c (avr_double_lib): New spec function.
5262 * doc/invoke.tex (AVR Options) <-mdouble=,-mlong-double=>: Doc.
5263 * doc/install.texi (Cross-Compiler-Specific Options)
5264 <--with-double=, --with-long-double=>: Doc.
5265
5266 2019-11-07 Richard Biener <rguenther@suse.de>
5267
5268 * dbgcnt.def (gimple_unroll): New.
5269 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Check
5270 gimple_unroll debug counter before applying transform.
5271 (try_peel_loop): Likewise.
5272
5273 2019-11-07 Kwok Cheung Yeung <kcy@codesourcery.com>
5274
5275 * ira.c (setup_alloc_regs): Setup no_unit_alloc_regs for
5276 frame pointer in multiple registers.
5277 (ira_setup_eliminable_regset): Setup eliminable_regset,
5278 ira_no_alloc_regs and regs_ever_live for frame pointer in
5279 multiple registers.
5280
5281 2019-11-06 Kelvin Nilsen <kelvin@gcc.gnu.org>
5282
5283 * config/rs6000/vsx.md (xxswapd_<mode>): Add support for V2DF and
5284 V2DI modes.
5285
5286 2019-11-06 Jan Hubicka <jh@suse.cz>
5287
5288 * ggc-common.c (ggc_prune_overhead_list): Do not delete surviving
5289 allocations.
5290 * mem-stats.h (mem_alloc_description<T>::release_object_overhead):
5291 Do not silently ignore summary corruptions.
5292
5293 2019-11-06 Richard Sandiford <richard.sandiford@arm.com>
5294
5295 * tree-vect-loop.c (vect_analyze_loop): Only try to vectorize
5296 the epilogue if there are peeled iterations for it to handle.
5297
5298 2019-11-06 Claudiu Zissulescu <claziss@synopsys.com>
5299
5300 * config/arc/arc.c (arc_split_ior): Add asserts.
5301 (arc_split_mov_const): Likewise.
5302 (arc_check_ior_const): Do not match known short immediate values.
5303 * config/arc/arc.md (movsi): Don't split predicated instructions
5304 (iorsi): Likewise.
5305
5306 2019-11-06 Claudiu Zissulescu <claziss@synopsys.com>
5307
5308 * config/arc/arc.opt (mea): Update help string.
5309 * doc/invoke.texi(ARC): Update mea option info.
5310
5311 2019-11-06 Claudiu Zissulescu <claziss@synopsys.com>
5312
5313 * config/arc/arc.md (zero_extendqihi2_i): Cleanup pattern.
5314 (zero_extendqisi2_ac): Likewise.
5315 (zero_extendhisi2_i): Likewise.
5316 (extendqihi2_i): Likewise.
5317 (extendqisi2_ac): Likewise.
5318 (extendhisi2_i): Likewise.
5319
5320 2019-11-06 Richard Biener <rguenther@suse.de>
5321
5322 * tree-vect-loop.c (vectorizable_reduction): Remember reduction
5323 PHI. Use STMT_VINFO_REDUC_IDX to skip the reduction operand.
5324 Simplify single_defuse_cycle condition.
5325
5326 2019-11-06 Richard Sandiford <richard.sandiford@arm.com>
5327
5328 * tree-vect-loop.c (vect_analyze_loop_2): When vectorizing an
5329 epilogue loop, make sure that the VF is small enough or that
5330 the epilogue loop can be fully-masked.
5331
5332 2019-11-06 Richard Sandiford <richard.sandiford@arm.com>
5333
5334 * tree-vect-loop.c (vect_analyze_loop): Break out of the main
5335 loop when we've finished, rather than returning directly from
5336 the loop. Use a local variable to track whether we're still
5337 searching for the preferred simdlen. Make vect_epilogues
5338 record whether the next iteration should try to treat the
5339 loop as an epilogue.
5340
5341 2019-11-06 Vineet Gupta <vgupta@synopsys.com>
5342
5343 * config/arc/arc-c.c (arc_cpu_cpp_builtins) : Add
5344 __arc_hard_float__, __ARC_HARD_FLOAT__,
5345 __arc_soft_float__, __ARC_SOFT_FLOAT__
5346
5347 2019-11-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
5348
5349 PR tree-optimization/92317
5350 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard2): Also
5351 update phi's with constant phi arguments.
5352
5353 2019-11-06 Eric Botcazou <ebotcazou@adacore.com>
5354 Alexandre Oliva <oliva@adacore.com>
5355
5356 * common.opt (-fcallgraph-info[=]): New option.
5357 * doc/invoke.texi (Developer options): Document it.
5358 * opts.c (common_handle_option): Handle it.
5359 * builtins.c (expand_builtin_alloca): Record allocation if
5360 -fcallgraph-info=da.
5361 * calls.c (expand_call): If -fcallgraph-info, record the call.
5362 (emit_library_call_value_1): Likewise.
5363 * flag-types.h (enum callgraph_info_type): New type.
5364 * explow.c: Include stringpool.h.
5365 (set_stack_check_libfunc): Set SET_SYMBOL_REF_DECL on the symbol.
5366 * function.c (allocate_stack_usage_info): New.
5367 (allocate_struct_function): Call it for -fcallgraph-info.
5368 (prepare_function_start): Call it otherwise.
5369 (record_final_call, record_dynamic_alloc): New.
5370 * function.h (struct callinfo_callee): New.
5371 (CALLEE_FROM_CGRAPH_P): New.
5372 (struct callinfo_dalloc): New.
5373 (struct stack_usage): Add callees and dallocs.
5374 (record_final_call, record_dynamic_alloc): Declare.
5375 * gimplify.c (gimplify_decl_expr): Record dynamically-allocated
5376 object if -fcallgraph-info=da.
5377 * optabs-libfuncs.c (build_libfunc_function): Keep SYMBOL_REF_DECL.
5378 * print-tree.h (print_decl_identifier): Declare.
5379 (PRINT_DECL_ORIGIN, PRINT_DECL_NAME, PRINT_DECL_UNIQUE_NAME): New.
5380 * print-tree.c: Include print-tree.h.
5381 (print_decl_identifier): New function.
5382 * toplev.c: Include print-tree.h.
5383 (callgraph_info_file): New global variable.
5384 (callgraph_info_external_printed): Likewise.
5385 (output_stack_usage): Rename to...
5386 (output_stack_usage_1): ... this. Make it static, add cf
5387 parameter. If -fcallgraph-info=su, print stack usage to cf.
5388 If -fstack-usage, use print_decl_identifier for
5389 pretty-printing.
5390 (INDIRECT_CALL_NAME): New.
5391 (dump_final_node_vcg_start): New.
5392 (dump_final_callee_vcg, dump_final_node_vcg): New.
5393 (output_stack_usage): New.
5394 (lang_dependent_init): Open and start file if
5395 -fcallgraph-info. Allocated callgraph_info_external_printed.
5396 (finalize): If callgraph_info_file is not null, finish it,
5397 close it, and release callgraph_info_external_printed.
5398
5399 2019-11-06 Gergö Barany <gergo@codesourcery.com>
5400 Frederik Harwath <frederik@codesourcery.com>
5401 Thomas Schwinge <thomas@codesourcery.com>
5402
5403 * omp-low.c (struct omp_context): New fields
5404 local_reduction_clauses, outer_reduction_clauses.
5405 (new_omp_context): Initialize these.
5406 (scan_sharing_clauses): Record reduction clauses on OpenACC constructs.
5407 (scan_omp_for): Check reduction clauses for incorrect nesting.
5408
5409 2019-11-06 Jakub Jelinek <jakub@redhat.com>
5410
5411 PR inline-asm/92352
5412 * gimplify.c (gimplify_asm_expr): Reject VLA in output or input
5413 operands with non-memory constraints.
5414
5415 2019-11-05 Martin Sebor <msebor@redhat.com>
5416
5417 PR tree-optimization/92373
5418 * tree.c (component_ref_size): Only consider initializers of objects
5419 of matching struct types.
5420 Return null for instances of interior zero-length arrays.
5421
5422 2019-11-05 Segher Boessenkool <segher@kernel.crashing.org>
5423
5424 * doc/md.texi (Insn Splitting): Fix combiner documentation.
5425
5426 2019-11-05 Jason Merrill <jason@redhat.com>
5427
5428 PR tree-optimization/91825
5429 * expmed.c: Reduce -Wmaybe-uninitialized to warning.
5430
5431 2019-11-05 Jim Wilson <jimw@sifive.com>
5432
5433 PR middle-end/92263
5434 * expr.c (emit_move_complex): Only use BLOCK_OP_NO_LIBCALL when
5435 optimize_insn_for_speed_p is true.
5436
5437 2019-11-05 Martin Sebor <msebor@redhat.com>
5438
5439 PR middle-end/92333
5440 PR middle-end/82608
5441 * tree-vrp.c (vrp_prop::check_array_ref): Handle VLAs with constant
5442 size.
5443 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Use a meaninful
5444 name and location for a temporary variable.
5445
5446 2019-11-05 Aldy Hernandez <aldyh@redhat.com>
5447
5448 * tree-vrp.c (value_range::value_range): Fix whitespace.
5449 (defined_ranges_p): Same.
5450 (range_fold_binary_symbolics_p): Same.
5451 (value_range::intersect_helper): Same.
5452 (value_range::union_helper): Same.
5453 * tree-vrp.h (range_fold_binary_expr): Same.
5454
5455 2019-11-04 Martin Sebor <msebor@redhat.com>
5456
5457 PR middle-end/92341
5458 PR middle-end/82612
5459 * tree-sra.c (get_access_for_expr): Fail for out-of-bounds offsets.
5460 * tree-vrp.c (vrp_prop::check_array_ref): Correct index and text
5461 of message printed in a warning for empty arrays.
5462 (vrp_prop::check_mem_ref): Also handle function parameters and
5463 empty arrays.
5464
5465 2019-11-05 Richard Biener <rguenther@suse.de>
5466
5467 PR tree-optimization/92371
5468 * tree-vect-loop.c (vectorizable_reduction): Set STMT_VINFO_REDUC_DEF
5469 on the original stmt of live stmts in the chain.
5470 (vectorizable_live_operation): Look at the original stmt when
5471 checking STMT_VINFO_REDUC_DEF.
5472
5473 2019-11-05 Aldy Hernandez <aldyh@redhat.com>
5474
5475 * gimple-fold.c, gimple-loop-versioning.cc,
5476 gimple-ssa-evrp-analyze.[ch], gimple-ssa-evrp.c,
5477 gimple-ssa-sprintf.c, ipa-cp.c, ipa-prop.c, ipa-prop.h,
5478 range-op.[hc]*, range.[hc]*, selftest.h, tree-ssa-dom.c,
5479 tree-ssa-strlen.c, tree-ssa-threadedge.c, tree-ssanames.[hc],
5480 tree-vrp.[hc], vr-values.[hc]: Global rename of value_range to
5481 value_range_equiv, and value_range_base to value_range.
5482
5483 2019-11-05 Matthew Malcomson <matthew.malcomson@arm.com>
5484
5485 * expr.c (build_personality_function): Fix generated type to
5486 match actual personality functions.
5487
5488 2019-11-05 Matthew Malcomson <matthew.malcomson@arm.com>
5489
5490 * config/aarch64/aarch64.c (aarch64_handle_attr_cpu): Allocate
5491 enough bytes for the NULL character.
5492
5493 2019-11-05 Richard Biener <rguenther@suse.de>
5494
5495 PR tree-optimization/92280
5496 * match.pd (BIT_FIELD_REF of CTOR): Unless the original CTOR
5497 had a single use do not create a new CTOR.
5498 * tree-ssa-forwprop.c (simplify_bitfield_ref): Do not re-fold
5499 BIT_FIELD_REF of a CTOR via GENERIC.
5500
5501 2019-11-05 Andreas Krebbel <krebbel@linux.ibm.com>
5502
5503 * config/s390/s390.c (s390_vector_alignment): Check if the value
5504 fits into uhwi before using it.
5505
5506 2019-11-05 Martin Liska <mliska@suse.cz>
5507
5508 * symbol-summary.h: Use ggc_delete.
5509
5510 2019-11-05 Anton Youdkevitch <anton.youdkevitch@bell-sw.com>
5511
5512 * config/aarch64/aarch64.c (thunderx2t99_vector_cost):
5513 Change vec_perm field to 10.
5514
5515 2019-11-05 Arnaud Charlet <charlet@adacore.com>
5516
5517 * doc/install.texi: Further fix syntax for html generation.
5518
5519 2019-11-05 Martin Liska <mliska@suse.cz>
5520
5521 * symbol-summary.h: Rename allocator to m_allocator and
5522 add comment.
5523
5524 2019-11-05 Richard Biener <rguenther@suse.de>
5525
5526 PR tree-optimization/92324
5527 * tree-vect-loop.c (check_reduction_path): For MIN/MAX require
5528 all signed or unsigned operations.
5529
5530 2019-11-05 Jan Hubicka <jh@suse.cz>
5531
5532 * hsa-brig.c: Include alloc-pool.h
5533 * hsa-dump.c: Likewise.
5534 * hsa-gen.c: Likewise.
5535 * hse-regalloc.c: Likewise.
5536 * ipa-hsa.c: Likewise.
5537 * ipa-predicate.c: Likewise.
5538 * ipa-reference.c: Likewise.
5539 * ipa-sra.c: Likewise.
5540 * omp-expand.c: Likewise.
5541 * omp-general.c: Likewise.
5542 * omp-low.c: Likewise.
5543 * sumbol-summary.h (function_summary_base): Add allocator.
5544 (function_summary<T *>::function_summary): Update construction.
5545 (fast_function_summary<T *, V>::fast_function_summary): Likewise.
5546 (call_summary_base): Add allcator.
5547 (call_summary<T *>::call_summary): Update construction.
5548 (fast_call_summary<T *, V>::fast_call_summary): Likewise.
5549
5550 2019-11-05 Jakub Jelinek <jakub@redhat.com>
5551
5552 PR tree-optimization/91945
5553 * builtins.c (compute_objsize): For ARRAY_REF, only multiply off
5554 by tpsize if it is both non-NULL and INTEGER_CST, otherwise punt.
5555 Formatting fix.
5556
5557 2019-11-05 Aldy Hernandez <aldyh@redhat.com>
5558
5559 * range-op.cc (wi_set_zero_nonzero_bits): Remove static qualifier.
5560 * range-op.h (wi_set_zero_nonzero_bits): New prototype.
5561 * tree-vrp.h (vrp_set_zero_nonzero_bits): Remove.
5562 * tree-vrp.c (wide_int_range_set_zero_nonzero_bits): Remove.
5563 (vrp_set_zero_nonzero_bits): Move to...
5564 * vr-values.c (vr_set_zero_nonzero_bits): ...here.
5565 (vr_values::simplify_bit_ops_using_ranges): Rename
5566 vrp_set_zero_nonzero_bits to vr_set_zero_nonzero_bits.
5567
5568 2019-11-05 Martin Liska <mliska@suse.cz>
5569
5570 PR c++/92339
5571 * fold-const.c (operand_compare::hash_operand): Remove
5572 FIELD_DECL handling.
5573
5574 2019-11-05 Aldy Hernandez <aldyh@redhat.com>
5575
5576 * tree-vrp.h (vrp_bitmap_equal_p): Remove.
5577 * tree-vrp.c (vrp_bitmap_equal_p): Move before use and make
5578 static.
5579
5580 2019-11-05 Aldy Hernandez <aldyh@redhat.com>
5581
5582 * tree-vrp.c (value_range_base::operator==): Use equal_p to
5583 properly handle symbolics.
5584 (range_compatible_p): Remove.
5585
5586 2019-11-04 Kamlesh Kumar <kamleshbhalui@gmail.com>
5587
5588 * common.opt (-fabi-version): Document =14.
5589 * doc/invoke.texi (C++ Dialect Options): Likewise.
5590
5591 2019-11-04 Aldy Hernandez <aldyh@redhat.com>
5592
5593 * tree-vrp.c (value_range_base::set): Do not special case pointers.
5594
5595 2019-11-04 Tobias Burnus <tobias@codesourcery.com>
5596
5597 * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): New function.
5598 (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to
5599 gcn_omp_device_kind_arch_isa.
5600 * config/gcn/t-omp-device: New file.
5601 * configure.ac: Support gcn for omp_device_property.
5602 * configure: Regenerate.
5603
5604 2019-11-04 Aldy Hernandez <aldyh@redhat.com>
5605
5606 * tree-vrp.h (vrp_val_min): Remove handle_pointers argument.
5607 (vrp_val_max): Same.
5608 (vrp_val_is_min): Same.
5609 (vrp_val_is_max): Same.
5610 (value_range_base::nonzero_p): Remove last argument to
5611 vrp_val_is_max.
5612 * tree-vrp.c (vrp_val_min): Remove handle_pointers argument.
5613 (vrp_val_max): Same.
5614 (vrp_val_is_min): Same.
5615 (vrp_val_is_max): Same.
5616 (value_range_base::set_varying): Remove last argument to vrp_val*.
5617 (value_range_base::dump): Same.
5618 (value_range_base::set): Same.
5619 (value_range_base::normalize_symbolics): Same.
5620 (value_range_base::num_pairs): Same.
5621 (value_range_base::lower_bound): Same.
5622 (value_range_base::upper_bound): Same.
5623 (ranges_from_anti_range): Remove handle_pointers argument.
5624 (value_range_base::singleton_p): Remove last argument to
5625 ranges_from_anti_range.
5626
5627 2019-11-04 Jan Hubicka <jh@suse.cz>
5628
5629 * ipa-reference.c (init_function_info): Initialize
5630 info->global.statics_read.
5631
5632 2019-11-04 Aldy Hernandez <aldyh@redhat.com>
5633
5634 * tree-vrp.c (value_range_base::invert): Use constructors to build
5635 range.
5636
5637 2019-11-04 Aldy Hernandez <aldyh@redhat.com>
5638
5639 * tree-vrp.c (range_int_cst_singleton_p): Remove.
5640 * tree-vrp.h (range_int_cst_singleton_p): Remove.
5641
5642 2019-11-04 Aldy Hernandez <aldyh@redhat.com>
5643
5644 * tree-vrp.c (value_range_base::normalize_addresses): Handle
5645 VR_UNDEFINED.
5646
5647 2019-11-04 Aldy Hernandez <aldyh@redhat.com>
5648
5649 * tree-vrp.c (dump_assert_info): New.
5650 (dump_asserts_info): New.
5651
5652 2019-11-04 Jan Hubicka <jh@suse.cz>
5653
5654 * ipa-inline-transform.c: Include ipa-utils.h
5655 (inline_call): Set thunk_expansion flag.
5656 * ipa-utils.h (thunk_expansion): Declare.
5657 * ipa-devirt.c (thunk_expansion): New global var.
5658 (devirt_node_removal_hook): Do not invalidate cache while
5659 doing thunk expansion.
5660
5661 2019-11-04 Tamar Christina <tamar.christina@arm.com>
5662
5663 * tree-vect-slp.c (vectorize_slp_instance_root_stmt): Initialize rstmt.
5664
5665 2019-11-04 Martin Sebor <msebor@redhat.com>
5666
5667 PR tree-optimization/92349
5668 * tree-vrp.c (vrp_prop::check_array_ref): Avoid assuming struct
5669 memebers have constant sizes.
5670
5671 2019-11-04 Andre Vieira <andre.simoesdiasvieira@arm.com>
5672
5673 * tree-vect-loop.c (vect_analyze_loop): Remove orig_loop_vinfo
5674 parameter.
5675 * tree-vectorizer.h (vect_analyze_loop): Update declaration.
5676 * tree-vectorizer.c (try_vectorize_loop_1): Update calls to
5677 vect_analyze_loop.
5678
5679 2019-11-04 Joel Hutton <Joel.Hutton@arm.com>
5680
5681 * expr.c (store_constructor): Modify to handle single element vectors.
5682 * tree-vect-slp.c (vect_analyze_slp_instance): Add case for vector
5683 constructors.
5684 (vect_slp_check_for_constructors): New function.
5685 (vect_slp_analyze_bb_1): Call new function to check for vector
5686 constructors.
5687 (vectorize_slp_instance_root_stmt): New function.
5688 (vect_schedule_slp): Call new function to vectorize root stmt of vector
5689 constructors.
5690 * tree-vectorizer.h (SLP_INSTANCE_ROOT_STMT): New field.
5691
5692 2019-11-04 Richard Biener <rguenther@suse.de>
5693
5694 PR tree-optimization/92345
5695 * tree-vect-loop.c (vect_is_simple_reduction): Return whether
5696 we produced a reduction chain.
5697 (vect_analyze_scalar_cycles_1): Do not add reduction chains to
5698 LOOP_VINFO_REDUCTIONS.
5699
5700 2019-11-04 Jan Hubicka <jh@suse.cz>
5701
5702 * cgraphclones.c (cgraph_node::create_version_clone): Do not
5703 duplicate summaries.
5704 * ipa-fnsummary.c (ipa_fn_summary_alloc): Allocate size summary
5705 first.
5706 (ipa_fn_summary_t::duplicate): Use get instead of get_create to
5707 access call summaries.
5708 (dump_ipa_call_summary): Be ready for missing edge summaries.
5709 (analyze_function_body): Use get instead of get_create to access
5710 edge summary.
5711 (estimate_calls_size_and_time): Do not access summaries of
5712 inlined edges; sanity check they are missing.
5713 (ipa_call_context::estimate_size_and_time): Use get instead
5714 of get_create to access node summary.
5715 (inline_update_callee_summaries): Do not update depth of
5716 inlined edge.
5717 (ipa_merge_fn_summary_after_inlining): Remove inline edge from
5718 growth caches.
5719 (ipa_merge_fn_summary_after_inlining): Use get instead
5720 of get_create.
5721 * ipa-fnsummary.h (ipa_remove_from_growth_caches): Declare.
5722 * ipa-inline-analyssi.c (edge_growth_cache): Turn to
5723 fast summary.
5724 (initialize_growth_caches): Update.
5725 (do_estimate_edge_time): Remove redundant copy of context.
5726 (ipa_remove_from_growth_caches): New function.
5727 * ipa-inline.c (flatten_function): Update overall summary
5728 only when optimizing.
5729 (inline_to_all_callers): Update overall summary of function
5730 inlined to.
5731 * ipa-inline.h (edge_growth_cache): Turn to fast summary.
5732 * symbol-summary.h (call_summary_base): Set m_initialize_when_cloning
5733 to false.
5734
5735 2019-11-04 Richard Biener <rguenther@suse.de>
5736
5737 * system.h: Include malloc.h if INCLUDE_MALLOC_H and HAVE_MALLINFO.
5738 * ggc-common.c: Remove inclusion of malloc.h, define INCLUDE_MALLOC_H.
5739
5740 2019-11-04 David Edelsohn <dje.gcc@gmail.com>
5741
5742 * ggc-common.c: Include system.h before malloc.h.
5743
5744 2019-11-04 Alexandre Oliva <oliva@adacore.com>
5745
5746 * configure.ac: Pass --enable-obsolete=* and
5747 --enable-option-checking=* down to build configure, and fail
5748 if it fails. AC_SUBST HAVE_AUTO_BUILD.
5749 * configure: Rebuild.
5750 * Makefile.in [HAVE_AUTO_BUILD] (auto-build.h): New rule.
5751 [HAVE_AUTO_BUILD] (config.status): Depend on auto-build.h.
5752
5753 2019-11-04 Jozef Lawrynowicz <jozef.l@mittosystems.com>
5754
5755 * config.in: Regenerate.
5756 * config/msp430/msp430.c (msp430_option_override): Emit an error if
5757 -mtiny-printf is used without GCC being configured with
5758 --enable-newlib-nano-formatted-io.
5759 * config/msp430/msp430.h (LINK_SPEC): Pass
5760 "--wrap puts --wrap printf" when -mtiny-printf is used.
5761 * config/msp430/msp430.opt: Document -mtiny-printf.
5762 * configure: Regenerate.
5763 * configure.ac: Enable --enable-newlib-nano-formatted-io flag.
5764 Define HAVE_NEWLIB_NANO_FORMATTED_IO if
5765 --enable-newlib-nano-formatted-io is passed.
5766 * doc/invoke.texi: Document -mtiny-printf.
5767
5768 2019-11-04 Jozef Lawrynowicz <jozef.l@mittosystems.com>
5769
5770 * configure: Regenerate.
5771
5772 2019-11-04 Jozef Lawrynowicz <jozef.l@mittosystems.com>
5773
5774 * config/msp430/driver-msp430.c
5775 (msp430_get_linker_devices_include_path): New spec function.
5776 * config/msp430/msp430-devices.c (msp430_dirname): New function.
5777 (extract_devices_dir_from_exec_prefix): New function.
5778 (extract_devices_dir_from_collect_gcc): New function.
5779 (msp430_check_env_var_for_devices): New function.
5780 (msp430_check_path_for_devices): Use xstrdup instead of ASTRDUP.
5781 (parse_devices_csv): Call msp430_check_env_var_for_devices if
5782 devices.csv was not found using other methods.
5783 * config/msp430/msp430-devices.h (msp430_check_env_var_for_devices):
5784 New prototype.
5785 (msp430_dirname): Likewise.
5786 * config/msp430/msp430.c (msp430_register_pre_includes): New function.
5787 * config/msp430/msp430.h (EXTRA_SPEC_FUNCTIONS): Add
5788 msp430_get_linker_devices_include_path.
5789 (TARGET_EXTRA_PRE_INCLUDES): Define.
5790 * doc/invoke.texi: Document new ways of searching for support files.
5791
5792 2019-11-04 Richard Biener <rguenther@suse.de>
5793
5794 PR tree-optimization/92301
5795 * tree-vect-stmts.c (process_use): Force reduction PHI defs live
5796 as required by epilogue generation
5797
5798 2019-11-04 Martin Liska <mliska@suse.cz>
5799
5800 PR ipa/92304
5801 * fold-const.c (operand_compare::hash_operand): Fix field
5802 hashing of CONSTRUCTOR.
5803
5804 2019-11-04 Martin Liska <mliska@suse.cz>
5805
5806 * ggc.h (ggc_delete): New function.
5807 * ipa-fnsummary.c (ipa_free_fn_summary): Use it.
5808 * ipa-prop.c (ipa_free_all_edge_args): Likewise.
5809 (ipa_free_all_node_params): Likewise.
5810 * ipa-sra.c (ipa_sra_analysis): Likewise.
5811
5812 2019-11-02 Jan Hubicka <hubicka@ucw.cz>
5813
5814 * ipa-fnsummary.c (set_cond_stmt_execution_predicate,
5815 set_switch_stmt_execution_predicate, compute_bb_predicates,
5816 will_be_nonconstant_expr_predicate,
5817 phi_result_unknown_predicate,
5818 analyze_function_body): Pass arround params summary.
5819 (ipa_call_context::duplicate_from): New comment;
5820 only duplicate useful values.
5821 (ipa_call_context::equal_to): Only compare useful values.
5822 (remap_edge_summaries): Pass params_summary.
5823 (remap_hint_predicate): Likewise.
5824 (ipa_merge_fn_summary_after_inlining): Likewise.
5825 (inline_read_section): Initialize params summary used flags.
5826 * ipa-predicate.c (predicate::remap_after_inlining): Pass
5827 around param_summary.
5828 (add_condition): Initialized used params summary flags.
5829 * ipa-predicate.h (inline_param_summary::equals_to): Make const.
5830 (inline_param_summary::useless_p): New predicate.
5831 (remap_after_inlining, add_condition): Update prototype
5832 * ipa-prop.c (ipa_populate_param_decls): Watch overflow in
5833 move_cost.
5834 (ipa_note_param_call): Add parameter POLYMORPHIC; update params
5835 summaries.
5836 (ipa_analyze_indirect_call_uses): Update use of ipa_note_param_call.
5837 (ipa_analyze_virtual_call_uses): Likewise.
5838 (update_indirect_edges_after_inlining): Update param summaries.
5839 (ipa_print_node_params): Print used flags.
5840 (ipa_read_indirect_edge_info): Update param summareis.
5841 * ipa-prop.h (ipa_param_descriptor): Add
5842 used_by_ipa_predicates, used_by_indirect_call
5843 and used_by_polymorphic_call.
5844 (ipa_set_param_used_by_ipa_predicates,
5845 ipa_set_param_used_by_indirect_call,
5846 ipa_set_param_used_by_polymorphic_call,
5847 ipa_is_param_used_by_ipa_predicates,
5848 ipa_is_param_used_by_indirect_call,
5849 ipa_is_param_used_by_polymorphic_call): New inline functions.
5850
5851 2019-11-02 Jan Hubicka <hubicka@ucw.cz>
5852
5853 * ipa-fnsummary.c (ipa_call_context::duplicate_from): New
5854 member function.
5855 (ipa_call_context::release): Add ALL parameter.
5856 (ipa_call_context::equal_to): New member function.
5857 * ipa-fnsummary.h (ipa_call_context): Add empty constructor;
5858 duplicate_form, release, equal_to and exists_p member functoins.
5859 * ipa-inline-analysis.c (node_context_cache_entry): New
5860 class.
5861 (node_context_summary): Likewise.
5862 (node_context_cache, node_context_cache_hit, node_context_cache_miss,
5863 node_context_clear): New static vars.
5864 (initialize_growth_caches): New function.
5865 (free_growth_caches): Also delete node_context_cache; output stats.
5866 (do_estimate_edge_time): Cache contexts.
5867 (reset_node_cache): New function.
5868 * ipa-inline.c (reset_edge_caches): Reset also node cache.
5869 (inline_small_functions): Initialize growth caches.
5870 * ipa-inline.h (reset_node_cache, initialize_growth_caches):
5871 Declare.
5872 * ipa-predicate.h (inline_param_summary::equal_to): New.
5873 * ipa-prop.c (ipa_agg_jf_item::equal_to): New.
5874 * ipa-prop.h (ipa_agg_jf_item): Declare equal_to member function.
5875 (ipa_agg_jump_function): Implement equal_to member function.
5876
5877 2019-11-02 Jan Hubicka <hubicka@ucw.cz>
5878
5879 * ipa-fnsummary.c (inline_read_section): Set vector size
5880 ahead of time.
5881
5882 2019-11-02 Jan Hubicka <hubicka@ucw.cz>
5883
5884 * ipa-fnsummary.c (ipa_call_context): New constructor.
5885 (estimate_node_size_and_time): Turn to ...
5886 (ipa_call_context::estimate_size_and_time): ... this one.
5887 (ipa_call_context::release): New.
5888 * ipa-fnsummary.h (ipa_call_context): New class.
5889 (estimate_node_size_and_time): Remove.
5890 * ipa-inline-analysis.c (do_estimate_edge_time, do_estimate_edge_size,
5891 do_estimate_edge_hints): Update.
5892
5893 2019-11-02 Jan Hubicka <hubicka@ucw.cz>
5894
5895 * config.in: Regenerate.
5896 * configure: Regenerate.
5897 * configure.ac: Check for mallinfo.
5898 * ggc-common.c: Include malloc.h if available;
5899 include options.h
5900 (report_heap_memory_use): New functoin.
5901 * ggc-page.c (ggc_grow): Do not print "start".
5902 * ggc.h (report_heap_memory_use): Declare.
5903 * pases.c (execute_one_pass): Report memory after IPA passes.
5904 (ipa_read_summaries_1): Likewise.
5905 (ipa_read_optimization_summaries_1): Likewise.
5906
5907 2019-11-02 Jakub Jelinek <jakub@redhat.com>
5908
5909 * gimplify.h (omp_construct_selector_matches): Change return
5910 type to int, add a new SCORES argument.
5911 * gimplify.c (omp_construct_selector_matches): Likewise. If
5912 SCORES is non-NULL, compute scores of each construct.
5913 * omp-general.h (omp_get_context_selector): Declare.
5914 * omp-general.c (omp_maybe_offloaded, omp_context_selector_matches):
5915 Adjust omp_construct_selector_matches callers.
5916 (omp_get_context_selector): New function, moved from c-family/c-omp.c.
5917 (omp_context_compute_score): New function.
5918 (omp_resolve_declare_variant): Compute scores and decide based on
5919 that.
5920
5921 PR bootstrap/92314
5922 * configure.ac: Don't look for omp-device-properties files from
5923 installed offloading compilers. Instead add tmake_file snippets
5924 for configured offloading targets and use files they generate.
5925 * Makefile.in (install): Don't depend on
5926 install-omp-device-properties.
5927 (install-omp-device-properties): Remove goal.
5928 * config/i386/t-omp-device: New file.
5929 * config/i386/t-intelmic (omp-device-properties): Remove goal.
5930 * config/nvptx/t-omp-device: New file.
5931 * config/nvptx/t-nvptx (omp-device-properties): Remove goal.
5932 * configure: Regenerated.
5933
5934 * omp-general.h (omp_context_selector_set_compare): Declare.
5935 * omp-general.c (omp_construct_simd_compare,
5936 omp_context_selector_props_compare, omp_context_selector_set_compare,
5937 omp_context_selector_compare): New functions.
5938 (omp_resolve_declare_variant): Prune variants that are strict subset
5939 of another variant.
5940
5941 2019-11-01 Martin Sebor <msebor@redhat.com>
5942
5943 PR middle-end/91679
5944 PR middle-end/91647
5945 PR middle-end/91463
5946 PR middle-end/92312
5947 * doc/invoke.texi (-Wzero-length-bounds): Document.
5948 * gimple-match-head.c (try_conditional_simplification): Use memcpy
5949 instead of a hand-rolled loop to avoid PR 92323.
5950 * tree-vrp.c (vrp_prop::check_array_ref): Handle trailing arrays
5951 with initializers.
5952 (vrp_prop::check_mem_ref): Handle declared struct objects.
5953 * tree.c (last_field): New function.
5954 (array_at_struct_end_p): Handle MEM_REF.
5955 (get_initializer_for): New helper.
5956 (component_ref_size): Add argument. Rename locals. Call
5957 get_initializer_for instead of fold_ctor_reference. Correct handling
5958 of flexible array members.
5959 * wide-int.h (generic_wide_int <storage>::sign_mask): Assert invariant.
5960
5961 2019-11-01 Kewen Lin <linkw@gcc.gnu.org>
5962
5963 * config/rs6000/rs6000-modes.def (V2SF, V2SI): New modes.
5964 * config/rs6000/vsx.md (UNSPEC_VSX_CVSPSXDS,
5965 UNSPEC_VSX_CVSPUXDS): Remove.
5966 (vsx_xvcvspdp): New define_expand, old define_insn split to...
5967 (vsx_xvcvspdp_be): ... this. New. And...
5968 (vsx_xvcvspdp_le): ... this. New.
5969 (vsx_xvcv<su>xwdp): New define_expand, old define_insn split to...
5970 (vsx_xvcv<su>xwdp_be): ... this. New. And...
5971 (vsx_xvcv<su>xwdp_le): ... this. New.
5972 (vsx_xvcvsp<su>xds): New define_expand, old define_insn split to...
5973 (vsx_xvcvsp<su>xds_be): ... this. New. And...
5974 (vsx_xvcvsp<su>xds_le): ... this. New.
5975
5976 2019-11-01 Kewen Lin <linkw@gcc.gnu.org>
5977
5978 * config/rs6000/vsx.md (UNSPEC_VSX_CVSXWSP, UNSPEC_VSX_CVUXWSP,
5979 UNSPEC_VSX_XVCVSXDDP, UNSPEC_VSX_XVCVUXDDP,
5980 UNSPEC_VSX_XVCVDPSXDS, UNSPEC_VSX_XVCVDPUXDS,
5981 UNSPEC_VSX_XVCVSPSXWS): Remove.
5982 (vsx_xvcv<su>xddp, vsx_xvcvdp<su>xds, vsx_xvcvsp<su>xws,
5983 vsx_xvcv<su>xwsp): Update define_insn RTL patterns.
5984
5985 2019-11-01 Kewen Lin <linkw@gcc.gnu.org>
5986
5987 * config/rs6000/vsx.md (vsx_xvcdpsp): Remove define_insn.
5988 (UNSPEC_VSX_XVCDPSP): Remove.
5989 * config/rs6000/rs6000.c (rs6000_generate_float2_double_code):
5990 Replace gen_vsx_xvcdpsp by gen_vsx_xvcvdpsp.
5991
5992 2019-11-01 Tobias Burnus <tobias@codesourcery.com>
5993
5994 * hooks.c (hook_tree_tree_bool_null): New.
5995 * hooks.h (hook_tree_tree_bool_null): Declare.
5996 * langhooks-def.h (LANG_HOOKS_OMP_ARRAY_DATA): Define.
5997 (LANG_HOOKS_DECLS): Add it.
5998 * langhooks.h (lang_hooks_for_decls): Add omp_array_data.
5999 * omp-low.c (install_var_field): New mode for Fortran descriptor arrays.
6000 (lower_omp_target): Handle Fortran array with descriptor in
6001 OMP_CLAUSE_USE_DEVICE_ADDR/OMP_CLAUSE_USE_DEVICE_PTR.
6002
6003 2019-10-31 Richard Sandiford <richard.sandiford@arm.com>
6004
6005 * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types):
6006 Assert that the type we store in abi_vector_types is its own
6007 main variant.
6008 (svbool_type_p): Don't apply TYPE_MAIN_VARIANT here.
6009
6010 2019-10-31 Richard Earnshaw <rearnsha@arm.com>
6011
6012 * config/arm/arm.c (arm_legitimize_address): Don't form negative offsets
6013 from a CONST_INT address when TARGET_THUMB2.
6014
6015 2019-10-31 Richard Earnshaw <rearnsha@arm.com>
6016
6017 * config/arm/arm.md (add_not_cin): New insn.
6018 (add_not_shift_cin): Likewise.
6019
6020 2019-10-31 Martin Liska <mliska@suse.cz>
6021
6022 * ipa-icf-gimple.c (func_checker::compare_tree_ssa_label): Remove.
6023 * ipa-icf-gimple.h: Remove declaration from compare_tree_ssa_label
6024 and compare_memory_operand.
6025
6026 2019-10-31 Jakub Jelinek <jakub@redhat.com>
6027
6028 * configure.ac: Compute and substitute omp_device_properties and
6029 omp_device_property_deps.
6030 * Makefile.in (generated_files): Add omp-device-properties.h.
6031 (omp-general.o): Depend on omp-device-properties.h.
6032 (omp_device_properties): New make variable.
6033 (omp-device-properties.h, s-omp-device-properties-h,
6034 install-omp-device-properties): New goals.
6035 (install): Depend on install-omp-device-properties for accelerators.
6036 * target.def (TARGET_OMP_DEVICE_KIND_ARCH_ISA): New target hook.
6037 * target.h (enum omp_device_kind_arch_isa): New enum.
6038 * doc/tm.texi.in: Add placeholder for TARGET_OMP_DEVICE_KIND_ARCH_ISA
6039 documentation.
6040 * omp-general.c: Include omp-device-properties.h.
6041 (omp_max_simt_vf): Expect OFFLOAD_TARGET_NAMES to be separated by
6042 colon instead of comma.
6043 (omp_offload_device_kind_arch_isa, omp_maybe_offloaded): New
6044 functions.
6045 (omp_context_selector_matches): Implement device set arch/isa
6046 selectors, improve device set kind selector handling.
6047 * config/i386/i386-options.h (ix86_omp_device_kind_arch_isa): Declare.
6048 * config/i386/i386.c (TARGET_SIMD_CLONE_ADJUST,
6049 TARGET_SIMD_CLONE_USABLE): Formatting fix.
6050 (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to
6051 ix86_omp_device_kind_arch_isa.
6052 * config/i386/i386-options.c (struct ix86_target_opts): Move type
6053 definition from ix86_target_string to file scope.
6054 (isa2_opts, isa_opts): Moved arrays from ix86_target_string function
6055 to file scope.
6056 (ix86_omp_device_kind_arch_isa): New function.
6057 (ix86_target_string): Moved struct ix86_target_opts, isa2_opts and
6058 isa_opts definitions to file scope.
6059 * config/i386/t-intelmic (omp-device-properties): New goal.
6060 * config/nvptx/t-nvptx (omp-device-properties): Likewise.
6061 * config/nvptx/nvptx.c (nvptx_omp_device_kind_arch_isa): New function.
6062 (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to
6063 nvptx_omp_device_kind_arch_isa.
6064 * configure: Regenerate.
6065 * doc/tm.texi: Regenerate.
6066
6067 PR middle-end/92231
6068 * tree.h (fndecl_built_in_p): Use fndecl_built_in_p instead of
6069 DECL_BUILT_IN in comment. Remove redundant ()s around return
6070 argument.
6071 * tree.c (free_lang_data_in_decl): Check if var is FUNCTION_DECL
6072 before calling fndecl_built_in_p.
6073 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Check if
6074 TREE_OPERAND (fn, 0) is a FUNCTION_DECL before calling
6075 fndecl_built_in_p on it.
6076
6077 2019-10-31 Andre Vieira <andre.simoesdiasvieira@arm.com>
6078
6079 * params.def (PARAM_VECT_EPILOGUES_NOMASK): Enable by default.
6080
6081 2019-10-31 Martin Liska <mliska@suse.cz>
6082
6083 * config/arm/arm.c (arm_get_pcs_model): Remove usage
6084 of cgraph_local_info and use local_info_node instead.
6085 * config/bfin/bfin.c (bfin_load_pic_reg): Likewise.
6086 (bfin_function_ok_for_sibcall): Likewise.
6087 * config/c6x/c6x.c (c6x_function_ok_for_sibcall): Likewise.
6088 (must_reload_pic_reg_p): Likewise.
6089
6090 2019-10-31 Jakub Jelinek <jakub@redhat.com>
6091
6092 PR c++/90947
6093 * tree.h (type_initializer_zero_p): Remove.
6094 * tree.c (type_initializer_zero_p): Remove.
6095
6096 2019-10-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
6097
6098 * doc/invoke.texi (-Wshadow, -Wshadow=global
6099 -Wshadow=local, -Wshadow=compatible-local): Update documentation.
6100
6101 2019-10-30 Tobias Burnus <tobias@codesourcery.com>
6102
6103 * gimplify.c (gimplify_scan_omp_clauses): Remove FE-generated
6104 GOMP_MAP_TO_PSET and GOMP_MAP_POINTER mapping for 'target update'
6105 and 'target exit data'.
6106
6107 2019-10-30 Martin Jambor <mjambor@suse.cz>
6108
6109 ipa/92278
6110 * cgraph.c (cgraph_edge::possibly_call_in_translation_unit_p): Fix
6111 availability comparison.
6112
6113 2019-10-30 Jozef Lawrynowicz <jozef.l@mittosystems.com>
6114
6115 * config/msp430/msp430.c (msp430_expand_helper): Support expansion of
6116 calls to __mspabi_mpy* functions.
6117 * config/msp430/msp430.md (mulhisi3): New define_expand.
6118 (umulhisi3): New define_expand.
6119 (*mulhisi3_inline): Use old mulhisi3 define_insn.
6120 (*umulhisi3_inline): Use old umulhisi3 define_insn.
6121
6122 2019-10-30 Jozef Lawrynowicz <jozef.l@mittosystems.com>
6123
6124 * config/msp430/msp430.c (msp430_check_index_not_high_mem): New.
6125 (msp430_check_plus_not_high_mem): New.
6126 (msp430_op_not_in_high_mem): Use new functions to check if the operand
6127 might be in low memory.
6128 Indicate that a 16-bit absolute address is in lower memory.
6129
6130 2019-10-30 Martin Jambor <mjambor@suse.cz>
6131
6132 * ipa-prop.c (ipa_compute_jump_functions_for_bb): Fix the call to
6133 ultimate_alias_target.
6134
6135 2019-10-30 Richard Biener <rguenther@suse.de>
6136
6137 PR tree-optimization/92275
6138 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_loops):
6139 Copy all loop-closed PHIs.
6140
6141 2019-10-30 Martin Liska <mliska@suse.cz>
6142
6143 * ipa-icf-gimple.c (func_checker::compare_ssa_name): Use
6144 const_tree as function argument.
6145 (func_checker::compare_decl): Likewise.
6146 (func_checker::operand_equal_p): Likewise.
6147 (func_checker::compare_variable_decl): Likewise.
6148 (func_checker::parse_labels): Likewise.
6149 * ipa-icf-gimple.h: Likewise.
6150
6151 2019-10-30 Martin Liska <mliska@suse.cz>
6152
6153 * ipa-icf-gimple.c (func_checker::compatible_types_p):
6154 Do not compare alias sets. It's handled by operand_equal_p.
6155
6156 2019-10-30 Martin Liska <mliska@suse.cz>
6157
6158 * ipa-icf-gimple.c (func_checker::func_checker): Do not
6159 initialize m_compare_polymorphic.
6160 (func_checker::compare_decl): Do not compare polymorphic types.
6161 * ipa-icf-gimple.h (m_compare_polymorphic): Remove.
6162 * ipa-icf.c (sem_function::equals_private): Do not call
6163 compare_polymorphic_p.
6164
6165 2019-10-30 Martin Liska <mliska@suse.cz>
6166
6167 * ipa-icf-gimple.c (func_checker::compare_ssa_name): Call
6168 compare_operand.
6169 (func_checker::compare_memory_operand): Remove.
6170 (func_checker::compare_cst_or_decl): Remove.
6171 (func_checker::operand_equal_valueize): Do not handle
6172 FIELD_DECL.
6173 (func_checker::compare_gimple_call): Call compare_operand.
6174 (func_checker::compare_gimple_assign): Likewise.
6175 * ipa-icf-gimple.h: Remove compare_cst_or_decl.
6176 * ipa-icf.c (sem_function::icf_handled_component_p): Remove.
6177 * ipa-icf.h (icf_handled_component_p): Remove.
6178
6179 2019-10-30 Martin Liska <mliska@suse.cz>
6180
6181 * ipa-icf-gimple.c (func_checker::hash_operand): New.
6182 (func_checker::compare_cst_or_decl): Remove handling
6183 of FIELD_DECL.
6184 (func_checker::compare_operand): Transform to ...
6185 (func_checker::operand_equal_p): ... this.
6186 * ipa-icf-gimple.h (class func_checker): Add
6187 operand_equal_p and hash_operand.
6188 * ipa-icf.c (sem_function::equals_private): Fix
6189 pushing and popping of cfun.
6190
6191 2019-10-30 Martin Liska <mliska@suse.cz>
6192
6193 * fold-const.c (operand_equal_p): Move to ...
6194 (operand_compare::operand_equal_p): ... here.
6195 (operand_compare::verify_hash_value): New.
6196 (add_expr): Move to ...
6197 (operand_compare::hash_operand): ... here.
6198 * fold-const.h (operand_equal_p): Move to the class.
6199 (class operand_compare): New.
6200 * tree.c (add_expr): Remove.
6201
6202 2019-10-30 Martin Liska <mliska@suse.cz>
6203
6204 * fold-const.c (operand_equal_p): Support OBJ_TYPE_REF.
6205 * tree.c (add_expr): Hash parts of OBJ_TYPE_REF.
6206
6207 2019-10-30 Martin Liska <mliska@suse.cz>
6208
6209 PR lto/91393
6210 PR lto/88220
6211 * cgraph.c (cgraph_node::get_create): Overwrite node->order
6212 from a first_clone in order to get proper LTO section
6213 in LTO stream.
6214 (cgraph_node::get_untransformed_body):
6215 Use lto_get_section_data where symtab_node::order
6216 must be provided.
6217 * cgraphclones.c (cgraph_node::find_replacement):
6218 Update also symbol order.
6219 * ipa-fnsummary.c (ipa_fn_summary_read):
6220 Use new function lto_get_summary_section_data.
6221 * ipa-hsa.c (ipa_hsa_read_summary): Likewise.
6222 * ipa-icf.c (sem_item_optimizer::read_summary):
6223 Likewise.
6224 * ipa-prop.c (ipa_prop_read_jump_functions):
6225 Likewise.
6226 (ipcp_read_transformation_summaries): Likewise.
6227 * ipa-sra.c (ipa_sra_read_summary): Likewise.
6228 * lto-cgraph.c (input_node): Add also order_base.
6229 (input_varpool_node): Likewise.
6230 (input_cgraph_1): Assign the order_base.
6231 (input_cgraph_opt_summary): Use new lto_get_summary_section_data.
6232 * lto-opts.c (lto_write_options): Pass new argument.
6233 * lto-section-in.c (lto_get_section_data): Add new argumente order.
6234 (lto_get_summary_section_data): New.
6235 (lto_get_raw_section_data): Add order argument.
6236 (lto_create_simple_input_block): Likewise.
6237 * lto-section-out.c (lto_destroy_simple_output_block):
6238 Likewise.
6239 * lto-streamer-in.c (lto_input_toplevel_asms):
6240 Use lto_get_summary_section_data.
6241 (lto_input_mode_table): Likewise.
6242 * lto-streamer-out.c (produce_asm): Pass symtab_node::order.
6243 (lto_output_toplevel_asms): Pass new argument.
6244 (copy_function_or_variable): Likewise.
6245 (produce_lto_section):Likewise.
6246 (produce_symtab): Likewise.
6247 (lto_write_mode_table): Likewise.
6248 (produce_asm_for_decls): Likewise.
6249 * lto-streamer.c (lto_get_section_name): Concat symbol name
6250 and symbol order.
6251 * lto-streamer.h (lto_get_section_data): Add order argument.
6252 (lto_get_summary_section_data): New.
6253 (lto_get_raw_section_data): Add order argument.
6254 (lto_get_section_name): Likewise.
6255 * varpool.c (varpool_node::get_constructor): Pass order argument.
6256
6257 2019-10-30 Jakub Jelinek <jakub@redhat.com>
6258
6259 PR tree-optimization/92262
6260 * tree-ssa-loop-ivopts.c (get_debug_computation_at): Don't unshare
6261 ubase or cbase here.
6262 (remove_unused_ivs): Unshare comp before using it.
6263
6264 2019-10-30 Jan Hubicka <hubicka@ucw.cz>
6265
6266 * ipa-prop.c (update_jump_functions_after_inlining):
6267 Watch for missing summaries.
6268
6269 2019-10-30 Richard Biener <rguenther@suse.de>
6270
6271 PR tree-optimization/65930
6272 * tree-vect-loop.c (vect_is_simple_reduction): For reduction
6273 chains also allow a leading and trailing conversion.
6274 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
6275 intermediate reduction chains.
6276 (vect_analyze_slp_instance): Likewise. Build a SLP
6277 node for a trailing conversion manually.
6278
6279 2019-10-30 Martin Liska <mliska@suse.cz>
6280
6281 * cgraph.c (cgraph_node::local_info): Transform to ...
6282 (cgraph_node::local_info_node): ... this.
6283 (cgraph_node::dump): Remove cgraph_local_info and
6284 put its fields directly into cgraph_node.
6285 (cgraph_node::get_availability): Likewise.
6286 (cgraph_node::make_local): Likewise.
6287 (cgraph_node::verify_node): Likewise.
6288 * cgraph.h (struct GTY): Likewise.
6289 * cgraphclones.c (set_new_clone_decl_and_node_flags): Likewise.
6290 (duplicate_thunk_for_node): Likewise.
6291 (cgraph_node::create_clone): Likewise.
6292 (cgraph_node::create_virtual_clone): Likewise.
6293 (cgraph_node::create_version_clone): Likewise.
6294 * cgraphunit.c (cgraph_node::reset): Likewise.
6295 (cgraph_node::finalize_function): Likewise.
6296 (cgraph_node::add_new_function): Likewise.
6297 (analyze_functions): Likewise.
6298 * combine.c (setup_incoming_promotions): Likewise.
6299 * config/i386/i386.c (ix86_function_regparm): Likewise.
6300 (ix86_function_sseregparm): Likewise.
6301 (init_cumulative_args): Likewise.
6302 * ipa-cp.c (determine_versionability): Likewise.
6303 (count_callers): Likewise.
6304 (set_single_call_flag): Likewise.
6305 (initialize_node_lattices): Likewise.
6306 (estimate_local_effects): Likewise.
6307 (create_specialized_node): Likewise.
6308 (identify_dead_nodes): Likewise.
6309 * ipa-fnsummary.c (compute_fn_summary): Likewise.
6310 (ipa_fn_summary_generate): Likewise.
6311 * ipa-hsa.c (check_warn_node_versionable): Likewise.
6312 (process_hsa_functions): Likewise.
6313 * ipa-icf.c (set_local): Likewise.
6314 * ipa-inline-analysis.c (initialize_inline_failed): Likewise.
6315 * ipa-inline.c (speculation_useful_p): Likewise.
6316 * ipa-profile.c (ipa_propagate_frequency): Likewise.
6317 (ipa_profile): Likewise.
6318 * ipa-split.c (split_function): Likewise.
6319 (execute_split_functions): Likewise.
6320 * ipa-sra.c (ipa_sra_preliminary_function_checks): Likewise.
6321 (ipa_sra_ipa_function_checks): Likewise.
6322 * ipa-visibility.c (function_and_variable_visibility): Likewise.
6323 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
6324 * lto-cgraph.c (lto_output_node): Likewise.
6325 (input_overwrite_node): Likewise.
6326 * multiple_target.c (expand_target_clones): Likewise.
6327 * omp-simd-clone.c (simd_clone_create): Likewise.
6328 * trans-mem.c (expand_call_tm): Likewise.
6329 (ipa_tm_mayenterirr_function): Likewise.
6330 (ipa_tm_diagnose_tm_safe): Likewise.
6331 (ipa_tm_diagnose_transaction): Likewise.
6332 (ipa_tm_create_version): Likewise.
6333 (ipa_tm_transform_calls_redirect): Likewise.
6334 (ipa_tm_execute): Likewise.
6335 * tree-inline.c (expand_call_inline): Likewise.
6336
6337 2019-10-29 Martin Liska <mliska@suse.cz>
6338
6339 * symbol-summary.h (function_summary): Pass memory location
6340 to underlaying hash_map (or vec).
6341 (V>::fast_function_summary): Likewise.
6342
6343 2019-10-29 Martin Liska <mliska@suse.cz>
6344
6345 * ggc.h (ggc_alloc_no_dtor): New function.
6346 * ipa-fnsummary.c (ipa_free_fn_summary): Call
6347 destructor and ggc_free.
6348 (ipa_free_size_summary): Call delete instead
6349 of release.
6350 * ipa-fnsummary.h: Use new function ggc_alloc_no_dtor.
6351 * ipa-prop.c (ipa_check_create_edge_args): Likewise.
6352 (ipa_free_all_edge_args): Call destructor and ggc_free.
6353 (ipa_free_all_node_params): Likewise.
6354 (ipcp_free_transformation_sum): Likewise.
6355 * ipa-prop.h (ipa_check_create_node_params):
6356 Call new ggc_alloc_no_dtor.
6357 * ipa-sra.c (ipa_sra_generate_summary): Likewise.
6358 (ipa_sra_analysis): Call destructor and ggc_free.
6359 Replace release with delete operator.
6360 * symbol-summary.h (release): Remove ..
6361 (V>::~fast_function_summary): and move logic here.
6362 Likewise for other classes.
6363
6364 2019-10-29 Richard Biener <rguenther@suse.de>
6365
6366 PR tree-optimization/92260
6367 * tree-vect-slp.c (vect_get_constant_vectors): Special-case
6368 lane-reducing ops.
6369
6370 2019-10-29 Andre Vieira <andre.simoesdiasvieira@arm.com>
6371
6372 PR tree-optimization/88915
6373 * tree-ssa-loop-niter.h (simplify_replace_tree): Change declaration.
6374 * tree-ssa-loop-niter.c (simplify_replace_tree): Add context parameter
6375 and make the valueize function pointer also take a void pointer.
6376 * tree-ssa-sccvn.c (vn_valueize_wrapper): New function to wrap
6377 around vn_valueize, to call it without a context.
6378 (process_bb): Use vn_valueize_wrapper instead of vn_valueize.
6379 * tree-vect-loop.c (_loop_vec_info): Initialize epilogue_vinfos.
6380 (~_loop_vec_info): Release epilogue_vinfos.
6381 (vect_analyze_loop_costing): Use knowledge of main VF to estimate
6382 number of iterations of epilogue.
6383 (vect_analyze_loop_2): Adapt to analyse main loop for all supported
6384 vector sizes when vect-epilogues-nomask=1. Also keep track of lowest
6385 versioning threshold needed for main loop.
6386 (vect_analyze_loop): Likewise.
6387 (find_in_mapping): New helper function.
6388 (update_epilogue_loop_vinfo): New function.
6389 (vect_transform_loop): When vectorizing epilogues re-use analysis done
6390 on main loop and call update_epilogue_loop_vinfo to update it.
6391 * tree-vect-loop-manip.c (vect_update_inits_of_drs): No longer insert
6392 stmts on loop preheader edge.
6393 (vect_do_peeling): Enable skip-vectors when doing loop versioning if
6394 we decided to vectorize epilogues. Update epilogues NITERS and
6395 construct ADVANCE to update epilogues data references where needed.
6396 * tree-vectorizer.h (_loop_vec_info): Add epilogue_vinfos.
6397 (vect_do_peeling, vect_update_inits_of_drs,
6398 determine_peel_for_niter, vect_analyze_loop): Add or update
6399 declarations.
6400 * tree-vectorizer.c (try_vectorize_loop_1): Make sure to use already
6401 created loop_vec_info's for epilogues when available. Otherwise analyse
6402 epilogue separately.
6403
6404 2019-10-29 Richard Biener <rguenther@suse.de>
6405
6406 * doc/tree-ssa.texi (Immediate Uses): Fix FOR_EACH_IMM_USE_STMT
6407 example.
6408
6409 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
6410
6411 * tree-vect-stmts.c (vectorizable_condition): Get the reduction
6412 index for the COND_EXPR from stmt_info rather than reduc_info.
6413
6414 2019-10-29 Richard Biener <rguenther@suse.de>
6415
6416 PR tree-optimization/65930
6417 * tree-vect-loop.c (check_reduction_path): Relax single-use
6418 check allowing out-of-loop uses.
6419 (vect_is_simple_reduction): SLP reduction chains cannot have
6420 intermediate stmts used outside of the loop.
6421 (vect_create_epilog_for_reduction): The adjustment might need
6422 to be converted.
6423 (vectorizable_reduction): Annotate live stmts of the reduction
6424 chain with STMT_VINFO_REDUC_DEF.
6425 * tree-vect-stms.c (process_use): Remove no longer true asserts.
6426
6427 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
6428
6429 * calls.c (pass_by_reference): Leave the target to decide whether
6430 POLY_INT_CST-sized arguments should be passed by value or reference,
6431 rather than forcing them to be passed by reference.
6432 (must_pass_in_stack_var_size): Likewise.
6433 * config/aarch64/aarch64.md (LAST_SAVED_REGNUM): Redefine from
6434 V31_REGNUM to P15_REGNUM.
6435 * config/aarch64/aarch64-protos.h (aarch64_init_cumulative_args):
6436 Take an extra "silent_p" parameter, defaulting to false.
6437 (aarch64_sve::svbool_type_p): Declare.
6438 (aarch64_sve::nvectors_if_data_type): Likewise.
6439 * config/aarch64/aarch64.h (NUM_PR_ARG_REGS): New macro.
6440 (aarch64_frame::reg_offset): Turn into poly_int64s.
6441 (aarch64_frame::save_regs_size): Likewise.
6442 (aarch64_frame::below_hard_fp_saved_regs_size): New field.
6443 (aarch64_frame::sve_callee_adjust): Likewise.
6444 (aarch64_frame::spare_reg_reg): Likewise.
6445 (ARM_PCS_SVE): New arm_pcs value.
6446 (CUMULATIVE_ARGS::aapcs_nprn): New field.
6447 (CUMULATIVE_ARGS::aapcs_nextnprn): Likewise.
6448 (CUMULATIVE_ARGS::silent_p): Likewise.
6449 (BITS_PER_SVE_PRED): New macro.
6450 * config/aarch64/aarch64.c (handle_aarch64_vector_pcs_attribute): New
6451 function. Reject aarch64_vector_pcs attributes on SVE functions.
6452 (aarch64_attribute_table): Use the above handler.
6453 (aarch64_sve_abi): New function.
6454 (aarch64_sve_argument_p): Likewise.
6455 (aarch64_returns_value_in_sve_regs_p): Likewise.
6456 (aarch64_takes_arguments_in_sve_regs_p): Likewise.
6457 (aarch64_fntype_abi): Check for SVE functions and return the SVE PCS
6458 descriptor for them.
6459 (aarch64_simd_decl_p): Delete.
6460 (aarch64_emit_cfi_for_reg_p): New function.
6461 (aarch64_reg_save_mode): Remove the fndecl argument and instead use
6462 crtl->abi to choose the mode for FP registers. Handle the SVE PCS.
6463 (aarch64_hard_regno_call_part_clobbered): Do not treat FP registers
6464 as partly clobbered for the SVE PCS.
6465 (aarch64_function_ok_for_sibcall): Check whether the two functions
6466 use the same ABI, rather than checking specifically for whether
6467 they're aarch64_vector_pcs functions.
6468 (aarch64_pass_by_reference): Raise an error for attempts to pass
6469 SVE arguments when SVE is disabled. Pass SVE arguments by reference
6470 if there are not enough free registers left, or if the argument is
6471 variadic.
6472 (aarch64_function_value): Handle SVE predicates, vectors and tuples.
6473 (aarch64_return_in_memory): Do not return SVE predicates, vectors and
6474 tuples in memory.
6475 (aarch64_layout_arg): Take a function_arg_info rather than
6476 individual properties. Handle SVE predicates, vectors and tuples.
6477 Raise an error if they are passed to unprototyped functions.
6478 (aarch64_function_arg): If the silent_p flag is set, suppress the
6479 usual error about using float registers without TARGET_FLOAT.
6480 (aarch64_init_cumulative_args): Take a silent_p parameter and store
6481 it in the cumulative_args structure. Initialize aapcs_nprn and
6482 aapcs_nextnprn. If the silent_p flag is set, suppress the usual
6483 error about using float registers without TARGET_FLOAT.
6484 If the silent_p flag is not set, also raise an error about
6485 using SVE functions when SVE is disabled.
6486 (aarch64_function_arg_advance): Update the call to aarch64_layout_arg,
6487 and call it for SVE functions too. Update aapcs_nprn similarly
6488 to the other register counts.
6489 (aarch64_layout_frame): If a big-endian function needs to save
6490 and restore Z8-Z15, search for a spare predicate that it can use.
6491 Store SVE predicates at the bottom of the register save area,
6492 followed by SVE vectors, then followed by the normal slots.
6493 Keep pointing the hard frame pointer at the base of the normal slots,
6494 above the SVE vectors. Update the various frame creation and
6495 tear-down strategies for the new layout, initializing the new
6496 sve_callee_adjust field. Add an additional layout for frames
6497 whose saved registers are all SVE registers.
6498 (aarch64_register_saved_on_entry): Cope with poly_int64 reg_offsets.
6499 (aarch64_return_address_signing_enabled): Likewise.
6500 (aarch64_push_regs, aarch64_pop_regs): Update calls to
6501 aarch64_reg_save_mode.
6502 (aarch64_adjust_sve_callee_save_base): New function.
6503 (aarch64_add_cfa_expression): Move earlier in file. Take the
6504 saved register as an rtx rather than a register number and use
6505 its mode for the MEM slot.
6506 (aarch64_save_callee_saves): Remove the mode argument and instead
6507 use aarch64_reg_save_mode to get the mode of each save slot.
6508 Add a hard_fp_valid_p parameter. Cope with poly_int64 register
6509 offsets. Allow GP offsets to be saved at a VL-based offset from
6510 the stack, handling this case using the frame pointer if available
6511 or a temporary register otherwise. Use ST1D to save Z8-Z15 for
6512 big-endian SVE functions; use normal moves for other SVE saves.
6513 Only mark the save as frame-related if aarch64_emit_cfi_for_reg_p
6514 returns true. Add explicit CFA notes when not storing via the
6515 stack pointer. Do not try to pair SVE saves.
6516 (aarch64_restore_callee_saves): Cope with poly_int64 register
6517 offsets. Use LD1D to restore Z8-Z15 for big-endian SVE functions;
6518 use normal moves for other SVE restores. Only add CFA restore notes
6519 if aarch64_emit_cfi_for_reg_p returns true. Do not try to pair
6520 SVE restores.
6521 (aarch64_get_separate_components): Always keep the first SVE save
6522 in the prologue if we need to use it as a stack probe. Don't allow
6523 Z8-Z15 saves and loads to be shrink-wrapped for big-endian targets.
6524 Likewise the spare predicate register that they need. Update the
6525 offset calculation to account for the SVE save area. Use the
6526 appropriate range check for SVE LDR and STR instructions.
6527 (aarch64_components_for_bb): Cope with poly_int64 reg_offsets.
6528 (aarch64_process_components): Likewise. Update the offset
6529 calculation to account for the SVE save area. Only mark the
6530 save as frame-related if aarch64_emit_cfi_for_reg_p returns true.
6531 Do not try to pair SVE saves.
6532 (aarch64_allocate_and_probe_stack_space): Cope with poly_int64
6533 reg_offsets. When handling the final allocation, expect the
6534 first SVE register save to be part of the initial allocation
6535 and for it to act as a probe at SP. Account for the SVE callee
6536 save area in the dump information.
6537 (aarch64_expand_prologue): Update the frame diagram. Fold the
6538 SVE callee allocation into the initial allocation if stack clash
6539 protection is enabled. Use new variables to track the offset
6540 of the frame chain (and hard frame pointer) from the current
6541 stack pointer, and likewise the offset of the bottom of the
6542 register save area. Update calls to aarch64_save_callee_saves
6543 and aarch64_add_cfa_expression. Apply sve_callee_adjust before
6544 saving the FP&SIMD registers. Save the predicate registers.
6545 (aarch64_expand_epilogue): Take below_hard_fp_saved_regs_size
6546 into account when setting the stack pointer from the frame pointer,
6547 and when deciding whether we can inherit the initial adjustment
6548 amount from the prologue. Restore the predicate registers after
6549 the vector registers, then apply sve_callee_adjust, then restore
6550 the general registers.
6551 (aarch64_secondary_reload): Don't use secondary SVE reloads
6552 for VNx16BImode.
6553 (aapcs_vfp_sub_candidate): Assert that the type is not an SVE type.
6554 (aarch64_short_vector_p): Return false for SVE types.
6555 (aarch64_vfp_is_call_or_return_candidate): Initialize *is_ha
6556 at the start of the function. Return false for SVE types.
6557 (aarch64_asm_output_variant_pcs): Output .variant_pcs for SVE
6558 functions too.
6559 (TARGET_STRICT_ARGUMENT_NAMING): Redefine to request strict naming.
6560 * config/aarch64/aarch64-sve.md (*aarch64_sve_mov<mode>_le): Extend
6561 to big-endian targets for bytewise moves.
6562 (*aarch64_sve_mov<mode>_be): Exclude the bytewise case.
6563
6564 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
6565 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
6566 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6567
6568 * config.gcc (aarch64*-*-*): Add arm_sve.h to extra_headers.
6569 Add aarch64-sve-builtins.o, aarch64-sve-builtins-shapes.o and
6570 aarch64-sve-builtins-base.o to extra_objs. Add
6571 aarch64-sve-builtins.h and aarch64-sve-builtins.cc to target_gtfiles.
6572 * config/aarch64/t-aarch64 (aarch64-sve-builtins.o): New rule.
6573 (aarch64-sve-builtins-shapes.o): Likewise.
6574 (aarch64-sve-builtins-base.o): New rules.
6575 * config/aarch64/aarch64-c.c (aarch64_pragma_aarch64): New function.
6576 (aarch64_resolve_overloaded_builtin): Likewise.
6577 (aarch64_check_builtin_call): Likewise.
6578 (aarch64_register_pragmas): Install aarch64_resolve_overloaded_builtin
6579 and aarch64_check_builtin_call in targetm. Register the GCC aarch64
6580 pragma.
6581 * config/aarch64/aarch64-protos.h (AARCH64_FOR_SVPRFOP): New macro.
6582 (aarch64_svprfop): New enum.
6583 (AARCH64_BUILTIN_SVE): New aarch64_builtin_class enum value.
6584 (aarch64_sve_int_mode, aarch64_sve_data_mode): Declare.
6585 (aarch64_fold_sve_cnt_pat, aarch64_output_sve_prefetch): Likewise.
6586 (aarch64_output_sve_cnt_pat_immediate): Likewise.
6587 (aarch64_output_sve_ptrues, aarch64_sve_ptrue_svpattern_p): Likewise.
6588 (aarch64_sve_sqadd_sqsub_immediate_p, aarch64_sve_ldff1_operand_p)
6589 (aarch64_sve_ldnf1_operand_p, aarch64_sve_prefetch_operand_p)
6590 (aarch64_ptrue_all_mode, aarch64_convert_sve_data_to_pred): Likewise.
6591 (aarch64_expand_sve_dupq, aarch64_replace_reg_mode): Likewise.
6592 (aarch64_sve::init_builtins, aarch64_sve::handle_arm_sve_h): Likewise.
6593 (aarch64_sve::builtin_decl, aarch64_sve::builtin_type_p): Likewise.
6594 (aarch64_sve::mangle_builtin_type): Likewise.
6595 (aarch64_sve::resolve_overloaded_builtin): Likewise.
6596 (aarch64_sve::check_builtin_call, aarch64_sve::gimple_fold_builtin)
6597 (aarch64_sve::expand_builtin): Likewise.
6598 * config/aarch64/aarch64.c (aarch64_sve_data_mode): Make public.
6599 (aarch64_sve_int_mode): Likewise.
6600 (aarch64_ptrue_all_mode): New function.
6601 (aarch64_convert_sve_data_to_pred): Make public.
6602 (svprfop_token): New function.
6603 (aarch64_output_sve_prefetch): Likewise.
6604 (aarch64_fold_sve_cnt_pat): Likewise.
6605 (aarch64_output_sve_cnt_pat_immediate): Likewise.
6606 (aarch64_sve_move_pred_via_while): Use gen_while with UNSPEC_WHILE_LO
6607 instead of gen_while_ult.
6608 (aarch64_replace_reg_mode): Make public.
6609 (aarch64_init_builtins): Call aarch64_sve::init_builtins.
6610 (aarch64_fold_builtin): Handle AARCH64_BUILTIN_SVE.
6611 (aarch64_gimple_fold_builtin, aarch64_expand_builtin): Likewise.
6612 (aarch64_builtin_decl, aarch64_builtin_reciprocal): Likewise.
6613 (aarch64_mangle_type): Call aarch64_sve::mangle_type.
6614 (aarch64_sve_sqadd_sqsub_immediate_p): New function.
6615 (aarch64_sve_ptrue_svpattern_p): Likewise.
6616 (aarch64_sve_pred_valid_immediate): Check
6617 aarch64_sve_ptrue_svpattern_p.
6618 (aarch64_sve_ldff1_operand_p, aarch64_sve_ldnf1_operand_p)
6619 (aarch64_sve_prefetch_operand_p, aarch64_output_sve_ptrues): New
6620 functions.
6621 * config/aarch64/aarch64.md (UNSPEC_LDNT1_SVE, UNSPEC_STNT1_SVE)
6622 (UNSPEC_LDFF1_GATHER, UNSPEC_PTRUE, UNSPEC_WHILE_LE, UNSPEC_WHILE_LS)
6623 (UNSPEC_WHILE_LT, UNSPEC_CLASTA, UNSPEC_UPDATE_FFR)
6624 (UNSPEC_UPDATE_FFRT, UNSPEC_RDFFR, UNSPEC_WRFFR)
6625 (UNSPEC_SVE_LANE_SELECT, UNSPEC_SVE_CNT_PAT, UNSPEC_SVE_PREFETCH)
6626 (UNSPEC_SVE_PREFETCH_GATHER, UNSPEC_SVE_COMPACT, UNSPEC_SVE_SPLICE):
6627 New unspecs.
6628 * config/aarch64/iterators.md (SI_ONLY, DI_ONLY, VNx8HI_ONLY)
6629 (VNx2DI_ONLY, SVE_PARTIAL, VNx8_NARROW, VNx8_WIDE, VNx4_NARROW)
6630 (VNx4_WIDE, VNx2_NARROW, VNx2_WIDE, PRED_HSD): New mode iterators.
6631 (UNSPEC_ADR, UNSPEC_BRKA, UNSPEC_BRKB, UNSPEC_BRKN, UNSPEC_BRKPA)
6632 (UNSPEC_BRKPB, UNSPEC_PFIRST, UNSPEC_PNEXT, UNSPEC_CNTP, UNSPEC_SADDV)
6633 (UNSPEC_UADDV, UNSPEC_FMLA, UNSPEC_FMLS, UNSPEC_FEXPA, UNSPEC_FTMAD)
6634 (UNSPEC_FTSMUL, UNSPEC_FTSSEL, UNSPEC_COND_CMPEQ_WIDE): New unspecs.
6635 (UNSPEC_COND_CMPGE_WIDE, UNSPEC_COND_CMPGT_WIDE): Likewise.
6636 (UNSPEC_COND_CMPHI_WIDE, UNSPEC_COND_CMPHS_WIDE): Likewise.
6637 (UNSPEC_COND_CMPLE_WIDE, UNSPEC_COND_CMPLO_WIDE): Likewise.
6638 (UNSPEC_COND_CMPLS_WIDE, UNSPEC_COND_CMPLT_WIDE): Likewise.
6639 (UNSPEC_COND_CMPNE_WIDE, UNSPEC_COND_FCADD90, UNSPEC_COND_FCADD270)
6640 (UNSPEC_COND_FCMLA, UNSPEC_COND_FCMLA90, UNSPEC_COND_FCMLA180)
6641 (UNSPEC_COND_FCMLA270, UNSPEC_COND_FMAX, UNSPEC_COND_FMIN): Likewise.
6642 (UNSPEC_COND_FMULX, UNSPEC_COND_FRECPX, UNSPEC_COND_FSCALE): Likewise.
6643 (UNSPEC_LASTA, UNSPEC_ASHIFT_WIDE, UNSPEC_ASHIFTRT_WIDE): Likewise.
6644 (UNSPEC_LSHIFTRT_WIDE, UNSPEC_LDFF1, UNSPEC_LDNF1): Likewise.
6645 (Vesize): Handle partial vector modes.
6646 (self_mask, narrower_mask, sve_lane_con, sve_lane_pair_con): New
6647 mode attributes.
6648 (UBINQOPS, ANY_PLUS, SAT_PLUS, ANY_MINUS, SAT_MINUS): New code
6649 iterators.
6650 (s, paired_extend, inc_dec): New code attributes.
6651 (SVE_INT_ADDV, CLAST, LAST): New int iterators.
6652 (SVE_INT_UNARY): Add UNSPEC_RBIT.
6653 (SVE_FP_UNARY, SVE_FP_UNARY_INT): New int iterators.
6654 (SVE_FP_BINARY, SVE_FP_BINARY_INT): Likewise.
6655 (SVE_COND_FP_UNARY): Add UNSPEC_COND_FRECPX.
6656 (SVE_COND_FP_BINARY): Add UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and
6657 UNSPEC_COND_FMULX.
6658 (SVE_COND_FP_BINARY_INT, SVE_COND_FP_ADD): New int iterators.
6659 (SVE_COND_FP_SUB, SVE_COND_FP_MUL): Likewise.
6660 (SVE_COND_FP_BINARY_I1): Add UNSPEC_COND_FMAX and UNSPEC_COND_FMIN.
6661 (SVE_COND_FP_BINARY_REG): Add UNSPEC_COND_FMULX.
6662 (SVE_COND_FCADD, SVE_COND_FP_MAXMIN, SVE_COND_FCMLA)
6663 (SVE_COND_INT_CMP_WIDE, SVE_FP_TERNARY_LANE, SVE_CFP_TERNARY_LANE)
6664 (SVE_WHILE, SVE_SHIFT_WIDE, SVE_LDFF1_LDNF1, SVE_BRK_UNARY)
6665 (SVE_BRK_BINARY, SVE_PITER): New int iterators.
6666 (optab): Handle UNSPEC_SADDV, UNSPEC_UADDV, UNSPEC_FRECPE,
6667 UNSPEC_FRECPS, UNSPEC_RSQRTE, UNSPEC_RSQRTS, UNSPEC_RBIT,
6668 UNSPEC_SMUL_HIGHPART, UNSPEC_UMUL_HIGHPART, UNSPEC_FMLA, UNSPEC_FMLS,
6669 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270,
6670 UNSPEC_FEXPA, UNSPEC_FTSMUL, UNSPEC_FTSSEL, UNSPEC_COND_FCADD90,
6671 UNSPEC_COND_FCADD270, UNSPEC_COND_FCMLA, UNSPEC_COND_FCMLA90,
6672 UNSPEC_COND_FCMLA180, UNSPEC_COND_FCMLA270, UNSPEC_COND_FMAX,
6673 UNSPEC_COND_FMIN, UNSPEC_COND_FMULX, UNSPEC_COND_FRECPX and
6674 UNSPEC_COND_FSCALE.
6675 (maxmin_uns): Handle UNSPEC_COND_FMAX and UNSPEC_COND_FMIN.
6676 (binqops_op, binqops_op_rev, last_op): New int attributes.
6677 (su): Handle UNSPEC_SADDV and UNSPEC_UADDV.
6678 (fn, ab): New int attributes.
6679 (cmp_op): Handle UNSPEC_COND_CMP*_WIDE and UNSPEC_WHILE_*.
6680 (while_optab_cmp, brk_op, sve_pred_op): New int attributes.
6681 (sve_int_op): Handle UNSPEC_SMUL_HIGHPART, UNSPEC_UMUL_HIGHPART,
6682 UNSPEC_ASHIFT_WIDE, UNSPEC_ASHIFTRT_WIDE, UNSPEC_LSHIFTRT_WIDE and
6683 UNSPEC_RBIT.
6684 (sve_fp_op): Handle UNSPEC_FRECPE, UNSPEC_FRECPS, UNSPEC_RSQRTE,
6685 UNSPEC_RSQRTS, UNSPEC_FMLA, UNSPEC_FMLS, UNSPEC_FEXPA, UNSPEC_FTSMUL,
6686 UNSPEC_FTSSEL, UNSPEC_COND_FMAX, UNSPEC_COND_FMIN, UNSPEC_COND_FMULX,
6687 UNSPEC_COND_FRECPX and UNSPEC_COND_FSCALE.
6688 (sve_fp_op_rev): Handle UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and
6689 UNSPEC_COND_FMULX.
6690 (rot): Handle UNSPEC_COND_FCADD* and UNSPEC_COND_FCMLA*.
6691 (brk_reg_con, brk_reg_opno): New int attributes.
6692 (sve_pred_fp_rhs1_operand, sve_pred_fp_rhs2_operand): Handle
6693 UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and UNSPEC_COND_FMULX.
6694 (sve_pred_fp_rhs2_immediate): Handle UNSPEC_COND_FMAX and
6695 UNSPEC_COND_FMIN.
6696 (max_elem_bits): New int attribute.
6697 (min_elem_bits): Handle UNSPEC_RBIT.
6698 * config/aarch64/predicates.md (subreg_lowpart_operator): Handle
6699 TRUNCATE as well as SUBREG.
6700 (ascending_int_parallel, aarch64_simd_reg_or_minus_one)
6701 (aarch64_sve_ldff1_operand, aarch64_sve_ldnf1_operand)
6702 (aarch64_sve_prefetch_operand, aarch64_sve_ptrue_svpattern_immediate)
6703 (aarch64_sve_qadd_immediate, aarch64_sve_qsub_immediate)
6704 (aarch64_sve_gather_immediate_b, aarch64_sve_gather_immediate_h)
6705 (aarch64_sve_gather_immediate_w, aarch64_sve_gather_immediate_d)
6706 (aarch64_sve_sqadd_operand, aarch64_sve_gather_offset_b)
6707 (aarch64_sve_gather_offset_h, aarch64_sve_gather_offset_w)
6708 (aarch64_sve_gather_offset_d, aarch64_gather_scale_operand_b)
6709 (aarch64_gather_scale_operand_h): New predicates.
6710 * config/aarch64/constraints.md (UPb, UPd, UPh, UPw, Utf, Utn, vgb)
6711 (vgd, vgh, vgw, vsQ, vsS): New constraints.
6712 * config/aarch64/aarch64-sve.md: Add a note on the FFR handling.
6713 (*aarch64_sve_reinterpret<mode>): Allow any source register
6714 instead of requiring an exact match.
6715 (*aarch64_sve_ptruevnx16bi_cc, *aarch64_sve_ptrue<mode>_cc)
6716 (*aarch64_sve_ptruevnx16bi_ptest, *aarch64_sve_ptrue<mode>_ptest)
6717 (aarch64_wrffr, aarch64_update_ffr_for_load, aarch64_copy_ffr_to_ffrt)
6718 (aarch64_rdffr, aarch64_rdffr_z, *aarch64_rdffr_z_ptest)
6719 (*aarch64_rdffr_ptest, *aarch64_rdffr_z_cc, *aarch64_rdffr_cc)
6720 (aarch64_update_ffrt): New patterns.
6721 (@aarch64_load_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>)
6722 (@aarch64_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
6723 (@aarch64_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
6724 (@aarch64_ld<fn>f1<mode>): New patterns.
6725 (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>)
6726 (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
6727 (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
6728 (@aarch64_ldnt1<mode>): New patterns.
6729 (gather_load<mode>): Use aarch64_sve_gather_offset_<Vesize> for
6730 the scalar part of the address.
6731 (mask_gather_load<SVE_S:mode>): Use aarch64_sve_gather_offset_w for the
6732 scalar part of the addresse and add an alternative for handling
6733 nonzero offsets.
6734 (mask_gather_load<SVE_D:mode>): Likewise aarch64_sve_gather_offset_d.
6735 (*mask_gather_load<mode>_sxtw, *mask_gather_load<mode>_uxtw)
6736 (@aarch64_gather_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
6737 (@aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
6738 (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw)
6739 (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw)
6740 (@aarch64_ldff1_gather<SVE_S:mode>, @aarch64_ldff1_gather<SVE_D:mode>)
6741 (*aarch64_ldff1_gather<mode>_sxtw, *aarch64_ldff1_gather<mode>_uxtw)
6742 (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
6743 (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
6744 (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw)
6745 (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw)
6746 (@aarch64_sve_prefetch<mode>): New patterns.
6747 (@aarch64_sve_gather_prefetch<SVE_I:mode><VNx4SI_ONLY:mode>)
6748 (@aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>)
6749 (*aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>_sxtw)
6750 (*aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>_uxtw)
6751 (@aarch64_store_trunc<VNx8_NARROW:mode><VNx8_WIDE:mode>)
6752 (@aarch64_store_trunc<VNx4_NARROW:mode><VNx4_WIDE:mode>)
6753 (@aarch64_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>)
6754 (@aarch64_stnt1<mode>): New patterns.
6755 (scatter_store<mode>): Use aarch64_sve_gather_offset_<Vesize> for
6756 the scalar part of the address.
6757 (mask_scatter_store<SVE_S:mode>): Use aarch64_sve_gather_offset_w for
6758 the scalar part of the addresse and add an alternative for handling
6759 nonzero offsets.
6760 (mask_scatter_store<SVE_D:mode>): Likewise aarch64_sve_gather_offset_d.
6761 (*mask_scatter_store<mode>_sxtw, *mask_scatter_store<mode>_uxtw)
6762 (@aarch64_scatter_store_trunc<VNx4_NARROW:mode><VNx4_WIDE:mode>)
6763 (@aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>)
6764 (*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_sxtw)
6765 (*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_uxtw):
6766 New patterns.
6767 (vec_duplicate<mode>): Use QI as the mode of the input operand.
6768 (extract_last_<mode>): Generalize to...
6769 (@extract_<LAST:last_op>_<mode>): ...this.
6770 (*<SVE_INT_UNARY:optab><mode>2): Rename to...
6771 (@aarch64_pred_<SVE_INT_UNARY:optab><mode>): ...this.
6772 (@cond_<SVE_INT_UNARY:optab><mode>): New expander.
6773 (@aarch64_pred_sxt<SVE_HSDI:mode><SVE_PARTIAL:mode>): New pattern.
6774 (@aarch64_cond_sxt<SVE_HSDI:mode><SVE_PARTIAL:mode>): Likewise.
6775 (@aarch64_pred_cnot<mode>, @cond_cnot<mode>): New expanders.
6776 (@aarch64_sve_<SVE_FP_UNARY_INT:optab><mode>): New pattern.
6777 (@aarch64_sve_<SVE_FP_UNARY:optab><mode>): Likewise.
6778 (*<SVE_COND_FP_UNARY:optab><mode>2): Rename to...
6779 (@aarch64_pred_<SVE_COND_FP_UNARY:optab><mode>): ...this.
6780 (@cond_<SVE_COND_FP_UNARY:optab><mode>): New expander.
6781 (*<SVE_INT_BINARY_IMM:optab><mode>3): Rename to...
6782 (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>): ...this.
6783 (@aarch64_adr<mode>, *aarch64_adr_sxtw): New patterns.
6784 (*aarch64_adr_uxtw_unspec): Likewise.
6785 (*aarch64_adr_uxtw): Rename to...
6786 (*aarch64_adr_uxtw_and): ...this.
6787 (@aarch64_adr<mode>_shift): New expander.
6788 (*aarch64_adr_shift_sxtw): New pattern.
6789 (aarch64_<su>abd<mode>_3): Rename to...
6790 (@aarch64_pred_<su>abd<mode>): ...this.
6791 (<su>abd<mode>_3): Update accordingly.
6792 (@aarch64_cond_<su>abd<mode>): New expander.
6793 (@aarch64_<SBINQOPS:su_optab><optab><mode>): New pattern.
6794 (@aarch64_<UBINQOPS:su_optab><optab><mode>): Likewise.
6795 (*<su>mul<mode>3_highpart): Rename to...
6796 (@aarch64_pred_<optab><mode>): ...this.
6797 (@cond_<MUL_HIGHPART:optab><mode>): New expander.
6798 (*cond_<MUL_HIGHPART:optab><mode>_2): New pattern.
6799 (*cond_<MUL_HIGHPART:optab><mode>_z): Likewise.
6800 (*<SVE_INT_BINARY_SD:optab><mode>3): Rename to...
6801 (@aarch64_pred_<SVE_INT_BINARY_SD:optab><mode>): ...this.
6802 (cond_<SVE_INT_BINARY_SD:optab><mode>): Add a "@" marker.
6803 (@aarch64_bic<mode>, @cond_bic<mode>): New expanders.
6804 (*v<ASHIFT:optab><mode>3): Rename to...
6805 (@aarch64_pred_<ASHIFT:optab><mode>): ...this.
6806 (@aarch64_sve_<SVE_SHIFT_WIDE:sve_int_op><mode>): New pattern.
6807 (@cond_<SVE_SHIFT_WIDE:sve_int_op><mode>): New expander.
6808 (*cond_<SVE_SHIFT_WIDE:sve_int_op><mode>_m): New pattern.
6809 (*cond_<SVE_SHIFT_WIDE:sve_int_op><mode>_z): Likewise.
6810 (@cond_asrd<mode>): New expander.
6811 (*cond_asrd<mode>_2, *cond_asrd<mode>_z): New patterns.
6812 (sdiv_pow2<mode>3): Expand to *cond_asrd<mode>_2.
6813 (*sdiv_pow2<mode>3): Delete.
6814 (@cond_<SVE_COND_FP_BINARY_INT:optab><mode>): New expander.
6815 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_2): New pattern.
6816 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_any): Likewise.
6817 (@aarch64_sve_<SVE_FP_BINARY:optab><mode>): New pattern.
6818 (@aarch64_sve_<SVE_FP_BINARY_INT:optab><mode>): Likewise.
6819 (*<SVE_COND_FP_BINARY_REG:optab><mode>3): Rename to...
6820 (@aarch64_pred_<SVE_COND_FP_BINARY_REG:optab><mode>): ...this.
6821 (@aarch64_pred_<SVE_COND_FP_BINARY_INT:optab><mode>): New pattern.
6822 (cond_<SVE_COND_FP_BINARY:optab><mode>): Add a "@" marker.
6823 (*add<SVE_F:mode>3): Rename to...
6824 (@aarch64_pred_add<SVE_F:mode>): ...this and add alternatives
6825 for SVE_STRICT_GP.
6826 (@aarch64_pred_<SVE_COND_FCADD:optab><mode>): New pattern.
6827 (@cond_<SVE_COND_FCADD:optab><mode>): New expander.
6828 (*cond_<SVE_COND_FCADD:optab><mode>_2): New pattern.
6829 (*cond_<SVE_COND_FCADD:optab><mode>_any): Likewise.
6830 (*sub<SVE_F:mode>3): Rename to...
6831 (@aarch64_pred_sub<SVE_F:mode>): ...this and add alternatives
6832 for SVE_STRICT_GP.
6833 (@aarch64_pred_abd<SVE_F:mode>): New expander.
6834 (*fabd<SVE_F:mode>3): Rename to...
6835 (*aarch64_pred_abd<SVE_F:mode>): ...this.
6836 (@aarch64_cond_abd<SVE_F:mode>): New expander.
6837 (*mul<SVE_F:mode>3): Rename to...
6838 (@aarch64_pred_<SVE_F:optab><mode>): ...this and add alternatives
6839 for SVE_STRICT_GP.
6840 (@aarch64_mul_lane_<SVE_F:mode>): New pattern.
6841 (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><mode>3): Rename and generalize
6842 to...
6843 (@aarch64_pred_<SVE_COND_FP_MAXMIN:optab><mode>): ...this.
6844 (*<LOGICAL:optab><PRED_ALL:mode>3_ptest): New pattern.
6845 (*<nlogical><PRED_ALL:mode>3): Rename to...
6846 (aarch64_pred_<nlogical><PRED_ALL:mode>_z): ...this.
6847 (*<nlogical><PRED_ALL:mode>3_cc): New pattern.
6848 (*<nlogical><PRED_ALL:mode>3_ptest): Likewise.
6849 (*<logical_nn><PRED_ALL:mode>3): Rename to...
6850 (aarch64_pred_<logical_nn><mode>_z): ...this.
6851 (*<logical_nn><PRED_ALL:mode>3_cc): New pattern.
6852 (*<logical_nn><PRED_ALL:mode>3_ptest): Likewise.
6853 (*fma<SVE_I:mode>4): Rename to...
6854 (@aarch64_pred_fma<SVE_I:mode>): ...this.
6855 (*fnma<SVE_I:mode>4): Rename to...
6856 (@aarch64_pred_fnma<SVE_I:mode>): ...this.
6857 (@aarch64_<sur>dot_prod_lane<vsi2qi>): New pattern.
6858 (*<SVE_FP_TERNARY:optab><mode>4): Rename to...
6859 (@aarch64_pred_<SVE_FP_TERNARY:optab><mode>): ...this.
6860 (cond_<SVE_FP_TERNARY:optab><mode>): Add a "@" marker.
6861 (@aarch64_<SVE_FP_TERNARY_LANE:optab>_lane_<mode>): New pattern.
6862 (@aarch64_pred_<SVE_COND_FCMLA:optab><mode>): Likewise.
6863 (@cond_<SVE_COND_FCMLA:optab><mode>): New expander.
6864 (*cond_<SVE_COND_FCMLA:optab><mode>_4): New pattern.
6865 (*cond_<SVE_COND_FCMLA:optab><mode>_any): Likewise.
6866 (@aarch64_<FCMLA:optab>_lane_<mode>): Likewise.
6867 (@aarch64_sve_tmad<mode>): Likewise.
6868 (vcond_mask_<SVE_ALL:mode><vpred>): Add a "@" marker.
6869 (*aarch64_sel_dup<mode>): Rename to...
6870 (@aarch64_sel_dup<mode>): ...this.
6871 (@aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide): New pattern.
6872 (*aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide_cc): Likewise.
6873 (*aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide_ptest): Likewise.
6874 (@while_ult<GPI:mode><PRED_ALL:mode>): Generalize to...
6875 (@while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>): ...this.
6876 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): Generalize to.
6877 (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_cc): ...this.
6878 (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_ptest): New pattern.
6879 (*fcm<cmp_op><mode>): Rename to...
6880 (@aarch64_pred_fcm<cmp_op><mode>): ...this. Make operand order
6881 match @aarch64_pred_cmp<cmp_op><SVE_I:mode>.
6882 (*fcmuo<mode>): Rename to...
6883 (@aarch64_pred_fcmuo<mode>): ...this. Make operand order
6884 match @aarch64_pred_cmp<cmp_op><SVE_I:mode>.
6885 (@aarch64_pred_fac<cmp_op><mode>): New expander.
6886 (@vcond_mask_<PRED_ALL:mode><mode>): New pattern.
6887 (fold_extract_last_<mode>): Generalize to...
6888 (@fold_extract_<last_op>_<mode>): ...this.
6889 (@aarch64_fold_extract_vector_<last_op>_<mode>): New pattern.
6890 (*reduc_plus_scal_<SVE_I:mode>): Replace with...
6891 (@aarch64_pred_reduc_<optab>_<mode>): ...this pattern, making the
6892 DImode result explicit.
6893 (reduc_plus_scal_<mode>): Update accordingly.
6894 (*reduc_<optab>_scal_<SVE_I:mode>): Rename to...
6895 (@aarch64_pred_reduc_<optab>_<SVE_I:mode>): ...this.
6896 (*reduc_<optab>_scal_<SVE_F:mode>): Rename to...
6897 (@aarch64_pred_reduc_<optab>_<SVE_F:mode>): ...this.
6898 (*aarch64_sve_tbl<mode>): Rename to...
6899 (@aarch64_sve_tbl<mode>): ...this.
6900 (@aarch64_sve_compact<mode>): New pattern.
6901 (*aarch64_sve_dup_lane<mode>): Rename to...
6902 (@aarch64_sve_dup_lane<mode>): ...this.
6903 (@aarch64_sve_dupq_lane<mode>): New pattern.
6904 (@aarch64_sve_splice<mode>): Likewise.
6905 (aarch64_sve_<perm_insn><mode>): Rename to...
6906 (@aarch64_sve_<perm_insn><mode>): ...this.
6907 (*aarch64_sve_ext<mode>): Rename to...
6908 (@aarch64_sve_ext<mode>): ...this.
6909 (aarch64_sve_<su>unpk<perm_hilo>_<SVE_BHSI:mode>): Add a "@" marker.
6910 (*aarch64_sve_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): Rename
6911 to...
6912 (@aarch64_sve_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): ...this.
6913 (*aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
6914 Rename to...
6915 (@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
6916 ...this.
6917 (@cond_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): New expander.
6918 (@cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): Likewise.
6919 (*cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): New pattern.
6920 (*aarch64_sve_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): Rename
6921 to...
6922 (@aarch64_sve_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): ...this.
6923 (aarch64_sve_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): Add
6924 a "@" marker.
6925 (@cond_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): New expander.
6926 (@cond_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): Likewise.
6927 (*cond_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): New
6928 pattern.
6929 (*aarch64_sve_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): Rename to...
6930 (@aarch64_sve_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): ...this.
6931 (@cond_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): New expander.
6932 (*cond_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): New pattern.
6933 (aarch64_sve_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): Add a
6934 "@" marker.
6935 (@cond_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): New expander.
6936 (*cond_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): New pattern.
6937 (aarch64_sve_punpk<perm_hilo>_<mode>): Add a "@" marker.
6938 (@aarch64_brk<SVE_BRK_UNARY:brk_op>): New pattern.
6939 (*aarch64_brk<SVE_BRK_UNARY:brk_op>_cc): Likewise.
6940 (*aarch64_brk<SVE_BRK_UNARY:brk_op>_ptest): Likewise.
6941 (@aarch64_brk<SVE_BRK_BINARY:brk_op>): Likewise.
6942 (*aarch64_brk<SVE_BRK_BINARY:brk_op>_cc): Likewise.
6943 (*aarch64_brk<SVE_BRK_BINARY:brk_op>_ptest): Likewise.
6944 (@aarch64_sve_<SVE_PITER:sve_pred_op><mode>): Likewise.
6945 (*aarch64_sve_<SVE_PITER:sve_pred_op><mode>_cc): Likewise.
6946 (*aarch64_sve_<SVE_PITER:sve_pred_op><mode>_ptest): Likewise.
6947 (aarch64_sve_cnt_pat): Likewise.
6948 (@aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode>_pat): Likewise.
6949 (*aarch64_sve_incsi_pat): Likewise.
6950 (@aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode>_pat): Likewise.
6951 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_pat): Likewise.
6952 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_pat): Likewise.
6953 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_pat): New expander.
6954 (*aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_pat): New pattern.
6955 (@aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode>_pat): Likewise.
6956 (*aarch64_sve_decsi_pat): Likewise.
6957 (@aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode>_pat): Likewise.
6958 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_pat): Likewise.
6959 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_pat): Likewise.
6960 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_pat): New expander.
6961 (*aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_pat): New pattern.
6962 (@aarch64_pred_cntp<mode>): Likewise.
6963 (@aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp):
6964 New expander.
6965 (*aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp)
6966 (*aarch64_incsi<PRED_ALL:mode>_cntp): New patterns.
6967 (@aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
6968 New expander.
6969 (*aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
6970 New pattern.
6971 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New expander.
6972 (*aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New pattern.
6973 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New expander.
6974 (*aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New pattern.
6975 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New expander.
6976 (*aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New pattern.
6977 (@aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp):
6978 New expander.
6979 (*aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp)
6980 (*aarch64_incsi<PRED_ALL:mode>_cntp): New patterns.
6981 (@aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
6982 New expander.
6983 (*aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
6984 New pattern.
6985 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New
6986 expander.
6987 (*aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New pattern.
6988 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New
6989 expander.
6990 (*aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New pattern.
6991 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New
6992 expander.
6993 (*aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New pattern.
6994 * config/aarch64/arm_sve.h: New file.
6995 * config/aarch64/aarch64-sve-builtins.h: Likewise.
6996 * config/aarch64/aarch64-sve-builtins.cc: Likewise.
6997 * config/aarch64/aarch64-sve-builtins.def: Likewise.
6998 * config/aarch64/aarch64-sve-builtins-base.h: Likewise.
6999 * config/aarch64/aarch64-sve-builtins-base.cc: Likewise.
7000 * config/aarch64/aarch64-sve-builtins-base.def: Likewise.
7001 * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
7002 * config/aarch64/aarch64-sve-builtins-shapes.h: Likewise.
7003 * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
7004
7005 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
7006
7007 * config/aarch64/aarch64-sve.md (@aarch64_sve_rev<PRED_ALL:mode>):
7008 New pattern.
7009 * config/aarch64/aarch64.c (aarch64_evpc_rev_global): Handle all
7010 SVE modes.
7011
7012 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
7013
7014 * config/aarch64/aarch64.md (FFR_REGNUM, FFRT_REGNUM): New constants.
7015 * config/aarch64/aarch64.h (FIRST_PSEUDO_REGISTER): Bump to
7016 FFRT_REGNUM + 1.
7017 (FFR_REGS, PR_AND_FFR_REGS): New register classes.
7018 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add entries for them.
7019 * config/aarch64/aarch64.c (pr_or_ffr_regnum_p): New function.
7020 (aarch64_hard_regno_nregs): Handle the new register classes.
7021 (aarch64_hard_regno_mode_ok): Likewise.
7022 (aarch64_regno_regclass): Likewise.
7023 (aarch64_class_max_nregs): Likewise.
7024 (aarch64_register_move_cost): Likewise.
7025 (aarch64_conditional_register_usage): Don't treat FFR and FFRT
7026 as general register_operands.
7027
7028 2019-10-29 Martin Liska <mliska@suse.cz>
7029
7030 * ggc-common.c: One can't subtract unsigned types
7031 in compare function.
7032
7033 2019-10-29 Martin Liska <mliska@suse.cz>
7034
7035 * cgraphunit.c (symbol_table::compile): Pass
7036 title as dump_memory_report argument.
7037 * toplev.c (dump_memory_report): New argument.
7038 (finalize): Pass new argument.
7039 * toplev.h (dump_memory_report): Add argument.
7040
7041 2019-10-29 Martin Liska <mliska@suse.cz>
7042
7043 * ggc-common.c: Move Leak to the first column.
7044
7045 2019-10-29 Martin Liska <mliska@suse.cz>
7046
7047 * cgraphunit.c (symbol_table::compile): Remove argument
7048 for dump_memory_report.
7049 * ggc-common.c (dump_ggc_loc_statistics): Likewise.
7050 (compare_final): Remove in order to make report
7051 better readable.
7052 * ggc.h (dump_ggc_loc_statistics): Remove argument.
7053 * mem-stats.h (mem_alloc_description::get_list):
7054 Do not pass cmp.
7055 (mem_alloc_description::dump): Likewise here.
7056 * toplev.c (dump_memory_report): Remove final
7057 argument.
7058 (finalize): Likewise.
7059 * toplev.h (dump_memory_report): Remove argument.
7060
7061 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
7062
7063 * config/aarch64/aarch64.c (aarch64_sve_cmp_immediate_p)
7064 (aarch64_simd_shift_imm_p): Accept scalars as well as vectors.
7065 * config/aarch64/predicates.md (aarch64_sve_cmp_vsc_immediate)
7066 (aarch64_sve_cmp_vsd_immediate): Accept "const_int", but don't
7067 accept "const".
7068
7069 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
7070
7071 * coretypes.h (string_int_pair): New typedef.
7072 * langhooks-def.h (LANG_HOOKS_SIMULATE_ENUM_DECL): Define.
7073 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Include it.
7074 * langhooks.h (lang_hooks_for_types::simulate_enum_decl): New hook.
7075
7076 2019-10-29 Richard Sandiford <richard.sandiford@arm.com>
7077
7078 * langhooks.h (lang_hooks::simulate_builtin_function_decl): New hook.
7079 (simulate_builtin_function_decl): Declare.
7080 * langhooks-def.h (LANG_HOOKS_SIMULATE_BUILTIN_FUNCTION_DECL): Define.
7081 (LANG_HOOKS_INITIALIZER): Include it.
7082 * langhooks.c (add_builtin_function_common): Rename to...
7083 (build_builtin_function): ...this. Add a location parameter and use
7084 it instead of BUILTINS_LOCATION. Remove the hook parameter and return
7085 the decl instead.
7086 (add_builtin_function): Update accordingly, passing the returned
7087 decl to the lang hook.
7088 (add_builtin_function_ext_scope): Likewise
7089 (simulate_builtin_function_decl): New function.
7090
7091 2019-10-29 Jakub Jelinek <jakub@redhat.com>
7092
7093 * doc/install.texi (--enable-offload-targets): Fix up a typo in the
7094 example, use actual names of supported offload targets.
7095
7096 PR target/92258
7097 * config/i386/sse.md (iptr): Revert 2019-10-27 change.
7098
7099 2019-10-28 Martin Sebor <msebor@redhat.com>
7100
7101 * tree-ssa-strlen.c (get_addr_stridx): Add argument and use it.
7102 (handle_store): Pass argument to get_addr_stridx.
7103
7104 2019-10-28 Martin Sebor <msebor@redhat.com>
7105
7106 PR tree-optimization/92226
7107 * tree-ssa-strlen.c (compare_nonzero_chars): Return -1 also when
7108 the offset is in the open range outlined by SI's length.
7109
7110 2019-10-28 Martin Sebor <msebor@redhat.com>
7111
7112 PR c/66970
7113 * doc/cpp.texi (__has_builtin): Document.
7114 * doc/extend.texi (__builtin_frob_return_addr): Correct spelling.
7115
7116 2019-10-28 Mihailo Stojanovic <mistojanovic@wavecomp.com>
7117
7118 PR target/82981
7119 * config/mips/mips.md (<u>mulditi3): Generate patterns for high
7120 doubleword and low doubleword result of multiplication on
7121 MIPS64R6.
7122
7123 * config/mips/mips.c (DIRECT_BUILTIN_PURE): New macro. Add a
7124 pure qualifier to the built-in.
7125 (MSA_BUILTIN_PURE): New macro. Add a pure qualifier to the MSA
7126 built-ins.
7127 (struct mips_builtin_description): Add is_pure flag.
7128 (mips_init_builtins): Mark built-in as pure if the flag in the
7129 corresponding mips_builtin_description struct is set.
7130
7131 * config/mips/mips-msa.md (msa_insert_<msaftm_f>): Add an
7132 alternative which covers the floating-point input value. Also
7133 forbid the split of insert.d pattern for floating-point values.
7134
7135 2019-10-28 Andrew Burgess <andrew.burgess@embecosm.com>
7136
7137 * config.gcc: Add riscv-sr.o to extra_objs for riscv.
7138 * config/riscv/riscv-sr.c: New file.
7139 * config/riscv/riscv.c (riscv_reorg): New function.
7140 (TARGET_MACHINE_DEPENDENT_REORG): Define.
7141 * config/riscv/riscv.h (SIBCALL_REG_P): Define.
7142 (riscv_remove_unneeded_save_restore_calls): Declare.
7143 * config/riscv/t-riscv (riscv-sr.o): New build rule.
7144
7145 2019-10-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7146
7147 PR tree-optimization/92163
7148 * tree-ssa-dse.c (delete_dead_or_redundant_assignment): New param
7149 need_eh_cleanup with default value NULL. Gate on need_eh_cleanup
7150 before calling bitmap_set_bit.
7151 (dse_optimize_redundant_stores): Pass global need_eh_cleanup to
7152 delete_dead_or_redundant_assignment.
7153 (dse_dom_walker::dse_optimize_stmt): Likewise.
7154 * tree-ssa-dse.h (delete_dead_or_redundant_assignment): Adjust prototype.
7155
7156 2019-10-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7157
7158 PR middle-end/91272
7159 * tree-vect-stmts.c (vectorizable_condition): Support
7160 EXTRACT_LAST_REDUCTION with fully-masked loops.
7161
7162 2019-10-28 Richard Biener <rguenther@suse.de>
7163
7164 PR tree-optimization/92252
7165 * tree-vect-slp.c (vect_get_and_check_slp_defs): Adjust
7166 STMT_VINFO_REDUC_IDX when swapping operands.
7167
7168 2019-10-28 Richard Biener <rguenther@suse.de>
7169
7170 PR tree-optimization/92241
7171 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): When
7172 we failed to update the reduction index do not use the pattern
7173 stmts for the reduction chain.
7174 (vectorizable_reduction): When the reduction chain is corrupt,
7175 fail.
7176 * tree-vect-patterns.c (vect_mark_pattern_stmts): Stop when we
7177 fail to update the reduction chain.
7178
7179 2019-10-28 Richard Biener <rguenther@suse.de>
7180
7181 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
7182 STMT_VINFO_REDUC_IDX from the actual stmt.
7183 (vect_transform_reduction): Likewise.
7184 (vectorizable_reduction): Compute the reduction chain length,
7185 do not recompute the reduction operand index. Remove no longer
7186 necessary restriction for condition reduction chains.
7187
7188 2019-10-28 Uroš Bizjak <ubizjak@gmail.com>
7189
7190 PR target/92225
7191 * config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE4_2
7192 condition for V2DImode.
7193
7194 2019-10-28 Uroš Bizjak <ubizjak@gmail.com>
7195
7196 * config/i386/sse.md (sse_cvtss2si<rex64namesuffix>_2):
7197 Remove %k operand modifier.
7198 (*vec_extractv2df_1_sse): Remove %q operand modifier.
7199
7200 2019-10-28 Ilya Leoshkevich <iii@linux.ibm.com>
7201
7202 PR rtl-optimization/92007
7203 * cfgcleanup.c (thread_jump): Add an assertion that we don't
7204 call it after reload if hot/cold partitioning has been done.
7205 (class pass_postreload_jump): Rename to
7206 pass_jump_after_combine.
7207 (make_pass_postreload_jump): Rename to
7208 make_pass_jump_after_combine.
7209 * passes.def(pass_postreload_jump): Move before reload, rename
7210 to pass_jump_after_combine.
7211 * tree-pass.h (make_pass_postreload_jump): Rename to
7212 make_pass_jump_after_combine.
7213
7214 2019-10-25 Jan Hubicka <hubicka@ucw.cz>
7215
7216 PR ipa/92242
7217 * ipa-fnsummary.c (ipa_merge_fn_summary_after_inlining): Check
7218 for missing EDGE_REF
7219 * ipa-prop.c (update_jump_functions_after_inlining): Likewise.
7220
7221 2019-10-25 Jiufu Guo <guojiufu@linux.ibm.com>
7222
7223 PR tree-optimization/88760
7224 * config/rs6000/rs6000-common.c (rs6000_option_optimization_table):
7225 Enable -funroll-loops for -O2 and above.
7226 * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
7227 PARAM_MAX_UNROLL_TIMES to 2 and PARAM_MAX_UNROLLED_INSNS to 20, and
7228 do not turn on web and rngreg implicitly, if the unroller is not
7229 explicitly enabled.
7230
7231 2019-10-27 Jan Hubicka <hubicka@ucw.cz>
7232
7233 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not remove
7234 jump functions.
7235
7236 2019-10-27 Eric Botcazou <ebotcazou@adacore.com>
7237
7238 * cgraph.c (cgraph_node::rtl_info): Fix cut&pasto in comment.
7239 * cgraph.h (cgraph_node::rtl_info): Likewise.
7240
7241 2019-10-27 Jan Hubicka <hubicka@ucw.cz>
7242
7243 * ipa-cp.c (propagate_constants_across_call): If args are not available
7244 just drop everything to varying.
7245 (find_aggregate_values_for_callers_subset): Watch for missing
7246 edge summary.
7247 (find_more_scalar_values_for_callers_subs): Likewise.
7248 * ipa-prop.c (ipa_compute_jump_functions_for_edge,
7249 update_jump_functions_after_inlining, propagate_controlled_uses):
7250 Watch for missing summaries.
7251 (ipa_propagate_indirect_call_infos): Remove summary after propagation
7252 is finished.
7253 (ipa_write_node_info): Watch for missing summaries.
7254 (ipa_read_edge_info): Create new ref.
7255 (ipa_edge_args_sum_t): Add remove.
7256 (IPA_EDGE_REF_GET_CREATE): New macro.
7257 * ipa-fnsummary.c (evaluate_properties_for_edge): Watch for missing
7258 edge summary.
7259 (remap_edge_change_prob): Likewise.
7260
7261 2019-10-27 Jan Hubicka <hubicka@ucw.cz>
7262
7263 * ipa-inline-transform.c (inline_call): update function summaries
7264 after expanidng thunk.
7265
7266 2019-10-27 Jan Hubicka <hubicka@ucw.cz>
7267
7268 * ipa-icf.c (sem_function::merge): Update function summaries.
7269 * ipa-prop.h (ipa_get_param): Do not sanity check for WPA.
7270
7271 2019-10-27 Hongtao Liu <hongtao.liu@intel.com>
7272
7273 * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3,
7274 <sse>_vm<multdiv_mnemonic><mode>3): Remove <iptr> since
7275 operand already has scalar mode.
7276 (iptr): Remove SF/DF.
7277
7278 2019-10-26 Segher Boessenkool <segher@kernel.crashing.org>
7279
7280 PR target/91289
7281 * config/rs6000/rs6000-logue.c (rs6000_emit_allocate_stack): Don't add
7282 an immediate to r0; use r11 instead. Save and restore r11 to r0 around
7283 this.
7284
7285 2019-10-26 Hongtao Liu <hongtao.liu@intel.com>
7286
7287 * config/i386/sse.md
7288 (<sse>_vm<plusminus_insn><mode>3<mask_scalar_name><round_scalar_name>,
7289 <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name><round_scalar_name>,
7290 <sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>,
7291 <sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>,
7292 <sse>_vmmaskcmp<mode>3):
7293 Change predicates from vector_operand to nonimmediate_operand,
7294 constraints xBm to xm, since scalar operations don't need
7295 memory address alignment.
7296 (avx512f_vmcmp<mode>3<round_saeonly_name>,
7297 avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Replace
7298 round_saeonly_nimm_predicate with
7299 round_saeonly_nimm_scalar_predicate.
7300 (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
7301 fmai_vmfnmadd_<mode><round_name>,fmai_vmfnmsub_<mode><round_name>,
7302 *fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
7303 *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>,
7304 avx512f_vmfmadd_<mode>_mask3<round_name>,
7305 avx512f_vmfmadd_<mode>_maskz_1<round_name>,
7306 *avx512f_vmfmsub_<mode>_mask<round_name>,
7307 avx512f_vmfmsub_<mode>_mask3<round_name>,
7308 *avx512f_vmfmsub_<mode>_maskz_1<round_name>,
7309 *avx512f_vmfnmadd_<mode>_mask<round_name>,
7310 *avx512f_vmfnmadd_<mode>_mask3<round_name>,
7311 *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
7312 *avx512f_vmfnmsub_<mode>_mask<round_name>,
7313 *avx512f_vmfnmsub_<mode>_mask3<round_name>,
7314 *avx512f_vmfnmsub_<mode>_maskz_1<round_name>,
7315 cvtusi2<ssescalarmodesuffix>32<round_name>,
7316 cvtusi2<ssescalarmodesuffix>64<round_name>, ): Replace
7317 round_nimm_predicate with round_nimm_scalr_predicate.
7318 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>,
7319 avx512f_sfixupimm<mode>_mask<round_saeonly_name>,
7320 avx512er_vmrcp28<mode><round_saeonly_name>,
7321 avx512er_vmrsqrt28<mode><round_saeonly_name>,
7322 ): Replace round_saeonly_nimm_predicate with
7323 round_saeonly_nimm_scalar_predicate.
7324 (avx512dq_vmfpclass<mode><mask_scalar_merge_name>): Replace
7325 vector_operand with nonimmediate_operand.
7326 * config/i386/subst.md (round_scalar_nimm_predicate,
7327 round_saeonly_scalar_nimm_predicate): Replace
7328 vector_operand with nonimmediate_operand.
7329
7330 2019-10-26 Hongtao Liu <hongtao.liu@intel.com>
7331
7332 PR target/89071
7333 * config/i386/i386.md (*rcpsf2_sse): Add
7334 avx_partial_xmm_update, prefer m constraint for TARGET_AVX.
7335 (*rsqrtsf2_sse): Ditto.
7336 (*sqrt<mode>2_sse): Ditto.
7337 (sse4_1_round<mode>2): separate constraint vm, add
7338 avx_partail_xmm_update, prefer m constraint for TARGET_AVX.
7339 * config/i386/sse.md (*sse_vmrcpv4sf2"): New define_insn used
7340 by pass rpad.
7341 (*<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>*):
7342 Ditto.
7343 (*sse_vmrsqrtv4sf2): Ditto.
7344 (*avx512f_rndscale<mode><round_saeonly_name>): Ditto.
7345 (*sse4_1_round<ssescalarmodesuffix>): Ditto.
7346 (sse4_1_round<ssescalarmodesuffix>): Add m constraint and
7347 <iptr> pointer size modifier since vround support memory operand.
7348
7349 2019-10-18 Georg-Johann Lay <avr@gjlay.de>
7350
7351 PR target/85969
7352 * config/avr/gen-avr-mmcu-specs.c (str_prefix_p): Remove unused
7353 static function.
7354
7355 2019-10-25 Cesar Philippidis <cesar@codesourcery.com>
7356 Tobias Burnus <tobias@codesourcery.com>
7357
7358 * gimplify.c (oacc_default_clause): Privatize fortran common blocks.
7359 (omp_notice_variable): Defer the expansion of DECL_VALUE_EXPR for
7360 common block decls.
7361
7362 2019-10-25 Richard Biener <rguenther@suse.de>
7363
7364 PR tree-optimization/92222
7365 * tree-vect-slp.c (_slp_oprnd_info::first_pattern): Remove.
7366 (_slp_oprnd_info::second_pattern): Likewise.
7367 (_slp_oprnd_info::any_pattern): New.
7368 (vect_create_oprnd_info): Adjust.
7369 (vect_get_and_check_slp_defs): Compute whether any stmt is
7370 in a pattern.
7371 (vect_build_slp_tree_2): Avoid building up a node from scalars
7372 if any of the operand defs, not just the first, is in a pattern.
7373
7374 2019-10-25 Richard Biener <rguenther@suse.de>
7375
7376 * tree-vect-slp.c (vect_get_and_check_slp_defs): Only fail
7377 swapping if we actually have to modify the IL on a shared stmt.
7378 (vect_build_slp_tree_2): Never fail swapping on shared stmts
7379 because we no longer modify the IL.
7380
7381 2019-10-25 Martin Liska <mliska@suse.cz>
7382
7383 * tree.c (dump_tree_statistics): Use sorted index 'j' and not 'i'.
7384
7385 2019-10-25 Richard Sandiford <richard.sandiford@arm.com>
7386
7387 * tree-vect-loop.c (vectorizable_reduction): Restrict the
7388 LOOP_VINFO_CAN_FULLY_MASK_P handling to cases that will be
7389 handled by vect_transform_reduction. Allow fully-masked loops
7390 to be used with reduction chains.
7391 * tree-vect-stmts.c (vectorizable_operation): Handle reduction
7392 operations in fully-masked loops.
7393 (vectorizable_condition): Reject EXTRACT_LAST_REDUCTION
7394 operations in fully-masked loops.
7395
7396 2019-10-25 Richard Biener <rguenther@suse.de>
7397
7398 * tree-vect-loop.c (vectorizable_reduction): Verify
7399 STMT_VINFO_REDUC_IDX on the to be vectorized stmts is set up
7400 correctly.
7401 * tree-vect-patterns.c (vect_mark_pattern_stmts): Transfer
7402 STMT_VINFO_REDUC_IDX from the original stmts to the pattern
7403 stmts.
7404
7405 2019-10-24 Jakub Jelinek <jakub@redhat.com>
7406
7407 * gimplify.h (omp_construct_selector_matches): Declare.
7408 * gimplify.c (struct gimplify_omp_ctx): Add code member.
7409 (gimplify_call_expr): Call omp_resolve_declare_variant and remap
7410 called function if needed for flag_openmp.
7411 (gimplify_scan_omp_clauses): Set ctx->code.
7412 (omp_construct_selector_matches): New function.
7413 * omp-general.h (omp_constructor_traits_to_codes,
7414 omp_context_selector_matches, omp_resolve_declare_variant): Declare.
7415 * omp-general.c (omp_constructor_traits_to_codes,
7416 omp_context_selector_matches, omp_resolve_declare_variant): New
7417 functions.
7418
7419 * config/arc/arc.c (hwloop_optimize): Add missing space in string
7420 literal.
7421 * config/rx/rx.c (rx_print_operand): Likewise.
7422 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
7423 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
7424 * ipa-sra.c (create_parameter_descriptors, process_scan_results):
7425 Likewise.
7426 * genemit.c (emit_c_code): Likewise.
7427 * plugin.c (try_init_one_plugin): Likewise. Formatting fix.
7428
7429 2019-10-24 Jan Hubicka <hubicka@ucw.cz>
7430
7431 * symbols-summary.h (fast_function_summary<T *, V>::release,
7432 fast_call_summary<T *, V>::release): Free m_vector.
7433
7434 2019-10-24 Jan Hubicka <hubicka@ucw.cz>
7435
7436 * cgraphunit.c (symbol_table::process_new_functions): Call
7437 ipa_free_size_summary.
7438 * ipa-cp.c (ipcp_cloning_candidate_p): Update.
7439 (devirtualization_time_bonus): Update.
7440 (ipcp_propagate_stage): Update.
7441 * ipa-fnsummary.c (ipa_size_summaries): New.
7442 (ipa_fn_summary_alloc): Alloc size summary.
7443 (dump_ipa_call_summary): Update.
7444 (ipa_dump_fn_summary): Update.
7445 (analyze_function_body): Update.
7446 (compute_fn_summary): Likewise.
7447 (ipa_get_stack_frame_offset): New function.
7448 (inline_update_callee_summaries): Do not update frame offsets.
7449 (ipa_merge_fn_summary_after_inlining): Update frame offsets here;
7450 remove call and function summary.
7451 (ipa_update_overall_fn_summary): Update.
7452 (inline_read_section): Update.
7453 (ipa_fn_summary_write): Update.
7454 (ipa_free_fn_summary): Do not remove summaries.
7455 (ipa_free_size_summary): New.
7456 (release summary pass): Also run at WPA.
7457 * ipa-fnsummary.h (ipa_size_summary): Declare.
7458 (ipa_fn_summary): Remove size, self_size, stack_frame_offset,
7459 estimated_self_stack_size.
7460 (ipa_size_summary_t): New type.
7461 (ipa_size_summaries): Declare.
7462 (ipa_free_size_summary): Declare.
7463 (ipa_get_stack_frame_offset): Declare.
7464 * ipa-icf.c (sem_function::merge): Update.
7465 * ipa-inline-analysis.c (estimate_size_after_inlining): Update.
7466 (estimate_growth): Update.
7467 (growth_likely_positive): Update.
7468 (clone_inlined_nodes): Update.
7469 (inline_call): Update.
7470 * ipa-inline.c (caller_growth_limits): Update.
7471 (edge_badness): Update.
7472 (recursive_inlining): Update.
7473 (inline_small_functions): Update.
7474 (inline_to_all_callers_1): Update.
7475 * ipa-prop.h (ipa_edge_args_sum_t): Update comment.
7476
7477 2019-10-24 Segher Boessenkool <segher@kernel.crashing.org>
7478
7479 * config/rs6000/altivec.md (altivec_vavgu<VI_char>): Rename to...
7480 (uavg<mode>3_ceil): ... This.
7481 (altivec_vavgs<VI_char>): Rename to...
7482 (avg<mode>3_ceil): ... This.
7483 * config/rs6000/rs6000-builtin.def (VAVGUB, VAVGSB, VAVGUH, VAVGSH,
7484 VAVGUW, VAVGSW): Adjust.
7485
7486 2019-10-24 Nathan Sidwell <nathan@acm.org>
7487
7488 * dumpfile.c (dump_begin): Reorder decls to use RAII.
7489
7490 2019-10-24 Martin Liska <mliska@suse.cz>
7491
7492 * symbol-summary.h (gt_pch_nx): Mark all functions
7493 with gcc_unreachable as we do not expect to be called.
7494
7495 2019-10-24 Richard Biener <rguenther@suse.de>
7496
7497 * tree-vect-slp.c (vect_get_and_check_slp_defs): For reduction
7498 chains try harder with operand swapping and instead of
7499 putting a shifted chain into the reduction operands put
7500 a repetition of the final reduction op there as if we'd
7501 reassociate the expression.
7502
7503 2019-10-24 Jan Hubicka <hubicka@ucw.cz>
7504
7505 * ipa-reference.c (ipa_reference_optimization_summary_d): Rename
7506 statics_not_read and statics_not_written to statics_read and
7507 statics_written respectively.
7508 (no_module_statics): New static var.
7509 (ipa_reference_get_not_read_global): Rename to ...
7510 (ipa_reference_get_read_global): ... this.
7511 (ipa_reference_get_not_written_global): Rename to ...
7512 (ipa_reference_get_written_global): ... this.
7513 (dump_static_vars_set_to_file): Dump no_module_statics.
7514 (copy_static_var_set): Add for propagation parameter.
7515 (ipa_init): Initialize no_module_statics.
7516 (ipa_ref_opt_summary_t::duplicate): Update.
7517 (ipa_ref_opt_summary_t::remove): Update.
7518 (propagate): Update.
7519 (write_node_summary_p): Look correctly for bitmap differences.
7520 (ipa_reference_write_optimization_summary): Update.
7521 (ipa_reference_read_optimization_summary): Update.
7522 * ipa-reference.h
7523 (ipa_reference_get_not_read_global): Rename to ...
7524 (ipa_reference_get_read_global): ... this.
7525 (ipa_reference_get_not_written_global): Rename to ...
7526 (ipa_reference_get_written_global): ... this.
7527 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Update.
7528 (call_may_clobber_ref_p_1): Update.
7529
7530 2019-10-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
7531
7532 * config/msp430/msp430.c (msp430_hard_regno_nregs_has_padding): Remove
7533 and add comment.
7534 (msp430_hard_regno_nregs_with_padding): Remove.
7535
7536 2019-10-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
7537
7538 * config/msp430/constraints.md: Allow post_inc for "Ya" constraint.
7539 * config/msp430/msp430.md (430x_shift_left): Use RLAM when the constant
7540 shift amount is between 1 and 4.
7541 (430x_arithmetic_shift_right): Use RRAM when the constant shift amount
7542 is between 1 and 4.
7543
7544 2019-10-24 Richard Biener <rguenther@suse.de>
7545
7546 PR tree-optimization/92205
7547 * tree-vect-loop.c (vectorizable_reduction): Restrict
7548 search for alternate vectype_in to lane-reducing patterns
7549 we support.
7550
7551 2019-10-24 Richard Biener <rguenther@suse.de>
7552
7553 PR tree-optimization/92203
7554 * treee-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt):
7555 Skip eliminating conversion stmts inserted by insertion.
7556
7557 2019-10-24 Ilya Leoshkevich <iii@linux.ibm.com>
7558
7559 * config/s390/s390.c (s390_get_thread_pointer): Use
7560 gen_get_thread_pointer.
7561 (s390_expand_split_stack_prologue): Likewise.
7562 * config/s390/s390.md (UNSPEC_GET_TP): New UNSPEC.
7563 (*get_tp_31): New 31-bit splitter for UNSPEC_GET_TP.
7564 (*get_tp_64): New 64-bit splitter for UNSPEC_GET_TP.
7565 (get_thread_pointer<mode>): Use UNSPEC_GET_TP, use
7566 parameterized name.
7567
7568 2019-10-24 Richard Biener <rguenther@suse.de>
7569
7570 * tree-vect-slp.c (vect_analyze_slp): When reduction group
7571 SLP discovery fails try to handle the reduction as part
7572 of SLP reduction discovery.
7573
7574 2019-10-23 Michael Meissner <meissner@linux.ibm.com>
7575
7576 * config/rs6000/rs6000-protos.h (rs6000_adjust_insn_length): New
7577 declaration.
7578 * config/rs6000/rs6000.c (rs6000_insn_cost): Use num_insns insn
7579 attribute if it exists, rather than the insn size. If we use the
7580 insn size, adjust the size to remove the extra size that prefixed
7581 instructions take.
7582 (rs6000_adjust_insn_length): New function.
7583 * config/rs6000/rs6000.h (ADJUST_INSN_LENGTH): New target hook to
7584 update the instruction sized if prefixed instructions are used.
7585 * config/rs6000/rs6000.md (prefixed_length attribute): Delete.
7586 (non_prefixed_length attribute): Delete.
7587 (num_insns attribute): New insn attribute to return the number of
7588 instructions.
7589 (max_prefixed_insns attribute): New insn attribute to return the
7590 maximum number of prefixed instructions in an insn.
7591 (length attribute): Do not adjust for prefix instructions here,
7592 punt to ADJUST_INSN_LENGTH.
7593 (mov<mode>_64bit): Set max_prefixed_insns and num_insns.
7594 (movtd_64bit_nodm): Set max_prefixed_insns and num_insns.
7595 (mov<mode>_ppc64): Set max_prefixed_insns and num_insns.
7596 * config/rs6000/vsx.md: (vsx_mov<mode>_64bit): Set
7597 max_prefixed_insns and num_insns.
7598
7599 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Reformat.
7600 (movtd_64bit_nodm): Reformat.
7601 (mov<mode>_32bit): Reformat.
7602 (mov<mode>_softfloat): Reformat.
7603 (FMOVE128_GPR splitter): Reformat.
7604 (DIFD splitter): Reformat.
7605 (TI2 splitter): Reformat.
7606 * config/rs6000/predicates.md (lwa_operand): If the bottom two
7607 bits of the offset for the memory address are non-zero, use PLWA
7608 if prefixed instructions are available.
7609
7610 2019-10-23 Jan Hubicka <hubicka@ucw.cz>
7611
7612 * lto-streamer-out.c (cmp_symbol_files): Watch for overflow.
7613
7614 2019-10-23 Jan Hubicka <hubicka@ucw.cz>
7615
7616 * ipa-reference.c (varpool_removal_hook, ipa_reference_c_finalize): Fix
7617 previous patch.
7618
7619 2019-10-23 Jan Hubicka <hubicka@ucw.cz>
7620
7621 * lto-streamer-out.c (output_constructor): Push CTORS_OUT timevar.
7622 (cmp_symbol_files): New.
7623 (lto_output): Copy sections in file order.
7624 * lto-streamer.h (lto_file_decl_data): Add field order.
7625
7626 2019-10-23 Jan Hubicka <hubicka@ucw.cz>
7627
7628 * ipa-reference.h (ipa_reference_var_uid): Move offline.
7629 * ipa-reference.c (reference_vars_map_t): new type.
7630 (ipa_reference_vars_map, ipa_reference_vars_uids): New static vars.
7631 (ipa_reference_var_uid): Implement.
7632 (varpool_node_hooks): New static var.
7633 (varpool_removal_hook): New function.
7634 (is_improper): Do not check bitmap for id==-1
7635 (get_static_name): Update.
7636 (ipa_init): Initialize new datastructures.
7637 (analyze_function): Do not recompute ids.
7638 (propagate): Free reference_vars_to_consider.
7639 (stream_out_bitmap): Update.
7640 (ipa_reference_read_optimization_summary): Update.
7641
7642 2019-10-23 qing zhao <qing.zhao@oracle.com>
7643
7644 PR gcov-profile/91971
7645 * coverage.c (coverage_init): Mangle the full path of filename when
7646 filename is a absolute path.
7647
7648 2019-10-23 Jozef Lawrynowicz <jozef.l@mittosystems.com>
7649
7650 * config/msp430/msp430-protos.h (msp430_has_hwmult): New.
7651 * config/msp430/msp430.c (msp430_no_hwmult): Remove.
7652 (msp430_has_hwmult): New.
7653 (msp430_output_labelref):
7654 s/msp430_hwmult_type != MSP430_HWMULT_NONE/msp430_has_hwmult ()/
7655 * config/msp430/msp430.md (mulhisi3): Likewise.
7656 (umulhisi3): Likewise.
7657 (mulsidi3): Likewise.
7658 (umulsidi3): Likewise.
7659
7660 2019-10-23 Jan Hubicka <hubicka@ucw.cz>
7661
7662 PR ipa/92074
7663 * params.def (inline-heuristics-hint-percent): Set to 600.
7664
7665 2019-10-23 Richard Biener <rguenther@suse.de>
7666
7667 PR tree-optimization/65930
7668 * tree-vect-loop.c (check_reduction_path): Allow conversions
7669 that only change the sign.
7670 (vectorizable_reduction): Relax latch def stmts we handle further.
7671
7672 2019-10-23 Jakub Jelinek <jakub@redhat.com>
7673
7674 PR debug/90231
7675 * tree-ssa-loop-ivopts.c (get_debug_computation_at): New function.
7676 (remove_unused_ivs): Use it instead of get_computation_at. When
7677 choosing best candidate, only consider candidates where
7678 get_debug_computation_at actually returns non-NULL.
7679
7680 2019-10-23 Eric Botcazou <ebotcazou@adacore.com>
7681
7682 PR tree-optimization/92131
7683 * tree-vrp.c (extract_range_from_plus_minus_expr): If the resulting
7684 range would be symbolic, drop to varying for any explicit overflow
7685 in the constant part or if neither range is a singleton.
7686
7687 2019-10-23 Martin Liska <mliska@suse.cz>
7688
7689 PR middle-end/81669
7690 * fibonacci_heap.h (fibonacci_node::fibonacci_node):
7691 Initialize m_data.
7692
7693 2019-10-23 Richard Sandiford <richard.sandiford@arm.com>
7694
7695 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use
7696 int_mode_for_mode rather than mode_for_int_vector for scalars.
7697
7698 2019-10-23 Richard Biener <rguenther@suse.de>
7699
7700 PR tree-optimization/92179
7701 * tree-vect-stmts.c (vectorizable_shift): For shift args
7702 that are all the same remove type restriction in the SLP case.
7703 Adjust SLP code to handle converting of the shift arg to
7704 only apply in case the modes are different.
7705
7706 2019-10-23 Martin Liska <mliska@suse.cz>
7707
7708 PR ipa/91969
7709 * ipa-inline.c (recursive_inlining): Do not print
7710 when curr->count is not initialized.
7711
7712 2019-10-23 Richard Biener <rguenther@suse.de>
7713
7714 * tree-vect-slp.c (vect_build_slp_tree_2): Do not build
7715 op from scalars in case there's a constant operand in its
7716 definition.
7717
7718 2019-10-23 Iain Sandoe <iain@sandoe.co.uk>
7719
7720 * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard
7721 against out of range max skip or log values.
7722
7723 2019-10-22 Giuliano Belinassi <giuliano.belinassi@usp.br>
7724
7725 * cgraph.c (dump_graphviz): Change name to dump_name
7726
7727 2019-10-22 Richard Earnshaw <rearnsha@arm.com>
7728
7729 * config/arm/arm.md (rsbsi_carryin_reg): New pattern.
7730 * config/arm/arm.c (arm_rtx_costs_internal, case MINUS): Handle
7731 subtraction from a carry operation.
7732
7733 2019-10-22 Richard Earnshaw <rearnsha@arm.com>
7734
7735 * config/arm/predicates.md (arm_borrow_operation): Handle CC_ADCmode.
7736
7737 2019-10-22 Richard Biener <rguenther@suse.de>
7738
7739 PR tree-optimization/92173
7740 * tree-vect-loop.c (vectorizable_reduction): If
7741 vect_transform_reduction cannot handle code-generation try without
7742 the single-def-use-cycle optimization. Pass optab_vector to
7743 optab_for_tree_code to get vector shifts as that's what we'd
7744 generate.
7745
7746 2019-10-22 Michael Matz <matz@suse.de>
7747
7748 PR middle-end/90796
7749 * gimple-loop-jam.c (any_access_function_variant_p): New function.
7750 (adjust_unroll_factor): Use it to constrain safety, new parameter.
7751 (tree_loop_unroll_and_jam): Adjust call and profitable unroll factor.
7752
7753 2019-10-22 Richard Biener <rguenther@suse.de>
7754
7755 PR tree-optimization/92173
7756 * tree-vect-loop.c (vectorizable_reduction): If
7757 vect_transform_reduction cannot handle code-generation try without
7758 the single-def-use-cycle optimization. Pass optab_vector to
7759 optab_for_tree_code to get vector shifts as that's what we'd
7760 generate.
7761
7762 2019-10-22 Martin Liska <mliska@suse.cz>
7763
7764 * diagnostic-format-json.cc (json_from_expanded_location):
7765 Use json::integer_number.
7766 * gcov.c (output_intermediate_json_line): Use new
7767 json::integer_number.
7768 (output_json_intermediate_file): Likewise.
7769 * json.cc (number::print): Move to ...
7770 (float_number::print): ... this.
7771 (integer_number::print): New.
7772 (test_writing_numbers): Move to ...
7773 (test_writing_float_numbers): ... this.
7774 (test_writing_integer_numbers): New.
7775 (json_cc_tests): Register test_writing_integer_numbers.
7776 * json.h (class value): Add forward declaration
7777 for float_number and integer_number.
7778 (enum kind): Add JSON_INTEGER and JSON_FLOAT.
7779 (class number): Move to ...
7780 (class float_number): ... this.
7781 (class integer_number): New.
7782 * optinfo-emit-json.cc (optrecord_json_writer::impl_location_to_json):
7783 Use json::integer_number.
7784 (optrecord_json_writer::location_to_json): Likewise.
7785 (optrecord_json_writer::profile_count_to_json): Likewise.
7786 (optrecord_json_writer::pass_to_json): Likewise.
7787
7788 2019-10-22 Richard Sandiford <richard.sandiford@arm.com>
7789
7790 * tree-vect-slp.c (vect_slp_bb_region): Check whether
7791 autodetected_vector_size rather than vector_size is zero.
7792 * tree-vect-loop.c (vect_analyze_loop): Likewise.
7793 Set autodetected_vector_size immediately after calling
7794 vect_analyze_loop_2. Check for a fatal error before advancing
7795 next_size.
7796
7797 2019-10-21 Jason Merrill <jason@redhat.com>
7798
7799 * lock-and-run.sh: Check for process existence rather than timeout.
7800
7801 2019-10-21 Jozef Lawrynowicz <jozef.l@mittosystems.com>
7802
7803 * expr.c (expand_expr_real_2): Don't widen constant op1 when expanding
7804 widening multiplication.
7805
7806 2019-10-21 Richard Earnshaw <rearnsha@arm.com>
7807
7808 * config/arm/iterators.md (t2_binop0): Fix typo in comment.
7809 * config/arm/arm.md (addsi3_carryin_shift): Simplify selection of the
7810 type attribute.
7811 (subsi3_carryin_shift): Separate into register and constant controlled
7812 alternatives. Use shift_amount_operand for operand 4. Set shift
7813 attribute and simplify type attribute.
7814 (subsi3_carryin_shift_alt): Likewise.
7815 (rsbsi3_carryin_shift): Likewise.
7816 (rsbsi3_carryin_shift_alt): Likewise.
7817 (andsi_not_shiftsi_si): Enable for TARGET_32BIT. Separate constant
7818 and register controlled shifts into distinct alternatives.
7819 (andsi_not_shiftsi_si_scc_no_reuse): Likewise.
7820 (andsi_not_shiftsi_si_scc): Likewise.
7821 (arm_cmpsi_negshiftsi_si): Likewise.
7822 (not_shiftsi): Remove redundant M constraint from alternative 1.
7823 (not_shiftsi_compare0): Likewise.
7824 (arm_cmpsi_insn): Remove redundant alternative 2.
7825 (cmpsi_shift_swp): Likewise.
7826 (sub_shiftsi): Likewise.
7827 (sub_shiftsi_compare0_scratch): Likewise.
7828 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Delete pattern.
7829 (thumb2_cmpsi_neg_shiftsi): Likewise.
7830
7831 2019-10-21 Richard Biener <rguenther@suse.de>
7832
7833 PR tree-optimization/92162
7834 * tree-vect-loop.c (vect_create_epilog_for_reduction): Lookup
7835 STMT_VINFO_REDUC_IDX in reduc_info.
7836 * tree-vect-stmts.c (vectorizable_condition): Likewise.
7837
7838 2019-10-21 Richard Biener <rguenther@suse.de>
7839
7840 * tree-vectorizer.h (_slp_tree::ops): New member.
7841 (SLP_TREE_SCALAR_OPS): New.
7842 (vect_get_slp_defs): Adjust prototype.
7843 * tree-vect-slp.c (vect_free_slp_tree): Release
7844 SLP_TREE_SCALAR_OPS.
7845 (vect_create_new_slp_node): Initialize it. New overload for
7846 initializing by an operands array.
7847 (_slp_oprnd_info::ops): New member.
7848 (vect_create_oprnd_info): Initialize it.
7849 (vect_free_oprnd_info): Release it.
7850 (vect_get_and_check_slp_defs): Populate the operands array.
7851 Do not swap operands in the IL when not necessary.
7852 (vect_build_slp_tree_2): Build SLP nodes for invariant operands.
7853 Record SLP_TREE_SCALAR_OPS for all invariant nodes. Also
7854 swap operands in the operands array. Do not swap operands in
7855 the IL.
7856 (vect_slp_rearrange_stmts): Re-arrange SLP_TREE_SCALAR_OPS as well.
7857 (vect_gather_slp_loads): Fix.
7858 (vect_detect_hybrid_slp_stmts): Likewise.
7859 (vect_slp_analyze_node_operations_1): Search for a internal
7860 def child for computing reduction SLP_TREE_NUMBER_OF_VEC_STMTS.
7861 (vect_slp_analyze_node_operations): Skip ops-only stmts for
7862 the def-type push/pop dance.
7863 (vect_get_constant_vectors): Compute number_of_vectors here.
7864 Use SLP_TREE_SCALAR_OPS and simplify greatly.
7865 (vect_get_slp_vect_defs): Use gimple_get_lhs also for PHIs.
7866 (vect_get_slp_defs): Simplify greatly.
7867 * tree-vect-loop.c (vectorize_fold_left_reduction): Simplify.
7868 (vect_transform_reduction): Likewise.
7869 * tree-vect-stmts.c (vect_get_vec_defs): Simplify.
7870 (vectorizable_call): Likewise.
7871 (vectorizable_operation): Likewise.
7872 (vectorizable_load): Likewise.
7873 (vectorizable_condition): Likewise.
7874 (vectorizable_comparison): Likewise.
7875
7876 2019-10-21 Richard Biener <rguenther@suse.de>
7877
7878 PR tree-optimization/92161
7879 * tree-vect-loop.c (vect_analyze_loop_2): Reset stmts def-type
7880 for reductions.
7881
7882 2019-10-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7883
7884 * config/aarch64/aarch64.md (UNSPEC_RNDR, UNSPEC_RNDRRS): Define.
7885 (aarch64_rndr): New define_insn.
7886 (aarch64_rndrrs): Likewise.
7887 * config/aarch64/aarch64.h (AARCH64_ISA_RNG): Define.
7888 (TARGET_RNG): Likewise.
7889 * config/aarch64/aarch64.c (aarch64_expand_builtin): Use IGNORE
7890 argument.
7891 * config/aarch64/aarch64-protos.h (aarch64_general_expand_builtin):
7892 Add fourth argument in prototype.
7893 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins):
7894 Add AARCH64_BUILTIN_RNG_RNDR, AARCH64_BUILTIN_RNG_RNDRRS.
7895 (aarch64_init_rng_builtins): Define.
7896 (aarch64_general_init_builtins): Call aarch64_init_rng_builtins.
7897 (aarch64_expand_rng_builtin): Define.
7898 (aarch64_general_expand_builtin): Use IGNORE argument, handle
7899 RNG builtins.
7900 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
7901 __ARM_FEATURE_RNG when TARGET_RNG.
7902 * config/aarch64/arm_acle.h (__rndr, __rndrrs): Define.
7903
7904 2019-10-21 Andre Vieira <andre.simoesdiasvieira@arm.com>
7905
7906 * tree-vect-stmts (ensure_base_align): Only change alignment if new
7907 alignment is more restrictive.
7908
7909 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
7910
7911 * tree-vectorizer.h (vec_info::vector_size): New member variable.
7912 (vect_update_max_nunits): Update comment.
7913 (current_vector_size): Delete.
7914 * tree-vect-stmts.c (current_vector_size): Likewise.
7915 (get_vectype_for_scalar_type): Use vec_info::vector_size instead
7916 of current_vector_size.
7917 (get_mask_type_for_scalar_type): Likewise.
7918 * tree-vectorizer.c (try_vectorize_loop_1): Likewise.
7919 * tree-vect-loop.c (vect_update_vf_for_slp): Likewise.
7920 (vect_analyze_loop, vect_halve_mask_nunits): Likewise.
7921 (vect_double_mask_nunits, vect_transform_loop): Likewise.
7922 * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise.
7923 (vect_make_slp_decision, vect_slp_bb_region): Likewise.
7924
7925 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
7926
7927 * tree-vectorizer.h (vect_double_mask_nunits): Take a vec_info.
7928 * tree-vect-loop.c (vect_double_mask_nunits): Likewise.
7929 * tree-vect-stmts.c (supportable_narrowing_operation): Update call
7930 accordingly.
7931
7932 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
7933
7934 * tree-vectorizer.h (vect_halve_mask_nunits): Take a vec_info.
7935 * tree-vect-loop.c (vect_halve_mask_nunits): Likewise.
7936 * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks): Update
7937 call accordingly.
7938 * tree-vect-stmts.c (supportable_widening_operation): Likewise.
7939
7940 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
7941
7942 * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks): Take
7943 a loop_vec_info.
7944 (vect_set_loop_condition_masked): Update call accordingly.
7945
7946 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
7947
7948 * tree-vectorizer.h (supportable_narrowing_operation): Take a vec_info.
7949 * tree-vect-stmts.c (supportable_narrowing_operation): Likewise.
7950 (simple_integer_narrowing): Update call accordingly.
7951 (vectorizable_conversion): Likewise.
7952
7953 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
7954
7955 * tree-vect-stmts.c (simple_integer_narrowing): Take a vec_info.
7956 (vectorizable_call): Update call accordingly.
7957
7958 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
7959
7960 * tree-vectorizer.h (can_duplicate_and_interleave_p): Take a vec_info.
7961 * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise.
7962 (duplicate_and_interleave): Update call accordingly.
7963 * tree-vect-loop.c (vectorizable_reduction): Likewise.
7964
7965 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
7966
7967 * tree-vectorizer.h (duplicate_and_interleave): Take a vec_info.
7968 * tree-vect-slp.c (duplicate_and_interleave): Likewise.
7969 (vect_get_constant_vectors): Update call accordingly.
7970 * tree-vect-loop.c (get_initial_defs_for_reduction): Likewise.
7971
7972 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
7973
7974 * tree-vectorizer.h (get_vectype_for_scalar_type): Take a vec_info.
7975 * tree-vect-stmts.c (get_vectype_for_scalar_type): Likewise.
7976 (vect_prologue_cost_for_slp_op): Update call accordingly.
7977 (vect_get_vec_def_for_operand, vect_get_gather_scatter_ops)
7978 (vect_get_strided_load_store_ops, vectorizable_simd_clone_call)
7979 (vect_supportable_shift, vect_is_simple_cond, vectorizable_comparison)
7980 (get_mask_type_for_scalar_type): Likewise.
7981 (vect_get_vector_types_for_stmt): Likewise.
7982 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
7983 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
7984 (get_initial_def_for_reduction, build_vect_cond_expr): Likewise.
7985 * tree-vect-patterns.c (vect_supportable_direct_optab_p): Likewise.
7986 (vect_split_statement, vect_convert_input): Likewise.
7987 (vect_recog_widen_op_pattern, vect_recog_pow_pattern): Likewise.
7988 (vect_recog_over_widening_pattern, vect_recog_mulhs_pattern): Likewise.
7989 (vect_recog_average_pattern, vect_recog_cast_forwprop_pattern)
7990 (vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern)
7991 (vect_synth_mult_by_constant, vect_recog_mult_pattern): Likewise.
7992 (vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern)
7993 (check_bool_pattern, adjust_bool_pattern_cast, adjust_bool_pattern)
7994 (search_type_for_mask_1, vect_recog_bool_pattern): Likewise.
7995 (vect_recog_mask_conversion_pattern): Likewise.
7996 (vect_add_conversion_to_pattern): Likewise.
7997 (vect_recog_gather_scatter_pattern): Likewise.
7998 * tree-vect-slp.c (vect_build_slp_tree_2): Likewise.
7999 (vect_analyze_slp_instance, vect_get_constant_vectors): Likewise.
8000
8001 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
8002
8003 * tree-vectorizer.h (get_mask_type_for_scalar_type): Take a vec_info.
8004 * tree-vect-stmts.c (get_mask_type_for_scalar_type): Likewise.
8005 (vect_check_load_store_mask): Update call accordingly.
8006 (vect_get_mask_type_for_stmt): Likewise.
8007 * tree-vect-patterns.c (check_bool_pattern): Likewise.
8008 (search_type_for_mask_1, vect_recog_mask_conversion_pattern): Likewise.
8009 (vect_convert_mask_for_vectype): Likewise.
8010
8011 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
8012
8013 * tree-vect-patterns.c (vect_supportable_direct_optab_p): Take
8014 a vec_info.
8015 (vect_recog_dot_prod_pattern): Update call accordingly.
8016 (vect_recog_sad_pattern, vect_recog_pow_pattern): Likewise.
8017 (vect_recog_widen_sum_pattern): Likewise.
8018
8019 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
8020
8021 * tree-vectorizer.h (vect_supportable_shift): Take a vec_info.
8022 * tree-vect-stmts.c (vect_supportable_shift): Likewise.
8023 * tree-vect-patterns.c (vect_synth_mult_by_constant): Update call
8024 accordingly.
8025
8026 2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
8027
8028 * tree-vectorizer.c (get_vec_alignment_for_array_type): Use
8029 get_vectype_for_scalar_type_and_size instead of
8030 get_vectype_for_scalar_type.
8031
8032 2019-10-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
8033
8034 * common.opt (-fcommon): Fix description.
8035
8036 2019-10-20 Jakub Jelinek <jakub@redhat.com>
8037
8038 * config/i386/i386-protos.h (ix86_pre_reload_split): Declare.
8039 * config/i386/i386.c (ix86_pre_reload_split): New function.
8040 * config/i386/i386.md (*fix_trunc<mode>_i387_1, *add<mode>3_eq,
8041 *add<mode>3_ne, *add<mode>3_eq_0, *add<mode>3_ne_0, *add<mode>3_eq,
8042 *add<mode>3_ne, *add<mode>3_eq_1, *add<mode>3_eq_0, *add<mode>3_ne_0,
8043 *anddi3_doubleword, *andndi3_doubleword, *<code>di3_doubleword,
8044 *one_cmpldi2_doubleword, *ashl<dwi>3_doubleword_mask,
8045 *ashl<dwi>3_doubleword_mask_1, *ashl<mode>3_mask, *ashl<mode>3_mask_1,
8046 *<shift_insn><mode>3_mask, *<shift_insn><mode>3_mask_1,
8047 *<shift_insn><dwi>3_doubleword_mask,
8048 *<shift_insn><dwi>3_doubleword_mask_1, *<rotate_insn><mode>3_mask,
8049 *<rotate_insn><mode>3_mask_1, *<btsc><mode>_mask, *<btsc><mode>_mask_1,
8050 *btr<mode>_mask, *btr<mode>_mask_1, *jcc_bt<mode>, *jcc_bt<mode>_1,
8051 *jcc_bt<mode>_mask, *popcounthi2_1, frndintxf2_<rounding>,
8052 *fist<mode>2_<rounding>_1, *<code><mode>3_1, *<code>di3_doubleword):
8053 Use ix86_pre_reload_split instead of can_create_pseudo_p in condition.
8054 * config/i386/sse.md (*sse4_1_<code>v8qiv8hi2<mask_name>_2,
8055 *avx2_<code>v8qiv8si2<mask_name>_2,
8056 *sse4_1_<code>v4qiv4si2<mask_name>_2,
8057 *sse4_1_<code>v4hiv4si2<mask_name>_2,
8058 *avx512f_<code>v8qiv8di2<mask_name>_2,
8059 *avx2_<code>v4qiv4di2<mask_name>_2, *avx2_<code>v4hiv4di2<mask_name>_2,
8060 *sse4_1_<code>v2hiv2di2<mask_name>_2,
8061 *sse4_1_<code>v2siv2di2<mask_name>_2, sse4_2_pcmpestr,
8062 sse4_2_pcmpistr): Likewise.
8063
8064 2019-10-20 Gerald Pfeifer <gerald@pfeifer.com>
8065
8066 * doc/install.texi (Configuration, --enable-objc-gc): hboehm.info
8067 now defaults to https.
8068
8069 2019-10-20 Jan Hubicka <hubicka@ucw.cz>
8070
8071 * tree-ssa-alias.c (nonoverlapping_refs_since_match_p): Do not
8072 skip non-zero array accesses.
8073
8074 2019-10-20 Richard Sandiford <richard.sandiford@arm.com>
8075
8076 * tree-vect-slp.c (vect_slp_analyze_bb_1): Take a bb_vec_info
8077 and return a boolean success value. Move the allocation and
8078 initialization of the bb_vec_info to...
8079 (vect_slp_bb_region): ...here. Update call accordingly.
8080 (vect_slp_bb): Apply PARAM_SLP_MAX_INSNS_IN_BB here rather
8081 than in vect_slp_analyze_bb_1.
8082
8083 2019-10-20 Richard Sandiford <richard.sandiford@arm.com>
8084
8085 * tree-vect-slp.c (vect_slp_analyze_bb_1): Call save_datarefs
8086 when processing the given datarefs for the first time and
8087 check_datarefs subsequently.
8088 (vect_slp_bb_region): New function, split out of...
8089 (vect_slp_bb): ...here. Don't recompute the region bounds and
8090 dataref sets when retrying with a different vector size.
8091
8092 2019-10-19 Jakub Jelinek <jakub@redhat.com>
8093 Uroš Bizjak <ubizjak@gmail.com>
8094
8095 PR target/92140
8096 * config/i386/predicates.md (int_nonimmediate_operand): New special
8097 predicate.
8098 * config/i386/i386.md (*add<mode>3_eq, *add<mode>3_ne,
8099 *add<mode>3_eq_0, *add<mode>3_ne_0, *sub<mode>3_eq, *sub<mode>3_ne,
8100 *sub<mode>3_eq_1, *sub<mode>3_eq_0, *sub<mode>3_ne_0): New
8101 define_insn_and_split patterns.
8102
8103 2019-10-19 Iain Sandoe <iain@sandoe.co.uk>
8104
8105 * config/rs6000/rs6000.md: Delete out--of-date comment about
8106 special-casing integer loads.
8107
8108 2019-10-19 JeanHeyd Meneide <phdofthehouse@gmail.com>
8109
8110 * escaped_string.h (escaped_string): New header.
8111 * tree.c (escaped_string): Remove escaped_string class.
8112
8113 2019-10-18 Martin Sebor <msebor@redhat.com>
8114
8115 PR tree-optimization/92157
8116 * tree-ssa-strlen.c (handle_builtin_string_cmp): Be prepared for
8117 compute_string_length to return a negative result.
8118
8119 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8120
8121 * config/arm/arm.md (negv<SIDI:mode>3): New expansion rule.
8122 (negvsi3, negvdi3): Delete.
8123 (negdi2_compare): Delete.
8124
8125 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8126
8127 * config/arm/arm.md (subvdi4): Decompose calculation into 32-bit
8128 operations.
8129 (subdi3_compare1): Delete pattern.
8130 (subvsi3_borrow): New insn pattern.
8131 (subvsi3_borrow_imm): Likewise.
8132
8133 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8134
8135 * config/arm/arm.md (subv<mode>4): Delete.
8136 (subvdi4): New expander pattern.
8137 (subvsi4): Likewise. Handle some immediate values.
8138 (subvsi3_intmin): New insn pattern.
8139 (subvsi3): Likewise.
8140 (subvsi3_imm1): Likewise.
8141 * config/arm/arm.c (select_cc_mode): Also allow minus for CC_V
8142 idioms.
8143
8144 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8145
8146 * config/arm/arm.md (usubvdi4): Allow registers or integers for
8147 incoming operands. Early split the calculation into SImode
8148 operations.
8149 (usubvsi3_borrow): New insn pattern.
8150 (usubvsi3_borrow_imm): Likewise.
8151
8152 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8153
8154 * config/arm/arm.md (usubv<mode>4): Delete expansion.
8155 (usubvsi4): New pattern. Allow some immediate values for inputs.
8156 (usubvdi4): New pattern.
8157
8158 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8159
8160 * config/arm/arm.c (arm_select_cc_mode): Allow either the first
8161 or second operand of the PLUS inside a DImode equality test to be
8162 sign-extend when selecting CC_Vmode.
8163 * config/arm/arm.md (addvdi4): Early-split the operation into SImode
8164 instructions.
8165 (addsi3_cin_vout_reg, addsi3_cin_vout_imm, addsi3_cin_vout_0): New
8166 expand patterns.
8167 (addsi3_cin_vout_reg_insn, addsi3_cin_vout_imm_insn): New patterns.
8168 (addsi3_cin_vout_0): Likewise.
8169 (adddi3_compareV): Delete.
8170
8171 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8172
8173 * config/arm/arm.md (addsi3_compareV_reg_nosum): New insn.
8174 (addsi3_compareV_imm_nosum): New insn. Also add peephole2 patterns
8175 to transform this back into the summation version when that leads
8176 to smaller code.
8177
8178 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8179
8180 * config/arm/arm.md (addv<mode>4): Delete.
8181 (addvsi4): New pattern. Handle immediate values that the architecture
8182 supports.
8183 (addvdi4): New pattern.
8184 (addsi3_compareV): Rename to ...
8185 (addsi3_compareV_reg): ... this. Add constraints for thumb2 variants
8186 and use COMPARE rather than NE.
8187 (addsi3_compareV_imm): New pattern.
8188 * config/arm/arm.c (arm_select_cc_mode): Return CC_Vmode for
8189 a signed-overflow check.
8190
8191 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8192
8193 * config/arm/arm-modes.def (CC_ADC): New CC mode.
8194 * config/arm/arm.c (arm_select_cc_mode): Detect selection of
8195 CC_ADCmode.
8196 (maybe_get_arm_condition_code): Handle CC_ADCmode.
8197 * config/arm/arm.md (uaddvdi4): Early expansion of unsigned addition
8198 with overflow.
8199 (addsi3_cin_cout_reg, addsi3_cin_cout_imm, addsi3_cin_cout_0): New
8200 expand patterns.
8201 (addsi3_cin_cout_reg_insn, addsi3_cin_cout_0_insn): New insn patterns
8202 (addsi3_cin_cout_imm_insn): Likewise.
8203 (adddi3_compareC): Delete insn.
8204 * config/arm/predicates.md (arm_carry_operation): Handle CC_ADCmode.
8205
8206 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8207
8208 * config/arm/arm.md (adddi3): Call gen_addsi3_compare_op1.
8209 * (uaddv<mode>4): Delete expansion pattern.
8210 (uaddvsi4): New pattern.
8211 (uaddvdi4): Likewise.
8212 (addsi3_compareC): Delete pattern, change callers to use
8213 addsi3_compare_op1.
8214 (addsi3_compare_op1): No-longer anonymous. Clean up constraints to
8215 reduce the number of alternatives and re-work type attribute handling.
8216 (addsi3_compare_op2): Clean up constraints to reduce the number of
8217 alternatives and re-work type attribute handling.
8218 (compare_addsi2_op0): Likewise.
8219 (compare_addsi2_op1): Likewise.
8220
8221 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8222
8223 * config/arm/arm-modes.def (CC_NCV, CC_CZ): Delete CC modes.
8224 * config/arm/arm.c (arm_select_cc_mode): Remove old selection code
8225 for DImode operands.
8226 (arm_gen_dicompare_reg): Remove unreachable expansion code.
8227 (maybe_get_arm_condition_code): Remove support for CC_CZmode and
8228 CC_NCVmode.
8229 * config/arm/arm.md (arm_cmpdi_insn): Delete.
8230 (arm_cmpdi_unsigned): Delete.
8231
8232 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8233
8234 * config/arm/arm.c (arm_const_double_prefer_rsbs_rsc): New function.
8235 (arm_canonicalize_comparison): For GT/LE/GTU/GEU, use the constant
8236 unchanged only if that will be cheaper.
8237 (arm_select_cc_mode): Recognize a swapped comparison that will
8238 be regenerated using RSBS or RSCS. Relax restriction on selecting
8239 CC_RSBmode.
8240 (arm_gen_dicompare_reg): Handle LE/GT/LEU/GEU comparisons against
8241 a constant.
8242 (arm_gen_compare_reg): Handle compare (CONST, X) when the mode
8243 is CC_RSBmode.
8244 (maybe_get_arm_condition_code): CC_RSBmode now returns the same codes
8245 as CCmode.
8246 * config/arm/arm.md (rsb_imm_compare_scratch): New pattern.
8247 (rscsi3_<CC_EXTEND>out_scratch): New pattern.
8248
8249 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8250
8251 * config/arm/arm-modes.def (CC_NV, CC_B): New CC modes.
8252 * config/arm/arm.c (arm_select_cc_mode): Recognize constructs that
8253 need these modes.
8254 (arm_gen_dicompare_reg): New code to early expand the sub-operations
8255 of EQ, NE, LT, GE, LTU and GEU.
8256 * config/arm/iterators.md (CC_EXTEND): New code attribute.
8257 * config/arm/predicates.md (arm_adcimm_operand): New predicate..
8258 * config/arm/arm.md (cmpsi3_carryin_<CC_EXTEND>out): New pattern.
8259 (cmpsi3_imm_carryin_<CC_EXTEND>out): Likewise.
8260 (cmpsi3_0_carryin_<CC_EXTEND>out): Likewise.
8261
8262 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8263
8264 * config/arm/arm.md (cbranchdi4): Accept reg_or_int_operand for
8265 operand 2.
8266 (cstoredi4): Similarly, but for operand 3.
8267 * config/arm/arm.c (arm_canoncialize_comparison): Allow
8268 canonicalization of unsigned compares with a constant on Arm.
8269 Prefer using const+1 and adjusting the comparison over swapping the
8270 operands whenever the original constant was not valid.
8271 (arm_gen_dicompare_reg): If Y is not a valid operand, force it to a
8272 register here.
8273 (arm_validize_comparison): Do not force invalid DImode operands to
8274 registers here.
8275
8276 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8277
8278 * config/arm/arm.c (arm_select_cc_mode): For DImode equality tests
8279 return CC_Zmode if comparing against a constant where one word is
8280 zero.
8281 (arm_gen_compare_reg): Split DImode handling to ...
8282 (arm_gen_dicompare_reg): ... here. Handle equality comparisons
8283 against simple constants.
8284 * config/arm/arm.md (arm_cmpdi_zero): Delete pattern.
8285
8286 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8287
8288 * config/arm/arm.md (subsi3_carryin_shift_alt): New pattern.
8289 (rsbsi3_carryin_shift_alt): Likewise.
8290
8291 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8292
8293 * config/arm/arm.md (negscc_borrow): New pattern.
8294 (mov_negscc): Don't split if the insn would match negscc_borrow.
8295 * config/arm/thumb2.md (thumb2_mov_negscc): Likewise.
8296 (thumb2_mov_negscc_strict_it): Likewise.
8297
8298 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8299
8300 * config/arm/arm.c (arm_insn_cost): New function.
8301 (TARGET_INSN_COST): Override default definition.
8302
8303 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8304
8305 * config/arm/arm.c (arm_rtx_costs_internal, case MINUS): Handle
8306 borrow operations.
8307
8308 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8309
8310 * config/arm/arm.c (strip_carry_operation): New function.
8311 (arm_rtx_costs_internal, case PLUS): Handle addtion with carry-in
8312 for SImode.
8313
8314 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8315
8316 * config/arm/predicates.md (arm_carry_operation): New special
8317 predicate.
8318 * config/arm/iterators.md (LTUGEU): Delete iterator.
8319 (cnb): Delete code attribute.
8320 (optab): Delete ltu and geu elements.
8321 * config/arm/arm.md (addsi3_carryin): Renamed from
8322 addsi3_carryin_<optab>. Remove iterator and use arm_carry_operand.
8323 (add0si3_carryin): Similarly, but from add0si3_carryin_<optab>.
8324 (addsi3_carryin_alt2): Similarly, but from addsi3_carryin_alt2_<optab>.
8325 (addsi3_carryin_clobercc): Similarly.
8326 (addsi3_carryin_shift): Similarly. Do not allow register shifts in
8327 Thumb2 state.
8328
8329 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8330
8331 * config/arm/arm.md (arm_subdi3): Delete insn.
8332 (zextendsidi_negsi, negdi_extendsidi): Delete insn_and_split.
8333
8334 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8335
8336 * config/arm/arm-modes.def (CC_RSB): New CC mode.
8337 * config/arm/predicates.md (arm_borrow_operation): Handle CC_RSBmode.
8338 * config/arm/arm.c (arm_select_cc_mode): Detect when we should
8339 return CC_RSBmode.
8340 (maybe_get_arm_condition_code): Handle CC_RSBmode.
8341 * config/arm/arm.md (subsi3_carryin): Make this pattern available to
8342 expand.
8343 (subdi3): Rewrite to early-expand the sub-operations.
8344 (rsb_im_compare): New pattern.
8345 (negdi2): Delete.
8346 (negdi2_insn): Delete.
8347 (arm_negsi2): Correct type attribute to alu_imm.
8348 (negsi2_0compare): New insn pattern.
8349 (negsi2_carryin): New insn pattern.
8350
8351 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8352
8353 * config/arm/arm.md (addsi3_carryin_alt2): Use arm_not_operand for
8354 operand 2.
8355
8356 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8357
8358 * config/arm/arm.md (addsi3_carryin_shift_<optab>): Reorder operands
8359 to match canonical form.
8360
8361 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8362
8363 * config/arm/arm.md (zero_extend<mode>di2): Convert to define_expand.
8364 (extend<mode>di2): Likewise.
8365
8366 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8367
8368 * config/arm/arm-protos.h (arm_decompose_di_binop): New prototype.
8369 * config/arm/arm.c (arm_decompose_di_binop): New function.
8370 * config/arm/arm.md (adddi3): Also accept any const_int for op2.
8371 If not generating Thumb-1 code, decompose the operation into 32-bit
8372 pieces.
8373 * add0si_carryin_<optab>: New pattern.
8374
8375 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
8376
8377 * arm.md (adddi3): Only accept register operands.
8378 (arm_adddi3): Convert to simple insn with no split. Do not accept
8379 constants.
8380 (adddi_sesidi_di): Delete patern.
8381 (adddi_zesidi_di): Likewise.
8382 (uaddv<mode>4): Use LTU as condition for branch.
8383 (adddi3_compareV): Convert to simple insn with no split.
8384 (addsi3_compareV_upper): Delete pattern.
8385 (adddi3_compareC): Convert to simple insn with no split. Correct
8386 flags setting expression.
8387 (addsi3_compareC_upper): Delete pattern.
8388 (addsi3_compareC): Correct flags setting expression.
8389 (subdi3_compare1): Convert to simple insn with no split.
8390 (subsi3_carryin_compare): Delete pattern.
8391 (arm_subdi3): Convert to simple insn with no split.
8392 (subdi_zesidi): Delete pattern.
8393 (subdi_di_sesidi): Delete pattern.
8394 (subdi_zesidi_di): Delete pattern.
8395 (subdi_sesidi_di): Delete pattern.
8396 (subdi_zesidi_zesidi): Delete pattern.
8397 (negvdi3): Use s_register_operand.
8398 (negdi2_compare): Convert to simple insn with no split.
8399 (negdi2_insn): Likewise.
8400 (negsi2_carryin_compare): Delete pattern.
8401 (negdi_zero_extendsidi): Delete pattern.
8402 (arm_cmpdi_insn): Convert to simple insn with no split.
8403 (negdi2): Don't call gen_negdi2_neon.
8404 * config/arm/neon.md (adddi3_neon): Delete pattern.
8405 (subdi3_neon): Delete pattern.
8406 (negdi2_neon): Delete pattern.
8407 (splits for negdi2_neon): Delete splits.
8408
8409 2019-10-18 Jakub Jelinek <jakub@redhat.com>
8410
8411 PR middle-end/92153
8412 * ggc-page.c (release_pages): Read g->alloc_size before free rather
8413 than after it.
8414
8415 2019-10-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
8416
8417 * config/arm/t-multilib: Add rule to regenerate mutlilib header file
8418 with any change to t-multilib, t-aprofile and t-rmprofile. Also add
8419 new multilib variants and new mappings.
8420
8421 2019-10-18 Georg-Johann Lay <avr@gjlay.de>
8422
8423 PR target/86040
8424 * config/avr/avr.c (avr_out_lpm): Do not shortcut-return.
8425
8426 2019-10-18 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8427 Richard Sandiford <richard.sandiford@arm.com>
8428
8429 PR target/86753
8430 * tree-vectorizer.h (scalar_cond_masked_key): New struct,
8431 and define hashmap traits for it.
8432 (loop_vec_info::scalar_cond_masked_set): New member.
8433 (vect_record_loop_mask): Adjust prototype.
8434 * tree-vectorizer.c (scalar_cond_masked_key::get_cond_ops_from_tree):
8435 Implement method.
8436 * tree-vect-loop.c (vectorizable_reduction): Pass NULL as last arg to
8437 vect_record_loop_mask.
8438 (vectorizable_live_operation): Likewise.
8439 (vect_record_loop_mask): New param scalar_mask. Add entry
8440 cond, loop_mask to scalar_cond_masked_set if scalar_mask is non NULL.
8441 * tree-vect-stmts.c (check_load_store_masking): New param scalar_mask.
8442 Pass it as last arg to vect_record_loop_mask.
8443 (vectorizable_call): Pass scalar_mask as last arg to
8444 vect_record_loop_mask.
8445 (vectorizable_store): Likewise.
8446 (vectorizable_load): Likewise.
8447 (vectorizable_condition): Check if another part of vectorized code
8448 applies loop_mask to condition or to it's inverse, and if yes,
8449 apply loop_mask to result of vector comparison.
8450
8451 2019-10-17 John David Anglin <danglin@gcc.gnu.org>
8452
8453 * config/pa/pa.c (pa_output_indirect_call): Fix typos in last change.
8454
8455 2019-10-18 Jakub Jelinek <jakub@redhat.com>
8456
8457 PR tree-optimization/92056
8458 * tree-ssa-strlen.c (determine_min_objsize): Call init_object_sizes
8459 before calling compute_builtin_object_size.
8460
8461 2019-10-17 Iain Sandoe <iain@sandoe.co.uk>
8462
8463 PR target/65342
8464 * config/rs6000/darwin.md (movdi_low, movsi_low_st): Delete.
8465 (movdi_low_st): Delete.
8466 * config/rs6000/rs6000.c
8467 (darwin_rs6000_legitimate_lo_sum_const_p): New.
8468 (mem_operand_gpr): Validate Mach-O LO_SUM cases separately.
8469 * config/rs6000/rs6000.md (movsi_low): Delete.
8470
8471 2019-10-17 Jason Merrill <jason@redhat.com>
8472
8473 * gimplify.h (get_initialized_tmp_var): Add default argument to
8474 post_p.
8475 * gimplify.c (gimplify_self_mod_expr, gimplify_omp_atomic): Remove
8476 NULL post_p argument.
8477 * targhooks (std_gimplify_va_arg_expr): Likewise.
8478
8479 2019-10-17 Richard Biener <rguenther@suse.de>
8480
8481 * tree-vectorizer.h (_stmt_vec_info::cond_reduc_code): Remove.
8482 (STMT_VINFO_VEC_COND_REDUC_CODE): Likewise.
8483 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Do not
8484 initialize STMT_VINFO_VEC_COND_REDUC_CODE.
8485 * tree-vect-loop.c (vect_is_simple_reduction): Set
8486 STMT_VINFO_REDUC_CODE.
8487 (vectorizable_reduction): Remove dead and redundant code, use
8488 STMT_VINFO_REDUC_CODE instead of STMT_VINFO_VEC_COND_REDUC_CODE.
8489
8490 2019-10-17 Georg-Johann Lay <avr@gjlay.de>
8491
8492 Fix breakage introduced by r276985.
8493
8494 * config/avr/avr.c (avr_option_override): Remove set of
8495 PARAM_ALLOW_STORE_DATA_RACES.
8496 * common/config/avr/avr-common.c (avr_option_optimization_table)
8497 [OPT_LEVELS_ALL]: Turn on -fallow-store-data-races.
8498
8499 2019-10-17 H.J. Lu <hongjiu.lu@intel.com>
8500
8501 * config/i386/i386.h (processor_costs): Add clear_ratio.
8502 (CLEAR_RATIO): Remove MIN and use ix86_cost->clear_ratio.
8503 * config/i386/x86-tune-costs.h: Set clear_ratio to the minimum
8504 of 6 and move_ratio in all cost models.
8505
8506 2019-10-17 Richard Biener <rguenther@suse.de>
8507
8508 * tree-vect-loop.c (check_reduction_path): Compute reduction
8509 operation here.
8510 (vect_is_simple_reduction): Remove special-case of single-stmt
8511 reduction path detection.
8512
8513 2019-10-17 Richard Earnshaw <rearnsha@arm.com>
8514
8515 * config/arm/arm-cpus.in (marvel-pj4): Add +fp to the architecture.
8516
8517 2019-10-17 Yuliang Wang <yuliang.wang@arm.com>
8518
8519 * config/aarch64/aarch64-sve2.md (aarch64_sve2_eor3<mode>)
8520 (aarch64_sve2_nor<mode>, aarch64_sve2_nand<mode>)
8521 (aarch64_sve2_bsl<mode>, aarch64_sve2_nbsl<mode>)
8522 (aarch64_sve2_bsl1n<mode>, aarch64_sve2_bsl2n<mode>):
8523 New combine patterns.
8524 * config/aarch64/iterators.md (BSL_DUP): New int iterator for the
8525 above.
8526 (bsl_1st, bsl_2nd, bsl_dup, bsl_mov): Attributes for the above.
8527
8528 2019-10-17 Aldy Hernandez <aldyh@redhat.com>
8529
8530 * tree-vrp.c (value_range_base::dump): Display +INF for both
8531 pointers and integers when appropriate.
8532
8533 2019-10-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
8534
8535 * tree-vect-loop.c (vect_analyze_loop_2): Use same condition to decide
8536 when to use versioning threshold.
8537
8538 2019-10-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
8539
8540 * tree-vect-loop.c (determine_peel_for_niter): New function contained
8541 outlined code from ...
8542 (vect_analyze_loop_2): ... here.
8543
8544 2019-10-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
8545
8546 * tree-vect-loop.c (vect_transform_loop): Move code from here...
8547 * tree-vect-loop-manip.c (vect_loop_versioning): ... to here.
8548 * tree-vectorizer.h (vect_loop_versioning): Remove unused parameters.
8549
8550 2019-10-17 Richard Biener <rguenther@suse.de>
8551
8552 * tree-vect-loop.c (needs_fold_left_reduction_p): Export.
8553 (vect_is_simple_reduction): Move all validity checks ...
8554 (vectorizable_reduction): ... here. Compute whether we
8555 need a fold-left reduction here.
8556 * tree-vect-patterns.c (vect_reassociating_reduction_p): Merge
8557 both overloads, check needs_fold_left_reduction_p directly.
8558 * tree-vectorizer.h (needs_fold_left_reduction_p): Declare.
8559
8560 2019-10-17 Richard Biener <rguenther@suse.de>
8561
8562 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Fix
8563 TARGET_MEM_REF creation.
8564
8565 2019-10-17 Richard Biener <rguenther@suse.de>
8566
8567 PR tree-optimization/92129
8568 * tree-vect-loop.c (vectorizable_reduction): Also fail
8569 on GIMPLE_SINGLE_RHS.
8570
8571 2019-10-17 Jakub Jelinek <jakub@redhat.com>
8572
8573 PR tree-optimization/92056
8574 * tree-object-size.c (cond_expr_object_size): Return early if then_
8575 processing resulted in unknown size.
8576
8577 PR tree-optimization/92115
8578 * tree-ssa-ifcombine.c (ifcombine_ifandif): Force condition into
8579 temporary if it could trap.
8580
8581 2019-10-17 Richard Biener <rguenther@suse.de>
8582
8583 PR debug/91887
8584 * dwarf2out.c (gen_formal_parameter_die): Also try to match
8585 context_die against a DW_TAG_GNU_formal_parameter_pack parent.
8586
8587 2019-10-16 Jakub Jelinek <jakub@redhat.com>
8588
8589 * tree-ssa-strlen.c (maybe_invalidate): Use
8590 HOST_WIDE_INT_PRINT_UNSIGNED instead of "%zu".
8591
8592 2019-10-16 Andrew Burgess <andrew.burgess@embecosm.com>
8593 Jim Wilson <jimw@sifive.com>
8594
8595 * config/riscv/riscv.h (REG_CLASS_CONTENTS): Add argument passing
8596 regs to SIBCALL_REGS.
8597 * config/riscv/riscv.c (riscv_regno_to_class): Change argument
8598 passing regs to SIBCALL_REGS.
8599
8600 2019-10-16 Martin Sebor <msebor@redhat.com>
8601
8602 PR tree-optimization/83821
8603 * tree-ssa-strlen.c (maybe_invalidate): Add argument. Consider
8604 the length of a string when available.
8605 (handle_builtin_memset) Add argument.
8606 (handle_store, strlen_check_and_optimize_call): Same.
8607 (check_and_optimize_stmt): Same. Pass it to callees.
8608
8609 2019-10-16 Martin Sebor <msebor@redhat.com>
8610
8611 PR tree-optimization/91996
8612 * tree-ssa-strlen.c (maybe_warn_pointless_strcmp): Improve location
8613 information.
8614 (compare_nonzero_chars): Add an overload.
8615 (count_nonzero_bytes): Add an argument. Call overload above.
8616 Handle non-constant lengths in some range.
8617 (handle_store): Add an argument.
8618 (check_and_optimize_stmt): Pass an argument to handle_store.
8619
8620 2019-10-16 Richard Earnshaw <rearnsha@arm.com>
8621
8622 * config/arm/arm.c (neon_valid_immediate): Clear bytes before use.
8623
8624 2019-10-16 Mihailo Stojanovic <mistojanovic@wavecomp.com>
8625
8626 * config/mips/mips.c (mips_expand_builtin_insn): Force the
8627 operands which correspond to the same input-output register to
8628 have the same pseudo assigned to them.
8629
8630 2019-10-16 Ilya Leoshkevich <iii@linux.ibm.com>
8631
8632 * cfgrtl.c (find_partition_fixes): Remove bbs_in_cold_partition.
8633
8634 2019-10-16 Wilco Dijkstra <wdijkstr@arm.com>
8635
8636 * config/aarch64/aarch64.c (aarch64_classify_symbol):
8637 Apply reasonable limit to symbol offsets.
8638
8639 2019-10-16 Richard Biener <rguenther@suse.de>
8640
8641 * tree-vect-loop.c (vect_valid_reduction_input_p): Remove.
8642 (vect_is_simple_reduction): Delay checking to
8643 vectorizable_reduction and relax the checking.
8644 (vectorizable_reduction): Check we have a simple use. Check
8645 for bogus condition reductions.
8646 * tree-vect-stmts.c (vect_transform_stmt): Make sure we
8647 are looking at the last stmt in a pattern sequence when
8648 filling in backedge PHI values.
8649
8650 2019-10-16 Peter Bergner <bergner@linux.ibm.com>
8651 Jiufu Guo <guojiufu@linux.ibm.com>
8652
8653 PR target/70010
8654 * config/rs6000/rs6000.c (rs6000_can_inline_p): Prohibit inlining if
8655 the callee explicitly disables some isa_flags the caller is using.
8656
8657 2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
8658
8659 * function-abi.cc (expr_callee_abi): Assert for POINTER_TYPE_P.
8660
8661 2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
8662
8663 * genmodes.c (mode_data::order): New field.
8664 (blank_mode): Update accordingly.
8665 (VECTOR_MODES_WITH_PREFIX): Add an order parameter.
8666 (make_vector_modes): Likewise.
8667 (VECTOR_MODES): Update use accordingly.
8668 (cmp_modes): Sort by the new order field ahead of sorting by size.
8669 * config/aarch64/aarch64-modes.def (VNx2QI, VN2xHI, VNx2SI)
8670 (VNx4QI, VNx4HI, VNx8QI): New partial vector modes.
8671 * config/aarch64/aarch64.c (VEC_PARTIAL): New flag value.
8672 (aarch64_classify_vector_mode): Handle the new partial modes.
8673 (aarch64_vl_bytes): New function.
8674 (aarch64_hard_regno_nregs): Use it instead of BYTES_PER_SVE_VECTOR
8675 when counting the number of registers in an SVE mode.
8676 (aarch64_class_max_nregs): Likewise.
8677 (aarch64_hard_regno_mode_ok): Don't allow partial vectors
8678 in registers yet.
8679 (aarch64_classify_address): Treat partial vectors analogously
8680 to full vectors.
8681 (aarch64_print_address_internal): Consolidate the printing of
8682 MUL VL addresses, using aarch64_vl_bytes as the number of
8683 bytes represented by "VL".
8684 (aarch64_vector_mode_supported_p): Reject partial vector modes.
8685
8686 2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
8687
8688 * config/aarch64/aarch64.c (aarch64_layout_frame): Use is_constant
8689 rather than known_lt when choosing frame layouts.
8690
8691 2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
8692
8693 * config/aarch64/aarch64.c (aarch64_layout_frame): Assert
8694 that all the adjustments add up to the full frame size.
8695 Use crtl->outgoing_args_size directly as the final adjustment
8696 where appropriate.
8697
8698 2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
8699
8700 * config/aarch64/aarch64.c (aarch64_layout_frame): Use a local
8701 "frame" reference instead of always referring directly to
8702 "cfun->machine->frame".
8703
8704 2019-10-16 Richard Biener <rguenther@suse.de>
8705
8706 PR tree-optimization/92119
8707 * tree-vect-patterns.c (vect_recog_rotate_pattern): Guard
8708 against missing bswap lhs.
8709
8710 2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
8711
8712 PR middle-end/92033
8713 * poly-int.h (constant_lower_bound_with_limit): New function.
8714 (constant_upper_bound_with_limit): Likewise.
8715 * doc/poly-int.texi: Document them.
8716 * tree-vrp.c (value_range_base::set): Convert POLY_INT_CST bounds
8717 into the worst-case INTEGER_CST bounds.
8718
8719 2019-10-16 Feng Xue <fxue@os.amperecomputing.com>
8720
8721 PR ipa/91088
8722 * doc/invoke.texi (ipa-max-param-expr-ops): Document new option.
8723 * params.def (PARAM_IPA_MAX_PARAM_EXPR_OPS): New.
8724 * ipa-predicat.h (struct expr_eval_op): New struct.
8725 (expr_eval_ops): New typedef.
8726 (struct condition): Add type and param_ops fields, remove size field.
8727 (add_condition): Replace size parameter with type parameter, add
8728 param_ops parameter.
8729 * ipa-predicat.c (expr_eval_ops_equal_p): New function.
8730 (predicate::add_clause): Add comparisons on type and param_ops.
8731 (dump_condition): Add debug dump for param_ops.
8732 (remap_after_inlining): Adjust call arguments to add_condition.
8733 (add_condition): Replace size parameter with type parameter, add
8734 param_ops parameter. Unshare constant value used in conditions.
8735 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Fold
8736 parameter expressions using param_ops.
8737 (decompose_param_expr): New function.
8738 (set_cond_stmt_execution_predicate): Use call to decompose_param_expr
8739 to replace call to unmodified_parm_or_parm_agg_item.
8740 (set_switch_stmt_execution_predicate): Likewise.
8741 (will_be_nonconstant_expr_predicate): Likewise. Replace usage of size
8742 with type.
8743 (inline_read_section): Read param_ops from summary stream.
8744 (ipa_fn_summary_write): Write param_ops to summary stream.
8745
8746 2019-10-15 Segher Boessenkool <segher@kernel.crashing.org>
8747
8748 PR rtl-optimization/92107
8749 * genattrtab.c (write_attr_value) <do_operator>: Parenthesize the
8750 expression written.
8751
8752 2019-10-15 Iain Sandoe <iain@sandoe.co.uk>
8753
8754 * config/darwin.c: Update description of fix and continue.
8755
8756 2019-10-15 Iain Sandoe <iain@sandoe.co.uk>
8757
8758 * config/darwin.c (darwin_binds_local_p): Update to call
8759 default_binds_local_p_3 () directly. amend comments.
8760
8761 2019-10-15 Richard Biener <rguenther@suse.de>
8762
8763 * lto-streamer-out.c (lto_variably_modified_type_p): New.
8764 (tree_is_indexable): Use it.
8765 * tree-streamer-out.c (pack_ts_type_common_value_fields):
8766 Stream variably_modified_type_p as TYPE_LANG_FLAG_0.
8767 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
8768
8769 2019-10-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
8770
8771 * config/msp430/msp430.md (zero_extendqipsi2): New.
8772 (zero_extendqisi2): Optimize case where src register and base dst
8773 register are the same.
8774 (zero_extendhipsi2): Don't use 430X insn for rYs->r case.
8775 (zero_extendpsisi2): Optimize r->m case.
8776 Add unnamed insn patterns to catch insns combine searches for when
8777 optimizing pointer manipulation.
8778
8779 2019-10-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
8780
8781 * config/msp430/msp430.md: Group zero_extend* insns together.
8782
8783 2019-10-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
8784
8785 * config/msp430/constraints.md: Allow post_inc operand for "Ya"
8786 constraint.
8787 * config/msp430/msp430.c (msp430_legitimate_address_p): Handle
8788 POST_INC.
8789 (msp430_subreg): Likewise.
8790 (msp430_split_addsi): Likewise.
8791 (msp430_print_operand_addr): Likewise.
8792 * config/msp430/msp430.h (HAVE_POST_INCREMENT): Define.
8793 (USE_STORE_POST_INCREMENT): Define.
8794 * config/msp430/msp430.md: Use the msp430_general_dst_operand or
8795 msp430_general_dst_nonv_operand predicates for the lvalues of insns.
8796 * config/msp430/predicates.md (msp430_nonpostinc_operand): New.
8797 (msp430_general_dst_operand): New.
8798 (msp430_general_dst_nonv_operand): New.
8799 (msp430_nonsubreg_operand): Remove.
8800 (msp430_nonsubreg_dst_operand): New.
8801 (msp430_nonsubreg_or_imm_operand): Allow reg or mem operands in place
8802 of defunct msp430_nonsubreg_operand.
8803 (msp430_nonsubregnonpostinc_or_imm_operand): New.
8804
8805 2019-10-15 Richard Biener <rguenther@suse.de>
8806
8807 PR tree-optimization/91929
8808 * tree-ssa-pre.c (pre_expr_d::loc): New member.
8809 (get_or_alloc_expr_for_name): Initialize it.
8810 (get_or_alloc_expr_for_constant): Likewise.
8811 (phi_translate_1): Copy it.
8812 (create_expression_by_pieces): Use the original location
8813 of the expression for the inserted stmt.
8814 (compute_avail): Record the location of the stmt for the
8815 expressions created.
8816
8817 2019-10-15 Richard Sandiford <richard.sandiford@arm.com>
8818
8819 * tree-ssa-strlen.c (count_nonzero_bytes): Check tree_fits_uhwi_p
8820 before using tree_to_uhwi.
8821
8822 2019-10-15 Ilya Leoshkevich <iii@linux.ibm.com>
8823
8824 * config/s390/s390.md: Run %a0:DI splitters only after reload.
8825
8826 2019-10-15 Richard Biener <rguenther@suse.de>
8827
8828 PR tree-optimization/92094
8829 * tree-vect-loop.c (vectorizable_reduction): For nested cycles
8830 do not adjust the reduction definition def type.
8831 * tree-vect-stmts.c (vect_transform_stmt): Verify the scalar stmt
8832 defines the latch argument of the PHI.
8833
8834 2019-10-15 Hongyu Wang <hongtao.wang@intel.com>
8835
8836 PR target/92035
8837 * config/i386/avx512fintrin.h (_mm_mask_roundscale_ss,
8838 _mm_maskz_roundscale_ss, _mm_maskz_roundscale_round_ss,
8839 _mm_maskz_roundscale_round_ss, _mm_mask_roundscale_sd,
8840 _mm_maskz_roundscale_sd, _mm_mask_roundscale_round_sd,
8841 _mm_maskz_roundscale_round_sd): New intrinsics.
8842 (_mm_roundscale_ss, _mm_roundscale_round_ss): Use
8843 __builtin_ia32_rndscales?_mask_round builtins instead of
8844 __builtin_ia32_rndscales?_round.
8845 * config/i386/i386-builtin.def (__builtin_ia32_rndscaless_round,
8846 __builtin_ia32_rndscalesd_round): Remove.
8847 (__builtin_ia32_rndscaless_mask_round,
8848 __builtin_ia32_rndscalesd_mask_round): New intrinsics.
8849 * config/i386/sse.md
8850 (avx512f_rndscale<mode><round_saeonly_name>): Renamed to ...
8851 (avx512f_rndscale<mode><mask_scalar_name><round_saeonly_scalar_name>):
8852 ... this, adjust and add subst atrributes to make it maskable.
8853
8854 2019-10-15 Richard Biener <rguenther@suse.de>
8855
8856 PR middle-end/92046
8857 * common.opt (fallow-store-data-races): New.
8858 * params.def (PARAM_ALLOW_STORE_DATA_RACES): Remove.
8859 * params.h (ALLOW_STORE_DATA_RACES): Likewise.
8860 * doc/invoke.texi (fallow-store-data-races): Document.
8861 (--param allow-store-data-races): Remove docs.
8862 * opts.c (default_options_table): Enable -fallow-store-data-races
8863 at -Ofast.
8864 (default_options_optimization): Do not enable --param
8865 allow-store-data-races at -Ofast.
8866 * tree-if-conv.c (ifcvt_memrefs_wont_trap): Use flag_store_data_races
8867 instead of PARAM_ALLOW_STORE_DATA_RACES.
8868 * tree-ssa-loop-im.c (execute_sm): Likewise.
8869
8870 2019-10-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8871
8872 PR tree-optimization/92085
8873 * tree-if-conv.c (ifcvt_local_dce): Call gsi_next in else clause,
8874 instead of calling it unconditionally after
8875 delete_dead_or_redundant_assignment and fix indentation.
8876
8877 2019-10-15 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
8878
8879 * config/arm/vfp.md (fma<SDF:mode>4): Enable DF only when
8880 TARGET_VFP_DOUBLE.
8881 (*fmsub<SDF:mode>4): Likewise.
8882 *fnmsub<SDF:mode>4): Likewise.
8883 (*fnmadd<SDF:mode>4): Likewise.
8884
8885 2019-10-14 Joel Hutton <Joel.Hutton@arm.com>
8886
8887 * doc/tree-ssa.texi: Update renamed macro name.
8888
8889 2019-10-14 Mihailo Stojanovic <mistojanovic@wavecomp.com>
8890
8891 * config/mips/mips.c (mips_cannot_force_const_mem): Reject
8892 vector constants.
8893
8894 2019-10-14 Iain Sandoe <iain@sandoe.co.uk>
8895
8896 * config/darwin.c: Use unsigned ints for the picbase label
8897 counters, initialise the vars explicitly.
8898 (update_pic_label_number_if_needed): Move a variable declaration
8899 to where it's needed.
8900 (machopic_output_function_base_name): Use a more strict checking
8901 assert, and and unsigned int for the picbase label counter.
8902 (machopic_get_function_picbase): Likewise.
8903
8904 2019-10-14 Richard Biener <rguenther@suse.de>
8905
8906 PR middle-end/92046
8907 * dse.c (scan_insn): Use param max_active_local_stores.
8908 (dse_step1): Get PARAM_MAX_DSE_ACTIVE_LOCAL_STORES and adjust
8909 based on optimization level.
8910 * loop-invariant.c (move_loop_invariants): Adjust
8911 LOOP_INVARIANT_MAX_BBS_IN_LOOP based on optimization level.
8912 * opts.c (default_options_optimization): Do not adjust
8913 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES and
8914 LOOP_INVARIANT_MAX_BBS_IN_LOOP here.
8915
8916 2019-10-14 Wilco Dijkstra <wdijkstr@arm.com>
8917
8918 * config/arm/arm.c (arm_legitimize_address): Remove Thumb-2 bailout.
8919
8920 2019-10-14 Wilco Dijkstra <wdijkstr@arm.com>
8921
8922 * config/arm/arm.c (arm_option_override): Don't override sched
8923 pressure algorithm.
8924
8925 2019-10-14 Richard Biener <rguenther@suse.de>
8926
8927 PR tree-optimization/92069
8928 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): For nested
8929 cycles do not set vect_nested_cycle on the latch definition.
8930
8931 2019-10-14 Richard Sandiford <richard.sandiford@arm.com>
8932
8933 * function-abi.h (expr_callee_abi): Declare.
8934 * function-abi.cc (expr_callee_abi): New function.
8935
8936 2019-10-14 Aldy Hernandez <aldyh@redhat.com>
8937
8938 * tree-vrp.c (value_range_base::set): Normalize unsigned ~[0,0]
8939 into [1,MAX].
8940 * tree-vrp.h (value_range_base::nonzero_p): Adjust for unsigned
8941 non-zero being represented as [1,MAX].
8942
8943 2019-10-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
8944
8945 * tree-sra.c (dump_access): Add missing braces.
8946
8947 2019-10-13 Iain Sandoe <iain@sandoe.co.uk>
8948
8949 * config/darwin.c (machopic_indirection_name): Rework the
8950 function to emit linker-visible symbols only for indirections
8951 in the data section. Clean up the code and update comments.
8952
8953 2019-10-13 Iain Sandoe <iain@sandoe.co.uk>
8954
8955 * config/darwin.c (machopic_indirect_data_reference): Remove
8956 redundant code.
8957
8958 2019-10-13 Nathan Sidwell <nathan@acm.org>
8959
8960 * gengtype-lex.l (CXX_KEYWORD): Add 'mutable'.
8961
8962 2019-10-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8963
8964 * doc/sourcebuild.texi (Test Directives, Add Options): Remove
8965 c99_runtime.
8966
8967 2019-10-12 Jan Hubicka <hubicka@ucw.cz>
8968
8969 * lto-streamer-out.c (collect_block_tree_leafs): Renumber statements
8970 so non-virutal are before virutals.
8971 (output_function): Avoid body modifications.
8972
8973 2019-10-12 John David Anglin <danglin@gcc.gnu.org>
8974
8975 * config/pa/pa.c (pa_output_call): Load descriptor address to register
8976 %r22. Load function address before global pointer.
8977 (pa_attr_length_indirect_call): Adjust length of inline versions of
8978 $$dyncall.
8979 (pa_output_indirect_call): Remove fast inline version of $$dyncall
8980 before normal cases. Update inline $$dyncall sequences to preserve
8981 function descriptor address in register %r22.
8982 (TRAMPOLINE_CODE_SIZE): Adjust.
8983 (pa_asm_trampoline_template): Revise 32-bit trampoline. Don't assume
8984 register %r22 contains trampoline address.
8985 (pa_trampoline_init): Adjust offsets.
8986 (pa_trampoline_adjust_address): Likewise.
8987 * config/pa/pa.h (TRAMPOLINE_SIZE): Adjust 32-bit size.
8988
8989 2019-10-12 Iain Sandoe <iain@sandoe.co.uk>
8990
8991 PR target/67183
8992 * config/darwin.c (machopic_indirection): New field to flag
8993 non-lazy-symbol-pointers in the data section.
8994 (machopic_indirection_name): Compute if an indirection should
8995 appear in the data section.
8996 (machopic_output_data_section_indirection): New callback split
8997 from machopic_output_indirection.
8998 (machopic_output_stub_indirection): Likewise.
8999 (machopic_output_indirection): Retain the code for non-lazy
9000 symbol pointers in their regular section.
9001 (machopic_finish): Use the new callbacks to order the indirection
9002 output.
9003
9004 2019-10-12 Iain Sandoe <iain@sandoe.co.uk>
9005
9006 * config/darwin-protos.h (machopic_finish): Delete.
9007 * config/darwin.c (machopic_finish): Make static.
9008
9009 2019-10-12 Iain Sandoe <iain@sandoe.co.uk>
9010
9011 * config/darwin.c (darwin_file_end): Only emit empty CTOR/DTOR
9012 sections when building kernel extension code.
9013
9014 2019-10-12 Palmer Dabbelt <palmer@sifive.com>
9015
9016 * doc/extend.texi (Alternate Keywords): Change "-std=c11" to "a
9017 later standard."
9018
9019 2019-10-12 John David Anglin <danglin@gcc.gnu.org>
9020
9021 * config/pa/pa.c (pa_option_override): Remove trailing comma
9022 from warning.
9023
9024 2019-10-12 Jakub Jelinek <jakub@redhat.com>
9025
9026 PR middle-end/92063
9027 * tree-eh.c (operation_could_trap_helper_p) <case COND_EXPR>
9028 <case VEC_COND_EXPR>: Return false with *handled = false.
9029 (tree_could_trap_p): For {,VEC_}COND_EXPR return false instead of
9030 recursing on the first operand.
9031 * fold-const.c (simple_operand_p_2): Use generic_expr_could_trap_p
9032 instead of tree_could_trap_p.
9033 * tree-ssa-sccvn.c (vn_nary_may_trap): Formatting fixes.
9034
9035 2019-10-11 Jim Wilson <jimw@sifive.com>
9036
9037 PR rtl-optimization/91860
9038 * combine.c (subst): If new_rtx is a constant, also check for
9039 SIGN_EXTEND when deciding whether to call simplify_unary_operation.
9040
9041 2019-10-11 Richard Sandiford <richard.sandiford@arm.com>
9042
9043 * expr.c (store_expr): Use rtx_to_poly_int64 rather than
9044 INTVAL when calling store_bit_field.
9045
9046 2019-10-11 Wilco Dijkstra <wdijkstr@arm.com>
9047
9048 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Set when optimizing for
9049 size.
9050
9051 2019-10-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
9052
9053 * tree-vect-loop.c (vect_analyze_loop_operations): Adjust call to
9054 vectorizable_live_operation.
9055 (vectorizable_live_operation): Adjust parameters.
9056 * tree-vect-stmts.c (vect_init_vector,
9057 vect_gen_widened_results_half): Fix typo in function comment.
9058 (can_vectorize_live_stmts): Adjust function comment.
9059 Adjust parameters. Adjust call to vectorizable_live_operation.
9060 (vect_analyze_stmt): Adjust call to can_vectorize_live_stmts.
9061 (vect_transform_stmt): Adjust function comment. Adjust call to
9062 can_vectorize_live_stmts.
9063 * tree-vectorizer.h (vectorizable_live_operation): Adjust parameters.
9064
9065 2019-10-11 Richard Biener <rguenther@suse.de>
9066
9067 PR tree-optimization/90883
9068 PR tree-optimization/91091
9069 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use correct
9070 alias-sets both for recording VN table entries and continuing
9071 walking after translating through copies. Handle same-sized
9072 reads from SSA names by returning the plain SSA name.
9073 (eliminate_dom_walker::eliminate_stmt): Properly handle
9074 non-size precision stores in redundant store elimination.
9075
9076 2019-10-11 Jan Hubicka <hubicka@ucw.cz>
9077
9078 * ggc-page.c (release_pages): Output statistics when !quiet_flag.
9079 (ggc_collect): Dump later to not interfere with release_page dump.
9080 (ggc_trim): New function.
9081 * ggc-none.c (ggc_trim): New.
9082 * ggc.h (ggc_trim): Declare.
9083
9084 2019-10-11 Richard Biener <rguenther@suse.de>
9085
9086 PR tree-optimization/92066
9087 PR tree-optimization/92046
9088 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
9089 Fix bogus cost model check.
9090
9091 2019-10-11 Tobias Burnus <tobias@codesourcery.com>
9092
9093 * langhooks-def.h (LANG_HOOKS_OMP_IS_ALLOCATABLE_OR_PTR): Define.
9094 (LANG_HOOKS_DECLS): Add it.
9095 * langhooks.h (lang_hooks_for_decls): Add omp_is_allocatable_or_ptr;
9096 update comment for omp_is_optional_argument.
9097 * omp-general.c (omp_is_allocatable_or_ptr): New.
9098 * omp-general.h (omp_is_allocatable_or_ptr): Declare.
9099 * omp-low.c (scan_sharing_clauses, lower_omp_target): Handle
9100 Fortran's optional arguments and allocatable/pointer scalars
9101 with use_device_addr.
9102
9103 2019-10-11 Ilya Leoshkevich <iii@linux.ibm.com>
9104
9105 PR target/77918
9106 * config/s390/2827.md: Add new opcodes.
9107 * config/s390/2964.md: Likewise.
9108 * config/s390/3906.md: Likewise.
9109 * config/s390/8561.md: Likewise.
9110 * config/s390/s390-builtins.def (s390_vfchesb): Use
9111 the new vec_cmpgev4sf_quiet_nocc.
9112 (s390_vfchedb): Use the new vec_cmpgev2df_quiet_nocc.
9113 (s390_vfchsb): Use the new vec_cmpgtv4sf_quiet_nocc.
9114 (s390_vfchdb): Use the new vec_cmpgtv2df_quiet_nocc.
9115 (vec_cmplev4sf): Use the new vec_cmplev4sf_quiet_nocc.
9116 (vec_cmplev2df): Use the new vec_cmplev2df_quiet_nocc.
9117 (vec_cmpltv4sf): Use the new vec_cmpltv4sf_quiet_nocc.
9118 (vec_cmpltv2df): Use the new vec_cmpltv2df_quiet_nocc.
9119 * config/s390/s390-modes.def (CCSFPS): New mode.
9120 * config/s390/s390.c (s390_match_ccmode_set): Support CCSFPS.
9121 (s390_select_ccmode): Return CCSFPS for LT, LE, GT, GE and LTGT.
9122 (s390_branch_condition_mask): Reuse CCS for CCSFPS.
9123 (s390_expand_vec_compare): Use non-signaling patterns where
9124 necessary.
9125 (s390_reverse_condition): Support CCSFPS.
9126 * config/s390/s390.md (*cmp<mode>_ccsfps): New pattern.
9127 * config/s390/vector.md: (VFCMP_HW_OP): Remove.
9128 (asm_fcmp_op): Likewise.
9129 (*smaxv2df3_vx): Use pattern for quiet comparison.
9130 (*sminv2df3_vx): Likewise.
9131 (*vec_cmp<VFCMP_HW_OP:code><mode>_nocc): Remove.
9132 (*vec_cmpeq<mode>_quiet_nocc): New pattern.
9133 (vec_cmpgt<mode>_quiet_nocc): Likewise.
9134 (vec_cmplt<mode>_quiet_nocc): New expander.
9135 (vec_cmpge<mode>_quiet_nocc): New pattern.
9136 (vec_cmple<mode>_quiet_nocc): New expander.
9137 (*vec_cmpeq<mode>_signaling_nocc): New pattern.
9138 (*vec_cmpgt<mode>_signaling_nocc): Likewise.
9139 (*vec_cmpgt<mode>_signaling_finite_nocc): Likewise.
9140 (*vec_cmpge<mode>_signaling_nocc): Likewise.
9141 (*vec_cmpge<mode>_signaling_finite_nocc): Likewise.
9142 (vec_cmpungt<mode>): New expander.
9143 (vec_cmpunge<mode>): Likewise.
9144 (vec_cmpuneq<mode>): Use quiet patterns.
9145 (vec_cmpltgt<mode>): Allow only on z14+.
9146 (vec_cmpordered<mode>): Use quiet patterns.
9147 (vec_cmpunordered<mode>): Likewise.
9148 (VEC_CMP_EXPAND): Add ungt and unge.
9149
9150 2019-10-11 Jan Hubicka <hubicka@ucw.cz>
9151
9152 * gimple-streamer-out.c (output_gimple_stmt): Add explicit function
9153 parameter.
9154 * lto-streamer-out.c: Include tree-dfa.h.
9155 (output_cfg): Do not use cfun.
9156 (lto_prepare_function_for_streaming): New.
9157 (output_function): Do not push cfun; do not initialize loop optimizer.
9158 * lto-streamer.h (lto_prepare_function_for_streaming): Declare.
9159 * passes.c (ipa_write_summaries): Use it.
9160 (ipa_write_optimization_summaries): Do not modify bodies.
9161 * tree-dfa.c (renumber_gimple_stmt_uids): Add function parameter.
9162 * tree.dfa.h (renumber_gimple_stmt_uids): Update prototype.
9163 * tree-ssa-dse.c (pass_dse::execute): Update use of
9164 renumber_gimple_stmt_uids.
9165 * tree-ssa-math-opts.c (pass_optimize_widening_mul::execute): Likewise.
9166
9167 2019-10-11 Kewen Lin <linkw@gcc.gnu.org>
9168
9169 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Lower
9170 vec_promote_demote cost to 1 for non-Power7 VSX architectures.
9171
9172 2019-10-10 Joseph Myers <joseph@codesourcery.com>
9173
9174 * ginclude/float.h [!__DEC32_MANT_DIG__]: Do not define DFP
9175 macros.
9176 [__STDC_WANT_IEC_60559_DFP_EXT__ || __STDC_VERSION__ > 201710L]:
9177 Also define DFP macros for these conditions.
9178 [!__STDC_WANT_DEC_FP__] (DEC32_SUBNORMAL_MIN, DEC64_SUBNORMAL_MIN,
9179 DEC128_SUBNORMAL_MIN): Do not define.
9180 [__STDC_WANT_IEC_60559_DFP_EXT__ || __STDC_VERSION__ > 201710L]
9181 (DEC32_TRUE_MIN, DEC64_TRUE_MIN, DEC128_TRUE_MIN): New macros.
9182
9183 2019-10-10 Xiong Hu Luo <luoxhu@linux.ibm.com>
9184 Sandra Loosemore <sandra@codesourcery.com>
9185
9186 PR middle-end/26241
9187 * doc/lto.texi (IPA): Reference to the IPA passes.
9188 * doc/passes.texi (Pass manager): Add node IPA passes and
9189 description for each IPA pass.
9190
9191 2019-10-10 Jan Hubicka <hubicka@ucw.cz>
9192
9193 * ipa-reference.c: Do not include splay-tree.h
9194 (reference_vars_to_consider): Turn to hash map.
9195 (get_static_name, ipa_init, analyze_function, propagate,
9196 stream_out_bitmap, ipa_reference_write_optimization_summary,
9197 ipa_reference_write_optimization_summary): Update.
9198
9199 2019-10-10 Jan Hubicka <hubicka@ucw.cz>
9200
9201 * ipa-reference.c (propagate): Fix releasing of IPA summaries.
9202
9203 2019-10-10 Iain Sandoe <iain@sandoe.co.uk>
9204
9205 * config/darwin.c: Lookup Objective C metadata and force indirection
9206 for IVAR refs.
9207
9208 2019-10-10 Michael Meissner <meissner@linux.ibm.com>
9209
9210 * config/rs6000/rs6000.c (quad_address_p): Add check for prefixed
9211 addresses.
9212 (mem_operand_gpr): Add check for prefixed addresses.
9213 (mem_operand_ds_form): Add check for prefixed addresses.
9214 (rs6000_legitimate_offset_address_p): If we support prefixed
9215 addresses, check for a 34-bit offset instead of 16-bit.
9216 (rs6000_legitimate_address_p): Add check for prefixed addresses.
9217 Do not allow load/store with update if the address is prefixed.
9218 (rs6000_mode_dependent_address): If we support prefixed
9219 addresses, check for a 34-bit offset instead of 16-bit.
9220
9221 2019-10-10 Ilya Leoshkevich <iii@linux.ibm.com>
9222
9223 PR target/77918
9224 * config/s390/vector.md (vcond_comparison_operator): New
9225 predicate.
9226 (vcond<V_HW:mode><V_HW2:mode>): Use vcond_comparison_operator.
9227
9228 2019-10-10 David Malcolm <dmalcolm@redhat.com>
9229
9230 PR 87488
9231 * Makefile.in (CFLAGS-opts.o): Pass in DOCUMENTATION_ROOT_URL via
9232 -D.
9233 * configure.ac (--with-documentation-root-url): New option.
9234 * configure: Regenerate.
9235 * diagnostic-format-json.cc (json_end_diagnostic): If there is an
9236 option URL, add it as a new string field of the diagnostic option.
9237 * diagnostic.c (diagnostic_initialize): Initialize get_option_url.
9238 (print_option_information): If get_option_url is non-NULL, call
9239 it, and if the result is non-NULL, potentially emit an escape
9240 sequence to markup the option text with the resulting URL.
9241 * diagnostic.h (diagnostic_context::get_option_url): New callback.
9242 * doc/invoke.texi (-fdiagnostics-format=): Add "option_url" to
9243 example of JSON output.
9244 * opts-diagnostic.h (get_option_url): New decl.
9245 * opts.c (get_option_url): New function.
9246 * toplev.c (general_init): Initialize the get_option_url callback.
9247
9248 2019-10-10 David Malcolm <dmalcolm@redhat.com>
9249
9250 PR 87488
9251 * common.opt (fdiagnostics-urls=): New option.
9252 (diagnostic-url.h): Add SourceInclude.
9253 (diagnostic_url_rule): New enum.
9254 * diagnostic-color.c: Include "diagnostic-url.h".
9255 (diagnostic_urls_enabled_p): New function.
9256 * diagnostic-url.h: New file.
9257 * diagnostic.c: Include "diagnostic-url.h".
9258 (diagnostic_urls_init): New function.
9259 * diagnostic.h (diagnostic_urls_init): New decl.
9260 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
9261 -fdiagnostics-urls to the list.
9262 (-fdiagnostics-urls): New option.
9263 * gcc.c (driver_handle_option): Handle OPT_fdiagnostics_urls_.
9264 (driver::global_initializations): Call diagnostic_urls_init.
9265 * opts-global.c (init_options_once): Likewise.
9266 * opts.c (common_handle_option): Handle OPT_fdiagnostics_urls_.
9267 * pretty-print.c (pretty_printer::pretty_printer): Initialize
9268 show_urls.
9269 (pp_begin_url): New function.
9270 (pp_end_url): New function.
9271 (selftest::test_urls): New selftest.
9272 (selftest::pretty_print_c_tests): Call it.
9273 * pretty-print.h (pretty_printer::show_urls): New field.
9274 (pp_begin_url): New decl.
9275 (pp_end_url): New decl.
9276
9277 2019-10-10 Uroš Bizjak <ubizjak@gmail.com>
9278
9279 PR target/92022
9280 * config/alpha/alpha.c (alpha_handle_trap_shadows): Skip DEBUG_INSN.
9281
9282 2019-10-10 Oleg Endo <olegendo@gcc.gnu.org>
9283
9284 PR target/88630
9285 * config/sh/sh.h (TARGET_FPU_SH4_300): New macro.
9286 * config/sh/sh.c (sh_option_override): Enable fsca and fsrra insns
9287 also for TARGET_FPU_SH4_300.
9288 (sh_emit_mode_set): Check for TARGET_FPU_SH4_300 instead of
9289 TARGET_SH4_300.
9290 * config/sh/sh.md (toggle_pr): Add TARGET_FPU_SH4_300 condition.
9291 (negsf2): Expand to either negsf2_fpscr or negsf2_no_fpscr.
9292 (*negsf2_i): Split into ...
9293 (negsf2_fpscr, negsf2_no_fpscr): ... these new patterns.
9294 (abssf2): Expand to either abssf2_fpsc or abssf2_no_fpsc.
9295 (**abssf2_i): Split into ...
9296 (abssf2_fpscr, abssf2_no_fpscr): ... these new patterns.
9297 (negdf2): Expand to either negdf2_fpscr or negdf2_no_fpscr.
9298 (*negdf2_i): Split into ...
9299 (negdf2_fpscr, negdf2_no_fpscr): ... these new patterns.
9300 (absdf2): Expand to either absdf2_fpscr or absdf2_no_fpsc.
9301 (**abssf2_i): Split into ...
9302 (absdf2_fpscr, absdf2_no_fpscr): ... these new patterns.
9303
9304 2019-10-10 Richard Biener <rguenther@suse.de>
9305
9306 PR middle-end/92046
9307 * opts.c (finish_options): Do not influence global --params
9308 from options that are adjustable per function.
9309 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
9310 Apply --param adjustment based on active cost-model.
9311 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Disable
9312 further store-sinking when vectorization or if-conversion
9313 are not enabled.
9314
9315 2019-10-10 Jan Hubicka <hubicka@ucw.cz>
9316
9317 PR middle-end/92037
9318 * cgraph.c (symbol_table_test::symbol_table_test): Use ggc_alloc
9319 rather than ggc_alloc_cleared to alloc symbol table.
9320 * toplev.c (general_init): Likewise.
9321 * cgraph.h (symbol_table): Explicitly construct every field.
9322
9323 2019-10-10 Andreas Krebbel <krebbel@linux.ibm.com>
9324
9325 * common/config/s390/s390-common.c (PF_ARCH13): Rename to...
9326 (PF_Z15): ... this.
9327 * config.gcc: Add z15 as option for --with-arch and --with-tune
9328 configure switches.
9329 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Add
9330 error reporting for unsupported builtins.
9331 * config/s390/s390-opts.h (enum processor_type): Rename
9332 PROCESSOR_8561_ARCH13 to PROCESSOR_8561_Z15.
9333 * config/s390/8561.md: Rename arch13 to z15 throughout the file.
9334 * config/s390/driver-native.c (s390_host_detect_local_cpu):
9335 Likewise.
9336 * config/s390/s390-builtins.def: Likewise.
9337 * config/s390/s390.c (processor_table): Add z15 as option and keep arch13 as alternative.
9338 (s390_expand_builtin): Add missing check for unsupported builtins.
9339 (s390_canonicalize_comparison): Rename TARGET_ARCH13 to TARGET_Z15.
9340 (s390_rtx_costs): Likewise.
9341 (s390_get_sched_attrmask): Rename arch13 to z15.
9342 (s390_get_unit_mask): Likewise.
9343 (s390_is_fpd): Likewise.
9344 (s390_is_fxd): Likewise.
9345 * config/s390/s390.h (enum processor_flags): Likewise.
9346 * config/s390/s390.md: Likewise.
9347 * config/s390/vector.md: Likewise.
9348 * config/s390/vx-builtins.md: Likewise.
9349 * config/s390/s390.opt: Add z15 to processor_type value.
9350
9351 2019-10-10 Andreas Krebbel <krebbel@linux.ibm.com>
9352
9353 PR target/91035
9354 * config/s390/s390-protos.h (s390_output_split_stack_data): Add
9355 prototype.
9356 * config/s390/s390.md (UNSPECV_SPLIT_STACK_DATA): Remove.
9357 ("split_stack_data", "split_stack_call")
9358 ("split_stack_call_<mode>", "split_stack_cond_call")
9359 ("split_stack_cond_call_<mode>"): Remove.
9360 ("@split_stack_call<mode>", "@split_stack_cond_call<mode>"): New
9361 insn definition.
9362 * config/s390/s390.c (s390_output_split_stack_data): New function.
9363 (s390_expand_split_stack_prologue): Use the merged expander.
9364
9365 2019-10-09 Martin Sebor <msebor@redhat.com>
9366
9367 PR tree-optimization/90879
9368 * builtins.c (check_access): Avoid using maxbound when null.
9369 * calls.c (maybe_warn_nonstring_arg): Adjust to get_range_strlen change.
9370 * doc/invoke.texi (-Wstring-compare): Document new warning option.
9371 * gimple-fold.c (get_range_strlen_tree): Make setting maxbound
9372 conditional.
9373 (get_range_strlen): Overwrite initial maxbound when non-null.
9374 * gimple-ssa-sprintf.c (get_string_length): Adjust to get_range_strlen
9375 changes.
9376 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Same.
9377 (used_only_for_zero_equality): New function.
9378 (handle_builtin_memcmp): Call it.
9379 (determine_min_objsize): Return an integer instead of tree.
9380 (get_len_or_size, strxcmp_eqz_result): New functions.
9381 (maybe_warn_pointless_strcmp): New function.
9382 (handle_builtin_string_cmp): Call it. Fold zero-equality of strcmp
9383 between a longer string and a smaller array.
9384 (get_range_strlen_dynamic): Overwrite initial maxbound when non-null.
9385
9386 2019-10-09 Iain Sandoe <iain@sandoe.co.uk>
9387
9388 * config/darwin.c (darwin_override_options): Make the check for
9389 Objective-C ABI version more specific for 64bit code.
9390
9391 2019-10-09 Iain Sandoe <iain@sandoe.co.uk>
9392
9393 * config/darwin.c (machopic_indirect_data_reference): Set flag to
9394 indicate that the new symbol is an indirection.
9395 (machopic_indirect_call_target): Likewise.
9396 * config/darwin.h (MACHO_SYMBOL_FLAG_INDIRECTION): New.
9397 (MACHO_SYMBOL_INDIRECTION_P): New.
9398 (MACHO_SYMBOL_FLAG_STATIC): Adjust bit number.
9399
9400 2019-10-08 Jason Merrill <jason@redhat.com>
9401
9402 * doc/invoke.texi: Document -fconcepts-ts.
9403
9404 2019-10-09 Richard Biener <rguenther@suse.de>
9405
9406 * tree-vect-loop.c (vect_is_simple_reduction): Simplify and
9407 allow stmts other than GIMPLE_ASSIGN in nested cycles.
9408
9409 2019-10-08 Richard Biener <rguenther@suse.de>
9410
9411 * tree-vectorizer.h (_stmt_vec_info::reduc_vectype_in): New.
9412 (_stmt_vec_info::force_single_cycle): Likewise.
9413 (STMT_VINFO_FORCE_SINGLE_CYCLE): New.
9414 (STMT_VINFO_REDUC_VECTYPE_IN): Likewise.
9415 * tree-vect-loop.c (vectorizable_reduction): Set
9416 STMT_VINFO_REDUC_VECTYPE_IN and STMT_VINFO_FORCE_SINGLE_CYCLE.
9417 (vect_transform_reduction): Use them to remove redundant code.
9418 (vect_transform_cycle_phi): Likewise.
9419
9420 2019-10-08 Dmitrij Pochepko <dmitrij.pochepko@bell-sw.com>
9421
9422 PR tree-optimization/90836
9423 * match.pd (popcount): New pattern.
9424
9425 2019-10-08 Martin Sebor <msebor@redhat.com>
9426
9427 PR middle-end/92026
9428 PR middle-end/92014
9429 * tree-ssa-strlen.c (count_nonzero_bytes): Avoid recursing for MEM_REF
9430 again once nbytes has been set. Set the access size when not yet set.
9431
9432 2019-10-08 Iain Sandoe <iain@sandoe.co.uk>
9433
9434 * config/darwin.c (machopic_select_section): Remove dead code for
9435 old Objective-C section selection method, replace with unreachable.
9436
9437 2019-10-08 Iain Sandoe <iain@sandoe.co.uk>
9438
9439 * config/darwin.c (machopic_indirect_data_reference): Check for
9440 required indirections before making direct access to defined
9441 values.
9442 (machopic_output_indirection): Place the indirected pointes for
9443 required indirections into the non-lazy symbol pointers section.
9444 (darwin_encode_section_info):
9445 * config/darwin.h (MACHO_SYMBOL_FLAG_MUST_INDIRECT): New.
9446 (MACHO_SYMBOL_MUST_INDIRECT_P): New.
9447
9448 2019-10-08 Uroš Bizjak <ubizjak@gmail.com>
9449
9450 PR target/91994
9451 * config/i386/i386.c (x86_avx_u128_mode_needed): Use SSE_REG
9452 instead of ALL_SSE_REG to check if function call preserves some
9453 256-bit SSE registers.
9454
9455 2019-10-08 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
9456
9457 * config.gcc: Move -L usage from LINK_OS_EXTRA_SPEC32 and
9458 LINK_OS_EXTRA_SPEC64 to MD_STARTFILE_PREFIX and
9459 MD_STARTFILE_PREFIX_1 when using --with-advance-toolchain.
9460
9461 2019-10-08 Richard Biener <rguenther@suse.de>
9462
9463 * tree-vectorizer.h (_stmt_vec_info::v_reduc_type): Remove.
9464 (_stmt_vec_info::is_reduc_info): Add.
9465 (STMT_VINFO_VEC_REDUCTION_TYPE): Remove.
9466 (vectorizable_condition): Remove.
9467 (vectorizable_shift): Likewise.
9468 (vectorizable_reduction): Adjust.
9469 (info_for_reduction): New.
9470 * tree-vect-loop.c (vect_force_simple_reduction): Fold into...
9471 (vect_analyze_scalar_cycles_1): ... here.
9472 (vect_analyze_loop_operations): Adjust.
9473 (needs_fold_left_reduction_p): Simplify for single caller.
9474 (vect_is_simple_reduction): Likewise. Remove stmt restriction
9475 for nested cycles not part of double reductions.
9476 (vect_model_reduction_cost): Pass in the reduction type.
9477 (info_for_reduction): New function.
9478 (vect_create_epilog_for_reduction): Use it, access reduction
9479 meta off the stmt info it returns. Use STMT_VINFO_REDUC_TYPE
9480 instead of STMT_VINFO_VEC_REDUCTION_TYPE.
9481 (vectorize_fold_left_reduction): Remove pointless assert.
9482 (vectorizable_reduction): Analyze the full reduction when
9483 visiting the outermost PHI. Simplify. Use STMT_VINFO_REDUC_TYPE
9484 instead of STMT_VINFO_VEC_REDUCTION_TYPE. Direct reduction
9485 stmt code-generation to vectorizable_* in most cases. Verify
9486 code-generation only for cases handled by
9487 vect_transform_reductuon.
9488 (vect_transform_reduction): Use info_for_reduction to get at
9489 reduction meta. Simplify.
9490 (vect_transform_cycle_phi): Likewise.
9491 (vectorizable_live_operation): Likewise.
9492 * tree-vect-patterns.c (vect_reassociating_reduction_p): Look
9493 at the PHI node for STMT_VINFO_REDUC_TYPE.
9494 * tree-vect-slp.c (vect_schedule_slp_instance): Remove no
9495 longer necessary code.
9496 * tree-vect-stmts.c (vectorizable_shift): Make static again.
9497 (vectorizable_condition): Likewise. Get at reduction related
9498 info via info_for_reduction.
9499 (vect_analyze_stmt): Adjust.
9500 (vect_transform_stmt): Likewise.
9501 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
9502 STMT_VINFO_REDUC_TYPE instead of STMT_VINFO_VEC_REDUCTION_TYPE.
9503
9504 2019-10-08 Joseph Myers <joseph@codesourcery.com>
9505
9506 * doc/invoke.texi (-ffp-int-builtin-inexact): Document
9507 -fno-fp-int-builtin-inexact default for C2X.
9508
9509 2019-10-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9510 Richard Biener <rguenther@suse.de>
9511
9512 PR tree-optimization/91532
9513 * tree-if-conv.c: Include tree-ssa-dse.h.
9514 (ifcvt_local_dce): Change param from bb to loop,
9515 and call dse_classify_store.
9516 (tree_if_conversion): Pass loop instead of loop->header as arg
9517 to ifcvt_local_dce.
9518 * tree-ssa-dse.c: Include tree-ssa-dse.h.
9519 (delete_dead_or_redundant_assignment): Remove static qualifier from
9520 declaration, and add prototype in tree-ssa-dse.h.
9521 (dse_store_status): Move to tree-ssa-dse.h.
9522 (dse_classify_store): Remove static qualifier and add new tree param
9523 stop_at_vuse, and add prototype in tree-ssa-dse.h.
9524 * tree-ssa-dse.h: New header.
9525
9526 2019-10-07 Iain Sandoe <iain@sandoe.co.uk>
9527
9528 * config/darwin.c (machopic_output_indirection): Don't put
9529 hidden symbol indirections into the .data section, use the
9530 non-lazy symbol pointers section as normal.
9531 (darwin_encode_section_info): Record if a symbol is hidden.
9532 * config/darwin.h (MACHO_SYMBOL_FLAG_HIDDEN_VIS): New.
9533 (MACHO_SYMBOL_HIDDEN_VIS_P): New.
9534
9535 2019-10-07 Iain Sandoe <iain@sandoe.co.uk>
9536
9537 * config/darwin.c (machopic_symbol_defined_p): Use symbol flag
9538 predicates instead of accessing bits directly.
9539 (machopic_indirect_call_target): Likewise.
9540 (machopic_output_indirection): Likewise.
9541 (darwin_encode_section_info): Improve description. Use renamed
9542 symbol flags. Use predicate macros for variables and functions.
9543 * config/darwin.h:
9544 Rename MACHO_SYMBOL_VARIABLE to MACHO_SYMBOL_FLAG_VARIABLE.
9545 Rename MACHO_SYMBOL_DEFINED to MACHO_SYMBOL_FLAG_DEFINED.
9546 Rename MACHO_SYMBOL_STATIC to MACHO_SYMBOL_FLAG_STATIC.
9547 (MACHO_SYMBOL_VARIABLE_P): New.
9548 (MACHO_SYMBOL_DEFINED_P):New.
9549 (MACHO_SYMBOL_STATIC_P): New.
9550 * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Delete.
9551 (SYMBOL_FLAG_SUBT_DEP): New.
9552 * config/rs6000/darwin.h (SYMBOL_FLAG_SUBT_DEP): New.
9553
9554 2019-10-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
9555
9556 * config/msp430/msp430.c (msp430_file_end): s/msp_/msp430_/
9557 (msp430_expand_epilogue): Likewise.
9558 * config/msp430/predicates.md: Likewise.
9559 * config/msp430/msp430.md: Likewise.
9560 Replace blocks of 8 spaces with tabs.
9561
9562 2019-10-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
9563
9564 * config/msp430/msp430-protos.h (msp430_split_addsi): New prototype.
9565 * config/msp430/msp430.c (msp430_split_addsi): New.
9566 * config/msp430/msp430.md: Call msp430_split_addsi () instead of using
9567 a block of C code for splitting addsi.
9568
9569 2019-10-07 Uroš Bizjak <ubizjak@gmail.com>
9570
9571 * config/i386/i386-expand.c (ix86_expand_floorceildf_32,
9572 ix86_expand_rounddf_32): Reorder functions.
9573 * config/i386/i386-protos.h: Update.
9574
9575 2019-10-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
9576
9577 * config.in: Regenerate.
9578 * config/msp430/constraints.md: Fix docstring for "Ys" constraint.
9579 Add new "Yx" constraint.
9580 * config/msp430/driver-msp430.c (msp430_propagate_region_opt): New spec
9581 function.
9582 * config/msp430/msp430-protos.h (msp430_op_not_in_high_mem): New
9583 prototype.
9584 * config/msp430/msp430.c (msp430_option_override): Allow the lower
9585 code/data region to be selected in the small memory model.
9586 (msp430_section_attr): Don't warn if the "section" and "lower"
9587 attributes are used together.
9588 (msp430_handle_generic_attribute): Likewise.
9589 (msp430_var_in_low_mem): New function.
9590 (TARGET_ENCODE_SECTION_INFO): Define.
9591 (msp430_encode_section_info): New function.
9592 (gen_prefix): Return early in the small memory model.
9593 Require TARGET_USE_LOWER_REGION_PREFIX to be set before adding the
9594 ".lower" prefix if -m{code,data}-region=lower have been passed.
9595 (msp430_output_aligned_decl_common): Emit common symbols when
9596 -mdata-region=lower is passed unless TARGET_USE_LOWER_REGION_PREFIX is
9597 set.
9598 (TARGET_ASM_FILE_END): Define.
9599 (msp430_file_end): New function.
9600 (msp430_do_not_relax_short_jumps): Allow relaxation when
9601 function will be in the lower region.
9602 (msp430_op_not_in_high_mem): New function.
9603 (msp430_print_operand): Check "msp430_op_not_in_high_mem" for
9604 the 'X' operand selector.
9605 Clarify comment for 'x' operand selector.
9606 * config/msp430/msp430.h (LINK_SPEC): Propagate
9607 -m{code,data}-region to the linker via spec function
9608 msp430_propagate_region_opt.
9609 (msp430_propagate_region_opt): New prototype.
9610 (EXTRA_SPEC_FUNCTIONS): Add msp430_propagate_region_opt.
9611 (SYMBOL_FLAG_LOW_MEM): Define.
9612 * config/msp430/msp430.md (addsipsi3): Add missing "%X" operand
9613 selector.
9614 (zero_extendqihi2): Fix operand number used by "%X" selector.
9615 (zero_extendqisi2): Likewise.
9616 (zero_extendhisi2): Likewise.
9617 (movqi): Use "Yx" constraint in place of "%X" operand selector.
9618 (movhi): Likewise.
9619 (addqi3): Likewise.
9620 (addhi3): Likewise.
9621 (addsi3): Likewise.
9622 (addhi3_cy): Likewise.
9623 (addchi4_cy): Likewise.
9624 (subqi3): Likewise.
9625 (subhi3): Likewise.
9626 (subsi3): Likewise.
9627 (bic<mode>3): Likewise.
9628 (and<mode>3): Likewise.
9629 (ior<mode>3): Likewise.
9630 (xor<mode>3): Likewise.
9631 (slli_1): Add missing "%X" operand selector.
9632 (slll_1): Likewise.
9633 (slll_2): Likewise.
9634 (srai_1): Likewise.
9635 (sral_1): Likewise.
9636 (sral_2): Likewise.
9637 (srli_1): Likewise.
9638 (srll_1): Likewise.
9639 (cbranchqi4_real): Use "Yx" constraint in place of "%X" operand
9640 selector.
9641 (cbranchhi4_real): Likewise.
9642 (cbranchqi4_reversed): Likewise.
9643 (cbranchhi4_reversed): Likewise.
9644 (*bitbranch<mode>4): Likewise.
9645 (*bitbranch<mode>4_z): Remove unnecessary "%x" operand selector.
9646 * config/msp430/msp430.opt (mcode-region=): Set default to
9647 MSP430_REGION_LOWER. Improve docstring.
9648 (mdata-region=): Likewise.
9649 (muse-lower-region-prefix): New option.
9650 * config/msp430/t-msp430 (MULTILIB_OPTIONS): Add
9651 mdata-region=none multilib.
9652 (MULTILIB_MATCHES): Set mdata-region={upper,either} to match
9653 mdata-region=none multilib.
9654 MULTILIB_EXCEPTIONS: Remove.
9655 MULTILIB_REQUIRED: Define.
9656 * configure: Regenerate.
9657 * configure.ac: Define HAVE_AS_GNU_ATTRIBUTE and
9658 HAVE_AS_MSPABI_ATTRIBUTE if GAS version >= 2.33.50.
9659 * doc/extend.texi: Clarify comment for {upper,lower,either}
9660 function attributes.
9661 Add separate description for "lower" variable attribute.
9662
9663 2019-10-07 Ilya Leoshkevich <iii@linux.ibm.com>
9664
9665 PR target/77918
9666 * optabs-tree.c (vcond_icode_p): New function.
9667 (vcond_eq_icode_p): Likewise.
9668 (expand_vec_cond_expr_p): Use vcond_icode_p and
9669 vcond_eq_icode_p.
9670 * optabs.c (can_vcond_compare_p): New function.
9671 * optabs.h (can_vcond_compare_p): Likewise.
9672
9673 2019-10-07 Ilya Leoshkevich <iii@linux.ibm.com>
9674
9675 PR target/77918
9676 * gimple-expr.c (gimple_cond_get_ops_from_tree): Assert that the
9677 caller passes a non-trapping condition.
9678 (is_gimple_condexpr): Allow trapping conditions.
9679 (is_gimple_condexpr_1): New helper function.
9680 (is_gimple_condexpr_for_cond): New function, acts like old
9681 is_gimple_condexpr.
9682 * gimple-expr.h (is_gimple_condexpr_for_cond): New function.
9683 * gimple.c (gimple_could_trap_p_1): Handle COND_EXPR and
9684 VEC_COND_EXPR. Fix an issue with statements like i = (fp < 1.).
9685 * gimplify.c (gimplify_cond_expr): Use
9686 is_gimple_condexpr_for_cond.
9687 (gimplify_expr): Allow is_gimple_condexpr_for_cond.
9688 * tree-eh.c (operation_could_trap_p): Assert on COND_EXPR and
9689 VEC_COND_EXPR.
9690 (tree_could_trap_p): Handle COND_EXPR and VEC_COND_EXPR.
9691 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Use
9692 is_gimple_condexpr_for_cond, remove pointless tmp check
9693 (forward_propagate_into_cond): Remove pointless tmp check.
9694
9695 2019-10-07 Vladislav Ivanishin <vlad@ispras.ru>
9696
9697 * gimple-iterator.h (gsi_next_nonvirtual_phi): Change the semantics to
9698 match that of other gsi_next_* functions. Adjust the comment.
9699 (gsi_start_nonvirtual_phis): New function.
9700 * ipa-icf.c (sem_function::compare_phi_node): Update uses of
9701 gsi_next_nonvirtual_phi accordingly. (No functional change.)
9702
9703 2019-10-07 Vladislav Ivanishin <vlad@ispras.ru>
9704
9705 * doc/invoke.texi (-Wuninitialized): Don't mention the clobbered by
9706 setjmp situation here. Fix a verb's ending: "the exact variables or
9707 elements for which there are warnings depends" -> "... depend".
9708
9709 2019-10-07 Aldy Hernandez <aldyh@redhat.com>
9710
9711 * ipa-prop.c (ipa_vr::nonzero_p): Add TYPE_UNSIGNED check.
9712
9713 2019-10-07 Aldy Hernandez <aldyh@redhat.com>
9714
9715 * ipa-prop.c (ipa_vr::nonzero_p): New.
9716 (ipcp_update_vr): Use nonzero_p instead of open-coding check for
9717 non-zero range.
9718 * ipa-prop.h (class ipa_vr): Add nonzero_p.
9719 * tree-vrp.c (range_has_numeric_bounds_p): New.
9720 (range_int_cst_p): Use range_has_numeric_bounds_p.
9721 (get_range_op_handler): New.
9722 (supported_types_p): New.
9723 (defined_ranges_p): New.
9724 (drop_undefines_to_varying): New.
9725 (range_fold_binary_symbolics_p): New.
9726 (range_fold_unary_symbolics_p): New.
9727 (range_fold_unary_expr): Extract out into above functions.
9728 (range_fold_binary_expr): Same.
9729 (value_range_base::normalize_addresses): New.
9730 (value_range_base::normalize_symbolics): Normalize addresses.
9731 * tree-vrp.h (class value_range_base): Add normalize_addresses.
9732
9733 2019-10-07 Aldy Hernandez <aldyh@redhat.com>
9734
9735 * tree-vrp.c (value_range_base::singleton_p): Use
9736 value_range_base::num_pairs instead of vrp_val_is* to check
9737 if a range has one sub-range.
9738
9739 2019-10-07 Richard Sandiford <richard.sandiford@arm.com>
9740
9741 * ira-lives.c (check_and_make_def_conflict): Handle cases in which
9742 DEF is not a true earlyclobber but is tied to a specific input
9743 operand, and so is effectively earlyclobber wrt inputs that have
9744 different values.
9745 (make_early_clobber_and_input_conflicts): Pass this case to the above.
9746
9747 2019-10-07 Richard Sandiford <richard.sandiford@arm.com>
9748
9749 * machmode.h (opt_mode): Mark constructors with CONSTEXPR.
9750 (pod_mode): Mark operators likewise.
9751 (scalar_int_mode): Mark non-default constructors and
9752 operators with CONSTEXPR.
9753 (scalar_float_mode, scalar_mode, complex_mode): Likewise.
9754 (fixed_size_mode): Likewise.
9755
9756 2019-10-07 Richard Sandiford <richard.sandiford@arm.com>
9757
9758 PR target/91994
9759 * config/i386/sse.md (avx_vzeroupper): Turn into a define_expand
9760 and wrap the unspec_volatile in a parallel.
9761 (*avx_vzeroupper): New define_insn. Use a match_parallel around
9762 the unspec_volatile.
9763 * config/i386/predicates.md (vzeroupper_pattern): Expect the
9764 unspec_volatile to be wrapped in a parallel.
9765 * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper)
9766 (ix86_add_reg_usage_to_vzerouppers): New functions.
9767 (rest_of_handle_insert_vzeroupper): Use them to add register
9768 usage information to the vzeroupper instructions.
9769
9770 2019-10-07 Richard Biener <rguenther@suse.de>
9771
9772 PR tree-optimization/91975
9773 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Consistently
9774 handle invariants.
9775
9776 2019-10-06 Richard Sandiford <richard.sandiford@arm.com>
9777
9778 * var-tracking.c (dataflow_set_clear_at_call): Hoist temporary
9779 function result outside of EXECUTE_IF_SET_IN_HARD_REG_SET.
9780
9781 2019-10-06 Iain Sandoe <iain@sandoe.co.uk>
9782
9783 * config/darwin.c (darwin_override_options): Adjust objective-c
9784 ABI version error messages to avoid punctuation and contracted
9785 negations.
9786
9787 2019-10-05 Jan Hubicka <hubicka@ucw.cz>
9788
9789 * ipa-inline.c: Fix type; compute size rather than self_size
9790 for size of caller function.
9791
9792 2019-10-05 Iain Sandoe <iain@sandoe.co.uk>
9793
9794 PR target/59888
9795 * config/darwin.c (darwin_rodata_section): Add relocation flag,
9796 choose const_data section for constants with relocations.
9797 (machopic_select_section): Pass relocation flag to
9798 darwin_rodata_section ().
9799
9800 2019-10-05 Jakub Jelinek <jakub@redhat.com>
9801
9802 PR tree-optimization/91734
9803 * generic-match-head.c: Include fold-const-call.h.
9804 * match.pd (sqrt(x) cmp c): Check the boundary value and
9805 in case inexact computation of c*c affects comparison of the boundary,
9806 turn LT_EXPR into LE_EXPR, GE_EXPR into GT_EXPR, LE_EXPR into LT_EXPR
9807 or GT_EXPR into GE_EXPR. Punt for sqrt comparisons against NaN and
9808 for -frounding-math. For c2, try the next smaller or larger floating
9809 point constant depending on comparison code and if it has the same
9810 sqrt as c2, use it instead of c2.
9811
9812 2019-10-04 Martin Sebor <msebor@redhat.com>
9813
9814 PR middle-end/91977
9815 * tree-ssa-strlen.c (count_nonzero_bytes): Handle assignments with
9816 MEM_REF right operand. Avoid failing for MEM_REF assignments from
9817 uninitialized objects.
9818
9819 2019-10-04 Martin Sebor <msebor@redhat.com>
9820
9821 * builtins.c (compute_objsize): Add an argument.
9822 * tree-object-size.c (addr_object_size): Same.
9823 (compute_builtin_object_size): Same.
9824 * tree-object-size.h (compute_builtin_object): Same.
9825
9826 2019-10-04 Jan Hubicka <hubicka@ucw.cz>
9827
9828 * ipa-inline.c (inline_insns_single, inline_insns_auto): Fix typo.
9829
9830 2019-10-04 Rafael Tsuha <rafael.tsuha@usp.br>
9831
9832 * match.pd (sinh (x) / cosh (x)): New simplification rule.
9833
9834 2019-10-04 Martin Jambor <mjambor@suse.cz>
9835
9836 * tree-ssa-forwprop.c (simplify_builtin_call): Set gimple call
9837 fntype when switching to calling memcpy instead of memset.
9838
9839 2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
9840
9841 * hash-table.h (hash_table::empty_slow): Don't assign
9842 size_t values to int variables.
9843
9844 2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
9845
9846 * expr.c (convert_mode_scalar): Remove shadowing local var.
9847 (emit_block_move): Rename local vars.
9848 (block_move_libcall_safe_for_call_parm): Remove shadowing local var.
9849 (emit_push_insn): Rename local vars.
9850 (expand_assignment): Fix wrong mode in assign_stack_temp. Remove
9851 shadowing local vars.
9852 (store_constructor): Remove shadowing local vars. Rename local var.
9853 (store_field, expand_cond_expr_using_cmove,
9854 expand_expr_real_2): Remove shadowing local vars.
9855 (expand_expr_real_1,
9856 do_store_flag): Remove shadowing local vars. Rename local vars.
9857
9858 2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
9859
9860 * cgraph.h (FOR_EACH_ALIAS): Avoid shadowing the loop variable.
9861
9862 2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
9863
9864 * genmatch.c (commutate): Rename local var.
9865 (lower_cond): Reuse local var.
9866 (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1,
9867 dt_operand::gen, dt_operand::gen_gimple_expr,
9868 dt_simplify::gen): Add a param. Rename generated vars.
9869 (decision_tree::insert_operand,
9870 (capture_info::walk_match, capture_info::walk_result,
9871 capture_info::walk_c_expr): Rename local vars.
9872 (expr::gen_transform): Rename generated vars.
9873 Use snprintf. Rename local vars.
9874 (capture::gen_transform, dt_operand::get_name,
9875 dt_operand::gen_opname): Rename generated vars.
9876 (write_predicate): Adjust call to gen_kids.
9877 (parser::get_internal_capture_id): Rename generated vars.
9878 (parser::parse_expr): Rename local vars.
9879 (parser::parse_if): Remove local var.
9880 (parser::parse_pattern, add_operator): Rename local vars.
9881
9882 2019-10-04 Joseph Myers <joseph@codesourcery.com>
9883
9884 * builtins.def (DEF_C2X_BUILTIN): New macro.
9885 (exp10, exp10f, exp10l, fabsd32, fabsd64, fabsd128, nand32)
9886 (nand64, nand128, roundeven, roundevenf, roundevenl, strdup)
9887 (strndup): Use DEF_C2X_BUILTIN.
9888 * coretypes.h (enum function_class): Add function_c2x_misc.
9889
9890 2019-10-04 Maya Rashish <coypu@sdf.org>
9891
9892 * ira-color.c (update_costs_from_allocno): Call
9893 ira_init_register_move_cost_if_necessary.
9894
9895 2019-10-04 Jeff Law <law@redhat.com>
9896
9897 * config/h8300/h8300.md (cpymemsi): Disable.
9898 (movmd, movmd_internal_<mode>, movstr, movsd):
9899 (movstr, movsd, stpcpy_internal_<mode>: Likewise.
9900 (movmd splitter, movsd splitter): Likewise.
9901
9902 * range-op.cc (range_tests): Avoid two tests when ints and
9903 shorts are the same size.
9904
9905 2019-10-04 Richard Biener <rguenther@suse.de>
9906
9907 PR lto/91968
9908 * tree.c (find_decls_types_r): Do not remove LABEL_DECLs from
9909 BLOCK_VARS.
9910
9911 2019-10-04 Richard Biener <rguenther@suse.de>
9912
9913 PR tree-optimization/91982
9914 * tree-vect-loop.c (vectorizable_live_operation): Also guard
9915 against EXTRACT_LAST_REDUCTION.
9916 * tree-vect-stmts.c (vect_transform_stmt): Likewise.
9917
9918 2019-10-04 Aldy Hernandez <aldyh@redhat.com>
9919
9920 * range-op.o (value_range_from_overflowed_bounds): Rename from
9921 adjust_overflow_bound.
9922 (value_range_with_overflow): Rename from
9923 create_range_with_overflow.
9924 (create_possibly_reversed_range): Adjusted for above renames.
9925 (operator_*::wi_fold): Same.
9926 (cross_product_operator::wi_cross_productor): Same.
9927
9928 2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
9929
9930 * doc/invoke.texi (-Wshadow=global, -Wshadow=local,
9931 -Wshadow=compatible-local): Fix description.
9932 Add an example where -Wshadow=compatible-local does not
9933 warn.
9934
9935 2019-10-03 John David Anglin <danglin@gcc.gnu.org>
9936
9937 * config/pa/pa.h (MAX_PCREL17F_OFFSET): Adjust.
9938
9939 * config/pa/pa.c (pa_output_call): Remove 64-bit sibcall sequence.
9940 (pa_attr_length_call): Adjust length for 64-bit plabel sequence.
9941
9942 2019-10-03 Aaron Sawdey <acsawdey@linux.ibm.com>
9943
9944 * expr.c (emit_block_move_hints): Slightly cleaner fix to
9945 can_move_by_pieces issue.
9946
9947 2019-10-03 Iain Sandoe <iain@sandoe.co.uk>
9948
9949 PR target/87243
9950 * config/darwin-driver.c (maybe_get_sysroot_from_sdkroot): New.
9951 (darwin_driver_init): Use the sysroot provided by SDKROOT when that
9952 is available and the user has not set one on the command line.
9953
9954 2019-10-03 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
9955
9956 PR target/91769
9957 * config/mips/mips.c (mips_split_move): Use reg_overlap_mentioned_p
9958 instead of REGNO equality check on addr.reg.
9959
9960 2019-10-03 Jan Hubicka <hubicka@ucw.cz>
9961
9962 * params.def (PARAM_INLINE_HEURISTICS_HINT_PERCENT,
9963 PARAM_INLINE_HEURISTICS_HINT_PERCENT_O2): New.
9964 * doc/invoke.texi (inline-heuristics-hint-percent,
9965 inline-heuristics-hint-percent-O2): Document.
9966 * tree-inline.c (inline_insns_single, inline_insns_auto): Add new
9967 hint attribute.
9968 (can_inline_edge_by_limits_p): Use it.
9969
9970 2019-10-03 Richard Sandiford <richard.sandiford@arm.com>
9971
9972 * config/arm/arm.c (arm_print_value): Use real_to_decimal
9973 to print CONST_DOUBLEs.
9974
9975 2019-10-03 Andrea Corallo <andrea.corallo@arm.com>
9976
9977 * ipa-cp.c (ipa_cp_c_finalize): Release ipcp_transformation_sum.
9978 * ipa-prop.c (ipcp_free_transformation_sum): New function.
9979 * ipa-prop.h (ipcp_free_transformation_sum): Add declaration.
9980
9981 2019-10-03 Aldy Hernandez <aldyh@redhat.com>
9982
9983 * Makefile.in (OBJS): Add range.o and range-op.o.
9984 Remove wide-int-range.o.
9985 * function-tests.c (test_ranges): New.
9986 (function_tests_c_tests): Call test_ranges.
9987 * ipa-cp.c (ipa_vr_operation_and_type_effects): Call
9988 range_fold_unary_expr instead of extract_range_from_unary_expr.
9989 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Same.
9990 * range-op.cc: New file.
9991 * range-op.h: New file.
9992 * range.cc: New file.
9993 * range.h: New file.
9994 * selftest.h (range_tests): New prototype.
9995 * ssa.h: Include range.h.
9996 * tree-vrp.c (value_range_base::value_range_base): New
9997 constructors.
9998 (value_range_base::singleton_p): Do not call
9999 ranges_from_anti_range until sure we will need to.
10000 (value_range_base::type): Rename gcc_assert to
10001 gcc_checking_assert.
10002 (vrp_val_is_max): New argument.
10003 (vrp_val_is_min): Same.
10004 (wide_int_range_set_zero_nonzero_bits): Move from
10005 wide-int-range.cc.
10006 (extract_range_into_wide_ints): Remove.
10007 (extract_range_from_multiplicative_op): Remove.
10008 (extract_range_from_pointer_plus_expr): Abstract POINTER_PLUS code
10009 from extract_range_from_binary_expr.
10010 (extract_range_from_plus_minus_expr): Abstract PLUS/MINUS code
10011 from extract_range_from_binary_expr.
10012 (extract_range_from_binary_expr): Remove.
10013 (normalize_for_range_ops): New.
10014 (range_fold_binary_expr): New.
10015 (range_fold_unary_expr): New.
10016 (value_range_base::num_pairs): New.
10017 (value_range_base::lower_bound): New.
10018 (value_range_base::upper_bound): New.
10019 (value_range_base::upper_bound): New.
10020 (value_range_base::contains_p): New.
10021 (value_range_base::invert): New.
10022 (value_range_base::union_): New.
10023 (value_range_base::intersect): New.
10024 (range_compatible_p): New.
10025 (value_range_base::operator==): New.
10026 (determine_value_range_1): Call range_fold_*expr instead of
10027 extract_range_from_*expr.
10028 * tree-vrp.h (class value_range_base): Add new constructors.
10029 Add methods for union_, intersect, operator==, contains_p,
10030 num_pairs, lower_bound, upper_bound, invert.
10031 (vrp_val_is_min): Add handle_pointers argument.
10032 (vrp_val_is_max): Same.
10033 (extract_range_from_unary_expr): Remove.
10034 (extract_range_from_binary_expr): Remove.
10035 (range_fold_unary_expr): New.
10036 (range_fold_binary_expr): New.
10037 * vr-values.c (vr_values::extract_range_from_binary_expr): Call
10038 range_fold_binary_expr instead of extract_range_from_binary_expr.
10039 (vr_values::extract_range_basic): Same.
10040 (vr_values::extract_range_from_unary_expr): Call
10041 range_fold_unary_expr instead of extract_range_from_unary_expr.
10042 * wide-int-range.cc: Remove.
10043 * wide-int-range.h: Remove.
10044
10045 2019-10-02 Michael Meissner <meissner@linux.ibm.com>
10046
10047 * config/rs6000/rs6000.c (mem_operand_gpr): Use
10048 SIGNED_16BIT_OFFSET_EXTRA_P macro.
10049 (mem_operand_ds_form): Use SIGNED_16BIT_OFFSET_EXTRA_P macro.
10050 (rs6000_mode_dependent_address): Use SIGNED_16BIT_OFFSET_EXTRA_P
10051 macro.
10052
10053 2019-10-02 Joseph Myers <joseph@codesourcery.com>
10054
10055 * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Change
10056 condition on WIDTH macros to [__STDC_WANT_IEC_60559_BFP_EXT__ ||
10057 (__STDC_VERSION__ && __STDC_VERSION__ > 201710L)].
10058 * glimits.h: Likewise.
10059
10060 2019-10-03 Jakub Jelinek <jakub@redhat.com>
10061
10062 PR rtl-optimization/91976
10063 * expr.c (emit_block_move_hints): Don't call can_move_by_pieces if
10064 size is not CONST_INT_P, set pieces_ok to false in that case. Simplify
10065 CONST_INT_P (size) && pieces_ok to pieces_ok. Formatting fix.
10066
10067 2019-10-02 Martin Sebor <msebor@redhat.com>
10068
10069 PR tree-optimization/80936
10070 * builtins.def (bcmp, bcopy, bzero): Declare nonnull.
10071
10072 2019-10-02 Richard Sandiford <richard.sandiford@arm.com>
10073
10074 * cgraph.c (cgraph_node::rtl_info): Use SET_HARD_REG_SET
10075 instead of reg_class_contents[ALL_REGS].
10076
10077 2019-09-30 Jason Merrill <jason@redhat.com>
10078
10079 Add some hash_map_safe_* functions like vec_safe_*.
10080 * hash-map.h (default_hash_map_size): New variable.
10081 (create_ggc): Use it as default argument.
10082 (hash_map_maybe_create, hash_map_safe_get)
10083 (hash_map_safe_get_or_insert, hash_map_safe_put): New fns.
10084
10085 2019-10-02 Jan Hubicka <hubicka@ucw.cz>
10086
10087 * cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT,
10088 MAX_INLINE_INSNS_AUTO_O2_LIMIT): New.
10089 * ipa-inline.c (inline_insns_single, inline_insns_auto): New functions.
10090 (can_inline_edge_by_limits_p): Use it.
10091 (big_speedup_p): Use PARAM_INLINE_MIN_SPEEDUP_O2.
10092 (want_inline_small_function_p): Use O2 bounds.
10093 (edge_badness): LIkewise.
10094 * opts.c (default_options): Add OPT_finline_functions.
10095 * params.def (PARAM_INLINE_MIN_SPEEDUP_O2,
10096 PARAM_MAX_INLINE_INSNS_SINGLE_O2, PARAM_MAX_INLINE_INSNS_AUTO_O2):
10097 New parameters.
10098 * doc/invoke.texi (-finline-functions): Update documentation.
10099 (max-inline-insns-single-O2, max-inline-insns-auto-O2,
10100 inline-min-speedup-O2): Document.
10101 (early-inlining-insns-O2): Simplify docs.
10102
10103 2019-10-02 Alexander Monakov <amonakov@ispras.ru>
10104
10105 PR rtl-optimization/87047
10106 * ifcvt.c (average_cost): New static function. Use it...
10107 (noce_process_if_block): ... here.
10108
10109 2019-10-02 Aaron Sawdey <acsawdey@linux.ibm.com>
10110
10111 * config/rs6000/rs6000-protos.h (expand_block_move): Change prototype.
10112 * config/rs6000/rs6000-string.c (expand_block_move): Add
10113 might_overlap parm.
10114 * config/rs6000/rs6000.md (movmemsi): Add new pattern.
10115 (cpymemsi): Add might_overlap parm to expand_block_move() call.
10116
10117 2019-10-02 Aaron Sawdey <acsawdey@linux.ibm.com>
10118
10119 * builtins.c (expand_builtin_memory_copy_args): Add might_overlap parm.
10120 (expand_builtin_memcpy): Use might_overlap parm.
10121 (expand_builtin_mempcpy_args): Use might_overlap parm.
10122 (expand_builtin_memmove): Call expand_builtin_memory_copy_args.
10123 (expand_builtin_memory_copy_args): Add might_overlap parm.
10124 * expr.c (emit_block_move_via_cpymem): Rename to
10125 emit_block_move_via_pattern, add might_overlap parm, use cpymem
10126 or movmem optab as appropriate.
10127 (emit_block_move_hints): Add might_overlap parm, do the right
10128 thing for might_overlap==true.
10129 * expr.h (emit_block_move_hints): Update prototype.
10130
10131 2019-10-02 Eric Botcazou <ebotcazou@adacore.com>
10132
10133 * tree-eh.h (unsplit_eh_edges): Declare.
10134 * tree-eh.c (maybe_remove_unreachable_handlers): Detect more cases.
10135 (unsplit_eh_edges): New function wrapping unsplit_all_eh.
10136 * gimple-ssa-store-merging.c: Include cfganal.h cfgcleanup.h except.h.
10137 (struct store_immediate_info): Add lp_nr field.
10138 (store_immediate_info::store_immediate_info): Add NR2 parameter and
10139 initialize lp_nr with it.
10140 (struct merged_store_group): Add lp_nr and only_constants fields.
10141 (merged_store_group::merged_store_group): Initialize them.
10142 (merged_store_group::can_be_merged_into): Deal with them.
10143 (pass_store_merging): Rename terminate_and_release_chain into
10144 terminate_and_process_chain.
10145 (pass_store_merging::terminate_and_process_all_chains): Adjust to above
10146 renaming and remove useless assertions.
10147 (pass_store_merging::terminate_all_aliasing_chains): Small tweak.
10148 (stmts_may_clobber_ref_p): Be prepared for different basic blocks.
10149 (imm_store_chain_info::coalesce_immediate_stores): Use only_constants
10150 instead of always recomputing it and compare lp_nr.
10151 (imm_store_chain_info::output_merged_store): If the group is in an
10152 active EH region, register new stores if they can throw. Moreover,
10153 if the insertion has created new basic blocks, adjust the PHI nodes
10154 of the post landing pad.
10155 (imm_store_chain_info::output_merged_stores): If the original stores
10156 are in an active EH region, deregister them.
10157 (lhs_valid_for_store_merging_p): Prettify.
10158 (adjust_bit_pos): New function extracted from...
10159 (mem_valid_for_store_merging): ...here. Use it for the base address
10160 and also for the offset if it is the addition of a constant.
10161 (lp_nr_for_store): New function.
10162 (pass_store_merging::process_store): Change return type to bool.
10163 Call lp_nr_for_store to initialize the store info. Propagate the
10164 return status of various called functions to the return value.
10165 (store_valid_for_store_merging_p): New predicate.
10166 (enum basic_block_status): New enumeration.
10167 (get_status_for_store_merging): New function.
10168 (pass_store_merging::execute): If the function can throw and catch
10169 non-call exceptions, unsplit the EH edges on entry and clean up the
10170 CFG on exit if something changed. Call get_status_for_store_merging
10171 for every basic block and keep the chains open across basic blocks
10172 when possible. Terminate and process open chains at the end, if any.
10173
10174 2019-10-02 Richard Sandiford <richard.sandiford@arm.com>
10175
10176 * reginfo.c (globalize_reg): Fix shadowed variable in
10177 function_abis walk.
10178
10179 2019-10-02 Martin Jambor <mjambor@suse.cz>
10180
10181 * cgraph.c (symbol_table::create_edge): New parameter cloning_p,
10182 do not compute some stuff when set.
10183 (cgraph_node::create_edge): Likewise.
10184 (cgraph_node::create_indirect_edge): Renamed last parameter to
10185 coning_p and flipped its meaning, don't even calculate
10186 inline_failed when set.
10187 * cgraph.h (cgraph_node::create_edge): Add new parameter.
10188 (symbol_table::::create_edge): Likewise.
10189 (cgraph_node::create_indirect_edge): Rename last parameter, flip
10190 the default value.
10191 * cgraphclones.c (cgraph_edge::clone): Pass true cloning_p to all
10192 call graph edge creating functions.
10193
10194 2019-10-01 Jan Hubicka <hubicka@ucw.cz>
10195
10196 PR c++/91222
10197 * ipa-devirt.c (warn_types_mismatch): Fix conditional on anonymous
10198 namespace types.
10199
10200 2019-10-02 Shahab Vahedi <shahab@synopsys.com>
10201
10202 * config/arc/arc.h (ASM_SPEC): Pass -mcode-density.
10203
10204 2019-10-02 Richard Biener <rguenther@suse.de>
10205
10206 * tree-vectorizer.h (vect_transform_reduction): Declare.
10207 * tree-vect-stmts.c (vect_transform_stmt): Use it.
10208 * tree-vect-loop.c (vectorizable_reduction): Split out reduction
10209 stmt transform to ...
10210 (vect_transform_reduction): ... this.
10211
10212 2019-10-02 Tobias Burnus <tobias@codesourcery.com>
10213
10214 * omp-low.c (lower_omp_target): Dereference optional argument
10215 to work with the right pointer.
10216
10217 2019-10-02 Kwok Cheung Yeung <kcy@codesourcery.com>
10218
10219 * langhooks-def.h (LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT): Default to
10220 false.
10221 (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT.
10222 * langhooks.h (omp_is_optional_argument): New hook.
10223 * omp-general.c (omp_is_optional_argument): New.
10224 * omp-general.h (omp_is_optional_argument): New declaration.
10225 * omp-low.c (lower_omp_target): Create temporary for received value
10226 and take the address for new_var if the original variable was a
10227 DECL_BY_REFERENCE. Use size of referenced object when a
10228 pass-by-reference optional argument used as argument to firstprivate.
10229
10230 2019-10-02 Jakub Jelinek <jakub@redhat.com>
10231
10232 PR tree-optimization/91940
10233 * tree-vect-patterns.c: Include tree-vector-builder.h and
10234 vec-perm-indices.h.
10235 (vect_recog_rotate_pattern): Also handle __builtin_bswap16, either by
10236 unpromoting the argument back to uint16_t, or by converting into a
10237 rotate, or into shifts plus ior.
10238
10239 2019-10-02 Richard Biener <rguenther@suse.de>
10240
10241 * tree-vectorizer.h (stmt_vec_info_type::cycle_phi_info_type):
10242 New.
10243 (vect_transform_cycle_phi): Declare.
10244 * tree-vect-stmts.c (vect_transform_stmt): Call
10245 vect_transform_cycle_phi.
10246 * tree-vect-loop.c (vectorizable_reduction): Split out
10247 PHI transformation stage to ...
10248 (vect_transform_cycle_phi): ... here.
10249
10250 2019-10-02 Richard Sandiford <richard.sandiford@arm.com>
10251
10252 PR middle-end/91957
10253 * lra-lives.c (make_hard_regno_dead): Don't record conflicts for
10254 eliminable registers.
10255 (make_hard_regno_live): Likewise, and don't make them live.
10256
10257 2019-10-01 David Malcolm <dmalcolm@redhat.com>
10258
10259 * diagnostic-show-locus.c (layout::print_gap_in_line_numbering):
10260 Call pp_emit_prefix.
10261 (layout::print_source_line): Likewise.
10262 (layout::start_annotation_line): Likewise.
10263 (diagnostic_show_locus): Remove call to temporarily clear the
10264 prefix.
10265 (selftest::test_one_liner_fixit_remove): Add test coverage for the
10266 interaction of pp_set_prefix with rulers and fix-it hints.
10267 * diagnostic.c (default_diagnostic_finalizer): Temporarily clear
10268 prefix when calling diagnostic_show_locus, rather than destroying
10269 it afterwards.
10270 (print_parseable_fixits): Temporarily clear prefix.
10271 * pretty-print.c (pp_format): Save and restore line_length, rather
10272 than assuming it is zero.
10273 (pp_output_formatted_text): Remove assertion that line_length is
10274 zero.
10275
10276 2019-10-01 Jan Hubicka <hubicka@ucw.cz>
10277
10278 * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p):
10279 Rename to ...
10280 (nonoverlapping_refs_since_match_p): ... this; handle also
10281 ARRAY_REFs.
10282 (alias_stats): Update stats.
10283 (dump_alias_stats): Likewise.
10284 (cheap_array_ref_low_bound): New function.
10285 (aliasing_matching_component_refs_p): Add partial_overlap
10286 argument;
10287 pass it to nonoverlapping_refs_since_match_p.
10288 (aliasing_component_refs_walk): Update call of
10289 aliasing_matching_component_refs_p
10290 (nonoverlapping_array_refs_p): New function.
10291 (decl_refs_may_alias_p, indirect_ref_may_alias_decl_p,
10292 indirect_refs_may_alias_p): Update calls of
10293 nonoverlapping_refs_since_match_p.
10294
10295 2019-10-01 Maya Rashish <coypu@sdf.org>
10296
10297 PR target/85401
10298 * ira-color.c (allocno_copy_cost_saving): Call
10299 ira_init_register_move_cost_if_necessary.
10300
10301 2019-10-01 Maciej W. Rozycki <macro@wdc.com>
10302
10303 * Makefile.in (gnat_install_lib): New variable.
10304 * configure.ac: Substitute it.
10305 * configure: Regenerate.
10306
10307 2019-10-01 Jan Hubicka <hubicka@ucw.cz>
10308
10309 PR lto/91222
10310 * ipa-devirt.c (warn_types_mismatch): Do not ICE when anonymous type
10311 is matched with non-C++ type
10312
10313 2019-10-01 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10314
10315 * tree-if-conv.c (tree_if_conversion): Move call to ifcvt_local_dce
10316 after local CSE.
10317
10318 2019-10-01 Jan Hubicka <hubicka@ucw.cz>
10319
10320 * doc/invoke.texi (early-inlining-insns-O2): Document.
10321 (early-inlining-insns): Update.
10322 * params.def (early-inlining-insns-O2): New bound.
10323 (early-inlining-insns): Update docs.
10324 * ipa-inline.c (want_early_inline_function_p): Use new bound.
10325
10326 2019-10-01 Oleg Endo <olegendo@gcc.gnu.org>
10327
10328 PR target/88562
10329 * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Use
10330 sh_check_add_incdec_notes to preserve REG_INC notes when replacing
10331 a memory access insn.
10332
10333 2019-10-01 Bill Schmidt <wschmidt@linux.ibm.com>
10334
10335 * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Don't swap
10336 vpmsumd.
10337
10338 2019-10-01 Ilya Leoshkevich <iii@linux.ibm.com>
10339
10340 PR target/77918
10341 * config/s390/s390.c (s390_expand_vec_compare): Use
10342 gen_vec_cmpordered and gen_vec_cmpunordered.
10343 * config/s390/vector.md (vec_cmpuneq, vec_cmpltgt, vec_ordered,
10344 vec_unordered): Delete.
10345 (vec_ordered<mode>): Rename to vec_cmpordered<mode>.
10346 (vec_unordered<mode>): Rename to vec_cmpunordered<mode>.
10347 (VEC_CMP_EXPAND): New iterator for the generic dispatcher.
10348 (vec_cmp<code>): Generic dispatcher.
10349
10350 2019-10-01 Ilya Leoshkevich <iii@linux.ibm.com>
10351
10352 PR target/77918
10353 * config/s390/vector.md (V_HW): Add V1TI in order to make
10354 vcond$a$b generate vcondv1tiv1tf.
10355
10356 2019-10-01 Richard Sandiford <richard.sandiford@arm.com>
10357
10358 PR rtl-optimization/91948
10359 * ira-build.c (ira_create_allocno): Initialize
10360 ALLOCNO_CROSSED_CALLS_ABIS.
10361 * ira-color.c (allocno_reload_assign): Pass hard_regno rather
10362 than regno to ira_need_caller_save_p.
10363
10364 2019-10-01 Alexandre Oliva <oliva@adacore.com>
10365
10366 * config/i386/i386-options.c
10367 (ix86_recompute_optlev_based_flags): New, moved out of...
10368 (ix86_option_override_internal): ... this. Call it.
10369 (ix86_override_options_after_change): Call it here too.
10370
10371 PR debug/91507
10372 * dwarf2out.c (override_type_for_decl_p): New.
10373 (gen_variable_die): Use it.
10374
10375 2019-10-01 Richard Biener <rguenther@suse.de>
10376
10377 * tree-vect-loop.c (vectorizable_reduction): Move variables
10378 to where they are used.
10379
10380 2019-10-01 Segher Boessenkool <segher@kernel.crashing.org>
10381
10382 * regrename.c (hide_operands): Use pc_rtx instead of cc0_rtx.
10383 (build_def_use): Use PC instead of CC0 in a comment.
10384
10385 2019-10-01 Richard Sandiford <richard.sandiford@arm.com>
10386
10387 * rtl.def (CLOBBER_HIGH): Delete.
10388 * doc/rtl.texi (clobber_high): Remove documentation.
10389 * rtl.h (SET_DEST): Remove CLOBBER_HIGH from the list of codes.
10390 (reg_is_clobbered_by_clobber_high): Delete.
10391 (gen_hard_reg_clobber_high): Likewise.
10392 * alias.c (record_set): Remove CLOBBER_HIGH handling.
10393 * cfgexpand.c (expand_gimple_stmt): Likewise.
10394 * combine-stack-adj.c (single_set_for_csa): Likewise.
10395 * combine.c (find_single_use_1, set_nonzero_bits_and_sign_copies)
10396 (can_combine_p, is_parallel_of_n_reg_sets, try_combine)
10397 (record_dead_and_set_regs_1, reg_dead_at_p_1): Likewise.
10398 * cse.c (invalidate_reg): Remove clobber_high parameter.
10399 (invalidate): Update call accordingly.
10400 (canonicalize_insn): Remove CLOBBER_HIGH handling.
10401 (invalidate_from_clobbers, invalidate_from_sets_and_clobbers)
10402 (count_reg_usage, insn_live_p): Likewise.
10403 * cselib.h (cselib_invalidate_rtx): Remove sett argument.
10404 * cselib.c (cselib_invalidate_regno, cselib_invalidate_rtx): Likewise.
10405 (cselib_invalidate_rtx_note_stores): Update call accordingly.
10406 (cselib_expand_value_rtx_1): Remove CLOBBER_HIGH handling.
10407 (cselib_invalidate_regno, cselib_process_insn): Likewise.
10408 * dce.c (deletable_insn_p, mark_nonreg_stores_1): Likewise.
10409 (mark_nonreg_stores_2): Likewise.
10410 * df-scan.c (df_find_hard_reg_defs, df_uses_record): Likewise.
10411 (df_get_call_refs): Likewise.
10412 * dwarf2out.c (mem_loc_descriptor): Likewise.
10413 * emit-rtl.c (verify_rtx_sharing): Likewise.
10414 (copy_insn_1, copy_rtx_if_shared_1): Likewise.
10415 (hard_reg_clobbers_high, gen_hard_reg_clobber_high): Delete.
10416 * genconfig.c (walk_insn_part): Remove CLOBBER_HIGH handling.
10417 * genemit.c (gen_exp, gen_insn): Likewise.
10418 * genrecog.c (validate_pattern, remove_clobbers): Likewise.
10419 * haifa-sched.c (haifa_classify_rtx): Likewise.
10420 * ira-build.c (create_insn_allocnos): Likewise.
10421 * ira-costs.c (scan_one_insn): Likewise.
10422 * ira.c (equiv_init_movable_p, memref_referenced_p): Likewise.
10423 (rtx_moveable_p, interesting_dest_for_shprep): Likewise.
10424 * jump.c (mark_jump_label_1): Likewise.
10425 * lra-int.h (lra_insn_reg::clobber_high): Delete.
10426 * lra-eliminations.c (lra_eliminate_regs_1): Remove CLOBBER_HIGH
10427 handling.
10428 (mark_not_eliminable): Likewise.
10429 * lra-lives.c (process_bb_lives): Likewise.
10430 * lra.c (new_insn_reg): Remove clobber_high parameter.
10431 (collect_non_operand_hard_regs): Likewise. Update call to new
10432 insn_reg. Remove CLOBBER_HIGH handling.
10433 (lra_set_insn_recog_data): Remove CLOBBER_HIGH handling. Update call
10434 to collect_non_operand_hard_regs.
10435 (add_regs_to_insn_regno_info): Remove CLOBBER_HIGH handling.
10436 Update call to new_insn_reg.
10437 (lra_update_insn_regno_info): Remove CLOBBER_HIGH handling.
10438 * postreload.c (reload_cse_simplify, reload_combine_note_use)
10439 (move2add_note_store): Likewise.
10440 * print-rtl.c (print_pattern): Likewise.
10441 * recog.c (store_data_bypass_p_1, store_data_bypass_p): Likewise.
10442 (if_test_bypass_p): Likewise.
10443 * regcprop.c (kill_clobbered_value, kill_set_value): Likewise.
10444 * reginfo.c (reg_scan_mark_refs): Likewise.
10445 * reload1.c (maybe_fix_stack_asms, eliminate_regs_1): Likewise.
10446 (elimination_effects, mark_not_eliminable, scan_paradoxical_subregs)
10447 (forget_old_reloads_1): Likewise.
10448 * reorg.c (find_end_label, try_merge_delay_insns, redundant_insn)
10449 (own_thread_p, fill_simple_delay_slots, fill_slots_from_thread)
10450 (dbr_schedule): Likewise.
10451 * resource.c (update_live_status, mark_referenced_resources)
10452 (mark_set_resources): Likewise.
10453 * rtl.c (copy_rtx): Likewise.
10454 * rtlanal.c (reg_referenced_p, set_of_1, single_set_2, noop_move_p)
10455 (note_pattern_stores): Likewise.
10456 (reg_is_clobbered_by_clobber_high): Delete.
10457 * sched-deps.c (sched_analyze_reg, sched_analyze_insn): Remove
10458 CLOBBER_HIGH handling.
10459
10460 2019-10-01 Richard Sandiford <richard.sandiford@arm.com>
10461
10462 PR target/91452
10463 * config/aarch64/aarch64.h (ARM_PCS_TLSDESC): New arm_pcs.
10464 * config/aarch64/aarch64-protos.h (aarch64_tlsdesc_abi_id): Declare.
10465 * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
10466 Handle ARM_PCS_TLSDESC.
10467 (aarch64_tlsdesc_abi_id): New function.
10468 * config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use a call
10469 rtx instead of a list of clobbers and clobber_highs.
10470 (tlsdesc_small_<mode>): Update accordingly.
10471
10472 2019-10-01 Richard Sandiford <richard.sandiford@arm.com>
10473
10474 * config/aarch64/aarch64-protos.h (aarch64_expand_call): Take an
10475 extra callee_abi argument.
10476 * config/aarch64/aarch64.c (aarch64_expand_call): Likewise.
10477 Insert a CALLEE_ABI unspec into the call pattern as the second
10478 element in the PARALLEL.
10479 (aarch64_simd_call_p): Delete.
10480 (aarch64_insn_callee_abi): Get the arm_pcs of the callee from
10481 the new CALLEE_ABI element of the PARALLEL.
10482 (aarch64_init_cumulative_args): Get the arm_pcs of the callee
10483 from the function type, if given.
10484 (aarch64_function_arg_advance): Handle ARM_PCS_SIMD.
10485 (aarch64_function_arg): Likewise. Return the arm_pcs of the callee
10486 when passed the function_arg_info end marker.
10487 (aarch64_output_mi_thunk): Pass the arm_pcs of the callee as the
10488 final argument of gen_sibcall.
10489 * config/aarch64/aarch64.md (UNSPEC_CALLEE_ABI): New unspec.
10490 (call): Make operand 2 a const_int_operand and pass it to expand_call.
10491 Wrap it in an UNSPEC_CALLEE_ABI unspec for the dummy define_expand
10492 pattern.
10493 (call_value): Likewise operand 3.
10494 (sibcall): Likewise operand 2. Place the unspec before rather than
10495 after the return.
10496 (sibcall_value): Likewise operand 3.
10497 (*call_insn, *call_value_insn): Include an UNSPEC_CALLEE_ABI.
10498 (tlsgd_small_<mode>, *tlsgd_small_<mode>): Likewise.
10499 (*sibcall_insn, *sibcall_value_insn): Likewise. Remove empty
10500 constraint strings.
10501 (untyped_call): Pass const0_rtx as the callee ABI to gen_call.
10502
10503 2019-10-01 Richard Sandiford <richard.sandiford@arm.com>
10504
10505 * regs.h (HARD_REGNO_CALLER_SAVE_MODE): Update call to
10506 choose_hard_reg_mode.
10507 * config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
10508
10509 2019-10-01 Segher Boessenkool <segher@kernel.crashing.org>
10510
10511 * doc/md.texi (vec_pack_trunc_@var{m}): Fix typo.
10512 (vec_pack_sfix_trunc_@var{m}, vec_pack_ufix_trunc_@var{m}): Ditto.
10513 (vec_packs_float_@var{m}, vec_packu_float_@var{m}): Ditto.
10514
10515 2019-09-30 David Malcolm <dmalcolm@redhat.com>
10516
10517 * diagnostic-show-locus.c (line_label::line_label): Initialize
10518 m_has_vbar.
10519 (line_label::comparator): Reverse the sort order by m_state_idx,
10520 so that when the list is walked backwards the labels appear in
10521 order of insertion into the rich_location.
10522 (line_label::m_has_vbar): New field.
10523 (layout::print_any_labels): When dealing with multiple labels at
10524 the same line and column, only print vertical bars for the one
10525 with the highest label_line.
10526 (selftest::test_one_liner_labels): Update test for multiple labels
10527 to expect the labels to be in the order of insertion into the
10528 rich_location. Add a test for many such labels, where the column
10529 numbers are out-of-order relative to the insertion order.
10530
10531 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10532
10533 * config/i386/i386.h (ix86_frame::expensive_p): New field.
10534 (ix86_frame::expensive_count): Likewise.
10535 * config/i386/i386.c (ix86_compute_frame_layout): Make the choice
10536 of use_fast_prologue_epilogue robust against incidental changes
10537 in function size.
10538
10539 2019-09-30 Ilya Leoshkevich <iii@linux.ibm.com>
10540
10541 PR target/77918
10542 * config/s390/vector.md (vec_unordered<mode>): Call
10543 gen_vec_ordered<mode>.
10544
10545 2019-09-30 Yuliang Wang <yuliang.wang@arm.com>
10546
10547 * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3):
10548 New pattern for ASRD.
10549 * config/aarch64/iterators.md (UNSPEC_ASRD): New unspec.
10550 * internal-fn.def (IFN_DIV_POW2): New internal function.
10551 * optabs.def (sdiv_pow2_optab): New optab.
10552 * tree-vect-patterns.c (vect_recog_divmod_pattern):
10553 Modify pattern to support new operation.
10554 * doc/md.texi (sdiv_pow2$var{m3}): Documentation for the above.
10555 * doc/sourcebuild.texi (vect_sdiv_pow2_si):
10556 Document new target selector.
10557
10558 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10559
10560 * config/aarch64/aarch64.c (aarch64_layout_frame): Use crtl->abi
10561 to test whether we're compiling a vector PCS function and to test
10562 whether the function needs to save a particular register.
10563 Remove the vector PCS handling of df_set_regs_ever_live.
10564 (aarch64_components_for_bb): Use crtl->abi to test whether
10565 the function needs to save a particular register.
10566 (aarch64_process_components): Use crtl->abi to test whether
10567 we're compiling a vector PCS function.
10568 (aarch64_expand_prologue, aarch64_expand_epilogue): Likewise.
10569 (aarch64_epilogue_uses): Remove handling of vector PCS functions.
10570
10571 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10572
10573 * config/aarch64/aarch64-protos.h (aarch64_use_simple_return_insn_p):
10574 Delete.
10575 * config/aarch64/aarch64.c (aarch64_components_for_bb): Check
10576 whether the block calls a function that clobbers more registers
10577 than the current function is allowed to.
10578 (aarch64_use_simple_return_insn_p): Delete.
10579 * config/aarch64/aarch64.md (simple_return): Remove condition.
10580
10581 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10582
10583 * function-abi.h (function_abi_aggregator): New class.
10584 * function-abi.cc (function_abi_aggregator::caller_save_regs): New
10585 function.
10586 * ira.c (update_equiv_regs_prescan): New function. Call
10587 set_paradoxical_subreg here rather than...
10588 (update_equiv_regs): ...here.
10589 (ira): Call update_equiv_regs_prescan.
10590
10591 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10592
10593 * hard-reg-set.h (regs_invalidated_by_call): Only define if
10594 IN_TARGET_CODE.
10595 (call_used_or_fixed_regs): Likewise.
10596 (call_used_or_fixed_reg_p): Likewise.
10597 * reginfo.c (regs_invalidated_by_call): New macro.
10598
10599 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10600
10601 * shrink-wrap.c: Include function-abi.h.
10602 (requires_stack_frame_p): Use crtl->abi to test whether the
10603 current function can use a register without saving it first.
10604
10605 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10606
10607 * sel-sched-ir.h (_def::crosses_call): Replace with...
10608 (_def::crossed_call_abis): ..this new field.
10609 (def_list_add): Take a mask of ABIs instead of a crosses_call
10610 boolean.
10611 * sel-sched-ir.c (def_list_add): Likewise. Update initialization
10612 of _def accordingly.
10613 * sel-sched.c: Include function-abi.h.
10614 (hard_regs_data::regs_for_call_clobbered): Delete.
10615 (reg_rename::crosses_call): Replace with...
10616 (reg_rename::crossed_call_abis): ...this new field.
10617 (fur_static_params::crosses_call): Replace with...
10618 (fur_static_params::crossed_call_abis): ...this new field.
10619 (init_regs_for_mode): Don't initialize sel_hrd.regs_for_call_clobbered.
10620 (init_hard_regs_data): Use crtl->abi to test which registers the
10621 current function would need to save before it uses them.
10622 (mark_unavailable_hard_regs): Update handling of call-clobbered
10623 registers, using call_clobbers_in_region to find out which registers
10624 might be call-clobbered (but without taking -fipa-ra into account
10625 for now). Remove separate handling of partially call-clobbered
10626 registers.
10627 (verify_target_availability): Use crossed_call_abis instead of
10628 crosses_call.
10629 (get_spec_check_type_for_insn, find_used_regs): Likewise.
10630 (fur_orig_expr_found, fur_on_enter, fur_orig_expr_not_found): Likewise.
10631
10632 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10633
10634 * sched-deps.c (deps_analyze_insn): Use the ABI of the target
10635 function to test whether a register is fully or partly clobbered.
10636
10637 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10638
10639 * rtlanal.c: Include function-abi.h.
10640 (reg_set_p): Use insn_callee_abi to get the ABI of the called
10641 function and clobbers_reg_p to test whether the register
10642 is call-clobbered.
10643 (find_all_hard_reg_sets): When implicit is true, use insn_callee_abi
10644 to get the ABI of the called function and full_reg_clobbers to
10645 get the set of fully call-clobbered registers. Warn about the
10646 pitfalls of using this mode.
10647
10648 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10649
10650 * reload.c: Include function-abi.h.
10651 (find_equiv_reg): Use clobbers_reg_p to test whether either
10652 of the equivalent registers is clobbered by a call.
10653 * reload1.c: Include function-abi.h.
10654 (reg_reloaded_call_part_clobbered): Delete.
10655 (reload): Use crtl->abi to test which registers would need
10656 saving in the prologue before use.
10657 (find_reg): Likewise.
10658 (emit_reload_insns): Remove code for reg_reloaded_call_part_clobbered.
10659 (reload_as_needed): Likewise. Use full_and_partial_reg_clobbers
10660 instead of call_used_or_fixed_regs | reg_reloaded_call_part_clobbered.
10661
10662 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10663
10664 * regrename.h (du_head::call_clobber_mask): New field.
10665 (du_head::need_caller_save_reg): Replace with...
10666 (du_head::call_abis): ...this new field.
10667 * regrename.c: Include function-abi.h.
10668 (call_clobbered_in_chain_p): New function.
10669 (check_new_reg_p): Use crtl->abi when deciding whether a register
10670 is free for use after RA. Use call_clobbered_in_chain_p to test
10671 whether a candidate register would be clobbered by a call.
10672 (find_rename_reg): Don't add call-clobber conflicts here.
10673 (rename_chains): Check call_abis instead of need_caller_save_reg.
10674 (merge_chains): Update for changes to du_head.
10675 (build_def_use): Use insn_callee_abi to get the ABI of the call insn
10676 target. Record the ABI identifier in call_abis and the set of
10677 fully or partially clobbered registers in call_clobber_mask.
10678 Add fully-clobbered registers to hard_conflicts here rather
10679 than in find_rename_reg.
10680 * config/aarch64/cortex-a57-fma-steering.c: Include function-abi.h.
10681 (rename_single_chain): Check call_abis instead of need_caller_save_reg.
10682 * config/aarch64/falkor-tag-collision-avoidance.c: Include
10683 function-abi.h.
10684 * config/c6x/c6x.c: Likewise.
10685
10686 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10687
10688 * regcprop.c (copyprop_hardreg_forward_1): Use the recorded
10689 mode of the register when deciding whether it is no longer
10690 available after a call.
10691
10692 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10693
10694 * recog.c: Include function-abi.h.
10695 (peep2_find_free_register): Use crtl->abi when deciding whether
10696 a register is free for use after RA.
10697
10698 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10699
10700 * postreload-gcse.c: Include regs.h and function-abi.h.
10701 (record_opr_changes): Use insn_callee_abi to get the ABI of the
10702 call insn target. Conservatively assume that partially-clobbered
10703 registers are altered.
10704
10705 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10706
10707 * postreload.c (reload_combine_recognize_pattern): Use crtl->abi
10708 when deciding whether a register is free for use after RA.
10709 (reload_combine): Remove unnecessary use of fixed_reg_set.
10710 (reload_cse_move2add): Use insn_callee_abi to get the ABI of the
10711 call insn target. Use reg_mode when testing whether a register
10712 is no longer available.
10713
10714 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10715
10716 * target.def (return_call_with_max_clobbers): Delete.
10717 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): Delete.
10718 * doc/tm.texi: Regenerate.
10719 * config/aarch64/aarch64.c (aarch64_return_call_with_max_clobbers)
10720 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): Delete.
10721 * lra-int.h (lra_reg::actual_call_used_reg_set): Delete.
10722 (lra_reg::call_insn): Delete.
10723 * lra.c: Include function-abi.h.
10724 (initialize_lra_reg_info_element): Don't initialize the fields above.
10725 (lra): Use crtl->abi to test whether the current function needs to
10726 save a register in the prologue. Remove special pre-inheritance
10727 lra_create_live_ranges pass for flag_ipa_ra.
10728 * lra-assigns.c: Include function-abi.h
10729 (find_hard_regno_for_1): Use crtl->abi to test whether the current
10730 function needs to save a register in the prologue.
10731 (lra_assign): Assert that registers aren't allocated to a
10732 conflicting register, rather than checking only for overlaps
10733 with call_used_or_fixed_regs. Do this even for flag_ipa_ra,
10734 and for registers that are not live across a call.
10735 * lra-constraints.c (last_call_for_abi): New variable.
10736 (full_and_partial_call_clobbers): Likewise.
10737 (setup_next_usage_insn): Remove the register from
10738 full_and_partial_call_clobbers.
10739 (need_for_call_save_p): Use call_clobbered_in_region_p to test
10740 whether the register needs a caller save.
10741 (need_for_split_p): Use full_and_partial_reg_clobbers instead
10742 of call_used_or_fixed_regs.
10743 (inherit_in_ebb): Initialize and maintain last_call_for_abi and
10744 full_and_partial_call_clobbers.
10745 * lra-lives.c (check_pseudos_live_through_calls): Replace
10746 last_call_used_reg_set and call_insn arguments with an abi argument.
10747 Remove handling of lra_reg::call_insn. Use function_abi::mode_clobbers
10748 as the set of conflicting registers.
10749 (calls_have_same_clobbers_p): Delete.
10750 (process_bb_lives): Track the ABI of the last call instead of an
10751 insn/HARD_REG_SET pair. Update calls to
10752 check_pseudos_live_through_calls. Use eh_edge_abi to calculate
10753 the set of registers that could be clobbered by an EH edge.
10754 Include partially-clobbered as well as fully-clobbered registers.
10755 (lra_create_live_ranges_1): Don't initialize lra_reg::call_insn.
10756 * lra-remat.c: Include function-abi.h.
10757 (call_used_regs_arr_len, call_used_regs_arr): Delete.
10758 (set_bb_regs): Use insn_callee_abi to get the set of call-clobbered
10759 registers and bitmap_view to combine them into dead_regs.
10760 (call_used_input_regno_present_p): Take a function_abi argument
10761 and use it to test whether a register is call-clobbered.
10762 (calculate_gen_cands): Use insn_callee_abi to get the ABI of the
10763 call insn target. Update tje call to call_used_input_regno_present_p.
10764 (do_remat): Likewise.
10765 (lra_remat): Remove the initialization of call_used_regs_arr_len
10766 and call_used_regs_arr.
10767
10768 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10769
10770 * loop-iv.c: Include regs.h and function-abi.h.
10771 (simplify_using_initial_values): Use insn_callee_abi to get the
10772 ABI of the call insn target. Conservatively assume that
10773 partially-clobbered registers are altered.
10774
10775 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10776
10777 * function-abi.h (call_clobbers_in_region): Declare.
10778 (call_clobbered_in_region_p): New function.
10779 * function-abi.cc (call_clobbers_in_region): Likewise.
10780 * ira-int.h: Include function-abi.h.
10781 (ira_allocno::crossed_calls_abis): New field.
10782 (ALLOCNO_CROSSED_CALLS_ABIS): New macro.
10783 (ira_need_caller_save_regs): New function.
10784 (ira_need_caller_save_p): Likewise.
10785 * ira.c (setup_reg_renumber): Use ira_need_caller_save_p instead
10786 of call_used_or_fixed_regs.
10787 (do_reload): Use crtl->abi to test whether the current function
10788 needs to save a register in the prologue. Count registers that
10789 need to be saved rather than registers that don't.
10790 * ira-build.c (create_cap_allocno): Copy ALLOCNO_CROSSED_CALLS_ABIS.
10791 Remove unnecessary | from ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
10792 (propagate_allocno_info): Merge ALLOCNO_CROSSED_CALLS_ABIS too.
10793 (propagate_some_info_from_allocno): Likewise.
10794 (copy_info_to_removed_store_destinations): Likewise.
10795 (ira_flattening): Say that ALLOCNO_CROSSED_CALLS_ABIS and
10796 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS are handled conservatively.
10797 (ira_build): Use ira_need_caller_save_regs instead of
10798 call_used_or_fixed_regs.
10799 * ira-color.c (calculate_saved_nregs): Use crtl->abi to test
10800 whether the current function would need to save a register
10801 before using it.
10802 (calculate_spill_cost): Likewise.
10803 (allocno_reload_assign): Use ira_need_caller_save_regs and
10804 ira_need_caller_save_p instead of call_used_or_fixed_regs.
10805 * ira-conflicts.c (ira_build_conflicts): Use
10806 ira_need_caller_save_regs rather than call_used_or_fixed_regs
10807 as the set of call-clobbered registers. Remove the
10808 call_used_or_fixed_regs mask from the calculation of
10809 temp_hard_reg_set and mask its use instead. Remove special
10810 handling of partially-clobbered registers.
10811 * ira-costs.c (ira_tune_allocno_costs): Use ira_need_caller_save_p.
10812 * ira-lives.c (process_bb_node_lives): Use mode_clobbers to
10813 calculate the set of conflicting registers for calls that
10814 can throw. Record the ABIs of calls in ALLOCNO_CROSSED_CALLS_ABIS.
10815 Use full_and_partial_reg_clobbers rather than full_reg_clobbers
10816 for the calculation of ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
10817 Use eh_edge_abi to calculate the set of registers that could
10818 be clobbered by an EH edge. Include partially-clobbered as
10819 well as fully-clobbered registers.
10820
10821 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10822
10823 * haifa-sched.c: Include function-abi.h.
10824 (alloc_global_sched_pressure_data): Use crtl->abi to check whether
10825 the function would need to save a register before using it.
10826
10827 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10828
10829 * gcse.c: Include function-abi.h.
10830 (compute_hash_table_work): Use insn_callee_abi to get the ABI of
10831 the call insn target. Invalidate partially call-clobbered
10832 registers as well as fully call-clobbered ones.
10833
10834 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10835
10836 * function.c (aggregate_value_p): Work out which ABI the
10837 function is using before testing which registers are at least
10838 partly preserved by a call.
10839
10840 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10841
10842 * early-remat.c: Include regs.h and function-abi.h.
10843 (early_remat::maybe_add_candidate): Don't check for call-clobbered
10844 registers here.
10845 (early_remat::restrict_remat_for_unavail_regs): New function.
10846 (early_remat::restrict_remat_for_call): Likewise.
10847 (early_remat::process_block): Before calling emit_remat_insns
10848 for a previous call in the block, invalidate any candidates
10849 that would clobber call-preserved registers.
10850 (early_remat::emit_remat_insns_for_block): Likewise for the
10851 final call in a block. Do the same thing for live-in registers
10852 when calling emit_remat_insns at the head of a block.
10853
10854 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10855
10856 * df-scan.c (df_get_entry_block_def_set): Use crtl->abi to test
10857 whether the current function needs to save at least part of a
10858 register before using it.
10859 (df_get_exit_block_use_set): Likewise for epilogue restores.
10860
10861 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10862
10863 * df-problems.c: Include regs.h and function-abi.h.
10864 (df_rd_problem_data): Rename sparse_invalidated_by_call to
10865 sparse_invalidated_by_eh and dense_invalidated_by_call to
10866 dense_invalidated_by_eh.
10867 (df_print_bb_index): Update accordingly.
10868 (df_rd_alloc, df_rd_start_dump, df_rd_confluence_n): Likewise.
10869 (df_lr_confluence_n): Use eh_edge_abi to get the set of registers
10870 that are clobbered by an EH edge. Clobber partially-clobbered
10871 registers as well as fully-clobbered ones.
10872 (df_md_confluence_n): Likewise.
10873 (df_rd_local_compute): Likewise. Update for changes to
10874 df_rd_problem_data.
10875 * df-scan.c (df_scan_start_dump): Use eh_edge_abi to get the set
10876 of registers that are clobbered by an EH edge. Includde partially-
10877 clobbered registers as well as fully-clobbered ones.
10878
10879 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10880
10881 * cselib.c (cselib_process_insn): If we know what mode a
10882 register was set in, check whether it is clobbered in that
10883 mode by a call. Only fall back to reg_raw_mode if that fails.
10884
10885 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10886
10887 * cse.c: Include regs.h and function-abi.h.
10888 (invalidate_for_call): Take the call insn as an argument.
10889 Use insn_callee_abi to get the ABI of the call and invalidate
10890 partially clobbered registers as well as fully clobbered ones.
10891 (cse_insn): Update call accordingly.
10892
10893 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10894
10895 * combine.c: Include function-abi.h.
10896 (record_dead_and_set_regs): Use insn_callee_abi to get the ABI
10897 of the target of call insns. Invalidate partially-clobbered
10898 registers as well as fully-clobbered ones.
10899
10900 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10901
10902 * cfgloopanal.c: Include regs.h and function-abi.h.
10903 (init_set_costs): Use default_function_abi to test whether
10904 a general register is call-clobbered.
10905
10906 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10907
10908 * cfgcleanup.c (old_insns_match_p): Compare the ABIs of calls
10909 instead of the call-clobbered sets.
10910
10911 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10912
10913 * caller-save.c (setup_save_areas): Remove redundant |s of
10914 fixed_reg_set.
10915 (save_call_clobbered_regs): Likewise. Use the call ABI rather
10916 than call_used_or_fixed_regs to decide whether a REG_RETURNED
10917 value is useful.
10918
10919 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10920
10921 * rtl.h (predefined_function_abi): Declare.
10922 (choose_hard_reg_mode): Take a pointer to a predefined_function_abi
10923 instead of a boolean call_save flag.
10924 * config/gcn/gcn.c (gcn_hard_regno_caller_save_mode): Update call
10925 accordingly.
10926 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
10927 * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
10928 * config/mips/mips.c (mips_hard_regno_caller_save_mode): Likewise.
10929 * config/msp430/msp430.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
10930 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
10931 * config/sh/sh.c (sh_hard_regno_caller_save_mode): Likewise.
10932 * reginfo.c (init_reg_modes_target): Likewise.
10933 (choose_hard_reg_mode): Take a pointer to a predefined_function_abi
10934 instead of a boolean call_save flag.
10935 * targhooks.c: Include function-abi.h.
10936 (default_dwarf_frame_reg_mode): Update call to choose_hard_reg_mode,
10937 using eh_edge_abi to choose the mode.
10938
10939 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10940
10941 * target.def (hard_regno_call_part_clobbered): Take an ABI
10942 identifier instead of an rtx_insn.
10943 * doc/tm.texi: Regenerate.
10944 * hooks.h (hook_bool_insn_uint_mode_false): Delete.
10945 (hook_bool_uint_uint_mode_false): New function.
10946 * hooks.c (hook_bool_insn_uint_mode_false): Delete.
10947 (hook_bool_uint_uint_mode_false): New function.
10948 * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
10949 Take an ABI identifier instead of an rtx_insn.
10950 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Likewise.
10951 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Likewise.
10952 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
10953 * config/pru/pru.c (pru_hard_regno_call_part_clobbered): Likewise.
10954 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
10955 Likewise.
10956 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Likewise.
10957 * cselib.c: Include function-abi.h.
10958 (cselib_process_insn): Update call to
10959 targetm.hard_regno_call_part_clobbered, using insn_callee_abi
10960 to get the appropriate ABI identifier.
10961 * function-abi.cc (predefined_function_abi::initialize): Update call
10962 to targetm.hard_regno_call_part_clobbered.
10963 * ira-conflicts.c (ira_build_conflicts): Likewise.
10964 * ira-costs.c (ira_tune_allocno_costs): Likewise.
10965 * lra-constraints.c: Include function-abi.h.
10966 (need_for_call_save_p): Update call to
10967 targetm.hard_regno_call_part_clobbered, using insn_callee_abi
10968 to get the appropriate ABI identifier.
10969 * lra-lives.c (check_pseudos_live_through_calls): Likewise.
10970 * regcprop.c (copyprop_hardreg_forward_1): Update call
10971 to targetm.hard_regno_call_part_clobbered.
10972 * reginfo.c (choose_hard_reg_mode): Likewise.
10973 * regrename.c (check_new_reg_p): Likewise.
10974 * reload.c (find_equiv_reg): Likewise.
10975 * reload1.c (emit_reload_insns): Likewise.
10976 * sched-deps.c: Include function-abi.h.
10977 (deps_analyze_insn): Update call to
10978 targetm.hard_regno_call_part_clobbered, using insn_callee_abi
10979 to get the appropriate ABI identifier.
10980 * sel-sched.c (init_regs_for_mode, mark_unavailable_hard_regs): Update
10981 call to targetm.hard_regno_call_part_clobbered.
10982 * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
10983
10984 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10985
10986 * config/i386/i386.c: Include function-abi.h.
10987 (ix86_avx_u128_mode_needed): Treat function calls as AVX_U128_ANY
10988 if they preserve some 256-bit or 512-bit SSE registers.
10989
10990 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
10991
10992 * target.def (insn_callee_abi): New hook.
10993 (remove_extra_call_preserved_regs): Delete.
10994 * doc/tm.texi.in (TARGET_INSN_CALLEE_ABI): New macro.
10995 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): Delete.
10996 * doc/tm.texi: Regenerate.
10997 * targhooks.h (default_remove_extra_call_preserved_regs): Delete.
10998 * targhooks.c (default_remove_extra_call_preserved_regs): Delete.
10999 * config/aarch64/aarch64.c (aarch64_simd_call_p): Constify the
11000 insn argument.
11001 (aarch64_remove_extra_call_preserved_regs): Delete.
11002 (aarch64_insn_callee_abi): New function.
11003 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): Delete.
11004 (TARGET_INSN_CALLEE_ABI): New macro.
11005 * rtl.h (get_call_fndecl): Declare.
11006 (cgraph_rtl_info): Fix formatting. Tweak comment for
11007 function_used_regs. Remove function_used_regs_valid.
11008 * rtlanal.c (get_call_fndecl): Moved from final.c
11009 * function-abi.h (insn_callee_abi): Declare.
11010 (target_function_abi_info): Mention insn_callee_abi.
11011 * function-abi.cc (fndecl_abi): Handle flag_ipa_ra in a similar
11012 way to get_call_reg_set_usage did.
11013 (insn_callee_abi): New function.
11014 * regs.h (get_call_reg_set_usage): Delete.
11015 * final.c: Include function-abi.h.
11016 (collect_fn_hard_reg_usage): Add fixed and stack registers to
11017 function_used_regs before the main loop rather than afterwards.
11018 Use insn_callee_abi instead of get_call_reg_set_usage. Exit early
11019 if function_used_regs ends up not being useful.
11020 (get_call_fndecl): Move to rtlanal.c
11021 (get_call_cgraph_rtl_info, get_call_reg_set_usage): Delete.
11022 * caller-save.c: Include function-abi.h.
11023 (setup_save_areas, save_call_clobbered_regs): Use insn_callee_abi
11024 instead of get_call_reg_set_usage.
11025 * cfgcleanup.c: Include function-abi.h.
11026 (old_insns_match_p): Use insn_callee_abi instead of
11027 get_call_reg_set_usage.
11028 * cgraph.h (cgraph_node::rtl_info): Take a const_tree instead of
11029 a tree.
11030 * cgraph.c (cgraph_node::rtl_info): Likewise. Initialize
11031 function_used_regs.
11032 * df-scan.c: Include function-abi.h.
11033 (df_get_call_refs): Use insn_callee_abi instead of
11034 get_call_reg_set_usage.
11035 * ira-lives.c: Include function-abi.h.
11036 (process_bb_node_lives): Use insn_callee_abi instead of
11037 get_call_reg_set_usage.
11038 * lra-lives.c: Include function-abi.h.
11039 (process_bb_lives): Use insn_callee_abi instead of
11040 get_call_reg_set_usage.
11041 * postreload.c: Include function-abi.h.
11042 (reload_combine): Use insn_callee_abi instead of
11043 get_call_reg_set_usage.
11044 * regcprop.c: Include function-abi.h.
11045 (copyprop_hardreg_forward_1): Use insn_callee_abi instead of
11046 get_call_reg_set_usage.
11047 * resource.c: Include function-abi.h.
11048 (mark_set_resources, mark_target_live_regs): Use insn_callee_abi
11049 instead of get_call_reg_set_usage.
11050 * var-tracking.c: Include function-abi.h.
11051 (dataflow_set_clear_at_call): Use insn_callee_abi instead of
11052 get_call_reg_set_usage.
11053
11054 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
11055
11056 * target.def (fntype_abi): New target hook.
11057 * doc/tm.texi.in (TARGET_FNTYPE_ABI): Likewise.
11058 * doc/tm.texi: Regenerate.
11059 * target.h (predefined_function_abi): Declare.
11060 * function-abi.cc (fntype_abi): Call targetm.calls.fntype_abi,
11061 if defined.
11062 * config/aarch64/aarch64.h (ARM_PCS_SIMD): New arm_pcs value.
11063 * config/aarch64/aarch64.c: Include function-abi.h.
11064 (aarch64_simd_abi, aarch64_fntype_abi): New functions.
11065 (TARGET_FNTYPE_ABI): Define.
11066
11067 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
11068
11069 * Makefile.in (OBJS): Add function-abi.o.
11070 (GTFILES): Add function-abi.h.
11071 * function-abi.cc: New file.
11072 * function-abi.h: Likewise.
11073 * emit-rtl.h (rtl_data::abi): New field.
11074 * function.c: Include function-abi.h.
11075 (prepare_function_start): Initialize crtl->abi.
11076 * read-rtl-function.c: Include regs.h and function-abi.h.
11077 (read_rtl_function_body): Initialize crtl->abi.
11078 (read_rtl_function_body_from_file_range): Likewise.
11079 * reginfo.c: Include function-abi.h.
11080 (init_reg_sets_1): Initialize default_function_abi.
11081 (globalize_reg): Call add_full_reg_clobber for each predefined ABI
11082 when making a register global.
11083 * target-globals.h (this_target_function_abi_info): Declare.
11084 (target_globals::function_abi_info): New field.
11085 (restore_target_globals): Copy it.
11086 * target-globals.c: Include function-abi.h.
11087 (default_target_globals): Initialize the function_abi_info field.
11088 (target_globals): Allocate it.
11089 (save_target_globals): Free it.
11090
11091 2019-09-30 Nick Clifton <nickc@redhat.com>
11092
11093 PR target/85978
11094 * config/frv/frv.c (frv_register_move_cost): Add break statements
11095 to avoid falling through to the wrong cases. Tidy code.
11096
11097 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
11098
11099 * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
11100 For multi-registers modes, test how big each register part is.
11101
11102 2019-09-30 Nick Clifton <nickc@redhat.com>
11103
11104 PR target/59205
11105 * config/iq2000/iq2000.c (iq2000_select_section): Delete.
11106 (TARGET_ASM_SELECT_SECTION): Remove definition.
11107 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Allow definition.
11108
11109 2019-09-30 Ilya Leoshkevich <iii@linux.ibm.com>
11110
11111 * emit-rtl.c (init_raw_REG): New function.
11112 (gen_raw_REG): Use init_raw_REG.
11113 * gengenrtl.c (gendef): Emit init_* functions and alloca_*
11114 macros.
11115 * rtl.c (rtx_alloc_stat_v): Use rtx_init.
11116 * rtl.h (rtx_init): New function.
11117 (rtx_alloca): New function.
11118 (init_raw_REG): New function.
11119 (alloca_raw_REG): New macro.
11120
11121 2019-09-30 Michael Meissner <meissner@linux.ibm.com>
11122
11123 * config/rs6000/predicates.md (pcrel_address): Delete predicate.
11124 (pcrel_local_address): Replace pcrel_address predicate, use the
11125 new function address_to_insn_form.
11126 (pcrel_external_address): Replace with new implementation using
11127 address_to_insn_form..
11128 (prefixed_mem_operand): Delete predicate which is now unused.
11129 (pcrel_external_mem_operand): Delete predicate which is now
11130 unused.
11131 * config/rs6000/rs6000-protos.h (enum insn_form): New
11132 enumeration.
11133 (enum non_prefixed_form): New enumeration.
11134 (address_to_insn_form): New declaration.
11135 (prefixed_load_p): New declaration.
11136 (prefixed_store_p): New declaration.
11137 (prefixed_paddi_p): New declaration.
11138 (rs6000_asm_output_opcode): New declaration.
11139 (rs6000_final_prescan_insn): Move declaration and update calling
11140 signature.
11141 (address_is_prefixed): New helper inline function.
11142 * config/rs6000/rs6000.c(print_operand_address): Check for either
11143 PC-relative local symbols or PC-relative external symbols.
11144 (rs6000_emit_move): Support loading PC-relative addresses.
11145 (mode_supports_prefixed_address_p): Delete, no longer used.
11146 (rs6000_prefixed_address_mode_p): Delete, no longer used.
11147 (address_to_insn_form): New function to decode an address format.
11148 (reg_to_non_prefixed): New function to identify what the
11149 non-prefixed memory instruction format is for a register.
11150 (prefixed_load_p): New function to identify prefixed loads.
11151 (prefixed_store_p): New function to identify prefixed stores.
11152 (prefixed_paddi_p): New function to identify prefixed load
11153 immediates.
11154 (next_insn_prefixed_p): New static state variable.
11155 (rs6000_final_prescan_insn): New function to determine if an insn
11156 uses a prefixed instruction.
11157 (rs6000_asm_output_opcode): New function to emit 'p' in front of a
11158 prefixed instruction.
11159 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): New target hook.
11160 (ASM_OUTPUT_OPCODE): New target hook.
11161 * config/rs6000/rs6000.md (prefixed): New insn attribute for
11162 prefixed instructions.
11163 (prefixed_length): New insn attribute for the size of prefixed
11164 instructions.
11165 (non_prefixed_length): New insn attribute for the size of
11166 non-prefixed instructions.
11167 (pcrel_local_addr): New insn to load up a local PC-relative
11168 address.
11169 (pcrel_extern_addr): New insn to load up an external PC-relative
11170 address.
11171 (mov<mode>_64bit_dm): Split the alternatives for loading 0.0 to a
11172 GPR and loading a 128-bit floating point type to a GPR.
11173
11174 2019-09-30 Richard Biener <rguenther@suse.de>
11175
11176 * gimple.c (gimple_get_lhs): For PHIs return the result.
11177 * tree-vectorizer.h (vectorizable_live_operation): Also get the
11178 SLP instance as argument.
11179 * tree-vect-loop.c (vect_analyze_loop_operations): Also handle
11180 double-reduction PHIs with vectorizable_lc_phi.
11181 (vect_analyze_loop_operations): Adjust.
11182 (vect_create_epilog_for_reduction): Remove all code not dealing
11183 with reduction LC PHI or epilogue generation.
11184 (vectorizable_live_operation): Call vect_create_epilog_for_reduction
11185 for live stmts of reductions.
11186 * tree-vect-stmts.c (vectorizable_condition): When !for_reduction
11187 do not handle defs that are not vect_internal_def.
11188 (can_vectorize_live_stmts): Adjust.
11189 (vect_analyze_stmt): When the vectorized stmt defined a value
11190 used on backedges adjust the backedge uses of vectorized PHIs.
11191
11192 2019-09-30 Martin Jambor <mjambor@suse.cz>
11193
11194 PR ipa/91853
11195 * tree-inline.c (force_value_to_type): New function.
11196 (setup_one_parameter): Use force_value_to_type to convert type.
11197 * tree-inline.c (force_value_to_type): Declare.
11198 * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Deal
11199 with register type mismatches.
11200
11201 2019-09-30 Andreas Tobler <andreast@gcc.gnu.org>
11202
11203 * config.gcc: Use the secure-plt on FreeBSD 13 and upwards for
11204 32-bit PowerPC.
11205 Define TARGET_FREEBSD32_SECURE_PLT for 64-bit PowerPC.
11206 * config/rs6000/t-freebsd64: Make use of the above define and build
11207 the 32-bit libraries with secure-plt.
11208
11209 2019-09-30 Jakub Jelinek <jakub@redhat.com>
11210
11211 PR target/91931
11212 * config/i386/i386-expand.c (ix86_expand_adjust_ufix_to_sfix_si): Use
11213 gen_int_mode instead of GEN_INT.
11214
11215 2019-09-29 Iain Sandoe <iain@sandoe.co.uk>
11216
11217 * config/darwin.c (gen_macho_low): Amend to include the mode
11218 argument.
11219 (machopic_indirect_data_reference): Amend gen_macho_low call
11220 to include mode argument
11221 * config/rs6000/rs6000.c (emit_move): Likewise. Amend a comment.
11222 * config/rs6000/darwin.md (@macho_low_<mode>): New, replaces
11223 the macho_high expander and two define_insn entries.
11224
11225 2019-09-29 Jakub Jelinek <jakub@redhat.com>
11226
11227 PR bootstrap/90543
11228 * optc-save-gen.awk: Fix up printing string option differences.
11229
11230 2019-09-29 Kewen Lin <linkw@gcc.gnu.org>
11231
11232 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Lower
11233 vec_perm cost to 1 for non-Power7 VSX architectures.
11234
11235 2019-09-29 Kewen Lin <linkw@gcc.gnu.org>
11236
11237 * config/rs6000/vsx.md (vec_pack[su]_float_v2di): New define_expand.
11238 (vec_unpack_[su]fix_trunc_hi_v4sf): Likewise.
11239 (vec_unpack_[su]fix_trunc_lo_v4sf): Likewise.
11240
11241 2019-09-28 Iain Sandoe <iain@sandoe.co.uk>
11242
11243 * config/darwin.c (gen_macho_high): Amend to include the mode
11244 argument.
11245 (machopic_indirect_data_reference): Amend gen_macho_high call
11246 to include mode argument.
11247 (machopic_legitimize_pic_address): Likewise.
11248 * config/rs6000/rs6000.c (rs6000_legitimize_address):
11249 * config/rs6000/darwin.md (@macho_high_<mode>): New, replaces
11250 the macho_high expander and two define_insn entries.
11251
11252 2019-09-28 Oleg Endo <olegendo@gcc.gnu.org>
11253
11254 PR target/86805
11255 * config/sh/sh.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
11256
11257 2019-09-28 Oleg Endo <olegendo@gcc.gnu.org>
11258
11259 PR target/80672
11260 * config/sh/sh.c (parse_validate_atomic_model_option): Use
11261 std::string::compare instead of std::string::find.
11262
11263 2019-09-27 Maciej W. Rozycki <macro@wdc.com>
11264
11265 * configure: Regenerate.
11266
11267 2019-09-27 Jakub Jelinek <jakub@redhat.com>
11268
11269 PR middle-end/91920
11270 * gimplify.c (omp_default_clause): Predetermine DECL_IN_CONSTANT_POOL
11271 variables as shared.
11272
11273 2019-09-27 Iain Sandoe <iain@sandoe.co.uk>
11274
11275 * config/rs6000/darwin.md (@macho_correct_pic_<mode>): New,
11276 replaces the expander and two define_insn entries.
11277 (@reload_macho_picbase_<mode>): Update gen_macho_correct_pic
11278 call.
11279 * config/rs6000/rs6000.md (builtin_setjmp_receiver): Likewise.
11280
11281 2019-09-27 David Malcolm <dmalcolm@redhat.com>
11282
11283 * fibonacci_heap.h (fibonacci_heap::empty): Make const.
11284 (fibonacci_heap::nodes): Likewise.
11285 (fibonacci_heap::min_key): Likewise.
11286 (fibonacci_heap::min): Likewise.
11287
11288 2019-09-27 David Malcolm <dmalcolm@redhat.com>
11289
11290 * cgraph.c (cgraph_node::get_fun): Make const.
11291 * cgraph.h (cgraph_node::get_fun): Likewise.
11292
11293 2019-09-27 Jakub Jelinek <jakub@redhat.com>
11294
11295 PR target/91919
11296 * config/arm/arm.md (<US>mlal): Remove SE wrappers around operands
11297 of SImode MULT.
11298
11299 2019-09-27 Richard Biener <rguenther@suse.de>
11300
11301 * tree-vectorizer.h (_stmt_vec_info::reduc_fn): New.
11302 (STMT_VINFO_REDUC_FN): Likewise.
11303 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
11304 STMT_VINFO_REDUC_FN.
11305 * tree-vect-loop.c (vect_is_simple_reduction): Fix STMT_VINFO_REDUC_IDX
11306 for condition reductions.
11307 (vect_create_epilog_for_reduction): Compute all required state
11308 from the stmt to be vectorized.
11309 (vectorizable_reduction): Simplify vect_create_epilog_for_reduction
11310 invocation and remove then dead code. For single def-use chains
11311 record only a single vector stmt.
11312
11313 2019-09-27 Richard Sandiford <richard.sandiford@arm.com>
11314
11315 * config/aarch64/aarch64-protos.h (aarch64_builtin_class): New enum.
11316 (AARCH64_BUILTIN_SHIFT, AARCH64_BUILTIN_CLASS): New constants.
11317 (aarch64_gimple_fold_builtin, aarch64_mangle_builtin_type)
11318 (aarch64_fold_builtin, aarch64_init_builtins, aarch64_expand_builtin):
11319 (aarch64_builtin_decl, aarch64_builtin_rsqrt): Delete.
11320 (aarch64_general_mangle_builtin_type, aarch64_general_init_builtins):
11321 (aarch64_general_fold_builtin, aarch64_general_gimple_fold_builtin):
11322 (aarch64_general_expand_builtin, aarch64_general_builtin_decl):
11323 (aarch64_general_builtin_rsqrt): Declare.
11324 * config/aarch64/aarch64-builtins.c (aarch64_general_add_builtin):
11325 New function.
11326 (aarch64_mangle_builtin_type): Rename to...
11327 (aarch64_general_mangle_builtin_type): ...this.
11328 (aarch64_init_fcmla_laneq_builtins, aarch64_init_simd_builtins)
11329 (aarch64_init_crc32_builtins, aarch64_init_builtin_rsqrt)
11330 (aarch64_init_pauth_hint_builtins, aarch64_init_tme_builtins): Use
11331 aarch64_general_add_builtin instead of add_builtin_function.
11332 (aarch64_init_builtins): Rename to...
11333 (aarch64_general_init_builtins): ...this. Use
11334 aarch64_general_add_builtin instead of add_builtin_function.
11335 (aarch64_builtin_decl): Rename to...
11336 (aarch64_general_builtin_decl): ...this and remove the unused
11337 arguments.
11338 (aarch64_expand_builtin): Rename to...
11339 (aarch64_general_expand_builtin): ...this and remove the unused
11340 arguments.
11341 (aarch64_builtin_rsqrt): Rename to...
11342 (aarch64_general_builtin_rsqrt): ...this.
11343 (aarch64_fold_builtin): Rename to...
11344 (aarch64_general_fold_builtin): ...this. Take the function subcode
11345 and return type as arguments. Remove the "ignored" argument.
11346 (aarch64_gimple_fold_builtin): Rename to...
11347 (aarch64_general_gimple_fold_builtin): ...this. Take the function
11348 subcode and gcall as arguments, and return the new function call.
11349 * config/aarch64/aarch64.c (aarch64_init_builtins)
11350 (aarch64_fold_builtin, aarch64_gimple_fold_builtin)
11351 (aarch64_expand_builtin, aarch64_builtin_decl): New functions.
11352 (aarch64_builtin_reciprocal): Call aarch64_general_builtin_rsqrt
11353 instead of aarch64_builtin_rsqrt.
11354 (aarch64_mangle_type): Call aarch64_general_mangle_builtin_type
11355 instead of aarch64_mangle_builtin_type.
11356
11357 2019-09-27 Richard Sandiford <richard.sandiford@arm.com>
11358
11359 * target.def (check_builtin_call): New target hook.
11360 * doc/tm.texi.in (TARGET_CHECK_BUILTIN_CALL): New @hook.
11361 * doc/tm.texi: Regenerate.
11362
11363 2019-09-27 Richard Sandiford <richard.sandiford@arm.com>
11364
11365 PR tree-optimization/91909
11366 * tree-vect-loop.c (vect_create_epilog_for_reduction): Take a
11367 reduc_index parameter. When handling COND_REDUCTION, make sure
11368 that the reduction phi operand is in the correct arm of the
11369 VEC_COND_EXPR.
11370 (vectorizable_reduction): Pass reduc_index to the above.
11371
11372 2019-09-27 Yuliang Wang <yuliang.wang@arm.com>
11373
11374 * config/aarch64/aarch64-sve2.md (aarch64_sve2_sra<mode>):
11375 New combine pattern.
11376
11377 2019-09-26 Max Filippov <jcmvbkbc@gmail.com>
11378
11379 * config/xtensa/xtensa.c (hwloop_optimize): Insert zero overhead
11380 loop instruction into new basic block before the loop when basic
11381 block that precedes the loop is empty.
11382
11383 2019-09-26 Jakub Jelinek <jakub@redhat.com>
11384
11385 * function.c (gimplify_parameters): Use build_clobber function.
11386 * tree-ssa.c (execute_update_addresses_taken): Likewise.
11387 * tree-inline.c (expand_call_inline): Likewise.
11388 * tree-sra.c (clobber_subtree): Likewise.
11389 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Likewise.
11390 * omp-low.c (lower_rec_simd_input_clauses, lower_rec_input_clauses,
11391 lower_omp_single, lower_depend_clauses, lower_omp_taskreg,
11392 lower_omp_target): Likewise.
11393 * omp-expand.c (expand_omp_for_generic): Likewise.
11394 * omp-offload.c (ompdevlow_adjust_simt_enter): Likewise.
11395
11396 2019-09-26 Will Schmidt <will_schmidt@vnet.ibm.com>
11397
11398 * config/rs6000/rs6000-builtin.def: (LVSL, LVSR, LVEBX, LVEHX,
11399 LVEWX, LVXL, LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI,
11400 LVXL_V16QI, LVX, LVX_V1TI, LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI,
11401 LVX_V8HI, LVX_V16QI, LVLX, LVLXL, LVRX, LVRXL, LXSDX, LXVD2X_V1TI,
11402 LXVD2X_V2DF, LXVD2X_V2DI, LXVDSX, LXVW4X_V4SF, LXVW4X_V4SI,
11403 LXVW4X_V8HI, LXVW4X_V16QI, LD_ELEMREV_V1TI, LD_ELEMREV_V2DF,
11404 LD_ELEMREV_V2DI, LD_ELEMREV_V4SF, LD_ELEMREV_V4SI, LD_ELEMREV_V8HI,
11405 LD_ELEMREV_V16QI): Use the PURE attribute.
11406
11407 2019-09-26 Iain Sandoe <iain@sandoe.co.uk>
11408
11409 * config/rs6000/darwin.md: Replace the expanders for
11410 load_macho_picbase and reload_macho_picbase with use of '@'
11411 and <mode> in their respective define_insns.
11412 (nonlocal_goto_receiver): Pass Pmode to gen_reload_macho_picbase.
11413 * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Pass
11414 Pmode to gen_load_macho_picbase.
11415 * config/rs6000/rs6000.md: Likewise.
11416
11417 2019-09-25 Richard Biener <rguenther@suse.de>
11418
11419 PR tree-optimization/91896
11420 * tree-vect-loop.c (vectorizable_reduction): The single
11421 def-use cycle optimization cannot apply when there's more
11422 than one pattern stmt involved.
11423
11424 2019-09-26 Richard Biener <rguenther@suse.de>
11425
11426 * tree-vect-loop.c (vect_analyze_loop_operations): Analyze
11427 loop-closed PHIs that are vect_internal_def.
11428 (vect_create_epilog_for_reduction): Exit early for nested cycles.
11429 Simplify.
11430 (vectorizable_lc_phi): New.
11431 * tree-vect-stmts.c (vect_analyze_stmt): Call vectorize_lc_phi.
11432 (vect_transform_stmt): Likewise.
11433 * tree-vectorizer.h (stmt_vec_info_type): Add lc_phi_info_type.
11434 (vectorizable_lc_phi): Declare.
11435
11436 2019-09-26 Richard Biener <rguenther@suse.de>
11437
11438 * tree-vect-loop.c (vect_analyze_loop_operations): Also call
11439 vectorizable_reduction for vect_double_reduction_def.
11440 (vect_transform_loop): Likewise.
11441 (vect_create_epilog_for_reduction): Move double-reduction
11442 PHI creation and preheader argument setting of PHIs ...
11443 (vectorizable_reduction): ... here. Also process
11444 vect_double_reduction_def PHIs, creating the vectorized
11445 PHI nodes, remembering the scalar adjustment computed for
11446 the epilogue in STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT.
11447 Remember the original reduction code in STMT_VINFO_REDUC_CODE.
11448 * tree-vectorizer.c (vec_info::new_stmt_vec_info):
11449 Initialize STMT_VINFO_REDUC_CODE.
11450 * tree-vectorizer.h (_stmt_vec_info::reduc_epilogue_adjustment): New.
11451 (_stmt_vec_info::reduc_code): Likewise.
11452 (STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT): Likewise.
11453 (STMT_VINFO_REDUC_CODE): Likewise.
11454
11455 2019-09-26 Matt Turner <mattst88@gmail.com>
11456
11457 PR driver/69471
11458 * config/aarch64/aarch64.opt (march=): Add Negative(march=).
11459 (mtune=): Add Negative(mtune=).
11460 (mcpu=): Add Negative(mcpu=).
11461 * config/arm/arm.opt: Likewise.
11462
11463 2019-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11464
11465 * config/arm/arm.md (arm_<simd32_op>): New define_insn.
11466 * config/arm/arm_acle.h (__smlald, __smlaldx, __smlsld, __smlsldx):
11467 Define.
11468 * config/arm/arm_acle.h: Define builtins for the above.
11469 * config/arm/iterators.md (SIMD32_DIMODE): New int_iterator.
11470 (simd32_op): Handle the above.
11471 * config/arm/unspecs.md: Define unspecs for the above.
11472
11473 2019-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11474
11475 * config/arm/arm.md (arm_<simd32_op>): New define_insn.
11476 (arm_<sup>xtb16): Likewise.
11477 (arm_usada8): Likewise.
11478 * config/arm/arm_acle.h (__qadd8, __qsub8, __shadd8, __shsub8,
11479 __uhadd8, __uhsub8, __uqadd8, __uqsub8, __qadd16, __qasx, __qsax,
11480 __qsub16, __shadd16, __shasx, __shsax, __shsub16, __uhadd16, __uhasx,
11481 __uhsax, __uhsub16, __uqadd16, __uqasx, __uqsax, __uqsub16, __sxtab16,
11482 __sxtb16, __uxtab16, __uxtb16): Define.
11483 * config/arm/arm_acle_builtins.def: Define builtins for the above.
11484 * config/arm/unspecs.md: Define unspecs for the above.
11485 * config/arm/iterators.md (SIMD32_NOGE_BINOP): New int_iterator.
11486 (USXTB16): Likewise.
11487 (simd32_op): New int_attribute.
11488 (sup): Handle UNSPEC_SXTB16, UNSPEC_UXTB16.
11489 * doc/sourcebuild.exp (arm_simd32_ok): Document.
11490
11491 2019-09-26 Martin Jambor <mjambor@suse.cz>
11492
11493 * ipa-sra.c (verify_splitting_accesses): Fix quoting in a call to
11494 internal_error.
11495
11496 2019-09-26 Martin Jambor <mjambor@suse.cz>
11497
11498 * ipa-sra.c (process_scan_results): Fix continue condition.
11499
11500 2019-09-26 Martin Liska <mliska@suse.cz>
11501
11502 PR tree-optimization/91885
11503 * tree-vectorizer.c (try_vectorize_loop_1): Add
11504 TODO_update_ssa_only_virtuals similarly to what slp pass does.
11505
11506 2019-09-26 Richard Sandiford <richard.sandiford@arm.com>
11507
11508 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use
11509 aarch64_plus_immediate rather than aarch64_uimm12_shift
11510 to test for valid PLUS immediates.
11511
11512 2019-09-25 Martin Jambor <mjambor@suse.cz>
11513
11514 * tree-sra.c (no_accesses_p): Remove.
11515 (no_accesses_representant): Likewise.
11516
11517 2019-09-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11518
11519 * config/aarch64/arm_neon.h (vaba_s8): Use __ in identifiers
11520 consistenly.
11521 (vaba_s16): Likewise.
11522 (vaba_s32): Likewise.
11523 (vaba_u8): Likewise.
11524 (vaba_u16): Likewise.
11525 (vaba_u32): Likewise.
11526 (vabal_high_s8): Likewise.
11527 (vabal_high_s16): Likewise.
11528 (vabal_high_s32): Likewise.
11529 (vabal_high_u8): Likewise.
11530 (vabal_high_u16): Likewise.
11531 (vabal_high_u32): Likewise.
11532 (vabal_s8): Likewise.
11533 (vabal_s16): Likewise.
11534 (vabal_s32): Likewise.
11535 (vabal_u8): Likewise.
11536 (vabal_u16): Likewise.
11537 (vabal_u32): Likewise.
11538 (vabaq_s8): Likewise.
11539 (vabaq_s16): Likewise.
11540 (vabaq_s32): Likewise.
11541 (vabaq_u8): Likewise.
11542 (vabaq_u16): Likewise.
11543 (vabaq_u32): Likewise.
11544 (vabd_s8): Likewise.
11545 (vabd_s16): Likewise.
11546 (vabd_s32): Likewise.
11547 (vabd_u8): Likewise.
11548 (vabd_u16): Likewise.
11549 (vabd_u32): Likewise.
11550 (vabdl_high_s8): Likewise.
11551 (vabdl_high_s16): Likewise.
11552 (vabdl_high_s32): Likewise.
11553 (vabdl_high_u8): Likewise.
11554 (vabdl_high_u16): Likewise.
11555 (vabdl_high_u32): Likewise.
11556 (vabdl_s8): Likewise.
11557 (vabdl_s16): Likewise.
11558 (vabdl_s32): Likewise.
11559 (vabdl_u8): Likewise.
11560 (vabdl_u16): Likewise.
11561 (vabdl_u32): Likewise.
11562 (vabdq_s8): Likewise.
11563 (vabdq_s16): Likewise.
11564 (vabdq_s32): Likewise.
11565 (vabdq_u8): Likewise.
11566 (vabdq_u16): Likewise.
11567 (vabdq_u32): Likewise.
11568 (vaddlv_s8): Likewise.
11569 (vaddlv_s16): Likewise.
11570 (vaddlv_u8): Likewise.
11571 (vaddlv_u16): Likewise.
11572 (vaddlvq_s8): Likewise.
11573 (vaddlvq_s16): Likewise.
11574 (vaddlvq_s32): Likewise.
11575 (vaddlvq_u8): Likewise.
11576 (vaddlvq_u16): Likewise.
11577 (vaddlvq_u32): Likewise.
11578 (vcvtx_f32_f64): Likewise.
11579 (vcvtx_high_f32_f64): Likewise.
11580 (vcvtxd_f32_f64): Likewise.
11581 (vmla_n_f32): Likewise.
11582 (vmla_n_s16): Likewise.
11583 (vmla_n_s32): Likewise.
11584 (vmla_n_u16): Likewise.
11585 (vmla_n_u32): Likewise.
11586 (vmla_s8): Likewise.
11587 (vmla_s16): Likewise.
11588 (vmla_s32): Likewise.
11589 (vmla_u8): Likewise.
11590 (vmla_u16): Likewise.
11591 (vmla_u32): Likewise.
11592 (vmlal_high_n_s16): Likewise.
11593 (vmlal_high_n_s32): Likewise.
11594 (vmlal_high_n_u16): Likewise.
11595 (vmlal_high_n_u32): Likewise.
11596 (vmlal_high_s8): Likewise.
11597 (vmlal_high_s16): Likewise.
11598 (vmlal_high_s32): Likewise.
11599 (vmlal_high_u8): Likewise.
11600 (vmlal_high_u16): Likewise.
11601 (vmlal_high_u32): Likewise.
11602 (vmlal_n_s16): Likewise.
11603 (vmlal_n_s32): Likewise.
11604 (vmlal_n_u16): Likewise.
11605 (vmlal_n_u32): Likewise.
11606 (vmlal_s8): Likewise.
11607 (vmlal_s16): Likewise.
11608 (vmlal_s32): Likewise.
11609 (vmlal_u8): Likewise.
11610 (vmlal_u16): Likewise.
11611 (vmlal_u32): Likewise.
11612 (vmlaq_n_f32): Likewise.
11613 (vmlaq_n_s16): Likewise.
11614 (vmlaq_n_s32): Likewise.
11615 (vmlaq_n_u16): Likewise.
11616 (vmlaq_n_u32): Likewise.
11617 (vmlaq_s8): Likewise.
11618 (vmlaq_s16): Likewise.
11619 (vmlaq_s32): Likewise.
11620 (vmlaq_u8): Likewise.
11621 (vmlaq_u16): Likewise.
11622 (vmlaq_u32): Likewise.
11623 (vmls_n_f32): Likewise.
11624 (vmls_n_s16): Likewise.
11625 (vmls_n_s32): Likewise.
11626 (vmls_n_u16): Likewise.
11627 (vmls_n_u32): Likewise.
11628 (vmls_s8): Likewise.
11629 (vmls_s16): Likewise.
11630 (vmls_s32): Likewise.
11631 (vmls_u8): Likewise.
11632 (vmls_u16): Likewise.
11633 (vmls_u32): Likewise.
11634 (vmlsl_high_n_s16): Likewise.
11635 (vmlsl_high_n_s32): Likewise.
11636 (vmlsl_high_n_u16): Likewise.
11637 (vmlsl_high_n_u32): Likewise.
11638 (vmlsl_high_s8): Likewise.
11639 (vmlsl_high_s16): Likewise.
11640 (vmlsl_high_s32): Likewise.
11641 (vmlsl_high_u8): Likewise.
11642 (vmlsl_high_u16): Likewise.
11643 (vmlsl_high_u32): Likewise.
11644 (vmlsl_n_s16): Likewise.
11645 (vmlsl_n_s32): Likewise.
11646 (vmlsl_n_u16): Likewise.
11647 (vmlsl_n_u32): Likewise.
11648 (vmlsl_s8): Likewise.
11649 (vmlsl_s16): Likewise.
11650 (vmlsl_s32): Likewise.
11651 (vmlsl_u8): Likewise.
11652 (vmlsl_u16): Likewise.
11653 (vmlsl_u32): Likewise.
11654 (vmlsq_n_f32): Likewise.
11655 (vmlsq_n_s16): Likewise.
11656 (vmlsq_n_s32): Likewise.
11657 (vmlsq_n_u16): Likewise.
11658 (vmlsq_n_u32): Likewise.
11659 (vmlsq_s8): Likewise.
11660 (vmlsq_s16): Likewise.
11661 (vmlsq_s32): Likewise.
11662 (vmlsq_u8): Likewise.
11663 (vmlsq_u16): Likewise.
11664 (vmlsq_u32): Likewise.
11665 (vmovl_high_s8): Likewise.
11666 (vmovl_high_s16): Likewise.
11667 (vmovl_high_s32): Likewise.
11668 (vmovl_high_u8): Likewise.
11669 (vmovl_high_u16): Likewise.
11670 (vmovl_high_u32): Likewise.
11671 (vmovl_s8): Likewise.
11672 (vmovl_s16): Likewise.
11673 (vmovl_s32): Likewise.
11674 (vmovl_u8): Likewise.
11675 (vmovl_u16): Likewise.
11676 (vmovl_u32): Likewise.
11677 (vmovn_high_s16): Likewise.
11678 (vmovn_high_s32): Likewise.
11679 (vmovn_high_s64): Likewise.
11680 (vmovn_high_u16): Likewise.
11681 (vmovn_high_u32): Likewise.
11682 (vmovn_high_u64): Likewise.
11683 (vmovn_s16): Likewise.
11684 (vmovn_s32): Likewise.
11685 (vmovn_s64): Likewise.
11686 (vmovn_u16): Likewise.
11687 (vmovn_u32): Likewise.
11688 (vmovn_u64): Likewise.
11689 (vmull_high_n_s16): Likewise.
11690 (vmull_high_n_s32): Likewise.
11691 (vmull_high_n_u16): Likewise.
11692 (vmull_high_n_u32): Likewise.
11693 (vmull_high_p8): Likewise.
11694 (vmull_high_s8): Likewise.
11695 (vmull_high_s16): Likewise.
11696 (vmull_high_s32): Likewise.
11697 (vmull_high_u8): Likewise.
11698 (vmull_high_u16): Likewise.
11699 (vmull_high_u32): Likewise.
11700 (vmull_n_s16): Likewise.
11701 (vmull_n_s32): Likewise.
11702 (vmull_n_u16): Likewise.
11703 (vmull_n_u32): Likewise.
11704 (vmull_p8): Likewise.
11705 (vmull_s8): Likewise.
11706 (vmull_s16): Likewise.
11707 (vmull_s32): Likewise.
11708 (vmull_u8): Likewise.
11709 (vmull_u16): Likewise.
11710 (vmull_u32): Likewise.
11711 (vpadal_s8): Likewise.
11712 (vpadal_s16): Likewise.
11713 (vpadal_s32): Likewise.
11714 (vpadal_u8): Likewise.
11715 (vpadal_u16): Likewise.
11716 (vpadal_u32): Likewise.
11717 (vpadalq_s8): Likewise.
11718 (vpadalq_s16): Likewise.
11719 (vpadalq_s32): Likewise.
11720 (vpadalq_u8): Likewise.
11721 (vpadalq_u16): Likewise.
11722 (vpadalq_u32): Likewise.
11723 (vpaddl_s8): Likewise.
11724 (vpaddl_s16): Likewise.
11725 (vpaddl_s32): Likewise.
11726 (vpaddl_u8): Likewise.
11727 (vpaddl_u16): Likewise.
11728 (vpaddl_u32): Likewise.
11729 (vpaddlq_s8): Likewise.
11730 (vpaddlq_s16): Likewise.
11731 (vpaddlq_s32): Likewise.
11732 (vpaddlq_u8): Likewise.
11733 (vpaddlq_u16): Likewise.
11734 (vpaddlq_u32): Likewise.
11735 (vpaddq_s8): Likewise.
11736 (vpaddq_s16): Likewise.
11737 (vpaddq_s32): Likewise.
11738 (vpaddq_s64): Likewise.
11739 (vpaddq_u8): Likewise.
11740 (vpaddq_u16): Likewise.
11741 (vpaddq_u32): Likewise.
11742 (vpaddq_u64): Likewise.
11743 (vqdmulh_n_s16): Likewise.
11744 (vqdmulh_n_s32): Likewise.
11745 (vqdmulhq_n_s16): Likewise.
11746 (vqdmulhq_n_s32): Likewise.
11747 (vqmovn_high_s16): Likewise.
11748 (vqmovn_high_s32): Likewise.
11749 (vqmovn_high_s64): Likewise.
11750 (vqmovn_high_u16): Likewise.
11751 (vqmovn_high_u32): Likewise.
11752 (vqmovn_high_u64): Likewise.
11753 (vqmovun_high_s16): Likewise.
11754 (vqmovun_high_s32): Likewise.
11755 (vqmovun_high_s64): Likewise.
11756 (vqrdmulh_n_s16): Likewise.
11757 (vqrdmulh_n_s32): Likewise.
11758 (vqrdmulhq_n_s16): Likewise.
11759 (vqrdmulhq_n_s32): Likewise.
11760 (vrsqrte_u32): Likewise.
11761 (vrsqrteq_u32): Likewise.
11762 (vtst_p8): Likewise.
11763 (vtst_p16): Likewise.
11764 (vtst_p64): Likewise.
11765 (vtstq_p8): Likewise.
11766 (vtstq_p16): Likewise.
11767 (vtstq_p64): Likewise.
11768 (vaddlv_s32): Likewise.
11769 (vaddlv_u32): Likewise.
11770 (vqtbl1_p8): Likewise.
11771 (vqtbl1_s8): Likewise.
11772 (vqtbl1_u8): Likewise.
11773 (vqtbl1q_p8): Likewise.
11774 (vqtbl1q_s8): Likewise.
11775 (vqtbl1q_u8): Likewise.
11776 (vqtbx1_s8): Likewise.
11777 (vqtbx1_u8): Likewise.
11778 (vqtbx1_p8): Likewise.
11779 (vqtbx1q_s8): Likewise.
11780 (vqtbx1q_u8): Likewise.
11781 (vqtbx1q_p8): Likewise.
11782 (vtbl1_s8): Likewise.
11783 (vtbl1_u8): Likewise.
11784 (vtbl1_p8): Likewise.
11785 (vtbl2_s8): Likewise.
11786 (vtbl2_u8): Likewise.
11787 (vtbl2_p8): Likewise.
11788 (vtbl3_s8): Likewise.
11789 (vtbl3_u8): Likewise.
11790 (vtbl3_p8): Likewise.
11791 (vtbl4_s8): Likewise.
11792 (vtbl4_u8): Likewise.
11793 (vtbl4_p8): Likewise.
11794 (vtbx2_s8): Likewise.
11795 (vtbx2_u8): Likewise.
11796 (vtbx2_p8): Likewise.
11797 (vld1_f32): Likewise.
11798 (vld1_f64): Likewise.
11799 (vld1_p8): Likewise.
11800 (vld1_p16): Likewise.
11801 (vld1_p64): Likewise.
11802 (vld1_s8): Likewise.
11803 (vld1_s16): Likewise.
11804 (vld1_s32): Likewise.
11805 (vld1_s64): Likewise.
11806 (vld1_u8): Likewise.
11807 (vld1_u16): Likewise.
11808 (vld1_u32): Likewise.
11809 (vld1_u64): Likewise.
11810 (vld1q_f32): Likewise.
11811 (vld1q_f64): Likewise.
11812 (vld1q_p8): Likewise.
11813 (vld1q_p16): Likewise.
11814 (vld1q_p64): Likewise.
11815 (vld1q_s8): Likewise.
11816 (vld1q_s16): Likewise.
11817 (vld1q_s32): Likewise.
11818 (vld1q_s64): Likewise.
11819 (vld1q_u8): Likewise.
11820 (vld1q_u16): Likewise.
11821 (vld1q_u32): Likewise.
11822 (vld1q_u64): Likewise.
11823 (vpmax_s8): Likewise.
11824 (vpmax_s16): Likewise.
11825 (vpmax_s32): Likewise.
11826 (vpmax_u8): Likewise.
11827 (vpmax_u16): Likewise.
11828 (vpmax_u32): Likewise.
11829 (vpmaxq_s8): Likewise.
11830 (vpmaxq_s16): Likewise.
11831 (vpmaxq_s32): Likewise.
11832 (vpmaxq_u8): Likewise.
11833 (vpmaxq_u16): Likewise.
11834 (vpmaxq_u32): Likewise.
11835 (vpmax_f32): Likewise.
11836 (vpmaxq_f32): Likewise.
11837 (vpmaxq_f64): Likewise.
11838 (vpmaxqd_f64): Likewise.
11839 (vpmaxs_f32): Likewise.
11840 (vpmaxnm_f32): Likewise.
11841 (vpmaxnmq_f32): Likewise.
11842 (vpmaxnmq_f64): Likewise.
11843 (vpmaxnmqd_f64): Likewise.
11844 (vpmaxnms_f32): Likewise.
11845 (vpmin_s8): Likewise.
11846 (vpmin_s16): Likewise.
11847 (vpmin_s32): Likewise.
11848 (vpmin_u8): Likewise.
11849 (vpmin_u16): Likewise.
11850 (vpmin_u32): Likewise.
11851 (vpminq_s8): Likewise.
11852 (vpminq_s16): Likewise.
11853 (vpminq_s32): Likewise.
11854 (vpminq_u8): Likewise.
11855 (vpminq_u16): Likewise.
11856 (vpminq_u32): Likewise.
11857 (vpmin_f32): Likewise.
11858 (vpminq_f32): Likewise.
11859 (vpminq_f64): Likewise.
11860 (vpminqd_f64): Likewise.
11861 (vpmins_f32): Likewise.
11862 (vpminnm_f32): Likewise.
11863 (vpminnmq_f32): Likewise.
11864 (vpminnmq_f64): Likewise.
11865 (vpminnmqd_f64): Likewise.
11866 (vpminnms_f32): Likewise.
11867 (vmla_f32): Likewise.
11868 (vmlaq_f32): Likewise.
11869 (vmlaq_f64): Likewise.
11870 (vmls_f32): Likewise.
11871 (vmlsq_f32): Likewise.
11872 (vmlsq_f64): Likewise.
11873 (vqtbl2_s8): Likewise.
11874 (vqtbl2_u8): Likewise.
11875 (vqtbl2_p8): Likewise.
11876 (vqtbl2q_s8): Likewise.
11877 (vqtbl2q_u8): Likewise.
11878 (vqtbl2q_p8): Likewise.
11879 (vqtbl3_s8): Likewise.
11880 (vqtbl3_u8): Likewise.
11881 (vqtbl3_p8): Likewise.
11882 (vqtbl3q_s8): Likewise.
11883 (vqtbl3q_u8): Likewise.
11884 (vqtbl3q_p8): Likewise.
11885 (vqtbl4_s8): Likewise.
11886 (vqtbl4_u8): Likewise.
11887 (vqtbl4_p8): Likewise.
11888 (vqtbl4q_s8): Likewise.
11889 (vqtbl4q_u8): Likewise.
11890 (vqtbl4q_p8): Likewise.
11891 (vqtbx2_s8): Likewise.
11892 (vqtbx2_u8): Likewise.
11893 (vqtbx2_p8): Likewise.
11894 (vqtbx2q_s8): Likewise.
11895 (vqtbx2q_u8): Likewise.
11896 (vqtbx2q_p8): Likewise.
11897 (vqtbx3_s8): Likewise.
11898 (vqtbx3_u8): Likewise.
11899 (vqtbx3_p8): Likewise.
11900 (vqtbx3q_s8): Likewise.
11901 (vqtbx3q_u8): Likewise.
11902 (vqtbx3q_p8): Likewise.
11903 (vqtbx4_s8): Likewise.
11904 (vqtbx4_u8): Likewise.
11905 (vqtbx4_p8): Likewise.
11906 (vqtbx4q_s8): Likewise.
11907 (vqtbx4q_u8): Likewise.
11908 (vqtbx4q_p8): Likewise.
11909 (vrev16_p8): Likewise.
11910 (vrev16_s8): Likewise.
11911 (vrev16_u8): Likewise.
11912 (vrev16q_p8): Likewise.
11913 (vrev16q_s8): Likewise.
11914 (vrev16q_u8): Likewise.
11915 (vrev32_p8): Likewise.
11916 (vrev32_p16): Likewise.
11917 (vrev32_s8): Likewise.
11918 (vrev32_s16): Likewise.
11919 (vrev32_u8): Likewise.
11920 (vrev32_u16): Likewise.
11921 (vrev32q_p8): Likewise.
11922 (vrev32q_p16): Likewise.
11923 (vrev32q_s8): Likewise.
11924 (vrev32q_s16): Likewise.
11925 (vrev32q_u8): Likewise.
11926 (vrev32q_u16): Likewise.
11927 (vrev64_f32): Likewise.
11928 (vrev64_p8): Likewise.
11929 (vrev64_p16): Likewise.
11930 (vrev64_s8): Likewise.
11931 (vrev64_s16): Likewise.
11932 (vrev64_s32): Likewise.
11933 (vrev64_u8): Likewise.
11934 (vrev64_u16): Likewise.
11935 (vrev64_u32): Likewise.
11936 (vrev64q_f32): Likewise.
11937 (vrev64q_p8): Likewise.
11938 (vrev64q_p16): Likewise.
11939 (vrev64q_s8): Likewise.
11940 (vrev64q_s16): Likewise.
11941 (vrev64q_s32): Likewise.
11942 (vrev64q_u8): Likewise.
11943 (vrev64q_u16): Likewise.
11944 (vrev64q_u32): Likewise.
11945 (vsha1cq_u32): Likewise.
11946 (vsha1mq_u32): Likewise.
11947 (vsha1pq_u32): Likewise.
11948 (vsha1h_u32): Likewise.
11949 (vsha1su0q_u32): Likewise.
11950 (vsha1su1q_u32): Likewise.
11951 (vsha256hq_u32): Likewise.
11952 (vsha256h2q_u32): Likewise.
11953 (vsha256su0q_u32): Likewise.
11954 (vsha256su1q_u32): Likewise.
11955 (vmull_p64): Likewise.
11956 (vmull_high_p64): Likewise.
11957 (vsqrt_f32): Likewise.
11958 (vsqrtq_f32): Likewise.
11959 (vsqrt_f64): Likewise.
11960 (vsqrtq_f64): Likewise.
11961 (vst1_f32): Likewise.
11962 (vst1_f64): Likewise.
11963 (vst1_p8): Likewise.
11964 (vst1_p16): Likewise.
11965 (vst1_p64): Likewise.
11966 (vst1_s8): Likewise.
11967 (vst1_s16): Likewise.
11968 (vst1_s32): Likewise.
11969 (vst1_s64): Likewise.
11970 (vst1_u8): Likewise.
11971 (vst1_u16): Likewise.
11972 (vst1_u32): Likewise.
11973 (vst1_u64): Likewise.
11974 (vst1q_f32): Likewise.
11975 (vst1q_f64): Likewise.
11976 (vst1q_p8): Likewise.
11977 (vst1q_p16): Likewise.
11978 (vst1q_p64): Likewise.
11979 (vst1q_s8): Likewise.
11980 (vst1q_s16): Likewise.
11981 (vst1q_s32): Likewise.
11982 (vst1q_s64): Likewise.
11983 (vst1q_u8): Likewise.
11984 (vst1q_u16): Likewise.
11985 (vst1q_u32): Likewise.
11986 (vst1q_u64): Likewise.
11987 (vst1_s64_x2): Likewise.
11988 (vst1_u64_x2): Likewise.
11989 (vst1_f64_x2): Likewise.
11990 (vst1_s8_x2): Likewise.
11991 (vst1_p8_x2): Likewise.
11992 (vst1_s16_x2): Likewise.
11993 (vst1_p16_x2): Likewise.
11994 (vst1_s32_x2): Likewise.
11995 (vst1_u8_x2): Likewise.
11996 (vst1_u16_x2): Likewise.
11997 (vst1_u32_x2): Likewise.
11998 (vst1_f16_x2): Likewise.
11999 (vst1_f32_x2): Likewise.
12000 (vst1_p64_x2): Likewise.
12001 (vst1q_s8_x2): Likewise.
12002 (vst1q_p8_x2): Likewise.
12003 (vst1q_s16_x2): Likewise.
12004 (vst1q_p16_x2): Likewise.
12005 (vst1q_s32_x2): Likewise.
12006 (vst1q_s64_x2): Likewise.
12007 (vst1q_u8_x2): Likewise.
12008 (vst1q_u16_x2): Likewise.
12009 (vst1q_u32_x2): Likewise.
12010 (vst1q_u64_x2): Likewise.
12011 (vst1q_f16_x2): Likewise.
12012 (vst1q_f32_x2): Likewise.
12013 (vst1q_f64_x2): Likewise.
12014 (vst1q_p64_x2): Likewise.
12015 (vst1_s64_x3): Likewise.
12016 (vst1_u64_x3): Likewise.
12017 (vst1_f64_x3): Likewise.
12018 (vst1_s8_x3): Likewise.
12019 (vst1_p8_x3): Likewise.
12020 (vst1_s16_x3): Likewise.
12021 (vst1_p16_x3): Likewise.
12022 (vst1_s32_x3): Likewise.
12023 (vst1_u8_x3): Likewise.
12024 (vst1_u16_x3): Likewise.
12025 (vst1_u32_x3): Likewise.
12026 (vst1_f16_x3): Likewise.
12027 (vst1_f32_x3): Likewise.
12028 (vst1_p64_x3): Likewise.
12029 (vst1q_s8_x3): Likewise.
12030 (vst1q_p8_x3): Likewise.
12031 (vst1q_s16_x3): Likewise.
12032 (vst1q_p16_x3): Likewise.
12033 (vst1q_s32_x3): Likewise.
12034 (vst1q_s64_x3): Likewise.
12035 (vst1q_u8_x3): Likewise.
12036 (vst1q_u16_x3): Likewise.
12037 (vst1q_u32_x3): Likewise.
12038 (vst1q_u64_x3): Likewise.
12039 (vst1q_f16_x3): Likewise.
12040 (vst1q_f32_x3): Likewise.
12041 (vst1q_f64_x3): Likewise.
12042 (vst1q_p64_x3): Likewise.
12043 (vst2_s64): Likewise.
12044 (vst2_u64): Likewise.
12045 (vst2_f64): Likewise.
12046 (vst2_s8): Likewise.
12047 (vst2_p8): Likewise.
12048 (vst2_s16): Likewise.
12049 (vst2_p16): Likewise.
12050 (vst2_s32): Likewise.
12051 (vst2_u8): Likewise.
12052 (vst2_u16): Likewise.
12053 (vst2_u32): Likewise.
12054 (vst2_f16): Likewise.
12055 (vst2_f32): Likewise.
12056 (vst2_p64): Likewise.
12057 (vst2q_s8): Likewise.
12058 (vst2q_p8): Likewise.
12059 (vst2q_s16): Likewise.
12060 (vst2q_p16): Likewise.
12061 (vst2q_s32): Likewise.
12062 (vst2q_s64): Likewise.
12063 (vst2q_u8): Likewise.
12064 (vst2q_u16): Likewise.
12065 (vst2q_u32): Likewise.
12066 (vst2q_u64): Likewise.
12067 (vst2q_f16): Likewise.
12068 (vst2q_f32): Likewise.
12069 (vst2q_f64): Likewise.
12070 (vst2q_p64): Likewise.
12071 (vst3_s64): Likewise.
12072 (vst3_u64): Likewise.
12073 (vst3_f64): Likewise.
12074 (vst3_s8): Likewise.
12075 (vst3_p8): Likewise.
12076 (vst3_s16): Likewise.
12077 (vst3_p16): Likewise.
12078 (vst3_s32): Likewise.
12079 (vst3_u8): Likewise.
12080 (vst3_u16): Likewise.
12081 (vst3_u32): Likewise.
12082 (vst3_f16): Likewise.
12083 (vst3_f32): Likewise.
12084 (vst3_p64): Likewise.
12085 (vst3q_s8): Likewise.
12086 (vst3q_p8): Likewise.
12087 (vst3q_s16): Likewise.
12088 (vst3q_p16): Likewise.
12089 (vst3q_s32): Likewise.
12090 (vst3q_s64): Likewise.
12091 (vst3q_u8): Likewise.
12092 (vst3q_u16): Likewise.
12093 (vst3q_u32): Likewise.
12094 (vst3q_u64): Likewise.
12095 (vst3q_f16): Likewise.
12096 (vst3q_f32): Likewise.
12097 (vst3q_f64): Likewise.
12098 (vst3q_p64): Likewise.
12099 (vst4_s64): Likewise.
12100 (vst4_u64): Likewise.
12101 (vst4_f64): Likewise.
12102 (vst4_s8): Likewise.
12103 (vst4_p8): Likewise.
12104 (vst4_s16): Likewise.
12105 (vst4_p16): Likewise.
12106 (vst4_s32): Likewise.
12107 (vst4_u8): Likewise.
12108 (vst4_u16): Likewise.
12109 (vst4_u32): Likewise.
12110 (vst4_f16): Likewise.
12111 (vst4_f32): Likewise.
12112 (vst4_p64): Likewise.
12113 (vst4q_s8): Likewise.
12114 (vst4q_p8): Likewise.
12115 (vst4q_s16): Likewise.
12116 (vst4q_p16): Likewise.
12117 (vst4q_s32): Likewise.
12118 (vst4q_s64): Likewise.
12119 (vst4q_u8): Likewise.
12120 (vst4q_u16): Likewise.
12121 (vst4q_u32): Likewise.
12122 (vst4q_u64): Likewise.
12123 (vst4q_f16): Likewise.
12124 (vst4q_f32): Likewise.
12125 (vst4q_f64): Likewise.
12126 (vst4q_p64): Likewise.
12127 (vtbx4_s8): Likewise.
12128 (vtbx4_u8): Likewise.
12129 (vtbx4_p8): Likewise.
12130 (vtrn_f32): Likewise.
12131 (vtrn_p8): Likewise.
12132 (vtrn_p16): Likewise.
12133 (vtrn_s8): Likewise.
12134 (vtrn_s16): Likewise.
12135 (vtrn_s32): Likewise.
12136 (vtrn_u8): Likewise.
12137 (vtrn_u16): Likewise.
12138 (vtrn_u32): Likewise.
12139 (vtrnq_f32): Likewise.
12140 (vtrnq_p8): Likewise.
12141 (vtrnq_p16): Likewise.
12142 (vtrnq_s8): Likewise.
12143 (vtrnq_s16): Likewise.
12144 (vtrnq_s32): Likewise.
12145 (vtrnq_u8): Likewise.
12146 (vtrnq_u16): Likewise.
12147 (vtrnq_u32): Likewise.
12148 (vrsqrte_f16): Likewise.
12149 (vrsqrteq_f16): Likewise.
12150 (vsqrt_f16): Likewise.
12151 (vsqrtq_f16): Likewise.
12152 (vabd_f16): Likewise.
12153 (vabdq_f16): Likewise.
12154 (vpadd_f16): Likewise.
12155 (vpaddq_f16): Likewise.
12156 (vpmax_f16): Likewise.
12157 (vpmaxq_f16): Likewise.
12158 (vpmaxnm_f16): Likewise.
12159 (vpmaxnmq_f16): Likewise.
12160 (vpmin_f16): Likewise.
12161 (vpminq_f16): Likewise.
12162 (vpminnm_f16): Likewise.
12163 (vpminnmq_f16): Likewise.
12164 (vrsqrts_f16): Likewise.
12165 (vrsqrtsq_f16): Likewise.
12166
12167 2019-09-25 Richard Biener <rguenther@suse.de>
12168
12169 PR tree-optimization/91896
12170 * tree-vect-loop.c (vectorizable_reduction): The single
12171 def-use cycle optimization cannot apply when there's more
12172 than one pattern stmt involved.
12173
12174 2019-09-24 Iain Sandoe <iain@sandoe.co.uk>
12175
12176 * config/rs6000/rs6000.md (load_macho_picbase_<mode>): New, using
12177 the 'P' mode iterator, replacing the (removed) SI and DI variants.
12178 (reload_macho_picbase_<mode>): Likewise.
12179
12180 2019-09-24 Iain Sandoe <iain@sandoe.co.uk>
12181
12182 * config/rs6000/rs6000.md: Move darwin.md include until
12183 after the definition of the mode iterators.
12184
12185 2019-09-23 Martin Sebor <msebor@redhat.com>
12186
12187 PR tree-optimization/91570
12188 * tree-ssa-strlen.c (get_range_strlen_dynamic): Handle null and
12189 non-constant minlen, maxlen and maxbound.
12190
12191 2019-09-24 Richard Biener <rguenther@suse.de>
12192
12193 * tree-vectorizer.h (_stmt_vec_info::const_cond_reduc_code):
12194 Rename to...
12195 (_stmt_vec_info::cond_reduc_code): ... this.
12196 (_stmt_vec_info::induc_cond_initial_val): Add.
12197 (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): Rename to...
12198 (STMT_VINFO_VEC_COND_REDUC_CODE): ... this.
12199 (STMT_VINFO_VEC_INDUC_COND_INITIAL_VAL): Add.
12200 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Adjust.
12201 * tree-vect-loop.c (get_initial_def_for_reduction): Pass in
12202 the reduction code.
12203 (vect_create_epilog_for_reduction): Drop special
12204 induction condition reduction params, pass in reduction code
12205 and simplify.
12206 (vectorizable_reduction): Perform condition reduction kind
12207 selection only at analysis time. Adjust passing on state.
12208
12209 2019-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12210
12211 * config/aarch64/aarch64.md (mov<mode>): Don't call
12212 aarch64_split_dimode_const_store on volatile MEM.
12213
12214 2019-09-24 Stamatis Markianos-Wright <stam.markianos-wright@arm.com>
12215
12216 * config/aarch64/aarch64-option-extensions.def (fp16fml):
12217 Update hwcap string for fp16fml.
12218
12219 2019-09-24 Jakub Jelinek <jakub@redhat.com>
12220
12221 PR middle-end/91866
12222 * match.pd (((T)(A)) + CST -> (T)(A + CST)): Formatting fix.
12223 (((T)(A + CST1)) + CST2 -> (T)(A) + (T)CST1 + CST2): New optimization.
12224
12225 2019-09-24 Martin Liska <mliska@suse.cz>
12226
12227 * cfgexpand.c (gimple_assign_rhs_to_tree): Use switch statement
12228 instead of if-elseif-elseif-...
12229 * gimple-expr.c (extract_ops_from_tree): Likewise.
12230 * gimple.c (get_gimple_rhs_num_ops): Likewise.
12231 * tree-ssa-forwprop.c (rhs_to_tree): Likewise.
12232
12233 2019-09-24 Martin Jambor <mjambor@suse.cz>
12234
12235 PR ipa/91831
12236 * ipa-param-manipulation.c (carry_over_param): Make a method of
12237 ipa_param_body_adjustments, remove now unnecessary argument. Also copy
12238 in case of a context mismatch.
12239 (ipa_param_body_adjustments::common_initialization): Adjust call to
12240 carry_over_param.
12241 * ipa-param-manipulation.h (class ipa_param_body_adjustments): Add
12242 private method carry_over_param.
12243
12244 2019-09-24 Martin Jambor <mjambor@suse.cz>
12245
12246 PR ipa/91832
12247 * ipa-sra.c (scan_expr_access): Check that offset is non-negative.
12248
12249 2019-09-24 Richard Biener <rguenther@suse.de>
12250
12251 * tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize MEM_REF
12252 base.
12253
12254 2019-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12255
12256 * config/arm/t-arm (arm-builtins.o): Add dependency on
12257 arm_acle_builtins.def.
12258
12259 2019-09-23 Richard Sandiford <richard.sandiford@arm.com>
12260
12261 PR target/91823
12262 * config/rs6000/altivec.md (altivec_copysign_v4sf3): Generate
12263 canonical CONST_INTs. Use gen_rtvec.
12264
12265 2019-09-23 Richard Biener <rguenther@suse.de>
12266
12267 * tree-vect-loop.c (get_initial_def_for_reduction): Simplify,
12268 avoid adjusting by + 0 or * 1.
12269 (vect_create_epilog_for_reduction): Get reduction code only
12270 when necessary. Deal with adjustment_def only when necessary.
12271
12272 2019-09-23 Richard Sandiford <richard.sandiford@arm.com>
12273
12274 * config/aarch64/atomics.md (aarch64_store_exclusive_pair): Fix
12275 memmodel index.
12276
12277 2019-09-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12278
12279 PR ipa/91835
12280 * lto-section-in.c (lto_section_name): Use "ipa_sra" instead of
12281 "ipa-sra".
12282
12283 2019-09-22 Iain Sandoe <iain@sandoe.co.uk>
12284
12285 * config/rs6000/rs6000.c (machopic_output_stub): Remove dead
12286 code. Merge code blocks with common conditionals. Use declared
12287 macro instead of a magic number for PIC level.
12288
12289 2019-09-21 Martin Sebor <msebor@redhat.com>
12290
12291 PR middle-end/91830
12292 * gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset):
12293 Simplify computation of the offset of the referenced subobject.
12294
12295 2019-09-21 Iain Sandoe <iain@sandoe.co.uk>
12296
12297 * config/darwin.c (machopic_legitimize_pic_address): Check
12298 for lra not reload.
12299
12300 2019-09-21 Richard Sandiford <richard.sandiford@arm.com>
12301
12302 * ira-conflicts.c (can_use_same_reg_p): New function.
12303 (process_reg_shuffles): Take an insn parameter. Ignore cases
12304 in which input operand op_num could seemingly never be allocated
12305 to the same register as the destination.
12306 (add_insn_allocno_copies): Update call to process_reg_shuffles.
12307
12308 2019-09-21 Richard Sandiford <richard.sandiford@arm.com>
12309
12310 * simplify-rtx.c (neg_const_int): Replace with...
12311 (neg_poly_int_rtx): ...this new function.
12312 (simplify_binary_operation_1): Extend (minus x C) -> (plus X -C)
12313 to all CONST_SCALAR_INTs and to CONST_POLY_INT.
12314 (simplify_plus_minus): Likewise for constant terms here.
12315
12316 2019-09-20 Jonas Pfeil <jonas.pfeil@uli-ulm.de>
12317
12318 * config/microblaze/microblaze.h (ASM_OUTPUT_SKIP): Use
12319 HOST_WIDE_PRINT_UNSIGNED.
12320
12321 2019-09-20 John David Anglin <danglin@gcc.gnu.org>
12322
12323 * config/pa/pa.c (pa_trampoline_init): Remove spurious extended
12324 character.
12325
12326 2019-09-20 Maya Rashish <coypu@sdf.org>
12327
12328 PR target/86811
12329 * config/vax/vax.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
12330 Define to speculation_safe_value_not_needed.
12331
12332 2019-09-20 Richard Biener <rguenther@suse.de>
12333 Uros Bizjak <ubizjak@gmail.com>
12334
12335 PR target/91814
12336 * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): Revert
12337 previous change.
12338 (general_scalar_chain::convert_op): Force not suitable memory
12339 operands to a register.
12340
12341 2019-09-20 Richard Biener <rguenther@suse.de>
12342
12343 PR tree-optimization/91821
12344 * tree-vect-loop.c (check_reduction_path): Check we can compute
12345 reduc_idx.
12346 (vect_is_simple_reduction): Set STMT_VINFO_REDUC_IDX.
12347 * tree-vect-patterns.c (vect_reassociating_reduction_p): Return
12348 operands in canonical order.
12349 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
12350 STMT_VINFO_REDUC_IDX.
12351 * tree-vectorizer.h (_stmt_vec_info::reduc_idx): New.
12352 (STMT_VINFO_REDUC_IDX): Likewise.
12353
12354 2019-09-20 Eric Botcazou <ebotcazou@adacore.com>
12355
12356 PR target/91269
12357 * config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
12358
12359 2019-09-20 Richard Biener <rguenther@suse.de>
12360
12361 PR tree-optimization/91822
12362 * tree-vectorizer.h (vectorizable_condition): Restore for_reduction
12363 parameter.
12364 * tree-vect-loop.c (vectorizable_reduction): Adjust asserts
12365 for reduc_index in nested cycles, adjust vectorizable_condition
12366 calls.
12367 * tree-vect-stmts.c (vectorizable_condition): Restore for_reduction
12368 parameter.
12369 (vect_analyze_stmt): Adjust.
12370 (vect_transform_stmt): Likewise.
12371
12372 2019-09-20 Richard Biener <rguenther@suse.de>
12373
12374 PR target/91767
12375 * config/i386/i386-features.c (general_scalar_chain::convert_registers):
12376 Ensure there's a sequence point between allocating the new register
12377 and passing a reference to a reg via regno_reg_rtx.
12378
12379 2019-09-20 Martin Jambor <mjambor@suse.cz>
12380
12381 * coretypes.h (cgraph_edge): Declare.
12382 * ipa-param-manipulation.c: Rewrite.
12383 * ipa-param-manipulation.h: Likewise.
12384 * Makefile.in (GTFILES): Added ipa-param-manipulation.h and ipa-sra.c.
12385 (OBJS): Added ipa-sra.o.
12386 * cgraph.h (ipa_replace_map): Removed fields old_tree, replace_p
12387 and ref_p, added fields param_adjustments and performed_splits.
12388 (struct cgraph_clone_info): Remove ags_to_skip and
12389 combined_args_to_skip, new field param_adjustments.
12390 (cgraph_node::create_clone): Changed parameters to use
12391 ipa_param_adjustments.
12392 (cgraph_node::create_virtual_clone): Likewise.
12393 (cgraph_node::create_virtual_clone_with_body): Likewise.
12394 (tree_function_versioning): Likewise.
12395 (cgraph_build_function_type_skip_args): Removed.
12396 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Convert to
12397 using ipa_param_adjustments.
12398 (clone_of_p): Likewise.
12399 * cgraphclones.c (cgraph_build_function_type_skip_args): Removed.
12400 (build_function_decl_skip_args): Likewise.
12401 (duplicate_thunk_for_node): Adjust parameters using
12402 ipa_param_body_adjustments, copy param_adjustments instead of
12403 args_to_skip.
12404 (cgraph_node::create_clone): Convert to using ipa_param_adjustments.
12405 (cgraph_node::create_virtual_clone): Likewise.
12406 (cgraph_node::create_version_clone_with_body): Likewise.
12407 (cgraph_materialize_clone): Likewise.
12408 (symbol_table::materialize_all_clones): Likewise.
12409 * ipa-fnsummary.c (ipa_fn_summary_t::duplicate): Simplify
12410 ipa_replace_map check.
12411 * ipa-cp.c (get_replacement_map): Do not initialize removed fields.
12412 (initialize_node_lattices): Make aware that some parameters might have
12413 already been removed.
12414 (want_remove_some_param_p): New function.
12415 (create_specialized_node): Convert to using ipa_param_adjustments and
12416 deal with possibly pre-existing adjustments.
12417 * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.
12418 (output_node_opt_summary): Do not stream removed fields. Stream
12419 parameter adjustments instead of argumetns to skip.
12420 (input_node_opt_summary): Likewise.
12421 (input_node_opt_summary): Likewise.
12422 * lto-section-in.c (lto_section_name): Added ipa-sra section.
12423 * lto-streamer.h (lto_section_type): Likewise.
12424 * tree-inline.h (copy_body_data): New fields killed_new_ssa_names and
12425 param_body_adjs.
12426 (copy_decl_to_var): Declare.
12427 * tree-inline.c (update_clone_info): Do not remap old_tree.
12428 (remap_gimple_stmt): Use ipa_param_body_adjustments to modify gimple
12429 statements, walk all extra generated statements and remap their
12430 operands.
12431 (redirect_all_calls): Add killed SSA names to a hash set.
12432 (remap_ssa_name): Do not remap killed SSA names.
12433 (copy_arguments_for_versioning): Renames to copy_arguments_nochange,
12434 half of functionality moved to ipa_param_body_adjustments.
12435 (copy_decl_to_var): Make exported.
12436 (copy_body): Destroy killed_new_ssa_names hash set.
12437 (expand_call_inline): Remap performed splits.
12438 (update_clone_info): Likewise.
12439 (tree_function_versioning): Simplify tree_map processing. Updated to
12440 accept ipa_param_adjustments and use ipa_param_body_adjustments.
12441 * omp-simd-clone.c (simd_clone_vector_of_formal_parm_types): Adjust
12442 for the new interface.
12443 (simd_clone_clauses_extract): Likewise, make args an auto_vec.
12444 (simd_clone_compute_base_data_type): Likewise.
12445 (simd_clone_init_simd_arrays): Adjust for the new interface.
12446 (simd_clone_adjust_argument_types): Likewise.
12447 (struct modify_stmt_info): Likewise.
12448 (ipa_simd_modify_stmt_ops): Likewise.
12449 (ipa_simd_modify_function_body): Likewise.
12450 (simd_clone_adjust): Likewise.
12451 * tree-sra.c: Removed IPA-SRA. Include tree-sra.h.
12452 (type_internals_preclude_sra_p): Make public.
12453 * tree-sra.h: New file.
12454 * ipa-inline-transform.c (save_inline_function_body): Update to
12455 refelct new tree_function_versioning signature.
12456 * ipa-prop.c (adjust_agg_replacement_values): Use a helper from
12457 ipa_param_adjustments to get current parameter indices.
12458 (ipcp_modif_dom_walker::before_dom_children): Likewise.
12459 (ipcp_update_bits): Likewise.
12460 (ipcp_update_vr): Likewise.
12461 * ipa-split.c (split_function): Convert to using ipa_param_adjustments.
12462 * ipa-sra.c: New file.
12463 * multiple_target.c (create_target_clone): Update to reflet new type
12464 of create_version_clone_with_body.
12465 * trans-mem.c (ipa_tm_create_version): Update to reflect new type of
12466 tree_function_versioning.
12467 (modify_function): Update to reflect new type of
12468 tree_function_versioning.
12469 * params.def (PARAM_IPA_SRA_MAX_REPLACEMENTS): New.
12470 * passes.def: Remove old IPA-SRA and add new one.
12471 * tree-pass.h (make_pass_early_ipa_sra): Remove declaration.
12472 (make_pass_ipa_sra): Declare.
12473 * dbgcnt.def: Remove eipa_sra. Added ipa_sra_params and
12474 ipa_sra_retvalues.
12475 * doc/invoke.texi (ipa-sra-max-replacements): New.
12476
12477 2019-09-19 Martin Sebor <msebor@redhat.com>
12478
12479 PR middle-end/91631
12480 * builtins.c (component_size): Correct trailing array computation,
12481 rename to component_ref_size and move...
12482 (compute_objsize): Adjust.
12483 * gimple-ssa-warn-restrict.c (builtin_memref::refsize): New member.
12484 (builtin_access::strict): Do not consider memmove.
12485 (builtin_access::write_off): New function.
12486 (builtin_memref::builtin_memref): Initialize refsize.
12487 (builtin_memref::set_base_and_offset): Adjust refoff and compute
12488 refsize.
12489 (builtin_memref::offset_out_of_bounds): Use ooboff input values.
12490 Handle refsize.
12491 (builtin_access::builtin_access): Initialize dstoff to destination
12492 refeence offset here instead of in maybe_diag_overlap. Adjust
12493 referencess even to unrelated objects. Adjust sizrange of bounded
12494 string functions to reflect bound. For strcat, adjust destination
12495 sizrange by that of source.
12496 (builtin_access::strcat_overlap): Adjust offsets and sizes
12497 to reflect the increase in destination sizrange above.
12498 (builtin_access::overlap): Do not set dstoff here but instead
12499 in builtin_access::builtin_access.
12500 (check_bounds_or_overlap): Use builtin_access::write_off.
12501 (maybe_diag_access_bounds): Add argument. Add informational notes.
12502 (dump_builtin_memref, dump_builtin_access): New functions.
12503 * tree.c (component_ref_size): ...to here.
12504 * tree.h (component_ref_size): Declare.
12505 * tree-ssa-strlen (handle_builtin_strcat): Include the terminating
12506 nul in the size of the source string.
12507
12508 2019-09-19 Lewis Hyatt <lhyatt@gmail.com>
12509
12510 PR c/67224
12511 * doc/cpp.texi: Document support for extended characters in
12512 identifiers.
12513 * doc/cppopts.texi: Likewise.
12514
12515 2019-09-19 Richard Biener <rguenther@suse.de>
12516
12517 * tree-vect-loop.c (vect_is_slp_reduction): Remove.
12518 (check_reduction_path): New overload having the path as result.
12519 (vect_is_simple_reduction): From the detected reduction
12520 path build a SLP reduction chain if possible.
12521
12522 2019-09-19 Richard Biener <rguenther@suse.de>
12523
12524 PR target/91814
12525 * config/i386/i386-features.c (gen_gpr_to_xmm_move_src):
12526 Force operand to a register if it isn't nonimmediate_operand.
12527
12528 2019-09-19 Wilco Dijkstra <wdijkstr@arm.com>
12529
12530 * config/arm/arm.md (<logical_op>di3): Use <optab> and <CODE>.
12531 * config/arm/iterators.md (optab): Add and, ior, xor entries.
12532 (logical_op): Remove code attribute.
12533 (logical_OP): Likewise.
12534
12535 2019-09-19 Martin Liska <mliska@suse.cz>
12536
12537 * ipa-icf.c (sort_congruence_class_groups_by_decl_uid):
12538 Use proper casting.
12539
12540 2019-09-19 Richard Henderson <richard.henderson@linaro.org>
12541
12542 * config/aarch64/aarch64.c (aarch64_print_operand): Allow integer
12543 registers with %R.
12544
12545 * config/aarch64/aarch64.c (aarch64_gen_compare_reg): Add support
12546 for NE comparison of TImode values.
12547 (aarch64_emit_load_exclusive): Add support for TImode.
12548 (aarch64_emit_store_exclusive): Likewise.
12549 (aarch64_split_compare_and_swap): Disable strong_zero_p for TImode.
12550 * config/aarch64/atomics.md (@atomic_compare_and_swap<ALLI_TI>):
12551 Change iterator from ALLI to ALLI_TI.
12552 (@atomic_compare_and_swap<JUST_TI>): New.
12553 (@atomic_compare_and_swap<JUST_TI>_lse): New.
12554 (aarch64_load_exclusive_pair): New.
12555 (aarch64_store_exclusive_pair): New.
12556 * config/aarch64/iterators.md (JUST_TI): New.
12557
12558 * config/aarch64/aarch64 (aarch64_split_compare_and_swap): Disable
12559 strong_zero_p for aarch64_track_speculation; unify some code paths;
12560 use aarch64_gen_compare_reg instead of open-coding.
12561
12562 * config/aarch64/aarch64.opt (-moutline-atomics): New.
12563 * config/aarch64/aarch64.c (aarch64_atomic_ool_func): New.
12564 (aarch64_ool_cas_names, aarch64_ool_swp_names): New.
12565 (aarch64_ool_ldadd_names, aarch64_ool_ldset_names): New.
12566 (aarch64_ool_ldclr_names, aarch64_ool_ldeor_names): New.
12567 (aarch64_expand_compare_and_swap): Honor TARGET_OUTLINE_ATOMICS.
12568 * config/aarch64/atomics.md (atomic_exchange<ALLI>): Likewise.
12569 (atomic_<atomic_op><ALLI>): Likewise.
12570 (atomic_fetch_<atomic_op><ALLI>): Likewise.
12571 (atomic_<atomic_op>_fetch<ALLI>): Likewise.
12572 * doc/invoke.texi: Document -moutline-atomics.
12573
12574 2019-09-19 Feng Xue <fxue@os.amperecomputing.com>
12575
12576 * ipa-fnsummary.c (set_cond_stmt_execution_predicate): Do not compute
12577 trivial predicate for condition branch.
12578 (set_switch_stmt_execution_predicate): Do not compute trivial predicate
12579 for switch case.
12580 (compute_bb_predicates): Update predicate based on post-dominating
12581 relationship.
12582 (analyze_function_body): Calculate post-dominating information.
12583
12584 2019-09-19 Richard Sandiford <richard.sandiford@arm.com>
12585
12586 * tree-vectorizer.h (vectorizable_condition): Take an int
12587 reduction index instead of a boolean flag.
12588 * tree-vect-stmts.c (vectorizable_condition): Likewise.
12589 Swap the "then" and "else" values for EXTRACT_LAST_REDUCTION
12590 reductions if the reduction accumulator is the "then" rather
12591 than the "else" value.
12592 (vect_analyze_stmt): Update call accordingly.
12593 (vect_transform_stmt): Likewise.
12594 * tree-vect-loop.c (vectorizable_reduction): Likewise,
12595 asserting that the index is > 0.
12596
12597 2019-09-19 Martin Liska <mliska@suse.cz>
12598
12599 * ipa-icf.c (sort_sem_items_by_decl_uid): Simplify comparator.
12600 (sort_congruence_classes_by_decl_uid): Likewise.
12601 (sort_congruence_class_groups_by_decl_uid): Use std::pair for
12602 easier sorting.
12603 (sem_item_optimizer::merge_classes): Likewise.
12604
12605 2019-09-19 Richard Biener <rguenther@suse.de>
12606
12607 PR tree-optimization/91812
12608 * tree-ssa-phiprop.c (propagate_with_phi): Do not replace
12609 volatile loads.
12610
12611 2019-09-19 Richard Sandiford <richard.sandiford@arm.com>
12612
12613 * defaults.h (TARGET_UNIT): New macro.
12614 (target_unit): New type.
12615 * rtl.h (native_encode_rtx, native_decode_rtx)
12616 (native_decode_vector_rtx, subreg_size_lsb): Declare.
12617 (subreg_lsb_1): Turn into an inline wrapper around subreg_size_lsb.
12618 * rtlanal.c (subreg_lsb_1): Delete.
12619 (subreg_size_lsb): New function.
12620 * simplify-rtx.c: Include rtx-vector-builder.h
12621 (simplify_immed_subreg): Delete.
12622 (native_encode_rtx, native_decode_vector_rtx, native_decode_rtx)
12623 (simplify_const_vector_byte_offset, simplify_const_vector_subreg): New
12624 functions.
12625 (simplify_subreg): Use them.
12626 (test_vector_subregs_modes, test_vector_subregs_repeating)
12627 (test_vector_subregs_fore_back, test_vector_subregs_stepped)
12628 (test_vector_subregs): New functions.
12629 (test_vector_ops): Call test_vector_subregs for integer vector
12630 modes with at least 2 elements.
12631
12632 2019-09-19 Richard Biener <rguenther@suse.de>
12633
12634 * tree-parloops.c (parloops_is_slp_reduction): Do not set
12635 LOOP_VINFO_OPERANDS_SWAPPED.
12636 (parloops_is_simple_reduction): Likewise.
12637 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Do not
12638 initialize operands_swapped.
12639 (_loop_vec_info::~_loop_vec_info): Do not re-canonicalize stmts.
12640 (vect_is_slp_reduction): Do not swap operands.
12641 * tree-vectorizer.h (_loop_vec_info::operands_swapped): Remove.
12642 (LOOP_VINFO_OPERANDS_SWAPPED): Likewise.
12643
12644 2019-09-19 Hongtao Liu <hongtao.liu@intel.com>
12645
12646 PR target/87007
12647 * config/i386.md (*floatuns<SWI48:mode><MODEF:mode>2_avx512):
12648 Add avx_partial_xmm_update.
12649
12650 2019-09-18 Jim Wilson <jimw@sifive.com>
12651
12652 PR target/91683
12653 * config/riscv/riscv-protos.h (riscv_split_symbol): New bool parameter.
12654 (riscv_move_integer): Likewise.
12655 * config/riscv/riscv.c (riscv_split_integer): Pass FALSE for new
12656 riscv_move_integer arg.
12657 (riscv_legitimize_move): Likewise.
12658 (riscv_force_temporary): New parameter in_splitter. Don't call
12659 force_reg if true.
12660 (riscv_unspec_offset_high): Pass FALSE for new riscv_force_temporary
12661 arg.
12662 (riscv_add_offset): Likewise.
12663 (riscv_split_symbol): New parameter in_splitter. Pass to
12664 riscv_force_temporary.
12665 (riscv_legitimize_address): Pass FALSE for new riscv_split_symbol
12666 arg.
12667 (riscv_move_integer): New parameter in_splitter. New local
12668 can_create_psuedo. Don't call riscv_split_integer or force_reg when
12669 in_splitter TRUE.
12670 (riscv_legitimize_const_move): Pass FALSE for new riscv_move_integer,
12671 riscv_split_symbol, and riscv_force_temporary args.
12672 * config/riscv/riscv.md (low<mode>+1): Pass TRUE for new
12673 riscv_move_integer arg.
12674 (low<mode>+2): Pass TRUE for new riscv_split_symbol arg.
12675
12676 2019-09-18 H.J. Lu <hongjiu.lu@intel.com>
12677
12678 PR target/90878
12679 * config/i386/x86-tune-costs.h (skylake_cost): Restore SImode
12680 hard register store cost to 6.
12681
12682 2019-09-18 H.J. Lu <hongjiu.lu@intel.com>
12683
12684 PR target/91446
12685 * config/i386/x86-tune-costs.h (skylake_cost): Increase SImode
12686 pseudo register store cost from 3 to 6 to make it the same as
12687 QImode and HImode.
12688
12689 2019-09-18 Wilco Dijkstra <wdijkstr@arm.com>
12690
12691 PR target/91738
12692 * config/arm/arm.md (<logical_op>di3): Expand explicitly.
12693 (one_cmpldi2): Likewise.
12694 * config/arm/arm.c (const_ok_for_dimode_op): Return true if one
12695 of the constant parts is simple.
12696 * config/arm/iterators.md (LOGICAL): Add new code iterator.
12697 (logical_op): Add new code attribute.
12698 (logical_OP): Likewise.
12699 * config/arm/predicates.md (arm_anddi_operand): Add predicate.
12700 (arm_iordi_operand): Add predicate.
12701 (arm_xordi_operand): Add predicate.
12702
12703 2019-09-18 Wilco Dijkstra <wdijkstr@arm.com>
12704
12705 * config/arm/arm.md (maddsidi4): Remove expander.
12706 (mulsidi3adddi): Remove pattern.
12707 (mulsidi3adddi_v6): Likewise.
12708 (mulsidi3_nov6): Likewise.
12709 (mulsidi3_v6): Likewise.
12710 (umulsidi3): Remove expander.
12711 (umulsidi3_nov6): Remove pattern.
12712 (umulsidi3_v6): Likewise.
12713 (umulsidi3adddi): Likewise.
12714 (umulsidi3adddi_v6): Likewise.
12715 (<Us>mulsidi3): Add combined expander.
12716 (<Us>maddsidi4): Likewise.
12717 (<US>mull): Add combined umull and smull pattern.
12718 (<US>mlal): Likewise.
12719 * config/arm/iterators.md (Us): Add new iterator.
12720
12721 2019-09-18 Richard Biener <rguenther@suse.de>
12722
12723 * tree-vect-loop.c (vect_is_simple_reduction): Remove operand
12724 swapping.
12725 (vectorize_fold_left_reduction): Remove assert.
12726 (vectorizable_reduction): Also expect COND_EXPR non-reduction
12727 operand in position 2. Remove assert.
12728
12729 2019-09-18 Wilco Dijkstra <wdijkstr@arm.com>
12730
12731 * config/arm/arm.md (smulsi3_highpart): Use <US> and <SE> iterators.
12732 (smulsi3_highpart_nov6): Remove pattern.
12733 (smulsi3_highpart_v6): Likewise.
12734 (umulsi3_highpart): Likewise.
12735 (umulsi3_highpart_nov6): Likewise.
12736 (umulsi3_highpart_v6): Likewise.
12737 (<US>mull_high): Add new combined multiply pattern.
12738
12739 2019-09-18 Wilco Dijkstra <wdijkstr@arm.com>
12740
12741 * config/arm/arm.md (arm_mulsi3): Remove pattern.
12742 (arm_mulsi3_v6): Likewise.
12743 (mulsi3addsi_v6): Likewise.
12744 (mulsi3subsi): Likewise.
12745 (mul): Add new multiply pattern.
12746 (mla): Likewise.
12747 (mls): Likewise.
12748
12749 2019-09-18 Richard Biener <rguenther@suse.de>
12750
12751 * tree-parloops.c (report_ploop_op): Copy from report_vect_op.
12752 (parloops_valid_reduction_input_p): Copy from
12753 valid_reduction_input_p.
12754 (parloops_is_slp_reduction): Copy from vect_is_slp_reduction.
12755 (parloops_needs_fold_left_reduction_p): Copy from
12756 needs_fold_left_reduction_p.
12757 (parloops_is_simple_reduction): Copy from
12758 vect_is_simple_reduction.
12759 (parloops_force_simple_reduction): Copy from
12760 vect_force_simple_reduction.
12761 (gather_scalar_reductions): Adjust.
12762 * tree-vect-loop.c (vect_force_simple_reduction): Make static.
12763 * tree-vectorizer.h (vect_force_simple_reduction): Remove.
12764
12765 2019-09-18 Richard Biener <rguenther@suse.de>
12766
12767 * tree-vectorizer.h (get_initial_def_for_reduction): Remove.
12768 * tree-vect-loop.c (get_initial_def_for_reduction): Make
12769 static.
12770 (vect_create_epilog_for_reduction): Remove dead code.
12771
12772 2019-09-18 Richard Sandiford <richard.sandiford@arm.com>
12773
12774 * varasm.c (assemble_real): Generate canonical const_ints.
12775
12776 2019-09-18 Richard Biener <rguenther@suse.de>
12777
12778 PR lto/91763
12779 * lto-streamer-in.c (input_eh_regions): Move EH init to
12780 lto_materialize_function.
12781 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers):
12782 Likewise.
12783
12784 2019-09-18 Richard Sandiford <richard.sandiford@arm.com>
12785
12786 * tree-ssa-ccp.c (get_value_for_expr): Check whether CONSTANTs
12787 are INTEGER_CSTs.
12788
12789 2019-09-18 Richard Sandiford <richard.sandiford@arm.com>
12790
12791 * gimplify.c (gimplify_decl_expr): Use poly_int_tree_p instead
12792 of checking specifically for INTEGER_CST.
12793
12794 2019-09-18 Richard Sandiford <richard.sandiford@arm.com>
12795
12796 * stor-layout.c (compute_record_mode): Operate on poly_uint64
12797 sizes instead of uhwi sizes.
12798
12799 2019-09-18 Richard Sandiford <richard.sandiford@arm.com>
12800
12801 * dwarf2out.c (loc_list_from_tree_1): Handle POLY_INT_CST.
12802 (add_const_value_attribute): Handle CONST_POLY_INT.
12803
12804 2019-09-18 Martin Liska <mliska@suse.cz>
12805
12806 * dbgcnt.def (store_merging): New counter.
12807 * gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_stores):
12808 Use it in store merging.
12809
12810 2019-09-17 Richard Sandiford <richard.sandiford@arm.com>
12811
12812 * config/aarch64/aarch64.c (aarch64_sched_variable_issue): New
12813 function.
12814 (TARGET_SCHED_VARIABLE_ISSUE): New macro.
12815 * config/arm/arm.c (arm_sched_variable_issue): New function.
12816 (TARGET_SCHED_VARIABLE_ISSUE): New macro.
12817
12818 2019-09-17 Richard Sandiford <richard.sandiford@arm.com>
12819
12820 * config/arm/types.md (no_reservation): New reservation.
12821 * config/aarch64/falkor.md (falkor_other_0_nothing): Don't handle
12822 no_insn here.
12823 * config/aarch64/saphira.md (saphira_other_0_nothing): Likewise.
12824 * config/aarch64/thunderx2t99.md (thunderx2t99_nothing): Likewise.
12825 * config/aarch64/tsv110.md (tsv110_alu): Likewise.
12826 * config/arm/arm1020e.md (1020alu_op): Likewise.
12827 * config/arm/arm1026ejs.md (alu_op): Likewise.
12828 * config/arm/arm1136jfs.md (11_alu_op): Likewise.
12829 * config/arm/arm926ejs.md (9_alu_op): Likewise.
12830 * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
12831 * config/arm/cortex-a17.md (cortex_a17_alu): Likewise.
12832 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
12833 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
12834 * config/arm/cortex-a57.md (cortex_a57_alu): Likewise.
12835 * config/arm/cortex-a7.md (cortex_a7_alu_shift): Likewise.
12836 * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
12837 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
12838 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
12839 * config/arm/cortex-m7.md (cortex_m7_alu_simple): Likewise.
12840 * config/arm/cortex-r4.md (cortex_r4_alu_shift_reg): Likewise.
12841 * config/arm/fa526.md (526_alu_op): Likewise.
12842 * config/arm/fa606te.md (606te_alu_op): Likewise.
12843 * config/arm/fa626te.md (626te_alu_op): Likewise.
12844 * config/arm/fa726te.md (726te_alu_op): Likewise.
12845 * config/arm/xgene1.md (xgene1_nop): Likewise.
12846
12847 2019-09-17 Richard Sandiford <richard.sandiford@arm.com>
12848
12849 * config/arm/thumb1.md (*thumb1_tablejump): Change type from
12850 "no_insn" to "branch".
12851
12852 2019-09-17 Richard Sandiford <richard.sandiford@arm.com>
12853
12854 * array-traits.h (array_traits<T[N]>::size): Remove parameter name.
12855
12856 2019-09-17 Richard Biener <rguenther@suse.de>
12857
12858 PR debug/91772
12859 * dwarf2out.c (dwarf2out_late_global_decl): If early dwarf
12860 was missing generate locations only once.
12861
12862 2019-09-17 Feng Xue <fxue@os.amperecomputing.com>
12863
12864 PR ipa/91089
12865 * doc/invoke.texi (ipa-max-switch-predicate-bounds): Document new
12866 option.
12867 * params.def (PARAM_IPA_MAX_SWITCH_PREDICATE_BOUNDS): New.
12868 * ipa-fnsummary.c (set_switch_stmt_execution_predicate): Add predicate
12869 for switch default case using range analysis information.
12870
12871 2019-09-17 Christophe Lyon <christophe.lyon@linaro.org>
12872
12873 PR target/91749
12874 * config/arm/arm.c (arm_valid_target_attribute_rec): Make sure the
12875 mode attributed is supported by FDPIC.
12876
12877 2019-09-17 Richard Biener <rguenther@suse.de>
12878
12879 PR tree-optimization/91790
12880 * tree-vect-stmts.c (vectorizable_load): For BB vectorization
12881 use the correct DR for setting up realignment.
12882
12883 2019-09-16 Uroš Bizjak <ubizjak@gmail.com>
12884
12885 PR target/91719
12886 * config/i386/i386.h (TARGET_USE_XCHG_FOR_ATOMIC_STORE): New macro.
12887 * config/i386/x86-tune.def (X86_TUNE_USE_XCHG_FOR_ATOMIC_STORE): New.
12888 * config/i386/sync.md (atomic_store<mode>): emit XCHG for
12889 TARGET_USE_XCHG_FOR_ATOMIC_STORE.
12890
12891 2019-09-16 Jason Merrill <jason@redhat.com>
12892
12893 * Makefile.in (build/genmatch.o): Depend on $(CPPLIB_H).
12894
12895 2019-09-16 Martin Liska <mliska@suse.cz>
12896
12897 * gimple-fold.c (or_comparisons_1): Remove rules moved
12898 to ...
12899 * match.pd: ... here.
12900
12901 2019-09-16 Martin Liska <mliska@suse.cz>
12902
12903 * gimple-fold.c (or_comparisons_1): Remove rules
12904 moved to ...
12905 * match.pd: ... here.
12906
12907 2019-09-16 Martin Liska <mliska@suse.cz>
12908
12909 * genmatch.c (dt_node::append_simplify): Do not print
12910 warning when we have duplicate patterns belonging
12911 to a same simplify rule.
12912 * gimple-fold.c (and_comparisons_1): Remove matching moved to match.pd.
12913 (maybe_fold_comparisons_from_match_pd): Handle
12914 tcc_comparison as a results.
12915 * match.pd: Handle (X == CST1) && (X OP2 CST2) conditions.
12916
12917 2019-09-16 Li Jia He <helijia@linux.ibm.com>
12918 Qi Feng <ffengqi@linux.ibm.com>
12919
12920 PR middle-end/88784
12921 * match.pd (x > y && x != XXX_MIN): Optimize into 'x > y'.
12922 (x > y && x == XXX_MIN): Optimize into 'false'.
12923 (x <= y && x == XXX_MIN): Optimize into 'x == XXX_MIN'.
12924 (x < y && x != XXX_MAX): Optimize into 'x < y'.
12925 (x < y && x == XXX_MAX): Optimize into 'false'.
12926 (x >= y && x == XXX_MAX): Optimize into 'x == XXX_MAX'.
12927 (x > y || x != XXX_MIN): Optimize into 'x != XXX_MIN'.
12928 (x <= y || x != XXX_MIN): Optimize into 'true'.
12929 (x <= y || x == XXX_MIN): Optimize into 'x <= y'.
12930 (x < y || x != XXX_MAX): Optimize into 'x != XXX_MAX'.
12931 (x >= y || x != XXX_MAX): Optimize into 'true'.
12932 (x >= y || x == XXX_MAX): Optimize into 'x >= y'.
12933
12934 2019-09-16 Li Jia He <helijia@linux.ibm.com>
12935 Martin Liska <mliska@suse.cz>
12936
12937 * gimple-fold.c (and_comparisons_1): Add type as first
12938 argument.
12939 (and_var_with_comparison): Likewise.
12940 (and_var_with_comparison_1): Likewise.
12941 (or_comparisons_1): Likewise.
12942 (or_var_with_comparison): Likewise.
12943 (or_var_with_comparison_1): Likewise.
12944 (maybe_fold_and_comparisons): Call maybe_fold_comparisons_from_match_pd.
12945 (maybe_fold_or_comparisons): Likewise.
12946 (maybe_fold_comparisons_from_match_pd): New.
12947 * gimple-fold.h (maybe_fold_and_comparisons): Add type argument.
12948 (maybe_fold_or_comparisons): Likewise.
12949 * gimple.c (gimple_size): Make it public and add num_ops argument.
12950 (gimple_init): New function.
12951 (gimple_alloc): Call gimple_init.
12952 * gimple.h (gimple_size): New.
12953 (gimple_init): Likewise.
12954 * tree-if-conv.c (fold_or_predicates): Pass type.
12955 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
12956 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Likewise.
12957 (optimize_vec_cond_expr): Likewise.
12958 (ovce_extract_ops): Return type of conditional expression.
12959 * tree-ssanames.c (init_ssa_name_imm_use): New.
12960 (make_ssa_name_fn): Use init_ssa_name_imm_use.
12961 * tree-ssanames.h (init_ssa_name_imm_use): New.
12962
12963 2019-09-16 Richard Biener <rguenther@suse.de>
12964
12965 PR tree-optimization/91756
12966 PR tree-optimization/87132
12967 * tree-ssa-alias.h (enum translate_flags): New.
12968 (get_continuation_for_phi): Use it instead of simple bool flag.
12969 (walk_non_aliased_vuses): Likewise.
12970 * tree-ssa-alias.c (maybe_skip_until): Adjust.
12971 (get_continuation_for_phi): When looking across backedges only
12972 disallow valueization.
12973 (walk_non_aliased_vuses): Adjust.
12974 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid valueization
12975 if requested.
12976
12977 2019-09-14 Kewen Lin <linkw@gcc.gnu.org>
12978
12979 PR middle-end/80791
12980 * config/rs6000/rs6000.c (TARGET_HAVE_COUNT_REG_DECR_P): New macro.
12981 (TARGET_DOLOOP_COST_FOR_GENERIC): Likewise.
12982 (TARGET_DOLOOP_COST_FOR_ADDRESS): Likewise.
12983 * target.def (have_count_reg_decr_p): New hook.
12984 (doloop_cost_for_generic): Likewise.
12985 (doloop_cost_for_address): Likewise.
12986 * doc/tm.texi.in (TARGET_HAVE_COUNT_REG_DECR_P): Likewise.
12987 (TARGET_DOLOOP_COST_FOR_GENERIC): Likewise.
12988 (TARGET_DOLOOP_COST_FOR_ADDRESS): Likewise.
12989 * doc/tm.texi: Regenerate.
12990 * tree-ssa-loop-ivopts.c (comp_cost::operator+=): Consider infinite cost
12991 addend.
12992 (record_group): Init doloop_p.
12993 (add_candidate_1): Add optional argument doloop, change the handlings
12994 accordingly.
12995 (add_candidate): Likewise.
12996 (generic_predict_doloop_p): Update attribute.
12997 (force_expr_to_var_cost): Add costing for expressions COND_EXPR/LT_EXPR/
12998 LE_EXPR/GT_EXPR/GE_EXPR/EQ_EXPR/NE_EXPR/UNORDERED_EXPR/ORDERED_EXPR/
12999 UNLT_EXPR/UNLE_EXPR/UNGT_EXPR/UNGE_EXPR/UNEQ_EXPR/LTGT_EXPR/MAX_EXPR/
13000 MIN_EXPR.
13001 (get_computation_cost): Update for doloop IV cand extra cost.
13002 (determine_group_iv_cost_cond): Update for doloop IV cand.
13003 (determine_iv_cost): Likewise.
13004 (ivopts_estimate_reg_pressure): Likewise.
13005 (may_eliminate_iv): Update handlings for doloop IV cand.
13006 (add_iv_candidate_for_doloop): New function.
13007 (find_iv_candidates): Call function add_iv_candidate_for_doloop.
13008 (iv_ca_set_no_cp): Update for doloop IV cand.
13009 (iv_ca_set_cp): Likewise.
13010 (iv_ca_dump): Dump register cost.
13011 (find_doloop_use): New function.
13012 (analyze_and_mark_doloop_use): Likewise.
13013 (tree_ssa_iv_optimize_loop): Call function analyze_and_mark_doloop_use.
13014
13015 2019-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
13016
13017 PR middle-end/91708
13018 * cse.c (cse_insn): Do not replace anything with a
13019 MEM.
13020
13021 2019-09-13 Ian Lance Taylor <iant@golang.org>
13022
13023 * doc/invoke.texi (Optimize Options): Fix typo.
13024
13025 2019-09-12 Uroš Bizjak <ubizjak@gmail.com>
13026
13027 PR tree-optimization/89386
13028 * config/i386/sse.md (smulhrs<mode>3): New expander.
13029 (smulhrsv4hi3): Ditto.
13030
13031 2019-09-12 Richard Biener <rguenther@suse.de>
13032
13033 PR tree-optimization/91750
13034 * tree-vect-loop.c (vectorizable_induction): Compute IV increments
13035 in the type of the evolution.
13036
13037 2019-09-12 Yuliang Wang <yuliang.wang@arm.com>
13038
13039 PR tree-optimization/89386
13040 * config/aarch64/aarch64-sve2.md (<su>mull<bt><Vwide>)
13041 (<r>shrnb<mode>, <r>shrnt<mode>): New SVE2 patterns.
13042 (<su>mulh<r>s<mode>3): New pattern for MULHRS.
13043 * config/aarch64/iterators.md (UNSPEC_SMULLB, UNSPEC_SMULLT)
13044 (UNSPEC_UMULLB, UNSPEC_UMULLT, UNSPEC_SHRNB, UNSPEC_SHRNT)
13045 (UNSPEC_RSHRNB, UNSPEC_RSHRNT, UNSPEC_SMULHS, UNSPEC_SMULHRS)
13046 UNSPEC_UMULHS, UNSPEC_UMULHRS): New unspecs.
13047 (MULLBT, SHRNB, SHRNT, MULHRS): New int iterators.
13048 (su, r): Handle the unspecs above.
13049 (bt): New int attribute.
13050 * internal-fn.def (IFN_MULHS, IFN_MULHRS): New internal functions.
13051 * internal-fn.c (first_commutative_argument): Commutativity info for
13052 above.
13053 * optabs.def (smulhs_optab, smulhrs_optab, umulhs_optab)
13054 (umulhrs_optab): New optabs.
13055 * doc/md.texi (smulhs$var{m3}, umulhs$var{m3})
13056 (smulhrs$var{m3}, umulhrs$var{m3}): Documentation for the above.
13057 * tree-vect-patterns.c (vect_recog_mulhs_pattern): New pattern
13058 function.
13059 (vect_vect_recog_func_ptrs): Add it.
13060
13061 2019-09-11 Michael Meissner <meissner@linux.ibm.com>
13062
13063 * config/rs6000/predicates.md (non_add_cint_operand): Simplify the
13064 code.
13065
13066 2019-09-11 Nathan Sidwell <nathan@acm.org>
13067
13068 * tree.h (MARK_TS_TYPE_NON_COMMON): New.
13069 * tree.c (tree_node_structure_for_code): Reformat and alphabetize.
13070
13071 2019-09-11 Richard Biener <rguenther@suse.de>
13072
13073 * lto-opts.c (lto_write_options): Stream -g when debug is enabled.
13074 * lto-wrapper.c (merge_and_complain): Pick up -g.
13075 (append_compiler_options): Likewise.
13076 (run_gcc): Re-instantiate handling -g0 at link-time.
13077 * doc/invoke.texi (flto): Document debug info generation.
13078
13079 2019-09-11 Richard Biener <rguenther@suse.de>
13080
13081 PR tree-optimization/90387
13082 * vr-values.c (vr_values::extract_range_basic): After inlining
13083 simplify non-constant __builtin_constant_p to false.
13084
13085 2019-09-11 Eric Botcazou <ebotcazou@adacore.com>
13086
13087 PR rtl-optimization/89795
13088 * rtlanal.c (nonzero_bits1) <SUBREG>: Do not propagate results from
13089 inner REGs to paradoxical SUBREGs if WORD_REGISTER_OPERATIONS is set.
13090
13091 2019-09-11 Jakub Jelinek <jakub@redhat.com>
13092
13093 PR tree-optimization/91723
13094 * tree-vect-stmts.c (vectorizable_call): Use types_compatible_p check
13095 instead of pointer equality when checking if argument vectypes are
13096 the same.
13097
13098 PR middle-end/91725
13099 * match.pd ((A / (1 << B)) -> (A >> B)): Call tree_nonzero_bits instead
13100 of get_nonzero_bits, only call it for integral types.
13101
13102 2019-09-11 Richard Biener <rguenther@suse.de>
13103
13104 Revert
13105 2019-09-09 Barnaby Wilks <barnaby.wilks@arm.com>
13106
13107 * match.pd: Add flag_unsafe_math_optimizations check
13108 before deciding on the widest type in a binary math operation.
13109
13110 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
13111
13112 * doc/tm.texi.in: Document that exactly one of CALL_USED_REGISTERS
13113 and CALL_REALLY_USED_REGISTERS must be defined, and that
13114 CALL_REALLY_USED_REGISTERS is preferred.
13115 * doc/tm.texi: Regenerate.
13116 * hard-reg-set.h (target_hard_regs::x_call_really_used_regs): Delete.
13117 (call_really_used_regs): Likewise.
13118 * reginfo.c: Raise an #error if both CALL_USED_REGISTERS and
13119 CALL_REALLY_USED_REGISTERS are defined.
13120 (initial_call_used_regs): Use CALL_REALLY_USED_REGISTERS as the
13121 initial value if defined.
13122 (initial_call_really_used_regs): Delete.
13123 (saved_call_really_used_regs): Likewise.
13124 (CALL_REALLY_USED_REGNO_P): Likewise.
13125 (init_reg_sets): Remove handling of call_really_used_regs.
13126 (save_register_info, restore_register_info, globalize_reg): Likewise.
13127 (init_reg_sets_1): Likewise. Use call_used_regs instead of
13128 CALL_REALLY_USED_REGNO_P. Don't set call_used_regs for registers
13129 outside operand_reg_set.
13130 (fix_register): Don't change call_used_regs if
13131 CALL_REALLY_USED_REGISTERS is defined.
13132 * config/csky/csky.h (CALL_USED_REGISTERS): Delete.
13133 * config/csky/csky.c (get_csky_live_regs): Use call_used_regs
13134 instead of call_really_used_regs.
13135 (csky_conditional_register_usage): Remove the old handling of
13136 call_used_regs and change the handling of call_really_used_regs
13137 to use call_used_regs instead.
13138 * config/ia64/ia64.h (CALL_USED_REGISTERS): Delete.
13139 * config/ia64/ia64.c (fix_range): Don't set call_used_regs when
13140 making a register fixed.
13141 * config/m32r/m32r.h (CALL_USED_REGISTERS): Delete.
13142 * config/m32r/m32r.c (MUST_SAVE_REGISTER): Use call_used_regs
13143 instead of call_really_used_regs.
13144 (m32r_conditional_register_usage): Don't set call_used_regs when
13145 making a register fixed.
13146 * config/mips/mips.h (CALL_USED_REGISTERS): Delete.
13147 * config/mips/mips.c (mips_global_pointer): Use call_used_regs
13148 instead of call_really_used_regs.
13149 (mips_interrupt_extra_call_saved_reg_p): Likewise.
13150 (mips_cfun_call_saved_reg_p): Likewise.
13151 (mips_swap_registers): Remove the old handling of call_used_regs
13152 and change the handling of call_really_used_regs to use call_used_regs
13153 instead.
13154 (mips_conditional_register_usage): Likewise.
13155 * config/mn10300/mn10300.h (CALL_USED_REGISTERS): Delete.
13156 * config/mn10300/mn10300.c (fp_regs_to_save): Use call_used_regs
13157 instead of call_really_used_regs.
13158 (mn10300_get_live_callee_saved_regs): Likewise.
13159 (mn10300_expand_prologue, mn10300_expand_epilogue): Likewise.
13160 (mn10300_conditional_register_usage): Don't set call_used_regs when
13161 making a register fixed.
13162 * config/rs6000/rs6000.h (CALL_USED_REGISTERS): Delete.
13163 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
13164 Remove the old handling of call_used_regs and change the handling
13165 of call_really_used_regs to use call_used_regs instead.
13166 * config/s390/s390.h (CALL_USED_REGISTERS): Delete.
13167 * config/s390/s390.c (s390_regs_ever_clobbered): Use call_used_regs
13168 instead of call_really_used_regs.
13169 (s390_register_info_gprtofpr, s390_register_info): Likewise.
13170 (s390_hard_regno_rename_ok, s390_hard_regno_scratch_ok): Likewise.
13171 (s390_emit_prologue, s300_set_up_by_prologue): Likewise.
13172 (s390_can_use_return_insn, s390_optimize_prologue): Likewise.
13173 (s390_conditional_register_usage): Remove the old handling of
13174 call_used_regs and change the handling of call_really_used_regs
13175 to use call_used_regs instead.
13176 * config/sh/sh.h (CALL_USED_REGISTERS): Delete.
13177 * config/sh/sh.c (output_stack_adjust, calc_live_regs): Likewise.
13178 (sh_fix_range, reg_unused_after): Likewise.
13179 (sh_conditional_register_usage): Remove the old handling of
13180 call_used_regs and change the handling of call_really_used_regs
13181 to use call_used_regs instead.
13182 * config/sparc/sparc.h (CALL_USED_REGISTERS): Delete.
13183 * config/sparc/sparc.c (sparc_conditional_register_usage): Don't set
13184 call_used_regs when making a register fixed.
13185 * config/tilegx/tilegx.h (CALL_USED_REGISTERS): Delete.
13186 * config/tilegx/tilegx.c (tilegx_conditional_register_usage): Don't set
13187 call_used_regs when making a register fixed.
13188 * config/tilepro/tilepro.h (CALL_USED_REGISTERS): Delete.
13189 * config/tilepro/tilepro.c (tilepro_conditional_register_usage): Don't
13190 set call_used_regs when making a register fixed.
13191 * config/visium/visium.h (CALL_USED_REGISTERS): Delete.
13192 * config/visium/visium.c (visium_conditional_register_usage): Remove
13193 the old handling of call_used_regs and change the handling of
13194 call_really_used_regs to use call_used_regs instead.
13195
13196 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
13197
13198 * hard-reg-set.h (call_used_regs): Only define if IN_TARGET_CODE.
13199 (call_used_or_fixed_reg_p): Expand definition of call_used_regs.
13200 * reginfo.c (call_used_regs): New macro.
13201
13202 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
13203
13204 * config/alpha/alpha.c (alpha_compute_frame_layout): Remove redundant
13205 fixed_regs test.
13206 * config/bpf/bpf.c (bpf_compute_frame_layout, bpf_expand_prologue)
13207 (bpf_expand_epilogue): Likewise.
13208 * config/c6x/c6x.c (c6x_save_reg): Likewise.
13209 * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
13210 (ft32_expand_epilogue): Likewise.
13211 * config/i386/i386.c (ix86_save_reg): Likewise.
13212 * config/moxie/moxie.c (moxie_expand_prologue): Likewise.
13213 (moxie_expand_epilogue): Likewise.
13214 * config/tilegx/tilegx.c (need_to_save_reg): Likewise.
13215 * config/tilepro/tilepro.c (need_to_save_reg): Likewise.
13216 * config/xtensa/xtensa.c (xtensa_call_save_reg): Likewise.
13217
13218 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
13219
13220 * hard-reg-set.h (call_used_or_fixed_reg_p): New macro.
13221 * cfgloopanal.c (init_set_costs): Use call_used_or_fixed_reg_p
13222 instead of testing call_used_regs directly.
13223 * config/aarch64/aarch64.c (aarch64_layout_frame): Likewise.
13224 (aarch64_components_for_bb): Likewise.
13225 * config/alpha/alpha.c (alpha_compute_frame_layout): Likewise.
13226 * config/arc/arc.c (arc_must_save_register): Likewise.
13227 (arc_epilogue_uses): Likewise.
13228 * config/arm/arm.c (arm_option_override, use_return_insn): Likewise.
13229 (legitimize_pic_address, callee_saved_reg_p): Likewise.
13230 (arm_compute_save_reg0_reg12_mask): Likewise.
13231 (arm_compute_save_core_reg_mask): Likewise.
13232 (arm_get_vfp_saved_size, arm_compute_frame_layout): Likewise.
13233 (arm_save_coproc_regs, thumb1_extra_regs_pushed): Likewise.
13234 (cmse_nonsecure_entry_clear_before_return): Likewise.
13235 (thumb1_expand_epilogue, arm_expand_epilogue_apcs_frame): Likewise.
13236 (arm_expand_epilogue): Likewise.
13237 * config/avr/avr.c (avr_regs_to_save, sequent_regs_live): Likewise.
13238 (avr_function_arg_advance, avr_find_unused_d_reg): Likewise.
13239 (_reg_unused_after): Likewise.
13240 * config/bfin/bfin.c (must_save_p, expand_prologue_reg_save): Likewise.
13241 (expand_epilogue_reg_restore, n_regs_saved_by_prologue): Likewise.
13242 (add_to_reg, hwloop_optimize): Likewise.
13243 * config/bpf/bpf.c (bpf_compute_frame_layout, bpf_expand_prologue)
13244 (bpf_expand_epilogue): Likewise.
13245 * config/c6x/c6x.c (c6x_save_reg, c6x_regno_reg_class): Likewise.
13246 * config/cr16/cr16.c (cr16_compute_save_regs): Likewise.
13247 * config/cris/cris.c (cris_reg_saved_in_regsave_area): Likewise.
13248 * config/epiphany/epiphany.c (epiphany_init_reg_tables): Likewise.
13249 (epiphany_compute_function_type, MUST_SAVE_REGISTER): Likewise.
13250 (epiphany_output_mi_thunk, epiphany_start_function): Likewise.
13251 * config/fr30/fr30.c (fr30_num_arg_regs): Likewise.
13252 * config/frv/frv.c (frv_stack_info): Likewise.
13253 * config/ft32/ft32.c (ft32_compute_frame): Likewise.
13254 (ft32_expand_prologue, ft32_expand_epilogue): Likewise.
13255 * config/gcn/gcn.c (gcn_compute_frame_offsets): Likewise.
13256 (move_callee_saved_registers): Likewise.
13257 * config/h8300/h8300.c (byte_reg): Likewise.
13258 * config/i386/i386-options.c (ix86_set_current_function): Likewise.
13259 * config/i386/i386.c (ix86_save_reg, ix86_expand_prologue): Likewise.
13260 (ix86_expand_epilogue, x86_order_regs_for_local_alloc): Likewise.
13261 * config/i386/predicates.md (sibcall_memory_operand): Likewise.
13262 * config/ia64/ia64.c (emit_safe_across_calls, find_gr_spill): Likewise.
13263 (next_scratch_gr_reg, ia64_compute_frame_size): Likewise.
13264 * config/iq2000/iq2000.h (MUST_SAVE_REGISTER): Likewise.
13265 * config/lm32/lm32.c (lm32_compute_frame_size): Likewise.
13266 * config/m32c/m32c.c (need_to_save): Likewise.
13267 * config/m68k/m68k.c (m68k_save_reg): Likewise.
13268 * config/mcore/mcore.c (calc_live_regs): Likewise.
13269 * config/microblaze/microblaze.c (microblaze_must_save_register):
13270 Likewise.
13271 * config/mmix/mmix.c (mmix_local_regno): Likewise.
13272 (mmix_initial_elimination_offset, mmix_reorg): Likewise.
13273 (mmix_use_simple_return, mmix_expand_prologue): Likewise.
13274 (mmix_expand_epilogue): Likewise.
13275 * config/moxie/moxie.c (moxie_compute_frame): Likewise.
13276 (moxie_expand_prologue, moxie_expand_epilogue): Likewise.
13277 * config/msp430/msp430.c (msp430_preserve_reg_p): Likewise.
13278 * config/nds32/nds32.h (nds32_16bit_address_type): Likewise.
13279 (NDS32_REQUIRED_CALLEE_SAVED_P): Likewise.
13280 * config/nios2/nios2.c (prologue_saved_reg_p): Likewise.
13281 * config/or1k/or1k.c (callee_saved_regno_p): Likewise.
13282 * config/pa/pa.c (pa_expand_prologue, pa_expand_epilogue): Likewise.
13283 * config/pdp11/pdp11.c (pdp11_saved_regno): Likewise.
13284 * config/pru/pru.c (prologue_saved_reg_p): Likewise.
13285 * config/riscv/riscv.c (riscv_save_reg_p): Likewise.
13286 (riscv_epilogue_uses, riscv_hard_regno_mode_ok): Likewise.
13287 * config/rl78/rl78.c (need_to_save): Likewise.
13288 * config/rs6000/rs6000-logue.c (save_reg_p): Likewise.
13289 (rs6000_stack_info, generate_set_vrsave): Likewise.
13290 (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.
13291 * config/rs6000/rs6000.c (rs6000_debug_reg_print): Likewise.
13292 * config/rx/rx.c (rx_get_stack_layout): Likewise.
13293 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
13294 * config/sh/sh.c (calc_live_regs, sh_output_mi_thunk): Likewise.
13295 * config/sparc/sparc.c (save_global_or_fp_reg_p): Likewise.
13296 (save_local_or_in_reg_p): Likewise.
13297 * config/stormy16/stormy16.c (REG_NEEDS_SAVE): Likewise.
13298 (xstormy16_epilogue_uses): Likewise.
13299 * config/tilegx/tilegx.c (need_to_save_reg): Likewise.
13300 * config/tilepro/tilepro.c (need_to_save_reg): Likewise.
13301 * config/v850/v850.c (compute_register_save_size): Likewise.
13302 * config/vax/vax.c (vax_expand_prologue): Likewise.
13303 * config/visium/visium.c (visium_save_reg_p): Likewise.
13304 * config/xtensa/xtensa.c (xtensa_call_save_reg): Likewise.
13305 * cselib.c (cselib_process_insn): Likewise.
13306 * df-scan.c (df_get_entry_block_def_set): Likewise.
13307 * function.c (aggregate_value_p): Likewise.
13308 * haifa-sched.c (alloc_global_sched_pressure_data): Likewise.
13309 * ira-lives.c (process_bb_node_lives): Likewise.
13310 * ira.c (do_reload): Likewise.
13311 * lra-lives.c (process_bb_lives): Likewise.
13312 * lra-remat.c (lra_remat): Likewise.
13313 * lra.c (lra): Likewise.
13314 * postreload.c (reload_combine_recognize_pattern): Likewise.
13315 (reload_cse_move2add): Likewise.
13316 * recog.c (peep2_find_free_register): Likewise.
13317 * regrename.c (check_new_reg_p): Likewise.
13318 * reload.c (find_equiv_reg): Likewise.
13319 * reload1.c (reload, find_reg): Likewise.
13320 * sel-sched.c (init_hard_regs_data): Likewise.
13321
13322 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
13323
13324 * config/frv/frv.c (frv_ifcvt_modify_tests): Use
13325 regs_invalidated_by_call & ~fixed_reg_set instead of
13326 call_used_or_fixed_regs & ~fixed_reg_set.
13327 * config/sh/sh.c (output_stack_adjust): Likewise.
13328
13329 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
13330
13331 * hard-reg-set.h (target_hard_regs::x_call_used_reg_set): Delete.
13332 (call_used_reg_set): Delete.
13333 (call_used_or_fixed_regs): New macro.
13334 * reginfo.c (init_reg_sets_1, globalize_reg): Remove initialization
13335 of call_used_reg_set.
13336 * caller-save.c (setup_save_areas): Use call_used_or_fixed_regs
13337 instead of call_used_regs.
13338 (save_call_clobbered_regs): Likewise.
13339 * cfgcleanup.c (old_insns_match_p): Likewise.
13340 * config/c6x/c6x.c (c6x_call_saved_register_used): Likewise.
13341 * config/epiphany/epiphany.c (epiphany_conditional_register_usage):
13342 Likewise.
13343 * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
13344 * config/sh/sh.c (output_stack_adjust): Likewise.
13345 * final.c (collect_fn_hard_reg_usage): Likewise.
13346 * ira-build.c (ira_build): Likewise.
13347 * ira-color.c (calculate_saved_nregs): Likewise.
13348 (allocno_reload_assign, calculate_spill_cost): Likewise.
13349 * ira-conflicts.c (ira_build_conflicts): Likewise.
13350 * ira-costs.c (ira_tune_allocno_costs): Likewise.
13351 * ira-lives.c (process_bb_node_lives): Likewise.
13352 * ira.c (setup_reg_renumber): Likewise.
13353 * lra-assigns.c (find_hard_regno_for_1, lra_assign): Likewise.
13354 * lra-constraints.c (need_for_call_save_p): Likewise.
13355 (need_for_split_p, inherit_in_ebb): Likewise.
13356 * lra-lives.c (process_bb_lives): Likewise.
13357 * lra-remat.c (call_used_input_regno_present_p): Likewise.
13358 * postreload.c (reload_combine): Likewise.
13359 * regrename.c (find_rename_reg): Likewise.
13360 * reload1.c (reload_as_needed): Likewise.
13361 * rtlanal.c (find_all_hard_reg_sets): Likewise.
13362 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
13363 * shrink-wrap.c (requires_stack_frame_p): Likewise.
13364
13365 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
13366
13367 * hard-reg-set.h (target_hard_regs::x_no_caller_save_reg_set): Delete.
13368 (no_caller_save_reg_set): Delete.
13369 * caller-save.c (init_caller_save): Don't initialize it.
13370 * ira-conflicts.c (ira_build_conflicts): Calculate
13371 no_caller_save_reg_set locally from call_used_reg_set and savable_regs.
13372
13373 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
13374
13375 * hard-reg-set.h (target_hard_regs::x_call_fixed_reg_set): Delete.
13376 (target_hard_regs::x_savable_regs): New field.
13377 (call_fixed_reg_set): Delete.
13378 (savable_regs): New macro,
13379 * reginfo.c (globalize_reg): Don't set call_fixed_reg_set.
13380 (init_reg_sets_1): Likewise. Initialize savable_regs.
13381 * caller-save.c (init_caller_save): Invoke HARD_REGNO_CALLER_SAVE_MODE
13382 for all registers. Set savable_regs instead of call_fixed_reg_set.
13383 (setup_save_areas, save_call_clobbered_regs): Replace uses of
13384 ~call_fixed_reg_set with ~fixed_reg_set & savable_regs.
13385 * config/sh/sh.c (output_stack_adjust): Likewise.
13386
13387 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
13388
13389 * config/c6x/c6x-protos.h (c6x_set_return_address): Declare.
13390 * config/c6x/c6x.h (REGNO_REG_CLASS): Move implementation to
13391 * config/c6x/c6x.c (c6x_regno_reg_class): ...this new function.
13392
13393 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
13394
13395 * rtl.h (get_call_rtx_from): Take a const rtx_insn * instead of an rtx.
13396 * rtlanal.c (get_call_rtx_from): Likewise.
13397 * dwarf2out.c (dwarf2out_var_location): Pass the insn rather
13398 than the pattern to get_call_rtx_from.
13399 * config/i386/i386-expand.h (ix86_notrack_prefixed_insn_p): Take
13400 an rtx_insn * instead of an rtx.
13401 * config/i386/i386-expand.c (ix86_notrack_prefixed_insn_p): Likewise.
13402
13403 2019-09-10 Martin Liska <mliska@suse.cz>
13404
13405 * common.opt: Use newly added WarnRemoved.
13406 * config/aarch64/aarch64.opt: Likewise.
13407 * config/arm/arm.opt: Likewise.
13408 * config/i386/i386.opt: Likewise.
13409 * config/ia64/ia64.opt: Likewise.
13410 * config/rs6000/rs6000.opt: Likewise.
13411 * doc/options.texi: Document WarnRemoved properly.
13412 * dwarf2out.c (gen_producer_string): Handle renamed
13413 OPT_SPECIAL_warn_removed.
13414 * lto-opts.c (lto_write_options): Likewise.
13415 * lto-wrapper.c (merge_and_complain): Likewise.
13416 * opts-common.c (decode_cmdline_option): Likewise.
13417 (prune_options): Likewise.
13418 (read_cmdline_option): Likewise.
13419 (control_warning_option): Likewise.
13420 * opts.c (print_filtered_help): Likewise.
13421 * optc-gen.awk: Parse for WarnRemoved and make usage
13422 of Deprecated an error.
13423 * opth-gen.awk: Generate new OPT_SPECIAL_warn_removed.
13424
13425 2019-09-10 Arnaud Charlet <charlet@adacore.com>
13426
13427 * doc/install.texi: Fix syntax for html generation.
13428
13429 2019-09-10 Jakub Jelinek <jakub@redhat.com>
13430
13431 PR middle-end/91680
13432 * match.pd ((A / (1 << B)) -> (A >> B)): Allow widening cast from
13433 the shift type to type.
13434
13435 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
13436
13437 * config/arm/arm.md (stack_protect_combined_set_insn): Handle
13438 FDPIC mode.
13439 (stack_protect_combined_test_insn): Likewise.
13440
13441 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
13442 Mickaël Guêné <mickael.guene@st.com>
13443
13444 * config/arm/arm.c (arm_load_tp): Add FDPIC support.
13445 * config/arm/arm.md (FDPIC_REGNUM): New constant.
13446 (load_tp_soft_fdpic): New pattern.
13447 (load_tp_soft): Disable in FDPIC mode.
13448
13449 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
13450 Mickaël Guêné <mickael.guene@st.com>
13451
13452 * config/arm/arm.c (tls_reloc): Add TLS_GD32_FDPIC,
13453 TLS_LDM32_FDPIC and TLS_IE32_FDPIC.
13454 (arm_call_tls_get_addr): Add FDPIC support.
13455 (legitimize_tls_address): Likewise.
13456 (arm_emit_tls_decoration): Likewise.
13457
13458 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
13459 Mickaël Guêné <mickael.guene@st.com>
13460
13461 * config/arm/arm.c (arm_asm_trampoline_template): Add FDPIC
13462 support.
13463 (arm_trampoline_init): Likewise.
13464 (arm_trampoline_adjust_address): Likewise.
13465 * config/arm/arm.h (TRAMPOLINE_SIZE): Likewise.
13466
13467 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
13468 Mickaël Guêné <mickael.guene@st.com>
13469
13470 * config/arm/arm.c (arm_fdpic_local_funcdesc_p): New function.
13471 (legitimize_pic_address): Enforce binding rules on function
13472 pointers in FDPIC mode.
13473 (arm_assemble_integer): Likewise.
13474
13475 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
13476 Mickaël Guêné <mickael.guene@st.com>
13477
13478 * config/arm/arm.h (PIC_REGISTER_MAY_NEED_SAVING): New helper.
13479 * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Handle
13480 FDPIC.
13481
13482 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
13483 Mickaël Guêné <mickael.guene@st.com>
13484
13485 * ginclude/unwind-arm-common.h (unwinder_cache): Add reserved5
13486 field.
13487
13488 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
13489 Mickaël Guêné <mickael.guene@st.com>
13490
13491 * config/arm/arm-c.c (__FDPIC__): Define new pre-processor macro
13492 in FDPIC mode.
13493 * config/arm/arm-protos.h (arm_load_function_descriptor): Declare
13494 new function.
13495 * config/arm/arm.c (arm_option_override): Define pic register to
13496 FDPIC_REGNUM.
13497 (arm_function_ok_for_sibcall): Disable sibcall optimization if we
13498 have no decl or go through PLT.
13499 (calculate_pic_address_constant): New function.
13500 (legitimize_pic_address): Call calculate_pic_address_constant.
13501 (arm_load_pic_register): Handle TARGET_FDPIC.
13502 (arm_is_segment_info_known): New function.
13503 (arm_pic_static_addr): Add support for FDPIC.
13504 (arm_load_function_descriptor): New function.
13505 (arm_emit_call_insn): Add support for FDPIC.
13506 (arm_assemble_integer): Add support for FDPIC.
13507 * config/arm/arm.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED):
13508 Define. (FDPIC_REGNUM): New define.
13509 * config/arm/arm.md (call): Add support for FDPIC.
13510 (call_value): Likewise.
13511 (restore_pic_register_after_call): New pattern.
13512 (untyped_call): Disable if FDPIC.
13513 (untyped_return): Likewise.
13514 * config/arm/unspecs.md (UNSPEC_PIC_RESTORE): New.
13515
13516 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
13517 Mickaël Guêné <mickael.guene@st.com>
13518
13519 * config.gcc: Handle arm*-*-uclinuxfdpiceabi.
13520 * config/arm/bpabi.h (TARGET_FDPIC_ASM_SPEC): New.
13521 (SUBTARGET_EXTRA_ASM_SPEC): Use TARGET_FDPIC_ASM_SPEC.
13522 * config/arm/linux-eabi.h (FDPIC_CC1_SPEC): New.
13523 (CC1_SPEC): Use FDPIC_CC1_SPEC.
13524 (MUSL_DYNAMIC_LINKER): Add -fdpic suffix when needed.
13525 * config/arm/uclinuxfdpiceabi.h: New file.
13526
13527 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
13528
13529 * config.gcc: Handle *-*-uclinuxfdpiceabi.
13530
13531 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
13532 Mickaël Guêné <mickael.guene@st.com>
13533
13534 * config/arm/arm.opt: Add -mfdpic option.
13535 * doc/invoke.texi: Add documentation for -mfdpic.
13536
13537 2019-09-09 Bernd Edlinger <bernd.edlinger@hotmail.de>
13538
13539 * expmed.c (extract_bit_field): Update function comment
13540 regarding alt_rtl.
13541 * expr.c (expand_expr_real): Update function comment
13542 regarding alt_rtl.
13543 (expand_misaligned_mem_ref): New helper function.
13544 (expand_expr_real_2): Use expand_misaligned_mem_ref.
13545 Remove duplicate assignment to "base" at case MEM_REF.
13546 Remove a shadowed variable "unsignedp" at case VCE.
13547
13548 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
13549
13550 * regset.h (regs_invalidated_by_call_regset): Delete.
13551 (fixed_reg_set_regset): Likewise.
13552 * reginfo.c (regs_invalidated_by_call_regset): Likewise.
13553 (fixed_reg_set_regset, persistent_obstack): Likewise.
13554 (init_reg_sets_1, globalize_reg): Update accordingly.
13555 * df.h (df_print_regset, df_print_word_regset): Take a const_bitmap
13556 instead of a bitmap.
13557 * df-core.c (df_print_regset, df_print_word_regset): Likewise.
13558 * df-problems.c (df_rd_local_compute): Use regs_invalidated_by_call
13559 instead of regs_invalidated_by_call_regset.
13560 (df_lr_confluence_n, df_md_confluence_n): Likewise.
13561 * df-scan.c (df_scan_start_dump): Likewise.
13562 * dse.c (copy_fixed_regs): Likewise.
13563 * config/sh/sh.c (sh_find_equiv_gbr_addr): Likewise.
13564
13565 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
13566
13567 * array-traits.h: New file.
13568 * coretypes.h (array_traits, bitmap_view): New types.
13569 * bitmap.h: Include "array-traits.h"
13570 (bitmap_bit_p): Take a const_bitmap instead of a bitmap.
13571 (base_bitmap_view, bitmap_view): New classes.
13572 * bitmap.c (bitmap_bit_p): Take a const_bitmap instead of a bitmap.
13573 * hard-reg-set.h: Include array-traits.h.
13574 (array_traits<HARD_REG_SET>): New struct.
13575 * regset.h (IOR_REG_SET_HRS): New macro.
13576 * loop-iv.c (simplify_using_initial_values): Use IOR_REG_SET_HRS
13577 rather than iterating over each hard register.
13578 * sched-deps.c (sched_analyze_insn): Likewise.
13579 * sel-sched-ir.c (setup_id_implicit_regs): Likewise.
13580
13581 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
13582
13583 * ira-int.h (ior_hard_reg_conflicts): Take a const_hard_reg_set
13584 instead of a HARD_REG_SET *.
13585 * ira-build.c (ior_hard_reg_conflicts): Likewise.
13586 (ira_build): Update call accordingly.
13587 * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
13588
13589 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
13590
13591 * hard-reg-set.h (HARD_REG_SET::operator==): New function.
13592 (HARD_REG_SET::operator!=): Likewise.
13593 (hard_reg_set_equal_p): Delete.
13594 * cfgcleanup.c (old_insns_match_p): Use == instead of
13595 hard_reg_set_equal_p and != instead of !hard_reg_set_equal_p.
13596 * ira-color.c (allocno_hard_regs_hasher::equal): Likewise.
13597 (add_allocno_hard_regs_to_forest): Likewise.
13598 (setup_allocno_available_regs_num): Likewise.
13599 * ira.c (setup_pressure_classes): Likewise.
13600 (setup_allocno_and_important_classes): Likewise.
13601 (setup_reg_class_relations): Likewise.
13602 * lra-lives.c (process_bb_lives): Likewise.
13603 * reg-stack.c (change_stack, convert_regs_1): Likewise.
13604
13605 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
13606
13607 * hard-reg-set.h (IOR_COMPL_HARD_REG_SET): Delete.
13608 * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
13609 Use "|~" instead of IOR_COMPL_HARD_REG_SET.
13610 * config/aarch64/falkor-tag-collision-avoidance.c (init_unavailable):
13611 Likewise.
13612 * ira-build.c (ira_create_object, ira_set_allocno_class): Likewise.
13613 * ira.c (setup_reg_renumber): Likewise.
13614 * lra-assigns.c (find_hard_regno_for_1): Likewise.
13615 * regrename.c (regrename_find_superclass): Likewise.
13616 * reload1.c (find_reg): Likewise.
13617
13618 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
13619
13620 * hard-reg-set.h (AND_COMPL_HARD_REG_SET): Delete.
13621 * caller-save.c (setup_save_areas): Use "&~" instead of
13622 AND_COMPL_HARD_REG_SET.
13623 (save_call_clobbered_regs): Likewise.
13624 * config/epiphany/epiphany.c (epiphany_conditional_register_usage):
13625 Likewise.
13626 * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
13627 * config/gcn/gcn.c (gcn_md_reorg): Likewise.
13628 * config/i386/i386.c (ix86_conditional_register_usage): Likewise.
13629 * config/mips/mips.c (mips_class_max_nregs): Likewise.
13630 (mips_conditional_register_usage): Likewise.
13631 * config/sh/sh.c (output_stack_adjust): Likewise.
13632 * ira-color.c (form_allocno_hard_regs_nodes_forest): Likewise.
13633 (setup_profitable_hard_regs): Likewise.
13634 (get_conflict_and_start_profitable_regs): Likewise.
13635 * ira-conflicts.c (print_allocno_conflicts): Likewise.
13636 (ira_build_conflicts): Likewise.
13637 * ira-costs.c (restrict_cost_classes): Likewise.
13638 (setup_regno_cost_classes_by_aclass): Likewise.
13639 * ira-lives.c (process_bb_node_lives): Likewise.
13640 * ira.c (setup_class_hard_regs, setup_reg_subclasses): Likewise.
13641 (setup_class_subset_and_memory_move_costs, setup_pressure_classes)
13642 (setup_allocno_and_important_classes, setup_class_translate_array)
13643 (setup_reg_class_relations, setup_prohibited_class_mode_regs):
13644 Likewise.
13645 * lra-assigns.c (find_hard_regno_for_1): Likewise.
13646 * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
13647 (process_alt_operands, inherit_in_ebb): Likewise.
13648 * lra-eliminations.c (update_reg_eliminate): Likewise.
13649 * lra-lives.c (process_bb_lives): Likewise.
13650 * reload1.c (update_eliminables_and_spill, reload_as_needed): Likewise.
13651 * resource.c (find_dead_or_set_registers): Likewise.
13652 (mark_target_live_regs): Likewise.
13653 * sched-deps.c (get_implicit_reg_pending_clobbers): Likewise.
13654 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
13655 (implicit_clobber_conflict_p): Likewise.
13656 * shrink-wrap.c (requires_stack_frame_p): Likewise.
13657 (try_shrink_wrapping): Likewise.
13658
13659 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
13660
13661 * hard-reg-set.h (HARD_REG_SET::operator|): New function.
13662 (HARD_REG_SET::operator|=): Likewise.
13663 (IOR_HARD_REG_SET): Delete.
13664 * config/gcn/gcn.c (gcn_md_reorg): Use "|" instead of
13665 IOR_HARD_REG_SET.
13666 * config/m32c/m32c.c (m32c_register_move_cost): Likewise.
13667 * config/s390/s390.c (s390_adjust_loop_scan_osc): Likewise.
13668 * final.c (collect_fn_hard_reg_usage): Likewise.
13669 * hw-doloop.c (scan_loop, optimize_loop): Likewise.
13670 * ira-build.c (merge_hard_reg_conflicts): Likewise.
13671 (ior_hard_reg_conflicts, create_cap_allocno, propagate_allocno_info)
13672 (propagate_some_info_from_allocno): Likewise.
13673 (copy_info_to_removed_store_destinations): Likewise.
13674 * ira-color.c (add_allocno_hard_regs_to_forest, assign_hard_reg)
13675 (allocno_reload_assign, ira_reassign_pseudos): Likewise.
13676 (fast_allocation): Likewise.
13677 * ira-conflicts.c (ira_build_conflicts): Likewise.
13678 * ira-lives.c (make_object_dead, process_single_reg_class_operands)
13679 (process_bb_node_lives): Likewise.
13680 * ira.c (setup_pressure_classes, setup_reg_class_relations): Likewise.
13681 * lra-assigns.c (find_hard_regno_for_1): Likewise.
13682 (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
13683 * lra-constraints.c (process_alt_operands, inherit_in_ebb): Likewise.
13684 * lra-eliminations.c (spill_pseudos, update_reg_eliminate): Likewise.
13685 * lra-lives.c (mark_pseudo_dead, check_pseudos_live_through_calls)
13686 (process_bb_lives): Likewise.
13687 * lra-spills.c (assign_spill_hard_regs): Likewise.
13688 * postreload.c (reload_combine): Likewise.
13689 * reginfo.c (init_reg_sets_1): Likewise.
13690 * regrename.c (merge_overlapping_regs, find_rename_reg)
13691 (merge_chains): Likewise.
13692 * reload1.c (maybe_fix_stack_asms, order_regs_for_reload, find_reg)
13693 (find_reload_regs, finish_spills, choose_reload_regs_init)
13694 (emit_reload_insns): Likewise.
13695 * reorg.c (redundant_insn): Likewise.
13696 * resource.c (find_dead_or_set_registers, mark_set_resources)
13697 (mark_target_live_regs): Likewise.
13698 * rtlanal.c (find_all_hard_reg_sets): Likewise.
13699 * sched-deps.c (sched_analyze_insn): Likewise.
13700 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
13701 (find_best_reg_for_expr): Likewise.
13702 * shrink-wrap.c (try_shrink_wrapping): Likewise.
13703
13704 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
13705
13706 * hard-reg-set.h (HARD_REG_SET::operator&): New function.
13707 (HARD_REG_SET::operator&): Likewise.
13708 (AND_HARD_REG_SET): Delete.
13709 * caller-save.c (setup_save_areas): Use "&" instead of
13710 AND_HARD_REG_SET.
13711 (save_call_clobbered_regs): Likewise.
13712 * config/gcn/gcn.c (gcn_md_reorg): Likewise.
13713 * config/m32c/m32c.c (reduce_class): Likewise.
13714 * config/rs6000/rs6000.c (rs6000_register_move_cost): Likewise.
13715 * final.c (get_call_reg_set_usage): Likewise.
13716 * ira-color.c (add_allocno_hard_regs_to_forest): Likewise.
13717 (setup_left_conflict_sizes_p): Likewise.
13718 * ira-conflicts.c (print_allocno_conflicts): Likewise.
13719 (ira_build_conflicts): Likewise.
13720 * ira-costs.c (restrict_cost_classes): Likewise.
13721 * ira.c (setup_stack_reg_pressure_class, setup_class_translate_array)
13722 (setup_reg_class_relations): Likewise.
13723 * reginfo.c (init_reg_sets_1, record_subregs_of_mode): Likewise.
13724 * reload1.c (maybe_fix_stack_asms, finish_spills): Likewise.
13725 * resource.c (find_dead_or_set_registers): Likewise.
13726 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
13727
13728 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
13729
13730 * hard-reg-set.h (HARD_REG_SET::operator~): New function.
13731 (COMPL_HARD_REG_SET): Delete.
13732 * config/c6x/c6x.c (c6x_call_saved_register_used): Use ~ instead
13733 of COMPL_HARD_REG_SET.
13734 (try_rename_operands): Likewise.
13735 * config/sh/sh.c (push_regs): Likewise.
13736 * lra-assigns.c (find_hard_regno_for_1): Likewise.
13737 * lra-constraints.c (contains_reg_p): Likewise.
13738 * reload1.c (finish_spills, choose_reload_regs_init): Likewise.
13739
13740 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
13741
13742 * hard-reg-set.h (COPY_HARD_REG_SET): Delete.
13743 * caller-save.c (save_call_clobbered_regs): Use assignment instead
13744 of COPY_HARD_REG_SET.
13745 * config/epiphany/epiphany.c (epiphany_compute_frame_size): Likewise.
13746 (epiphany_conditional_register_usage): Likewise.
13747 * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
13748 * config/gcn/gcn.c (gcn_md_reorg): Likewise.
13749 * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
13750 * config/m32c/m32c.c (m32c_register_move_cost): Likewise.
13751 * config/m68k/m68k.c (m68k_conditional_register_usage): Likewise.
13752 * config/mips/mips.c (mips_class_max_nregs): Likewise.
13753 * config/pdp11/pdp11.c (pdp11_conditional_register_usage): Likewise.
13754 * config/rs6000/rs6000.c (rs6000_register_move_cost): Likewise.
13755 * config/sh/sh.c (output_stack_adjust): Likewise.
13756 * final.c (collect_fn_hard_reg_usage): Likewise.
13757 (get_call_reg_set_usage): Likewise.
13758 * ira-build.c (ira_create_object, remove_low_level_allocnos)
13759 (ira_flattening): Likewise.
13760 * ira-color.c (add_allocno_hard_regs, add_allocno_hard_regs_to_forest)
13761 (setup_left_conflict_sizes_p, setup_profitable_hard_regs)
13762 (get_conflict_and_start_profitable_regs, allocno_reload_assign)
13763 (ira_reassign_pseudos): Likewise.
13764 * ira-conflicts.c (print_allocno_conflicts): Likewise.
13765 (ira_build_conflicts): Likewise.
13766 * ira-costs.c (restrict_cost_classes): Likewise.
13767 (setup_regno_cost_classes_by_aclass): Likewise.
13768 * ira.c (setup_class_hard_regs, setup_alloc_regs): Likewise.
13769 (setup_reg_subclasses, setup_class_subset_and_memory_move_costs)
13770 (setup_stack_reg_pressure_class, setup_pressure_classes)
13771 (setup_allocno_and_important_classes, setup_class_translate_array)
13772 (setup_reg_class_relations, setup_prohibited_class_mode_regs)
13773 (ira_setup_eliminable_regset): Likewise.
13774 * lra-assigns.c (find_hard_regno_for_1): Likewise.
13775 (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
13776 * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
13777 (process_alt_operands, inherit_in_ebb): Likewise.
13778 * lra-lives.c (process_bb_lives): Likewise.
13779 * lra-spills.c (assign_spill_hard_regs): Likewise.
13780 * lra.c (lra): Likewise.
13781 * mode-switching.c (new_seginfo): Likewise.
13782 * postreload.c (reload_combine): Likewise.
13783 * reg-stack.c (straighten_stack): Likewise.
13784 * reginfo.c (save_register_info, restore_register_info): Likewise.
13785 (init_reg_sets_1, record_subregs_of_mode): Likewise
13786 * regrename.c (create_new_chain, rename_chains): Likewise.
13787 * reload1.c (order_regs_for_reload, find_reg): Likewise.
13788 (find_reload_regs): Likewise.
13789 * resource.c (find_dead_or_set_registers): Likewise.
13790 (mark_target_live_regs): Likewise.
13791 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
13792
13793 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
13794
13795 * rtl.h (CALL_INSN_FUNCTION_USAGE): Document what SETs mean.
13796 (note_pattern_stores): Declare.
13797 (note_stores): Take an rtx_insn *.
13798 * rtlanal.c (set_of): Use note_pattern_stores instead of note_stores.
13799 (find_all_hard_reg_sets): Pass the insn rather than its pattern to
13800 note_stores. Remove explicit handling of CALL_INSN_FUNCTION_USAGE.
13801 (note_stores): Take an rtx_insn * as argument and process
13802 CALL_INSN_FUNCTION_USAGE. Rename old function to...
13803 (note_pattern_stores): ...this.
13804 (find_first_parameter_load): Pass the insn rather than
13805 its pattern to note_stores.
13806 * alias.c (memory_modified_in_insn_p, init_alias_analysis): Likewise.
13807 * caller-save.c (setup_save_areas, save_call_clobbered_regs)
13808 (insert_one_insn): Likewise.
13809 * combine.c (combine_instructions): Likewise.
13810 (likely_spilled_retval_p): Likewise.
13811 (try_combine): Use note_pattern_stores instead of note_stores.
13812 (record_dead_and_set_regs): Pass the insn rather than its pattern
13813 to note_stores.
13814 (reg_dead_at_p): Likewise.
13815 * config/bfin/bfin.c (workaround_speculation): Likewise.
13816 * config/c6x/c6x.c (maybe_clobber_cond): Likewise. Take an rtx_insn *
13817 rather than an rtx.
13818 * config/frv/frv.c (frv_registers_update): Use note_pattern_stores
13819 instead of note_stores.
13820 (frv_optimize_membar_local): Pass the insn rather than its pattern
13821 to note_stores.
13822 * config/gcn/gcn.c (gcn_md_reorg): Likewise.
13823 * config/i386/i386.c (ix86_avx_u128_mode_after): Likewise.
13824 * config/mips/mips.c (vr4130_true_reg_dependence_p): Likewise.
13825 (r10k_needs_protection_p, mips_sim_issue_insn): Likewise.
13826 (mips_reorg_process_insns): Likewise.
13827 * config/s390/s390.c (s390_regs_ever_clobbered): Likewise.
13828 * config/sh/sh.c (flow_dependent_p): Likewise. Take rtx_insn *s
13829 rather than rtxes.
13830 * cse.c (delete_trivially_dead_insns): Pass the insn rather than
13831 its pattern to note_stores.
13832 * cselib.c (cselib_record_sets): Use note_pattern_stores instead
13833 of note_stores.
13834 * dce.c (mark_nonreg_stores): Remove the "body" parameter and pass
13835 the insn to note_stores.
13836 (prescan_insns_for_dce): Update call accordingly.
13837 * ddg.c (mem_write_insn_p): Pass the insn rather than its pattern
13838 to note_stores.
13839 * df-problems.c (can_move_insns_across): Likewise.
13840 * dse.c (emit_inc_dec_insn_before, replace_read): Likewise.
13841 * function.c (assign_parm_setup_reg): Likewise.
13842 * gcse-common.c (record_last_mem_set_info_common): Likewise.
13843 * gcse.c (load_killed_in_block_p, compute_hash_table_work): Likewise.
13844 (single_set_gcse): Likewise.
13845 * ira.c (validate_equiv_mem): Likewise.
13846 (update_equiv_regs): Use note_pattern_stores rather than note_stores
13847 for no_equiv.
13848 * loop-doloop.c (doloop_optimize): Pass the insn rather than its
13849 pattern to note_stores.
13850 * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
13851 * loop-iv.c (simplify_using_initial_values): Likewise.
13852 * mode-switching.c (optimize_mode_switching): Likewise.
13853 * optabs.c (emit_libcall_block_1): Likewise.
13854 (expand_atomic_compare_and_swap): Likewise.
13855 * postreload-gcse.c (load_killed_in_block_p): Likewise.
13856 (record_opr_changes): Likewise. Remove explicit handling of
13857 CALL_INSN_FUNCTION_USAGE.
13858 * postreload.c (reload_combine, reload_cse_move2add): Likewise.
13859 * regcprop.c (kill_clobbered_values): Likewise.
13860 (copyprop_hardreg_forward_1): Pass the insn rather than its pattern
13861 to note_stores.
13862 * regrename.c (build_def_use): Likewise.
13863 * reload1.c (reload): Use note_pattern_stores instead of note_stores
13864 for mark_not_eliminable.
13865 (reload_as_needed): Pass the insn rather than its pattern
13866 to note_stores.
13867 (emit_output_reload_insns): Likewise.
13868 * resource.c (mark_target_live_regs): Likewise.
13869 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
13870 * sched-rgn.c (sets_likely_spilled): Use note_pattern_stores
13871 instead of note_stores.
13872 * shrink-wrap.c (try_shrink_wrapping): Pass the insn rather than
13873 its pattern to note_stores.
13874 * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Likewise.
13875 * var-tracking.c (adjust_insn, add_with_sets): Likewise.
13876
13877 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
13878
13879 * hard-reg-set.h (HARD_REG_SET): Define using a typedef rather
13880 than a #define. Use a structure rather than an array as the
13881 fallback definition. Remove special cases for low array sizes.
13882 (const_hard_reg_set): New typedef.
13883 (hard_reg_set_subset_p): Use it instead of "const HARD_REG_SET".
13884 (hard_reg_set_equal_p, hard_reg_set_intersect_p): Likewise.
13885 (hard_reg_set_empty_p): Likewise.
13886 (SET_HARD_REG_BIT): Use a function rather than a macro to
13887 handle the case in which HARD_REG_SET is a structure.
13888 (CLEAR_HARD_REG_BIT, TEST_HARD_REG_BIT, CLEAR_HARD_REG_SET)
13889 (SET_HARD_REG_SET, COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
13890 (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
13891 (IOR_COMPL_HARD_REG_SET): Likewise.
13892 (hard_reg_set_iterator::pset): Constify the pointer target.
13893 (hard_reg_set_iter_init): Take a const_hard_reg_set instead
13894 of a "const HARD_REG_SET". Update the handling of non-integer
13895 HARD_REG_SETs.
13896 * recog.h: Test HARD_CONST instead of CLEAR_HARD_REG_SET.
13897 * reload.h: Likewise.
13898 * rtl.h (choose_hard_reg_mode): Remove unnecessary line break.
13899 * regs.h (in_hard_reg_set_p): Take a const_hard_reg_set instead
13900 of a "const HARD_REG_SET".
13901 (overlaps_hard_reg_set_p, range_overlaps_hard_reg_set_p): Likewise.
13902 (range_in_hard_reg_set_p): Likewise.
13903 * ira-costs.c (restrict_cost_classes): Likewise.
13904 * shrink-wrap.c (move_insn_for_shrink_wrap): Likewise.
13905 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
13906 Pass a NO_REGS HARD_REG_SET rather than NULL to emit_set_fp_mode.
13907 * config/ia64/ia64.c (rws_insn): In the CHECKING_P version,
13908 use unsigned HOST_WIDEST_FAST_INT rather than HARD_REG_ELT_TYPE.
13909 (rws_insn_set, rws_insn_test): In the CHECKING_P version,
13910 take an unsigned int and open-code the HARD_REG_SET operations.
13911
13912 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
13913
13914 * Makefile.in (OBJS): Remove bt-load.o.
13915 * doc/invoke.texi (fbranch-target-load-optimize): Delete.
13916 (fbranch-target-load-optimize2, fbtr-bb-exclusive): Likewise.
13917 * common.opt (fbranch-target-load-optimize): Mark as Ignore and
13918 document that the option no longer does anything.
13919 (fbranch-target-load-optimize2, fbtr-bb-exclusive): Likewise.
13920 * target.def (branch_target_register_class): Delete.
13921 (branch_target_register_callee_saved): Likewise.
13922 * doc/tm.texi.in (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
13923 (TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise.
13924 * doc/tm.texi: Regenerate.
13925 * tree-pass.h (make_pass_branch_target_load_optimize1): Delete.
13926 (make_pass_branch_target_load_optimize2): Likewise.
13927 * passes.def (pass_branch_target_load_optimize1): Likewise.
13928 (pass_branch_target_load_optimize2): Likewise.
13929 * targhooks.h (default_branch_target_register_class): Likewise.
13930 * targhooks.c (default_branch_target_register_class): Likewise.
13931 * opt-suggestions.c (test_completion_valid_options): Remove
13932 -fbtr-bb-exclusive from the list of test options.
13933 * bt-load.c: Remove.
13934
13935 2019-09-09 Barnaby Wilks <barnaby.wilks@arm.com>
13936
13937 * match.pd: Add flag_unsafe_math_optimizations check
13938 before deciding on the widest type in a binary math operation.
13939
13940 2019-09-09 Martin Liska <mliska@suse.cz>
13941
13942 * config/i386/i386.opt: Update comment of removed
13943 options that are preserved only for backward
13944 compatibility.
13945
13946 2019-09-09 Jakub Jelinek <jakub@redhat.com>
13947
13948 PR target/87853
13949 * config/i386/emmintrin.h (_mm_cmpeq_epi8): Use casts to __v16qi
13950 instead of __v16qs.
13951
13952 PR target/91704
13953 * config/i386/avxintrin.h (__v32qs): New typedef.
13954 * config/i386/avx2intrin.h (_mm256_cmpgt_epi8): Use casts to __v32qs
13955 instead of __v32qi.
13956
13957 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
13958
13959 * doc/invoke.texi (Option Summary): Cover eBPF.
13960 (eBPF Options): New section.
13961 * doc/extend.texi (BPF Built-in Functions): Likewise.
13962 (BPF Kernel Helpers): Likewise.
13963
13964 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
13965
13966 * config.gcc: Support for bpf-*-* targets.
13967 * common/config/bpf/bpf-common.c: New file.
13968 * config/bpf/t-bpf: Likewise.
13969 * config/bpf/predicates.md: Likewise.
13970 * config/bpf/constraints.md: Likewise.
13971 * config/bpf/bpf.opt: Likewise.
13972 * config/bpf/bpf.md: Likewise.
13973 * config/bpf/bpf.h: Likewise.
13974 * config/bpf/bpf.c: Likewise.
13975 * config/bpf/bpf-protos.h: Likewise.
13976 * config/bpf/bpf-opts.h: Likewise.
13977 * config/bpf/bpf-helpers.h: Likewise.
13978 * config/bpf/bpf-helpers.def: Likewise.
13979
13980 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
13981
13982 * doc/sourcebuild.texi (Effective-Target Keywords): Document
13983 indirect_calls.
13984
13985 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
13986
13987 * opt-functions.awk (integer_range_info): Make sure values are in
13988 numeric context before operating with them.
13989
13990 2019-09-08 Segher Boessenkool <segher@kernel.crashing.org>
13991
13992 * genemit.c (gen_split): Print the filename and line number where the
13993 splitter (or peephole2) was defined, to the dump file.
13994
13995 2019-09-07 Jakub Jelinek <jakub@redhat.com>
13996
13997 PR tree-optimization/91665
13998 * tree-vect-loop.c (vectorizable_reduction): Punt if base has type
13999 incompatible with the type of PHI result.
14000
14001 2019-09-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
14002
14003 PR target/91684
14004 * config/arm/arm.c (arm_block_set_aligned_non_vect): Use
14005 gen_unaligned_storedi for 4-byte aligned addresses.
14006
14007 2019-09-06 Jim Wilson <jimw@sifive.com>
14008
14009 * config/riscv/riscv.c (riscv_option_override): Revert 2019-08-30
14010 change.
14011
14012 2019-09-06 Segher Boessenkool <segher@kernel.crashing.org>
14013
14014 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_MV_CR_OV.
14015
14016 2019-09-06 Segher Boessenkool <segher@kernel.crashing.org>
14017
14018 * config/rs6000/rs6000.c (rs6000_rtx_costs) <case UNSPEC>: Delete.
14019 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_FRSP.
14020
14021 2019-09-06 Uroš Bizjak <ubizjak@gmail.com>
14022
14023 PR target/91654
14024 * config/i386/x86-tune-costs.h (skylake_cost): Raise the
14025 cost of SSE->integer and integer->SSE moves from 2 to 6.
14026 (core_cost): Ditto.
14027
14028 2019-09-06 Jakub Jelinek <jakub@redhat.com>
14029
14030 * function.c (assign_parm_find_data_types): Use RECORD_OR_UNION_TYPE_P
14031 before testing TYPE_TRANSPARENT_AGGR.
14032 * calls.c (initialize_argument_information, load_register_parameters):
14033 Likewise.
14034
14035 2019-09-06 Richard Earnshaw <rearnsha@arm.com>
14036
14037 * config/arm/arm.md (cmp_and): Add short-it variant for thumb2 with
14038 high regs.
14039 (cmp_ior): Likewise.
14040
14041 2019-09-06 Martin Liska <mliska@suse.cz>
14042
14043 * doc/match-and-simplify.texi: Separate tuples with ;.
14044
14045 2019-09-06 Martin Liska <mliska@suse.cz>
14046
14047 PR c++/91125
14048 * Makefile.in: Remove tlink.o.
14049 * collect2.c (do_link): New function isolated
14050 from do_tlink.
14051 (main): Use.
14052 * collect2.h (do_tlink): Remove declaration of do_tlink.
14053 * doc/extend.texi: Remove documentation of -frepo.
14054 * doc/invoke.texi: Likewise.
14055 * doc/sourcebuild.texi: Remove cleanup-repo-files.
14056 * tlink.c: Remove.
14057
14058 2019-09-05 Jakub Jelinek <jakub@redhat.com>
14059 Jim Wilson <jimw@sifive.com>
14060
14061 PR target/91635
14062 * config/riscv/riscv.md (zero_extendsidi2, zero_extendhi<GPR:mode>2,
14063 extend<SHORT:mode><SUPERQI:mode>2): Don't split if
14064 paradoxical_subreg_p (operands[0]).
14065 (*lshrsi3_zero_extend_3+1, *lshrsi3_zero_extend_3+2): Add clobber and
14066 use as intermediate value.
14067
14068 2019-09-05 Andrew Stubbs <ams@codesourcery.com>
14069
14070 * config/gcn/gcn.md (*movti_insn): Set delayeduse for global_store.
14071 (sync_compare_and_swap<mode>_insn): Likewise.
14072
14073 2019-09-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
14074
14075 PR middle-end/91615
14076 * expr.c (expand_expr_real_1): Handle misaligned TARGET_MEM_REF
14077 without movmisalign optab.
14078
14079 2019-09-05 Jakub Jelinek <jakub@redhat.com>
14080
14081 PR middle-end/91001
14082 PR middle-end/91105
14083 PR middle-end/91106
14084 * calls.c (load_register_parameters): For TYPE_TRANSPARENT_AGGR
14085 types, use type of their first field instead of type of
14086 args[i].tree_value.
14087
14088 2019-09-05 Richard Biener <rguenther@suse.de>
14089
14090 PR rtl-optimization/91656
14091 * postreload-gcse.c (record_last_mem_set_info): Revert addition
14092 of early out.
14093
14094 2019-09-05 Richard Biener <rguenther@suse.de>
14095
14096 PR middle-end/90501
14097 * tree-inline.c (declare_return_variable): Mark the return
14098 slot as addressable after building an address of it.
14099
14100 2019-09-05 Arnaud Charlet <charlet@adacore.com>
14101
14102 * doc/install.texi: Update and clarify requirements to build GNAT.
14103
14104 2019-09-05 Richard Sandiford <richard.sandiford@arm.com>
14105
14106 PR middle-end/91577
14107 * cfgexpand.c (discover_nonconstant_array_refs): Force the source
14108 of an IFN_LOAD_LANES call and the destination of an IFN_STORE_LANES
14109 call to be in memory.
14110 (pass_expand::execute): Call discover_nonconstant_array_refs before
14111 setting currently_expanding_to_rtl.
14112
14113 2019-09-04 Caroline Tice <cmtice@google.com>
14114
14115 * opts.c (finish_options): Disallow -fvtable-verify and -flto to be
14116 specified together.
14117
14118 2019-09-04 Marek Polacek <polacek@redhat.com>
14119
14120 * doc/invoke.texi: Remove -fdeduce-init-list documentation.
14121
14122 2019-09-04 Uroš Bizjak <ubizjak@gmail.com>
14123
14124 PR target/32413
14125 * config/i386/i386.c (inline_secondary_memory_needed): Return true
14126 for QI and HImode moves between SSE and general registers.
14127
14128 2019-09-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
14129
14130 PR c/78736
14131 * doc/invoke.texi: Document -Wenum-conversion.
14132
14133 2019-09-04 Richard Biener <rguenther@suse.de>
14134
14135 PR rtl-optimization/36262
14136 * postreload-gcse.c: Include intl.h and gcse.h.
14137 (insert_expr_in_table): Insert at the head of cur_expr->avail_occr
14138 to avoid linear list walk.
14139 (record_last_mem_set_info): Gate off if not computing transparentness.
14140 (get_bb_avail_insn): If transparentness isn't computed give up
14141 early.
14142 (gcse_after_reload_main): Skip compute_transp and extended PRE
14143 if gcse_or_cprop_is_too_expensive says so.
14144
14145 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com>
14146
14147 * config/msp430/msp430.c (msp430_init_sections): Remove handling of the
14148 noinit section.
14149 (msp430_select_section): Handle decls with the "noinit" attribute with
14150 default_elf_select_section.
14151 Handle SECCAT_RODATA_MERGE_* section types with
14152 default_elf_select_section.
14153 Add comments about handling of unsupported section types.
14154 (msp430_section_type_flags): Remove handling of the noinit section.
14155
14156 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com>
14157
14158 * config/msp430/msp430.c (msp430_attr): Remove warnings about
14159 conflicting msp430-specific attributes.
14160 (msp430_section_attr): Likewise.
14161 Add warnings about conflicts with generic "noinit" and "section"
14162 attributes.
14163 Fix grammar in -mlarge error message.
14164 (msp430_data_attr): Rename to msp430_persist_attr.
14165 Add warnings about conflicts with generic "noinit" and "section"
14166 attributes.
14167 Add warning for when variable is not initialized.
14168 Chain conditionals which prevent the attribute being added.
14169 (ATTR_EXCL): New helper.
14170 (attr_reent_exclusions): New exclusion table.
14171 (attr_naked_exclusions): Likewise.
14172 (attr_crit_exclusions): Likewise.
14173 (attr_lower_exclusions): Likewise.
14174 (attr_upper_exclusions): Likewise.
14175 (attr_either_exclusions): Likewise.
14176 (attr_persist_exclusions): Likewise.
14177 (msp430_attribute_table): Update with exclusion rules.
14178 (msp430_output_aligned_decl_common): Don't output common symbol if decl
14179 has a section.
14180
14181 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com>
14182
14183 * config/msp430/msp430.c (TARGET_HANDLE_GENERIC_ATTRIBUTE): Define.
14184 (msp430_handle_generic_attribute): New function.
14185 * doc/tm.texi: Regenerate.
14186 * doc/tm.texi.in: Add TARGET_HANDLE_GENERIC_ATTRIBUTE.
14187 * hooks.c (hook_tree_treeptr_tree_tree_int_boolptr_null): New.
14188 * hooks.h (hook_tree_treeptr_tree_tree_int_boolptr_null): New.
14189 * target.def: Define new hook TARGET_HANDLE_GENERIC_ATTRIBUTE.
14190
14191 2019-09-03 Kamlesh Kumar <kamleshbhalui@gmail.com>
14192
14193 PR tree-optimization/91504
14194 * match.pd: Add ((~a & b) ^a) --> (a | b).
14195
14196 2019-09-03 Jakub Jelinek <jakub@redhat.com>
14197
14198 PR target/91604
14199 * config/i386/i386-expand.c (split_double_mode): If there is more than
14200 one MEM operand and they are rtx_equal_p, reuse lo_half/hi_half from
14201 already split matching MEM operand instead of calling adjust_address
14202 again.
14203
14204 2019-09-03 Ulrich Weigand <uweigand@de.ibm.com>
14205
14206 * config.gcc: Obsolete spu target. Remove references to spu.
14207 * configure.ac: Remove references to spu.
14208 * configure: Regenerate.
14209 * config/spu/: Remove directory.
14210 * common/config/spu/: Remove directory.
14211
14212 * doc/extend.texi: Remove references to spu.
14213 * doc/invoke.texi: Likewise.
14214 * doc/md.texi: Likewise.
14215 * doc/sourcebuild.texi: Likewise.
14216
14217 2019-09-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
14218
14219 PR middle-end/91603
14220 PR middle-end/91612
14221 PR middle-end/91613
14222 * expr.c (expand_expr_real_1): Handle unaligned decl_rtl
14223 and SSA_NAME referring to CONSTANT_P correctly.
14224
14225 2019-09-03 Richard Biener <rguenther@suse.de>
14226
14227 * tree-ssa-sccvn.h (vn_nary_op_lookup): Remove.
14228 (vn_nary_op_insert): Likewise.
14229 * tree-ssa-sccvn.c (init_vn_nary_op_from_op): Remove.
14230 (vn_nary_op_lookup): Likewise.
14231 (vn_nary_op_insert): Likewise.
14232
14233 2019-09-03 Ilya Leoshkevich <iii@linux.ibm.com>
14234
14235 * config/s390/s390.c (s390_canonicalize_comparison): Use XEXP
14236 (*op0, 1) instead of XEXP (*op1, 0).
14237
14238 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14239
14240 * config/aarch64/aarch64.md (UNSPEC_FJCVTZS): Define.
14241 (aarch64_fjcvtzs): New define_insn.
14242 * config/aarch64/aarch64.h (TARGET_JSCVT): Define.
14243 * config/aarch64/aarch64-builtins.c (aarch64_builtins):
14244 Add AARCH64_JSCVT.
14245 (aarch64_init_builtins): Initialize __builtin_aarch64_jcvtzs.
14246 (aarch64_expand_builtin): Handle AARCH64_JSCVT.
14247 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
14248 __ARM_FEATURE_JCVT where appropriate.
14249 * config/aarch64/arm_acle.h (__jcvt): Define.
14250
14251 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14252
14253 * config/aarch64/aarch64.md ("unspec"): Add UNSPEC_FRINT32Z,
14254 UNSPEC_FRINT32X, UNSPEC_FRINT64Z, UNSPEC_FRINT64X.
14255 (aarch64_<frintnzs_op><mode>): New define_insn.
14256 * config/aarch64/aarch64.h (TARGET_FRINT): Define.
14257 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
14258 __ARM_FEATURE_FRINT when appropriate.
14259 * config/aarch64/aarch64-simd-builtins.def: Add builtins for frint32z,
14260 frint32x, frint64z, frint64x.
14261 * config/aarch64/arm_acle.h (__rint32zf, __rint32z, __rint64zf,
14262 __rint64z, __rint32xf, __rint32x, __rint64xf, __rint64x): Define.
14263 * config/aarch64/arm_neon.h (vrnd32z_f32, vrnd32zq_f32, vrnd32z_f64,
14264 vrnd32zq_f64, vrnd32x_f32, vrnd32xq_f32, vrnd32x_f64, vrnd32xq_f64,
14265 vrnd64z_f32, vrnd64zq_f32, vrnd64z_f64, vrnd64zq_f64, vrnd64x_f32,
14266 vrnd64xq_f32, vrnd64x_f64, vrnd64xq_f64): Define.
14267 * config/aarch64/iterators.md (VSFDF): Define.
14268 (FRINTNZX): Likewise.
14269 (frintnzs_op): Likewise.
14270
14271 2019-09-03 Dennis Zhang <dennis.zhang@arm.com>
14272
14273 * config/aarch64/aarch64-cores.def (AARCH64_CORE): New entries
14274 for Cortex-A77, Cortex-A76AE, Cortex-A65, Cortex-A65AE, and
14275 Cortex-A34.
14276 * config/aarch64/aarch64-tune.md: Regenerated.
14277 * doc/invoke.texi: Document the new processors.
14278
14279 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14280
14281 * config/aarch64/aarch64-option-extensions.def (sb): Add feature
14282 string.
14283 (ssbs): Likewise.
14284 (sve2): Likewise.
14285 (sve2-sm4): Likewise.
14286 (sveaes): Likewise.
14287 (svesha3): Likewise.
14288 (svebitperm): Likewise.
14289
14290 2019-09-03 Jakub Jelinek <jakub@redhat.com>
14291 Richard Biener <rguenther@suse.de>
14292
14293 PR tree-optimization/91597
14294 * tree-vrp.c (extract_range_from_binary_expr): Remove unsafe
14295 BIT_AND_EXPR optimization for pointers, even if both operand
14296 ranges don't include NULL, the result can be NULL.
14297
14298 2019-09-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
14299
14300 PR middle-end/91605
14301 * expr.c (addr_expr_of_non_mem_decl_p_1): Refactor into...
14302 (non_mem_decl_p): ...this.
14303 (mem_ref_refers_to_non_mem_p): Handle DECL_P as well as MEM_REF.
14304 (expand_assignment): Call mem_ref_referes_to_non_mem_p
14305 unconditionally as before.
14306
14307 2019-09-02 Eric Botcazou <ebotcazou@adacore.com>
14308
14309 PR target/91323
14310 * doc/generic.texi (LTGT_EXPR): Merge with other comparison operators.
14311 * rtl.def (LTGT): Likewise. Add note about floating-point exceptions.
14312 * tree.def (LTGT_EXPR): Likewise.
14313 * config/sparc/sparc.c (select_cc_mode): Return CCFPEmode for LTGT.
14314
14315 2019-09-02 Jakub Jelinek <jakub@redhat.com>
14316
14317 PR go/91617
14318 * fold-const.c (range_check_type): For enumeral and boolean
14319 type, pass 1 to type_for_size langhook instead of
14320 TYPE_UNSIGNED (etype). Return unsigned_type_for result whenever
14321 etype isn't TYPE_UNSIGNED INTEGER_TYPE.
14322 (build_range_check): Don't call unsigned_type_for for pointer types.
14323 * match.pd (X / C1 op C2): Don't call unsigned_type_for on
14324 range_check_type result.
14325
14326 2019-09-02 Eric Botcazou <ebotcazou@adacore.com>
14327
14328 * gimple-ssa-strength-reduction.c (valid_mem_ref_cand_p): New function.
14329 (replace_ref): Do not replace a chain of only two candidates which are
14330 valid memory references.
14331
14332 2019-09-02 Martin Liska <mliska@suse.cz>
14333
14334 * tree-switch-conversion.c (jump_table_cluster::find_jump_tables):
14335 Bail out when we'll end up with the same number of clusters as
14336 at the beginning.
14337 (bit_test_cluster::find_bit_tests): Likewise for bit tests.
14338 (jump_table_cluster::can_be_handled): Remove the guard
14339 as it's already handled in ::is_enabled. Allocate output
14340 after early bail out.
14341
14342 2019-09-02 Martin Liska <mliska@suse.cz>
14343
14344 PR gcov-profile/91601
14345 * gcov.c (path_contains_zero_cycle_arc): Rename to ...
14346 (path_contains_zero_or_negative_cycle_arc): ... this and handle
14347 also negative edges.
14348 (circuit): Handle also negative edges as they can happen
14349 in some situations.
14350
14351 2019-09-01 Eric Botcazou <ebotcazou@adacore.com>
14352
14353 PR target/91472
14354 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Return true
14355 during LRA/reload in PIC mode if the PIC register hasn't been used yet.
14356 (sparc_pic_register_p): Test reload_in_progress for consistency's sake.
14357
14358 2019-09-01 Jakub Jelinek <jakub@redhat.com>
14359
14360 PR middle-end/91623
14361 * optabs.c (expand_vec_cond_expr): If op0 is a VECTOR_CST and only
14362 EQ_EXPR/NE_EXPR is supported, verify that op0 only contains
14363 zeros or negative elements and use NE_EXPR instead of LT_EXPR against
14364 zero vector.
14365
14366 PR lto/91572
14367 * tree.c (find_decls_types_in_node): Also walk TREE_PURPOSE of
14368 GIMPLE_ASM TREE_LIST operands.
14369
14370 2019-08-31 Gerald Pfeifer <gerald@pfeifer.com>
14371
14372 * doc/generic.texi (Unary and Binary Expressions): Mark up
14373 an instance of TYPE_MIN.
14374
14375 2019-08-31 Stafford Horne <shorne@gmail.com>
14376
14377 * config/or1k/constraints.md (t): New constraint.
14378 * config/or1k/or1k.h (GOT_REGS): New register class.
14379 * config/or1k/or1k.md (set_got_tmp, set_got): Use t contraint.
14380
14381 2019-08-30 Jim Wilson <jimw@sifive.com>
14382
14383 * config/riscv/riscv.c (riscv_option_override): If -msave-restore
14384 and -fpic and -mplt then disable -msave-restore and warn.
14385
14386 2019-08-30 Martin Sebor <msebor@redhat.com>
14387
14388 PR middle-end/91599
14389 * tree-ssa-strlen.c (handle_store): Use a fallback location if
14390 the statement doesn't have one.
14391 * gimple-pretty-print.c (percent_G_format): Same.
14392
14393 PR middle-end/91584
14394 * tree-vrp.c (vrp_prop::check_mem_ref): Normalize type domain bounds
14395 before using them to validate MEM_REF offset.
14396
14397 2019-08-30 Marek Polacek <polacek@redhat.com>
14398
14399 * doc/invoke.texi (-Wvolatile): Use @code for volatile.
14400
14401 2019-08-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
14402
14403 * config/arm/arm.md (unaligned_loaddi,
14404 unaligned_storedi): New unspec insn patterns.
14405 * config/arm/neon.md (unaligned_storev8qi): Likewise.
14406 * config/arm/arm.c (gen_cpymem_ldrd_strd): Use unaligned_loaddi
14407 and unaligned_storedi for 4-byte aligned memory.
14408 (arm_block_set_aligned_vect): Use unaligned_storev8qi for
14409 4-byte aligned memory.
14410
14411 2019-08-30 Martin Jambor <mjambor@suse.cz>
14412
14413 tree-optimization/91579
14414 * tree-tailcall.c (tailr_arg_needs_copy): New variable.
14415 (find_tail_calls): Allocate tailr_arg_needs_copy and set its bits as
14416 appropriate.
14417 (arg_needs_copy_p): Removed.
14418 (eliminate_tail_call): Test tailr_arg_needs_copy instead of calling
14419 arg_needs_copy_p.
14420 (tree_optimize_tail_calls_1): Likewise. Free tailr_arg_needs_copy.
14421
14422 2019-08-29 Uroš Bizjak <ubizjak@gmail.com>
14423
14424 * config/i386/i386-features.c
14425 (general_scalar_chain::compute_convert_gain):
14426 Correct cost for double-word shifts.
14427 (general_scalar_to_vector_candidate_p): Reject count operands
14428 greater or equal to mode bitsize.
14429
14430 2019-08-29 Uroš Bizjak <ubizjak@gmail.com>
14431
14432 * config/i386/i386.c (inline_secondary_memory_needed): Return true
14433 for moves between SSE and non-general registers and between
14434 mask and non-general registers.
14435 (ix86_register_move_cost): Remove stalled comment.
14436
14437 2019-08-29 Richard Biener <rguenther@suse.de>
14438
14439 * config/i386/i386-features.c (general_scalar_chain::convert_insn):
14440 Guard debug work with MAY_HAVE_DEBUG_BIND_INSNS.
14441
14442 2019-08-29 Richard Biener <rguenther@suse.de>
14443
14444 PR bootstrap/91580
14445 * config/i386/i386-features.c (general_scalar_chain::convert_insn):
14446 Do not emit scalar copies for debug-insns, instead replace
14447 their uses with the reg copy used in the chain or reset them
14448 if there is a reaching definition outside of the chain as well.
14449
14450 2019-08-29 Jakub Jelinek <jakub@redhat.com>
14451
14452 PR target/91560
14453 * config/i386/i386-expand.c (expand_vec_perm_movs,
14454 expand_vec_perm_blend, expand_vec_perm_vpermil,
14455 expand_vec_perm_pshufb, expand_vec_perm_1,
14456 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr,
14457 expand_vec_perm_interleave2, expand_vec_perm_vpermq_perm_1,
14458 expand_vec_perm_vperm2f128, expand_vec_perm_interleave3,
14459 expand_vec_perm_vperm2f128_vblend, expand_vec_perm_2vperm2f128_vshuf,
14460 expand_vec_perm_even_odd, expand_vec_perm_broadcast): Adjust function
14461 comments - replace ix86_expand_vec_perm_builtin_1 with
14462 ix86_expand_vec_perm_const_1.
14463 (expand_vec_perm2_vperm2f128_vblend): New function.
14464 (ix86_expand_vec_perm_const_1): New forward declaration. Call
14465 expand_vec_perm2_vperm2f128_vblend as last resort.
14466 (canonicalize_perm): Formatting fix.
14467
14468 PR tree-optimization/91351
14469 * tree-cfg.c (generate_range_test): Use range_check_type instead of
14470 unsigned_type_for.
14471 * tree-cfgcleanup.c (convert_single_case_switch): Punt if
14472 range_check_type returns NULL.
14473 * tree-switch-conversion.c (switch_conversion::build_one_array):
14474 Use range_check_type instead of unsigned_type_for, don't perform
14475 linear opt if it returns NULL.
14476 (bit_test_cluster::find_bit_tests): Formatting fix.
14477 (bit_test_cluster::emit): Use range_check_type instead of
14478 unsigned_type_for.
14479 (switch_decision_tree::try_switch_expansion): Punt if range_check_type
14480 returns NULL.
14481
14482 2019-08-29 Richard Biener <rguenther@suse.de>
14483
14484 PR tree-optimization/91568
14485 * tree-vectorizer.h (_slp_tree::max_nunits): Add.
14486 (vect_update_max_nunits): Add overload for poly_uint64.
14487 * tree-vect-slp.c (vect_create_new_slp_node): Initialize it.
14488 (vect_build_slp_tree): Record max_nunits into the subtree
14489 and merge it upwards.
14490 (vect_print_slp_tree): Print max_nunits.
14491
14492 2019-08-28 Marek Polacek <polacek@redhat.com>
14493
14494 Implement P1152R4: Deprecating some uses of volatile.
14495 PR c++/91361
14496 * doc/invoke.texi: Document -Wvolatile.
14497
14498 2019-08-28 Marek Polacek <polacek@redhat.com>
14499
14500 PR c++/91360 - Implement C++20 P1143R2: constinit.
14501 * doc/invoke.texi: Document -Wc++20-compat.
14502
14503 2019-08-28 Martin Sebor <msebor@redhat.com>
14504
14505 PR tree-optimization/91457
14506 * builtins.c (component_size): New function.
14507 (compute_objsize): Add argument. Handle ARRAY_REF and COMPONENT_REF.
14508 * builtins.h (compute_objsize): Add argument.
14509 * tree-ssa-strlen.c (handle_store): Handle no-warning bit.
14510 * tree-vrp.c (vrp_prop::check_array_ref): Return warning result.
14511 (vrp_prop::check_mem_ref): Same.
14512 (vrp_prop::search_for_addr_array): Set no-warning bit.
14513 (check_array_bounds): Same.
14514
14515 2019-08-28 Martin Sebor <msebor@redhat.com>
14516
14517 PR driver/80545
14518 * opts-common.c (option_enabled): Correct checking for language
14519 options.
14520
14521 2019-08-28 Uroš Bizjak <ubizjak@gmail.com>
14522
14523 * config/i386/i386.c (ix86_register_move_cost): Do not
14524 limit the cost of moves to/from XMM register to minimum 8.
14525
14526 2019-08-28 Martin Jambor <mjambor@suse.cz>
14527
14528 PR ipa/91468
14529 * ipa-cp.c (merge_agg_lats_step): Removed redundant test, made a
14530 checking assert a normal assert to test it really is redundant.
14531 * ipa-prop.c (compute_complex_assign_jump_func): Removed
14532 redundant test.
14533 (update_jump_functions_after_inlining): Removed combining unary
14534 arithmetic operations with an ancestor jump function.
14535 (ipcp_modif_dom_walker::before_dom_children): Fix wrong use of rhs
14536 instead of t.
14537
14538 2019-08-28 Richard Biener <rguenther@suse.de>
14539
14540 * config/i386/i386-features.c (convert_scalars_to_vector): Do not
14541 add the MD problem.
14542
14543 2019-08-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
14544 Richard Biener <rguenther@suse.de>
14545
14546 * expr.c (expand_assignment): Handle misaligned DECLs.
14547 (expand_expr_real_1): Handle FUNCTION_DECL as unaligned.
14548 * function.c (assign_parm_adjust_stack_rtl): Check movmisalign optab
14549 too.
14550 (assign_parm_setup_stack): Allocate properly aligned stack slots.
14551 * varasm.c (build_constant_desc): Align constants of misaligned types.
14552 * config/arm/predicates.md (aligned_operand): New predicate.
14553 * config/arm/arm.md (movdi, movsi, movhi, movhf, movsf, movdf): Use
14554 aligned_operand to check restrictions on memory addresses.
14555 * config/arm/neon.md (movti, mov<VSTRUCT>, mov<VH>): Likewise.
14556 * config/arm/vec-common.md (mov<VALL>): Likewise.
14557
14558 2019-08-28 Jakub Jelinek <jakub@redhat.com>
14559
14560 PR libgomp/91530
14561 * config/i386/sse.md (vec_shl_<mode>, vec_shr_<mode>): Use
14562 V_128 iterator instead of VI_128.
14563
14564 2019-08-28 Martin Liska <mliska@suse.cz>
14565
14566 PR tree-optimization/90970
14567 * builtins.c (check_access): Remove assignment to maxread
14568 as it hasn't been used since when it was introduced in r255755.
14569
14570 2019-08-27 Martin Sebor <msebor@redhat.com>
14571
14572 PR tree-optimization/91567
14573 * gimple-ssa-sprintf.c (get_string_length): Handle more forms of lengths
14574 of unknown strings.
14575 * vr-values.c (vr_values::extract_range_basic): Set strlen upper bound
14576 to PTRDIFF_MAX - 2.
14577
14578 2019-08-27 Jeff Law <law@redhat.com>
14579
14580 * tree-ssa-strlen.c (printf_strlen_execute): Initialize
14581 the loop optimizer and SCEV before sizing ssa_ver_to_stridx.
14582
14583 2019-08-27 Uroš Bizjak <ubizjak@gmail.com>
14584
14585 PR target/91528
14586 * config/i386/i386-features.c (convert_scalars_to_vector):
14587 Update crtl->stack_realign_needed, crtl->stack_realign_tried and
14588 crtl->stack_realign_processed. Update crtl->drap_reg by calling
14589 targetm.calls.get_drap_rtx. If drap_rtx is non-null then
14590 Update crtl->args.internal_arg_pointer and call fixup_tail_calls.
14591
14592 2019-08-27 Richard Biener <rguenther@suse.de>
14593
14594 * config/i386/i386-features.h
14595 (general_scalar_chain::~general_scalar_chain): Add.
14596 (general_scalar_chain::insns_conv): New bitmap.
14597 (general_scalar_chain::n_sse_to_integer): New.
14598 (general_scalar_chain::n_integer_to_sse): Likewise.
14599 (general_scalar_chain::make_vector_copies): Adjust signature.
14600 * config/i386/i386-features.c
14601 (general_scalar_chain::general_scalar_chain): Outline,
14602 initialize new members.
14603 (general_scalar_chain::~general_scalar_chain): New.
14604 (general_scalar_chain::mark_dual_mode_def): Record insns
14605 we need to insert conversions at and count them.
14606 (general_scalar_chain::compute_convert_gain): Account
14607 for conversion instructions at chain boundary.
14608 (general_scalar_chain::make_vector_copies): Generate a single
14609 copy for a def by a specific insn.
14610 (general_scalar_chain::convert_registers): First populate
14611 defs_map, then make copies at out-of chain insns.
14612
14613 2019-08-27 Richard Earnshaw <rearnsha@arm.com>
14614
14615 * config/arm/arm.md (stack_protect_set_insn): Add security-related
14616 comment.
14617 * config/aarch64/aarch64.md (stack_protect_set_<mode>): Likewise.
14618
14619 2019-08-27 Martin Liska <mliska@suse.cz>
14620
14621 * cgraph.c (cgraph_node::remove): Remove dead assignment before
14622 loop.
14623 * config/i386/i386-features.c (scalar_chain::emit_conversion_insns):
14624 Enclose in anonymous namespace.
14625 * config/i386/x86-tune-costs.h (struct processor_costs): Wrap
14626 hard_register initialization in braces.
14627 * tree-vrp.h (value_range_base::supports_type_p): Return false
14628 for function with boolean return type.
14629
14630 2019-08-26 Uroš Bizjak <ubizjak@gmail.com>
14631
14632 * config/i386/i386.c (emit_i387_cw_initialization)
14633 <case I387_CW_ROUNDEVEN>: Fix masking operand value.
14634
14635 2019-08-26 Martin Sebor <msebor@redhat.com>
14636
14637 PR c++/83431
14638 * gimple-ssa-sprintf.c (pass_data_sprintf_length): Remove object.
14639 (sprintf_dom_walker): Remove class.
14640 (get_int_range): Make argument const.
14641 (directive::fmtfunc, directive::set_precision): Same.
14642 (format_none): Same.
14643 (build_intmax_type_nodes): Same.
14644 (adjust_range_for_overflow): Same.
14645 (format_floating): Same.
14646 (format_character): Same.
14647 (format_string): Same.
14648 (format_plain): Same.
14649 (get_int_range): Cast away constness.
14650 (format_integer): Same.
14651 (get_string_length): Call get_range_strlen_dynamic. Handle
14652 null lendata.maxbound.
14653 (should_warn_p): Adjust argument scope qualifier.
14654 (maybe_warn): Same.
14655 (format_directive): Same.
14656 (parse_directive): Same.
14657 (is_call_safe): Same.
14658 (try_substitute_return_value): Same.
14659 (sprintf_dom_walker::handle_printf_call): Rename...
14660 (handle_printf_call): ...to this. Initialize target to host charmap
14661 here instead of in pass_sprintf_length::execute.
14662 (struct call_info): Make global.
14663 (sprintf_dom_walker::compute_format_length): Make global.
14664 (sprintf_dom_walker::handle_gimple_call): Same.
14665 * passes.def (pass_sprintf_length): Replace with pass_strlen.
14666 * print-rtl.c (print_pattern): Reduce the number of spaces to
14667 avoid -Wformat-truncation.
14668 * tree-pass.h (make_pass_warn_printf): New function.
14669 * tree-ssa-strlen.c (strlen_optimize): New variable.
14670 (get_string_length): Add comments.
14671 (get_range_strlen_dynamic): New function.
14672 (check_and_optimize_call): New function.
14673 (handle_integral_assign): New function.
14674 (strlen_check_and_optimize_stmt): Factor code out into
14675 strlen_check_and_optimize_call and handle_integral_assign.
14676 (strlen_dom_walker::evrp): New member.
14677 (strlen_dom_walker::before_dom_children): Use evrp member.
14678 (strlen_dom_walker::after_dom_children): Use evrp member.
14679 (printf_strlen_execute): New function.
14680 (pass_strlen::gate): Update to handle printf calls.
14681 (dump_strlen_info): New function.
14682 (pass_data_warn_printf): New variable.
14683 (pass_warn_printf): New class.
14684 * tree-ssa-strlen.h (get_range_strlen_dynamic): Declare.
14685 (handle_printf_call): Same.
14686 * tree-vrp.c (value_range_base::type): Adjust assertion.
14687 * vr-values.c (vr_values::update_value_range): Use type of the first
14688 argument rather than the second.
14689
14690 2019-08-26 Richard Biener <rguenther@suse.de>
14691
14692 * config/i386/i386-features.c (general_remove_non_convertible_regs):
14693 Remove.
14694 (convert_scalars_to_vector): Do not call it.
14695
14696 2019-08-26 Tejas Joshi <tejasjoshi9673@gmail.com>
14697 Uros Bizjak <ubizjak@gmail.com>
14698
14699 * builtins.c (mathfn_built_in_2): Change CASE_MATHFN to
14700 CASE_MATHFN_FLOATN for roundeven.
14701 * config/i386/i386.c (ix86_i387_mode_needed): Add case
14702 I387_ROUNDEVEN.
14703 (ix86_mode_needed): Likewise.
14704 (ix86_mode_after): Likewise.
14705 (ix86_mode_entry): Likewise.
14706 (ix86_mode_exit): Likewise.
14707 (ix86_emit_mode_set): Likewise.
14708 (emit_i387_cw_initialization): Add case I387_CW_ROUNDEVEN.
14709 * config/i386/i386.h (ix86_stack_slot): Add SLOT_CW_ROUNDEVEN.
14710 (ix86_entity): Add I387_ROUNDEVEN.
14711 (NUM_MODES_FOR_MODE_SWITCHING): Add I387_CW_ANY.
14712 * config/i386/i386.md: Define UNSPEC_FRNDINT_ROUNDEVEN.
14713 (define_int_iterator): Likewise.
14714 (define_int_attr): Likewise for rounding_insn, rounding and ROUNDING.
14715 (define_constant): Define ROUND_ROUNDEVEN mode.
14716 (define_attr): Add roundeven mode for i387_cw.
14717 (<rouding_insn><mode>2): Add condition for ROUND_ROUNDEVEN.
14718 * internal-fn.def (ROUNDEVEN): New builtin function.
14719 * optabs.def (roundeven_optab): New optab.
14720
14721 2019-08-26 Tejas Joshi <tejasjoshi9673@gmail.com>
14722
14723 * builtins.c (mathfn_built_in_2): Added CASE_MATHFN_FLOATN
14724 for ROUNDEVEN.
14725 * builtins.def: Added function definitions for roundeven function
14726 variants.
14727 * fold-const-call.c (fold_const_call_ss): Added case for roundeven
14728 function call. Adjust condition for floor, ceil, trunc and round.
14729 * fold-const.c (negate_mathfn_p): Added case for roundeven function.
14730 (tree_call_nonnegative_warnv_p): Added case for roundeven function.
14731 (integer_valued_real_call_p): Added case for roundeven function.
14732 * real.c (is_even): New function. Returns true if real number is even,
14733 otherwise returns false.
14734 (is_halfway_below): New function. Returns true if real number is
14735 halfway between two integers, else return false.
14736 (real_roundeven): New function. Round real number to nearest integer,
14737 rounding halfway cases towards even.
14738 * real.h (real_value): Added descriptive comments. Added function
14739 declaration for roundeven function.
14740 * doc/extend.texi (Other Builtins): List roundeven variants among
14741 functions which can be handled as builtins.
14742
14743 2019-08-26 Richard Biener <rguenther@suse.de>
14744
14745 PR target/91522
14746 PR target/91527
14747 * config/i386/i386-features.h (general_scalar_chain::defs_map):
14748 New member.
14749 (general_scalar_chain::replace_with_subreg): Remove.
14750 (general_scalar_chain::replace_with_subreg_in_insn): Likewise.
14751 (general_scalar_chain::convert_reg): Adjust signature.
14752 * config/i386/i386-features.c (scalar_chain::add_insn): Do not
14753 iterate over all defs of a reg.
14754 (general_scalar_chain::replace_with_subreg): Remove.
14755 (general_scalar_chain::replace_with_subreg_in_insn): Likewise.
14756 (general_scalar_chain::make_vector_copies): Populate defs_map,
14757 place copy only after defs that are used as vectors in the chain.
14758 (general_scalar_chain::convert_reg): Emit a copy for a specific
14759 def in a specific instruction.
14760 (general_scalar_chain::convert_op): All reg uses are converted here.
14761 (general_scalar_chain::convert_insn): Emit copies for scalar
14762 uses of defs here. Replace uses with the copies we created.
14763 Replace and convert the def. Adjust REG_DEAD notes, remove
14764 REG_EQUIV/EQUAL notes.
14765 (general_scalar_chain::convert_registers): Only handle copies
14766 into the chain here.
14767
14768 2019-08-26 Robin Dapp <rdapp@linux.ibm.com>
14769
14770 * match.pd: Add (T)(A) + CST -> (T)(A + CST).
14771
14772 2019-08-26 Robin Dapp <rdapp@linux.ibm.com>
14773
14774 * gimple-loop-versioning.cc (loop_versioning::record_address_fragment):
14775 Add nop_convert case.
14776 * tree-ssa-propagate.c (substitute_and_fold_dom_walker::before_dom_children):
14777 Fold all statements if requested.
14778 * tree-ssa-propagate.h (class substitute_and_fold_engine):
14779 Allow to fold all statements.
14780 * tree-vrp.c (class vrp_folder):
14781 Let substitute_and_fold_engine fold all statements.
14782
14783 2019-08-26 Richard Biener <rguenther@suse.de>
14784
14785 PR tree-optimization/91526
14786 * passes.def: Note that after late FRE we do TODO_update_address_taken.
14787 * tree-ssa-sccvn.c (pass_fre::execute): In late mode schedule
14788 TODO_update_address_taken.
14789
14790 2019-08-26 Gerald Pfeifer <gerald@pfeifer.com>
14791
14792 * config/i386/gmm_malloc.h: Only use <errno.h> and errno if
14793 __STDC_HOSTED__.
14794
14795 2019-08-23 Mihailo Stojanovic <mistojanovic@wavecomp.com>
14796
14797 * config/mips/mips.md (mips_get_fcsr, *mips_get_fcsr): Use SI
14798 machine mode for unspec_volatile operand.
14799
14800 2019-08-23 Wilco Dijkstra <wdijkstr@arm.com>
14801
14802 * doc/invoke.texi (mneon-for-64bits): Deprecate option.
14803 * config/arm/arm.opt (mneon-for-64bits): Deprecate option.
14804 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): Remove.
14805 (prefer_neon_for_64bits): Remove.
14806 * config/arm/arm.c (prefer_neon_for_64bits): Remove.
14807 (tune_params): Remove PREF_NEON_64_FALSE uses.
14808 (arm_option_override): Remove prefer_neon selection code.
14809 (arm_print_tune_info): Remove prefer_neon_for_64bits.
14810 * config/arm/arm-protos.h (tune_params): Remove
14811 prefer_neon_for_64bits.
14812 (prefer_neon_for_64bits): Remove.
14813
14814 2019-08-23 Iain Sandoe <iain@sandoe.co.uk>
14815
14816 PR pch/61250
14817 * ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure
14818 and issue any diagnostics needed before collecting the pre-PCH
14819 state.
14820
14821 2019-08-23 Jakub Jelinek <jakub@redhat.com>
14822
14823 PR middle-end/91283
14824 * common.opt (fexcess-precision=): Add Optimization flag. Use
14825 flag_excess_precision variable instead of
14826 flag_excess_precision_cmdline.
14827 * flags.h (class target_flag_state): Remove x_flag_excess_precision
14828 member.
14829 (flag_excess_precision): Don't define.
14830 * langhooks.c (lhd_post_options): Set flag_excess_precision instead of
14831 flag_excess_precision_cmdline. Remove comment.
14832 * opts.c (set_fast_math_flags): Use frontend_set_flag_excess_precision
14833 and x_flag_excess_precision instead of
14834 frontend_set_flag_excess_precision_cmdline and
14835 x_flag_excess_precision_cmdline.
14836 (fast_math_flags_set_p): Use x_flag_excess_precision instead of
14837 x_flag_excess_precision_cmdline.
14838 * toplev.c (init_excess_precision): Remove.
14839 (lang_dependent_init_target): Don't call it.
14840
14841 2019-08-23 Martin Liska <mliska@suse.cz>
14842
14843 * lto-wrapper.c (run_gcc): When setting jobserver
14844 set also parallel to 1. This was done so before r273908.
14845
14846 2019-08-23 Dennis Zhang <dennis.zhang@arm.com>
14847
14848 * config/arm/arm-cpus.in (cortex-m35p): New entry.
14849 (cortex-a76ae): Likewise.
14850 (cortex-a77): Likewise
14851 * config/arm/arm-tables.opt: Regenerate.
14852 * config/arm/arm-tune.md: Likewise.
14853 * doc/invoke.texi (ARM Options): Document cortex-m35p, cortx-a76ae,
14854 cortex-a77 CPU options.
14855
14856 2019-08-23 Martin Liska <mliska@suse.cz>
14857
14858 * profile.c (instrument_values): Do not set
14859 0 as last argument.
14860 * tree-profile.c (gimple_gen_interval_profiler): Remove
14861 last argument.
14862 (gimple_gen_pow2_profiler): Likewise.
14863 (gimple_gen_topn_values_profiler): Likewise.
14864 (gimple_gen_ic_profiler): Likewise.
14865 (gimple_gen_time_profiler): Likewise.
14866 (gimple_gen_average_profiler): Likewise.
14867 (gimple_gen_ior_profiler): Likewise.
14868 * value-prof.c (dump_histogram_value): Use default
14869 in switch statement instead of HIST_TYPE_MAX.
14870 (stream_in_histogram_value): Likewise.
14871 (gimple_duplicate_stmt_histograms): Do not
14872 use NULL for implicitly set arguments.
14873 (gimple_divmod_values_to_profile): Do not use
14874 reserve+quick_push.
14875 (gimple_indirect_call_to_profile): Likewise.
14876 (gimple_find_values_to_profile): Use implicit
14877 function call arguments.
14878 * value-prof.h (gimple_alloc_histogram_value):
14879 Set default values.
14880 (gimple_gen_interval_profiler): Remove last argument.
14881 (gimple_gen_pow2_profiler): Likewise.
14882 (gimple_gen_topn_values_profiler): Likewise.
14883 (gimple_gen_ic_profiler): Likewise.
14884 (gimple_gen_time_profiler): Likewise.
14885 (gimple_gen_average_profiler): Likewise.
14886 (gimple_gen_ior_profiler): Likewise.
14887
14888 2019-08-22 Martin Sebor <msebor@redhat.com>
14889
14890 PR middle-end/91490
14891 * builtins.c (c_strlen): Rename argument and introduce new local.
14892 Set no-warning bit on original argument.
14893 * expr.c (string_constant): Pass argument type to fold_ctor_reference.
14894 Fold empty and zero constructors into empty strings.
14895 * gimple-fold.c (fold_nonarray_ctor_reference): Return a STRING_CST
14896 for missing initializers.
14897 * tree.c (build_string_literal): Handle optional argument.
14898 * tree.h (build_string_literal): Add defaulted argument.
14899 * gimple-ssa-warn-restrict.c (maybe_diag_access_bounds): Check
14900 no-warning bit on original expression.
14901
14902 2019-08-22 Segher Boessenkool <segher@kernel.crashing.org>
14903
14904 PR target/91481
14905 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
14906 and UNSPEC_DARN_RAW.
14907 (unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and
14908 UNSPECV_DARN_RAW.
14909 (darn_32): Use an unspec_volatile, and UNSPECV_DARN_32.
14910 (darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW.
14911 (darn): Use an unspec_volatile, and UNSPECV_DARN.
14912
14913 2019-08-22 Segher Boessenkool <segher@kernel.crashing.org>
14914
14915 * config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
14916 UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to...
14917 * config/rs6000/rs6000.md (unspec): ... here.
14918 * config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb,
14919 *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
14920 cmpeqb, *cmpeqb_internal): Delete, move to...
14921 * config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb,
14922 *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
14923 cmpeqb, *cmpeqb_internal): ... here.
14924
14925 2019-08-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14926
14927 * config/arm/arm_acle.h: Use arch=armv8-a+crc+simd pragma for CRC32
14928 intrinsics if __ARM_FP.
14929 Use __ARM_FEATURE_CRC32 ifdef guard.
14930
14931 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com>
14932
14933 * config/arm/arm.md (neon_for_64bits): Remove.
14934 (avoid_neon_for_64bits): Remove.
14935 (arm_adddi3): Always split early.
14936 (arm_subdi3): Always split early.
14937 (negdi2): Remove Neon expansion.
14938 (split zero_extend): Split before reload.
14939 (split sign_extend): Split before reload.
14940
14941 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com>
14942
14943 * config/arm/iterators.md (qhs_extenddi_cstr): Update.
14944 (qhs_extenddi_cstr): Likewise.
14945 * config/arm/arm.md (ashldi3): Always expand early.
14946 (ashlsi3): Likewise.
14947 (ashrsi3): Likewise.
14948 (zero_extend<mode>di2): Remove Neon variants.
14949 (extend<mode>di2): Likewise.
14950 * config/arm/neon.md (ashldi3_neon_noclobber): Remove.
14951 (signed_shift_di3_neon): Likewise.
14952 (unsigned_shift_di3_neon): Likewise.
14953 (ashrdi3_neon_imm_noclobber): Likewise.
14954 (lshrdi3_neon_imm_noclobber): Likewise.
14955 (<shift>di3_neon): Likewise.
14956 (split extend): Remove DI extend split patterns.
14957
14958 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com>
14959
14960 * config/arm/arm.md (split and/eor/ior): Remove Neon check.
14961 (split not): Add DImode not splitter.
14962 (anddi3): Remove pattern.
14963 (anddi3_insn): Likewise.
14964 (anddi_zesidi_di): Likewise.
14965 (anddi_sesdi_di): Likewise.
14966 (anddi_notdi_di): Likewise.
14967 (anddi_notzesidi_di): Likewise.
14968 (anddi_notsesidi_di): Likewise.
14969 (iordi3): Likewise.
14970 (iordi3_insn): Likewise.
14971 (iordi_zesidi_di): Likewise.
14972 (iordi_sesidi_di): Likewise.
14973 (xordi3): Likewise.
14974 (xordi3_insn): Likewise.
14975 (xordi_sesidi_di): Likewise.
14976 (xordi_zesidi_di): Likewise.
14977 (one_cmpldi2): Likewise.
14978 (one_cmpldi2_insn): Likewise.
14979 * config/arm/constraints.md: Remove De, Df, Dg constraints.
14980 * config/arm/iwmmxt.md (iwmmxt_iordi3): Remove general register
14981 alternative.
14982 (iwmmxt_xordi3): Likewise.
14983 (iwmmxt_anddi3): Likewise.
14984 * config/arm/neon.md (orndi3_neon): Remove pattern.
14985 (anddi_notdi_di): Likewise.
14986 * config/arm/predicates.md (arm_anddi_operand_neon): Remove.
14987 (arm_iordi_operand_neon): Likewise.
14988 (arm_xordi_operand_neon): Likewise.
14989 * config/arm/thumb2.md(iordi_notdi_di): Remove pattern.
14990 (iordi_notzesidi_di): Likewise.
14991 (iordi_notdi_zesidi): Likewise.
14992 (iordi_notsesidi_di): Likewise.
14993
14994 2019-08-22 Richard Earnshaw <rearnsha@arm.com>
14995
14996 * config/arm/arm.md (iorsi3_compare0): Add alternative for 16-bit thumb
14997 insn.
14998 (iorsi3_compare0_scratch): Likewise.
14999
15000 2019-08-22 Sylvia Taylor <sylvia.taylor@arm.com>
15001
15002 * config/aarch64/aarch64-simd-builtins.def:
15003 (ld1x4): New.
15004 (st1x4): Likewise.
15005 * config/aarch64/aarch64-simd.md:
15006 (aarch64_ld1x4<VALLDIF:mode>): New pattern.
15007 (aarch64_st1x4<VALLDIF:mode>): Likewise.
15008 (aarch64_ld1_x4_<mode>): Likewise.
15009 (aarch64_st1_x4_<mode>): Likewise.
15010 * config/aarch64/arm_neon.h:
15011 (vld1_s8_x4): New function.
15012 (vld1q_s8_x4): Likewise.
15013 (vld1_s16_x4): Likewise.
15014 (vld1q_s16_x4): Likewise.
15015 (vld1_s32_x4): Likewise.
15016 (vld1q_s32_x4): Likewise.
15017 (vld1_u8_x4): Likewise.
15018 (vld1q_u8_x4): Likewise.
15019 (vld1_u16_x4): Likewise.
15020 (vld1q_u16_x4): Likewise.
15021 (vld1_u32_x4): Likewise.
15022 (vld1q_u32_x4): Likewise.
15023 (vld1_f16_x4): Likewise.
15024 (vld1q_f16_x4): Likewise.
15025 (vld1_f32_x4): Likewise.
15026 (vld1q_f32_x4): Likewise.
15027 (vld1_p8_x4): Likewise.
15028 (vld1q_p8_x4): Likewise.
15029 (vld1_p16_x4): Likewise.
15030 (vld1q_p16_x4): Likewise.
15031 (vld1_s64_x4): Likewise.
15032 (vld1_u64_x4): Likewise.
15033 (vld1_p64_x4): Likewise.
15034 (vld1q_s64_x4): Likewise.
15035 (vld1q_u64_x4): Likewise.
15036 (vld1q_p64_x4): Likewise.
15037 (vld1_f64_x4): Likewise.
15038 (vld1q_f64_x4): Likewise.
15039 (vst1_s8_x4): Likewise.
15040 (vst1q_s8_x4): Likewise.
15041 (vst1_s16_x4): Likewise.
15042 (vst1q_s16_x4): Likewise.
15043 (vst1_s32_x4): Likewise.
15044 (vst1q_s32_x4): Likewise.
15045 (vst1_u8_x4): Likewise.
15046 (vst1q_u8_x4): Likewise.
15047 (vst1_u16_x4): Likewise.
15048 (vst1q_u16_x4): Likewise.
15049 (vst1_u32_x4): Likewise.
15050 (vst1q_u32_x4): Likewise.
15051 (vst1_f16_x4): Likewise.
15052 (vst1q_f16_x4): Likewise.
15053 (vst1_f32_x4): Likewise.
15054 (vst1q_f32_x4): Likewise.
15055 (vst1_p8_x4): Likewise.
15056 (vst1q_p8_x4): Likewise.
15057 (vst1_p16_x4): Likewise.
15058 (vst1q_p16_x4): Likewise.
15059 (vst1_s64_x4): Likewise.
15060 (vst1_u64_x4): Likewise.
15061 (vst1_p64_x4): Likewise.
15062 (vst1q_s64_x4): Likewise.
15063 (vst1q_u64_x4): Likewise.
15064 (vst1q_p64_x4): Likewise.
15065 (vst1_f64_x4): Likewise.
15066 (vst1q_f64_x4): Likewise.
15067
15068 2019-08-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
15069
15070 * config/aarch64/aarch64-sve.md (vcond_mask): Add "@".
15071
15072 2019-08-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
15073 Richard Sandiford <richard.sandiford@arm.com>
15074
15075 PR target/88839
15076 * config/aarch64/aarch64.c (aarch64_evpc_sel): New function.
15077 (aarch64_expand_vec_perm_const_1): Call aarch64_evpc_sel.
15078
15079 2019-08-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
15080
15081 PR target/90724
15082 * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): Force y
15083 in reg if it fails aarch64_plus_operand predicate.
15084
15085 2019-08-21 Richard Biener <rguenther@suse.de>
15086
15087 PR tree-optimization/91482
15088 * tree-ssa-ccp.c (ccp_folder::fold_stmt): Remove useless
15089 BUILT_IN_ASSUME_ALIGNED calls.
15090
15091 2019-08-21 Richard Biener <rguenther@suse.de>
15092
15093 PR target/91498
15094 PR target/91503
15095 * config/i386/i386-features.c
15096 (general_scalar_chain::make_vector_copies): Copy stack temporary
15097 rtx when using it multiple times.
15098 (general_scalar_chain::convert_reg): Likewise.
15099
15100 2019-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
15101
15102 * function.c (assign_parm_find_stack_rtl): Use known_eq instead of ==.
15103
15104 2019-08-20 Matthew Beliveau <mbelivea@redhat.com>
15105
15106 * tree-ssa-dse.c (dse_optimize_redundant_stores): Improved check to
15107 catch more redundant zero initialization cases.
15108 (dse_dom_walker::dse_optimize_stmt): Likewise.
15109
15110 2019-08-20 Richard Biener <rguenther@suse.de>
15111
15112 PR lto/91307
15113 * ipa.c (cgraph_build_static_cdtor_1): Use names not recognizable
15114 by collect2 when targetm.have_ctors_dtors which avoids dragging
15115 in temporary filenames from LTO input objects.
15116
15117 2019-08-20 Richard Biener <rguenther@suse.de>
15118
15119 PR tree-optimization/37242
15120 * tree-ssa-sccvn.c (visit_nary_op): Also CSE (T)(a + b)
15121 to (T)a + (T)b if we know that a + b does not overflow.
15122
15123 2019-08-20 Eric Botcazou <ebotcazou@adacore.com>
15124
15125 PR rtl-optimization/91347
15126 * dse.c (scan_insn): Call add_wild_read for non-const/memset tail calls
15127 before reload if HARD_FRAME_POINTER_IS_ARG_POINTER.
15128
15129 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
15130
15131 * calls.h (function_arg_info): Add a pass_by_reference field,
15132 defaulting to false.
15133 * calls.c (apply_pass_by_reference_rules): Set pass_by_reference
15134 when applying pass-by-reference semantics.
15135 (initialize_argument_information): Likewise.
15136 (emit_library_call_value_1): Likewise.
15137 * function.c (assign_parm_data_one): Remove passed_pointer field.
15138 (assign_parm_find_data_types): Don't set it.
15139 (assign_parm_find_stack_rtl, assign_parm_adjust_stack_rtl)
15140 (assign_parm_setup_reg, assign_parms, gimplify_parameters): Use
15141 arg.pass_by_reference instead of passed_pointer.
15142
15143 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
15144
15145 * calls.c (emit_library_call_value_1): Merge arg and orig_arg
15146 into a single function_arg_info, updating its fields when we
15147 apply pass-by-reference and promotion semantics. Use the
15148 function_arg_info to track the mode rather than keeping it in
15149 a separate local variable.
15150 (initialize_argument_information): Likewise. Base the final
15151 arg_to_skip on this new function_arg_info rather than creating
15152 a new one from scratch.
15153
15154 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
15155
15156 * function.c (assign_parm_data_one): Replace passed_type,
15157 promoted_mode and named_arg with a function_arg_info field.
15158 (assign_parm_find_data_types): Remove local variables and
15159 assign directly to "data". Make data->passed_mode shadow
15160 data->arg.mode until promotion, then assign the promoted
15161 mode to data->arg.mode.
15162 (assign_parms_setup_varargs, assign_parm_find_entry_rtl)
15163 (assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl)
15164 (assign_parm_remove_parallels, assign_parm_setup_block_p)
15165 (assign_parm_setup_block, assign_parm_setup_reg)
15166 (assign_parm_setup_stack, assign_parms, gimplify_parameters): Use
15167 arg.mode instead of promoted_mode, arg.type instead of passed_type
15168 and arg.named instead of named_arg. Use data->arg for
15169 function_arg_info structures that had the field values passed_type,
15170 promoted_mode and named_arg. Base other function_arg_infos on
15171 data->arg, changing the necessary properties.
15172
15173 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
15174
15175 * calls.h (apply_pass_by_reference_rules): Declare.
15176 * calls.c (apply_pass_by_reference_rules): New function.
15177 * config/c6x/c6x.c (c6x_call_saved_register_used): Use it.
15178 * config/rs6000/rs6000-call.c (rs6000_parm_needs_stack): Likewise.
15179 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
15180 * function.c (assign_parm_find_data_types): Likewise.
15181 * var-tracking.c (prepare_call_arguments): Likewise.
15182
15183 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
15184
15185 * target.def (must_pass_in_stack): Take a function_arg_info instead
15186 of a mode and a type.
15187 * doc/tm.texi: Regenerate.
15188 * calls.h (must_pass_in_stack_var_size): Take a function_arg_info
15189 instead of a mode and a type.
15190 (must_pass_in_stack_var_size_or_pad): Likewise.
15191 * calls.c (must_pass_in_stack_var_size): Likewise.
15192 (must_pass_in_stack_var_size_or_pad): Likewise.
15193 (initialize_argument_information): Update call to
15194 targetm.calls.must_pass_in_stack.
15195 (must_pass_va_arg_on_stack): Likewise.
15196 * function.c (assign_parm_find_entry_rtl): Likewise.
15197 * targhooks.c (hook_pass_by_reference_must_pass_in_stack): Likewise.
15198 * config/alpha/alpha.c (alpha_function_arg): Likewise.
15199 (alpha_function_arg_advance): Likewise.
15200 * config/cr16/cr16.c (cr16_function_arg): Likewise.
15201 (cr16_function_arg_advance): Likewise.
15202 * config/cris/cris.c (cris_pass_by_reference): Likewise.
15203 (cris_arg_partial_bytes): Likewise.
15204 * config/iq2000/iq2000.c (iq2000_pass_by_reference): Likewise.
15205 * config/lm32/lm32.c (lm32_function_arg): Likewise.
15206 * config/mcore/mcore.c (mcore_num_arg_regs): Likewise.
15207 (mcore_function_arg, mcore_arg_partial_bytes): Likewise.
15208 * config/mips/mips.c (mips_pass_by_reference): Likewise.
15209 * config/mmix/mmix.c (mmix_function_arg_advance): Likewise.
15210 (mmix_function_arg_1, mmix_pass_by_reference): Likewise.
15211 * config/sh/sh.c (sh_pass_by_reference): Likewise.
15212 * config/stormy16/stormy16.c (xstormy16_function_arg): Likewise.
15213 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
15214 * config/arm/arm.c (arm_must_pass_in_stack): Take a function_arg_info
15215 instead of a mode and a type.
15216 * config/fr30/fr30.c (fr30_must_pass_in_stack): Likewise.
15217 (fr30_num_arg_regs): Likewise.
15218 (fr30_setup_incoming_varargs): Update calls accordingly.
15219 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
15220 (fr30_function_arg_advance): Likewise.
15221 * config/frv/frv.c (frv_must_pass_in_stack): Take a function_arg_info
15222 instead of a mode and a type.
15223 * config/gcn/gcn.c (num_arg_regs): Likewise.
15224 (gcn_function_arg, gcn_function_arg_advance): Update calls to
15225 num_arg_regs and targetm.calls.must_pass_in_stack.
15226 (gcn_arg_partial_bytes): Likewise.
15227 * config/i386/i386.c (ix86_must_pass_in_stack): Take a
15228 function_arg_info instead of a mode and a type.
15229 (classify_argument): Update call accordingly.
15230 * config/nds32/nds32.c (nds32_must_pass_in_stack): Take a
15231 function_arg_info instead of a mode and a type.
15232 * config/rs6000/rs6000-internal.h (rs6000_must_pass_in_stack):
15233 Likewise.
15234 * config/rs6000/rs6000-call.c (rs6000_must_pass_in_stack): Likewise.
15235 (rs6000_parm_needs_stack): Update call accordingly.
15236 (setup_incoming_varargs): Likewise.
15237
15238 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
15239
15240 * target.def (callee_copies): Take a function_arg_info instead
15241 of a mode, type and named flag.
15242 * doc/tm.texi: Regenerate.
15243 * targhooks.h (hook_callee_copies_named): Take a function_arg_info
15244 instead of a mode, type and named flag.
15245 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete.
15246 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
15247 (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function.
15248 * targhooks.c (hook_callee_copies_named): Take a function_arg_info
15249 instead of a mode, type and named flag.
15250 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete.
15251 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
15252 (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function.
15253 * calls.h (reference_callee_copied): Take a function_arg_info
15254 instead of a mode, type and named flag.
15255 * calls.c (reference_callee_copied): Likewise.
15256 (initialize_argument_information): Update call accordingly.
15257 (emit_library_call_value_1): Likewise.
15258 * function.c (gimplify_parameters): Likewise.
15259 * config/aarch64/aarch64.c (TARGET_CALLEE_COPIES): Define to
15260 hook_bool_CUMULATIVE_ARGS_arg_info_false instead of
15261 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false.
15262 * config/c6x/c6x.c (c6x_callee_copies): Delete.
15263 (TARGET_CALLEE_COPIES): Define to
15264 hook_bool_CUMULATIVE_ARGS_arg_info_true instead.
15265 * config/epiphany/epiphany.c (TARGET_CALLEE_COPIES): Define to
15266 hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
15267 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
15268 * config/mips/mips.c (mips_callee_copies): Take a function_arg_info
15269 instead of a mode, type and named flag.
15270 * config/mmix/mmix.c (TARGET_CALLEE_COPIES): Define to
15271 hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
15272 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
15273 * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): Likewise.
15274 * config/msp430/msp430.c (msp430_callee_copies): Delete.
15275 (TARGET_CALLEE_COPIES): Define to
15276 hook_bool_CUMULATIVE_ARGS_arg_info_true instead.
15277 * config/pa/pa.c (pa_callee_copies): Take a function_arg_info
15278 instead of a mode, type and named flag.
15279 * config/sh/sh.c (sh_callee_copies): Likewise.
15280 * config/v850/v850.c (TARGET_CALLEE_COPIES): Define to
15281 hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
15282 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
15283
15284 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
15285
15286 * target.def (function_arg_advance): Take a function_arg_info instead
15287 of a mode, type and named flag.
15288 * doc/tm.texi: Regenerate.
15289 * targhooks.h (default_function_arg_advance): Take a function_arg_info
15290 instead of a mode, type and named flag.
15291 * targhooks.c (default_function_arg_advance): Likewise.
15292 * calls.c (initialize_argument_information): Update call to
15293 targetm.calls.function_arg_advance.
15294 (emit_library_call_value_1): Likewise.
15295 * dse.c (get_call_args): Likewise.
15296 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
15297 * function.c (assign_parms, gimplify_parameters): Likewise.
15298 * var-tracking.c (prepare_call_arguments): Likewise.
15299 * config/aarch64/aarch64.c (aarch64_function_arg_advance): Take a
15300 function_arg_info instead of a mode, type and named flag.
15301 (aarch64_setup_incoming_varargs): Update call accordingly.
15302 * config/alpha/alpha.c (alpha_function_arg_advance): Take a
15303 function_arg_info instead of a mode, type and named flag.
15304 (alpha_setup_incoming_varargs): Update call accordingly.
15305 * config/arc/arc.c (arc_function_arg_advance): Take a
15306 function_arg_info instead of a mode, type and named flag.
15307 (arc_setup_incoming_varargs): Update call accordingly.
15308 * config/arm/arm.c (arm_function_arg_advance): Take a
15309 function_arg_info instead of a mode, type and named flag.
15310 (cmse_func_args_or_return_in_stack): Update call accordingly.
15311 (arm_function_ok_for_sibcall): Likewise.
15312 (cmse_nonsecure_call_clear_caller_saved): Likewise.
15313 * config/avr/avr.c (avr_function_arg_advance): Take a
15314 function_arg_info instead of a mode, type and named flag.
15315 * config/bfin/bfin.c (bfin_function_arg_advance): Likewise.
15316 * config/c6x/c6x.c (c6x_function_arg_advance): Likewise.
15317 (c6x_call_saved_register_used): Update call accordingly.
15318 * config/cr16/cr16.c (cr16_function_arg_advance): Take a
15319 function_arg_info instead of a mode, type and named flag.
15320 * config/cris/cris.c (cris_function_arg_advance): Likewise.
15321 * config/csky/csky.c (csky_function_arg_advance): Likewise.
15322 (csky_setup_incoming_varargs): Update call accordingly.
15323 * config/epiphany/epiphany.c (epiphany_function_arg_advance): Take a
15324 function_arg_info instead of a mode, type and named flag.
15325 * config/fr30/fr30.c (fr30_function_arg_advance): Likewise.
15326 * config/frv/frv.c (frv_function_arg_advance): Likewise.
15327 * config/ft32/ft32.c (ft32_function_arg_advance): Likewise.
15328 * config/gcn/gcn.c (gcn_function_arg_advance): Likewise.
15329 * config/h8300/h8300.c (h8300_function_arg_advance): Likewise.
15330 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
15331 (ix86_setup_incoming_varargs): Update call accordingly.
15332 * config/ia64/ia64.c (ia64_function_arg_advance): Take a
15333 function_arg_info instead of a mode, type and named flag.
15334 (ia64_setup_incoming_varargs): Update call accordingly.
15335 * config/iq2000/iq2000.c (iq2000_function_arg_advance): Take a
15336 function_arg_info instead of a mode, type and named flag.
15337 (iq2000_expand_prologue): Update call accordingly.
15338 * config/lm32/lm32.c (lm32_function_arg_advance): Take a
15339 function_arg_info instead of a mode, type and named flag.
15340 * config/m32c/m32c.c (m32c_function_arg_advance): Likewise.
15341 * config/m32r/m32r.c (m32r_function_arg_advance): Likewise.
15342 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
15343 * config/mcore/mcore.c (mcore_function_arg_advance): Likewise.
15344 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
15345 Likewise.
15346 (microblaze_expand_prologue): Update call accordingly.
15347 * config/mips/mips.c (mips_function_arg_advance): Take a
15348 function_arg_info instead of a mode, type and named flag.
15349 (mips_setup_incoming_varargs): Update call accordingly.
15350 (mips_output_args_xfer): Likewise.
15351 * config/mmix/mmix.c (mmix_function_arg_advance): Take a
15352 function_arg_info instead of a mode, type and named flag.
15353 * config/mn10300/mn10300.c (mn10300_function_arg_advance): Likewise.
15354 * config/moxie/moxie.c (moxie_function_arg_advance): Likewise.
15355 * config/msp430/msp430.c (msp430_function_arg_advance): Likewise.
15356 * config/nds32/nds32.c (nds32_function_arg_advance): Likewise.
15357 * config/nios2/nios2.c (nios2_function_arg_advance): Likewise.
15358 (nios2_setup_incoming_varargs): Update call accordingly.
15359 * config/nvptx/nvptx.c (nvptx_function_arg_advance): Take a
15360 function_arg_info instead of a mode, type and named flag.
15361 * config/or1k/or1k.c (or1k_function_arg_advance): Likewise.
15362 * config/pa/pa.c (pa_function_arg_advance): Likewise.
15363 * config/pdp11/pdp11.c (pdp11_function_arg_advance): Likewise.
15364 * config/pru/pru.c (pru_function_arg_advance): Likewise.
15365 * config/riscv/riscv.c (riscv_function_arg_advance): Likewise.
15366 (riscv_setup_incoming_varargs): Update call accordingly.
15367 * config/rl78/rl78.c (rl78_function_arg_advance): Take a
15368 function_arg_info instead of a mode, type and named flag.
15369 * config/rs6000/rs6000-internal.h (rs6000_function_arg_advance):
15370 Likewise.
15371 * config/rs6000/rs6000-call.c (rs6000_function_arg_advance): Likewise.
15372 (rs6000_parm_needs_stack): Update call accordingly.
15373 * config/rx/rx.c (rx_function_arg_advance): Take a function_arg_info
15374 instead of a mode, type and named flag.
15375 * config/s390/s390.c (s390_function_arg_advance): Likewise.
15376 (s390_call_saved_register_used): Update call accordingly.
15377 * config/sh/sh.c (sh_function_arg_advance): Take a function_arg_info
15378 instead of a mode, type and named flag.
15379 (sh_output_mi_thunk): Update call accordingly.
15380 * config/sparc/sparc.c (sparc_function_arg_advance): Take a
15381 function_arg_info instead of a mode, type and named flag.
15382 * config/spu/spu.c (spu_function_arg_advance): Likewise.
15383 (spu_setup_incoming_varargs): Update call accordingly.
15384 * config/stormy16/stormy16.c (xstormy16_function_arg_advance): Take a
15385 function_arg_info instead of a mode, type and named flag.
15386 * config/tilegx/tilegx.c (tilegx_function_arg_advance): Likewise.
15387 (tilegx_setup_incoming_varargs): Update call accordingly.
15388 * config/tilepro/tilepro.c (tilepro_function_arg_advance): Take a
15389 function_arg_info instead of a mode, type and named flag.
15390 (tilegx_setup_incoming_varargs): Update call accordingly.
15391 * config/v850/v850.c (v850_function_arg_advance): Take a
15392 function_arg_info instead of a mode, type and named flag.
15393 * config/vax/vax.c (vax_function_arg_advance): Likewise.
15394 * config/visium/visium.c (visium_function_arg_advance): Likewise.
15395 (visium_setup_incoming_varargs): Update call accordingly.
15396 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Take a
15397 function_arg_info instead of a mode, type and named flag.
15398
15399 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
15400
15401 * target.def (function_arg, function_incoming_arg): Take a
15402 function_arg_info instead of a mode, tree and named flag.
15403 * doc/tm.texi: Regenerate.
15404 * targhooks.h (default_function_arg): Take a function_arg_info
15405 instead of a mode, tree and named flag.
15406 (default_function_incoming_arg): Likewise.
15407 * targhooks.c (default_function_arg): Likewise.
15408 (default_function_incoming_arg): Likewise.
15409 * calls.h (function_arg_info::end_marker_p): New function.
15410 (function_arg_info::end_marker): Likewise.
15411 * calls.c (prepare_call_address, initialize_argument_information)
15412 (expand_call, emit_library_call_value_1): Update calls to
15413 targetm.calls.function_arg and targetm.calls.function_incoming_arg.
15414 * dse.c: Include calls.h.
15415 (get_call_args): Update call to targetm.calls.function_arg.
15416 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
15417 * var-tracking.c (prepare_call_arguments): Likewise.
15418 * function.c (assign_parm_find_entry_rtl): Update call to
15419 targetm.calls.function_incoming_arg.
15420 * config/aarch64/aarch64.c (aarch64_function_arg): Take a
15421 function_arg_info instead of a mode, tree and named flag.
15422 * config/alpha/alpha.c (alpha_function_arg): Likewise.
15423 * config/arc/arc.c (arc_function_arg): Likewise.
15424 * config/arm/arm.c (arm_function_arg): Likewise.
15425 (cmse_func_args_or_return_in_stack): Update call accordingly.
15426 (arm_function_ok_for_sibcall): Likewise.
15427 (cmse_nonsecure_call_clear_caller_saved): Likewise.
15428 * config/avr/avr.c (avr_function_arg): Take a function_arg_info
15429 instead of a mode, tree and named flag.
15430 * config/bfin/bfin.c (bfin_function_arg): Likewise.
15431 * config/c6x/c6x.c (c6x_function_arg): Likewise.
15432 (c6x_call_saved_register_used): Update call accordingly.
15433 * config/cr16/cr16.c (cr16_function_arg): Take a function_arg_info
15434 instead of a mode, tree and named flag.
15435 * config/cris/cris.c (cris_function_arg, cris_function_incoming_arg)
15436 (cris_function_arg_1): Likewise.
15437 * config/csky/csky.c (csky_function_arg): Likewise.
15438 * config/epiphany/epiphany.c (epiphany_function_arg): Likewise.
15439 * config/fr30/fr30.c (fr30_function_arg): Likewise.
15440 * config/frv/frv.c (frv_function_arg, frv_function_incoming_arg)
15441 (frv_function_arg_1): Likewise.
15442 * config/ft32/ft32.c (ft32_function_arg): Likewise.
15443 * config/gcn/gcn.c (gcn_function_arg): Likewise.
15444 * config/h8300/h8300.c (h8300_function_arg): Likewise.
15445 * config/i386/i386.c (ix86_function_arg): Likewise.
15446 * config/ia64/ia64.c (ia64_function_arg, ia64_function_incoming_arg)
15447 (ia64_function_arg_1): Likewise.
15448 * config/iq2000/iq2000.c (iq2000_function_arg): Likewise.
15449 (iq2000_expand_prologue, iq2000_pass_by_reference): Update call
15450 accordingly.
15451 * config/lm32/lm32.c (lm32_function_arg): Take a function_arg_info
15452 instead of a mode, tree and named flag.
15453 * config/m32c/m32c.c (m32c_function_arg): Likewise.
15454 * config/m32r/m32r.c (m32r_function_arg): Likewise.
15455 * config/m68k/m68k.c (m68k_function_arg): Likewise.
15456 * config/mcore/mcore.c (mcore_function_arg): Likewise.
15457 * config/microblaze/microblaze.c (microblaze_function_arg): Likewise.
15458 (microblaze_expand_prologue): Update call accordingly.
15459 * config/mips/mips.c (mips_function_arg): Take a function_arg_info
15460 instead of a mode, tree and named flag.
15461 * config/mmix/mmix.c (mmix_function_incoming_arg, mmix_function_arg)
15462 (mmix_function_arg_1): Likewise.
15463 * config/mn10300/mn10300.c (mn10300_function_arg): Likewise.
15464 * config/moxie/moxie.c (moxie_function_arg): Likewise.
15465 * config/msp430/msp430.c (msp430_function_arg): Likewise.
15466 * config/nds32/nds32.c (nds32_function_arg): Likewise.
15467 * config/nios2/nios2.c (nios2_function_arg): Likewise.
15468 * config/nvptx/nvptx.c (nvptx_function_arg): Likewise.
15469 (nvptx_function_incoming_arg): Likewise.
15470 * config/or1k/or1k.c (or1k_function_arg): Likewise.
15471 * config/pa/pa.c (pa_function_arg): Likewise.
15472 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
15473 * config/pru/pru.c (pru_function_arg): Likewise.
15474 * config/riscv/riscv.c (riscv_function_arg): Likewise.
15475 * config/rl78/rl78.c (rl78_function_arg): Likewise.
15476 * config/rs6000/rs6000-internal.h (rs6000_function_arg): Likewise.
15477 * config/rs6000/rs6000-call.c (rs6000_function_arg): Likewise.
15478 (rs6000_parm_needs_stack): Update call accordingly.
15479 * config/rx/rx.c (rx_function_arg): Take a function_arg_info
15480 instead of a mode, tree and named flag.
15481 * config/s390/s390.c (s390_function_arg): Likewise.
15482 (s390_call_saved_register_used): Update call accordingly.
15483 * config/sh/sh.c (sh_function_arg): Take a function_arg_info
15484 instead of a mode, tree and named flag.
15485 (sh_output_mi_thunk): Update call accordingly.
15486 * config/sparc/sparc.c (sparc_function_arg_1, sparc_function_arg)
15487 (sparc_function_incoming_arg): Take a function_arg_info instead of
15488 a mode, tree and named flag.
15489 * config/spu/spu.c (spu_function_arg): Likewise.
15490 * config/stormy16/stormy16.c (xstormy16_function_arg): Likewise.
15491 * config/tilegx/tilegx.c (tilegx_function_arg): Likewise.
15492 * config/tilepro/tilepro.c (tilepro_function_arg): Likewise.
15493 * config/v850/v850.c (v850_function_arg): Likewise.
15494 * config/vax/vax.c (vax_function_arg): Likewise.
15495 * config/visium/visium.c (visium_function_arg): Likewise.
15496 * config/xtensa/xtensa.c (xtensa_function_arg_1, xtensa_function_arg)
15497 (xtensa_function_incoming_arg): Likewise.
15498
15499 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
15500
15501 * target.def (setup_incoming_varargs): Take a function_arg_info
15502 instead of a mode and tree.
15503 * doc/tm.texi: Regenerate.
15504 * targhooks.h (default_setup_incoming_varargs): Take a
15505 function_arg_info instead of a mode and tree.
15506 * targhooks.c (default_setup_incoming_varargs): Likewise.
15507 * config/aarch64/aarch64.c (aarch64_setup_incoming_varargs): Likewise.
15508 * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise.
15509 * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
15510 * config/arm/arm.c (arm_setup_incoming_varargs): Likewise.
15511 * config/bfin/bfin.c (setup_incoming_varargs): Likewise.
15512 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
15513 * config/csky/csky.c (csky_setup_incoming_varargs): Likewise.
15514 * config/epiphany/epiphany.c (epiphany_setup_incoming_varargs):
15515 Likewise.
15516 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
15517 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
15518 * config/ft32/ft32.c (ft32_setup_incoming_varargs): Likewise.
15519 * config/i386/i386.c (ix86_setup_incoming_varargs): Likewise.
15520 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
15521 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
15522 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
15523 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
15524 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
15525 * config/mips/mips.c (mips_setup_incoming_varargs): Likewise.
15526 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
15527 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
15528 * config/nds32/nds32.c (nds32_setup_incoming_varargs): Likewise.
15529 * config/nios2/nios2.c (nios2_setup_incoming_varargs): Likewise.
15530 * config/riscv/riscv.c (riscv_setup_incoming_varargs): Likewise.
15531 * config/rs6000/rs6000-internal.h (setup_incoming_varargs): Likewise.
15532 * config/rs6000/rs6000-call.c (setup_incoming_varargs): Likewise.
15533 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
15534 * config/spu/spu.c (spu_setup_incoming_varargs): Likewise.
15535 * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs): Likewise.
15536 * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs): Likewise.
15537 * config/visium/visium.c (visium_setup_incoming_varargs): Likewise.
15538 * function.c (assign_parms_setup_varargs): Update call to
15539 targetm.calls.setup_incoming_varargs.
15540
15541 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
15542
15543 * target.def (pass_by_reference): Take a function_arg_info instead
15544 of a mode, type and named flag.
15545 * doc/tm.texi: Regenerate.
15546 * targhooks.h (hook_pass_by_reference_must_pass_in_stack): Update
15547 accordingly.
15548 (hook_bool_CUMULATIVE_ARGS_arg_info_false): Declare.
15549 * targhooks.c (hook_pass_by_reference_must_pass_in_stack): Take a
15550 function_arg_info instead of a mode, type and named flag.
15551 (hook_bool_CUMULATIVE_ARGS_arg_info_false): New function.
15552 * calls.h (pass_by_reference): Take a function_arg_info instead of a
15553 mode, type and named flag.
15554 * calls.c (pass_by_reference): Likewise.
15555 (pass_va_arg_by_reference): Update call accordingly.
15556 (initialize_argument_information): Likewise.
15557 (emit_library_call_value_1): Likewise.
15558 * function.c (assign_parm_find_data_types): Likewise.
15559 * var-tracking.c (prepare_call_arguments): Likewise.
15560 * stor-layout.c: Include calls.h.
15561 (compute_record_mode): Update call to targetm.calls.pass_by_reference.
15562 * config/aarch64/aarch64.c (aarch64_pass_by_reference): Take a
15563 function_arg_info instead of a mode, type and named flag.
15564 * config/alpha/alpha.c (alpha_pass_by_reference): Likewise.
15565 * config/arc/arc.c (arc_pass_by_reference): Likewise.
15566 * config/arm/arm.c (arm_pass_by_reference): Likewise.
15567 * config/bfin/bfin.c (bfin_pass_by_reference): Likewise.
15568 * config/c6x/c6x.c (c6x_pass_by_reference): Likewise.
15569 (c6x_call_saved_register_used): Update call to pass_by_reference.
15570 * config/cris/cris.c (cris_pass_by_reference): Take a
15571 function_arg_info instead of a mode, type and named flag.
15572 * config/epiphany/epiphany.c (epiphany_pass_by_reference): Take a
15573 function_arg_info instead of a mode, type and named flag.
15574 (epiphany_arg_partial_bytes): Update call accordingly.
15575 * config/ft32/ft32.c (ft32_pass_by_reference): Take a
15576 function_arg_info instead of a mode, type and named flag.
15577 (ft32_arg_partial_bytes): Update call accordingly.
15578 * config/i386/i386.c (ix86_pass_by_reference): Take a
15579 function_arg_info instead of a mode, type and named flag.
15580 * config/iq2000/iq2000.c (iq2000_pass_by_reference): Likewise.
15581 * config/m32c/m32c.c (m32c_pass_by_reference): Likewise.
15582 * config/m32r/m32r.c (m32r_pass_by_reference): Likewise.
15583 (m32r_return_in_memory): Update call accordingly.
15584 * config/mips/mips.c (mips_pass_by_reference): Take a
15585 function_arg_info instead of a mode, type and named flag.
15586 * config/mmix/mmix.c (mmix_pass_by_reference): Likewise.
15587 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
15588 * config/moxie/moxie.c (moxie_pass_by_reference): Likewise.
15589 (moxie_arg_partial_bytes): Update call accordingly.
15590 * config/msp430/msp430.c (msp430_pass_by_reference): Take a
15591 function_arg_info instead of a mode, type and named flag.
15592 * config/nvptx/nvptx.c (nvptx_pass_by_reference): Likewise.
15593 * config/or1k/or1k.c (or1k_pass_by_reference): Likewise.
15594 * config/pa/pa.c (pa_pass_by_reference): Likewise.
15595 * config/riscv/riscv.c (riscv_pass_by_reference): Likewise.
15596 (riscv_return_in_memory): Update call accordingly.
15597 * config/rs6000/rs6000-internal.h (rs6000_pass_by_reference): Take a
15598 function_arg_info instead of a mode, type and named flag.
15599 * config/rs6000/rs6000-call.c (rs6000_pass_by_reference): Likewise.
15600 (rs6000_parm_needs_stack): Update call to pass_by_reference.
15601 * config/s390/s390.c (s390_pass_by_reference): Take a
15602 function_arg_info instead of a mode, type and named flag.
15603 (s390_call_saved_register_used): Update call accordingly.
15604 * config/sh/sh.c (sh_pass_by_reference): Take a function_arg_info
15605 instead of a mode, type and named flag.
15606 * config/sparc/sparc.c (sparc_pass_by_reference): Likewise.
15607 * config/spu/spu.c (spu_pass_by_reference): Likewise.
15608 * config/tilegx/tilegx.c (tilegx_pass_by_reference): Likewise.
15609 * config/tilepro/tilepro.c (tilepro_pass_by_reference): Likewise.
15610 * config/v850/v850.c (v850_pass_by_reference): Likewise.
15611 * config/visium/visium.c (visium_pass_by_reference): Likewise.
15612
15613 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
15614
15615 * target.def (arg_partial_bytes): Take a function_arg_info instead
15616 of a mode, type and named flag.
15617 * doc/tm.texi: Regenerate.
15618 * target.h (function_arg_info): Declare.
15619 * calls.h (function_arg_info): New class.
15620 * targhooks.h (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete.
15621 (hook_int_CUMULATIVE_ARGS_arg_info_0): Declare.
15622 * targhooks.c (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete.
15623 (hook_int_CUMULATIVE_ARGS_arg_info_0): New function.
15624 * calls.c (initialize_argument_information): Update call to
15625 targetm.calls.partial_bytes.
15626 (emit_library_call_value_1): Likewise.
15627 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
15628 * function.c (assign_parm_find_entry_rtl): Likewise.
15629 * config/alpha/alpha.c (alpha_arg_partial_bytes): Take a
15630 function_arg_info instead of a mode, type and named flag.
15631 * config/arc/arc.c (arc_arg_partial_bytes): Likewise.
15632 * config/arm/arm.c (arm_arg_partial_bytes): Likewise.
15633 (cmse_func_args_or_return_in_stack): Update accordingly.
15634 * config/bfin/bfin.c (bfin_arg_partial_bytes): Take a
15635 function_arg_info instead of a mode, type and named flag.
15636 * config/cris/cris.c (cris_arg_partial_bytes): Likewise.
15637 * config/csky/csky.c (csky_arg_partial_bytes): Likewise.
15638 * config/epiphany/epiphany.c (epiphany_arg_partial_bytes): Likewise.
15639 * config/fr30/fr30.c: Include calls.h.
15640 (fr30_arg_partial_bytes): Take a function_arg_info instead of a mode,
15641 type and named flag.
15642 * config/frv/frv.c: Include calls.h.
15643 (frv_arg_partial_bytes): Take a function_arg_info instead of a mode,
15644 type and named flag.
15645 * config/ft32/ft32.c (ft32_arg_partial_bytes): Likewise.
15646 * config/gcn/gcn.c (gcn_arg_partial_bytes): Likewise.
15647 * config/ia64/ia64.c (ia64_arg_partial_bytes): Likewise.
15648 * config/iq2000/iq2000.c (iq2000_arg_partial_bytes): Likewise.
15649 * config/m32r/m32r.c (m32r_arg_partial_bytes): Likewise.
15650 * config/mcore/mcore.c (mcore_arg_partial_bytes): Likewise.
15651 * config/microblaze/microblaze.c (function_arg_partial_bytes):
15652 Likewise.
15653 * config/mips/mips.c (mips_arg_partial_bytes): Likewise.
15654 * config/mn10300/mn10300.c (mn10300_arg_partial_bytes): Likewise.
15655 * config/moxie/moxie.c (moxie_arg_partial_bytes): Likewise.
15656 * config/msp430/msp430.c (msp430_arg_partial_bytes): Likewise.
15657 * config/nds32/nds32.c (nds32_arg_partial_bytes): Likewise.
15658 * config/nios2/nios2.c (nios2_arg_partial_bytes): Likewise.
15659 * config/pa/pa.c (pa_arg_partial_bytes): Likewise.
15660 * config/pru/pru.c (pru_arg_partial_bytes): Likewise.
15661 * config/riscv/riscv.c (riscv_arg_partial_bytes): Likewise.
15662 * config/rs6000/rs6000-internal.h (rs6000_arg_partial_bytes): Likewise.
15663 * config/rs6000/rs6000-call.c (rs6000_arg_partial_bytes): Likewise.
15664 (rs6000_parm_needs_stack): Update call accordingly.
15665 * config/sh/sh.c (sh_arg_partial_bytes): Take a
15666 function_arg_info instead of a mode, type and named flag.
15667 * config/sparc/sparc.c (sparc_arg_partial_bytes): Likewise.
15668 * config/v850/v850.c (v850_arg_partial_bytes): Likewise.
15669
15670 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
15671
15672 * calls.h (must_pass_va_arg_in_stack): Declare.
15673 * calls.c (must_pass_va_arg_in_stack): New function.
15674 * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use it.
15675 * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
15676 * config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr):
15677 Likewise.
15678 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
15679
15680 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
15681
15682 * calls.h (pass_va_arg_by_reference): Declare.
15683 * calls.c (pass_va_arg_by_reference): New function.
15684 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Use it.
15685 * config/alpha/alpha.c (alpha_gimplify_va_arg): Likewise.
15686 * config/gcn/gcn.c (gcn_gimplify_va_arg_expr): Likewise.
15687 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
15688 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
15689 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Likewise.
15690 (mips_gimplify_va_arg_expr): Likewise.
15691 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Likewise.
15692 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
15693 * config/rs6000/rs6000-call.c (rs6000_gimplify_va_arg): Likewise.
15694 * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
15695 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
15696 * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
15697 * config/tilegx/tilegx.c (tilegx_gimplify_va_arg_expr): Likewise.
15698 * config/tilepro/tilepro.c (tilepro_gimplify_va_arg_expr): Likewise.
15699 * config/visium/visium.c (visium_gimplify_va_arg): Likewise.
15700 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
15701 * targhooks.c (std_gimplify_va_arg_expr): Likewise.
15702
15703 2019-08-20 Richard Biener <rguenther@suse.de>
15704
15705 PR target/91498
15706 * config/i386/i386-features.c (general_scalar_chain::convert_op):
15707 Use (vec_merge (vec_duplicate..)) style vector from scalar move.
15708 (convert_scalars_to_vector): Add timode_p parameter and use it
15709 to guard TImode-only operation.
15710 (pass_stv::gate): Adjust so STV runs twice for TARGET_64BIT.
15711 (pass_stv::execute): Pass down timode_p.
15712
15713 2019-08-20 Lili Cui <lili.cui@intel.com>
15714
15715 * common/config/i386/i386-common.c
15716 (processor_names): Add tigerlake and cooperlake.
15717 (processor_alias_table): Add tigerlake and cooperlake.
15718 * config.gcc: Add -march=tigerlake and cooperlake.
15719 * config/i386/driver-i386.c
15720 (host_detect_local_cpu): Detect tigerlake and cooperlake.
15721 Add "has_avx" to classify processor.
15722 * config/i386/i386-builtins.c (processor_model) :
15723 Add M_INTEL_COREI7_TIGERLAKE and M_INTEL_COREI7_COOPERLAKE.
15724 (arch_names_table): Add tigerlake and cooperlake.
15725 (get_builtin_code_for_version): Handle PROCESSOR_TIGERLAKE
15726 and PROCESSOR_COOPERLAKE.
15727 * config/i386/i386-c.c
15728 (ix86_target_macros_internal): Handle tigerlake and cooperlake.
15729 * config/i386/i386-options.c
15730 (m_TIGERLAKE): Define.
15731 (m_COOPERLAKE): Ditto.
15732 (m_CORE_AVX512): Ditto.
15733 (processor_cost_table): Add cascadelake.
15734 (ix86_option_override_internal): Hadle PTA_MOVDIRI, PTA_MOVDIR64B.
15735 * config/i386/i386.h
15736 (ix86_size_cost): Define TARGET_TIGERLAKE and TARGET_COOPERLAKE.
15737 (processor_type): Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE.
15738 (PTA_MOVDIRI): Ditto.
15739 (PTA_MOVDIR64B): Ditto.
15740 (PTA_COOPERLAKE): Ditto.
15741 (PTA_TIGERLAKE): Ditto.
15742 (processor_type): Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE.
15743 * doc/extend.texi: Add tigerlake and cooperlake.
15744 * doc/invoke.texi: Add tigerlake and cooperlake.
15745
15746 2019-08-20 Gerald Pfeifer <gerald@pfeifer.com>
15747
15748 * doc/install.texi (Specific, alpha): Remove note to use
15749 binutils 2.11.2 or later.
15750
15751 2019-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
15752
15753 PR middle-end/89544
15754 * function.c (assign_parm_find_stack_rtl): Use larger alignment
15755 when possible.
15756
15757 2019-08-19 Joel Hutton <Joel.Hutton@arm.com>
15758
15759 * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow2_recip): New prototype
15760 * config/aarch64/aarch64.c (aarch64_fpconst_pow2_recip): New function
15761 * config/aarch64/aarch64.md (*aarch64_<su_optab>cvtf<fcvt_target><GPF:mode>2_mult): New pattern
15762 (*aarch64_<su_optab>cvtf<fcvt_iesize><GPF:mode>2_mult): New pattern
15763 * config/aarch64/constraints.md (Dt): New constraint
15764 * config/aarch64/predicates.md (aarch64_fpconst_pow2_recip): New predicate
15765
15766 2019-08-19 Richard Biener <rguenther@suse.de>
15767
15768 PR tree-optimization/91403
15769 * tree-scalar-evolution.c (follow_ssa_edge_binary): Inline
15770 cases we can handle with tail-recursion...
15771 (follow_ssa_edge_expr): ... here. Do so.
15772
15773 2019-08-19 Kito Cheng <kito.cheng@sifive.com>
15774
15775 PR target/91441
15776 * toplev.c (process_options): Check TARGET_ASAN_SHADOW_OFFSET is
15777 implemented for -fsanitize=kernel-address, and merge check logic
15778 with -fsanitize=address.
15779
15780 2019-08-18 Iain Sandoe <iain@sandoe.co.uk>
15781
15782 * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts
15783 for cpu and machine. Factor 64/32b builtins.
15784
15785 2019-08-18 Gerald Pfeifer <gerald@pfeifer.com>
15786
15787 * doc/install.texi (Specific, bfin): blackfin.uclinux.org is
15788 gone, point to sourceforge.net.
15789
15790 2019-08-17 Gerald Pfeifer <gerald@pfeifer.com>
15791
15792 * doc/ux.texi (User Experience Guidelines): Update reference.
15793
15794 2019-08-17 Gerald Pfeifer <gerald@pfeifer.com>
15795
15796 * doc/include/gpl_v3.texi (Copying): Adjust the link to "Why
15797 not LGPL".
15798
15799 2019-08-16 Eric Botcazou <ebotcazou@adacore.com>
15800
15801 * tree-sra.c (build_reconstructed_reference): Return NULL_TREE instead
15802 of NULL. Add guard for broken VIEW_CONVERT_EXPRs.
15803
15804 2019-08-16 Martin Sebor <msebor@redhat.com>
15805
15806 * tree.def (TYPE_SIZE): Clarify.
15807 * tree.h (TYPE_SIZE, TYPE_SIZE_UNIT, DECL_SIZE): Add comments.
15808
15809 2019-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
15810
15811 PR tree-optimization/91109
15812 * lra-int.h (lra_need_for_scratch_reg_p): Declare.
15813 * lra.c (lra): Use lra_need_for_scratch_reg_p.
15814 * lra-spills.c (lra_need_for_scratch_reg_p): New function.
15815
15816 2019-08-16 Uroš Bizjak <ubizjak@gmail.com>
15817
15818 * config/i386/mmx.md (mmxdoublemode): New mode attribute.
15819 (mmx_uavg<mode>3): Macroize expaner from mmx_uavgv8qi3 and
15820 mmx_uavgv4hi3 using MMXMODE12 mode iterator.
15821 (uavg<mode>3_ceil): New expander.
15822 * config/i386/sse.md (uavg<mode>3_ceil): Use ssedoublemode
15823 mode iterator when creating CONST1_RTX.
15824 (<sse2_avx2>_uavg<mode>3<mask_name>): Ditto.
15825 (*<sse2_avx2>_uavg<mode>3<mask_name>): Use ssedoublemode
15826 mode iterator for const1_operand predicate.
15827
15828 2019-08-16 Richard Biener <rguenther@suse.de>
15829
15830 * tree-scalar-evolution.c (follow_ssa_edge_expr): Declare.
15831 (follow_ssa_edge_binary): Call follow_ssa_edge_expr instead of
15832 follow_ssa_edge.
15833 (follow_ssa_edge_in_condition_phi_branch): Likewise.
15834 (analyze_evolution_in_loop): Likewise.
15835 (follow_ssa_edge, follow_ssa_edge_in_rhs): Inline into ...
15836 (follow_ssa_edge_expr): ... here. Refactor code.
15837
15838 2019-08-16 Richard Biener <rguenther@suse.de>
15839
15840 PR target/91469
15841 * config/i386/i386-features.c
15842 (general_scalar_chain::replace_with_subreg): Stop at memory operands.
15843
15844 2019-08-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15845
15846 PR other/91255
15847 * gensupport.c (has_subst_attribute): Error out on set_attr_alternative
15848 only if subst_name matches curr_attr string.
15849
15850 2019-08-16 Richard Biener <rguenther@suse.de>
15851
15852 * tree-ssa-forwprop.c (simplify_builtin_call): Do not remove
15853 stmt at gsi_p, instead replace it with a NOP removed later.
15854 (pass_forwprop::execute): Fully propagate lattice, DCE stmts
15855 that became dead because of that.
15856
15857 2019-08-16 Aldy Hernandez <aldyh@redhat.com>
15858
15859 * gimple-ssa-evrp-analyze.c (record_ranges_from_phis): Skip PHIs
15860 for which we can't represent a range.
15861 * ipa-cp.c (ipcp_vr_lattice::set_to_bottom): Pass type to
15862 set_varying.
15863 * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
15864 Set VR_UNDEFINED if type is not supported.
15865 * tree-ssanames.c (get_range_info): Pass type to set_varying.
15866 * tree-vrp.c (value_range_base::check): Assert that a varying has
15867 min/max set.
15868 (value_range_base::equal_p): Early bail for undefines.
15869 (value_range_base::set_varying): Accept a type.
15870 (value_range::set_varying): Same.
15871 (value_range_base::type): VARYING can have a type, while UNDEFINE
15872 is typeless.
15873 (value_range_base::dump): Print type for VARYING nodes.
15874 (value_range_base::set): Add type to VARYING.
15875 (extract_range_from_multiplicative_op): Pass type to set_varying.
15876 (extract_range_from_binary_expr): Same.
15877 (value_range_base::intersect_helper): Same.
15878 (value_range_base::union_helper): Same.
15879 (value_range_base::normalize_symbolics): Same.
15880 (determine_value_range_1): Same.
15881 * tree-vrp.h (class value_range_base): Add type to set_varying.
15882 Add prototype for dump(void).
15883 Add prototype for supports_type_p.
15884 (class value_range): Add type to set_varying.
15885 Add prototype for dump(void).
15886 * vr-values.c (set_value_range_to_truthvalue): Pass type to
15887 set_varying.
15888 (vr_values::get_lattice_entry): Set varying even if propagation
15889 finished.
15890 Pass type to set_varying.
15891 (vr_values::get_value_range): Remove vr_const_varying.
15892 Reallocate the lattice if needed.
15893 (vr_values::update_value_range): Pass type to set_varying.
15894 (vr_values::extract_range_for_var_from_comparison_expr): Same.
15895 (vr_values::extract_range_from_binary_expr): Same.
15896 (vr_values::extract_range_from_unary_expr): Same.
15897 (vr_values::extract_range_from_cond_expr): Same.
15898 (vr_values::check_for_binary_op_overflow): Same.
15899 (vr_values::extract_range_basic): Same.
15900 (vr_values::extract_range_from_assignment): Same.
15901 (vr_values::vr_values): Increase size of num_vr_values.
15902 (vr_values::extract_range_from_phi_node): Pass type to
15903 set_varying.
15904
15905 2019-08-15 H.J. Lu <hongjiu.lu@intel.com>
15906
15907 PR target/90878
15908 * config/i386/i386.c (inline_memory_move_cost): Use hard_register
15909 for costs of hard register moves.
15910 (ix86_register_move_cost): Likewise.
15911 * config/i386/i386.h (processor_costs): Move costs of hard
15912 register moves to hard_register. Add int_load, int_store,
15913 xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse,
15914 sse_load, sse_store, sse_unaligned_load and sse_unaligned_store
15915 for costs of RTL expressions.
15916 * config/i386/x86-tune-costs.h: Move costs of hard register
15917 moves to hard_register. Duplicate int_load, int_store,
15918 xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse,
15919 sse_load, sse_store for costs of RTL expressions.
15920
15921 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
15922
15923 * target.def (setup_incoming_vararg_bounds): Remove.
15924 * doc/tm.texi.in (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Remove.
15925 * doc/tm.texi: Regenerate.
15926 * targhooks.c (default_setup_incoming_vararg_bounds): Delete.
15927 * targhooks.h (default_setup_incoming_vararg_bounds): Likewise.
15928 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
15929 (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
15930
15931 2019-08-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
15932
15933 MSP430: Fix lines over 80 characters long in
15934 config/msp430/*.{c,h} files
15935
15936 * config/msp430/driver-msp430.c (msp430_select_cpu): Fix format
15937 specifier in string.
15938 (msp430_select_hwmult_lib): Split line more than 80 characters long.
15939 * config/msp430/msp430-devices.c (msp430_extract_mcu_data): Remove
15940 redundant old comment.
15941 * config/msp430/msp430-protos.h (msp430_output_aligned_decl_common):
15942 Split line more than 80 characters long.
15943 * config/msp430/msp430.c (msp430_option_override): Likewise.
15944 (msp430_return_in_memory): Likewise.
15945 (msp430_gimplify_va_arg_expr): Likewise.
15946 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise.
15947 (msp430_legitimate_constant): Likewise.
15948 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Likewise.
15949 (msp430_attr): Likewise.
15950 (msp430_data_attr): Likewise.
15951 (msp430_start_function): Likewise.
15952 (gen_prefix): Likewise.
15953 (msp430_init_sections): Likewise.
15954 (msp430_select_section): Likewise.
15955 (msp430_function_section): Likewise.
15956 (msp430_unique_section): Likewise.
15957 (msp430_output_aligned_decl_common): Likewise.
15958 (msp430_do_not_relax_short_jumps): Likewise.
15959 (msp430_init_builtins): Likewise.
15960 (msp430_expand_delay_cycles): Likewise.
15961 (msp430_expand_prologue): Likewise.
15962 (msp430_expand_epilogue): Likewise.
15963 (msp430_expand_helper): Likewise.
15964 (msp430_split_movsi): Likewise.
15965 (msp430_print_operand): Likewise.
15966 (msp430_return_addr_rtx): Likewise.
15967 (msp430x_extendhisi): Likewise.
15968 * config/msp430/msp430.h (STARTFILE_SPEC): Likewise.
15969 (ASM_SPEC): Likewise.
15970 Remove very obvious comments.
15971 (LIB_SPEC): Split line more than 80 characters long.
15972 (EH_RETURN_HANDLER_RTX): Likewise.
15973 (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
15974
15975 2019-08-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
15976
15977 MSP430: Fix whitespace errors and incorrect indentation in
15978 config/msp430/*.{c,h} files
15979
15980 * config/msp430/driver-msp430.c (msp430_select_cpu): Fix indentation.
15981 (msp430_select_hwmult_lib): Likewise.
15982 * config/msp430/msp430-devices.c (parse_devices_csv_1): Likewise.
15983 (msp430_extract_mcu_data): Likewise.
15984 (struct t_msp430_mcu_data): Likewise.
15985 * config/msp430/msp430.c (struct machine_function): Remove whitespace
15986 before left square bracket.
15987 (msp430_option_override): Fix indentation.
15988 (msp430_hard_regno_nregs_with_padding): Likewise.
15989 (msp430_initial_elimination_offset): Likewise.
15990 (msp430_special_register_convention_p): Remove whitespace before left
15991 square bracket and after exclamation mark.
15992 (msp430_evaluate_arg): Likewise.
15993 (msp430_callee_copies): Fix indentation.
15994 (msp430_gimplify_va_arg_expr): Likewise.
15995 (msp430_function_arg_advance): Remove whitespace before left square
15996 bracket.
15997 (reg_ok_for_addr): Likewise.
15998 (msp430_preserve_reg_p): Likewise.
15999 (msp430_compute_frame_info): Likewise.
16000 (msp430_asm_output_addr_const_extra): Add space between function name
16001 and open parenthesis.
16002 (has_section_name): Fix indentation.
16003 (msp430_attr): Remove trailing whitespace.
16004 (msp430_section_attr): Likewise.
16005 (msp430_data_attr): Likewise.
16006 (struct msp430_attribute_table): Fix comment and whitespace.
16007 (msp430_start_function): Remove whitespace before left square bracket.
16008 Add space between function name and open parenthesis.
16009 (msp430_select_section): Remove trailing whitespace.
16010 (msp430_section_type_flags): Remove trailing whitespace.
16011 (msp430_unique_section): Remove space before closing parenthesis.
16012 (msp430_output_aligned_decl_common): Change 8 spaces to a tab.
16013 (msp430_builtins): Remove whitespace before left square bracket.
16014 (msp430_init_builtins): Fix indentation.
16015 (msp430_expand_prologue): Remove whitespace before left square bracket.
16016 Remove space before closing parenthesis.
16017 (msp430_expand_epilogue): Remove whitespace before left square bracket.
16018 (msp430_split_movsi): Remove space before closing parenthesis.
16019 (helper_function_name_mappings): Fix indentation.
16020 (msp430_use_f5_series_hwmult): Fix whitespace.
16021 (use_32bit_hwmult): Likewise.
16022 (msp430_no_hwmult): Likewise.
16023 (msp430_output_labelref): Remove whitespace before left square bracket.
16024 (msp430_print_operand_raw): Likewise.
16025 (msp430_print_operand_addr): Likewise.
16026 (msp430_print_operand): Add two spaces after '.' in comment.
16027 Fix trailing whitespace.
16028 (msp430x_extendhisi): Fix indentation.
16029 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Change 8 spaces to
16030 tab.
16031 (PC_REGNUM): Likewise.
16032 (STACK_POINTER_REGNUM): Likewise.
16033 (CC_REGNUM): Likewise.
16034
16035 2019-08-15 Richard Biener <rguenther@suse.de>
16036
16037 PR target/91454
16038 * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): New
16039 helper.
16040 (general_scalar_chain::make_vector_copies): Use it.
16041
16042 2019-08-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
16043
16044 * function.c (assign_parm_setup_reg): Handle misaligned stack arguments.
16045
16046 2019-08-15 Martin Liska <mliska@suse.cz>
16047
16048 * tree-ssa-dce.c (propagate_necessity): We can't reach now
16049 operators with no arguments.
16050 (eliminate_unnecessary_stmts): Likewise here.
16051
16052 2019-08-15 Uroš Bizjak <ubizjak@gmail.com>
16053
16054 * config/i386/i386-features.c (general_scalar_chain::convert_insn)
16055 <case COMPARE>: Revert 2019-08-14 change.
16056 (convertible_comparison_p): Revert 2019-08-14 change. Return false
16057 for (TARGET_64BIT || mode != DImode).
16058
16059 2019-08-15 Aldy Hernandez <aldyh@redhat.com>
16060
16061 * tree-vrp.c (value_range_base::set): Merge in code from
16062 value_range_base::set_and_canonicalize.
16063 Enforce canonicalization at set time.
16064 Normalize [MIN, MAX] into VARYING and ~[MIN, MAX] into UNDEFINED.
16065 (value_range_base::set_undefined): Inline call to set().
16066 (value_range_base::set_varying): Same.
16067 (value_range_base::singleton_p): Handle VR_ANTI_RANGEs.
16068 (vrp_val_max): New argument handle_pointers.
16069 (vrp_val_min): Same.
16070 (ranges_from_anti_range): Same.
16071 (extract_range_into_wide_ints): Use tree argument instead of sign
16072 and precision.
16073 (extract_range_from_multiplicative_op): Take in tree type instead
16074 of precision and sign. Adapt function for canonicalized ranges.
16075 (extract_range_from_binary_expr): Pass type to
16076 extract_range_from_multiplicative_op.
16077 Adapt for canonicalized ranges.
16078 (extract_range_from_unary_expr): Same.
16079 (value_range_base::intersect_helper): Adjust for canonicalized
16080 ranges.
16081 (value_range_base::union_helper): Same.
16082 (value_range_base::normalize_symbolics): New.
16083 * tree-vrp.h (class value_range_base): Remove
16084 set_and_canonicalize.
16085 New prototype for normalize_symbolics.
16086 (class value_range): Remove set_and_canonicalize.
16087 (vrp_val_min): Adjust prototype.
16088 (vrp_val_max): Same.
16089 * vr-values.c
16090 (vr_values::extract_range_for_var_from_comparison_expr): Call set
16091 instead of set_and_canonicalize.
16092
16093 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
16094
16095 PR middle-end/91444
16096 * tree-vect-stmts.c (vectorizable_call): Check that the function
16097 is a BUILT_IN_MD function before passing it to
16098 targetm.vectorize.builtin_md_vectorized_function.
16099
16100 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
16101
16102 * config/aarch64/aarch64-protos.h (aarch64_sve_mode_p): Declare.
16103 * config/aarch64/aarch64.c (aarch64_sve_mode_p): New function.
16104 (aarch64_select_early_remat_modes): Use it.
16105
16106 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
16107
16108 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Return
16109 16 for SVE predicates even if they are fixed-length.
16110
16111 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
16112
16113 * config/aarch64/aarch64-sve.md (and<PRED_ALL:mode>3): Make the
16114 operand order match the MOV /Z alias.
16115
16116 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
16117
16118 * config/aarch64/aarch64.c (aarch64_output_sve_cnt_immediate): Take
16119 the vector pattern as an aarch64_svpattern argument. Update the
16120 overloaded caller accordingly.
16121 (aarch64_output_sve_scalar_inc_dec): Update call accordingly.
16122 (aarch64_output_sve_vector_inc_dec): Likewise.
16123
16124 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
16125
16126 * config/aarch64/aarch64.c (aarch64_add_offset): In the fallback
16127 multiplication case, try to compute VG * (lowest set bit) directly
16128 rather than always basing the multiplication on VG. Use
16129 expand_mult for the multiplication if we can.
16130
16131 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
16132
16133 * config/aarch64/aarch64-protos.h
16134 (aarch64_sve_scalar_inc_dec_immediate_p): Declare.
16135 (aarch64_sve_inc_dec_immediate_p): Rename to...
16136 (aarch64_sve_vector_inc_dec_immediate_p): ...this.
16137 (aarch64_output_sve_addvl_addpl): Take a single rtx argument.
16138 (aarch64_output_sve_scalar_inc_dec): Declare.
16139 (aarch64_output_sve_inc_dec_immediate): Rename to...
16140 (aarch64_output_sve_vector_inc_dec): ...this.
16141 * config/aarch64/aarch64.c (aarch64_sve_scalar_inc_dec_immediate_p)
16142 (aarch64_output_sve_scalar_inc_dec): New functions.
16143 (aarch64_output_sve_addvl_addpl): Remove the base and offset
16144 arguments. Only handle true ADDVL and ADDPL instructions;
16145 don't emit an INC or DEC.
16146 (aarch64_sve_inc_dec_immediate_p): Rename to...
16147 (aarch64_sve_vector_inc_dec_immediate_p): ...this.
16148 (aarch64_output_sve_inc_dec_immediate): Rename to...
16149 (aarch64_output_sve_vector_inc_dec): ...this. Update call to
16150 aarch64_sve_vector_inc_dec_immediate_p.
16151 * config/aarch64/predicates.md (aarch64_sve_scalar_inc_dec_immediate)
16152 (aarch64_sve_plus_immediate): New predicates.
16153 (aarch64_pluslong_operand): Accept aarch64_sve_plus_immediate
16154 rather than aarch64_sve_addvl_addpl_immediate.
16155 (aarch64_sve_inc_dec_immediate): Rename to...
16156 (aarch64_sve_vector_inc_dec_immediate): ...this. Update call to
16157 aarch64_sve_vector_inc_dec_immediate_p.
16158 (aarch64_sve_add_operand): Update accordingly.
16159 * config/aarch64/constraints.md (Uai): New constraint.
16160 (vsi): Update call to aarch64_sve_vector_inc_dec_immediate_p.
16161 * config/aarch64/aarch64.md (add<GPI:mode>3): Don't force the second
16162 operand into a register if it satisfies aarch64_sve_plus_immediate.
16163 (*add<GPI:mode>3_aarch64, *add<GPI:mode>3_poly_1): Add an alternative
16164 for Uai. Update calls to aarch64_output_sve_addvl_addpl.
16165 * config/aarch64/aarch64-sve.md (add<mode>3): Call
16166 aarch64_output_sve_vector_inc_dec instead of
16167 aarch64_output_sve_inc_dec_immediate.
16168
16169 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
16170
16171 * config/aarch64/iterators.md (UNSPEC_REVB, UNSPEC_REVH)
16172 (UNSPEC_REVW): New constants.
16173 (elem_bits): New mode attribute.
16174 (SVE_INT_UNARY): New int iterator.
16175 (optab): Handle UNSPEC_REV[BHW].
16176 (sve_int_op): New int attribute.
16177 (min_elem_bits): Handle VNx16QI and the predicate modes.
16178 * config/aarch64/aarch64-sve.md (*aarch64_sve_rev64<mode>)
16179 (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Delete.
16180 (@aarch64_pred_<SVE_INT_UNARY:optab><SVE_I:mode>): New pattern.
16181 * config/aarch64/aarch64.c (aarch64_sve_data_mode): New function.
16182 (aarch64_sve_int_mode, aarch64_sve_rev_unspec): Likewise.
16183 (aarch64_split_sve_subreg_move): Use UNSPEC_REV[BHW] instead of
16184 unspecs based on the total width of the reversed data.
16185 (aarch64_evpc_rev_local): Likewise (for SVE only). Use a
16186 reinterpret followed by a subreg on big-endian targets.
16187
16188 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
16189 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
16190
16191 * config/aarch64/aarch64-sve.md
16192 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Add /z
16193 alternatives in which one of the inputs is in the same register
16194 as the output.
16195
16196 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
16197
16198 * config/aarch64/aarch64-sve.md (*vec_extract<mode><Vel>_ext)
16199 (*aarch64_sve_ext<mode>): Add MOVPRFX alternatives.
16200
16201 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
16202
16203 * config/aarch64/aarch64-sve.md (*sub<SVE_F:mode>3): Remove immediate
16204 FADD and FSUB alternatives. Add a MOVPRFX alternative for FSUBR.
16205
16206 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
16207 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
16208
16209 * config/aarch64/aarch64-sve.md (add<SVE_I:mode>3, sub<SVE_I:mode>3)
16210 (<LOGICAL:optab><SVE_I:mode>3, *add<SVE_F:mode>3, *mul<SVE_F:mode>3)
16211 (*fabd<SVE_F:mode>3): Add more MOVPRFX alternatives.
16212
16213 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
16214 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16215
16216 * config/aarch64/aarch64-sve.md (*v<ASHIFT:optab><SVE_I:mode>3):
16217 Add an alternative that uses reversed shifts.
16218
16219 2019-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16220
16221 * config/aarch64/aarch64-cores.def (cortex-a76): Use neoversen1 tuning
16222 struct.
16223
16224 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
16225
16226 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Add
16227 a commutativity marker.
16228
16229 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
16230 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
16231
16232 * config/aarch64/aarch64-protos.h (aarch64_prepare_sve_int_fma)
16233 (aarch64_prepare_sve_cond_int_fma): Declare.
16234 * config/aarch64/aarch64.c (aarch64_convert_mult_to_shift)
16235 (aarch64_prepare_sve_int_fma): New functions.
16236 (aarch64_prepare_sve_cond_int_fma): Likewise.
16237 * config/aarch64/aarch64-sve.md
16238 (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Add a "@" marker.
16239 (fma<SVE_I:mode>4, cond_fma<SVE_I:mode>, *cond_fma<SVE_I:mode>_2)
16240 (*cond_fma<SVE_I:mode>_4, *cond_fma<SVE_I:mode>_any, fnma<SVE_I:mode>4)
16241 (cond_fnma<SVE_I:mode>, *cond_fnma<SVE_I:mode>_2)
16242 (*cond_fnma<SVE_I:mode>_4, *cond_fnma<SVE_I:mode>_any): New patterns.
16243 (*madd<mode>): Rename to...
16244 (*fma<mode>4): ...this.
16245 (*msub<mode>): Rename to...
16246 (*fnma<mode>4): ...this.
16247
16248 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
16249 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
16250
16251 * config/aarch64/aarch64.c (aarch64_print_vector_float_operand):
16252 Print 2.0 naturally.
16253 (aarch64_sve_float_mul_immediate_p): Return true for 2.0.
16254 * config/aarch64/predicates.md
16255 (aarch64_sve_float_negated_arith_immediate): New predicate,
16256 renamed from aarch64_sve_float_arith_with_sub_immediate.
16257 (aarch64_sve_float_arith_with_sub_immediate): Test for both
16258 positive and negative constants.
16259 (aarch64_sve_float_arith_with_sub_operand): Redefine as a register
16260 or an aarch64_sve_float_arith_with_sub_immediate.
16261 * config/aarch64/constraints.md (vsN): Use
16262 aarch64_sve_float_negated_arith_immediate.
16263 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_I1): New int
16264 iterator.
16265 (sve_pred_fp_rhs2_immediate): New int attribute.
16266 * config/aarch64/aarch64-sve.md
16267 (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>): Use
16268 sve_pred_fp_rhs1_operand and sve_pred_fp_rhs2_operand.
16269 (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_2_const)
16270 (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_any_const)
16271 (*cond_add<SVE_F:mode>_2_const, *cond_add<SVE_F:mode>_any_const)
16272 (*cond_sub<mode>_3_const, *cond_sub<mode>_any_const): New patterns.
16273
16274 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
16275 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
16276
16277 * config/aarch64/aarch64-sve.md (*aarch64_cond_abd<SVE_F:mode>_2)
16278 (*aarch64_cond_abd<SVE_F:mode>_3)
16279 (*aarch64_cond_abd<SVE_F:mode>_any): New patterns.
16280
16281 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
16282 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
16283
16284 * config/aarch64/aarch64-sve.md (*aarch64_cond_<su>abd<mode>_2)
16285 (*aarch64_cond_<su>abd<mode>_any): New patterns.
16286
16287 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
16288 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16289
16290 * internal-fn.def (IFN_COND_SHL, IFN_COND_SHR): New internal functions.
16291 * internal-fn.c (FOR_EACH_CODE_MAPPING): Handle shifts.
16292 * match.pd (UNCOND_BINARY, COND_BINARY): Likewise.
16293 * optabs.def (cond_ashl_optab, cond_ashr_optab, cond_lshr_optab): New
16294 optabs.
16295 * optabs.h (create_convert_operand_from): Expand comment.
16296 * optabs.c (maybe_legitimize_operand): Allow implicit broadcasts
16297 when mapping scalar rtxes to vector operands.
16298 * config/aarch64/iterators.md (SVE_INT_BINARY): Add ashift,
16299 ashiftrt and lshiftrt.
16300 (sve_int_op, sve_int_op_rev, sve_pred_int_rhs2_operand): Handle them.
16301 * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_2_const)
16302 (*cond_<optab><mode>_any_const): New patterns.
16303
16304 2019-08-15 Martin Liska <mliska@suse.cz>
16305
16306 PR ipa/91438
16307 * cgraph.c (cgraph_node::remove): When setting
16308 n->origin = NULL for all nested functions, reset
16309 also next_nested.
16310
16311 2019-08-15 Martin Liska <mliska@suse.cz>
16312
16313 * cgraph.c (cgraph_node::verify_node): Verify origin, nested
16314 and next_nested.
16315
16316 2019-08-15 Martin Liska <mliska@suse.cz>
16317
16318 PR ipa/91404
16319 * passes.c (order): Remove.
16320 (uid_hash_t): Likewise).
16321 (remove_cgraph_node_from_order): Remove from set
16322 of pointers (cgraph_node *).
16323 (insert_cgraph_node_to_order): New.
16324 (duplicate_cgraph_node_to_order): New.
16325 (do_per_function_toporder): Register all 3 cgraph hooks.
16326 Skip removed_nodes now as we know about all of them.
16327
16328 2019-08-14 Uroš Bizjak <ubizjak@gmail.com>
16329
16330 * config/i386/i386-expand.c (ix86_expand_vector_init_one_nonzero)
16331 <case E_V8QImode>: Use vector_set path for
16332 TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
16333 (ix86_expand_vector_init_one_var) <case E_V8QImode>:
16334 Do not widen for TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
16335
16336 2019-08-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
16337
16338 * builtins.c (expand_builtin_init_descriptor): Set memory alignment.
16339
16340 2019-08-14 Martin Sebor <msebor@redhat.com>
16341
16342 PR tree-optimization/91294
16343 * tree-ssa-strlen.c (handle_store): Avoid treating lower bound of
16344 source length as exact.
16345
16346 2019-08-14 Christophe Lyon <christophe.lyon@linaro.org>
16347
16348 * doc/extend.texi: Add "noinit" attribute documentation.
16349 * doc/sourcebuild.texi: Add noinit effective target documentation.
16350 * varasm.c (default_section_type_flags): Add support for "noinit"
16351 section.
16352 (default_elf_select_section): Add support for "noinit" attribute.
16353 * config/msp430/msp430.c (msp430_attribute_table): Remove
16354 "noinit" entry.
16355
16356 2019-08-14 Richard Biener <rguenther@suse.de>
16357 Uroš Bizjak <ubizjak@gmail.com>
16358
16359 PR target/91154
16360 * config/i386/i386-features.h (scalar_chain::scalar_chain): Add
16361 mode arguments.
16362 (scalar_chain::smode): New member.
16363 (scalar_chain::vmode): Likewise.
16364 (dimode_scalar_chain): Rename to...
16365 (general_scalar_chain): ... this.
16366 (general_scalar_chain::general_scalar_chain): Take mode arguments.
16367 (timode_scalar_chain::timode_scalar_chain): Initialize scalar_chain
16368 base with TImode and V1TImode.
16369 * config/i386/i386-features.c (scalar_chain::scalar_chain): Adjust.
16370 (general_scalar_chain::vector_const_cost): Adjust for SImode
16371 chains.
16372 (general_scalar_chain::compute_convert_gain): Likewise. Add
16373 {S,U}{MIN,MAX} support.
16374 (general_scalar_chain::replace_with_subreg): Use vmode/smode.
16375 (general_scalar_chain::make_vector_copies): Likewise. Handle
16376 non-DImode chains appropriately.
16377 (general_scalar_chain::convert_reg): Likewise.
16378 (general_scalar_chain::convert_op): Likewise.
16379 (general_scalar_chain::convert_insn): Likewise. Add
16380 fatal_insn_not_found if the result is not recognized.
16381 (convertible_comparison_p): Pass in the scalar mode and use that.
16382 (general_scalar_to_vector_candidate_p): Likewise. Rename from
16383 dimode_scalar_to_vector_candidate_p. Add {S,U}{MIN,MAX} support.
16384 (scalar_to_vector_candidate_p): Remove by inlining into single
16385 caller.
16386 (general_remove_non_convertible_regs): Rename from
16387 dimode_remove_non_convertible_regs.
16388 (remove_non_convertible_regs): Remove by inlining into single caller.
16389 (convert_scalars_to_vector): Handle SImode and DImode chains
16390 in addition to TImode chains.
16391 * config/i386/i386.md (<maxmin><MAXMIN_IMODE>3): New expander.
16392 (*<maxmin><MAXMIN_IMODE>3_1): New insn-and-split.
16393 (*<maxmin>di3_doubleword): Likewise.
16394
16395 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16396 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
16397
16398 * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2)
16399 (*cond_bic<mode>_any): New patterns.
16400
16401 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16402
16403 * config/aarch64/aarch64.c (aarch64_print_operand): Allow %e to
16404 take the equivalent mask, as well as a bit count.
16405 * config/aarch64/predicates.md (aarch64_sve_uxtb_immediate)
16406 (aarch64_sve_uxth_immediate, aarch64_sve_uxt_immediate)
16407 (aarch64_sve_pred_and_operand): New predicates.
16408 * config/aarch64/iterators.md (sve_pred_int_rhs2_operand): New
16409 code attribute.
16410 * config/aarch64/aarch64-sve.md
16411 (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Use it.
16412 (*cond_uxt<mode>_2, *cond_uxt<mode>_any): New patterns.
16413
16414 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16415
16416 * config/aarch64/aarch64-sve.md
16417 (*cond_<SVE_COND_FCVTI:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>)
16418 (*cond_<SVE_COND_ICVTF:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>):
16419 New patterns.
16420
16421 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16422 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
16423
16424 * config/aarch64/aarch64-sve.md
16425 (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_2): New pattern.
16426 (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_any): Likewise.
16427
16428 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16429 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
16430
16431 * config/aarch64/aarch64-sve.md
16432 (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_2): New pattern.
16433 (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_any): Likewise.
16434
16435 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16436
16437 * config/aarch64/iterators.md (SVE_COND_FP_ABS_CMP): New iterator.
16438 * config/aarch64/aarch64-sve.md (*aarch64_pred_fac<cmp_op><mode>):
16439 New pattern.
16440
16441 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16442 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
16443
16444 * config/aarch64/aarch64-sve.md (*aarch64_sel_dup<mode>): New pattern.
16445
16446 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16447 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
16448
16449 * config/aarch64/aarch64.c (aarch64_bit_representation): New function.
16450 (aarch64_print_vector_float_operand): Also handle 8-bit floats.
16451 (aarch64_print_operand): Add support for %I.
16452 (aarch64_sve_dup_immediate_p): Handle scalars as well as vectors.
16453 Bitcast floating-point constants to the corresponding integer constant.
16454 (aarch64_float_const_representable_p): Handle vectors as well
16455 as scalars.
16456 (aarch64_expand_sve_vcond): Make sure that the operands are valid
16457 for the new vcond_mask_<mode><vpred> expander.
16458 * config/aarch64/predicates.md (aarch64_sve_dup_immediate): Also
16459 test aarch64_float_const_representable_p.
16460 (aarch64_sve_reg_or_dup_imm): New predicate.
16461 * config/aarch64/aarch64-sve.md (vec_extract<vpred><Vel>): Use
16462 gen_vcond_mask_<mode><vpred> instead of
16463 gen_aarch64_sve_dup<mode>_const.
16464 (vcond_mask_<mode><vpred>): Turn into a define_expand that
16465 accepts aarch64_sve_reg_or_dup_imm and aarch64_simd_reg_or_zero
16466 for operands 1 and 2 respectively. Force operand 2 into a
16467 register if operand 1 is a register. Fold old define_insn...
16468 (aarch64_sve_dup<mode>_const): ...and this define_insn...
16469 (*vcond_mask_<mode><vpred>): ...into this new pattern. Handle
16470 floating-point constants that can be moved as integers. Add
16471 alternatives for MOV /M and FMOV /M.
16472 (vcond<mode><v_int_equiv>, vcondu<mode><v_int_equiv>)
16473 (vcond<mode><v_fp_equiv>): Accept nonmemory_operand for operands
16474 1 and 2 respectively.
16475 * config/aarch64/constraints.md (Ufc): Handle vectors as well
16476 as scalars.
16477 (vss): New constraint.
16478
16479 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16480
16481 * config/aarch64/predicates.md (aarch64_sve_float_maxmin_immediate)
16482 (aarch64_sve_float_maxmin_operand): New predicates.
16483 * config/aarch64/constraints.md (vsB): New constraint.
16484 (vsM): Fix typo.
16485 * config/aarch64/iterators.md (sve_pred_fp_rhs2_operand): Use
16486 aarch64_sve_float_maxmin_operand for UNSPEC_COND_FMAXNM and
16487 UNSPEC_COND_FMINNM.
16488 * config/aarch64/aarch64-sve.md (<maxmin_uns><SVE_F:mode>3):
16489 Use aarch64_sve_float_maxmin_operand for operand 2.
16490 (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Likewise.
16491 Add alternatives for the constant forms.
16492
16493 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16494
16495 * config/aarch64/constraints.md (vsb): New constraint.
16496 (vsm): Generalize description.
16497 * config/aarch64/iterators.md (SVE_INT_BINARY_IMM): New code
16498 iterator.
16499 (sve_imm_con): Handle smax, smin, umax and umin.
16500 (sve_imm_prefix): New code attribute.
16501 * config/aarch64/predicates.md (aarch64_sve_vsb_immediate)
16502 (aarch64_sve_vsb_operand): New predicates.
16503 (aarch64_sve_mul_immediate): Rename to...
16504 (aarch64_sve_vsm_immediate): ...this.
16505 (aarch64_sve_mul_operand): Rename to...
16506 (aarch64_sve_vsm_operand): ...this.
16507 * config/aarch64/aarch64-sve.md (mul<mode>3): Generalize to...
16508 (<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...this.
16509 (*mul<mode>3, *post_ra_mul<mode>3): Generalize to...
16510 (*<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3)
16511 (*post_ra_<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...these and
16512 add movprfx support for the immediate alternatives.
16513 (<su><maxmin><mode>3, *<su><maxmin><mode>3): Delete in favor
16514 of the above.
16515 (*<SVE_INT_BINARY_SD:optab><SVE_SDI:mode>3): Fix incorrect predicate
16516 for operand 3.
16517
16518 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16519
16520 * config/aarch64/predicates.md (aarch64_simd_imm_one): New predicate.
16521 * config/aarch64/aarch64-sve.md (*cnot<mode>): New pattern.
16522 (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
16523
16524 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16525
16526 * config/aarch64/iterators.md (SVE_INT_UNARY): Add clrsb and clz.
16527 (optab, sve_int_op): Handle them.
16528 * config/aarch64/aarch64-sve.md: Expand comment.
16529
16530 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16531
16532 * config/aarch64/predicates.md (const_1_to_3_operand): New predicate.
16533 * config/aarch64/aarch64-sve.md (*aarch64_adr_uxtw)
16534 (*aarch64_adr<mode>_shift, *aarch64_adr_shift_uxtw): New patterns.
16535
16536 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16537
16538 * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_eor)
16539 (aarch64_expand_sve_const_pred_trn): New functions.
16540 (aarch64_expand_sve_const_pred_1): Add a recurse_p parameter and
16541 use the above functions when the parameter is true.
16542 (aarch64_expand_sve_const_pred): Update call accordingly.
16543 * config/aarch64/aarch64-sve.md (*aarch64_sve_<perm_insn><mode>):
16544 Rename to...
16545 (@aarch64_sve_<perm_insn><mode>): ...this.
16546
16547 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16548
16549 * config/aarch64/aarch64-protos.h (aarch64_sve_same_pred_for_ptest_p):
16550 Declare.
16551 * config/aarch64/aarch64.c (aarch64_sve_same_pred_for_ptest_p)
16552 (aarch64_sve_emit_int_cmp): New functions.
16553 (aarch64_convert_sve_data_to_pred): Use aarch64_sve_emit_int_cmp.
16554 (aarch64_sve_cmp_operand_p, aarch64_emit_sve_ptrue_op_cc): Delete.
16555 (aarch64_expand_sve_vec_cmp_int): Use aarch64_sve_emit_int_cmp.
16556 * config/aarch64/aarch64.md (UNSPEC_MERGE_PTRUE): Delete.
16557 (UNSPEC_PRED_Z): New unspec.
16558 (set_clobber_cc_nzc): Delete.
16559 * config/aarch64/aarch64-sve.md: Add a block comment about
16560 UNSPEC_PRED_Z.
16561 (*cmp<SVE_INT_CMP:cmp_op><mode>): Rename to...
16562 (@aarch64_pred_cmp<SVE_INT_CMP:cmp_op><mode>): ...this, replacing
16563 the old pattern with that name. Use UNSPEC_PRED_Z instead of
16564 UNSPEC_MERGE_PTRUE.
16565 (*cmp<SVE_INT_CMP:cmp_op><mode>_cc): Use UNSPEC_PRED_Z instead of
16566 UNSPEC_MERGE_PTRUE. Use aarch64_sve_same_pred_for_ptest_p to
16567 check for compatible predicates.
16568 (*cmp<cmp_op><SVE_INT_CMP:mode>_ptest): Likewise.
16569 (*cmp<cmp_op><mode>_and): Match a known-ptrue UNSPEC_PRED_Z instead
16570 of UNSPEC_MERGE_PTRUE. Split into the new form of predicated
16571 comparisons above.
16572
16573 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16574
16575 * config/aarch64/aarch64.md (UNSPEC_PRED_X): New unspec.
16576 * config/aarch64/aarch64-sve.md: Add a section describing it.
16577 (@aarch64_pred_mov<mode>, @aarch64_pred_mov<mode>)
16578 (<SVE_INT_UNARY:optab><mode>2, *<SVE_INT_UNARY:optab><mode>2)
16579 (aarch64_<su>abd<mode>_3, mul<SVE_I:mode>3, *mul<SVE_I:mode>3)
16580 (<su>mul<mode>3_highpart, *<su>mul<mode>3_highpart)
16581 (<SVE_INT_BINARY:optab><mode>3, *<SVE_INT_BINARY:optab><mode>3)
16582 (*bic<mode>3, v<ASHIFT:optab><mode>3, *v<ASHIFT:optab><mode>3)
16583 (<su><maxmin><mode>3, *<su><maxmin><mode>3, *madd<SVE_I:mode>)
16584 (*msub<SVE_I:mode>3, *aarch64_sve_rev64<mode>)
16585 (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Use
16586 UNSPEC_PRED_X instead of UNSPEC_MERGE_PTRUE.
16587 * config/aarch64/aarch64-sve2.md (<u>avg<mode>3_floor)
16588 (<u>avg<mode>3_ceil, *<sur>h<addsub><mode>): Likewise.
16589 * config/aarch64/aarch64.c (aarch64_split_sve_subreg_move)
16590 (aarch64_evpc_rev_local): Update accordingly.
16591
16592 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16593
16594 * config/aarch64/iterators.md (VNx4SI_ONLY, VNx2DF_ONLY): New mode
16595 iterators.
16596 (SVE_BHSI, SVE_SDI): Tweak comment.
16597 (SVE_HSDI): Likewise. Fix definition.
16598 (SVE_SDF): New mode iterator.
16599 (elem_bits): New mode attribute.
16600 (SVE_COND_FCVT): New int iterator.
16601 * config/aarch64/aarch64-sve.md
16602 (*<SVE_COND_ICVTF:optab>v16hsf<SVE_HSDI:mode>2)
16603 (*<SVE_COND_ICVTF:optab>vnx4sf<SVE_SDI:mode>2)
16604 (*<SVE_COND_ICVTF:optab>vnx2df<SVE_SDI:mode>2): Merge into...
16605 (*aarch64_sve_<SVE_COND_ICVTF:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>)
16606 (*aarch64_sve_<SVE_COND_ICVTF:optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
16607 ...these new patterns.
16608 (*<SVE_COND_FCVTI:optab><SVE_HSDI:mode>vnx8hf2)
16609 (*<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx4sf2)
16610 (aarch64_sve_<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx2df2):
16611 Merge into...
16612 (*aarch64_sve_<SVE_COND_FCVTI:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>)
16613 (aarch64_sve_<SVE_COND_FCVTI:optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>):
16614 ...these new patterns.
16615 (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Update accordingly.
16616 (*trunc<Vwide><SVE_SDF:mode>2): Replace with...
16617 (*aarch64_sve_<SVE_COND_FCVT:optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>):
16618 ...this new pattern.
16619 (aarch64_sve_extend<SVE_HSDF:mode><Vwide>2): Replace with...
16620 (aarch64_sve_<SVE_COND_FCVT:optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>):
16621 ...this new pattern.
16622 (vec_unpacks_<perm_hilo>_<mode>): Update accordingly.
16623
16624 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16625
16626 * config/aarch64/aarch64.md (UNSPEC_FLOAT_CONVERT): Delete.
16627 * config/aarch64/iterators.md (UNSPEC_COND_FCVT, UNSPEC_COND_FCVTZS)
16628 (UNSPEC_COND_FCVTZU, UNSPEC_COND_SCVTF, UNSPEC_COND_UCVTF): New
16629 unspecs.
16630 (optab, su): Handle them.
16631 (SVE_COND_FCVTI, SVE_COND_ICVTF): New int iterators.
16632 * config/aarch64/aarch64-sve.md
16633 (<fix_trunc_optab><SVE_F:mode><v_int_equiv>2): Replace with...
16634 (<SVE_COND_FCVTI:optab><SVE_F:mode><v_int_equiv>2): ...this.
16635 (*<fix_trunc_optab>v16hsf<:SVE_HSDImode>2): Replace with...
16636 (*<SVE_COND_FCVTI:optab>v16hsf<SVE_F:mode>2): ...this.
16637 (*<fix_trunc_optab>vnx4sf<SVE_SDI:mode>2): Replace with...
16638 (*<SVE_COND_FCVTI:optab>vnx4sf<SVE_SDI:mode>2): ...this.
16639 (*<fix_trunc_optab>vnx2df<SVE_SDI:mode>2): Replace with...
16640 (*<SVE_COND_FCVTI:optab>vnx2df<SVE_SDI:mode>2): ...this.
16641 (vec_pack_<su>fix_trunc_vnx2df): Use SVE_COND_FCVTI instead of
16642 FIXUORS.
16643 (<FLOATUORS:optab><v_int_equiv><SVE_F:mode>2): Replace with...
16644 (<SVE_COND_ICVTF:optab><v_int_equiv><SVE_F:mode>2): ...this.
16645 (*<FLOATUORS:optab><SVE_HSDI:mode>vnx8hf2): Replace with...
16646 (*<SVE_COND_ICVTF:optab><SVE_HSDI:mode>vnx8hf2): ...this.
16647 (*<FLOATUORS:optab><SVE_SDI:mode>vnx4sf2): Replace with...
16648 (*<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx4sf2): ...this.
16649 (aarch64_sve_<FLOATUORS:optab><SVE_SDI:mode>vnx2df2): Replace with...
16650 (aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2): ...this.
16651 (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Pass a GP strictness
16652 operand to aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2.
16653 (vec_pack_trunc_<SVE_HSF:Vwide>, *trunc<Vwide><SVE_HSF:mode>2)
16654 (aarch64_sve_extend<mode><Vwide>2): Use UNSPEC_COND_FCVT instead
16655 of UNSPEC_FLOAT_CONVERT.
16656 (vec_unpacks_<perm_hilo>_<mode>): Pass a GP strictness operand to
16657 aarch64_sve_extend<mode><Vwide>2.
16658
16659 2019-08-14 Richard Biener <rguenther@suse.de>
16660
16661 PR target/91154
16662 * config/i386/i386-features.c
16663 (dimode_scalar_chain::compute_convert_gain): Compute and dump
16664 individual instruction gain. Fix reg-reg copy GRP cost. Use
16665 ix86_cost->sse_op for vector instruction costs.
16666
16667 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16668
16669 * config/aarch64/iterators.md (UNSPEC_COND_FCMUO): New unspec.
16670 (cmp_op): Handle it.
16671 (SVE_COND_FP_CMP): Rename to...
16672 (SVE_COND_FP_CMP_I0): ...this.
16673 (SVE_FP_CMP): Remove.
16674 * config/aarch64/aarch64-sve.md
16675 (*fcm<SVE_FP_CMP:cmp_op><SVE_F:mode>): Replace with...
16676 (*fcm<SVE_COND_FP_CMP_I0:cmp_op><SVE_F:mode>): ...this new pattern,
16677 using unspecs to represent the comparison.
16678 (*fcmuo<SVE_F:mode>): Use UNSPEC_COND_FCMUO.
16679 (*fcm<cmp_op><mode>_and_combine, *fcmuo<mode>_and_combine): Update
16680 accordingly.
16681 * config/aarch64/aarch64.c (aarch64_emit_sve_ptrue_op): Delete.
16682 (aarch64_unspec_cond_code): Move after integer code. Handle
16683 UNORDERED.
16684 (aarch64_emit_sve_predicated_cond): Replace with...
16685 (aarch64_emit_sve_fp_cond): ...this new function.
16686 (aarch64_emit_sve_or_conds): Replace with...
16687 (aarch64_emit_sve_or_fp_conds): ...this new function.
16688 (aarch64_emit_sve_inverted_cond): Replace with...
16689 (aarch64_emit_sve_invert_fp_cond): ...this new function.
16690 (aarch64_expand_sve_vec_cmp_float): Update accordingly.
16691
16692 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16693
16694 * config/aarch64/iterators.md (SVE_HSD): New mode iterator.
16695 (V_FP_EQUIV, v_fp_equiv): Handle VNx8HI and VNx8HF.
16696 * config/aarch64/aarch64-sve.md (vcond<mode><v_fp_equiv>): Use
16697 SVE_HSD instead of SVE_SD.
16698
16699 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16700 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
16701
16702 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_REG): New int
16703 iterator.
16704 (sve_pred_fp_rhs1_operand, sve_pred_fp_rhs1_operand): New int
16705 attributes.
16706 * config/aarch64/aarch64-sve.md (add<SVE_F:mode>3, sub<SVE_F:mode>3)
16707 (mul<SVE_F:mode>3, div<SVE_F:mode>3)
16708 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Merge into...
16709 (<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this new expander.
16710 (*div<SVE_F:mode>3): Generalize to...
16711 (*<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this.
16712
16713 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16714 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
16715
16716 * config/aarch64/aarch64.md (SVE_RELAXED_GP, SVE_STRICT_GP): New
16717 constants.
16718 * config/aarch64/predicates.md (aarch64_sve_gp_strictness): New
16719 predicate.
16720 * config/aarch64/aarch64-protos.h (aarch64_sve_pred_dominates_p):
16721 Declare.
16722 * config/aarch64/aarch64.c (aarch64_sve_pred_dominates_p): New
16723 function.
16724 * config/aarch64/aarch64-sve.md: Add a block comment about the
16725 handling of predicated FP operations.
16726 (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2, add<SVE_F:mode>3)
16727 (sub<SVE_F:mode>3, mul<SVE_F:mode>3, div<SVE_F:mode>3)
16728 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3)
16729 (<SVE_COND_FP_MAXMIN_PUBLIC:maxmin_uns><SVE_F:mode>3)
16730 (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): Add an SVE_RELAXED_GP
16731 operand.
16732 (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>)
16733 (cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>): Add an SVE_STRICT_GP
16734 operand.
16735 (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2)
16736 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_2)
16737 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_3)
16738 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_any)
16739 (*fabd<SVE_F:mode>3, *div<SVE_F:mode>3)
16740 (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3)
16741 (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4)
16742 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_2)
16743 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_4)
16744 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Match the
16745 strictness operands. Use aarch64_sve_pred_dominates_p to check
16746 whether the predicate on the conditional operation is suitable
16747 for merging. Split patterns into the canonical equal-predicate form.
16748 (*add<SVE_F:mode>3, *sub<SVE_F:mode>3, *mul<SVE_F:mode>3): Likewise.
16749 Restrict the unpredicated alternatives to SVE_RELAXED_GP.
16750
16751 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16752 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
16753
16754 * config/aarch64/aarch64-sve.md (add<mode>3, *add<mode>3)
16755 (sub<mode>3, *sub<mode>3, *fabd<mode>3, mul<mode>3, *mul<mode>3)
16756 (div<mode>3, *div<mode>3): Use SVE_COND_FP_* unspecs instead of
16757 rtx codes.
16758 (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_3)
16759 (*cond_<optab><mode>_any): Add the predicate to the SVE_COND_FP_*
16760 unspecs.
16761
16762 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16763 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
16764
16765 * config/aarch64/aarch64-sve.md (bic<mode>3): Rename to...
16766 (*bic<SVE_I:mode>3): ...this. Match the form that an SVE inverse
16767 actually has, rather than relying on REG_EQUAL notes.
16768 Make the insn operand order match the SVE operand order.
16769 (*<nlogical><PRED_ALL:mode>3): Make the insn operand order match
16770 the SVE operand order.
16771
16772 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16773
16774 * config/aarch64/aarch64.c (aarch64_target_reg): New function.
16775 (aarch64_emit_set_immediate): Likewise.
16776 (aarch64_ptrue_reg): Build a VNx16BI constant and then bitcast it.
16777 (aarch64_pfalse_reg): Likewise.
16778 (aarch64_convert_sve_data_to_pred): New function.
16779 (aarch64_sve_move_pred_via_while): Take an optional target register
16780 and the required register mode.
16781 (aarch64_expand_sve_const_pred_1): New function.
16782 (aarch64_expand_sve_const_pred): Likewise.
16783 (aarch64_expand_mov_immediate): Build an all-true predicate
16784 if the significant bits of the immediate are all true. Use
16785 aarch64_expand_sve_const_pred for all compile-time predicate constants.
16786 (aarch64_mov_operand_p): Force predicate constants to be VNx16BI
16787 before register allocation.
16788 * config/aarch64/aarch64-sve.md (*vec_duplicate<mode>_reg): Use
16789 a VNx16BI PTRUE when splitting the memory alternative.
16790 (vec_duplicate<mode>): Update accordingly.
16791 (*pred_cmp<cmp_op><mode>): Rename to...
16792 (@aarch64_pred_cmp<cmp_op><mode>): ...this.
16793
16794 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
16795
16796 * config/aarch64/aarch64-protos.h (aarch64_ptrue_all): Declare.
16797 * config/aarch64/aarch64.c (aarch64_ptrue_all): New function.
16798 * config/aarch64/aarch64.md (UNSPEC_PTEST_PTRUE): Delete.
16799 (UNSPEC_PTEST): New unspec.
16800 (SVE_MAYBE_NOT_PTRUE, SVE_KNOWN_PTRUE): New constants.
16801 * config/aarch64/iterators.md (data_bytes): New mode attribute.
16802 * config/aarch64/predicates.md (aarch64_sve_ptrue_flag): New predicate.
16803 * config/aarch64/aarch64-sve.md: Add a new section describing the
16804 handling of UNSPEC_PTEST.
16805 (pred_<LOGICAL:optab><PRED_ALL:mode>3): Rename to...
16806 (@aarch64_pred_<LOGICAL:optab><PRED_ALL:mode>_z): ...this.
16807 (ptest_ptrue<mode>): Replace with...
16808 (aarch64_ptest<mode>): ...this new pattern.
16809 (cbranch<mode>4): Update after above changes.
16810 (*<LOGICAL:optab><PRED_ALL:mode>3_cc): Use UNSPEC_PTEST instead of
16811 UNSPEC_PTEST_PTRUE.
16812 (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_cc): Likewise.
16813 (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_ptest): Likewise.
16814 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): Likewise.
16815
16816 2019-08-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
16817
16818 PR lto/91287
16819 * builtins.c (builtin_with_linkage_p): New function.
16820 * builtins.h (builtin_with_linkage_p): New function.
16821 * symtab.c (write_symbol): Remove redundant assert.
16822 * lto-streamer-out.c (symtab_node::output_to_lto_symbol_table_p):
16823 Remove FIXME and use builtin_with_linkage_p.
16824
16825 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
16826
16827 PR middle-end/91421
16828 * tree-core.h (function_decl::function_code): Change type to
16829 unsigned int.
16830 * tree.h (DECL_FUNCTION_CODE): Rename old definition to...
16831 (DECL_UNCHECKED_FUNCTION_CODE): ...this.
16832 (DECL_BUILT_IN_CLASS): Make an rvalue macro only.
16833 (DECL_FUNCTION_CODE): New function. Assert that the built-in class
16834 is BUILT_IN_NORMAL.
16835 (DECL_MD_FUNCTION_CODE, DECL_FE_FUNCTION_CODE): New functions.
16836 (set_decl_built_in_function, copy_decl_built_in_function): Likewise.
16837 (fndecl_built_in_p): Change the type of the "name" argument to
16838 unsigned int.
16839 * builtins.c (expand_builtin): Move DECL_FUNCTION_CODE use
16840 after check for DECL_BUILT_IN_CLASS.
16841 * cgraphclones.c (build_function_decl_skip_args): Use
16842 set_decl_built_in_function.
16843 * ipa-param-manipulation.c (ipa_modify_formal_parameters): Likewise.
16844 * ipa-split.c (split_function): Likewise.
16845 * langhooks.c (add_builtin_function_common): Likewise.
16846 * omp-simd-clone.c (simd_clone_create): Likewise.
16847 * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise.
16848 * config/darwin.c (darwin_init_cfstring_builtins): Likewise.
16849 (darwin_fold_builtin): Use DECL_MD_FUNCTION_CODE instead of
16850 DECL_FUNCTION_CODE.
16851 * fold-const.c (operand_equal_p): Compare DECL_UNCHECKED_FUNCTION_CODE
16852 instead of DECL_FUNCTION_CODE.
16853 * lto-streamer-out.c (hash_tree): Use DECL_UNCHECKED_FUNCTION_CODE
16854 instead of DECL_FUNCTION_CODE.
16855 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise.
16856 * print-tree.c (print_node): Use DECL_MD_FUNCTION_CODE when
16857 printing DECL_BUILT_IN_MD. Handle DECL_BUILT_IN_FRONTEND.
16858 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin)
16859 (aarch64_fold_builtin, aarch64_gimple_fold_builtin): Use
16860 DECL_MD_FUNCTION_CODE instead of DECL_FUNCTION_CODE.
16861 * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise.
16862 * config/alpha/alpha.c (alpha_expand_builtin, alpha_fold_builtin):
16863 (alpha_gimple_fold_builtin): Likewise.
16864 * config/arc/arc.c (arc_expand_builtin): Likewise.
16865 * config/arm/arm-builtins.c (arm_expand_builtin): Likewise.
16866 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
16867 * config/avr/avr.c (avr_expand_builtin, avr_fold_builtin): Likewise.
16868 * config/bfin/bfin.c (bfin_expand_builtin): Likewise.
16869 * config/c6x/c6x.c (c6x_expand_builtin): Likewise.
16870 * config/frv/frv.c (frv_expand_builtin): Likewise.
16871 * config/gcn/gcn.c (gcn_expand_builtin_1): Likewise.
16872 (gcn_expand_builtin): Likewise.
16873 * config/i386/i386-builtins.c (ix86_builtin_reciprocal): Likewise.
16874 (fold_builtin_cpu): Likewise.
16875 * config/i386/i386-expand.c (ix86_expand_builtin): Likewise.
16876 * config/i386/i386.c (ix86_fold_builtin): Likewise.
16877 (ix86_gimple_fold_builtin): Likewise.
16878 * config/ia64/ia64.c (ia64_fold_builtin): Likewise.
16879 (ia64_expand_builtin): Likewise.
16880 * config/iq2000/iq2000.c (iq2000_expand_builtin): Likewise.
16881 * config/mips/mips.c (mips_expand_builtin): Likewise.
16882 * config/msp430/msp430.c (msp430_expand_builtin): Likewise.
16883 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
16884 * config/nios2/nios2.c (nios2_expand_builtin): Likewise.
16885 * config/nvptx/nvptx.c (nvptx_expand_builtin): Likewise.
16886 * config/pa/pa.c (pa_expand_builtin): Likewise.
16887 * config/pru/pru.c (pru_expand_builtin): Likewise.
16888 * config/riscv/riscv-builtins.c (riscv_expand_builtin): Likewise.
16889 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
16890 Likewise.
16891 * config/rs6000/rs6000-call.c (htm_expand_builtin): Likewise.
16892 (altivec_expand_dst_builtin, altivec_expand_builtin): Likewise.
16893 (rs6000_gimple_fold_builtin, rs6000_expand_builtin): Likewise.
16894 * config/rs6000/rs6000.c (rs6000_builtin_md_vectorized_function)
16895 (rs6000_builtin_reciprocal): Likewise.
16896 * config/rx/rx.c (rx_expand_builtin): Likewise.
16897 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
16898 * config/s390/s390.c (s390_expand_builtin): Likewise.
16899 * config/sh/sh.c (sh_expand_builtin): Likewise.
16900 * config/sparc/sparc.c (sparc_expand_builtin): Likewise.
16901 (sparc_fold_builtin): Likewise.
16902 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
16903 * config/spu/spu.c (spu_expand_builtin): Likewise.
16904 * config/stormy16/stormy16.c (xstormy16_expand_builtin): Likewise.
16905 * config/tilegx/tilegx.c (tilegx_expand_builtin): Likewise.
16906 * config/tilepro/tilepro.c (tilepro_expand_builtin): Likewise.
16907 * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
16908 (xtensa_expand_builtin): Likewise.
16909
16910 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
16911
16912 PR middle-end/91421
16913 * attribs.c (decl_attributes): Check the DECL_BUILT_IN_CLASS
16914 before the DECL_FUNCTION_CODE.
16915 * calls.c (maybe_warn_alloc_args_overflow): Use fndecl_built_in_p
16916 to check for a BUILT_IN_ALLOCA call.
16917 * ipa-cp.c (ipa_get_indirect_edge_target_1): Likewise for
16918 BUILT_IN_UNREACHABLE. Don't check for a FUNCTION_TYPE.
16919 * ipa-devirt.c (possible_polymorphic_call_target_p): Likewise.
16920 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
16921 * gimple-ssa-isolate-paths.c (is_addr_local): Check specifically
16922 for BUILT_IN_NORMAL functions.
16923 * trans-mem.c (expand_block_edges): Use gimple_call_builtin_p to
16924 test for BUILT_IN_TM_ABORT.
16925 * tree-ssa-ccp.c (optimize_stack_restore): Use fndecl_built_in_p
16926 to check for a BUILT_IN_STACK_RESTORE call.
16927 (optimize_stdarg_builtin): Remove redundant check for GIMPLE_CALL.
16928 * tree-ssa-threadedge.c
16929 (record_temporary_equivalences_from_stmts_at_dest): Check for a
16930 BUILT_IN_NORMAL decl before checking its DECL_FUNCTION_CODE.
16931 * tree-vect-patterns.c (vect_recog_pow_pattern): Use a positive
16932 test for a BUILT_IN_NORMAL call instead of a negative test for
16933 an internal function call.
16934
16935 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
16936
16937 * tree.h (build_vector_a_then_b): Declare.
16938 * tree.c (build_vector_a_then_b): New function.
16939 * fold-const-call.c (fold_while_ult): Likewise.
16940 (fold_const_call): Use it to handle IFN_WHILE_ULT.
16941 * config/aarch64/aarch64-protos.h (AARCH64_FOR_SVPATTERN): New macro.
16942 (aarch64_svpattern): New enum.
16943 * config/aarch64/aarch64-sve.md (mov<PRED_ALL:mode>): Pass
16944 constants through aarch64_expand_mov_immediate.
16945 (*aarch64_sve_mov<PRED_ALL:mode>): Use aarch64_mov_operand rather
16946 than general_operand as the predicate for operand 1.
16947 (while_ult<GPI:mode><PRED_ALL:mode>): Add a '@' marker.
16948 * config/aarch64/aarch64.c (simd_immediate_info::PTRUE): New
16949 insn_type.
16950 (simd_immediate_info::simd_immediate_info): New overload that
16951 takes a scalar_int_mode and an svpattern.
16952 (simd_immediate_info::u): Add a "pattern" field.
16953 (svpattern_token): New function.
16954 (aarch64_get_sve_pred_bits, aarch64_widest_sve_pred_elt_size)
16955 (aarch64_partial_ptrue_length, aarch64_svpattern_for_vl)
16956 (aarch64_sve_move_pred_via_while): New functions.
16957 (aarch64_expand_mov_immediate): Try using
16958 aarch64_sve_move_pred_via_while for predicates that contain N ones
16959 followed by M zeros but that do not correspond to a VLnnn pattern.
16960 (aarch64_sve_pred_valid_immediate): New function.
16961 (aarch64_simd_valid_immediate): Use it instead of dealing directly
16962 with PTRUE and PFALSE.
16963 (aarch64_output_sve_mov_immediate): Handle new simd_immediate_info
16964 forms.
16965
16966 2019-08-13 Iain Sandoe <iain@sandoe.co.uk>
16967
16968 * config/darwin.c (machopic_indirect_call_target): Rename symbol stub
16969 flag.
16970 (darwin_override_options): Likewise.
16971 * config/darwin.h: Likewise.
16972 * config/darwin.opt: Likewise.
16973 * config/i386/i386.c (output_pic_addr_const): Likewise.
16974 * config/rs6000/darwin.h: Likewise.
16975 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise.
16976 * config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ...
16977 ... this TARGET_MACHO_SYMBOL_STUBS.
16978 (FUNCTION_PROFILER):Likewise.
16979 * config/i386/i386.h: Likewise.
16980
16981 2019-08-13 Uroš Bizjak <ubizjak@gmail.com>
16982
16983 * config/i386/i386-expand.c (ix86_expand_vector_extract)
16984 <case E_V2SImode>: Use vec_extr path for
16985 TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
16986 <case E_V8QImode>: Ditto.
16987 * config/i386/mmx.md (*mmx_pextrw_zext): Rename from mmx_pextrw.
16988 Use SWI48 mode iterator. Use %k to output operand 0.
16989 (*mmx_pextrw): New insn pattern.
16990 (*mmx_pextrb): Ditto.
16991 (*mmx_pextrb_zext): Ditto.
16992
16993 2019-08-13 Jonathan Wakely <jwakely@redhat.com>
16994
16995 * target.def (libc_has_function, libc_has_fast_function): Improve
16996 documentation strings.
16997 * doc/tm.texi: Regenerate.
16998
16999 2019-08-13 Caroline Tice <cmtice@google.com>
17000
17001 PR other/91396
17002 * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Only add the
17003 vtv_end.o or vtv_end_preinit.o files if !static.
17004
17005 2019-08-13 Olivier Hainque <hainque@adacore.com>
17006
17007 * rtl.h (tablejump_casesi_pattern): Move declaration to proper spot.
17008
17009 2019-08-13 Olivier Hainque <hainque@adacore.com>
17010
17011 * rtlanal.c (tablejump_casesi_pattern): New function, to
17012 determine if a tablejump insn is a casesi dispatcher. Extracted
17013 from patch_jump_insn.
17014 * rtl.h (tablejump_casesi_pattern): Declare.
17015 * cfgrtl.c (patch_jump_insn): Use it.
17016 * dwarf2cfi.c (create_trace_edges): Use it.
17017
17018 2019-08-13 Wilco Dijkstra <wdijkstr@arm.com>
17019
17020 PR target/81800
17021 * config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF
17022 operand is larger than a long int.
17023
17024 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
17025
17026 * machmode.h (opt_mode::else_mode): New function.
17027 (opt_mode::else_blk): Use it.
17028 * config/aarch64/aarch64-protos.h (aarch64_vq_mode): Declare.
17029 (aarch64_full_sve_mode, aarch64_sve_ld1rq_operand_p): Likewise.
17030 (aarch64_gen_stepped_int_parallel): Likewise.
17031 (aarch64_stepped_int_parallel_p): Likewise.
17032 (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate
17033 argument.
17034 * config/aarch64/aarch64.c
17035 (aarch64_expand_sve_widened_duplicate): Delete.
17036 (aarch64_expand_sve_dupq, aarch64_expand_sve_ld1rq): New functions.
17037 (aarch64_expand_sve_const_vector): Rewrite to handle more cases.
17038 (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate
17039 argument. Use early returns in the !CONST_INT_P handling.
17040 Pass all SVE data vectors to aarch64_expand_sve_const_vector rather
17041 than handling some inline.
17042 (aarch64_full_sve_mode, aarch64_vq_mode): New functions, split out
17043 from...
17044 (aarch64_simd_container_mode): ...here.
17045 (aarch64_gen_stepped_int_parallel, aarch64_stepped_int_parallel_p)
17046 (aarch64_sve_ld1rq_operand_p): New functions.
17047 * config/aarch64/predicates.md (descending_int_parallel)
17048 (aarch64_sve_ld1rq_operand): New predicates.
17049 * config/aarch64/constraints.md (UtQ): New constraint.
17050 * config/aarch64/aarch64.md (UNSPEC_REINTERPRET): New unspec.
17051 * config/aarch64/aarch64-sve.md (mov<SVE_ALL:mode>): Remove the
17052 gen_vec_duplicate from call to aarch64_expand_mov_immediate.
17053 (@aarch64_sve_reinterpret<mode>): New expander.
17054 (*aarch64_sve_reinterpret<mode>): New pattern.
17055 (@aarch64_vec_duplicate_vq<mode>_le): New pattern.
17056 (@aarch64_vec_duplicate_vq<mode>_be): Likewise.
17057 (*sve_ld1rq<Vesize>): Replace with...
17058 (@aarch64_sve_ld1rq<mode>): ...this new pattern.
17059
17060 2019-08-13 Wilco Dijkstra <wdijkstr@arm.com>
17061
17062 * config/aarch64/aarch64.c (generic_tunings): Set function alignment to
17063 16:12.
17064
17065 2019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
17066
17067 * config/msp430/driver-msp430.c (msp430_set_driver_var): New.
17068 * config/msp430/msp430-devices.c (canonicalize_path_dirsep): New.
17069 (msp430_check_path_for_devices): New.
17070 (parse_devices_csv_1): New.
17071 (parse_devices_csv): New.
17072 (msp430_extract_mcu_data): Try to find devices.csv and search for the
17073 MCU data in devices.csv before using the hard-coded data.
17074 Warn if devices.csv isn't found and the MCU wasn't found in the
17075 hard-coded data either.
17076 * config/msp430/msp430.h (DRIVER_SELF_SPECS): Call
17077 msp430_set_driver_var for -mno-warn-devices-csv and -mdevices-csv-loc.
17078 Search for devices.csv on -I and -L paths.
17079 (EXTRA_SPEC_FUNCTIONS): Add msp430_check_path_for_devices and
17080 msp430_set_driver_var.
17081 * config/msp430/msp430.opt: Add -mwarn-devices-csv and
17082 -mdevices-csv-loc=.
17083 * doc/invoke.texi (-mmcu): Document that -I and -L paths are
17084 searched for devices.csv.
17085 (mwarn-devices-csv): Document option.
17086
17087 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
17088
17089 * config/aarch64/aarch64-protos.h (aarch64_output_ptrue): Delete.
17090 * config/aarch64/aarch64-sve.md (*aarch64_sve_mov<PRED_ALL:mode>):
17091 Use a single Dn alternative instead of separate Dz and Dm
17092 alternatives. Use aarch64_output_sve_move_immediate.
17093 * config/aarch64/aarch64.c (aarch64_sve_element_int_mode): New
17094 function.
17095 (aarch64_simd_valid_immediate): Fill in the simd_immediate_info
17096 for predicates too.
17097 (aarch64_output_sve_mov_immediate): Handle predicate modes.
17098 (aarch64_output_ptrue): Delete.
17099
17100 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
17101
17102 * config/aarch64/aarch64.c (simd_immediate_info::insn_type): Add
17103 INDEX.
17104 (simd_immediate_info::value, simd_immediate_info::step)
17105 (simd_immediate_info::modifier, simd_immediate_info::shift): Replace
17106 with...
17107 (simd_immediate_info::u): ...this new union.
17108 (simd_immediate_info::simd_immediate_info): Update accordingly.
17109 (aarch64_output_simd_mov_immediate): Likewise.
17110 (aarch64_output_sve_mov_immediate): Likewise.
17111
17112 2019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
17113
17114 * config.gcc (msp430*-*-*): Add msp430-devices.o to extra_objs and
17115 extra_gcc_objs.
17116 * config/msp430/driver-msp430.c: Remove msp430_mcu_data.
17117 (msp430_select_cpu): New spec function.
17118 (msp430_select_hwmult_lib): Use msp430_extract_mcu_data to extract
17119 MCU data.
17120 * config/msp430/msp430-devices.c: New file.
17121 * config/msp430/msp430-devices.h: New file.
17122 * config/msp430/msp430.c: Remove msp430_mcu_data.
17123 (msp430_option_override): Use msp430_extract_mcu_data to extract
17124 MCU data.
17125 (msp430_use_f5_series_hwmult): Likewise.
17126 (use_32bit_hwmult): Likewise.
17127 (msp430_no_hwmult): Likewise.
17128 * config/msp430/msp430.h (ASM_SPEC): Don't pass -mmcu to the
17129 assembler.
17130 (DRIVER_SELF_SPECS): Call msp430_select_cpu if -mmcu is used without
17131 and -mcpu option.
17132 (EXTRA_SPEC_FUNCTIONS): Add msp430_select_cpu.
17133 * config/msp430/t-msp430: Add rule to build msp430-devices.o.
17134 Remove hard-coded MCU multilib data.
17135
17136 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
17137
17138 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Switch
17139 based on the mode instead of testing properties of it.
17140
17141 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
17142
17143 * doc/md.texi: Document the x and y constraints for AArch64.
17144 * config/aarch64/aarch64.h (FP_LO8_REGNUM_P): New macro.
17145 (FP_LO8_REGS): New reg_class.
17146 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add an entry for FP_LO8_REGS.
17147 * config/aarch64/aarch64.c (aarch64_hard_regno_nregs)
17148 (aarch64_regno_regclass, aarch64_class_max_nregs): Handle FP_LO8_REGS.
17149 * config/aarch64/predicates.md (aarch64_simd_register): Use
17150 FP_REGNUM_P instead of checking the classes manually.
17151 * config/aarch64/constraints.md (y): New constraint.
17152
17153 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
17154
17155 * config/aarch64/iterators.md (perm_insn): Include the "1"/"2" suffix.
17156 (perm_hilo): Remove UNSPEC_ZIP*, UNSEPC_TRN* and UNSPEC_UZP*.
17157 * config/aarch64/aarch64-simd.md
17158 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Rename to..
17159 (aarch64_<PERMUTE:perm_insn><mode>): ...this and remove perm_hilo
17160 from the asm template.
17161 * config/aarch64/aarch64-sve.md
17162 (aarch64_<perm_insn><perm_hilo><PRED_ALL:mode>): Rename to..
17163 (aarch64_<perm_insn><PRED_ALL:mode>): ...this and remove perm_hilo
17164 from the asm template.
17165 (aarch64_<perm_insn><perm_hilo><SVE_ALL:mode>): Rename to..
17166 (aarch64_<perm_insn><SVE_ALL:mode>): ...this and remove perm_hilo
17167 from the asm template.
17168 * config/aarch64/aarch64-simd-builtins.def: Update comment.
17169
17170 2019-08-13 Martin Liska <mliska@suse.cz>
17171
17172 * value-prof.c (gimple_ic_transform): Add new line.
17173 Print details with MSG_NOTE.
17174
17175 2019-08-13 Martin Liska <mliska@suse.cz>
17176
17177 * doc/invoke.texi: Document automatic detection of jobserver.
17178 * lto-wrapper.c (run_gcc): Detect jobserver always.
17179
17180 2019-08-13 Uroš Bizjak <ubizjak@gmail.com>
17181
17182 * config/i386/i386-expand.c (ix86_expand_vector_set)
17183 <case E_V2SImode>: Use vec_merge path for
17184 TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
17185 <case E_V8QImode>: Ditto.
17186 * config/i386/mmx.md (*mmx_pinsrd): New insn pattern.
17187 (*mmx_pinsrb): Ditto.
17188
17189 2019-08-12 Jakub Jelinek <jakub@redhat.com>
17190
17191 PR target/83250
17192 PR target/91340
17193 * config/i386/avxintrin.h (_mm256_zextpd128_pd256,
17194 _mm256_zextps128_ps256, _mm256_zextsi128_si256): New intrinsics.
17195 * config/i386/avx512fintrin.h (_mm512_zextpd128_pd512,
17196 _mm512_zextps128_ps512, _mm512_zextsi128_si512, _mm512_zextpd256_pd512,
17197 _mm512_zextps256_ps512, _mm512_zextsi256_si512): Likewise.
17198
17199 2019-08-12 Richard Biener <rguenther@suse.de>
17200
17201 PR lto/91375
17202 * tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on
17203 flag_devirtualize.
17204
17205 2019-08-12 Richard Biener <rguenther@suse.de>
17206
17207 PR driver/91130
17208 * lto-wrapper.c (get_options_from_collect_gcc_options): Remove
17209 lang_mask option, always use CL_DRIVER.
17210 (get_options_from_collect_gcc_options): Adjust.
17211 (find_and_merge_options): Likewise.
17212 (run_gcc): Likewise.
17213
17214 2019-08-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17215
17216 * ipa-predicate.c (add_condition): Restore inverted test.
17217
17218 2019-08-10 Jakub Jelinek <jakub@redhat.com>
17219
17220 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DEVICE_TYPE.
17221 (enum omp_clause_device_type_kind): New enum.
17222 (struct tree_omp_clause): Add subcode.device_type_kind.
17223 * tree.h (OMP_CLAUSE_DEVICE_TYPE_KIND): Define.
17224 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries
17225 for device_type clause.
17226 (walk_tree_1): Handle OMP_CLAUSE_DEVICE_TYPE.
17227 * tree-pretty-print.c (dump_omp_clause): Likewise.
17228
17229 PR target/91408
17230 * config/i386/mmx.md (usadv8qi): Use register_operand instead of
17231 vector_operand.
17232
17233 2019-08-09 Vladimir Makarov <vmakarov@redhat.com>
17234
17235 * reload1.c (finish_spills): Do not check ira_conflicts_p when
17236 handling spilled pseudos.
17237
17238 2019-08-09 Richard Earnshaw <rearnsha@arm.com>
17239
17240 PR target/91386
17241 * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Use copy_rtx
17242 to preserve the contents of the original insns.
17243
17244 2019-08-09 Richard Earnshaw <rearnsha@arm.com>
17245
17246 * config/arm/arm.md (addsi3_compare_op1): Add 16-bit thumb-2 variants.
17247 (addsi3_compare_op2): Likewise.
17248
17249 2019-08-09 Martin Liska <mliska@suse.cz>
17250
17251 * alias.c (alias_ptr_types_compatible_p): Strengten
17252 type comparison in LTO mode.
17253
17254 2019-08-09 Richard Sandiford <richard.sandiford@arm.com>
17255
17256 PR middle-end/90313
17257 * tree-tailcall.c (find_tail_calls): Reject calls that might
17258 read from an escaped RESULT_DECL.
17259
17260 2019-08-09 Martin Liska <mliska@suse.cz>
17261
17262 * doc/invoke.texi: Document the option value.
17263 * lto-wrapper.c (run_gcc): Set auto_parallel
17264 only with -flto=auto.
17265
17266 2019-08-09 Martin Liska <mliska@suse.cz>
17267
17268 * opts.c (common_handle_option): Error for an invalid argument
17269 to -flto=.
17270
17271 2019-08-09 Martin Liska <mliska@suse.cz>
17272
17273 * ipa-icf.c (sem_function::merge): Define AUTO_DUMP_SCOPE and
17274 use dump_printf to report optimization.
17275 (sem_variable::merge): Likwise.
17276 (sem_item_optimizer::merge_classes): Use dump_printf to report
17277 ICF hits.
17278
17279 2019-08-09 Martin Liska <mliska@suse.cz>
17280
17281 * value-prof.c (gimple_divmod_fixed_value_transform):
17282 Use dump_printf_loc.
17283 (gimple_mod_pow2_value_transform): Likewise.
17284 (gimple_mod_subtract_transform): Likewise.
17285 (init_node_map): Likewise.
17286 (gimple_ic_transform): Likewise.
17287 (gimple_stringops_transform): Likewise.
17288
17289 2019-08-08 Mihailo Stojanovic <mistojanovic@wavecomp.com>
17290
17291 * doc/extend.texi: Add const qualifier to ld intrinsics.
17292
17293 2019-08-08 Segher Boessenkool <segher@kernel.crashing.org>
17294
17295 * config/rs6000/dfp.md (D64_D128): Rename to ...
17296 (DDTD): ... this, throughout.
17297 (dfp_suffix): Rename to ...
17298 (q): ... this, throughout.
17299
17300 2019-08-08 Segher Boessenkool <segher@kernel.crashing.org>
17301
17302 * config/rs6000/dfp.md (D64_D128): Move earlier in the file.
17303 (dfp_suffix): Ditto.
17304 (adddd3, addtd3): Merge to ...
17305 (add<mode>3 for D64_D128): ... this.
17306 (subdd3, subtd3): Merge to ...
17307 (sub<mode>3 for D64_D128): ... this.
17308 (muldd3, multd3): Merge to ...
17309 (mul<mode>3 for D64_D128): ... this.
17310 (divdd3, divtd3): Merge to ...
17311 (div<mode>3 for D64_D128): ... this.
17312 (*cmpdd_internal1, *cmptd_internal1): Merge to ...
17313 (*cmp<mode>_internal1 for D64_D128): ... this.
17314 (ftruncdd2, ftrunctd2): Merge to ...
17315 (ftrunc<mode>2 for D64_D128): ... this.
17316 (fixdddi2, fixtddi2): Merge to ...
17317 (fix<mode>di2 for D64_D128): ... this.
17318
17319 2019-08-08 Jim Wilson <jimw@sifive.com>
17320
17321 PR target/91229
17322 * config/riscv/riscv.c (riscv_flatten_aggregate_field): New arg
17323 ignore_zero_width_bit_field_p. Skip zero size bitfields when true.
17324 Pass into recursive call.
17325 (riscv_flatten_aggregate_argument): New arg. Pass to
17326 riscv_flatten_aggregate_field.
17327 (riscv_pass_aggregate_in_fpr_pair_p): New local warned. Call
17328 riscv_flatten_aggregate_argument twice, with false and true as last
17329 arg. Process result twice. Compare results and warn if different.
17330 (riscv_pass_aggregate_in_fpr_and_gpr_p): Likewise.
17331
17332 2019-08-08 Martin Liska <mliska@suse.cz>
17333
17334 PR bootstrap/91352
17335 * gcc.c (driver::detect_jobserver): Use is_valid_fd.
17336 * lto-wrapper.c (jobserver_active_p): Likewise.
17337
17338 2019-08-08 Martin Liska <mliska@suse.cz>
17339
17340 * cgraphclones.c (set_new_clone_decl_and_node_flags): Drop
17341 IS_OPERATOR_NEW and IS_OPERATOR_DELETE.
17342 (create_version_clone_with_body): Likewise.
17343
17344 2019-08-08 Jakub Jelinek <jakub@redhat.com>
17345
17346 * gimplify.c (omp_add_variable): Use GOVD_PRIVATE | GOVD_EXPLICIT
17347 for VLA helper variables on target data even if not GOVD_FIRSTPRIVATE.
17348 (gimplify_scan_omp_clauses): For OMP_CLAUSE_USE_DEVICE_* use just
17349 GOVD_EXPLICIT flags.
17350 (gimplify_omp_workshare): For OMP_TARGET_DATA move all
17351 OMP_CLAUSE_USE_DEVICE_* clauses to the end of clauses chain.
17352 * omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_USE_DEVICE_*
17353 call install_var_field with mask 11 instead of 3.
17354 (lower_omp_target): For OMP_CLAUSE_USE_DEVICE_* use pass
17355 (splay_tree_key) &DECL_UID (var) to build_sender_ref instead of var.
17356
17357 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
17358
17359 * config/aarch64/constraints.md (Z): Handle floating-point zeros too.
17360 * config/aarch64/predicates.md (aarch64_reg_or_zero): Likewise.
17361
17362 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
17363
17364 * config/aarch64/aarch64-sve.md (vec_shl_insert_<mode>): Add
17365 MOVPRFX alternatives. Make the GPR alternatives more expensive
17366 than the FPR ones.
17367
17368 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
17369
17370 * config/aarch64/aarch64-sve.md (fold_extract_last_<mode>):
17371 Disparage the GPR alternative relative to the FPR one.
17372 Fix handling of 8-bit and 16-bit FPR values.
17373
17374 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
17375
17376 * config/aarch64/iterators.md (BITWISEV): Delete.
17377 (SVE_INT_REDUCTION, SVE_FP_REDUCTION): New int iterators.
17378 (optab): Handle UNSPEC_UMAXV, UNSPEC_UMINV, UNSPEC_SMAXV,
17379 UNSPEC_SMINV, UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV,
17380 UNSPEC_FMINNMV, UNSPEC_FMINV.
17381 (bit_reduc_op): Delete.
17382 (sve_int_op): New int attribute.
17383 (sve_fp_op): Handle UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV,
17384 UNSPEC_FMINNMV, UNSPEC_FMINV.
17385 * config/aarch64/aarch64-sve.md
17386 (reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>)
17387 (*reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>)
17388 (reduc_<BITWISEV:optab>_scal_<SVE_I:mode>)
17389 (*reduc_<BITWISEV:optab>_scal_<SVE_I:mode>): Merge into...
17390 (reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>)
17391 (*reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>): ...these
17392 new patterns.
17393 (reduc_plus_scal_<SVE_F:mode>, *reduc_plus_scal_<SVE_I:mode>)
17394 (reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>)
17395 (*reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>): Merge into...
17396 (reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>)
17397 (*reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>): ...these
17398 new patterns.
17399
17400 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
17401
17402 * config/aarch64/aarch64-sve.md (fma<mode>4, *fma<mode>4)
17403 (fnma<mode>4, *fnma<mode>4, fnms<mode>4, *fnms<mode>4)
17404 (fms<mode>4, *fms<mode>4): Replace with...
17405 (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4)
17406 (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): ...these new patterns.
17407 Use unspecs instead of rtx codes.
17408 (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_4)
17409 (*cond_<optab><mode>_any): Add the predicate to SVE_COND_FP_TERNARY.
17410
17411 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
17412
17413 * config/aarch64/iterators.md (SVE_COND_FP_MAXMIN_PUBLIC): New
17414 int iterator.
17415 (maxmin_uns_op): Handle UNSPEC_COND_FMAXNM and UNSPEC_COND_FMINNM.
17416 * config/aarch64/aarch64-sve.md
17417 (<FMAXMIN:su><FMAXMIN:maxmin><SVE_F:mode>3): Rename to...
17418 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): ...this and
17419 use a single unspec for the rhs.
17420 (*<su><maxmin><mode>3): Delete.
17421 (<maxmin_uns><SVE_F:mode>3): Use a single unspec for the rhs.
17422
17423 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
17424
17425 * config/aarch64/iterators.md (UNSPEC_COND_FABS, UNSPEC_COND_FNEG)
17426 (UNSPEC_COND_FRINTA, UNSPEC_COND_FRINTI, UNSPEC_COND_FRINTM)
17427 (UNSPEC_COND_FRINTN, UNSPEC_COND_FRINTP, UNSPEC_COND_FRINTX)
17428 (UNSPEC_COND_FRINTZ, UNSPEC_COND_FSQRT): New unspecs.
17429 (optab, sve_fp_op): Handle them.
17430 (SVE_FP_UNARY): Delete.
17431 (optab): Remove sqrt entry.
17432 (sve_fp_op): Remove neg, abs and sqrt entries.
17433 (SVE_COND_FP_UNARY): New int iterator.
17434 * config/aarch64/aarch64-sve.md (<frint_pattern><mode>2)
17435 (*<frint_pattern><mode>2): Delete.
17436 (<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with...
17437 (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this.
17438 (*<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with...
17439 (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this.
17440
17441 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
17442
17443 * config/aarch64/aarch64-sve.md (*pred_fold_left_plus_<mode>): Delete.
17444
17445 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
17446
17447 * config/aarch64/iterators.md (UNSPEC_COND_ADD): Rename to...
17448 (UNSPEC_COND_FADD): ...this.
17449 (UNSPEC_COND_SUB): Rename to...
17450 (UNSPEC_COND_FSUB): ...this.
17451 (UNSPEC_COND_MUL): Rename to...
17452 (UNSPEC_COND_FMUL): ...this.
17453 (UNSPEC_COND_DIV): Rename to...
17454 (UNSPEC_COND_FDIV): ...this.
17455 (UNSPEC_COND_MAX): Rename to...
17456 (UNSPEC_COND_FMAXNM): ...this.
17457 (UNSPEC_COND_MIN): Rename to...
17458 (UNSPEC_COND_FMINNM): ...this.
17459 (UNSPEC_COND_LT): Rename to...
17460 (UNSPEC_COND_FCMLT): ...this.
17461 (UNSPEC_COND_LE): Rename to...
17462 (UNSPEC_COND_FCMLE): ...this.
17463 (UNSPEC_COND_EQ): Rename to...
17464 (UNSPEC_COND_FCMEQ): ...this.
17465 (UNSPEC_COND_NE): Rename to...
17466 (UNSPEC_COND_FCMNE): ...this.
17467 (UNSPEC_COND_GE): Rename to...
17468 (UNSPEC_COND_FCMGE): ...this.
17469 (UNSPEC_COND_GT): Rename to...
17470 (UNSPEC_COND_FCMGT): ...this.
17471 (SVE_COND_FP_BINARY, SVE_COND_FP_CMP, optab, cmp_op, sve_fp_op)
17472 (sve_fp_op_rev): Update accordingly.
17473 * config/aarch64/aarch64.c (aarch64_unspec_cond_code): Likewise.
17474
17475 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
17476
17477 * config/aarch64/aarch64-sve.md: Reorganize contents and add
17478 banner comments.
17479 * config/aarch64/check-sve-md.awk: New file.
17480 * config/aarch64/t-aarch64 (s-check-sve-md): New rule.
17481 (insn-conditions.md): Depend on it.
17482
17483 2019-08-07 Uroš Bizjak <ubizjak@gmail.com>
17484
17485 PR target/91385
17486 * config/i386/sse.md (*negsi2_1_zext): Simplify insn pattern.
17487 (*negsi2_cmpz_zext): Ditto.
17488
17489 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
17490
17491 * config/aarch64/iterators.md (commutative): Remove.
17492
17493 2019-08-07 Richard Earnshaw <rearnsha@arm.com>
17494
17495 PR driver/91130
17496 * lto-wrapper.c (find_and_merge_options): Use CL_DRIVER when
17497 processing COLLECT_GCC_OPTIONS.
17498 (run_gcc): Likewise.
17499
17500 2019-08-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
17501
17502 PR tree-optimization/91109
17503 * lra-remat.c (update_scratch_ops): Remove assignment of the
17504 hard register.
17505
17506 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
17507
17508 * data-streamer.h (streamer_write_poly_uint64): Declare.
17509 (streamer_read_poly_uint64): Likewise.
17510 * data-streamer-in.c (streamer_read_poly_uint64): New function.
17511 * data-streamer-out.c (streamer_write_poly_uint64): Likewise.
17512 * ipa-predicate.h (condition::size): Turn into a poly_int64.
17513 (add_condition): Take a poly_int64 size.
17514 * ipa-predicate.c (add_condition): Likewise.
17515 * ipa-prop.h (ipa_load_from_parm_agg): Take a poly_int64 size pointer.
17516 * ipa-prop.c (ipa_load_from_parm_agg): Likewise.
17517 (ipcp_modif_dom_walker::before_dom_children): Update accordingly.
17518 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Handle
17519 condition::size as a poly_int64.
17520 (unmodified_parm_1): Take a poly_int64 size pointer.
17521 (unmodified_parm): Likewise.
17522 (unmodified_parm_or_parm_agg_item): Likewise.
17523 (set_cond_stmt_execution_predicate): Update accordingly.
17524 (set_switch_stmt_execution_predicate): Likewise.
17525 (will_be_nonconstant_expr_predicate): Likewise.
17526 (will_be_nonconstant_predicate): Likewise.
17527 (inline_read_section): Stream condition::size as a poly_int.
17528 (ipa_fn_summary_write): Likewise.
17529
17530 2019-08-07 Martin Liska <mliska@suse.cz>
17531
17532 * fold-const.c (twoval_comparison_p): Replace int
17533 with bool as a return type.
17534 (simple_operand_p): Likewise.
17535 (operand_equal_p): Replace int with bool as a return type.
17536 * fold-const.h (operand_equal_p): Likewise.
17537
17538 2019-08-07 Jakub Jelinek <jakub@redhat.com>
17539
17540 * tree-core.h (enum omp_clause_code): Adjust OMP_CLAUSE_USE_DEVICE_PTR
17541 OpenMP description. Add OMP_CLAUSE_USE_DEVICE_ADDR clause.
17542 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries
17543 for OMP_CLAUSE_USE_DEVICE_ADDR clause.
17544 (walk_tree_1): Handle OMP_CLAUSE_USE_DEVICE_ADDR.
17545 * tree-pretty-print.c (dump_omp_clause): Likewise.
17546 * tree-nested.c (convert_nonlocal_omp_clauses,
17547 convert_local_omp_clauses): Likewise.
17548 * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses):
17549 Likewise.
17550 * omp-low.c (scan_sharing_clauses, lower_omp_target): Likewise.
17551 Treat OMP_CLAUSE_USE_DEVICE_ADDR like OMP_CLAUSE_USE_DEVICE_PTR
17552 clause with array or reference to array types, no matter what type
17553 except for reference it has.
17554
17555 2019-08-07 Kewen Lin <linkw@gcc.gnu.org>
17556
17557 * config/rs6000/vector.md (vrotr<mode>3): New define_expand.
17558
17559 2019-08-07 Kito Cheng <kito.cheng@sifive.com>
17560
17561 * config/riscv/multilib-generator: (canonical_order): Add 'g'.
17562 (arch_canonicalize): Support rv32g and rv64g and fix error
17563 handling.
17564
17565 2019-08-06 Martin Liska <mliska@suse.cz>
17566
17567 * cgraph.c (cgraph_node::dump): Dump DECL_IS_OPERATOR_NEW_P
17568 and DECL_IS_OPERATOR_DELETE_P.
17569
17570 2019-08-06 Jakub Jelinek <jakub@redhat.com>
17571
17572 * tree.h (OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV): Rename to ...
17573 (OMP_CLAUSE_LASTPRIVATE_LOOP_IV): ... this. Adjust comment.
17574 * gimplify.c (gimple_add_tmp_var): In SIMD contexts, turn addressable
17575 new vars into GOVD_PRIVATE rather than GOVD_LOCAL.
17576 (gimplify_omp_for): Don't do C++ random access iterator clause
17577 adjustments on combined constructs from OMP_LOOP. For OMP_LOOP,
17578 don't predetermine the artificial iterator in case of C++ random
17579 access iterators as lastprivate, but private. For OMP_LOOP, force
17580 bind expr around simd body and force for_pre_body before the
17581 construct. Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV instead of
17582 OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV.
17583 (gimplify_omp_loop): Add firstprivate clauses on OMP_PARALLEL for
17584 diff var of C++ random access iterators. Handle
17585 OMP_CLAUSE_FIRSTPRIVATE. For OMP_CLAUSE_LASTPRIVATE_LOOP_IV, if
17586 not outermost also add OMP_CLAUSE_FIRSTPRIVATE, and in both cases
17587 clear OMP_CLAUSE_LASTPRIVATE_LOOP_IV on the lastprivate clause
17588 on the OMP_FOR and OMP_DISTRIBUTE constructs if any.
17589 * omp-low.c (lower_rec_input_clauses): For
17590 OMP_CLAUSE_LASTPRIVATE_LOOP_IV on simd copy construct the private
17591 variables instead of default constructing them.
17592 (lower_lastprivate_clauses): Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV
17593 instead of OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV and move the
17594 is_taskloop_ctx check from the assert to the guarding condition.
17595
17596 2019-08-06 Kito Cheng <kito.cheng@sifive.com>
17597
17598 * config/riscv/multilib-generator: (canonical_order): New.
17599 (arch_canonicalize): Dito.
17600 Apply arch_canonicalize for alts.
17601
17602 2019-08-05 Martin Sebor <msebor@redhat.com>
17603
17604 * doc/extend.texi (Common Variable Attributes): Document alias
17605 attribute.
17606
17607 2019-08-05 Marek Polacek <polacek@redhat.com>
17608
17609 PR c++/91338 - Implement P1161R3: Deprecate a[b,c].
17610 * doc/invoke.texi: Document -Wcomma-subscript.
17611
17612 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
17613
17614 * tree-core.h (tree_function_decl): Make function_code an
17615 independent field. Group the remaining bitfields into bytes
17616 and move decl_type so that it contines to be at a byte boundary.
17617 Leave 12 bits for future expansion.
17618
17619 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
17620
17621 * gimple-fold.c (gimple_fold_mask_load_store_mem_ref)
17622 (gimple_fold_mask_load, gimple_fold_mask_store): New functions.
17623 (gimple_fold_call): Use them to fold IFN_MASK_LOAD and
17624 IFN_MASK_STORE.
17625
17626 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
17627
17628 * gimple.h (gimple_move_vops): Declare.
17629 * gimple.c (gimple_move_vops): New function
17630 * gimple-fold.c (replace_call_with_call_and_fold)
17631 (gimple_fold_builtin_memory_op, gimple_fold_builtin_memset)
17632 (gimple_fold_builtin_stpcpy, fold_builtin_atomic_compare_exchange)
17633 (gimple_fold_call): Use it.
17634 * ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise.
17635 * tree-call-cdce.c (use_internal_fn): Likewise.
17636 * tree-if-conv.c (predicate_load_or_store): Likewise.
17637 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
17638 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
17639 * tree-ssa-propagate.c (finish_update_gimple_call): Likewise.
17640 (update_call_from_tree): Likewise.
17641 * tree-vect-stmts.c (vectorizable_load): Likewise.
17642 * tree-vectorizer.c (adjust_simduid_builtins): Likewise.
17643
17644 2019-08-05 Martin Liska <mliska@suse.cz>
17645
17646 PR c++/91334
17647 * tree-ssa-dce.c (propagate_necessity): Handle new operators
17648 with not arguments.
17649 (eliminate_unnecessary_stmts): Likewise.
17650
17651 2019-08-05 Richard Biener <rguenther@suse.de>
17652
17653 PR middle-end/91169
17654 * fold-const.c (get_array_ctor_element_at_index): Create
17655 offset_ints according to the sign of the index type and treat
17656 that as signed if it is obviously so.
17657
17658 2019-08-05 Jakub Jelinek <jakub@redhat.com>
17659
17660 PR target/91341
17661 * config/i386/avxintrin.h (_mm256_loadu2_m128, _mm256_storeu2_m128,
17662 _mm256_loadu2_m128d, _mm256_storeu2_m128d, _mm256_loadu2_m128i,
17663 _mm256_storeu2_m128i): New function.
17664
17665 2019-08-05 Kito Cheng <kito.cheng@sifive.com>
17666
17667 * config/riscv/riscv.c (riscv_promote_function_mode): New.
17668 (TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode.
17669
17670 2019-08-05 Alan Modra <amodra@gmail.com>
17671
17672 PR target/91349
17673 * config/rs6000/freebsd64.h (CPLUSPLUS_CPP_SPEC),
17674 (LINK_GCC_C_SEQUENCE_SPEC): Undef.
17675
17676 2019-08-04 Gerald Pfeifer <gerald@pfeifer.com>
17677
17678 * doc/install.texi (Prerequisites): Remove reference to Tcl 8.6
17679 bug that was fixed in Tcl 8.6.1.
17680
17681 2019-08-02 Michael Meissner <meissner@linux.ibm.com>
17682
17683 * config/rs6000/future.md: New file.
17684 * config/rs6000/rs6000.md: Include future.md.
17685 * config/rs6000/t-rs6000 (MD_INCLUDES): Add future.md.
17686
17687 2019-08-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
17688
17689 * function.c (assign_parm_adjust_stack_rtl): Revise STRICT_ALIGNMENT
17690 check to use targetm.slow_unaligned_access instead.
17691
17692 * function.c (assign_param_data_one): Remove unused data members.
17693
17694 2019-08-02 Steve Ellcey <sellcey@marvell.com>
17695
17696 * omp-simd-clone.c (simd_clone_adjust_return_type): Remove call to
17697 build_distinct_type_copy.
17698 (simd_clone_adjust_argument_types): Ditto.
17699 (simd_clone_adjust): Call build_distinct_type_copy here.
17700 (expand_simd_clones): Ditto.
17701
17702 2019-08-02 Uroš Bizjak <ubizjak@gmail.com>
17703
17704 PR target/91201
17705 * config/i386/sse.md (*vec_extractv16qi_zext): New insn pattern.
17706
17707 2019-08-02 Alexander Monakov <amonakov@ispras.ru>
17708
17709 * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Simplify casts
17710 from 'const void *'.
17711 (sort_locs_in_loop_postorder_cmp): Likewise.
17712
17713 2019-08-02 Eric Botcazou <ebotcazou@adacore.com>
17714
17715 * doc/invoke.texi (hot-bb-count-fraction): Rework description.
17716 (hot-bb-count-ws-permille): Likewise.
17717 (hot-bb-frequency-fraction): Likewise.
17718 (unlikely-bb-count-fraction): Likewise.
17719 * params.def (hot-bb-count-fraction): Rework description.
17720 (hot-bb-count-ws-permille): Likewise.
17721 (hot-bb-frequency-fraction): Likewise.
17722 (unlikely-bb-count-fraction): Likewise. Remove min and max values.
17723 * predict.c (get_hot_bb_threshold): Deal with 0 HOT_BB_COUNT_FRACTION.
17724
17725 2019-08-02 Uroš Bizjak <ubizjak@gmail.com>
17726
17727 PR target/91323
17728 * config/i386/i386-expand.c (ix86_unordered_fp_compare) <case LTGT>:
17729 Return false.
17730
17731 2019-08-02 Richard Biener <rguenther@suse.de>
17732
17733 * vec.h (vec::sort): Add gcc_qsort_r support.
17734 (vec::bsearch): Add an overload with gcc_qsort_r style callbacks.
17735 * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Adjust
17736 to gcc_qsort_r style callback.
17737 (sort_locs_in_loop_postorder_cmp): Likewise.
17738 (analyze_memory_references): Use gcc_sort_r interfaces.
17739 (find_ref_loc_in_loop_cmp): Use new bsearch overload.
17740
17741 2019-08-02 Martin Liska <mliska@suse.cz>
17742
17743 PR lto/91313
17744 * gcc.c (driver::maybe_run_linker): Call detect_jobserver
17745 to detect working job server.
17746 (driver::detect_jobserver): Test whether jobserver
17747 is active from GCC driver. That will prevent situation where
17748 GCC is invoked from a LD plugin and the linker already uses
17749 file descriptors suggested by make. That leads to a wrong
17750 detection.
17751 * gcc.h (driver): Add detect_jobserver.
17752 * lto-wrapper.c (jobserver_active_p): Simplify sscanf by
17753 not scanning for --jobserver-auth prefix.
17754
17755 2019-08-02 Jakub Jelinek <jakub@redhat.com>
17756
17757 PR tree-optimization/91201
17758 * config/i386/i386-expand.c (ix86_expand_vector_extract): For elt == 0
17759 V16QImode extraction without sse4.1 try to use V4SImode lowpart
17760 extraction.
17761
17762 2019-08-01 Martin Sebor <msebor@redhat.com>
17763
17764 PR c++/90947
17765 * tree.c (type_initializer_zero_p): Define.
17766 * tree.h (type_initializer_zero_p): New function.
17767
17768 2019-08-01 Eric Botcazou <ebotcazou@adacore.com>
17769
17770 * cfgrtl.c (relink_block_chain): Add line returns in dump file.
17771
17772 2019-08-01 Eric Botcazou <ebotcazou@adacore.com>
17773
17774 * cgraph.h (cgraph_edge::maybe_hot_p): Tweak comment.
17775 * cgraph.c (cgraph_edge::maybe_hot_p): Likewise. Remove useless test.
17776 * predict.c (maybe_hot_count_p): Likewise.
17777 (maybe_hot_bb_p): Tweak comment.
17778 (maybe_hot_edge_p): Likewise.
17779 (probably_never_executed): Likewise. Minor tweak.
17780 (probably_never_executed_bb_p): Likewise.
17781 (unlikely_executed_edge_p): Likewise.
17782 (probably_never_executed_edge_p): Likewise.
17783 (optimize_function_for_size_p): Likewise.
17784 (optimize_function_for_speed_p): Likewise.
17785 (function_optimization_type): Likewise.
17786 (optimize_bb_for_size_p): Likewise.
17787 (optimize_bb_for_speed_p): Likewise.
17788 (bb_optimization_type): Likewise.
17789 (optimize_edge_for_size_p): Likewise.
17790 (optimize_edge_for_speed_p): Likewise.
17791 (optimize_insn_for_size_p): Likewise.
17792 (optimize_insn_for_speed_p): Likewise.
17793 (optimize_loop_for_size_p): Likewise.
17794 (optimize_loop_for_speed_p): Likewise.
17795 (optimize_loop_nest_for_speed_p): Likewise.
17796 (optimize_loop_nest_for_size_p): Likewise.
17797 (predictable_edge_p): Likewise.
17798 (handle_missing_profiles): Minor tweak.
17799
17800 2019-08-01 Michael Meissner <meissner@linux.ibm.com>
17801
17802 * config/rs6000/predicates.md (pcrel_external_address): Update
17803 comment.
17804
17805 2019-08-01 Uroš Bizjak <ubizjak@gmail.com>
17806
17807 PR target/85693
17808 * config/i386/mmx.md (usadv8qi): New expander.
17809
17810 2019-08-01 Matthew Beliveau <mbelivea@redhat.com>
17811
17812 PR c++/90590
17813 * c-warn.c (c_do_switch_warnings): Suppress warning for enumerators
17814 with reserved names that are in a system header.
17815
17816 2019-08-01 Uroš Bizjak <ubizjak@gmail.com>
17817
17818 * config/i386/mmx.md (vec_extractv2si_0): Add (r,x) alternative.
17819 (*vec_extractv2si_0_zext_sse4): New insn pattern.
17820 (*vec_extractv2si_0_zext): Ditto.
17821 (*vec_extractv2si_1): Add (rm,x) alternative.
17822 (*vec_extractv2si_1_zext): New insn pattern.
17823 (*vec_extractv2si_zext_mem): Add "TARGET_MMX || TARGET_MMX_WITH_SSE"
17824 insn constraint.
17825
17826 2019-08-01 Richard Biener <rguenther@suse.de>
17827
17828 * domwalk.c (bb_postorder): Remove static variable.
17829 (cmp_bb_postorder): Adjust.
17830 (sort_bbs_postorder): Adjust and use gcc_sort_r.
17831 (dom_walker::walk): Adjust.
17832
17833 2019-08-01 Alexander Monakov <amonakov@ispras.ru>
17834
17835 * sort.cc (sort_r_ctx): New struct.
17836 (reorder23): Make templated on context type.
17837 (reorder45): Ditto.
17838 (cmp1): Ditto. Adjust signature.
17839 (netsort): Ditto.
17840 (mergesort): Ditto.
17841 [CHECKING_P] (cmp2to3): New static function. Use it...
17842 (gcc_qsort) [CHECKING_P]: ...here.
17843 (gcc_sort_r): New function.
17844 * system.h (sort_r_cmp_fn): New function typedef.
17845 (qsort_chk): Adjust signature.
17846 (gcc_sort_r): Declare.
17847 * vec.c (qsort_chk_error): Adjust.
17848 (qsort_chk): Adjust.
17849
17850 2019-08-01 Richard Biener <rguenther@suse.de>
17851
17852 * tree-ssa-pre.c (has_abnormal_preds): Remove global var.
17853 (compute_antic): Localize it here.
17854
17855 2019-07-31 Maxim Blinov <maxim.blinov@embecosm.com>
17856
17857 * common/config/riscv/riscv-common.c: Check -march string ends
17858 with null.
17859
17860 2019-07-31 Alexander Monakov <amonakov@ispras.ru>
17861
17862 * ipa-devirt.c (type_warning_cmp): Make static.
17863 (decl_warning_cmp): Ditto.
17864
17865 2019-07-31 Peter Bergner <bergner@linux.ibm.com>
17866
17867 PR target/91050
17868 * config/rs6000/rs6000.opt (mdejagnu-cpu=): Delete option.
17869 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
17870 use of deleted rs6000_dejagnu_cpu_index variable.
17871 * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Define.
17872 (SUBTARGET_DRIVER_SELF_SPECS): Likewise.
17873 * config/darwin.h (DRIVER_SELF_SPECS): Rename from this ...
17874 (SUBTARGET_DRIVER_SELF_SPECS): ...to this.
17875 * config/i386/i386.h (DRIVER_SELF_SPECS): Define.
17876 (SUBTARGET_DRIVER_SELF_SPECS): Likewise.
17877
17878 2019-07-31 Richard Biener <rguenther@suse.de>
17879
17880 PR tree-optimization/91280
17881 * tree-ssa-structalias.c (get_constraint_for_component_ref):
17882 Decompose MEM_REF manually for offset handling.
17883
17884 2019-07-31 Richard Biener <rguenther@suse.de>
17885
17886 PR tree-optimization/91293
17887 * tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands
17888 of reduction stmts.
17889
17890 2019-07-31 Matt Thomas <matt@3am-software.com>
17891 Nick Hudson <nick@nthcliff.demon.co.uk>
17892 Matthew Green <mrg@eterna.com.au>
17893 Maya Rashish <coypu@sdf.org>
17894
17895 * config.gcc (hppa*-*-netbsd*): New target.
17896 * config/pa/pa-netbsd.h: New file.
17897 * config/pa/pa32-netbsd.h: New file.
17898
17899 2019-07-31 Jakub Jelinek <jakub@redhat.com>
17900
17901 PR tree-optimization/91201
17902 * config/i386/mmx.md (reduc_plus_scal_v8qi): New expander.
17903
17904 2019-07-31 Andrew Stubbs <ams@codesourcery.com>
17905
17906 * config/gcn/gcn-valu.md
17907 (scatter<mode>_insn_1offset<exec_scatter>): Remove s_waitcnt.
17908 (scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise.
17909 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
17910 * config/gcn/gcn.c (gcn_md_reorg): Add delayeduse and reads to
17911 struct ilist. Add nops for delayeduse insns.
17912 * config/gcn/gcn.md (delayeduse): New attribute.
17913 (*movbi): Remove s_waitcnt from stores.
17914 (*mov<mode>_insn): Likewise.
17915 (*movti_insn): Likewise. Add delayeduse attribute.
17916 (sync_compare_and_swap<mode>_insn): Add delayeduse attribute.
17917 (atomic_store<mode>): Remove or adjust s_waitcnt.
17918
17919 2019-07-31 Richard Biener <rguenther@suse.de>
17920
17921 * vr-values.h (vr_values::swap_vr_value): New.
17922 (vr_values::free_value_range): likewise.
17923 * vr-values.c (vr_values::swap_vr_value): Implement.
17924 * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::pop_value_range):
17925 Do not return a range or take a var.
17926 (evrp_range_analyzer::stack): Change back to recording a non-const
17927 value_range *.
17928 * gimple-ssa-evrp-analyze.c
17929 (evrp_range_analyzer::record_ranges_from_stmt): Free unused
17930 value-range.
17931 (evrp_range_analyzer::pop_to_marker): Adjust.
17932 (evrp_range_analyzer::push_value_range): Use new swap_vr_value.
17933 (evrp_range_analyzer::pop_value_range): Likewise. Free the
17934 no longer needed value-range.
17935
17936 2019-07-31 Martin Liska <mliska@suse.cz>
17937
17938 * tree-ssa-dce.c (propagate_necessity): Delete operator can
17939 have size and (or) alignment as 2nd and later arguments.
17940 Mark all of them as necessary.
17941
17942 2019-07-31 Richard Biener <rguenther@suse.de>
17943
17944 PR tree-optimization/91178
17945 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
17946 Use tail-recursion.
17947
17948 2019-07-31 Jakub Jelinek <jakub@redhat.com>
17949
17950 PR tree-optimization/91201
17951 * config/i386/sse.md (reduc_plus_scal_v16qi): New expander.
17952 (REDUC_PLUS_MODE): Add V32QImode for TARGET_AVX and V64QImode for
17953 TARGET_AVX512F.
17954 (reduc_plus_scal_<mode>): Improve formatting by introducing
17955 a temporary.
17956
17957 2019-07-31 Sudakshina Das <sudi.das@arm.com>
17958
17959 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): Add
17960 AARCH64_TME_BUILTIN_TSTART, AARCH64_TME_BUILTIN_TCOMMIT,
17961 AARCH64_TME_BUILTIN_TTEST and AARCH64_TME_BUILTIN_TCANCEL.
17962 (aarch64_init_tme_builtins): New.
17963 (aarch64_init_builtins): Call aarch64_init_tme_builtins.
17964 (aarch64_expand_builtin_tme): New.
17965 (aarch64_expand_builtin): Handle TME builtins.
17966 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
17967 __ARM_FEATURE_TME when enabled.
17968 * config/aarch64/aarch64-option-extensions.def: Add "tme".
17969 * config/aarch64/aarch64.h (AARCH64_FL_TME, AARCH64_ISA_TME): New.
17970 (TARGET_TME): New.
17971 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_TTEST.
17972 (define_c_enum "unspecv"): Add UNSPECV_TSTART, UNSPECV_TCOMMIT and
17973 UNSPECV_TCANCEL.
17974 (tstart, ttest, tcommit, tcancel): New instructions.
17975 * config/aarch64/arm_acle.h (__tstart, __tcommit): New.
17976 (__tcancel, __ttest): New.
17977 (_TMFAILURE_REASON, _TMFAILURE_RTRY, _TMFAILURE_CNCL): New macro.
17978 (_TMFAILURE_MEM, _TMFAILURE_IMP, _TMFAILURE_ERR): Likewise.
17979 (_TMFAILURE_SIZE, _TMFAILURE_NEST, _TMFAILURE_DBG): Likewise.
17980 (_TMFAILURE_INT, _TMFAILURE_TRIVIAL): Likewise.
17981 * config/arm/types.md: Add new tme type attr.
17982 * doc/invoke.texi: Document "tme".
17983
17984 2019-07-31 Joel Hutton <Joel.Hutton@arm.com>
17985
17986 * config/arm/arm_cmse.h (cmse_nonsecure_caller): Add
17987 warn_unused_result attribute.
17988 (cmse_check_address_range): Add warn_unused_result attribute.
17989
17990 2019-07-31 Richard Biener <rguenther@suse.de>
17991
17992 PR tree-optimization/91257
17993 * tree-vrp.c (union_ranges): Unify equality and less tests
17994 by using compare_values. Re-order cheap tests first.
17995
17996 2019-07-31 Jakub Jelinek <jakub@redhat.com>
17997
17998 PR middle-end/91301
17999 * gimplify.c (gimplify_omp_for): If for class iterator on
18000 distribute parallel for there is no data sharing clause
18001 on inner_for_stmt, look for private clause on combined
18002 parallel too and if found, move it to inner_for_stmt.
18003
18004 2019-07-31 Richard Sandiford <richard.sandiford@arm.com>
18005
18006 * lra-int.h (lra_operand_data): Remove early_clobber field.
18007 (lra_insn_reg): Likewise.
18008 * lra.c (debug_operand_data): Update accordingly.
18009 (setup_operand_alternative): Likewise.
18010 (new_insn_reg): Likewise. Remove early_clobber parameter.
18011 (collect_non_operand_hard_regs): Update call accordingly.
18012 Don't assign to lra_insn_reg::early_clobber.
18013 (add_regs_to_insn_regno_info): Remove early_clobber parameter
18014 and update calls to new_insn_reg.
18015 (lra_update_insn_regno_info): Update calls accordingly.
18016 * lra-constraints.c (update_and_check_small_class_inputs): Take the
18017 alternative number as a parameter and test whether the operand
18018 is earlyclobbered in that particular alternative.
18019 (process_alt_operands): Update call accordingly. Use per-alternative
18020 checks for earyclobber here too.
18021 * lra-lives.c (reg_early_clobber_p): Check early_clobber_alts
18022 against zero for IRA_UNKNOWN_ALT.
18023
18024 2019-07-30 Uroš Bizjak <ubizjak@gmail.com>
18025
18026 * config/alpha/alpha.c (alpha_option_override): Quote a C type.
18027
18028 2019-07-30 Wilco Dijkstra <wdijkstr@arm.com>
18029
18030 * config/arm/thumb2.md (thumb2_movsi_insn): Adjust literal offset.
18031 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
18032
18033 2019-07-30 Martin Liska <mliska@suse.cz>
18034
18035 PR ipa/89330
18036 * cgraph.c (cgraph_edge::make_direct): Use
18037 edge->indirect_unknown_callee as edge->resolve_speculation can
18038 deallocate edge which is this pointer.
18039
18040 2019-07-30 Richard Biener <rguenther@suse.de>
18041
18042 PR tree-optimization/91257
18043 * bitmap.c (bitmap_ior_and_compl_into): Open-code.
18044
18045 2019-07-30 Martin Liska <mliska@suse.cz>
18046
18047 * doc/invoke.texi: Document new behavior.
18048 * lto-wrapper.c (cpuset_popcount): New function
18049 is a copy of libgomp/config/linux/proc.c.
18050 (init_num_threads): Likewise.
18051 (run_gcc): Automatically detect core count for -flto.
18052 (jobserver_active_p): New function.
18053
18054 2019-07-30 Richard Biener <rguenther@suse.de>
18055
18056 PR tree-optimization/91257
18057 * bitmap.h (bitmap_ior_into_and_free): Declare.
18058 * bitmap.c (bitmap_list_unlink_element): Add defaulted param
18059 whether to add the unliked element to the freelist.
18060 (bitmap_list_insert_element_after): Add defaulted param for
18061 an already allocated element.
18062 (bitmap_ior_into_and_free): New function.
18063 * tree-ssa-structalias.c (condense_visit): Reduce the
18064 ponts-to and edge bitmaps of the SCC members in a
18065 logarithmic fashion rather than all to one.
18066
18067 2019-07-30 Richard Sandiford <richard.sandiford@arm.com>
18068
18069 * tree-ssa-math-opts.c (convert_mult_to_fma): Add a mul_cond
18070 parameter. When nonnull, make sure that the addition or subtraction
18071 has the same condition.
18072 (math_opts_dom_walker::after_dom_children): Try convert_mult_to_fma
18073 for CFN_COND_MUL too.
18074
18075 2019-07-30 Richard Biener <rguenther@suse.de>
18076
18077 PR tree-optimization/91291
18078 * tree-ssa-sccvn.c (rpo_elim::eliminate_push_avail): Ignore
18079 constant values.
18080
18081 2019-07-30 Jakub Jelinek <jakub@redhat.com>
18082
18083 PR middle-end/91216
18084 * omp-low.c (global_nonaddressable_vars): New variable.
18085 (use_pointer_for_field): For global decls, if they are non-addressable,
18086 remember it in the global_nonaddressable_vars bitmap, if they are
18087 addressable and in the global_nonaddressable_vars bitmap, ignore their
18088 TREE_ADDRESSABLE bit.
18089 (omp_copy_decl_2): Clear TREE_ADDRESSABLE also on private copies of
18090 vars in global_nonaddressable_vars bitmap.
18091 (execute_lower_omp): Free global_nonaddressable_vars bitmap.
18092
18093 PR target/91150
18094 * config/i386/i386-expand.c (expand_vec_perm_blend): Change mask type
18095 from unsigned to unsigned HOST_WIDE_INT. For E_V64QImode cast
18096 comparison to unsigned HOST_WIDE_INT before shifting it left.
18097
18098 2019-07-30 Uroš Bizjak <ubizjak@gmail.com>
18099
18100 * config/i386/i386.md (movstrict<mode>): Use register_operand
18101 predicate for operand 0. Add expander condition. Assert that
18102 operand 0 is a SUBREG RTX.
18103 (*movstrict<mode>_1): Use register_operand predicate for operand 0.
18104 Update operand constraints and insn condition.
18105 (zero_extend<mode>si2_and): Do not call gen_movstrict<mode>.
18106 (zero_extendqihi2_and): Do not call gen_movstrictqi.
18107 (*setcc_qi_slp): Use register_operand predicate for operand 0.
18108 Update operand 0 constraints.
18109 (setcc_qi_slp splitters): Use register_operand predicate for operand 0.
18110
18111 2019-07-29 Jozef Lawrynowicz <jozef.l@mittosystems.com>
18112
18113 * config/msp430/msp430.h (DRIVER_SELF_SPECS): Define and emit errors
18114 when -m{code,data}-region are used without -mlarge.
18115 * config/msp430/msp430.c (msp430_option_override): Error when a
18116 non-default code or data region is used without -mlarge.
18117 (msp430_section_attr): Emit a warning and do not add upper/lower/either
18118 attributes when they are used without -mlarge.
18119
18120 2019-07-29 Jozef Lawrynowicz <jozef.l@mittosystems.com>
18121
18122 PR target/70320
18123 * config/msp430/msp430.h: Define ADDITIONAL_REGISTER_NAMES.
18124
18125 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
18126
18127 PR middle-end/91242
18128 * wide-int.h (generic_wide_int::sext_elt): New function.
18129 * inchash.h (hash::add_wide_int): Use it instead of elt.
18130
18131 2019-07-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18132
18133 * config/arm/arm-builtins.c (acle_builtin_data): Expand VAR1 to
18134 CODE_FOR_arm_##.
18135 * config/arm/arm.md (<crc_variant>): Rename to...
18136 (arm_<crc_variant>): ... This.
18137 (<cdp>): Rename to...
18138 (arm_<cdp>): ... This.
18139 (<ldc>): Rename to...
18140 (arm_<ldc>): ... This.
18141 (<stc>): Rename to...
18142 (arm_<stc>): ... This.
18143 (<mcr>): Rename to...
18144 (arm_<mcr>): ... This.
18145 (<mrc>): Rename to...
18146 (arm_<mrc>): ... This.
18147 (<mcrr>): Rename to...
18148 (arm_<mcrr>): ... This.
18149 (<mrrc>): Rename to...
18150 (arm_<mrrc>): ... This.
18151
18152 2019-07-29 Richard Biener <rguenther@suse.de>
18153
18154 PR tree-optimization/91257
18155 * tree-ssa-sccvn.h (struct vn_avail): New.
18156 (struct vn_ssa_aux): Add avail member.
18157 * tree-ssa-sccvn.c (class rpo_elim): Remove m_rpo_avail
18158 member, add m_avail_freelist one.
18159 (rpo_elim::~rpo_elim): Remove.
18160 (rpo_elim::eliminate_avail): Adjust to new avail tracking
18161 data structure.
18162 (rpo_elim::eliminate_push_avail): Likewise.
18163 (do_unwind): Likewise.
18164 (do_rpo_vn): Likewise.
18165
18166 2019-07-29 Richard Biener <rguenther@suse.de>
18167
18168 PR tree-optimization/91257
18169 * tree-vrp.c (operand_less_p): Avoid dispatching to fold for
18170 most cases, instead call compare_values which handles the
18171 symbolic ranges we handle specially.
18172 (compare_values_warnv): Do not call operand_less_p but open-code
18173 the effective fold calls. Avoid converting so much.
18174
18175 2019-07-29 Martin Liska <mliska@suse.cz>
18176
18177 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not
18178 remove LHS of operator new call. It's handled latter.
18179
18180 2019-07-29 Richard Biener <rguenther@suse.de>
18181
18182 PR tree-optimization/91267
18183 * vr-values.c (vr_values::update_value_range): Add early return
18184 for effectively VARYING lattice entry.
18185
18186 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
18187
18188 PR debug/86638
18189 * tree-ssa-dce.c (keep_all_vdefs_p): New function.
18190 (mark_stmt_if_obviously_necessary): Mark all stmts with vdefs as
18191 necessary if keep_all_vdefs_p is true.
18192 (mark_aliased_reaching_defs_necessary): Add a gcc_checking_assert
18193 that keep_all_vdefs_p is false.
18194 (mark_all_reaching_defs_necessary): Likewise.
18195 (propagate_necessity): Skip the vuse scan if keep_all_vdefs_p is true.
18196
18197 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
18198
18199 * common.opt (Og): Change the initial value of flag_dse to 0.
18200 * opts.c (default_options_table): Move OPT_ftree_dse from
18201 OPT_LEVELS_1_PLUS to OPT_LEVELS_1_PLUS_NOT_DEBUG. Also add
18202 OPT_fdse to OPT_LEVELS_1_PLUS_NOT_DEBUG. Put the OPT_ftree_pta
18203 entry before the OPT_ftree_sra entry.
18204 * doc/invoke.texi (Og): Add -fdse and -ftree-dse to the list
18205 of flags disabled by Og.
18206
18207 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
18208
18209 * tree-cfg.c (execute_fixup_cfg): Don't delete stores to write-only
18210 variables for -Og.
18211
18212 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
18213
18214 * doc/sourcebuild.texi (check-function-bodies): Document.
18215
18216 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
18217
18218 * simplify-rtx.c (simplify_const_unary_operation): Fold a
18219 VEC_DUPLICATE of a fixed-length vector even if the result
18220 is variable-length. Likewise fold a duplicate of a
18221 variable-length vector if the variable-length vector is
18222 itself a duplicate of a fixed-length sequence.
18223 (test_vector_ops_duplicate): Test more cases.
18224
18225 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
18226
18227 * vector-builder.h (vector_builder): Add a shape template parameter.
18228 (vector_builder::new_unary_operation): New function, generalizing
18229 the old tree_vector_builder function.
18230 (vector_builder::new_binary_operation): Likewise.
18231 (vector_builder::binary_encoded_nelts): Likewise.
18232 * int-vector-builder.h (int_vector_builder): Update template
18233 parameters to vector_builder.
18234 (int_vector_builder::shape_nelts): New function.
18235 * rtx-vector-builder.h (rtx_vector_builder): Update template
18236 parameters to vector_builder.
18237 (rtx_vector_builder::shape_nelts): New function.
18238 (rtx_vector_builder::nelts_of): Likewise.
18239 (rtx_vector_builder::npatterns_of): Likewise.
18240 (rtx_vector_builder::nelts_per_pattern_of): Likewise.
18241 * tree-vector-builder.h (tree_vector_builder): Update template
18242 parameters to vector_builder.
18243 (tree_vector_builder::shape_nelts): New function.
18244 (tree_vector_builder::nelts_of): Likewise.
18245 (tree_vector_builder::npatterns_of): Likewise.
18246 (tree_vector_builder::nelts_per_pattern_of): Likewise.
18247 * tree-vector-builder.c (tree_vector_builder::new_unary_operation)
18248 (tree_vector_builder::new_binary_operation): Delete.
18249 (tree_vector_builder::binary_encoded_nelts): Likewise.
18250 * simplify-rtx.c: Include rtx-vector-builder.h.
18251 (distributes_over_addition_p): New function.
18252 (simplify_const_unary_operation)
18253 (simplify_const_binary_operation): Generalize handling of vector
18254 constants to include variable-length vectors.
18255 (test_vector_ops_series): Add more tests.
18256
18257 2019-07-28 Jan Hubicka <hubicka@ucw.cz>
18258
18259 PR lto/91222
18260 * ipa-devirt.c (warn_types_mismatch): Compare indentifiers
18261 than INDENTIFIER_POINTER.
18262
18263 2019-07-28 Martin Liska <mliska@suse.cz>
18264
18265 PR ipa/89330
18266 * cgraph.c (symbol_table::create_edge): Always allocate
18267 a cgraph_edge.
18268 (symbol_table::free_edge): Store summary_id to
18269 edge_released_summary_ids if != -1;
18270 * cgraph.h (NEXT_FREE_NODE): Remove.
18271 (SET_NEXT_FREE_NODE): Likewise.
18272 (NEXT_FREE_EDGE): Likewise.
18273 (symbol_table::release_symbol): Store summary_id to
18274 cgraph_released_summary_ids if != -1;
18275 (symbol_table::allocate_cgraph_symbol): Always allocate
18276 a cgraph_node.
18277
18278 2019-07-28 Alan Modra <amodra@gmail.com>
18279
18280 * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
18281 gen_sibcall.
18282
18283 2019-07-28 Alan Modra <amodra@gmail.com>
18284
18285 PR target/91135
18286 * config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Don't
18287 define.
18288 * config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Invoke
18289 GNU_USER_TARGET_OS_CPP_BUILTINS for aixdesc abi.
18290 (GNU_USER_TARGET_D_OS_VERSIONS): Don't define.
18291
18292 2019-07-28 Alan Modra <amodra@gmail.com>
18293
18294 PR target/91050
18295 * config/rs6000/sysv4.h (ASM_DEFAULT_SPEC): Modify if -m64.
18296 * config/rs6000/default64.h (ASM_DEFAULT_SPEC): Define.
18297 * config/rs6000/freebsd64.h (ASM_DEFAULT_SPEC): Don't define.
18298 * config/rs6000/linux64.h (ASM_DEFAULT_SPEC): Likewise.
18299 * config/rs6000/rtems.h (ASM_DEFAULT_SPEC): Likewise.
18300 * config/rs6000/rs6000.h (ASM_DEFAULT_EXTRA): Define and use
18301 in asm_default spec.
18302 * config/rs6000/eabialtivec.h (ASM_DEFAULT_EXTRA): Redefine.
18303 * config/rs6000/linuxaltivec.h (ASM_DEFAULT_EXTRA): Redefine.
18304
18305 2019-07-28 Gerald Pfeifer <gerald@pfeifer.com>
18306
18307 * doc/include/gpl_v3.texi (Copying): Use https for www.gnu.org.
18308
18309 2019-07-26 Tamar Christina <tamar.christina@arm.com>
18310
18311 PR target/89517
18312 * config.gcc: Relax parsing of AARCH64_OPT_EXTENSION.
18313 * config/aarch64/aarch64-option-extensions.def: Add new comments
18314 and restore easier to read options.
18315
18316 2019-07-26 Tamar Christina <tamar.christina@arm.com>
18317
18318 * convert.c (convert_to_real_1): Move part of conversion code...
18319 * match.pd: ...To here.
18320
18321 2019-07-26 Martin Jambor <mjambor@suse.cz>
18322
18323 PR ipa/89330
18324 * ipa-inline-transform.c (check_speculations_1): New function.
18325 (push_all_edges_in_set_to_vec): Likewise.
18326 (check_speculations): Use check_speculations_1, new parameter
18327 new_edges.
18328 (inline_call): Pass new_edges to check_speculations.
18329 * ipa-inline.c (add_new_edges_to_heap): Assert edge_callee is not
18330 NULL.
18331 (speculation_useful_p): Early return true if edge is inlined, remove
18332 later checks for inline_failed.
18333
18334 2019-07-25 Vladimir Makarov <vmakarov@redhat.com>
18335
18336 PR rtl-optimization/91223
18337 * lra-constraints.c (process_alt_operands): Fail for unsuccessful
18338 matching with INOUT operand.
18339
18340 2019-07-25 Eric Botcazou <ebotcazou@adacore.com>
18341
18342 * stmt.c (expand_case): Try to narrow the index type if it's larger
18343 than a word. Tidy up.
18344
18345 2019-07-25 Eric Botcazou <ebotcazou@adacore.com>
18346
18347 * cif-code.def (NEVER_CALL): New code.
18348 * ipa-inline.c (want_inline_small_function_p): Fix formatting issues.
18349 Set the failure to CIF_NEVER_CALL if the IPA count is zero.
18350
18351 2019-07-25 Wilco Dijkstra <wdijkstr@arm.com>
18352
18353 * config/arm/thumb2.md (thumb2_movsi_insn): Fix load/store low reg.
18354 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
18355
18356 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
18357
18358 * ipa-devirt.c (add_type_duplicate): Fix return value.
18359
18360 2019-07-25 Richard Biener <rguenther@suse.de>
18361
18362 * tree-vrp.c (extract_range_from_multiplicative_op): Add
18363 type parameter and use it instead of guessing expression
18364 type from the first operand.
18365 (extract_range_from_binary_expr): Pass expr_type down.
18366
18367 2019-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18368
18369 * config/arm/arm.md (SATrev): Change to code attribute.
18370 (*satsi_<SAT:code>): Adjust for the above.
18371 (*satsi_<SAT:code>_shift): Likewise.
18372
18373 2019-07-25 Richard Biener <rguenther@suse.de>
18374
18375 * gimple-loop-versioning.cc (loop_versioning::prune_loop_conditions):
18376 Make value_range * temporary const.
18377 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
18378 Likewise.
18379 (evrp_range_analyzer::record_ranges_from_): Likewise.
18380 (evrp_range_analyzer::pop_value_range): Return a const value_range *,
18381 deal with having recorded a const one.
18382 * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::get_value_range):
18383 Return a const value_range *.
18384 (evrp_range_analyzer::pop_value_range): Likewise.
18385 (evrp_range_analyzer::stack): Record const value_range *s.
18386 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
18387 Adjust.
18388 * gimple-ssa-sprintf.c (get_int_range): Likewise.
18389 (format_integer): Likewise.
18390 (sprintf_dom_walker::handle_gimple_call): Likewise.
18391 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Likewise.
18392 * tree-vrp.c (vrp_prop::set_def_to_varying): Add.
18393 (vrp_prop::get_value_range): Adjust.
18394 (vrp_prop::vrp_initialize): Use set_def_to_varying instead of
18395 modifying the lattice in-place.
18396 (vrp_prop::visit_stmt): Likewise.
18397 * vr-values.c (vr_values::get_lattice_entry): New private method.
18398 (vr_values::get_value_range): Wrap it and return a const
18399 value_range *.
18400 (vr_values::set_def_to_varying): New.
18401 (vr_values::set_defs_to_varying): Use it.
18402 (vr_values::update_value_range): Likewise.
18403 (vr_values::vrp_stmt_computes_nonzero): Adjust.
18404 (values::op_with_constant_singleton_va): Likewise.
18405 (vr_values::extract_range_for_var_from_co): Likewise.
18406 (vr_values::extract_range_from_ssa_name): Likewise.
18407 (vr_values::extract_range_from_cond_expr): Likewise.
18408 (vr_values::extract_range_basic): Likewise.
18409 (compare_ranges): Take const value_range *, adjust.
18410 (compare_range_with_value): Likewise.
18411 (vrp_valueize): Adjust.
18412 (vrp_valueize_1): Likewise.
18413 (vr_values::get_vr_for_comparison): Return a const value_range *.
18414 (vr_values::compare_name_with_value): Adjust.
18415 (vr_values::compare_names): Likewise.
18416 (vr_values::vrp_evaluate_conditional_warnv_with_ops_using_ranges):
18417 Likewise.
18418 (vr_values::vrp_evaluate_conditional): Likewise.
18419 (find_case_label_ranges): Take a const value_range *.
18420 (vr_values::vrp_visit_switch_stmt): Adjust.
18421 (vr_values::extract_range_from_phi_node): Likewise.
18422 (vr_values::simplify_div_or_mod_using_ran): Likewise.
18423 (vr_values::simplify_abs_using_ranges): Likewise.
18424 (test_for_singularity): Take a const value_range *.
18425 (range_fits_type_p): Likewise.
18426 (vr_values::simplify_cond_using_ranges_1): Adjust.
18427 (vr_values::simplify_cond_using_ranges_2): Likewise.
18428 (vr_values::simplify_switch_using_ranges): Likewise.
18429 (vr_values::simplify_float_conversion_usi): Likewise.
18430 (vr_values::two_valued_val_range_p): Likewise.
18431 * vr-values.h (vr_values::get_value_range): Return a const
18432 value_range *.
18433 (vr_values::set_def_to_varying): New.
18434 (vr_values::get_lattice_entry): New private method.
18435 (vr_values::get_vr_for_comparison): Return a const value_range *.
18436
18437 2019-07-25 Martin Liska <mliska@suse.cz>
18438 Dominik Infuhr <dominik.infuehr@theobroma-systems.com>
18439
18440 PR c++/23383
18441 * common.opt: Add -fallocation-dce
18442 * gimple.c (gimple_call_operator_delete_p): New.
18443 * gimple.h (gimple_call_operator_delete_p): Likewise.
18444 * tree-core.h (enum function_decl_type): Add OPERATOR_DELETE.
18445 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Handle
18446 DECL_IS_OPERATOR_DELETE_P.
18447 (mark_all_reaching_defs_necessary_1): Likewise.
18448 (propagate_necessity): Likewise.
18449 (eliminate_unnecessary_stmts): Handle
18450 gimple_call_operator_delete_p.
18451 * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
18452 Add packing of OPERATOR_DELETE.
18453 * tree-streamer-out.c (pack_ts_function_decl_value_fields):
18454 Similarly here.
18455 * tree.h (DECL_IS_OPERATOR_DELETE_P): New.
18456 (DECL_SET_IS_OPERATOR_DELETE): New.
18457 (DECL_IS_REPLACEABLE_OPERATOR_NEW_P): Likewise.
18458
18459 2019-07-25 Martin Liska <mliska@suse.cz>
18460
18461 * calls.c (maybe_warn_alloc_args_overflow): Use new macros
18462 (e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P).
18463 * coverage.c (coverage_begin_function): Likewise.
18464 * fold-const.c (tree_expr_nonzero_warnv_p): Likewise.
18465 * gimple.c (gimple_call_nonnull_result_p): Likewise.
18466 * ipa-icf.c (sem_item::compare_referenced_symbol_properties): Likewise.
18467 (sem_item::hash_referenced_symbol_properties): Likewise.
18468 * lto-streamer-out.c (hash_tree): Likewise.
18469 * predict.c (expr_expected_value_1): Likewise.
18470 * tree-inline.c (expand_call_inline): Likewise.
18471 * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise.
18472 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise.
18473 * tree-core.h (enum function_decl_type): New enum.
18474 (struct tree_function_decl): Remove operator_new_flag and lambda_function.
18475 * tree.h (FUNCTION_DECL_DECL_TYPE): New.
18476 (set_function_decl_type): Likewise.
18477 (DECL_IS_OPERATOR_NEW_P): New.
18478 (DECL_SET_IS_OPERATOR_NEW): Likewise.
18479 (DECL_LAMBDA_FUNCTION): Likewise.
18480 (DECL_LAMBDA_FUNCTION_P): Likewise.
18481 (DECL_IS_OPERATOR_NEW): Remove.
18482 (DECL_SET_LAMBDA_FUNCTION): Likewise.
18483
18484 2019-07-25 Xiong Hu Luo <luoxhu@linux.ibm.com>
18485
18486 * ipa-profile.c (get_most_common_single_value): Use
18487 get_nth_most_common_value.
18488 * profile.c (sort_hist_value): New function.
18489 (compute_value_histograms): Call sort_hist_value to sort the
18490 values after loading from disk.
18491 * value-prof.c (get_most_common_single_value): Rename to ...
18492 get_nth_most_common_value. Add input params n, return
18493 the n_th value and count.
18494 (gimple_divmod_fixed_value_transform): Use
18495 get_nth_most_common_value.
18496 (gimple_ic_transform): Likewise.
18497 (gimple_stringops_transform): Likewise.
18498 * value-prof.h (get_most_common_single_value): Add input params
18499 n, default to 0.
18500
18501 2019-07-25 Richard Biener <rguenther@suse.de>
18502
18503 PR tree-optimization/91236
18504 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
18505 size of CONSTRUCTOR write. Fix buffer size we pass to
18506 native_encode_expr.
18507
18508 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
18509
18510 * config.gcc (msp430*-*-*): Fix non-GNU style in r273774.
18511 * config/msp430/msp430.h (ENDFILE_SPEC): Fix non-GNU style in
18512 r273773.
18513
18514 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
18515
18516 * config.gcc (msp430*-*-*): Enable initfini_array by default unless
18517 explicitly disabled with --disable-initfini-array.
18518
18519 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
18520
18521 * config/msp430/msp430.h (ENDFILE_SPEC): Wrap uses of crtn*.o in
18522 if-exists.
18523
18524 2019-07-24 Martin Sebor <msebor@redhat.com>
18525
18526 PR tree-optimization/91183
18527 PR tree-optimization/86688
18528 * builtins.c (compute_objsize): Handle MEM_REF.
18529 * tree-ssa-strlen.c (class ssa_name_limit_t): New.
18530 (get_min_string_length): Remove.
18531 (count_nonzero_bytes): New function.
18532 (handle_char_store): Rename...
18533 (handle_store): to this. Handle multibyte stores via integer types.
18534 (strlen_check_and_optimize_stmt): Adjust conditional and the called
18535 function name.
18536
18537 2019-07-24 Martin Sebor <msebor@redhat.com>
18538
18539 PR driver/80545
18540 * diagnostic.c (diagnostic_classify_diagnostic): Use lang_mask.
18541 (diagnostic_report_diagnostic): Same.
18542 * diagnostic.h (diagnostic_context::option_enabled): Add an argument.
18543 (diagnostic_context::lang_mask): New data member.
18544 * ipa-pure-const.c (suggest_attribute): Use
18545 lang_hooks.option_lang_mask ().
18546 * opts-common.c (option_enabled): Handle new argument.
18547 (get_option_state): Pass an additional argument.
18548 * opts.c (print_filtered_help): Print supported languages for
18549 unsupported options. Adjust printing of current state.
18550 * opts.h (option_enabled): Add argument.
18551 * toplev.c (print_switch_values): Use lang_mask.
18552 (general_init): Set global_dc->lang_mask.
18553
18554 2019-07-24 Iain Sandoe <iain@sandoe.co.uk>
18555
18556 PR bootstrap/87030
18557 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749.
18558
18559 2019-07-24 Giuliano Belinassi <giuliano.belinassi@usp.br>
18560
18561 * cgraphunit.c (symbol_table::compile): Start and stop
18562 TV_CGRAPH_IPA_PASSES and TV_CGRAPH_FUNC_EXPANSION timers.
18563 * timevar.def (TV_CGRAPH_IPA_PASSES, TV_CGRAPH_FUNC_EXPANSION): New.
18564
18565 2019-07-24 Oliver Browne <oliverbrowne62@gmail.com>
18566
18567 * gimplify.c (flag_instrument_functions_exclude_p): Include
18568 namespace/class information in the printable name.
18569 * opts.c (add_comma_separated_to_vector): Add NUL terminator
18570 to tokens entered into the vector.
18571
18572 2019-07-24 Eric Botcazou <ebotcazou@adacore.com>
18573
18574 * tree-nested.c (build_simple_mem_ref_notrap): New function.
18575 (get_static_chain): Call it instead of build_simple_mem_ref.
18576 (get_frame_field): Likewise.
18577 (get_nonlocal_debug_decl): Likewise.
18578 (convert_nonlocal_reference_op): Likewise.
18579
18580 2019-07-24 Claudiu Zissulescu <claziss@synopsys.com>
18581
18582 * config/arc/arc-protos.h (arc_output_function_epilogue): Delete
18583 declaration.
18584 (arc_compute_frame_size): Millicode is disabled when compiling
18585 ISR.
18586 (arc_return_address_register): Likewise.
18587 (arc_compute_function_type): Likewise.
18588 (arc_compute_frame_size): Likewise.
18589 (secondary_reload_info): Likewise.
18590 (arc_get_unalign): Likewise.
18591 (arc_can_use_return_insn): Declare.
18592 * config/arc/arc.c (AUX_LP_START): Define
18593 (AUX_LP_END): Likewise.
18594 (arc_frame_info): Update gmask member to 64-bit datum.
18595 (GMASK_LEN): Update.
18596 (arc_compute_function_type): Make it static, move it forward.
18597 (arc_must_save_register): Update, consider the extra regs.
18598 (arc_compute_millicode_save_restore_regs): Update to use the 64
18599 bit gmask.
18600 (arc_compute_frame_size): Likewise.
18601 (arc_enter_leave_p): Likewise.
18602 (arc_save_callee_saves): Likewise.
18603 (arc_restore_callee_saves): Likewise.
18604 (arc_save_callee_enter): Likewise.
18605 (arc_restore_callee_leave): Likewise.
18606 (arc_save_callee_milli): Likewise.
18607 (arc_restore_callee_milli): Likewise.
18608 (arc_expand_prologue): Add new interrupt handling.
18609 (arc_return_address_register): Make it static, move it forward.
18610 (arc_expand_epilogue): Add new interrupt handling.
18611 (arc_get_unalign): Delete.
18612 (arc_epilogue_uses): Make sure we do not remove the extra
18613 saved/restored registers when interrupt.
18614 (arc_can_use_return_insn): New function.
18615 (push_reg): Likewise.
18616 (pop_reg): Likewise.
18617 (arc_save_callee_saves): Add ZOL and FPX aux registers saving
18618 procedures.
18619 (arc_restore_callee_saves): Likewise, but restoring.
18620 * config/arc/arc.md (VUNSPEC_ARC_ARC600_RTIE): Define.
18621 (R33_REG): Likewise.
18622 (R34_REG): Likewise.
18623 (R35_REG): Likewise.
18624 (R36_REG): Likewise.
18625 (R37_REG): Likewise.
18626 (R38_REG): Likewise.
18627 (R39_REG): Likewise.
18628 (R45_REG): Likewise.
18629 (R46_REG): Likewise.
18630 (R47_REG): Likewise.
18631 (R48_REG): Likewise.
18632 (R49_REG): Likewise.
18633 (R50_REG): Likewise.
18634 (R51_REG): Likewise.
18635 (R52_REG): Likewise.
18636 (R53_REG): Likewise.
18637 (R54_REG): Likewise.
18638 (R55_REG): Likewise.
18639 (R56_REG): Likewise.
18640 (R58_REG): Likewise.
18641 (type): Add rtie attribute.
18642 (in_call_delay_slot): Use RETURN_ADDR_REGNUM.
18643 (movsi_insn): Accept moves to lp_count.
18644 (rtie): Update pattern.
18645 (simple_return): Simplify it, don't use this pattern as a return
18646 from an interrupt.
18647 (arc600_rtie): New pattern.
18648 (p_return_i): Clean up.
18649 (return): Likewise.
18650 * config/arc/builtins.def (rtie): Only available for non ARC6xx
18651 family CPUs.
18652 * config/arc/predicates.md (move_src_operand): Consider lp_count
18653 as a register.
18654
18655 2019-07-24 Andreas Krebbel <krebbel@linux.ibm.com>
18656
18657 * config/s390/predicates.md (addv_const_operand): New predicate.
18658 * config/s390/s390-modes.def (CCO): New condition code mode.
18659 * config/s390/s390.c (s390_match_ccmode_set): Handle E_CCOmode.
18660 (s390_branch_condition_mask): Likewise.
18661 * config/s390/s390.md ("addv<mode>4", "subv<mode>4")
18662 ("mulv<mode>4"): New expanders.
18663 ("*addv<mode>3_ccoverflow", "*addv<mode>3_ccoverflow_const")
18664 ("*subv<mode>3_ccoverflow", "*mulv<mode>3_ccoverflow"): New
18665 pattern definitions.
18666
18667 2019-07-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
18668
18669 PR middle-end/91166
18670 * match.pd (vec_perm_expr(v, v, mask) -> v): New pattern.
18671 (define_predicates): Add entry for uniform_vector_p.
18672 (vec_same_elem_p): New match pattern.
18673
18674 2019-07-24 Iain Sandoe <iain@sandoe.co.uk>
18675
18676 PR bootstrap/87030
18677 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here...
18678 * config/i386/darwin32-biarch.h .. to here.
18679 * config/i386/darwin64-biarch.h: Adjust comments.
18680 * config/rs6000/darwin32-biarch.h: Likewise.
18681 * config/rs6000/darwin64-biarch.h: Likewise.
18682 * config.gcc: Missed commit from r273746
18683 (*-*-darwin*): Don't include CPU t-darwin here.
18684 (i[34567]86-*-darwin*): Adjust to use biarch files. Produce
18685 an error message if i686-darwin configuration is attempted for
18686 Darwin >= 18.
18687
18688 2019-07-23 Iain Sandoe <iain@sandoe.co.uk>
18689
18690 PR bootstrap/87030
18691 * config.gcc (*-*-darwin*): Don't include CPU t-darwin here.
18692 (i[34567]86-*-darwin*): Adjust to use biarch files. Produce
18693 an error message if i686-darwin configuration is attempted for
18694 Darwin >= 18.
18695 (x86_64-*-darwin*): Switch to single multilib for Darwin >= 18.
18696 (powerpc-*-darwin*): Use biarch files where needed.
18697 (powerpc64-*-darwin*): Likewise.
18698 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file.
18699 (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
18700 arch case.
18701 * config/i386/darwin32-biarch.h: New.
18702 * config/i386/darwin64.h: Rename.
18703 * config/i386/darwin64-biarch.h: To this.
18704 * config/i386/t-darwin: Rename.
18705 * config/i386/t-darwin32-biarch: To this.
18706 * config/i386/t-darwin64: Rename.
18707 * config/i386/t-darwin64-biarch: To this.
18708 * config/rs6000/darwin32-biarch.h: New.
18709 * config/rs6000/darwin64.h: Rename.
18710 * config/rs6000/darwin64-biarch.h: To this.
18711 (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
18712 arch case.
18713 * config/rs6000/t-darwin8: Rename.
18714 * config/rs6000/t-darwin32-biarch: To this.
18715 * config/rs6000/t-darwin64 Rename.
18716 * config/rs6000/t-darwin64-biarch: To this.
18717
18718 2019-07-23 Martin Sebor <msebor@redhat.com>
18719
18720 * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Revert r273311.
18721
18722 2019-07-23 Vladislav Ivanishin <vlad@ispras.ru>
18723
18724 * gdbinit.in (reload-gdbhooks): New command with an attached doc string.
18725 (rh): New alias for it.
18726
18727 2019-07-23 Vladislav Ivanishin <vlad@ispras.ru>
18728
18729 * gdbhooks.py: Pass replace=True to
18730 gdb.printing.register_pretty_printer.
18731
18732 2019-07-23 Richard Biener <rguenther@suse.de>
18733
18734 PR debug/91231
18735 * lto-streamer-in.c (input_function): Drop inline-entry markers
18736 that ended up with an unknown location block.
18737
18738 2019-07-23 Richard Biener <rguenther@suse.de>
18739
18740 PR tree-optimization/83518
18741 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle aggregate
18742 init from a constant even when partial defs are already recorded.
18743
18744 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
18745
18746 * i386-common.c: Use PROCESSOR_ZNVER2 scheduler for znver2.
18747 * config/i386/znver1.md: Enable patterns for znver2 and add store
18748 variants which use extra AGU unit.
18749
18750 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
18751
18752 * config/i386/i386-options.c (ix86_option_override_internal): Default
18753 PARAM_AVOID_FMA_MAX_BITS to 256 for znver2.
18754 * config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS): Set
18755 for ZNVER2.
18756
18757 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
18758
18759 * config/i386/x86-tune-costs.h (znver2_memcpy): Update.
18760 (znver2_costs): Update 256 bit SSE costs and multiplication.
18761
18762 2019-07-23 Jan Beulich <jbeulich@suse.com>
18763
18764 * config/i386/sse.md (<avx512>_cvtmask2<ssemodesuffix><mode>):
18765 Require only AVX512F.
18766 (*<avx512>_cvtmask2<ssemodesuffix><mode>): Likewise. Add
18767 alternative expanding to vpternlog.
18768
18769 2019-07-23 Martin Liska <mliska@suse.cz>
18770
18771 * dwarf2out.c (gen_producer_string): Canonize -flto=N
18772 to -flto in dwarf producer string.
18773
18774 2019-07-23 Richard Biener <rguenther@suse.de>
18775
18776 * tree-cfg.c (label_for_bb): Remove global var.
18777 (main_block_label): Take label_for_bb as argument.
18778 (cleanup_dead_labels_eh): Likewise, adjust.
18779 (cleanup_dead_labels): Adjust.
18780
18781 2019-07-22 Paul A. Clarke <pc@us.ibm.com>
18782
18783 * doc/extend.texi (Basic PowerPC Built-in Functions Available on all
18784 Configurations): Add documentation for __builtin_mtfsf.
18785
18786 2019-07-22 Ilia Diachkov <ilia.diachkov@optimitech.com>
18787
18788 * config/riscv/riscv-opts.h (struct riscv_align_data): New.
18789 * config/riscv/riscv.c (riscv_constant_alignment): Use
18790 riscv_align_data_type.
18791 * config/riscv/riscv.h (RISCV_EXPAND_ALIGNMENT): New.
18792 (DATA_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT.
18793 (LOCAL_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT.
18794 * config/riscv/riscv.opt (malign-data): New.
18795 * doc/invoke.texi (RISC-V Options): Document -malign-data=.
18796
18797 2019-07-02 Giuliano Belinassi <giuliano.belinassi@usp.br>
18798
18799 * cgraph.c (dump_graphviz): New function.
18800 * cgraph.h (dump_graphviz): New function.
18801 * symtab.c (dump_graphviz): New function.
18802
18803 2019-07-22 Sylvia Taylor <sylvia.taylor@arm.com>
18804
18805 * config/aarch64/aarch64-simd.md
18806 (*aarch64_simd_sra<mode>): New.
18807 * config/aarch64/iterators.md
18808 (SHIFTRT): New iterator.
18809 (sra_op): New attribute.
18810
18811 2019-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com>
18812
18813 * config/msp430/msp430.c (msp430_preserve_reg_p): Don't save
18814 callee-saved regs R4->R10 in an interrupt function that calls another
18815 function.
18816
18817 2019-07-22 Paul A. Clarke <pc@us.ibm.com>
18818
18819 * config/rs6000/smmintrin.h (_mm_blend_epi16): New.
18820 (_mm_blendv_epi8): New.
18821
18822 2019-07-22 Richard Biener <rguenther@suse.de>
18823
18824 PR tree-optimization/91221
18825 * tree-ssa-sccvn.c (vn_reference_lookup_3): Appropriately
18826 restrict partial-def handling of empty constructors and
18827 memset to refs with known offset.
18828
18829 2019-07-22 Jan Beulich <jbeulich@suse.com>
18830
18831 * config/i386/sse.md (ternlogsuffix): New.
18832 (one_cmpl<mode>2): Don't force CONSTM1_RTX into a register when
18833 AVX512F is in use.
18834 (<mask_codefor>one_cmpl<mode>2<mask_name>): New.
18835
18836 2019-07-22 Martin Liska <mliska@suse.cz>
18837
18838 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Update
18839 comment.
18840 * toplev.c (compile_file): Do not emit __gnu_lto_v1 symbol.
18841
18842 2019-07-22 Martin Liska <mliska@suse.cz>
18843
18844 * lto-section-in.c (lto_get_section_data):
18845 Use new function get_compression.
18846 * lto-streamer-out.c (produce_lto_section): Use
18847 set_compression to encode compression algorithm.
18848 * lto-streamer.h (struct lto_section): Do not
18849 use bitfields in the format.
18850
18851 2019-07-22 Martin Liska <mliska@suse.cz>
18852
18853 PR driver/91172
18854 * opts-common.c (decode_cmdline_option): Decode
18855 argument of -Werror and check it for a wrong language.
18856 * opts-global.c (complain_wrong_lang): Remove such case.
18857
18858 2019-07-22 Claudiu Zissulescu <claziss@synopsys.com>
18859
18860 * config/arc/arc.c (prepare_move_operands): Always use an
18861 intermediate register when storing a TLS symbols.
18862
18863 2019-07-22 Stafford Horne <shorne@gmail.com>
18864
18865 * config/or1k/or1k.c (or1k_expand_compare): Check for int before
18866 force_reg.
18867
18868 2019-07-22 Stafford Horne <shorne@gmail.com>
18869
18870 * config.gcc (or1k*-*-*): Add mhard-float, mdouble-float, msoft-float
18871 and munordered-float validations.
18872 * config/or1k/constraints.md (d): New register constraint.
18873 * config/or1k/predicates.md (fp_comparison_operator): New.
18874 * config/or1k/or1k.c (or1k_print_operand): Add support for printing 'd'
18875 operands.
18876 (or1k_expand_compare): Normalize unordered comparisons.
18877 * config/or1k/or1k.h (reg_class): Define DOUBLE_REGS.
18878 (REG_CLASS_NAMES): Add "DOUBLE_REGS".
18879 (REG_CLASS_CONTENTS): Add contents for DOUBLE_REGS.
18880 * config/or1k/or1k.md (type): Add fpu.
18881 (fpu): New instruction reservation.
18882 (F, f, fr, fi, FI, FOP, fop): New.
18883 (<fop><F:mode>3): New ALU instruction definition.
18884 (float<fi><F:mode>2): New conversion instruction definition.
18885 (fix_trunc<F:mode><fi>2): New conversion instruction definition.
18886 (fpcmpcc): New code iterator.
18887 (*sf_fp_insn): New instruction definition.
18888 (cstore<F:mode>4): New expand definition.
18889 (cbranch<F:mode>4): New expand definition.
18890 * config/or1k/or1k.opt (msoft-float, mhard-float, mdouble-float,
18891 munordered-float): New options.
18892 * doc/invoke.texi: Document msoft-float, mhard-float, mdouble-float and
18893 munordered-float.
18894
18895 2019-07-22 Stafford Horne <shorne@gmail.com>
18896
18897 * config.gcc (or1k*-*-*): Add mrori and mror to validation.
18898 * doc/invoke.texi (OpenRISC Options): Add mrori option, rewrite all
18899 documenation to be more clear.
18900 * config/or1k/elf.opt (mboard=, mnewlib): Rewrite documentation to be
18901 more clear.
18902 * config/or1k/or1k.opt (mrori): New option.
18903 (mhard-div, msoft-div, mhard-mul, msoft-mul, mcmov, mror, msext,
18904 msfimm, mshftimm): Rewrite documentation to be more clear.
18905 * config/or1k/or1k.md (insn_support): Add ror and rori.
18906 (enabled): Add conditions for ror and rori.
18907 (rotrsi3): Replace condition for shftimm with ror and rori.
18908
18909 2019-07-22 Stafford Horne <shorne@gmail.com>
18910
18911 PR target/90363
18912 * config/or1k/or1k.md (zero_extend<mode>si2): Update predicate.
18913 (extend<mode>si2): Update predicate.
18914 * config/or1k/predicates.md (volatile_mem_operand): New.
18915 (reg_or_mem_operand): New.
18916
18917 2019-07-21 Iain Sandoe <iain@sandoe.co.uk>
18918
18919 * config/rs6000/rs6000.c (TARGET_NO_PROTOTYPE): Move from here...
18920 * config/rs6000/rs6000-call.c: ... to here.
18921
18922 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
18923
18924 * config/rs6000/predicates.md (offsettable_mem_operand): Allow volatile
18925 memory.
18926
18927 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
18928
18929 * config/rs6000/predicates.md (input_operand): Allow volatile memory.
18930
18931 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
18932
18933 * config/rs6000/predicates.md (lwa_operand): Allow volatile memory.
18934
18935 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
18936
18937 * config/rs6000/predicates.md (volatile_mem_operand): Modernize syntax.
18938 (any_memory_operand): New predicate.
18939 (reg_or_mem_operand): Use it.
18940
18941 2019-07-20 Jakub Jelinek <jakub@redhat.com>
18942
18943 PR target/91204
18944 * optabs.c (expand_unop): As fallback, expand ~op0 as op0 ^ -1.
18945
18946 2019-07-20 John David Anglin <danglin@gcc.gnu.org>
18947
18948 * config/pa/pa.h (hppa_profile_hook): Delete declaration.
18949 * config/pa/pa-protos.h (hppa_profile_hook): Add declaration.
18950
18951 2019-07-20 Jakub Jelinek <jakub@redhat.com>
18952
18953 * tree.def (OMP_LOOP): New tree code.
18954 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_BIND.
18955 (enum omp_clause_bind_kind): New enum.
18956 (struct tree_omp_clause): Add subcode.bind_kind.
18957 * tree.h (OMP_LOOP_CHECK): Rename to ...
18958 (OMP_LOOPING_CHECK): ... this.
18959 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
18960 OMP_FOR_INCR, OMP_FOR_PRE_BODY, OMP_FOR_ORIG_DECLS): Use
18961 OMP_LOOPING_CHECK instead of OMP_LOOP_CHECK.
18962 (OMP_CLAUSE_BIND_KIND): Define.
18963 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
18964 bind clause entries.
18965 (walk_tree_1): Handle OMP_CLAUSE_BIND.
18966 * tree-pretty-print.c (dump_omp_clause): Likewise.
18967 (dump_generic_node): Handle OMP_LOOP.
18968 * gimplify.c (enum omp_region_type): Add ORT_IMPLICIT_TARGET.
18969 (in_omp_construct): New variable.
18970 (is_gimple_stmt): Handle OMP_LOOP.
18971 (gimplify_scan_omp_clauses): For lastprivate don't set
18972 check_non_private if code == OMP_LOOP. For reduction clause
18973 on OMP_LOOP combined with parallel or teams propagate as shared
18974 on the combined construct. Handle OMP_CLAUSE_BIND.
18975 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_BIND.
18976 (gimplify_omp_for): Pass OMP_LOOP instead of OMP_{FOR,DISTRIBUTE}
18977 for constructs from a loop construct to gimplify_scan_omp_clauses.
18978 Don't predetermine iterator linear on OMP_SIMD from loop construct.
18979 (replace_reduction_placeholders, gimplify_omp_loop): New functions.
18980 (gimplify_omp_workshare): Use ORT_IMPLICIT_TARGET instead of trying
18981 to match the implicit ORT_TARGET construct around whole body.
18982 Temporarily clear in_omp_construct when processing body.
18983 (gimplify_expr): Handle OMP_LOOP. For OMP_MASTER, OMP_TASKGROUP
18984 etc. temporarily set in_omp_construct when processing body.
18985 (gimplify_body): Create ORT_IMPLICIT_TARGET instead of ORT_TARGET.
18986 * omp-low.c (struct omp_context): Add loop_p.
18987 (build_outer_var_ref): Treat ctx->loop_p similarly to simd construct
18988 in that the original var might be private.
18989 (scan_sharing_clauses): Handle OMP_CLAUSE_BIND.
18990 (check_omp_nesting_restrictions): Adjust nesting restrictions for
18991 addition of loop construct.
18992 (scan_omp_1_stmt): Allow setjmp inside of loop construct.
18993
18994 * omp-low.c (lower_rec_input_clauses): Don't force simd arrays for
18995 lastprivate non-addressable iterator of a collapse(1) simd.
18996
18997 2019-07-17 Bill Seurer <seurer@linux.vnet.ibm.com>
18998
18999 * config/rs6000/rs6000-call.c (HAVE_AS_GNU_ATTRIBUTE): define value
19000 as in rs6000.c.
19001
19002 2019-07-19 Iain Sandoe <iain@sandoe.co.uk>
19003
19004 * config/darwin.h (DRIVER_SELF_SPECS): Ignore X and Mach specs which
19005 refer to default conditions. Warn for the 'y' spec which is ignored
19006 by current linkers.
19007
19008 2019-07-19 Bill Seurer <seurer@linux.vnet.ibm.com>
19009
19010 * config/rs6000/rs6000.c (builtin_description, cpu_is_info,
19011 cpu_supports_info, builtin_hash_struct, builtin_hasher,
19012 builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info,
19013 rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate,
19014 rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest,
19015 init_cumulative_args, rs6000_promote_function_mode,
19016 rs6000_must_pass_in_stack, is_complex_IBM_long_double,
19017 abi_v4_pass_in_fpr, rs6000_function_arg_padding,
19018 rs6000_function_arg_boundary, rs6000_parm_offset,
19019 rs6000_parm_start, rs6000_arg_size,
19020 rs6000_darwin64_record_arg_advance_flush,
19021 rs6000_darwin64_record_arg_advance_recurse,
19022 rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1,
19023 rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush,
19024 rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
19025 rs6000_mixed_function_arg, rs6000_psave_function_arg,
19026 rs6000_finish_function_arg, rs6000_function_arg,
19027 rs6000_arg_partial_bytes, rs6000_pass_by_reference,
19028 rs6000_parm_needs_stack, rs6000_function_parms_need_stack,
19029 rs6000_reg_parm_stack_space, rs6000_move_block_from_reg,
19030 setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start,
19031 rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst,
19032 bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg,
19033 bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name,
19034 rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin,
19035 rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin,
19036 rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin,
19037 altivec_expand_abs_builtin, rs6000_expand_binop_builtin,
19038 altivec_expand_predicate_builtin, swap_endian_selector_for_mode,
19039 altivec_expand_lv_builtin, altivec_expand_stxvl_builtin,
19040 altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode,
19041 htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin,
19042 altivec_expand_dst_builtin, altivec_expand_vec_init_builtin,
19043 get_element_number, altivec_expand_vec_set_builtin,
19044 altivec_expand_vec_ext_builtin, altivec_expand_builtin,
19045 rs6000_builtin_is_supported_p, rs6000_invalid_builtin,
19046 rs6000_fold_builtin, rs6000_builtin_valid_without_lhs,
19047 fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper,
19048 fold_mergeeo_helper, rs6000_gimple_fold_builtin,
19049 rs6000_expand_builtin, rs6000_vector_type,
19050 rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins,
19051 htm_init_builtins, builtin_function_type, rs6000_common_init_builtins,
19052 rs6000_internal_arg_pointer, rs6000_output_mi_thunk): Move
19053 to rs6000-call.c.
19054 * config/rs6000/rs6000-call.c (builtin_description, cpu_is_info,
19055 cpu_supports_info, builtin_hash_struct, builtin_hasher,
19056 builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info,
19057 rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate,
19058 rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest,
19059 init_cumulative_args, rs6000_promote_function_mode,
19060 rs6000_must_pass_in_stack, is_complex_IBM_long_double,
19061 abi_v4_pass_in_fpr, rs6000_function_arg_padding,
19062 rs6000_function_arg_boundary, rs6000_parm_offset,
19063 rs6000_parm_start, rs6000_arg_size,
19064 rs6000_darwin64_record_arg_advance_flush,
19065 rs6000_darwin64_record_arg_advance_recurse,
19066 rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1,
19067 rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush,
19068 rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
19069 rs6000_mixed_function_arg, rs6000_psave_function_arg,
19070 rs6000_finish_function_arg, rs6000_function_arg,
19071 rs6000_arg_partial_bytes, rs6000_pass_by_reference,
19072 rs6000_parm_needs_stack, rs6000_function_parms_need_stack,
19073 rs6000_reg_parm_stack_space, rs6000_move_block_from_reg,
19074 setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start,
19075 rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst,
19076 bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg,
19077 bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name,
19078 rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin,
19079 rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin,
19080 rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin,
19081 altivec_expand_abs_builtin, rs6000_expand_binop_builtin,
19082 altivec_expand_predicate_builtin, swap_endian_selector_for_mode,
19083 altivec_expand_lv_builtin, altivec_expand_stxvl_builtin,
19084 altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode,
19085 htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin,
19086 altivec_expand_dst_builtin, altivec_expand_vec_init_builtin,
19087 get_element_number, altivec_expand_vec_set_builtin,
19088 altivec_expand_vec_ext_builtin, altivec_expand_builtin,
19089 rs6000_builtin_is_supported_p, rs6000_invalid_builtin,
19090 rs6000_fold_builtin, rs6000_builtin_valid_without_lhs,
19091 fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper,
19092 fold_mergeeo_helper, rs6000_gimple_fold_builtin,
19093 rs6000_expand_builtin, rs6000_vector_type,
19094 rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins,
19095 htm_init_builtins, builtin_function_type, rs6000_common_init_builtins,
19096 rs6000_internal_arg_pointer, rs6000_output_mi_thunk: Move
19097 to here from rs6000.c.
19098 * config/rs6000/rs6000-internal.h: (rs6000_darwin64_struct_check_p,
19099 rs6000_discover_homogeneous_aggregate, rs6000_output_mi_thunk,
19100 rs6000_output_addr_const_extra, rs6000_gimple_fold_builtin,
19101 rs6000_invalid_builtin, rs6000_build_builtin_va_list, rs6000_va_start,
19102 rs6000_gimplify_va_arg, rs6000_promote_function_mode,
19103 rs6000_return_in_memory, rs6000_return_in_msb,
19104 rs6000_pass_by_reference, setup_incoming_varargs,
19105 rs6000_function_arg_boundary, rs6000_must_pass_in_stack,
19106 rs6000_arg_partial_bytes, rs6000_function_arg_advance,
19107 rs6000_function_arg_padding, rs6000_function_arg,
19108 rs6000_darwin64_record_arg, rs6000_internal_arg_pointer,
19109 rs6000_init_builtins, rs6000_builtin_decl, rs6000_expand_builtin,
19110 rs6000_fold_builtin, rs6000_passes_ieee128, rs6000_passes_float,
19111 rs6000_passes_long_double, rs6000_passes_vector,
19112 rs6000_returns_struct, cpu_builtin_p, tree builtin_mode_to_type,
19113 altivec_builtin_mask_for_load) Add declarations.
19114 * config/rs6000/t-rs6000: Add new source file rs6000-call.c.
19115 * config/config.gcc: Add new source file rs6000-call.c to garbage
19116 collector and extra_objs.
19117
19118 2019-07-19 Jeff Law <law@redhat.com>
19119
19120 PR tree-optimization/86061
19121 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle
19122 strncpy. Drop some trivial dead code.
19123 (maybe_trim_memstar_call): Handle strncpy.
19124
19125 2019-07-19 Richard Biener <rguenther@suse.de>
19126
19127 PR tree-optimization/91211
19128 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
19129 memset encoding size.
19130
19131 2019-07-19 Uroš Bizjak <ubizjak@gmail.com>
19132
19133 PR target/91204
19134 * config/i386/mmx.md (one_cmpl<mode>2): New expander.
19135
19136 2019-07-19 Jan Hubicka <hubicka@ucw.cz>
19137
19138 PR ipa/91194
19139 * ipa-inline.c (recursive_inlining): Fix limits check.
19140
19141 2019-07-19 Richard Biener <rguenther@suse.de>
19142
19143 PR tree-optimization/91200
19144 * tree-ssa-phiopt.c (cond_store_replacement): Check we have
19145 no PHI nodes in middle-bb.
19146
19147 2019-07-19 Richard Sandiford <richard.sandiford@arm.com>
19148
19149 * doc/invoke.texi: Rename the AArch64 +bitperm extension flag
19150 to +sve-bitperm.
19151 * config/aarch64/aarch64-option-extensions.def: Likewise.
19152
19153 2019-07-19 Jakub Jelinek <jakub@redhat.com>
19154
19155 PR middle-end/91190
19156 * function.c (insert_temp_slot_address): Store into the hash table
19157 a copy of address to avoid RTL sharing issues.
19158
19159 2019-07-19 Richard Biener <rguenther@suse.de>
19160
19161 PR tree-optimization/91207
19162 Revert
19163 2019-07-17 Richard Biener <rguenther@suse.de>
19164
19165 PR tree-optimization/91178
19166 * tree-vect-stmts.c (get_group_load_store_type): For SLP
19167 loads with a gap larger than the vector size always use
19168 VMAT_STRIDED_SLP.
19169 (vectorizable_load): For VMAT_STRIDED_SLP with a permutation
19170 avoid loading vectors that are only contained in the gap
19171 and thus are not needed.
19172
19173 2019-07-18 Uroš Bizjak <ubizjak@gmail.com>
19174
19175 * config/i386/i386.md (*addqi_2_slp): Remove.
19176 (*<code>qi_2_slp): Ditto.
19177
19178 2019-07-18 Michael Meissner <meissner@linux.ibm.com>
19179
19180 * config/rs6000/predicates.md (prefixed_mem_operand): Call
19181 rs6000_prefixed_address_mode_p instead of rs6000_prefixed_address.
19182 * config/rs6000/rs6000-protos.h (rs6000_prefixed_address_mode_p):
19183 Rename function from rs6000_prefixed_address.
19184 * config/rs6000/aix.h (TARGET_HAS_TOC): Rename TARGET_TOC to
19185 TARGET_HAS_TOC.
19186 (TARGET_TOC): Likewise.
19187 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
19188 rs6000.h.
19189 * config/rs6000/darwin.h (TARGET_HAS_TOC): Rename TARGET_TOC to
19190 TARGET_HAS_TOC.
19191 (TARGET_TOC): Likewise.
19192 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
19193 rs6000.h.
19194 * config/rs6000/linux64.h (TARGET_HAS_TOC): Rename TARGET_TOC to
19195 TARGET_HAS_TOC.
19196 (TARGET_TOC): Likewise.
19197 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
19198 check to require -mcmodel=medium for pc-relative addressing.
19199 (create_TOC_reference): Add assertion for TARGET_TOC.
19200 (rs6000_legitimize_address): Use TARGET_NO_TOC_OR_PCREL instead of
19201 TARGET_NO_TOC.
19202 (rs6000_emit_move): Likewise.
19203 (TOC_alias_set): Rename TOC alias set static variable from 'set'
19204 to 'TOC_alias_set'.
19205 (get_TOC_alias_set): Likewise.
19206 (output_toc): Use TARGET_NO_TOC_OR_PCREL instead of
19207 TARGET_NO_TOC.
19208 (rs6000_can_eliminate): Likewise.
19209 (rs6000_prefixed_address_mode_p): Rename function from
19210 rs6000_prefixed_address.
19211 * config/rs6000/rs6000.h (TARGET_TOC): Define in terms of
19212 TARGET_HAS_TOC and not pc-relative.
19213 (TARGET_NO_TOC_OR_PCREL): New macro to replace TARGET_NO_TOC.
19214 * config/rs6000/sysv4.h (TARGET_HAS_TOC): Rename TARGET_TOC to
19215 TARGET_HAS_TOC.
19216 (TARGET_TOC): Likewise.
19217 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
19218 rs6000.h.
19219
19220 2019-07-18 Uroš Bizjak <ubizjak@gmail.com>
19221
19222 PR target/91188
19223 * config/i386/i386.md (*addqi_1_slp): Use register_operand predicate
19224 for operand 0. Do not use (match_dup) to match operand 1 with
19225 operand 0. Add check in insn constraint that either input operand
19226 matches operand 0. Use SWI12 mode iterator to also handle
19227 HImode operands.
19228 (*and<mode>_1_slp): Ditto.
19229 (*<code>qi_1_slp): Ditto.
19230 (*sub<mode>_1_slp): Use register_operand predicate for operand 0.
19231 Do not use (match_dup) to match operand 1 with operand 0. Add
19232 check in insn constraint that operand 1 matches operand 0.
19233 Use SWI12 mode iterator to also handle HImode operands.
19234 (*ashl<mode>3_1_slp): Ditto.
19235 (*<shift_insn><mode>3_1_slp): Ditto.
19236 (*<rotate_insn><mode>3_1_slp): Ditto.
19237
19238 2019-07-18 Sylvia Taylor <sylvia.taylor@arm.com>
19239
19240 * config/arm/arm-builtins.c
19241 (arm_expand_ternop_builtin): Remove explicit sha1 builtin handling.
19242 (arm_expand_unop_builtin): Likewise.
19243 * config/arm/crypto.md
19244 (crypto_sha1h): Convert from define_insn to define_expand.
19245 (crypto_<crypto_pattern>): Likewise.
19246 (crypto_sha1h_lb): New define_insn.
19247 (crypto_<crypto_pattern>_lb): Likewise.
19248
19249 2019-07-18 Sylvia Taylor <sylvia.taylor@arm.com>
19250
19251 PR target/90317
19252 * config/arm/arm_neon.h (vsha1h_u32): Refactor.
19253 (vsha1cq_u32): Likewise.
19254 (vsha1pq_u32): Likewise.
19255 (vsha1mq_u32): Likewise.
19256 * config/arm/crypto.md (crypto_sha1h): Remove zero extend, correct
19257 vec select.
19258 (crypto_sha1c): Correct vec select.
19259 (crypto_sha1m): Likewise.
19260 (crypto_sha1p): Likewise.
19261
19262 2019-07-18 Richard Earnshaw <rearnsha@arm.com>
19263
19264 * config/arm/predicates.md (arm_borrow_operation): New predicate.
19265 * config/arm/arm.c (subdi3_compare1): Use CCmode for the split.
19266 (arm_subdi3, subdi_di_zesidi, subdi_di_sesidi): Likewise.
19267 (subdi_zesidi_zesidi): Likewise.
19268 (negdi2_compare, negdi2_insn): Likewise.
19269 (negdi_extensidi): Likewise.
19270 (negdi_zero_extendsidi): Likewise.
19271 (arm_cmpdi_insn): Likewise.
19272 (subsi3_carryin): Use arm_borrow_operation.
19273 (subsi3_carryin_const): Likewise.
19274 (subsi3_carryin_const0): Likewise.
19275 (subsi3_carryin_compare): Likewise.
19276 (subsi3_carryin_compare_const): Likewise.
19277 (subsi3_carryin_compare_const0): Likewise.
19278 (subsi3_carryin_shift): Likewise.
19279 (rsbsi3_carryin_shift): Likewise.
19280 (negsi2_carryin_compare): Likewise.
19281
19282 2019-07-18 Bin Cheng <bin.cheng@linux.alibaba.com>
19283
19284 PR tree-optimization/91137
19285 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field.
19286 (tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize):
19287 Init, use and fini the above new field.
19288 (determine_base_object_1): New function.
19289 (determine_base_object): Reimplement using walk_tree.
19290
19291 2019-07-18 Richard Sandiford <richard.sandiford@arm.com>
19292
19293 * basic-block.h (CLEANUP_FORCE_FAST_DCE): New macro.
19294 * cfgcleanup.c (cleanup_cfg): Call run_fast_dce if
19295 CLEANUP_FORCE_FAST_DCE is set.
19296 * ifcvt.c (rest_of_handle_if_conversion): Pass
19297 CLEANUP_FORCE_FAST_DCE to the final cleanup_cfg call if
19298 if-conversion succeeded.
19299
19300 2019-07-18 Richard Biener <rguenther@suse.de>
19301
19302 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Refactor
19303 branches to make code less indented.
19304
19305 2019-07-17 Alexandre Oliva <oliva@adacore.com>
19306
19307 PR middle-end/81824
19308 * attribs.c (decls_mismatched_attributes): Simplify the logic
19309 that avoids duplicates and false positives.
19310
19311 2019-07-17 John David Anglin <danglin@gcc.gnu.org>
19312
19313 * config/pa/pa.c (pa_som_asm_init_sections): Don't force all constant
19314 data into data section when generating PIC code.
19315 (pa_select_section): Use pa_reloc_rw_mask() to qualify relocs.
19316 (pa_reloc_rw_mask): Return 3 when generating PIC code and when
19317 generating code for SOM targets earlier than HP-UX 11. Otherwise,
19318 return 2 for SOM and 0 for other targets.
19319
19320 2019-07-17 Jeff Law <law@redhat.com>
19321
19322 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Fix formatting.
19323 (dse_walker::dse_optimize_stmt): Likewise. Add missing return to
19324 avoid unexpected switch statement fallthru.
19325
19326 2019-07-17 Uroš Bizjak <ubizjak@gmail.com>
19327
19328 * config/i386/i386.md (*add<dwi>3_doubleword):
19329 Remove redundant constraints.
19330 (*add<mode>_1): Ditto.
19331 (*addhi_1): Ditto.
19332 (*addqi_1): Ditto.
19333 (*addqi_1_slp): Ditto.
19334 (*add<mode>_2): Ditto.
19335 (*addv<mode>4): Ditto.
19336 (*sub<dwi>3_doubleword): Ditto.
19337 (*sub<mode>_1): Ditto.
19338 (*subqi_1_slp): Ditto.
19339 (*sub<mode>_2): Ditto.
19340 (*subv<mode>4): Ditto.
19341 (*sub<mode>_3): Ditto.
19342 (@add<mode>3_carry): Ditto.
19343 (@sub<mode>3_carry): Ditto.
19344 (*add<mode>3_cc_overflow_1): Ditto.
19345 (*add<mode>3_zext_cc_overflow_2): Ditto.
19346 (*anddi_1): Ditto.
19347 (*and<mode>_1): Ditto.
19348 (*andqi_1): Ditto.
19349 (*andqi_1_slp): Ditto.
19350 (*anddi_2): Ditto.
19351 (*andqi_2_maybe_si): Ditto.
19352 (*and<mode>_2): Ditto.
19353 (*andqi_2_slp): Ditto.
19354 (*<code><mode>_1): Ditto.
19355 (*<code>qi_1): Ditto.
19356 (*<code>qi_1_slp): Ditto.
19357 (*<code><mode>_2): Ditto.
19358 (*<code>qi_2_slp): Ditto.
19359
19360 2019-07-17 Jan Hubicka <hubicka@ucw.cz>
19361
19362 * alias.c (record_component_aliases): Do not simplify pointed-to
19363 types of ODR types.
19364
19365 2019-07-17 Uroš Bizjak <ubizjak@gmail.com>
19366
19367 * config/i386/i386.md (*andqi_2_maybe_si): Handle potential
19368 partial reg stall on alternative 2.
19369
19370 2019-07-17 Richard Biener <rguenther@suse.de>
19371
19372 PR tree-optimization/91178
19373 * tree-ssa.c (release_defs_bitset): Iterate from higher to
19374 lower SSA names to avoid quadratic behavior in the common case.
19375 * tree-data-ref.c (split_constant_offset): Add limit argument
19376 and pass it down. Initialize it from PARAM_SSA_NAME_DEF_CHAIN_LIMIT.
19377 (split_constant_offset_1): Add limit argument and use it to
19378 limit SSA def walking. Optimize the common plus/minus case.
19379
19380 2019-07-17 Richard Biener <rguenther@suse.de>
19381
19382 PR tree-optimization/91178
19383 * tree-vect-stmts.c (get_group_load_store_type): For SLP
19384 loads with a gap larger than the vector size always use
19385 VMAT_STRIDED_SLP.
19386 (vectorizable_load): For VMAT_STRIDED_SLP with a permutation
19387 avoid loading vectors that are only contained in the gap
19388 and thus are not needed.
19389
19390 2019-07-17 Richard Biener <rguenther@suse.de>
19391
19392 PR tree-optimization/91180
19393 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix offset
19394 computation for memset partial defs.
19395
19396 2019-07-17 Jakub Jelinek <jakub@redhat.com>
19397
19398 * gimple.h (enum gf_mask): Remove GF_OMP_FOR_SIMD, change
19399 GF_OMP_FOR_KIND_SIMD to a value serially after other kinds,
19400 divide GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_COMBINED,
19401 GF_OMP_FOR_COMBINED_INTO, GF_OMP_FOR_GRID_PHONY,
19402 GF_OMP_FOR_GRID_INTRA_GROUP and GF_OMP_FOR_GRID_GROUP_ITER by two.
19403 * omp-grid.c (grid_process_grid_body,
19404 grid_eliminate_combined_simd_part): Use GF_OMP_FOR_KIND_SIMD instead
19405 of GF_OMP_FOR_SIMD, don't test & GF_OMP_FOR_SIMD but
19406 == GF_OMP_FOR_KIND_SIMD.
19407 * omp-low.c (build_outer_var_ref, scan_sharing_clauses,
19408 check_omp_nesting_restrictions, scan_omp_1_stmt,
19409 lower_rec_input_clauses, lower_lastprivate_conditional_clauses,
19410 lower_lastprivate_clauses, lower_reduction_clauses, lower_omp_scan,
19411 omp_find_scan): Likewise.
19412 * omp-expand.c (expand_omp_for): Likewise.
19413 * omp-general.c (omp_extract_for_data): Likewise.
19414
19415 PR tree-optimization/91157
19416 * tree-vect-generic.c (expand_vector_comparison): Handle lhs being
19417 a vector boolean with scalar mode.
19418 (expand_vector_condition): Handle first operand being a vector boolean
19419 with scalar mode.
19420 (expand_vector_operations_1): For comparisons, don't bail out early
19421 if the return type is vector boolean with scalar mode, but comparison
19422 operand type is not.
19423
19424 2019-07-17 Richard Biener <rguenther@suse.de>
19425
19426 PR tree-optimization/91181
19427 * tree-vect-slp.c (vect_build_slp_tree_1): Do not compare
19428 IFN_LOADs as calls.
19429
19430 2019-07-16 Uroš Bizjak <ubizjak@gmail.com>
19431
19432 * config/i386/i386.md (*testdi_1): Match CCZmode for
19433 constants that might have the SImode sign bit set.
19434 (*testqi_1_maybe_si): Remove "!" constraint modifier.
19435 Use correct constraints for pentium pairing.
19436 (*test<mode>_1): Ditto.
19437
19438 2019-07-16 Jeff Law <law@redhat.com>
19439
19440 PR rtl-optimization/91173
19441 * tree-ssa-address.c (addr_for_mem_ref): If the base is an
19442 SSA_NAME with a constant value, fold its value into the offset
19443 and clear the base before calling gen_addr_rtx.
19444
19445 2019-07-16 Jakub Jelinek <jakub@redhat.com>
19446
19447 PR rtl-optimization/91164
19448 * dse.c (rest_of_handle_dse): If dead edges have been purged,
19449 invalidate dominance info.
19450
19451 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
19452
19453 * read-md.h (md_reader::record_potential_iterator_use): Add a
19454 file_location parameter.
19455 * read-rtl.c (attribute_use::loc): New field.
19456 (map_attr_string): Take a file_location parameter. Report cases
19457 in which attributes map to multiple distinct values.
19458 (apply_attribute_uses): Update call accordingly.
19459 (md_reader::handle_overloaded_name): Likewise.
19460 (md_reader::apply_iterator_to_string): Likewise. Skip empty
19461 nonnull strings.
19462 (record_attribute_use): Take a file_location parameter.
19463 Initialize attribute_use::loc.
19464 (md_reader::record_potential_iterator_use): Take a file_location
19465 parameter. Update call to record_attribute_use.
19466 (rtx_reader::rtx_alloc_for_name): Update call accordingly.
19467 (rtx_reader::read_rtx_code): Likewise.
19468 (rtx_reader::read_rtx_operand): Likewise. Record a location
19469 for implicitly-expanded empty strings.
19470
19471 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
19472
19473 * read-md.h (md_reader::ptr_loc): Moved from read-md.c.
19474 Use file_location instead of separate fields.
19475 (md_reader::set_md_ptr_loc): Take a file_location instead of a
19476 separate filename and line number.
19477 * read-md.c (ptr_loc): As above.
19478 (md_reader::copy_md_ptr_loc): Update for new ptr_loc layout.
19479 (md_reader::fprint_md_ptr_loc): Likewise.
19480 (md_reader::set_md_ptr_loc): Likewise. Take a file_location
19481 instead of a separate filename and line number.
19482 (md_reader::read_string): Update call accordingly.
19483
19484 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
19485
19486 * config/rs6000/rs6000.md (*mov<mode>_update1): Explicitly
19487 use <SFDF:mode>, <SFDF:MODE>, <SFDF:Ff> and <SFDF:bits> rather than
19488 leaving the choice between SFDF and P implicit.
19489 (*mov<mode>_update2): Likewise.
19490 (*cmp<IBM128:mode>_internal2): Explicitly use <IBM128:MODE>
19491 rather than leaving the choice betweem IBM128 and GPR implicit.
19492 (*fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Explicitly use
19493 <IEEE128:MODE> rather than leaving the choice between IEEE128 and
19494 QHSI implicit.
19495 (AltiVec define_peephole2s): Explicitly use <ALTIVEC_DFORM:MODE>
19496 rather than leaving the choice between ALTIVEC_DFORM and P implicit.
19497 * config/rs6000/vsx.md
19498 (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>)
19499 (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Explicitly
19500 use <FL_CONV:VSisa> rather than leaving the choice between FL_CONV
19501 and VSX_EXTRACT_I implicit.
19502
19503 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
19504
19505 * config/mips/micromips.md (*movep<MOVEP1:mode><MOVEP2:mode>):
19506 Explicitly use <MOVEP1:MODE> for the mode attribute.
19507
19508 2019-07-16 Jan Hubicka <hubicka@ucw.cz>
19509
19510 PR bootstrap/91176
19511 * ipa-fnsummary.c (analyze_function_body): Skip debug stmts
19512
19513 2019-07-15 Segher Boessenkool <segher@kernel.crashing.org>
19514
19515 PR target/91050
19516 * config/rs6000/rs6000.c (rs6000_file_start): Never skip emitting a
19517 .machine directive.
19518
19519 2019-07-15 Uroš Bizjak <ubizjak@gmail.com>
19520
19521 * config/i386/i386.md (@test<mode>_ccno_1):
19522 Rename from test<mode>_ccno_1.
19523 (*testdi_1): Remove redundant alternatives. Remove modrm attribute.
19524 (*testqi_1_maybe_si): Remove modrm attribute.
19525 (*test<mode>_1): Ditto.
19526 * config/i386/i386-expand.c (ix86_split_idivmod): Use
19527 gen_test_ccno_1 and gen_extend_insn.
19528
19529 2019-07-15 Jan Hubicka <hubicka@ucw.cz>
19530
19531 * tree-ssa-alias.c (aliasing_component_refs_walk): Initialize same_p
19532 to 0.
19533
19534 2019-07-15 Richard Biener <rguenther@suse.de>
19535
19536 PR middle-end/91162
19537 * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
19538 node make sure to replace all uses with something valid.
19539
19540 2019-07-15 Kewen Lin <linkw@gcc.gnu.org>
19541
19542 PR tree-optimization/88497
19543 * tree-ssa-reassoc.c (reassociate_bb): Swap the positions of
19544 GIMPLE_BINARY_RHS check and gimple_visited_p check, call new
19545 function undistribute_bitref_for_vector.
19546 (undistribute_bitref_for_vector): New function.
19547 (cleanup_vinfo_map): Likewise.
19548 (sort_by_mach_mode): Likewise.
19549
19550 2019-07-14 Uroš Bizjak <ubizjak@gmail.com>
19551
19552 * config/i386/i386.md (nonmemory_szext_operand): New mode attribute.
19553 (test<mode>_ccno_1): Macroize insn pattern from testsi_ccno_1
19554 and testdi_ccno_1 using SWI48 mode attribute.
19555 (*testdi_1): Use x86_64_szext_nonmemory_operand instead of
19556 x86_64_szext_general_operand.
19557 (*testqi_1_maybe_si): Use nonmemory_operand instead of general_operand.
19558 (*test<mode>_1): Use nonmemory_szext_operand mode attribute
19559 instead of genera_operand mode attribute.
19560
19561 2019-07-14 Vladislav Ivanishin <vlad@ispras.ru>
19562
19563 * gdbhooks.py (DumpFn.invoke): Add explicit casts of return values of
19564 fopen and fclose to their respective types.
19565 (DotFn.invoke): Ditto.
19566
19567 2019-07-14 Jan Hubicka <hubicka@ucw.cz>
19568
19569 * ipa-fnsummary.c (ipa_dump_hints): Do not dump array_index.
19570 (ipa_fn_summary::~ipa_fn_summary): Do not destroy array_index.
19571 (ipa_fn_summary_t::duplicate): Do not duplicate array_index.
19572 (array_index_predicate): Remove.
19573 (analyze_function_body): Account cost for variable ofsetted array
19574 indexing.
19575 (estimate_node_size_and_time): Do not compute array index hint.
19576 (ipa_merge_fn_summary_after_inlining): Do not merge array index hint.
19577 (inline_read_section): Do not read array index hint.
19578 (ipa_fn_summary_write): Do not write array index hint.
19579 * doc/invoke.texi (ipa-cp-array-index-hint-bonus): Remove.
19580 * ipa-cp.c (hint_time_bonus): Remove.
19581 * ipa-fnsummary.h (ipa_hints_vals): Remove array_index.
19582 (ipa_fnsummary): Remove array_index.
19583 * ipa-inline.c (want_inline_small_function_p): Do not use
19584 array_index.
19585 (edge_badness): Likewise.
19586 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): Remove.
19587
19588 2019-07-14 Segher Boessenkool <segher@kernel.crashing.org>
19589
19590 PR target/91148
19591 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Remove
19592 superfluous "builtin function" phrasing.
19593
19594 2019-07-13 Jan Hubicka <hubicka@ucw.cz>
19595
19596 * tree-ssa-alias.c (component_ref_to_zero_sized_trailing_array_p):
19597 Break out from ...
19598 (aliasing_component_refs_walk): Break out from ...
19599 (aliasing_component_refs_p): ... here.
19600
19601 2019-07-13 Segher Boessenkool <segher@kernel.crashing.org>
19602
19603 PR target/91148
19604 * config/rs6000/rs6000.c (rs6000_invalid_builtin): Remove superfluous
19605 "builtin function" phrasing.
19606
19607 2019-07-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
19608
19609 PR target/90723
19610 * recog.h (temporary_volatile_ok): New class.
19611 * config/aarch64/aarch64.c (aarch64_emit_sve_pred_move): Set
19612 volatile_ok temporarily to true using temporary_volatile_ok.
19613 * expr.c (emit_block_move_via_cpymem): Likewise.
19614 * optabs.c (maybe_legitimize_operand): Likewise.
19615
19616 2019-07-13 Jakub Jelinek <jakub@redhat.com>
19617
19618 * gimplify.c (struct gimplify_omp_ctx): Add order_concurrent member.
19619 (omp_notice_threadprivate_variable): Diagnose threadprivate variable
19620 uses inside of order(concurrent) constructs.
19621 (gimplify_scan_omp_clauses): Set ctx->order_concurrent if
19622 OMP_CLAUSE_ORDER is seen.
19623 * omp-low.c (struct omp_context): Add order_concurrent member.
19624 (scan_sharing_clauses): Set ctx->order_concurrent if
19625 OMP_CLAUSE_ORDER is seen.
19626 (check_omp_nesting_restrictions): Diagnose ordered or atomic inside
19627 of simd order(concurrent). Diagnose constructs not allowed inside of
19628 for order(concurrent).
19629 (setjmp_or_longjmp_p): Add a context and TREE_PUBLIC check to avoid
19630 complaining about static double setjmp (double); or class static
19631 methods or non-global namespace setjmps.
19632 (omp_runtime_api_call): New function.
19633 (scan_omp_1_stmt): Diagnose OpenMP runtime API calls inside of
19634 order(concurrent) loops.
19635
19636 2019-07-12 Martin Sebor <msebor@redhat.com>
19637
19638 * doc/invoke.texi (ssa-name-def-chain-limit): Document new --param.
19639 * params.def (PARAM_SSA_NAME_DEF_CHAIN_LIMIT): Add new --param.
19640 * tree-vrp.c (vrp_prop::check_mem_ref): Use
19641 PARAM_SSA_NAME_DEF_CHAIN_LIMIT.
19642
19643 2019-07-12 Jan Hubicka <jh@suse.cz>
19644
19645 * tree-ssa-alias.c (same_tmr_indexing_p): Break out from ...
19646 (indirect_refs_may_alias_p): ... here.
19647 (nonoverlapping_component_refs_since_match_p): Support also non-trivial
19648 mem refs in the access paths.
19649
19650 2019-07-12 Jiangning Liu <jiangning.liu@amperecomputing.com>
19651
19652 PR tree-optimization/89430
19653 * tree-ssa-phiopt.c (cond_store_replacement): Support conditional
19654 store elimination for local variable without address escape.
19655
19656 2019-07-12 Jeff Law <law@redhat.com>
19657
19658 * config/c6x/c6x.c (c6x_section_type): Clear SECTION_NOTYPE
19659 for the ".far" section.
19660
19661 2019-07-12 Richard Biener <rguenther@suse.de>
19662
19663 PR tree-optimization/91145
19664 * tree-vect-slp.c (vect_build_slp_tree_2): Fix reduction
19665 chain check.
19666
19667 2019-07-12 Alexandre Oliva <oliva@adacore.com>
19668
19669 * tree-eh.c (honor_protect_cleanup_actions): Use outer_
19670 rather than this_state as the lowering context for the ELSE
19671 seq in a GIMPLE_EH_ELSE.
19672
19673 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
19674
19675 * vector-builder.h (vector_builder::elt): Allow already-supplied
19676 elements to be read back before building is complete.
19677
19678 2019-07-12 Eric Botcazou <ebotcazou@adacore.com>
19679
19680 PR rtl-optimization/91136
19681 * df-core.c (ACCESSING REFS): Fix typos in comment.
19682 * resource.c (mark_target_live_reg): Add artificial defs that occur at
19683 the beginning of the block to the initial set of live registers.
19684
19685 2019-07-12 Richard Biener <rguenther@suse.de>
19686
19687 * fold-const.h (get_array_ctor_element_at_index): Adjust.
19688 * fold-const.c (get_array_ctor_element_at_index): Add
19689 ctor_idx output parameter informing the caller where in
19690 the constructor the element was (not) found. Add early exit
19691 for when the ctor is sorted.
19692 * gimple-fold.c (fold_array_ctor_reference): Support constant
19693 folding across multiple array elements.
19694
19695 2019-07-12 Eric Botcazou <ebotcazou@adacore.com>
19696
19697 * cfgexpand.c (expand_gimple_stmt_1) <GIMPLE_RETURN>: If the statement
19698 doesn't have location, set the current location to the function's end.
19699
19700 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
19701
19702 * config/aarch64/aarch64.md (*compare_condjump<mode>)
19703 (loadwb_pair<GPI:mode>_<P:mode>, loadwb_pair<GPF:mode>_<P:mode>)
19704 (storewb_pair<GPI:mode>_<P:mode>, storewb_pair<GPF:mode>_<P:mode>)
19705 (*ands<mode>_compare0): Fix ambiguous uses of .md attributes.
19706 * config/aarch64/aarch64-simd.md
19707 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
19708 (*aarch64_get_lane_zero_extend<GPI:mode><VDQQH:mode>): Likewise.
19709 * config/aarch64/aarch64-sve.md
19710 (while_ult<GPI:mode><PRED_ALL:mode>): Likewise.
19711 (*cond_<optab><mode>_any): Fix SVE_I/SVE_SDI typo.
19712
19713 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
19714
19715 * doc/md.texi: Document that @ patterns can have different
19716 numbers of operands.
19717 * genemit.c (handle_overloaded_gen): Handle this case.
19718 * genopinit.c (handle_overloaded_gen): Likewise.
19719 * gensupport.c (replace_operands_with_dups): Iterate over
19720 the new rtx's format rather than the old one's.
19721
19722 2019-07-12 Jakub Jelinek <jakub@redhat.com>
19723
19724 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_ORDER.
19725 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
19726 order clause entries.
19727 (walk_tree_1): Handle OMP_CLAUSE_ORDER.
19728 * tree-pretty-print.c (dump_omp_clause): Likewise.
19729 * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses):
19730 Likewise.
19731 * omp-low.c (scan_sharing_clauses): Likewise.
19732 * tree-nested.c (convert_nonlocal_omp_clauses,
19733 convert_local_omp_clauses): Likewise.
19734
19735 2019-07-12 Kewen Lin <linkw@gcc.gnu.org>
19736
19737 * cfgrtl.c (print_rtl_with_bb): Emit a hint if the
19738 fallthrough target of current basic block isn't the placed
19739 right next.
19740
19741 2019-07-11 Sunil K Pandey <sunil.k.pandey@intel.com>
19742
19743 PR target/90980
19744 * config/i386/avx512fintrin.h (_mm512_loadu_epi64): New.
19745 (_mm512_storeu_epi64): Likewise.
19746 (_mm512_loadu_epi32): Likewise.
19747 (_mm512_storeu_epi32): Likewise.
19748 * config/i386/avx512vlintrin.h (_mm256_storeu_epi64): New.
19749 (_mm_storeu_epi64): Likewise.
19750 (_mm256_storeu_epi32): Likewise.
19751 (_mm_storeu_epi32): Likewise.
19752
19753 2019-07-11 Segher Boessenkool <segher@kernel.crashing.org>
19754
19755 * config/rs6000/rs6000-logue.c: Add Modula-2 to comment.
19756
19757 2019-07-11 Segher Boessenkool <segher@kernel.crashing.org>
19758
19759 * config/rs6000/rs6000-logue.c (rs6000_output_function_epilogue):
19760 Handle Modula-2.
19761
19762 2019-07-11 Jakub Jelinek <jakub@redhat.com>
19763
19764 PR target/91124
19765 * config/i386/sse.md (sse2_cvtpd2dq<mask_name>): Change into ...
19766 (sse2_cvtpd2dq): ... this. Remove mask substitution macros.
19767 (sse2_cvtpd2dq_mask, sse2_cvtpd2dq_mask_1): New define_insns.
19768 (ufix_notruncv2dfv2si2<mask_name>): Change into ...
19769 (ufix_notruncv2dfv2si2): ... this. Remove mask substitution macros.
19770 (ufix_notruncv2dfv2si2_mask, ufix_notruncv2dfv2si2_mask_1): New
19771 define_insns.
19772 (ufix_truncv2dfv2si2<mask_name>): Change into ...
19773 (ufix_truncv2dfv2si2): ... this. Remove mask substitution macros.
19774 (ufix_truncv2dfv2si2_mask, ufix_truncv2dfv2si2_mask_1): New
19775 define_insns.
19776 (sse2_cvttpd2dq<mask_name>): Change into ...
19777 (sse2_cvttpd2dq): ... this. Remove mask substitution macros.
19778 (sse2_cvttpd2dq_mask, sse2_cvttpd2dq_mask_1): New define_insns.
19779 (*sse2_cvtpd2dq<mask_name>): Change into ...
19780 (*sse2_cvtpd2dq): ... this. Remove mask substitution macros.
19781 Add "C" constraint to const0_operand.
19782 (*sse2_cvtpd2dq_mask, *sse2_cvtpd2dq_mask_1): New define_insns.
19783 (sse2_cvtpd2ps_mask): Adjust expand to match *sse2_cvtpd2ps_mask
19784 changes.
19785
19786 PR target/91124
19787 * config/i386/i386-builtin-types.def
19788 (V32HI_FTYPE_V32HI_V32HI_V32HI_INT,
19789 V16HI_FTYPE_V16HI_V16HI_V16HI_INT, V8HI_FTYPE_V8HI_V8HI_V8HI_INT,
19790 V8SI_FTYPE_V8SI_V8SI_V8SI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT,
19791 V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V16SI_FTYPE_V16SI_V16SI_V16SI_INT,
19792 V2DI_FTYPE_V2DI_V2DI_V2DI_INT, V4SI_FTYPE_V4SI_V4SI_V4SI_INT): Remove.
19793 * config/i386/i386-builtin.def (__builtin_ia32_vpshrdv_v32hi_mask,
19794 __builtin_ia32_vpshrdv_v32hi_maskz, __builtin_ia32_vpshrdv_v16hi_mask,
19795 __builtin_ia32_vpshrdv_v16hi_maskz, __builtin_ia32_vpshrdv_v8hi_mask,
19796 __builtin_ia32_vpshrdv_v8hi_maskz, __builtin_ia32_vpshrdv_v16si_mask,
19797 __builtin_ia32_vpshrdv_v16si_maskz, __builtin_ia32_vpshrdv_v8si_mask,
19798 __builtin_ia32_vpshrdv_v8si_maskz, __builtin_ia32_vpshrdv_v4si_mask,
19799 __builtin_ia32_vpshrdv_v4si_maskz, __builtin_ia32_vpshrdv_v8di_mask,
19800 __builtin_ia32_vpshrdv_v8di_maskz, __builtin_ia32_vpshrdv_v4di_mask,
19801 __builtin_ia32_vpshrdv_v4di_maskz, __builtin_ia32_vpshrdv_v2di_mask,
19802 __builtin_ia32_vpshrdv_v2di_maskz, __builtin_ia32_vpshldv_v32hi_mask,
19803 __builtin_ia32_vpshldv_v32hi_maskz, __builtin_ia32_vpshldv_v16hi_mask,
19804 __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi_mask,
19805 __builtin_ia32_vpshldv_v8hi_maskz, __builtin_ia32_vpshldv_v16si_mask,
19806 __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si_mask,
19807 __builtin_ia32_vpshldv_v8si_maskz, __builtin_ia32_vpshldv_v4si_mask,
19808 __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di_mask,
19809 __builtin_ia32_vpshldv_v8di_maskz, __builtin_ia32_vpshldv_v4di_mask,
19810 __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di_mask,
19811 __builtin_ia32_vpshldv_v2di_maskz, __builtin_ia32_vpdpbusd_v16si_mask,
19812 __builtin_ia32_vpdpbusd_v16si_maskz, __builtin_ia32_vpdpbusd_v8si_mask,
19813 __builtin_ia32_vpdpbusd_v8si_maskz, __builtin_ia32_vpdpbusd_v4si_mask,
19814 __builtin_ia32_vpdpbusd_v4si_maskz,
19815 __builtin_ia32_vpdpbusds_v16si_mask,
19816 __builtin_ia32_vpdpbusds_v16si_maskz,
19817 __builtin_ia32_vpdpbusds_v8si_mask,
19818 __builtin_ia32_vpdpbusds_v8si_maskz,
19819 __builtin_ia32_vpdpbusds_v4si_mask,
19820 __builtin_ia32_vpdpbusds_v4si_maskz,
19821 __builtin_ia32_vpdpwssd_v16si_mask,
19822 __builtin_ia32_vpdpwssd_v16si_maskz, __builtin_ia32_vpdpwssd_v8si_mask,
19823 __builtin_ia32_vpdpwssd_v8si_maskz, __builtin_ia32_vpdpwssd_v4si_mask,
19824 __builtin_ia32_vpdpwssd_v4si_maskz,
19825 __builtin_ia32_vpdpwssds_v16si_mask,
19826 __builtin_ia32_vpdpwssds_v16si_maskz,
19827 __builtin_ia32_vpdpwssds_v8si_mask,
19828 __builtin_ia32_vpdpwssds_v8si_maskz,
19829 __builtin_ia32_vpdpwssds_v4si_mask,
19830 __builtin_ia32_vpdpwssds_v4si_maskz): Use *_USI, *_UHI or *_UQI
19831 suffixed types rather than *_INT.
19832 * config/i386/i386-expand.c (ix86_expand_args_builtin): Don't handle
19833 V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT,
19834 V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT,
19835 V4DI_FTYPE_V4DI_V4DI_V4DI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI_INT,
19836 V16SI_FTYPE_V16SI_V16SI_V16SI_INT, V2DI_FTYPE_V2DI_V2DI_V2DI_INT
19837 and V4SI_FTYPE_V4SI_V4SI_V4SI_INT.
19838
19839 2019-07-11 Aldy Hernandez <aldyh@redhat.com>
19840
19841 * tree-vrp.c (intersect_ranges): If we know the intersection is
19842 empty, there is no need to conservatively add anything else to
19843 the set.
19844
19845 2019-07-11 Richard Biener <rguenther@suse.de>
19846
19847 PR middle-end/91131
19848 * gimplify.c (gimplify_compound_literal_expr): Force a temporary
19849 when the object is volatile and we have not cleared it even though
19850 there are no nonzero elements.
19851
19852 2019-07-10 Michael Meissner <meissner@linux.ibm.com>
19853
19854 * config/rs6000/predicates.md (cint34_operand): Update
19855 SIGNED_34BIT_OFFSET_P call.
19856 (pcrel_address): Update SIGNED_34BIT_OFFSET_P call.
19857 (pcrel_external_address): Update SIGNED_34BIT_OFFSET_P call.
19858 * config/rs6000/rs6000.c (rs6000_prefixed_address): Update
19859 SIGNED_16BIT_OFFSET_P and SIGNED_34BIT_OFFSET_P calls.
19860 * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): Remove EXTRA
19861 argument.
19862 (SIGNED_34BIT_OFFSET_P): Remove EXTRA argument.
19863 (SIGNED_16BIT_OFFSET_EXTRA_P): New macro, like
19864 SIGNED_16BIT_OFFSET_P with an EXTRA argument.
19865 (SIGNED_34BIT_OFFSET_EXTRA_P): New macro, like
19866 SIGNED_34BIT_OFFSET_P with an EXTRA argument.
19867
19868 2019-07-10 Iain Sandoe <iain@sandoe.co.uk>
19869
19870 * config/rs6000/darwin.h (LIB_SPEC): Collate this spec here.
19871 * config/rs6000/darwin7.h (LIB_SPEC): Remove.
19872 * config/rs6000/darwin8.h (LIB_SPEC): Remove.
19873 (DEF_MIN_OSX_VERSION): New.
19874
19875 2019-07-10 Richard Sandiford <richard.sandiford@arm.com>
19876
19877 * fold-const.c (fold_relational_const): Fix folding of
19878 vector-to-scalar NE_EXPRs.
19879 (test_vector_folding): Add more tests.
19880
19881 2019-07-10 Richard Sandiford <richard.sandiford@arm.com>
19882
19883 PR target/91060
19884 * config/arm/iterators.md (V2DI_ONLY): New mode iterator.
19885 * config/arm/neon.md (vec_set<mode>_internal): Add a '@' prefix.
19886 (vec_setv2di_internal): Reexpress as...
19887 (@vec_set<V2DI_ONLY:mode>_internal): ...this.
19888 * config/arm/arm.c (neon_expand_vector_init): Use gen_vec_set_internal
19889 rather than gen_neon_vset_lane<mode>.
19890
19891 2019-07-10 Vladimir Makarov <vmakarov@redhat.com>
19892
19893 PR target/91102
19894 * lra-constraints.c (process_alt_operands): Don't match user
19895 defined regs only if they are early clobbers.
19896
19897 2019-07-10 Marc Glisse <marc.glisse@inria.fr>
19898
19899 * wide-int.h (wi::lshift): Reject negative values for the fast path.
19900
19901 2019-07-10 Richard Biener <rguenther@suse.de>
19902
19903 PR tree-optimization/91126
19904 * tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust
19905 native encoding offset for BYTES_BIG_ENDIAN.
19906 (vn_reference_lookup_3): Likewise.
19907
19908 2019-07-10 Richard Biener <rguenther@suse.de>
19909
19910 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look at valueized
19911 LHS whenever possible.
19912
19913 2019-07-09 Jan Hubicka <hubicka@ucw.cz>
19914
19915 * tree-ssa-alias.c (nonoverlapping_component_refs_p_1): Break out
19916 from ...; work also on duplicated types.
19917 (nonoverlapping_component_refs_since_match): ... here
19918 (ncr_type_uid): Break out from ...
19919 (ncr_compar): ... here; look for TYPE_UID of canonical type if
19920 available.
19921 (nonoverlapping_component_refs_p): Use same_type_for_tbaa to match
19922 the types and nonoverlapping_component_refs_p_1 to disambiguate.
19923
19924 2019-07-09 Martin Sebor <msebor@redhat.com>
19925
19926 PR tree-optimization/90989
19927 * tree-ssa-strlen.c (handle_char_store): Constrain a single character
19928 optimization to just single character stores.
19929
19930 2019-07-09 Joern Rennecke <joern.rennecke@riscy-ip.com>
19931
19932 * tree-vect-stmts.c (vectorizable_comparison) <!slp_node>:
19933 Swap operands only once.
19934
19935 2019-07-09 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
19936
19937 * cfgcleanup.c (old_insns_match_p): Check if used hard regs set is equal
19938 for both call instructions.
19939
19940 2019-07-09 John Darrington <john@darrington.wattle.id.au>
19941
19942 * simplify-rtx.c (simplify_unary_operation_1): Use GET_MODE_PRECISION
19943 rather than GET_MODE_BITSIZE to better handle partial integer modes.
19944
19945 2019-07-09 Michael Meissner <meissner@linux.ibm.com>
19946
19947 * config/rs6000/rs6000-internal.h (create_TOC_reference): Delete.
19948 * config/rs6000/rs6000-logue.c (create_TOC_reference): Move
19949 function from rs6000-logue.c back to rs6000.c.
19950 * config/rs6000/rs6000.c (create_TOC_reference): Likewise.
19951
19952 2019-07-09 Martin Sebor <msebor@redhat.com>
19953
19954 PR c++/61339
19955 * auto-profile.c: Change class-key of PODs to struct and others
19956 to class.
19957 * basic-block.h: Same.
19958 * bitmap.c (bitmap_alloc): Same.
19959 * bitmap.h: Same.
19960 * builtins.c (expand_builtin_prefetch): Same.
19961 (expand_builtin_interclass_mathfn): Same.
19962 (expand_builtin_strlen): Same.
19963 (expand_builtin_mempcpy_args): Same.
19964 (expand_cmpstr): Same.
19965 (expand_builtin___clear_cache): Same.
19966 (expand_ifn_atomic_bit_test_and): Same.
19967 (expand_builtin_thread_pointer): Same.
19968 (expand_builtin_set_thread_pointer): Same.
19969 * caller-save.c (setup_save_areas): Same.
19970 (replace_reg_with_saved_mem): Same.
19971 (insert_restore): Same.
19972 (insert_save): Same.
19973 (add_used_regs): Same.
19974 * cfg.c (get_bb_copy): Same.
19975 (set_loop_copy): Same.
19976 * cfg.h: Same.
19977 * cfganal.h: Same.
19978 * cfgexpand.c (alloc_stack_frame_space): Same.
19979 (add_stack_var): Same.
19980 (add_stack_var_conflict): Same.
19981 (add_scope_conflicts_1): Same.
19982 (update_alias_info_with_stack_vars): Same.
19983 (expand_used_vars): Same.
19984 * cfghooks.c (redirect_edge_and_branch_force): Same.
19985 (delete_basic_block): Same.
19986 (split_edge): Same.
19987 (make_forwarder_block): Same.
19988 (force_nonfallthru): Same.
19989 (duplicate_block): Same.
19990 (lv_flush_pending_stmts): Same.
19991 * cfghooks.h: Same.
19992 * cfgloop.c (flow_loops_cfg_dump): Same.
19993 (flow_loop_nested_p): Same.
19994 (superloop_at_depth): Same.
19995 (get_loop_latch_edges): Same.
19996 (flow_loop_dump): Same.
19997 (flow_loops_dump): Same.
19998 (flow_loops_free): Same.
19999 (flow_loop_nodes_find): Same.
20000 (establish_preds): Same.
20001 (flow_loop_tree_node_add): Same.
20002 (flow_loop_tree_node_remove): Same.
20003 (flow_loops_find): Same.
20004 (find_subloop_latch_edge_by_profile): Same.
20005 (find_subloop_latch_edge_by_ivs): Same.
20006 (mfb_redirect_edges_in_set): Same.
20007 (form_subloop): Same.
20008 (merge_latch_edges): Same.
20009 (disambiguate_multiple_latches): Same.
20010 (disambiguate_loops_with_multiple_latches): Same.
20011 (flow_bb_inside_loop_p): Same.
20012 (glb_enum_p): Same.
20013 (get_loop_body_with_size): Same.
20014 (get_loop_body): Same.
20015 (fill_sons_in_loop): Same.
20016 (get_loop_body_in_dom_order): Same.
20017 (get_loop_body_in_custom_order): Same.
20018 (release_recorded_exits): Same.
20019 (get_loop_exit_edges): Same.
20020 (num_loop_branches): Same.
20021 (remove_bb_from_loops): Same.
20022 (find_common_loop): Same.
20023 (delete_loop): Same.
20024 (cancel_loop): Same.
20025 (verify_loop_structure): Same.
20026 (loop_preheader_edge): Same.
20027 (loop_exit_edge_p): Same.
20028 (single_exit): Same.
20029 (loop_exits_to_bb_p): Same.
20030 (loop_exits_from_bb_p): Same.
20031 (get_loop_location): Same.
20032 (record_niter_bound): Same.
20033 (get_estimated_loop_iterations_int): Same.
20034 (max_stmt_executions_int): Same.
20035 (likely_max_stmt_executions_int): Same.
20036 (get_estimated_loop_iterations): Same.
20037 (get_max_loop_iterations): Same.
20038 (get_max_loop_iterations_int): Same.
20039 (get_likely_max_loop_iterations): Same.
20040 * cfgloop.h (simple_loop_desc): Same.
20041 (get_loop): Same.
20042 (loop_depth): Same.
20043 (loop_outer): Same.
20044 (loop_iterator::next): Same.
20045 (loop_outermost): Same.
20046 * cfgloopanal.c (mark_irreducible_loops): Same.
20047 (num_loop_insns): Same.
20048 (average_num_loop_insns): Same.
20049 (expected_loop_iterations_unbounded): Same.
20050 (expected_loop_iterations): Same.
20051 (mark_loop_exit_edges): Same.
20052 (single_likely_exit): Same.
20053 * cfgloopmanip.c (fix_bb_placement): Same.
20054 (fix_bb_placements): Same.
20055 (remove_path): Same.
20056 (place_new_loop): Same.
20057 (add_loop): Same.
20058 (scale_loop_frequencies): Same.
20059 (scale_loop_profile): Same.
20060 (create_empty_if_region_on_edge): Same.
20061 (create_empty_loop_on_edge): Same.
20062 (loopify): Same.
20063 (unloop): Same.
20064 (fix_loop_placements): Same.
20065 (copy_loop_info): Same.
20066 (duplicate_loop): Same.
20067 (duplicate_subloops): Same.
20068 (loop_redirect_edge): Same.
20069 (can_duplicate_loop_p): Same.
20070 (duplicate_loop_to_header_edge): Same.
20071 (mfb_keep_just): Same.
20072 (has_preds_from_loop): Same.
20073 (create_preheader): Same.
20074 (create_preheaders): Same.
20075 (lv_adjust_loop_entry_edge): Same.
20076 (loop_version): Same.
20077 * cfgloopmanip.h: Same.
20078 * cgraph.h: Same.
20079 * cgraphbuild.c: Same.
20080 * combine.c (make_extraction): Same.
20081 * config/i386/i386-features.c: Same.
20082 * config/i386/i386-features.h: Same.
20083 * config/i386/i386.c (ix86_emit_outlined_ms2sysv_save): Same.
20084 (ix86_emit_outlined_ms2sysv_restore): Same.
20085 (ix86_noce_conversion_profitable_p): Same.
20086 (ix86_init_cost): Same.
20087 (ix86_simd_clone_usable): Same.
20088 * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Add -Wclass-is-pod and
20089 Wstruct-not-pod.
20090 * coretypes.h: Same.
20091 * data-streamer-in.c (string_for_index): Change class-key of PODs
20092 to struct and others to class.
20093 (streamer_read_indexed_string): Same.
20094 (streamer_read_string): Same.
20095 (bp_unpack_indexed_string): Same.
20096 (bp_unpack_string): Same.
20097 (streamer_read_uhwi): Same.
20098 (streamer_read_hwi): Same.
20099 (streamer_read_gcov_count): Same.
20100 (streamer_read_wide_int): Same.
20101 * data-streamer.h (streamer_write_bitpack): Same.
20102 (bp_unpack_value): Same.
20103 (streamer_write_char_stream): Same.
20104 (streamer_write_hwi_in_range): Same.
20105 (streamer_write_record_start): Same.
20106 * ddg.c (create_ddg_dep_from_intra_loop_link): Same.
20107 (add_cross_iteration_register_deps): Same.
20108 (build_intra_loop_deps): Same.
20109 * df-core.c (df_analyze): Same.
20110 (loop_post_order_compute): Same.
20111 (loop_inverted_post_order_compute): Same.
20112 * df-problems.c (df_rd_alloc): Same.
20113 (df_rd_simulate_one_insn): Same.
20114 (df_rd_local_compute): Same.
20115 (df_rd_init_solution): Same.
20116 (df_rd_confluence_n): Same.
20117 (df_rd_transfer_function): Same.
20118 (df_rd_free): Same.
20119 (df_rd_dump_defs_set): Same.
20120 (df_rd_top_dump): Same.
20121 (df_lr_alloc): Same.
20122 (df_lr_reset): Same.
20123 (df_lr_local_compute): Same.
20124 (df_lr_init): Same.
20125 (df_lr_confluence_n): Same.
20126 (df_lr_free): Same.
20127 (df_lr_top_dump): Same.
20128 (df_lr_verify_transfer_functions): Same.
20129 (df_live_alloc): Same.
20130 (df_live_reset): Same.
20131 (df_live_init): Same.
20132 (df_live_confluence_n): Same.
20133 (df_live_finalize): Same.
20134 (df_live_free): Same.
20135 (df_live_top_dump): Same.
20136 (df_live_verify_transfer_functions): Same.
20137 (df_mir_alloc): Same.
20138 (df_mir_reset): Same.
20139 (df_mir_init): Same.
20140 (df_mir_confluence_n): Same.
20141 (df_mir_free): Same.
20142 (df_mir_top_dump): Same.
20143 (df_word_lr_alloc): Same.
20144 (df_word_lr_reset): Same.
20145 (df_word_lr_init): Same.
20146 (df_word_lr_confluence_n): Same.
20147 (df_word_lr_free): Same.
20148 (df_word_lr_top_dump): Same.
20149 (df_md_alloc): Same.
20150 (df_md_simulate_one_insn): Same.
20151 (df_md_reset): Same.
20152 (df_md_init): Same.
20153 (df_md_free): Same.
20154 (df_md_top_dump): Same.
20155 * df-scan.c (df_insn_delete): Same.
20156 (df_insn_rescan): Same.
20157 (df_notes_rescan): Same.
20158 (df_sort_and_compress_mws): Same.
20159 (df_install_mws): Same.
20160 (df_refs_add_to_chains): Same.
20161 (df_ref_create_structure): Same.
20162 (df_ref_record): Same.
20163 (df_def_record_1): Same.
20164 (df_find_hard_reg_defs): Same.
20165 (df_uses_record): Same.
20166 (df_get_conditional_uses): Same.
20167 (df_get_call_refs): Same.
20168 (df_recompute_luids): Same.
20169 (df_get_entry_block_def_set): Same.
20170 (df_entry_block_defs_collect): Same.
20171 (df_get_exit_block_use_set): Same.
20172 (df_exit_block_uses_collect): Same.
20173 (df_mws_verify): Same.
20174 (df_bb_verify): Same.
20175 * df.h (df_scan_get_bb_info): Same.
20176 * doc/tm.texi: Same.
20177 * dse.c (record_store): Same.
20178 * dumpfile.h: Same.
20179 * emit-rtl.c (const_fixed_hasher::equal): Same.
20180 (set_mem_attributes_minus_bitpos): Same.
20181 (change_address): Same.
20182 (adjust_address_1): Same.
20183 (offset_address): Same.
20184 * emit-rtl.h: Same.
20185 * except.c (dw2_build_landing_pads): Same.
20186 (sjlj_emit_dispatch_table): Same.
20187 * explow.c (allocate_dynamic_stack_space): Same.
20188 (emit_stack_probe): Same.
20189 (probe_stack_range): Same.
20190 * expmed.c (store_bit_field_using_insv): Same.
20191 (store_bit_field_1): Same.
20192 (store_integral_bit_field): Same.
20193 (extract_bit_field_using_extv): Same.
20194 (extract_bit_field_1): Same.
20195 (emit_cstore): Same.
20196 * expr.c (emit_block_move_via_cpymem): Same.
20197 (expand_cmpstrn_or_cmpmem): Same.
20198 (set_storage_via_setmem): Same.
20199 (emit_single_push_insn_1): Same.
20200 (expand_assignment): Same.
20201 (store_constructor): Same.
20202 (expand_expr_real_2): Same.
20203 (expand_expr_real_1): Same.
20204 (try_casesi): Same.
20205 * flags.h: Same.
20206 * function.c (try_fit_stack_local): Same.
20207 (assign_stack_local_1): Same.
20208 (assign_stack_local): Same.
20209 (cut_slot_from_list): Same.
20210 (insert_slot_to_list): Same.
20211 (max_slot_level): Same.
20212 (move_slot_to_level): Same.
20213 (temp_address_hasher::equal): Same.
20214 (remove_unused_temp_slot_addresses): Same.
20215 (assign_temp): Same.
20216 (combine_temp_slots): Same.
20217 (update_temp_slot_address): Same.
20218 (preserve_temp_slots): Same.
20219 * function.h: Same.
20220 * fwprop.c: Same.
20221 * gcc-rich-location.h: Same.
20222 * gcov.c: Same.
20223 * genattrtab.c (check_attr_test): Same.
20224 (check_attr_value): Same.
20225 (convert_set_attr_alternative): Same.
20226 (convert_set_attr): Same.
20227 (check_defs): Same.
20228 (copy_boolean): Same.
20229 (get_attr_value): Same.
20230 (expand_delays): Same.
20231 (make_length_attrs): Same.
20232 (min_fn): Same.
20233 (make_alternative_compare): Same.
20234 (simplify_test_exp): Same.
20235 (tests_attr_p): Same.
20236 (get_attr_order): Same.
20237 (clear_struct_flag): Same.
20238 (gen_attr): Same.
20239 (compares_alternatives_p): Same.
20240 (gen_insn): Same.
20241 (gen_delay): Same.
20242 (find_attrs_to_cache): Same.
20243 (write_test_expr): Same.
20244 (walk_attr_value): Same.
20245 (write_attr_get): Same.
20246 (eliminate_known_true): Same.
20247 (write_insn_cases): Same.
20248 (write_attr_case): Same.
20249 (write_attr_valueq): Same.
20250 (write_attr_value): Same.
20251 (write_dummy_eligible_delay): Same.
20252 (next_comma_elt): Same.
20253 (find_attr): Same.
20254 (make_internal_attr): Same.
20255 (copy_rtx_unchanging): Same.
20256 (gen_insn_reserv): Same.
20257 (check_tune_attr): Same.
20258 (make_automaton_attrs): Same.
20259 (handle_arg): Same.
20260 * genextract.c (gen_insn): Same.
20261 (VEC_char_to_string): Same.
20262 * genmatch.c (print_operand): Same.
20263 (lower): Same.
20264 (parser::parse_operation): Same.
20265 (parser::parse_capture): Same.
20266 (parser::parse_c_expr): Same.
20267 (parser::parse_simplify): Same.
20268 (main): Same.
20269 * genoutput.c (output_operand_data): Same.
20270 (output_get_insn_name): Same.
20271 (compare_operands): Same.
20272 (place_operands): Same.
20273 (process_template): Same.
20274 (validate_insn_alternatives): Same.
20275 (validate_insn_operands): Same.
20276 (gen_expand): Same.
20277 (note_constraint): Same.
20278 * genpreds.c (write_one_predicate_function): Same.
20279 (add_constraint): Same.
20280 (process_define_register_constraint): Same.
20281 (write_lookup_constraint_1): Same.
20282 (write_lookup_constraint_array): Same.
20283 (write_insn_constraint_len): Same.
20284 (write_reg_class_for_constraint_1): Same.
20285 (write_constraint_satisfied_p_array): Same.
20286 * genrecog.c (optimize_subroutine_group): Same.
20287 * gensupport.c (process_define_predicate): Same.
20288 (queue_pattern): Same.
20289 (remove_from_queue): Same.
20290 (process_rtx): Same.
20291 (is_predicable): Same.
20292 (change_subst_attribute): Same.
20293 (subst_pattern_match): Same.
20294 (alter_constraints): Same.
20295 (alter_attrs_for_insn): Same.
20296 (shift_output_template): Same.
20297 (alter_output_for_subst_insn): Same.
20298 (process_one_cond_exec): Same.
20299 (subst_dup): Same.
20300 (process_define_cond_exec): Same.
20301 (mnemonic_htab_callback): Same.
20302 (gen_mnemonic_attr): Same.
20303 (read_md_rtx): Same.
20304 * ggc-page.c: Same.
20305 * gimple-loop-interchange.cc (dump_reduction): Same.
20306 (dump_induction): Same.
20307 (loop_cand::~loop_cand): Same.
20308 (free_data_refs_with_aux): Same.
20309 (tree_loop_interchange::interchange_loops): Same.
20310 (tree_loop_interchange::map_inductions_to_loop): Same.
20311 (tree_loop_interchange::move_code_to_inner_loop): Same.
20312 (compute_access_stride): Same.
20313 (compute_access_strides): Same.
20314 (proper_loop_form_for_interchange): Same.
20315 (tree_loop_interchange_compute_ddrs): Same.
20316 (prune_datarefs_not_in_loop): Same.
20317 (prepare_data_references): Same.
20318 (pass_linterchange::execute): Same.
20319 * gimple-loop-jam.c (bb_prevents_fusion_p): Same.
20320 (unroll_jam_possible_p): Same.
20321 (fuse_loops): Same.
20322 (adjust_unroll_factor): Same.
20323 (tree_loop_unroll_and_jam): Same.
20324 * gimple-loop-versioning.cc (loop_versioning::~loop_versioning): Same.
20325 (loop_versioning::expensive_stmt_p): Same.
20326 (loop_versioning::version_for_unity): Same.
20327 (loop_versioning::dump_inner_likelihood): Same.
20328 (loop_versioning::find_per_loop_multiplication): Same.
20329 (loop_versioning::analyze_term_using_scevs): Same.
20330 (loop_versioning::record_address_fragment): Same.
20331 (loop_versioning::analyze_expr): Same.
20332 (loop_versioning::analyze_blocks): Same.
20333 (loop_versioning::prune_conditions): Same.
20334 (loop_versioning::merge_loop_info): Same.
20335 (loop_versioning::add_loop_to_queue): Same.
20336 (loop_versioning::decide_whether_loop_is_versionable): Same.
20337 (loop_versioning::make_versioning_decisions): Same.
20338 (loop_versioning::implement_versioning_decisions): Same.
20339 * gimple-ssa-evrp-analyze.c
20340 (evrp_range_analyzer::record_ranges_from_phis): Same.
20341 * gimple-ssa-store-merging.c (split_store::split_store): Same.
20342 (count_multiple_uses): Same.
20343 (split_group): Same.
20344 (imm_store_chain_info::output_merged_store): Same.
20345 (pass_store_merging::process_store): Same.
20346 * gimple-ssa-strength-reduction.c (slsr_process_phi): Same.
20347 * gimple-ssa-warn-alloca.c (adjusted_warn_limit): Same.
20348 (is_max): Same.
20349 (alloca_call_type): Same.
20350 (pass_walloca::execute): Same.
20351 * gimple-streamer-in.c (input_phi): Same.
20352 (input_gimple_stmt): Same.
20353 * gimple-streamer.h: Same.
20354 * godump.c (go_force_record_alignment): Same.
20355 (go_format_type): Same.
20356 (go_output_type): Same.
20357 (go_output_fndecl): Same.
20358 (go_output_typedef): Same.
20359 (keyword_hash_init): Same.
20360 (find_dummy_types): Same.
20361 * graph.c (draw_cfg_nodes_no_loops): Same.
20362 (draw_cfg_nodes_for_loop): Same.
20363 * hard-reg-set.h (hard_reg_set_iter_next): Same.
20364 * hsa-brig.c: Same.
20365 * hsa-common.h (hsa_internal_fn_hasher::equal): Same.
20366 * hsa-dump.c (dump_hsa_cfun): Same.
20367 * hsa-gen.c (gen_function_def_parameters): Same.
20368 * hsa-regalloc.c (dump_hsa_cfun_regalloc): Same.
20369 * input.c (dump_line_table_statistics): Same.
20370 (test_lexer): Same.
20371 * input.h: Same.
20372 * internal-fn.c (get_multi_vector_move): Same.
20373 (expand_load_lanes_optab_fn): Same.
20374 (expand_GOMP_SIMT_ENTER_ALLOC): Same.
20375 (expand_GOMP_SIMT_EXIT): Same.
20376 (expand_GOMP_SIMT_LAST_LANE): Same.
20377 (expand_GOMP_SIMT_ORDERED_PRED): Same.
20378 (expand_GOMP_SIMT_VOTE_ANY): Same.
20379 (expand_GOMP_SIMT_XCHG_BFLY): Same.
20380 (expand_GOMP_SIMT_XCHG_IDX): Same.
20381 (expand_addsub_overflow): Same.
20382 (expand_neg_overflow): Same.
20383 (expand_mul_overflow): Same.
20384 (expand_call_mem_ref): Same.
20385 (expand_mask_load_optab_fn): Same.
20386 (expand_scatter_store_optab_fn): Same.
20387 (expand_gather_load_optab_fn): Same.
20388 * ipa-cp.c (ipa_get_parm_lattices): Same.
20389 (print_all_lattices): Same.
20390 (ignore_edge_p): Same.
20391 (build_toporder_info): Same.
20392 (free_toporder_info): Same.
20393 (push_node_to_stack): Same.
20394 (ipcp_lattice<valtype>::set_contains_variable): Same.
20395 (set_agg_lats_to_bottom): Same.
20396 (ipcp_bits_lattice::meet_with): Same.
20397 (set_single_call_flag): Same.
20398 (initialize_node_lattices): Same.
20399 (ipa_get_jf_ancestor_result): Same.
20400 (ipcp_verify_propagated_values): Same.
20401 (propagate_scalar_across_jump_function): Same.
20402 (propagate_context_across_jump_function): Same.
20403 (propagate_bits_across_jump_function): Same.
20404 (ipa_vr_operation_and_type_effects): Same.
20405 (propagate_vr_across_jump_function): Same.
20406 (set_check_aggs_by_ref): Same.
20407 (set_chain_of_aglats_contains_variable): Same.
20408 (merge_aggregate_lattices): Same.
20409 (agg_pass_through_permissible_p): Same.
20410 (propagate_aggs_across_jump_function): Same.
20411 (call_passes_through_thunk_p): Same.
20412 (propagate_constants_across_call): Same.
20413 (devirtualization_time_bonus): Same.
20414 (good_cloning_opportunity_p): Same.
20415 (context_independent_aggregate_values): Same.
20416 (gather_context_independent_values): Same.
20417 (perform_estimation_of_a_value): Same.
20418 (estimate_local_effects): Same.
20419 (value_topo_info<valtype>::add_val): Same.
20420 (add_all_node_vals_to_toposort): Same.
20421 (value_topo_info<valtype>::propagate_effects): Same.
20422 (ipcp_propagate_stage): Same.
20423 (ipcp_discover_new_direct_edges): Same.
20424 (same_node_or_its_all_contexts_clone_p): Same.
20425 (cgraph_edge_brings_value_p): Same.
20426 (gather_edges_for_value): Same.
20427 (create_specialized_node): Same.
20428 (find_more_scalar_values_for_callers_subset): Same.
20429 (find_more_contexts_for_caller_subset): Same.
20430 (copy_plats_to_inter): Same.
20431 (intersect_aggregates_with_edge): Same.
20432 (find_aggregate_values_for_callers_subset): Same.
20433 (cgraph_edge_brings_all_agg_vals_for_node): Same.
20434 (decide_about_value): Same.
20435 (decide_whether_version_node): Same.
20436 (spread_undeadness): Same.
20437 (identify_dead_nodes): Same.
20438 (ipcp_store_vr_results): Same.
20439 * ipa-devirt.c (final_warning_record::grow_type_warnings): Same.
20440 * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Same.
20441 (redirect_to_unreachable): Same.
20442 (edge_set_predicate): Same.
20443 (evaluate_conditions_for_known_args): Same.
20444 (evaluate_properties_for_edge): Same.
20445 (ipa_fn_summary_t::duplicate): Same.
20446 (ipa_call_summary_t::duplicate): Same.
20447 (dump_ipa_call_summary): Same.
20448 (ipa_dump_fn_summary): Same.
20449 (eliminated_by_inlining_prob): Same.
20450 (set_cond_stmt_execution_predicate): Same.
20451 (set_switch_stmt_execution_predicate): Same.
20452 (compute_bb_predicates): Same.
20453 (will_be_nonconstant_expr_predicate): Same.
20454 (phi_result_unknown_predicate): Same.
20455 (analyze_function_body): Same.
20456 (compute_fn_summary): Same.
20457 (estimate_edge_devirt_benefit): Same.
20458 (estimate_edge_size_and_time): Same.
20459 (estimate_calls_size_and_time): Same.
20460 (estimate_node_size_and_time): Same.
20461 (remap_edge_change_prob): Same.
20462 (remap_edge_summaries): Same.
20463 (ipa_merge_fn_summary_after_inlining): Same.
20464 (ipa_fn_summary_generate): Same.
20465 (inline_read_section): Same.
20466 (ipa_fn_summary_read): Same.
20467 (ipa_fn_summary_write): Same.
20468 * ipa-fnsummary.h: Same.
20469 * ipa-hsa.c (ipa_hsa_read_section): Same.
20470 * ipa-icf-gimple.c (func_checker::compare_loops): Same.
20471 * ipa-icf.c (sem_function::param_used_p): Same.
20472 * ipa-inline-analysis.c (do_estimate_edge_time): Same.
20473 * ipa-inline.c (edge_badness): Same.
20474 (inline_small_functions): Same.
20475 * ipa-polymorphic-call.c
20476 (ipa_polymorphic_call_context::stream_out): Same.
20477 * ipa-predicate.c (predicate::remap_after_duplication): Same.
20478 (predicate::remap_after_inlining): Same.
20479 (predicate::stream_out): Same.
20480 * ipa-predicate.h: Same.
20481 * ipa-profile.c (ipa_profile_read_summary): Same.
20482 * ipa-prop.c (ipa_get_param_decl_index_1): Same.
20483 (count_formal_params): Same.
20484 (ipa_dump_param): Same.
20485 (ipa_alloc_node_params): Same.
20486 (ipa_print_node_jump_functions_for_edge): Same.
20487 (ipa_print_node_jump_functions): Same.
20488 (ipa_load_from_parm_agg): Same.
20489 (get_ancestor_addr_info): Same.
20490 (ipa_compute_jump_functions_for_edge): Same.
20491 (ipa_analyze_virtual_call_uses): Same.
20492 (ipa_analyze_stmt_uses): Same.
20493 (ipa_analyze_params_uses_in_bb): Same.
20494 (update_jump_functions_after_inlining): Same.
20495 (try_decrement_rdesc_refcount): Same.
20496 (ipa_impossible_devirt_target): Same.
20497 (update_indirect_edges_after_inlining): Same.
20498 (combine_controlled_uses_counters): Same.
20499 (ipa_edge_args_sum_t::duplicate): Same.
20500 (ipa_write_jump_function): Same.
20501 (ipa_write_indirect_edge_info): Same.
20502 (ipa_write_node_info): Same.
20503 (ipa_read_edge_info): Same.
20504 (ipa_prop_read_section): Same.
20505 (read_replacements_section): Same.
20506 * ipa-prop.h (ipa_get_param_count): Same.
20507 (ipa_get_param): Same.
20508 (ipa_get_type): Same.
20509 (ipa_get_param_move_cost): Same.
20510 (ipa_set_param_used): Same.
20511 (ipa_get_controlled_uses): Same.
20512 (ipa_set_controlled_uses): Same.
20513 (ipa_get_cs_argument_count): Same.
20514 * ipa-pure-const.c (analyze_function): Same.
20515 (pure_const_read_summary): Same.
20516 * ipa-ref.h: Same.
20517 * ipa-reference.c (ipa_reference_read_optimization_summary): Same.
20518 * ipa-split.c (test_nonssa_use): Same.
20519 (dump_split_point): Same.
20520 (dominated_by_forbidden): Same.
20521 (split_part_set_ssa_name_p): Same.
20522 (find_split_points): Same.
20523 * ira-build.c (finish_loop_tree_nodes): Same.
20524 (low_pressure_loop_node_p): Same.
20525 * ira-color.c (ira_reuse_stack_slot): Same.
20526 * ira-int.h: Same.
20527 * ira.c (setup_reg_equiv): Same.
20528 (print_insn_chain): Same.
20529 (ira): Same.
20530 * loop-doloop.c (doloop_condition_get): Same.
20531 (add_test): Same.
20532 (record_reg_sets): Same.
20533 (doloop_optimize): Same.
20534 * loop-init.c (loop_optimizer_init): Same.
20535 (fix_loop_structure): Same.
20536 * loop-invariant.c (merge_identical_invariants): Same.
20537 (compute_always_reached): Same.
20538 (find_exits): Same.
20539 (may_assign_reg_p): Same.
20540 (find_invariants_bb): Same.
20541 (find_invariants_body): Same.
20542 (replace_uses): Same.
20543 (can_move_invariant_reg): Same.
20544 (free_inv_motion_data): Same.
20545 (move_single_loop_invariants): Same.
20546 (change_pressure): Same.
20547 (mark_ref_regs): Same.
20548 (calculate_loop_reg_pressure): Same.
20549 * loop-iv.c (biv_entry_hasher::equal): Same.
20550 (iv_extend_to_rtx_code): Same.
20551 (check_iv_ref_table_size): Same.
20552 (clear_iv_info): Same.
20553 (latch_dominating_def): Same.
20554 (iv_get_reaching_def): Same.
20555 (iv_constant): Same.
20556 (iv_subreg): Same.
20557 (iv_extend): Same.
20558 (iv_neg): Same.
20559 (iv_add): Same.
20560 (iv_mult): Same.
20561 (get_biv_step): Same.
20562 (record_iv): Same.
20563 (analyzed_for_bivness_p): Same.
20564 (record_biv): Same.
20565 (iv_analyze_biv): Same.
20566 (iv_analyze_expr): Same.
20567 (iv_analyze_def): Same.
20568 (iv_analyze_op): Same.
20569 (iv_analyze): Same.
20570 (iv_analyze_result): Same.
20571 (biv_p): Same.
20572 (eliminate_implied_conditions): Same.
20573 (simplify_using_initial_values): Same.
20574 (shorten_into_mode): Same.
20575 (canonicalize_iv_subregs): Same.
20576 (determine_max_iter): Same.
20577 (check_simple_exit): Same.
20578 (find_simple_exit): Same.
20579 (get_simple_loop_desc): Same.
20580 * loop-unroll.c (report_unroll): Same.
20581 (decide_unrolling): Same.
20582 (unroll_loops): Same.
20583 (loop_exit_at_end_p): Same.
20584 (decide_unroll_constant_iterations): Same.
20585 (unroll_loop_constant_iterations): Same.
20586 (compare_and_jump_seq): Same.
20587 (unroll_loop_runtime_iterations): Same.
20588 (decide_unroll_stupid): Same.
20589 (unroll_loop_stupid): Same.
20590 (referenced_in_one_insn_in_loop_p): Same.
20591 (reset_debug_uses_in_loop): Same.
20592 (analyze_iv_to_split_insn): Same.
20593 * lra-eliminations.c (lra_debug_elim_table): Same.
20594 (setup_can_eliminate): Same.
20595 (form_sum): Same.
20596 (lra_get_elimination_hard_regno): Same.
20597 (lra_eliminate_regs_1): Same.
20598 (eliminate_regs_in_insn): Same.
20599 (update_reg_eliminate): Same.
20600 (init_elimination): Same.
20601 (lra_eliminate): Same.
20602 * lra-int.h: Same.
20603 * lra-lives.c (initiate_live_solver): Same.
20604 * lra-remat.c (create_remat_bb_data): Same.
20605 * lra-spills.c (lra_spill): Same.
20606 * lra.c (lra_set_insn_recog_data): Same.
20607 (lra_set_used_insn_alternative_by_uid): Same.
20608 (init_reg_info): Same.
20609 (expand_reg_info): Same.
20610 * lto-cgraph.c (output_symtab): Same.
20611 (read_identifier): Same.
20612 (get_alias_symbol): Same.
20613 (input_node): Same.
20614 (input_varpool_node): Same.
20615 (input_ref): Same.
20616 (input_edge): Same.
20617 (input_cgraph_1): Same.
20618 (input_refs): Same.
20619 (input_symtab): Same.
20620 (input_offload_tables): Same.
20621 (output_cgraph_opt_summary): Same.
20622 (input_edge_opt_summary): Same.
20623 (input_cgraph_opt_section): Same.
20624 * lto-section-in.c (lto_free_raw_section_data): Same.
20625 (lto_create_simple_input_block): Same.
20626 (lto_free_function_in_decl_state_for_node): Same.
20627 * lto-streamer-in.c (lto_tag_check_set): Same.
20628 (lto_location_cache::revert_location_cache): Same.
20629 (lto_location_cache::input_location): Same.
20630 (lto_input_location): Same.
20631 (stream_input_location_now): Same.
20632 (lto_input_tree_ref): Same.
20633 (lto_input_eh_catch_list): Same.
20634 (input_eh_region): Same.
20635 (lto_init_eh): Same.
20636 (make_new_block): Same.
20637 (input_cfg): Same.
20638 (fixup_call_stmt_edges): Same.
20639 (input_struct_function_base): Same.
20640 (input_function): Same.
20641 (lto_read_body_or_constructor): Same.
20642 (lto_read_tree_1): Same.
20643 (lto_read_tree): Same.
20644 (lto_input_scc): Same.
20645 (lto_input_tree_1): Same.
20646 (lto_input_toplevel_asms): Same.
20647 (lto_input_mode_table): Same.
20648 (lto_reader_init): Same.
20649 (lto_data_in_create): Same.
20650 * lto-streamer-out.c (output_cfg): Same.
20651 * lto-streamer.h: Same.
20652 * modulo-sched.c (duplicate_insns_of_cycles): Same.
20653 (generate_prolog_epilog): Same.
20654 (mark_loop_unsched): Same.
20655 (dump_insn_location): Same.
20656 (loop_canon_p): Same.
20657 (sms_schedule): Same.
20658 * omp-expand.c (expand_omp_for_ordered_loops): Same.
20659 (expand_omp_for_generic): Same.
20660 (expand_omp_for_static_nochunk): Same.
20661 (expand_omp_for_static_chunk): Same.
20662 (expand_omp_simd): Same.
20663 (expand_omp_taskloop_for_inner): Same.
20664 (expand_oacc_for): Same.
20665 (expand_omp_atomic_pipeline): Same.
20666 (mark_loops_in_oacc_kernels_region): Same.
20667 * omp-offload.c (oacc_xform_loop): Same.
20668 * omp-simd-clone.c (simd_clone_adjust): Same.
20669 * optabs-query.c (get_traditional_extraction_insn): Same.
20670 * optabs.c (expand_vector_broadcast): Same.
20671 (expand_binop_directly): Same.
20672 (expand_twoval_unop): Same.
20673 (expand_twoval_binop): Same.
20674 (expand_unop_direct): Same.
20675 (emit_indirect_jump): Same.
20676 (emit_conditional_move): Same.
20677 (emit_conditional_neg_or_complement): Same.
20678 (emit_conditional_add): Same.
20679 (vector_compare_rtx): Same.
20680 (expand_vec_perm_1): Same.
20681 (expand_vec_perm_const): Same.
20682 (expand_vec_cond_expr): Same.
20683 (expand_vec_series_expr): Same.
20684 (maybe_emit_atomic_exchange): Same.
20685 (maybe_emit_sync_lock_test_and_set): Same.
20686 (expand_atomic_compare_and_swap): Same.
20687 (expand_atomic_load): Same.
20688 (expand_atomic_store): Same.
20689 (maybe_emit_op): Same.
20690 (valid_multiword_target_p): Same.
20691 (create_integer_operand): Same.
20692 (maybe_legitimize_operand_same_code): Same.
20693 (maybe_legitimize_operand): Same.
20694 (create_convert_operand_from_type): Same.
20695 (can_reuse_operands_p): Same.
20696 (maybe_legitimize_operands): Same.
20697 (maybe_gen_insn): Same.
20698 (maybe_expand_insn): Same.
20699 (maybe_expand_jump_insn): Same.
20700 (expand_insn): Same.
20701 * optabs.h (create_expand_operand): Same.
20702 (create_fixed_operand): Same.
20703 (create_output_operand): Same.
20704 (create_input_operand): Same.
20705 (create_convert_operand_to): Same.
20706 (create_convert_operand_from): Same.
20707 * optinfo.h: Same.
20708 * poly-int.h: Same.
20709 * predict.c (optimize_insn_for_speed_p): Same.
20710 (optimize_loop_for_size_p): Same.
20711 (optimize_loop_for_speed_p): Same.
20712 (optimize_loop_nest_for_speed_p): Same.
20713 (get_base_value): Same.
20714 (predicted_by_loop_heuristics_p): Same.
20715 (predict_extra_loop_exits): Same.
20716 (predict_loops): Same.
20717 (predict_paths_for_bb): Same.
20718 (predict_paths_leading_to): Same.
20719 (propagate_freq): Same.
20720 (pass_profile::execute): Same.
20721 * predict.h: Same.
20722 * profile-count.c (profile_count::differs_from_p): Same.
20723 (profile_probability::differs_lot_from_p): Same.
20724 * profile-count.h: Same.
20725 * profile.c (branch_prob): Same.
20726 * regrename.c (free_chain_data): Same.
20727 (mark_conflict): Same.
20728 (create_new_chain): Same.
20729 (merge_overlapping_regs): Same.
20730 (init_rename_info): Same.
20731 (merge_chains): Same.
20732 (regrename_analyze): Same.
20733 (regrename_do_replace): Same.
20734 (scan_rtx_reg): Same.
20735 (record_out_operands): Same.
20736 (build_def_use): Same.
20737 * regrename.h: Same.
20738 * reload.h: Same.
20739 * reload1.c (init_reload): Same.
20740 (maybe_fix_stack_asms): Same.
20741 (copy_reloads): Same.
20742 (count_pseudo): Same.
20743 (count_spilled_pseudo): Same.
20744 (find_reg): Same.
20745 (find_reload_regs): Same.
20746 (select_reload_regs): Same.
20747 (spill_hard_reg): Same.
20748 (fixup_eh_region_note): Same.
20749 (set_reload_reg): Same.
20750 (allocate_reload_reg): Same.
20751 (compute_reload_subreg_offset): Same.
20752 (reload_adjust_reg_for_icode): Same.
20753 (emit_input_reload_insns): Same.
20754 (emit_output_reload_insns): Same.
20755 (do_input_reload): Same.
20756 (inherit_piecemeal_p): Same.
20757 * rtl.h: Same.
20758 * sanopt.c (maybe_get_dominating_check): Same.
20759 (maybe_optimize_ubsan_ptr_ifn): Same.
20760 (can_remove_asan_check): Same.
20761 (maybe_optimize_asan_check_ifn): Same.
20762 (sanopt_optimize_walker): Same.
20763 * sched-deps.c (add_dependence_list): Same.
20764 (chain_to_prev_insn): Same.
20765 (add_insn_mem_dependence): Same.
20766 (create_insn_reg_set): Same.
20767 (maybe_extend_reg_info_p): Same.
20768 (sched_analyze_reg): Same.
20769 (sched_analyze_1): Same.
20770 (get_implicit_reg_pending_clobbers): Same.
20771 (chain_to_prev_insn_p): Same.
20772 (deps_analyze_insn): Same.
20773 (deps_start_bb): Same.
20774 (sched_free_deps): Same.
20775 (init_deps): Same.
20776 (init_deps_reg_last): Same.
20777 (free_deps): Same.
20778 * sched-ebb.c: Same.
20779 * sched-int.h: Same.
20780 * sched-rgn.c (add_branch_dependences): Same.
20781 (concat_insn_mem_list): Same.
20782 (deps_join): Same.
20783 (sched_rgn_compute_dependencies): Same.
20784 * sel-sched-ir.c (reset_target_context): Same.
20785 (copy_deps_context): Same.
20786 (init_id_from_df): Same.
20787 (has_dependence_p): Same.
20788 (change_loops_latches): Same.
20789 (bb_top_order_comparator): Same.
20790 (make_region_from_loop_preheader): Same.
20791 (sel_init_pipelining): Same.
20792 (get_loop_nest_for_rgn): Same.
20793 (make_regions_from_the_rest): Same.
20794 (sel_is_loop_preheader_p): Same.
20795 * sel-sched-ir.h (inner_loop_header_p): Same.
20796 (get_all_loop_exits): Same.
20797 * selftest.h: Same.
20798 * sese.c (sese_build_liveouts): Same.
20799 (sese_insert_phis_for_liveouts): Same.
20800 * sese.h (defined_in_sese_p): Same.
20801 * sreal.c (sreal::stream_out): Same.
20802 * sreal.h: Same.
20803 * streamer-hooks.h: Same.
20804 * target-globals.c (save_target_globals): Same.
20805 * target-globals.h: Same.
20806 * target.def: Same.
20807 * target.h: Same.
20808 * targhooks.c (default_has_ifunc_p): Same.
20809 (default_empty_mask_is_expensive): Same.
20810 (default_init_cost): Same.
20811 * targhooks.h: Same.
20812 * toplev.c: Same.
20813 * tree-affine.c (aff_combination_mult): Same.
20814 (aff_combination_expand): Same.
20815 (aff_combination_constant_multiple_p): Same.
20816 * tree-affine.h: Same.
20817 * tree-cfg.c (build_gimple_cfg): Same.
20818 (replace_loop_annotate_in_block): Same.
20819 (replace_uses_by): Same.
20820 (remove_bb): Same.
20821 (dump_cfg_stats): Same.
20822 (gimple_duplicate_sese_region): Same.
20823 (gimple_duplicate_sese_tail): Same.
20824 (move_block_to_fn): Same.
20825 (replace_block_vars_by_duplicates): Same.
20826 (move_sese_region_to_fn): Same.
20827 (print_loops_bb): Same.
20828 (print_loop): Same.
20829 (print_loops): Same.
20830 (debug): Same.
20831 (debug_loops): Same.
20832 * tree-cfg.h: Same.
20833 * tree-chrec.c (chrec_fold_plus_poly_poly): Same.
20834 (chrec_fold_multiply_poly_poly): Same.
20835 (chrec_evaluate): Same.
20836 (chrec_component_in_loop_num): Same.
20837 (reset_evolution_in_loop): Same.
20838 (is_multivariate_chrec): Same.
20839 (chrec_contains_symbols): Same.
20840 (nb_vars_in_chrec): Same.
20841 (chrec_convert_1): Same.
20842 (chrec_convert_aggressive): Same.
20843 * tree-chrec.h: Same.
20844 * tree-core.h: Same.
20845 * tree-data-ref.c (dump_data_dependence_relation): Same.
20846 (canonicalize_base_object_address): Same.
20847 (data_ref_compare_tree): Same.
20848 (prune_runtime_alias_test_list): Same.
20849 (get_segment_min_max): Same.
20850 (create_intersect_range_checks): Same.
20851 (conflict_fn_no_dependence): Same.
20852 (object_address_invariant_in_loop_p): Same.
20853 (analyze_ziv_subscript): Same.
20854 (analyze_siv_subscript_cst_affine): Same.
20855 (analyze_miv_subscript): Same.
20856 (analyze_overlapping_iterations): Same.
20857 (build_classic_dist_vector_1): Same.
20858 (add_other_self_distances): Same.
20859 (same_access_functions): Same.
20860 (build_classic_dir_vector): Same.
20861 (subscript_dependence_tester_1): Same.
20862 (subscript_dependence_tester): Same.
20863 (access_functions_are_affine_or_constant_p): Same.
20864 (get_references_in_stmt): Same.
20865 (loop_nest_has_data_refs): Same.
20866 (graphite_find_data_references_in_stmt): Same.
20867 (find_data_references_in_bb): Same.
20868 (get_base_for_alignment): Same.
20869 (find_loop_nest_1): Same.
20870 (find_loop_nest): Same.
20871 * tree-data-ref.h (dr_alignment): Same.
20872 (ddr_dependence_level): Same.
20873 * tree-if-conv.c (fold_build_cond_expr): Same.
20874 (add_to_predicate_list): Same.
20875 (add_to_dst_predicate_list): Same.
20876 (phi_convertible_by_degenerating_args): Same.
20877 (idx_within_array_bound): Same.
20878 (all_preds_critical_p): Same.
20879 (pred_blocks_visited_p): Same.
20880 (predicate_bbs): Same.
20881 (build_region): Same.
20882 (if_convertible_loop_p_1): Same.
20883 (is_cond_scalar_reduction): Same.
20884 (predicate_scalar_phi): Same.
20885 (remove_conditions_and_labels): Same.
20886 (combine_blocks): Same.
20887 (version_loop_for_if_conversion): Same.
20888 (versionable_outer_loop_p): Same.
20889 (ifcvt_local_dce): Same.
20890 (tree_if_conversion): Same.
20891 (pass_if_conversion::gate): Same.
20892 * tree-if-conv.h: Same.
20893 * tree-inline.c (maybe_move_debug_stmts_to_successors): Same.
20894 * tree-loop-distribution.c (bb_top_order_cmp): Same.
20895 (free_rdg): Same.
20896 (stmt_has_scalar_dependences_outside_loop): Same.
20897 (copy_loop_before): Same.
20898 (create_bb_after_loop): Same.
20899 (const_with_all_bytes_same): Same.
20900 (generate_memset_builtin): Same.
20901 (generate_memcpy_builtin): Same.
20902 (destroy_loop): Same.
20903 (build_rdg_partition_for_vertex): Same.
20904 (compute_access_range): Same.
20905 (data_ref_segment_size): Same.
20906 (latch_dominated_by_data_ref): Same.
20907 (compute_alias_check_pairs): Same.
20908 (fuse_memset_builtins): Same.
20909 (finalize_partitions): Same.
20910 (find_seed_stmts_for_distribution): Same.
20911 (prepare_perfect_loop_nest): Same.
20912 * tree-parloops.c (lambda_transform_legal_p): Same.
20913 (loop_parallel_p): Same.
20914 (reduc_stmt_res): Same.
20915 (add_field_for_name): Same.
20916 (create_call_for_reduction_1): Same.
20917 (replace_uses_in_bb_by): Same.
20918 (transform_to_exit_first_loop_alt): Same.
20919 (try_transform_to_exit_first_loop_alt): Same.
20920 (transform_to_exit_first_loop): Same.
20921 (num_phis): Same.
20922 (gen_parallel_loop): Same.
20923 (gather_scalar_reductions): Same.
20924 (get_omp_data_i_param): Same.
20925 (try_create_reduction_list): Same.
20926 (oacc_entry_exit_single_gang): Same.
20927 (parallelize_loops): Same.
20928 * tree-pass.h: Same.
20929 * tree-predcom.c (determine_offset): Same.
20930 (last_always_executed_block): Same.
20931 (split_data_refs_to_components): Same.
20932 (suitable_component_p): Same.
20933 (valid_initializer_p): Same.
20934 (find_looparound_phi): Same.
20935 (insert_looparound_copy): Same.
20936 (add_looparound_copies): Same.
20937 (determine_roots_comp): Same.
20938 (predcom_tmp_var): Same.
20939 (initialize_root_vars): Same.
20940 (initialize_root_vars_store_elim_1): Same.
20941 (initialize_root_vars_store_elim_2): Same.
20942 (finalize_eliminated_stores): Same.
20943 (initialize_root_vars_lm): Same.
20944 (remove_stmt): Same.
20945 (determine_unroll_factor): Same.
20946 (execute_pred_commoning_cbck): Same.
20947 (base_names_in_chain_on): Same.
20948 (combine_chains): Same.
20949 (pcom_stmt_dominates_stmt_p): Same.
20950 (try_combine_chains): Same.
20951 (prepare_initializers_chain_store_elim): Same.
20952 (prepare_initializers_chain): Same.
20953 (prepare_initializers): Same.
20954 (prepare_finalizers_chain): Same.
20955 (prepare_finalizers): Same.
20956 (insert_init_seqs): Same.
20957 * tree-scalar-evolution.c (loop_phi_node_p): Same.
20958 (compute_overall_effect_of_inner_loop): Same.
20959 (add_to_evolution_1): Same.
20960 (add_to_evolution): Same.
20961 (follow_ssa_edge_binary): Same.
20962 (follow_ssa_edge_expr): Same.
20963 (backedge_phi_arg_p): Same.
20964 (follow_ssa_edge_in_condition_phi_branch): Same.
20965 (follow_ssa_edge_in_condition_phi): Same.
20966 (follow_ssa_edge_inner_loop_phi): Same.
20967 (follow_ssa_edge): Same.
20968 (analyze_evolution_in_loop): Same.
20969 (analyze_initial_condition): Same.
20970 (interpret_loop_phi): Same.
20971 (interpret_condition_phi): Same.
20972 (interpret_rhs_expr): Same.
20973 (interpret_expr): Same.
20974 (interpret_gimple_assign): Same.
20975 (analyze_scalar_evolution_1): Same.
20976 (analyze_scalar_evolution): Same.
20977 (analyze_scalar_evolution_for_address_of): Same.
20978 (get_instantiated_value_entry): Same.
20979 (loop_closed_phi_def): Same.
20980 (instantiate_scev_name): Same.
20981 (instantiate_scev_poly): Same.
20982 (instantiate_scev_binary): Same.
20983 (instantiate_scev_convert): Same.
20984 (instantiate_scev_not): Same.
20985 (instantiate_scev_r): Same.
20986 (instantiate_scev): Same.
20987 (resolve_mixers): Same.
20988 (initialize_scalar_evolutions_analyzer): Same.
20989 (scev_reset_htab): Same.
20990 (scev_reset): Same.
20991 (derive_simple_iv_with_niters): Same.
20992 (simple_iv_with_niters): Same.
20993 (expression_expensive_p): Same.
20994 (final_value_replacement_loop): Same.
20995 * tree-scalar-evolution.h (block_before_loop): Same.
20996 * tree-ssa-address.h: Same.
20997 * tree-ssa-dce.c (find_obviously_necessary_stmts): Same.
20998 * tree-ssa-dom.c (edge_info::record_simple_equiv): Same.
20999 (record_edge_info): Same.
21000 * tree-ssa-live.c (var_map_base_fini): Same.
21001 (remove_unused_locals): Same.
21002 * tree-ssa-live.h: Same.
21003 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Same.
21004 (pass_ch_vect::execute): Same.
21005 (pass_ch::process_loop_p): Same.
21006 * tree-ssa-loop-im.c (mem_ref_hasher::hash): Same.
21007 (movement_possibility): Same.
21008 (outermost_invariant_loop): Same.
21009 (stmt_cost): Same.
21010 (determine_max_movement): Same.
21011 (invariantness_dom_walker::before_dom_children): Same.
21012 (move_computations): Same.
21013 (may_move_till): Same.
21014 (force_move_till_op): Same.
21015 (force_move_till): Same.
21016 (memref_free): Same.
21017 (record_mem_ref_loc): Same.
21018 (set_ref_stored_in_loop): Same.
21019 (mark_ref_stored): Same.
21020 (sort_bbs_in_loop_postorder_cmp): Same.
21021 (sort_locs_in_loop_postorder_cmp): Same.
21022 (analyze_memory_references): Same.
21023 (mem_refs_may_alias_p): Same.
21024 (find_ref_loc_in_loop_cmp): Same.
21025 (rewrite_mem_ref_loc::operator): Same.
21026 (first_mem_ref_loc_1::operator): Same.
21027 (sm_set_flag_if_changed::operator): Same.
21028 (execute_sm_if_changed_flag_set): Same.
21029 (execute_sm): Same.
21030 (hoist_memory_references): Same.
21031 (ref_always_accessed::operator): Same.
21032 (refs_independent_p): Same.
21033 (record_dep_loop): Same.
21034 (ref_indep_loop_p_1): Same.
21035 (ref_indep_loop_p): Same.
21036 (can_sm_ref_p): Same.
21037 (find_refs_for_sm): Same.
21038 (loop_suitable_for_sm): Same.
21039 (store_motion_loop): Same.
21040 (store_motion): Same.
21041 (fill_always_executed_in): Same.
21042 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Same.
21043 (estimated_unrolled_size): Same.
21044 (loop_edge_to_cancel): Same.
21045 (remove_exits_and_undefined_stmts): Same.
21046 (remove_redundant_iv_tests): Same.
21047 (unloop_loops): Same.
21048 (estimated_peeled_sequence_size): Same.
21049 (try_peel_loop): Same.
21050 (canonicalize_loop_induction_variables): Same.
21051 (canonicalize_induction_variables): Same.
21052 * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher::equal): Same.
21053 (name_info): Same.
21054 (stmt_after_inc_pos): Same.
21055 (contains_abnormal_ssa_name_p): Same.
21056 (niter_for_exit): Same.
21057 (find_bivs): Same.
21058 (mark_bivs): Same.
21059 (find_givs_in_bb): Same.
21060 (find_induction_variables): Same.
21061 (find_interesting_uses_cond): Same.
21062 (outermost_invariant_loop_for_expr): Same.
21063 (idx_find_step): Same.
21064 (add_candidate_1): Same.
21065 (add_iv_candidate_derived_from_uses): Same.
21066 (alloc_use_cost_map): Same.
21067 (prepare_decl_rtl): Same.
21068 (generic_predict_doloop_p): Same.
21069 (computation_cost): Same.
21070 (determine_common_wider_type): Same.
21071 (get_computation_aff_1): Same.
21072 (get_use_type): Same.
21073 (determine_group_iv_cost_address): Same.
21074 (iv_period): Same.
21075 (difference_cannot_overflow_p): Same.
21076 (may_eliminate_iv): Same.
21077 (determine_set_costs): Same.
21078 (cheaper_cost_pair): Same.
21079 (compare_cost_pair): Same.
21080 (iv_ca_cand_for_group): Same.
21081 (iv_ca_recount_cost): Same.
21082 (iv_ca_set_remove_invs): Same.
21083 (iv_ca_set_no_cp): Same.
21084 (iv_ca_set_add_invs): Same.
21085 (iv_ca_set_cp): Same.
21086 (iv_ca_add_group): Same.
21087 (iv_ca_cost): Same.
21088 (iv_ca_compare_deps): Same.
21089 (iv_ca_delta_reverse): Same.
21090 (iv_ca_delta_commit): Same.
21091 (iv_ca_cand_used_p): Same.
21092 (iv_ca_delta_free): Same.
21093 (iv_ca_new): Same.
21094 (iv_ca_free): Same.
21095 (iv_ca_dump): Same.
21096 (iv_ca_extend): Same.
21097 (iv_ca_narrow): Same.
21098 (iv_ca_prune): Same.
21099 (cheaper_cost_with_cand): Same.
21100 (iv_ca_replace): Same.
21101 (try_add_cand_for): Same.
21102 (get_initial_solution): Same.
21103 (try_improve_iv_set): Same.
21104 (find_optimal_iv_set_1): Same.
21105 (create_new_iv): Same.
21106 (rewrite_use_compare): Same.
21107 (remove_unused_ivs): Same.
21108 (determine_scaling_factor): Same.
21109 * tree-ssa-loop-ivopts.h: Same.
21110 * tree-ssa-loop-manip.c (create_iv): Same.
21111 (compute_live_loop_exits): Same.
21112 (add_exit_phi): Same.
21113 (add_exit_phis): Same.
21114 (find_uses_to_rename_use): Same.
21115 (find_uses_to_rename_def): Same.
21116 (find_uses_to_rename_in_loop): Same.
21117 (rewrite_into_loop_closed_ssa): Same.
21118 (check_loop_closed_ssa_bb): Same.
21119 (split_loop_exit_edge): Same.
21120 (ip_end_pos): Same.
21121 (ip_normal_pos): Same.
21122 (copy_phi_node_args): Same.
21123 (gimple_duplicate_loop_to_header_edge): Same.
21124 (can_unroll_loop_p): Same.
21125 (determine_exit_conditions): Same.
21126 (scale_dominated_blocks_in_loop): Same.
21127 (niter_for_unrolled_loop): Same.
21128 (tree_transform_and_unroll_loop): Same.
21129 (rewrite_all_phi_nodes_with_iv): Same.
21130 * tree-ssa-loop-manip.h: Same.
21131 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Same.
21132 (number_of_iterations_ne): Same.
21133 (assert_no_overflow_lt): Same.
21134 (assert_loop_rolls_lt): Same.
21135 (number_of_iterations_lt): Same.
21136 (adjust_cond_for_loop_until_wrap): Same.
21137 (tree_simplify_using_condition): Same.
21138 (simplify_using_initial_conditions): Same.
21139 (simplify_using_outer_evolutions): Same.
21140 (loop_only_exit_p): Same.
21141 (ssa_defined_by_minus_one_stmt_p): Same.
21142 (number_of_iterations_popcount): Same.
21143 (number_of_iterations_exit): Same.
21144 (find_loop_niter): Same.
21145 (finite_loop_p): Same.
21146 (chain_of_csts_start): Same.
21147 (get_val_for): Same.
21148 (loop_niter_by_eval): Same.
21149 (derive_constant_upper_bound_ops): Same.
21150 (do_warn_aggressive_loop_optimizations): Same.
21151 (record_estimate): Same.
21152 (get_cst_init_from_scev): Same.
21153 (record_nonwrapping_iv): Same.
21154 (idx_infer_loop_bounds): Same.
21155 (infer_loop_bounds_from_ref): Same.
21156 (infer_loop_bounds_from_array): Same.
21157 (infer_loop_bounds_from_pointer_arith): Same.
21158 (infer_loop_bounds_from_signedness): Same.
21159 (bound_index): Same.
21160 (discover_iteration_bound_by_body_walk): Same.
21161 (maybe_lower_iteration_bound): Same.
21162 (estimate_numbers_of_iterations): Same.
21163 (estimated_loop_iterations): Same.
21164 (estimated_loop_iterations_int): Same.
21165 (max_loop_iterations): Same.
21166 (max_loop_iterations_int): Same.
21167 (likely_max_loop_iterations): Same.
21168 (likely_max_loop_iterations_int): Same.
21169 (estimated_stmt_executions_int): Same.
21170 (max_stmt_executions): Same.
21171 (likely_max_stmt_executions): Same.
21172 (estimated_stmt_executions): Same.
21173 (stmt_dominates_stmt_p): Same.
21174 (nowrap_type_p): Same.
21175 (loop_exits_before_overflow): Same.
21176 (scev_var_range_cant_overflow): Same.
21177 (scev_probably_wraps_p): Same.
21178 (free_numbers_of_iterations_estimates): Same.
21179 * tree-ssa-loop-niter.h: Same.
21180 * tree-ssa-loop-prefetch.c (release_mem_refs): Same.
21181 (idx_analyze_ref): Same.
21182 (analyze_ref): Same.
21183 (gather_memory_references_ref): Same.
21184 (mark_nontemporal_store): Same.
21185 (emit_mfence_after_loop): Same.
21186 (may_use_storent_in_loop_p): Same.
21187 (mark_nontemporal_stores): Same.
21188 (should_unroll_loop_p): Same.
21189 (volume_of_dist_vector): Same.
21190 (add_subscript_strides): Same.
21191 (self_reuse_distance): Same.
21192 (insn_to_prefetch_ratio_too_small_p): Same.
21193 * tree-ssa-loop-split.c (split_at_bb_p): Same.
21194 (patch_loop_exit): Same.
21195 (find_or_create_guard_phi): Same.
21196 (easy_exit_values): Same.
21197 (connect_loop_phis): Same.
21198 (connect_loops): Same.
21199 (compute_new_first_bound): Same.
21200 (split_loop): Same.
21201 (tree_ssa_split_loops): Same.
21202 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Same.
21203 (is_maybe_undefined): Same.
21204 (tree_may_unswitch_on): Same.
21205 (simplify_using_entry_checks): Same.
21206 (tree_unswitch_single_loop): Same.
21207 (tree_unswitch_loop): Same.
21208 (tree_unswitch_outer_loop): Same.
21209 (empty_bb_without_guard_p): Same.
21210 (used_outside_loop_p): Same.
21211 (get_vop_from_header): Same.
21212 (hoist_guard): Same.
21213 * tree-ssa-loop.c (gate_oacc_kernels): Same.
21214 (get_lsm_tmp_name): Same.
21215 * tree-ssa-loop.h: Same.
21216 * tree-ssa-reassoc.c (add_repeat_to_ops_vec): Same.
21217 (build_and_add_sum): Same.
21218 (no_side_effect_bb): Same.
21219 (get_ops): Same.
21220 (linearize_expr): Same.
21221 (should_break_up_subtract): Same.
21222 (linearize_expr_tree): Same.
21223 * tree-ssa-scopedtables.c: Same.
21224 * tree-ssa-scopedtables.h: Same.
21225 * tree-ssa-structalias.c (condense_visit): Same.
21226 (label_visit): Same.
21227 (dump_pred_graph): Same.
21228 (perform_var_substitution): Same.
21229 (move_complex_constraints): Same.
21230 (remove_preds_and_fake_succs): Same.
21231 * tree-ssa-threadupdate.c (dbds_continue_enumeration_p): Same.
21232 (determine_bb_domination_status): Same.
21233 (duplicate_thread_path): Same.
21234 (thread_through_all_blocks): Same.
21235 * tree-ssa-threadupdate.h: Same.
21236 * tree-streamer-in.c (streamer_read_string_cst): Same.
21237 (input_identifier): Same.
21238 (unpack_ts_type_common_value_fields): Same.
21239 (unpack_ts_block_value_fields): Same.
21240 (unpack_ts_translation_unit_decl_value_fields): Same.
21241 (unpack_ts_omp_clause_value_fields): Same.
21242 (streamer_read_tree_bitfields): Same.
21243 (streamer_alloc_tree): Same.
21244 (lto_input_ts_common_tree_pointers): Same.
21245 (lto_input_ts_vector_tree_pointers): Same.
21246 (lto_input_ts_poly_tree_pointers): Same.
21247 (lto_input_ts_complex_tree_pointers): Same.
21248 (lto_input_ts_decl_minimal_tree_pointers): Same.
21249 (lto_input_ts_decl_common_tree_pointers): Same.
21250 (lto_input_ts_decl_non_common_tree_pointers): Same.
21251 (lto_input_ts_decl_with_vis_tree_pointers): Same.
21252 (lto_input_ts_field_decl_tree_pointers): Same.
21253 (lto_input_ts_function_decl_tree_pointers): Same.
21254 (lto_input_ts_type_common_tree_pointers): Same.
21255 (lto_input_ts_type_non_common_tree_pointers): Same.
21256 (lto_input_ts_list_tree_pointers): Same.
21257 (lto_input_ts_vec_tree_pointers): Same.
21258 (lto_input_ts_exp_tree_pointers): Same.
21259 (lto_input_ts_block_tree_pointers): Same.
21260 (lto_input_ts_binfo_tree_pointers): Same.
21261 (lto_input_ts_constructor_tree_pointers): Same.
21262 (lto_input_ts_omp_clause_tree_pointers): Same.
21263 (streamer_read_tree_body): Same.
21264 * tree-streamer.h: Same.
21265 * tree-switch-conversion.c (bit_test_cluster::is_beneficial): Same.
21266 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Same.
21267 (vect_analyze_possibly_independent_ddr): Same.
21268 (vect_analyze_data_ref_dependence): Same.
21269 (vect_compute_data_ref_alignment): Same.
21270 (vect_enhance_data_refs_alignment): Same.
21271 (vect_analyze_data_ref_access): Same.
21272 (vect_check_gather_scatter): Same.
21273 (vect_find_stmt_data_reference): Same.
21274 (vect_create_addr_base_for_vector_ref): Same.
21275 (vect_setup_realignment): Same.
21276 (vect_supportable_dr_alignment): Same.
21277 * tree-vect-loop-manip.c (rename_variables_in_bb): Same.
21278 (adjust_phi_and_debug_stmts): Same.
21279 (vect_set_loop_mask): Same.
21280 (add_preheader_seq): Same.
21281 (vect_maybe_permute_loop_masks): Same.
21282 (vect_set_loop_masks_directly): Same.
21283 (vect_set_loop_condition_masked): Same.
21284 (vect_set_loop_condition_unmasked): Same.
21285 (slpeel_duplicate_current_defs_from_edges): Same.
21286 (slpeel_add_loop_guard): Same.
21287 (slpeel_can_duplicate_loop_p): Same.
21288 (create_lcssa_for_virtual_phi): Same.
21289 (iv_phi_p): Same.
21290 (vect_update_ivs_after_vectorizer): Same.
21291 (vect_gen_vector_loop_niters_mult_vf): Same.
21292 (slpeel_update_phi_nodes_for_loops): Same.
21293 (slpeel_update_phi_nodes_for_guard1): Same.
21294 (find_guard_arg): Same.
21295 (slpeel_update_phi_nodes_for_guard2): Same.
21296 (slpeel_update_phi_nodes_for_lcssa): Same.
21297 (vect_do_peeling): Same.
21298 (vect_create_cond_for_alias_checks): Same.
21299 (vect_loop_versioning): Same.
21300 * tree-vect-loop.c (vect_determine_vf_for_stmt): Same.
21301 (vect_inner_phi_in_double_reduction_p): Same.
21302 (vect_analyze_scalar_cycles_1): Same.
21303 (vect_fixup_scalar_cycles_with_patterns): Same.
21304 (vect_get_loop_niters): Same.
21305 (bb_in_loop_p): Same.
21306 (vect_get_max_nscalars_per_iter): Same.
21307 (vect_verify_full_masking): Same.
21308 (vect_compute_single_scalar_iteration_cost): Same.
21309 (vect_analyze_loop_form_1): Same.
21310 (vect_analyze_loop_form): Same.
21311 (vect_active_double_reduction_p): Same.
21312 (vect_analyze_loop_operations): Same.
21313 (neutral_op_for_slp_reduction): Same.
21314 (vect_is_simple_reduction): Same.
21315 (vect_model_reduction_cost): Same.
21316 (get_initial_def_for_reduction): Same.
21317 (get_initial_defs_for_reduction): Same.
21318 (vect_create_epilog_for_reduction): Same.
21319 (vectorize_fold_left_reduction): Same.
21320 (vectorizable_reduction): Same.
21321 (vectorizable_induction): Same.
21322 (vectorizable_live_operation): Same.
21323 (loop_niters_no_overflow): Same.
21324 (vect_get_loop_mask): Same.
21325 (vect_transform_loop_stmt): Same.
21326 (vect_transform_loop): Same.
21327 * tree-vect-patterns.c (vect_reassociating_reduction_p): Same.
21328 (vect_determine_precisions): Same.
21329 (vect_pattern_recog_1): Same.
21330 * tree-vect-slp.c (vect_analyze_slp_instance): Same.
21331 * tree-vect-stmts.c (stmt_vectype): Same.
21332 (process_use): Same.
21333 (vect_init_vector_1): Same.
21334 (vect_truncate_gather_scatter_offset): Same.
21335 (get_group_load_store_type): Same.
21336 (vect_build_gather_load_calls): Same.
21337 (vect_get_strided_load_store_ops): Same.
21338 (vectorizable_simd_clone_call): Same.
21339 (vectorizable_store): Same.
21340 (permute_vec_elements): Same.
21341 (vectorizable_load): Same.
21342 (vect_transform_stmt): Same.
21343 (supportable_widening_operation): Same.
21344 * tree-vectorizer.c (vec_info::replace_stmt): Same.
21345 (vec_info::free_stmt_vec_info): Same.
21346 (vect_free_loop_info_assumptions): Same.
21347 (vect_loop_vectorized_call): Same.
21348 (set_uid_loop_bbs): Same.
21349 (vectorize_loops): Same.
21350 * tree-vectorizer.h (STMT_VINFO_BB_VINFO): Same.
21351 * tree.c (add_tree_to_fld_list): Same.
21352 (fld_type_variant_equal_p): Same.
21353 (fld_decl_context): Same.
21354 (fld_incomplete_type_of): Same.
21355 (free_lang_data_in_binfo): Same.
21356 (need_assembler_name_p): Same.
21357 (find_decls_types_r): Same.
21358 (get_eh_types_for_runtime): Same.
21359 (find_decls_types_in_eh_region): Same.
21360 (find_decls_types_in_node): Same.
21361 (assign_assembler_name_if_needed): Same.
21362 * value-prof.c (stream_out_histogram_value): Same.
21363 * value-prof.h: Same.
21364 * var-tracking.c (use_narrower_mode): Same.
21365 (prepare_call_arguments): Same.
21366 (vt_expand_loc_callback): Same.
21367 (resolve_expansions_pending_recursion): Same.
21368 (vt_expand_loc): Same.
21369 * varasm.c (const_hash_1): Same.
21370 (compare_constant): Same.
21371 (tree_output_constant_def): Same.
21372 (simplify_subtraction): Same.
21373 (get_pool_constant): Same.
21374 (output_constant_pool_2): Same.
21375 (output_constant_pool_1): Same.
21376 (mark_constants_in_pattern): Same.
21377 (mark_constant_pool): Same.
21378 (get_section_anchor): Same.
21379 * vr-values.c (compare_range_with_value): Same.
21380 (vr_values::extract_range_from_phi_node): Same.
21381 * vr-values.h: Same.
21382 * web.c (unionfind_union): Same.
21383 * wide-int.h: Same.
21384
21385 2019-07-09 Martin Sebor <msebor@redhat.com>
21386
21387 PR c++/61339
21388 * align.h: Change class-key from class to struct and vice versa
21389 to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod.
21390 * alloc-pool.h: Same.
21391 * asan.c (shadow_mem_size): Same.
21392 * auto-profile.c: Same.
21393 * basic-block.h: Same.
21394 * bitmap.h: Same.
21395 * cfgexpand.c (set_rtl): Same.
21396 (expand_one_stack_var_at): Same.
21397 * cfghooks.h: Same.
21398 * cfgloop.h: Same.
21399 * cgraph.h: Same.
21400 * config/i386/i386.h: Same.
21401 * df-problems.c (df_print_bb_index): Same.
21402 * df-scan.c: Same.
21403 * df.h (df_single_use): Same.
21404 * diagnostic-show-locus.c (layout::print_annotation_line): Same.
21405 (layout::annotation_line_showed_range_p): Same.
21406 (get_printed_columns): Same.
21407 (correction::ensure_terminated): Same.
21408 (line_corrections::~line_corrections): Same.
21409 * dojump.h: Same.
21410 * dse.c: Same.
21411 * dump-context.h: Same.
21412 * dumpfile.h: Same.
21413 * dwarf2out.c: Same.
21414 * edit-context.c: Same.
21415 * fibonacci_heap.c (test_union_of_equal_heaps): Same.
21416 * flags.h: Same.
21417 * function.c (assign_stack_local): Same.
21418 * function.h: Same.
21419 * gcc.c: Same.
21420 * gcov.c (block_info::block_info): Same.
21421 * genattrtab.c: Same.
21422 * genextract.c: Same.
21423 * genmatch.c (comparison_code_p): Same.
21424 (id_base::id_base): Same.
21425 (decision_tree::print): Same.
21426 * genoutput.c: Same.
21427 * genpreds.c (write_one_predicate_function): Same.
21428 * genrecog.c (validate_pattern): Same.
21429 (find_operand_positions): Same.
21430 (optimize_subroutine_group): Same.
21431 (merge_pattern_transition::merge_pattern_transition): Same.
21432 (merge_pattern_info::merge_pattern_info): Same.
21433 (merge_state_result::merge_state_result): Same.
21434 (merge_into_state): Same.
21435 * gensupport.c: Same.
21436 * gensupport.h: Same.
21437 * ggc-common.c (init_ggc_heuristics): Same.
21438 * ggc-tests.c (test_union): Same.
21439 * gimple-loop-interchange.cc (dump_induction): Same.
21440 * gimple-loop-versioning.cc: Same.
21441 * gimple-match.h (gimple_match_cond::any_else): Same.
21442 * gimple-ssa-backprop.c: Same.
21443 * gimple-ssa-sprintf.c: Same.
21444 * gimple-ssa-store-merging.c (store_operand_info::store_operand_info):
21445 Same.
21446 (store_immediate_info::store_immediate_info): Same.
21447 (merged_store_group::apply_stores): Same.
21448 (get_location_for_stmts): Same.
21449 * gimple-ssa-strength-reduction.c: Same.
21450 * gimple-ssa-warn-alloca.c: Same.
21451 * gimple-ssa-warn-restrict.c (pass_wrestrict::execute): Same.
21452 * godump.c (go_type_decl): Same.
21453 * hash-map-tests.c (test_map_of_strings_to_int): Same.
21454 * hash-map.h: Same.
21455 * hash-set-tests.c (test_set_of_strings): Same.
21456 * hsa-brig.c: Same.
21457 * hsa-common.h: Same.
21458 * hsa-gen.c (transformable_switch_to_sbr_p): Same.
21459 * input.c (assert_loceq): Same.
21460 * input.h: Same.
21461 * ipa-cp.c: Same.
21462 * ipa-devirt.c (possible_polymorphic_call_targets_1): Same.
21463 * ipa-fnsummary.h: Same.
21464 * ipa-inline.h: Same.
21465 * ipa-prop.h: Same.
21466 * ipa-split.c (visit_bb): Same.
21467 * ira-int.h (minmax_set_iter_next): Same.
21468 * loop-invariant.c: Same.
21469 * loop-iv.c: Same.
21470 * lra-eliminations.c: Same.
21471 * lra-int.h: Same.
21472 * lra-lives.c (mark_regno_dead): Same.
21473 * lra-remat.c: Same.
21474 * lra-spills.c: Same.
21475 * lto-streamer.h: Same.
21476 * mem-stats.h: Same.
21477 * omp-grid.c (omp_grid_lastprivate_predicate): Same.
21478 * omp-low.c (omp_clause_aligned_alignment): Same.
21479 * optabs-query.h (get_vcond_eq_icode): Same.
21480 * optabs.h: Same.
21481 * opts.c (wrap_help): Same.
21482 * poly-int.h: Same.
21483 * predict.c (predict_paths_leading_to_edge): Same.
21484 * pretty-print.h: Same.
21485 * profile-count.h: Same.
21486 * read-md.h: Same.
21487 * read-rtl-function.c: Same.
21488 * ree.c: Same.
21489 * reginfo.c: Same.
21490 * regrename.c: Same.
21491 * regrename.h: Same.
21492 * reload.h: Same.
21493 * rtl-iter.h: Same.
21494 * rtl.h (costs_add_n_insns): Same.
21495 * sanopt.c: Same.
21496 * sched-int.h: Same.
21497 * sel-sched-ir.h: Same.
21498 * selftest.h: Same.
21499 * sese.h (vec_find): Same.
21500 * stmt.c: Same.
21501 * target-globals.h: Same.
21502 * tree-affine.c (aff_combination_find_elt): Same.
21503 * tree-affine.h: Same.
21504 * tree-data-ref.h: Same.
21505 * tree-outof-ssa.c (ssa_is_replaceable_p): Same.
21506 * tree-predcom.c: Same.
21507 * tree-scalar-evolution.c (find_var_scev_info): Same.
21508 * tree-ssa-alias.h: Same.
21509 * tree-ssa-ccp.c: Same.
21510 * tree-ssa-coalesce.c (ssa_conflicts_dump): Same.
21511 * tree-ssa-loop-im.c (for_all_locs_in_loop): Same.
21512 (rewrite_mem_refs): Same.
21513 (execute_sm_if_changed): Same.
21514 (hoist_memory_references): Same.
21515 * tree-ssa-loop-ivopts.c (operator<=): Same.
21516 * tree-ssa-loop.h: Same.
21517 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Same.
21518 * tree-ssa-structalias.c: Same.
21519 * tree-switch-conversion.h (cluster::cluster): Same.
21520 (simple_cluster::simple_cluster): Same.
21521 * tree-vect-patterns.c (type_conversion_p): Same.
21522 * tree-vectorizer.c (dump_stmt_cost): Same.
21523 * tree-vectorizer.h (loop_vec_info_for_loop): Same.
21524 * tree.c (protected_set_expr_location): Same.
21525 * tree.h (desired_pro_or_demotion_p): Same.
21526 (fndecl_built_in_p): Same.
21527 * unique-ptr-tests.cc: Same.
21528 * var-tracking.c (delete_variable_part): Same.
21529 * varasm.c (assemble_real): Same.
21530 (tree_output_constant_def): Same.
21531 * vec.c: Same.
21532 * wide-int-bitmask.h: Same.
21533 * wide-int.h (decompose): Same.
21534
21535 2019-07-09 Richard Biener <rguenther@suse.de>
21536
21537 PR tree-optimization/91114
21538 * tree-vect-data-refs.c (vect_analyze_data_refs): Failure to
21539 find a vector type isn't fatal.
21540
21541 2019-07-09 Sylvia Taylor <sylvia.taylor@arm.com>
21542
21543 * config/aarch64/aarch64-simd.md
21544 (aarch64_crypto_aes<aes_op>v16qi): Redefine pattern with xor.
21545 (aarch64_crypto_aes<aesmc_op>v16qi): Remove attribute enabled.
21546 (*aarch64_crypto_aes<aes_op>v16qi_xor_combine): Remove both.
21547 (*aarch64_crypto_aese_fused,
21548 *aarch64_crypto_aesd_fused): Update to new definition.
21549 * config/aarch64/aarch64.c
21550 (aarch_macro_fusion_pair_p): Remove aese/aesmc fusion check.
21551
21552 2019-07-09 Richard Biener <rguenther@suse.de>
21553
21554 * gimple-match.h (gimple_match_op::resimplify): New.
21555 (gimple_resimplify1, gimple_resimplify2, gimple_resimplify3,
21556 gimple_resimplify4, gimple_resimplify5): Remove.
21557 * gimple-match-head.c (gimple_resimplify1, gimple_resimplify2,
21558 gimple_resimplify3, gimple_resimplify4, gimple_resimplify5):
21559 Make static.
21560 (gimple_match_op::resimplify): New.
21561 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Valueize
21562 according to availability. Use gimple_match_op::resimplify.
21563
21564 2019-07-09 Eric Botcazou <ebotcazou@adacore.com>
21565
21566 * ira-emit.c (emit_moves): Skip DEBUG_INSNs when setting the location.
21567
21568 2019-07-09 Sylvia Taylor <sylvia.taylor@arm.com>
21569
21570 * config/arm/crypto.md:
21571 (crypto_<crypto_pattern>): Redefine aese/aesd pattern with xor.
21572 (crypto_<crypto_pattern>): Remove attribute enabled for aesmc.
21573 (crypto_<crypto_pattern>): Split CRYPTO_BINARY into 2 patterns.
21574 (*aarch32_crypto_aese_fused, *aarch32_crypto_aesd_fused): New.
21575 * config/arm/arm.c
21576 (aarch_macro_fusion_pair_p): Remove aes/aesmc fusion check.
21577 * config/arm/aarch-common-protos.h
21578 (aarch_crypto_can_dual_issue): Remove.
21579 * config/arm/aarch-common.c
21580 (aarch_crypto_can_dual_issue): Likewise.
21581 * config/arm/exynos-m1.md: Remove aese/aesmc fusion.
21582 * config/arm/cortex-a53.md: Likewise.
21583 * config/arm/cortex-a57.md: Likewise.
21584 * config/arm/iterators.md:
21585 (CRYPTO_BINARY): Redefine.
21586 (CRYPTO_UNARY): Removed.
21587 (CRYPTO_AES, CRYPTO_AESMC): New.
21588
21589 2019-07-09 Richard Biener <rguenther@suse.de>
21590
21591 * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add orig_ref member.
21592 (vn_reference_lookup_3): If the main ref has no access path recorded
21593 but orig_ref has use it to do access-path based disambiguation.
21594 (vn_reference_lookup_pieces): Adjust.
21595 (vn_reference_lookup): Pass down original ref if we valueized.
21596
21597 2019-07-09 Martin Liska <mliska@suse.cz>
21598
21599 * doc/extend.texi: Document influence on loop
21600 optimizers.
21601
21602 2019-07-09 Martin Liska <mliska@suse.cz>
21603
21604 * lto-compress.c (lto_normalized_zstd_level): Do not use
21605 ZSTD_CLEVEL_DEFAULT as it is not default in old releases
21606 of libzstd. One can use 0 as a default compression level.
21607
21608 2019-07-09 Martin Liska <mliska@suse.cz>
21609
21610 * doc/invoke.texi: Add link from -fprofile-dir option.
21611 Use better wording for 'gcno filename'.
21612
21613 2019-07-08 Martin Sebor <msebor@redhat.com>
21614
21615 PR middle-end/71924
21616 PR middle-end/90549
21617 * gimple-ssa-isolate-paths.c (isolate_path): Add attribute. Update
21618 comment.
21619 (args_loc_t): New type.
21620 (args_loc_t, locmap_t): same.
21621 (diag_returned_locals): New function.
21622 (is_addr_local): Same.
21623 (handle_return_addr_local_phi_arg, warn_return_addr_local): Same.
21624 (find_implicit_erroneous_behavior): Call warn_return_addr_local_phi_arg.
21625 (find_explicit_erroneous_behavior): Call warn_return_addr_local.
21626
21627 2019-07-08 Jakub Jelinek <jakub@redhat.com>
21628
21629 * tree-vect-stmts.c (scan_operand_equal_p): Look through MEM_REF
21630 with SSA_NAME address of POINTER_PLUS_EXPR. Handle MULT_EXPR
21631 and casts in offset when different, both through gimple stmts
21632 and through trees. Rewritten using loops to minimize code duplication
21633 for each operand.
21634
21635 2019-07-08 Eric Botcazou <ebotcazou@adacore.com>
21636
21637 * emit-rtl.c (set_insn_locations): New function moved from...
21638 * function.c (set_insn_locations): ...here.
21639 * ira-emit.c (emit_moves): Propagate location of the first instruction
21640 to the inserted move instructions.
21641 * reg-stack.c (compensate_edge): Set the location if the sequence is
21642 inserted on the edge.
21643 * rtl.h (set_insn_locations): Declare.
21644
21645 2019-07-08 Segher Boessenkool <segher@kernel.crashing.org>
21646
21647 * config/rs6000/rs6000.c (rs6000_machine_from_flags): Ignore
21648 OPTION_MASK_PPC_GFXOPT and OPTION_MASK_PPC_GPOPT for selecting the
21649 .machine string.
21650
21651 2019-07-08 Segher Boessenkool <segher@kernel.crashing.org>
21652
21653 PR rtl-optimization/88233
21654 * common.opt (fsplit-wide-types-early): New option.
21655 * common/config/rs6000/rs6000-common.c
21656 (rs6000_option_optimization_table): Add OPT_fsplit_wide_types_early for
21657 OPT_LEVELS_ALL.
21658 * doc/invoke.texi (Optimization Options): Add -fsplit-wide-types-early.
21659 * lower-subreg.c (pass_lower_subreg2::gate): Add test for
21660 flag_split_wide_types_early.
21661 (pass_data_lower_subreg3): New.
21662 (pass_lower_subreg3): New.
21663 (make_pass_lower_subreg3): New.
21664 * passes.def (pass_lower_subreg2): Move after the loop passes.
21665 (pass_lower_subreg3): New, inserted where pass_lower_subreg2 was.
21666 * tree-pass.h (make_pass_lower_subreg2): Move up, to its new place in
21667 the pass pipeline; its previous place is taken by ...
21668 (make_pass_lower_subreg3): ... this.
21669
21670 2019-07-08 Robin Dapp <rdapp@linux.ibm.com>
21671
21672 * config/s390/s390.c (s390_shift_truncation_mask): Define.
21673 (TARGET_SHIFT_TRUNCATION_MASK): Define.
21674
21675 2019-07-08 Robin Dapp <rdapp@linux.ibm.com>
21676
21677 * config/s390/constraints.md: Add new jsc constraint.
21678 * config/s390/predicates.md: New predicates.
21679 * config/s390/s390-protos.h (s390_valid_shift_count): New function.
21680 * config/s390/s390.c (s390_valid_shift_count): New function.
21681 (print_shift_count_operand): Use s390_valid_shift_count.
21682 (print_operand): Likewise.
21683 * config/s390/s390.md: Use new predicate.
21684 * config/s390/subst.md: Remove addr_style_op and masked_op substs.
21685 * config/s390/vector.md: Use new predicate.
21686
21687 2019-07-08 Andrew Waterman <andrew@sifive.com>
21688 Jim Wilson <jimw@sifive.com>
21689
21690 * config/riscv/riscv.md (lshrsi3_zero_extend_3+1): Use operands[1]
21691 bitsize instead of BITS_PER_WORD.
21692
21693 2019-07-08 Martin Liska <mliska@suse.cz>
21694
21695 * collect2.c (defined): Revert to before r254460.
21696 (scan_prog_file): Revert to before r254460.
21697
21698 2019-07-08 Richard Biener <rguenther@suse.de>
21699
21700 PR tree-optimization/83518
21701 * tree-ssa-sccvn.c: Include splay-tree.h.
21702 (struct pd_range, struct pd_data): New.
21703 (struct vn_walk_cb_data): Add data to track partial definitions.
21704 (vn_walk_cb_data::~vn_walk_cb_data): New.
21705 (vn_walk_cb_data::push_partial_def): New.
21706 (pd_tree_alloc, pd_tree_dealloc, pd_range_compare): New.
21707 (vn_reference_lookup_2): When partial defs are registered give up.
21708 (vn_reference_lookup_3): Track partial defs for memset and
21709 constructor zeroing and for defs from constants.
21710
21711 2019-07-08 Richard Sandiford <richard.sandiford@arm.com>
21712
21713 * doc/install.texi (bootstrap-Og): Document.
21714
21715 2019-07-08 Richard Sandiford <richard.sandiford@arm.com>
21716
21717 * config/riscv/pic.md (*local_pic_load_s<mode>)
21718 (*local_pic_load_u<mode>): Explicitly specify the mode iterator
21719 referenced by <mode>, giving...
21720 (*local_pic_load_s<SUBX:mode>, *local_pic_load_u<SUBX:mode>): ...these.
21721 * config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>)
21722 (*slt<u>_<X:mode><GPR:mode>, *sle<u>_<X:mode><GPR:mode>): Explicitly
21723 use <X:MODE> for the mode attribute.
21724
21725 2019-07-07 Jeff Law <law@redhat.com>
21726
21727 PR tree-optimization/91090
21728 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Fix logic error
21729 in handling of ranges to simplify switch statements.
21730
21731 2019-07-07 Iain Sandoe <iain@sandoe.co.uk>
21732
21733 * config/darwin.c (darwin_override_options): Make a final check on PIC
21734 options.
21735
21736 2019-07-07 Iain Sandoe <iain@sandoe.co.uk>
21737
21738 * config/darwin.c (darwin_override_options): Don't jam symbol stubs
21739 on for kernel code.
21740
21741 2019-07-07 Richard Sandiford <richard.sandiford@arm.com>
21742
21743 PR target/91068
21744 * config/mips/mips.md (*mul_acc_si, *mul_acc_si_r3900, *macc)
21745 (*msac, *msac_using_macc, *mul_sub_si): Use "l" for input operands
21746 instead of matching them to "l" output operands.
21747
21748 2019-07-07 Richard Sandiford <richard.sandiford@arm.com>
21749
21750 * config/mips/mips.c (mips_split_move): Zero-initialize addr
21751 and check whether addr.reg is nonnull before using it.
21752
21753 2019-07-06 Jakub Jelinek <jakub@redhat.com>
21754
21755 * omp-low.c (lower_rec_input_clauses): For lastprivate clauses in
21756 ctx->for_simd_scan_phase simd copy the outer var to the privatized
21757 variable(s). For conditional lastprivate look through outer
21758 GIMPLE_OMP_SCAN context.
21759 (lower_omp_1): For conditional lastprivate look through outer
21760 GIMPLE_OMP_SCAN context.
21761
21762 * omp-low.c (struct omp_context): Rename combined_into_simd_safelen0
21763 member to combined_into_simd_safelen1.
21764 (lower_rec_input_clauses, lower_omp_1): Adjust uses.
21765 (lower_lastprivate_clauses): Likewise. For conditional lastprivate
21766 clauses if ctx->combined_into_simd_safelen1 put statements after the
21767 predicate conditionalized block rather than into it.
21768
21769 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
21770
21771 * config/s390/s390.md (*negabs<FP:mode>2_nocc): Use FP for
21772 operand 1.
21773 * config/s390/vx-builtins.md (*vec_cmp<insn_cmp><mode>_cconly):
21774 Make the choice of <mode> explicit, giving...
21775 (*vec_cmp<insn_cmp><VF_HW:mode>_cconly): ...this.
21776
21777 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
21778
21779 * config/i386/i386.md (*fop_<X87MODEF:mode>_3_i387)
21780 (l<rounding_insn><MODEF:mode><SWI48:mode>2): Fix ambiguous uses
21781 of .md attributes.
21782 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask)
21783 (*avx512pf_gatherpf<mode>df_mask, *avx512pf_scatterpf<mode>sf_mask)
21784 (*avx512pf_scatterpf<mode>df_mask, *avx2_gathersi<mode>)
21785 (*avx2_gathersi<mode>_2, *avx2_gatherdi<mode>)
21786 (*avx2_gatherdi<mode>_2, *avx2_gatherdi<mode>_3): Likewise.
21787 (*avx2_gatherdi<mode>_4, *avx512f_gathersi<mode>): Likewise.
21788 (*avx512f_gathersi<mode>_2, *avx512f_gatherdi<mode>): Likewise.
21789 (*avx512f_gatherdi<mode>_2, *avx512f_scattersi<mode>): Likewise.
21790 (*avx512f_scatterdi<mode>): Likewise.
21791 (*andnot<mode>3_bcst): Fix VI/VI48_AVX512VL typo.
21792
21793 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
21794
21795 * config/h8300/h8300.md (*push1_h8300hs_<mode>): Explicitly
21796 specify the mode iterator referenced by <mode>, giving...
21797 (*push1_h8300hs_<QHI:mode>): ...this.
21798
21799 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
21800
21801 * config/gcn/gcn-valu.md
21802 (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>): Use
21803 gen_vec_cmp<VEC_1REG_ALT:mode>di rather than (implicitly)
21804 gen_vec_cmp<VEC_1REG_MODE:mode>di. Explicitly use
21805 gen_vcond_mask_<VEC_1REG_MODE:mode>di.
21806 (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Likewise,
21807 but using the _exec comparison patterns.
21808 (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>): Use
21809 gen_vec_cmp<VEC_1REG_INT_ALT:mode>di rather than (implicitly)
21810 gen_vec_cmp<VEC_1REG_INT_MODE:mode>di. Explicitly use
21811 gen_vcond_mask_<VEC_1REG_INT_MODE:mode>di.
21812 (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Likewise,
21813 but using the _exec comparison patterns.
21814
21815 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
21816
21817 * config/arm/sync.md
21818 (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Use
21819 <NARROW:sync_predtab> instead of (implicitly) <CCSI:sync_predtab>.
21820 (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise use
21821 <SIDI:sync_predtab>. Use <SIDI:cas_cmp_operand> and
21822 <SIDI:cas_cmp_str>.
21823
21824 2019-07-06 Jakub Jelinek <jakub@redhat.com>
21825
21826 * omp-low.c (struct omp_context): Add for_simd_scan_phase member.
21827 (maybe_lookup_ctx): Add forward declaration.
21828 (omp_find_scan): Likewise. Walk into body of simd if composited
21829 with worksharing loop.
21830 (scan_omp_simd_scan): New function.
21831 (scan_omp_1_stmt): Call it.
21832 (lower_rec_simd_input_clauses): Don't create rvar nor rvar2 if
21833 ctx->for_simd_scan_phase.
21834 (lower_rec_input_clauses): Do much less work for inscan reductions
21835 in ctx->for_simd_scan_phase is_simd regions.
21836 (lower_omp_scan): Set is_simd also on simd constructs composited
21837 with worksharing loop, unless ctx->for_simd_scan_phase. Never emit
21838 a sorry message. Don't change GIMPLE_OMP_SCAN stmts into nops and
21839 emit their body after in simd constructs composited with worksharing
21840 loop.
21841 (lower_omp_for_scan): Handle worksharing loop composited with simd.
21842
21843 * omp-low.c (omp_find_scan): Make static.
21844 (lower_omp_for_scan): Fix order of merge arguments in input phase of
21845 the second loop, var2 represents the first partial sum and so needs
21846 to go before rprivb[ivar].
21847
21848 2019-07-05 Iain Sandoe <iain@sandoe.co.uk>
21849
21850 * config/rs6000/rs6000-logue.c: Remove unused code.
21851
21852 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
21853
21854 * tree-ssa-loop-manip.c (create_iv): Add missing guard for gsi_end_p.
21855
21856 2019-07-05 Sam Tebbs <sam.tebbs@arm.com>
21857
21858 PR target/90712
21859 * config/aarch64/aarch64.c (aarch64_post_cfi_startproc): Replace thunk
21860 check with a frame laid out check.
21861
21862 2019-07-05 Richard Biener <rguenther@suse.de>
21863
21864 * tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize RHS
21865 when comparing against a store with possibly the same value.
21866
21867 2019-07-05 Richard Biener <rguenther@suse.de>
21868
21869 PR tree-optimization/91091
21870 * tree-ssa-alias.h (get_continuation_for_phi): Add tbaa_p parameter.
21871 (walk_non_aliased_vuses): Likewise.
21872 * tree-ssa-alias.c (maybe_skip_until): Pass down tbaa_p.
21873 (get_continuation_for_phi): New tbaa_p parameter and pass
21874 it down.
21875 (walk_non_aliased_vuses): Likewise.
21876 * ipa-prop.c (determine_known_aggregate_parts): Adjust.
21877 * tree-ssa-pre.c (translate_vuse_through_block): Likewise.
21878 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
21879 Likewise.
21880 * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add tbaa_p flag.
21881 (adjust_offsets_for_equal_base_address): New function.
21882 (vn_reference_lookup_3): Use it to catch more base equivalences.
21883 Handle and pass down tbaa_p flag.
21884 (vn_reference_lookup_pieces): Adjust.
21885 (vn_reference_lookup): Remove alias-set altering, instead pass
21886 down false as tbaa_p.
21887
21888 2019-07-05 Richard Biener <rguenther@suse.de>
21889
21890 PR tree-optimization/91091
21891 * tree-ssa-sccvn.c (vn_reference_lookup_3): Overlap of
21892 accesses can happen with -fno-strict-aliasing.
21893
21894 2019-07-05 Jan Hubicka <hubicka@ucw.cz>
21895
21896 * tree-ssa-alias.c (alias_stats): Add
21897 nonoverlapping_component_refs_since_match_p_must_overlap.
21898 (dump_alias_stats): Print it.
21899 (nonoverlapping_component_refs_since_match_p): Add early exit.
21900 (nonoverlapping_component_refs_p): Do not account early exit.
21901
21902 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
21903
21904 * except.c (emit_to_new_bb_before): Make sure to put a location on SEQ.
21905 * tree-eh.c (replace_goto_queue_1) <GIMPLE_GOTO>: Propagate location.
21906 (emit_eh_dispatch): Delete.
21907 (lower_catch): Emit the eh_dispatch manually and set the location of
21908 the first catch statement onto it.
21909 (lower_eh_filter): Emit the eh_dispatch manually and set location.
21910 (lower_eh_dispatch): Propagate location.
21911 * tree-outof-ssa.c (set_location_for_edge): Handle EH edges specially.
21912 (eliminate_build): Likewise.
21913
21914 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
21915
21916 * tree-cfg.c (gimple_make_forwarder_block): Propagate location info on
21917 phi nodes if possible.
21918 * tree-scalar-evolution.c (final_value_replacement_loop): Propagate
21919 location info on the newly created statement.
21920 * tree-ssa-loop-manip.c (create_iv): Propagate location info on the
21921 newly created increment if needed.
21922
21923 2019-07-04 Jakub Jelinek <jakub@redhat.com>
21924
21925 PR middle-end/78884
21926 * gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member.
21927 (gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd
21928 loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE.
21929 (gimplify_adjust_omp_clauses): Add safelen (1) clause if
21930 ctx->add_safelen1 is set.
21931
21932 * omp-expand.c (expand_omp_for_static_nochunk): Don't emit
21933 GOMP_loop_start at the start of second worksharing loop in a scan.
21934 For nowait, don't emit GOMP_loop_end_nowait at the end of first
21935 worksharing loop in a scan even if there are conditional lastprivates,
21936 and do emit GOMP_loop_end_nowait at the end of second worksharing loop.
21937
21938 2019-07-04 Jan Hubicka <jh@suse.cz>
21939
21940 * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p):
21941 Fix check for match in the ref walk.
21942
21943 2019-07-04 Martin Liska <mliska@suse.cz>
21944
21945 * tree-ssa-loop-niter.c
21946 (get_upper_bound_based_on_builtin_expr_with_prob): New function.
21947 (estimate_numbers_of_iterations):
21948 Support __builtin_expect_with_probability for analysis
21949 of # of loop iterations.
21950
21951 2019-07-04 Alexandre Oliva <oliva@adacore.com>
21952
21953 * doc/generic.texi (Cleanups): Document EH_ELSE_EXPR.
21954 * except.c: Likewise.
21955 * expr.c (expand_expr_real_1): Reject it.
21956 * gimplify.c (gimplify_expr): Gimplify it, within
21957 TRY_FINALLY_EXPR.
21958 * tree-dump.c (dequeue_and_dump): Dump it.
21959 * tree-pretty-print.c (dump_generic_node): Likewise.
21960 * tree.c (block_may_fallthru): Handle it.
21961 * tree.def (EH_ELSE_EXPR): Introduce it.
21962 * gimple-pretty-print.c (dump_gimple_try): Dump TRY_FINALLY
21963 with GIMPLE_EH_ELSE as try/finally/else.
21964
21965 2019-07-04 Richard Biener <rguenther@suse.de>
21966
21967 PR ipa/91062
21968 * tree-pass.h (execute_all_ipa_transforms): Add a flag
21969 parameter whether to disable GC collection.
21970 * passes.c (execute_one_ipa_transform_pass): Likewise, and
21971 honor it.
21972 (execute_all_ipa_transforms): Likewise and pass it down.
21973 * cgraph.c (cgraph_node::get_body): Do not invoke garbage
21974 collection from applying IPA transforms.
21975 * cgraphunit.c (cgraph_node::expand): Allow garbage collection
21976 from applying IPA transforms.
21977
21978 2019-07-04 Richard Biener <rguenther@suse.de>
21979
21980 PR tree-optimization/90911
21981 * tree-vectorizer.h (_loop_vec_info::scalar_loop_scaling): New field.
21982 (LOOP_VINFO_SCALAR_LOOP_SCALING): new.
21983 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
21984 scalar_loop_scaling.
21985 (vect_transform_loop): Scale scalar loop profile if needed.
21986 * tree-vect-loop-manip.c (vect_loop_versioning): When re-using
21987 the loop copy from if-conversion adjust edge probabilities
21988 and scale the vectorized loop body profile, queue the scalar
21989 profile for updating after peeling.
21990
21991 2019-07-04 Jan Hubicka <jh@suse.cz>
21992
21993 * tree-ssa-alias.c (decl_refs_may_alias_p): Add size1 and size2
21994 parameters; return early for must-alias.
21995 (indirect_ref_may_alias_decl_p): Likewise; when establishing
21996 outer types match, try nonoverlapping_component_refs
21997 if must-alias is not obvious.
21998 (indirect_refs_may_alias_p): Likewise.
21999 (refs_may_alias_p_2): Likewise.
22000
22001 2019-07-04 Richard Biener <rguenther@suse.de>
22002
22003 * tree-ssa-sccvn.h (vn_reference_lookup): Add last_vuse_ptr
22004 argument.
22005 * tree-ssa-sccvn.c (last_vuse_ptr, vn_walk_kind): Move
22006 globals into...
22007 (struct vn_walk_cb_data): New callback data struct.
22008 (vn_reference_lookup_2): Adjust.
22009 (vn_reference_lookup_3): Likewise.
22010 (vn_reference_lookup_pieces): Likewise.
22011 (vn_reference_lookup): Likewise, get last_vuse_ptr argument.
22012 (visit_reference_op_load): Adjust.
22013
22014 2019-07-04 Jakub Jelinek <jakub@redhat.com>
22015
22016 PR tree-optimization/91063
22017 * tree-vect-stmts.c (vect_init_vector): Call gsi_remove to remove
22018 stmt from stmts sequence before calling vect_init_vector_1.
22019 Formatting fix.
22020
22021 2019-07-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
22022
22023 PR target/88833
22024 * fwprop.c (reg_single_def_p): New function.
22025 (propagate_rtx_1): Add unconditional else inside RTX_EXTRA case.
22026 (forward_propagate_into): New parameter reg_prop_only
22027 with default value false.
22028 Propagate def's src into loop only if SET_SRC and SET_DEST
22029 of def_set have single definitions.
22030 Likewise if reg_prop_only is set to true.
22031 (fwprop): New param fwprop_addr_p.
22032 Integrate fwprop_addr into fwprop.
22033 (fwprop_addr): Remove.
22034 (pass_rtl_fwprop_addr::execute): Call fwprop with arg set
22035 to true.
22036 (pass_rtl_fwprop::execute): Call fwprop with arg set to false.
22037 * simplify-rtx.c (simplify_subreg): Add case for vector comparison.
22038 * config/i386/sse.md (UNSPEC_BLENDV): Adjust pattern.
22039
22040 2019-07-04 Jakub Jelinek <jakub@redhat.com>
22041
22042 * omp-low.c (lower_omp_scan): Call lower_omp on stmt's body
22043 in worksharing loop scans.
22044
22045 PR tree-optimization/91074
22046 * omp-low.c (lower_omp_for_scan): Set DECL_GIMPLE_REG_P on cplx
22047 temporary.
22048
22049 PR rtl-optimization/90756
22050 * explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it
22051 for VECTOR_TYPE_P.
22052
22053 2019-07-03 Dennis Zhang <dennis.zhang@arm.com>
22054
22055 * config/aarch64/aarch64.md: Remove redundant constraints from
22056 define_expand but keep some patterns untouched if they are
22057 specially selected by TARGET_SECONDARY_RELOAD hook.
22058 * config/aarch64/aarch64-sve.md: Likewise.
22059 * config/aarch64/atomics.md: Remove redundant constraints from
22060 define_expand.
22061 * config/aarch64/aarch64-simd.md: Likewise.
22062
22063 2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
22064
22065 * config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases.
22066 (RDYNAMIC): Rename to, DARWIN_RDYNAMIC.
22067 (DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker
22068 clauses.
22069 (LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and
22070 DARWIN_NOPIE_SPEC.
22071
22072 2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
22073
22074 * config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin.
22075 (STARTFILE_SPEC): Split crt3 into a separate spec.
22076 (DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec.
22077 (DARWIN_CRT2_SPEC): New.
22078 (DARWIN_CRT3_SPEC): New.
22079 (MIN_LD64_OMIT_STUBS): Revise to 62.1.
22080 * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions.
22081 (DARWIN_CRT3_SPEC): New.
22082
22083 2019-07-03 Michael Meissner <meissner@linux.ibm.com>
22084
22085 * config/rs6000/altivec.md (altivec_mov<mode>, VM2 iterator):
22086 Change the RTL attribute "length" from "4" to "*" to allow the
22087 length attribute to be adjusted automatically for prefixed load,
22088 store, and add immediate instructions.
22089 * config/rs6000/rs6000.md (extendhi<mode>2, EXTHI iterator):
22090 Likewise.
22091 (extendsi<mode>2, EXTSI iterator): Likewise.
22092 (movsi_internal1): Likewise.
22093 (movsi_from_sf): Likewise.
22094 (movdi_from_sf_zero_ext): Likewise.
22095 (mov<mode>_internal): Likewise.
22096 (movcc_internal1, QHI iterator): Likewise.
22097 (mov<mode>_softfloat, FMOVE32 iterator): Likewise.
22098 (movsf_from_si): Likewise.
22099 (mov<mode>_hardfloat32, FMOVE64 iterator): Likewise.
22100 (mov<mode>_softfloat64, FMOVE64 iterator): Likewise.
22101 (mov<mode>, FMOVE128 iterator): Likewise.
22102 (movdi_internal64): Likewise.
22103 * config/rs6000/vsx.md (vsx_le_permute_<mode>, VSX_TI iterator):
22104 Likewise.
22105 (vsx_le_undo_permute_<mode>, VSX_TI iterator): Likewise.
22106 (vsx_mov<mode>_64bit, VSX_M iterator): Likewise.
22107 (vsx_mov<mode>_32bit, VSX_M iterator): Likewise.
22108 (vsx_splat_v4sf): Likewise.
22109
22110 2019-07-03 Mark Wielaard <mark@klomp.org>
22111
22112 PR debug/90981
22113 * dwarf2out.c (add_top_level_skeleton_die_attrs): Only add
22114 DW_AT_addr_base if there is actually a .debug_addr section with
22115 addresses.
22116 (output_addr_table): Add DWARF5 table header generation here after
22117 checking there are actually any addresses from...
22118 (dwarf2out_finish): ...here.
22119
22120 2019-07-03 Richard Biener <rguenther@suse.de>
22121
22122 PR middle-end/91069
22123 * match.pd (vec_perm -> bit_insert): Fix element read from
22124 first vector.
22125
22126 2019-07-03 Martin Liska <mliska@suse.cz>
22127
22128 * dbgcnt.def (DEBUG_COUNTER): Add match debug counter.
22129 * genmatch.c (dt_simplify::gen_1): Generate dbgcnt
22130 condition.
22131 * generic-match-head.c: Include dbgcnt.h.
22132 * gimple-match-head.c: Likewise.
22133
22134 2019-07-03 Martin Liska <mliska@suse.cz>
22135
22136 * gcov-counter.def (GCOV_COUNTER_V_SINGLE): Remove.
22137 (GCOV_COUNTER_V_TOPN): New.
22138 (GCOV_COUNTER_V_INDIR): Use _topn.
22139 * gcov-io.h (GCOV_DISK_SINGLE_VALUES): Remove.
22140 (GCOV_TOPN_VALUES): New.
22141 (GCOV_SINGLE_VALUE_COUNTERS): Remove.
22142 (GCOV_TOPN_VALUES_COUNTERS): New.
22143 * profile.c (instrument_values): Use HIST_TYPE_TOPN_VALUES.
22144 * tree-profile.c:
22145 (gimple_init_gcov_profiler): Rename variables from one_value
22146 to topn_values.
22147 (gimple_gen_one_value_profiler): Remove.
22148 (gimple_gen_topn_values_profiler): New function.
22149 * value-prof.c (dump_histogram_value): Use TOPN_VALUES
22150 names instead of SINGLE_VALUE.
22151 (stream_out_histogram_value): Likewise.
22152 (stream_in_histogram_value): Likewise.
22153 (get_most_common_single_value): Likewise.
22154 (gimple_divmod_fixed_value_transform): Likewise.
22155 (gimple_stringops_transform): Likewise.
22156 (gimple_divmod_values_to_profile): Likewise.
22157 (gimple_stringops_values_to_profile): Likewise.
22158 (gimple_find_values_to_profile): Likewise.
22159 * value-prof.h (enum hist_type): Rename to TOPN.
22160 (gimple_gen_one_value_profiler): Remove.
22161 (gimple_gen_topn_values_profiler): New.
22162
22163 2019-07-03 Eric Botcazou <ebotcazou@adacore.com>
22164
22165 * dwarf2out.c (add_scalar_info): Add back refererence to existing DIE
22166 if it has the DW_AT_data_member_location attribute.
22167
22168 2019-07-03 Richard Biener <rguenther@suse.de>
22169
22170 * gimple-pretty-print.c (dump_ternary_rhs): Fix BIT_INSERT_EXPR
22171 dumping.
22172
22173 2019-07-03 Sylvia Taylor <sylvia.taylor@arm.com>
22174
22175 * config/aarch64/aarch64.md (FP_REGNUM): New constant.
22176 (tlsdesc_small_advsimd_<mode>): Add use of FP_REGNUM.
22177 (tlsdesc_small_sve_<mode>): Likewise.
22178
22179 2019-07-03 Martin Liska <mliska@suse.cz>
22180
22181 * Makefile.in: Define ZSTD_LIB.
22182 * common.opt: Adjust compression level
22183 to support also zstd levels.
22184 * config.in: Regenerate.
22185 * configure: Likewise.
22186 * configure.ac: Add --with-zstd and --with-zstd-include options
22187 and detect ZSTD.
22188 * doc/install.texi: Mention zstd dependency.
22189 * gcc.c: Print supported LTO compression algorithms.
22190 * lto-compress.c (lto_normalized_zstd_level): Likewise.
22191 (lto_compression_zstd): Likewise.
22192 (lto_uncompression_zstd): Likewise.
22193 (lto_end_compression): Dispatch in between zlib and zstd.
22194 (lto_compression_zlib): Mark with ATTRIBUTE_UNUSED.
22195 (lto_uncompression_zlib): Make it static.
22196 * lto-compress.h (lto_end_uncompression): Fix GNU coding style.
22197 * lto-section-in.c (lto_get_section_data): Pass info
22198 about used compression.
22199 * lto-streamer-out.c: By default use zstd when possible.
22200 * timevar.def (TV_IPA_LTO_DECOMPRESS): Rename to decompression
22201 (TV_IPA_LTO_COMPRESS): Likewise for compression.
22202
22203 2019-07-03 Martin Liska <mliska@suse.cz>
22204
22205 * lto-section-in.c (lto_get_section_data): Add "lto" section.
22206 * lto-section-out.c (lto_destroy_simple_output_block): Never
22207 compress LTO_section_lto section.
22208 * lto-streamer-out.c (produce_asm): Do not set major_version
22209 and minor_version.
22210 (lto_output_toplevel_asms): Likewise.
22211 (produce_lto_section): New function.
22212 (lto_output): Call produce_lto_section.
22213 (lto_write_mode_table): Do not set major_version and
22214 minor_version.
22215 (produce_asm_for_decls): Likewise.
22216 * lto-streamer.h (enum lto_section_type): Add LTO_section_lto
22217 type.
22218 (struct lto_header): Remove.
22219 (struct lto_section): New struct.
22220 (struct lto_simple_header): Do not inherit from lto_header.
22221 (struct lto_file_decl_data): Add lto_section_header field.
22222
22223 2019-07-03 Martin Liska <mliska@suse.cz>
22224
22225 * lra-eliminations.c (eliminate_regs_in_insn): Remove
22226 dead assignemts.
22227 * reg-stack.c (check_asm_stack_operands): Likewise.
22228 * tree-ssa-structalias.c (create_function_info_for): Likewise.
22229 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
22230 * config/i386/i386-expand.c (ix86_expand_sse2_mulvxdi3): Use
22231 force_expand_binop.
22232
22233 2019-07-03 Martin Liska <mliska@suse.cz>
22234
22235 PR tree-optimization/90892
22236 * builtins.c (inline_expand_builtin_string_cmp): Handle '\0'
22237 in string constants.
22238
22239 2019-07-03 Martin Liska <mliska@suse.cz>
22240
22241 PR middle-end/90899
22242 * multiple_target.c (create_dispatcher_calls): Add to comdat
22243 group only if set for ifunc.
22244
22245 2019-07-03 Martin Liska <mliska@suse.cz>
22246
22247 PR target/88056
22248 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
22249 Define local_object_name in outer scope in order to handle
22250 use-after-scope issue.
22251
22252 2019-07-03 Martin Liska <mliska@suse.cz>
22253
22254 * common.opt: Add fprofile-note.
22255 * coverage.c (coverage_init): Append the option
22256 to bbg_file_name.
22257 * doc/invoke.texi: Document -fprofile-note.
22258
22259 2019-07-03 Jakub Jelinek <jakub@redhat.com>
22260
22261 PR tree-optimization/91033
22262 * tree-vectorizer.h (vect_mark_stmts_to_be_vectorized,
22263 vect_analyze_data_refs): Add bool * arguments.
22264 * tree-vect-data-refs.c (vect_analyze_data_refs): Add fatal argument,
22265 if failure is due to scatter/gather, set *fatal to false if non-NULL.
22266 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
22267 * tree-vect-loop.c (vect_analyze_loop_2): Adjust
22268 vect_mark_stmts_to_be_vectorized and vect_analyze_data_refs callers.
22269 * tree-vect-slp.c (vect_slp_analyze_bb_1): Adjust
22270 vect_analyze_data_refs caller.
22271
22272 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__SCANTEMP_
22273 clause.
22274 * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__SCANTEMP_ instead of
22275 OMP_CLAUSE__CONDTEMP_ as range's upper bound.
22276 (OMP_CLAUSE__SCANTEMP__ALLOC, OMP_CLAUSE__SCANTEMP__CONTROL): Define.
22277 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
22278 OMP_CLAUSE__SCANTEMP_ entry.
22279 (walk_tree_1): Handle OMP_CLAUSE__SCANTEMP_.
22280 * tree-pretty-print.c (dump_omp_clause): Likewise.
22281 * tree-nested.c (convert_nonlocal_omp_clauses,
22282 convert_local_omp_clauses): Likewise.
22283 * omp-general.h (struct omp_for_data): Add have_scantemp and
22284 have_nonctrl_scantemp members.
22285 * omp-general.c (omp_extract_for_data): Initialize them.
22286 * omp-low.c (struct omp_context): Add scan_exclusive member.
22287 (scan_omp_1_stmt): Don't unnecessarily mask gimple_omp_for_kind
22288 result again with GF_OMP_FOR_KIND_MASK. Initialize also
22289 ctx->scan_exclusive.
22290 (lower_rec_simd_input_clauses): Use ctx->scan_exclusive instead
22291 of !ctx->scan_inclusive.
22292 (lower_rec_input_clauses): Simplify gimplification of dtors using
22293 gimplify_and_add. For non-is_simd test OMP_CLAUSE_REDUCTION_INSCAN
22294 rather than rvarp. Handle OMP_CLAUSE_REDUCTION_INSCAN in worksharing
22295 loops. Don't add barrier for reduction_omp_orig_ref if
22296 ctx->scan_??xclusive.
22297 (lower_reduction_clauses): Don't do anything for ctx->scan_??xclusive.
22298 (lower_omp_scan): Use ctx->scan_exclusive instead
22299 of !ctx->scan_inclusive. Handle worksharing loops with inscan
22300 reductions. Use new_vard != new_var instead of repeated
22301 omp_is_reference calls.
22302 (omp_find_scan, lower_omp_for_scan): New functions.
22303 (lower_omp_for): Call lower_omp_for_scan for worksharing loops with
22304 inscan reductions.
22305 * omp-expand.c (expand_omp_scantemp_alloc): New function.
22306 (expand_omp_for_static_nochunk): Handle fd->have_nonctrl_scantemp
22307 and fd->have_scantemp.
22308
22309 * gimplify.c (gimplify_scan_omp_clauses): For inscan reductions
22310 on worksharing loop propagate it as shared clause to containing
22311 combined parallel.
22312
22313 * omp-expand.c (expand_omp_for_static_nochunk,
22314 expand_omp_for_static_chunk): For nowait worksharing loop with
22315 conditional lastprivate clause(s), emit GOMP_loop_end_nowait call
22316 at the end.
22317
22318 2019-07-02 qing zhao <qing.zhao@oracle.com>
22319
22320 PR preprocessor/90581
22321 * doc/cppopts.texi: Add document for -fmax-include-depth.
22322 * doc/invoke.texi (Preprocessor Options): List -fmax-include-depth.
22323
22324 2019-07-02 Uroš Bizjak <ubizjak@gmail.com>
22325
22326 * config/i386/mmx.md (mmx_pack<s_trunsuffix>swb):
22327 Use TARGET_SSE2 && SSE_REGNO_P in split condition.
22328 (mmx_packssdw): Ditto.
22329 (mmx_punpckhbw): Ditto.
22330 (mmx_punpcklbw): Ditto.
22331 (mmx_punpckhwd): Ditto.
22332 (mmx_punpcklwd): Ditto.
22333 (mmx_punpckhdq): Ditto.
22334 (mmx_punpckldq): Ditto.
22335 (*vec_dupv4hi): Ditto.
22336 (*vec_dupv2si): Ditto.
22337 (mmx_pmovmskb): Ditto.
22338 * config/i386/sse.md (sse_cvtpi2ps): Use
22339 TARGET_SSE2 && SSE_REG_P in split condition.
22340 (ssse3_ph<plusminus_mnemonic>wv4hi3): Use
22341 TARGET_SSSE3 && SSE_REGNO_P in split condition.
22342 (ssse3_ph<plusminus_mnemonic>dv2si3): Ditto.
22343 (ssse3_pshufbv8qi3): Ditto.
22344 (ssse3_palignrdi): Ditto.
22345
22346 2019-07-02 Andrew Stubbs <ams@codesourcery.com>
22347
22348 * config/gcn/gcn.md (movdi_symbol_save_scc): Convert to define_insn
22349 with inlined save and restore.
22350
22351 2019-07-02 Eric Botcazou <ebotcazou@adacore.com>
22352
22353 * cfgexpand.c (pass_expand::execute): Deal specially with instructions
22354 to be inserted on single successor edge of the entry block. Then call
22355 commit_edge_insertions instead of inserting the instructions manually.
22356 * cfgrtl.c (commit_edge_insertions): Do not verify flow info during
22357 RTL expansion and rebuild jump labels chain.
22358
22359 2019-07-02 Richard Biener <rguenther@suse.de>
22360
22361 * tree-core.h (enum tree_index): Add TI_CHREC_DONT_KNOW and
22362 TI_CHREC_KNOWN.
22363 * tree.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
22364 Define here.
22365 * tree.c (build_common_tree_nodes): Initialize them.
22366 * tree-chrec.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
22367 Make declarations comments.
22368 * tree-scalar-evolution.c (chrec_not_analyzed_yet, chrec_dont_know,
22369 chrec_known): Remove definitions.
22370 (initialize_scalar_evolutions_analyzer): Remove.
22371 (scev_initialize): Do not call initialize_scalar_evolutions_analyzer.
22372 * tree-streamer.c (preload_common_nodes): Do not preload
22373 TI_CHREC_DONT_KNOW or TI_CHREC_KNOWN.
22374
22375 2019-07-02 Jan Hubicka <jh@suse.cz>
22376
22377 * tree-ssa-alias.c (aliasing_component_refs_p): Remove forgotten
22378 sanity check.
22379
22380 2019-07-02 Jan Hubicka <jh@suse.cz>
22381
22382 * tree-ssa-alias.c (nonoverlapping_component_refs_for_decl_p): Rename
22383 to ..
22384 (nonoverlapping_component_refs_since_match_p): ... this one;
22385 handle also non-decl bases; return -1 if search gave up.
22386 (alias_stats): Rename nonoverlapping_component_refs_of_decl_p_may_alias,
22387 nonoverlapping_component_refs_of_decl_p_no_alias to
22388 nonoverlapping_component_refs_since_match_p_may_alias,
22389 nonoverlapping_component_refs_since_match_p_no_alias.
22390 (dump_alias_stats): Update dumping.
22391 (aliasing_matching_component_refs_p): Break out from ...;
22392 dispatch to nonoverlapping_component_refs_for_decl_p
22393 and nonoverlapping_component_refs_since_match_p.
22394 (aliasing_component_refs_p): ... here; call
22395 nonoverlapping_component_refs_p in scenarios where we can not
22396 precisely determine base match.
22397 (decl_refs_may_alias_p): Use
22398 nonoverlapping_component_refs_since_match_p.
22399 (indirect_ref_may_alias_decl_p): Do not call
22400 nonoverlapping_component_refs_p.
22401 (indirect_refs_may_alias_p): Likewise.
22402
22403 2019-07-02 Jan Hubicka <jh@suse.cz>
22404
22405 * tree-inline.c (remap_gimple_stmt): Do not subtitute handled components
22406 to clobber of return value.
22407
22408 2019-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22409
22410 * config/arm/cortex-a57.md (cortex_a57_neon_type): Use neon_arith_basic
22411 for is_neon_type instructions that have not already been categorized.
22412
22413 2019-07-02 Richard Biener <rguenther@suse.de>
22414
22415 PR tree-optimization/58483
22416 * tree-ssa-scopedtables.c (avail_expr_hash): Use OEP_ADDRESS_OF
22417 for MEM_REF base hashing.
22418 (equal_mem_array_ref_p): Likewise for base comparison.
22419
22420 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
22421
22422 * config/rs6000/rs6000.md (signbit<mode>2_dm): Make this a
22423 parameterized name.
22424 (signbit<mode>2): Use that name. Simplify.
22425
22426 2019-07-01 Joern Rennecke <joern.rennecke@riscy-ip.com>
22427
22428 PR middle-end/66726
22429 * tree-ssa-phiopt.c (factor_out_conditional_conversion):
22430 Tune heuristic from PR71016 to allow MIN / MAX.
22431
22432 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
22433
22434 * config/rs6000/rs6000.md (ieee_128bit_vsx_abs<mode>2): Make this a
22435 parameterized name.
22436 (abs<mode>2): Use that name. Simplify.
22437
22438 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
22439
22440 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2): Make this a
22441 parameterized name.
22442 (neg<mode>2): Use that name. Simplify.
22443
22444 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
22445
22446 * config/rs6000/rs6000.md (abs<mode>2_hw): Make this a parameterized
22447 name.
22448 (abs<mode>2): Use that name. Simplify.
22449
22450 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
22451
22452 * config/rs6000/rs6000.md (neg<mode>2_hw): Make this a parameterized
22453 name.
22454 (neg<mode>2): Use that name. Simplify.
22455
22456 2019-07-01 Uroš Bizjak <ubizjak@gmail.com>
22457
22458 * config/i386/i386.md ("isa" attribute): Add sse_noavx.
22459 ("enabled" attribute): Handle sse_noavx isa attribute.
22460 * config/i386/mmx.md (*vec_dupv2sf): Add "isa" attribute.
22461 Use TARGET_SSE && SSE_REGNO_P in split condition.
22462 (*vec_dupv2sf): Ditto.
22463
22464 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
22465
22466 * config/rs6000/rs6000.md (extenddf<mode>2): Make this a parameterized
22467 name.
22468 (floatsi<mode>2): Use that name. Simplify.
22469
22470 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
22471
22472 * config/rs6000/rs6000.md (extenddf<mode>2_fprs): Make this a
22473 parameterized name.
22474 (extenddf<mode>2_vsx): Make this a parameterized name.
22475 (extenddf<mode>2): Use those names. Simplify.
22476
22477 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
22478
22479 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Make this a parameterized
22480 name.
22481 (eh_return): Use that name. Simplify.
22482
22483 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
22484
22485 * config/rs6000/rs6000.md (ctr<mode>): Make this a parameterized name.
22486 (doloop_end): Use that name. Simplify.
22487
22488 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
22489
22490 * config/rs6000/rs6000.md (indirect_jump<mode>_nospec): Make this a
22491 parameterized name.
22492 (indirect_jump): Use that name. Simplify.
22493
22494 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
22495
22496 * config/rs6000/rs6000.md (abs<mode>2_internal): Make this a
22497 parameterized name.
22498 (abs<mode>2): Use that name. Simplify.
22499
22500 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
22501
22502 * config/rs6000/rs6000.md (fix_trunc<mode>si2_fprs): Make this a
22503 parameterized name.
22504 (fix_trunc<mode>si2): Use that name. Simplify.
22505
22506 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
22507
22508 * config/rs6000/rs6000.md (neg<mode>2): Make this a parameterized name.
22509 (allocate_stack): Use that name. Simplify.
22510
22511 2019-07-01 Martin Sebor <msebor@redhat.com>
22512
22513 PR middle-end/90923
22514 * hash-map.h (hash_map::put): On insertion invoke element ctor.
22515 (hash_map::get_or_insert): Same. Reformat comment.
22516 * hash-set.h (hash_set::add): On insertion invoke element ctor.
22517 * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): New.
22518 * hash-set-tests.c (test_map_of_type_with_ctor_and_dtor): New.
22519 * hash-table.h (hash_table::operator=): Prevent copy assignment.
22520 (hash_table::hash_table (const hash_table&)): Use copy ctor
22521 instead of assignment to copy elements.
22522
22523 2019-07-01 Wilco Dijkstra <wdijkstr@arm.com>
22524 John David Anglin <danglin@gcc.gnu.org>
22525
22526 PR target/90963
22527 * config/pa/pa.md (builtin_longjmp): Restore hard_frame_pointer_rtx
22528 using saved frame pointer.
22529
22530 2019-07-01 Eric Botcazou <ebotcazou@adacore.com>
22531
22532 PR middle-end/64242
22533 * config/sparc/sparc.md (nonlocal_goto): Restore frame pointer last.
22534 Add frame clobber and schedule blockage.
22535
22536 2019-07-01 Sandra Loosemore <sandra@codesourcery.com>
22537
22538 * doc/invoke.texi (Link Options): Further editorial changes to
22539 -flinker-output docs.
22540
22541 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
22542
22543 * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem):
22544 Load both operands of a PLUS into registers separately.
22545
22546 2019-07-01 Andreas Krebbel <krebbel@linux.ibm.com>
22547
22548 * config/s390/vector.md: Fix shift count operand printing.
22549
22550 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
22551
22552 * ira-lives.c (process_bb_node_lives): Use ira_setup_alts.
22553
22554 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
22555
22556 * ira.c (ira_get_dup_out_num): Don't punt for earlyclobbers.
22557 Use recog_data to test for an output operand.
22558
22559 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
22560
22561 * ira.c (ira_setup_alts): If any valid alternatives have zero cost,
22562 exclude any others that are disparaged or that are bound to need
22563 a reload or spill.
22564 (ira_get_dup_out_num): Expand comment.
22565
22566 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
22567
22568 * ira.c (ira_setup_alts): Use preprocess_constraints to get the
22569 constraint string for each operand/alternative combo. Only handle
22570 '%' at the start of constraint strings, and look for it outside
22571 the main loop.
22572
22573 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
22574
22575 * ira-int.h (ira_setup_alts, ira_get_dup_out_num): Use
22576 alternative_mask instead of HARD_REG_SET to represent a
22577 bitmask of alternatives.
22578 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
22579 * ira-conflicts.c (add_insn_allocno_copies): Likewise.
22580
22581 2019-07-01 Martin Liska <mliska@suse.cz>
22582
22583 * edit-context.c (test_applying_fixits_unreadable_file): Do not
22584 use () for a constructor call.
22585 (test_applying_fixits_line_out_of_range): Likewise.
22586 * ggc-page.c (alloc_page): Use (void *) for %p printf format
22587 argument.
22588 (free_page): Likewise.
22589
22590 2019-07-01 Vladislav Ivanishin <vlad@ispras.ru>
22591
22592 * gdbhooks.py (GdbPrettyPrinters.add_printer_for_types): Reorder
22593 parameter names to match usage (no functional change).
22594 (GdbPrettyPrinters.add_printer_for_regex): Ditto.
22595
22596 2019-07-01 Richard Biener <rguenther@suse.de>
22597
22598 * tree-ssa-sccvn.c (class pass_fre): Add may_iterate
22599 pass parameter.
22600 (pass_fre::execute): Honor it.
22601 * passes.def: Adjust pass_fre invocations to allow iterating,
22602 add non-iterating pass_fre before late threading/dom.
22603
22604 2019-07-01 Richard Biener <rguenther@suse.de>
22605
22606 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Adjust
22607 TARGET_MEM_REF handling to also handle address-taken ones.
22608
22609 2019-07-01 Hongtao Liu <hongtao.liu@intel.com>
22610
22611 * doc/sourcebuild.texi (Effective-Target Keywords, Other
22612 hardware attributes): Document avx512vp2intersect.
22613
22614 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
22615
22616 * config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2.
22617 (abs<mode>2): New expander.
22618 * config/i386/i386-builtin.def (__builtin_ia32_pabsb):
22619 Use CODE_FOR_ssse3_absv8qi2.
22620 (__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2.
22621 (__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2.
22622
22623 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
22624
22625 * config/i386/i386.md (mmx_isa): Rename x64, x64_noavx and x64_avx
22626 to sse, sse_noavx and avx. Update all uses.
22627
22628 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
22629
22630 * config/i386/mmx.md (sse_movntq): Add "isa" attribute.
22631 (*mmx_<plusminus_insn><mode>3): Ditto.
22632 (*mmx_mulv4hi3"): Ditto.
22633 (*mmx_smulv4hi3_highpart): Ditto.
22634 (*mmx_umulv4hi3_highpart): Ditto.
22635 (*mmx_pmaddwd): Ditto.
22636 (*sse2_umulv1siv1di3): Ditto.
22637 (*mmx_<code>v4hi3): Ditto.
22638 (*mmx_<code>v8qi3): Ditto.
22639 (mmx_ashr<mode>3): Ditto.
22640 ("mmx_<shift_insn><mode>3): Ditto.
22641 (*mmx_eq<mode>3): Ditto.
22642 (mmx_gt<mode>3): Ditto.
22643 (mmx_andnot<mode>3): Ditto.
22644 (*mmx_<code><mode>3): Ditto.
22645 (*mmx_pinsrw): Ditto.
22646 (*mmx_pextrw): Ditto.
22647 (mmx_pshufw_1): Ditto.
22648 (*mmx_uavgv8qi3): Ditto.
22649 (*mmx_uavgv4hi3): Ditto.
22650 ("mmx_psadbw): Ditto.
22651 * config/i386/sse.md (sse_cvtps2pi): Ditto.
22652 (sse_cvttps2pi): Ditto.
22653 (ssse3_pmaddubsw): Ditto.
22654 (*ssse3_pmulhrswv4hi3): Ditto.
22655 (ssse3_psign<mode>3): Ditto.
22656
22657 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
22658
22659 * expr.c (expand_expr_real_1) <BIT_FIELD_REF>: Apply the big-endian
22660 adjustment for bit-fields to all aggregate types.
22661
22662 2019-06-28 Michael Meissner <meissner@linux.ibm.com>
22663
22664 * config/rs6000/predicates.md (pcrel_address): Use
22665 SYMBOL_REF_LOCAL_P to determine if a label is local.
22666 (pcrel_external_address): New predicate.
22667 (non_prefixed_mem_operand): Delete, predicate not used.
22668 * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL_P): Delete, we now use
22669 SYMBOL_REF_LOCAL_P to determine if we can use pc-relative
22670 addressing.
22671 (SYMBOL_REF_PCREL_P): Likewise.
22672
22673 PR target/91009
22674 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Add non-VSX
22675 alternative.
22676 (floatsi<mode>2_lfiwax_mem): Add non-VSX alternative.
22677 (floatunssi<mode>2_lfiwzx): Add non-VSX alternative.
22678 (floatunssi<mode>2_lfiwzx_mem): Add non-VSX alternative.
22679
22680 2019-06-28 Iain Sandoe <iain@sandoe.co.uk>
22681
22682 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove
22683 override on extra_headers.
22684
22685 2019-06-28 Iain Sandoe <iain@sandoe.co.uk>
22686
22687 * config/darwin-c.c (pop_field_alignment): Quote #pragma options.
22688 * config/darwin-driver.c (darwin_default_min_version): Remove newline
22689 from warning.
22690 (darwin_driver_init): Likewise.
22691
22692 2019-06-28 Jan Beulich <jbeulich@suse.com>
22693
22694 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
22695 vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>):
22696 Eliminate redundant alternative.
22697
22698 2019-06-28 Jan Beulich <jbeulich@suse.com>
22699
22700 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
22701 vgf2p8affineqb_<mode><mask_name>): Drop % constraint modifier.
22702 Use vector_operand.
22703
22704 2019-06-28 Claudiu Zissulescu <claziss@synopsys.com>
22705
22706 * config/arc/arc.c (arc_rtx_costs): All short instructions are
22707 having a lower cost regardless of the speed option.
22708
22709 2019-06-28 Jan Beulich <jbeulich@suse.com>
22710
22711 * config/i386/sse.md (sse2_cvtpd2pi, sse2_cvttpd2pi): Use
22712 vector_operand plus, on both alternatives, "Bm" constraint.
22713
22714 2019-06-28 Dennis Zhang <dennis.zhang@arm.com>
22715
22716 * config/arm/arm.md: Remove redundant constraints from
22717 define_expand but leave reload_inm and reload_outm patterns
22718 untouched since they need special constraints to work.
22719 * config/arm/arm-fixed.md: Remove redundant constraints from
22720 define_expand.
22721 * config/arm/iwmmxt.md: Likewise.
22722 * config/arm/neon.md: Likewise.
22723 * config/arm/sync.md: Likewise.
22724 * config/arm/thumb1.md: Likewise.
22725 * config/arm/vec-common.md: Likewise.
22726
22727 2019-06-27 Ilia Diachkov <ilia.diachkov@optimitech.com>
22728
22729 * doc/install.texi: Document --disable-tm-clone-registry.
22730
22731 2019-06-27 Jakub Jelinek <jakub@redhat.com>
22732
22733 PR c++/91024
22734 * gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT
22735 statements.
22736
22737 PR tree-optimization/91010
22738 * tree-vect-stmts.c (scan_operand_equal_p): If offset1 == offset2,
22739 return true. Otherwise, don't call operand_equal_p if offset1 or
22740 offset2 is NULL and just return false.
22741
22742 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
22743
22744 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour
22745 user-specified float mode choice for kernel mode code.
22746
22747 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
22748
22749 * config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the
22750 spec.
22751
22752 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
22753
22754 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not
22755 use longcall for 64b code.
22756
22757 2019-06-27 Aaron Sawdey <acsawdey@linux.ibm.com>
22758
22759 * builtins.c (get_memory_rtx): Fix comment.
22760 * optabs.def (movmem_optab): Change to cpymem_optab.
22761 * expr.c (emit_block_move_via_cpymem): Change movmem to cpymem.
22762 (emit_block_move_hints): Change movmem to cpymem.
22763 * defaults.h: Change movmem to cpymem.
22764 * targhooks.c (get_move_ratio): Change movmem to cpymem.
22765 (default_use_by_pieces_infrastructure_p): Ditto.
22766 * config/aarch64/aarch64-protos.h: Change movmem to cpymem.
22767 * config/aarch64/aarch64.c (aarch64_expand_movmem): Change movmem
22768 to cpymem.
22769 * config/aarch64/aarch64.h: Change movmem to cpymem.
22770 * config/aarch64/aarch64.md (movmemdi): Change name to cpymemdi.
22771 * config/alpha/alpha.h: Change movmem to cpymem in comment.
22772 * config/alpha/alpha.md (movmemqi, movmemdi, *movmemdi_1): Change
22773 movmem to cpymem.
22774 * config/arc/arc-protos.h: Change movmem to cpymem.
22775 * config/arc/arc.c (arc_expand_movmem): Change movmem to cpymem.
22776 * config/arc/arc.h: Change movmem to cpymem in comment.
22777 * config/arc/arc.md (movmemsi): Change movmem to cpymem.
22778 * config/arm/arm-protos.h: Change movmem to cpymem in names.
22779 * config/arm/arm.c (arm_movmemqi_unaligned, arm_gen_movmemqi,
22780 gen_movmem_ldrd_strd, thumb_expand_movmemqi) Change movmem to cpymem.
22781 * config/arm/arm.md (movmemqi): Change movmem to cpymem.
22782 * config/arm/thumb1.md (movmem12b, movmem8b): Change movmem to cpymem.
22783 * config/avr/avr-protos.h: Change movmem to cpymem.
22784 * config/avr/avr.c (avr_adjust_insn_length, avr_emit_movmemhi,
22785 avr_out_movmem): Change movmem to cpymem.
22786 * config/avr/avr.md (movmemhi, movmem_<mode>, movmemx_<mode>):
22787 Change movmem to cpymem.
22788 * config/bfin/bfin-protos.h: Change movmem to cpymem.
22789 * config/bfin/bfin.c (single_move_for_movmem, bfin_expand_movmem):
22790 Change movmem to cpymem.
22791 * config/bfin/bfin.h: Change movmem to cpymem in comment.
22792 * config/bfin/bfin.md (movmemsi): Change name to cpymemsi.
22793 * config/c6x/c6x-protos.h: Change movmem to cpymem.
22794 * config/c6x/c6x.c (c6x_expand_movmem): Change movmem to cpymem.
22795 * config/c6x/c6x.md (movmemsi): Change name to cpymemsi.
22796 * config/frv/frv.md (movmemsi): Change name to cpymemsi.
22797 * config/ft32/ft32.md (movmemsi): Change name to cpymemsi.
22798 * config/h8300/h8300.md (movmemsi): Change name to cpymemsi.
22799 * config/i386/i386-expand.c (expand_set_or_movmem_via_loop,
22800 expand_set_or_movmem_via_rep, expand_movmem_epilogue,
22801 expand_setmem_epilogue_via_loop, expand_set_or_cpymem_prologue,
22802 expand_small_cpymem_or_setmem,
22803 expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves,
22804 expand_set_or_cpymem_constant_prologue,
22805 ix86_expand_set_or_cpymem): Change movmem to cpymem.
22806 * config/i386/i386-protos.h: Change movmem to cpymem.
22807 * config/i386/i386.h: Change movmem to cpymem in comment.
22808 * config/i386/i386.md (movmem<mode>): Change name to cpymem.
22809 (setmem<mode>): Change expansion function name.
22810 * config/lm32/lm32.md (movmemsi): Change name to cpymemsi.
22811 * config/m32c/blkmov.md (movmemhi, movmemhi_bhi_op, movmemhi_bpsi_op,
22812 movmemhi_whi_op, movmemhi_wpsi_op): Change movmem to cpymem.
22813 * config/m32c/m32c-protos.h: Change movmem to cpymem.
22814 * config/m32c/m32c.c (m32c_expand_movmemhi): Change movmem to cpymem.
22815 * config/m32r/m32r.c (m32r_expand_block_move): Change movmem to cpymem.
22816 * config/m32r/m32r.md (movmemsi, movmemsi_internal): Change movmem
22817 to cpymem.
22818 * config/mcore/mcore.md (movmemsi): Change name to cpymemsi.
22819 * config/microblaze/microblaze.c: Change movmem to cpymem in comment.
22820 * config/microblaze/microblaze.md (movmemsi): Change name to cpymemsi.
22821 * config/mips/mips.c (mips_use_by_pieces_infrastructure_p):
22822 Change movmem to cpymem.
22823 * config/mips/mips.h: Change movmem to cpymem.
22824 * config/mips/mips.md (movmemsi): Change name to cpymemsi.
22825 * config/nds32/nds32-memory-manipulation.c
22826 (nds32_expand_movmemsi_loop_unknown_size,
22827 nds32_expand_movmemsi_loop_known_size, nds32_expand_movmemsi_loop,
22828 nds32_expand_movmemsi_unroll,
22829 nds32_expand_movmemsi): Change movmem to cpymem.
22830 * config/nds32/nds32-multiple.md (movmemsi): Change name to cpymemsi.
22831 * config/nds32/nds32-protos.h: Change movmem to cpymem.
22832 * config/pa/pa.c (compute_movmem_length): Change movmem to cpymem.
22833 (pa_adjust_insn_length): Change call to compute_movmem_length.
22834 * config/pa/pa.md (movmemsi, movmemsi_prereload, movmemsi_postreload,
22835 movmemdi, movmemdi_prereload,
22836 movmemdi_postreload): Change movmem to cpymem.
22837 * config/pdp11/pdp11.md (movmemhi, movmemhi1,
22838 movmemhi_nocc, UNSPEC_MOVMEM): Change movmem to cpymem.
22839 * config/riscv/riscv.c: Change movmem to cpymem in comment.
22840 * config/riscv/riscv.h: Change movmem to cpymem.
22841 * config/riscv/riscv.md: (movmemsi) Change name to cpymemsi.
22842 * config/rs6000/rs6000.md: (movmemsi) Change name to cpymemsi.
22843 * config/rx/rx.md: (UNSPEC_MOVMEM, movmemsi, rx_movmem): Change
22844 movmem to cpymem.
22845 * config/s390/s390-protos.h: Change movmem to cpymem.
22846 * config/s390/s390.c (s390_expand_movmem, s390_expand_setmem,
22847 s390_expand_insv): Change movmem to cpymem.
22848 * config/s390/s390.md (movmem<mode>, movmem_short, *movmem_short,
22849 movmem_long, *movmem_long, *movmem_long_31z): Change movmem to cpymem.
22850 * config/sh/sh.md (movmemsi): Change name to cpymemsi.
22851 * config/sparc/sparc.h: Change movmem to cpymem in comment.
22852 * config/vax/vax-protos.h (vax_output_movmemsi): Remove prototype
22853 for nonexistent function.
22854 * config/vax/vax.h: Change movmem to cpymem in comment.
22855 * config/vax/vax.md (movmemhi, movmemhi1): Change movmem to cpymem.
22856 * config/visium/visium.h: Change movmem to cpymem in comment.
22857 * config/visium/visium.md (movmemsi): Change name to cpymemsi.
22858 * config/xtensa/xtensa.md (movmemsi): Change name to cpymemsi.
22859 * doc/md.texi: Change movmem to cpymem and update description to match.
22860 * doc/rtl.texi: Change movmem to cpymem.
22861 * target.def (use_by_pieces_infrastructure_p): Change movmem to cpymem.
22862 * doc/tm.texi: Regenerate.
22863
22864 2019-06-27 Bill Schmidt <wschmidt@linux.ibm.com>
22865
22866 * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
22867 -fvariable-expansion-in-unroller by default.
22868 * doc/invoke.texi (-fvariable-expansion-in-unroller): Document new
22869 default for Power.
22870
22871 2019-06-27 David Edelsohn <dje.gcc@gmail.com>
22872
22873 Revert
22874 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
22875 * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
22876
22877 * config.gcc(rs6000-*-*): Define target_gtfiles.
22878
22879 2019-06-27 Jan Hubicka <jh@suse.cz>
22880
22881 * ipa-devirt.c (odr_type_d): Add tbaa_enabled flag.
22882 (add_type_duplicate): When odr hash is not allocated, to nothing.
22883 (odr_based_tbaa_p): New function.
22884 (set_type_canonical_for_odr_type): New function.
22885 * ipa-utils.h (enable_odr_based_tbaa, odr_based_tbaa_p,
22886 set_type_canonical_for_odr_type): New.
22887 * tree.c (gimple_canonical_types_compatible_p): ODR types with
22888 ODR based TBAA are not equivalent to non-ODR types.
22889
22890 2019-06-27 Martin Liska <mliska@suse.cz>
22891
22892 PR tree-optimization/90974
22893 PR rtl-optimization/90975
22894 PR rtl-optimization/90976
22895 PR target/91016
22896 PR tree-optimization/91017
22897 * config/i386/i386-expand.c (ix86_expand_rounddf_32): Remove
22898 unused tmp.
22899 * lra.c (lra_set_insn_recog_data): Remove a leftover from
22900 initial commit of IRA.
22901 * optabs.c (expand_twoval_binop): Use xop0 and xop1 instead
22902 of op0 and op1.
22903 * tree-vect-loop.c (vect_create_epilog_for_reduction):
22904 Remove unused mode1.
22905 * tree-vect-stmts.c (vectorizable_call): Remove dead assignment
22906 to new_stmt_info.
22907
22908 2019-06-27 Jakub Jelinek <jakub@redhat.com>
22909
22910 PR target/90991
22911 * config/i386/sse.md (avx_vec_concat<mode>): Use nonimmediate_operand
22912 instead of register_operand for operands[1], add m to its constraints
22913 if operands[2] uses "C" constraint. Ensure in condition that if
22914 operands[2] is not 0, then operands[1] is not a MEM. For last two
22915 alternatives, use unaligned loads instead of aligned if operands[1] is
22916 misaligned_operand.
22917
22918 2019-06-27 Martin Liska <mliska@suse.cz>
22919
22920 * asan.c (asan_emit_allocas_unpoison): Remove obviously
22921 dead assignments.
22922 * bt-load.c (move_btr_def): Likewise.
22923 * builtins.c (expand_builtin_apply_args_1): Likewise.
22924 (expand_builtin_apply): Likewise.
22925 * cfgexpand.c (expand_asm_stmt): Likewise.
22926 (construct_init_block): Likewise.
22927 * cfghooks.c (verify_flow_info): Likewise.
22928 * cfgloopmanip.c (remove_path): Likewise.
22929 * cfgrtl.c (rtl_verify_bb_layout): Likewise.
22930 * cgraph.c (cgraph_node::set_pure_flag): Likewise.
22931 * combine.c (simplify_if_then_else): Likewise.
22932 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
22933 (choose_basereg): Likewise.
22934 (ix86_expand_prologue): Likewise.
22935 (ix86_preferred_output_reload_class): Likewise.
22936 * cselib.c (cselib_record_sets): Likewise.
22937 * df-scan.c (df_scan_alloc): Likewise.
22938 * dojump.c (do_jump_by_parts_greater_rtx): Likewise.
22939 * early-remat.c (early_remat::record_equiv_candidates): Likewise.
22940 * emit-rtl.c (try_split): Likewise.
22941 * graphite-scop-detection.c (assign_parameter_index_in_region):
22942 Likewise.
22943 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
22944 * ira-color.c (setup_profitable_hard_regs): Likewise.
22945 * ira.c (rtx_moveable_p): Likewise.
22946 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
22947 * read-rtl.c (read_subst_mapping): Likewise.
22948 * regrename.c (scan_rtx): Likewise.
22949 * reorg.c (fill_slots_from_thread): Likewise.
22950 * tree-inline.c (tree_function_versioning): Likewise.
22951 * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
22952 * tree-ssa-sink.c (statement_sink_location): Likewise.
22953 * tree-ssa-threadedge.c (thread_across_edge): Likewise.
22954 * tree-vect-loop.c (vect_get_loop_niters): Likewise.
22955 (vect_create_epilog_for_reduction): Likewise.
22956 * tree.c (build_nonstandard_integer_type): Likewise.
22957
22958 2019-06-27 Richard Biener <rguenther@suse.de>
22959
22960 * tree-ssa-sccvn.c (vn_reference_lookup_3): Encode valueized RHS.
22961
22962 2019-06-27 Jun Ma <JunMa@linux.alibaba.com>
22963
22964 PR tree-optimization/89772
22965 * gimple-fold.c (gimple_fold_builtin_memchr): consider trailing nuls in
22966 out-of-bound accesses checking.
22967
22968 2019-06-27 Martin Liska <mliska@suse.cz>
22969
22970 PR tree-optimization/91014
22971 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Bail out
22972 when LHS is NULL_TREE.
22973
22974 2019-06-27 Martin Liska <mliska@suse.cz>
22975
22976 * symbol-summary.h (traverse): Pass
22977 argument a to the call of callback.
22978 (gt_ggc_mx): Mark arguments as unused.
22979 (gt_pch_nx): Likewise.
22980
22981 2019-06-27 Kewen Lin <linkw@gcc.gnu.org>
22982
22983 PR target/62147
22984 * loop-iv.c (find_simple_exit): Call finite_loop_p to update
22985 finiteness.
22986
22987 2019-06-26 Jeff Law <law@redhat.com>
22988
22989 PR tree-optimization/90883
22990 * tree-ssa-dse.c (delete_dead_or_redundant_call): Fix signature.
22991 (delete_dead_or_redundant_assignment): Likewise.
22992
22993 PR tree-optimization/90883
22994 * tree-ssa-alias.c (stmt_kills_ref_p): Handle BUILT_IN_CALLOC.
22995 * tree-ssa-dse.c: Update various comments to distinguish between
22996 dead and redundant stores.
22997 (initialize_ao_ref_for_dse): Handle BUILT_IN_CALLOC.
22998 (dse_optimize_redundant_stores): New function.
22999 (delete_dead_or_redundant_call): Renamed from delete_dead_call.
23000 Distinguish between dead and redundant calls in dump output. All
23001 callers updated.
23002 (delete_dead_or_redundant_assignment): Similarly for assignments.
23003 (dse_optimize_stmt): Handle _CHK variants. For statements which
23004 store 0 into multiple memory locations, try to prove a subsequent
23005 store is redundant.
23006
23007 2019-06-26 Uroš Bizjak <ubizjak@gmail.com>
23008
23009 PR target/89021
23010 * config/i386/i386.c (ix86_autovectorize_vector_sizes):
23011 Autovectorize 8-byte vectors for TARGET_MMX_WITH_SSE.
23012
23013 2019-06-26 Iain Sandoe <iain@sandoe.co.uk>
23014
23015 * config/rs6000/rs6000-internal.h (branch_island): New typedef.
23016 (branch_islands): New extern.
23017 * config/rs6000/rs6000-logue.c (macho_branch_islands): Moved from
23018 * config/rs6000/rs6000.c: .. here.
23019
23020 2019-06-26 Iain Sandoe <iain@sandoe.co.uk>
23021
23022 * config.gcc (powerpc*-*-linux*): Move target_gtfiles from here..
23023 (powerpc*-*-*) ... to here.
23024
23025 2019-06-26 Jeff Law <law@redhat.com>
23026
23027 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle _chk variants of
23028 memcpy, memmove and memset builtins.
23029 (maybe_trim_memstar_call): Likewise.
23030
23031 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
23032
23033 * config/rs6000/rs6000-logue.c: Add #ifndef TARGET_PROFILE_KERNEL.
23034
23035 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
23036
23037 * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
23038
23039 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
23040
23041 * config/rs6000/rs6000-internal.h (rs6000_keep_leaf_when_profiled): New
23042 declaration.
23043 * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Remove
23044 "static".
23045 * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Delete
23046 declaration.
23047
23048 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
23049
23050 * config/rs6000/rs6000.c: Fix previous commit, it missed some changes.
23051
23052 2019-06-26 Richard Biener <rguenther@suse.de>
23053
23054 PR ipa/90982
23055 * tree-inline.c (remap_ssa_name): Copy SSA range info.
23056
23057 2019-06-26 Richard Biener <rguenther@suse.de>
23058
23059 * lto-streamer.h (lto_bitmap_alloc): Remove.
23060 (lto_bitmap_free): Likewise.
23061 * lto-streamer.c (lto_bitmap_alloc): Remove.
23062 (lto_bitmap_free): Likewise.
23063 (lto_obstack): Likewise.
23064 (lto_obstack_initialized): Likewise.
23065 * lto-streamer-out.c (lto_output): Use own obstack for local
23066 bitmap, free it consistently.
23067
23068 2019-06-26 Jakub Jelinek <jakub@redhat.com>
23069
23070 PR target/90991
23071 * config/i386/sse.md
23072 (*<extract_type>_vinsert<shuffletype><extract_suf>_0): Use vmovupd,
23073 vmovups, vmovdqu, vmovdqu32 or vmovdqu64 instead of the aligned
23074 insns if operands[2] is misaligned_operand.
23075
23076 2019-06-26 Li Jia He <helijia@linux.ibm.com>
23077
23078 * config/rs6000/rs6000.h (TARGET_MADDLD): Remove the restriction of
23079 TARGET_POWERPC64.
23080 * config/rs6000/rs6000.md (maddld): Change maddld match_operand from DI
23081 to GPR.
23082
23083 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
23084
23085 * doc/invoke.texi (Warning Options): Fix some @opindex syntax.
23086
23087 2019-06-26 Martin Liska <mliska@suse.cz>
23088
23089 PR tree-optimization/90973
23090 * tree-vect-loop.c (vect_get_known_peeling_cost): Use
23091 epilogue_cost_vec instead of prologue_cost_vec for
23092 a epilogue cost.
23093
23094 2019-06-26 Martin Liska <mliska@suse.cz>
23095
23096 * bb-reorder.c (connect_better_edge_p): Add missing else
23097 statement in the middle of if-else statements.
23098
23099 2019-06-25 Hongtao Liu <hongtao.liu@intel.com>
23100 H.J. Lu <hongjiu.lu@intel.com>
23101 Olga Makhotina <olga.makhotina@intel.com>
23102
23103 * common/config/i386/i386-common.c
23104 (OPTION_MASK_ISA_AVX512VP2INTERSECT_SET,
23105 OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET): New macros.
23106 (OPTION_MASK_ISA2_AVX512F_UNSET): Add
23107 OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET.
23108 (ix86_handle_option): Handle -mavx512vp2intersect.
23109 * config/i386/avx512vp2intersectintrin.h: New.
23110 * config/i386/avx512vp2intersectvlintrin.h: New.
23111 * config/i386/cpuid.h (bit_AVX512VP2INTERSECT): New.
23112 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
23113 AVX512VP2INTERSECT.
23114 * config/i386/i386-builtin-types.def: Add new types.
23115 * config/i386/i386-builtin.def: Add new builtins.
23116 * config/i386/i386-builtins.c: (enum processor_features): Add
23117 F_AVX512VP2INTERSECT.
23118 (static const _isa_names_table isa_names_table): Ditto.
23119 * config/i386/i386-c.c (ix86_target_macros_internal): Define
23120 __AVX512VP2INTERSECT__.
23121 * config/i386/i386-expand.c (ix86_expand_builtin): Expand
23122 IX86_BUILTIN_2INTERSECTD512, IX86_BUILTIN_2INTERSECTQ512,
23123 IX86_BUILTIN_2INTERSECTD256, IX86_BUILTIN_2INTERSECTQ256,
23124 IX86_BUILTIN_2INTERSECTD128, IX86_BUILTIN_2INTERSECTQ128.
23125 * config/i386/i386-modes.def (P2QI, P2HI): New modes.
23126 * config/i386/i386-options.c (ix86_target_string): Add
23127 -mavx512vp2intersect.
23128 (ix86_option_override_internal): Handle AVX512VP2INTERSECT.
23129 * config/i386/i386.c (ix86_hard_regno_nregs): Allocate two regs for
23130 P2HImode and P2QImode.
23131 (ix86_hard_regno_mode_ok): Register pair only starts at even hardreg
23132 number for P2QImode and P2HImode.
23133 (ix86_regmode_natural_size): New function.
23134 * config/i386/i386.h (TARGET_AVX512VP2INTERSECT,
23135 TARGET_AVX512VP2INTERSECT_P, PTA_AVX512VP2INTERSECT
23136 REGMODE_NATURAL_SIZE, MASK_PAIR_REGNO_P): New.
23137 * config/i386/i386-protos.h (ix86_regmode_natural_size): Declare
23138 * config/i386/i386.opt: Add -mavx512vp2intersect.
23139 * config/i386/immintrin.h: Include avx512vp2intersectintrin.h and
23140 avx512vp2intersectvlintrin.h.
23141 * config/i386/sse.md (define_c_enum "unspec"): Add UNSPEC_VP2INTERSECT.
23142 (define_mode_iterator VI48_AVX512VP2VL): New.
23143 (avx512vp2intersect_2intersect<mode>,
23144 avx512vp2intersect_2intersectv16si): New define_insn patterns.
23145 * config.gcc: Add avx512vp2intersectvlintrin.h and
23146 avx512vp2intersectintrin.h to extra_headers.
23147 * doc/invoke.texi: Document -mavx512vp2intersect.
23148
23149 2019-06-25 Iain Sandoe <iain@sandoe.co.uk>
23150
23151 * config/rs6000/darwin.h (ENDFILE_SPEC): New.
23152
23153 2019-06-25 Bill Seurer <seurer@linux.vnet.ibm.com>
23154
23155 * config/rs6000/rs6000.c (stack_info, rs6000_pic_labelno,
23156 savres_routine_syms, savres_routine_name, morestack_ref,
23157 rs6000_init_machine_status, save_reg_p, first_reg_to_save,
23158 first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
23159 compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
23160 rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
23161 rs6000_return_addr, rs6000_decl_ok_for_sibcall,
23162 rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
23163 rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
23164 create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
23165 rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
23166 get_stack_clash_protection_probe_interval,
23167 get_stack_clash_protection_guard_size,
23168 rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
23169 rs6000_emit_probe_stack_range, output_probe_stack_range_1,
23170 interesting_frame_related_regno, output_probe_stack_range_stack_clash,
23171 output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
23172 gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
23173 gen_frame_mem_offset, rs6000_savres_routine_name,
23174 rs6000_savres_routine_sym, rs6000_emit_stack_reset,
23175 ptr_regno_for_savres, rs6000_emit_savres_rtx,
23176 rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
23177 rs6000_global_entry_point_prologue_needed_p,
23178 rs6000_get_separate_components, rs6000_components_for_bb,
23179 rs6000_disqualify_components, rs6000_emit_prologue_components,
23180 rs6000_emit_epilogue_components, rs6000_set_handled_components,
23181 emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
23182 rs6000_output_savres_externs, rs6000_output_function_prologue,
23183 rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
23184 load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
23185 offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
23186 rs6000_output_function_epilogue, gen_add3_const,
23187 rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
23188 rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
23189 to rs6000-logue.c.
23190 (machine_function): Moved to rs6000.h.
23191 (rs6000_stack_t, ALTIVEC_REG_BIT, quad_address_offset_p) Moved to
23192 rs6000-internal.h.
23193 * config/rs6000/rs6000-logue.c(stack_info, rs6000_pic_labelno,
23194 savres_routine_syms, savres_routine_name, morestack_ref,
23195 rs6000_init_machine_status, save_reg_p, first_reg_to_save,
23196 first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
23197 compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
23198 rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
23199 rs6000_return_addr, rs6000_decl_ok_for_sibcall,
23200 rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
23201 rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
23202 create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
23203 rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
23204 get_stack_clash_protection_probe_interval,
23205 get_stack_clash_protection_guard_size,
23206 rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
23207 rs6000_emit_probe_stack_range, output_probe_stack_range_1,
23208 interesting_frame_related_regno, output_probe_stack_range_stack_clash,
23209 output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
23210 gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
23211 gen_frame_mem_offset, rs6000_savres_routine_name,
23212 rs6000_savres_routine_sym, rs6000_emit_stack_reset,
23213 ptr_regno_for_savres, rs6000_emit_savres_rtx,
23214 rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
23215 rs6000_global_entry_point_prologue_needed_p,
23216 rs6000_get_separate_components, rs6000_components_for_bb,
23217 rs6000_disqualify_components, rs6000_emit_prologue_components,
23218 rs6000_emit_epilogue_components, rs6000_set_handled_components,
23219 emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
23220 rs6000_output_savres_externs, rs6000_output_function_prologue,
23221 rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
23222 load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
23223 offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
23224 rs6000_output_function_epilogue, gen_add3_const,
23225 rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
23226 rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
23227 to here from rs6000.c.
23228 * config/rs6000/rs6000.h (machine_function): Moved to here from rs6000.c.
23229 * config/rs6000/rs6000-internal.h: (rs6000_stack_t, ALTIVEC_REG_BIT,
23230 quad_address_offset_p) Moved to here from rs6000.c.
23231 * config/rs6000/t-rs6000: Add new source file rs6000-logue.c.
23232 * config/config.gcc: Add new source file rs6000-logue.c to garbage
23233 collector.
23234
23235 2019-06-25 Martin Liska <mliska@suse.cz>
23236
23237 * hash-table.c (hashtab_chk_error): Move here from ...
23238 * hash-table.h (hashtab_chk_error): ... here.
23239
23240 2019-06-25 Martin Liska <mliska@suse.cz>
23241
23242 PR tree-optimization/90978
23243 * df-scan.c (df_update_entry_block_defs): Remove dead else
23244 branch.
23245 (df_update_exit_block_uses): Likewise.
23246
23247 2019-06-25 Kwok Cheung Yeung <kcy@codesourcery.com>
23248 Andrew Stubbs <ams@codesourcery.com>
23249
23250 * config.gcc (thread_file): Set to gcn for AMD GCN.
23251 * config/gcn/gcn.c (gcn_emutls_var_init): New function.
23252 (TARGET_EMUTLS_VAR_INIT): New hook.
23253
23254 2019-06-25 Martin Jambor <mjambor@suse.cz>
23255
23256 PR ipa/90939
23257 * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert.
23258
23259 2019-06-25 Richard Biener <rguenther@suse.de>
23260
23261 PR tree-optimization/90930
23262 * tree-ssa-reassoc.c (reassociate_bb): Only rewrite expression
23263 into parallel form in the last pass instance.
23264
23265 2019-06-25 Claudiu Zissulescu <claziss@synopsys.com>
23266
23267 * config/arc/arc.c (arc_symbol_binds_local_p): New function.
23268 (arc_legitimize_pic_address): Simplify and cleanup the function.
23269 (SYMBOLIC_CONST): Remove.
23270 (prepare_pic_move): Likewise.
23271 (prepare_move_operands): Handle complex mov cases here.
23272 (arc_legitimize_address_0): Remove call to
23273 arc_legitimize_pic_address.
23274 (arc_legitimize_address): Remove call to
23275 arc_legitimize_tls_address.
23276 * config/arc/arc.md (movqi_insn): Allow Cm3 match.
23277 (movhi_insn): Likewise.
23278
23279 2019-06-25 Jozef Lawrynowicz <jozef.l@mittosystems.com>
23280
23281 * config/msp430/msp430.h: Use __int20__ for SIZE_TYPE and
23282 PTRDIFF_TYPE.
23283 * gimple-ssa-sprintf.c (build_intmax_type_nodes): Accept "__intN__"
23284 format of "__intN" types for UINTMAX_TYPE.
23285 * stor-layout.c (initialize_sizetypes): Accept "__intN__"
23286 format of "__intN" types for SIZETYPE.
23287 * tree.c (build_common_tree_nodes): Accept "__intN__"
23288 format of "__intN" types for SIZE_TYPE and PTRDIFF_TYPE.
23289 * doc/invoke.texi: Document that __intN__ disables pedantic
23290 warnings.
23291
23292 2019-06-25 Jan Hubicka <jh@suse.cz>
23293
23294 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Check that
23295 base2_alias_set is non-zero before doing TBAA based disambiguation.
23296
23297 2019-06-25 Martin Liska <mliska@suse.cz>
23298
23299 PR tree-optimization/90973
23300 * tree-vect-loop.c (vect_get_known_peeling_cost): Sum retval
23301 of prologue and epilogue.
23302
23303 2019-06-24 Jan Hubicka <jh@suse.cz>
23304
23305 * ipa-utils.h (type_with_linkage_p): Verify that type is
23306 CXX_ODR_P.
23307 (odr_type_p): Remove extra return.
23308 * lto-streamer-out.c (hash_tree): Hash TYPE_CXX_ODR_P;
23309 hash STRING_FLAG only for arrays and integers.
23310 * tree-stremaer-in.c (unpack_ts_type_common_value_fields):
23311 Update analogously.
23312 * tree-streamer-out.c (pack_ts_type_common_value_fields):
23313 Likewise.
23314 * print-tree.c (print_node): Print cxx-odr-p
23315 and string-flag.
23316 * tree.c (need_assembler_name_p): Also check that type
23317 is CXX_ODR_TYPE_P
23318 (verify_type_variant): Update verification of SRING_FLAG;
23319 also check CXX_ODR_P.
23320 * tree.h (ARRAY_OR_INTEGER_TYPE_CHECK): New macro.
23321 (TYPE_STRING_FLAG): Use it.
23322 (TYPE_CXX_ODR_P): New macro.
23323 * dwarf2out.c (gen_array_type_die): First check that type
23324 is an array and then test string flag.
23325
23326 2019-06-24 Richard Biener <rguenther@suse.de>
23327
23328 PR tree-optimization/90972
23329 * tree-vect-stmts.c (vect_init_vector): Handle CONSTANT_CLASS_P
23330 in common code, dealing with STRING_CST properly.
23331
23332 2019-06-24 Richard Biener <rguenther@suse.de>
23333
23334 PR tree-optimization/90930
23335 PR tree-optimization/90316
23336 * tree-ssa-alias.c (walk_non_aliased_vuses): Add missing
23337 decrement of limit.
23338
23339 2019-06-24 Martin Sebor <msebor@redhat.com>
23340
23341 * tree-pretty-print.h: Remove unnecessary punctuation characters
23342 from a diagnostic.
23343 * tree-ssa.c (release_defs_bitset): Correct preprocessor conditional.
23344
23345 2019-06-24 Jonathan Wakely <jwakely@redhat.com>
23346
23347 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, LDBL_DECIMAL_DIG)
23348 (FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, LDBL_HAS_SUBNORM, FLT_TRUE_MIN)
23349 (DBL_TRUE_MIN, LDBL_TRUE_MIN): Also define for C++17.
23350
23351 2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
23352
23353 * config/rs6000/darwin.h: Handle GCC target pragma.
23354
23355 2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
23356
23357 * config/rs6000/darwin.h: (__PPC__, __PPC64__): New.
23358
23359 2019-06-22 Jeff Law <law@redhat.com>
23360
23361 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
23362
23363 2019-06-22 Jan Hubicka <jh@suse.cz>
23364
23365 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Do not
23366 give up on bitfields; continue searching for different refs
23367 appearing later.
23368
23369 2019-06-21 Jakub Jelinek <jakub@redhat.com>
23370
23371 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
23372 even zero DR_OFFSET, but DR_BASE_ADDRESS of POINTER_PLUS_EXPR
23373 containing the offset as possible simd lane access. Look through
23374 widening conversion. Move the
23375 TREE_CODE (DR_INIT (newdr)) == INTEGER_CST test earlier and reindent.
23376
23377 2019-06-21 Richard Biener <rguenther@suse.de>
23378
23379 PR tree-optimization/90930
23380 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited
23381 flag on new stmts to avoid re-processing them.
23382
23383 2019-06-21 Matthew Beliveau <mbelivea@redhat.com>
23384
23385 PR c++/90875 - added -Wswitch-outside-range option
23386 * doc/invoke.texi (Wswitch-outside-range): Document.
23387
23388 2019-06-21 Jeff Law <law@redhat.com>
23389
23390 PR tree-optimization/90949
23391 * tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info.
23392 * tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state.
23393
23394 2019-06-21 Richard Biener <rguenther@suse.de>
23395
23396 PR debug/90914
23397 * dwarf2out.c (prune_unused_types_walk): Always consider
23398 function-local extern declarations as used.
23399
23400 2019-06-21 Richard Biener <rguenther@suse.de>
23401
23402 PR tree-optimization/90913
23403 * tree-vect-loop-manip.c (vect_loop_versioning): Do not re-use
23404 the scalar variant of if-conversion versioning.
23405
23406 2019-06-21 Jakub Jelinek <jakub@redhat.com>
23407
23408 * omp-low.c (lower_rec_simd_input_clauses): Add rvar2 argument,
23409 create another "omp scan inscan exclusive" array if
23410 !ctx->scan_inclusive.
23411 (lower_rec_input_clauses): Handle exclusive scan inscan reductions.
23412 (lower_omp_scan): Likewise.
23413 * tree-vectorizer.h (struct _stmt_vec_info): Use 3-bit instead of
23414 2-bit bitfield for simd_lane_access_p member.
23415 * tree-vect-data-refs.c (vect_analyze_data_refs): Also handle
23416 aux == (void *)-4 as simd lane access.
23417 * tree-vect-stmts.c (check_scan_store): Handle exclusive scan. Update
23418 comment with permutations to show the canonical permutation order.
23419 (vectorizable_scan_store): Handle exclusive scan.
23420 (vectorizable_store): Call vectorizable_scan_store even for
23421 STMT_VINFO_SIMD_LANE_ACCESS_P > 3.
23422
23423 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
23424 "omp simd array" arrays with one byte elements.
23425
23426 2019-06-20 Uroš Bizjak <ubizjak@gmail.com>
23427
23428 * config/alpha/alpha.md (@unaligned_store<mode>):
23429 Rename from unaligned_store<mode>.
23430 (@reload_in<mode>_aligned): Rename from reload_in<mode>_aligned.
23431 * config/alpha/sync.md (@load_locked_<mode>): Rename
23432 from load_locked_<mode>.
23433 (@store_conditional_<mode>): Rename from store_conditional_<mode>.
23434 (@atomic_compare_and_swap<mode>_1): Rename
23435 from atomic_compare_and_swap<mode>_1.
23436 (@atomic_exchange<mode>_1): Rename from atomic_exchange<mode>_1.
23437 * config/alpha/alpha.c (alpha_expand_mov_nobwx):
23438 Use gen_reload_in_aligned and gen_unaligned_store.
23439 (emit_load_locked): Remove.
23440 (emit_store_conditional): Ditto.
23441 (alpha_split_atomic_op): Use gen_load_locked and gen_store_conditional.
23442 (alpha_split_compare_and_swap): Ditto.
23443 (alpha_expand_compare_and_swap_12): Use gen_atomic_compare_and_swap_1.
23444 (alpha_split_compare_and_swap_12): Use gen_load_locked
23445 and gen_store_conditional.
23446 (alpha_split_atomic_exchange): Ditto.
23447 (alpha_expand_atomic_exchange_12): Use gen_atomic_exchange_1.
23448 (alpha_split_atomic_exchange_12): Use gen_load_locked
23449 and gen_store_conditional.
23450
23451 2019-06-20 Richard Earnshaw <rearnsha@arm.com>
23452
23453 * config/aarch64/aarch64-errata.h: New file.
23454 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Delete.
23455 (CA53_ERR_843419_SPEC): Delete.
23456 (LINK_SPEC): Use AARCH64_ERRATA_LINK_SPEC instead of above.
23457 * config/aarch64/aarch64-linux.h: Likewise.
23458 * config/aarch64/aarch64-netbsd.h: Likewise.
23459 * config/aarch64/aarch64-freebsd.h: Likewise.
23460
23461 2019-06-20 Marek Polacek <polacek@redhat.com>
23462
23463 * config/sh/sh.c (sh2a_function_vector_p): Use get_attribute_name.
23464
23465 2019-06-20 Michael Meissner <meissner@linux.ibm.com>
23466
23467 * config/rs6000/rs6000.md (isa attribute): Add support for
23468 for a future processor.
23469
23470 2019-06-20 H.J. Lu <hongjiu.lu@intel.com>
23471
23472 PR target/54855
23473 * config/i386/i386-expand.c (ix86_expand_vector_set): Generate
23474 standard scalar operation pattern for V2DF.
23475 * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3): New.
23476 (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise.
23477 (*ieee_<ieee_maxmin><mode>3): Likewise.
23478 (vec_setv2df_0): Likewise.
23479
23480 2019-06-20 Jan Hubicka <jh@suse.cz>
23481
23482 * tree-ssa-alias.c (aliasing_component_refs_p): Remove ref2_is_decl
23483 parameter; it has no use in gimple memory model.
23484 (indirect_ref_may_alias_decl_p): Update.
23485
23486 2019-06-20 Martin Liska <mliska@suse.cz>
23487
23488 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): Decrease
23489 to 10.
23490
23491 2019-06-20 Jakub Jelinek <jakub@redhat.com>
23492
23493 * tree-vect-stmts.c (enum scan_store_kind): New type.
23494 (scan_store_can_perm_p): Change last argument from int * to
23495 vec<enum scan_store_kind> *, record precisely which permutations
23496 need whole vector left shift or that plus VEC_COND_EXPR.
23497 (vectorizable_scan_store): Adjust caller, use whole vector left shift
23498 and additional VEC_COND_EXPR only for those iterations that need it.
23499
23500 2019-06-20 Alexandre Oliva <oliva@adacore.com>
23501
23502 * config.gcc: Fix ARM --with-fpu checking and error message.
23503
23504 2019-06-19 Marek Polacek <polacek@redhat.com>
23505
23506 PR c++/60364 - noreturn after first decl not diagnosed.
23507 * attribs.c (get_attribute_namespace): No longer static.
23508 (decl_attributes): Avoid shadowing. Preserve the C++11 form for C++11
23509 attributes.
23510 (attr_noreturn_exclusions): Make it extern.
23511 * attribs.h (get_attribute_namespace): Declare.
23512 * tree-inline.c (function_attribute_inlinable_p): Use
23513 get_attribute_name.
23514
23515 2019-06-19 Martin Sebor <msebor@redhat.com>
23516
23517 PR tree-optimization/90626
23518 * tree-ssa-strlen.c (strxcmp_unequal): Fix typos.
23519
23520 PR tree-optimization/90626
23521 * tree-ssa-strlen.c (strxcmp_unequal): New function.
23522 (handle_builtin_string_cmp): Call it.
23523
23524 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
23525
23526 * config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC
23527 and DARWIN_NOPIE_SPEC.
23528 (RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC.
23529 (DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h.
23530 (DARWIN_NOPIE_SPEC): Collate from darwin10.h.
23531 (DARWIN_NOCOMPACT_UNWIND): New from darwin10.h
23532 (DARWIN_EXPORT_DYNAMIC): Delete.
23533 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind
23534 and pie options processing to darwin.h.
23535 * config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h
23536
23537 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
23538
23539 * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors
23540 in computing the number of options to be moved.
23541
23542 2019-06-19 Maya Rashish <coypu@sdf.org>
23543
23544 * config/arm/netbsd-elf.h (SYSARCH_ARM_SYNC_ICACHE): New definition.
23545 (CLEAR_INSN_CACHE) Use it.
23546
23547 2019-06-19 Uroš Bizjak <ubizjak@gmail.com>
23548
23549 * config/i386/i386.md (cmpstrnsi): Remove dead code.
23550
23551 2019-06-19 Wilco Dijkstra <wdijkstr@arm.com>
23552
23553 PR middle-end/84521
23554 * builtins.c (expand_builtin_setjmp_setup): Save
23555 hard_frame_pointer_rtx.
23556 (expand_builtin_setjmp_receiver): Do not emit sfp = fp move since we
23557 restore fp.
23558 * function.c (expand_function_start): Save hard_frame_pointer_rtx for
23559 non-local goto.
23560 * lra-eliminations.c (eliminate_regs_in_insn): Remove sfp = fp
23561 elimination code.
23562 (remove_reg_equal_offset_note): Remove unused function.
23563 * reload1.c (eliminate_regs_in_insn): Remove sfp = hfp elimination
23564 code.
23565 * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
23566 (arc_builtin_setjmp_frame_value): Remove function.
23567 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
23568 (avr_builtin_setjmp_frame_value): Remove function.
23569 * config/i386/i386.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
23570 (ix86_builtin_setjmp_frame_value): Remove function.
23571 * config/pa/pa.md (nonlocal_goto): Remove FP adjustment.
23572 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
23573 (sparc_builtin_setjmp_frame_value): Remove function.
23574 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
23575 (vax_builtin_setjmp_frame_value): Remove function.
23576 * config/xtensa/xtensa.c (xtensa_frame_pointer_required): Force frame
23577 pointer if has_nonlocal_label.
23578
23579 2019-06-19 Jakub Jelinek <jakub@redhat.com>
23580
23581 * doc/md.texi: Document vec_shl_<mode> pattern.
23582 * optabs.def (vec_shl_optab): New optab.
23583 * optabs.c (shift_amt_for_vec_perm_mask): Add shift_optab
23584 argument, if == vec_shl_optab, check for left whole vector shift
23585 pattern rather than right shift.
23586 (expand_vec_perm_const): Add vec_shl_optab support.
23587 * optabs-query.c (can_vec_perm_var_p): Mention also vec_shl optab
23588 in the comment.
23589 * tree-vect-generic.c (lower_vec_perm): Support permutations which
23590 can be handled by vec_shl_optab.
23591 * tree-vect-stmts.c (scan_store_can_perm_p): New function.
23592 (check_scan_store): Use it.
23593 (vectorizable_scan_store): If target can't do normal permutations,
23594 try to use whole vector left shifts and if needed a VEC_COND_EXPR
23595 after it.
23596 * config/i386/sse.md (vec_shl_<mode>): New expander.
23597
23598 * omp-low.c (lower_rec_input_clauses): Handle references properly
23599 in inscan clauses.
23600 (lower_omp_scan): Likewise.
23601
23602 2019-06-19 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
23603
23604 * tree-ssa-address.c (preferred_mem_scale_factor): Handle when
23605 mem_mode is BLKmode.
23606
23607 2019-06-18 Max Filippov <jcmvbkbc@gmail.com>
23608
23609 PR target/90922
23610 * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack
23611 pointer adjustment for the case of no callee-saved registers and
23612 stack frame bigger than 128 bytes.
23613
23614 2019-06-18 Thomas Schwinge <thomas@codesourcery.com>
23615
23616 PR middle-end/90862
23617 * omp-low.c (check_omp_nesting_restrictions): Handle
23618 GF_OMP_TARGET_KIND_OACC_DECLARE.
23619
23620 2019-06-18 Uroš Bizjak <ubizjak@gmail.com>
23621
23622 * config/i386/i386.md (@cmp<mode>_1): Rename from cmp<mode>_1.
23623 (@add<mode>3_carry): Rename from add<mode>3_carry.
23624 (@sub<mode>3_carry_ccc): Rename from sub<mode>3_carry_ccc.
23625 (@sub<mode>3_carry_ccgz): Rename form sub<mode>3_carry_ccgz.
23626 (@copysign<mode>3_const): Rename from copysign<mode>3_const.
23627 (@copysign<mode>3_var): Rename from copysign<mode>3_var.
23628 (@xorsign<mode>3_1): Rename from xorsign<mode>3_1.
23629 (@x86_shift<mode>_adj_1): Rename from x86_shift<mode>_adj_1.
23630 (@x86_shift<mode>_adj_2): Rename from x86_shift<mode>_adj_2.
23631 (@x86_shift<mode>_adj_3): Rename from x86_shift<mode>_adj_3.
23632 (cmpstrnsi): Use gen_cmp_1.
23633 (lwp_slwpcb): Use gen_lwp_slwpcb_1.
23634 (@lwp_slwpcb<mode>_1): Rename from lwp_slwpcb<mode>_1.
23635 (@umonitor_<mode>): Rename from umonitor_<mode>.
23636 * config/i386/i386-expand.c (ix86_expand_copysign):
23637 Use gen_copysign3_const and gen_copysign3_var.
23638 (ix86_expand_xorsign): Use gen_xorsign3_1.
23639 (ix86_expand_branch): Use gen_sub3_carry_ccc,
23640 gen_sub3_carry_ccgz and gen_cmp1.
23641 (ix86_expand_int_addcc): Use gen_sub3_carry and gen_add3_carry.
23642 (ix86_split_ashl): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_2.
23643 (ix86_split_ashr): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_3.
23644 (ix86_split_lshr): Ditto.
23645 (ix86_expand_builtin) <case IX86_BUILTIN_UMONITOR>: Use gen_umonitor.
23646
23647 2019-06-18 Jason Merrill <jason@redhat.com>
23648
23649 * tree.c (build_constructor): Add MEM_STAT_DECL.
23650
23651 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
23652
23653 * config/aarch64/aarch64-modes.def (CC_NZC): New CC_MODE.
23654 * config/aarch64/aarch64-sve.md (*<optab><mode>3_cc)
23655 (ptest_ptrue<mode>, while_ult<GPI:mode><PRED_ALL:mode>)
23656 (*while_ult<GPI:mode><PRED_ALL:mode>_cc, *cmp<cmp_op><mode>)
23657 (*cmp<cmp_op><mode>_ptest, *cmp<cmp_op><mode>_cc)
23658 (*pred_cmp<cmp_op><mode>_combine, *pred_cmp<cmp_op><mode>)
23659 (vec_cmp<mode><vpred>, vec_cmpu<mode><vpred>, cbranch<mode>4):
23660 Use CC_NZC instead of CC.
23661 * config/aarch64/aarch64.md (condjump): Print a '.' in SVE conditions.
23662 * config/aarch64/aarch64.c (aarch64_sve_condition_codes): New variable.
23663 (aarch64_print_operand): Handle E_CC_NZCmode.
23664 (aarch64_emit_sve_ptrue_op_cc): Use gen_set_clobber_cc_nzc instead
23665 of gen_set_clobber_cc.
23666
23667 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
23668
23669 * config/aarch64/aarch64-sve.md: Tabify file.
23670
23671 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
23672
23673 * config/aarch64/aarch64-protos.h (aarch64_pfalse_reg): Declare.
23674 * config/aarch64/aarch64.c (aarch64_pfalse_reg): New function.
23675 * config/aarch64/aarch64-sve.md: Use it.
23676
23677 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
23678
23679 * config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): Declare.
23680 * config/aarch64/aarch64.c (aarch64_ptrue_reg): New functions.
23681 (aarch64_expand_sve_widened_duplicate, aarch64_expand_sve_mem_move)
23682 (aarch64_maybe_expand_sve_subreg_move, aarch64_evpc_rev_local)
23683 (aarch64_expand_sve_vec_cmp_int): Use it.
23684 (aarch64_expand_sve_vec_cmp_float): Likewise.
23685 * config/aarch64/aarch64-sve.md: Likewise throughout.
23686
23687 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
23688 Kugan Vivekanandarajah <kuganv@linaro.org>
23689
23690 * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_0): Delete.
23691 (*cond_<optab><mode>_z): Fold into...
23692 (*cond_<optab><mode>_any): ...here. Also handle cases in which
23693 operand 4 can be tied to operand 0 (either inherently or via RA).
23694
23695 2019-06-18 Richard Biener <rguenther@suse.de>
23696
23697 PR debug/90900
23698 * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL
23699 as if optimized away.
23700
23701 2019-06-18 Tom de Vries <tdevries@suse.de>
23702
23703 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Remove.
23704 * config/nvptx/nvptx.c (gen_set_softstack_insn): Remove.
23705 * config/nvptx/nvptx.md (define_insn "set_softstack_<mode>"):
23706 Rename to ...
23707 (define_insn "@set_softstack_<mode>"): ... this.
23708 (define_insn "omp_simt_enter_<mode>"): Rename to ...
23709 (define_insn "@omp_simt_enter_<mode>"): ... this.
23710 (define_insn "omp_simt_exit_<mode>"): Rename to ...
23711 (define_insn "@omp_simt_exit_<mode>"): ... this.
23712
23713 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
23714
23715 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Remove
23716 vf parameter. Restore the previous iv step of nscalars_step,
23717 but give it iv_type rather than compare_type. Tweak code order
23718 to match the comments.
23719 (vect_set_loop_condition_masked): Update accordingly.
23720 * tree-vect-loop.c (vect_verify_full_masking): Use "unsigned int"
23721 for iv_precision. Tweak comment formatting.
23722
23723 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
23724
23725 * config/darwin.c: Strip trailing whitespace.
23726
23727 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
23728
23729 * config/darwin.c (darwin_emit_unwind_label): New default to false.
23730 (darwin_override_options): Set darwin_emit_unwind_label as needed.
23731
23732 2019-06-18 Martin Jambor <mjambor@suse.cz>
23733
23734 PR ipa/90889
23735 * ipa-cp.c (ignore_edge_p): Do not ignore edges when only the
23736 caller does not have flag_ipa_cp set.
23737
23738 2019-06-18 Alejandro Martinez <alejandro.martinezvicente@arm.com>
23739
23740 * config/aarch64/aarch64-sve.md (mask_fold_left_plus_<mode>): Renamed
23741 from "*fold_left_plus_<mode>", updated operands order.
23742 * doc/md.texi (mask_fold_left_plus_@var{m}): Documented new optab.
23743 * internal-fn.c (mask_fold_left_direct): New define.
23744 (expand_mask_fold_left_optab_fn): Likewise.
23745 (direct_mask_fold_left_optab_supported_p): Likewise.
23746 * internal-fn.def (MASK_FOLD_LEFT_PLUS): New internal function.
23747 * optabs.def (mask_fold_left_plus_optab): New optab.
23748 * tree-vect-loop.c (mask_fold_left_plus_optab): New function to get a
23749 masked internal_fn for a reduction ifn.
23750 (vectorize_fold_left_reduction): Add support for masking reductions.
23751
23752 2019-06-18 Kewen Lin <linkw@gcc.gnu.org>
23753
23754 PR middle-end/80791
23755 * target.def (predict_doloop_p): New hook.
23756 * targhooks.h (default_predict_doloop_p): New declaration.
23757 * targhooks.c (default_predict_doloop_p): New function.
23758 * doc/tm.texi.in (TARGET_PREDICT_DOLOOP_P): New hook.
23759 * doc/tm.texi: Regenerate.
23760 * config/rs6000/rs6000.c (rs6000_predict_doloop_p): New function.
23761 (TARGET_PREDICT_DOLOOP_P): New macro.
23762 * tree-ssa-loop-ivopts.c (generic_predict_doloop_p): New function.
23763
23764 2019-06-17 Jakub Jelinek <jakub@redhat.com>
23765
23766 * omp-low.c (struct omp_context): Add scan_inclusive field.
23767 (scan_omp_1_stmt) <case GIMPLE_OMP_SCAN>: Set ctx->scan_inclusive
23768 if inclusive scan.
23769 (struct omplow_simd_context): Add lastlane member.
23770 (lower_rec_simd_input_clauses): Add rvar argument, handle inscan
23771 reductions. Build 2 or 3 argument .GOMP_SIMD_LANE calls rather than
23772 1 or 2 argument.
23773 (lower_rec_input_clauses): Handle inscan reductions in simd contexts.
23774 (lower_lastprivate_clauses): Set TREE_THIS_NOTRAP on the ARRAY_REF.
23775 (lower_omp_scan): New function.
23776 (lower_omp_1) <case GIMPLE_OMP_SCAN>: Use lower_omp_scan.
23777 * tree-ssa-dce.c (eliminate_unnecessary_stmts): For IFN_GOMP_SIMD_LANE
23778 check 3rd argument if present rather than 2nd.
23779 * tree-vectorizer.h (struct _loop_vec_info): Add scan_map member.
23780 (struct _stmt_vec_info): Change simd_lane_access_p from bool into
23781 2-bit bitfield.
23782 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
23783 scan_map. For IFN_GOMP_SIMD_LANE check 3rd argument if present rather
23784 than 2nd.
23785 (_loop_vec_info::~_loop_vec_info): Delete scan_map.
23786 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Allow two
23787 different STMT_VINFO_SIMD_LANE_ACCESS_P refs if they have the same
23788 init.
23789 (vect_find_stmt_data_reference): Encode in ->aux the 2nd
23790 IFN_GOMP_SIMD_LANE argument.
23791 (vect_analyze_data_refs): Set STMT_VINFO_SIMD_LANE_ACCESS_P from the
23792 encoded ->aux value.
23793 * tree-vect-stmts.c: Include attribs.h.
23794 (vectorizable_call): Adjust comment about IFN_GOMP_SIMD_LANE.
23795 (scan_operand_equal_p, check_scan_store, vectorizable_scan_store): New
23796 functions.
23797 (vectorizable_load): For STMT_VINFO_SIMD_LANE_ACCESS_P tests use != 0.
23798 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P > 1.
23799
23800 2019-06-17 Uroš Bizjak <ubizjak@gmail.com>
23801
23802 PR target/62055
23803 * config/i386/i386.md (*nabstf2_1): New insn pattern.
23804 (*nabs<mode>2_1): Ditto.
23805 (nabs sse-reg splitter): New splitter.
23806 * config/i386/sse.md (*nabs<mode>2): New insn_and_split pattern.
23807
23808 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
23809
23810 PR bootstrap/90873.
23811 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
23812 TMR index check.
23813
23814 2019-06-17 Tom de Vries <tdevries@suse.de>
23815
23816 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Declare.
23817 * config/nvptx/nvptx.c (gen_set_softstack_insn): New function.
23818 * config/nvptx/nvptx.md (define_insn "set_softstack_insn"): Rename to
23819 ...
23820 (define_insn "set_softstack_<mode>"): ... this. Use P iterator on
23821 match_operand 0.
23822 (define_insn "omp_simt_enter_insn"): Rename to ...
23823 (define_insn "omp_simt_enter_<mode>"): ... this. Use P iterator on
23824 match_operand 0, 1 and 2, as well as the unspec_volatile result.
23825 (define_expand "omp_simt_enter): Use gen_omp_simt_enter_di and
23826 gen_omp_simt_enter_si.
23827 (define_expand "omp_simt_exit"): New.
23828 (define_insn "omp_simt_exit"): Rename to ...
23829 (define_insn "omp_simt_exit_<mode>"): ... this. Use P iterator on
23830 match_operand 0.
23831
23832 2019-06-17 Matthew Green <mrg@eterna.com.au>
23833 Maya Rashish <coypu@sdf.org>
23834
23835 * config.gcc (aarch64*-*-netbsd*): New target.
23836 * config/aarch64/aarch64-netbsd.h: New file.
23837 * config/aarch64/t-aarch64-netbsd: Likewise.
23838
23839 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
23840
23841 * tree-ssa-alias.c (aliasing_component_refs_p): Consider only
23842 the access path from base to first VIEW_CONVERT_EXPR or
23843 BIT_FIELD_REF.
23844
23845 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
23846
23847 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Also truncate
23848 access path on BIT_FIELD_REFs.
23849
23850 2019-06-17 Martin Liska <mliska@suse.cz>
23851
23852 PR ipa/90874
23853 * ipa-utils.h (odr_type_p): Remove dead code.
23854
23855 2019-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23856
23857 * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for
23858 alternative Solaris 11.4 format.
23859 * configure: Regenerate.
23860
23861 2019-06-17 Tom de Vries <tdevries@suse.de>
23862
23863 * config/nvptx/nvptx.md (define_insn "call_insn"): Rename to ...
23864 (define_insn "call_insn_<mode>"): ... this. Use P iterator on
23865 match_operand 0.
23866 (define_insn "call_value_insn"): Rename to ...
23867 (define_insn "call_value_insn_<mode>"): this. Use P iterator on
23868 match_operand 0.
23869 (define_insn "nvptx_red_partition"): Set unspec_volatile result mode to
23870 DI.
23871
23872 2019-06-16 John David Anglin <danglin@gcc.gnu.org>
23873
23874 PR middle-end/64242
23875 * config/pa/pa.md (nonlocal_goto): Restore frame pointer last. Add
23876 frame clobbers and schedule block.
23877 (builtin_longjmp): Likewise.
23878
23879 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
23880
23881 * config/msp430/msp430.c (msp430_expand_helper): Setup arguments which
23882 describe how to perform MSPABI compliant 64-bit shift.
23883 * config/msp430/msp430.md (ashldi3): New define_expand.
23884 (ashrdi3): New define_expand.
23885 (lshrdi3): New define_expand.
23886
23887 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
23888
23889 * doc/sourcebuild.texi: Document new effective target keyword
23890 longlong64.
23891
23892 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
23893
23894 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p,
23895 indirect_refs_may_alias_p): Revert accidental commits.
23896
23897 * tree-ssa-alias.c (aliasing_component_refs_p): Watch for arrays
23898 at the end of structures.
23899
23900 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
23901
23902 * config/darwin.c (machopic_indirect_call_target): Use renamed
23903 darwin_picsymbol_stubs to decide on output.
23904 (darwin_override_options): Handle darwin_picsymbol_stubs.
23905 * config/darwin.h (MIN_LD64_OMIT_STUBS): New.
23906 (LD64_VERSION): Revise default.
23907 * config/darwin.opt: (mpic-symbol-stubs): New option.
23908 (darwin_picsymbol_stubs): New variable.
23909 * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS):
23910 rename to TARGET_MACHO_PICSYM_STUBS.
23911 * config/i386/i386.c (output_pic_addr_const): Likewise.
23912 * config/i386/i386.h Likewise.
23913 * config/rs6000/darwin.h: Likewise.
23914 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed
23915 darwin_picsymbol_stubs.
23916
23917 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
23918
23919 * config/darwin.opt (prebind, noprebind, seglinkedit,
23920 noseglinkedit): Add RejectNegative.
23921
23922 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
23923
23924 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Fix pasto
23925 in my previous patch.
23926
23927 2019-06-16 Tom de Vries <tdevries@suse.de>
23928
23929 PR tree-optimization/89376
23930 * tree-parloops.c (oacc_entry_exit_ok_1): Handle red == NULL.
23931
23932 2019-06-15 Maya Rashish <coypu@sdf.org>
23933
23934 * doc/invoke.texi (Spec Files): Update location of the
23935 Fortran spec file.
23936
23937 2019-06-15 Gerald Pfeifer <gerald@pfeifer.com>
23938
23939 * doc/extend.texi (Common Function Attributes): Clarify
23940 no_sanitize. Fix grammar.
23941
23942 2019-06-15 Jan Hubicka <hubicka@ucw.cz>
23943
23944 * tree-ssa-alias.c (alias_stats): Add
23945 nonoverlapping_component_refs_p_may_alias,
23946 nonoverlapping_component_refs_p_no_alias,
23947 nonoverlapping_component_refs_of_decl_p_may_alias,
23948 nonoverlapping_component_refs_of_decl_p_no_alias.
23949 (dump_alias_stats): Dump them.
23950 (nonoverlapping_component_refs_of_decl_p): Add stats.
23951 (nonoverlapping_component_refs_p): Add stats; do not stop on first
23952 ARRAY_REF.
23953
23954 2019-06-15 Uroš Bizjak <ubizjak@gmail.com>
23955
23956 * config/i386/i386.md (and<mode>3): Generate zero-extends for
23957 TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))
23958 only.
23959 (*anddi3_doubleword): Split before reload. Merge with
23960 anddi->zext pre-reload splitter.
23961 (*andndi3_doubleword): Split before reload.
23962 (*<code>di3_doubleword): Ditto.
23963 (*one_cmpldi2_doubleword): Ditto.
23964
23965 2019-06-15 Jakub Jelinek <jakub@redhat.com>
23966
23967 PR middle-end/90779
23968 * gimplify.c: Include omp-offload.h and context.h.
23969 (gimplify_bind_expr): Add "omp declare target" attributes
23970 to static block scope variables inside of target region or target
23971 functions.
23972
23973 2019-06-15 Tom de Vries <tdevries@suse.de>
23974
23975 PR tree-optimization/90009
23976 * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path):
23977 Return NULL if bb contains IFN_UNIQUE.
23978
23979 2019-06-14 Segher Boessenkool <segher@kernel.crashing.org>
23980
23981 * config/rs6000/rs6000.md (CCEITHER): New define_mode_iterator.
23982 (un): New define_mode_attr.
23983 (isel_signed_<mode>, isel_unsigned_<mode>): Delete, merge into ...
23984 (isel_<un>signed_<GPR:mode>): ... this. New define_insn.
23985 (isel_reversed_signed_<mode>, isel_reversed_unsigned_<mode>): Delete,
23986 merge into ...
23987 (isel_reversed_<un>signed_<GPR:mode>): ... this. New define_insn.
23988
23989 2019-06-14 Iain Sandoe <iain@sandoe.co.uk>
23990
23991 * config/darwin.opt: Add RejectNegative where needed, reorder
23992 and add minimal functional descriptions.
23993
23994 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
23995
23996 PR rtl-optimization/90765
23997 * calls.c (update_stack_alignment_for_call): New function.
23998 (expand_call): Call update_stack_alignment_for_call when
23999 outgoing parameter is passed in the stack.
24000 (emit_library_call_value_1): Likewise.
24001 * function.c (locate_and_pad_parm): Don't update
24002 stack_alignment_needed and preferred_stack_boundary.
24003
24004 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
24005
24006 PR target/90877
24007 * config/i386/i386-features.c
24008 (dimode_scalar_chain::compute_convert_gain): Replace
24009 mmxsse_to_integer with sse_to_integer.
24010 * config/i386/i386.c (ix86_register_move_cost): Verify that
24011 moves between MMX and non-MMX units require secondary memory.
24012 Correct costs of moves between SSE and integer units.
24013 * config/i386/i386.h (processor_costs): Rename cost of moving
24014 SSE register to integer to sse_to_integer. Rename cost of
24015
24016 2019-06-14 Matt Thomas <matt@3am-software.com>
24017 Matthew Green <mrg@eterna.com.au>
24018 Nick Hudson <skrll@netbsd.org>
24019 Maya Rashish <coypu@sdf.org>
24020 Richard Earnshaw <rearnsha@arm.com>
24021
24022 * config.gcc (arm*-*-netbsdelf*) Add support for EABI configuration.
24023 * config.host (arm*-*-netbsd*): Use driver-arm.o on native NetBSD.
24024 * config/arm/netbsd-eabi.h: New file.
24025 * config/arm/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Undefine before
24026 redefining.
24027 (SUBTARGET_EXTRA_ASM_SPEC): Don't pass -matpcs to the assembler.
24028 * config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): New define.
24029 (NETBSD_SUBTARGET_EXTRA_SPECS): New define.
24030 (SUBTARGET_EXTRA_SPECS): Define to NETBSD_SUBTARGET_EXTRA_SPECS.
24031
24032 2019-06-14 Richard Biener <rguenther@suse.de>
24033
24034 * tree-loop-distribution.c (classify_partition): Return
24035 whether a reduction appeared in all partitions and do not
24036 stop builtin detection because of this.
24037 (distribute_loop): Sort a non-builtin partition last if
24038 there's a reduction in all partitions and make sure the
24039 partition prevailing as last is not a builtin.
24040
24041 2019-06-14 Feng Xue <fxue@os.amperecomputing.com>
24042
24043 PR ipa/90401
24044 * ipa-prop.c (add_to_agg_contents_list): New function.
24045 (clobber_by_agg_contents_list_p): Likewise.
24046 (extract_mem_content): Likewise.
24047 (get_place_in_agg_contents_list): Delete.
24048 (determine_known_aggregate_parts): Renamed from
24049 determine_locally_known_aggregate_parts. New parameter
24050 aa_walk_budget_p.
24051
24052 2019-06-13 Martin Sebor <msebor@redhat.com>
24053
24054 PR tree-optimization/90662
24055 * tree-ssa-strlen.c (get_stridx): Convert fold_build2 operands
24056 to the same type.
24057
24058 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
24059
24060 PR bootstrap/90873
24061 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Also check that
24062 dbase is not TARGET_MEM_REF.
24063
24064 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
24065
24066 * config/i386/i386.md (SWIM1248s): Rename from SWIM1248x.
24067 Update all uses.
24068 (and<mode>3): Use gen_extend_insn instead of indirect functions.
24069 Do not generate DImode extends for 32bit targets.
24070 (and->zext post-reload splitter): Use gen_extend_insn
24071 instead of indirect functions.
24072 (anddi->zext pre-reload splitter): New.
24073 (*zext<mode>_doubleword_and): Remove.
24074 (*zext<mode>_doubleword): Ditto.
24075 (*zextsi_doubleword): Dittto.
24076
24077 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
24078
24079 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
24080 Use gen_sub3_insn instead of indirect function.
24081 (ix86_expand_ashl_const): Use gen_add2_insn instead of
24082 indirect function.
24083 (ix86_adjust_counter): Ditto.
24084
24085 2019-06-13 Jiufu Guo <guojiufu@linux.ibm.com>
24086 Lijia He <helijia@linux.ibm.com>
24087
24088 PR tree-optimization/77820
24089 * tree-ssa-threadedge.c
24090 (edge_forwards_cmp_to_conditional_jump_through_empty_bb_p): New
24091 function.
24092 (thread_across_edge): Add call to
24093 edge_forwards_cmp_to_conditional_jump_through_empty_bb_p.
24094
24095 2019-06-13 Iain Sandoe <iain@sandoe.co.uk>
24096
24097 * config/darwin-driver.c (validate_macosx_version_min): New.
24098 (darwin_default_min_version): Cleanup and validate supplied version.
24099 (darwin_driver_init): Likewise and push cleaned version into opts.
24100
24101 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
24102
24103 PR tree-optimization/90869
24104 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Watch for view
24105 converts in MEM_REF referencing decl rather than view converts
24106 from decl type to MEM_REF type.
24107
24108 2019-06-13 Richard Biener <rguenther@suse.de>
24109
24110 PR tree-optimization/90856
24111 * tree-sra.c (build_ref_for_model): Only use
24112 build_reconstructed_reference when address-spaces are the same.
24113
24114 2019-06-13 Jakub Jelinek <jakub@redhat.com>
24115
24116 * config/nvptx/nvptx.c (nvptx_sese_number, nvptx_sese_pseudo): Don't
24117 wrap ei variable name in the declaration in ()s.
24118 (nvptx_single): Actually use mode_label variable. Formatting fix.
24119
24120 2019-06-13 Richard Biener <rguenther@suse.de>
24121
24122 * tree-vectorizer.h (vect_loop_vectorized_call): Declare.
24123 * tree-vectorizer.c (vect_loop_vectorized_call): Export and
24124 also return the condition stmt.
24125 * tree-vect-loop-manip.c (vect_loop_versioning): Compute outermost
24126 loop we can version and version that, reusing the loop version
24127 created by if-conversion instead of versioning again.
24128
24129 2019-06-13 Aldy Hernandez <aldyh@redhat.com>
24130
24131 * gimple-loop-versioning.cc (prune_loop_conditions): Use
24132 may_contain_p.
24133 * tree-vrp (value_range_base::may_contain_p): Call into
24134 value_inside_range.
24135 (value_inside_range): Make private inside value_range_base class.
24136 Take min/max from *this.
24137 (range_includes_p): Remove.
24138 * tree-vrp.h (value_range_base): Add value_inside_range.
24139 (range_includes_p): Remove.
24140 (range_includes_zero_p): Call may_contain_p.
24141 * vr-values.c (compare_range_with_value): Same.
24142
24143 2019-06-13 Claudiu Zissulescu <claziss@synopsys.com>
24144
24145 * doc/extend.texi (ARC Function Attributes): Update info.
24146
24147 2019-06-13 Feng Xue <fxue@os.amperecomputing.com>
24148
24149 PR tree-optimization/89713
24150 * doc/invoke.texi (-ffinite-loops): Document new option.
24151 * common.opt (-ffinite-loops): New option.
24152 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark
24153 IFN_GOACC_LOOP calls as necessary.
24154 * tree-ssa-loop-niter.c (finite_loop_p): Assume loop with an exit
24155 is finite.
24156 * omp-offload.c (oacc_xform_loop): Skip lowering if return value of
24157 IFN_GOACC_LOOP call is not used.
24158 * opts.c (default_options_table): Enable -ffinite-loops at -O2+.
24159
24160 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
24161
24162 PR target/88838
24163 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): If the
24164 compare_type is not with Pmode size, we will create an IV with
24165 Pmode size with truncated use (i.e. converted to the correct type).
24166 * tree-vect-loop.c (vect_verify_full_masking): Find IV type.
24167 (vect_iv_limit_for_full_masking): New. Factored out of
24168 vect_set_loop_condition_masked.
24169 * tree-vectorizer.h (LOOP_VINFO_MASK_IV_TYPE): New.
24170 (vect_iv_limit_for_full_masking): Declare.
24171
24172 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
24173
24174 PR target/88834
24175 * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle
24176 IFN_MASK_LOAD_LANES and IFN_MASK_STORE_LANES.
24177 (get_alias_ptr_type_for_ptr_address): Likewise.
24178 (add_iv_candidate_for_use): Add scaled index candidate if useful.
24179 * tree-ssa-address.c (preferred_mem_scale_factor): New.
24180 * config/aarch64/aarch64.c (aarch64_classify_address): Relax
24181 allow_reg_index_p.
24182
24183 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
24184
24185 * config/aarch64/iterators.md (ADDSUB): Fix typo in comment.
24186
24187 2019-06-12 Dimitar Dimitrov <dimitar@dinux.eu>
24188
24189 * common/config/pru/pru-common.c: New file.
24190 * config.gcc: Add PRU target.
24191 * config/pru/alu-zext.md: New file.
24192 * config/pru/constraints.md: New file.
24193 * config/pru/predicates.md: New file.
24194 * config/pru/pru-opts.h: New file.
24195 * config/pru/pru-passes.c: New file.
24196 * config/pru/pru-pragma.c: New file.
24197 * config/pru/pru-protos.h: New file.
24198 * config/pru/pru.c: New file.
24199 * config/pru/pru.h: New file.
24200 * config/pru/pru.md: New file.
24201 * config/pru/pru.opt: New file.
24202 * config/pru/t-pru: New file.
24203 * doc/extend.texi: Document PRU pragmas.
24204 * doc/invoke.texi: Document PRU-specific options.
24205 * doc/md.texi: Document PRU asm constraints.
24206
24207 2019-06-12 Martin Sebor <msebor@redhat.com>
24208
24209 PR middle-end/90676
24210 * tree-pretty-print.c (dump_mem_ref): New function. Include
24211 MEM_REF type in output when different size than operand.
24212 (dump_generic_node): Move code to dump_mem_ref and call it.
24213
24214 2019-06-12 Martin Sebor <msebor@redhat.com>
24215
24216 PR tree-optimization/90662
24217 * tree-ssa-strlen.c (get_stridx): Handle simple VLAs and pointers
24218 to arrays.
24219
24220 2019-06-12 Tom de Vries <tdevries@suse.de>
24221
24222 PR tree-optimization/90009
24223 * config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join.
24224
24225 2019-06-12 Martin Liska <mliska@suse.cz>
24226
24227 * ggc-common.c (ggc_prune_overhead_list): Do not sanitize
24228 the created map.
24229 * hash-map.h: Add sanitize_eq_and_hash into ::hash_map.
24230 * mem-stats.h (mem_alloc_description::mem_alloc_description):
24231 Do not sanitize created maps.
24232
24233 2019-06-12 Aldy Hernandez <aldyh@redhat.com>
24234
24235 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Use
24236 value_range::singleton_p.
24237 * tree-vrp.c (value_range_constant_singleton): Remove.
24238 * tree-vrp.h (value_range_constant_singleton): Remove.
24239 * vr-values.c (vr_values::singleton): Use
24240 value_range::singleton_p.
24241
24242 2019-06-12 Jakub Jelinek <jakub@redhat.com>
24243
24244 PR target/90811
24245 * cfgexpand.c (align_local_variable): Add really_expand argument,
24246 don't SET_DECL_ALIGN if it is false.
24247 (add_stack_var): Add really_expand argument, pass it through to
24248 align_local_variable.
24249 (expand_one_stack_var_1): Pass true as really_expand to
24250 align_local_variable.
24251 (expand_one_ssa_partition): Pass true as really_expand to
24252 add_stack_var.
24253 (expand_one_var): Pass really_expand through to add_stack_var.
24254
24255 2019-06-12 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
24256
24257 * config/arm/iterators.md (VABAL): New int iterator.
24258 * config/arm/neon.md (<sup>sadv16qi): New define_expand.
24259 * config/arm/unspecs.md ("unspec"): Define UNSPEC_VABAL_S,
24260 UNSPEC_VABAL_U values.
24261
24262 2019-06-12 Martin Liska <mliska@suse.cz>
24263
24264 * value-prof.c (stream_out_histogram_value): Only first value
24265 can't be negative.
24266
24267 2019-06-12 Jakub Jelinek <jakub@redhat.com>
24268
24269 PR c/90760
24270 * symtab.c (symtab_node::set_section): Allow being called on aliases
24271 as long as they aren't analyzed yet.
24272
24273 2019-06-11 Faraz Shahbazker <fshahbazker@wavecomp.com>
24274
24275 * config/mips/mips.c (mips_final_postscan_insn): Modify call
24276 to `mips_set_text_contents_type' to indicate whether a
24277 non-debug insn follows.
24278
24279 2019-06-11 Michael Meissner <meissner@linux.ibm.com>
24280
24281 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Delete
24282 enabling -mpcrel by default.
24283 * config/rs6000/rs6000.c (rs6000_option_override_internal): Update
24284 test for -mpcrel and/or -mprefixed-addr needing -mcpu=future, so
24285 that the test against -mcpu=future is done first. Then test if
24286 -mprefixed-addr is on for -mpcrel.
24287 (rs6000_disable_incompatible_switches): Add -mcpu=future support.
24288
24289 2019-06-11 Jakub Jelinek <jakub@redhat.com>
24290
24291 PR target/90811
24292 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
24293 instead of and.u%d.
24294
24295 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
24296
24297 * match.pd (X/[ex]4<Y/[ex]4): Handle conversions.
24298
24299 2019-06-11 Matthew Beliveau <mbelivea@redhat.com>
24300
24301 PR c++/90449 - add -Winaccessible-base option.
24302 * doc/invoke.texi (Winaccessible-base): Document.
24303
24304 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
24305
24306 PR tree-optimization/62041
24307 * fold-const.c (fold_real_zero_addition_p): Handle vectors.
24308
24309 2019-06-11 Jason Merrill <jason@redhat.com>
24310
24311 * gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory.
24312 * tree.c (get_tree_code_name): Likewise.
24313 * print-tree.c (print_node): Only briefly print a node with an
24314 invalid code.
24315
24316 2019-06-11 Jakub Jelinek <jakub@redhat.com>
24317
24318 PR bootstrap/90819
24319 * trans-mem.c (tm_memopt_compute_available): Add assertion
24320 that blocks is not empty. Formatting fix.
24321
24322 2019-06-11 Martin Liska <mliska@suse.cz>
24323
24324 PR c++/87847
24325 * hash-table.h: Extend create_gcc, add one parameter
24326 that is passed into hash_table::hash_table.
24327
24328 2019-06-10 Uroš Bizjak <ubizjak@gmail.com>
24329
24330 * config/i386/i386-protos.h (ix86_split_fp_absneg_operator):
24331 New prototype.
24332 * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator):
24333 Emit clobber also for non-sse operations.
24334 (ix86_split_fp_absneg_operator): New function.
24335 * config/i386/i386.md (SSEMODEF): New mode iterator.
24336 (ssevecmodef): New mode attribute.
24337 (<code>tf2): Use absneg code iterator.
24338 (*<code>tf2_1): Rename from *absnegtf3_sse. Use absneg code iterator.
24339 Add three-operand AVX alternatives.
24340 (*<code><mode>2_i387_1): Rename from *absnegxf2_i387.
24341 Use absneg code iterator and X87MODEF mode iterator.
24342 (absneg fp_reg non-sse splitter): Call absneg code iterator
24343 and X87MODEF mode iterator.
24344 (absneg general_reg non-sse splitter): Use absneg code iterator
24345 and X87MODEF mode iterator. Use ix86_split_fp_absneg_operator.
24346 (*<code><mode>2_1): Rename from *absneg<mode>2. Use absneg
24347 code iterator. Add three-operand AVX alternative.
24348 (absneg sse_reg splitter): Use absneg code iterator
24349 and SSEMODEF mode iterator. Handle AVX operands.
24350 (absneg fp_reg splitter): Use absneg code iterator
24351 and MODEF mode iterator.
24352 (absneg general_reg splitter): Merge splitters using MODEF mode
24353 iterator. Use absneg code iterator. Call
24354 ix86_split_fp_absneg_operator.
24355 (*<code><mode>2_i387): Rename from *<code><mode>2_1.
24356 Do not enable for non-sse modes before reload.
24357 (CSGNMODE): Remove.
24358 (CSGNVMODE): Ditto.
24359 (copysing<mode>3): Use SSEMODEF instead of CSGNMODE and
24360 ssevecmodef mode attribute instaed of CSGNVMODE.
24361 (copysign<mode>3_const): Ditto.
24362 (copysign<mode>3_var): Ditto.
24363 * config/i386/i386.md (*<code><mode>2): Rename from *absneg<mode>2.
24364 Use absneg code iterator. Simplify code using std::swap.
24365 * config/i386/predicates.md (absneg_operator): Remove.
24366
24367 2019-06-10 Martin Sebor <msebor@redhat.com>
24368
24369 * gimple-fold.c (get_range_strlen): Update comment that didn't
24370 make it into r267503 or related commits.
24371
24372 2019-06-10 Vladislav Ivanishin <vlad@ispras.ru>
24373
24374 * gcov-tool.c (merge_usage, rewrite_usage): Mark with
24375 ATTRIBUTE_NORETURN thus making consistent with overlap_usage.
24376
24377 2019-06-10 Jakub Jelinek <jakub@redhat.com>
24378
24379 * tree.def (OMP_SCAN): New tree code.
24380 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INCLUSIVE and
24381 OMP_CLAUSE_EXCLUSIVE.
24382 * tree.h (OMP_CLAUSES): Use OMP_SCAN instead of OMP_TASKGROUP.
24383 (OMP_SCAN_BODY, OMP_SCAN_CLAUSES): Define.
24384 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries for
24385 OMP_CLAUSE_{IN,EX}CLUSIVE.
24386 (walk_tree_1): Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
24387 * tree-nested.c (convert_nonlocal_reference_stmt,
24388 convert_local_reference_stmt, convert_gimple_call): Handle
24389 GIMPLE_OMP_SCAN.
24390 * tree-pretty-print.c (dump_omp_clause): Handle
24391 OMP_CLAUSE_{IN,EX}CLUSIVE.
24392 (dump_generic_node): Handle OMP_SCAN.
24393 * gimple.def (GIMPLE_OMP_SCAN): New gimple code.
24394 * gimple.h (gomp_scan): New type.
24395 (is_a_helper <gomp_scan *>::test,
24396 is_a_helper <const gomp_scan *>::test): New templates.
24397 (gimple_build_omp_scan): Declare.
24398 (gimple_omp_scan_clauses, gimple_omp_scan_clauses_ptr,
24399 gimple_omp_scan_set_clauses): New inline functions.
24400 (CASE_GIMPLE_OMP): Add case GIMPLE_OMP_SCAN:.
24401 * gimple.c (gimple_build_omp_scan): New function.
24402 (gimple_copy): Handle GIMPLE_OMP_SCAN.
24403 * gimple-walk.c (walk_gimple_op, walk_gimple_stmt): Likewise.
24404 * gimple-pretty-print.c (dump_gimple_omp_block): Don't handle
24405 GIMPLE_OMP_TASKGROUP.
24406 (dump_gimple_omp_scan): New function.
24407 (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCAN.
24408 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_SCAN.
24409 * tree-inline.c (remap_gimple_stmt, estimate_num_insns): Likewise.
24410 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_REDUCTION_INSCAN.
24411 (is_gimple_stmt): Handle OMP_SCAN.
24412 (gimplify_scan_omp_clauses): Reject inscan reductions on constructs
24413 other than OMP_FOR or OMP_SIMD. Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
24414 (gimplify_adjust_omp_clauses): Diagnose inscan reductions not
24415 mentioned in nested #pragma omp scan. Handle
24416 OMP_CLAUSE_{IN,EX}CLUSIVE.
24417 (gimplify_expr): Handle OMP_SCAN.
24418 * omp-low.c (check_omp_nesting_restrictions): For parent context,
24419 look through GIMPLE_OMP_SCAN context. Allow #pragma omp scan in
24420 simd constructs.
24421 (scan_omp_1_stmt, lower_omp_1, diagnose_sb_1, diagnose_sb_2): Handle
24422 GIMPLE_OMP_SCAN.
24423
24424 2019-06-10 Martin Liska <mliska@suse.cz>
24425
24426 * ipa-cp.c (ignore_edge_p): New function.
24427 (build_toporder_info): Use it.
24428 * ipa-inline.c (ignore_edge_p): New function.
24429 (inline_small_functions): Use it.
24430 * ipa-pure-const.c (ignore_edge_for_nothrow):
24431 Verify opt_for_fn for caller and callee.
24432 (ignore_edge_for_pure_const): Likewise.
24433 * ipa-reference.c (ignore_edge_p): Extend to check
24434 for opt_for_fn.
24435 * ipa-utils.c (searchc): Refactor.
24436 * ipa-utils.h: Fix coding style.
24437
24438 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
24439
24440 * config/arc/arc.c (arc_rtx_costs): Update costs.
24441
24442 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
24443
24444 * config/arc/arc-protos.h (arc_check_ior_const): Declare.
24445 (arc_split_ior): Likewise.
24446 (arc_check_mov_const): Likewise.
24447 (arc_split_mov_const): Likewise.
24448 * config/arc/arc.c (arc_print_operand): Fix 'z' letter.
24449 (arc_rtx_costs): Replace check Crr with Cax constraint.
24450 (prepare_move_operands): Cleanup, remove unused code.
24451 (arc_split_ior): New function.
24452 (arc_check_ior_const): Likewise.
24453 (arc_split_mov_const): Likewise.
24454 (arc_check_mov_const): Likewise.
24455 * config/arc/arc.md (movsi_insn): Restructure it, and convert it
24456 in define_insn_and_split pattern.
24457 (iorsi3): Likewise.
24458 (mulsi3_v2): Add new matching variant.
24459 (andsi3_i): Cleanup pattern.
24460 (rotrsi3_cnt1): Update pattern.
24461 (rotrsi3_cnt8): New pattern.
24462 (ashlsi2_cnt8): Likewise.
24463 (ashlsi2_cnt16): Likewise.
24464 * config/arc/constraints.md (C0p): Update constraint.
24465 (Crr): Remove it.
24466 (C0x): New pattern.
24467 (Cax): New pattern.
24468
24469 2019-06-10 Martin Liska <mliska@suse.cz>
24470
24471 * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes):
24472 Update coding style.
24473 (sem_item_optimizer::dump_cong_classes):
24474 Print how many items are in a non-singular class. Improve
24475 coding style.
24476
24477 2019-06-10 Martin Liska <mliska@suse.cz>
24478
24479 * value-prof.c (dump_histogram_value): Change dump format.
24480 (gimple_mod_subtract_transform): Remove legacy comment.
24481
24482 2019-06-10 Martin Liska <mliska@suse.cz>
24483
24484 * value-prof.c (dump_histogram_value): Print histogram values
24485 only if present.
24486
24487 2019-06-10 Martin Liska <mliska@suse.cz>
24488
24489 * gcov-io.h (GCOV_DISK_SINGLE_VALUES): New.
24490 (GCOV_SINGLE_VALUE_COUNTERS): Likewise.
24491 * ipa-profile.c (ipa_profile_generate_summary):
24492 Use get_most_common_single_value.
24493 * tree-profile.c (gimple_init_gcov_profiler):
24494 Instrument with __gcov_one_value_profiler_v2
24495 and __gcov_indirect_call_profiler_v4.
24496 * value-prof.c (dump_histogram_value):
24497 Print all values for HIST_TYPE_SINGLE_VALUE.
24498 (stream_out_histogram_value): Update assert for
24499 N values.
24500 (stream_in_histogram_value): Set number of
24501 counters for HIST_TYPE_SINGLE_VALUE.
24502 (get_most_common_single_value): New.
24503 (gimple_divmod_fixed_value_transform):
24504 Use get_most_common_single_value.
24505 (gimple_ic_transform): Likewise.
24506 (gimple_stringops_transform): Likewise.
24507 (gimple_find_values_to_profile): Set number
24508 of counters for HIST_TYPE_SINGLE_VALUE.
24509 * value-prof.h (get_most_common_single_value): New.
24510
24511 2019-06-10 Martin Liska <mliska@suse.cz>
24512
24513 * hash-map.h: Pass default value to hash_table ctor.
24514 * hash-table.h: Add default value to call of a ctor.
24515
24516 2019-06-08 Jonathan Wakely <jwakely@redhat.com>
24517
24518 * doc/invoke.texi (C Dialect Options): Minor grammatical change.
24519 (x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL"
24520
24521 2019-06-07 John David Anglin <danglin@gcc.gnu.orig>
24522
24523 PR target/90751
24524 * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment.
24525 Call pa_output_function_label.
24526 (TARGET_ASM_FUNCTION_PROLOGUE): define.
24527 * config/pa/pa-protos.h (pa_output_function_label): Declare.
24528 * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED
24529 to declaration.
24530 (pa_linux_output_function_prologue): Declare.
24531 (TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
24532 (pa_output_function_label): New.
24533 (pa_output_function_prologue): Revise to use pa_output_function_label.
24534 (pa_linux_output_function_prologue): New.
24535 * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.
24536
24537 2019-06-07 Aldy Hernandez <aldyh@redhat.com>
24538
24539 * tree-vrp.h (value_range_base::intersect): New.
24540 (value_range::intersect_helper): Move from here...
24541 (value_range_base::intersect_helper): ...to here.
24542 * tree-vrp.c (value_range::intersect_helper): Rename to...
24543 (value_range_base::intersect_helper): ...this, and rewrite to
24544 return a value instead of modifying THIS in place.
24545 Also, move equivalence handling...
24546 (value_range::intersect): ...here, while calling intersect_helper.
24547 * gimple-fold.c (size_must_be_zero_p): Use value_range_base when
24548 calling intersect.
24549 * gimple-ssa-evrp-analyze.c (ecord_ranges_from_incoming_edge):
24550 Same.
24551 * vr-values.c (vrp_evaluate_conditional_warnv_with_ops): Same.
24552
24553 2019-06-07 Jakub Jelinek <jakub@redhat.com>
24554
24555 * Makefile.in (genprogerr): Add condmd.
24556 (genprog): Remove it here.
24557
24558 2019-06-07 Andrew Stubbs <ams@codesourcery.com>
24559
24560 * doc/invoke.texi (AMD GCN Options): Add gfx906.
24561
24562 2019-06-07 Richard Biener <rguenther@suse.de>
24563
24564 PR debug/90574
24565 * tree-cfg.c (stmt_starts_bb_p): Split blocks at labels
24566 that appear after user labels.
24567
24568 2019-06-07 Martin Liska <mliska@suse.cz>
24569
24570 * cselib.c (cselib_init): Disable hash table
24571 sanitization.
24572 * hash-set.h: Pass new default argument to m_table.
24573 * hash-table.c: Add global variable with hash table
24574 sanitization limit.
24575 * hash-table.h (Allocator>::hash_table): Add new argument
24576 to ctor.
24577 (hashtab_chk_error): New.
24578 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): New.
24579 * toplev.c (process_options): Set hash_table_sanitize_eq_limit
24580 from the PARAM_HASH_TABLE_VERIFICATION_LIMIT value.
24581
24582 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
24583
24584 * common.opt (flto-odr-type-merging): Ignore.
24585 * invoke.texi (-flto-odr-type-merging): Remove.
24586 * ipa-devirt.c (odr_vtable_hasher:odr_name_hasher): Remove.
24587 (can_be_vtable_hashed_p): Remove.
24588 (hash_odr_vtable): Remove.
24589 (odr_vtable_hasher::hash): Remove.
24590 (types_same_for_odr): Remove.
24591 (types_odr_comparable): Remove.
24592 (odr_vtable_hasher::equal): Remove.
24593 (odr_vtable_hash_type, odr_vtable_hash): Remove.
24594 (add_type_duplicate): Do not synchronize vtable and name hashtables.
24595 (get_odr_type): Do not use vtable hash.
24596 (dump_odr_type): Remove commented out code.
24597 (build_type_inheritance_graph): Do not allocate vtable hash.
24598 (rebuild_type_inheritance_graph): Do not delete vtable hash.
24599 * ipa-utils.h (type_with_linkage_p): Drop vtable hash path.
24600 (odr_type_p): Likewise.
24601 * tree.c (need_assembler_name_p): Remove flag_lto_odr_type_mering
24602 test.
24603
24604 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
24605
24606 * tree-ssa-alias.c (aliasing_component_refs_p): Do not give up
24607 immediately after same_types_for_tbaa_p returns -1 and continue
24608 looking for possible exact match; if matching types are arrays
24609 watch for partial overlaps.
24610 (indirect_ref_may_alias_decl_p): Watch for partial array overlaps.
24611 (indirect_refs_may_alias_p): Do type based disambiguation first;
24612 update comment.
24613
24614 2019-06-07 Richard Sandiford <richard.sandiford@arm.com>
24615
24616 * fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p.
24617
24618 2019-06-07 Martin Liska <mliska@suse.cz>
24619
24620 * doc/invoke.texi: Remove param.
24621 * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV):
24622 Remove.
24623 * gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise.
24624 (GCOV_ICALL_TOPN_NCOUNTS): Likewise.
24625 * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise.
24626 * profile.c (instrument_values): Remove
24627 HIST_TYPE_INDIR_CALL_TOPN.
24628 * tree-profile.c (init_ic_make_global_vars):
24629 Always build __gcov_indirect_call only.
24630 (gimple_init_gcov_profiler): Remove usage
24631 of PARAM_INDIR_CALL_TOPN_PROFILE.
24632 (gimple_gen_ic_profiler): Likewise.
24633 * value-prof.c (dump_histogram_value): Likewise.
24634 (stream_in_histogram_value): Likewise.
24635 (gimple_indirect_call_to_profile): Likewise.
24636 (gimple_find_values_to_profile): Likewise.
24637 * value-prof.h (enum hist_type): Likewise.
24638
24639 2019-06-07 Martin Liska <mliska@suse.cz>
24640
24641 * tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the
24642 function.
24643
24644 2019-06-07 Martin Liska <mliska@suse.cz>
24645
24646 PR tree-optimization/78902
24647 * builtin-attrs.def (ATTR_WARN_UNUSED_RESULT): New.
24648 (ATTR_MALLOC_NOTHROW_LEAF_LIST): Remove.
24649 (ATTR_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
24650 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
24651 (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): Remove.
24652 (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Remove.
24653 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LIST): New.
24654 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): New.
24655 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
24656 (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): Remove.
24657 (ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
24658 (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Remove.
24659 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST):
24660 New.
24661 (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Remove.
24662 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): New.
24663 (ATTR_MALLOC_NOTHROW_NONNULL): Remove.
24664 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
24665 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
24666 (ATTR_MALLOC_NOTHROW_NONNULL_LEAF): Remove.
24667 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
24668 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
24669 * builtins.def (BUILT_IN_ALIGNED_ALLOC): Change to use
24670 warn_unused_result attribute.
24671 (BUILT_IN_STRDUP): Likewise.
24672 (BUILT_IN_STRNDUP): Likewise.
24673 (BUILT_IN_ALLOCA): Likewise.
24674 (BUILT_IN_CALLOC): Likewise.
24675 (BUILT_IN_MALLOC): Likewise.
24676 (BUILT_IN_REALLOC): Likewise.
24677
24678 2019-06-06 Jim Wilson <jimw@sifive.com>
24679
24680 PR target/89955
24681 * config/riscv/riscv.h (STARTFILE_PREFIX_SPEC): Deleted.
24682 * config/riscv/freebsd.h (STARTFILE_PREFIX_SPEC): Added.
24683 * config/riscv/linux.h (STARTFILE_PREFIX_SPEC): Added.
24684
24685 2019-06-06 Martin Sebor <msebor@redhat.com>
24686
24687 * tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article.
24688 (handle_builtin_malloc): Remove trailing spaces.
24689 (handle_builtin_memset): Same.
24690 (handle_builtin_memcmp): Same.
24691 (compute_string_length): Same.
24692 (determine_min_objsize): Same.
24693 (handle_builtin_string_cmp): Same.
24694 (handle_char_store): Same. Break up excessively long line.
24695
24696 2019-06-06 Martin Jambor <mjambor@suse.cz>
24697
24698 * tree-sra.c (build_reconstructed_reference): Drop the alignment
24699 check.
24700
24701 2019-06-06 Martin Jambor <mjambor@suse.cz>
24702
24703 * tree-sra.c (struct access): New field grp_same_access_path.
24704 (dump_access): Dump it.
24705 (build_reconstructed_reference): New function.
24706 (build_ref_for_model): Use it if possible.
24707 (path_comparable_for_same_access): New function.
24708 (same_access_path_p): Likewise.
24709 (sort_and_splice_var_accesses): Set the new flag.
24710 (analyze_access_subtree): Likewise.
24711 (propagate_subaccesses_across_link): Propagate zero value of the new
24712 flag down the access tree.
24713
24714 2019-06-06 Andrew Stubbs <ams@codesourcery.com>
24715
24716 * config.gcc (amdgcn-*-*): Allow --with-arch=gfx906.
24717 * config/gcn/gcn.opt (gpu_type): Add gfx906.
24718 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add gfx906 multilib.
24719 (MULTILIB_DIRNAMES): Rename gcn5 to gfx900.
24720 Add gfx906.
24721
24722 2019-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24723
24724 PR tree-optimization/90332
24725 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
24726 Handle VALS containing two vectors.
24727 * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Rename
24728 to...
24729 (@aarch64_combinez<mode>): ... This.
24730 (*aarch64_combinez_be<mode>): Rename to...
24731 (@aarch64_combinez_be<mode>): ... This.
24732 (vec_init<mode><Vhalf>): New define_expand.
24733 * config/aarch64/iterators.md (Vhalf): Handle V8HF.
24734
24735 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
24736
24737 * config/msp430/msp430.md (ashlhi3): Use the const_variant of shift
24738 library functions only when not optimizing for size.
24739 (ashlsi3): Likewise.
24740 (ashrhi3): Likewise.
24741 (ashrsi3): Likewise.
24742 (lshrhi3): Likewise.
24743 (lshrsi3): Likewise.
24744
24745 2019-06-06 Andreas Krebbel <krebbel@linux.ibm.com>
24746
24747 PR rtl-optimization/88751
24748 * ira.c (ira): Use the number of the actually referenced registers
24749 when calculating the threshold.
24750
24751 2019-06-06 Jakub Jelinek <jakub@redhat.com>
24752
24753 * configure: Regenerate.
24754
24755 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
24756
24757 * config/msp430/msp430.md (ashlhi3): Force shift src operand into a
24758 register if it is in memory, so the shift can be emulated with a rotate
24759 instruction.
24760 (ashrhi3): Likewise.
24761 (lshrhi3): Likewise.
24762
24763 2019-06-06 Martin Liska <mliska@suse.cz>
24764
24765 PR tree-optimization/87954
24766 * match.pd: Simplify mult where both arguments are 0 or 1.
24767
24768 2019-06-06 Richard Biener <rguenther@suse.de>
24769
24770 * vr-values.c (vr_values::extract_range_from_ssa_name): Do not
24771 put equivalences on UNDEFINED ranges.
24772 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
24773 Make sure to drop defs of stmts added during simplification
24774 to VARYING.
24775
24776 2019-06-06 Richard Biener <rguenther@suse.de>
24777
24778 * tree-ssa-structalias.c: Include tree-cfg.h.
24779 (make_heapvar): Do not make heap vars artificial.
24780 (find_func_aliases_for_builtin_call): Handle stack allocation
24781 functions.
24782 (find_func_aliases): Delay processing of simple enough returns
24783 in non-IPA mode.
24784 (set_uids_in_ptset): Adjust.
24785 (find_what_var_points_to): Likewise.
24786 (solve_constraints): Do not dump points-to sets here.
24787 (compute_points_to_sets): Post-process return statements,
24788 amending the escaped solution. Dump points-to sets afterwards.
24789 (ipa_pta_execute): Dump points-to sets.
24790
24791 2019-06-06 Martin Liska <mliska@suse.cz>
24792
24793 PR web/87933
24794 * doc/install.texi: Fix HTML headers and
24795 titles for 'Installing GCC' pages.
24796
24797 2019-06-06 Martin Liska <mliska@suse.cz>
24798
24799 * ipa-icf-gimple.h (dump_message_1): Remove.
24800 (dump_message): Likewise.
24801 (return_false_with_message_1): Print also file.
24802 (return_false_with_msg): Likewise.
24803 (return_with_result): Likewise.
24804 (return_with_debug): Likewise.
24805 * ipa-icf.c (sem_function::equals_private): Remove call
24806 to dump_message.
24807
24808 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
24809
24810 * config/i386/sse.md (define_mode_suffix vecmemsuffix): New.
24811 (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Enable
24812 memory operand for it.
24813 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>"): Ditto.
24814
24815 2019-06-05 Martin Sebor <msebor@redhat.com>
24816
24817 * config/i386/i386-features.c (ix86_get_function_versions_dispatcher):
24818 Adjust quoting and hyphenation.
24819 * convert.c (convert_to_real_1): Same.
24820 * gcc.c (driver_wrong_lang_callback): Same.
24821 (driver::handle_unrecognized_options): Same.
24822 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
24823 * opts-common.c (cmdline_handle_error): Same.
24824 (read_cmdline_option): Same.
24825 * opts-global.c (complain_wrong_lang): Same.
24826 (print_ignored_options): Same.
24827 (handle_common_deferred_options): Same.
24828 * pretty-print.h: Same.
24829 * print-rtl.c (debug_bb_n_slim): Same.
24830 * sched-rgn.c (make_pass_sched_fusion): Same.
24831 * tree-cfg.c (verify_gimple_assign_unary): Same.
24832 (verify_gimple_label): Same.
24833 * tree-ssa-operands.c (verify_ssa_operands): Same.
24834 * varasm.c (do_assemble_alias): Same.
24835 (assemble_alias): Same.
24836
24837 2019-06-05 Richard Henderson <rth@twiddle.net>
24838
24839 * config/alpha/alpha.c (direct_return): Move down after
24840 struct machine_function definition; use saved frame_size;
24841 return bool.
24842 (struct machine_function): Add sa_mask, sa_size, frame_size.
24843 (alpha_sa_mask, alpha_sa_size, compute_frame_size): Merge into ...
24844 (alpha_compute_frame_layout): ... new function.
24845 (TARGET_COMPUTE_FRAME_LAYOUT): New.
24846 (alpha_initial_elimination_offset): Use saved sa_size.
24847 (alpha_vms_initial_elimination_offset): Likewise.
24848 (alpha_vms_can_eliminate): Remove alpha_sa_size call.
24849 (alpha_expand_prologue): Use saved frame data. Merge integer
24850 and fp register save loops.
24851 (alpha_expand_epilogue): Likewise.
24852 (alpha_start_function): Use saved frame data.
24853 * config/alpha/alpha-protos.h (direct_return): Update.
24854 (alpha_sa_size): Remove.
24855
24856 2019-06-05 Eric Botcazou <ebotcazou@adacore.com>
24857
24858 * fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a
24859 multiplication by a power-of-two value.
24860 (fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value
24861 and turn the modulo operation into a masking operation.
24862
24863 2019-06-05 Jakub Jelinek <jakub@redhat.com>
24864
24865 PR debug/90733
24866 * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
24867 with VOIDmode inner operands.
24868
24869 2019-06-05 Richard Biener <rguenther@suse.de>
24870
24871 PR middle-end/90726
24872 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
24873 turn an expression graph into a tree.
24874
24875 2019-06-05 Jakub Jelinek <jakub@redhat.com>
24876
24877 * omp-expand.c (struct omp_region): Add has_lastprivate_conditional
24878 member.
24879 (expand_parallel_call): If region->inner->has_lastprivate_conditional,
24880 treat it like explicit monotonic schedule modifier.
24881 (expand_omp_for): Initialize has_lastprivate_conditional.
24882 If fd.lastprivate_conditional != 0, treat it like explicit monotonic
24883 schedule modifier.
24884
24885 * omp-low.c (lower_rec_input_clauses): For lastprivate conditional
24886 references, lookup in in hash map MEM_REF operand instead of the
24887 MEM_REF itself.
24888 (lower_omp_1): When looking for lastprivate conditional assignments,
24889 handle MEM_REFs with REFERENCE_TYPE operands.
24890
24891 * omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and
24892 on privatization clauses OMP_CLAUSE_DECL is privatized by reference
24893 and references a VLA. Handle references to non-VLAs if is_simd
24894 all privatization clauses like reductions.
24895 (lower_rec_input_clauses) <case do_private, case do_firstprivate>:
24896 If omp_is_reference, use always omp simd arrays and set
24897 DECL_VALUE_EXPR in that case, if lower_rec_simd_input_clauses
24898 fails, emit reference initialization.
24899
24900 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
24901
24902 PR target/89803
24903 * config/i386/avx512dqintrin.h (_mm_mask_fpclass_ss_mask,
24904 _mm_mask_fpclass_sd_mask): New intrinsics.
24905 (_mm_fpclass_ss_mask, _mm_fpclass_sd_mask): Modified, use new builtins.
24906 * config/i386/i386-builtin.def
24907 (__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask):
24908 New builtins.
24909 (__builtin_ia32_fpclassss, __builtin_ia32_fpclasssd): Deleted.
24910 * config/i386/i386-builtin-types.def (DEF_FUNCTION_TYPE (QI, V2DF, INT),
24911 DEF_FUNCTION_TYPE (QI, V4SF, INT)): Deleted.
24912 * config/i386/i386-expand.c (case QI_FTYPE_V4SF_INT,
24913 case QI_FTYPE_V2SF_INT): Ditto.
24914 * config/i386/sse.md
24915 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>):
24916 Extended to insnstructions with mask operands.
24917
24918 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
24919
24920 * config/rs6000/constraints.md (define_register_constraint "wp"):
24921 Delete.
24922 (define_register_constraint "wq"): Delete.
24923 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
24924 (rs6000_init_hard_regno_mode_ok): Adjust.
24925 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
24926 RS6000_CONSTRAINT_wp and RS6000_CONSTRAINT_wq.
24927 * config/rs6000/vsx.md (define_mode_attr VSr3): Delete.
24928 (define_mode_attr VSa): Delete.
24929 (define_mode_attr VSisa): New.
24930 (rest of file): Adjust.
24931 * doc/md.texi (Machine Constraints): Adjust.
24932
24933 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
24934
24935 * config/rs6000/rs6000.md (define_attr "isa"): Add p9kf and p9tf.
24936 (define_attr "enabled"): Handle those new isa values.
24937
24938 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
24939
24940 * config/rs6000/vsx.md (define_mode_attr VSr4): Delete.
24941 (define_mode_attr VSr5): Delete.
24942 (define_mode_attr VStype_sqrt): Delete.
24943 (define_mode_iterator VSX_SPDP): Delete.
24944 (define_mode_attr VS_spdp_res): Delete.
24945 (define_mode_attr VS_spdp_insn): Delete.
24946 (define_mode_attr VS_spdp_type): Delete.
24947 (*vsx_sqrt<mode>2): Adjust.
24948 (vsx_<VS_spdp_insn>): Delete, split to...
24949 (vsx_xscvdpsp): ... this. New. And...
24950 (vsx_xvcvspdp): ... this. New. And...
24951 (vsx_xvcvdpsp): ... this. New.
24952
24953 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
24954
24955 * config/rs6000/rs6000.md (define_mode_attr sd): Add values for V4SF
24956 and V2DF.
24957 * config/rs6000/vsx.md (define_mode_attr VSs): Delete.
24958 (rest of file): Adjust.
24959
24960 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
24961
24962 * config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>.
24963 (vsx_extract_<mode>_var): Ditto.
24964
24965 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
24966
24967 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI
24968 with just "wa".
24969
24970 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
24971
24972 * config/rs6000/constraints.md (define_register_constraint "ww"):
24973 Delete.
24974 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
24975 (rs6000_init_hard_regno_mode_ok): Adjust.
24976 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
24977 RS6000_CONSTRAINT_ww.
24978 * config/rs6000/rs6000.md: Adjust.
24979 * config/rs6000/vsx.md: Adjust.
24980 * doc/md.texi (Machine Constraints): Adjust.
24981
24982 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
24983
24984 * config/rs6000/rs6000.md (SFDF, SFDF2): Adjust comments.
24985 (define_mode_attr sd): New.
24986 (define_mode_attr s): New.
24987 (define_mode_attr Ftrad): Delete.
24988 (define_mode_attr Fvsx): Delete.
24989 (define_mode_attr Fs): Delete.
24990 (rest of file): Use the new mode attributes.
24991 * config.rs6000/vsx.md: Use the new mode attributes.
24992
24993 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
24994
24995 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_W
24996 with just "wa".
24997
24998 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
24999
25000 * config/rs6000/vsx.md (define_mode_attr VSr2): Delete.
25001 (rest of file): Replace all <VSa>, <VSr>, <VSr2>, and <VSr3> that are
25002 used with VSX_B, VSX_D, or VSX_F, with just "wa".
25003
25004 2019-06-04 Bill Schmidt <wschmidt@linux.ibm.com>
25005
25006 PR target/78263
25007 * config/rs6000/altivec.h: Don't #define vector, pixel, bool for
25008 C++ with strict ANSI requirements.
25009
25010 2019-06-04 Marc Glisse <marc.glisse@inria.fr>
25011
25012 * tree-ssa-loop-niter.c (number_of_iterations_ne): Skip
25013 computations when step is 1.
25014
25015 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
25016
25017 * config/rs6000/constraints.md (define_register_constraint "wf"):
25018 Delete.
25019 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
25020 (rs6000_init_hard_regno_mode_ok): Adjust.
25021 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
25022 RS6000_CONSTRAINT_wf.
25023 * config/rs6000/rs6000.md: Adjust.
25024 * config/rs6000/vsx.md: Adjust.
25025 * doc/md.texi (Machine Constraints): Adjust.
25026
25027 2019-06-04 Andrew Pinski <apinski@marvell.com>
25028
25029 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset):
25030 Fix ILP32 value.
25031
25032 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
25033
25034 * config/rs6000/constraints.md (define_register_constraint "wd"):
25035 Delete.
25036 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
25037 (rs6000_init_hard_regno_mode_ok): Adjust.
25038 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
25039 RS6000_CONSTRAINT_wd.
25040 * config/rs6000/rs6000.md: Adjust.
25041 * config/rs6000/vsx.md: Adjust.
25042 * doc/md.texi (Machine Constraints): Adjust.
25043
25044 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
25045
25046 * config/rs6000/rs6000.md (define_mode_attr Fv2): Delete.
25047 (rest of file): Adjust.
25048
25049 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
25050
25051 * config/rs6000/vsx.md (define_mode_attr VS_64reg): Delete.
25052 (*vsx_extract_<P:mode>_<VSX_D:mode>_load): Adjust.
25053 (vsx_splat_<mode>_reg): Adjust.
25054
25055 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
25056
25057 * config/rs6000/constraints.md (define_register_constraint "ws"):
25058 Delete.
25059 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
25060 (rs6000_init_hard_regno_mode_ok): Adjust.
25061 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
25062 RS6000_CONSTRAINT_ws.
25063 * config/rs6000/rs6000.md: Adjust.
25064 * config/rs6000/vsx.md: Adjust.
25065 * doc/md.texi (Machine Constraints): Adjust.
25066
25067 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
25068
25069 * config/rs6000/constraints.md (define_register_constraint "wv"):
25070 Delete.
25071 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
25072 (rs6000_init_hard_regno_mode_ok): Adjust.
25073 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
25074 RS6000_CONSTRAINT_wv.
25075 * config/rs6000/rs6000.md: Adjust.
25076 * config/rs6000/vsx.md: Adjust.
25077 * doc/md.texi (Machine Constraints): Adjust.
25078
25079 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
25080
25081 * config/rs6000/constraints.md (define_register_constraint "wi"):
25082 Delete.
25083 (define_register_constraint "wt"): Delete.
25084 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
25085 (rs6000_init_hard_regno_mode_ok): Adjust.
25086 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
25087 RS6000_CONSTRAINT_wi and RS6000_CONSTRAINT_wt.
25088 * config/rs6000/rs6000.md: Adjust.
25089 * config/rs6000/vsx.md: Adjust.
25090 * doc/md.texi (Machine Constraints): Adjust.
25091
25092 2019-06-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
25093
25094 * config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove
25095 const.
25096 * config/aarch64/aarch64.c (aarch64_asm_output_external): Call
25097 default_elf_asm_output_external.
25098
25099 2019-06-04 Martin Liska <mliska@suse.cz>
25100
25101 * ipa-icf.c (INCLUDE_LIST): Remove.
25102 (sem_item_optimizer::execute): Remove call to init_wpa.
25103 * ipa-icf.h (init_wpa): Remove.
25104
25105 2019-06-04 Jakub Jelinek <jakub@redhat.com>
25106
25107 * gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate
25108 conditional on combined for simd.
25109 * omp-low.c (struct omp_context): Add combined_into_simd_safelen0
25110 member.
25111 (lower_rec_input_clauses): For gimple_omp_for_combined_into_p max_vf 1
25112 constructs, don't remove lastprivate_conditional_map, but instead set
25113 ctx->combined_into_simd_safelen0 and adjust hash_map, so that it points
25114 to parent construct temporaries.
25115 (lower_lastprivate_clauses): Handle ctx->combined_into_simd_safelen0
25116 like !ctx->lastprivate_conditional_map.
25117 (lower_omp_1) <case GIMPLE_ASSIGN>: If up->combined_into_simd_safelen0,
25118 use up->outer context instead of up.
25119 * omp-expand.c (expand_omp_for_generic): Perform cond_var bump even if
25120 gimple_omp_for_combined_p.
25121 (expand_omp_for_static_nochunk): Likewise.
25122 (expand_omp_for_static_chunk): Add forgotten cond_var bump that was
25123 probably moved over into expand_omp_for_generic rather than being copied
25124 there.
25125
25126 2019-06-04 Martin Liska <mliska@suse.cz>
25127
25128 * value-prof.c (dump_histogram_value): Fix typo.
25129 (gimple_mod_subtract_transform): Likewise.
25130
25131 2019-06-04 Richard Biener <rguenther@suse.de>
25132
25133 PR middle-end/90726
25134 * tree-chrec.c (chrec_contains_symbols): Add to visited.
25135 (tree_contains_chrecs): Likewise.
25136 (chrec_contains_symbols_defined_in_loop): Move here and avoid
25137 exponential behaivor from ...
25138 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
25139 ... here.
25140 (expression_expensive_p): Avoid exponential behavior and compute
25141 expanded size, rejecting any expansion.
25142 * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): Remove.
25143 (idx_contains_abnormal_ssa_name_p): Likewise.
25144 (contains_abnormal_ssa_name_p_1): New helper for walk_tree.
25145 (contains_abnormal_ssa_name_p): Simplify and use
25146 walk_tree_without_duplicates.
25147
25148 2019-06-04 Richard Biener <rguenther@suse.de>
25149
25150 PR tree-optimization/90738
25151 Revert
25152 2019-06-03 Richard Biener <rguenther@suse.de>
25153
25154 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
25155 full reference tree and record in ref->ref.
25156 (vn_reference_lookup_3): Pass in original ref to
25157 ao_ref_init_from_vn_reference.
25158 (vn_reference_lookup): Likewise.
25159 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
25160 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
25161 Handle non-decl bases in the original reference.
25162
25163 2019-06-04 Martin Liska <mliska@suse.cz>
25164
25165 * ipa-icf.c (sem_item_optimizer::add_item_to_class): Count
25166 number of references.
25167 (sem_item_optimizer::do_congruence_step):
25168 (sem_item_optimizer::worklist_push): Dump how references
25169 a class has.
25170 (sem_item_optimizer::worklist_pop): Use heap.
25171 (sem_item_optimizer::process_cong_reduction): Likewise.
25172 * ipa-icf.h: Use fibonacci_heap insteam of std::list.
25173
25174 2019-06-04 Martin Liska <mliska@suse.cz>
25175
25176 * ipa-icf.h (struct sem_usage_pair_hash): New.
25177 (sem_usage_pair_hash::hash): Likewise.
25178 (sem_usage_pair_hash::equal): Likewise.
25179 (struct sem_usage_hash): Likewise.
25180 * ipa-icf.c (sem_item::sem_item): Initialize
25181 referenced_by_count.
25182 (sem_item::add_reference): Register a reference
25183 in ref_map and not in target->usages.
25184 (sem_item::setup): Remove initialization of
25185 dead vectors.
25186 (sem_item::~sem_item): Remove usage of dead vectors.
25187 (sem_item::dump): Remove dump of references.
25188 (sem_item_optimizer::sem_item_optimizer): Initialize
25189 m_references.
25190 (sem_item_optimizer::read_section): Remove useless
25191 dump.
25192 (sem_item_optimizer::parse_funcs_and_vars): Likewise here.
25193 (sem_item_optimizer::build_graph): Pass m_references
25194 to ::add_reference.
25195 (sem_item_optimizer::verify_classes): Remove usage of dead
25196 vectors.
25197 (sem_item_optimizer::traverse_congruence_split): Return true
25198 when a class is split.
25199 (sem_item_optimizer::do_congruence_step_for_index): Use
25200 hash_map for look up of (sem_item *, index). That brings
25201 significant speed up.
25202 (sem_item_optimizer::do_congruence_step): Return true
25203 when a split is done.
25204 (congruence_class::is_class_used): Use referenced_by_count.
25205
25206 2019-06-04 Alan Modra <amodra@gmail.com>
25207
25208 PR target/90689
25209 * config/rs6000/rs6000.c (rs6000_call_aix): Correct r271753 merge
25210 error.
25211
25212 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
25213
25214 * config/rs6000/rs6000.h (MASK_MFPGPR): Delete.
25215 * config/rs6000/rs6000.c (direct_move_p): Adjust.
25216 (rs6000_secondary_reload_simple_move): Adjust.
25217 (rs6000_opt_masks): Neuter the "mfpgpr" option.
25218 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust.
25219 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED): Adjust
25220 comment.
25221 (power6x): Adjust.
25222 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Adjust.
25223 (floatunssi<mode>2_lfiwzx): Adjust.
25224 (fix_trunc<mode>si2_stfiwx): Adjust.
25225 (fixuns_trunc<mode>si2_stfiwx): Adjust.
25226 * config/rs6000/rs6000.opt (mno-mfpgpr): New.
25227 (mfpgpr): Mark as deprecated.
25228 * doc/extend.texi (PowerPC Function Attributes): Delete mfpgpr.
25229 (Basic PowerPC Built-in Functions Available on ISA 2.05): Adjust.
25230 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mmfpgpr.
25231
25232 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
25233
25234 * config/rs6000/constraints.md (define_register_constraint "wg"):
25235 Delete.
25236 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
25237 RS6000_CONSTRAINT_wg.
25238 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
25239 (rs6000_init_hard_regno_mode_ok): Adjust.
25240 * config/rs6000/rs6000.md (*mov<mode>_softfloat32, *movdi_internal64):
25241 Delete "wg" alternatives.
25242 * doc/md.texi (Machine Constraints): Adjust.
25243
25244 2019-06-03 Alan Modra <amodra@gmail.com>
25245
25246 * bb-reorder.c (copy_bb_p): Don't overflow size calculation.
25247 (get_uncond_jump_length): Assert length less than INT_MAX and
25248 non-negative.
25249
25250 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
25251
25252 PR middle-end/64242
25253 * builtins.c (expand_builtin_longjmp): Add frame clobbers and schedule
25254 block.
25255 (expand_builtin_nonlocal_goto): Likewise.
25256
25257 2019-06-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
25258
25259 * config/aarch64/aarch64-protos.h (aarch64_asm_output_alias): Declare.
25260 (aarch64_asm_output_external): Declare.
25261 * config/aarch64/aarch64.c (aarch64_asm_output_variant_pcs): New.
25262 (aarch64_declare_function_name): Call aarch64_asm_output_variant_pcs.
25263 (aarch64_asm_output_alias): New.
25264 (aarch64_asm_output_external): New.
25265 * config/aarch64/aarch64.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
25266 (ASM_OUTPUT_EXTERNAL): Define.
25267
25268 2019-06-03 Aldy Hernandez <aldyh@redhat.com>
25269 * tree-vrp.h (value_range_base::nonzero_p): New.
25270 (value_range_base::set_nonnull): Rename to...
25271 (value_range_base::set_nonzero): ...this.
25272 (value_range_base::set_null): Rename to...
25273 (value_range_base::set_zero): ...this.
25274 (value_range::set_nonnull): Remove.
25275 (value_range::set_null): Remove.
25276 * tree-vrp.c (range_is_null): Remove.
25277 (range_is_nonnull): Remove.
25278 (extract_range_from_binary_expr): Use value_range_base::*zero_p
25279 instead of range_is_*null.
25280 (extract_range_from_unary_expr): Same.
25281 (value_range_base::set_nonnull): Rename to...
25282 (value_range_base::set_nonzero): ...this.
25283 (value_range::set_nonnull): Remove.
25284 (value_range_base::set_null): Rename to...
25285 (value_range_base::set_zero): ...this.
25286 (value_range::set_null): Remove.
25287 (extract_range_from_binary_expr): Rename set_*null uses to
25288 set_*zero.
25289 (extract_range_from_unary_expr): Same.
25290 (union_helper): Same.
25291 * vr-values.c (get_value_range): Use set_*zero instead of
25292 set_*null.
25293 (vr_values::extract_range_from_binary_expr): Same.
25294 (vr_values::extract_range_basic): Same.
25295
25296 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
25297
25298 PR driver/90684
25299 * opts.c (parse_and_check_align_values): Allow 4 alignment values.
25300
25301 2019-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25302
25303 * config/aarch64/iterators.md (MAX_OPP): New code attr.
25304 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3):
25305 Rename to...
25306 (aarch64_<su>abd<mode>_3): ... This.
25307 (<sur>sadv16qi): Add TARGET_DOTPROD expansion.
25308
25309 2019-06-03 Richard Biener <rguenther@suse.de>
25310
25311 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
25312 full reference tree and record in ref->ref.
25313 (vn_reference_lookup_3): Pass in original ref to
25314 ao_ref_init_from_vn_reference.
25315 (vn_reference_lookup): Likewise.
25316 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
25317 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
25318 Handle non-decl bases in the original reference.
25319
25320 2019-06-03 Martin Liska <mliska@suse.cz>
25321
25322 * doc/generic.texi: Remove Java Trees.
25323
25324 2019-06-03 Martin Liska <mliska@suse.cz>
25325
25326 * fold-const.c (operand_equal_p): Fix typo as compare_tree_int
25327 returns 0 when operands are equal.
25328
25329 2019-06-03 Richard Biener <rguenther@suse.de>
25330
25331 PR tree-optimization/90716
25332 * tree-loop-distribution.c (destroy_loop): Process blocks in
25333 correct order.
25334
25335 2019-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
25336
25337 PR target/88837
25338 * vector-builder.h (vector_builder::count_dups): New method.
25339 * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vector_init):
25340 Declare prototype.
25341 * config/aarch64/aarch64/sve.md (aarch64_sve_rev64<mode>): Use @.
25342 (vec_init<mode><Vel>): New pattern.
25343 * config/aarch64/aarch64.c (emit_insr): New function.
25344 (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise.
25345 (aarch64_sve_expand_vector_init_insert_elems): Likewise.
25346 (aarch64_sve_expand_vector_init_handle_trailing_same_elem): Likewise.
25347 (aarch64_sve_expand_vector_init): Define two overloaded functions.
25348
25349 2019-06-03 Alejandro Martinez <alejandro.martinezvicente@arm.com>
25350
25351 PR tree-optimization/90681
25352 * internal-fn.c (mask_load_direct): Mark as non-vectorizable again.
25353 * tree-vect-slp.c (vect_build_slp_tree_1): Add masked loads as a
25354 special case for SLP, but fail on non-groupped loads.
25355
25356 2019-06-03 Martin Liska <mliska@suse.cz>
25357
25358 * cfg.c (debug): Use TDF_DETAILS for debug and
25359 print edge info only once.
25360
25361 2019-06-02 Thomas Koenig <tkoenig@gcc.gnu.org>
25362
25363 PR fortran/90539
25364 * predict.def (PRED_FORTRAN_CONTIGUOUS): New predictor.
25365
25366 2019-06-01 Martin Sebor <msebor@redhat.com>
25367
25368 PR middle-end/90694
25369 * tree-pretty-print.c (dump_generic_node): Add parentheses.
25370
25371 2019-05-31 Jan Hubicka <jh@suse.cz>
25372
25373 * alias.c: Include ipa-utils.h.
25374 (get_alias_set): Try to complete ODR type via ODR type hash lookup.
25375 * ipa-devirt.c (prevailing_odr_type): New.
25376 * ipa-utils.h (previaling_odr_type): Declare.
25377
25378 2019-05-31 H.J. Lu <hongjiu.lu@intel.com>
25379 Hongtao Liu <hongtao.liu@intel.com>
25380
25381 PR target/89355
25382 * config/i386/i386-features.c (rest_of_insert_endbranch): Remove
25383 NOTE_INSN_DELETED_LABEL check.
25384
25385 2019-05-31 Prachi Godbole <prachi.godbole@imgtec.com>
25386 Robert Suchanek <robert.suchanek@mips.com>
25387
25388 * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st
25389 and 3rd operands of the fmadd/fmsub/maddv builtin.
25390
25391 2019-05-31 Jakub Jelinek <jakub@redhat.com>
25392
25393 * tree.h (OMP_CLAUSE__CONDTEMP__ITER): Define.
25394 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
25395 on OMP_SIMD if not nested inside of worksharing loop that also has
25396 lastprivate conditional clause for the same decl.
25397 (gimplify_omp_for): Add _condtemp_ clauses to OMP_SIMD if needed.
25398 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_ also
25399 on simd.
25400 (lower_rec_input_clauses): Likewise. Handle lastprivate conditional
25401 on simd construct.
25402 (lower_lastprivate_conditional_clauses): Handle lastprivate conditional
25403 on simd construct.
25404 (lower_lastprivate_clauses): Likewise.
25405 (lower_omp_sections): Call lower_lastprivate_conditional_clauses before
25406 calling lower_rec_input_clauses.
25407 (lower_omp_for): Likewise.
25408 (lower_omp_1): Use first rather than second OMP_CLAUSE__CONDTEMP_
25409 clause on simd construct.
25410 * omp-expand.c (expand_omp_simd): Initialize cond_var if
25411 OMP_CLAUSE__CONDTEMP_ clause is present.
25412
25413 * omp-low.c (lower_rec_simd_input_clauses): Set TREE_THIS_NOTRAP on
25414 ivar and lvar.
25415
25416 2019-05-31 Xiong Hu Luo <luoxhu@linux.ibm.com>
25417
25418 PR c/43673
25419 * c-format.c (print_char_table, scanf_char_table): Replace BADLEN with
25420 TEX_D32, TEX_D64 or TEX_D128.
25421
25422 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
25423
25424 * match.pd (~(vec?cst1:cst2)): New transformation.
25425
25426 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
25427
25428 * match.pd (X/[ex]D<Y/[ex]D): Handle negative denominator.
25429 ((size_t)(A /[ex] B) CMP C): New transformation.
25430
25431 2019-05-31 Richard Sandiford <richard.sandiford@arm.com>
25432
25433 * doc/md.texi: Document define_insn_and_rewrite.
25434 * rtl.def (DEFINE_INSN_AND_REWRITE): New rtx code.
25435 * gensupport.c (queue_elem): Update comment.
25436 (replace_operands_with_dups): New function.
25437 (gen_rewrite_sequence): Likewise.
25438 (process_rtx): Handle DEFINE_INSN_AND_REWRITE.
25439 * read-rtl.c (apply_subst_iterator): Likewise.
25440 (add_condition_to_rtx, named_rtx_p): Likewise.
25441 (rtx_reader::read_rtx_operand): Likewise.
25442 * config/aarch64/aarch64-sve.md
25443 (while_ult<GPI:mode><PRED_ALL:mode>_cc): Rename to...
25444 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): ...this and use
25445 define_insn_and_rewrite.
25446 (*cond_<optab><mode>_any): Turn into define_insn_and_rewrites.
25447 Remove separate define_split.
25448
25449 2019-05-31 Jan Hubicka <jh@suse.cz>
25450
25451 * tree-ssa-alias.c (type_has_components_p): New function.
25452 (aliasing_component_refs_p): Use it.
25453
25454 2019-05-31 Martin Liska <mliska@suse.cz>
25455
25456 * gdbhooks.py: Add const_tree to TreePrinter.
25457
25458 2019-05-31 Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
25459
25460 PR debug/86964
25461 * common.opt (feliminate-unused-debug-symbols): Enable by default.
25462 * doc/invoke.texi (Debugging Options): Document new default of
25463 -feliminate-unused-debug-symbols and remove restriction to 'stabs'.
25464
25465 2019-05-31 Jakub Jelinek <jakub@redhat.com>
25466
25467 PR tree-optimization/90671
25468 * tree-ssa-threadupdate.c (ssa_create_duplicates): If
25469 template_block used to be empty on the first call, don't use
25470 gsi_split_seq_after and gsi_insert_seq_after, but remember whole
25471 seq with bb_seq and set it with set_bb_seq.
25472
25473 2019-05-31 Iain Sandoe <iain@sandoe.co.uk>
25474
25475 * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
25476
25477 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
25478 Michael Meissner <meissner@linux.ibm.com>
25479
25480 * config/rs6000/predicates.md (pcrel_address): New define_predicate.
25481 (prefixed_mem_operand): Likewise.
25482 (non_prefixed_mem_operand): Likewise.
25483 * config/rs6000/rs6000-protos.h (rs6000_prefixed_address): New
25484 prototype.
25485 * config/rs6000/rs6000.c (print_operand_address): Handle
25486 PC-relative addresses.
25487 (mode_supports_prefixed_address_p): New function.
25488 (rs6000_prefixed_address): New function.
25489 * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL): New #define.
25490 (SYMBOL_REF_PCREL_P): Likewise.
25491
25492 2019-05-30 Jakub Jelinek <jakub@redhat.com>
25493
25494 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP.
25495 (gimplify_adjust_omp_clauses_1): Handle GOVD_CONDTEMP.
25496 (gimplify_omp_for): If worksharing loop with lastprivate conditional
25497 is nested inside of parallel region, add _condtemp_ clause to both.
25498 * tree-nested.c (convert_nonlocal_omp_clauses,
25499 convert_local_omp_clauses): Ignore OMP_CLAUSE__CONDTEMP_ instead of
25500 assertion failure.
25501 * omp-general.h (struct omp_for_data): Add have_pointer_condtemp
25502 member.
25503 * omp-general.c (omp_extract_for_data): Compute it.
25504 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_.
25505 (lower_rec_input_clauses): Likewise.
25506 (lower_lastprivate_conditional_clauses): If OMP_CLAUSE__CONDTEMP_
25507 clause is already present, just add one further one after it.
25508 (lower_lastprivate_clauses): Handle cond_ptr with array type.
25509 (lower_send_shared_vars): Clear _condtemp_ vars.
25510 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle target data like critical
25511 or section or taskgroup.
25512 * omp-expand.c (determine_parallel_type): Disallow combining only if
25513 first OMP_CLAUSE__CONDTEMP_ has pointer type. Disallow combining
25514 of parallel sections if OMP_CLAUSE__CONDTEMP_ is present.
25515 (expand_omp_for_generic, expand_omp_for_static_nochunk,
25516 expand_omp_for_static_chunk, expand_omp_for): Use
25517 fd->have_pointer_condtemp instead of fd->lastprivate_conditional to
25518 determine if a special set of API routines are needed and if condtemp
25519 needs to be initialized, while always initialize cond_var if
25520 fd->lastprivate_conditional is non-zero.
25521
25522 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
25523 Michael Meissner <meissner@linux.ibm.com>
25524
25525 * config/rs6000/constraints.md (eI): New constraint.
25526 * config/rs6000/predicates.md (cint34_operand): New predicate.
25527 * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): New #define.
25528 (SIGNED_34BIT_OFFSET_P): Likewise.
25529 * doc/md.texi (eI): Document constraint.
25530
25531 2019-05-30 Sylvia Taylor <sylvia.taylor@arm.com>
25532
25533 * config/aarch64/aarch64-sve.md (*fabd<mode>3): New.
25534
25535 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
25536 Michael Meissner <meissner@linux.ibm.com>
25537
25538 * rs6000-cpus.def (OTHER_FUSION_MASKS): New #define.
25539 (ISA_3_0_MASKS_SERVER): Mask off OTHER_FUSION_MASKS.
25540 (ISA_3_0_MASKS_IEEE): Remove OPTION_MASK_DIRECT_MOVE.
25541 (ISA_FUTURE_MASKS_SERVER): Add OPTION_MASK_PREFIXED_ADDR.
25542 (OTHER_FUTURE_MASKS): Likewise.
25543 (POWERPC_MASKS): Likewise.
25544 * rs6000.c (rs6000_option_override_internal): Error if -mpcrel is
25545 specified without -mprefixed-addr or -mcpu=future. Error if
25546 -mprefixed-addr is specified without -mcpu=future.
25547 (rs6000_opt_masks): Add entry for prefixed-addr.
25548 * rs6000.opt (mprefixed-addr): New option.
25549
25550 2019-05-30 Sam Tebbs <sam.tebbs@arm.com>
25551
25552 * aarch64/aarch64.c (aarch64_post_cfi_startproc): Add
25553 cfun->is_thunk check.
25554
25555 2019-05-30 Jakub Jelinek <jakub@redhat.com>
25556
25557 * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght
25558 to length.
25559
25560 2019-05-30 Martin Liska <mliska@suse.cz>
25561
25562 * gdbinit.in: Fix 'ptc' command. Add trt
25563 that prints TREE_TYPE($).
25564
25565 2019-05-29 Bill Schmidt <wschmidt@linux.ibm.com>
25566 Alan Modra <amodra@gmail.com>
25567
25568 * config/rs6000/rs6000.c (rs6000_call_template_1): Handle pcrel
25569 calls here...
25570 (rs6000_indirect_call_template_1): ...and here.
25571 (rs6000_pltseq_template): Handle plt_pcrel34. Rework tocsave,
25572 plt16_ha, plt16_lo, mtctr indirect calls. Use
25573 rs6000_pltseq_enum.
25574 (rs6000_decl_ok_for_sibcall): New function.
25575 (rs6000_function_ok_for_sibcall): Refactor.
25576 (rs6000_longcall_ref): Use UNSPEC_PLT_PCREL when pcrel.
25577 (rs6000_call_aix): Don't emit toc restore rtl for indirect calls
25578 when pcrel. Reorganize.
25579 (rs6000_sibcall_aix): Don't add r2 to function usage when pcrel.
25580 * rs6000.h (rs6000_pltseq_enum): New enum.
25581 * rs6000.md (UNSPEC_PLT_PCREL): New unspec.
25582 (*pltseq_tocsave): Use rs6000_pltseq_enum.
25583 (*pltseq_plt16_ha): Likewise.
25584 (*pltseq_plt16_lo): Likewise.
25585 (*pltseq_mtctr): Likewise.
25586 (*pltseq_plt_pcrel): New insn.
25587 (*call_local_aix): Handle @notoc calls.
25588 (*call_value_local_aix): Likewise.
25589 (*call_nonlocal_aix): Adjust lengths for pcrel calls.
25590 (*call_value_nonlocal_aix): Likewise.
25591 (*call_indirect_pcrel): New insn.
25592 (*call_value_indirect_pcrel): Likewise.
25593
25594 2019-05-29 Uroš Bizjak <ubizjak@gmail.com>
25595
25596 * config/i386/sse.md (*save_multiple<mode>): Rename from
25597 save_multiple<mode>.
25598 (*restore_multiple<mode>): Rename from restore_multiple<mode>.
25599 (*restore_multiple_and_return<mode>): Rename from
25600 restore_multiple_and_return<mode>.
25601 (*restore_multiple_leave_return<mode>): Rename from
25602 restore_multiple_leave_return<mode>.
25603
25604 2019-05-29 Yoshinori Sato <ysato@users.sourceforge.jp>
25605
25606 * config.gcc (rx-*-linux*): New target.
25607 * config/rx/elf.opt: New file.
25608 * config/rx/linux.h: Likewise.
25609 * config/rx/t-linux: Likewise.
25610 * config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined,
25611 make it zero.
25612 * config/rx/rx.h (ASM_APP_ON): Allow to be overridden.
25613 (ASM_APP_OFF): Likewise.
25614 * config/rx/rx.opt: Drop -msim and -mas100-syntax, they were
25615 moved elsewhere.
25616
25617 2019-05-29 Jan Hubicka <jh@suse.cz>
25618
25619 * tree-ssa-alias.c (same_type_for_tbaa): Return ture if main
25620 variants are pointer equivalent.
25621
25622 2019-05-29 Alejandro Martinez <alejandro.martinezvicente@arm.com>
25623
25624 * config/aarch64/aarch64-c.c: Added TARGET_SVE2.
25625 * config/aarch64/aarch64-sve2.md: New file.
25626 (<u>avg<mode>3_floor): New pattern.
25627 (<u>avg<mode>3_ceil): Likewise.
25628 (*<sur>h<addsub><mode>): Likewise.
25629 * config/aarch64/aarch64.h: Added AARCH64_ISA_SVE2 and TARGET_SVE2.
25630 * config/aarch64/aarch64.md: Include aarch64-sve2.md.
25631
25632 2019-05-29 Jakub Jelinek <jakub@redhat.com>
25633
25634 PR bootstrap/90543
25635 * optc-save-gen.awk: In cl_optimization_print, use correct condition
25636 for var_opt_string printing. In cl_optimization_print_diff, print
25637 (null) instead of invoking undefined behavior if one of the
25638 var_opt_string pointers is NULL and use && instead of first || in the
25639 guarding condition. For var_target_other options, handle const char *
25640 target variables similarly to const char * optimize node variables.
25641
25642 2019-05-29 Sam Tebbs <sam.tebbs@arm.com>
25643
25644 * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add
25645 AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716.
25646 * config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins):
25647 Add autib1716 and pacib1716 initialisation.
25648 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks
25649 for autib1716 and pacib1716.
25650 * config/aarch64/aarch64-protos.h (aarch64_key_type,
25651 aarch64_post_cfi_startproc): Define.
25652 * config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern.
25653 * config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection,
25654 aarch64_handle_pac_ret_protection): Set default sign key to A.
25655 * config/aarch64/aarch64.c (aarch64_expand_epilogue,
25656 aarch64_expand_prologue): Add check for b-key.
25657 * config/aarch64/aarch64.c (aarch64_ra_sign_key,
25658 aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define.
25659 * config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define.
25660 * config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key".
25661 * config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716,
25662 UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716,
25663 UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP.
25664 * config/aarch64/aarch64.md (do_return): Add check for b-key.
25665 * config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace
25666 pauth_hint_num_a with pauth_hint_num.
25667 * config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace
25668 pauth_hint_num_a with pauth_hint_num.
25669 * config/aarch64/aarch64.opt (msign-return-address=): Deprecate.
25670 * config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP,
25671 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
25672 * config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716,
25673 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716.
25674 * config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716,
25675 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP,
25676 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
25677 * config/aarch64/iterators.md (pauth_hint_num_a): Replace
25678 UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and
25679 UNSPEC_AUTIA1716 respectively.
25680 * config/aarch64/iterators.md (pauth_hint_num_a): Rename to
25681 pauth_hint_num and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP,
25682 UNSPEC_PACIB1716, UNSPEC_AUTIB1716.
25683 * doc/invoke.texi (-mbranch-protection): Add b-key type.
25684 * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename
25685 UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP.
25686
25687 2019-05-29 Jakub Jelinek <jakub@redhat.com>
25688
25689 * gimplify.c (struct gimplify_omp_ctx): Add clauses member.
25690 (gimplify_scan_omp_clauses): Initialize ctx->clauses.
25691 (gimplify_adjust_omp_clauses_1): Transform lastprivate conditional
25692 explicit clause on combined parallel into implicit shared clause.
25693 (gimplify_adjust_omp_clauses): Move lastprivate conditional clause
25694 and firstprivate if the decl has one too from combined parallel to
25695 the worksharing construct.
25696
25697 2019-05-28 Bill Schmidt <wschmidt@linux.ibm.com>
25698 Michael Meissner <meissner@linux.ibm.com>
25699
25700 * config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define.
25701
25702 2019-05-28 Michael Meissner <meissner@linux.ibm.com>
25703
25704 * rtl.h (LABEL_REF_P): New #define.
25705
25706 2019-05-28 John David Anglin <danglin@gcc.gnu.org>
25707
25708 * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.
25709
25710 2019-05-28 Alejandro Martinez <alejandro.martinezvicente@arm.com>
25711
25712 * internal-fn.c: Marked mask_load_direct as vectorizable.
25713 * tree-data-ref.c (data_ref_compare_tree): Fixed comment typo.
25714 * tree-vect-data-refs.c (can_group_stmts_p): Allow masked loads to be
25715 combined even if masks different with allow_slp_p param.
25716 (vect_analyze_data_ref_accesses): Mark SLP only vectorizable groups.
25717 * tree-vect-loop.c (vect_dissolve_slp_only_groups): New function to
25718 dissolve SLP-only vectorizable groups when SLP has been discarded.
25719 (vect_analyze_loop_2): Call vect_dissolve_slp_only_groups when needed.
25720 * tree-vect-slp.c (vect_get_and_check_slp_defs): Check masked loads
25721 masks.
25722 (vect_build_slp_tree_1): Fixed comment typo.
25723 (vect_build_slp_tree_2): Include masks from masked loads in SLP tree.
25724 * tree-vect-stmts.c (vectorizable_load): Allow vectorizaion of masked
25725 loads for SLP only.
25726 * tree-vectorizer.h (_stmt_vec_info): Added flag for SLP-only
25727 vectorizable.
25728 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Likewise.
25729
25730 2019-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25731
25732 * config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf):
25733 Remove obsolete use_thunk reference.
25734 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
25735 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
25736 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
25737 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
25738 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
25739 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
25740 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
25741 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
25742 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
25743
25744 2019-05-28 Nathan Sidwell <nathan@acm.org>
25745
25746 * tree.h (IDENTIFIER_ANON_P): New.
25747 (anon_aggrname_format, anon_aggname_p): Don't declare.
25748 (make_anon_name): Declare.
25749 * lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P.
25750 (hash_tree): Likewise.
25751 * tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise.
25752 * tree.c (anon_aggrname_p, anon_aggrname_format): Delete.
25753 (anon_cnt, make_anon_name): New.
25754
25755 2019-05-28 Martin Liska <mliska@suse.cz>
25756
25757 PR other/90315
25758 * opts-global.c (decode_options): Print help for all
25759 help_option_arguments.
25760 * opts.c (print_help): Add new argument.
25761 (common_handle_option): Remember all values into
25762 help_option_arguments.
25763 * opts.h (print_help): Add new argument.
25764
25765 2019-05-28 Martin Liska <mliska@suse.cz>
25766
25767 PR ipa/90555
25768 * ipa-icf-gimple.c (func_checker::compare_loops): New function.
25769 * ipa-icf-gimple.h (func_checker::compare_loops): Likewise.
25770 (func_checker::compare_bb): Call compare_loops.
25771
25772 2019-05-27 Jakub Jelinek <jakub@redhat.com>
25773
25774 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
25775 on sections construct.
25776 * omp-low.c (lower_lastprivate_conditional_clauses): Handle sections
25777 construct.
25778 (lower_omp_sections): Handle lastprivate conditional.
25779 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle sections construct with
25780 lastprivate_conditional_map.
25781 * omp-expand.c (expand_omp_sections): Handle lastprivate conditional.
25782
25783 * omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered,
25784 critical, taskgroup and section regions when looking for a region
25785 with non-NULL lastprivate_conditional_map.
25786
25787 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
25788
25789 * config/i386/i386.c (ix86_gen_add3): Remove indirect function.
25790 (*ix86_gen_sub3): Ditto.
25791 (*ix86_gen_sub3_carry): Ditto.
25792 (*ix86_gen_one_cmpl2): Ditto.
25793 (*ix86_gen_andsp): Ditto.
25794 (ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3.
25795 (gen_and2_insn): New static function.
25796 (ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp.
25797 Use gen_add3_insn instead of ix86_gen_add3.
25798 (ix86_expand_split_stack_prologue): Use gen_add2_insn
25799 instead of ix86_gen_add3.
25800 (legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3.
25801 Use gen_sub3_insn instead of ix86_gen_sub3.
25802 * config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn
25803 instead of ix86_gen_add3.
25804 (ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of
25805 ix86_gen_add3. Use gen_sub3_insn instead of ix86_gen_sub3.
25806 (construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3.
25807 * config/i386/i386-options.c (ix86_option_override_internal):
25808 Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
25809 ix86_gen_one_cmpl2 and ix86_gen_andsp.
25810
25811 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
25812
25813 * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
25814 and DW_OP_GNU_const_index opcodes.
25815
25816 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
25817
25818 * config/i386/i386.h (STACK_SIZE_MODE): Define.
25819
25820 2019-05-27 Richard Biener <rguenther@suse.de>
25821
25822 PR tree-optimization/90637
25823 * tree-ssa-sink.c (statement_sink_location): Honor the
25824 computed sink location for single-uses.
25825
25826 2019-05-27 Richard Biener <rguenther@suse.de>
25827
25828 PR middle-end/90610
25829 * match.pd (vec_perm): Avoid clobbering op0 when not generating
25830 a bit-insert.
25831
25832 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
25833
25834 * config/i386/i386.md (@sub<mode>3_carry): Rename
25835 from sub<mode>3_carry.
25836 (@leave_<mode>): New expander.
25837 (*leave): Rename from leave.
25838 (*leave_rex64): Rename from leave_rex64.
25839 (@monitorx_<mode>): Rename from monitorx_<mode>.
25840 (@clzero_<mode>): Rename from clzero_<mode>.
25841 * config/i386/sse.md (@sse3_monitor_<mode>): Rename
25842 from sse3_monitor_<mode>.
25843 * config/i386/i386.c (ix86_gen_sub3_carry): Remove indirect function.
25844 (*ix86_gen_leave): Ditto.
25845 (*ix86_gen_monitor): Ditto.
25846 (*ix86_gen_monitorx): Ditto.
25847 (*ix86_gen_clzero): Ditto.
25848 (ix86_emit_leave): Use gen_leave instead of ix86_gen_leave.
25849 * config/i386/i386-expand.c (ix86_expand_strlensi_unroll_1):
25850 Use gen_sub3_carry instead of ix86_gen_sub3_carry.
25851 (ix86_expand_builtin) <case IX86_BUILTIN_MONITOR>:
25852 Use gen_sse3_monitor instead of ix86_gen_monitor.
25853 <case IX86_BUILTIN_MONITORX>: Use gen_monitorx
25854 instead of ix86_gen_monitorx.
25855 <case IX86_BUILTIN_CLZERO>: Use gen_clzero
25856 instead of ix86_gen_clzero.
25857 * config/i386/i386-options.c (ix86_option_override_internal):
25858 Do not initialize ix86_gen_leave, ix86_gen_sub3_carry,
25859 ix86_gen_monitor, ix86_gen_monitorx and ix86_gen_clzero.
25860
25861 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
25862
25863 * config/i386/i386.md (@tls_global_dynamic_64_<mode>):
25864 Rename from tls_global_dynamic_64_<mode>.
25865 (@tls_local_dynamic_base_64_<mode>): Rename from
25866 tls_local_dynamic_base_64_<mode>.
25867 * config/i386/i386.c (*ix86_gen_tls_global_dynamic_64):
25868 Remove indirect function.
25869 (*ix86_gen_tls_local_dynamic_base_64): Ditto.
25870 (legitimize_tls_address): Use gen_tls_global_dynamic_64 function
25871 instead of ix86_gen_tls_global_dynamic_64.
25872 Use gen_tls_local_dynamic_base_64 instead of
25873 ix86_gen_tls_local_dynamic_base_64.
25874 * config/i386/i386-options.c (ix86_option_override_internal):
25875 Do not initialize ix86_gen_tls_global_dynamic_64 and
25876 ix86_gen_tls_local_dynamic_base_64.
25877
25878 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
25879
25880 * config/i386/i386.md (@pro_epilogue_adjust_stack_add_<mode>)
25881 Rename from pro_epilogue_adjust_stack_<mode>_add.
25882 (@pro_epilogue_adjust_stack_sub_<mode>)
25883 Rename from pro_epilogue_adjust_stack_<mode>_sub.
25884 (@allocate_stack_worker_probe_<mode>):
25885 Rename from allocate_stack_worker_probe_<mode>.
25886 (allocate_stack): Use gen_allocate_stack_worker_probe.
25887 (probe_stack): Use gen_probe_stack_1.
25888 (@probe_stack_1_<mode>): Rename from probe_stack_<mode>.
25889 (@adjust_stack_and_probe_<mode>): Rename from
25890 adjust_stack_and_probe<mode>.
25891 (@probe_stack_range_<mode>): Rename from probe_stack_range<mode>.
25892 (stack_protect_set): Use gen_stack_protect_set_1.
25893 (@stack_protect_set_1_<mode>): Rename from stack_protect_set_<mode>.
25894 (stack_protect_test): Use gen_stack_protect_test_1.
25895 (@stack_protect_test_1_<mode>): Rename from stack_protect_test_<mode>.
25896 * config/i386/i386.c (*ix86_gen_allocate_stack_worker):
25897 Remove indirect function.
25898 (*ix86_gen_adjust_stack_and_probe): Ditto.
25899 (*ix86_gen_probe_stack_range): Ditto.
25900 (pro_epilogue_adjust_stack): Use gen_pro_epilogue_adjust_stack_add
25901 instead of gen_pro_epilogue_adjust_stack_{si,di}_add.
25902 (ix86_adjust_stack_and_probe_stack_clash): Use
25903 gen_adjust_stack_and_probe instead of ix86_gen_adjust_stack_and_probe.
25904 (ix86_adjust_stack_and_probe): Ditto.
25905 (ix86_emit_probe_stack_range): Use gen_probe_stack_range instead
25906 of ix86_gen_probe_stack_range.
25907 (ix86_expand_prologue): Use gen_pro_epilogue_adjust_stack_sub
25908 instead of gen_pro_epilogue_adjust_stack_{si,di}_sub.
25909 * config/i386/x86-tune-sched.c (ix86_macro_fusion_pair_p):
25910 Include insn-opinit.h. Use code_for_stack_protect_test_1 instead of
25911 CODE_FOR_stack_protect_test_{si,di}.
25912 * config/i386/i386-options.c (ix86_option_override_internal):
25913 Do not initialize ix86_gen_allocate_stack_worker,
25914 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
25915
25916 2019-05-26 Gerald Pfeifer <gerald@pfeifer.com>
25917
25918 * doc/invoke.texi (Link Options): Many editorial changes around
25919 -flinker-output.
25920
25921 2019-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25922
25923 * doc/invoke.texi (x86 Options, -mvect8-ret-in-mem): Remove
25924 pre-Solaris 11 referene and most Studio compiler details.
25925
25926 2019-05-24 John David Anglin <danglin@gcc.gnu.org>
25927
25928 PR target/90530
25929 * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from
25930 DImode to SImode in floating-point registers on 64-bit target.
25931 * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
25932 register_operand in xmpyu patterns.
25933
25934 2019-05-24 Jakub Jelinek <jakub@redhat.com>
25935
25936 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_.
25937 * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__CONDTEMP_ instead of
25938 OMP_CLAUSE__REDUCTEMP_.
25939 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
25940 OMP_CLAUSE__CONDTEMP_.
25941 (walk_tree_1): Handle OMP_CLAUSE__CONDTEMP_.
25942 * tree-pretty-print.c (dump_omp_clause): Likewise.
25943 * tree-nested.c (convert_nonlocal_omp_clauses,
25944 convert_local_omp_clauses): Likewise.
25945 * gimplify.c (enum gimplify_omp_var_data): Use hexadecimal constants
25946 instead of decimal. Add GOVD_LASTPRIVATE_CONDITIONAL.
25947 (gimplify_scan_omp_clauses): Don't reject lastprivate conditional
25948 on OMP_FOR.
25949 (gimplify_omp_for): Warn and disable conditional modifier from
25950 lastprivate on loop iterators.
25951 * omp-general.h (struct omp_for_data): Add lastprivate_conditional
25952 member.
25953 * omp-general.c (omp_extract_for_data): Initialize it.
25954 * omp-low.c (struct omp_context): Add lastprivate_conditional_map
25955 member.
25956 (delete_omp_context): Delete it.
25957 (lower_lastprivate_conditional_clauses): New function.
25958 (lower_lastprivate_clauses): Add BODY_P and CSTMT_LIST arguments,
25959 handle lastprivate conditional clauses.
25960 (lower_reduction_clauses): Add CLIST argument, emit it into
25961 the critical section if any.
25962 (lower_omp_sections): Adjust lower_lastprivate_clauses and
25963 lower_reduction_clauses callers.
25964 (lower_omp_for_lastprivate): Add CLIST argument, pass it through
25965 to lower_lastprivate_clauses.
25966 (lower_omp_for): Call lower_lastprivate_conditional_clauses, adjust
25967 lower_omp_for_lastprivate and lower_reduction_clauses callers, emit
25968 clist into a critical section if not emitted there already by
25969 lower_reduction_clauses.
25970 (lower_omp_taskreg, lower_omp_teams): Adjust lower_reduction_clauses
25971 callers.
25972 (lower_omp_1): Handle GIMPLE_ASSIGNs storing into lastprivate
25973 conditional variables.
25974 * omp-expand.c (determine_parallel_type): Punt if OMP_CLAUSE__CONDTEMP_
25975 clause is present.
25976 (expand_omp_for_generic, expand_omp_for_static_nochunk,
25977 expand_omp_for_static_chunk): Handle lastprivate conditional.
25978 (expand_omp_for): Handle fd.lastprivate_conditional like
25979 fd.have_reductemp.
25980
25981 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
25982
25983 * config/gcn/gcn-run.c (main): Set a non-zero return value if the
25984 kernel does not exit cleanly.
25985 * config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb.
25986
25987 2019-05-24 Jason Merrill <jason@redhat.com>
25988
25989 Revert:
25990 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
25991
25992 2019-05-24 Richard Biener <rguenther@suse.de>
25993
25994 PR testsuite/90607
25995 * tree-loop-distribution.c (struct partition): Add location
25996 member.
25997 (partition_alloc): Initialize all fields.
25998 (generate_memset_builtin): Use the location recorded in the
25999 partition for the generated call.
26000 (generate_memcpy_builtin): Likewise.
26001 (classify_partition): Record the location of a single store
26002 as location for the partition.
26003
26004 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
26005
26006 * config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry
26007 for lo-part.
26008
26009 2019-05-24 Matthew Malcomson <matthew.malcomson@arm.com>
26010
26011 PR target/90588
26012 * common/config/aarch64/aarch64-common.c
26013 (aarch64_rewrite_selected_cpu): Change local temporary variable
26014 type from unsigned long to uint64_t.
26015 * config/aarch64/aarch64-protos.h (aarch64_parse_extension,
26016 aarch64_get_extension_string_for_isa_flags): Change declaration to
26017 match new definition by replacing unsigned long with uint64_t.
26018
26019 2019-05-24 Jakub Jelinek <jakub@redhat.com>
26020
26021 PR target/90568
26022 * config/i386/x86-tune-sched.c (ix86_macro_funsion_pair_p): Call
26023 gen_attr_type just once instead of 4-7 times. Formatting fixes.
26024 Handle stack_protect_test_<mode> codegen similarly to corresponding
26025 sub instruction.
26026
26027 2019-05-23 Iain Sandoe <iain@sandoe.co.uk>
26028
26029 * config/i386/darwin.h: Reject -mfentry*.
26030 * doc/sourcebuild.texi: Document mfentry target support.
26031
26032 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
26033
26034 * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p):
26035 Rename to rs6000_global_entry_point_prologue_needed_p. Return
26036 false for PC-relative functions.
26037 (rs6000_output_function_prologue): Change called function name to
26038 rs6000_global_entry_point_prologue_needed_p. Emit ".localentry
26039 name,1" for PC-relative functions.
26040 (rs6000_elf_declare_function_name): Change called function name to
26041 rs6000_global_entry_point_prologue_needed_p.
26042
26043 2019-05-23 Uroš Bizjak <ubizjak@gmail.com>
26044
26045 PR target/90552
26046 * config/i386/i386.c (gen_rtx_cost):
26047 Use ix86_tune_cost instead of ix86_cost.
26048
26049 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
26050 Michael Meissner <meissner@linux.ibm.com>
26051 Segher Boessenkool <segher@kernel.crashing.org>
26052
26053 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add
26054 OPTION_MASK_PCREL.
26055 (POWERPC_MASKS): Add OPTION_MASK_PCREL.
26056 * config/rs6000/rs6000-protos.h (rs6000_pcrel_p): New prototype.
26057 (rs6000_fndecl_pcrel_p): Likewise.
26058 * config/rs6000/rs6000.c (rs6000_option_override_internal): Report
26059 error if -mpcrel is requested without -mcpu=future.
26060 (rs6000_opt_masks): Add entry for pcrel.
26061 (rs6000_fndecl_pcrel_p): New function.
26062 (rs6000_pcrel_p): Likewise.
26063 * config/rs6000/rs6000.opt (mpcrel): New option.
26064 * doc/invoke.texi: Document -mpcrel and -mno-pcrel.
26065
26066 2019-05-23 Jan Hubicka <jh@suse.cz>
26067 Martin Liska <mliska@suse.cz>
26068
26069 PR tree-optimization/90576
26070 * tree-ssa-alias.c (compare_sizes): Remove dead calls to
26071 poly_int_tree_p.
26072 (aliasing_component_refs_p): Fix three way size compare conditional;
26073 give up earlier in case we can not decide on equivalence.
26074
26075 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
26076 Michael Meissner <meissner@linux.ibm.com>
26077 Segher Boessenkool <segher@kernel.crashing.org>
26078
26079 * config.gcc: Add future cpu.
26080 * config/rs6000/driver-rs6000.c (asm_names): Add future cpu.
26081 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): New
26082 #define.
26083 (POWERPC_MASKS): Add OPTION_MASK_FUTURE.
26084 (RS6000_CPU): New instantiation for future cpu.
26085 * config/rs6000/rs6000-opts.h (enum processor_type): Add
26086 PROCESSOR_FUTURE.
26087 * config/rs6000/rs6000-string.c (expand_compare_loop): Treat
26088 PROCESSOR_FUTURE like PROCESSOR_POWER9 for now.
26089 * config/rs6000/rs6000-tables.opt: Regenerate.
26090 * config/rs6000/rs6000.c (rs6000_option_override_internal): Treat
26091 PROCESSOR_FUTURE similarly to PROCESSOR_POWER9 for now.
26092 (rs6000_machine_from_flags): Handle future cpu.
26093 (rs6000_reassociation_width): Treat PROCESSOR_FUTURE like
26094 PROCESSOR_POWER9 for now.
26095 (rs6000_adjust_cost): Likewise.
26096 (rs6000_issue_rate): Likewise.
26097 (rs6000_register_move_cost): Likewise.
26098 (rs6000_opt_masks): Add entry for future.
26099 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add future cpu.
26100 (MASK_FUTURE): New #define.
26101 * config/rs6000/rs6000.md (define_attr "cpu"): Add future cpu.
26102 * config/rs6000/rs6000.opt (mfuture): New target option.
26103 * doc/invoke.texi (mcpu): Add future cpu.
26104
26105 2019-05-23 Martin Liska <mliska@suse.cz>
26106
26107 PR c++/90587
26108 * tree-ssa-uninit.c (value_sat_pred_p): The result of &
26109 operation points to a temporary (pointed via tree_to_wide_ref)
26110 that is out of scope after the &.
26111
26112 2019-05-23 Jonathan Wakely <jwakely@redhat.com>
26113
26114 PR c++/90592
26115 * doc/extend.texi (Function Names): Add missing word.
26116
26117 2019-05-23 Richard Biener <rguenther@suse.de>
26118
26119 PR tree-optimization/88440
26120 * opts.c (default_options_table): Enable -ftree-loop-distribute-patterns
26121 at -O[2s]+.
26122 * tree-loop-distribution.c (generate_memset_builtin): Fold the
26123 generated call.
26124 (generate_memcpy_builtin): Likewise.
26125 (distribute_loop): Pass in whether to only distribute patterns.
26126 (prepare_perfect_loop_nest): Also allow size optimization.
26127 (pass_loop_distribution::execute): When optimizing a loop
26128 nest for size allow pattern replacement.
26129
26130 2019-05-23 Jakub Jelinek <jakub@redhat.com>
26131
26132 PR target/90568
26133 * config/i386/i386.md (stack_protect_test_<mode>): Use sub instead
26134 of xor.
26135
26136 2019-05-23 Martin Liska <mliska@suse.cz>
26137
26138 PR sanitizer/90570
26139 * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
26140 expression similarly to gimplify_decl_expr.
26141
26142 2019-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
26143
26144 * cse.c (cse_dump_path): s/dump_file/f.
26145
26146 2019-05-22 David Malcolm <dmalcolm@redhat.com>
26147
26148 PR c++/90462
26149 * diagnostic-format-json.cc: Include "selftest.h".
26150 (json_from_expanded_location): Only add "file" key for non-NULL
26151 file strings.
26152 (json_from_location_range): Don't add "start" and "finish"
26153 children if they are UNKNOWN_LOCATION.
26154 (selftest::test_unknown_location): New selftest.
26155 (selftest::test_bad_endpoints): New selftest.
26156 (selftest::diagnostic_format_json_cc_tests): New function.
26157 * json.cc (json::object::get): New function.
26158 (selftest::test_object_get): New selftest.
26159 (selftest::json_cc_tests): Call it.
26160 * json.h (json::object::get): New decl.
26161 * selftest-run-tests.c (selftest::run_tests): Call
26162 selftest::diagnostic_format_json_cc_tests.
26163 * selftest.h (selftest::diagnostic_format_json_cc_tests): New
26164 decl.
26165
26166 2019-05-22 Kwok Cheung Yeung <kcy@codesourcery.com>
26167 Andrew Stubbs <amd@codesourcery.com>
26168
26169 * config.gcc (gcc_cv_initfini_array): Set for AMD GCN.
26170 * config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New.
26171 (kernel): Rename to...
26172 (main_kernel): ... this.
26173 (load_image): Load _init_array and _fini_array kernels.
26174 (run): Add argument for kernel to run.
26175 (main): Run init_array_kernel before main_kernel, and
26176 fini_array_kernel after.
26177 * config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow
26178 amdgpu_hsa_kernel attribute on functions.
26179 (gcn_disable_constructors): Delete.
26180 (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete.
26181 * config/gcn/crt0.c (size_t): Define.
26182 (_init_array, _fini_array): New.
26183 (__preinit_array_start, __preinit_array_end,
26184 __init_array_start, __init_array_end,
26185 __fini_array_start, __fini_array_end): Declare weak references.
26186
26187 2019-05-22 Andrew Stubbs <ams@codesourcery.com>
26188
26189 * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5.
26190
26191 2019-05-22 Jason Merrill <jason@redhat.com>
26192
26193 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
26194
26195 2019-05-22 H.J. Lu <hongjiu.lu@intel.com>
26196
26197 PR target/88483
26198 * config/i386/i386-options.c (ix86_init_machine_status): Set
26199 stack_frame_required to true.
26200 * config/i386/i386.c (ix86_get_frame_size): New function.
26201 (ix86_frame_pointer_required): Replace get_frame_size with
26202 ix86_get_frame_size.
26203 (ix86_compute_frame_layout): Likewise.
26204 (ix86_find_max_used_stack_alignment): Changed to void. Set
26205 stack_frame_required.
26206 (ix86_finalize_stack_frame_flags): Always call
26207 ix86_find_max_used_stack_alignment. Replace get_frame_size with
26208 ix86_get_frame_size.
26209 * config/i386/i386.h (machine_function): Add stack_frame_required.
26210
26211 2019-05-22 Uroš Bizjak <ubizjak@gmail.com>
26212
26213 * config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition.
26214
26215 2019-05-22 Matthew Malcomson <matthew.malcomson@arm.com>
26216
26217 * common/config/aarch64/aarch64-common.c
26218 (struct aarch64_option_extension, struct processor_name_to_arch,
26219 struct arch_to_arch_name, aarch64_parse_extension, opt_ext_cmp,
26220 aarch64_contains_opt,
26221 aarch64_get_extension_string_for_isa_flags): Change type of
26222 variables storing flags to uint64_t.
26223 * config/aarch64/aarch64-option-extensions.def (sve2, sve2-sm4,
26224 sve2-aes, sve2-sha3, bitperm): New optional SVE2 extension flags.
26225 * config/aarch64/aarch64.c (struct processor,
26226 aarch64_parse_arch, aarch64_parse_cpu, aarch64_validate_mcpu,
26227 aarch64_validate_march, aarch64_override_options,
26228 aarch64_option_print, aarch64_handle_attr_isa_flags,
26229 aarch64_declare_function_name, aarch64_start_file): Make flag
26230 variables uint64_t.
26231 * config/aarch64/aarch64.h (AARCH64_FL_SVE2, AARCH64_FL_SVE2_AES,
26232 AARCH64_FL_SVE2_SM4, AARCH64_FL_SVE2_SHA3,
26233 AARCH64_FL_SVE2_BITPERM): New macro feature flags.
26234 * config/aarch64/aarch64.opt (aarch64_isa_flags): Make uint64_t.
26235 * config/aarch64/driver-aarch64.c
26236 (struct aarch64_arch_extension, struct aarch64_core_data,
26237 struct aarch64_arch_driver_info, host_detect_local_cpu): Make
26238 flag variables uint64_t.
26239 * doc/invoke.texi: Add documentation for new arguments.
26240
26241 2019-05-22 Richard Biener <rguenther@suse.de>
26242
26243 * alias.c (ao_ref_from_mem): Move stack-slot sharing
26244 rewrite ...
26245 * emit-rtl.c (set_mem_attributes_minus_bitpos): ... here.
26246
26247 2019-05-22 Martin Liska <mliska@suse.cz>
26248
26249 PR lto/90500
26250 * doc/extend.texi: Document the change.
26251
26252 2019-05-22 Richard Biener <rguenther@suse.de>
26253
26254 PR tree-optimization/90450
26255 * tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed.
26256 (mem_ref_hasher::equal): Check it.
26257 (mem_ref_alloc): Initialize it.
26258 (gather_mem_refs_stmt): Set it.
26259
26260 2019-05-22 Richard Biener <rguenther@suse.de>
26261
26262 * gimple-fold.c (arith_code_with_undefined_signed_overflow):
26263 Add ABS_EXPR.
26264 (rewrite_to_defined_overflow): Handle rewriting ABS_EXPR
26265 as ABSU_EXPR.
26266
26267 2019-05-22 Alan Modra <amodra@gmail.com>
26268
26269 * config/rs6000/rs6000.h (ASM_OPT_ANY): Define.
26270 (ASM_CPU_SPEC): Conditionally add -many.
26271 * config/rs6000/rs6000.c (rs6000_machine): New static var.
26272 (rs6000_machine_from_flags, emit_asm_machine): New functions..
26273 (rs6000_file_start): ..extracted from here, and modified to
26274 test all ISA bits.
26275 (rs6000_output_function_prologue): Emit .machine as necessary.
26276
26277 2019-05-22 Hans-Peter Nilsson <hp@axis.com>
26278
26279 PR middle-end/90553
26280 * ira-lives.c (process_bb_node_lives): Consider defs
26281 for a call insn to be die before the call, not after.
26282
26283 * function.c (assign_parm_setup_block): Raise alignment of
26284 stacked parameter only for STRICT_ALIGNMENT targets.
26285
26286 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
26287
26288 * config/rs6000/constraints.md (define_register_constraint "wz"):
26289 Delete.
26290 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
26291 RS6000_CONSTRAINT_wz.
26292 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
26293 (rs6000_init_hard_regno_mode_ok): Adjust.
26294 * config/rs6000/rs6000.md: Replace "wz" constraint by "d" with "p7".
26295 * doc/md.texi (Machine Constraints): Adjust.
26296
26297 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
26298
26299 * config/rs6000/constraints.md (define_register_constraint "wl"):
26300 Delete.
26301 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
26302 RS6000_CONSTRAINT_wl.
26303 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
26304 (rs6000_init_hard_regno_mode_ok): Adjust.
26305 * config/rs6000/rs6000.md: Replace "wl" constraint by "d" with "p6".
26306 * doc/md.texi (Machine Constraints): Adjust.
26307
26308 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
26309
26310 * config/rs6000/constraints.md (define_register_constraint "wm"):
26311 Delete.
26312 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
26313 RS6000_CONSTRAINT_wm.
26314 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
26315 (rs6000_init_hard_regno_mode_ok): Adjust.
26316 * config/rs6000/vsx.md: Replace "wm" constraint by "wa" with "p8v".
26317 * doc/md.texi (Machine Constraints): Adjust.
26318
26319 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
26320
26321 * config/rs6000/constraints.md (define_register_constraint "wk"):
26322 Delete.
26323 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
26324 RS6000_CONSTRAINT_wk.
26325 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
26326 (rs6000_init_hard_regno_mode_ok): Adjust.
26327 * config/rs6000/rs6000.md: Replace "wk" constraint by "ws" with "p8v".
26328 * doc/md.texi (Machine Constraints): Adjust.
26329
26330 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
26331
26332 * config/rs6000/constraints.md (define_register_constraint "wj"):
26333 Delete.
26334 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
26335 RS6000_CONSTRAINT_wj.
26336 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
26337 (rs6000_init_hard_regno_mode_ok): Adjust.
26338 * config/rs6000/rs6000.md: Replace "wj" constraint by "wi" with "p8v".
26339 (VS_64dm): Delete.
26340 * config/rs6000/vsx.md: Ditto.
26341 * doc/md.texi (Machine Constraints): Adjust.
26342
26343 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
26344
26345 * config/rs6000/constraints.md (define_register_constraint "wh"):
26346 Delete.
26347 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
26348 RS6000_CONSTRAINT_wh.
26349 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
26350 (rs6000_init_hard_regno_mode_ok): Adjust.
26351 * config/rs6000/rs6000.md: Replace "wh" constraint by "wa" with "p8v".
26352 * doc/md.texi (Machine Constraints): Adjust.
26353
26354 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
26355
26356 PR target/90547
26357 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
26358 Avoid calling gen_lowpart with CONST operand.
26359
26360 2019-05-21 Alexandre Oliva <aoliva@redhat.com>
26361
26362 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add
26363 field template_last_to_copy.
26364 (ssa_create_duplicates): Set it, and use it. Attempt to
26365 preserve more debug stmts.
26366
26367 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
26368
26369 * config/i386/sse.md (VF1_AVX2): New mode iterator.
26370 (signbit<mode>2): New expander
26371
26372 2019-05-21 James Clarke <jrtc27@jrtc27.com>
26373
26374 PR bootstrap/87338
26375 * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
26376 instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.
26377
26378 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
26379
26380 * config/i386/cpuid.h (__cpuid): For 32bit targets, zero
26381 %ebx and %ecx bafore calling cpuid with leaf 1 or
26382 non-constant leaf argument.
26383
26384 2019-05-21 Alan Modra <amodra@gmail.com>
26385
26386 PR target/90545
26387 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase
26388 power9 direct move cost.
26389
26390 2019-05-21 Richard Biener <rguenther@suse.de>
26391
26392 PR middle-end/90510
26393 * fold-const.c (fold_read_from_vector): New function.
26394 * fold-const.h (fold_read_from_vector): Declare.
26395 * match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for
26396 single-element insert permutations. Canonicalize selector
26397 further and fix issue with last commit.
26398
26399 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
26400
26401 * tree-cfg.h (split_critical_edges): Add for_edge_insertion_p
26402 parameter with default value false to declaration.
26403 (split_edges_for_insertion): New inline function. Wrapper for
26404 split_critical_edges with for_edge_insertion_p = true.
26405 * tree-cfg.c (split_critical_edges): Don't split non-critical
26406 edges if for_edge_insertion_p is false. Fix whitespace.
26407 * tree-ssa-pre.c (pass_pre::execute): Call
26408 split_edges_for_insertion instead of split_critical_edges.
26409 * tree-ssa-tail-merge.c (tail_merge_optimize): Ditto.
26410 * tree-ssa-sink.c (pass_sink_code::execute): Ditto.
26411 (pass_data_sink_code): Update function name in the comment.
26412
26413 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
26414
26415 * tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper
26416 around is_value_included_in that knows how to handle BIT_AND_EXPR.
26417 (is_pred_expr_subset_of): Use the new function. Handle more cases where
26418 code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false
26419 positives.
26420
26421 2019-05-21 Martin Liska <mliska@suse.cz>
26422
26423 * config/rs6000/driver-rs6000.c (elf_platform): Do not use
26424 an extra newline.
26425 * config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>.
26426 (altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and
26427 vec_lvsr.
26428 * config/rs6000/rs6000.c (rs6000_option_override_internal):
26429 Quote a C type.
26430 (rs6000_function_arg): Likewise.
26431 (rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot.
26432 (rs6000_expand_ternop_builtin): Use interval syntax.
26433 (get_element_number): Likewise.
26434 (altivec_expand_builtin): Likewise.
26435 (rs6000_get_function_versions_dispatcher): Quote target_clones.
26436
26437 2019-05-20 Jakub Jelinek <jakub@redhat.com>
26438
26439 PR c++/59813
26440 PR target/90418
26441 * function.h (struct function): Add calls_eh_return member.
26442 * gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when
26443 gimplifying __builtin_eh_return call.
26444 * tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun
26445 to cfun.
26446 (expand_call_inline): Or in src_cfun->calls_eh_return into
26447 dst_cfun->calls_eh_return.
26448 * tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if
26449 cfun->calls_eh_return.
26450 * lto-streamer-in.c (input_struct_function_base): Read calls_eh_return.
26451 * lto-streamer-out.c (output_struct_function_base): Write
26452 calls_eh_return.
26453
26454 2019-05-20 Marc Glisse <marc.glisse@inria.fr>
26455
26456 PR rtl-optimization/43147
26457 * config/i386/i386.c (ix86_gimple_fold_builtin): Handle
26458 IX86_BUILTIN_SHUFPD.
26459
26460 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
26461
26462 * tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
26463 (refs_may_alias_p_1): ... here; update stats.
26464 (refs_may_alias_p): Do not update stats here.
26465
26466 2019-05-20 Richard Biener <rguenther@suse.de>
26467
26468 * tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR
26469 doesn't produce pointers.
26470 {TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what
26471 the first operand points to.
26472
26473 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
26474
26475 * tree-ssa-alias.c (compare_sizes): New function.
26476 (sompare_type_sizes): New function
26477 (aliasing_component_refs_p): Use it.
26478 (indirect_ref_may_alias_decl_p): Likewise.
26479
26480 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26481
26482 * config/i386/sol2.h (CC1_SPEC): Reject -mx32.
26483
26484 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26485
26486 * config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e.
26487 (LIBLSAN_EARLY_SPEC): Likewise.
26488 * config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise.
26489
26490 2019-05-20 Martin Liska <mliska@suse.cz>
26491
26492 * config/i386/i386.c (ix86_libc_has_fast_function):
26493 Add ATTRIBUTE_UNUSED for the argument.
26494
26495 2019-05-20 Richard Biener <rguenther@suse.de>
26496
26497 * gimple-match-head.c: Include vec-perm-indices.h.
26498 * generic-match-head.c: Likewise.
26499 * fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h
26500 is included.
26501 * fold-const.c (fold_vec_perm): Export.
26502 (fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR...
26503 (match.pd): ...here.
26504
26505 2019-05-20 Jakub Jelinek <jakub@redhat.com>
26506
26507 * cfgloop.h (struct loop): Add simdlen member.
26508 * cfgloopmanip.c (copy_loop_info): Copy simdlen as well.
26509 * omp-expand.c (expand_omp_simd): Set it if simdlen clause is present.
26510 * tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0
26511 as new argument to autovectorize_vector_sizes target hook. If
26512 loop->simdlen, pick up vector size where the vectorization factor
26513 is equal to loop->simd, and if there is none, fall back to the first
26514 successful one.
26515 (vect_transform_loop): Adjust autovectorize_vector_sizes target hook
26516 caller.
26517 * omp-low.c (omp_clause_aligned_alignment): Likewise.
26518 * omp-general.c (omp_max_vf): Likewise.
26519 * optabs-query.c (can_vec_mask_load_store_p): Likewise.
26520 * tree-vect-slp.c (vect_slp_bb): Likewise.
26521 * target.def (autovectorize_vector_sizes): Add ALL argument and
26522 document it.
26523 * doc/tm.texi: Adjust documentation.
26524 * targhooks.c (default_autovectorize_vector_sizes): Add bool argument.
26525 * targhooks.h (default_autovectorize_vector_sizes): Likewise.
26526 * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add
26527 bool argument.
26528 * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise.
26529 * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise.
26530 * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise.
26531 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. If
26532 true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if
26533 preferred vector size is not 512-bit or 256-bit, just put those
26534 unpreferred ones last.
26535
26536 2019-05-20 Martin Liska <mliska@suse.cz>
26537
26538 * targhooks.c (default_libc_has_fast_function): New function.
26539 * targhooks.h (default_libc_has_fast_function): Likewise.
26540
26541 2019-05-20 Martin Liska <mliska@suse.cz>
26542
26543 PR middle-end/90263
26544 * builtins.c (expand_builtin_memory_copy_args): When having a
26545 target with fast mempcpy implementation do now use memcpy.
26546 * config/i386/i386.c (ix86_libc_has_fast_function): New.
26547 (TARGET_LIBC_HAS_FAST_FUNCTION): Likewise.
26548 * doc/tm.texi: Likewise.
26549 * doc/tm.texi.in: Likewise.
26550 * target.def:
26551 * expr.c (emit_block_move_hints): Add 2 new arguments.
26552 * expr.h (emit_block_move_hints): Bail out when libcall
26553 to memcpy would be used.
26554
26555 2019-05-20 Martin Liska <mliska@suse.cz>
26556
26557 * profile-count.c: Add vertical spacing in order
26558 to separate functions.
26559 * profile-count.h: Likewise.
26560
26561 2019-05-20 Martin Liska <mliska@suse.cz>
26562
26563 * profile-count.h: Do not use full qualified
26564 names if possible.
26565 * profile-count.c (profile_count::to_frequency): Likewise.
26566
26567 2019-05-20 Martin Liska <mliska@suse.cz>
26568
26569 * profile-count.h (enum profile_quality): Use capital letters
26570 for enum value names. Use the adjusted names.
26571 * profile-count.c: Use the adjusted names.
26572
26573 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
26574
26575 * config/rs6000/constraints.md (define_register_constraint "wH"):
26576 Delete.
26577 (define_register_constraint "wI"): Delete.
26578 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
26579 RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI.
26580 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
26581 (rs6000_init_hard_regno_mode_ok): Adjust.
26582 * config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v"
26583 resp. "d", or with "wa" as appropriate, all with "p8v".
26584 * config/rs6000/vsx.md: Ditto.
26585 * doc/md.texi (Machine Constraints): Adjust.
26586
26587 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
26588
26589 * config/rs6000/constraints.md (define_register_constraint "wy"):
26590 Delete.
26591 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
26592 RS6000_CONSTRAINT_wy.
26593 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
26594 (rs6000_init_hard_regno_mode_ok): Adjust.
26595 * config/rs6000/rs6000.md: Replace "wy" constraint by "wa" with "p8v".
26596 Use "<Fisa>" as "isa" in all alternatives that use "<Fv2>".
26597 (define_mode_attr Fisa): New.
26598 * config/rs6000/vsx.md: Replace "wy" constraint by "wa" with "p8v".
26599 * doc/md.texi (Machine Constraints): Adjust.
26600
26601 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
26602
26603 * config/rs6000/constraints.md (define_register_constraint "wu"):
26604 Delete.
26605 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
26606 RS6000_CONSTRAINT_wu.
26607 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
26608 (rs6000_init_hard_regno_mode_ok): Adjust.
26609 * config/rs6000/rs6000.md: Replace "wu" constraint by "v" or "wa",
26610 both with "p8v".
26611 (define_mode_attr Fa): Delete.
26612 * config/rs6000/vsx.md: Ditto.
26613 * doc/md.texi (Machine Constraints): Adjust.
26614
26615 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
26616
26617 * config/rs6000/constraints.md (define_register_constraint "wJ"):
26618 Delete.
26619 (define_register_constraint "wK"): Delete.
26620 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
26621 RS6000_CONSTRAINT_wJ and RS6000_CONSTRAINT_wK.
26622 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
26623 (rs6000_init_hard_regno_mode_ok): Adjust.
26624 * config/rs6000/rs6000.md: Replace "wJ" constraint by "wI" with "p9v".
26625 Replace "wK" constraint by "wH" with "p9v".
26626 * config/rs6000/vsx.md: Ditto.
26627 * doc/md.texi (Machine Constraints): Adjust.
26628
26629 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
26630
26631 * config/rs6000/constraints.md (define_register_constraint "wb"):
26632 Delete.
26633 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
26634 RS6000_CONSTRAINT_wb.
26635 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
26636 (rs6000_init_hard_regno_mode_ok): Adjust.
26637 * config/rs6000/rs6000.md: Replace "wb" constraint by "v" with "p9v".
26638 * config/rs6000/vsx.md: Ditto.
26639 * doc/md.texi (Machine Constraints): Adjust.
26640
26641 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
26642
26643 * config/rs6000/constraints.md (define_register_constraint "wo"):
26644 Delete.
26645 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
26646 RS6000_CONSTRAINT_wo.
26647 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
26648 (rs6000_init_hard_regno_mode_ok): Adjust.
26649 * config/rs6000/rs6000.md: Replace "wo" constraint by "wa" with "p9v".
26650 * config/rs6000/altivec.md: Ditto.
26651 * doc/md.texi (Machine Constraints): Adjust.
26652
26653 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
26654
26655 * config/darwin-c.c (darwin_register_objc_includes): Do not
26656 prepend the sysroot when building gnu-runtime header search
26657 paths.
26658
26659 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
26660
26661 * config/darwin.c (darwin_file_end): Use switch_to_section ()
26662 instead of direct output of the asm.
26663
26664 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
26665
26666 * config/rs6000/rs6000.c (restore_saved_cr): Change a boolean
26667 argument to be type bool (was int before).
26668 (rs6000_emit_epilogue): Simplify some code. Declare some variables
26669 at first use. Use type bool for some variables. Fix a theoretical
26670 eh_return bug for svr4.
26671
26672 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
26673
26674 * config/rs6000/rs6000.md (isa): New attribute.
26675 (enabled): New attribute.
26676
26677 2019-05-17 Max Filippov <jcmvbkbc@gmail.com>
26678
26679 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call
26680 assemble_start_function and assemble_end_function.
26681
26682 2019-05-17 Thomas Schwinge <thomas@codesourcery.com>
26683
26684 PR middle-end/89433
26685 * omp-general.c (oacc_verify_routine_clauses): Change formal
26686 parameters. Add checking if already marked with an OpenACC
26687 'routine' directive. Adjust all users.
26688
26689 PR middle-end/89433
26690 * omp-general.c (oacc_build_routine_dims): Move some of its
26691 processing into...
26692 (oacc_verify_routine_clauses): ... this new function.
26693 * omp-general.h (oacc_verify_routine_clauses): New prototype.
26694
26695 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
26696
26697 * config/rs6000/rs6000.c (machopic_output_stub): Adjust the
26698 formating of picbase labels to match other ports.
26699
26700 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
26701
26702 * config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent
26703 in the generated code.
26704
26705 2019-05-16 Martin Sebor <msebor@redhat.com>
26706
26707 * builtins.c (expand_builtin_atomic_always_lock_free): Quote
26708 identifiers, keywords, operators, and types in diagnostics. Correct
26709 quoting, spelling, and sentence capitalization issues.
26710 (expand_builtin_atomic_is_lock_free): Same.
26711 (fold_builtin_next_arg): Same.
26712 * cfgexpand.c (expand_one_var): Same.
26713 (tree_conflicts_with_clobbers_p): Same.
26714 (expand_asm_stmt): Same.
26715 (verify_loop_structure): Same.
26716 * cgraphunit.c (process_function_and_variable_attributes): Same.
26717 * collect-utils.c (collect_execute): Same.
26718 * collect2.c (maybe_run_lto_and_relink): Same.
26719 (is_lto_object_file): Same.
26720 (scan_prog_file): Same.
26721 * convert.c (convert_to_real_1): Same.
26722 * dwarf2out.c (dwarf2out_begin_prologue): Same.
26723 * except.c (verify_eh_tree): Same.
26724 * gcc.c (execute): Same.
26725 (eval_spec_function): Same.
26726 (run_attempt): Same.
26727 (driver::set_up_specs): Same.
26728 (compare_debug_auxbase_opt_spec_function): Same.
26729 * gcov-tool.c (unlink_gcda_file): Same.
26730 (do_merge): Same.
26731 (do_rewrite): Same.
26732 * gcse.c (gcse_or_cprop_is_too_expensive): Same.
26733 * gimplify.c (gimplify_asm_expr): Same.
26734 (gimplify_adjust_omp_clauses): Same.
26735 * hsa-gen.c (gen_hsa_addr_insns): Same.
26736 (gen_hsa_insns_for_load): Same.
26737 (gen_hsa_cmp_insn_from_gimple): Same.
26738 (gen_hsa_insns_for_operation_assignment): Same.
26739 (gen_get_level): Same.
26740 (gen_hsa_alloca): Same.
26741 (omp_simple_builtin::generate): Same.
26742 (gen_hsa_atomic_for_builtin): Same.
26743 (gen_hsa_insns_for_call): Same.
26744 * input.c (dump_location_info): Same.
26745 * ipa-devirt.c (compare_virtual_tables): Same.
26746 * ira.c (ira_setup_eliminable_regset): Same.
26747 * lra-assigns.c (lra_assign): Same.
26748 * lra-constraints.c (lra_constraints): Same.
26749 * lto-streamer-in.c (lto_input_mode_table): Same.
26750 * lto-wrapper.c (get_options_from_collect_gcc_options): Same.
26751 (merge_and_complain): Same.
26752 (compile_offload_image): Same.
26753 (compile_images_for_offload_targets): Same.
26754 (debug_objcopy): Same.
26755 (run_gcc): Same.
26756 (main): Same.
26757 * opts.c (print_specific_help): Same.
26758 (parse_no_sanitize_attribute): Same.
26759 (print_help): Same.
26760 (handle_param): Same.
26761 * plugin.c (add_new_plugin): Same.
26762 (parse_plugin_arg_opt): Same.
26763 (try_init_one_plugin): Same.
26764 * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords,
26765 operators, and types in diagnostics. Correct quoting and spelling
26766 issues.
26767 * read-rtl-function.c (parse_edge_flag_token): Same.
26768 (function_reader::parse_enum_value): Same.
26769 * reg-stack.c (check_asm_stack_operands): Same.
26770 * regcprop.c (validate_value_data): Same.
26771 * sched-rgn.c (make_pass_sched_fusion): Same.
26772 * stmt.c (check_unique_operand_names): Same.
26773 * targhooks.c (default_target_option_pragma_parse): Same.
26774 * tlink.c (recompile_files): Same.
26775 * toplev.c (process_options): Same.
26776 (do_compile): Same.
26777 * trans-mem.c (diagnose_tm_1): Same.
26778 (ipa_tm_scan_irr_block): Same.
26779 (ipa_tm_diagnose_transaction): Same.
26780 * tree-cfg.c (verify_address): Same. Use get_tree_code_name to
26781 format a tree code name in a diagnostic.
26782 (verify_types_in_gimple_min_lval): Same.
26783 (verify_types_in_gimple_reference): Same.
26784 (verify_gimple_call): Same.
26785 (verify_gimple_assign_unary): Same.
26786 (verify_gimple_assign_binary): Same.
26787 (verify_gimple_assign_ternary): Same.
26788 (verify_gimple_assign_single): Same.
26789 (verify_gimple_switch): Same.
26790 (verify_gimple_label): Same.
26791 (verify_gimple_phi): Same.
26792 (verify_gimple_in_seq): Same.
26793 (verify_eh_throw_stmt_node): Same.
26794 (collect_subblocks): Same.
26795 (gimple_verify_flow_info): Same.
26796 (do_warn_unused_result): Same.
26797 * tree-inline.c (expand_call_inline): Same.
26798 * tree-into-ssa.c (update_ssa): Same.
26799 * tree.c (tree_int_cst_elt_check_failed): Same.
26800 (tree_vec_elt_check_failed): Same.
26801 (omp_clause_operand_check_failed): Same.
26802 (verify_type_variant): Same.
26803 (verify_type): Same.
26804 * value-prof.c (verify_histograms): Same.
26805 * varasm.c (assemble_start_function): Same.
26806
26807 2019-05-16 Martin Sebor <msebor@redhat.com>
26808
26809 * config/i386/i386-expand.c (get_element_number): Quote keywords
26810 and other internal names in diagnostics. Adjust other diagnostic
26811 formatting issues noted by -Wformat-diag.
26812 * config/i386/i386-features.c
26813 (ix86_mangle_function_version_assembler_name): Same.
26814 * config/i386/i386-options.c (ix86_handle_abi_attribute): Same.
26815 * config/i386/i386.c (ix86_function_type_abi): Same.
26816 (ix86_function_ms_hook_prologue): Same.
26817 (classify_argument): Same.
26818 (ix86_expand_prologue): Same.
26819 (ix86_md_asm_adjust): Same.
26820 (ix86_memmodel_check): Same.
26821
26822 2019-05-17 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
26823
26824 * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
26825 TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64
26826 and fpxx modes.
26827
26828 2019-05-17 H.J. Lu <hongjiu.lu@intel.com>
26829
26830 PR target/90497
26831 * config/i386/i386-expand.c (ix86_expand_builtin): Enable MMX
26832 intrinsics without SSE/SSE2/SSSE3.
26833 * config/i386/mmx.md (mmx_uavgv8qi3): Restore TARGET_3DNOW
26834 check.
26835 (*mmx_uavgv8qi3): Likewise.
26836
26837 2019-05-17 Richard Biener <rguenther@suse.de>
26838
26839 * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping
26840 VEC_PERM_EXPR as __VEC_PERM with -gimple.
26841
26842 2019-05-17 Andreas Krebbel <krebbel@linux.ibm.com>
26843
26844 * config/s390/s390-builtins.def (s390_vec_sldw_*): Use the
26845 vec_sldw insn pattern.
26846
26847 2019-05-17 Richard Biener <rguenther@suse.de>
26848
26849 * ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree.
26850
26851 2019-05-17 Martin Liska <mliska@suse.cz>
26852
26853 PR driver/90496
26854 * toplev.c (output_stack_usage): With LTO and sanitizer it
26855 happens that a global ctor (_GLOBAL__sub_I_00099_0_main)
26856 has no file location.
26857
26858 2019-05-16 Jakub Jelinek <jakub@redhat.com>
26859
26860 PR c++/90484
26861 * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that
26862 sz0 is equal to sz1, instead return false in that case.
26863
26864 * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF
26865 has non-constant expression, force sctx.lane and use two
26866 argument IFN_GOMP_SIMD_LANE instead of single argument.
26867 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE
26868 two argument IFN_GOMP_SIMD_LANE without lhs.
26869 * tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond
26870 member.
26871 (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND):
26872 Define.
26873 (LOOP_REQUIRES_VERSIONING): Or in
26874 LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND.
26875 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
26876 simd_if_cond.
26877 (vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0.
26878 * tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check
26879 from simd if clause if needed.
26880
26881 2019-05-16 Richard Biener <rguenther@suse.de>
26882
26883 * tree-affine.c (expr_to_aff_combination): New function split
26884 out from...
26885 (tree_to_aff_combination): ... here.
26886 (aff_combination_expand): Avoid building a GENERIC tree.
26887
26888 2019-05-16 Max Filippov <jcmvbkbc@gmail.com>
26889
26890 * cgraphunit.c (cgraph_node::expand_thunk): Remove
26891 assemble_start_function and assemble_end_function calls.
26892 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call
26893 assemble_start_function and assemble_end_function.
26894 * config/arc/arc.c (arc_output_mi_thunk): Likewise.
26895 * config/arm/arm.c (arm_output_mi_thunk): Likewise.
26896 * config/bfin/bfin.c (bfin_output_mi_thunk): Likewise.
26897 * config/c6x/c6x.c (c6x_output_mi_thunk): Likewise.
26898 * config/cris/cris.c (cris_asm_output_mi_thunk): Likewise.
26899 * config/csky/csky.c (csky_output_mi_thunk): Likewise.
26900 * config/epiphany/epiphany.c (epiphany_output_mi_thunk): Likewise.
26901 * config/frv/frv.c (frv_asm_output_mi_thunk): Likewise.
26902 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
26903 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
26904 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
26905 * config/microblaze/microblaze.c (microblaze_asm_output_mi_thunk):
26906 Likewise.
26907 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
26908 * config/mmix/mmix.c (mmix_asm_output_mi_thunk): Likewise.
26909 * config/mn10300/mn10300.c (mn10300_asm_output_mi_thunk): Likewise.
26910 * config/nds32/nds32.c (nds32_asm_output_mi_thunk): Likewise.
26911 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
26912 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
26913 * config/pa/pa.c (pa_asm_output_mi_thunk): Likewise.
26914 * config/riscv/riscv.c (riscv_output_mi_thunk): Likewise.
26915 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
26916 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
26917 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
26918 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
26919 * config/spu/spu.c (spu_output_mi_thunk): Likewise.
26920 * config/stormy16/stormy16.c (xstormy16_asm_output_mi_thunk):
26921 Likewise.
26922 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
26923 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
26924 * config/vax/vax.c (vax_output_mi_thunk): Likewise.
26925
26926 2019-05-16 Jan Hubicka <hubicka@ucw.cz>
26927
26928 * tree-ssa-alias.c (alias_stats): Add
26929 aliasing_component_refs_p_may_alias and
26930 aliasing_component_refs_p_no_alias.
26931 (dump_alias_stats): Print aliasing_component_refs_p stats.
26932 (aliasing_component_refs_p): Update stats.
26933
26934 2019-05-16 Martin Liska <mliska@suse.cz>
26935
26936 PR lto/90500
26937 * multiple_target.c (expand_target_clones): Do not allow
26938 target_clones being used with a symbol that is an alias.
26939
26940 2019-05-16 Vladislav Ivanishin <vlad@ispras.ru>
26941
26942 PR tree-optimization/90394
26943 * tree-ssa-uninit.c (is_pred_expr_subset_of): Potentially give false
26944 positives rather than ICE for cases where (code2 == NE_EXPR
26945 && code1 == BIT_AND_EXPR).
26946
26947 2019-05-16 Jakub Jelinek <jakub@redhat.com>
26948
26949 PR fortran/90329
26950 * tree-core.h (struct tree_decl_common): Document
26951 decl_nonshareable_flag for PARM_DECLs.
26952 * tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
26953 * calls.c (expand_call): Don't try tail call if caller
26954 has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
26955 passed on the stack and callee needs to pass any arguments on the
26956 stack.
26957 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
26958 else if instead of series of mutually exclusive ifs. Handle
26959 DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
26960 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
26961
26962 * lto-streamer.h (LTO_major_version): Bump to 9.
26963
26964 2019-05-16 Jun Ma <JunMa@linux.alibaba.com>
26965
26966 PR tree-optimization/90106
26967 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): Add
26968 new parameter as new internal function call, also move it to new
26969 basic block.
26970 (use_internal_fn): Pass internal function call to
26971 shrink_wrap_one_built_in_call_with_conds.
26972
26973 2019-05-15 Jakub Jelinek <jakub@redhat.com>
26974
26975 * omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set
26976 max_vf to 1.
26977 * omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear
26978 safelen_int and set loop->dont_vectorize.
26979
26980 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
26981
26982 PR target/89021
26983 * config/i386/i386-builtin.def: Enable MMX intrinsics with
26984 SSE/SSE2/SSSE3.
26985 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
26986 Likewise.
26987 * config/i386/i386-expand.c (ix86_expand_builtin): Allow
26988 SSE/SSE2/SSSE3 to emulate MMX intrinsics with TARGET_MMX_WITH_SSE.
26989 * config/i386/mmintrin.h: Only require SSE2 if __MMX_WITH_SSE__
26990 is defined.
26991
26992 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
26993
26994 PR target/89021
26995 * config/i386/mmx.md (*vec_dupv2sf): Changed to
26996 define_insn_and_split to support SSE emulation.
26997 (*vec_extractv2sf_0): Likewise.
26998 (*vec_extractv2sf_1): Likewise.
26999 (*vec_extractv2si_0): Likewise.
27000 (*vec_extractv2si_1): Likewise.
27001 (*vec_extractv2si_zext_mem): Likewise.
27002 (vec_setv2sf): Also allow TARGET_MMX_WITH_SSE.
27003 (vec_extractv2sf_1 splitter): Likewise.
27004 (vec_extractv2sfsf): Likewise.
27005 (vec_setv2si): Likewise.
27006 (vec_extractv2si_1 splitter): Likewise.
27007 (vec_extractv2sisi): Likewise.
27008 (vec_setv4hi): Likewise.
27009 (vec_extractv4hihi): Likewise.
27010 (vec_setv8qi): Likewise.
27011 (vec_extractv8qiqi): Likewise.
27012 (vec_extractv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
27013 TARGET_MMX_WITH_SSE ix86_expand_vector_extract.
27014 (vec_extractv2sisi): Likewise.
27015 (vec_extractv4hihi): Likewise.
27016 (vec_extractv8qiqi): Likewise.
27017 (vec_initv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
27018 TARGET_MMX_WITH_SSE to ix86_expand_vector_init.
27019 (vec_initv2sisi): Likewise.
27020 (vec_initv4hihi): Likewise.
27021 (vec_initv8qiqi): Likewise.
27022 (vec_setv2si): Also allow TARGET_MMX_WITH_SSE. Pass
27023 TARGET_MMX_WITH_SSE to ix86_expand_vector_set.
27024 (vec_setv4hi): Likewise.
27025 (vec_setv8qi): Likewise.
27026
27027 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27028
27029 PR target/89021
27030 * config/i386/mmx.md (MMXMODE:mov<mode>): Also allow
27031 TARGET_MMX_WITH_SSE.
27032 (MMXMODE:*mov<mode>_internal): Likewise.
27033 (MMXMODE:movmisalign<mode>): Likewise.
27034
27035 2019-05-15 Uroš Bizjak <ubizjak@gmail.com>
27036
27037 PR target/89021
27038 * config/i386/i386.md (*zero_extendsidi2): Add mmx_isa attribute.
27039 * config/i386/sse.md (sse2_cvtpi2pd): Ditto.
27040 (sse2_cvtpd2pi): Ditto.
27041 (sse2_cvttpd2pi): Ditto.
27042 (*vec_concatv2sf_sse4_1): Ditto.
27043 (*vec_concatv2sf_sse): Ditto.
27044 (*vec_concatv2si_sse4_1): Ditto.
27045 (*vec_concatv2si): Ditto.
27046 (*vec_concatv4si_0): Ditto.
27047 (*vec_concatv2di_0): Ditto.
27048
27049 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27050
27051 PR target/89021
27052 * config/i386/sse.md (abs<mode>2): Add SSE emulation.
27053
27054 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27055
27056 PR target/89021
27057 * config/i386/sse.md (ssse3_palignrdi): Changed to
27058 define_insn_and_split to support SSE emulation.
27059
27060 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27061
27062 PR target/89021
27063 * config/i386/sse.md (ssse3_psign<mode>3): Add SSE emulation.
27064
27065 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27066
27067 PR target/89021
27068 * config/i386/sse.md (ssse3_pshufbv8qi3): Changed to
27069 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
27070 SSE emulation.
27071
27072 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27073
27074 PR target/89021
27075 * config/i386/sse.md (ssse3_pmulhrswv4hi3): Require TARGET_MMX
27076 or TARGET_MMX_WITH_SSE.
27077 (*ssse3_pmulhrswv4hi3): Add SSE emulation.
27078
27079 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27080
27081 PR target/89021
27082 * config/i386/sse.md (ssse3_pmaddubsw): Add SSE emulation.
27083
27084 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27085
27086 PR target/89021
27087 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>dv2si3):
27088 Changed to define_insn_and_split to support SSE emulation.
27089
27090 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27091
27092 PR target/89021
27093 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
27094 Changed to define_insn_and_split to support SSE emulation.
27095
27096 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27097
27098 PR target/89021
27099 * config/i386/mmx.md (mmx_<emms>): Renamed to ...
27100 (*mmx_<emms>): This.
27101 (mmx_<emms>): New expander.
27102
27103 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27104
27105 PR target/89021
27106 * config/i386/mmx.md (sse2_umulv1siv1di3): Add SSE emulation
27107 support.
27108 (*sse2_umulv1siv1di3): Add SSE2 emulation.
27109
27110 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27111
27112 PR target/89021
27113 * config/i386/mmx.md (sse_movntq): Add SSE2 emulation.
27114
27115 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27116
27117 PR target/89021
27118 * config/i386/mmx.md (mmx_psadbw): Add SSE emulation.
27119
27120 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27121
27122 PR target/89021
27123 * config/i386/mmx.md (mmx_uavgv4hi3): Also check TARGET_MMX and
27124 TARGET_MMX_WITH_SSE.
27125 (*mmx_uavgv4hi3): Add SSE emulation.
27126
27127 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27128
27129 PR target/89021
27130 * config/i386/mmx.md (mmx_uavgv8qi3): Also check TARGET_MMX
27131 and TARGET_MMX_WITH_SSE.
27132 (*mmx_uavgv8qi3): Add SSE emulation.
27133
27134 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27135
27136 PR target/89021
27137 * config/i386/xmmintrin.h: Emulate MMX maskmovq with SSE2
27138 maskmovdqu for __MMX_WITH_SSE__.
27139
27140 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27141
27142 PR target/89021
27143 * config/i386/mmx.md (mmx_umulv4hi3_highpart): Also check
27144 TARGET_MMX and TARGET_MMX_WITH_SSE.
27145 (*mmx_umulv4hi3_highpart): Add SSE emulation.
27146
27147 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27148
27149 PR target/89021
27150 * config/i386/mmx.md (mmx_pmovmskb): Changed to
27151 define_insn_and_split to support SSE emulation.
27152
27153 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27154
27155 PR target/89021
27156 * config/i386/mmx.md (mmx_<code>v4hi3): Also check TARGET_MMX
27157 and TARGET_MMX_WITH_SSE.
27158 (mmx_<code>v8qi3): Likewise.
27159 (smaxmin:<code>v4hi3): New.
27160 (umaxmin:<code>v8qi3): Likewise.
27161 (smaxmin:*mmx_<code>v4hi3): Add SSE emulation.
27162 (umaxmin:*mmx_<code>v8qi3): Likewise.
27163
27164 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27165
27166 PR target/89021
27167 * config/i386/mmx.md (mmx_pinsrw): Also check TARGET_MMX and
27168 TARGET_MMX_WITH_SSE.
27169 (*mmx_pinsrw): Add SSE emulation.
27170
27171 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27172
27173 PR target/89021
27174 * config/i386/mmx.md (mmx_pextrw): Add SSE emulation.
27175
27176 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27177
27178 PR target/89021
27179 * config/i386/sse.md (sse_cvtpi2ps): Changed to
27180 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
27181 SSE emulation.
27182
27183 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27184
27185 PR target/89021
27186 * config/i386/sse.md (sse_cvtps2pi): Add SSE emulation.
27187 (sse_cvttps2pi): Likewise.
27188
27189 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27190
27191 PR target/89021
27192 * config/i386/mmx.md (mmx_pshufw): Also check TARGET_MMX and
27193 TARGET_MMX_WITH_SSE.
27194 (mmx_pshufw_1): Add SSE emulation.
27195 (*vec_dupv4hi): Changed to define_insn_and_split and also allow
27196 TARGET_MMX_WITH_SSE to support SSE emulation.
27197
27198 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27199
27200 PR target/89021
27201 * config/i386/constraints.md (Yw): New constraint.
27202 * config/i386/mmx.md (*vec_dupv2si): Changed to
27203 define_insn_and_split and also allow TARGET_MMX_WITH_SSE to
27204 support SSE emulation.
27205
27206 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27207
27208 PR target/89021
27209 * config/i386/mmx.md (mmx_eq<mode>3): Also allow
27210 TARGET_MMX_WITH_SSE.
27211 (*mmx_eq<mode>3): Also allow TARGET_MMX_WITH_SSE. Add SSE
27212 support.
27213 (mmx_gt<mode>3): Likewise.
27214
27215 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27216
27217 PR target/89021
27218 * config/i386/mmx.md (mmx_andnot<mode>3): Also allow
27219 TARGET_MMX_WITH_SSE. Add SSE support.
27220
27221 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27222
27223 PR target/89021
27224 * config/i386/mmx.md (any_logic:mmx_<code><mode>3): Also allow
27225 TARGET_MMX_WITH_SSE.
27226 (any_logic:<code><mode>3): New.
27227 (any_logic:*mmx_<code><mode>3): Also allow TARGET_MMX_WITH_SSE.
27228 Add SSE support.
27229
27230 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27231
27232 PR target/89021
27233 * config/i386/mmx.md (mmx_ashr<mode>3): Also allow
27234 TARGET_MMX_WITH_SSE. Add SSE emulation.
27235 (mmx_<shift_insn><mode>3): Likewise.
27236 (ashr<mode>3): New.
27237 (<shift_insn><mode>3): Likewise.
27238
27239 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27240
27241 PR target/89021
27242 * config/i386/mmx.md (mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE.
27243 (*mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE. Add SSE support.
27244
27245 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27246
27247 PR target/89021
27248 * config/i386/mmx.md (mmx_smulv4hi3_highpart): Also allow
27249 TARGET_MMX_WITH_SSE.
27250 (*mmx_smulv4hi3_highpart): Also allow TARGET_MMX_WITH_SSE. Add
27251 SSE support.
27252
27253 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27254
27255 PR target/89021
27256 * config/i386/mmx.md (mmx_mulv4hi3): Also allow
27257 TARGET_MMX_WITH_SSE.
27258 (mulv4hi3): New.
27259 (*mmx_mulv4hi3): Also allow TARGET_MMX_WITH_SSE. Add SSE
27260 support.
27261
27262 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27263
27264 PR target/89021
27265 * config/i386/mmx.md (MMXMODEI8): Require TARGET_SSE2 for V1DI.
27266 (plusminus:mmx_<plusminus_insn><mode>3): Check
27267 TARGET_MMX_WITH_SSE.
27268 (sat_plusminus:mmx_<plusminus_insn><mode>3): Likewise.
27269 (<plusminus_insn><mode>3): New.
27270 (*mmx_<plusminus_insn><mode>3): Add SSE emulation.
27271 (*mmx_<plusminus_insn><mode>3): Likewise.
27272
27273 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27274
27275 PR target/89021
27276 * config/i386/i386-expand.c (ix86_split_mmx_punpck): New function.
27277 * config/i386/i386-protos.h (ix86_split_mmx_punpck): New
27278 prototype.
27279 * config/i386/mmx.m (mmx_punpckhbw): Changed to
27280 define_insn_and_split to support SSE emulation.
27281 (mmx_punpcklbw): Likewise.
27282 (mmx_punpckhwd): Likewise.
27283 (mmx_punpcklwd): Likewise.
27284 (mmx_punpckhdq): Likewise.
27285 (mmx_punpckldq): Likewise.
27286
27287 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27288 Uros Bizjak <ubizjak@gmail.com>
27289
27290 PR target/89021
27291 * config/i386/i386-expand.c (ix86_move_vector_high_sse_to_mmx):
27292 New function.
27293 (ix86_split_mmx_pack): Likewise.
27294 * config/i386/i386-protos.h (ix86_move_vector_high_sse_to_mmx):
27295 New prototype.
27296 (ix86_split_mmx_pack): Likewise.
27297 * config/i386/i386.md (mmx_isa): New.
27298 (enabled): Also check mmx_isa.
27299 * config/i386/mmx.md (any_s_truncate): New code iterator.
27300 (s_trunsuffix): New code attr.
27301 (mmx_packsswb): Removed.
27302 (mmx_packssdw): Likewise.
27303 (mmx_packuswb): Likewise.
27304 (mmx_pack<s_trunsuffix>swb): New define_insn_and_split to emulate
27305 MMX packsswb/packuswb with SSE2.
27306 (mmx_packssdw): Likewise.
27307 * config/i386/predicates.md (register_mmxmem_operand): New.
27308
27309 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
27310
27311 PR target/89021
27312 * config/i386/i386-c.c (ix86_target_macros_internal): Define
27313 __MMX_WITH_SSE__ for TARGET_MMX_WITH_SSE.
27314 * config/i386/i386.c (ix86_set_reg_reg_cost): Add support for
27315 TARGET_MMX_WITH_SSE with VALID_MMX_REG_MODE.
27316 (ix86_vector_mode_supported_p): Likewise.
27317 * config/i386/i386.h (TARGET_MMX_WITH_SSE): New.
27318
27319 2019-05-15 Martin Liska <mliska@suse.cz>
27320
27321 PR middle-end/90478
27322 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
27323 Check for overflow.
27324
27325 2019-05-15 Richard Biener <rguenther@suse.de>
27326
27327 * tree-into-ssa.c (pass_build_ssa::execute): Run
27328 update_address_taken before going into SSA.
27329
27330 2019-05-15 Richard Biener <rguenther@suse.de>
27331
27332 * tree-pretty-print.c (dump_generic_node): Dump BIT_FIELD_REF
27333 as __BIT_FIELD_REF with type with -gimple.
27334
27335 2019-05-15 Vladislav Ivanishin <vlad@ispras.ru>
27336
27337 * tree-ssa-uninit.c (is_value_included_in): Remove is_unsigned and merge
27338 semantically equivalent branches (left over after prior refactorings).
27339
27340 2019-05-15 Richard Biener <rguenther@suse.de>
27341
27342 PR tree-optimization/88828
27343 * tree-ssa-forwprop.c (simplify_vector_constructor): Fix
27344 bogus check.
27345
27346 2019-05-14 Richard Biener <rguenther@suse.de>
27347
27348 * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR
27349 as __VIEW_CONVERT with -gimple.
27350
27351 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
27352
27353 PR target/82920
27354 * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
27355 Darwin.
27356
27357 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
27358
27359 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Merge with following
27360 define_split to become a define_insn_and_split.
27361
27362 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
27363
27364 * config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change
27365 arguments.
27366 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Change arguments.
27367 * config/rs6000/rs6000.md (epilogue_type): New define_enum.
27368 (sibcall_epilogue): Adjust.
27369 (epilogue): Adjust.
27370
27371 2019-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27372
27373 * config.gcc: Move *-*-solaris2.10* from obsolete configurations
27374 to unsupported ones.
27375 Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*.
27376 * config.host: Likewise.
27377 * config/i386/sol2.h (ASM_COMMENT_START): Remove.
27378 * config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ &&
27379 __svr4__]: Remove "brand" fallback.
27380 [!KSTAT_DATA_STRING]: Remove.
27381 * configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]*
27382 to *-*-solaris2*.
27383 (comdat_group): Likewise.
27384 (set_have_as_tls): Likewise.
27385 (gcc_cv_target_dl_iterate_phdr): Likewise.
27386 (gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround.
27387 (gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround.
27388 * configure: Regenerate.
27389 * doc/install.texi: Simplify Solaris target triplets.
27390 (Specific, i?86-*-solaris2*): Remove Solaris 10 references.
27391 (Specific, *-*-solaris2*): Document Solaris 10 removal.
27392 Remove Solaris 10 references.
27393 Remove obsolete Solaris bug reference.
27394 (Specific, sparc-sun-solaris2.10): Remove.
27395
27396 2019-05-14 Uroš Bizjak <ubizjak@gmail.com>
27397
27398 * config/i386/i386.md (any_div): New code iterator.
27399 (paired_mod): New code attribute.
27400 (sgnprefix): Handle DIV and UDIV RTXes.
27401 (u): Ditto.
27402 (<u>divmod<mode>4): Macroize expander from divmod<mode>4
27403 and udivmod<mode>4 patterns using any_div code iterator.
27404 (divmod splitters): Macroize splitters using any_div code iterator.
27405 (*udivmodsi4_pow2_zext_1): Use exactl_log2 in insn condition.
27406 (*udivmodsi4_pow2_zext_2): Ditto.
27407 (*<u>divmod<mode>4_noext): Macroize insn from *divmod<mode>4_noext
27408 and *udivmod<mode>4_noext patterns using any_div code iterator.
27409 (*<u>divmod<mode>4_noext_zext_1): Macroize insn from
27410 *divmod<mode>4_noext_zext_1 and *udivmod<mode>4_noext_zext_1
27411 patterns using any_div code iterator.
27412 (*<u>divmod<mode>4_noext_zext_2): Macroize insn from
27413 *divmod<mode>4_noext_zext_2 and *udivmod<mode>4_noext_zext_2
27414 patterns using any_div code iterator.
27415 (<u>divmodhiqi3): Macroize insn from divmodhiqi3 and
27416 udivmodhiqi3 patterns using any_extend code iterator.
27417
27418 2019-05-14 Richard Biener <rguenther@suse.de>
27419 H.J. Lu <hongjiu.lu@intel.com>
27420
27421 PR tree-optimization/88828
27422 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
27423 permuting in a single non-constant element not extracted
27424 from a vector.
27425
27426 2019-05-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
27427
27428 * internal-fn.def (SIGNBIT): New.
27429 * config/aarch64/aarch64-simd.md (signbitv2sf2): New expand
27430 defined.
27431 (signbitv4sf2): Likewise.
27432
27433 2019-05-14 Chenghua Xu <paul.hua.gm@gmail.com>
27434
27435 PR target/90357
27436 * config/mips/mips.c (mips_split_move): Skip forward SRC into
27437 next insn when the SRC reg is dead.
27438
27439 2019-05-14 Bin Cheng <bin.cheng@linux.alibaba.com>
27440
27441 * gimple-ssa-strength-reduction.c (lookup_cand): Adjust index by 1.
27442 (alloc_cand_and_find_basis): Ditto.
27443 (backtrace_base_for_ref, create_mul_ssa_cand): Remove if-then-else.
27444 (create_mul_imm_cand, create_add_ssa_cand): Ditto.
27445 (create_add_imm_cand, slsr_process_cast): Ditto.
27446 (slsr_process_copy, replace_mult_candidate): Ditto.
27447 (replace_rhs_if_not_dup, replace_one_candidate): Ditto.
27448 (dump_cand_vec, analyze_candidates_and_replace): Skip NULL element.
27449 (pass_strength_reduction::execute): Init the first NULL element.
27450
27451 2019-05-13 Nathan Sidwell <nathan@acm.org>
27452
27453 * gcc.c (execute): Simplify cond-expr into if. Reformat comment.
27454 (run_attempt): Reformat line break.
27455
27456 2019-05-13 David Edelsohn <dje.gcc@gmail.com>
27457
27458 PR target/90418
27459 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH
27460 data registers in sibcall epilogues.
27461 Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
27462
27463 2019-05-13 Uroš Bizjak <ubizjak@gmail.com>
27464
27465 PR target/89221
27466 * configure.ac (--enable-frame-pointer):
27467 Disable by default for cygwin and mingw.
27468 * configure: Regenerate.
27469
27470 2019-05-13 Nathan Sidwell <nathan@acm.org>
27471
27472 * dwarf2out.c (breakout_comdat_types): Move comment to correct
27473 piece of code.
27474 (const_ok_for_output_1): Balance parens around #if/#else/#endif
27475 (gen_member_die): Move abstract origin check earlier. Only VARs
27476 can be static_inline_p. Simplify splicing control flow.
27477
27478 2019-05-13 Richard Biener <rguenther@suse.de>
27479
27480 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
27481 VIEW_CONVERT_EXPR.
27482 (vect_build_slp_tree_1): Likewise.
27483
27484 2019-05-13 Richard Biener <rguenther@suse.de>
27485
27486 PR tree-optimization/90402
27487 * tree-if-conv.c (tree_if_conversion): Value number only
27488 the loop body by making the latch an exit of the region
27489 as well.
27490 * tree-ssa-sccvn.c (process_bb): Add flag whether to skip
27491 processing PHIs.
27492 (do_rpo_vn): Deal with multiple edges into the entry block
27493 that are not backedges inside the region by skipping PHIs
27494 of the entry block.
27495
27496 2019-05-13 Richard Biener <rguenther@suse.de>
27497
27498 PR tree-optimization/90316
27499 * tree-ssa-pre.c (insert_aux): Fold into ...
27500 (insert): ... this function. Use a RPO walk to reduce the
27501 number of required iterations.
27502
27503 2019-05-13 Martin Liska <mliska@suse.cz>
27504
27505 PR tree-optimization/90416
27506 * tree-vect-stmts.c (vect_check_load_store_mask): Concatenate
27507 string instead of passing the second part as va_arg argument.
27508
27509 2019-05-13 Martin Liska <mliska@suse.cz>
27510
27511 PR gcov-profile/90380
27512 * gcov.c (handle_cycle): Do not support zero cycle count,
27513 it should not be possible.
27514 (path_contains_zero_cycle_arc): New function.
27515 (circuit): Ignore zero cycle arc counts.
27516
27517 2019-05-13 Martin Liska <mliska@suse.cz>
27518
27519 PR gcov-profile/90380
27520 * gcov.c (enum loop_type): Remove the enum and
27521 the operator.
27522 (handle_cycle): Assert that we should not reach
27523 a negative count.
27524 (circuit): Use loop_found instead of a tri-state loop_type.
27525 (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't
27526 happen.
27527
27528 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
27529
27530 PR target/82920
27531 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
27532 (ix86_output_indirect_branch_via_reg): Use output mechanism
27533 accounting for __USER_LABEL_PREFIX__.
27534 (ix86_output_indirect_branch_via_push): Likewise.
27535 (ix86_output_function_return): Likewise.
27536 (ix86_output_indirect_function_return): Likewise.
27537
27538 2019-05-12 Richard Sandiford <richard.sandiford@arm.com>
27539
27540 * doc/md.texi: Document use of code attributes in rtx patterns.
27541 * read-md.h (rtx_reader::rtx_alloc_for_name): New member function.
27542 * read-rtl.c (find_code): Split out search loops into...
27543 (maybe_find_code): ...this new function.
27544 (check_code_iterator): Make the error message more informative.
27545 (check_code_attribute): New function.
27546 (rtx_reader::rtx_alloc_for_name): Likewise.
27547 (rtx_reader::read_rtx_code): Use rtx_alloc_for_name.
27548 * config/aarch64/predicates.md (aarch64_smin, aarch64_umin): Delete.
27549 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Use
27550 <max_opp> directly as an rtx code instead of via a match_operator.
27551 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Likewise.
27552 (<su>abd<mode>_3): Update accordingly.
27553
27554 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
27555
27556 * config/rs6000/rs6000.c (debug_stack_info): When -mdebug=stack
27557 is given, print the state of the EH "save world" computation for
27558 Darwin.
27559
27560 2019-05-11 Jakub Jelinek <jakub@redhat.com>
27561
27562 PR c++/59813
27563 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add
27564 EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
27565
27566 2019-05-11 Uroš Bizjak <ubizjak@gmail.com>
27567
27568 * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm):
27569 Use pinsrd for TARGET_SSE4_1.
27570 * config/i386/sse.md (movdi_to_sse): Ditto.
27571
27572 2019-05-10 Richard Biener <rguenther@suse.de>
27573
27574 * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id.
27575 (do_rpo_vn): Initialize next_value_id.
27576
27577 2019-05-10 Martin Liska <mliska@suse.cz>
27578
27579 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
27580 Fix plural form.
27581
27582 2019-05-10 Jakub Jelinek <jakub@redhat.com>
27583
27584 PR tree-optimization/90385
27585 * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME
27586 arguments of the exit phis.
27587
27588 PR c++/90383
27589 * tree-inline.h (struct copy_body_data): Add do_not_fold member.
27590 * tree-inline.c (remap_gimple_op_r): Avoid folding expressions if
27591 id->do_not_fold.
27592 (copy_tree_body_r): Likewise.
27593 (copy_fn): Set id.do_not_fold to true.
27594
27595 2019-05-10 Martin Liska <mliska@suse.cz>
27596
27597 * config/i386/i386-expand.c (ix86_expand_floorceildf_32):
27598 Reapply changes from r269790.
27599
27600 2019-05-10 Martin Liska <mliska@suse.cz>
27601
27602 PR middle-end/90340
27603 * doc/invoke.texi: New params.
27604 * params.def (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SIZE): New.
27605 (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SPEED): Likewise.
27606 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
27607 Use it.
27608 * tree-switch-conversion.h (struct jump_table_cluster):
27609 Likewise.
27610
27611 2019-05-09 Segher Boessenkool <segher@kernel.crashing.org>
27612
27613 * combine.c (combine_simplify_rtx): Don't make IF_THEN_ELSE RTL.
27614
27615 2019-05-09 Bill Schmidt <wschmidt@linux.ibm.com>
27616
27617 * doc/loop.texi: Remove reference to FOR_EACH_LOOP_BREAK.
27618
27619 2019-05-09 Alexander Monakov <amonakov@ispras.ru>
27620
27621 PR rtl-optimization/88879
27622 * sel-sched.c (sel_target_adjust_priority): Remove assert.
27623
27624 2019-05-09 Richard Earnshaw <rearnsha@arm.com>
27625
27626 PR target/90405
27627 * config/arm/arm.c (callee_saved_reg_p): Move before
27628 thumb_find_work_register.
27629 (thumb1_prologue_unused_call_clobbered_lo_regs): Move before
27630 thumb_find_work_register. Only call df_get_live_out once.
27631 (thumb1_epilogue_unused_call_clobbered_lo_regs): Likewise.
27632 (thumb_find_work_register): Use
27633 thumb1_prologue_unused_call_clobbered_lo_regs instead of ad hoc
27634 algorithms to locate a spare call clobbered reg.
27635
27636 2019-05-09 Martin Liska <mliska@suse.cz>
27637
27638 * gimple-pretty-print.c (dump_binary_rhs): Dump MIN_EXPR
27639 and MAX_EXPR in GIMPLE FE format.
27640
27641 2019-05-09 Martin Liska <mliska@suse.cz>
27642
27643 * tree-cfg.c (dump_function_to_file): Dump entry BB count.
27644 * gimple-pretty-print.c (dump_gimple_bb_header):
27645 Dump BB count.
27646 (pp_cfg_jump): Dump edge probability.
27647 * profile-count.c (profile_quality_as_string): Simplify
27648 with a static array.
27649 (parse_profile_quality): New function.
27650 (profile_count::dump): Simplify with a static array.
27651 (profile_count::from_gcov_type): Add new argument.
27652 * profile-count.h (parse_profile_quality): Likewise.
27653 * predict.h (set_hot_bb_threshold): New.
27654 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
27655 New param.
27656 * predict.c (get_hot_bb_threshold): Set from the new param.
27657 (set_hot_bb_threshold): New.
27658
27659 2019-05-09 Richard Biener <rguenther@suse.de>
27660
27661 PR tree-optimization/90395
27662 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not
27663 rewrite vector stores that throw internally.
27664
27665 2019-05-09 Thomas Schwinge <thomas@codesourcery.com>
27666
27667 * cif-code.def (CHKP): Remove.
27668
27669 PR target/89221
27670 * configure.ac (--enable-frame-pointer): Disable by default for
27671 GNU systems.
27672 * configure: Regenerate.
27673
27674 2019-05-09 Alan Modra <amodra@gmail.com>
27675
27676 PR target/89271
27677 * config/rs6000/rs6000.h (enum reg_class, REG_CLASS_NAMES),
27678 (REG_CLASS_CONTENTS): Add GEN_OR_VSX_REGS class.
27679 * config/rs6000/rs6000.c (rs6000_register_move_cost): Correct
27680 cost for general <-> vsx when direct moves are available.
27681 Cost union classes at minimal cost for any reg in the class.
27682 Correct calculation for moves between vsx, float, and altivec.
27683 Don't return a low cost for moves between special regs. Don't
27684 use hard coded register numbers.
27685 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define.
27686 (rs6000_ira_change_pseudo_allocno_class): New function.
27687 * config/rs6000/rs6000.md (movsi_internal1, mov<mode>_internal),
27688 (movdi_internal32, movdi_internal64): Remove '*' from vsx register
27689 alternatives.
27690 (movsi_internal1): Don't disparage vector alternatives.
27691 (mov<mode>_internal): Likewise, excepting alternative that
27692 will be split.
27693 * config/rs6000/vsx.md (vsx_splat_<mode>_reg): Don't disparage
27694 we <- b alternative.
27695
27696 2019-05-08 Jakub Jelinek <jakub@redhat.com>
27697
27698 PR c++/59813
27699 PR tree-optimization/89060
27700 * tree-ssa-live.h (live_vars_map): New typedef.
27701 (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare.
27702 * tree-ssa-live.c: Include gimple-walk.h and cfganal.h.
27703 (struct compute_live_vars_data): New type.
27704 (compute_live_vars_visit, compute_live_vars_1, compute_live_vars,
27705 live_vars_at_stmt, destroy_live_vars): New functions.
27706 * tree-tailcall.c: Include tree-ssa-live.h.
27707 (live_vars, live_vars_vec): New global variables.
27708 (find_tail_calls): Perform variable life analysis before punting.
27709 (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec.
27710 * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest
27711 member.
27712 * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument.
27713 Perform variable life analysis to select variables that really need
27714 clobbers added.
27715 (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here,
27716 instead set id->eh_landing_pad_dest and assert it is the same.
27717 (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL.
27718
27719 2019-05-08 Mihail Ionescu <mihail.ionescu@arm.com>
27720 Richard Earnshaw <rearnsha@arm.com>
27721
27722 PR target/88167
27723 * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
27724 function.
27725 (thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
27726 (thumb1_compute_save_core_reg_mask): Don't force a spare work
27727 register if both the epilogue and prologue can use call-clobbered
27728 regs.
27729 (thumb1_unexpanded_epilogue): Use
27730 thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for
27731 picking temporaries for restoring high regs to match that of the
27732 prologue where possible.
27733 (thumb1_expand_prologue): Add any usable call-clobbered low registers to
27734 the list of work registers. Detect if the return address is still live
27735 at the end of the prologue and avoid using it for a work register if so.
27736 If the return address is not live, add LR to the list of pushable regs
27737 after the first pass.
27738
27739 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
27740
27741 PR tree-optimization/90078
27742 * tree-ssa-loop-ivopts.c (inttypes.h): Include new header file.
27743 (INFTY): Increase the value for infinite cost.
27744 (struct comp_cost): Promote type of members to int64_t.
27745 (infinite_cost): Don't set complexity in initialization.
27746 (comp_cost::operator +,-,+=,-+,/=,*=): Assert when cost computation
27747 overflows to infinite_cost.
27748 (adjust_setup_cost): Promote type of parameter and cost computation
27749 to int64_t.
27750 (struct ainc_cost_data, struct iv_ca): Promote type of member to
27751 int64_t.
27752 (get_scaled_computation_cost_at, determine_iv_cost): Promote type of
27753 cost computation to int64_t.
27754 (determine_group_iv_costs, iv_ca_dump, find_optimal_iv_set): Use
27755 int64_t's format specifier in dump.
27756
27757 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
27758
27759 PR tree-optimization/90240
27760 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Scale cost
27761 with respect to scaling factor pre-computed for each basic block.
27762 (try_improve_iv_set): Return bool if best_cost equals to iv_ca cost.
27763 (find_optimal_iv_set_1): Free iv_ca set if it has infinite_cost.
27764 (COST_SCALING_FACTOR_BOUND, determine_scaling_factor): New.
27765 (tree_ssa_iv_optimize_loop): Call determine_scaling_factor. Extend
27766 live range for array of loop's basic blocks. Cleanup aux field of
27767 loop's basic blocks.
27768
27769 2019-05-08 Jakub Jelinek <jakub@redhat.com>
27770
27771 PR tree-optimization/90356
27772 * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible.
27773
27774 2019-05-07 Wei Xiao <wei3.xiao@intel.com>
27775
27776 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET
27777 OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New.
27778 (OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET.
27779 (ix86_handle_option): Handle -mavx512bf16.
27780 * config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h
27781 to extra_headers.
27782 * config/i386/avx512bf16vlintrin.h: New.
27783 * config/i386/avx512bf16intrin.h: New.
27784 * config/i386/cpuid.h (bit_AVX512BF16): New.
27785 * config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16.
27786 * config/i386/i386-builtin-types.def: Add new types.
27787 * config/i386/i386-builtin.def: Add new builtins.
27788 * config/i386/i386-c.c (ix86_target_macros_internal): Define
27789 __AVX512BF16__.
27790 * config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16.
27791 (ix86_option_override_internal): Handle BF16.
27792 (ix86_valid_target_attribute_inner_p): Ditto.
27793 * config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto.
27794 * config/i386/i386-builtin.c (enum processor_features): Add
27795 F_AVX512BF16.
27796 (static const _isa_names_table isa_names_table): Ditto.
27797 * config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New.
27798 (PTA_AVX512BF16): Ditto.
27799 * config/i386/i386.opt: Add -mavx512bf16.
27800 * config/i386/immintrin.h: Include avx512bf16intrin.h
27801 and avx512bf16vlintrin.h.
27802 * config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>,
27803 avx512f_cvtneps2bf16_<mode><mask_name>,
27804 avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns.
27805 * config/i386/subst.md (mask_half): Add new subst.
27806 * doc/invoke.texi: Document -mavx512bf16.
27807
27808 2019-05-07 Segher Boessenkool <segher@kernel.crashing.org>
27809
27810 * config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr):
27811 Delete declaration.
27812 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete.
27813 (rs6000_debug_legitimize_reload_address): Delete.
27814 (rs6000_legitimize_reload_address_ptr): Delete.
27815 (rs6000_option_override_internal): Adjust.
27816 (mem_operand_gpr): Adjust comment.
27817 (legitimate_lo_sum_address_p): Ditto.
27818 (rs6000_legitimize_reload_address): Delete.
27819 (rs6000_debug_legitimize_reload_address): Delete.
27820 * config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete.
27821
27822 2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org>
27823
27824 PR target/89765
27825 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
27826 In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
27827 to compute vector element selector for both constant and variable
27828 operands.
27829
27830 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
27831
27832 * config/i386/i386.md (cvt_mnemonic): New mode attribute.
27833 (ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and
27834 ashrdi3_cvt using SWI48 mode iterator.
27835
27836 2019-05-07 Alejandro Martinez <alejandro.martinezvicente@arm.com>
27837
27838 * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand.
27839 (aarch64_<su>abd<mode>_3): Likewise.
27840 (*aarch64_<su>abd<mode>_3): New define_insn.
27841 (<sur>sad<vsi2qi>): New define_expand.
27842 * config/aarch64/iterators.md: Added MAX_OPP attribute.
27843 * tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR.
27844 (build_vect_cond_expr): Likewise.
27845
27846 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
27847
27848 * cfgexpand.c (asm_clobber_reg_is_valid): Reject
27849 clobbers outside of accessible_reg_set.
27850 * config/i386/i386.c (ix86_conditional_register_usage):
27851 Disable register sets by clearing corresponding bits in
27852 accessible_reg_set. Do not set corresponding bits in fixed_regs,
27853 call_used_regs and don't clear corresponding reg_names array members.
27854
27855 2019-05-07 Richard Biener <rguenther@suse.de>
27856
27857 * tree-vect-stmts.c (vect_is_simple_cond): When vectype is
27858 not specified still compute a comp_vectype for invariant
27859 compares.
27860
27861 2019-05-07 Richard Biener <rguenther@suse.de>
27862
27863 PR tree-optimization/90316
27864 * tree-ssa-pre.c (translate_vuse_through_block): When
27865 same_valid is NULL do not bother to search for a virtual
27866 PHI continuation.
27867 (phi_translate_1): When operands changed we cannot keep
27868 the same value-number so do not bother to ask whether
27869 that's possible from translate_vuse_through_block.
27870
27871 2019-05-07 Martin Liska <mliska@suse.cz>
27872
27873 * bitmap.c (bitmap_register): Come up with
27874 alloc_descriptor_max_uid and assign it for
27875 a new bitmap.
27876 (register_overhead): Use get_descriptor as
27877 a descriptor.
27878 (release_overhead): New.
27879 (bitmap_elem_to_freelist): Call it.
27880 (bitmap_elt_clear_from): Likewise.
27881 (bitmap_obstack_free): Likewise.
27882 (bitmap_move): Sensitively release memory.
27883 * bitmap.h (struct GTY): Add alloc_descriptor and padding.
27884 (bitmap_initialize): Initialize alloc_descriptor to zero.
27885 * tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move.
27886
27887 2019-05-07 Richard Biener <rguenther@suse.de>
27888
27889 * tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever
27890 we build a SLP node. Remove max_size and limiting.
27891 (vect_analyze_slp_instance): Record and dump size of the SLP graph.
27892
27893 2019-05-07 Richard Biener <rguenther@suse.de>
27894
27895 PR tree-optimization/90316
27896 * tree-ssa-alias.h (get_continuation_for_phi): Take walking
27897 limit by reference.
27898 (walk_non_aliased_vuses): Take walking limit argument.
27899 * tree-ssa-alias.c (maybe_skip_until): Take limit and abort
27900 walking if it is reached instead of just counting.
27901 (get_continuation_for_phi): Likewise.
27902 (walk_non_aliased_vuses): Likewise, instead of leaving counter
27903 limiting to the callback.
27904 * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust.
27905 (vn_reference_lookup_3): Likewise.
27906 (vn_reference_lookup_pieces): Likewise.
27907 (vn_reference_lookup): Likewise.
27908 * tree-ssa-pre.c (translate_vuse_through_block): Limit walking.
27909 * tree-ssa-scopedtables.c (vuse_eq): Adjust.
27910 (avail_exprs_stack::lookup_avail_expr): Likewise.
27911
27912 2019-05-07 Jan Hubicka <hubicka@ucw.cz>
27913
27914 * tree-ssa-alias.c (aliasing_component_refs_p): Continue looking
27915 for comparaible types in the second direction even if first one
27916 hits incomparable type.
27917
27918 2019-05-07 Richard Biener <rguenther@suse.de>
27919
27920 PR lto/90369
27921 * lto-wrapper.c (debug_objcopy): Use the original filename
27922 including archive offset for the filename used for -save-temps.
27923
27924 2019-05-07 Li Jia He <helijia@linux.ibm.com>
27925
27926 * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
27927 detection.
27928
27929 2019-05-06 H.J. Lu <hongjiu.lu@intel.com>
27930 Hongtao Liu <hongtao.liu@intel.com>
27931
27932 PR target/89750
27933 PR target/86444
27934 * config/i386/i386-expand.c (ix86_expand_sse_comi_round):
27935 Modified, original implementation isn't correct.
27936
27937 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
27938
27939 * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO)
27940 (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO)
27941 (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO)
27942 (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO)
27943 (FRAME_POINTER_REGNUM): Change numbering.
27944 * config/rs6000/rs6000.c (rs6000_reg_names): Adjust.
27945 (alt_reg_names): Adjust.
27946 (rs6000_conditional_register_usage): Don't mark hard register 64 as
27947 fixed.
27948 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
27949 (DWARF_FRAME_REGISTERS): Delete.
27950 (DWARF2_FRAME_REG_OUT): Fix whitespace.
27951 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
27952 Adjust.
27953 (REG_ALLOC_ORDER): Adjust.
27954 (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust.
27955 (REG_CLASS_CONTENTS): Adjust.
27956 (RETURN_ADDR_RTX): Change comment.
27957 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM
27958 instead of 67.
27959 (REGISTER_NAMES): Adjust.
27960 (ADDITIONAL_REGISTER_NAMES): Adjust.
27961 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
27962
27963 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
27964
27965 * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO):
27966 Delete.
27967 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
27968 (DWARF_FRAME_REGISTERS): Adjust.
27969 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
27970 Adjust.
27971 (REG_ALLOC_ORDER): Adjust.
27972 (enum reg_class): Delete SPR_REGS.
27973 (REG_CLASS_NAMES): Delete SPR_REGS.
27974 (REG_CLASS_CONTENTS): Delete SPR_REGS. Adjust for deleted TM regs.
27975 (REGISTER_NAMES): Adjust.
27976 (ADDITIONAL_REGISTER_NAMES): Adjust.
27977 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
27978 * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust.
27979 * config/rs6000/predicates.md (htm_spr_reg_operand): Delete.
27980 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust.
27981 (htm_spr_regno): Delete.
27982 (htm_expand_builtin): Adjust: the HTM builtins now have one fewer
27983 argument.
27984 (rs6000_dbx_register_number): Adjust.
27985
27986 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
27987
27988 * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete.
27989
27990 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
27991
27992 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle
27993 FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ).
27994
27995 2019-05-06 Jakub Jelinek <jakub@redhat.com>
27996
27997 PR tree-optimization/88709
27998 PR tree-optimization/90271
27999 * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter.
28000 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle
28001 non-clobber CONSTRUCTORs with no elts. Remove useless tmp_int
28002 variable.
28003 (imm_store_chain_info::coalesce_immediate_stores): Punt if the size
28004 of the store merging group is larger than
28005 PARAM_STORE_MERGING_MAX_SIZE parameter.
28006 (split_group): Add bzero_first argument. If set, always emit first
28007 the first store which must be = {} of the whole area and then for the
28008 rest of the stores consider all zero bytes as paddings.
28009 (imm_store_chain_info::output_merged_store): Check if first store
28010 is = {} of the whole area and if yes, determine which setting of
28011 bzero_first for split_group gives smaller number of stores. Adjust
28012 split_group callers.
28013 (lhs_valid_for_store_merging_p): Allow decls.
28014 (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with
28015 no elts.
28016 (pass_store_merging::process_store): Likewise.
28017
28018 2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org>
28019
28020 PR target/89424
28021 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
28022 handling of V1TImode.
28023
28024 2019-05-06 Uroš Bizjak <ubizjak@gmail.com>
28025
28026 PR target/89221
28027 * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld
28028 and enable_frame_pointer ...
28029 * configure.ac: ... here. Update help strings for
28030 --enable-frame-pointer.
28031 * configure: Regenerate.
28032 * config/i386/i386-options.c (ix86_option_override_internal): Remove
28033 USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead.
28034 * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove.
28035 (USE_X86_64_FRAME_POINTER): Ditto.
28036
28037 2019-05-06 Martin Liska <mliska@suse.cz>
28038
28039 * config.gcc: Append to target_gtfiles and fix indentation.
28040
28041 2019-05-06 Richard Biener <rguenther@suse.de>
28042
28043 PR tree-optimization/90358
28044 * tree-vect-stmts.c (get_group_load_store_type): Properly
28045 detect unused upper half of load.
28046 (vectorizable_load): Likewise.
28047
28048 2019-05-06 Richard Biener <rguenther@suse.de>
28049
28050 PR tree-optimization/88828
28051 * tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from...
28052 (simplify_vector_constructor): ...here. Handle constants in
28053 the constructor.
28054
28055 2019-05-06 Richard Biener <rguenther@suse.de>
28056
28057 PR tree-optimization/90328
28058 * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
28059 * tree-data-ref.c (dr_may_alias_p): Check whether the clique
28060 is valid in the loop nest before using it.
28061 (initialize_data_dependence_relation): Adjust.
28062 * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
28063 loop as loop-nest to dr_may_alias_p.
28064
28065 2019-05-06 Richard Biener <rguenther@suse.de>
28066
28067 * dwarf2out.c (mem_loc_descriptor): Initialize int_mode.
28068
28069 2019-05-06 Richard Biener <rguenther@suse.de>
28070
28071 PR tree-optimization/90316
28072 * tree-ssa-alias.c (maybe_skip_until): Pass in target BB,
28073 compute target on demand.
28074 (get_continuation_for_phi): Remove code walking stmts to
28075 get to a target virtual operand which could end up being
28076 quadratic.
28077
28078 2019-05-06 Martin Liska <mliska@suse.cz>
28079
28080 PR sanitizer/90312
28081 * config/i386/i386-options.c (ix86_option_override_internal): Error only
28082 when -mabi is selected to a non-default version.
28083
28084 2019-05-06 Hrishikesh Kulkarni <hrishikeshparag@gmail.com>
28085 Martin Liska <mliska@suse.cz>
28086
28087 * Makefile.in: Add lto-dump.texi.
28088 * cgraph.h: Add new functions get_visibility_string and
28089 get_symtab_type_string.
28090 * doc/gcc.texi: Include lto-dump section.
28091 * doc/lto-dump.texi: New file.
28092 * dumpfile.c (dump_switch_p_1): Use parse_dump_option.
28093 (parse_dump_option): Factor out this function.
28094 * dumpfile.h (enum dump_flag): Add new value TDF_ERROR.
28095 (parse_dump_option): Export the function.
28096 * symtab.c (symtab_node::get_visibility_string): New function.
28097 (symtab_node::get_symtab_type_string): Likewise.
28098
28099 2019-05-06 Martin Liska <mliska@suse.cz>
28100
28101 * config/i386/i386-builtins.c: New file.
28102 * config/i386/i386-builtins.h: New file.
28103 * config/i386/i386-expand.c: New file.
28104 * config/i386/i386-expand.h: New file.
28105 * config/i386/i386-features.c: New file.
28106 * config/i386/i386-features.h: New file.
28107 * config/i386/i386-options.c: New file.
28108 * config/i386/i386-options.h: New file.
28109 * config.gcc: Add new files into extra_objs and
28110 target_gtfiles.
28111 * config/i386/i386.c: Split content of the file
28112 into newly introduced files.
28113 * config/i386/i386.h: Declare common variables
28114 and macros.
28115 * config/i386/t-i386: Define dependencies for new files.
28116
28117 2019-05-03 Richard Earnshaw <rearnsha@arm.com>
28118
28119 PR target/89400
28120 * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
28121 Restrict 'all' variant to 32-bit configurations.
28122 (unaligned_loadhiu): Likewise.
28123 (unaligned_storehi): Likewise.
28124 (unaligned_storesi): Likewise.
28125 (unaligned_loadhis): Disable when compiling for thumb1.
28126
28127 2019-05-03 Marc Glisse <marc.glisse@inria.fr>
28128
28129 PR tree-optimization/90269
28130 * tree-loop-distribution.c (find_seed_stmts_for_distribution):
28131 Ignore clobbers.
28132
28133 2019-05-03 Martin Liska <mliska@suse.cz>
28134
28135 * hash-map.h: Add is_empty function.
28136 * hash-set.h: Likewise.
28137 * hash-table.h: Likewise.
28138 * dwarf2out.c (dwarf2out_finish): Use is_empty instead of
28139 elements () == 0 (and similar usages).
28140 * gimple-ssa-store-merging.c (pass_store_merging::terminate_and_process_all_chains): Likewise.
28141 * gimplify.c (gimplify_bind_expr): Likewise.
28142 (gimplify_switch_expr): Likewise.
28143 * hash-map-tests.c (test_map_of_strings_to_int): Likewise.
28144 * ipa-icf.c (sem_item_optimizer::remove_symtab_node): Likewise.
28145 * postreload-gcse.c (dump_hash_table): Likewise.
28146 (gcse_after_reload_main): Likewise.
28147 * predict.c (combine_predictions_for_bb): Likewise.
28148 * tree-parloops.c (reduction_phi): Likewise.
28149 (separate_decls_in_region): Likewise.
28150 (transform_to_exit_first_loop): Likewise.
28151 (gen_parallel_loop): Likewise.
28152 (gather_scalar_reductions): Likewise.
28153 (try_create_reduction_list): Likewise.
28154 * var-tracking.c (dump_vars): Likewise.
28155 (emit_notes_for_changes): Likewise.
28156 (vt_emit_notes): Likewise.
28157
28158 2019-05-03 Richard Biener <rguenther@suse.de>
28159
28160 PR tree-optimization/90316
28161 * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries
28162 before running VN.
28163
28164 2019-05-03 Richard Biener <rguenther@suse.de>
28165
28166 * tree-vect-stmts.c (get_group_load_store_type): Avoid
28167 peeling for gaps by loading only lower halves of vectors
28168 if possible.
28169 (vectorizable_load): Likewise.
28170
28171 2019-05-03 Richard Biener <rguenther@suse.de>
28172
28173 PR middle-end/89518
28174 * match.pd: Add pattern to optimize (A / B) * B + (A % B) to A.
28175
28176 2019-05-03 Richard Biener <rguenther@suse.de>
28177
28178 PR middle-end/87314
28179 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)):
28180 Handle STRING_CST vs DECL or STRING_CST.
28181
28182 2019-05-03 Richard Biener <rguenther@suse.de>
28183
28184 PR tree-optimization/88963
28185 * tree-ssa-forwprop.c (pass_forwprop::execute): Rewrite
28186 vector loads feeding only BIT_FIELD_REFs to component
28187 loads. Rewrite stores fed by CONSTRUCTORs to component
28188 stores.
28189
28190 2019-05-03 Jakub Jelinek <jakub@redhat.com>
28191
28192 * opts.h (finish_options): Remove lang_mask argument.
28193 (print_help, help_option_argument): Declare.
28194 * opts.c (print_help): Remove forward declaration, no longer static.
28195 (finish_options): Remove lang_mask argument, don't call print_help
28196 here.
28197 * opts-global.c (decode_options): Adjust finish_option caller, call
28198 print_help here.
28199
28200 PR tree-optimization/90303
28201 * ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use
28202 TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode.
28203
28204 2019-05-03 Richard Biener <rguenther@suse.de>
28205
28206 PR tree-optimization/89698
28207 * gimple-fold.c (canonicalize_constructor_val): Early out
28208 for constants, handle unfolded INTEGER_CSTs as they appear in
28209 C++ virtual table ctors.
28210
28211 2019-05-03 Richard Biener <rguenther@suse.de>
28212
28213 * passes.c (execute_function_todo): Remove dead code.
28214
28215 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
28216
28217 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use
28218 the internal register number, for any "real" register.
28219
28220 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
28221
28222 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
28223 correct numbers for TFHAR, TFIAR, TEXASR.
28224
28225 2019-05-02 Richard Biener <rguenther@suse.de>
28226
28227 PR tree-optimization/89653
28228 * tree-ssa-loop.c (pass_data_tree_loop_init): Execute
28229 update-address-taken before the pass.
28230 * passes.def (pass_tree_loop_init): Put comment before it.
28231
28232 2019-05-02 Richard Biener <rguenther@suse.de>
28233
28234 PR tree-optimization/89509
28235 * tree-ssa-structalias.c (compute_dependence_clique): Look
28236 at the first subvar when determining whether it is restrict.
28237
28238 2019-05-02 Richard Biener <rguenther@suse.de>
28239
28240 PR tree-optimization/90273
28241 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate
28242 useless debug stmts.
28243
28244 2019-05-02 Alejandro Martinez <alejandro.martinezvicente@arm.com>
28245
28246 * config/aarch64/aarch64-sve.md (<sur>dot_prod<vsi2qi>): Taken from SVE
28247 ACLE branch.
28248 * config/aarch64/iterators.md: Copied Vetype_fourth, VSI2QI and vsi2qi from
28249 SVE ACLE branch.
28250 * tree-vect-loop.c (use_mask_by_cond_expr_p): New function to check if a
28251 VEC_COND_EXPR be inserted to emulate a conditional internal function.
28252 (build_vect_cond_expr): Emit the VEC_COND_EXPR.
28253 (vectorizable_reduction): Use the functions above to vectorize in a
28254 fully masked loop codes that don't have a conditional internal
28255 function.
28256
28257 2019-05-02 Martin Liska <mliska@suse.cz>
28258
28259 * cgraphclones.c: Call valid_attribute_p with 1 for
28260 target_clone.
28261 * config/i386/i386-c.c (ix86_pragma_target_parse): Use 0 as
28262 it's for target attribute.
28263 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
28264 Add new boolean argument.
28265 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
28266 Likewise.
28267 (ix86_valid_target_attribute_tree): Pass target_clone_attr
28268 to ix86_valid_target_attribute_inner_p.
28269 (ix86_valid_target_attribute_p): Pass flags argument to
28270 ix86_valid_target_attribute_inner_p.
28271 (get_builtin_code_for_version): Use 0 as it's target attribute.
28272
28273 2019-05-02 Martin Liska <mliska@suse.cz>
28274
28275 * gcc.c (process_command): Add dummy file only
28276 if n_infiles == 0.
28277 * opts-global.c (decode_options): Pass lang_mask.
28278 * opts.c (print_help): New function.
28279 (finish_options): Print --help if help_option_argument
28280 is set.
28281 (common_handle_option): Factor out content of OPT__help_
28282 into print_help.
28283 * opts.h (finish_options): Add new argument.
28284
28285 2019-05-02 Martin Liska <mliska@suse.cz>
28286
28287 PR target/88809
28288 * config/i386/i386.c (ix86_expand_strlen): Use strlen call.
28289 With -minline-all-stringops use inline expansion using 4B loop.
28290 * doc/invoke.texi: Document the change of
28291 -minline-all-stringops.
28292
28293 2019-05-01 Jeff Law <law@redhat.com>
28294
28295 PR tree-optimization/88797
28296 * gimple-ssa-split-paths (is_feasible_trace): Reject cases where the
28297 PHI feeds a conditional on the RHS of an assignment.
28298
28299 2019-04-30 Andrew Waterman <andrew@sifive.com>
28300 Jim Wilson <jimw@sifive.com>
28301
28302 * config/riscv/constraints.md (L): New.
28303 * config/riscv/predicates.md (lui_operand): New.
28304 (sfb_alu_operand): New.
28305 * config/riscv/riscv-protos.h (riscv_expand_conditional_move): Declare.
28306 * config/riscv/riscv.c (riscv_expand_conditional_move): New.
28307 * config/riscv/riscv.h (TARGET_SFB_ALU): New.
28308 * config/riscv/risc.md (type): Add sfb_alu.
28309 (branch<mode>): Renamed from branch_order<mode>. Change predicate for
28310 operand 3 to reg_or_0_operand. In output string, change %3 to %z3.
28311 (branch_zero<mode>): Delete.
28312 (mov<mode>cc): New.
28313 (mov<GPR:mode><X:mode>cc): Likewise.
28314 * config/riscv/sifive-7.md (sifive_7_sfb_alu): New. Use in bypasses.
28315
28316 2019-04-30 Nathan Sidwell <nathan@acm.org>
28317
28318 * tree.h (MARK_TS_EXP): New.
28319
28320 2019-04-30 Martin Liska <mliska@suse.cz>
28321
28322 * opts.c (enable_warning_as_error): Provide hints
28323 for unknown options.
28324
28325 2019-04-30 Martin Liska <mliska@suse.cz>
28326
28327 PR debug/90288
28328 * doc/invoke.texi: Add missing dash for gas-locview-support
28329 and gno-as-locview-support.
28330
28331 2019-04-30 Jakub Jelinek <jakub@redhat.com>
28332
28333 PR target/89093
28334 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip
28335 whitespace at the start of target attribute string.
28336
28337 2019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28338
28339 PR target/86538
28340 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
28341 Define __ARM_FEATURE_ATOMICS.
28342
28343 2019-04-30 Martin Liska <mliska@suse.cz>
28344
28345 * gimple-fold.c (gimple_fold_builtin_memory_op): Change endp
28346 into built_in_function enum. Remove code for endp == 2 and
28347 use BUILT_IN_* constants.
28348 (gimple_fold_builtin): Call the function with fcode.
28349
28350 2019-04-30 Martin Liska <mliska@suse.cz>
28351
28352 * config/i386/i386.c (ix86_builtin_reciprocal): Cast
28353 DECL_FUNCTION_CODE into ix86_builtins enum before
28354 the switch statement.
28355
28356 2019-04-30 Jakub Jelinek <jakub@redhat.com>
28357
28358 PR tree-optimization/89475
28359 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64}
28360 calls.
28361
28362 2019-04-30 Martin Liska <mliska@suse.cz>
28363
28364 PR translation/90274
28365 * opts.c (print_filtered_help): Wrap string in _(...).
28366
28367 2019-04-30 Bin Cheng <bin.cheng@linux.alibaba.com>
28368
28369 PR tree-optimization/90240
28370 Revert:
28371 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
28372
28373 PR tree-optimization/90078
28374 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
28375 checks for infinite_cost overflow.
28376
28377 2019-04-29 Jeff Law <law@redhat.com>
28378
28379 * passes.def: Move -Wrestrict pass after copy propagation.
28380
28381 2019-04-29 Maya Rashish <coypu@sdf.org>
28382
28383 * config.gcc (default_gnu_indirect_function): Default to yes
28384 for arm*-*-netbsd*, i[34567]86-*-netbsd*, powerpc*-*-netbsd*,
28385 sparc*-*-netbsd*, x86_64-*-netbsd*.
28386
28387 2019-04-29 Vladislav Ivanishin <vlad@ispras.ru>
28388
28389 * tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases
28390 where cond2 is NE_EXPR.
28391 (is_value_included_in): Update comment.
28392
28393 2019-04-29 Richard Biener <rguenther@suse.de>
28394
28395 PR tree-optimization/90278
28396 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
28397 EH on comparison simplification.
28398
28399 2019-04-29 Jason Merrill <jason@redhat.com>
28400
28401 PR c++/82081 - tail call optimization breaks noexcept
28402 * tree-tailcall.c (find_tail_calls): Don't turn a call from a
28403 nothrow function to a might-throw function into a tail call.
28404
28405 2019-04-29 Richard Sandiford <richard.sandiford@arm.com>
28406
28407 * tree-data-ref.h (data_dependence_relation::inner_loop): Delete.
28408 (DDR_INNER_LOOP): Likewise.
28409 * tree-data-ref.c (dump_data_dependence_relation): Update accordingly.
28410 (initialize_data_dependence_relation): Likewise.
28411 (insert_innermost_unit_dist_vector): Use 0 instead of DDR_INNER_LOOP.
28412
28413 2019-04-29 Jakub Jelinek <jakub@redhat.com>
28414
28415 PR rtl-optimization/90257
28416 * cfgrtl.c (flow_active_insn_p): Return true for USE of a function
28417 return value.
28418
28419 Revert the revert:
28420 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
28421
28422 PR target/90178
28423 Revert:
28424 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
28425
28426 Revert the revert:
28427 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
28428
28429 Revert:
28430 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
28431
28432 * lra-spills.c (lra_final_code_change): Remove useless move insns.
28433
28434 2019-04-29 Richard Biener <rguenther@suse.de>
28435
28436 * tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER}
28437 rhs issue a reset.
28438
28439 2019-04-27 Iain Buclaw <ibuclaw@gdcproject.org>
28440
28441 * config/netbsd-d.c: Include memmodel.h. Remove unused tree.h,
28442 varasm.h, and netbsd-protos.h.
28443
28444 2019-04-27 Uroš Bizjak <ubizjak@gmail.com>
28445
28446 PR target/89261
28447 * config/i386/i386-protos.h (ix86_data_alignment): Change
28448 the second argument type to unsigned int.
28449 * config/i386/i386.c (ix86_data_alignment): Change "align"
28450 argument type to unsigned int.
28451
28452 2019-04-27 Martin Liska <mliska@suse.cz>
28453
28454 PR middle-end/90258
28455 * opt-suggestions.c (option_proposer::build_option_suggestions):
28456 When get_valid_option_values returns empty values, add the
28457 misspelling candidate.
28458
28459 2019-04-26 Jim Wilson <jimw@sifive.com>
28460
28461 * config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode
28462 parameter.
28463 * config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode.
28464 Pass orig_mode to riscv_build_integer.
28465 (riscv_split_integer): Pass mode to riscv_move_integer.
28466 (riscv_legitimize_const_move): Likewise.
28467 (riscv_legitimize_move): For MEM dest and CONST_INT src case, new local
28468 promoted_mode. Replace force_reg call with code to load constant into
28469 promoted reg and then subreg it for the store.
28470 * config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to
28471 riscv_move_integer.
28472
28473 2018-04-26 Eugene Sharygin <eush@ispras.ru>
28474
28475 * gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with
28476 corrupt codes.
28477
28478 2019-04-26 Richard Sandiford <richard.sandiford@arm.com>
28479
28480 * tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add
28481 commentary about the encoding of precision.
28482
28483 2019-04-25 Andreas Tobler <andreast@gcc.gnu.org>
28484
28485 * config/i386/freebsd64.h: Add bits for 32-bit multilib support.
28486 * config/i386/t-freebsd64: New file.
28487 * config.gcc: Add the t-freebsd64 for multilib support.
28488
28489 2019-04-25 Uroš Bizjak <ubizjak@gmail.com>
28490
28491 * doc/extend.texi (vector_size): Add missing comma after @xref.
28492
28493 2019-04-25 Jakub Jelinek <jakub@redhat.com>
28494
28495 * BASE-VER: Set to 10.0.0.
28496
28497 2019-04-25 Richard Biener <rguenther@suse.de>
28498
28499 PR middle-end/89765
28500 * gimplify.c (gimplify_expr): Avoid turning a lvalue
28501 VIEW_CONVERT_EXPR into one operating on an rvalue.
28502
28503 2019-04-25 H.J. Lu <hongjiu.lu@intel.com>
28504
28505 PR target/89929
28506 * config/i386/i386.c (feature_priority): Moved to file scope.
28507 (processor_features): Likewise.
28508 (processor_model): Likewise.
28509 (_arch_names_table): Likewise.
28510 (arch_names_table): Likewise.
28511 (_feature_list): Removed.
28512 (feature_list): Likewise.
28513 (_isa_names_table): Moved to file scope. Add priority.
28514 (isa_names_table): Likewise.
28515 (get_builtin_code_for_version): Replace feature_list with
28516 isa_names_table. Update error message for P_ZERO priority.
28517
28518 2019-04-25 Richard Biener <rguenther@suse.de>
28519
28520 * tree-pass.h (make_pass_phi_only_cprop): Remove.
28521 * timevar.def (TV_TREE_PHI_CPROP): Likewise.
28522
28523 2019-04-24 Jeff Law <law@redhat.com>
28524
28525 PR tree-optimization/90037
28526 * Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c
28527 * passes.def: Replace all instance of phi-only cprop with the
28528 lattice propagator. Move propagation pass from after erroneous
28529 path isolation to before erroneous path isolation.
28530 * tree-ssa-phionlycprop.c: Remove.
28531
28532 2019-04-24 Richard Biener <rguenther@suse.de>
28533
28534 PR middle-end/90213
28535 * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
28536 by size and BITS_PER_UNIT on poly-wide-ints.
28537
28538 2019-04-25 Richard Biener <rguenther@suse.de>
28539
28540 PR middle-end/90194
28541 * match.pd: Add pattern to simplify view-conversion of an
28542 empty constructor.
28543
28544 2019-04-24 Clement Chigot <clement.chigot@atos.net>
28545
28546 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable
28547 OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags
28548 for Go on 32 bit AIX.
28549 * config/rs6000/aix72.h: Likewise.
28550
28551 2019-04-24 Jakub Jelinek <jakub@redhat.com>
28552
28553 PR target/90193
28554 * rtl.c (classify_insn): Return JUMP_INSN for asm goto.
28555 * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.
28556
28557 2019-04-24 Andreas Krebbel <krebbel@linux.ibm.com>
28558
28559 PR target/89952
28560 * config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs
28561 from FPRs in reverse order. Generate REG_CFA_DEF_CFA note also
28562 for restored hard frame pointer.
28563 (s390_sched_dependencies_evaluation): Implement new target hook.
28564 (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition.
28565
28566 2019-04-24 Claudiu Zissulescu <claziss@sysnopsys.com>
28567
28568 * config/arc/arc-options.def: Fix typos and spelling mistakes.
28569 * config/arc/arc.c (arc_init): Cleanup warning message.
28570 (arc_override_options): Likewise.
28571
28572 2019-04-24 Jakub Jelinek <jakub@redhat.com>
28573
28574 PR target/90187
28575 * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
28576 a register if both if_true and if_false are MEMs.
28577
28578 PR tree-optimization/90208
28579 * tree-cfg.c (remove_bb): Move forced labels from removed bbs
28580 after labels of new_bb, not before them.
28581
28582 PR tree-optimization/90211
28583 * tree-parloops.c (try_create_reduction_list): Ignore phi arguments
28584 which are not SSA_NAMEs.
28585
28586 2018-04-23 Sudakshina Das <sudi.das@arm.com>
28587
28588 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for
28589 AArch64.
28590 (aarch64_file_end_indicate_exec_stack): Add gnu note section.
28591
28592 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
28593
28594 PR rtl-optimization/87979
28595 * modulo-sched.c (sms_schedule): Start ii value "mii" should
28596 not equal zero.
28597
28598 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
28599
28600 PR rtl-optimization/84032
28601 * modulo-sched.c (ps_insn_find_column): Change condition so that
28602 branch will always be the last insn in a row inside partial
28603 schedule.
28604
28605 2019-04-23 Richard Biener <rguenther@suse.de>
28606
28607 PR debug/90131
28608 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add
28609 dest_single_pred_p argument.
28610 (remove_forwarder_block): Adjust.
28611 (remove_forwarder_block_with_phi): Likewise.
28612
28613 2019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28614 Bernd Edlinger <bernd.edlinger@hotmail.de>
28615 Jakub Jelinek <jakub@redhat.com>
28616
28617 PR target/89093
28618 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
28619 if used with general-regs-only.
28620 (arm_conditional_register_usage): Don't add non-general regs if
28621 general-regs-only.
28622 (arm_valid_target_attribute_rec): Handle general-regs-only.
28623 * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
28624 general-regs-only.
28625 (TARGET_HARD_FLOAT_SUB): Define.
28626 (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
28627 (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
28628 (TARGET_REALLY_IWMMXT2): Likewise.
28629 * config/arm/arm.opt: Add -mgeneral-regs-only.
28630 * doc/extend.texi: Document ARM general-regs-only target.
28631 * doc/invoke.texi: Document ARM -mgeneral-regs-only.
28632
28633 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
28634
28635 PR tree-optimization/90078
28636 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
28637 checks for infinite_cost overflow.
28638
28639 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
28640
28641 PR tree-optimization/90021
28642 * tree-chrec.c (evolution_function_is_univariate_p): New parameter
28643 and check univariate against it.
28644 * tree-chrec.h (evolution_function_is_univariate_p): New parameter.
28645 * tree-data-ref.c (add_other_self_distances): Pass new argument.
28646
28647 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
28648
28649 PR target/90178
28650 Revert:
28651 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
28652
28653 Revert the revert:
28654 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
28655
28656 Revert:
28657 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
28658
28659 * lra-spills.c (lra_final_code_change): Remove useless move insns.
28660
28661 2019-04-21 Iain Sandoe <iain@sandoe.co.uk>
28662
28663 * config/rs6000/rs6000.md (group_end_nop): Emit insn register
28664 names using operand format, rather than hard-wired.
28665 (speculation_barrier): Likewise.
28666
28667 2019-04-19 Segher Boessenkool <segher@kernel.crashing.org>
28668
28669 PR tree-optimization/88055
28670 * tree-call-cdce.c (comparison_code_if_no_nans): New function.
28671 (gen_one_condition): Use it if !HONOR_NANS.
28672
28673 2019-04-19 Jakub Jelinek <jakub@redhat.com>
28674
28675 PR middle-end/90139
28676 * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
28677 assign_temp instead of gen_reg_rtx.
28678
28679 2019-04-19 Christophe Lyon <christophe.lyon@linaro.org>
28680
28681 PR translation/90118
28682 * config/aarch64/aarch64.c (aarch64_override_options_internal):
28683 Add missing space before %<.
28684
28685 2019-04-18 Peter Bergner <bergner@linux.ibm.com>
28686
28687 PR rtl-optimization/87871
28688 * ira-lives.c (make_object_dead): Don't add conflicts to
28689 TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts.
28690
28691 2019-04-18 Martin Sebor <msebor@redhat.com>
28692
28693 PR middle-end/89797
28694 * tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U.
28695 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid
28696 assuming type size fits in SHWI.
28697
28698 2019-04-18 Jan Hubicka <hubicka@ucw.cz>
28699
28700 PR ipa/85051
28701 * ipa-inline.c (flatten_function): New parameter UPDATE.
28702 (ipa_inline, early_inliner): Use it.
28703
28704 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
28705
28706 * fold-const.c (int_const_binop): Return early on failure.
28707
28708 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
28709
28710 PR middle-end/85164
28711 * combine.c (force_int_to_mode): Cast the argument rather than
28712 the result of known_alignment.
28713 * rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p.
28714
28715 2019-04-18 Richard Biener <rguenther@suse.de>
28716
28717 PR debug/90131
28718 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split
28719 out from ...
28720 (remove_forwarder_block): ... here.
28721 (remove_forwarder_block_with_phi): Also move debug stmts here.
28722
28723 2019-04-18 Jakub Jelinek <jakub@redhat.com>
28724
28725 PR translation/79183
28726 * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
28727 inform where appropriate.
28728
28729 2019-04-18 Richard Biener <rguenther@suse.de>
28730
28731 * tree.c (get_qualified_type): Put found type variants at the
28732 head of the variant list.
28733
28734 2018-04-17 Segher Boessenkool <segher@kernel.crashing.org>
28735
28736 * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo.
28737
28738 2019-04-17 Hongtao Liu <hongtao.liu@intel.com>
28739
28740 PR target/90125
28741 * config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd,
28742 _mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd,
28743 _mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd,
28744 _mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd,
28745 _mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3.
28746
28747 2019-04-17 Peter Bergner <bergner@linux.ibm.com>
28748
28749 * ira-conflicts.c (print_allocno_conflicts): Always print something,
28750 even for allocno's with no conflicts.
28751 (print_conflicts): Print an extra newline.
28752
28753 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
28754
28755 * auto-inc-dec.c (attempt_change): Set the alignment of the
28756 temporary memory to that of the original.
28757
28758 2019-04-17 Joao Moreira <jmoreira@suse.de>
28759
28760 * targhooks.c (default_print_patchable_function_entry): Emit
28761 __patchable_function_entries section with writable flags to allow
28762 relocation resolution.
28763
28764 2019-04-17 Jonny Grant <jg@jguk.org>
28765
28766 * collect2.c (main): Change gcc.gnu.org URL to HTTPS.
28767
28768 2019-04-17 Jakub Jelinek <jakub@redhat.com>
28769
28770 PR middle-end/90095
28771 * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
28772 on lowpart SUBREGs.
28773
28774 2019-04-17 Claudiu Zissulescu <claziss@synopsys.com>
28775
28776 * config/arc/arc.c (arc_init): Format diagnostic string.
28777 (arc_override_options): Likewise.
28778 (check_if_valid_regno_const): Likewise.
28779 (arc_reorg): Likewise.
28780
28781 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
28782
28783 PR target/17108
28784 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
28785 name.
28786 (rs6000_emit_allocate_stack_1): Simplify condition. Adjust pattern
28787 name.
28788 * config/rs6000/rs6000.md (bits): Add entries for SF and DF.
28789 (*movdi_update1): Use Pmode.
28790 (movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
28791 (movdi_<mode>_update_stack): Rename to ...
28792 (movdi_update_stack): ... this. Fix comment. Change condition. Don't
28793 use Pmode.
28794 (*movsi_update1): Use Pmode.
28795 (*movsi_update2): Use Pmode.
28796 (movsi_update): Rename to ...
28797 (movsi_<mode>_update): ... this. Use Pmode.
28798 (movsi_update_stack): Fix condition.
28799 (*movhi_update1): Use Pmode. Fix argument to
28800 avoiding_indexed_address_p.
28801 (*movhi_update2): Ditto.
28802 (*movhi_update3): Ditto.
28803 (*movhi_update4): Ditto.
28804 (*movqi_update1): Ditto.
28805 (*movqi_update2): Ditto.
28806 (*movqi_update3): Ditto.
28807 (*movsf_update1, *movdf_update1): Merge, rename to...
28808 (*mov<mode>_update1): This. Use Pmode. Fix argument to
28809 avoiding_indexed_address_p. Add "size" attribute.
28810 (*movsf_update2, *movdf_update2): Merge, rename to...
28811 (*mov<mode>_update2): This. Ditto.
28812 (*movsf_update3): Use Pmode. Fix argument to
28813 avoiding_indexed_address_p.
28814 (*movsf_update4): Ditto.
28815 (allocate_stack): Simplify condition. Adjust pattern names.
28816
28817 2019-04-17 Jakub Jelinek <jakub@redhat.com>
28818
28819 PR target/89093
28820 * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
28821 whitespace at the start of target attribute string.
28822
28823 2019-04-16 Pat Haugen <pthaugen@us.ibm.com>
28824
28825 PR target/84369
28826 * config/rs6000/power9.md: Add store forwarding bypass.
28827
28828 2019-04-16 Alexandre Oliva <aoliva@redhat.com>
28829
28830 PR debug/89528
28831 * valtrack.c (dead_debug_insert_temp): Reset debug references
28832 to the return value of a call being removed.
28833
28834 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
28835
28836 * config/arc/arc-protos.h (arc_register_move_cost): Remove.
28837 * config/arc/arc.c (arc_register_move_cost): Re-purpose it to
28838 implement target hook.
28839 (arc_memory_move_cost): New function.
28840 (TARGET_REGISTER_MOVE_COST): Define.
28841 (TARGET_MEMORY_MOVE_COST): Likewise.
28842 * config/arc/arc.h (REGISTER_MOVE_COST): Remove.
28843 (MEMORY_MOVE_COST): Likewise.
28844
28845 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
28846
28847 * config/arc/arc.md (sibcall_insn): Use Rcd constraint.
28848 (sibcall_value_insn): Likewise.
28849 * config/arc/constraints.md (Rs5): Remove.
28850
28851 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
28852
28853 * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
28854 for last two fake registers.
28855 (arc_conditional_register_usage): Make sure fake frame and arg
28856 pointer regs are in general regs class.
28857 (FRAME_POINTER_MASK): Remove.
28858 (RETURN_ADDR_MASK): Remove.
28859 (arc_must_save_register): Use hard frame regnum.
28860 (frame_restore_reg): Use hard_frame_pointer_rtx.
28861 (arc_save_callee_saves): Likewise.
28862 (arc_restore_callee_saves): Likewise.
28863 (arc_save_callee_enter): Likewise.
28864 (arc_restore_callee_leave): Likewise.
28865 (arc_save_callee_milli): Likewise.
28866 (arc_eh_return_address_location): Likewise.
28867 (arc_check_multi): Use hard frame regnum.
28868 (arc_can_eliminate): Likewise.
28869 * config/arc/arc.h (FIXED_REGISTERS): Make FP register available
28870 for register allocator.
28871 (REG_CLASS_CONTENTS): Update GENERAL_REGS.
28872 (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
28873 (FRAME_POINTER_REGNUM): Change it to a fake register.
28874 (HARD_FRAME_POINTER_REGNUM): Defined.
28875 (ARG_POINTER_REGNUM): Change it to a new fake register.
28876 (ELIMINABLE_REGS): Update.
28877 (REGISTER_NAMES): Update names.
28878 * config/arc/arc.md (LP_START): Remove.
28879 (LP_END): Likewise.
28880 (shift_si3_loop): Update pattern.
28881
28882 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
28883
28884 * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
28885 to avoid delay slot scheduling.
28886 (arc_must_save_register): Don't save SP.
28887 * config/arc/arc.md (stack_tie): Remove.
28888 (UNSPEC_ARC_STKTIE): Likewise.
28889
28890 2019-04-16 Kito Cheng <kito.cheng@gmail.com>
28891 Shiva Chen <shiva0217@gmail.com>
28892
28893 * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
28894 code gen with large shift amount.
28895
28896 2019-04-16 Chung-Ju Wu <jasonwucj@gmail.com>
28897
28898 * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
28899 subreg.
28900
28901 2019-04-16 Jakub Jelinek <jakub@redhat.com>
28902
28903 PR target/90096
28904 * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
28905 print -m64/-mx32/-m32 if it is true.
28906 (ix86_debug_options, ix86_function_specific_print): Pass true as
28907 ADD_ABI_P to ix86_target_string.
28908 (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
28909 ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
28910 or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.
28911
28912 PR rtl-optimization/90082
28913 * dce.c (can_delete_call): New function.
28914 (deletable_insn_p, mark_insn): Use it.
28915
28916 PR tree-optimization/90090
28917 * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
28918 throw internally.
28919 (is_division_by_square): Likewise. Formatting fix.
28920
28921 2019-04-16 Richard Biener <rguenther@suse.de>
28922
28923 PR tree-optimization/56049
28924 * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
28925 equality check if alias-set zero will prevail.
28926
28927 2019-04-15 Jeff Law <law@redhat.com>
28928
28929 * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
28930 size and alignment as unsigned.
28931
28932 2019-04-15 Richard Biener <rguenther@suse.de>
28933
28934 PR debug/90074
28935 * tree-loop-distribution.c (destroy_loop): Preserve correct
28936 debug info.
28937
28938 2019-04-15 Richard Biener <rguenther@suse.de>
28939
28940 PR tree-optimization/90071
28941 * tree-ssa-reassoc.c (init_range_entry): Do not pick up
28942 abnormal operands from def stmts.
28943
28944 2019-04-15 Segher Boessenkool <segher@kernel.crashing.org>
28945
28946 PR rtl-optimization/89794
28947 * combine.c (count_auto_inc): New function.
28948 (try_combine): Count how many auto_inc expressions there were in the
28949 original instructions. Ensure we have the same number in the new
28950 instructions. Remove the code that tried to ensure auto_inc side
28951 effects on i1 and i0 are not lost.
28952
28953 2019-04-15 Richard Biener <rguenther@suse.de>
28954
28955 PR ipa/88936
28956 * tree.h (auto_var_p): Declare.
28957 * tree.c (auto_var_p): New function, split out from ...
28958 (auto_var_in_fn_p): ... here.
28959 * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
28960 member.
28961 (new_var_info): Initialize it.
28962 (set_uids_in_ptset): Also set the shadow variable uid if required.
28963 (ipa_pta_execute): Postprocess points-to solutions assigning
28964 shadow variable uids for locals that may reach their containing
28965 function recursively.
28966 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
28967 assert but instead check whether the points-to solution is
28968 a singleton.
28969
28970 2019-04-15 Martin Jambor <mjambor@suse.cz>
28971
28972 PR ipa/pr89693
28973 * cgraph.c (clone_of_p): Loop over clone chain for each step in
28974 the thunk chain.
28975
28976 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
28977
28978 * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.
28979
28980 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
28981 Kito Cheng <kito.cheng@gmail.com>
28982 Shiva Chen <shiva0217@gmail.com>
28983
28984 * config/nds32/nds32-md-auxiliary.c
28985 (nds32_legitimize_pic_address): Use new PIC pattern.
28986 (nds32_legitimize_tls_address): Use new TLS pattern.
28987 (nds32_output_symrel): New.
28988 * config/nds32/nds32-protos.h (nds32_output_symrel): Declare.
28989 (nds32_alloc_relax_group_id): Ditto.
28990 * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New.
28991 (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use
28992 relax_group_id.
28993 (nds32_group_tls_insn): Ditto.
28994 (nds32_group_float_insns): Ditto.
28995 * config/nds32/nds32.md (tls_le): New.
28996 (sym_got): Ditto.
28997
28998 2019-04-15 Chung-Ju Wu <jasonwucj@gmail.com>
28999
29000 * configure: Add nds32 target for dwarf2 debug_line checking.
29001 * configure.ac: Regenerated.
29002
29003 2019-04-14 Jan Hubicka <hubicka@ucw.cz>
29004
29005 PR lto/89358
29006 * ipa-devirt.c (skip_in_fields_list_p): New.
29007 (odr_types_equivalent_p): Use it.
29008
29009 2019-04-13 Jakub Jelinek <jakub@redhat.com>
29010
29011 PR target/89093
29012 * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
29013 instead of strncmp when checking for thumb and arm. Formatting fixes.
29014
29015 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org>
29016
29017 * doc/install.texi: Document --with-target-system-zlib.
29018
29019 2019-04-12 Martin Sebor <msebor@redhat.com>
29020
29021 PR c/88383
29022 PR c/89288
29023 PR c/89798
29024 PR c/89797
29025 * targhooks.c (default_vector_alignment): Avoid assuming
29026 argument fits in SHWI.
29027 * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
29028 a shift expression.
29029 * doc/extend.texi (__builtin_has_attribute): Add a clarifying note.
29030
29031 2019-04-12 Jakub Jelinek <jakub@redhat.com>
29032
29033 PR rtl-optimization/89965
29034 * dce.c: Include rtl-iter.h.
29035 (struct check_argument_load_data): New type.
29036 (check_argument_load): New function.
29037 (find_call_stack_args): Check for loads from stack slots still tracked
29038 in sp_bytes and punt if any is found.
29039
29040 * config/mips/loongson-mmiintrin.h: Fix up #error message.
29041
29042 2019-04-12 Jan Hubicka <hubicka@ucw.cz>
29043
29044 * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
29045 * doc/invoke.texi (max-lto-streaming-paralellism): New --param.
29046
29047 2019-04-12 Martin Liska <mliska@suse.cz>
29048
29049 PR middle-end/89970
29050 * multiple_target.c (create_dispatcher_calls): Wrap ifunc
29051 in error message.
29052 (separate_attrs): Handle multiple 'default's.
29053 (expand_target_clones): Rework error handling code.
29054
29055 2019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org>
29056
29057 PR target/87532
29058 * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
29059 mode of vector rather than mode of destination for move instruction.
29060 * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
29061 Use QI inner mode with V16QI vector mode.
29062
29063 2019-04-12 Jakub Jelinek <jakub@redhat.com>
29064
29065 PR target/52726
29066 * config/tilepro/tilepro.c (tilepro_print_operand): Use just
29067 "invalid %%t operand" in output_operand_lossage message.
29068
29069 2019-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
29070
29071 * config/s390/predicates.md (permute_pattern_operand): New
29072 predicate.
29073 * config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
29074 operand for the permute pattern.
29075 ("*vec_perm<mode>"): New insn definition.
29076 ("bswap<mode>"): Generate the permute pattern operand in the
29077 expander and perform the operand reloads for pre arch13 level
29078 already.
29079 ("*bswap<mode>_emu"): Rename to ...
29080 ("*bswap<mode>"): ... this. And make the splitter vxe2 only.
29081 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
29082 Add the USE operand for the permute pattern.
29083 ("*vec_set_bswap_vec<mode>"): Likewise.
29084
29085 2019-04-12 Jakub Jelinek <jakub@redhat.com>
29086
29087 PR c/89946
29088 * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
29089 and gcc_unreachable if it fails, just call tree_to_uhwi which
29090 verifies that too. Test TREE_CHAIN instead of list_length > 1.
29091 Start warning message with a lower-case letter. Formatting fixes.
29092
29093 PR rtl-optimization/90026
29094 * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
29095 successors, look for BARRIERs inside of the whole BB_FOOTER chain
29096 rather than just at the start of it. If e->src BB_FOOTER is not NULL
29097 in cfglayout mode, use emit_barrier_after_bb.
29098
29099 2018-04-11 Steve Ellcey <sellcey@marvell.com>
29100
29101 PR rtl-optimization/87763
29102 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
29103 New Instruction.
29104
29105 2019-04-11 Tom de Vries <tdevries@suse.de>
29106
29107 * doc/extend.texi (@node Statement Exprs): Note variable shadowing at
29108 max macro using statement expression.
29109
29110 2019-04-11 David Edelsohn <dje.gcc@gmail.com>
29111
29112 * xcoffout.h (xcoff_private_rodata_section_name): Declare.
29113 * xcoffout.c (xcoff_private_rodata_section_name): Define.
29114 * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
29115 read_only_private_data_section using xcoff_private_rodata_section_name.
29116 (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.
29117
29118 2019-04-11 Christophe Lyon <christophe.lyon@linaro.org>
29119
29120 PR target/90016
29121 * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.
29122
29123 2019-04-11 Jakub Jelinek <jakub@redhat.com>
29124
29125 PR rtl-optimization/89965
29126 * dce.c (sp_based_mem_offset): New function.
29127 (find_call_stack_args): Use sp_based_mem_offset.
29128
29129 2019-04-11 Jonathan Wakely <jwakely@redhat.com>
29130
29131 * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.
29132
29133 2019-04-11 Richard Biener <rguenther@suse.de>
29134
29135 PR tree-optimization/90020
29136 * tree-ssa-sccvn.c (vn_reference_may_trap): New function.
29137 * tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
29138 * tree-ssa-pre.c (compute_avail): Use it to not put
29139 possibly trapping references after a call that might not
29140 return into EXP_GEN.
29141 * gcse.c (compute_hash_table_work): Do not elide
29142 marking a block containing a call if the call might not
29143 return.
29144
29145 2019-04-11 Richard Biener <rguenther@suse.de>
29146
29147 PR tree-optimization/90018
29148 * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
29149 Test both SLP and interleaving variants.
29150
29151 2019-04-11 Robin Dapp <rdapp@linux.ibm.com>
29152
29153 * config/s390/8561.md: New file.
29154 * config/s390/driver-native.c (s390_host_detect_local_cpu):
29155 Add arch13 cpu model.
29156 * config/s390/s390-opts.h (enum processor_type): Likewise.
29157 * config/s390/s390.c (s390_get_sched_attrmask): Add arch13.
29158 (s390_get_unit_mask): Likewise.
29159 (s390_is_fpd): Likewise.
29160 (s390_is_fxd): Likewise.
29161 * config/s390/s390.h (s390_tune_attr): Likewise.
29162 * config/s390/s390.md: Include arch13 pipeline description.
29163 * config/s390/s390.opt: Add arch13.
29164
29165 2018-04-10 Steve Ellcey <sellcey@marvell.com>
29166
29167 PR rtl-optimization/87763
29168 * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
29169 New prototype.
29170 * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
29171 New function.
29172 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
29173 New instruction.
29174 (*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
29175 (*aarch64_bfi<GPI:mode>4_noand): Ditto.
29176 (*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
29177 (*aarch64_bfi<GPI:mode>4_noshift): Ditto.
29178
29179 2019-04-10 Jonathan Wakely <jwakely@redhat.com>
29180
29181 * doc/invoke.texi (Optimize Options): Change "Nevertheless" to
29182 "Although" in -fipa-icf documentation.
29183
29184 * doc/invoke.texi (Debugging Options): Explicitly state the semantics
29185 of using multiple -g options.
29186
29187 2019-04-10 Martin Liska <mliska@suse.cz>
29188
29189 PR gcov-profile/89959
29190 * doc/gcov.texi: Make documentation of -x option
29191 more precise.
29192
29193 2019-04-10 Richard Biener <rguenther@suse.de>
29194
29195 * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
29196 member.
29197 (DR_GROUP_SAME_DR_STMT): Remove.
29198 * tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
29199 * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
29200 replace with assert.
29201 (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
29202 (vect_record_grouped_load_vectors): Remove unreachable code.
29203
29204 2019-04-10 Richard Earnshaw <rearnsha@arm.com>
29205
29206 PR target/90016
29207 * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
29208 obsolete reference to N.
29209
29210 2019-04-10 Jakub Jelinek <jakub@redhat.com>
29211
29212 PR middle-end/90025
29213 * expr.c (store_expr): Set properly size on the MEM passed to
29214 clear_storage.
29215
29216 PR c++/90010
29217 * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
29218 with strlen in between hostsz-3 and hostsz-1 inclusive when no
29219 translation is needed, and when translation is needed, only append
29220 ... if the string length is hostsz or more bytes long. Avoid using
29221 strncpy or strcat.
29222
29223 2019-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
29224
29225 PR target/90024
29226 * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
29227 * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
29228 into three.
29229 * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
29230 differences directly.
29231 (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
29232
29233 2019-04-09 Jakub Jelinek <jakub@redhat.com>
29234
29235 PR translation/90011
29236 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
29237 from diagnostics.
29238 * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
29239 diagnostics.
29240 * config/riscv/freebsd.h (LINK_SPEC): Likewise.
29241 * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
29242 * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
29243 trailing space from -gsplit-dwarf diagnostics.
29244
29245 PR tree-optimization/89998
29246 * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
29247 instead of integer_type_node if possible, don't add ranges if return
29248 type is not compatible with int.
29249 * gimple-fold.c (gimple_fold_builtin_sprintf,
29250 gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
29251 integer_type_node.
29252
29253 2019-04-09 Martin Liska <mliska@suse.cz>
29254
29255 * Makefile.in: Use GENERATOR_CFLAGS for all generators.
29256 * doc/install.texi: Document the new config.
29257
29258 2019-04-09 Richard Sandiford <richard.sandiford@arm.com>
29259
29260 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
29261 use gimple_expr_type for load and store calls. Skip over the
29262 condition argument in a conditional internal function.
29263 Protect use of TREE_INT_CST_LOW.
29264
29265 2019-04-09 Jakub Jelinek <jakub@redhat.com>
29266
29267 PR target/90015
29268 * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
29269 (riscv_merge_decl_attributes): Fix typo in diagnostics. Remove
29270 trailing period from it too.
29271
29272 2019-04-08 wu yuan <wuyuan5@huawei.com>
29273
29274 * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
29275 * config/aarch64/aarch64.md: Add "tsv110.md".
29276 * config/aarch64/tsv110.md: New file.
29277
29278 2019-04-08 Richard Biener <rguenther@suse.de>
29279
29280 PR tree-optimization/90006
29281 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
29282 calls like lrint.
29283
29284 2019-04-08 Andrea Corallo <andrea.corallo@arm.com>
29285
29286 PR target/83033
29287 * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
29288 construction.
29289 (fma_root_node): Likewise.
29290 (func_fma_steering): Likewise.
29291
29292 2019-04-08 Jakub Jelinek <jakub@redhat.com>
29293
29294 PR rtl-optimization/89865
29295 * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.
29296
29297 PR rtl-optimization/89865
29298 * config/i386/i386.md
29299 (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
29300 numbers not to clash with the additional operands[4].
29301 (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
29302 with extra register copy in the middle.
29303
29304 2019-04-08 Martin Liska <mliska@suse.cz>
29305
29306 PR gcov-profile/89961
29307 * doc/gcov.texi: Document data_file.
29308 * gcov.c (generate_results): Add data_info into JSON output.
29309
29310 2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com>
29311
29312 PR tree-optimization/89725
29313 * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer
29314 loop's chrec as invariant symbol.
29315 * tree-chrec.h (chrec_contains_symbols): New parameter.
29316 * tree-data-ref.c (analyze_miv_subscript): Pass new argument.
29317 (build_classic_dist_vector_1, add_other_self_distances): Bypass access
29318 function of loops not in DDR's loop_nest.
29319 * tree-data-ref.h (index_in_loop_nest): Add unreachable check.
29320
29321 2019-04-08 Chenghua Xu <paul.hua.gm@gmail.com>
29322
29323 PR target/89623
29324 * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
29325 Mask.
29326
29327 2019-04-07 Uroš Bizjak <ubizjak@gmail.com>
29328
29329 PR target/89945
29330 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
29331 Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
29332
29333 2019-04-05 Joern Rennecke <joern.rennecke@embecosm.com>
29334
29335 * sched-deps.c (sched_macro_fuse_insns): Check return value of
29336 targetm.fixed_condition_code_regs.
29337
29338 2019-04-05 Richard Biener <rguenther@suse.de>
29339
29340 PR debug/89892
29341 PR debug/89905
29342 * tree-cfgcleanup.c (remove_forwarder_block): Always move
29343 debug bind stmts but reset them if they are not valid at the
29344 destination.
29345
29346 2019-04-05 Martin Liska <mliska@suse.cz>
29347
29348 PR translation/89936
29349 * collect-utils.c (collect_execute): Use %< and %>, or %qs in
29350 order to wrap keywords or arguments.
29351 * collect2.c (main): Likewise.
29352 (scan_prog_file): Likewise.
29353 (scan_libraries): Likewise.
29354 * common/config/riscv/riscv-common.c
29355 (riscv_subset_list::parsing_subset_version): Likewise.
29356 (riscv_subset_list::parse_std_ext): Likewise.
29357 * config/aarch64/aarch64.c (aarch64_override_options_internal):
29358 Likewise.
29359 * config/arm/arm.c (arm_option_override): Likewise.
29360 * config/cris/cris.c (cris_print_operand): Likewise.
29361 * config/darwin-c.c (darwin_pragma_options): Likewise.
29362 (darwin_pragma_unused): Likewise.
29363 (darwin_pragma_ms_struct): Likewise.
29364 * config/ft32/ft32.c (ft32_print_operand): Likewise.
29365 * config/i386/i386.c (print_reg): Likewise.
29366 (ix86_print_operand): Likewise.
29367 * config/i386/xm-djgpp.h: Likewise.
29368 * config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
29369 * config/m32c/m32c.c (m32c_option_override): Likewise.
29370 * config/msp430/msp430.c (msp430_option_override): Likewise.
29371 * config/nds32/nds32.c (nds32_option_override): Likewise.
29372 * config/nvptx/mkoffload.c (main): Likewise.
29373 * config/rx/rx.c (rx_print_operand): Likewise.
29374 (valid_psw_flag): Likewise.
29375 * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
29376 (vms_pragma_nomember_alignment): Likewise.
29377 (vms_pragma_extern_model): Likewise.
29378 * lto-wrapper.c (compile_offload_image): Likewise.
29379 * omp-offload.c (oacc_parse_default_dims): Likewise.
29380 * symtab.c (symtab_node::verify_base): Likewise.
29381 * tlink.c (recompile_files): Likewise.
29382 (start_tweaking): Likewise.
29383 * tree-profile.c (parse_profile_filter): Likewise.
29384
29385 2019-04-05 Richard Sandiford <richard.sandiford@arm.com>
29386
29387 PR tree-optimization/89956
29388 * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
29389 multiple negates of the same value.
29390
29391 2019-04-04 Martin Sebor <msebor@redhat.com>
29392
29393 PR middle-end/89957
29394 PR middle-end/89911
29395 * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands
29396 have the same precision since the function crashes otherwise.
29397 * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call
29398 has non-zero arguments.
29399
29400 2019-04-04 Martin Sebor <msebor@redhat.com>
29401
29402 PR middle-end/89934
29403 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
29404 out if the number of arguments is less than expected.
29405
29406 2019-04-04 Jeff Law <law@redhat.com>
29407
29408 PR rtl-optimization/89399
29409 * ree.c (combine_set_extension): Use single_set rather than
29410 digging into PATTERN for items on the candidate list.
29411 (combine_reaching_defs): Likewise.
29412
29413 2019-04-04 Richard Sandiford <richard.sandiford@arm.com>
29414
29415 PR rtl-optimization/46590
29416 * loop-invariant.c (find_defs): Move df_remove_problem and
29417 df_process_deferred_rescans to move_invariants.
29418 Move df_live_add_problem and df_live_set_all_dirty calls
29419 to move_invariants.
29420 (move_invariants): Likewise.
29421 (move_loop_invariants): Likewise, making the df_live calls
29422 conditional on -O. Remove the problem again if we added it
29423 locally.
29424
29425 2019-04-03 qing zhao <qing.zhao@oracle.com>
29426
29427 PR tree-optimization/89730
29428 * ipa-inline.c (can_inline_edge_p): Delete the checking for
29429 -flive-patching=inline-only-static.
29430 (can_inline_edge_by_limits_p): Add the checking for
29431 -flive-patching=inline-only-static and grant always_inline
29432 even when -flive-patching=inline-only-static is specified.
29433
29434 2019-04-03 Jeff Law <law@redhat.com>
29435
29436 PR rtl-optimization/81025
29437 * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.
29438
29439 2019-04-03 Richard Biener <rguenther@suse.de>
29440
29441 PR tree-optimization/84101
29442 * tree-vect-stmts.c: Include explow.h for hard_function_value,
29443 regs.h for hard_regno_nregs.
29444 (cfun_returns): New helper.
29445 (vect_model_store_cost): When vectorizing a store to a decl
29446 we return and the function ABI returns in a multi-reg location
29447 account for the possible spilling that will happen.
29448
29449 2019-04-03 Andreas Krebbel <krebbel@linux.ibm.com>
29450
29451 * config/s390/s390.c (s390_legitimate_address_p): Reject long
29452 displacement addresses for vector mode operands.
29453
29454 2019-04-03 Claudiu Zissulescu <claziss@synopsys.com>
29455
29456 * config/arc/arc.c (GMASK_LEN): Define.
29457 (arc_restore_callee_saves): Restore first blink when
29458 !optimize_size.
29459
29460 2019-04-03 Sudakshina Das <sudi.das@arm.com>
29461
29462 * doc/extend.texi: Add deprecated comment on sign-return-address
29463 function attribute and add mbranch-protection.
29464 * doc/invoke.texi: Add bti to the options for mbranch-protection.
29465
29466 2019-04-03 Richard Biener <rguenther@suse.de>
29467
29468 PR lto/89896
29469 * lto-wrapper.c (run_gcc): Avoid implicit rules making
29470 the all target phony.
29471
29472 2019-04-02 Uroš Bizjak <ubizjak@gmail.com>
29473
29474 PR target/89902
29475 PR target/89903
29476 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
29477 Return false for variable DImode shifts.
29478 (dimode_scalar_chain::compute_convert_gain): Do not handle
29479 register count operand in variable DImode shifts.
29480 (dimode_scalar_chain::make_vector_copies): Remove support to copy
29481 count argument of a variable shift instruction to a vector register.
29482 (dimode_scalar_chain::convert_reg): Remove support to convert
29483 count argument of a variable shift instruction.
29484
29485 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
29486
29487 PR rtl-optimization/84206
29488 * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
29489 iterating over loop headers.
29490
29491 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
29492
29493 PR rtl-optimization/85876
29494 * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
29495 beyond the original fence.
29496
29497 2019-04-02 Ulrich Weigand <uweigand@de.ibm.com>
29498
29499 * config.gcc: Mark spu* targets as deprecated/obsolete.
29500
29501 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
29502
29503 * config/s390/s390-builtin-types.def: New builtin function type
29504 definitions. Remove unused types.
29505 * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
29506 (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
29507 (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
29508 overloaded builtins.
29509 (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
29510 (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
29511 * config/s390/vecintrin.h (vec_float): New builtin macro definition.
29512 (vec_double, vec_signed, vec_unsigned): Define to use the new
29513 overloaded builtins.
29514 * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
29515 Remove expanders.
29516
29517 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
29518
29519 * config/s390/s390-builtin-types.def: New builtin function type
29520 definitions.
29521 * config/s390/s390-builtins.def (s390_vec_search_string_cc)
29522 (s390_vec_search_string_until_zero_cc): New overloaded builtins.
29523 (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
29524 (s390_vstrszh, s390_vstrszf): New low-level builtins.
29525 * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
29526 constant definitions.
29527 * config/s390/vecintrin.h (vec_search_string_cc)
29528 (vec_search_string_until_zero_cc): New builtin name definitions.
29529 * config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
29530 expanders.
29531 ("vec_vstrs<mode>"): New insn definition.
29532
29533 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
29534
29535 * config/s390/s390-builtin-types.def: Add new builtin function
29536 types.
29537 * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
29538 New overloaded builtins.
29539 (s390_vec_sldb, s390_vec_srdb): New low-level builtins. and
29540 s390_vsrd.
29541 * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
29542 (UNSPEC_VEC_SLDBYTE): ... this.
29543 (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
29544 * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
29545 definitions.
29546 * config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
29547 Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
29548 ("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.
29549
29550 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
29551
29552 ("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
29553 New insn definition.
29554 * config/s390/vx-builtins.md (V_HW_HSD): Move to ...
29555 * config/s390/vector.md (V_HW_HSD): ... here.
29556
29557 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
29558
29559 * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
29560 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
29561 ("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
29562 ("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
29563 New insn definitions.
29564
29565 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
29566
29567 * config/s390/s390-builtin-types.def: Add new builtin function type.
29568 * config/s390/s390-builtins.def: Add overloaded builtin
29569 s390_vec_reve and low-level builtins for s390_vler and s390_vster.
29570 * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
29571 * config/s390/vecintrin.h (vec_reve): New builtin name definition.
29572 * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
29573 ("eltswap<mode>"): New expander.
29574 ("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
29575 insn definitions.
29576
29577 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
29578
29579 * config/s390/s390-builtin-types.def: Add new builtin function types.
29580 * config/s390/s390-builtins.def: Add overloaded builtin
29581 s390_vec_revb. Add low-level builtins for vlbr and vstbr
29582 instructions.
29583 * config/s390/vecintrin.h (vec_revb): New builtin name definition.
29584 * config/s390/vector.md (VT_HW_HSDT): New mode iterator.
29585 ("bswap<mode>"): New expander.
29586 ("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.
29587
29588 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
29589
29590 * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
29591 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
29592 vector builtin version number in __VEC__.
29593
29594 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
29595
29596 * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
29597 iterators.
29598 (SFSI): New mode attribute.
29599 ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
29600 ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
29601 rename to ...
29602 ("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
29603 ("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
29604 ("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
29605 ("floatsi<mode>2"): Add wcefb instruction.
29606
29607 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
29608
29609 * config/s390/s390.md ("xde"): Extend mode attribute to vector types.
29610 * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
29611 mode iterators.
29612 ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
29613 ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
29614 support 32 bit fp-int conversions. Rename to ...
29615 ("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
29616 ("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
29617 ("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
29618 ("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
29619 ... to these.
29620
29621 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
29622
29623 * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
29624 if-then-else constructs if we can use the select instruction.
29625 * config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.
29626
29627 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
29628
29629 * config/s390/s390.md ("*popcountdi_arch13_cc")
29630 ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
29631 definition.
29632 ("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
29633 Append _z196 to make it ...
29634 ("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
29635 ("popcounthi2_z196"): ... this.
29636 ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
29637 ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.
29638
29639 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
29640
29641 * config/s390/s390.c (s390_canonicalize_comparison): Convert
29642 certain compares for arch13 in order to make use of the condition
29643 code result produced by the new instructions.
29644 (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
29645 nxrk, and nxgrk instruction patterns.
29646 * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
29647 (inv_no): Add new code iterator together with some attributes.
29648 ("*andc_split_<mode>"): Disable splitter for arch13.
29649 ("*<ANDOR:bitops_name>c<GPR:mode>_cc")
29650 ("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
29651 ("*<ANDOR:bitops_name>c<GPR:mode>")
29652 ("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
29653 ("*n<ANDOR:inv_bitops_name><mode>_cconly")
29654 ("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
29655 ("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.
29656
29657 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
29658
29659 * common/config/s390/s390-common.c (processor_flags_table): New
29660 entry for arch13.
29661 * config.gcc: Support arch13 with the --with-arch= configure flag.
29662 * config/s390/driver-native.c (s390_host_detect_local_cpu):
29663 * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
29664 * config/s390/s390.c (s390_get_sched_attrmask)
29665 (s390_get_unit_mask): Add PROCESSOR_ARCH13.
29666 * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
29667 * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
29668 (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
29669 (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
29670 definitions.
29671 * config/s390/s390.opt: Support arch13 as processor type in
29672 command line options.
29673
29674 2019-04-02 Martin Liska <mliska@suse.cz>
29675
29676 PR translation/89912
29677 * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
29678 Fix param description of graphite-max-arrays-per-scop.
29679
29680 2019-04-02 Eric Botcazou <ebotcazou@adacore.com>
29681
29682 * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
29683 (ASAN_CC1_SPEC): Use it in 64-bit mode.
29684 * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.
29685
29686 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
29687
29688 PR rtl-optimization/85412
29689 * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
29690 sel_sched_region_1, not after.
29691
29692 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
29693
29694 PR rtl-optimization/86928
29695 * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
29696 compute_live if necessary.
29697 (sel_redirect_edge_and_branch): Likewise.
29698
29699 2019-04-01 Vladimir Makarov <vmakarov@redhat.com>
29700
29701 PR rtl-optimization/89865
29702 * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard
29703 register if it is a part of small class.
29704
29705 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
29706
29707 PR rtl-optimization/87273
29708 * sel-sched-ir.c (merge_fences): Remove assert.
29709
29710 2019-04-01 Richard Biener <rguenther@suse.de>
29711
29712 PR tree-optimization/46590
29713 * domwalk.h (dom_walker::dom_walker): Consolidate constructors.
29714 (dom_walker::m_reachability): Add in place of...
29715 (dom_walker::m_skip_unreachable_blocks): ...this.
29716 * domwalk.c (dom_walker::dom_walker): Consoliate constructors.
29717 Move complex initialization ...
29718 (dom_walker::walk): Here. Especially compute m_bb_to_rpo
29719 lazily and initialize edge flags on each invocation.
29720 (dom_walker::bb_reachable): Use m_reachability.
29721
29722 2019-04-01 Martin Liska <mliska@suse.cz>
29723
29724 PR driver/89861
29725 * opt-suggestions.c (option_proposer::build_option_suggestions):
29726 Add variant without any argument in order to provide better
29727 hints.
29728
29729 2019-04-01 Richard Biener <rguenther@suse.de>
29730
29731 PR c/71598
29732 * gimple.c: Include langhooks.h.
29733 (gimple_get_alias_set): Treat enumeral types as the underlying
29734 integer type.
29735
29736 2019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org>
29737 Eric Botcazou <ebotcazou@adacore.com>
29738
29739 PR rtl-optimization/89862
29740 * rtl.h (word_register_operation_p): Exclude CONST_INT from operations
29741 that operates on the full registers for WORD_REGISTER_OPERATIONS
29742 architectures.
29743
29744 2019-03-29 Jim Wilson <jimw@sifive.com>
29745
29746 * common/config/riscv/riscv-common.c (riscv_parse_arch_string):
29747 Clear MASK_RVC and then set if C subset supported.
29748
29749 2019-03-29 Jakub Jelinek <jakub@redhat.com>
29750
29751 PR c/89872
29752 * gimplify.c (gimplify_compound_literal_expr): Don't optimize a
29753 non-addressable complit into its initializer if it is volatile.
29754
29755 2019-03-29 Roman Zhuykov <zhroma@ispras.ru>
29756
29757 * opts-common.c (integral_argument): Set errno properly in one case.
29758
29759 2019-03-29 Martin Liska <mliska@suse.cz>
29760
29761 * doc/invoke.texi: Remove -Wchkp from documentation.
29762
29763 2019-03-29 Martin Liska <mliska@suse.cz>
29764
29765 * dbgcnt.c (print_limit_reach): New function.
29766 (dbg_cnt): Use it.
29767
29768 2019-03-29 Martin Liska <mliska@suse.cz>
29769
29770 * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
29771 (dbg_cnt_process_opt): Parse first tokens aas
29772 dbg_cnt_process_single_pair is also using strtok.
29773
29774 2019-03-29 Jakub Jelinek <jakub@redhat.com>
29775
29776 PR rtl-optimization/87485
29777 * function.c (expand_function_end): Move stack_protect_epilogue
29778 before loading of return value into hard register(s).
29779
29780 2019-03-28 Jakub Jelinek <jakub@redhat.com>
29781
29782 PR middle-end/89621
29783 * tree-inline.h (struct copy_body_data): Add
29784 dont_remap_vla_if_no_change flag.
29785 * tree-inline.c (remap_type_3, remap_type_2): New functions.
29786 (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
29787 and remap_type_2 returns false.
29788 * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
29789 Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
29790 only from where it is copied to nested contexts.
29791
29792 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
29793
29794 PR target/89865
29795 * config/i386/i386.md (RMW operation with LEA peephole):
29796 Use LEAMODE mode attribute instead of SWI mode iterator for
29797 LEA pattern.
29798
29799 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
29800
29801 PR target/89848
29802 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
29803 Also process XEXP (src, 0) of a shift insn.
29804
29805 2019-03-28 David Malcolm <dmalcolm@redhat.com>
29806
29807 PR middle-end/89725
29808 * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
29809 Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.
29810
29811 2019-03-28 Jakub Jelinek <jakub@redhat.com>
29812
29813 * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
29814 test.
29815 (cprop_hardreg_bb, cprop_hardreg_debug): New functions.
29816 (pass_cprop_hardreg::execute): Use those. Don't repeat bb processing
29817 immediately after first one with df_analyze in between, but rather
29818 process all bbs, queueing ones that need second pass in a worklist,
29819 df_analyze, process queued debug insn changes and if second pass is
29820 needed, process bbs from worklist, df_analyze, process queued debug
29821 insns again.
29822
29823 * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
29824 or CALL_P instead of INSN_P && !DEBUG_INSN_P.
29825 (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.
29826
29827 2019-03-28 Jonathan Wakely <jwakely@redhat.com>
29828
29829 PR c/79022
29830 * gengtype.h (create_nested_ptr_option): Fix parameter names to match
29831 definition.
29832
29833 2019-03-27 Mateusz B <mateuszb@poczta.onet.pl>
29834
29835 PR target/85667
29836 * config/i386/i386.c (ix86_function_value_1): Call the newly added
29837 function for 32-bit MS_ABI.
29838 (function_value_ms_32): New function.
29839
29840 2019-03-27 Andrew Stubbs <ams@codesourcery.com>
29841
29842 * config/gcn/gcn.md (CC_SAVE_REG): New constant.
29843 (movdi): Call gen_movdi_symbol_save_scc.
29844 (gen_movdi_symbol_save_scc): New insn and split.
29845
29846 2019-03-27 Peter Bergner <bergner@linux.ibm.com>
29847
29848 PR rtl-optimization/89313
29849 * function.c (matching_constraint_num): New static function.
29850 (match_asm_constraints_1): Use it. Fixup white space and comment.
29851 Don't replace inputs with non-matching constraints which conflict
29852 with early clobber outputs.
29853
29854 2019-03-27 Jeff Law <law@redhat.com>
29855
29856 PR rtl-optimization/87761
29857 PR rtl-optimization/89826
29858 * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
29859 slightly later.
29860 (pass_cprop_hardreg::execute): Call df_analyze after adding the
29861 note problem to get REG_DEAD/REG_UNUSED notes updated.
29862
29863 2019-03-27 Richard Biener <rguenther@suse.de>
29864
29865 PR tree-optimization/89463
29866 * tree-ssa-dce.c (remove_dead_stmt): Take output vector to
29867 queue edges to remove.
29868 (eliminate_unnecessary_stmts): Remove dead PHIs alongside
29869 dead stmts. Delay edge removal until PHIs are removed to
29870 make debug-stmt creation not confused by seemingly degenerate
29871 PHIs.
29872
29873 2019-03-27 Alan Modra <amodra@gmail.com>
29874
29875 * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
29876 throughout file.
29877 * config/rs6000/darwin.h: Likewise.
29878 * config/rs6000/rs6000.c: Likewise.
29879
29880 2019-03-27 Alan Modra <amodra@gmail.com>
29881
29882 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always
29883 assign rs6000_hard_regno_mode_ok_p[m][r]. Formatting.
29884
29885 2019-03-26 Andrew Waterman <andrew@sifive.com>
29886 Jim Wilson <jimw@sifive.com>
29887
29888 * config/riscv/generic.md (generic_alu, generic_load, generic_store)
29889 (generic_xfer, generic_branch, generic_imul, generic_idivsi)
29890 (generic_idivdi, generic_fmul_single, generic_fmul_double)
29891 (generic_fdiv, generic_fsqrt): Add check for generic tune.
29892 (generic_alu): Add auipc to type list.
29893 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
29894 (riscv_microarchitecture): Declare.
29895 * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
29896 * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
29897 field.
29898 (riscv_microarchitecture): New.
29899 (sifive_7_tune_info): New.
29900 (riscv_cpu_info_table): Add microarchitecture value for rocket and
29901 size. Add sifive-3-series, sifive-5-series, and sifive-7-series
29902 entries.
29903 (riscv_store_data_bypass_p): New.
29904 (riscv_option_override): Set riscv_microarchitecture from
29905 cpu->microarchitecture.
29906 * config/riscv/riscv.md: Include sifive-7.md.
29907 (type): Add auipc.
29908 (tune): New.
29909 (auipc<mode>): Change type to auipc.
29910 (restore_stack_nonlocal): New.
29911 * config/riscv/sifive-7.md: New.
29912 * doc/invoke.texi (RISC-V Options): Update mtune docs.
29913
29914 2019-03-26 Uroš Bizjak <ubizjak@gmail.com>
29915
29916 PR target/89827
29917 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
29918 Also process XEXP (src, 0) of a shift insn.
29919
29920 2019-03-26 Richard Biener <rguenther@suse.de>
29921
29922 * tree-inline.c (remap_gimple_stmt): Cache gimple_block.
29923 (copy_debug_stmt): Likewise.
29924 (expand_call_inline): Likewise.
29925 (copy_bb): Avoid redundant lookup & set of gimple_block.
29926 * gimple-low.c (lower_gimple_return): Likewise.
29927 (lower_builtin_setjmp): Likewise.
29928
29929 2019-03-26 Jakub Jelinek <jakub@redhat.com>
29930
29931 * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS
29932 is constant 0, turn into static const data member initialized to false.
29933 (hash_table::hash_table): Only initialize m_gather_mem_stats #if
29934 GATHER_STATISTICS. Add ATTRIBUTE_UNUSED to gather_mem_stats param.
29935
29936 2019-03-26 Jason Merrill <jason@redhat.com>
29937 Jakub Jelinek <jakub@redhat.com>
29938
29939 * mem-stats.h (mem_alloc_description::unregister_descriptor): New
29940 method.
29941 (mem_alloc_description::release_object_overhead): Fix comment typos.
29942 * hash-table.h (hash_table::~hash_table): Call
29943 release_instance_overhead only if m_entries is non-NULL, otherwise
29944 call unregister_descriptor.
29945
29946 2019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com>
29947
29948 PR tree-optimization/81740
29949 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
29950 In case of outer loop vectorization, check for backward dependence
29951 at the inner loop if outer loop dependence is reversed.
29952
29953 2019-03-26 Alan Modra <amodra@gmail.com>
29954
29955 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
29956 rs6000_vector_mem init. Correct wI and wJ comment.
29957
29958 2019-03-25 Alexander Monakov <amonakov@ispras.ru>
29959
29960 PR rtl-optimization/88347
29961 PR rtl-optimization/88423
29962 * sched-deps.c (sched_analyze_insn): Take into account that for
29963 tablejumps the barrier appears after a label and a jump_table_data.
29964
29965 2019-03-25 Martin Sebor <msebor@redhat.com>
29966
29967 PR c/89812
29968 * c-common.c (check_user_alignment): Rename local. Correct maximum
29969 alignment in diagnostic. Avoid assuming argument fits in SHWI,
29970 convert it to UHWI when it fits.
29971
29972 2019-03-25 Johan Karlsson <johan.karlsson@enea.com>
29973
29974 PR debug/86964
29975 * dwarf2out.c (premark_used_variables): New function.
29976 (prune_unused_types_walk): Do not mark not premarked external
29977 variables.
29978 (prune_unused_types): Call premark_used_variables.
29979
29980 2019-03-25 Vladimir Makarov <vmakarov@redhat.com>
29981
29982 PR rtl-optimization/89676
29983 * lra-constraints.c (curr_insn_transform): Do match reload for
29984 early clobbers when the match was successful only for different
29985 registers.
29986
29987 2019-03-25 Martin Sebor <msebor@redhat.com>
29988
29989 * doc/extend.texi (Common Type Attributes): Document vector_size.
29990 (Common Variable Attributes): Mention size constraint. Correct
29991 quoting and typos.
29992 (Vector Extensions): Use @dfn when defining bas type. Clarify
29993 base type and size constraints.
29994
29995 2019-03-25 Richard Biener <rguenther@suse.de>
29996
29997 PR tree-optimization/89789
29998 * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice
29999 changes from non-undefined back to undefined.
30000
30001 2019-03-25 Thomas Otto <thomas.otto@pdv-fs.de>
30002
30003 * dwarf2out.c (comp_dir_string): cached_wd could be set to both a
30004 heap string and a gc string, but since this variable is unknown to
30005 ggc the gc string might get reused and corrupted. Fixed by always
30006 using a heap string.
30007
30008 2019-03-25 Richard Biener <rguenther@suse.de>
30009
30010 PR tree-optimization/89779
30011 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return
30012 to remove IV defs, delay actual removal.
30013 (tree_ssa_iv_optimize_loop): Likewise. Avoid SCEV reset.
30014 (tree_ssa_iv_optimize): Remove eliminated IV defs at the
30015 very end, properly also reset loop control IV information.
30016
30017 2019-03-25 Richard Biener <rguenther@suse.de>
30018
30019 PR tree-optimization/89802
30020 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
30021 move EH data to folded stmt.
30022
30023 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
30024
30025 * config/s390/s390-builtin-types.def: Remove few unused types and
30026 fix sort order for others.
30027
30028 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
30029
30030 * config/s390/s390-c.c (s390_fn_types_compatible): Print the
30031 expected and found types with -mdebug during builtin matching.
30032
30033 2019-03-25 Richard Biener <rguenther@suse.de>
30034
30035 PR middle-end/89790
30036 * fold-const.c (operand_equal_p): Revert last change with
30037 updated comment.
30038
30039 2019-03-24 Segher Boessenkool <segher@kernel.crashing.org>
30040
30041 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL
30042 notes for the result of the __tls_get_addr calls.
30043 * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New.
30044
30045 2019-03-24 Jeff Law <law@redhat.com>
30046
30047 * config/bfin/bfin.md (movpdi): Fix length for alternative 1.
30048
30049 PR rtl-optimization/87761
30050 * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET,
30051 not INSN. Also check RTX_FRAME_RELATED_P. Queue insns for DF rescan
30052 as needed.
30053 (pass_cprop_hardreg::execute): Add df note problem and defer insn
30054 rescans. Reprocess blocks as needed, calling df_analyze before
30055 reprocessing. Always call df_analyze before fixing up debug bind
30056 insns.
30057
30058 2019-03-23 Segher Boessenkool <segher@kernel.crashing.org>
30059
30060 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
30061 big endian.
30062
30063 2019-03-22 Andrew Pinski <apinski@marvell.com>
30064
30065 * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
30066 attrribute for uxtw.
30067
30068 2019-03-26 Jeff Law <law@redhat.com>
30069
30070 PR rtl-optimization/87761
30071 * config/mips/mips-protos.h (mips_split_move): Add new argument.
30072 (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move.
30073 (mips_split_move): Accept new INSN argument. Try to forward SRC
30074 into the next instruction.
30075 (mips_split_move_insn): Pass INSN through to mips_split_move.
30076
30077 2019-03-22 Vladimir Makarov <vmakarov@redhat.com>
30078
30079 PR rtl-optimization/89676
30080 * lra-constraints.c (curr_insn_transform): Do match reload for
30081 early clobbers even if the match was successful.
30082
30083 2019-03-22 Jakub Jelinek <jakub@redhat.com>
30084
30085 PR c++/87481
30086 * doc/invoke.texi (-fconstexpr-ops-limit=): Document.
30087
30088 2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com>
30089
30090 * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
30091
30092 2019-03-22 Jakub Jelinek <jakub@redhat.com>
30093
30094 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
30095 <avx512>_fmsub_<mode>_mask3<round_name>,
30096 <avx512>_fnmadd_<mode>_mask3<round_name>,
30097 <avx512>_fnmsub_<mode>_mask3<round_name>,
30098 avx512f_vmfmadd_<mode>_mask3<round_name>,
30099 avx512f_vmfmsub_<mode>_mask3<round_name>,
30100 *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate>
30101 instead of register_operand and %v instead of v for match_operand 1.
30102 (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ...
30103 (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this. Use
30104 <round_nimm_predicate> instead of register_operand and %v instead of v
30105 for match_operand 1.
30106
30107 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
30108 <avx512>_fmadd_<mode>_mask3<round_name>,
30109 <avx512>_fmsub_<mode>_mask<round_name>,
30110 <avx512>_fmsub_<mode>_mask3<round_name>,
30111 <avx512>_fnmadd_<mode>_mask<round_name>,
30112 <avx512>_fnmadd_<mode>_mask3<round_name>,
30113 <avx512>_fnmsub_<mode>_mask<round_name>,
30114 <avx512>_fnmsub_<mode>_mask3<round_name>,
30115 <avx512>_fmaddsub_<mode>_mask<round_name>,
30116 <avx512>_fmaddsub_<mode>_mask3<round_name>,
30117 <avx512>_fmsubadd_<mode>_mask<round_name>,
30118 <avx512>_fmsubadd_<mode>_mask3<round_name>): Use
30119 <round_nimm_predicate> instead of nonimmediate_operand.
30120 (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
30121 fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>):
30122 Use register_operand instead of <round_nimm_predicate> for the
30123 operand that needs to match output.
30124 (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
30125 *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>):
30126 Likewise. Formatting fixes.
30127
30128 PR target/89784
30129 * config/i386/i386.c (enum ix86_builtins): Remove
30130 IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3.
30131 * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask,
30132 __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
30133 __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
30134 __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
30135 __builtin_ia32_vfmsubss3_mask3): New builtins.
30136 * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>,
30137 avx512f_vmfmadd_<mode>_mask3<round_name>,
30138 avx512f_vmfmadd_<mode>_maskz_1<round_name>,
30139 *avx512f_vmfmsub_<mode>_mask<round_name>,
30140 avx512f_vmfmsub_<mode>_mask3<round_name>,
30141 *avx512f_vmfmasub_<mode>_maskz_1<round_name>,
30142 *avx512f_vmfnmadd_<mode>_mask<round_name>,
30143 *avx512f_vmfnmadd_<mode>_mask3<round_name>,
30144 *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
30145 *avx512f_vmfnmsub_<mode>_mask<round_name>,
30146 avx512f_vmfnmsub_<mode>_mask3<round_name>,
30147 *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns.
30148 (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand.
30149 * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss,
30150 _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd,
30151 _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss,
30152 _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd,
30153 _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss,
30154 _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd,
30155 _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss,
30156 _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd,
30157 _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss,
30158 _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss,
30159 _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss,
30160 _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss,
30161 _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss,
30162 _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss,
30163 _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss,
30164 _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss,
30165 _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss,
30166 _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss,
30167 _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss,
30168 _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics.
30169
30170 2019-03-21 Martin Sebor <msebor@redhat.com>
30171
30172 PR tree-optimization/89350
30173 * builtins.c (compute_objsize): Also ignore offsets whose upper
30174 bound is negative.
30175 * gimple-ssa-warn-restrict.c (builtin_memref): Add new member.
30176 (builtin_memref::builtin_memref): Initialize new member.
30177 Allow EXPR to be null.
30178 (builtin_memref::extend_offset_range): Replace local with a member.
30179 Avoid assuming pointer offsets are unsigned.
30180 (builtin_memref::set_base_and_offset): Determine base object
30181 before computing offset range.
30182 (builtin_access::builtin_access): Handle memset.
30183 (builtin_access::generic_overlap): Replace local with a member.
30184 (builtin_access::strcat_overlap): Same.
30185 (builtin_access::overlap): Same.
30186 (maybe_diag_overlap): Same.
30187 (maybe_diag_access_bounds): Same.
30188 (wrestrict_dom_walker::check_call): Handle memset.
30189 (check_bounds_or_overlap): Same.
30190
30191 2019-03-21 Jan Hubicka <hubicka@ucw.cz>
30192 Jakub Jelinek <jakub@redhat.com>
30193
30194 PR lto/89692
30195 * tree.c (fld_type_variant, fld_incomplete_type_of,
30196 fld_process_array_type): Call fld->pset.add and don't call
30197 add_tree_to_fld_list if it returns true.
30198 (free_lang_data_in_type): Similarly with self-recursive call. Purge
30199 non-marked types from TYPE_NEXT_VARIANT list.
30200 (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t).
30201
30202 2019-03-21 Jakub Jelinek <jakub@redhat.com>
30203
30204 * hash-table.h (hash_table): Add Lazy template parameter defaulted
30205 to false, if true, don't alloc_entries during construction, but defer
30206 it to the first method that needs m_entries allocated.
30207 (hash_table::hash_table, hash_table::~hash_table,
30208 hash_table::alloc_entries, hash_table::find_empty_slot_for_expand,
30209 hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow,
30210 hash_table::clear_slot, hash_table::traverse_noresize,
30211 hash_table::traverse, hash_table::iterator::slide): Adjust all methods.
30212 * hash-set.h (hash_set): Add Lazy template parameter defaulted to
30213 false.
30214 (hash_set::contains): If Lazy is true, use find_slot_with_hash with
30215 NO_INSERT instead of find_with_hash.
30216 (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter,
30217 hash_set::m_table): Add Lazy to template params of hash_table.
30218 (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param.
30219 * attribs.c (test_attribute_exclusions): Likewise.
30220 * hash-set-tests.c (test_set_of_strings): Add iterator tests for
30221 hash_set. Add tests for hash_set with Lazy = true.
30222
30223 2019-03-21 Richard Biener <rguenther@suse.de>
30224
30225 PR tree-optimization/89779
30226 * tree.c (tree_nop_conversion): Consolidate and fix defensive
30227 checks with respect to released SSA names now having error_mark_node
30228 type.
30229 * fold-const.c (operand_equal_p): Likewise.
30230
30231 2019-03-20 Andreas Krebbel <krebbel@linux.ibm.com>
30232
30233 PR target/89775
30234 * config/s390/s390.c (global_not_special_regno_p): Move to make it
30235 available to ...
30236 (s390_optimize_register_info): Use global_not_special_regno_p to
30237 check for global regs.
30238
30239 2019-03-20 Jakub Jelinek <jakub@redhat.com>
30240
30241 PR target/89752
30242 * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
30243 update this_alternative nor this_alternative_set.
30244
30245 2019-03-19 Jim Wilson <jimw@sifive.com>
30246
30247 PR target/89411
30248 * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals
30249 align, size, offset. Use them to handle a BLKmode reference. Update
30250 comment.
30251 (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p.
30252
30253 2019-03-19 Jakub Jelinek <jakub@redhat.com>
30254
30255 PR rtl-optimization/89768
30256 * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
30257 instead of GEN_INT.
30258 (unroll_loop_runtime_iterations): Likewise.
30259
30260 2019-03-19 Martin Sebor <msebor@redhat.com>
30261
30262 PR tree-optimization/89644
30263 * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p
30264 rather than endptr as an indicator of nul-termination.
30265
30266 PR tree-optimization/89644
30267 * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated
30268 arrays in determining sequence sizes in strncpy and stpncpy.
30269
30270 2019-03-19 Martin Liska <mliska@suse.cz>
30271
30272 PR middle-end/89737
30273 * predict.c (combine_predictions_for_bb): Empty likely_edges and
30274 unlikely_edges if there's an edge that belongs to both these sets.
30275
30276 2018-03-19 Segher Boessenkool <segher@kernel.crashing.org>
30277
30278 PR target/89746
30279 * config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a
30280 non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned,
30281 go via a stack temporary.
30282
30283 2019-03-19 Jakub Jelinek <jakub@redhat.com>
30284
30285 PR target/89378
30286 * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
30287 instead of gen_rtx_SUBREG.
30288 * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.
30289
30290 2019-03-19 Richard Biener <rguenther@suse.de>
30291
30292 PR debug/88389
30293 * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
30294
30295 2019-03-19 Jan Hubicka <hubicka@ucw.cz>
30296
30297 PR lto/87809
30298 PR lto/89335
30299 * tree.c (free_lang_data_in_decl): Do not free context of C++
30300 destrutors.
30301
30302 2019-03-19 Jakub Jelinek <jakub@redhat.com>
30303
30304 PR target/89506
30305 * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use
30306 subs for the first alternative except when operands[3] is 1.
30307
30308 PR target/89752
30309 * gimplify.c (gimplify_asm_expr): For output argument with
30310 TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
30311 diagnose error.
30312
30313 2019-03-19 Eric Botcazou <ebotcazou@adacore.com>
30314
30315 PR rtl-optimization/89753
30316 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
30317 explicit unrolling factor even more robust.
30318
30319 2019-03-19 Jakub Jelinek <jakub@redhat.com>
30320
30321 PR target/89726
30322 * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
30323 compensation use x2 += 1 instead of x2 -= -1 and when honoring
30324 signed zeros, do another copysign after the compensation.
30325
30326 2019-03-18 Martin Sebor <msebor@redhat.com>
30327
30328 PR tree-optimization/89720
30329 * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min
30330 more conservatively, the same as anti-range.
30331
30332 2019-03-18 Richard Biener <rguenther@suse.de>
30333
30334 PR middle-end/88945
30335 * tree-ssanames.c (release_ssa_name_fn): For released SSA names
30336 use a TREE_TYPE of error_mark_node to avoid ICEs when dumping
30337 basic-blocks that are removed. Remove restoring SSA_NAME_VAR.
30338 * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking.
30339
30340 2019-03-18 Andrew Stubbs <ams@codesourcery.com>
30341
30342 * config/gcn/gcn-run.c (struct output): Make next_output unsigned.
30343 Extend queue to 1024 entries.
30344 Add "consumed" field.
30345 (gomp_print_output): Remove print_index parameter.
30346 Add final parameter.
30347 Change limit to unsigned.
30348 Use consumed field to implement circular buffer.
30349 Detect interrupted print in final pass.
30350 Flush output at the end.
30351 (run): Update gomp_print_output usage.
30352 (main): Initialize kernargs->output_data.consumed.
30353
30354 2019-03-18 Richard Sandiford <richard.sandiford@arm.com>
30355
30356 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the
30357 calculation of the minimum number of scalar iterations for
30358 fully-predicated loops.
30359
30360 2019-03-18 Martin Jambor <mjambor@suse.cz>
30361
30362 PR tree-optimization/89546
30363 * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if
30364 any propagation to its children took place.
30365
30366 2019-03-18 Andrew Burgess <andrew.burgess@embecosm.com>
30367
30368 PR target/89627
30369 * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset
30370 parameter, and make use of it.
30371 (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single.
30372
30373 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
30374
30375 * config/arc/arc.opt (mcode-density-frame): Get the inital value
30376 from TARGET_CODE_DENSITY_FRAME_DEFAULT.
30377 * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
30378 * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
30379 * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to
30380 match what the ops is doing.
30381 (push_multi_fp_blink): Likewise.
30382 * config/arc/arc.c (arc_override_options): Enable enter/leave when
30383 compiling for size and elf target.
30384 (arc_save_callee_enter): Adjust note to match what enter/leave
30385 operation does.
30386
30387 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
30388
30389 * config/arc/arc.md (tst_movb): Fix constraint.
30390
30391 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
30392
30393 * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
30394
30395 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
30396
30397 * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare.
30398 * config/arc/arc.c (arc_conditional_register_usage): Remove all
30399 reg_alloc_order references.
30400 (size_alloc_order): Define.
30401 (arc_adjust_reg_alloc_order): New function.
30402 * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register
30403 order.
30404 (ADJUST_REG_ALLOC_ORDER): Define.
30405 (HONOR_REG_ALLOC_ORDER): Likewise.
30406
30407 2019-03-18 Richard Biener <rguenther@suse.de>
30408
30409 PR target/87561
30410 * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided
30411 loads and stores a bit more.
30412
30413 2019-03-18 Richard Biener <rguenther@suse.de>
30414
30415 PR target/87561
30416 * config/i386/i386.c (ix86_add_stmt_cost): Apply strided
30417 load pessimization to stores as well.
30418
30419 2019-03-18 Andrey Belevantsev <abel@ispras.ru>
30420
30421 PR middle-end/86979
30422 * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible
30423 successor, use NULL as its av set.
30424
30425 2019-03-15 Segher Boessenkool <segher@kernel.crashing.org>
30426
30427 PR rtl-optimization/89721
30428 * lra-constraints (invariant_p): Return false if side_effects_p holds.
30429
30430 2019-03-15 Kelvin Nilsen <kelvin@gcc.gnu.org>
30431
30432 PR target/87532
30433 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
30434 When handling vec_extract, use modular arithmetic to allow
30435 constant selectors greater than vector length.
30436 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
30437 V1TImode vectors to have constant selector values greater than 0.
30438 Use modular arithmetic to compute vector index.
30439 (rs6000_split_vec_extract_var): Use modular arithmetic to compute
30440 index for in-memory vectors. Correct code generation for
30441 in-register vectors.
30442 (altivec_expand_vec_ext_builtin): Use modular arithmetic to
30443 compute index.
30444
30445 2019-03-15 Alexandre Oliva <aoliva@redhat.com>
30446
30447 PR c++/88534
30448 PR c++/88537
30449 * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
30450 VAR_DECL args.
30451
30452 2019-03-15 Jakub Jelinek <jakub@redhat.com>
30453
30454 PR c++/89709
30455 * tree.c (inchash::add_expr): Strip any location wrappers.
30456 * fold-const.c (operand_equal_p): Move stripping of location wrapper
30457 after hash verification.
30458
30459 PR debug/89704
30460 * dwarf2out.c (add_const_value_attribute): Return false for MINUS,
30461 SIGN_EXTEND and ZERO_EXTEND.
30462
30463 2019-03-14 Jason Merrill <jason@redhat.com>
30464 Jakub Jelinek <jakub@redhat.com>
30465
30466 * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather
30467 than if is_empty (*slot).
30468 * hash-set-tests.c (test_set_of_strings): Add tests for addition of
30469 existing elt and for elt removal.
30470 * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal
30471 of already removed elt.
30472
30473 2019-03-15 H.J. Lu <hongjiu.lu@intel.com>
30474
30475 PR target/89650
30476 * config/i386/i386.c (remove_partial_avx_dependency): Handle
30477 REG_EH_REGION note.
30478
30479 2019-03-14 Martin Liska <mliska@suse.cz>
30480
30481 PR other/89712
30482 * doc/invoke.texi: Remove -fdump-class-hierarchy option.
30483
30484 2019-03-14 Richard Biener <rguenther@suse.de>
30485
30486 PR target/89711
30487 * config/i386/i386.c (make_resolver_func): Properly set
30488 DECL_CONTEXT on the RESULT_DECL.
30489 * config/rs6000/rs6000.c (make_resolver_func): Likewise.
30490
30491 2019-03-14 Richard Biener <rguenther@suse.de>
30492
30493 * gimple-pretty-print.c: Include cfgloop.h.
30494 (dump_gimple_phi): Adjust.
30495 (dump_gimple_bb_header): Dump loop header for GIMPLE.
30496 (pp_cfg_jump): Adjust.
30497 (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well.
30498 * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call.
30499 (lower_phi_internal_fn): Remove.
30500 (verify_gimple_call): Remove IFN_PHI special-casing.
30501 (dump_function_to_file): Dump IL state.
30502 * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes
30503 done to deal with PHI nodes being present in non-SSA state.
30504
30505 2019-03-14 Jakub Jelinek <jakub@redhat.com>
30506
30507 PR ipa/89684
30508 * multiple_target.c (create_dispatcher_calls): Change
30509 references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
30510 In the node->iterate_referring loop, push *ref rather than ref, call
30511 ref->remove_reference () and always pass 0 to iterate_referring.
30512
30513 PR rtl-optimization/89679
30514 * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
30515 would contain a paradoxical SUBREG.
30516
30517 2019-03-14 Richard Biener <rguenther@suse.de>
30518
30519 PR tree-optimization/89710
30520 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
30521 safe_dyn_cast.
30522
30523 2019-03-14 Martin Liska <mliska@suse.cz>
30524
30525 * coverage.c (coverage_begin_function): Stream also
30526 end_column.
30527 * doc/gcov.texi: Document 2 new fields in JSON file. Improve
30528 documentation about function declaration location.
30529 * gcov-dump.c (tag_function): Print whole range
30530 of function declaration.
30531 * gcov.c (struct function_info): Add end_column field.
30532 (function_info::function_info): Initialize it.
30533 (output_json_intermediate_file): Output {start,end}_column
30534 fields.
30535 (read_graph_file): Read end_column.
30536
30537 2019-03-14 Richard Biener <rguenther@suse.de>
30538
30539 PR middle-end/89698
30540 * fold-const.c (operand_equal_p): For INDIRECT_REF check
30541 that the access types are similar.
30542
30543 2019-03-14 Jakub Jelinek <jakub@redhat.com>
30544
30545 PR tree-optimization/89703
30546 * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
30547 aren't compatible also with builtin_decl_explicit. Check pure
30548 or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
30549 and BUILT_IN_STPNCPY{,_CHK}.
30550
30551 2019-03-14 H.J. Lu <hongjiu.lu@intel.com>
30552
30553 PR target/89523
30554 * config/i386/i386.c (ix86_print_operand): Handle 'M' to add
30555 addr32 prefix to VSIB address for X32.
30556 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
30557 "%M2" to opcode.
30558 (*avx512pf_gatherpf<mode>df_mask): Likewise.
30559 (*avx512pf_scatterpf<mode>sf_mask): Likewise.
30560 (*avx512pf_scatterpf<mode>df_mask): Likewise.
30561 (*avx2_gathersi<mode>): Prepend "%M3" to opcode.
30562 (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
30563 (*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
30564 (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
30565 (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
30566 (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
30567 (*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
30568 (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
30569 (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
30570 (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
30571 (*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
30572 (*avx512f_scatterdi<mode>): Likewise.
30573
30574 2019-03-13 Vladimir Makarov <vmakarov@redhat.com>
30575
30576 PR target/85860
30577 * lra-constraints.c (inherit_in_ebb): Update
30578 potential_reload_hard_regs along with live_hard_regs.
30579
30580 2019-03-13 Jakub Jelinek <jakub@redhat.com>
30581
30582 PR debug/89498
30583 * dwarf2out.c (size_of_die): For dw_val_class_view_list always use
30584 DWARF_OFFSET_SIZE.
30585 (value_format): For dw_val_class_view_list never use DW_FORM_loclistx.
30586
30587 2019-03-13 Martin Sebor <msebor@redhat.com>
30588
30589 PR tree-optimization/89662
30590 * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type
30591 has a size.
30592
30593 2019-03-13 Richard Biener <rguenther@suse.de>
30594
30595 PR middle-end/89677
30596 * tree-scalar-evolution.c (simplify_peeled_chrec): Do not
30597 throw FP expressions at tree-affine.
30598
30599 2019-03-14 Richard Biener <rguenther@suse.de>
30600
30601 * tree-pretty-print.c (dump_generic_node): For -gimple properly
30602 dump negative integer constants using _Literal (type) -num.
30603
30604 2019-03-13 Jakub Jelinek <jakub@redhat.com>
30605
30606 * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
30607 nonlocal_value member.
30608
30609 PR middle-end/88588
30610 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
30611 (ipa_simd_modify_function_body): Handle PHIs.
30612
30613 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
30614
30615 * config/s390/s390.c (s390_option_override_internal): Use more
30616 aggressive inlining parameters.
30617
30618 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
30619
30620 * config/s390/3906.md: New file.
30621 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
30622 (LONGRUNNING_THRESHOLD): Remove.
30623 (MAX_SCHED_MIX_SCORE): Decrease.
30624 (MAX_SCHED_MIX_DISTANCE): Decrease.
30625 (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely.
30626 (struct s390_sched_state): New struct to hold scheduling state.
30627 (S390_SCHED_STATE_NORMAL): Remove.
30628 (S390_SCHED_STATE_CRACKED): Remove.
30629 (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add.
30630 (s390_get_sched_attrmask): Use new attribute.
30631 (s390_get_unit_mask): Use new units.
30632 (s390_is_fpd): New function.
30633 (s390_is_fxd): New function.
30634 (s390_is_longrunning): New function.
30635 (s390_sched_score): Use new functions.
30636 (s390_sched_reorder): Likewise.
30637 (s390_sched_variable_issue): Rework and use new functions.
30638 (s390_sched_init): Use new functions.
30639 * config/s390/s390.h (s390_tune_attr): Add z14.
30640 * config/s390/s390.md: Add z14.
30641
30642 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
30643
30644 * config/s390/2964.md: Update pipeline description.
30645 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
30646 (LONGRUNNING_THRESHOLD): Remove.
30647 (LATENCY_FACTOR): Remove.
30648 (s390_get_unit_mask): Add unit.
30649 (s390_sched_score): Use fxd/fpd.
30650 (s390_sched_variable_issue): Use fxd/fpd.
30651
30652 2019-03-12 Martin Liska <mliska@suse.cz>
30653
30654 * config/i386/i386.c: Reword an error message.
30655
30656 2019-03-12 Martin Jambor <mjambor@suse.cz>
30657
30658 * cgraph.c (cgraph_node::dump): Dump more info for former thunks,
30659 terminate with newline.
30660
30661 2019-03-12 Jakub Jelinek <jakub@redhat.com>
30662
30663 PR target/52726
30664 * config/s390/s390.md (tabort): Use %wd instead of
30665 HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital
30666 letters and periods.
30667 * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in
30668 output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace
30669 's with %< and %>.
30670
30671 PR middle-end/89663
30672 * builtins.c (expand_builtin_int_roundingfn,
30673 expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
30674 gcc_unreachable if validate_arglist fails.
30675
30676 2019-03-12 Richard Biener <rguenther@suse.de>
30677
30678 PR tree-optimization/89664
30679 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly
30680 free the occurance tree after the early out.
30681
30682 2019-03-11 Jakub Jelinek <jakub@redhat.com>
30683
30684 PR middle-end/89655
30685 PR bootstrap/89656
30686 * vr-values.c (vr_values::update_value_range): If
30687 old_vr->varying_p (), don't update it, make new_vr also VARYING
30688 and return false.
30689
30690 2019-03-11 Martin Liska <mliska@suse.cz>
30691
30692 * config/aarch64/aarch64.c (aarch64_override_options_internal):
30693 Fix double string quoting.
30694
30695 2019-03-11 Martin Liska <mliska@suse.cz>
30696
30697 * collect-utils.c (collect_wait): Wrap apostrophes
30698 in gcc internal format with %'.
30699 * collect2.c (main): Likewise.
30700 (scan_prog_file): Likewise.
30701 (scan_libraries): Likewise.
30702 * config/i386/i386.c (ix86_expand_call): Likewise.
30703 (ix86_handle_interrupt_attribute): Likewise.
30704 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
30705 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
30706 * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise.
30707 * lto-wrapper.c (find_crtoffloadtable): Likewise.
30708 * symtab.c (symtab_node::verify_base): Likewise.
30709 * tree-cfg.c (verify_gimple_label): Likewise.
30710 * tree.c (verify_type_variant): Likewise.
30711
30712 2019-03-11 Martin Liska <mliska@suse.cz>
30713
30714 * builtins.c (expand_builtin_thread_pointer): Wrap an option name
30715 in a string format message and fix GNU coding style.
30716 (expand_builtin_set_thread_pointer): Likewise.
30717 * common/config/aarch64/aarch64-common.c
30718 (aarch64_rewrite_selected_cpu): Likewise.
30719 * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise.
30720 * common/config/arc/arc-common.c (arc_handle_option): Likewise.
30721 * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise.
30722 * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
30723 * common/config/i386/i386-common.c (ix86_handle_option): Likewise.
30724 * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise.
30725 * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise.
30726 * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise.
30727 * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise.
30728 * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option):
30729 Likewise.
30730 * common/config/riscv/riscv-common.c
30731 (riscv_subset_list::parsing_subset_version): Likewise.
30732 (riscv_subset_list::parse_std_ext): Likewise.
30733 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
30734 (riscv_subset_list::parse): Likewise.
30735 * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise.
30736 * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise.
30737 (aarch64_override_options_internal): Likewise.
30738 (aarch64_validate_mcpu): Likewise.
30739 (aarch64_validate_march): Likewise.
30740 (aarch64_validate_mtune): Likewise.
30741 (aarch64_override_options): Likewise.
30742 * config/alpha/alpha.c (alpha_option_override): Likewise.
30743 * config/arc/arc.c (arc_init): Likewise.
30744 (parse_mrgf_banked_regs_option): Likewise.
30745 (arc_override_options): Likewise.
30746 (arc_expand_builtin_aligned): Likewise.
30747 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise.
30748 (arm_expand_builtin): Likewise.
30749 * config/arm/arm.c (arm_option_check_internal): Likewise.
30750 (arm_configure_build_target): Likewise.
30751 (arm_option_override): Likewise.
30752 (arm_options_perform_arch_sanity_checks): Likewise.
30753 (arm_handle_cmse_nonsecure_entry): Likewise.
30754 (arm_handle_cmse_nonsecure_call): Likewise.
30755 (arm_tls_referenced_p): Likewise.
30756 (thumb1_expand_prologue): Likewise.
30757 * config/avr/avr.c (avr_option_override): Likewise.
30758 * config/bfin/bfin.c (bfin_option_override): Likewise.
30759 * config/c6x/c6x.c (c6x_option_override): Likewise.
30760 * config/cr16/cr16.c (cr16_override_options): Likewise.
30761 * config/cris/cris.c (cris_option_override): Likewise.
30762 * config/csky/csky.c (csky_handle_isr_attribute): Likewise.
30763 * config/darwin-c.c (macosx_version_as_macro): Likewise.
30764 * config/darwin.c (darwin_override_options): Likewise.
30765 * config/frv/frv.c (frv_expand_builtin): Likewise.
30766 * config/h8300/h8300.c (h8300_option_override): Likewise.
30767 * config/i386/i386.c (parse_mtune_ctrl_str): Likewise.
30768 (ix86_option_override_internal): Likewise.
30769 (warn_once_call_ms2sysv_xlogues): Likewise.
30770 (ix86_expand_prologue): Likewise.
30771 (split_stack_prologue_scratch_regno): Likewise.
30772 (ix86_warn_parameter_passing_abi): Likewise.
30773 * config/ia64/ia64.c (fix_range): Likewise.
30774 * config/m68k/m68k.c (m68k_option_override): Likewise.
30775 * config/microblaze/microblaze.c (microblaze_option_override): Likewise.
30776 * config/mips/mips.c (mips_emit_probe_stack_range): Likewise.
30777 (mips_set_compression_mode): Likewise.
30778 * config/mmix/mmix.c (mmix_option_override): Likewise.
30779 * config/mn10300/mn10300.c (mn10300_option_override): Likewise.
30780 * config/msp430/msp430.c (msp430_option_override): Likewise.
30781 * config/nds32/nds32.c (nds32_option_override): Likewise.
30782 * config/nios2/nios2.c (nios2_custom_check_insns): Likewise.
30783 (nios2_option_override): Likewise.
30784 (nios2_expand_custom_builtin): Likewise.
30785 * config/nvptx/mkoffload.c (main): Likewise.
30786 * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise.
30787 * config/pa/pa.c (fix_range): Likewise.
30788 (pa_option_override): Likewise.
30789 * config/riscv/riscv.c (riscv_parse_cpu): Likewise.
30790 (riscv_option_override): Likewise.
30791 * config/rl78/rl78.c (rl78_option_override): Likewise.
30792 * config/rs6000/aix61.h: Likewise.
30793 * config/rs6000/aix71.h: Likewise.
30794 * config/rs6000/aix72.h: Likewise.
30795 * config/rs6000/driver-rs6000.c (elf_platform): Likewise.
30796 * config/rs6000/freebsd64.h: Likewise.
30797 * config/rs6000/linux64.h: Likewise.
30798 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
30799 (rs6000_expand_zeroop_builtin): Likewise.
30800 (rs6000_expand_mtfsb_builtin): Likewise.
30801 (rs6000_expand_set_fpscr_rn_builtin): Likewise.
30802 (rs6000_expand_set_fpscr_drn_builtin): Likewise.
30803 (rs6000_invalid_builtin): Likewise.
30804 (rs6000_expand_split_stack_prologue): Likewise.
30805 * config/rs6000/rtems.h: Likewise.
30806 * config/rx/rx.c (valid_psw_flag): Likewise.
30807 (rx_expand_builtin): Likewise.
30808 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
30809 * config/s390/s390.c (s390_expand_builtin): Likewise.
30810 (s390_function_profiler): Likewise.
30811 (s390_option_override_internal): Likewise.
30812 (s390_option_override): Likewise.
30813 * config/sh/sh.c (sh_option_override): Likewise.
30814 (sh_builtin_saveregs): Likewise.
30815 (sh_fix_range): Likewise.
30816 * config/sh/vxworks.h: Likewise.
30817 * config/sparc/sparc.c (sparc_option_override): Likewise.
30818 * config/spu/spu.c (spu_option_override): Likewise.
30819 (fix_range): Likewise.
30820 * config/visium/visium.c (visium_option_override): Likewise.
30821 (visium_handle_interrupt_attr): Likewise.
30822 * config/xtensa/xtensa.c (xtensa_option_override): Likewise.
30823 * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise.
30824 (dbg_cnt_process_opt): Likewise.
30825 * dwarf2out.c (output_dwarf_version): Likewise.
30826 * except.c (expand_eh_return): Likewise.
30827 * gcc.c (defined): Likewise.
30828 (driver_handle_option): Likewise.
30829 (process_command): Likewise.
30830 (compare_files): Likewise.
30831 (driver::prepare_infiles): Likewise.
30832 (driver::do_spec_on_infiles): Likewise.
30833 (driver::maybe_run_linker): Likewise.
30834 * omp-offload.c (oacc_parse_default_dims): Likewise.
30835 * opts-global.c (handle_common_deferred_options): Likewise.
30836 * opts.c (parse_sanitizer_options): Likewise.
30837 (common_handle_option): Likewise.
30838 (enable_warning_as_error): Likewise.
30839 * passes.c (enable_disable_pass): Likewise.
30840 * plugin.c (parse_plugin_arg_opt): Likewise.
30841 (default_plugin_dir_name): Likewise.
30842 * targhooks.c (default_expand_builtin_saveregs): Likewise.
30843 (default_pch_valid_p): Likewise.
30844 * toplev.c (init_asm_output): Likewise.
30845 (process_options): Likewise.
30846 (toplev::run_self_tests): Likewise.
30847 * tree-cfg.c (verify_gimple_call): Likewise.
30848 * tree-inline.c (inline_forbidden_p_stmt): Likewise.
30849 (tree_inlinable_function_p): Likewise.
30850 * var-tracking.c (vt_find_locations): Likewise.
30851
30852 2019-03-11 Andreas Krebbel <krebbel@linux.ibm.com>
30853
30854 * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not
30855 only on the else branch.
30856
30857 2019-03-11 Martin Liska <mliska@suse.cz>
30858
30859 * gcov.c (output_intermediate_json_line): Print function
30860 name of each line.
30861 (output_json_intermediate_file): Add new argument.
30862 * doc/gcov.texi: Document the change.
30863
30864 2019-03-11 Eric Botcazou <ebotcazou@adacore.com>
30865
30866 PR rtl-optimization/89588
30867 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
30868 explicit unrolling factor more robust.
30869
30870 2019-03-11 Richard Biener <rguenther@suse.de>
30871
30872 PR tree-optimization/89649
30873 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
30874 * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize
30875 on the prolog and epilog loops.
30876 (vect_loop_versioning): Return copy of loop.
30877 * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize
30878 on the non-vectorized version of the loop.
30879
30880 2019-03-10 Uroš Bizjak <ubizjak@gmail.com>
30881
30882 PR target/68924
30883 * config/i386/sse.md (*vec_extractv2di_0_sse):
30884 Add (=r,x) alternative and corresponding splitter.
30885
30886 2019-03-10 Martin Jambor <mjambor@suse.cz>
30887
30888 PR tree-optimization/85762
30889 PR tree-optimization/87008
30890 PR tree-optimization/85459
30891 * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool
30892 it points to if there is a type changing MEM_REF. Adjust all callers.
30893 (build_accesses_from_assign): Disable total scalarization if
30894 contains_vce_or_bfcref_p returns true through the new parameter, for
30895 both rhs and lhs.
30896
30897 2019-03-09 Jakub Jelinek <jakub@redhat.com>
30898
30899 PR c/88568
30900 * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for
30901 dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.
30902
30903 PR target/79645
30904 * common.opt (fdiagnostics-show-labels,
30905 fdiagnostics-show-line-numbers, fdiagnostics-format=,
30906 fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support,
30907 gas-locview-support, ginline-points, ginternal-reset-location-views):
30908 Terminate description text with a dot.
30909 * config/microblaze/microblaze.opt (mxl-prefetch): Likewise.
30910 * config/mcore/mcore.opt (m210, m340): Likewise.
30911 * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove,
30912 mnops=): Start description text with a capital letter.
30913 * config/arc/arc.opt (msize-level=): Likewise.
30914 * config/sh/sh.opt (minline-ic_invalidate): Likewise.
30915 * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib,
30916 mnewlib): Likewise.
30917 * config/ft32/ft32.opt (msim): Likewise.
30918 (mft32b, mcompress): Likewise. Terminate description text with a dot.
30919 (mnodiv, mnopm): Terminate description text with a dot.
30920 * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with
30921 a colon.
30922 * config/i386/i386.opt (prefer_vector_width, instrument_return):
30923 Likewise.
30924 * config/rx/rx.opt (nofpu): Remove trailing spaces from description
30925 text.
30926
30927 PR rtl-optimization/89634
30928 * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1
30929 are modified in BB_END (e->src) instruction.
30930
30931 2019-03-08 David Malcolm <dmalcolm@redhat.com>
30932
30933 PR target/79926
30934 * config/i386/i386.c (ix86_set_current_function): Make "sorry"
30935 messages more amenable to translation, and improve wording.
30936
30937 2019-03-08 Bill Schmidt <wschmidt@linux.ibm.com>
30938
30939 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
30940 ud- and du-chains between phases.
30941
30942 2019-03-08 Richard Sandiford <richard.sandiford@arm.com>
30943
30944 PR debug/89631
30945 * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
30946 instead of POLY_INT_CST.
30947
30948 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
30949
30950 * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
30951 requirement.
30952
30953 2019-03-08 Uroš Bizjak <ubizjak@gmail.com>
30954
30955 PR target/68924
30956 PR target/78782
30957 PR target/87558
30958 * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
30959 (_mm_storeu_si64): Ditto.
30960
30961 2019-03-08 Martin Liska <mliska@suse.cz>
30962
30963 PR target/86952
30964 * config/i386/i386.c (ix86_option_override_internal): Disable
30965 jump tables when retpolines are used.
30966
30967 2019-03-08 Jan Hubicka <hubicka@ucw.cz>
30968
30969 PR go/63560
30970 * ipa-split.c (execute_split_functions): Do not split
30971 'noinline' or 'section' function.
30972
30973 2019-03-08 Jakub Jelinek <jakub@redhat.com>
30974
30975 PR target/79846
30976 * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of
30977 HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of
30978 HOST_WIDE_INT_PRINT_DEC. Formatting fixes.
30979
30980 PR ipa/80000
30981 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
30982 from diagnostics. Formatting fixes.
30983
30984 PR target/85665
30985 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in
30986 warn_odr diagnostics.
30987
30988 PR other/80058
30989 * lra-constraints.c (process_alt_operands): Avoid one space before
30990 " at the end of line and another after " on another line in a string
30991 literal.
30992 * attribs.c (handle_dll_attribute): Likewise.
30993 * config/avr/avr-devices.c (avr_texinfo): Likewise.
30994
30995 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
30996 warning_at or inform messages in G_() if there is no ?:.
30997
30998 PR tree-optimization/89550
30999 * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at
31000 returned true. Formatting fixes.
31001 (expand_builtin_strnlen): Formatting fixes.
31002 * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING
31003 if warning_at returned true.
31004 * tree-cfg.c (pass_warn_function_return::execute): Likewise.
31005
31006 2019-03-08 Richard Biener <rguenther@suse.de>
31007
31008 PR middle-end/89578
31009 * cfgloop.h (struct loop): Add owned_clique field.
31010 * cfgloopmanip.c (copy_loop_info): Copy it.
31011 * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
31012 cliques.
31013 * tree-inline.c (copy_loops): Remap owned_clique.
31014 * lto-streamer-in.c (input_cfg): Stream owned_clique.
31015 * lto-streamer-out.c (output_cfg): Likewise.
31016
31017 2019-03-08 Jakub Jelinek <jakub@redhat.com>
31018
31019 PR target/80190
31020 * config/darwin.c: Include intl.h.
31021 (darwin_build_constant_cfstring): Improve i18n of diagnostics by not
31022 composing the message out of two separate parts.
31023
31024 2019-03-07 Jakub Jelinek <jakub@redhat.com>
31025
31026 PR target/80003
31027 * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
31028 doesn't start with a capital letter and doesn't end with a dot.
31029 (ix86_function_arg_boundary): Make sure diagnostics doesn't start
31030 with a capital letter.
31031 (ix86_mangle_function_version_assembler_name): Likewise.
31032 (ix86_generate_version_dispatcher_body): Likewise.
31033 (fold_builtin_cpu): Likewise.
31034 (get_builtin_code_for_version): Likewise. Remove extraneous space.
31035 (ix86_handle_interrupt_attribute): Make the diagnostics easier for
31036 translators, wrap full type name in %qs.
31037
31038 PR translation/79999
31039 * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about
31040 depend clause with source (or sink) modifier.
31041 * omp-expand.c (expand_omp_ordered_sink): Likewise.
31042
31043 PR target/89602
31044 * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask,
31045 *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns.
31046 (avx512f_load<mode>_mask): New define_expand.
31047 * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask,
31048 __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask,
31049 __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask,
31050 __builtin_ia32_movess_mask): New builtins.
31051 * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss,
31052 _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss,
31053 _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd,
31054 _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics.
31055
31056 2019-03-07 Martin Jambor <mjambor@suse.cz>
31057
31058 PR lto/87525
31059 * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
31060 for extern inline functions.
31061
31062 2019-03-07 Martin Jambor <mjambor@suse.cz>
31063
31064 PR ipa/88235
31065 * cgraph.h (cgraph_node): New inline method former_thunk_p.
31066 * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
31067 (clone_of_p): Treat expanded thunks like thunks, be optimistic if they
31068 have multiple callees. At the end check if declarations match as
31069 opposed to cgraph_nodes.
31070
31071 2019-03-07 Martin Liska <mliska@suse.cz>
31072
31073 * cgraph.c (cgraph_node::verify_node): Verify with a neighbour
31074 which is equivalent to searching for this in clones chain.
31075 * symtab.c (symtab_node::verify_base): Similarly compare ASM
31076 names with a neighbour and special case first node in a chain.
31077
31078 2019-01-25 Jason Merrill <jason@redhat.com>
31079
31080 PR c++/80916 - spurious "static but not defined" warning.
31081 * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false
31082 for an internal symbol with DECL_EXTERNAL.
31083
31084 2019-04-07 Richard Biener <rguenther@suse.de>
31085
31086 PR middle-end/89618
31087 * cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
31088 * tree-inline.c (copy_loops): Simplify.
31089
31090 2019-03-07 Martin Liska <mliska@suse.cz>
31091
31092 * dwarf2out.c (add_AT_vms_delta): Revert function removal.
31093
31094 2019-03-07 Richard Biener <rguenther@suse.de>
31095
31096 PR tree-optimization/89595
31097 * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
31098 stmt iterator as reference, take boolean output parameter to
31099 indicate whether the stmt was removed and thus the iterator
31100 already advanced.
31101 (dom_opt_dom_walker::before_dom_children): Re-iterate over
31102 stmts created by folding.
31103
31104 2019-03-07 Jakub Jelinek <jakub@redhat.com>
31105
31106 PR c++/89585
31107 * doc/extend.texi (Basic Asm): Document qualifiers are not allowed
31108 at toplevel.
31109
31110 2019-03-06 Peter Bergner <bergner@linux.ibm.com>
31111
31112 PR rtl-optimization/88845
31113 * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
31114 LRA.
31115 * lra.c (remove_scratches_1): New function.
31116 (remove_scratches): Use it.
31117 (lra_emit_move): Likewise.
31118
31119 2019-03-06 Claudiu Zissulescu <claziss@synopsys.com>
31120
31121 * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
31122 unaligned_access variable.
31123 * config/arc/arc.c (arc_override_options): Set unaligned access
31124 default on for HS CPUs.
31125 * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.
31126
31127 2019-03-06 Martin Liska <mliska@suse.cz>
31128
31129 PR gcov-profile/89577
31130 * doc/gcov.texi: Prefer to use --coverage.
31131 * doc/sourcebuild.texi: Likewise.
31132
31133 2019-03-02 Jason Merrill <jason@redhat.com>
31134
31135 PR c++/86485 - -Wmaybe-unused with empty class ?:
31136 * gimplify.c (gimplify_cond_expr): Use INIT_EXPR.
31137
31138 2019-03-05 Jakub Jelinek <jakub@redhat.com>
31139
31140 PR target/89587
31141 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
31142 if_multiarch.
31143
31144 PR middle-end/89590
31145 * builtins.c (maybe_emit_free_warning): Punt if free doesn't have
31146 exactly one argument.
31147
31148 2019-03-05 Jakub Jelinek <jakub@redhat.com>
31149 Richard Sandiford <richard.sandiford@arm.com>
31150
31151 PR tree-optimization/89570
31152 * match.pd (vec_cond into cond_op simplification): Don't use
31153 get_conditional_internal_fn, use as_internal_fn (cond_op).
31154
31155 2019-03-05 Wilco Dijkstra <wdijkstr@arm.com>
31156
31157 PR target/89222
31158 * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
31159 to decide when to split off a non-zero offset from a symbol.
31160 * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
31161 in function symbols.
31162
31163 2019-03-05 Richard Biener <rguenther@suse.de>
31164
31165 PR tree-optimization/89594
31166 * tree-if-conv.c (pass_if_conversion::execute): Handle
31167 case where .LOOP_VECTORIZED_FUNCTION was removed.
31168
31169 2019-03-05 Jakub Jelinek <jakub@redhat.com>
31170
31171 PR bootstrap/89560
31172 * fold-const.c (fold_checksum_tree): Don't use fixed size buffer,
31173 instead alloca it only when needed with the needed size.
31174
31175 PR tree-optimization/89570
31176 * match.pd (vec_cond into cond_op simplification): Guard with
31177 vectorized_internal_fn_supported_p test and #if GIMPLE.
31178
31179 PR tree-optimization/89566
31180 * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call):
31181 Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed.
31182 Punt if get_user_idx_format succeeds, but idx_format argument is
31183 not provided or doesn't have pointer type, or if idx_args is above
31184 number of provided arguments.
31185
31186 2019-03-04 Wilco Dijkstra <wdijkstr@arm.com>
31187
31188 PR tree-optimization/89437
31189 * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications.
31190
31191 2019-03-04 Richard Biener <rguenther@suse.de>
31192
31193 PR middle-end/89572
31194 * tree-scalar-evolution.c: (get_loop_exit_condition): Use
31195 safe_dyn_cast.
31196
31197 2019-03-04 Bin Cheng <bin.cheng@linux.alibaba.com>
31198
31199 PR tree-optimization/89487
31200 * tree-loop-distribution.c (has_nonaddressable_dataref_p): New.
31201 (create_rdg_vertices): Compute has_nonaddressable_dataref_p.
31202 (distribute_loop): Don't do runtime alias check if there is non-
31203 addressable data reference.
31204 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL
31205 is a register variable.
31206
31207 2019-03-02 Jakub Jelinek <jakub@redhat.com>
31208
31209 PR target/89506
31210 * config/arm/arm.md (cmpsi2_addneg): Use
31211 trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...).
31212 If operands[2] is 0 or INT_MIN, force use of subs.
31213 (*compare_scc splitter): Use gen_int_mode.
31214 (*negscc): Likewise.
31215 * config/arm/thumb2.md (*thumb2_negscc): Likewise.
31216
31217 2019-03-01 Kito Cheng <kito.cheng@gmail.com>
31218 Monk Chiang <sh.chiang04@gmail.com>
31219
31220 * common/config/riscv/riscv-common.c: Include sstream.
31221 (riscv_subset_list::to_string): New.
31222 (riscv_arch_str): Likewise.
31223 * config.gcc (riscv*-*-*): Handle --with-riscv-attribute=
31224 * config.in: Regen.
31225 * config/riscv/riscv-protos.h (riscv_arch_str): New.
31226 * config/riscv/riscv.c (INCLUDE_STRING): Defined.
31227 (riscv_emit_attribute): New.
31228 (riscv_file_start): Emit attribute if needed.
31229 (riscv_option_override): Init riscv_emit_attribute_p.
31230 * config/riscv/riscv.opt (mriscv-attribute): New option.
31231 * configure.ac (riscv*-*-*): Check binutils is supporting ELF
31232 * configure: Regen.
31233 * doc/install.texi: Document --with-riscv-attribute.
31234 * doc/invoke.texi: Document -mriscv-attribute.
31235
31236 * common/config/riscv/riscv-common.c:
31237 Include config/riscv/riscv-protos.h.
31238 (INCLUDE_STRING): Defined.
31239 (RISCV_DONT_CARE_VERSION): Defined.
31240 (riscv_subset_t): Declare.
31241 (riscv_subset_t::riscv_subset_t): New.
31242 (riscv_subset_list): Declare.
31243 (riscv_subset_list::riscv_subset_list): New.
31244 (riscv_subset_list::~riscv_subset_list): Likewise.
31245 (riscv_subset_list::parsing_subset_version): Likewise.
31246 (riscv_subset_list::parse_std_ext): Likewise.
31247 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
31248 (riscv_subset_list::add): Likewise.
31249 (riscv_subset_list::lookup): Likewise.
31250 (riscv_subset_list::xlen): Likewise.
31251 (riscv_subset_list::parse): Likewise.
31252 (riscv_supported_std_ext): Likewise.
31253 (current_subset_list): Likewise.
31254 (riscv_parse_arch_string): Using riscv_subset_list::parse to
31255 parse.
31256
31257 2019-03-01 Segher Boessenkool <segher@kernel.crashing.org>
31258
31259 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
31260 rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index.
31261 * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option.
31262
31263 2019-03-01 Alexander Monakov <amonakov@ispras.ru>
31264
31265 PR rtl-optimization/85899
31266 * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
31267 fallthru edges leading to the exit block.
31268
31269 2019-03-01 Tamar Christina <tamar.christina@arm.com>
31270
31271 PR target/89517
31272 * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
31273 rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.
31274
31275 2019-03-01 Richard Sandiford <richard.sandiford@arm.com>
31276
31277 PR tree-optimization/89535
31278 * tree-vect-stmts.c (vectorizable_call): Record the vector types
31279 for each operand. Calculate the fallback choice for mask operands
31280 and pass it to vect_get_vec_def_for_operand.
31281
31282 2019-03-01 Richard Biener <rguenther@suse.de>
31283
31284 PR middle-end/89541
31285 * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may
31286 get virtual operands.
31287 (get_expr_operands): Handle CONST_DECL like other decls.
31288
31289 2019-03-01 Jakub Jelinek <jakub@redhat.com>
31290
31291 PR middle-end/89503
31292 * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
31293 on DECL_P and EXPR_P.
31294
31295 2019-03-01 Richard Biener <rguenther@suse.de>
31296
31297 PR middle-end/89497
31298 * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
31299 argument, defaulted to zero.
31300 * passes.c (execute_function_todo): Pass down SSA update flags
31301 to cleanup_tree_cfg.
31302 * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
31303 (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
31304 form if requested.
31305 (cleanup_tree_cfg): Get and pass down SSA update flags.
31306
31307 2019-03-01 Jakub Jelinek <jakub@redhat.com>
31308
31309 PR bootstrap/89539
31310 * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
31311 early_lto_debug argument.
31312
31313 2019-02-28 Eric Botcazou <ebotcazou@adacore.com>
31314
31315 PR tree-optimization/89536
31316 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
31317 only whether bit #0 of the value is 0 instead of the entire value.
31318
31319 2019-02-28 Marek Polacek <polacek@redhat.com>
31320
31321 PR c++/87068 - missing diagnostic with fallthrough statement.
31322 * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
31323 at the end of a seq, save its location to walk_stmt_info.
31324 (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
31325 a switch.
31326
31327 2019-02-28 Jan Hubicka <hubicka@ucw.cz>
31328
31329 PR lto/88585
31330 * tree.c (find_atomic_core_type): Move ahead in file.
31331 (check_base_type): Correctly compare alignments of atomic types.
31332
31333 2019-02-28 H.J. Lu <hongjiu.lu@intel.com>
31334
31335 PR target/89455
31336 * config/i386/i386.c (get_builtin_code_for_version): Identify
31337 Westmere from PCLMUL, instead of AES.
31338
31339 2019-02-28 Jakub Jelinek <jakub@redhat.com>
31340
31341 PR target/89434
31342 * config/arm/arm.md (*subsi3_carryin_compare_const): Use
31343 trunc_int_for_mode (-INTVAL (...), SImode), just instead of
31344 -UINTVAL (...).
31345
31346 2019-02-28 Tamar Christina <tamar.christina@arm.com>
31347
31348 PR target/88530
31349 * config/aarch64/aarch64-option-extensions.def: Document it.
31350 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
31351 if empty hwcaps.
31352
31353 2019-02-28 Jakub Jelinek <jakub@redhat.com>
31354
31355 PR c/89520
31356 * convert.c (convert_to_real_1, convert_to_integer_1): Punt for
31357 builtins if they don't have a single scalar floating point argument.
31358 Formatting fixes.
31359
31360 2019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
31361
31362 PR rtl-optimization/89490
31363 * varasm.c (get_block_for_section): Bail out for mergeable sections.
31364 (default_use_anchors_for_symbol_p, output_object_block): Assert the
31365 block section is not mergeable.
31366
31367 2019-02-27 Jakub Jelinek <jakub@redhat.com>
31368
31369 PR target/70341
31370 * config/arm/arm.md (arm_casesi_internal): New define_expand. Rename
31371 old define_insn to ...
31372 (*arm_casesi_internal): ... this. Add mode to LABEL_REFs.
31373 * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
31374 Rename old define_insn to ...
31375 (*thumb2_casesi_internal): ... this. Add mode to LABEL_REFs.
31376 (thumb2_casesi_internal_pic): New define_expand. Rename old
31377 define_insn to ...
31378 (*thumb2_casesi_internal_pic): ... this. Add mode to LABEL_REFs.
31379 * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
31380 MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.
31381
31382 2019-02-27 Richard Biener <rguenther@suse.de>
31383
31384 PR debug/88878
31385 * dwarf2out.c (use_debug_types): Disable when in_lto_p.
31386
31387 2019-02-27 Richard Biener <rguenther@suse.de>
31388
31389 * passes.c (should_skip_pass_p): Do not skip cgraph-edge
31390 building.
31391
31392 2019-02-27 Richard Biener <rguenther@suse.de>
31393
31394 PR debug/88878
31395 * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
31396 parameter, prefix section name with .gnu.debuglto_ if true.
31397 (dwarf2out_finish): Pass false to output_comdat_type_unit.
31398 (dwarf2out_early_finish): Pass true to output_comdat_type_unit.
31399
31400 2019-02-27 Richard Biener <rguenther@suse.de>
31401
31402 PR debug/89514
31403 * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
31404 rather than on use_debug_types, doing what output_die does.
31405 (value_format): Likewise.
31406
31407 2019-02-27 Martin Jambor <mjambor@suse.cz>
31408 Martin Sebor <msebor@redhat.com>
31409
31410 * doc/invoke.texi (Warning Options): Reword description of
31411 -Wno-absolute-value.
31412
31413 2019-02-27 Jakub Jelinek <jakub@redhat.com>
31414
31415 PR tree-optimization/89280
31416 * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
31417 builtin_setjmp_setup_bb): New functions.
31418 (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
31419 When visiting __builtin_setjmp_setup block, queue in special
31420 setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
31421 __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks
31422 from visited after the loop if they don't have any visited successor
31423 blocks.
31424
31425 2018-02-26 Steve Ellcey <sellcey@marvell.com>
31426
31427 * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
31428 New function.
31429 (TARGET_GET_MULTILIB_ABI_NAME): New macro.
31430
31431 2019-02-26 Jakub Jelinek <jakub@redhat.com>
31432
31433 PR c++/89507
31434 * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
31435 with types other than sizetype/ssizetype.
31436
31437 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
31438
31439 * config/sparc/sparc-opts.h (enum processor_type): Rename to...
31440 (enum sparc_processor_type): ...this.
31441 (enum sparc_code_model_type): New enumeration type.
31442 (enum sparc_memory_model_type): Tweak comments.
31443 * config/sparc/sparc.opt (mcpu): Adjust to above renaming.
31444 (mtune): Likewise.
31445 (mcmodel): Use sparc_code_model enumeration and variable.
31446 (sparc_code_model): New enumeration.
31447 (mdebug): Add Undocumented marker.
31448 * config/sparc/sparc.h (enum cmodel): Delete.
31449 (sparc_cmodel): Likewise.
31450 (TARGET_CM_MEDLOW): Adjust to above renaming.
31451 (TARGET_CM_MEDMID): Likewise.
31452 (TARGET_CM_MEDANY): Likewise.
31453 (TARGET_CM_EMBMEDANY): Likewise.
31454 * config/sparc/sparc.c (sparc_cmodel): Delete.
31455 (sparc_option_override): Remove string/value mapping support for the
31456 code model. Move code and memory model support to after the handling
31457 of target flags. Do private machine setup last.
31458 (sparc_emit_set_symbolic_const64): Use sparc_code_model.
31459 (sparc_legitimize_reload_address): Likewise.
31460 (sparc_output_mi_thunk): Likewise.
31461 * config/sparc/sparc.md (cpu): Adjust comment to above renaming.
31462
31463 2019-02-26 Jakub Jelinek <jakub@redhat.com>
31464
31465 PR tree-optimization/89500
31466 * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
31467 (handle_builtin_strlen): Remove noncst_bound variable. Always
31468 optimize strnlen (x, 0) to 0. Optimize strnlen (x, cst) to
31469 cst if the first cst bytes starting at x are known to be non-zero,
31470 even if the string is not zero terminated. Don't try to modify
31471 *si for strnlen. Update strlen_to_stridx only for strlen or if
31472 we can prove strnlen returns the same value as strlen would.
31473
31474 2019-02-26 Martin Liska <mliska@suse.cz>
31475
31476 * alloc-pool.h (struct pool_usage): Remove extra
31477 print_dash_line.
31478 * bitmap.h (struct bitmap_usage): Likewise.
31479 * ggc-common.c (struct ggc_usage): Likewise.
31480 * mem-stats.h (struct mem_usage): Likewise.
31481 (mem_alloc_description::dump): Print dash lines
31482 here and repeat header at the end of a table report.
31483 It's then more readable.
31484 * tree-phinodes.c (phinodes_print_statistics): Make
31485 horizontal alignment.
31486 * tree-ssanames.c (ssanames_print_statistics): Likewise.
31487 * vec.c (struct vec_usage): Remove extra print_dash_line.
31488 * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
31489
31490 2019-02-26 Uroš Bizjak <ubizjak@gmail.com>
31491
31492 * doc/extend.texi (__builtin_object_size):
31493 Use @pxref instead of @xref inside parenthesis.
31494 (__builtin_has_attribute): Add missing comma after @xref.
31495 (__builtin_object_size): Ditto.
31496 * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
31497
31498 2019-02-26 Jeff Law <law@redhat.com>
31499
31500 PR rtl-optimization/87761
31501 * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
31502 detect obviously dead insns and delete them.
31503
31504 2019-02-26 Richard Biener <rguenther@suse.de>
31505
31506 PR tree-optimization/89505
31507 * tree-ssa-structalias.c (compute_dependence_clique): Make sure
31508 to handle restrict pointed-to vars with multiple subvars
31509 correctly.
31510
31511 2019-02-26 Richard Biener <rguenther@suse.de>
31512
31513 PR tree-optimization/89489
31514 * tree-parloops.c (create_loop_fn): Copy over last_clique.
31515
31516 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
31517
31518 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
31519 and move around comment.
31520 <BIT_AND_EXPR>: Likewise.
31521 <BIT_NOT_EXPR>: Add specific handling for boolean types.
31522
31523 2019-02-26 Jakub Jelinek <jakub@redhat.com>
31524
31525 PR target/89474
31526 * config/i386/i386.c (remove_partial_avx_dependency): Call
31527 df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
31528 after changing possibly many instructions to use that pseudo. Fix up
31529 insertion of v4sf_const0 setter at the start of bb.
31530
31531 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
31532
31533 PR c/80409
31534 * doc/extend.texi (Variadic Pointer Args): New section.
31535
31536 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
31537 Martin Sebor <msebor@gmail.com>
31538
31539 * common.opt (Wattribute-alias): Likewise.
31540 * doc/invoke.texi (Option Summary): List general form of
31541 -Wattribute-alias=. List positive form of -Wmissing-attributes.
31542 (-Wmissing-attributes): Invert entry, rewrite and correct default.
31543 Add cross-references.
31544 (-Wattribute-alias): Rewrite and correct default. Mention
31545 considered attributes (same as for -Wmissing-attributes).
31546
31547 2019-02-25 Paul A. Clarke <pc@us.ibm.com>
31548
31549 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
31550 (_mm_cvtpd_ps): Likewise.
31551 (_mm_cvttpd_epi32): Likewise.
31552
31553 PR target/89338
31554 * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
31555 (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
31556
31557 PR target/89339
31558 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
31559
31560 2019-02-25 Tamar Christina <tamar.christina@arm.com>
31561
31562 PR target/88530
31563 * common/config/aarch64/aarch64-common.c
31564 (struct aarch64_option_extension): Add is_synthetic.
31565 (all_extensions): Use it.
31566 (TARGET_OPTION_INIT_STRUCT): Define hook.
31567 (struct gcc_targetm_common): Moved to end.
31568 (all_extensions_by_on): New.
31569 (opt_ext_cmp, typedef opt_ext): New.
31570 (aarch64_option_init_struct): New.
31571 (aarch64_contains_opt): New.
31572 (aarch64_get_extension_string_for_isa_flags): Output smallest set.
31573 * config/aarch64/aarch64-option-extensions.def
31574 (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
31575 (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
31576 sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
31577 Set is_synthetic to false.
31578 (crypto): Set is_synthetic to true.
31579 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
31580 SYNTHETIC.
31581
31582 2019-02-25 Tamar Christina <tamar.christina@arm.com>
31583
31584 * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
31585 vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
31586 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
31587 vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
31588 vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
31589 vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
31590 vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
31591 vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
31592 Rename ...
31593 (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
31594 vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
31595 vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
31596 vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
31597 vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
31598 vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
31599 vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
31600 vfmlsl_laneq_high_f16): ... To this.
31601 * config/arm/neon.md: Update comments.
31602
31603 2019-02-25 Tamar Christina <tamar.christina@arm.com>
31604
31605 * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
31606 vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
31607 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
31608 vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
31609 vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
31610 vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
31611 vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
31612 vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
31613 Rename ...
31614 (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
31615 vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
31616 vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
31617 vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
31618 vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
31619 vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
31620 vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
31621 vfmlslq_laneq_high_f16): ... To this.
31622
31623 2019-02-25 Alexander Monakov <amonakov@ispras.ru>
31624
31625 PR rtl-optimization/86096
31626 * df-scan.c (df_mw_compare): Do not check mw_reg fields when
31627 comparing mw_order values.
31628
31629 2019-02-25 Jakub Jelinek <jakub@redhat.com>
31630
31631 PR target/89434
31632 * config/arm/arm.md (*subsi3_carryin_const): Use
31633 arm_neg_immediate_operand predicate instead of
31634 arm_not_immediate_operand, "L" constraint instead of "K" and
31635 print it using %n2 instead of %B2.
31636 (*subsi3_carryin_const0): New define_insn.
31637 (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
31638 instead of arm_not_operand and "I" constraint instead of "K" and
31639 print it using %n3 instead of %B2. Instead of using match_dup 2 add
31640 another match_operand and in the condition check that it is negation
31641 of operands[2].
31642 (*subsi3_carryin_compare_const0): New define_ins.
31643 (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
31644 *subsi3_carryin_const.
31645 (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
31646 split into *subsi3_carryin_compare_const0 if the highpart is zero.
31647
31648 PR target/89438
31649 * config/arm.vfp.md (*negdf2_vfp): Use
31650 gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
31651 * config/arm/neon.md (neon_copysignf<mode>): Likewise.
31652
31653 2019-02-24 Jakub Jelinek <jakub@redhat.com>
31654
31655 PR rtl-optimization/89445
31656 * simplify-rtx.c (simplify_ternary_operation): Don't use
31657 simplify_merge_mask on operands that may trap.
31658 * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
31659 SCALAR_FLOAT_MODE_P checks. For integral division by zero, if
31660 second operand is CONST_VECTOR, check if any element could be zero.
31661 Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
31662 their operands can trap.
31663
31664 2019-02-23 Martin Sebor <msebor@redhat.com>
31665
31666 * gimple-ssa-sprintf.c (target_strtol): Rename...
31667 (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX.
31668 (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to
31669 check for range error.
31670
31671 2019-02-23 H.J. Lu <hongjiu.lu@intel.com>
31672
31673 PR driver/69471
31674 * opts-common.c (prune_options): Also prune joined switches
31675 with Negative and RejectNegative.
31676 * config/i386/i386.opt (march=): Add Negative(march=).
31677 (mtune=): Add Negative(mtune=).
31678 * doc/options.texi: Document Negative used together with Joined
31679 and RejectNegative.
31680
31681 2019-02-22 Martin Sebor <msebor@redhat.com>
31682
31683 * doc/extend.texi (Other Builtins): Add
31684 __builtin_is_constant_evaluated.
31685
31686 2019-02-22 Richard Biener <rguenther@suse.de>
31687
31688 PR tree-optimization/87609
31689 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
31690
31691 2019-02-22 Jeff Law <law@redhat.com>
31692
31693 PR rtl-optimization/87761
31694 * config/mips/mips.md: Add new combiner pattern to recognize
31695 a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
31696
31697 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com>
31698
31699 PR target/89324
31700 * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
31701 destination register in peepholes generating patterns for ADDS/SUBS.
31702 (add<mode>3_compare0,
31703 *addsi3_compare0_uxtw, add<mode>3_compareC,
31704 add<mode>3_compareV_imm, add<mode>3_compareV,
31705 *adds_<optab><ALLX:mode>_<GPI:mode>,
31706 *subs_<optab><ALLX:mode>_<GPI:mode>,
31707 *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
31708 *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
31709 *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
31710 *sub<mode>3_compare0, *subsi3_compare0_uxtw,
31711 sub<mode>3_compare1): Allow stack pointer for source register.
31712 * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
31713
31714 2019-02-22 Martin Sebor <msebor@redhat.com>
31715
31716 PR tree-optimization/88993
31717 PR tree-optimization/88853
31718 * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
31719 New helper.
31720 (sprintf_dom_walker::call_info::is_string_func): New helper.
31721 (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
31722 for formatted string functions.
31723 (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
31724
31725 2019-02-22 Martin Sebor <msebor@redhat.com>
31726
31727 PR c/89425
31728 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
31729 unreachable subexpressions.
31730
31731 2019-02-22 H.J. Lu <hongjiu.lu@intel.com>
31732 Hongtao Liu <hongtao.liu@intel.com>
31733 Sunil K Pandey <sunil.k.pandey@intel.com>
31734
31735 PR target/87007
31736 * config/i386/i386-passes.def: Add
31737 pass_remove_partial_avx_dependency.
31738 * config/i386/i386-protos.h
31739 (make_pass_remove_partial_avx_dependency): New.
31740 * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
31741 New function.
31742 (pass_data_remove_partial_avx_dependency): New.
31743 (pass_remove_partial_avx_dependency): Likewise.
31744 (make_pass_remove_partial_avx_dependency): Likewise.
31745 * config/i386/i386.md (avx_partial_xmm_update): New attribute.
31746 (*extendsfdf2): Add avx_partial_xmm_update.
31747 (truncdfsf2): Likewise.
31748 (*float<SWI48:mode><MODEF:mode>2): Likewise.
31749 (SF/DF conversion splitters): Disabled for TARGET_AVX.
31750
31751 2019-02-22 Aldy Hernandez <aldyh@redhat.com>
31752
31753 PR middle-end/85598
31754 * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
31755 analysis for pass.
31756
31757 2019-02-22 Thiago Macieira <thiago.macieira@intel.com>
31758
31759 PR target/89444
31760 * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
31761 (PTA_SKYLAKE): Add PTA_AES.
31762 (PTA_GOLDMONT): Likewise.
31763
31764 2019-02-22 Sudakshina Das <sudi.das@arm.com>
31765
31766 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
31767 instruction if enabled.
31768 (aarch64_override_options): Remove reference to return address key.
31769
31770 2019-02-22 Richard Biener <rguenther@suse.de>
31771
31772 PR tree-optimization/89440
31773 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
31774 not necessary assert.
31775
31776 2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
31777
31778 PR fortran/72741
31779 * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
31780 (oacc_replace_fn_attrib_attr): ... this new function.
31781 * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
31782 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
31783
31784 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31785
31786 * config/arm/arm-cpus.in (ares): Rename to...
31787 (neoverse-n1): ... This. Add ares as alias.
31788 * config/arm/arm-tables.opt: Regenerate.
31789 * config/arm/arm-tune.md: Likewise.
31790 * doc/invoke.txt (ARM Options): Document neoverse-n1.
31791
31792 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31793
31794 * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
31795 * config/aarch64/aarch64-tune.md: Regenerate.
31796 * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
31797
31798 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31799
31800 * config/aarch64/aarch64.c (ares_tunings): Rename to...
31801 (neoversen1_tunings): ... This.
31802 * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
31803 (neoverse-n1): New CPU.
31804 * config/aarch64/aarch64-tune.md: Regenerate.
31805 * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
31806
31807 2019-02-22 Richard Biener <rguenther@suse.de>
31808
31809 PR middle-end/87609
31810 * cfghooks.h (dependence_hash): New typedef.
31811 (struct copy_bb_data): New type.
31812 (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
31813 (duplicate_block): Likewise.
31814 * cfghooks.c (duplicate_block): Pass down copy_bb_data.
31815 (copy_bbs): Create and pass down copy_bb_data.
31816 * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
31817 (rtl_duplicate_bb): Likewise.
31818 * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
31819 remap dependence info.
31820
31821 2019-02-22 Richard Biener <rguenther@suse.de>
31822
31823 PR tree-optimization/87609
31824 * tree-core.h (tree_base): Document special clique values.
31825 * tree-inline.c (remap_dependence_clique): Do not use the
31826 special clique value of one.
31827 (maybe_set_dependence_info): Use clique one.
31828 (clear_dependence_clique): New callback.
31829 (compute_dependence_clique): Clear clique one from all refs
31830 before assigning it (again).
31831
31832 2019-02-21 Martin Sebor <msebor@redhat.com>
31833
31834 * doc/extend.texi (__clear_cache): Correct signature.
31835
31836 2019-02-21 Ian Lance Taylor <iant@golang.org>
31837
31838 PR go/89170
31839 * varasm.c (decode_addr_const): Call lookup_constant_def rather
31840 than output_constant_def.
31841 (add_constant_to_table): New static function.
31842 (output_constant_def): Call add_constant_to_table.
31843 (tree_output_constant_def): Likewise.
31844
31845 2019-02-21 Jakub Jelinek <jakub@redhat.com>
31846
31847 PR c++/89285
31848 * builtins.c (fold_builtin_arith_overflow): If first two args are
31849 INTEGER_CSTs, set intres and ovfres to constants rather than calls
31850 to ifn.
31851
31852 2019-02-21 H.J. Lu <hongjiu.lu@intel.com>
31853
31854 PR target/87412
31855 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
31856 error for -mindirect-branch/-mfunction-return with incompatible
31857 -fcf-protection.
31858
31859 2019-02-21 Jakub Jelinek <jakub@redhat.com>
31860
31861 PR bootstrap/88714
31862 * constraints.md (q): Remove.
31863 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
31864 instead of q.
31865
31866 2019-02-21 Martin Jambor <mjambor@suse.cz>
31867
31868 PR hsa/89302
31869 * omp-general.c (omp_extract_for_data): Removed a duplicate call
31870 to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
31871 (omp_adjust_for_condition): ...here. Added necessary parameters.
31872 * omp-general.h (omp_adjust_for_condition): Updated declaration.
31873 * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
31874 proper values to new parameters of omp_adjust_for_condition.
31875
31876 2019-02-20 Jakub Jelinek <jakub@redhat.com>
31877
31878 PR middle-end/89412
31879 * expr.c (expand_assignment): If result is a MEM, use change_address
31880 instead of simplify_gen_subreg.
31881
31882 2019-02-20 Jakub Jelinek <jakub@redhat.com>
31883 David Malcolm <dmalcolm@redhat.com>
31884
31885 PR middle-end/89091
31886 * fold-const.c (decode_field_reference): Return NULL_TREE if
31887 lang_hooks.types.type_for_size returns NULL. Check it before
31888 overwriting *exp_. Use return NULL_TREE instead of return 0.
31889
31890 2019-02-20 Jakub Jelinek <jakub@redhat.com>
31891
31892 PR middle-end/88074
31893 PR middle-end/89415
31894 * toplev.c (do_compile): Double the emin/emax exponents to workaround
31895 buggy mpc_norm.
31896
31897 2019-02-20 Uroš Bizjak <ubizjak@gmail.com>
31898
31899 PR target/89397
31900 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
31901 TARGET_SSE in addition to TARGET_SSE_MATH.
31902
31903 (ix86_excess_precision): Ditto.
31904 (ix86_float_exceptions_rounding_supported_p): Ditto.
31905 (use_rsqrt_p): Ditto.
31906 * config/i386/sse.md (rsqrt<mode>2): Ditto.
31907
31908 2019-02-20 David Malcolm <dmalcolm@redhat.com>
31909
31910 PR c/89410
31911 * diagnostic-show-locus.c (layout::calculate_line_spans): Use
31912 linenum_arith_t when determining if two adjacent line spans are
31913 close enough to merge.
31914 (diagnostic_show_locus): Use linenum_arith_t when iterating over
31915 lines within each line_span.
31916
31917 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
31918
31919 PR target/86487
31920 * lra-constraints.c(uses_hard_regs_p): Fix handling of
31921 paradoxical SUBREGS.
31922
31923 2019-02-20 Li Jia He <helijia@linux.ibm.com>
31924
31925 PR target/88100
31926 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
31927 <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
31928 ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
31929 range checking it.
31930
31931 2019-02-19 Jonathan Wakely <jwakely@redhat.com>
31932
31933 * config/gcn/gcn.c (print_operand): Fix typo.
31934
31935 2019-02-19 Richard Biener <rguenther@suse.de>
31936
31937 PR middle-end/88074
31938 * toplev.c (do_compile): Initialize mpfr's exponent range
31939 based on available float modes.
31940
31941 2019-02-19 Eric Botcazou <ebotcazou@adacore.com>
31942
31943 * rtlanal.c (get_initial_register_offset): Fall back to the estimate
31944 as long as the epilogue isn't completed.
31945
31946 2019-02-18 Martin Sebor <msebor@redhat.com>
31947
31948 * doc/cpp.texi (Conditional syntax): Add __has_attribute,
31949 __has_cpp_attribute, and __has_include.
31950
31951 2019-02-18 Martin Sebor <msebor@redhat.com>
31952
31953 * doc/invoke.texi (-Wreturn-type): Correct and expand.
31954
31955 2019-02-18 Martin Sebor <msebor@redhat.com>
31956
31957 PR middle-end/89294
31958 * tree.c (valid_constant_size_p): Avoid assuming size is a constant
31959 expression.
31960 * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
31961
31962 2019-02-18 Richard Biener <rguenther@suse.de>
31963
31964 PR tree-optimization/89296
31965 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
31966 of no-warning flag to cases that might emit the bogus warning.
31967
31968 2019-02-18 Jakub Jelinek <jakub@redhat.com>
31969
31970 PR bootstrap/88714
31971 * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
31972 "q" constraint.
31973 * config/arm/vfp.md (*movdi_vfp): Likewise.
31974 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
31975 "q" constraint for operands[0].
31976
31977 PR target/89369
31978 * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
31979 *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
31980 pattern in a temporary buffer.
31981 (*r<noxa>sbg_sidi_srl): Likewise. Always use 32 as I3 rather
31982 than 64-operands[2].
31983
31984 PR target/89361
31985 * config/s390/s390.c (s390_indirect_branch_attrvalue,
31986 s390_indirect_branch_settings): Define unconditionally.
31987 (s390_set_current_function): Likewise, but guard the whole body except
31988 the s390_indirect_branch_settings call with
31989 #if S390_USE_TARGET_ATTRIBUTE.
31990 (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
31991
31992 * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
31993 *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
31994 Use HOST_WIDE_INT_M1U instead of ~(0ULL).
31995 (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
31996 HOST_WIDE_INT_1U instead of 1ULL.
31997 (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
31998 to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
31999 (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
32000 z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
32001 instead of 1UL.
32002 (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
32003 instead of 1ul.
32004
32005 2019-02-18 Martin Jambor <mjambor@suse.cz>
32006
32007 PR tree-optimization/89209
32008 * tree-sra.c (create_access_replacement): New optional parameter
32009 reg_tree. Use it as a type if non-NULL and access type is not of
32010 a register type.
32011 (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
32012 to create_access_replacement.
32013 (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
32014 Check lacc is non-NULL before attempting to re-create it on the RHS.
32015
32016 2019-02-18 Martin Liska <mliska@suse.cz>
32017
32018 PR ipa/89306
32019 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
32020 by default.
32021 (symbol_table::free_edge): Recycle m_summary_id.
32022 * cgraph.h (get_summary_id): New.
32023 (symbol_table::release_symbol): Set m_summary_id to -1
32024 by default.
32025 (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
32026 * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
32027 function_summary to fast_function_summary.
32028 * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
32029 * ipa-pure-const.c (class funct_state_summary_t):
32030 Switch from function_summary to fast_function_summary.
32031 * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
32032 (class ipa_ref_opt_summary_t): Switch from function_summary
32033 to fast_function_summary.
32034 * symbol-summary.h (class function_summary_base): New class
32035 that is created from base of former function_summary.
32036 (function_summary_base::unregister_hooks): New.
32037 (class function_summary): Inherit from function_summary_base.
32038 (class call_summary_base): New class
32039 that is created from base of former call_summary.
32040 (class call_summary): Inherit from call_summary_base.
32041 (struct is_same): New.
32042 (class fast_function_summary): New summary class.
32043 (class fast_call_summary): New summary class.
32044 * vec.h (vec_safe_grow_cleared): New function.
32045
32046 2019-02-18 Martin Liska <mliska@suse.cz>
32047
32048 * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
32049 (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
32050 * doc/tm.texi: Document new target hook.
32051 * doc/tm.texi.in: Likewise.
32052 * target.def: Add new target macro.
32053 * gcc.c (find_fortran_preinclude_file): Do not search multilib
32054 suffixes.
32055
32056 2019-02-17 Alan Modra <amodra@gmail.com>
32057
32058 PR target/89271
32059 * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
32060 output reg on add insn.
32061 (<bd>tf_<mode> split): Likewise. Match predicates with insn.
32062
32063 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
32064
32065 PR target/89372
32066 * config/i386/sse.md (ssedoublemode): Remove V4HI.
32067 (PMULHRSW): Likewise.
32068 (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
32069 TARGET_AVX2.
32070 (ssse3_pmulhrswv4hi3): New expander.
32071
32072 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
32073
32074 * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
32075 MMX. Add isa attribute.
32076
32077 2019-02-16 Jakub Jelinek <jakub@redhat.com>
32078
32079 PR rtl-optimization/66152
32080 * builtins.h (c_readstr): Declare.
32081 * builtins.c (c_readstr): Remove forward declaration. Add
32082 null_terminated_p argument, if false, read all bytes from the
32083 string instead of stopping after '\0'.
32084 * expr.c (string_cst_read_str): New function.
32085 (store_expr): Use string_cst_read_str instead of
32086 builtin_strncpy_read_str. Try to store by pieces the whole
32087 exp_len first, and only if that fails, split it up into
32088 store by pieces followed by clear_storage. Formatting fix.
32089
32090 * config/i386/i386.md (*movqi_internal): Remove static from
32091 buf variable. Use output_asm_insn (buf, operands); return "";
32092 instead of return buf;.
32093 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
32094 *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
32095 *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
32096
32097 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
32098
32099 * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
32100 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
32101 * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
32102 (CC1_SPEC): Likewise.
32103 * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
32104
32105 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
32106
32107 * asan.c (asan_emit_stack_protection): Use full-sized mask to align
32108 the base address on 64-bit strict-alignment platforms.
32109
32110 2019-02-15 H.J. Lu <hongjiu.lu@intel.com>
32111
32112 * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
32113
32114 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
32115
32116 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
32117
32118 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com>
32119
32120 PR rtl-optimization/88308
32121 * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
32122 on copied instruction.
32123
32124 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
32125
32126 * final.c (insn_current_reference_address): Replace test on JUMP_P
32127 with test on jump_to_label_p.
32128 * config/visium/visium-passes.def: New file.
32129 * config/visium/t-visium (PASSES_EXTRA): Define.
32130 * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
32131 * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
32132 (TRAMPOLINE_ALIGNMENT): Define.
32133 * config/visium/visium.c (visium_option_override): Do not register
32134 the machine-specific reorg pass here.
32135 (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
32136 for the GR6.
32137 (output_branch): Adjust threshold for long branch instruction.
32138 * config/visium/visium.md (cpu): Move around.
32139 (length): Adjust for the GR6.
32140
32141 2019-02-15 Richard Biener <rguenther@suse.de>
32142 Jakub Jelinek <jakub@redhat.com>
32143
32144 PR tree-optimization/89278
32145 * tree-loop-distribution.c: Include tree-eh.h.
32146 (generate_memset_builtin, generate_memcpy_builtin): Call
32147 rewrite_to_non_trapping_overflow on builtin->size before passing it
32148 to force_gimple_operand_gsi.
32149
32150 2019-02-15 Jakub Jelinek <jakub@redhat.com>
32151
32152 PR other/89342
32153 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
32154 optimize_debug.
32155 * opth-gen.awk: Likewise.
32156
32157 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
32158
32159 * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
32160 Enable MMX, SSE and SSE2 by default.
32161 * config/i386/i386.c (ix86_option_override_internal): Do not
32162 explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
32163
32164 2019-02-14 Jakub Jelinek <jakub@redhat.com>
32165
32166 PR rtl-optimization/89354
32167 * combine.c (make_extraction): Punt if extraction_mode is narrower
32168 than len bits.
32169
32170 2019-02-14 Maya Rashish <coypu@sdf.org>
32171
32172 * config.gcc (*-*-netbsd*): Add netbsd-d.o.
32173 * config/netbsd-d.c: New file.
32174 * config/t-netbsd: Add netbsd-d.o
32175
32176 2018-02-14 Steve Ellcey <sellcey@marvell.com>
32177
32178 * config/aarch64/aarch64.c (aarch64_attribute_table): Change
32179 affects_type_identity to true for aarch64_vector_pcs.
32180 (aarch64_comp_type_attributes): New function.
32181 (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
32182
32183 2019-02-14 Tamar Christina <tamar.christina@arm.com>
32184
32185 PR target/88850
32186 * config/arm/iterators.md (ANY64): Add V4HF.
32187
32188 2019-02-14 Martin Liska <mliska@suse.cz>
32189
32190 PR rtl-optimization/89242
32191 * dce.c (delete_unmarked_insns): Call free_dominance_info we
32192 process a transformation.
32193
32194 2019-02-14 Jakub Jelinek <jakub@redhat.com>
32195
32196 PR tree-optimization/89314
32197 * fold-const.c (fold_binary_loc): Cast strlen argument to
32198 const char * before dereferencing it. Formatting fixes.
32199
32200 PR middle-end/89284
32201 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
32202
32203 2019-02-13 Ian Lance Taylor <iant@golang.org>
32204
32205 * optc-save-gen.awk: Set var_opt_hash for initial optimizations
32206 and set current index for other optimizations.
32207
32208 2019-02-13 Uroš Bizjak <ubizjak@gmail.com>
32209
32210 * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
32211 nonimmediate_operand as operand 2 predicate.
32212 (vec_set<VF2_512_256:mode>_0): Ditto.
32213 (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
32214 (*vec_concatv2si): Remove alternative 2.
32215 (*vec_concatv4si_0): Use vm constraint for alternative 0.
32216 (*vec_concatv4si_0): Remove preferred_for_speed attribute.
32217 (vec_concatv2di): Split alternatives 4,5,6 to ...
32218 (*vec_concatv2di_0) ... new pattern.
32219
32220 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com>
32221
32222 PR target/89190
32223 * config/arm/arm.c (ldm_stm_operation_p) Set
32224 addr_reg_in_reglist correctly for first register.
32225 (load_multiple_sequence): Remove dead base check.
32226 (gen_ldm_seq): Correctly set write_back for Thumb-1.
32227
32228 2019-02-13 Tamar Christina <tamar.christina@arm.com>
32229
32230 PR target/88847
32231 * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
32232 Expose as @aarch64_pred_mov.
32233 * config/aarch64/aarch64.c (aarch64_classify_address):
32234 Use expand_insn which legitimizes operands.
32235
32236 2019-02-13 Martin Liska <mliska@suse.cz>
32237
32238 * builtins.h (expand_builtin_with_bounds): Remove declaration.
32239 * calls.c (struct arg_data): Remove special_slot, pointer_arg
32240 and pointer_offset fields.
32241 (initialize_argument_information): Remove usage of dead
32242 fields.
32243 * cgraph.h (struct cgraph_thunk_info): Remove
32244 add_pointer_bounds_args.
32245 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
32246 fields.
32247 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
32248 fields.
32249 * config/i386/i386.c (ix86_function_arg_advance): Remove
32250 unrelated comment.
32251 (struct builtin_isa): Remove leaf_p and nothrow_p fields.
32252 (def_builtin): Remove usage of dead fields.
32253 (ix86_add_new_builtins): Likewise.
32254 * ipa-fnsummary.c (compute_fn_summary): Likewise.
32255 * ipa-icf.c (sem_function::equals_wpa): Likewise.
32256 (sem_function::init): Likewise.
32257 (sem_variable::merge): Likewise.
32258 * ipa-visibility.c (function_and_variable_visibility): Likewise.
32259 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
32260 * lto-cgraph.c (lto_output_node): Likewise.
32261 (lto_output_varpool_node): Likewise.
32262 (input_node): Likewise.
32263 (input_varpool_node): Likewise.
32264 * lto-streamer-out.c (lto_output): Likewise.
32265 * tree-inline.c (expand_call_inline): Remove usage of
32266 assign_stmts.
32267 * tree-inline.h (struct copy_body_data): Likewise.
32268 * varpool.c (varpool_node::dump): Likewise.
32269
32270 2019-02-13 Jakub Jelinek <jakub@redhat.com>
32271
32272 PR middle-end/89303
32273 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
32274 into pt->vars_contains_escaped_heap instead of setting
32275 pt->vars_contains_escaped_heap to it.
32276
32277 PR middle-end/89281
32278 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
32279 INTVAL (size), compare it to GET_MODE_MASK instead of
32280 1 << GET_MODE_BITSIZE.
32281
32282 PR target/89290
32283 * config/i386/predicates.md (x86_64_immediate_operand): Allow
32284 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
32285 -mcmodel=large.
32286
32287 2019-02-13 Martin Liska <mliska@suse.cz>
32288
32289 PR lto/88858
32290 * cfgrtl.c (remove_barriers_from_footer): New function.
32291 (try_redirect_by_replacing_jump): Use it.
32292 (cfg_layout_redirect_edge_and_branch): Likewise.
32293
32294 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
32295
32296 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
32297 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
32298 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
32299 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
32300 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
32301 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
32302 New BU_CRYPTO_2.
32303 * config/rs6000/rs6000.c (builtin_function_type)
32304 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
32305 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
32306 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
32307 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
32308 vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
32309
32310 2019-02-12 Pat Haugen <pthaugen@us.ibm.com>
32311
32312 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
32313 -maltivec. Delete -maltivec=be and -maltivec=le documentation.
32314
32315 2019-02-12 H.J. Lu <hongjiu.lu@intel.com>
32316
32317 PR target/89229
32318 * config/i386/i386.md (*movoi_internal_avx): Revert revision
32319 268678 and revision 268657.
32320 (*movti_internal): Likewise.
32321
32322 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com>
32323
32324 PR target/89233
32325 * config/s390/s390.c (s390_decompose_address): Update comment.
32326 (s390_check_qrst_address): Reject invalid address forms after
32327 LRA.
32328
32329 2019-02-12 Martin Liska <mliska@suse.cz>
32330
32331 PR lto/88876
32332 * ipa-pure-const.c (propagate_pure_const): Revert hunk as
32333 we need default values of funct_state for a function that
32334 is not optimized.
32335
32336 2019-02-12 Eric Botcazou <ebotcazou@adacore.com>
32337
32338 * asan.c (asan_expand_mark_ifn): Take into account the alignment of
32339 the object to pick the size of stores on strict-alignment platforms.
32340
32341 * config/sparc/sparc.md (*movsi_insn): Minor tweak.
32342 (*movdi_insn_sp32): Likewise.
32343 (*movdi_insn_sp64): Likewise.
32344
32345 2019-02-12 Jan Hubicka <hubicka@ucw.cz>
32346
32347 PR lto/88677
32348 * cgraphunit.c (analyze_functions): Clear READONLY flag for external
32349 types that needs constructiong.
32350 * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
32351
32352 2019-02-12 Richard Biener <rguenther@suse.de>
32353
32354 PR tree-optimization/89253
32355 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
32356 duplicate the loop.
32357
32358 2019-02-11 David Malcolm <dmalcolm@redhat.com>
32359
32360 PR lto/88147
32361 * input.c (selftest::test_line_offset_overflow): New selftest.
32362 (selftest::input_c_tests): Call it.
32363
32364 2019-02-11 Martin Sebor <msebor@redhat.com>
32365
32366 PR tree-optimization/88771
32367 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
32368 when -Wstringop-overflow is set.
32369 (builtin_memref::builtin_memref): Adjust excessive upper bound
32370 only when lower bound is not excessive.
32371 (maybe_diag_overlap): Detect and diagnose excessive bounds via
32372 -Wstringop-ovefflow.
32373 (maybe_diag_offset_bounds): Rename...
32374 (maybe_diag_access_bounds): ...to this.
32375 (check_bounds_or_overlap): Adjust for name change above.
32376
32377 2019-02-11 Martin Sebor <msebor@redhat.com>
32378
32379 PR c++/87996
32380 * builtins.c (max_object_size): Move from here...
32381 * builtins.h (max_object_size): ...and here...
32382 * tree.c (max_object_size): ...to here...
32383 * tree.h (max_object_size): ...and here.
32384
32385 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com>
32386
32387 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
32388 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
32389 for correct semantics.
32390
32391 2019-02-11 Alan Modra <amodra@gmail.com>
32392
32393 * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
32394 -mlongcall and -mpltseq.
32395 (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
32396 (RS/6000 and PowerPC Options <-mpltseq>): Document.
32397 * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
32398 * config/rs6000/sysv4.opt (mpltseq): New option.
32399 * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
32400 (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
32401 support is lacking. Don't allow -mpltseq with -mbss-plt.
32402 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
32403 -mpltseq given for ELFv1.
32404 * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
32405 Only use UNSPEC_PLTSEQ for inline PLT calls.
32406 (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only
32407 use UNSPEC_PLTSEQ for inline PLT calls.
32408 (rs6000_indirect_call_template_1, rs6000_longcall_ref),
32409 (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
32410 uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
32411 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
32412 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
32413 (pltseq_mtctr_<mode>): Likewise.
32414
32415 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32416
32417 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
32418 Solaris ld.
32419 * configure: Regenerate.
32420
32421 2019-02-11 Jakub Jelinek <jakub@redhat.com>
32422
32423 PR bootstrap/88714
32424 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
32425 instead of r.
32426
32427 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
32428
32429 * function.c (assign_parm_setup_block): Use the stored
32430 size, not the passed size, when allocating stack-space,
32431 also for a parameter with alignment larger than
32432 MAX_SUPPORTED_STACK_ALIGNMENT.
32433
32434 2019-02-11 Martin Liska <mliska@suse.cz>
32435
32436 PR ipa/89009
32437 * ipa-cp.c (build_toporder_info): Remove usage of a param.
32438 * ipa-inline.c (inline_small_functions): Likewise.
32439 * ipa-pure-const.c (propagate_pure_const): Likewise.
32440 (propagate_nothrow): Likewise.
32441 * ipa-reference.c (propagate): Likewise.
32442 * ipa-utils.c (struct searchc_env): Remove unused field.
32443 (searchc): Always search across AVAIL_INTERPOSABLE.
32444 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
32445 the only called IPA pure const can properly not propagate
32446 across interposable boundary.
32447 * ipa-utils.h (ipa_reduced_postorder): Remove param.
32448
32449 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com>
32450
32451 * config/nds32/nds32.md (call_internal, call_value_internal,
32452 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
32453
32454 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
32455
32456 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
32457 typo.
32458
32459 2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
32460
32461 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
32462 in comments
32463
32464 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
32465
32466 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
32467
32468 2019-02-10 Jakub Jelinek <jakub@redhat.com>
32469
32470 PR tree-optimization/89268
32471 * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
32472 if preds is non-NULL.
32473
32474 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
32475
32476 PR lto/89272
32477 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
32478 polymorphic types.
32479
32480 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
32481
32482 * config/nds32/nds32.md (trap): New pattern.
32483
32484 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
32485
32486 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
32487 dwarf span.
32488
32489 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
32490
32491 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
32492 to split POST_INC.
32493
32494 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
32495
32496 * ipa-visibility.c (localize_node): Also do not localize
32497 LDPR_PREVAILING_DEF_IRONLY_EXP.
32498
32499 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
32500
32501 PR lto/87957
32502 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
32503 instead of type_with_linkage.
32504
32505 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
32506
32507 PR ipa/88755
32508 * params.def (uninlined-function-insns, uninlined-function-time,
32509 uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
32510 bound so we don't get overflows.
32511
32512 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
32513
32514 * config/rs6000/rs6000-string.c (expand_compare_loop,
32515 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
32516 memcmp/strncmp.
32517
32518 2019-02-09 Jakub Jelinek <jakub@redhat.com>
32519
32520 PR middle-end/89246
32521 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
32522 If !node->definition and TYPE_ARG_TYPES is non-NULL, use
32523 TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
32524
32525 2019-02-09 Alan Modra <amodra@gmail.com>
32526
32527 PR target/88343
32528 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
32529 case. Match logic in rs6000_emit_prologue emitting pic_offset_table
32530 setup.
32531
32532 2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
32533
32534 PR middle-end/88560
32535 * lra-constraints.c (process_alt_operands): Don't increase reject
32536 for memory when offset memory is required.
32537
32538 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
32539
32540 * config/s390/vector.md: Implement vector copysign.
32541
32542 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
32543
32544 * expr.c (expand_constructor): Correct indentations.
32545
32546 2019-02-08 Richard Biener <rguenther@suse.de>
32547
32548 PR tree-optimization/89247
32549 * tree-if-conv.c: Include tree-cfgcleanup.h.
32550 (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
32551 (tree_if_conversion): Pass through predicate vector.
32552 (pass_if_conversion::execute): Do CFG cleanup and SSA update
32553 inline, see if any if-converted loops we refrece in
32554 LOOP_VECTORIZED calls vanished and fixup.
32555 * tree-if-conv.h (tree_if_conversion): Adjust prototype.
32556
32557 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
32558
32559 * config/s390/constraints.md (jdd): New constraint.
32560
32561 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
32562
32563 PR target/89229
32564 * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
32565 upper 16 vector registers without TARGET_AVX512VL.
32566 (*movti_internal): Likewise.
32567
32568 2019-02-08 Jakub Jelinek <jakub@redhat.com>
32569
32570 PR rtl-optimization/89234
32571 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
32572 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
32573 (copy_reg_eh_region_note_backward): Likewise.
32574
32575 2019-02-08 Richard Biener <rguenther@suse.de>
32576
32577 PR middle-end/89223
32578 * tree-data-ref.c (initialize_matrix_A): Fail if constant
32579 doesn't fit in HWI.
32580 (analyze_subscript_affine_affine): Handle failure from
32581 initialize_matrix_A.
32582
32583 2019-02-08 Jakub Jelinek <jakub@redhat.com>
32584
32585 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
32586 cfun everywhere.
32587
32588 2019-02-07 David Malcolm <dmalcolm@redhat.com>
32589
32590 PR tree-optimization/86637
32591 PR tree-optimization/89235
32592 * tree-vect-loop.c (optimize_mask_stores): Add an
32593 auto_purge_vect_location sentinel to ensure that vect_location is
32594 purged on exit.
32595 * tree-vectorizer.c
32596 (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
32597 (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
32598 to ensure that vect_location is purged on exit.
32599 (pass_slp_vectorize::execute): Likewise, replacing the manual
32600 reset.
32601 * tree-vectorizer.h (class auto_purge_vect_location): New class.
32602
32603 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32604
32605 * config/aarch64/iterators.md (max_opp): New code_attr.
32606 (USMAX): New code iterator.
32607 * config/aarch64/predicates.md (aarch64_smin): New predicate.
32608 (aarch64_smax): Likewise.
32609 * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
32610 (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
32611 MINUS (MAX MIN).
32612
32613 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
32614
32615 PR target/89229
32616 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
32617 for TARGET_AVX512VL.
32618 (*movti_internal): Set mode to TI for TARGET_AVX512VL.
32619
32620 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
32621
32622 * config/s390/s390-builtin-types.def: Add new types.
32623 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
32624 (s390_vec_xlw4): Make the memory operand into a const pointer.
32625 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
32626 float.
32627 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
32628 a new vector type with the alignment of the scalar memory operand.
32629
32630 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
32631 Jakub Jelinek <jakub@redhat.com>
32632
32633 PR bootstrap/88714
32634 * config/arm/arm-protos.h (valid_operands_ldrd_strd,
32635 arm_count_ldrdstrd_insns): New declarations.
32636 * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
32637 MINUS.
32638 (valid_operands_ldrd_strd): New function.
32639 (arm_count_ldrdstrd_insns): New function.
32640 * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
32641 sets instead of single DImode set and define new insns to match this.
32642
32643 2019-02-07 Tamar Christina <tamar.christina@arm.com>
32644
32645 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
32646 Make it a C initializer.
32647
32648 2019-02-07 Tamar Christina <tamar.christina@arm.com>
32649
32650 PR/target 88850
32651 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
32652
32653 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32654
32655 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
32656 Use neon_dot<q> for type.
32657 (neon_<sup>dot_lane<vsi2qi>): Likewise.
32658
32659 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32660
32661 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
32662 Use neon_dot<q> for type.
32663 (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
32664 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
32665
32666 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
32667
32668 PR rtl-optimization/89225
32669 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
32670 sizes check.
32671
32672 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
32673
32674 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
32675 after restoring registers saved to allocate the frame on Windows.
32676
32677 2019-02-06 Richard Biener <rguenther@suse.de>
32678
32679 PR tree-optimization/89182
32680 * graphite.h (cached_scalar_evolution_in_region): Declare.
32681 * graphite.c (struct seir_cache_key): New.
32682 (struct sese_scev_hash): Likewise.
32683 (seir_cache): New global.
32684 (cached_scalar_evolution_in_region): New function.
32685 (graphite_transform_loops): Allocate and release seir_cache.
32686 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
32687 cached_scalar_evolution_in_region.
32688 * graphite-scop-detection.c (scop_detection::can_represent_loop):
32689 Simplify.
32690 (scop_detection::graphite_can_represent_expr: Use
32691 cached_scalar_evolution_in_region.
32692 (scop_detection::stmt_simple_for_scop_p): Likewise.
32693 (find_params_in_bb): Likewise.
32694 (gather_bbs::before_dom_children): Likewise.
32695 * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
32696 (add_loop_constraints): Likewise.
32697
32698 2019-02-06 Jakub Jelinek <jakub@redhat.com>
32699
32700 PR middle-end/89210
32701 * fold-const-call.c (fold_const_vec_convert): Pass true as last
32702 operand to new_unary_operation only if both element types are integral
32703 and it isn't a widening conversion. Return NULL_TREE if
32704 new_unary_operation failed.
32705
32706 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
32707
32708 PR target/88856
32709 * config/s390/s390.md: Remove load and test FP splitter.
32710
32711 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
32712
32713 PR target/89112
32714 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
32715 expand_compare_loop, expand_block_compare_gpr,
32716 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
32717 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
32718 #include "profile-count.h" and "predict.h" for types and functions
32719 needed to work with REG_BR_PROB notes.
32720
32721 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
32722
32723 PR target/89112
32724 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
32725 for the long branch case.
32726
32727 2019-02-05 Jakub Jelinek <jakub@redhat.com>
32728
32729 PR target/89188
32730 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
32731 can throw, non-call exceptions are enabled and we can't delete
32732 dead exceptions or alter cfg. Set must_clean if
32733 delete_insn_and_edges returns true, don't set it blindly for calls.
32734 Assert that delete_unreachable_blocks is called only if can_alter_cfg.
32735
32736 PR rtl-optimization/89195
32737 * combine.c (make_extraction): For MEMs, don't extract bytes outside
32738 of the original MEM.
32739
32740 2019-02-05 Martin Liska <mliska@suse.cz>
32741
32742 PR gcov-profile/89000
32743 * gcov.c (function_summary): Remove argument.
32744 (file_summary): New function.
32745 (print_usage): Replace tabs with spaces.
32746 (generate_results): Use new function file_summary.
32747
32748 2019-02-05 Jakub Jelinek <jakub@redhat.com>
32749
32750 PR target/89186
32751 * optabs.c (prepare_cmp_insn): Pass x and y to
32752 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
32753
32754 2019-02-05 Richard Biener <rguenther@suse.de>
32755
32756 PR middle-end/89150
32757 * bitmap.h (struct bitmap_obstack): Do not mark GTY.
32758 (struct bitmap_element): Drop chain_prev so we properly recurse on
32759 the prev member, supporting tree views.
32760 (struct bitmap_head): GTY skip the obstack member.
32761
32762 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
32763
32764 PR c/88698
32765 * doc/extend.texi (Vector Extensions): Add an example of using vector
32766 types together with x86 intrinsics.
32767
32768 2019-02-04 Alan Modra <amodra@gmail.com>
32769
32770 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
32771 str[] size to 160, and comment.
32772
32773 2019-02-04 Alan Modra <amodra@gmail.com>
32774
32775 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
32776 (rs6000_pltseq_template): Guard output of TLS markers with
32777 TARGET_TLS_MARKERS.
32778 (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
32779 (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
32780 to use inline PLT sequences.
32781 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
32782 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
32783 (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
32784
32785 2019-02-04 Martin Liska <mliska@suse.cz>
32786
32787 PR ipa/88985
32788 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
32789 out when ipa_fn_summaries does not contain entry for callee.
32790
32791 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
32792
32793 * config/sparc/sparc.h: Remove superfluous blank lines.
32794 * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
32795 (got_register_rtx): ...this.
32796 (sparc_got): Adjust to above renaming.
32797 (sparc_tls_got): Likewise.
32798 (sparc_delegitimize_address): Likewise.
32799 (sparc_output_mi_thunk): Likewise.
32800 (sparc_init_pic_reg): Likewise.
32801 (save_local_or_in_reg_p): Fix test on the GOT register.
32802 (USE_HIDDEN_LINKONCE): Move around.
32803 (get_pc_thunk_name): Likewise.
32804 (gen_load_pcrel_sym): Likewise.
32805 (load_got_register): Likewise.
32806
32807 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
32808
32809 * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
32810 of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
32811
32812 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
32813
32814 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
32815 into consideration.
32816
32817 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
32818
32819 * config.gcc (with_nds32_lib, glibc):
32820 Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
32821 * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
32822 (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
32823
32824 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
32825
32826 PR target/89071
32827 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
32828 Do not prefer (v,v) alternative for non-AVX targets and (m,v)
32829 alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
32830 (*rcpsf2_sse): Ditto.
32831 (*rsqrtsf2_sse): Ditto.
32832 (sse4_1_round<mode<2): Ditto.
32833
32834 2019-02-03 Richard Biener <rguenther@suse.de>
32835
32836 PR debug/87295
32837 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
32838 orig.
32839
32840 2019-02-02 Jakub Jelinek <jakub@redhat.com>
32841
32842 PR middle-end/87887
32843 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
32844 Punt with warning on aggregate return or argument types. Ignore
32845 type/mode checking for uniform arguments.
32846
32847 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
32848
32849 * combine.c (try_combine): Do not print "Can't combine" messages unless
32850 printing failed combination attempts.
32851
32852 2019-02-01 Martin Jambor <mjambor@suse.cz>
32853
32854 PR hsa/87863
32855 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
32856 segment and global segment variables before making them static.
32857
32858 2019-02-01 Martin Jambor <mjambor@suse.cz>
32859
32860 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
32861 missed optimization dump with dump_enabled_p.
32862
32863 2019-02-01 Richard Biener <rguenther@suse.de>
32864
32865 PR middle-end/88597
32866 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
32867 the instantiate cache.
32868 (instantiate_scev_binary): Elide second operand procesing
32869 if equal to the first.
32870 * tree-chrec.c (chrec_contains_symbols): Add visited set.
32871 (chrec_contains_undetermined): Likewise.
32872 (tree_contains_chrecs): Likewise.
32873
32874 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
32875
32876 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
32877
32878 2019-02-01 Jakub Jelinek <jakub@redhat.com>
32879
32880 PR tree-optimization/89143
32881 * wide-int-range.h (wide_int_range_absu): Declare.
32882 * wide-int-range.cc (wide_int_range_absu): New function.
32883 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
32884
32885 PR tree-optimization/88107
32886 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
32887 instead of assertion that eh_region_outermost is non-NULL, if it
32888 is NULL, set *ALL to true and return NULL.
32889 (move_sese_region_to_fn): Adjust caller, if all is set, call
32890 duplicate_eh_regions with NULL region.
32891
32892 2019-02-01 Richard Biener <rguenth@suse.de>
32893
32894 PR rtl-optimization/88593
32895 * mode-switching.c (optimize_mode_switching): Free dominators before
32896 calling cleanup_cfg.
32897
32898 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
32899
32900 PR tree-optimization/88932
32901 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
32902
32903 2019-01-31 Jakub Jelinek <jakub@redhat.com>
32904
32905 PR middle-end/89137
32906 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
32907 bogus clang warning.
32908
32909 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
32910
32911 PR target/89071
32912 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
32913 alternative to avoid partial SSE register stall for TARGET_AVX.
32914 (truncdfsf2): Ditto.
32915 (sse4_1_round<mode>2): Ditto.
32916
32917 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
32918
32919 PR tree-optimization/89008
32920 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
32921 process anything of the form X * 0.
32922
32923 2019-01-31 Richard Biener <rguenther@suse.de>
32924
32925 PR tree-optimization/89135
32926 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
32927 with abnormal preds.
32928
32929 2019-01-31 Jakub Jelinek <jakub@redhat.com>
32930
32931 PR sanitizer/89124
32932 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
32933 always_inline callees into no_sanitize_address callers.
32934
32935 2019-01-31 Richard Biener <rguenther@suse.de>
32936
32937 PR rtl-optimization/89115
32938 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
32939
32940 2019-01-30 Martin Sebor <msebor@redhat.com>
32941
32942 PR other/89106
32943 * doc/extend.texi (cast to a union): Correct and expand.
32944
32945 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
32946
32947 PR rtl-optimization/87246
32948 * lra-constraints.c (simplify_operand_subreg): Reload memory
32949 in subreg if the address became invalid.
32950
32951 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
32952
32953 PR target/87064
32954 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
32955 Disable for little-endian.
32956
32957 2019-01-30 Richard Biener <rguenther@suse.de>
32958
32959 PR rtl-optimization/89115
32960 * opts.c (default_options_optimization): Reduce
32961 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
32962 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
32963 to the default.
32964
32965 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
32966
32967 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
32968 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
32969 type of vector element when vec_extract is implemented by direct
32970 move.
32971
32972 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
32973
32974 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
32975
32976 2019-01-30 Richard Biener <rguenther@suse.de>
32977
32978 PR tree-optimization/89111
32979 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
32980 canonicalization to appropriately sized access types.
32981
32982 2019-01-30 Jakub Jelinek <jakub@redhat.com>
32983
32984 PR c++/89105
32985 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
32986 for arguments to functions that are TU-local and shouldn't be
32987 referenced by assembly.
32988
32989 2019-01-30 Ulrich Drepper <drepper@redhat.com>
32990
32991 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
32992 after '='.
32993
32994 2019-01-29 Martin Sebor <msebor@redhat.com>
32995
32996 PR c/88956
32997 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
32998
32999 2019-01-29 Jakub Jelinek <jakub@redhat.com>
33000
33001 PR c++/66676
33002 PR ipa/89104
33003 * omp-simd-clone.c (simd_clone_clauses_extract)
33004 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
33005 OMP_CLAUSE_ALIGNED_ALIGNMENT.
33006
33007 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
33008
33009 * config.gcc: Force .init_array for ARC.
33010
33011 2019-01-29 Richard Biener <rguenther@suse.de>
33012
33013 PR debug/87295
33014 * dwarf2out.c (collect_skeleton_dies): New helper.
33015 (copy_decls_for_unworthy_types): Call it.
33016 (build_abbrev_table): Assert we do not try to replace
33017 DW_AT_signature refs with local refs.
33018
33019 2019-01-28 Jakub Jelinek <jakub@redhat.com>
33020
33021 PR middle-end/89002
33022 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
33023 for lastprivate/linear IV, push gimplify context around gimplify_assign
33024 and, if it needed any temporaries, pop it into a gimple bind around the
33025 sequence.
33026
33027 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
33028
33029 * common.opt (-Wattribute-alias): Remove "no-" from name.
33030 Make -Wattribute-alias command line option and
33031 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
33032
33033 2019-01-28 Jakub Jelinek <jakub@redhat.com>
33034
33035 PR target/89073
33036 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
33037 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
33038 x86 ISA options.
33039 (bmi2): Add missing @opindex.
33040 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
33041 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
33042 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
33043 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
33044 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
33045 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
33046 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
33047 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
33048 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
33049 xsavec, xsaveopt and xsaves options.
33050
33051 2019-01-28 Richard Biener <rguenther@suse.de>
33052
33053 PR debug/89076
33054 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
33055 support removal.
33056
33057 2019-01-28 Richard Biener <rguenther@suse.de>
33058
33059 PR tree-optimization/88739
33060 * tree-cfg.c (verify_types_in_gimple_reference): Verify
33061 BIT_FIELD_REFs only are applied to mode-precision operands
33062 when they are integral.
33063 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
33064 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
33065 BIT_FIELD_REFs of non-mode-precision integral operands.
33066
33067 2019-01-27 Jakub Jelinek <jakub@redhat.com>
33068
33069 PR target/87214
33070 * config/i386/sse.md
33071 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
33072 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
33073 first constants in pairs are multiples of 2. Formatting fixes.
33074 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
33075 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
33076 first constants in each quadruple are multiples of 4. Formatting fixes.
33077
33078 2019-01-26 Martin Jambor <mjambor@suse.cz>
33079
33080 PR ipa/88933
33081 * tree-inline.c: Include tree-cfgcleanup.h.
33082 (delete_unreachable_blocks_update_callgraph): Move...
33083 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
33084 ...here, make externally visible, make second argument bool, adjust
33085 all callers.
33086 * tree-cfgcleanup.c: Include cgraph.h.
33087 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
33088 Declare.
33089 * ipa-prop.c: Include tree-cfgcleanup.h.
33090 (ipcp_transform_function): Call
33091 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
33092
33093 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
33094
33095 PR rtl-optimization/88846
33096 * ira.c (process_set_for_memref_referenced_p): New.
33097 (memref_referenced_p): Add new param. Use
33098 process_set_for_memref_referenced_p. Add new switch cases.
33099 (memref_used_between_p): Pass new arg to memref_referenced_p.
33100
33101 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
33102
33103 PR target/88469
33104 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
33105 argument ABI_BREAK. Set to true if the calculated alignment has
33106 changed in gcc-9. Check bit-fields for their base type alignment.
33107 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
33108 (aarch64_function_arg_boundary): Likewise.
33109 (aarch64_gimplify_va_arg_expr): Likewise.
33110
33111 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
33112
33113 PR middle-end/89037
33114 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
33115 instead of accessing TREE_INT_CST_ELT directly.
33116
33117 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
33118
33119 * doc/sourcebuild.texi (Environment attributes): Add fenv and
33120 fenv_exceptions description.
33121
33122 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
33123
33124 PR rtl-optimization/87763
33125 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
33126 Allow SUBREG when matching CC_NZmode compare.
33127
33128 2019-01-25 Richard Biener <rguenther@suse.de>
33129
33130 PR tree-optimization/89049
33131 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
33132 Look at the pattern stmt to determine if the stmt is vectorized.
33133
33134 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
33135
33136 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
33137 (pred_mov<mode>): Handle all-register forms using both a new
33138 alternative and a split.
33139
33140 2019-01-25 Richard Biener <rguenther@suse.de>
33141
33142 PR tree-optimization/86865
33143 * graphite-scop-detection.c (scop_detection::can_represent_loop):
33144 Reject non-do-while loops.
33145
33146 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
33147
33148 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
33149 * config/rs6000/constraints.md (Q constraint): Use REG_P.
33150 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
33151 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
33152 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
33153 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
33154 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
33155 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
33156 vlogical_operand, gpc_reg_operand, int_reg_operand,
33157 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
33158 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
33159 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
33160 (save_world_operation, restore_world_operation, lmw_operation,
33161 stmw_operation): Use MEM_P and REG_P.
33162 (tie_operand): Use MEM_P.
33163 (vrsave_operation, crsave_operation): Use REG_P.
33164 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
33165 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
33166 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
33167 (call_operand): Use HARD_REGISTER_P.
33168 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
33169 Use CONST_INT_P.
33170 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
33171 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
33172 quad_aligned_load_p, replace_swapped_aligned_store,
33173 recombine_lvx_pattern, replace_swapped_aligned_load,
33174 recombine_stvx_pattern): Use MEM_P.
33175 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
33176 Use MEM_P and SYMBOL_REF_P.
33177 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
33178 (insn_is_swappable_p): Use REG_P and MEM_P.
33179 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
33180 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
33181 Use CONST_INT_P.
33182 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
33183 Use CONST_DOUBLE_P.
33184 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
33185 CONST_WIDE_INT_P.
33186 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
33187 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
33188 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
33189 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
33190 reg_or_subregno:
33191 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
33192 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
33193 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
33194 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
33195 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
33196 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
33197 rs6000_split_logical_di): Use CONST_INT_P.
33198 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
33199 REG_P and SYMBOL_REF_P.
33200 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
33201 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
33202 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
33203 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
33204 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
33205 (small_data_operand, print_operand_address): Use CONST_INT_P and
33206 SYMBOL_REF_P.
33207 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
33208 (rs6000_init_hard_regno_mode_ok, direct_move_p):
33209 Use HARD_REGISTER_NUM_P.
33210 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
33211 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
33212 SUBREG_P and SYMBOL_REF_P.
33213 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
33214 and HARD_REGISTER_NUM_P.
33215 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
33216 reg_or_subregno.
33217 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
33218 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
33219 MEM_P and REG_P.
33220 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
33221 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
33222 find_addr_reg): Use REG_P.
33223 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
33224 (rs6000_emit_le_vsx_move): Use SUBREG_P.
33225 (offsettable_ok_by_alignment, constant_pool_expr_p,
33226 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
33227 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
33228 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
33229 rs6000_assemble_integer, create_TOC_reference,
33230 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
33231 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
33232 (rs6000_split_vec_extract_var): Use reg_or_subregno.
33233 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
33234 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
33235 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
33236 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
33237 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
33238 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
33239 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
33240 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
33241 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
33242 and cbranch<mode>4): Use CONST_INT_P.
33243 (multiple define_splits): Use REG_P and SUBREG_P.
33244 (define_expands call, call_value): Use MEM_P.
33245 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
33246 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
33247 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
33248 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
33249 and HARD_REGISTER_NUM_P.
33250 (multiple define_splits): Use HARD_REGISTER_NUM_P.
33251
33252 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
33253
33254 PR rtl-optimization/88948
33255 * rtl.h (prepare_copy_insn): New prototype.
33256 * gcse.c (prepare_copy_insn): New function, split out from
33257 process_insert_insn.
33258 (process_insert_insn): Use prepare_copy_insn.
33259 * store-motion.c (replace_store_insn): Use prepare_copy_insn
33260 instead of gen_move_insn.
33261
33262 2019-01-24 Jakub Jelinek <jakub@redhat.com>
33263
33264 PR debug/89006
33265 * config/i386/i386.c (ix86_pic_register_p): Return true for
33266 UNSPEC_SET_GOT too.
33267
33268 PR tree-optimization/88964
33269 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
33270 punt if HONOR_SNANS (chrec).
33271
33272 PR middle-end/89015
33273 * tree-nested.c (convert_nonlocal_reference_stmt,
33274 convert_local_reference_stmt, convert_tramp_reference_stmt,
33275 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
33276 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
33277 or GIMPLE_OMP_TASK.
33278
33279 PR tree-optimization/89027
33280 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
33281 for "omp simd array" variables.
33282
33283 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
33284
33285 PR target/88469
33286 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
33287 force the alignment of m_val.
33288
33289 2019-01-24 Richard Biener <rguenther@suse.de>
33290
33291 PR lto/87187
33292 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
33293 When in "legacy" debug mode make sure to reset self-origins.
33294
33295 2019-01-24 Martin Liska <mliska@suse.cz>
33296
33297 PR gcov-profile/88994
33298 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
33299 result will be always smaller or equal to the original.
33300 * gcov.c (mangle_name): Fix else branch where we should
33301 also copy to PTR and shift the pointer.
33302
33303 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
33304
33305 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
33306 * vr-values.c (find_case_label_ranges): Fix a comment typo.
33307
33308 2019-01-23 Xuepeng Guo <xuepeng.guo@intel.com>
33309
33310 * common/config/i386/i386-common.c
33311 (OPTION_MASK_ISA_ENQCMD_SET,
33312 OPTION_MASK_ISA_ENQCMD_UNSET): New macros.
33313 (ix86_handle_option): Handle -menqcmd.
33314 * config.gcc (enqcmdintrin.h): New header file.
33315 * config/i386/cpuid.h (bit_ENQCMD): New bit.
33316 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
33317 -menqcmd.
33318 * config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New
33319 function type.
33320 * config/i386/i386-builtin.def (__builtin_ia32_enqcmd,
33321 __builtin_ia32_enqcmds): New builtins.
33322 * config/i386/i386-c.c (__ENQCMD__): New macro.
33323 * config/i386/i386-option.c (ix86_target_string): Add
33324 -menqcmd.
33325 (ix86_valid_target_attribute_inner_p): Likewise.
33326 * config/i386/i386-expand.c
33327 (ix86_expand_builtin): Expand IX86_BUILTIN_ENQCMD and
33328 IX86_BUILTIN_ENQCMDS.
33329 * config/i386/i386.h (TARGET_ENQCMD): New.
33330 * config/i386/i386.md (UNSPECV_ENQCMD, UNSPECV_ENQCMDS): New.
33331 (@enqcmd<enqcmd_sfx>_<mode>): New insn pattern.
33332 (movdir64b_<mode>): Parameterize to enable share expansion code
33333 with ENQCMD in function ix86_expand_builtin.
33334 * config/i386/i386.opt: Add -menqcmd.
33335 * config/i386/immintrin.h: Include enqcmdintrin.h.
33336 * config/i386/enqcmdintrin.h: New intrinsic file.
33337 * doc/invoke.texi: Add -menqcmd.
33338
33339 2019-01-23 Bin Cheng <bin.cheng@arm.com>
33340 Steve Ellcey <sellcey@marvell.com>
33341
33342 PR target/85711
33343 * recog.c (address_operand): Return false on wrong mode for address.
33344 (constrain_operands): Check for mode with 'p' constraint.
33345
33346 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
33347
33348 PR target/88998
33349 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
33350 Disparage MMX alternative.
33351 (sse2_cvtpd2pi): Ditto.
33352 (sse2_cvttpd2pi): Ditto.
33353
33354 2019-01-23 David Malcolm <dmalcolm@redhat.com>
33355
33356 PR driver/89014
33357 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
33358 use-after-free of the result of
33359 aarch64_get_extension_string_for_isa_flags.
33360
33361 2019-01-23 Jakub Jelinek <jakub@redhat.com>
33362
33363 PR c/44715
33364 * doc/extend.texi: Document break and continue behavior in
33365 statement expressions.
33366
33367 2019-01-23 Richard Biener <rguenther@suse.de>
33368
33369 PR tree-optimization/89008
33370 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
33371 not leave another stray operand.
33372
33373 2019-01-23 Jakub Jelinek <jakub@redhat.com>
33374
33375 * BASE-VER: Bump to 9.0.1.
33376
33377 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
33378
33379 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
33380 thunk that returns by reference, use the type of the return object
33381 of the thunk instead of that of the alias to build the dereference.
33382
33383 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
33384
33385 * config/arc/atomic.md: Add operand to DMB instruction.
33386
33387 2019-01-23 Jakub Jelinek <jakub@redhat.com>
33388
33389 PR tree-optimization/88964
33390 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
33391 build_zero_cst instead of build_int_cst. Return false for loop
33392 invariants which honor signed zeros.
33393
33394 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
33395
33396 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
33397
33398 2019-01-22 Jakub Jelinek <jakub@redhat.com>
33399
33400 PR target/88965
33401 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
33402 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
33403 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
33404
33405 PR middle-end/88968
33406 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
33407 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
33408
33409 PR target/87064
33410 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
33411 Disable for little endian.
33412
33413 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
33414
33415 PR target/88469
33416 * config/arm/arm.c (arm_needs_double_word_align): Check
33417 DECL_BIT_FIELD_TYPE.
33418
33419 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
33420 H.J. Lu <hongjiu.lu@intel.com>
33421
33422 PR target/88909
33423 * config/i386/i386-builtin.def: Add mask2 to all builtin
33424 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
33425 SPECIAL_ARGS.
33426 * config/i386/i386.c (BDESC): Add mask2 to the definition.
33427 (BDESC_FIRST): Likewise.
33428 (define_builtin): Add an argument for mask2. Updated to handle
33429 both ix86_isa_flags and ix86_isa_flags2.
33430 (define_builtin_const): Likewise.
33431 (define_builtin_pure): Likewise.
33432 (define_builtin2): Deleted.
33433 (define_builtin_const2): Likewise.
33434 (builtin_description): Add a member, mask2.
33435 (bdesc_*): Add mask2 to builtin initializations.
33436 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
33437 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
33438 support.
33439 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
33440
33441 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
33442
33443 PR target/88954
33444 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
33445 noplt attribute.
33446
33447 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
33448
33449 PR target/88469
33450 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
33451 alignment is dominated by a bitfield with 64-bit aligned base type.
33452 (arm_function_arg): Emit a warning if the alignment has changed since
33453 earlier GCC releases.
33454 (arm_function_arg_boundary): Likewise.
33455 (arm_setup_incoming_varargs): Likewise.
33456
33457 2019-01-22 Richard Biener <rguenther@suse.de>
33458
33459 PR tree-optimization/88862
33460 * graphite-scop-detection.c
33461 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
33462
33463 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
33464
33465 * doc/extend.tex (AMD GCN Function Attributes): New section.
33466 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
33467 * doc/invoke.texi (AMD GCN Options): New section.
33468 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
33469
33470 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
33471
33472 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
33473 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
33474
33475 2019-01-22 Jakub Jelinek <jakub@redhat.com>
33476
33477 PR tree-optimization/88044
33478 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
33479 is false in the first iteration, but !every_iteration, return false
33480 instead of true with niter->niter zero.
33481
33482 PR rtl-optimization/88904
33483 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
33484 any nonequal registers before processing BB_END (b).
33485
33486 PR target/88905
33487 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
33488 GET_MODE (op0).
33489 (expand_binop_directly, expand_doubleword_clz,
33490 expand_doubleword_popcount, expand_ctz, expand_ffs,
33491 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
33492
33493 PR rtl-optimization/49429
33494 PR target/49454
33495 PR rtl-optimization/86334
33496 PR target/88906
33497 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
33498 addressable from here...
33499 (emit_block_op_via_libcall): ... to here.
33500
33501 2019-01-22 Richard Biener <rguenther@suse.de>
33502
33503 * tree-vect-loop.c (vect_analyze_loop_operations): Use
33504 auto_vec for cost vector to fix memleak.
33505 (vectorize_fold_left_reduction): Properly gather SLP defs.
33506 (vectorizable_comparison): Do not swap operands to properly
33507 gather SLP defs.
33508
33509 2019-01-22 Alan Modra <amodra@gmail.com>
33510
33511 PR target/88614
33512 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
33513 stays a reg. Allow a const_int.
33514 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
33515 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
33516 (IS_NOMARK_TLSGETADDR): Define.
33517 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
33518 (rs6000_output_tlsargs): New function.
33519 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
33520 __tls_get_addr call takes an arg.
33521 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
33522 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
33523 delete split..
33524 (call_value_nonlocal_sysv): ..or here, delete split.
33525 (tls_gdld_nomark): Delete.
33526 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
33527 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
33528 (call_value_nonlocal_sysv): Likewise.
33529 (call_value_nonlocal_sysv_secure): Likewise.
33530 (call_value_nonlocal_aix): Likewise.
33531 (call_value_indirect_aix): Likewise.
33532 (call_value_indirect_elfv2): Likewise.
33533 (call_value_local32, call_value_local64): Disable for no-mark tls.
33534 (call_value_local_aix): Likewise.
33535
33536 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
33537
33538 PR target/88938
33539 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
33540 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
33541
33542 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
33543
33544 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
33545 string contents as hash_map keys.
33546
33547 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
33548
33549 PR c/88928
33550 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
33551 for rvalue context. Handle rvalues correctly. Use min_align_of_type
33552 instead of TYPE_ALIGN.
33553 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
33554 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
33555 pointer from TYPE_STUB_DECL.
33556
33557 2019-01-21 Richard Biener <rguenther@suse.de>
33558
33559 PR tree-optimization/88934
33560 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
33561 at the possibly non-constant operand.
33562 (vect_get_constant_vectors): Adjust.
33563
33564 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
33565
33566 PR target/71659
33567 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
33568 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
33569 instead of _X86INTRIN_H_INCLUDED.
33570 * onfig/i386/clwbintrin.h: Likewise.
33571 * config/i386/pkuintrin.h: Likewise.
33572 * config/i386/prfchwintrin.h: Likewise.
33573 * config/i386/rdseedintrin.h: Likewise.
33574 * config/i386/wbnoinvdintrin.h: Likewise.
33575 * config/i386/xsavecintrin.h: Likewise.
33576 * config/i386/xsavesintrin.h: Likewise.
33577 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
33578 * config/i386/xsaveintrin.h: Likewise.
33579 * config/i386/xsaveoptintrin.h: Likewise.
33580 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
33581 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
33582 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
33583 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
33584 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
33585 * config/i386/immintrin.h: Here.
33586
33587 2019-01-20 Martin Jambor <mjambor@suse.cz>
33588
33589 PR ipa/87615
33590 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
33591 with aa_walk_budget.
33592 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
33593 aa_walk_budget_p parameter.
33594 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
33595 walk. Updated all callers.
33596 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
33597 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
33598 unmodified_parm.
33599 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
33600 parameter info. Extract info from fbi. Pass fbi to recursive calls
33601 and to unmodified_parm.
33602 (phi_result_unknown_predicate): New parameter fbi, removed parameter
33603 info, updated call to will_be_nonconstant_expr_predicate.
33604 (param_change_prob): New parameter fbi, limit AA walking.
33605 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
33606 calls to various above functions.
33607 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
33608 parameter. Use it to limit AA walking.
33609 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
33610 fbi, limit AA walk.
33611 (detect_type_change): New parameter fbi, pass it on to
33612 detect_type_change_from_memory_writes.
33613 (detect_type_change_ssa): Likewise.
33614 (aa_overwalked): Removed.
33615 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
33616 accordingly, adjust to the neew AA limiting scheme.
33617 (parm_ref_data_preserved_p): Likewise.
33618 (ipa_compute_jump_functions_for_edge): Adjust call to
33619 get_dynamic_type.
33620 (ipa_analyze_call_uses): Likewise.
33621 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
33622 (ipa_analyze_node): Initialize aa_walk_budget.
33623 (ipcp_transform_function): Likewise.
33624 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
33625 to get_dynamic_type.
33626
33627 2019-01-19 Jakub Jelinek <jakub@redhat.com>
33628
33629 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
33630 outside of #if CHECKING_P code.
33631
33632 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
33633
33634 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
33635 New function, split out from...
33636 (loop_versioning::analyze_stride): ...here.
33637 (loop_versioning::find_per_loop_multiplication): Use gassign.
33638 (loop_versioning::analyze_term_using_scevs): Return a success code.
33639 (loop_versioning::analyze_arbitrary_term): New function.
33640 (loop_versioning::analyze_address_fragment): Use
33641 analyze_arbitrary_term if all else fails.
33642
33643 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
33644
33645 PR target/88892
33646 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
33647 operands.
33648
33649 2019-01-18 Richard Biener <rguenther@suse.de>
33650
33651 PR tree-optimization/88903
33652 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
33653 scalar stmts a SLP shift amount is composed of when detecting
33654 shifts by scalars.
33655
33656 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
33657
33658 PR target/88799
33659 * config/arm/arm-cpus.in (mp): New feature.
33660 (sec): New feature.
33661 (fgroup ARMv7ve): Add mp and sec features.
33662 (arch armv7-a): Add options to allow mp and sec extensions.
33663 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
33664 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
33665 extenstions to the base architecture.
33666 (cpu cortex-a8): Add sec extension to the base architecture.
33667 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
33668 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
33669 variants down to the base v7-a varaint.
33670 * config/arm/t-multilib (v7_a_arch_variants): New variable.
33671 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
33672 of permitted extensions for -march=armv7-a and for
33673 -mcpu=generic-armv7-a.
33674
33675 2019-01-18 Martin Liska <mliska@suse.cz>
33676
33677 * params.def: Fix comment.
33678 * tree-profile.c (gimple_init_gcov_profiler): Bump function
33679 name.
33680 (gimple_gen_ic_func_profiler): Likewise.
33681
33682 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
33683
33684 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
33685 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
33686 and put in error checks for stack protector guard options.
33687 (aarch64_stack_protect_guard): New.
33688 (TARGET_STACK_PROTECT_GUARD): Define.
33689 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
33690 (reg_stack_protect_address<mode>): New.
33691 (stack_protect_set): Adjust for SSP_GLOBAL.
33692 (stack_protect_test): Likewise.
33693 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
33694 (-mstack-protector-guard): Likewise.
33695 (-mstack-protector-guard-offset): Likewise.
33696
33697 2019-01-18 Jakub Jelinek <jakub@redhat.com>
33698
33699 PR tree-optimization/86214
33700 * tree-inline.h (struct copy_body_data): Add
33701 add_clobbers_to_eh_landing_pads member.
33702 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
33703 (copy_edges_for_bb): Call it if EH edge destination is <
33704 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
33705 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
33706 if flag_stack_reuse != SR_NONE and clear it afterwards.
33707
33708 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
33709
33710 PR target/85596
33711 * doc/install.texi (with-multilib-list): Document for aarch64.
33712
33713 2019-01-18 Jakub Jelinek <jakub@redhat.com>
33714
33715 PR target/88734
33716 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
33717 (("..."))) with ("...").
33718
33719 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
33720
33721 * doc/extend.texi (Built-in Functions for Memory Model Aware
33722 Atomic Operations): Document atomic fetch and nand.
33723
33724 2019-01-18 Martin Liska <mliska@suse.cz>
33725 Richard Biener <rguenther@suse.de>
33726
33727 PR middle-end/88587
33728 * cgraph.h (create_version_clone_with_body): Add new argument
33729 with attributes.
33730 * cgraphclones.c (cgraph_node::create_version_clone): Add
33731 DECL_ATTRIBUTES to a newly created decl. And call
33732 valid_attribute_p so that proper cl_target_optimization_node
33733 is set for the newly created declaration.
33734 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
33735 for declaration.
33736 (expand_target_clones): Do not call valid_attribute_p, it must
33737 be already done.
33738 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
33739 vector types.
33740
33741 2019-01-17 Jakub Jelinek <jakub@redhat.com>
33742
33743 PR target/88734
33744 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
33745 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
33746 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
33747
33748 2019-01-17 Martin Sebor <msebor@redhat.com>
33749
33750 PR middle-end/88273
33751 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
33752 Handle anti-ranges the same as no range at all.
33753
33754 2018-01-17 Steve Ellcey <sellcey@cavium.com>
33755
33756 * config/aarch64/aarch64.c (cgraph.h): New include.
33757 (intl.h): New include.
33758 (supported_simd_type): New function.
33759 (currently_supported_simd_type): Ditto.
33760 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
33761 (aarch64_simd_clone_adjust): Ditto.
33762 (aarch64_simd_clone_usable): Ditto.
33763 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
33764 (TARGET_SIMD_CLONE_ADJUST): Ditto.
33765 (TARGET_SIMD_CLONE_USABLE): Ditto.
33766 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
33767 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
33768 call.
33769
33770 2019-01-17 Martin Sebor <msebor@redhat.com>
33771
33772 PR tree-optimization/88800
33773 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
33774 NO_WARNING bit here. Avoid folding out-of-bounds calls.
33775 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
33776 redundant argument. Add new argument and issue diagnostics under
33777 its control. Detect out-of-bounds access even with warnings
33778 disabled.
33779 (check_bounds_or_overlap): Change return type. Add argument.
33780 (wrestrict_dom_walker::check_call): Adjust.
33781 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
33782 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
33783 check_bounds_or_overlap's return value.
33784 (handle_builtin_stxncpy): Same.
33785 (handle_builtin_strcat): Same.
33786
33787 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
33788 Kwok Cheung Yeung <kcy@codesourcery.com>
33789 Julian Brown <julian@codesourcery.com>
33790 Tom de Vries <tom@codesourcery.com>
33791
33792 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
33793
33794 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
33795
33796 * doc/sourcebuild.texi: Document dg-require-effective-target
33797 llvm_binutils and offload_gcn.
33798
33799 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
33800 Kwok Cheung Yeung <kcy@codesourcery.com>
33801 Julian Brown <julian@codesourcery.com>
33802 Tom de Vries <tom@codesourcery.com>
33803
33804 * doc/sourcebuild.texi: Document dg-required-effective-target
33805 exceptions.
33806
33807 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
33808 Kwok Cheung Yeung <kcy@codesourcery.com>
33809 Julian Brown <julian@codesourcery.com>
33810 Tom de Vries <tom@codesourcery.com>
33811 Jan Hubicka <hubicka@ucw.cz>
33812 Martin Jambor <mjambor@suse.cz>
33813
33814 * config.gcc: Add amdgcn*-*-amdhsa configuration.
33815 * configure.ac: Check for dlopen.
33816 * configure: Regenerate.
33817
33818 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
33819 Kwok Cheung Yeung <kcy@codesourcery.com>
33820 Julian Brown <julian@codesourcery.com>
33821 Tom de Vries <tom@codesourcery.com>
33822 Jan Hubicka <hubicka@ucw.cz>
33823 Martin Jambor <mjambor@suse.cz>
33824
33825 * common/config/gcn/gcn-common.c: New file.
33826 * config/gcn/driver-gcn.c: New file.
33827 * config/gcn/gcn-builtins.def: New file.
33828 * config/gcn/gcn-hsa.h: New file.
33829 * config/gcn/gcn-modes.def: New file.
33830 * config/gcn/gcn-opts.h: New file.
33831 * config/gcn/gcn-passes.def: New file.
33832 * config/gcn/gcn-protos.h: New file.
33833 * config/gcn/gcn-run.c: New file.
33834 * config/gcn/gcn-tree.c: New file.
33835 * config/gcn/gcn.c: New file.
33836 * config/gcn/gcn.h: New file.
33837 * config/gcn/gcn.opt: New file.
33838 * config/gcn/t-gcn-hsa: New file.
33839
33840 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
33841 Kwok Cheung Yeung <kcy@codesourcery.com>
33842 Julian Brown <julian@codesourcery.com>
33843 Tom de Vries <tom@codesourcery.com>
33844 Jan Hubicka <hubicka@ucw.cz>
33845 Martin Jambor <mjambor@suse.cz>
33846
33847 * config/gcn/constraints.md: New file.
33848 * config/gcn/gcn-valu.md: New file.
33849 * config/gcn/gcn.md: New file.
33850 * config/gcn/predicates.md: New file.
33851
33852 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
33853
33854 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
33855 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
33856 (stmt_uses_0_or_null_in_undefined_way): Likewise.
33857 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
33858
33859 2019-01-17 Tamar Christina <tamar.christina@arm.com>
33860
33861 PR target/88851
33862 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
33863 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
33864 it and document registers.
33865
33866 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33867
33868 * config/aarch64/aarch64.c (ares_tunings): Define.
33869 * config/aarch64/aarch64-cores.def (ares): Use the above.
33870
33871 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
33872
33873 PR target/88794
33874 Revert:
33875 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
33876
33877 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
33878 (_mm512_fixupimm_round_pd): Update parameters and builtin.
33879 (_mm512_maskz_fixupimm_round_pd): Ditto.
33880 (_mm512_fixupimm_round_ps): Ditto.
33881 (_mm512_maskz_fixupimm_round_ps): Ditto.
33882 (_mm_fixupimm_round_sd): Ditto.
33883 (_mm_maskz_fixupimm_round_sd): Ditto.
33884 (_mm_fixupimm_round_ss): Ditto.
33885 (_mm_maskz_fixupimm_round_ss): Ditto.
33886 (_mm512_fixupimm_pd): Ditto.
33887 (_mm512_maskz_fixupimm_pd): Ditto.
33888 (_mm512_fixupimm_ps): Ditto.
33889 (_mm512_maskz_fixupimm_ps): Ditto.
33890 (_mm_fixupimm_sd): Ditto.
33891 (_mm_maskz_fixupimm_sd): Ditto.
33892 (_mm_fixupimm_ss): Ditto.
33893 (_mm_maskz_fixupimm_ss): Ditto.
33894 (_mm512_mask_fixupimm_round_pd): Update builtin.
33895 (_mm512_mask_fixupimm_round_ps): Ditto.
33896 (_mm_mask_fixupimm_round_sd): Ditto.
33897 (_mm_mask_fixupimm_round_ss): Ditto.
33898 (_mm512_mask_fixupimm_pd): Ditto.
33899 (_mm512_mask_fixupimm_ps): Ditto.
33900 (_mm_mask_fixupimm_sd): Ditto.
33901 (_mm_mask_fixupimm_ss): Ditto.
33902 * config/i386/avx512vlintrin.h:
33903 (_mm256_fixupimm_pd): Update parameters and builtin.
33904 (_mm256_maskz_fixupimm_pd): Ditto.
33905 (_mm256_fixupimm_ps): Ditto.
33906 (_mm256_maskz_fixupimm_ps): Ditto.
33907 (_mm_fixupimm_pd): Ditto.
33908 (_mm_maskz_fixupimm_pd): Ditto.
33909 (_mm_fixupimm_ps): Ditto.
33910 (_mm_maskz_fixupimm_ps): Ditto.
33911 (_mm256_mask_fixupimm_pd): Update builtin.
33912 (_mm256_mask_fixupimm_ps): Ditto.
33913 (_mm_mask_fixupimm_pd): Ditto.
33914 (_mm_mask_fixupimm_ps): Ditto.
33915 * config/i386/i386-builtin-types.def: Add new types and remove
33916 useless ones.
33917 * config/i386/i386-builtin.def: Update builtin definitions.
33918 * config/i386/i386.c: Handle new builtin types and remove useless ones.
33919 * config/i386/sse.md: Update VFIXUPIMM* patterns.
33920 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
33921 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
33922 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
33923 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
33924 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
33925 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
33926 * config/i386/subst.md:
33927 (round_saeonly_sd_mask_operand4): Add new subst_attr.
33928 (round_saeonly_sd_mask_op4): Ditto.
33929 (round_saeonly_expand_operand5): Ditto.
33930 (round_saeonly_expand): Update.
33931
33932 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
33933
33934 PR target/88794
33935 Revert:
33936 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
33937
33938 * config/i386/sse.md: Combine VFIXUPIMM* patterns
33939 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
33940 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
33941 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
33942 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
33943 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
33944 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
33945
33946 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
33947
33948 PR target/88794
33949 Revert:
33950 2018-12-15 Jakub Jelinek <jakub@redhat.com>
33951
33952 PR target/88489
33953 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
33954 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
33955 instead of UNSPEC_FIXUPIMM.
33956
33957 2019-01-17 Richard Biener <rguenther@suse.de>
33958
33959 PR lto/86736
33960 * dwarf2out.c (want_pubnames): Never generate pubnames sections
33961 and friends for the LTO part of debug info.
33962
33963 2019-01-17 Jakub Jelinek <jakub@redhat.com>
33964
33965 PR tree-optimization/86214
33966 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
33967 if x == y.
33968
33969 PR rtl-optimization/88870
33970 * dce.c (deletable_insn_p): Never delete const/pure calls that can
33971 throw if we can't alter the cfg or delete dead exceptions.
33972 (mark_insn): Don't call find_call_stack_args for such calls.
33973
33974 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
33975
33976 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
33977 prototypes for vec_st.
33978 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
33979 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
33980 mainly on signed/unsigned long long and double.
33981
33982 2019-01-16 David Malcolm <dmalcolm@redhat.com>
33983
33984 PR target/88861
33985 * combine.c (delete_noop_moves): Convert to "bool" return,
33986 returning true if any edges are eliminated.
33987 (combine_instructions): Also return true if delete_noop_moves
33988 returns true.
33989
33990 2019-01-16 Tamar Christina <tamar.christina@arm.com>
33991
33992 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
33993 correct max nunits for endian swap.
33994 (aarch64_expand_fcmla_builtin): Correct subreg code.
33995 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
33996 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
33997 lane endianness.
33998
33999 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
34000
34001 * config/alpha/alpha.c (alpha_gimplify_va_arg):
34002 Handle split indirect COMPLEX_TYPE arguments.
34003
34004 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
34005
34006 PR target/86891
34007 * config/aarch64/aarch64-modes.def: Add comment about how the carry
34008 bit is set by add and compare.
34009 (CC_ADC): New CC_MODE.
34010 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
34011 to cache the code and mode of X. Adjust the shape of a CC_Cmode
34012 comparison. Add detection for CC_ADCmode.
34013 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
34014 CC_ADCmode.
34015 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
34016 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
34017 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
34018 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
34019 to eliminate the need for zero-extending the operands.
34020 (add<mode>3_compareC_imm): Delete. Merge into ...
34021 (add<mode>3_compareC): ... this. Restructure the comparison to
34022 eliminate the need for zero-extending the operands.
34023 (add<mode>3_carryin): Use LTU for the overflow detection.
34024 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
34025 Reexpress comparison for overflow.
34026 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
34027 (add<mode>3_carryinC): Likewise.
34028 (add<mode>3_carryinV): Use LTU for carry between partials.
34029 * config/aarch64/predicates.md (aarch64_carry_operation): Update
34030 handling of CC_Cmode and add CC_ADCmode.
34031 (aarch64_borrow_operation): Likewise.
34032
34033 2019-01-16 Tamar Christina <tamar.christina@arm.com>
34034
34035 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands):
34036 Remove patternmode.
34037 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
34038 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
34039 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>):
34040 Remove endianness conversion.
34041
34042 2019-01-16 Martin Liska <mliska@suse.cz>
34043
34044 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
34045 for GCC driver.
34046 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
34047 a new argument.
34048 * gcc.c (add_sysrooted_hdrs_prefix): New function.
34049 (path_prefix_reset): Move up in the source file.
34050 (find_fortran_preinclude_file): Make complex search for the
34051 fortran header files.
34052
34053 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
34054
34055 * godump.c (go_output_typedef): When outputting a typedef, refer
34056 to the underlying type by its name and not its structure.
34057
34058 2019-01-15 David Malcolm <dmalcolm@redhat.com>
34059
34060 PR c++/88795
34061 * tree.c (build_function_type): Assert that arg_types is not
34062 error_mark_node.
34063
34064 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
34065
34066 PR inline-asm/52813
34067 * doc/extend.texi: Document that listing the stack pointer in the
34068 clobber list of an asm is a deprecated feature.
34069 * common.opt (Wdeprecated): Moved from c-family/c.opt.
34070 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
34071 warning instead of an error for clobbers of the stack pointer.
34072 Add a note explaining why.
34073
34074 2019-01-15 Richard Biener <rguenther@suse.de>
34075
34076 PR debug/88046
34077 * dwarf2out.c (gen_member_die): Do not generate inheritance
34078 DIEs late.
34079
34080 2019-01-15 Richard Biener <rguenther@suse.de>
34081
34082 PR tree-optimization/88855
34083 * tree-if-conv.c (combine_blocks): Collect
34084 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
34085
34086 2019-01-15 Tom de Vries <tdevries@suse.de>
34087
34088 PR target/80547
34089 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
34090 lhs == NULL_TREE for gang-level reduction.
34091
34092 2019-01-15 Richard Biener <rguenther@suse.de>
34093 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
34094
34095 PR ipa/88788
34096 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
34097 return true if SSA_NAME is already marked in visited bitmap.
34098 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
34099
34100 2019-01-15 Jakub Jelinek <jakub@redhat.com>
34101
34102 PR tree-optimization/88775
34103 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
34104 equal == 0 equality pointer comparisons some more if compared in
34105 integral types and either one points to an automatic var and the
34106 other to a global, or we can prove at least one points to the middle
34107 or both point to start or both point to end.
34108
34109 2019-01-14 Andi Kleen <ak@linux.intel.com>
34110
34111 * Makefile.in: Lower autofdo sampling rate by 10x.
34112 * Makefile.tpl: Dito.
34113
34114 2019-01-14 Tom Honermann <tom@honermann.net>
34115
34116 * defaults.h: Define CHAR8_TYPE.
34117
34118 2019-01-14 Martin Sebor <msebor@redhat.com>
34119
34120 PR target/88638
34121 * doc/extend.texi (Darwin Format Checks): Clarify.
34122
34123 2019-01-14 Richard Biener <rguenther@suse.de>
34124
34125 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
34126 whether we are in (simplify ...) or (match ...) context.
34127
34128 2019-01-14 Jakub Jelinek <jakub@redhat.com>
34129
34130 PR rtl-optimization/88796
34131 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
34132 * cfgexpand.c (stack_protect_prologue): Initialize
34133 crtl->stack_protect_guard_decl.
34134 * function.c (stack_protect_epilogue): Use it instead of calling
34135 targetm.stack_protect_guard again.
34136 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
34137 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
34138 crtl->stack_protect_guard_decl.
34139 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
34140 on the returned MEM_EXPR.
34141
34142 2019-01-12 Tom de Vries <tdevries@suse.de>
34143
34144 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
34145 vector length using -fopenacc-dim.
34146
34147 2019-01-12 Tom de Vries <tdevries@suse.de>
34148
34149 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
34150 lengths into account.
34151
34152 2019-01-12 Svante Signell <svante.signell@gmail.com>
34153
34154 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
34155 (TARGET_CAN_SPLIT_STACK): Define.
34156 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
34157
34158 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
34159
34160 * params.def (inline-unit-growth): Set to 40.
34161
34162 2019-01-12 Jakub Jelinek <jakub@redhat.com>
34163
34164 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
34165
34166 2019-01-12 Tom de Vries <tdevries@suse.de>
34167
34168 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
34169 region calling vector-partitionable routine, set default_vector_length
34170 to WARP_SIZE.
34171
34172 2019-01-12 Tom de Vries <tdevries@suse.de>
34173
34174 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
34175 variable default_vector_length.
34176
34177 2019-01-12 Tom de Vries <tdevries@suse.de>
34178
34179 PR middle-end/88703
34180 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
34181 from oacc_default_dims, as oacc_validate_dims would do it, and apply
34182 dimensions limits.
34183
34184 2019-01-12 Tom de Vries <tdevries@suse.de>
34185
34186 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
34187 (nvptx_goacc_validate_dims): Add used parameter.
34188 * doc/tm.texi: Regenerate.
34189 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
34190 argument to call to targetm.goacc.validate_dims.
34191 (default_goacc_validate_dims): Add used
34192 parameter.
34193 * target.def (validate_dims): Add used parameter in DEFHOOK.
34194 * targhooks.h (default_goacc_validate_dims): Add used parameter.
34195
34196 2019-01-11 Jakub Jelinek <jakub@redhat.com>
34197
34198 PR middle-end/85956
34199 PR lto/88733
34200 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
34201 field.
34202 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
34203 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
34204 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
34205 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
34206
34207 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
34208
34209 PR rtl-optimization/87305
34210 * lra-assigns.c
34211 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
34212 for little endian pseudos used as paradoxical subreg.
34213
34214 2019-01-11 Jakub Jelinek <jakub@redhat.com>
34215
34216 PR tree-optimization/88693
34217 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
34218 for STRING_CSTs that don't contain any NUL characters in the first
34219 TREE_STRING_LENGTH bytes.
34220
34221 2019-01-11 Alan Modra <amodra@gmail.com>
34222
34223 PR 88777
34224 PR 88614
34225 * genattrtab.c (min_fn): Don't translate values.
34226 (min_attr_value): Return INT_MAX when the value can't be calculated.
34227 Return minimum among any values that can be calculated.
34228 (max_attr_value): Adjust.
34229
34230 2019-01-11 Jakub Jelinek <jakub@redhat.com>
34231
34232 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
34233
34234 2019-01-11 Steve Ellcey <sellcey@marvell.com>
34235
34236 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
34237 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
34238 (aarch64_return_call_with_max_clobbers): New function.
34239 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
34240 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
34241 argument.
34242 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
34243 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
34244 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
34245 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
34246 * cselib.c (cselib_process_insn): Add argument to
34247 targetm.hard_regno_call_part_clobbered call.
34248 * ira-conflicts.c (ira_build_conflicts): Ditto.
34249 * ira-costs.c (ira_tune_allocno_costs): Ditto.
34250 * lra-constraints.c (inherit_reload_reg): Ditto.
34251 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
34252 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
34253 argument. Call targetm.return_call_with_max_clobbers.
34254 Add argument to targetm.hard_regno_call_part_clobbered call.
34255 (calls_have_same_clobbers_p): New function.
34256 (process_bb_lives): Add call_insn and last_call_insn variables.
34257 Pass call_insn to check_pseudos_live_through_calls.
34258 Modify if stmt to check targetm.return_call_with_max_clobbers.
34259 Update setting of flush variable.
34260 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
34261 to false.
34262 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
34263 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
34264 targetm.hard_regno_call_part_clobbered call.
34265 * reginfo.c (choose_hard_reg_mode): Ditto.
34266 * regrename.c (check_new_reg_p): Ditto.
34267 * reload.c (find_equiv_reg): Ditto.
34268 * reload1.c (emit_reload_insns): Ditto.
34269 * sched-deps.c (deps_analyze_insn): Ditto.
34270 * sel-sched.c (init_regs_for_mode): Ditto.
34271 (mark_unavailable_hard_regs): Ditto.
34272 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
34273 * target.def (hard_regno_call_part_clobbered): Add insn argument.
34274 (return_call_with_max_clobbers): New target function.
34275 * doc/tm.texi: Regenerate.
34276 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
34277 * hooks.c (hook_bool_uint_mode_false): Change to
34278 hook_bool_insn_uint_mode_false.
34279 * hooks.h (hook_bool_uint_mode_false): Ditto.
34280
34281 2019-01-11 Steve Ellcey <sellcey@marvell.com>
34282
34283 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
34284 (aarch64_remove_extra_call_preserved_regs): New function.
34285 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
34286 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
34287 * doc/tm.texi: Regenerate.
34288 * final.c (get_call_reg_set_usage): Call new hook.
34289 * target.def (remove_extra_call_preserved_regs): New hook.
34290 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
34291 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
34292
34293 2019-01-11 Jakub Jelinek <jakub@redhat.com>
34294
34295 PR bootstrap/88714
34296 * passes.c (finish_optimization_passes): Call print_combine_total_stats
34297 inside of pass_combine_1 dump rather than pass_profile_1.
34298
34299 2019-01-11 Tom de Vries <tdevries@suse.de>
34300
34301 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
34302 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
34303 (PTX_NUM_PER_WORKER_BARRIERS): Define.
34304 (nvptx_apply_dim_limits): Prevent vector_length 64 and
34305 num_workers 16.
34306
34307 2019-01-11 Tom de Vries <tdevries@suse.de>
34308
34309 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
34310
34311 2019-01-11 Jan Beulich <jbeulich@suse.com>
34312
34313 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
34314 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
34315 sse2_cvtsi2sd): Add {l}.
34316 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
34317 syntax.
34318
34319 2019-01-10 Jakub Jelinek <jakub@redhat.com>
34320
34321 PR target/88785
34322 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
34323 define_expand.
34324 (*float<floatunssuffix>v2div2sf2): New define_insn.
34325 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
34326 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
34327 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
34328 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
34329 match_operands with "const0_operand" "C".
34330
34331 2019-01-10 Tamar Christina <tamar.christina@arm.com>
34332
34333 * config/aarch64/aarch64-builtins.c
34334 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
34335 (aarch64_init_simd_builtins): ...Here
34336
34337 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
34338
34339 PR rtl-optimization/87305
34340 * lra-assigns.c
34341 (setup_live_pseudos_and_spill_after_risky_transforms): Check
34342 allocation for big endian pseudos used as paradoxical subregs and
34343 spill them if it is wrong.
34344 * lra-constraints.c (lra_constraints): Add a comment.
34345
34346 2019-01-10 Richard Biener <rguenther@suse.de>
34347
34348 PR tree-optimization/88792
34349 * tree-ssa-pre.c (get_representative_for): Do not return a
34350 value-number here.
34351
34352 2019-01-10 Jakub Jelinek <jakub@redhat.com>
34353
34354 PR middle-end/84877
34355 PR bootstrap/88450
34356 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
34357 (assign_parm_setup_block): Do the argument slot realignment here
34358 instead.
34359
34360 2019-01-10 Stefan Agner <stefan@agner.ch>
34361
34362 PR target/88648
34363 * config/arm/arm.c (arm_option_override_internal): Force
34364 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
34365
34366 2019-01-10 Jakub Jelinek <jakub@redhat.com>
34367
34368 PR c/88568
34369 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
34370 DECL_EXTERNAL.
34371
34372 2019-01-10 Tamar Christina <tamar.christina@arm.com>
34373
34374 * config/arm/arm-builtins.c
34375 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
34376 (MAC_LANE_PAIR_QUALIFIERS): New.
34377 (arm_expand_builtin_args): Use it.
34378 (arm_expand_builtin_1): Likewise.
34379 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
34380 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
34381 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
34382 * config/arm/arm_neon.h:
34383 (vcadd_rot90_f16): New.
34384 (vcaddq_rot90_f16): New.
34385 (vcadd_rot270_f16): New.
34386 (vcaddq_rot270_f16): New.
34387 (vcmla_f16): New.
34388 (vcmlaq_f16): New.
34389 (vcmla_lane_f16): New.
34390 (vcmla_laneq_f16): New.
34391 (vcmlaq_lane_f16): New.
34392 (vcmlaq_laneq_f16): New.
34393 (vcmla_rot90_f16): New.
34394 (vcmlaq_rot90_f16): New.
34395 (vcmla_rot90_lane_f16): New.
34396 (vcmla_rot90_laneq_f16): New.
34397 (vcmlaq_rot90_lane_f16): New.
34398 (vcmlaq_rot90_laneq_f16): New.
34399 (vcmla_rot180_f16): New.
34400 (vcmlaq_rot180_f16): New.
34401 (vcmla_rot180_lane_f16): New.
34402 (vcmla_rot180_laneq_f16): New.
34403 (vcmlaq_rot180_lane_f16): New.
34404 (vcmlaq_rot180_laneq_f16): New.
34405 (vcmla_rot270_f16): New.
34406 (vcmlaq_rot270_f16): New.
34407 (vcmla_rot270_lane_f16): New.
34408 (vcmla_rot270_laneq_f16): New.
34409 (vcmlaq_rot270_lane_f16): New.
34410 (vcmlaq_rot270_laneq_f16): New.
34411 (vcadd_rot90_f32): New.
34412 (vcaddq_rot90_f32): New.
34413 (vcadd_rot270_f32): New.
34414 (vcaddq_rot270_f32): New.
34415 (vcmla_f32): New.
34416 (vcmlaq_f32): New.
34417 (vcmla_lane_f32): New.
34418 (vcmla_laneq_f32): New.
34419 (vcmlaq_lane_f32): New.
34420 (vcmlaq_laneq_f32): New.
34421 (vcmla_rot90_f32): New.
34422 (vcmlaq_rot90_f32): New.
34423 (vcmla_rot90_lane_f32): New.
34424 (vcmla_rot90_laneq_f32): New.
34425 (vcmlaq_rot90_lane_f32): New.
34426 (vcmlaq_rot90_laneq_f32): New.
34427 (vcmla_rot180_f32): New.
34428 (vcmlaq_rot180_f32): New.
34429 (vcmla_rot180_lane_f32): New.
34430 (vcmla_rot180_laneq_f32): New.
34431 (vcmlaq_rot180_lane_f32): New.
34432 (vcmlaq_rot180_laneq_f32): New.
34433 (vcmla_rot270_f32): New.
34434 (vcmlaq_rot270_f32): New.
34435 (vcmla_rot270_lane_f32): New.
34436 (vcmla_rot270_laneq_f32): New.
34437 (vcmlaq_rot270_lane_f32): New.
34438 (vcmlaq_rot270_laneq_f32): New.
34439 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
34440 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180,
34441 vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180,
34442 vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180,
34443 vcmlaq_lane270): New.
34444 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
34445 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
34446 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
34447 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
34448 (arm_option_reconfigure_globals): Use them.
34449 * config/arm/iterators.md (VDF, VQ_HSF): New.
34450 (VCADD, VCMLA): New.
34451 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
34452 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>):
34453 New.
34454 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
34455 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
34456
34457 2019-01-10 Tamar Christina <tamar.christina@arm.com>
34458
34459 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
34460 Add qualifier_lane_pair_index.
34461 (emit-rtl.h): Include.
34462 (TYPES_QUADOP_LANE_PAIR): New.
34463 (aarch64_simd_expand_args): Use it.
34464 (aarch64_simd_expand_builtin): Likewise.
34465 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum):
34466 New.
34467 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
34468 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
34469 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
34470 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
34471 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
34472 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF,
34473 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
34474 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF,
34475 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
34476 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF,
34477 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
34478 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
34479 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
34480 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
34481 Add __ARM_FEATURE_COMPLEX.
34482 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0,
34483 fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180,
34484 fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180,
34485 fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
34486 fcmlaq_lane270): New.
34487 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
34488 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,
34489 aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): New.
34490 * config/aarch64/arm_neon.h:
34491 (vcadd_rot90_f16): New.
34492 (vcaddq_rot90_f16): New.
34493 (vcadd_rot270_f16): New.
34494 (vcaddq_rot270_f16): New.
34495 (vcmla_f16): New.
34496 (vcmlaq_f16): New.
34497 (vcmla_lane_f16): New.
34498 (vcmla_laneq_f16): New.
34499 (vcmlaq_lane_f16): New.
34500 (vcmlaq_rot90_lane_f16): New.
34501 (vcmla_rot90_laneq_f16): New.
34502 (vcmla_rot90_lane_f16): New.
34503 (vcmlaq_rot90_f16): New.
34504 (vcmla_rot90_f16): New.
34505 (vcmlaq_laneq_f16): New.
34506 (vcmla_rot180_laneq_f16): New.
34507 (vcmla_rot180_lane_f16): New.
34508 (vcmlaq_rot180_f16): New.
34509 (vcmla_rot180_f16): New.
34510 (vcmlaq_rot90_laneq_f16): New.
34511 (vcmlaq_rot270_laneq_f16): New.
34512 (vcmlaq_rot270_lane_f16): New.
34513 (vcmla_rot270_laneq_f16): New.
34514 (vcmlaq_rot270_f16): New.
34515 (vcmla_rot270_f16): New.
34516 (vcmlaq_rot180_laneq_f16): New.
34517 (vcmlaq_rot180_lane_f16): New.
34518 (vcmla_rot270_lane_f16): New.
34519 (vcadd_rot90_f32): New.
34520 (vcaddq_rot90_f32): New.
34521 (vcaddq_rot90_f64): New.
34522 (vcadd_rot270_f32): New.
34523 (vcaddq_rot270_f32): New.
34524 (vcaddq_rot270_f64): New.
34525 (vcmla_f32): New.
34526 (vcmlaq_f32): New.
34527 (vcmlaq_f64): New.
34528 (vcmla_lane_f32): New.
34529 (vcmla_laneq_f32): New.
34530 (vcmlaq_lane_f32): New.
34531 (vcmlaq_laneq_f32): New.
34532 (vcmla_rot90_f32): New.
34533 (vcmlaq_rot90_f32): New.
34534 (vcmlaq_rot90_f64): New.
34535 (vcmla_rot90_lane_f32): New.
34536 (vcmla_rot90_laneq_f32): New.
34537 (vcmlaq_rot90_lane_f32): New.
34538 (vcmlaq_rot90_laneq_f32): New.
34539 (vcmla_rot180_f32): New.
34540 (vcmlaq_rot180_f32): New.
34541 (vcmlaq_rot180_f64): New.
34542 (vcmla_rot180_lane_f32): New.
34543 (vcmla_rot180_laneq_f32): New.
34544 (vcmlaq_rot180_lane_f32): New.
34545 (vcmlaq_rot180_laneq_f32): New.
34546 (vcmla_rot270_f32): New.
34547 (vcmlaq_rot270_f32): New.
34548 (vcmlaq_rot270_f64): New.
34549 (vcmla_rot270_lane_f32): New.
34550 (vcmla_rot270_laneq_f32): New.
34551 (vcmlaq_rot270_lane_f32): New.
34552 (vcmlaq_rot270_laneq_f32): New.
34553 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
34554 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
34555 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
34556 (FCADD, FCMLA): New.
34557 (rot): New.
34558 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
34559
34560 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
34561
34562 PR other/16615
34563
34564 * config/pa/pa.c: Change "can not" to "cannot".
34565 * gimple-ssa-evrp-analyze.c: Likewise.
34566 * ipa-icf.c: Likewise.
34567 * ipa-polymorphic-call.c: Likewise.
34568 * ipa-pure-const.c: Likewise.
34569 * lra-constraints.c: Likewise.
34570 * lra-remat.c: Likewise.
34571 * reload1.c: Likewise.
34572 * reorg.c: Likewise.
34573 * tree-ssa-uninit.c: Likewise.
34574
34575 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
34576
34577 PR other/16615
34578
34579 * Makefile.in: Mechanically replace "can not" with "cannot".
34580 * alias.c: Likewise.
34581 * builtins.c: Likewise.
34582 * calls.c: Likewise.
34583 * cgraph.c: Likewise.
34584 * cgraph.h: Likewise.
34585 * cgraphclones.c: Likewise.
34586 * cgraphunit.c: Likewise.
34587 * combine-stack-adj.c: Likewise.
34588 * combine.c: Likewise.
34589 * common/config/i386/i386-common.c: Likewise.
34590 * config/aarch64/aarch64.c: Likewise.
34591 * config/alpha/sync.md: Likewise.
34592 * config/arc/arc.c: Likewise.
34593 * config/arc/predicates.md: Likewise.
34594 * config/arm/arm-c.c: Likewise.
34595 * config/arm/arm.c: Likewise.
34596 * config/arm/arm.h: Likewise.
34597 * config/arm/arm.md: Likewise.
34598 * config/arm/cortex-r4f.md: Likewise.
34599 * config/csky/csky.c: Likewise.
34600 * config/csky/csky.h: Likewise.
34601 * config/darwin-f.c: Likewise.
34602 * config/epiphany/epiphany.md: Likewise.
34603 * config/i386/i386.c: Likewise.
34604 * config/i386/sol2.h: Likewise.
34605 * config/m68k/m68k.c: Likewise.
34606 * config/mcore/mcore.h: Likewise.
34607 * config/microblaze/microblaze.md: Likewise.
34608 * config/mips/20kc.md: Likewise.
34609 * config/mips/sb1.md: Likewise.
34610 * config/nds32/nds32.c: Likewise.
34611 * config/nds32/predicates.md: Likewise.
34612 * config/pa/pa.c: Likewise.
34613 * config/rs6000/e300c2c3.md: Likewise.
34614 * config/rs6000/rs6000.c: Likewise.
34615 * config/s390/s390.h: Likewise.
34616 * config/sh/sh.c: Likewise.
34617 * config/sh/sh.md: Likewise.
34618 * config/spu/vmx2spu.h: Likewise.
34619 * cprop.c: Likewise.
34620 * dbxout.c: Likewise.
34621 * df-scan.c: Likewise.
34622 * doc/cfg.texi: Likewise.
34623 * doc/extend.texi: Likewise.
34624 * doc/fragments.texi: Likewise.
34625 * doc/gty.texi: Likewise.
34626 * doc/invoke.texi: Likewise.
34627 * doc/lto.texi: Likewise.
34628 * doc/md.texi: Likewise.
34629 * doc/objc.texi: Likewise.
34630 * doc/rtl.texi: Likewise.
34631 * doc/tm.texi: Likewise.
34632 * dse.c: Likewise.
34633 * emit-rtl.c: Likewise.
34634 * emit-rtl.h: Likewise.
34635 * except.c: Likewise.
34636 * expmed.c: Likewise.
34637 * expr.c: Likewise.
34638 * fold-const.c: Likewise.
34639 * genautomata.c: Likewise.
34640 * gimple-fold.c: Likewise.
34641 * hard-reg-set.h: Likewise.
34642 * ifcvt.c: Likewise.
34643 * ipa-comdats.c: Likewise.
34644 * ipa-cp.c: Likewise.
34645 * ipa-devirt.c: Likewise.
34646 * ipa-fnsummary.c: Likewise.
34647 * ipa-icf.c: Likewise.
34648 * ipa-inline-transform.c: Likewise.
34649 * ipa-inline.c: Likewise.
34650 * ipa-polymorphic-call.c: Likewise.
34651 * ipa-profile.c: Likewise.
34652 * ipa-prop.c: Likewise.
34653 * ipa-pure-const.c: Likewise.
34654 * ipa-reference.c: Likewise.
34655 * ipa-split.c: Likewise.
34656 * ipa-visibility.c: Likewise.
34657 * ipa.c: Likewise.
34658 * ira-build.c: Likewise.
34659 * ira-color.c: Likewise.
34660 * ira-conflicts.c: Likewise.
34661 * ira-costs.c: Likewise.
34662 * ira-int.h: Likewise.
34663 * ira-lives.c: Likewise.
34664 * ira.c: Likewise.
34665 * ira.h: Likewise.
34666 * loop-invariant.c: Likewise.
34667 * loop-unroll.c: Likewise.
34668 * lower-subreg.c: Likewise.
34669 * lra-assigns.c: Likewise.
34670 * lra-constraints.c: Likewise.
34671 * lra-eliminations.c: Likewise.
34672 * lra-lives.c: Likewise.
34673 * lra-remat.c: Likewise.
34674 * lra-spills.c: Likewise.
34675 * lra.c: Likewise.
34676 * lto-cgraph.c: Likewise.
34677 * lto-streamer-out.c: Likewise.
34678 * postreload-gcse.c: Likewise.
34679 * predict.c: Likewise.
34680 * profile-count.h: Likewise.
34681 * profile.c: Likewise.
34682 * recog.c: Likewise.
34683 * ree.c: Likewise.
34684 * reload.c: Likewise.
34685 * reload1.c: Likewise.
34686 * reorg.c: Likewise.
34687 * resource.c: Likewise.
34688 * rtl.def: Likewise.
34689 * rtl.h: Likewise.
34690 * rtlanal.c: Likewise.
34691 * sched-deps.c: Likewise.
34692 * sched-ebb.c: Likewise.
34693 * sched-rgn.c: Likewise.
34694 * sel-sched-ir.c: Likewise.
34695 * sel-sched.c: Likewise.
34696 * shrink-wrap.c: Likewise.
34697 * simplify-rtx.c: Likewise.
34698 * symtab.c: Likewise.
34699 * target.def: Likewise.
34700 * toplev.c: Likewise.
34701 * tree-call-cdce.c: Likewise.
34702 * tree-cfg.c: Likewise.
34703 * tree-complex.c: Likewise.
34704 * tree-core.h: Likewise.
34705 * tree-eh.c: Likewise.
34706 * tree-inline.c: Likewise.
34707 * tree-loop-distribution.c: Likewise.
34708 * tree-nrv.c: Likewise.
34709 * tree-profile.c: Likewise.
34710 * tree-sra.c: Likewise.
34711 * tree-ssa-alias.c: Likewise.
34712 * tree-ssa-dce.c: Likewise.
34713 * tree-ssa-dom.c: Likewise.
34714 * tree-ssa-forwprop.c: Likewise.
34715 * tree-ssa-loop-im.c: Likewise.
34716 * tree-ssa-loop-ivcanon.c: Likewise.
34717 * tree-ssa-loop-ivopts.c: Likewise.
34718 * tree-ssa-loop-niter.c: Likewise.
34719 * tree-ssa-phionlycprop.c: Likewise.
34720 * tree-ssa-phiopt.c: Likewise.
34721 * tree-ssa-propagate.c: Likewise.
34722 * tree-ssa-threadedge.c: Likewise.
34723 * tree-ssa-threadupdate.c: Likewise.
34724 * tree-ssa-uninit.c: Likewise.
34725 * tree-ssanames.c: Likewise.
34726 * tree-streamer-out.c: Likewise.
34727 * tree.c: Likewise.
34728 * tree.h: Likewise.
34729 * vr-values.c: Likewise.
34730
34731 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
34732
34733 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
34734 (ix86_split_xorsign): Ditto.
34735 * config/i386/i386.c (ix86_expand_xorsign): New function.
34736 (ix86_split_xorsign): Ditto.
34737 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
34738 (xorsign<mode>3): New expander.
34739 (xorsign<mode>3_1): New insn_and_split pattern.
34740 * config/i386/sse.md (xorsign<mode>3): New expander.
34741
34742 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
34743
34744 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
34745 (*tablejump_sp64): Likewise.
34746 (*tablejump<P:mode>): ...this.
34747 (*call_address_sp32): Merge into...
34748 (*call_address_sp64): Likewise.
34749 (*call_address<P:mode>): ...this.
34750 (*call_symbolic_sp32): Merge into...
34751 (*call_symbolic_sp64): Likewise.
34752 (*call_symbolic<P:mode>): ...this.
34753 (call_value): Remove constraint and add predicate.
34754 (*call_value_address_sp32): Merge into...
34755 (*call_value_address_sp64): Likewise.
34756 (*call_value_address<P:mode>): ...this.
34757 (*call_value_symbolic_sp32): Merge into...
34758 (*call_value_symbolic_sp64): Likewise.
34759 (*call_value_symbolic<P:mode>): ...this.
34760 (*sibcall_symbolic_sp32): Merge into...
34761 (*sibcall_symbolic_sp64): Likewise.
34762 (*sibcall_symbolic<P:mode>): ...this.
34763 (sibcall_value): Remove constraint and add predicate.
34764 (*sibcall_value_symbolic_sp32): Merge into...
34765 (*sibcall_value_symbolic_sp64): Likewise.
34766 (*sibcall_value_symbolic<P:mode>): ...this.
34767 (window_save): Minor tweak.
34768 (*branch_sp32): Merge into...
34769 (*branch_sp64): Likewise.
34770 (*branch<P:mode>): ...this.
34771
34772 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
34773 James Clarke <jrtc27@jrtc27.com>
34774
34775 PR target/84010
34776 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
34777 consistently in TLS address generation and adjust code to the renaming
34778 of patterns. Mark calls to __tls_get_addr as const.
34779 * config/sparc/sparc.md (tgd_hi22): Turn into...
34780 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
34781 (tgd_lo10): Turn into...
34782 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
34783 (tgd_add32): Merge into...
34784 (tgd_add64): Likewise.
34785 (tgd_add<P:mode>): ...this and use Pmode throughout.
34786 (tldm_hi22): Turn into...
34787 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
34788 (tldm_lo10): Turn into...
34789 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
34790 (tldm_add32): Merge into...
34791 (tldm_add64): Likewise.
34792 (tldm_add<P:mode>): ...this and use Pmode throughout.
34793 (tldm_call32): Merge into...
34794 (tldm_call64): Likewise.
34795 (tldm_call<P:mode>): ...this and use Pmode throughout.
34796 (tldo_hix22): Turn into...
34797 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
34798 (tldo_lox10): Turn into...
34799 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
34800 (tldo_add32): Merge into...
34801 (tldo_add64): Likewise.
34802 (tldo_add<P:mode>): ...this and use Pmode throughout.
34803 (tie_hi22): Turn into...
34804 (tie_hi22<P:mode>): ...this and use Pmode throughout.
34805 (tie_lo10): Turn into...
34806 (tie_lo10<P:mode>): ...this and use Pmode throughout.
34807 (tie_ld64): Use DImode throughout.
34808 (tie_add32): Merge into...
34809 (tie_add64): Likewise.
34810 (tie_add<P:mode>): ...this and use Pmode throughout.
34811 (tle_hix22_sp32): Merge into...
34812 (tle_hix22_sp64): Likewise.
34813 (tle_hix22<P:mode>): ...this and use Pmode throughout.
34814 (tle_lox22_sp32): Merge into...
34815 (tle_lox22_sp64): Likewise.
34816 (tle_lox22<P:mode>): ...this and use Pmode throughout.
34817 (*tldo_ldub_sp32): Merge into...
34818 (*tldo_ldub_sp64): Likewise.
34819 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
34820 (*tldo_ldub1_sp32): Merge into...
34821 (*tldo_ldub1_sp64): Likewise.
34822 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
34823 (*tldo_ldub2_sp32): Merge into...
34824 (*tldo_ldub2_sp64): Likewise.
34825 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
34826 (*tldo_ldsb1_sp32): Merge into...
34827 (*tldo_ldsb1_sp64): Likewise.
34828 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
34829 (*tldo_ldsb2_sp32): Merge into...
34830 (*tldo_ldsb2_sp64): Likewise.
34831 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
34832 (*tldo_ldub3_sp64): Use DImode throughout.
34833 (*tldo_ldsb3_sp64): Likewise.
34834 (*tldo_lduh_sp32): Merge into...
34835 (*tldo_lduh_sp64): Likewise.
34836 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
34837 (*tldo_lduh1_sp32): Merge into...
34838 (*tldo_lduh1_sp64): Likewise.
34839 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
34840 (*tldo_ldsh1_sp32): Merge into...
34841 (*tldo_ldsh1_sp64): Likewise.
34842 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
34843 (*tldo_lduh2_sp64): Use DImode throughout.
34844 (*tldo_ldsh2_sp64): Likewise.
34845 (*tldo_lduw_sp32): Merge into...
34846 (*tldo_lduw_sp64): Likewise.
34847 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
34848 (*tldo_lduw1_sp64): Use DImode throughout.
34849 (*tldo_ldsw1_sp64): Likewise.
34850 (*tldo_ldx_sp64): Likewise.
34851 (*tldo_stb_sp32): Merge into...
34852 (*tldo_stb_sp64): Likewise.
34853 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
34854 (*tldo_sth_sp32): Merge into...
34855 (*tldo_sth_sp64): Likewise.
34856 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
34857 (*tldo_stw_sp32): Merge into...
34858 (*tldo_stw_sp64): Likewise.
34859 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
34860 (*tldo_stx_sp64): Use DImode throughout.
34861
34862 2018-01-09 Sudakshina Das <sudi.das@arm.com>
34863
34864 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
34865 check configure option to set BTI and Return Address Signing.
34866 * configure.ac: Add --enable-standard-branch-protection and
34867 --disable-standard-branch-protection.
34868 * configure: Regenerated.
34869 * doc/install.texi: Document the same.
34870
34871 2018-01-09 Sudakshina Das <sudi.das@arm.com>
34872 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
34873
34874 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
34875 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
34876 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
34877 if bti is enabled.
34878 * config/aarch64/aarch64-bti-insert.c: New file.
34879 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
34880 pass.
34881 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
34882 new bti pass.
34883 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
34884 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
34885 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
34886 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
34887
34888 2018-01-09 Sudakshina Das <sudi.das@arm.com>
34889
34890 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
34891 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
34892 Disable bti for -mbranch-protection=none.
34893 (aarch64_handle_standard_branch_protection): Enable bti for
34894 -mbranch-protection=standard.
34895 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
34896 -mbranch-protection.
34897 (aarch64_bti_enabled): Check if bti is enabled.
34898 * config/aarch64/aarch64.opt: Declare target variable.
34899 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
34900
34901 2018-01-09 Sudakshina Das <sudi.das@arm.com>
34902
34903 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
34904 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
34905 (aarch64_expand_epilogue): Likewise.
34906 (aarch64_output_mi_thunk): Likewise.
34907 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
34908 TAILCALL_ADDR_REGS to x16 and x17.
34909 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
34910
34911 2018-01-09 Sudakshina Das <sudi.das@arm.com>
34912
34913 * config/aarch64/aarch64-option-extensions.def: Define
34914 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
34915 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
34916 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
34917 (AARCH64_FL_PREDRES): New.
34918 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
34919 AARCH64_FL_PREDRES by default.
34920 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
34921
34922 2018-01-09 Sudakshina Das <sudi.das@arm.com>
34923
34924 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
34925 ARMv8.5-A.
34926 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
34927 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
34928 * doc/invoke.texi: Document ARMv8.5-A.
34929
34930 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
34931
34932 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
34933 (xorsign<mode>3): Likewise.
34934
34935 2019-01-09 Jelinek <jakub@redhat.com>
34936
34937 PR middle-end/88758
34938 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
34939 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
34940
34941 PR rtl-optimization/88331
34942 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
34943 not currently_expanding_to_rtl.
34944
34945 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
34946
34947 * doc/invoke.texi (-Os): Remove trailing spaces.
34948 (-finline-functions): Remove reference to -O2.
34949
34950 2019-01-08 Jakub Jelinek <jakub@redhat.com>
34951
34952 PR rtl-optimization/79593
34953 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
34954
34955 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
34956 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
34957
34958 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
34959
34960 PR bootstrap/88721
34961 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
34962 to -1 on entry.
34963
34964 PR debug/88723
34965 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
34966 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
34967
34968 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
34969
34970 PR target/88717
34971 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
34972 ix86_avx_u128_mode_entry.
34973
34974 2019-01-08 Martin Liska <mliska@suse.cz>
34975
34976 PR tree-optimization/88753
34977 * tree-switch-conversion.c (switch_conversion::build_one_array):
34978 Come up with local variable constructor. Convert first to
34979 type of constructor values.
34980
34981 2019-01-08 Richard Biener <rguenther@suse.de>
34982
34983 PR tree-optimization/86554
34984 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
34985 rpo_avail): Move earlier.
34986 (visit_nary_op): When value-numbering to expressions
34987 with different overflow behavior make sure there's an
34988 available expression on the path.
34989
34990 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
34991
34992 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
34993 aarch64_parse_branch_protection,
34994 struct aarch64_branch_protect_type,
34995 aarch64_handle_no_branch_protection,
34996 aarch64_handle_standard_branch_protection,
34997 aarch64_validate_mbranch_protection,
34998 aarch64_handle_pac_ret_protection,
34999 aarch64_handle_attr_branch_protection,
35000 accepted_branch_protection_string,
35001 aarch64_pac_ret_subtypes,
35002 aarch64_branch_protect_types,
35003 aarch64_handle_pac_ret_leaf): Define.
35004 (aarch64_override_options_after_change_1, aarch64_override_options):
35005 Add check for accepted_branch_protection_string.
35006 (aarch64_option_save): Save accepted_branch_protection_string.
35007 (aarch64_option_restore): Save accepted_branch_protection_string.
35008 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
35009 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
35010 msign-return-address.
35011 * doc/invoke.texi: Add mbranch-protection.
35012
35013 2019-01-08 Alan Modra <amodra@gmail.com>
35014
35015 PR target/88614
35016 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
35017 Delete "unknownp" parameter. Adjust callers. Handle
35018 CONST_INT, PLUS, MINUS, and MULT.
35019 (attr_value_aligned): Renamed from or_attr_value.
35020 (min_attr_value): Return INT_MIN for unhandled rtl case..
35021 (min_fn): ..and translate to INT_MAX here.
35022 (write_length_unit_log): Modify to cope without "unknown".
35023 (write_attr_value): Handle IF_THEN_ELSE.
35024
35025 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
35026
35027 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
35028 optimization for masked stores.
35029
35030 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
35031
35032 PR middle-end/88567
35033 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
35034 output vector directly to duplicate_and_interleave instead of
35035 going through a temporary. Postpone insertion of ctor_seq to
35036 the end of the loop.
35037
35038 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
35039
35040 PR target/86891
35041 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
35042 unsigned_p. Handle signed and unsigned overflow correction as
35043 required.
35044 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
35045 prototype.
35046 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
35047 for operand 2.
35048 (add<mode>3_compareV_imm): Make this callable for expanding.
35049 (subv<GPI:mode>4): Use register_operand for operand 1. Use
35050 aarch64_plus_operand for operand 2.
35051 (subv<GPI:mode>_insn): New insn pattern.
35052 (subv<GPI:mode>_imm): Likewise.
35053 (negv<GPI:mode>3): New expand pattern.
35054 (negv<GPI:mode>_insn): New insn pattern.
35055 (negv<GPI:mode>_cmp_only): Likewise.
35056 (cmpv<GPI:mode>_insn): Likewise.
35057 (subvti4): Use register_operand for operand 1. Update call to
35058 aarch64_expand_subvti.
35059 (usubvti4): Likewise.
35060 (negvti3): New expand pattern.
35061 (negdi_carryout): New insn pattern.
35062 (negvdi_carryinV): New insn pattern.
35063 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
35064 version the named version.
35065 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
35066 operands.
35067 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
35068 patterns.
35069 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
35070 patterns.
35071 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
35072 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
35073 (sub<mode>3_carryinCV): Delete.
35074 (sub<GPI:mode>3_carryinV): New expand pattern.
35075 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
35076
35077 2019-01-07 Richard Biener <rguenther@suse.de>
35078
35079 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
35080 of tree_operand_hash.
35081
35082 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
35083
35084 PR tree-optimization/88598
35085 * tree.h (single_nonzero_element): Declare.
35086 * tree.c (single_nonzero_element): New function.
35087 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
35088 if I is the only nonzero element of CST.
35089
35090 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
35091
35092 PR tree-optimization/88598
35093 * tree.h (initializer_each_zero_or_onep): Declare.
35094 * tree.c (initializer_each_zero_or_onep): New function.
35095 (signed_or_unsigned_type_for): Handle float types too.
35096 (unsigned_type_for, signed_type_for): Update comments accordingly.
35097 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
35098 x & { 0 or -1, 0 or -1, ... }.
35099
35100 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
35101
35102 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
35103 with x86_64-pc-linux-gnu.
35104
35105 2019-01-07 Tom de Vries <tdevries@suse.de>
35106
35107 PR target/85486
35108 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
35109 function.
35110 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
35111 routines.
35112
35113 2019-01-07 Jakub Jelinek <jakub@redhat.com>
35114
35115 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
35116 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
35117 TARGET_AVX512F as condition.
35118
35119 PR debug/88723
35120 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
35121 const_not_ok_for_debug_p target hook.
35122 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
35123 on UNSPEC and subexpressions thereof if all subexpressions of the
35124 UNSPEC are CONSTANT_P.
35125
35126 PR tree-optimization/88676
35127 * tree-ssa-phiopt.c (two_value_replacement): New function.
35128 (tree_ssa_phiopt_worker): Call it.
35129
35130 PR sanitizer/88619
35131 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
35132 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
35133
35134 PR c++/85052
35135 * tree-vect-generic.c: Include insn-config.h and recog.h.
35136 (expand_vector_piecewise): Add defaulted ret_type argument,
35137 if non-NULL, use that in preference to type for the result type.
35138 (expand_vector_parallel): Formatting fix.
35139 (do_vec_conversion, do_vec_narrowing_conversion,
35140 expand_vector_conversion): New functions.
35141 (expand_vector_operations_1): Call expand_vector_conversion
35142 for VEC_CONVERT ifn calls.
35143 * internal-fn.def (VEC_CONVERT): New internal function.
35144 * internal-fn.c (expand_VEC_CONVERT): New function.
35145 * fold-const-call.c (fold_const_vec_convert): New function.
35146 (fold_const_call): Use it for CFN_VEC_CONVERT.
35147 * doc/extend.texi (__builtin_convertvector): Document.
35148
35149 2019-01-07 Tom de Vries <tdevries@suse.de>
35150
35151 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
35152 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
35153 vector_red_partition, vector_red_sym): New global variables.
35154 (nvptx_option_override): Initialize vector_red_sym.
35155 (nvptx_declare_function_name): Restore red_partition register.
35156 (nvptx_file_end): Emit code to declare the vector reduction variables.
35157 (nvptx_output_red_partition): New function.
35158 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
35159 large vector reductions.
35160 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
35161 (nvptx_init_builtins): Add VECTOR_ADDR.
35162 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
35163 Handle nvptx_expand_shared_addr.
35164 (nvptx_get_shared_red_addr): Add vector argument and handle large
35165 vectors.
35166 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
35167 large vectors.
35168 (nvptx_goacc_reduction_init): Likewise.
35169 (nvptx_goacc_reduction_fini): Likewise.
35170 (nvptx_goacc_reduction_teardown): Likewise.
35171 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
35172 init,fini,teardown}.
35173 (nvptx_init_axis_predicate): Initialize vector_red_partition.
35174 (nvptx_set_current_function): Init vector_red_partition.
35175 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
35176 (nvptx_red_partition): New insn.
35177 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
35178
35179 2019-01-07 Tom de Vries <tdevries@suse.de>
35180
35181 PR target/85381
35182 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
35183 empty loops.
35184
35185 2019-01-07 Tom de Vries <tdevries@suse.de>
35186
35187 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
35188 (nvptx_option_override): Init oacc_bcast_partition.
35189 (nvptx_init_oacc_workers): New function.
35190 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
35191 (nvptx_needs_shared_bcast): New function.
35192 (nvptx_find_par): Generalize to enable vectors to use shared-memory
35193 to propagate state.
35194 (nvptx_shared_propagate): Initialize vector bcast partition and
35195 synchronization state.
35196 (nvptx_single): Generalize to enable vectors to use shared-memory
35197 to propagate state.
35198 (nvptx_process_pars): Likewise.
35199 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
35200 * config/nvptx/nvptx.h (struct machine_function): Add
35201 bcast_partition and sync_bar members.
35202
35203 2019-01-07 Tom de Vries <tdevries@suse.de>
35204
35205 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
35206 (nvptx_apply_dim_limits): New function.
35207 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
35208 PTX_WARP_SIZE.
35209
35210 2019-01-07 Tom de Vries <tdevries@suse.de>
35211
35212 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
35213 as late as possible.
35214
35215 2019-01-07 Tom de Vries <tdevries@suse.de>
35216
35217 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
35218 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
35219 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
35220 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
35221 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
35222
35223 2019-01-07 Tom de Vries <tdevries@suse.de>
35224
35225 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
35226
35227 2019-01-07 Tom de Vries <tdevries@suse.de>
35228
35229 * omp-offload.c (oacc_get_min_dim): New function.
35230 * omp-offload.h (oacc_get_min_dim): Declare.
35231
35232 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
35233
35234 PR target/88521
35235 * config/i386/i386.c (function_value_ms_64): Return small sturct in
35236 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
35237
35238 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
35239
35240 PR tree-opt/86020
35241 Revert:
35242 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
35243
35244 * ipa-inline.c (edge_badness): Use inlined_time instead of
35245 inline_summaries->get.
35246
35247 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
35248
35249 * opts.c (enable_fdo_optimizations): Enable
35250 version-loops-for-strides, loop-interchange, unrol-and-jam
35251 and tree-loop-distribution.
35252 * invoke.texi: Document newly enabled options.
35253
35254 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
35255
35256 * doc/invoke.texi (max-inline-insns-small): New parameters.
35257 * ipa-inline.c (want_early_inline_function_p): simplify.
35258 (want_inline_small_function_p): Fix pasto from previous patch;
35259 use max-inline-insns-small bound.
35260 * params.def (max-inline-insns-small): New param.
35261 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
35262 variables correctly.
35263
35264 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
35265
35266 * doc/invoke.texi: Document max-inline-insns-size,
35267 uninlined-function-insns, uninlined-function-time,
35268 uninlined-thunk-insns and uninlined-thunk-time.
35269 * params.def: Add max-inline-insns-size,
35270 uninlined-function-insns, uninlined-function-time,
35271 uninlined-thunk-insns and uninlined-thunk-time.
35272 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
35273 new parameters.
35274 * ipa-inline.c (can_inline_edge_by_limits_p,
35275 want_inline_small_function_p): Use new parameters.
35276
35277 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
35278
35279 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
35280
35281 2019-01-05 Jakub Jelinek <jakub@redhat.com>
35282
35283 PR middle-end/82564
35284 PR target/88620
35285 * expr.c (expand_assignment): For calls returning VLA structures
35286 if to_rtx is not a MEM, force it into a stack temporary.
35287
35288 PR debug/88635
35289 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
35290 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
35291 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
35292 subexpressions of both operands.
35293 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
35294 subrtxes are CONSTANT_P.
35295 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
35296 2018-11-09 changes.
35297
35298 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
35299
35300 * params.def (hot-bb-count-ws-permille): Set to 990.
35301
35302 2019-01-04 Martin Sebor <msebor@redhat.com>
35303
35304 PR c/88546
35305 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
35306 leaf.
35307
35308 2019-01-04 Martin Sebor <msebor@redhat.com>
35309
35310 PR c/88363
35311 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
35312
35313 2019-01-04 Jakub Jelinek <jakub@redhat.com>
35314
35315 * gdbinit.in: Turn off pagination for the skip commands, restore
35316 it to previous state afterwards.
35317
35318 2019-01-04 Jakub Jelinek <jakub@redhat.com>
35319
35320 PR target/88594
35321 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
35322 of GET_MODE (opN) as modes of the libcall arguments.
35323
35324 2019-01-04 Jan Beulich <jbeulich@suse.com>
35325
35326 * config/i386/sse.md
35327 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
35328 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
35329 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
35330 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
35331 avx512f_vmcmp<mode>3<round_saeonly_name>,
35332 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
35333 avx512f_maskcmp<mode>3,
35334 <avx512>_cvt<ssemodesuffix>2mask<mode>,
35335 <avx512>_cvt<ssemodesuffix>2mask<mode>,
35336 *<avx512>_cvtmask2<ssemodesuffix><mode>,
35337 *<avx512>_cvtmask2<ssemodesuffix><mode>,
35338 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
35339 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
35340 <avx512>_gt<mode>3<mask_scalar_merge_name>,
35341 <avx512>_gt<mode>3<mask_scalar_merge_name>,
35342 <avx512>_testm<mode>3<mask_scalar_merge_name>,
35343 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
35344 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
35345 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
35346 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
35347 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
35348 avx512cd_maskb_vec_dup<mode>,
35349 avx512cd_maskw_vec_dup<mode>,
35350 avx512dq_fpclass<mode><mask_scalar_merge_name>,
35351 avx512dq_vmfpclass<mode>,
35352 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
35353 instead of =Yk.
35354
35355 2019-01-03 Martin Sebor <msebor@redhat.com>
35356
35357 PR tree-optimization/88659
35358 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
35359
35360 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
35361
35362 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
35363 unaligned vsx and avoid lxvd2x/stxvd2x.
35364 (gen_lvx_v4si_move): New function.
35365
35366 2019-01-03 Tom de Vries <tdevries@suse.de>
35367
35368 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
35369 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
35370 function.
35371 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
35372
35373 2019-01-03 Tom de Vries <tdevries@suse.de>
35374
35375 * config/nvptx/nvptx.c (struct offload_attrs): New.
35376 (populate_offload_attrs): New function. Factor mask extraction out of
35377 nvptx_reorg. Add extraction of dimensions.
35378 (nvptx_reorg): Use populate_offload_attrs.
35379
35380 2019-01-03 Tom de Vries <tdevries@suse.de>
35381
35382 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
35383 cases for oacc_min_dims_p and routine_p. Add asserts for
35384 oacc_default_dims_p and offload_region_p.
35385
35386 2019-01-03 Tom de Vries <tdevries@suse.de>
35387
35388 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
35389 factored out of ...
35390 (nvptx_goacc_validate_dims): ... here.
35391
35392 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
35393
35394 PR tree-optimization/85574
35395 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
35396 structure.
35397 (struct ssa_equip_hash_traits): Declare.
35398 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
35399
35400 2019-01-03 Jakub Jelinek <jakub@redhat.com>
35401
35402 PR debug/88644
35403 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
35404 change it to qualified_type.
35405
35406 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
35407
35408 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
35409 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
35410
35411 2019-01-02 Martin Sebor <msebor@redhat.com>
35412 Jeff Law <law@redhat.com>
35413
35414 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
35415 (get_range_strlen_tree): Update appropriately.
35416 (get_range_strlen)
35417 * gimple-fold.h (get_range_strlen): Drop unused last argument.
35418
35419 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
35420 rather than set_range_info.
35421 * tree-ssa-strlen.c (set_strlen_range): Extracted from
35422 maybe_set_strlen_range. Handle potentially boundary crossing
35423 cases more conservatively.
35424 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
35425 Call set_strlen_range.
35426 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
35427
35428 PR middle-end/88663
35429 * gimple-fold.c (get_range_strlen): Update prototype to no longer
35430 need the flexp argument.
35431 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
35432 from calls to get_range_strlen. Update comments. Just update
35433 VAL for an unterminated const char array and let the reset of the
35434 code handle it normally. No longer try to set *flexp. Adjust
35435 return value.
35436 (get_range_strlen): Update for the new get_range_strlen API.
35437 (get_maxval_strlen): Similarly.
35438 (gimple_fold_builtin_strlen): Handle update meaning of return value
35439 from get_range_strlen.
35440 * gimple-ssa-sprintf.c (get_string_length): Update for the new
35441 get_range_strlen API.
35442
35443 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
35444
35445 PR lto/88130
35446 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
35447 false at WPA time when body was removed.
35448
35449 2019-01-02 Martin Liska <mliska@suse.cz>
35450
35451 PR tree-optimization/88650
35452 * predict.c (set_even_probabilities): Calculate probability
35453 remainer only when really used.
35454
35455 2019-01-02 Richard Biener <rguenther@suse.de>
35456
35457 PR middle-end/88651
35458 * tree-data-ref.c (analyze_subscript_affine_affine): Use
35459 widest_ints when mangling max_stmt_execution results.
35460
35461 2019-01-02 Richard Biener <rguenther@suse.de>
35462
35463 PR tree-optimization/88621
35464 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
35465 bitfields when canoncalizing.
35466
35467 2019-01-02 Richard Biener <rguenther@suse.de>
35468
35469 PR target/87545
35470 * config/i386/x86-tune-costs.h (intel_cost): Adjust
35471 cost of cheap SSE instruction.
35472
35473 2019-01-02 Richard Biener <rguenther@suse.de>
35474
35475 PR ipa/85574
35476 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
35477 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
35478 function.
35479 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
35480 set after UIDs before splitting them.
35481
35482 2019-01-01 Martin Sebor <msebor@redhat.com>
35483 Jeff Law <law@redhat.com>
35484
35485 * gimple-fold.c (get_range_strlen_tree): Record if the computed
35486 length is optimistic. If it is, then arrange to compute the
35487 conservative length as well.
35488
35489 * gimple-fold.h (get_range_strlen): Update prototype.
35490 * builtins.c (check_access): Update call to get_range_strlen to use
35491 c_strlen_data pointer. Change various variable accesses to instead
35492 pull data from the c_strlen_data structure.
35493 (check_strncat_sizes, expand_builtin_strncat): Likewise.
35494 * calls.c (maybe_warn_nonstring_arg): Likewise.
35495 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
35496 minimum length if maximum lengh is unknown.
35497 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
35498 that used c_strlen, it's no longer needed. Restructure slightly.
35499 (format_string): Set unlikely range appropriately.
35500 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
35501 formatting issues.
35502 (get_range_strlen): Accept c_strlen_data pointer for external
35503 call sites as well. Pass through to call to internal get_range_strlen.
35504 Adjust minlen, maxlen and maxbound as needed.
35505 (get_maxval_strlen): Update comments.
35506 (gimple_fold_builtin_strlen): Update call to get_range_strlen
35507 to use c_strlen_data pointer. Change variable accesses to instead
35508 use c_strlen_data data members.
35509
35510 * gimple-fold.c (get_range_strlen): Update prototype.
35511 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
35512 local variables. Use pdata to return information to caller.
35513 Update calls to get_range_strlen. Update pdata->maxbound.
35514 (get_range_strlen -- static version): Similarly.
35515 (get_range_strlen -- extern version): Update for internal
35516 get_range_strlen API change. Convert to external data format.
35517 (get_maxval_strlen): Similarly.
35518
35519 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
35520
35521 * coverage.c (get_coverage_counts): Use current_function_decl.
35522 * profile.c (read_thunk_profile): New function.
35523 (branch_prob): Add THUNK parameter.
35524 * tree-profile.c (tree_profiling): Handle thunks.
35525 * value-prof.c (init_node_map): Handle thunks.
35526 * value-prof.h (branch_prob): Upate prototype.
35527 (read_thunk_profile): Declare.
35528
35529 2019-01-01 Jakub Jelinek <jakub@redhat.com>
35530
35531 Update copyright years.
35532
35533 * gcc.c (process_command): Update copyright notice dates.
35534 * gcov-dump.c (print_version): Ditto.
35535 * gcov.c (print_version): Ditto.
35536 * gcov-tool.c (print_version): Ditto.
35537 * gengtype.c (create_file): Ditto.
35538 * doc/cpp.texi: Bump @copying's copyright year.
35539 * doc/cppinternals.texi: Ditto.
35540 * doc/gcc.texi: Ditto.
35541 * doc/gccint.texi: Ditto.
35542 * doc/gcov.texi: Ditto.
35543 * doc/install.texi: Ditto.
35544 * doc/invoke.texi: Ditto.
35545 \f
35546 Copyright (C) 2019 Free Software Foundation, Inc.
35547
35548 Copying and distribution of this file, with or without modification,
35549 are permitted in any medium without royalty provided the copyright
35550 notice and this notice are preserved.